diff --git a/.flaskenv b/.flaskenv index cf560b9e65367c008b553893042956042f09ded8..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/.flaskenv +++ b/.flaskenv @@ -1,5 +0,0 @@ -FLASK_APP=main.py -FLASK_ENV=development -FLASK_DEBUG=1 -FLASK_RUN_HOST = 127.0.0.1 -FLASK_RUN_PORT = 5000 \ No newline at end of file diff --git a/README.md b/README.md index b3dff7d29e49b81a3f4ca789fc0101031d6eaba1..5225fa33b26ae6d30f6df4007db5cb8d4d34be1e 100644 --- a/README.md +++ b/README.md @@ -57,90 +57,23 @@ Pear Admin Flask 分为 Common / Simple 两个版本: ``` Pear Admin Flask -│ -├─applications -│ │ -│ ├─config -│ │ │ -│ │ ├─ common.py #普通配置 -│ │ │ -│ │ └─ database.py #数据库配置 -│ │ -│ ├─models -│ │ │ -│ │ └─admin.py #基本模型 -│ │ -│ ├─service -│ │ │ -│ │ ├─admin -│ │ │ │ -│ │ │ ├─ file.py #file视图的数据操作 -│ │ │ │ -│ │ │ ├─ index.py #index视图的数据操作 -│ │ │ │ -│ │ │ ├─ power.py #power视图的数据操作 -│ │ │ │ -│ │ │ ├─ role.py #role视图的数据操作 -│ │ │ │ -│ │ │ └─ user.py #user视图的数据操作 -│ │ │ -│ │ ├─ admin_log.py #存储日志 -│ │ │ -│ │ ├─ deBug.py #deBug工具栏初始化 -│ │ │ -│ │ ├─ login.py #flask_login初始化 -│ │ │ -│ │ ├─ CaptchaTool.py #验证码 -│ │ │ -│ │ ├─ OriginalDb.py #原生sql查询封装 -│ │ │ -│ │ ├─ route_auth.py #权限 -│ │ │ -│ │ └─ upload.py #上传 -│ │ -│ └─views -│ │ -│ ├─admin #前台视图 -│ │ │ -│ │ ├─index.py #主视图 -│ │ │ -│ │ ├─user.py #用户视图 -│ │ │ -│ │ ├─role.py #角色视图 -│ │ │ -│ │ ├─power.py #权限视图 -│ │ │ -│ │ ├─monitor.py #系统监控 -│ │ │ -│ │ ├─file.py #文件上传 -│ │ │ -│ │ ├─admin_log.py #系统日志 -│ │ │ -│ │ ├─context_processor.py #全局模板函数注册 -│ │ │ -│ │ ├─error.py #错误处理 -│ │ │ -│ │ └─init.py #蓝图注册 -│ │ -│ └─index #前台视图 -│ -├─dev #数据库初始化 -│ -├─migrations -│ -├─readmes -│ -├─static #静态资源 -│ │ -│ └─upload #文件上传地址 -│ -└─templates - │ - ├─admin #前台模板 - │ - ├─errors #错误模板 - │ - └─index #前台模板 +├─applications # 应用 +│ ├─configs # 配置文件 +│ │ ├─ common.py # 普通配置 +│ │ └─ config.py # 配置文件对象 +│ ├─extensions # 注册插件 +│ ├─models # 数据模型 +│ ├─static # 静态资源文件 +│ ├─templates # 静态模板文件 +│ └─views # 视图部分 +│ ├─admin # 后台管理视图模块 +│ └─index # 前台视图模块 +├─docs # 文档说明(占坑) +├─migrations # 迁移文件记录 +├─requirement # 依赖文件 +├─test # 测试文件夹(占坑) +└─.env # 项目的配置文件 + ``` @@ -152,10 +85,10 @@ Pear Admin Flask git clone https://gitee.com/pear-admin/pear-admin-flask # 安 装 -pip install -r requirement.txt +pip install -r requirement\requirement-dev.txt # 配 置 -applications\config\database.py +.env ``` @@ -189,14 +122,8 @@ python -m venv venv #### 运行项目 ```bash -# 进 入 目 录 -cd dev - # 初 始 化 数 据 库 -python initDb.py - -# 如 果 报 模 块 路 径 错 误 -python dev/initDb.py +python test\init_databases.py ``` @@ -207,6 +134,6 @@ python dev/initDb.py | | | |---------------------|---------------------| -| ![](readmes/1.jpg) | ![](readmes/2.jpg) | -| ![](readmes/3.jpg)| ![](readmes/4.jpg) | -| ![](readmes/5.jpg) | ![](readmes/6.jpg) | \ No newline at end of file +| ![](docs/assets/1.jpg) | ![](docs/assets/2.jpg) | +| ![](docs/assets/3.jpg)| ![](docs/assets/4.jpg) | +| ![](docs/assets/5.jpg) | ![](docs/assets/6.jpg) | \ No newline at end of file diff --git a/app.py b/app.py new file mode 100644 index 0000000000000000000000000000000000000000..a5622a5f989ca794dafc5932f0163f9cf4de5952 --- /dev/null +++ b/app.py @@ -0,0 +1,6 @@ +from applications import create_app + +app = create_app() + +if __name__ == '__main__': + app.run() diff --git a/applications/__init__.py b/applications/__init__.py index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2592ddfb72167acbd53fff2b0bd1842699a59ed7 100644 --- a/applications/__init__.py +++ b/applications/__init__.py @@ -0,0 +1,46 @@ +import os + +from flask import Flask +from flask_uploads import configure_uploads + +from applications.common.utils.upload import photos +from applications.configs import common +from applications.extensions import init_plugs +from applications.view import init_view +from applications.configs import config + + +def create_app(config_name=None): + app = Flask(__name__) + + if not config_name: + # 尝试从本地环境中读取 + config_name = os.getenv('FLASK_CONFIG', 'development') + + # 引入数据库配置 + app.config.from_object(common) + app.config.from_object(config[config_name]) + # 注册各种插件 + init_plugs(app) + + # 注册路由 + init_view(app) + + # 文件上传 + configure_uploads(app, photos) + + logo() + + return app + + +def logo(): + print(''' + _____ _ _ ______ _ _ +| __ \ /\ | | (_) | ____| | | | +| |__) |__ __ _ _ __ / \ __| |_ __ ___ _ _ __ | |__ | | __ _ ___| | __ +| ___/ _ \/ _` | '__| / /\ \ / _` | '_ ` _ \| | '_ \ | __| | |/ _` / __| |/ / +| | | __/ (_| | | / ____ \ (_| | | | | | | | | | | | | | | (_| \__ \ < +|_| \___|\__,_|_| /_/ \_\__,_|_| |_| |_|_|_| |_| |_| |_|\__,_|___/_|\_\\ + + ''') diff --git a/applications/service/__init__.py b/applications/common/__init__.py similarity index 100% rename from applications/service/__init__.py rename to applications/common/__init__.py diff --git a/static/admin/component/pear/css/module/label.css b/applications/common/admin/__init__.py similarity index 100% rename from static/admin/component/pear/css/module/label.css rename to applications/common/admin/__init__.py diff --git a/applications/service/admin/dept_curd.py b/applications/common/admin/dept_curd.py similarity index 88% rename from applications/service/admin/dept_curd.py rename to applications/common/admin/dept_curd.py index 2e013427dfe6394c214179c8424e953b91a9d3bd..ba5b05ff632f93cb8567972fef2b5cc465e2f725 100644 --- a/applications/service/admin/dept_curd.py +++ b/applications/common/admin/dept_curd.py @@ -1,8 +1,8 @@ -from applications.models import db -from applications.models.admin_dept import Dept, DeptSchema -from applications.models.admin_user import User -from applications.service.common.curd import model_to_dicts -from applications.service.common.validate import xss_escape +from applications.common.utils.validate import xss_escape +from applications.extensions import db +from applications.models import Dept, DeptSchema +from applications.models import User +from applications.common.curd import model_to_dicts def get_dept_dict(): @@ -12,8 +12,6 @@ def get_dept_dict(): def save_dept(req): - - address = xss_escape(req.get("address")) deptName = xss_escape(req.get("deptName")) email = xss_escape(req.get("email")) diff --git a/applications/service/admin/dict_curd.py b/applications/common/admin/dict_curd.py similarity index 85% rename from applications/service/admin/dict_curd.py rename to applications/common/admin/dict_curd.py index 103a23a0e45e2f0bb139c12787e260f8861f13df..8f674c69fed882bf79d41428afb44eca019ae9fa 100644 --- a/applications/service/admin/dict_curd.py +++ b/applications/common/admin/dict_curd.py @@ -1,27 +1,19 @@ -# 字典管理 -# 查询字典类型 - - -from applications.models import db -from applications.models.admin_dict import DictType, DictData, DictTypeSchema, DictDataSchema -from applications.service.common.curd import model_to_dicts -from applications.service.common.validate import xss_escape - -# 通过type_code获取字典dict -# 例:get_dict('user_sex') -# [{'key': '男', 'value': 'boy'}, {'key': '女', 'value': 'girl'}] +from applications.common.utils.validate import xss_escape +from applications.extensions import db +from applications.models import DictType, DictData, DictTypeSchema, DictDataSchema +from applications.common.curd import model_to_dicts def get_dict(typecode: str): - Dict_list = [] + dict_list = [] if DictType.query.filter_by(type_code=typecode, enable=1).first(): - Dicts = DictData.query.filter_by(type_code=typecode, enable=1).all() - for d in Dicts: - Dict_Dict = {"key": d.data_label, "value": d.data_value} - Dict_list.append(Dict_Dict) + dicts = DictData.query.filter_by(type_code=typecode, enable=1).all() + for d in dicts: + dict_dict = {"key": d.data_label, "value": d.data_value} + dict_list.append(dict_dict) else: return None - return Dict_list + return dict_list def get_dict_type(page, limit, type_name): @@ -45,7 +37,7 @@ def get_dict_data(page, limit, type_code): return dict_dict, count -# 增加dicttype +# 增加 dict type def save_dict_type(req_json): description = xss_escape(req_json.get("description")) enable = xss_escape(req_json.get("enable")) diff --git a/applications/service/admin/file_curd.py b/applications/common/admin/file_curd.py similarity index 65% rename from applications/service/admin/file_curd.py rename to applications/common/admin/file_curd.py index 3369d42fc389ab922fde609173de837e9511c95c..dd1fa53d8ccf41a76d08fa9cca9e53d9581a01ab 100644 --- a/applications/service/admin/file_curd.py +++ b/applications/common/admin/file_curd.py @@ -1,16 +1,17 @@ import os from flask import current_app from sqlalchemy import desc -from applications.models import db -from applications.models.admin_photo import Photo, PhotoSchema -from applications.service.common.curd import model_to_dicts -from applications.service.upload import photos + +from applications.common.utils.upload import photos +from applications.extensions import db +from applications.models import Photo, PhotoSchema +from applications.common.curd import model_to_dicts def get_photo(page, limit): photo = Photo.query.order_by(desc(Photo.create_time)).paginate(page=page, per_page=limit, error_out=False) count = Photo.query.count() - data = model_to_dicts(Schema=PhotoSchema,model=photo.items) + data = model_to_dicts(Schema=PhotoSchema, model=photo.items) return data, count @@ -26,9 +27,9 @@ def upload_one(photo, mime): return file_url -def delete_photo_by_id(id): - photo_name = Photo.query.filter_by(id=id).first().name - photo = Photo.query.filter_by(id=id).delete() +def delete_photo_by_id(_id): + photo_name = Photo.query.filter_by(id=_id).first().name + photo = Photo.query.filter_by(id=_id).delete() db.session.commit() upload_url = current_app.config.get("UPLOADED_PHOTOS_DEST") os.remove(upload_url + '/' + photo_name) diff --git a/applications/service/admin/index_curd.py b/applications/common/admin/index_curd.py similarity index 98% rename from applications/service/admin/index_curd.py rename to applications/common/admin/index_curd.py index 3567a8270ec2d8245bed4683530ed94f230f0285..ddaa1ce33f381932649081048a5aa1f5326f5d0c 100644 --- a/applications/service/admin/index_curd.py +++ b/applications/common/admin/index_curd.py @@ -1,8 +1,9 @@ from io import BytesIO from flask import session, make_response, current_app from flask_login import current_user + +from applications.common.utils.gen_captcha import gen_captcha from applications.models.admin_power import PowerSchema -from applications.service.captcha import gen_captcha # 授权路由存入session diff --git a/applications/service/admin/power_curd.py b/applications/common/admin/power_curd.py similarity index 93% rename from applications/service/admin/power_curd.py rename to applications/common/admin/power_curd.py index c63c4d8f1da1f709c491cee6134e229f1627da28..da7c9d0f6f51107c55920d4720ebaec730da8ec4 100644 --- a/applications/service/admin/power_curd.py +++ b/applications/common/admin/power_curd.py @@ -1,8 +1,8 @@ -from applications.models import db +from applications.common.utils.validate import xss_escape +from applications.extensions import db from applications.models.admin_power import Power, PowerSchema2 -from applications.models.admin_role import Role -from applications.service.common.curd import model_to_dicts -from applications.service.common.validate import xss_escape +from applications.models import Role +from applications.common.curd import model_to_dicts def get_power_dict(): @@ -10,6 +10,7 @@ def get_power_dict(): res = model_to_dicts(Schema=PowerSchema2, model=power) return res + # 选择父节点 def select_parent(): power = Power.query.all() diff --git a/applications/service/admin/role_curd.py b/applications/common/admin/role_curd.py similarity index 93% rename from applications/service/admin/role_curd.py rename to applications/common/admin/role_curd.py index 915362cdd817a1412fda61976d2fc45d93f29308..22c06ef674635f67e419d76624c18aab5140b11e 100644 --- a/applications/service/admin/role_curd.py +++ b/applications/common/admin/role_curd.py @@ -1,12 +1,13 @@ from sqlalchemy import and_ -from applications.models import db -from applications.models.admin_role import Role, RoleSchema + +from applications.common.utils.validate import xss_escape +from applications.extensions import db +from applications.models import Role, RoleSchema from applications.models.admin_power import Power, PowerSchema2 -from applications.models.admin_user import User +from applications.models import User # 获取角色对象 -from applications.service.common.curd import model_to_dicts -from applications.service.common.validate import xss_escape +from applications.common.curd import model_to_dicts def get_role_data(page, limit, filters): diff --git a/applications/service/admin/user_curd.py b/applications/common/admin/user_curd.py similarity index 81% rename from applications/service/admin/user_curd.py rename to applications/common/admin/user_curd.py index 8ab8ed230add1f68c1fd2914240671f51acab60d..2fb4ab94acbb2a16d5e3bc5797927e81a81f9314 100644 --- a/applications/service/admin/user_curd.py +++ b/applications/common/admin/user_curd.py @@ -1,33 +1,33 @@ from flask import jsonify from flask_login import current_user from sqlalchemy import and_, desc -from applications.models import db -from applications.models.admin_user import User, UserSchema -from applications.models.admin_role import Role -from applications.models.admin_log import AdminLog +from applications.extensions import db +from applications.models import User, UserSchema +from applications.models import Role +from applications.models import AdminLog +# 获取用户的 sqlalchemy 对象分页器 +from applications.common.curd import model_to_dicts -# 获取用户的sqlalchemy对象分页器 -from applications.service.common.curd import model_to_dicts - -def get_user_data(page, limit, filters,deptId): +def get_user_data(page, limit, filters, deptId): if deptId: - user = User.query.filter_by(dept_id=deptId).filter(and_(*[getattr(User, k).like(v) for k, v in filters.items()])).paginate(page=page, - per_page=limit, - error_out=False) + user = User.query.filter_by(dept_id=deptId).filter( + and_(*[getattr(User, k).like(v) for k, v in filters.items()])).paginate(page=page, + per_page=limit, + error_out=False) else: user = User.query.filter(and_(*[getattr(User, k).like(v) for k, v in filters.items()])).paginate(page=page, - per_page=limit, - error_out=False) + per_page=limit, + error_out=False) count = User.query.count() return user, count # 获取用户的dict数据分页器 -def get_user_data_dict(page, limit, filters,deptId): - user, count = get_user_data(page, limit, filters,deptId) - data = model_to_dicts(Schema=UserSchema,model=user.items) +def get_user_data_dict(page, limit, filters, deptId): + user, count = get_user_data(page, limit, filters, deptId) + data = model_to_dicts(Schema=UserSchema, model=user.items) return data, count @@ -76,7 +76,7 @@ def update_avatar(url): # 更新用户信息 def update_user(id, username, realname, deptId): - user = User.query.filter_by(id=id).update({'username': username, 'realname': realname,'dept_id':deptId}) + user = User.query.filter_by(id=id).update({'username': username, 'realname': realname, 'dept_id': deptId}) db.session.commit() return user diff --git a/applications/service/admin_log.py b/applications/common/admin_log.py similarity index 86% rename from applications/service/admin_log.py rename to applications/common/admin_log.py index 2b59a0061bedee3e63486dc09c170ebbf23a5e1a..1ef10dc359ebd16a85eb686c76b9c8d586c8d05e 100644 --- a/applications/service/admin_log.py +++ b/applications/common/admin_log.py @@ -1,10 +1,10 @@ from flask_login import current_user -from applications.models import db -from applications.models.admin_log import AdminLog +from applications.extensions import db +from applications.models import AdminLog -def login_log(request,uid, is_access): +def login_log(request, uid, is_access): info = { 'method': request.method, 'url': request.path, @@ -22,7 +22,7 @@ def login_log(request,uid, is_access): desc=info.get('desc'), uid=info.get('uid'), method=info.get('method'), - success = info.get('success') + success=info.get('success') ) db.session.add(log) db.session.flush() @@ -38,7 +38,7 @@ def admin_log(request, is_access): 'user_agent': request.headers.get('User-Agent'), 'desc': str(dict(request.values)), 'uid': current_user.id, - 'success':int(is_access) + 'success': int(is_access) } log = AdminLog( diff --git a/applications/service/common/curd.py b/applications/common/curd.py similarity index 100% rename from applications/service/common/curd.py rename to applications/common/curd.py diff --git a/applications/common/setting.py b/applications/common/setting.py new file mode 100644 index 0000000000000000000000000000000000000000..2374dfe7bc5a4c3ca8ba9151b48bddc823534ab2 --- /dev/null +++ b/applications/common/setting.py @@ -0,0 +1,17 @@ +# +MYSQL_HOST = '127.0.0.1' +MYSQL_PORT = '3306' +MYSQL_DATABASE = 'PearAdminFlask' +MYSQL_USERNAME = 'root' +MYSQL_PASSWORD = 'root' + +MYSQL_DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME, + password=PASSWORD, + host=HOST, + port=PORT, + db=DATABASE) + +SQLALCHEMY_DATABASE_URI = MYSQL_DB_URI +SQLALCHEMY_TRACK_MODIFICATIONS = True +SQLALCHEMY_ECHO = False +SQLALCHEMY_POOL_RECYCLE = 8 diff --git a/applications/service/captcha.py b/applications/common/utils/gen_captcha.py similarity index 35% rename from applications/service/captcha.py rename to applications/common/utils/gen_captcha.py index 568058d530c2200aa18bdf84231391bd8e819c00..622a6e174caf7d8a9d3b44a784993e3e053553e7 100644 --- a/applications/service/captcha.py +++ b/applications/common/utils/gen_captcha.py @@ -1,26 +1,14 @@ from captcha.image import ImageCaptcha -from PIL import Image -import random - -# 定义随机方法 -def random_captcha(): - # 定义一个容器 - captcha_text = [] - for i in range(4): - # 定义验证码字符 - c = random.choice(['0', '1', '2', '4', '6', '8']) - captcha_text.append(c) - # 返回一个随机生成的字符串 - return ''.join(captcha_text) +from PIL import Image +from random import choices -# 生成验证码方法 -def gen_captcha(): - # 定义图片对象 +def gen_captcha(content='0123456789'): + """ 生成验证码 """ image = ImageCaptcha() # 获取字符串 - captcha_text = random_captcha() + captcha_text = "".join(choices(content, k=4)) # 生成图像 captcha_image = Image.open(image.generate(captcha_text)) return captcha_text, captcha_image diff --git a/applications/service/common/response.py b/applications/common/utils/http.py similarity index 54% rename from applications/service/common/response.py rename to applications/common/utils/http.py index 5c793618dbbfc29affb282e488594e476184be2a..2a318777c8e41b57aeedd6e094f8d822ff869caa 100644 --- a/applications/service/common/response.py +++ b/applications/common/utils/http.py @@ -1,38 +1,20 @@ from flask import jsonify -''' -成功响应 - -默认值”成功“ - -''' - def success_api(msg: str = "成功"): - return jsonify(success=True, msg=msg) - - -''' - -失败响应 -默认值“失败” - -''' + """ 成功响应 默认值”成功“ """ + return jsonify(success=True, message=msg) def fail_api(msg: str = "失败"): - return jsonify(success=False, msg=msg) - -''' - -动态表格渲染响应 - -''' + """ 失败响应 默认值“失败” """ + return jsonify(success=False, message=msg) def table_api(msg: str = "", count=0, data=None, limit=10): + """ 动态表格渲染响应 """ res = { - 'msg': msg, + 'message': msg, 'code': 0, 'data': data, 'count': count, diff --git a/applications/service/route_auth.py b/applications/common/utils/rights.py similarity index 93% rename from applications/service/route_auth.py rename to applications/common/utils/rights.py index 2cfbaecf227b27064e95ee3a1874824b8a1cbe41..024387235df1ec5c46abdff666279293d14da1b9 100644 --- a/applications/service/route_auth.py +++ b/applications/common/utils/rights.py @@ -1,7 +1,7 @@ from functools import wraps from flask import abort, request, jsonify, session from flask_login import login_required -from applications.service.admin_log import admin_log +from applications.common.admin_log import admin_log def authorize(power: str, log: bool = False): diff --git a/applications/service/upload.py b/applications/common/utils/upload.py similarity index 100% rename from applications/service/upload.py rename to applications/common/utils/upload.py diff --git a/applications/service/common/validate.py b/applications/common/utils/validate.py similarity index 100% rename from applications/service/common/validate.py rename to applications/common/utils/validate.py diff --git a/applications/config/database.py b/applications/config/database.py deleted file mode 100644 index ead3bba61a41de17d430483b5defc025b4db4c98..0000000000000000000000000000000000000000 --- a/applications/config/database.py +++ /dev/null @@ -1,13 +0,0 @@ -# 数据库连接 -HOST = '127.0.0.1' -PORT = '3306' -DATABASE = 'PearAdminFlask' -USERNAME = 'root' -PASSWORD = 'root' - -DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME,password=PASSWORD, host=HOST,port=PORT, db=DATABASE) - -SQLALCHEMY_DATABASE_URI = DB_URI -SQLALCHEMY_TRACK_MODIFICATIONS = True -SQLALCHEMY_ECHO = False -SQLALCHEMY_POOL_RECYCLE=8 \ No newline at end of file diff --git a/applications/configs/__init__.py b/applications/configs/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8dcce20965c57329184904ddc409c83ad1fa464b --- /dev/null +++ b/applications/configs/__init__.py @@ -0,0 +1 @@ +from .config import config diff --git a/applications/config/common.py b/applications/configs/common.py similarity index 87% rename from applications/config/common.py rename to applications/configs/common.py index b37df83d12ce58ca0b3d87d61f1f92f95846b881..a58c9eedf3dcbde215c13e2195f194253e68827b 100644 --- a/applications/config/common.py +++ b/applications/configs/common.py @@ -17,9 +17,6 @@ SYSTEM_PANEL_LINKS = [ "href": "https://gitee.com/Jmysy/Pear-Admin-Layui" } ] -# 密钥 -# 密钥配置(flask session需要) 记得修改 -SECRET_KEY = 'pear-admin-flask' UPLOADED_PHOTOS_DEST = 'static/upload' UPLOADED_FILES_ALLOW = ['gif', 'jpg'] diff --git a/applications/configs/config.py b/applications/configs/config.py new file mode 100644 index 0000000000000000000000000000000000000000..bc40b9685d7c6d9030143529fb3c80f4a8290ea8 --- /dev/null +++ b/applications/configs/config.py @@ -0,0 +1,49 @@ +import logging +import os + + +class BaseConfig: + SECRET_KEY = os.getenv('SECRET_KEY', 'dev key') + + # redis配置 + REDIS_HOST = os.getenv('REDIS_HOST') or "127.0.0.1" + REDIS_PORT = int(os.getenv('REDIS_PORT') or 6379) + + # mysql 配置 + MYSQL_USERNAME = os.getenv('MYSQL_USERNAME') or "root" + MYSQL_PASSWORD = os.getenv('MYSQL_PASSWORD') or "123456" + MYSQL_HOST = os.getenv('MYSQL_HOST') or "127.0.0.1" + MYSQL_PORT = int(os.getenv('MYSQL_PORT') or 3306) + MYSQL_DATABASE = os.getenv('MYSQL_DATABASE') or "PearAdminFlask" + + # mysql 数据库的配置信息 + SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{MYSQL_USERNAME}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}" + # 默认日志等级 + LOG_LEVEL = logging.WARN + + +class TestingConfig(BaseConfig): + """ 测试配置 """ + SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:' # 内存数据库 + + +class DevelopmentConfig(BaseConfig): + """ 开发配置 """ + SQLALCHEMY_TRACK_MODIFICATIONS = True + SQLALCHEMY_ECHO = False + + +class ProductionConfig(BaseConfig): + """生成环境配置""" + SQLALCHEMY_TRACK_MODIFICATIONS = False + SQLALCHEMY_ECHO = False + SQLALCHEMY_POOL_RECYCLE = 8 + + LOG_LEVEL = logging.ERROR + + +config = { + 'development': DevelopmentConfig, + 'testing': TestingConfig, + 'production': ProductionConfig +} diff --git a/applications/extensions/__init__.py b/applications/extensions/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..bb47071bddbed5e80e25af19271caf88915ec667 --- /dev/null +++ b/applications/extensions/__init__.py @@ -0,0 +1,15 @@ +from flask import Flask + +from .init_sqlalchemy import db, ma, init_databases +from .init_login import init_login_manager +from .init_debug_tool import init_debug_tool +from .init_template_directives import init_template_directives +from .init_error_views import init_error_views + + +def init_plugs(app: Flask) -> None: + init_debug_tool(app) + init_login_manager(app) + init_databases(app) + init_template_directives(app) + init_error_views(app) diff --git a/applications/service/debug_tool.py b/applications/extensions/init_debug_tool.py similarity index 67% rename from applications/service/debug_tool.py rename to applications/extensions/init_debug_tool.py index 2553e94b1f562d238325a269ac74c8b0daa7dcc4..8182457bbad5d5f9bbd60ff4e022c858b662720f 100644 --- a/applications/service/debug_tool.py +++ b/applications/extensions/init_debug_tool.py @@ -1,6 +1,7 @@ +from flask import Flask from flask_debugtoolbar import DebugToolbarExtension -def open_debug_tool(app): +def init_debug_tool(app: Flask): toolbar = DebugToolbarExtension() toolbar.init_app(app) diff --git a/applications/extensions/init_dotenv.py b/applications/extensions/init_dotenv.py new file mode 100644 index 0000000000000000000000000000000000000000..dd90d481f978692dc98c7dfb08e534d69a11a648 --- /dev/null +++ b/applications/extensions/init_dotenv.py @@ -0,0 +1,12 @@ +import os +from dotenv import load_dotenv + +root_path = os.path.abspath(os.path.dirname(__file__)).split('applications')[0] +dot_env_path = os.path.join(root_path, '.env') +flask_env_path = os.path.join(root_path, '.flaskenv') + +if os.path.exists(dot_env_path): + load_dotenv(dot_env_path) + +if os.path.exists(flask_env_path): + load_dotenv(flask_env_path) diff --git a/applications/views/admin/error.py b/applications/extensions/init_error_views.py similarity index 93% rename from applications/views/admin/error.py rename to applications/extensions/init_error_views.py index fa9dfd87f43476e2f4fde03fa3802a50f5fbd82d..da8e51960ffd1d9a3b14267ac4c78ffe9ba76623 100644 --- a/applications/views/admin/error.py +++ b/applications/extensions/init_error_views.py @@ -1,8 +1,7 @@ from flask import render_template -def init_error(app): - +def init_error_views(app): @app.errorhandler(403) def page_not_found(e): return render_template('errors/403.html'), 403 diff --git a/applications/service/login.py b/applications/extensions/init_login.py similarity index 80% rename from applications/service/login.py rename to applications/extensions/init_login.py index 9740c2a7ec0064ea037c563f4cca97922dd79614..c4bf90a1c2dcdf782d46522fb745fa5bb816617f 100644 --- a/applications/service/login.py +++ b/applications/extensions/init_login.py @@ -1,7 +1,7 @@ from flask_login import LoginManager -def init_flask_login(app): +def init_login_manager(app): login_manager = LoginManager() login_manager.init_app(app) @@ -10,6 +10,6 @@ def init_flask_login(app): @login_manager.user_loader def load_user(user_id): - from applications.models.admin_user import User + from applications.models import User user = User.query.get(int(user_id)) return user diff --git a/applications/extensions/init_sqlalchemy.py b/applications/extensions/init_sqlalchemy.py new file mode 100644 index 0000000000000000000000000000000000000000..40900415c448d7a8aa036b42e91f34408c1530f7 --- /dev/null +++ b/applications/extensions/init_sqlalchemy.py @@ -0,0 +1,54 @@ +from flask import Flask +from flask_sqlalchemy import SQLAlchemy +from flask_marshmallow import Marshmallow +from marshmallow import fields +from marshmallow.validate import ( + URL, Email, Range, Length, Equal, Regexp, + Predicate, NoneOf, OneOf, ContainsOnly +) + +URL.default_message = '无效的链接' +Email.default_message = '无效的邮箱地址' +Range.message_min = '不能小于{min}' +Range.message_max = '不能小于{max}' +Range.message_all = '不能超过{min}和{max}这个范围' +Length.message_min = '长度不得小于{min}位' +Length.message_max = '长度不得大于{max}位' +Length.message_all = '长度不能超过{min}和{max}这个范围' +Length.message_equal = '长度必须等于{equal}位' +Equal.default_message = '必须等于{other}' +Regexp.default_message = '非法输入' +Predicate.default_message = '非法输入' +NoneOf.default_message = '非法输入' +OneOf.default_message = '无效的选择' +ContainsOnly.default_message = '一个或多个无效的选择' + +fields.Field.default_error_messages = { + "required": "缺少必要数据", + "null": "数据不能为空", + "validator_failed": "非法数据", +} + +fields.Str.default_error_messages = { + 'invalid': "不是合法文本" +} + +fields.Int.default_error_messages = { + "invalid": "不是合法整数" +} + +fields.Number.default_error_messages = { + "invalid": "不是合法数字" +} + +fields.Boolean.default_error_messages = { + "invalid": "不是合法布尔值" +} + +db = SQLAlchemy() +ma = Marshmallow() + + +def init_databases(app: Flask): + db.init_app(app) + ma.init_app(app) diff --git a/applications/views/admin/context_processor.py b/applications/extensions/init_template_directives.py similarity index 79% rename from applications/views/admin/context_processor.py rename to applications/extensions/init_template_directives.py index efd5bc4f6a67210a236c6efd2b260c77d5bbcca0..bdfee676c2d1c100303d5f07873b58cd7e57a68b 100644 --- a/applications/views/admin/context_processor.py +++ b/applications/extensions/init_template_directives.py @@ -1,7 +1,7 @@ from flask import session -def init_template_global(app): +def init_template_directives(app): @app.template_global() def authorize(power): return bool(power in session.get('permissions')) diff --git a/applications/models/__init__.py b/applications/models/__init__.py index da71425469c7f9a67bbf70545d8d5f0e2ebdfed1..fb5040376430831bc7effd9d93cccc03c46ab2be 100644 --- a/applications/models/__init__.py +++ b/applications/models/__init__.py @@ -1,47 +1,9 @@ -from flask_sqlalchemy import SQLAlchemy -from flask_marshmallow import Marshmallow -from marshmallow import fields -from marshmallow.validate import ( - URL, Email, Range, Length, Equal, Regexp, - Predicate, NoneOf, OneOf, ContainsOnly -) - -URL.default_message = '无效的链接' -Email.default_message = '无效的邮箱地址' -Range.message_min = '不能小于{min}' -Range.message_max = '不能小于{max}' -Range.message_all = '不能超过{min}和{max}这个范围' -Length.message_min = '长度不得小于{min}位' -Length.message_max = '长度不得大于{max}位' -Length.message_all = '长度不能超过{min}和{max}这个范围' -Length.message_equal = '长度必须等于{equal}位' -Equal.default_message = '必须等于{other}' -Regexp.default_message = '非法输入' -Predicate.default_message = '非法输入' -NoneOf.default_message = '非法输入' -OneOf.default_message = '无效的选择' -ContainsOnly.default_message = '一个或多个无效的选择' - -fields.Field.default_error_messages = { - "required": "缺少必要数据", - "null": "数据不能为空", - "validator_failed": "非法数据", -} - -fields.Str.default_error_messages = { - 'invalid': "不是合法文本" -} - -fields.Int.default_error_messages = { - "invalid": "不是合法整数" -} - -fields.Number.default_error_messages = { - "invalid": "不是合法数字" -} - -fields.Boolean.default_error_messages = { - "invalid": "不是合法布尔值" -} -db = SQLAlchemy() -ma = Marshmallow() +from .admin_dept import Dept, DeptSchema +from .admin_dict import DictType, DictData, DictTypeSchema, DictDataSchema +from .admin_log import AdminLog, LogSchema +from .admin_photo import Photo, PhotoSchema +from .admin_power import Power, PowerSchema, PowerSchema2 +from .admin_role import Role, RoleSchema +from .admin_role_power import role_power +from .admin_user import User, UserSchema +from .admin_user_role import user_role diff --git a/applications/models/admin_dept.py b/applications/models/admin_dept.py index 072d1030e70fe89c739f34dc8083d5108e6a0ffd..b4826e6841eb40577b5847d3e5486e966e080963 100644 --- a/applications/models/admin_dept.py +++ b/applications/models/admin_dept.py @@ -1,6 +1,6 @@ import datetime -from applications.models import db, ma -from marshmallow import fields,validate +from applications.extensions import db, ma +from marshmallow import fields, validate class Dept(db.Model): diff --git a/applications/models/admin_dict.py b/applications/models/admin_dict.py index 36bd00d5e8147fdf6e2f15ab1b9f509245242e9a..29da3c0e599ffca5099c55c07497f345f5a8bdb4 100644 --- a/applications/models/admin_dict.py +++ b/applications/models/admin_dict.py @@ -1,6 +1,6 @@ import datetime -from applications.models import db, ma +from applications.extensions import db, ma from marshmallow import fields diff --git a/applications/models/admin_log.py b/applications/models/admin_log.py index af85433d154d311785a9cff7ae26e4283d1c2bd0..d2339bbf5aca73a612dd3bbfef3b9c5ab873ff14 100644 --- a/applications/models/admin_log.py +++ b/applications/models/admin_log.py @@ -1,5 +1,5 @@ import datetime -from applications.models import db, ma +from applications.extensions import db, ma from marshmallow import fields diff --git a/applications/models/admin_photo.py b/applications/models/admin_photo.py index 32a19360213614cf0274dfaf20d3b164787cc0b2..299e932e87333c30b6fd57333638f723125f444a 100644 --- a/applications/models/admin_photo.py +++ b/applications/models/admin_photo.py @@ -1,6 +1,6 @@ import datetime -from applications.models import db, ma +from applications.extensions import db, ma from marshmallow import fields diff --git a/applications/models/admin_power.py b/applications/models/admin_power.py index 031069f2b811ce48dd7de357555609eed66aecc1..d0835b7233970ef4ffc486b740bd4eb1072e853c 100644 --- a/applications/models/admin_power.py +++ b/applications/models/admin_power.py @@ -1,5 +1,5 @@ import datetime -from applications.models import db, ma +from applications.extensions import db, ma from marshmallow import fields @@ -47,4 +47,3 @@ class PowerSchema2(ma.Schema): # 序列化类 create_time = fields.DateTime() update_time = fields.DateTime() enable = fields.Integer() - diff --git a/applications/models/admin_role.py b/applications/models/admin_role.py index 171c153ff35bc5f17bb097f5016a040f6fb62ad9..802d4ffe26e9fc38c33696ec16433433d0165882 100644 --- a/applications/models/admin_role.py +++ b/applications/models/admin_role.py @@ -1,7 +1,6 @@ import datetime -from applications.models import db, ma +from applications.extensions import db, ma from marshmallow import fields -from applications.models import admin_role_power class Role(db.Model): diff --git a/applications/models/admin_role_power.py b/applications/models/admin_role_power.py index ab17c6aa18b34815385cd30b75dfcf6a5a2a99fb..975895323e3d3294545c6f4829a96c0c737d21e9 100644 --- a/applications/models/admin_role_power.py +++ b/applications/models/admin_role_power.py @@ -1,8 +1,9 @@ -from applications.models import db +from applications.extensions import db + # 创建中间表 role_power = db.Table( "admin_role_power", # 中间表名称 db.Column("id", db.Integer, primary_key=True, autoincrement=True, comment='标识'), # 主键 db.Column("power_id", db.Integer, db.ForeignKey("admin_power.id"), comment='用户编号'), # 属性 外键 db.Column("role_id", db.Integer, db.ForeignKey("admin_role.id"), comment='角色编号'), # 属性 外键 -) \ No newline at end of file +) diff --git a/applications/models/admin_user.py b/applications/models/admin_user.py index 4a8b3e229938c38c36883e9edc086f0c7eed06ef..0883e77cb72a80788be1c2624560b5f252cf4865 100644 --- a/applications/models/admin_user.py +++ b/applications/models/admin_user.py @@ -1,10 +1,9 @@ import datetime from flask_login import UserMixin from werkzeug.security import generate_password_hash, check_password_hash -from applications.models import db, ma +from applications.extensions import db, ma from marshmallow import fields -from applications.models import admin_user_role -from applications.models.admin_dept import Dept +from applications.models import Dept class User(db.Model, UserMixin): @@ -43,4 +42,3 @@ class UserSchema(ma.Schema): return Dept.query.filter_by(id=obj.dept_id).first().dept_name else: return None - diff --git a/applications/models/admin_user_role.py b/applications/models/admin_user_role.py index 361a9233f1408bb810994c5f0dc3fe1a6d099d5a..b293329ae2244fce173e83447a0380306243ecc6 100644 --- a/applications/models/admin_user_role.py +++ b/applications/models/admin_user_role.py @@ -1,4 +1,5 @@ -from applications.models import db +from applications.extensions import db + # 创建中间表 user_role = db.Table( "admin_user_role", # 中间表名称 diff --git a/applications/service/origina_mysql.py b/applications/service/origina_mysql.py deleted file mode 100644 index dfc718b53c07ab4496d9e16e4300a37ddc9725e8..0000000000000000000000000000000000000000 --- a/applications/service/origina_mysql.py +++ /dev/null @@ -1,106 +0,0 @@ -import datetime -import json - -import pymysql -from applications.config.database import HOST, USERNAME, PASSWORD, DATABASE, PORT - -DB_CONFIG = { - "host": HOST, - "port": int(PORT), - "user": USERNAME, - "password": PASSWORD, - "db": DATABASE, - "charset": "utf8" -} - - -class SQLManager(object): - - # 初始化实例方法 - def __init__(self): - self.conn = None - self.cursor = None - self.connect() - - # 连接数据库 - def connect(self): - self.conn = pymysql.connect( - host=DB_CONFIG.get('host'), - port=DB_CONFIG.get('port'), - user=DB_CONFIG.get('user'), - passwd=DB_CONFIG.get('password'), - db=DB_CONFIG.get('db'), - ) - self.cursor = self.conn.cursor(cursor=pymysql.cursors.DictCursor) - - # 查询多条数据 - - def get_list(self, sql, args=None): - self.cursor.execute(sql, args) - result = self.cursor.fetchall() - return result - - # 查询多条数据后关闭 - def get_list_close(self, sql, args=None): - self.cursor.execute(sql, args) - result = self.cursor.fetchall() - self.close() - return result - - # 查询单条数据 - def get_one(self, sql, args=None): - self.cursor.execute(sql, args) - result = self.cursor.fetchone() - return result - - # 查询单条数据后关闭 - def get_one_close(self, sql, args=None): - self.cursor.execute(sql, args) - result = self.cursor.fetchone() - self.close() - return result - - # 执行单条SQL语句 - def moddify(self, sql, args=None): - self.cursor.execute(sql, args) - self.conn.commit() - - # 执行多条SQL语句 - def multi_modify(self, sql, args=None): - self.cursor.executemany(sql, args) - self.conn.commit() - - # 创建单条记录的语句 - def create(self, sql, args=None): - self.cursor.execute(sql, args) - self.conn.commit() - last_id = self.cursor.lastrowid - return last_id - - # 关闭数据库cursor和连接 - def close(self): - self.cursor.close() - self.conn.close() - - # 进入with语句自动执行 - def __enter__(self): - return self - - # 退出with语句块自动执行 - def __exit__(self, exc_type, exc_val, exc_tb): - self.close() - - -""" -原生查询dict的datetime解析器 -用法 -json.dumps(dictxxx, cls=DateEncoder) -""" - - -class DateEncoder(json.JSONEncoder): - def default(self, obj): - if isinstance(obj, datetime.datetime): - return obj.strftime("%Y-%m-%d %H:%M:%S") - else: - return json.JSONEncoder.default(self, obj) diff --git a/static/admin/admin/css/admin.css b/applications/static/admin/admin/css/admin.css similarity index 100% rename from static/admin/admin/css/admin.css rename to applications/static/admin/admin/css/admin.css diff --git a/static/admin/admin/css/load.css b/applications/static/admin/admin/css/load.css similarity index 100% rename from static/admin/admin/css/load.css rename to applications/static/admin/admin/css/load.css diff --git a/static/admin/admin/css/other/console1.css b/applications/static/admin/admin/css/other/console1.css similarity index 100% rename from static/admin/admin/css/other/console1.css rename to applications/static/admin/admin/css/other/console1.css diff --git a/static/admin/admin/css/other/console2.css b/applications/static/admin/admin/css/other/console2.css similarity index 100% rename from static/admin/admin/css/other/console2.css rename to applications/static/admin/admin/css/other/console2.css diff --git a/static/admin/admin/css/other/department.css b/applications/static/admin/admin/css/other/department.css similarity index 100% rename from static/admin/admin/css/other/department.css rename to applications/static/admin/admin/css/other/department.css diff --git a/static/admin/admin/css/other/error.css b/applications/static/admin/admin/css/other/error.css similarity index 100% rename from static/admin/admin/css/other/error.css rename to applications/static/admin/admin/css/other/error.css diff --git a/static/admin/admin/css/other/icon.css b/applications/static/admin/admin/css/other/icon.css similarity index 100% rename from static/admin/admin/css/other/icon.css rename to applications/static/admin/admin/css/other/icon.css diff --git a/static/admin/admin/css/other/login.css b/applications/static/admin/admin/css/other/login.css similarity index 100% rename from static/admin/admin/css/other/login.css rename to applications/static/admin/admin/css/other/login.css diff --git a/static/admin/admin/css/other/person.css b/applications/static/admin/admin/css/other/person.css similarity index 100% rename from static/admin/admin/css/other/person.css rename to applications/static/admin/admin/css/other/person.css diff --git a/static/admin/admin/css/other/result.css b/applications/static/admin/admin/css/other/result.css similarity index 100% rename from static/admin/admin/css/other/result.css rename to applications/static/admin/admin/css/other/result.css diff --git a/static/admin/admin/css/other/user.css b/applications/static/admin/admin/css/other/user.css similarity index 100% rename from static/admin/admin/css/other/user.css rename to applications/static/admin/admin/css/other/user.css diff --git a/static/admin/admin/data/card.json b/applications/static/admin/admin/data/card.json similarity index 100% rename from static/admin/admin/data/card.json rename to applications/static/admin/admin/data/card.json diff --git a/static/admin/admin/data/dataMenu.json b/applications/static/admin/admin/data/dataMenu.json similarity index 100% rename from static/admin/admin/data/dataMenu.json rename to applications/static/admin/admin/data/dataMenu.json diff --git a/static/admin/admin/data/dataTree2.json b/applications/static/admin/admin/data/dataTree2.json similarity index 100% rename from static/admin/admin/data/dataTree2.json rename to applications/static/admin/admin/data/dataTree2.json diff --git a/static/admin/admin/data/dictData.json b/applications/static/admin/admin/data/dictData.json similarity index 100% rename from static/admin/admin/data/dictData.json rename to applications/static/admin/admin/data/dictData.json diff --git a/static/admin/admin/data/dictType.json b/applications/static/admin/admin/data/dictType.json similarity index 100% rename from static/admin/admin/data/dictType.json rename to applications/static/admin/admin/data/dictType.json diff --git a/static/admin/admin/data/dtree.json b/applications/static/admin/admin/data/dtree.json similarity index 100% rename from static/admin/admin/data/dtree.json rename to applications/static/admin/admin/data/dtree.json diff --git a/static/admin/admin/data/loginLog.json b/applications/static/admin/admin/data/loginLog.json similarity index 100% rename from static/admin/admin/data/loginLog.json rename to applications/static/admin/admin/data/loginLog.json diff --git a/static/admin/admin/data/menu.json b/applications/static/admin/admin/data/menu.json similarity index 100% rename from static/admin/admin/data/menu.json rename to applications/static/admin/admin/data/menu.json diff --git a/static/admin/admin/data/message.json b/applications/static/admin/admin/data/message.json similarity index 100% rename from static/admin/admin/data/message.json rename to applications/static/admin/admin/data/message.json diff --git a/static/admin/admin/data/operateLog.json b/applications/static/admin/admin/data/operateLog.json similarity index 100% rename from static/admin/admin/data/operateLog.json rename to applications/static/admin/admin/data/operateLog.json diff --git a/static/admin/admin/data/organization.json b/applications/static/admin/admin/data/organization.json similarity index 100% rename from static/admin/admin/data/organization.json rename to applications/static/admin/admin/data/organization.json diff --git a/static/admin/admin/data/organizationtree.json b/applications/static/admin/admin/data/organizationtree.json similarity index 100% rename from static/admin/admin/data/organizationtree.json rename to applications/static/admin/admin/data/organizationtree.json diff --git a/static/admin/admin/data/power.json b/applications/static/admin/admin/data/power.json similarity index 100% rename from static/admin/admin/data/power.json rename to applications/static/admin/admin/data/power.json diff --git a/static/admin/admin/data/role.json b/applications/static/admin/admin/data/role.json similarity index 100% rename from static/admin/admin/data/role.json rename to applications/static/admin/admin/data/role.json diff --git a/static/admin/admin/data/table.json b/applications/static/admin/admin/data/table.json similarity index 100% rename from static/admin/admin/data/table.json rename to applications/static/admin/admin/data/table.json diff --git a/static/admin/admin/data/user.json b/applications/static/admin/admin/data/user.json similarity index 100% rename from static/admin/admin/data/user.json rename to applications/static/admin/admin/data/user.json diff --git a/static/admin/admin/images/403.svg b/applications/static/admin/admin/images/403.svg similarity index 100% rename from static/admin/admin/images/403.svg rename to applications/static/admin/admin/images/403.svg diff --git a/static/admin/admin/images/404.svg b/applications/static/admin/admin/images/404.svg similarity index 100% rename from static/admin/admin/images/404.svg rename to applications/static/admin/admin/images/404.svg diff --git a/static/admin/admin/images/500.svg b/applications/static/admin/admin/images/500.svg similarity index 100% rename from static/admin/admin/images/500.svg rename to applications/static/admin/admin/images/500.svg diff --git a/static/admin/admin/images/act.jpg b/applications/static/admin/admin/images/act.jpg similarity index 100% rename from static/admin/admin/images/act.jpg rename to applications/static/admin/admin/images/act.jpg diff --git a/static/admin/admin/images/avatar.jpg b/applications/static/admin/admin/images/avatar.jpg similarity index 100% rename from static/admin/admin/images/avatar.jpg rename to applications/static/admin/admin/images/avatar.jpg diff --git a/static/admin/admin/images/background.svg b/applications/static/admin/admin/images/background.svg similarity index 100% rename from static/admin/admin/images/background.svg rename to applications/static/admin/admin/images/background.svg diff --git a/static/admin/admin/images/captcha.gif b/applications/static/admin/admin/images/captcha.gif similarity index 100% rename from static/admin/admin/images/captcha.gif rename to applications/static/admin/admin/images/captcha.gif diff --git a/static/admin/admin/images/logo.png b/applications/static/admin/admin/images/logo.png similarity index 100% rename from static/admin/admin/images/logo.png rename to applications/static/admin/admin/images/logo.png diff --git a/static/admin/admin/images/show.png b/applications/static/admin/admin/images/show.png similarity index 100% rename from static/admin/admin/images/show.png rename to applications/static/admin/admin/images/show.png diff --git a/static/admin/component/code/css/style.css b/applications/static/admin/component/code/css/style.css similarity index 100% rename from static/admin/component/code/css/style.css rename to applications/static/admin/component/code/css/style.css diff --git a/static/admin/component/code/index.html b/applications/static/admin/component/code/index.html similarity index 100% rename from static/admin/component/code/index.html rename to applications/static/admin/component/code/index.html diff --git a/static/admin/component/layui/css/layui.css b/applications/static/admin/component/layui/css/layui.css similarity index 100% rename from static/admin/component/layui/css/layui.css rename to applications/static/admin/component/layui/css/layui.css diff --git a/static/admin/component/layui/css/modules/code.css b/applications/static/admin/component/layui/css/modules/code.css similarity index 100% rename from static/admin/component/layui/css/modules/code.css rename to applications/static/admin/component/layui/css/modules/code.css diff --git a/static/admin/component/layui/css/modules/laydate/default/laydate.css b/applications/static/admin/component/layui/css/modules/laydate/default/laydate.css similarity index 100% rename from static/admin/component/layui/css/modules/laydate/default/laydate.css rename to applications/static/admin/component/layui/css/modules/laydate/default/laydate.css diff --git a/static/admin/component/layui/css/modules/layer/default/icon-ext.png b/applications/static/admin/component/layui/css/modules/layer/default/icon-ext.png similarity index 100% rename from static/admin/component/layui/css/modules/layer/default/icon-ext.png rename to applications/static/admin/component/layui/css/modules/layer/default/icon-ext.png diff --git a/static/admin/component/layui/css/modules/layer/default/icon.png b/applications/static/admin/component/layui/css/modules/layer/default/icon.png similarity index 100% rename from static/admin/component/layui/css/modules/layer/default/icon.png rename to applications/static/admin/component/layui/css/modules/layer/default/icon.png diff --git a/static/admin/component/layui/css/modules/layer/default/layer.css b/applications/static/admin/component/layui/css/modules/layer/default/layer.css similarity index 100% rename from static/admin/component/layui/css/modules/layer/default/layer.css rename to applications/static/admin/component/layui/css/modules/layer/default/layer.css diff --git a/static/admin/component/layui/css/modules/layer/default/loading-0.gif b/applications/static/admin/component/layui/css/modules/layer/default/loading-0.gif similarity index 100% rename from static/admin/component/layui/css/modules/layer/default/loading-0.gif rename to applications/static/admin/component/layui/css/modules/layer/default/loading-0.gif diff --git a/static/admin/component/layui/css/modules/layer/default/loading-1.gif b/applications/static/admin/component/layui/css/modules/layer/default/loading-1.gif similarity index 100% rename from static/admin/component/layui/css/modules/layer/default/loading-1.gif rename to applications/static/admin/component/layui/css/modules/layer/default/loading-1.gif diff --git a/static/admin/component/layui/css/modules/layer/default/loading-2.gif b/applications/static/admin/component/layui/css/modules/layer/default/loading-2.gif similarity index 100% rename from static/admin/component/layui/css/modules/layer/default/loading-2.gif rename to applications/static/admin/component/layui/css/modules/layer/default/loading-2.gif diff --git a/static/admin/component/layui/font/iconfont.eot b/applications/static/admin/component/layui/font/iconfont.eot similarity index 100% rename from static/admin/component/layui/font/iconfont.eot rename to applications/static/admin/component/layui/font/iconfont.eot diff --git a/static/admin/component/layui/font/iconfont.svg b/applications/static/admin/component/layui/font/iconfont.svg similarity index 100% rename from static/admin/component/layui/font/iconfont.svg rename to applications/static/admin/component/layui/font/iconfont.svg diff --git a/static/admin/component/layui/font/iconfont.ttf b/applications/static/admin/component/layui/font/iconfont.ttf similarity index 100% rename from static/admin/component/layui/font/iconfont.ttf rename to applications/static/admin/component/layui/font/iconfont.ttf diff --git a/static/admin/component/layui/font/iconfont.woff b/applications/static/admin/component/layui/font/iconfont.woff similarity index 100% rename from static/admin/component/layui/font/iconfont.woff rename to applications/static/admin/component/layui/font/iconfont.woff diff --git a/static/admin/component/layui/font/iconfont.woff2 b/applications/static/admin/component/layui/font/iconfont.woff2 similarity index 100% rename from static/admin/component/layui/font/iconfont.woff2 rename to applications/static/admin/component/layui/font/iconfont.woff2 diff --git a/static/admin/component/layui/layui.js b/applications/static/admin/component/layui/layui.js similarity index 100% rename from static/admin/component/layui/layui.js rename to applications/static/admin/component/layui/layui.js diff --git a/static/admin/component/pear/css/module/button.css b/applications/static/admin/component/pear/css/module/button.css similarity index 100% rename from static/admin/component/pear/css/module/button.css rename to applications/static/admin/component/pear/css/module/button.css diff --git a/static/admin/component/pear/css/module/card.css b/applications/static/admin/component/pear/css/module/card.css similarity index 100% rename from static/admin/component/pear/css/module/card.css rename to applications/static/admin/component/pear/css/module/card.css diff --git a/static/admin/component/pear/css/module/code.css b/applications/static/admin/component/pear/css/module/code.css similarity index 100% rename from static/admin/component/pear/css/module/code.css rename to applications/static/admin/component/pear/css/module/code.css diff --git a/static/admin/component/pear/css/module/cropper.css b/applications/static/admin/component/pear/css/module/cropper.css similarity index 100% rename from static/admin/component/pear/css/module/cropper.css rename to applications/static/admin/component/pear/css/module/cropper.css diff --git a/static/admin/component/pear/css/module/dtree/dtree.css b/applications/static/admin/component/pear/css/module/dtree/dtree.css similarity index 100% rename from static/admin/component/pear/css/module/dtree/dtree.css rename to applications/static/admin/component/pear/css/module/dtree/dtree.css diff --git a/static/admin/component/pear/css/module/dtree/dtree.js b/applications/static/admin/component/pear/css/module/dtree/dtree.js similarity index 100% rename from static/admin/component/pear/css/module/dtree/dtree.js rename to applications/static/admin/component/pear/css/module/dtree/dtree.js diff --git a/static/admin/component/pear/css/module/dtree/font/dtreefont.css b/applications/static/admin/component/pear/css/module/dtree/font/dtreefont.css similarity index 100% rename from static/admin/component/pear/css/module/dtree/font/dtreefont.css rename to applications/static/admin/component/pear/css/module/dtree/font/dtreefont.css diff --git a/static/admin/component/pear/css/module/dtree/font/dtreefont.eot b/applications/static/admin/component/pear/css/module/dtree/font/dtreefont.eot similarity index 100% rename from static/admin/component/pear/css/module/dtree/font/dtreefont.eot rename to applications/static/admin/component/pear/css/module/dtree/font/dtreefont.eot diff --git a/static/admin/component/pear/css/module/dtree/font/dtreefont.svg b/applications/static/admin/component/pear/css/module/dtree/font/dtreefont.svg similarity index 100% rename from static/admin/component/pear/css/module/dtree/font/dtreefont.svg rename to applications/static/admin/component/pear/css/module/dtree/font/dtreefont.svg diff --git a/static/admin/component/pear/css/module/dtree/font/dtreefont.ttf b/applications/static/admin/component/pear/css/module/dtree/font/dtreefont.ttf similarity index 100% rename from static/admin/component/pear/css/module/dtree/font/dtreefont.ttf rename to applications/static/admin/component/pear/css/module/dtree/font/dtreefont.ttf diff --git a/static/admin/component/pear/css/module/dtree/font/dtreefont.woff b/applications/static/admin/component/pear/css/module/dtree/font/dtreefont.woff similarity index 100% rename from static/admin/component/pear/css/module/dtree/font/dtreefont.woff rename to applications/static/admin/component/pear/css/module/dtree/font/dtreefont.woff diff --git a/static/admin/component/pear/css/module/dtree/font/icons.json b/applications/static/admin/component/pear/css/module/dtree/font/icons.json similarity index 100% rename from static/admin/component/pear/css/module/dtree/font/icons.json rename to applications/static/admin/component/pear/css/module/dtree/font/icons.json diff --git a/static/admin/component/pear/css/module/form.css b/applications/static/admin/component/pear/css/module/form.css similarity index 100% rename from static/admin/component/pear/css/module/form.css rename to applications/static/admin/component/pear/css/module/form.css diff --git a/static/admin/component/pear/css/module/frame.css b/applications/static/admin/component/pear/css/module/frame.css similarity index 100% rename from static/admin/component/pear/css/module/frame.css rename to applications/static/admin/component/pear/css/module/frame.css diff --git a/static/admin/component/pear/css/module/iconPicker.css b/applications/static/admin/component/pear/css/module/iconPicker.css similarity index 100% rename from static/admin/component/pear/css/module/iconPicker.css rename to applications/static/admin/component/pear/css/module/iconPicker.css diff --git a/applications/static/admin/component/pear/css/module/label.css b/applications/static/admin/component/pear/css/module/label.css new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/static/admin/component/pear/css/module/layer.css b/applications/static/admin/component/pear/css/module/layer.css similarity index 100% rename from static/admin/component/pear/css/module/layer.css rename to applications/static/admin/component/pear/css/module/layer.css diff --git a/static/admin/component/pear/css/module/layout.css b/applications/static/admin/component/pear/css/module/layout.css similarity index 100% rename from static/admin/component/pear/css/module/layout.css rename to applications/static/admin/component/pear/css/module/layout.css diff --git a/static/admin/component/pear/css/module/link.css b/applications/static/admin/component/pear/css/module/link.css similarity index 100% rename from static/admin/component/pear/css/module/link.css rename to applications/static/admin/component/pear/css/module/link.css diff --git a/static/admin/component/pear/css/module/loading.css b/applications/static/admin/component/pear/css/module/loading.css similarity index 100% rename from static/admin/component/pear/css/module/loading.css rename to applications/static/admin/component/pear/css/module/loading.css diff --git a/static/admin/component/pear/css/module/menu.css b/applications/static/admin/component/pear/css/module/menu.css similarity index 100% rename from static/admin/component/pear/css/module/menu.css rename to applications/static/admin/component/pear/css/module/menu.css diff --git a/static/admin/component/pear/css/module/message.css b/applications/static/admin/component/pear/css/module/message.css similarity index 100% rename from static/admin/component/pear/css/module/message.css rename to applications/static/admin/component/pear/css/module/message.css diff --git a/static/admin/component/pear/css/module/notice.css b/applications/static/admin/component/pear/css/module/notice.css similarity index 100% rename from static/admin/component/pear/css/module/notice.css rename to applications/static/admin/component/pear/css/module/notice.css diff --git a/static/admin/component/pear/css/module/select.css b/applications/static/admin/component/pear/css/module/select.css similarity index 100% rename from static/admin/component/pear/css/module/select.css rename to applications/static/admin/component/pear/css/module/select.css diff --git a/static/admin/component/pear/css/module/step.css b/applications/static/admin/component/pear/css/module/step.css similarity index 100% rename from static/admin/component/pear/css/module/step.css rename to applications/static/admin/component/pear/css/module/step.css diff --git a/static/admin/component/pear/css/module/tab.css b/applications/static/admin/component/pear/css/module/tab.css similarity index 100% rename from static/admin/component/pear/css/module/tab.css rename to applications/static/admin/component/pear/css/module/tab.css diff --git a/static/admin/component/pear/css/module/table.css b/applications/static/admin/component/pear/css/module/table.css similarity index 100% rename from static/admin/component/pear/css/module/table.css rename to applications/static/admin/component/pear/css/module/table.css diff --git a/static/admin/component/pear/css/module/tag.css b/applications/static/admin/component/pear/css/module/tag.css similarity index 100% rename from static/admin/component/pear/css/module/tag.css rename to applications/static/admin/component/pear/css/module/tag.css diff --git a/static/admin/component/pear/css/module/topBar.css b/applications/static/admin/component/pear/css/module/topBar.css similarity index 100% rename from static/admin/component/pear/css/module/topBar.css rename to applications/static/admin/component/pear/css/module/topBar.css diff --git a/static/admin/component/pear/css/module/treetable.css b/applications/static/admin/component/pear/css/module/treetable.css similarity index 100% rename from static/admin/component/pear/css/module/treetable.css rename to applications/static/admin/component/pear/css/module/treetable.css diff --git a/static/admin/component/pear/css/pear.css b/applications/static/admin/component/pear/css/pear.css similarity index 100% rename from static/admin/component/pear/css/pear.css rename to applications/static/admin/component/pear/css/pear.css diff --git a/static/admin/component/pear/font/iconfont.css b/applications/static/admin/component/pear/font/iconfont.css similarity index 100% rename from static/admin/component/pear/font/iconfont.css rename to applications/static/admin/component/pear/font/iconfont.css diff --git a/static/admin/component/pear/font/iconfont.eot b/applications/static/admin/component/pear/font/iconfont.eot similarity index 100% rename from static/admin/component/pear/font/iconfont.eot rename to applications/static/admin/component/pear/font/iconfont.eot diff --git a/static/admin/component/pear/font/iconfont.js b/applications/static/admin/component/pear/font/iconfont.js similarity index 100% rename from static/admin/component/pear/font/iconfont.js rename to applications/static/admin/component/pear/font/iconfont.js diff --git a/static/admin/component/pear/font/iconfont.json b/applications/static/admin/component/pear/font/iconfont.json similarity index 100% rename from static/admin/component/pear/font/iconfont.json rename to applications/static/admin/component/pear/font/iconfont.json diff --git a/static/admin/component/pear/font/iconfont.svg b/applications/static/admin/component/pear/font/iconfont.svg similarity index 100% rename from static/admin/component/pear/font/iconfont.svg rename to applications/static/admin/component/pear/font/iconfont.svg diff --git a/static/admin/component/pear/font/iconfont.ttf b/applications/static/admin/component/pear/font/iconfont.ttf similarity index 100% rename from static/admin/component/pear/font/iconfont.ttf rename to applications/static/admin/component/pear/font/iconfont.ttf diff --git a/static/admin/component/pear/font/iconfont.woff b/applications/static/admin/component/pear/font/iconfont.woff similarity index 100% rename from static/admin/component/pear/font/iconfont.woff rename to applications/static/admin/component/pear/font/iconfont.woff diff --git a/static/admin/component/pear/font/iconfont.woff2 b/applications/static/admin/component/pear/font/iconfont.woff2 similarity index 100% rename from static/admin/component/pear/font/iconfont.woff2 rename to applications/static/admin/component/pear/font/iconfont.woff2 diff --git a/static/admin/component/pear/module/admin.js b/applications/static/admin/component/pear/module/admin.js similarity index 99% rename from static/admin/component/pear/module/admin.js rename to applications/static/admin/component/pear/module/admin.js index b9c937ed8a35f33f3ddc43073574c99f3d888d7a..2654a93ab4e885e8cbc197ffdb0c230333ed7721 100644 --- a/static/admin/component/pear/module/admin.js +++ b/applications/static/admin/component/pear/module/admin.js @@ -26,7 +26,7 @@ layui.define(['message', 'table', 'jquery', 'element', 'yaml', 'form', 'tab', 'm // 默认配置 var configType = 'yml'; - var configPath = 'pear.config.yml'; + var configPath = 'pear.configs.yml'; this.setConfigPath = function(path) { configPath = path; diff --git a/static/admin/component/pear/module/area.js b/applications/static/admin/component/pear/module/area.js similarity index 100% rename from static/admin/component/pear/module/area.js rename to applications/static/admin/component/pear/module/area.js diff --git a/static/admin/component/pear/module/button.js b/applications/static/admin/component/pear/module/button.js similarity index 100% rename from static/admin/component/pear/module/button.js rename to applications/static/admin/component/pear/module/button.js diff --git a/static/admin/component/pear/module/card.js b/applications/static/admin/component/pear/module/card.js similarity index 100% rename from static/admin/component/pear/module/card.js rename to applications/static/admin/component/pear/module/card.js diff --git a/static/admin/component/pear/module/common.js b/applications/static/admin/component/pear/module/common.js similarity index 100% rename from static/admin/component/pear/module/common.js rename to applications/static/admin/component/pear/module/common.js diff --git a/static/admin/component/pear/module/context.js b/applications/static/admin/component/pear/module/context.js similarity index 100% rename from static/admin/component/pear/module/context.js rename to applications/static/admin/component/pear/module/context.js diff --git a/static/admin/component/pear/module/convert.js b/applications/static/admin/component/pear/module/convert.js similarity index 100% rename from static/admin/component/pear/module/convert.js rename to applications/static/admin/component/pear/module/convert.js diff --git a/static/admin/component/pear/module/count.js b/applications/static/admin/component/pear/module/count.js similarity index 100% rename from static/admin/component/pear/module/count.js rename to applications/static/admin/component/pear/module/count.js diff --git a/static/admin/component/pear/module/cropper.js b/applications/static/admin/component/pear/module/cropper.js similarity index 100% rename from static/admin/component/pear/module/cropper.js rename to applications/static/admin/component/pear/module/cropper.js diff --git a/static/admin/component/pear/module/design.js b/applications/static/admin/component/pear/module/design.js similarity index 100% rename from static/admin/component/pear/module/design.js rename to applications/static/admin/component/pear/module/design.js diff --git a/static/admin/component/pear/module/drawer.js b/applications/static/admin/component/pear/module/drawer.js similarity index 100% rename from static/admin/component/pear/module/drawer.js rename to applications/static/admin/component/pear/module/drawer.js diff --git a/static/admin/component/pear/module/dtree.js b/applications/static/admin/component/pear/module/dtree.js similarity index 100% rename from static/admin/component/pear/module/dtree.js rename to applications/static/admin/component/pear/module/dtree.js diff --git a/static/admin/component/pear/module/echarts.js b/applications/static/admin/component/pear/module/echarts.js similarity index 99% rename from static/admin/component/pear/module/echarts.js rename to applications/static/admin/component/pear/module/echarts.js index b48c4ab3bf84f0201643428dabfe261124e2d04e..374b9893b1becc4befc845c313944d1925378cfe 100644 --- a/static/admin/component/pear/module/echarts.js +++ b/applications/static/admin/component/pear/module/echarts.js @@ -14205,8 +14205,8 @@ var isUpdate = animationType === 'update'; var isRemove = animationType === 'remove'; - var animationPayload; // Check if there is global animation configuration from dataZoom/resize can override the config in option. - // If animation is enabled. Will use this animation config in payload. + var animationPayload; // Check if there is global animation configuration from dataZoom/resize can override the configs in option. + // If animation is enabled. Will use this animation configs in payload. // If animation is disabled. Just ignore it. if (animatableModel && animatableModel.ecModel) { @@ -18731,7 +18731,7 @@ if (isArray(mediaOnRoot)) { each(mediaOnRoot, function (singleMedia) { if ("development" !== 'production') { - // Real case of wrong config. + // Real case of wrong configs. if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) { error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }'); } @@ -18748,7 +18748,7 @@ }); } else { if ("development" !== 'production') { - // Real case of wrong config. + // Real case of wrong configs. error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }'); } } @@ -19508,7 +19508,7 @@ // readonly frozen: boolean; function SourceImpl(fields) { this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []); - this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN; // Visit config + this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN; // Visit configs this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN; this.startIndex = fields.startIndex || 0; @@ -21392,18 +21392,18 @@ * source: [...] * }, { * // By default from 0. - * transform: { type: 'filter', config: {...} } + * transform: { type: 'filter', configs: {...} } * }, { * // Piped. * transform: [ - * { type: 'filter', config: {...} }, - * { type: 'sort', config: {...} } + * { type: 'filter', configs: {...} }, + * { type: 'sort', configs: {...} } * ] * }, { * id: 'regressionData', * fromDatasetIndex: 1, * // Third-party transform - * transform: { type: 'ecStat:regression', config: {...} } + * transform: { type: 'ecStat:regression', configs: {...} } * }, { * // retrieve the extra result. * id: 'regressionFormula', @@ -23545,7 +23545,7 @@ // performed. Because is a series is filtered, most of the tasks will not // be performed. A stream-dependent operation probably cause wrong biz logic. // Perhaps we should not provide a separate callback for this case instead - // of providing the config `performRawSeries`. The stream-dependent operaions + // of providing the configs `performRawSeries`. The stream-dependent operaions // and stream-independent operations should better not be mixed. performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model); @@ -25599,9 +25599,9 @@ hostEl.setTextConfig({ // Force to set local false. local: false, - // Ignore position and rotation config on the host el if x or y is changed. + // Ignore position and rotation configs on the host el if x or y is changed. position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos, - // Ignore rotation config on the host el if rotation is changed. + // Ignore rotation configs on the host el if rotation is changed. rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot, offset: [layoutOption.dx || 0, layoutOption.dy || 0] }); @@ -52007,7 +52007,7 @@ } /** * Init a tree data structure from data in option series - * @param option the object used to config echarts view + * @param option the object used to configs echarts view * @return storage initial data */ @@ -61948,7 +61948,7 @@ /** * Init a graph data structure from data in option series * - * @param {Object} option the object used to config echarts view + * @param {Object} option the object used to configs echarts view * @return {module:echarts/data/List} storage initial data */ @@ -64102,7 +64102,7 @@ this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg); this._effectCfg = effectCfg; } else { - // Not keep old effect config + // Not keep old effect configs this._effectCfg = null; this.stopEffectAnimation(); @@ -64222,7 +64222,7 @@ progressive: 0, // When to show the effect, option: 'render'|'emphasis' showEffectOn: 'render', - // Ripple effect config + // Ripple effect configs rippleEffect: { period: 4, // Scale of ripple @@ -69537,7 +69537,7 @@ * generete shape and style at the first time rather than always do that). * So we still use "merge" rather than "erase all". If users need "erase all", they can * simple always set all of the props each time. - * Some "object-like" config like `textConfig`, `textContent`, `style` which are not needed for + * Some "object-like" configs like `textConfig`, `textContent`, `style` which are not needed for * every elment, so we replace them only when user specify them. And the that is a total replace. * * TODO: there is no hint of 'isFirst' to users. So the performance enhancement can not be @@ -70410,7 +70410,7 @@ * * [Compat]: since ec5, RectText has been separated from its hosts el. * so `api.style()` will only return the style from `itemStyle` but not handle `label` - * any more. But `series.label` config is never published in doc. + * any more. But `series.label` configs is never published in doc. * We still compat it in `api.style()`. But not encourage to use it and will still not * to pulish it to doc. * @public @@ -87018,7 +87018,7 @@ color: thisOption.color.slice().reverse() }; } // Compatible with previous logic, always give a defautl color, otherwise - // simple config with no inRange and outOfRange will not work. + // simple configs with no inRange and outOfRange will not work. // Originally we use visualMap.color as the default color, but setOption at // the second time the default color will be erased. So we change to use // constant DEFAULT_COLOR. @@ -89581,7 +89581,7 @@ if (!isObjectNotArray(exprOption)) { if ("development" !== 'production') { - errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption); + errMsg = makePrintable('Illegal configs. Expect a plain object but actually', exprOption); } throwError(errMsg); @@ -89722,7 +89722,7 @@ // PEDING: enhance to filter by index rather than create new data transform: function (params) { // [Caveat] Fail-Fast: - // Do not return the whole dataset unless user config indicate it explicitly. + // Do not return the whole dataset unless user configs indicate it explicitly. // For example, if no condition specified by mistake, return an empty result // is better than return the entire raw soruce for user to find the mistake. var upstream = params.upstream; @@ -89780,7 +89780,7 @@ var sampleLog = ''; if ("development" !== 'production') { - sampleLog = ['Valid config is like:', '{ dimension: "age", order: "asc" }', 'or [{ dimension: "age", order: "asc"], { dimension: "date", order: "desc" }]'].join(' '); + sampleLog = ['Valid configs is like:', '{ dimension: "age", order: "asc" }', 'or [{ dimension: "age", order: "asc"], { dimension: "date", order: "desc" }]'].join(' '); } var sortTransform = { @@ -89789,15 +89789,15 @@ var upstream = params.upstream; var config = params.config; var errMsg = ''; // Normalize - // const orderExprList: OrderExpression[] = isArray(config[0]) - // ? config as OrderExpression[] - // : [config as OrderExpression]; + // const orderExprList: OrderExpression[] = isArray(configs[0]) + // ? configs as OrderExpression[] + // : [configs as OrderExpression]; var orderExprList = normalizeToArray(config); if (!orderExprList.length) { if ("development" !== 'production') { - errMsg = 'Empty `config` in sort transform.'; + errMsg = 'Empty `configs` in sort transform.'; } throwError(errMsg); @@ -89812,7 +89812,7 @@ if (dimLoose == null) { if ("development" !== 'production') { - errMsg = 'Sort transform config must has "dimension" specified.' + sampleLog; + errMsg = 'Sort transform configs must has "dimension" specified.' + sampleLog; } throwError(errMsg); @@ -89820,7 +89820,7 @@ if (order !== 'asc' && order !== 'desc') { if ("development" !== 'production') { - errMsg = 'Sort transform config must has "order" specified.' + sampleLog; + errMsg = 'Sort transform configs must has "order" specified.' + sampleLog; } throwError(errMsg); @@ -89850,7 +89850,7 @@ if (!dimInfo) { if ("development" !== 'production') { - errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\n', 'Illegal config:', orderExpr, '.\n'); + errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\n', 'Illegal configs:', orderExpr, '.\n'); } throwError(errMsg); @@ -89860,7 +89860,7 @@ if (parserName && !parser) { if ("development" !== 'production') { - errMsg = makePrintable('Invalid parser name ' + parserName + '.\n', 'Illegal config:', orderExpr, '.\n'); + errMsg = makePrintable('Invalid parser name ' + parserName + '.\n', 'Illegal configs:', orderExpr, '.\n'); } throwError(errMsg); diff --git a/static/admin/component/pear/module/echartsTheme.js b/applications/static/admin/component/pear/module/echartsTheme.js similarity index 100% rename from static/admin/component/pear/module/echartsTheme.js rename to applications/static/admin/component/pear/module/echartsTheme.js diff --git a/static/admin/component/pear/module/frame.js b/applications/static/admin/component/pear/module/frame.js similarity index 100% rename from static/admin/component/pear/module/frame.js rename to applications/static/admin/component/pear/module/frame.js diff --git a/static/admin/component/pear/module/hash.js b/applications/static/admin/component/pear/module/hash.js similarity index 99% rename from static/admin/component/pear/module/hash.js rename to applications/static/admin/component/pear/module/hash.js index 6b8d330e0d8a8f2517443ab063b8baa0ce51f327..10aa8d5a2f51d8cb4a3a454c2f33eef60756f668 100644 --- a/static/admin/component/pear/module/hash.js +++ b/applications/static/admin/component/pear/module/hash.js @@ -444,7 +444,7 @@ layui.define(function (exports) { */ MD5: function (options) { /** - * Private config properties. You may need to tweak these to be compatible with + * Private configs properties. You may need to tweak these to be compatible with * the server-side, but the defaults work in most cases. * See {@link Hashes.MD5#method-setUpperCase} and {@link Hashes.SHA1#method-setUpperCase} */ @@ -681,7 +681,7 @@ layui.define(function (exports) { */ SHA1: function (options) { /** - * Private config properties. You may need to tweak these to be compatible with + * Private configs properties. You may need to tweak these to be compatible with * the server-side, but the defaults work in most cases. * See {@link Hashes.MD5#method-setUpperCase} and {@link Hashes.SHA1#method-setUpperCase} */ diff --git a/static/admin/component/pear/module/http.js b/applications/static/admin/component/pear/module/http.js similarity index 100% rename from static/admin/component/pear/module/http.js rename to applications/static/admin/component/pear/module/http.js diff --git a/static/admin/component/pear/module/iconPicker.js b/applications/static/admin/component/pear/module/iconPicker.js similarity index 100% rename from static/admin/component/pear/module/iconPicker.js rename to applications/static/admin/component/pear/module/iconPicker.js diff --git a/static/admin/component/pear/module/loading.js b/applications/static/admin/component/pear/module/loading.js similarity index 100% rename from static/admin/component/pear/module/loading.js rename to applications/static/admin/component/pear/module/loading.js diff --git a/static/admin/component/pear/module/menu.js b/applications/static/admin/component/pear/module/menu.js similarity index 100% rename from static/admin/component/pear/module/menu.js rename to applications/static/admin/component/pear/module/menu.js diff --git a/static/admin/component/pear/module/message.js b/applications/static/admin/component/pear/module/message.js similarity index 100% rename from static/admin/component/pear/module/message.js rename to applications/static/admin/component/pear/module/message.js diff --git a/static/admin/component/pear/module/notice.js b/applications/static/admin/component/pear/module/notice.js similarity index 100% rename from static/admin/component/pear/module/notice.js rename to applications/static/admin/component/pear/module/notice.js diff --git a/static/admin/component/pear/module/popup.js b/applications/static/admin/component/pear/module/popup.js similarity index 100% rename from static/admin/component/pear/module/popup.js rename to applications/static/admin/component/pear/module/popup.js diff --git a/static/admin/component/pear/module/select.js b/applications/static/admin/component/pear/module/select.js similarity index 100% rename from static/admin/component/pear/module/select.js rename to applications/static/admin/component/pear/module/select.js diff --git a/static/admin/component/pear/module/step.js b/applications/static/admin/component/pear/module/step.js similarity index 100% rename from static/admin/component/pear/module/step.js rename to applications/static/admin/component/pear/module/step.js diff --git a/static/admin/component/pear/module/tab.js b/applications/static/admin/component/pear/module/tab.js similarity index 100% rename from static/admin/component/pear/module/tab.js rename to applications/static/admin/component/pear/module/tab.js diff --git a/static/admin/component/pear/module/tag.js b/applications/static/admin/component/pear/module/tag.js similarity index 100% rename from static/admin/component/pear/module/tag.js rename to applications/static/admin/component/pear/module/tag.js diff --git a/static/admin/component/pear/module/theme.js b/applications/static/admin/component/pear/module/theme.js similarity index 100% rename from static/admin/component/pear/module/theme.js rename to applications/static/admin/component/pear/module/theme.js diff --git a/static/admin/component/pear/module/tinymce/tinymce.js b/applications/static/admin/component/pear/module/tinymce/tinymce.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce.js rename to applications/static/admin/component/pear/module/tinymce/tinymce.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/icons/default/icons.js b/applications/static/admin/component/pear/module/tinymce/tinymce/icons/default/icons.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/icons/default/icons.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/icons/default/icons.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/icons/default/icons.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/icons/default/icons.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/icons/default/icons.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/icons/default/icons.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/langs/readme.md b/applications/static/admin/component/pear/module/tinymce/tinymce/langs/readme.md similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/langs/readme.md rename to applications/static/admin/component/pear/module/tinymce/tinymce/langs/readme.md diff --git a/static/admin/component/pear/module/tinymce/tinymce/langs/zh_CN.js b/applications/static/admin/component/pear/module/tinymce/tinymce/langs/zh_CN.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/langs/zh_CN.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/langs/zh_CN.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/advlist/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/advlist/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/advlist/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/advlist/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/advlist/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/advlist/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/advlist/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/advlist/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/anchor/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/anchor/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/anchor/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/anchor/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/anchor/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/anchor/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/anchor/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/anchor/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/autolink/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autolink/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/autolink/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autolink/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/autolink/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autolink/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/autolink/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autolink/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/autoresize/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autoresize/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/autoresize/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autoresize/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/autoresize/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autoresize/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/autoresize/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autoresize/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/autosave/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autosave/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/autosave/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autosave/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/autosave/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autosave/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/autosave/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/autosave/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/bbcode/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/bbcode/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/bbcode/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/bbcode/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/bbcode/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/bbcode/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/bbcode/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/bbcode/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/charmap/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/charmap/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/charmap/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/charmap/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/charmap/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/charmap/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/charmap/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/charmap/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/code/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/code/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/code/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/code/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/code/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/code/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/code/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/code/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/codesample/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/codesample/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/codesample/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/codesample/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/codesample/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/codesample/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/codesample/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/codesample/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/colorpicker/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/contextmenu/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/directionality/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/directionality/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/directionality/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/directionality/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/directionality/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/directionality/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/directionality/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/directionality/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojiimages.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojiimages.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojiimages.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojiimages.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojiimages.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojiimages.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojiimages.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojiimages.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojis.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojis.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojis.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojis.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojis.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojis.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojis.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/js/emojis.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/emoticons/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/fullpage/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/fullpage/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/fullpage/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/fullpage/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/fullpage/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/fullpage/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/fullpage/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/fullpage/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/fullscreen/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/fullscreen/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/fullscreen/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/fullscreen/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/fullscreen/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/fullscreen/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/fullscreen/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/fullscreen/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/help/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/help/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/help/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/help/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/help/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/help/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/help/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/help/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/hr/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/hr/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/hr/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/hr/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/hr/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/hr/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/hr/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/hr/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/image/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/image/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/image/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/image/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/image/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/image/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/image/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/image/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/imagetools/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/imagetools/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/imagetools/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/imagetools/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/imagetools/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/imagetools/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/imagetools/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/imagetools/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/importcss/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/importcss/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/importcss/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/importcss/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/importcss/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/importcss/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/importcss/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/importcss/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/indent2em/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/indent2em/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/indent2em/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/indent2em/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/indent2em/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/indent2em/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/indent2em/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/indent2em/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/insertdatetime/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/insertdatetime/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/insertdatetime/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/insertdatetime/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/insertdatetime/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/insertdatetime/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/insertdatetime/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/insertdatetime/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/legacyoutput/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/legacyoutput/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/legacyoutput/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/legacyoutput/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/legacyoutput/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/legacyoutput/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/legacyoutput/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/legacyoutput/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/link/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/link/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/link/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/link/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/link/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/link/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/link/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/link/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/lists/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/lists/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/lists/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/lists/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/lists/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/lists/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/lists/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/lists/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/media/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/media/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/media/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/media/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/media/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/media/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/media/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/media/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/nonbreaking/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/nonbreaking/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/nonbreaking/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/nonbreaking/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/nonbreaking/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/nonbreaking/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/nonbreaking/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/nonbreaking/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/noneditable/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/noneditable/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/noneditable/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/noneditable/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/noneditable/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/noneditable/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/noneditable/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/noneditable/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/pagebreak/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/pagebreak/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/pagebreak/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/pagebreak/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/pagebreak/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/pagebreak/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/pagebreak/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/pagebreak/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/paste/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/paste/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/paste/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/paste/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/paste/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/paste/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/paste/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/paste/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/preview/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/preview/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/preview/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/preview/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/preview/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/preview/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/preview/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/preview/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/print/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/print/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/print/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/print/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/print/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/print/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/print/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/print/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/quickbars/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/quickbars/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/quickbars/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/quickbars/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/quickbars/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/quickbars/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/quickbars/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/quickbars/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/save/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/save/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/save/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/save/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/save/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/save/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/save/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/save/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/searchreplace/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/searchreplace/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/searchreplace/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/searchreplace/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/searchreplace/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/searchreplace/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/searchreplace/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/searchreplace/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/spellchecker/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/spellchecker/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/spellchecker/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/spellchecker/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/spellchecker/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/spellchecker/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/spellchecker/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/spellchecker/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/tabfocus/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/tabfocus/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/tabfocus/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/tabfocus/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/tabfocus/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/tabfocus/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/tabfocus/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/tabfocus/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/table/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/table/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/table/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/table/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/table/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/table/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/table/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/table/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/template/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/template/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/template/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/template/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/template/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/template/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/template/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/template/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/textcolor/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/textpattern/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/textpattern/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/textpattern/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/textpattern/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/textpattern/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/textpattern/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/textpattern/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/textpattern/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/toc/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/toc/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/toc/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/toc/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/toc/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/toc/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/toc/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/toc/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/visualblocks/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/visualblocks/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/visualblocks/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/visualblocks/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/visualblocks/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/visualblocks/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/visualblocks/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/visualblocks/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/visualchars/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/visualchars/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/visualchars/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/visualchars/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/visualchars/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/visualchars/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/visualchars/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/visualchars/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/wordcount/plugin.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/wordcount/plugin.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/wordcount/plugin.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/wordcount/plugin.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/plugins/wordcount/plugin.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/plugins/wordcount/plugin.min.js similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/plugins/wordcount/plugin.min.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/plugins/wordcount/plugin.min.js diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/dark/content.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/default/content.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/document/content.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/content/writer/content.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.inline.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/content.mobile.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.mobile.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.inline.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/content.mobile.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.mobile.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css diff --git a/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css.map b/applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css.map similarity index 100% rename from static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css.map rename to applications/static/admin/component/pear/module/tinymce/tinymce/skins/ui/oxide/skin.shadowdom.min.css.map diff --git a/static/admin/component/pear/module/tinymce/tinymce/themes/mobile/theme.js b/applications/static/admin/component/pear/module/tinymce/tinymce/themes/mobile/theme.js similarity index 99% rename from static/admin/component/pear/module/tinymce/tinymce/themes/mobile/theme.js rename to applications/static/admin/component/pear/module/tinymce/tinymce/themes/mobile/theme.js index 1f1ec5592e9c3bc4a5b2aa38de3b041b9cefd17e..7282a0bb7c0bf0b5a76dd065977e86fb80d5950b 100644 --- a/static/admin/component/pear/module/tinymce/tinymce/themes/mobile/theme.js +++ b/applications/static/admin/component/pear/module/tinymce/tinymce/themes/mobile/theme.js @@ -2398,14 +2398,14 @@ var me = __assign(__assign(__assign({}, wrappedExtra), wrappedApis), { revoke: curry(revokeBehaviour, name), config: function (spec) { - var prepared = asRawOrDie(name + '-config', configSchema, spec); + var prepared = asRawOrDie(name + '-configs', configSchema, spec); return { key: name, value: { config: prepared, me: me, configAsRaw: cached(function () { - return asRawOrDie(name + '-config', configSchema, spec); + return asRawOrDie(name + '-configs', configSchema, spec); }), initialConfig: spec, state: state diff --git a/applications/static/admin/component/pear/module/tinymce/tinymce/themes/mobile/theme.min.js b/applications/static/admin/component/pear/module/tinymce/tinymce/themes/mobile/theme.min.js new file mode 100644 index 0000000000000000000000000000000000000000..b4115d87e5e6cb92d709d8766a6f849c437a6053 --- /dev/null +++ b/applications/static/admin/component/pear/module/tinymce/tinymce/themes/mobile/theme.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.6.2 (2020-12-08) + */ +!function(){"use strict";var x=function(){return(x=Object.assign||function(n){for(var e,t=1,r=arguments.length;t "+r.toString()},function(n,e){return"state("+n+")"})}).join("\n")+"}"}}},br=function(t,i){var u=function(n,e){return o=hr(t),function(t,r,n){var e=N(n,function(n,e){return o.extract(t.concat(["["+e+"]"]),r,n)});return fr(e)}(n,v,e);var o};return{extract:function(t,r,o){var n=Qe(o),e=u(t,n);return zt(e,function(n){var e=N(n,function(n){return dr.field(n,n,Qt(),i)});return yr(e).extract(t,r,o)})},toString:function(){return"setOf("+i.toString()+")"}}},xr=y(hr(Nt)),wr=dr.state,Sr=dr.field,Or=function(t,e,r,o,i){return it(o,i).fold(function(){return n=o,e=i,lr(t,function(){return'The chosen schema: "'+e+'" did not exist in branches: '+sr(n)});var n,e},function(n){return n.extract(t.concat(["branch: "+i]),e,r)})},Tr=function(o,i){return{extract:function(e,t,r){return it(r,o).fold(function(){return n=o,lr(e,function(){return'Choice schema did not contain choice key: "'+n+'"'});var n},function(n){return Or(e,t,r,i,n)})},toString:function(){return"chooseOn("+o+"). Possible values: "+Qe(i)}}},kr=hr(Nt),Er=function(e){return hr(function(n){return e(n).fold(Ht,Nt)})},Cr=function(e,n){return br(function(n){return At(e(n))},n)},Mr=function(n,e,t){return jt((r=n,o=v,i=t,u=e.extract([r],o,i),$t(u,function(n){return{input:i,errors:n}})));var r,o,i,u},Dr=function(n){return n.fold(function(n){throw new Error(Ir(n))},v)},_r=function(n,e,t){return Dr(Mr(n,e,t))},Ir=function(n){return"Errors: \n"+(e=n.errors,t=10 ")+")\n"+n.getErrorInfo()}).join("\n"))+"\n\nInput object: "+sr(n.input);var e,t},Fr=function(n,e){return Tr(n,et(e,yr))},Rr=y(kr),Vr=(Mt=I,Dt="function",hr(function(n){var e=typeof n;return Mt(n)?Nt(n):Ht("Expected type: "+Dt+" but got: "+e)})),Br=function(n){return Sr(n,n,Qt(),xr())},Ar=function(n,e){return Sr(n,n,Qt(),e)},jr=function(n,e){return Sr(n,n,Qt(),yr(e))},Nr=function(n){return Sr(n,n,Zt(),xr())},Pr=function(n,e){return Sr(n,n,Zt(),e)},Hr=function(n,e){return Pr(n,yr(e))},zr=function(n,e){return Pr(n,vr(e))},Lr=function(n,e){return Sr(n,n,Jt(e),xr())},Gr=function(n,e,t){return Sr(n,n,Jt(e),t)},$r=function(n,e){return wr(n,e)},Ur=[Br("alpha"),Br("omega")],Wr=function(n){return I(n)?n:l},Xr=function(n,e,t){var r=e(n),o=Wr(t);return r.orThunk(function(){return o(n)?T.none():function(n,e,t){for(var r=n.dom,o=Wr(t);r.parentNode;){r=r.parentNode;var i=de.fromDom(r),u=e(i);if(u.isSome())return u;if(o(i))break}return T.none()}(n,e,o)})},qr=function(n,e){return ve(n.element,e.event.target)},Yr=function(n){if(!ct(n,"can")&&!ct(n,"abort")&&!ct(n,"run"))throw new Error("EventHandler defined by: "+JSON.stringify(n,null,2)+" does not have can, abort, or run!");return _r("Extracting event.handler",vr([Lr("can",w),Lr("abort",l),Lr("run",O)]),n)},Kr=function(t){var e,r,o,i,n=(r=function(n){return n.can},function(){for(var t=[],n=0;n=r.length&&t.substr(o,o+r.length)===r?n.substring(0,n.length-"/*".length):n;var e,t,r,o})},so=function(n,e){var t=n.toString(),r=t.indexOf(")")+1,o=t.indexOf("("),i=t.substring(o+1,r-1).split(/,\s*/);return n.toFunctionAnnotation=function(){return{name:e,parameters:fo(i)}},n},lo=function(n){return{classes:n.classes!==undefined?n.classes:[],attributes:n.attributes!==undefined?n.attributes:{},styles:n.styles!==undefined?n.styles:{}}},mo=function(t,r,o){return co(function(n,e){o(n,t,r)})},go=function(o,i,u){var n,e,t,r,c,a;return n=function(t){for(var n=[],e=1;e"}),Rr()),za=$r("schema",function(){return[Nr("preprocess")]}),La=Lr("defaults",y({})),Ga=Lr("overrides",y({})),$a=yr([ja,Na,Pa,Ha,La,Ga]),Ua=yr([ja,Na,Pa,La,Ga]),Wa=yr([ja,Na,Pa,Ha,La,Ga]),Xa=yr([ja,za,Pa,Br("unit"),Ha,La,Ga]),qa=function(n){var e=function(n){return n.name};return n.fold(e,e,e,e)},Ya=function(t,r){return function(n){var e=_r("Converting part type",r,n);return t(e)}},Ka=Ya(Aa.required,$a),Ja=(Ya(Aa.external,Ua),Ya(Aa.optional,Wa)),Qa=Ya(Aa.group,Xa),Za=y("entirety"),nf=function(n,e,t,r){return qt(e.defaults(n,t,r),t,{uid:n.partUids[e.name]},e.overrides(n,t,r))},ef=function(o,n){var e={};return P(n,function(n){n.fold(T.some,T.none,T.some,T.some).each(function(t){var r=tf(o,t.pname);e[t.name]=function(n){var e=_r("Part: "+t.name+" in "+o,yr(t.schema),n);return x(x({},r),{config:n,validated:e})}})}),e},tf=function(n,e){return{uiType:Ra(),owner:n,name:e}},rf=function(n,e,t){return r=e,i={},o={},P(t,function(n){n.fold(function(r){i[r.pname]=Ia(!0,function(n,e,t){return r.factory.sketch(nf(n,r,e,t))})},function(n){var e=r.parts[n.name];o[n.name]=y(n.factory.sketch(nf(r,n,e[Za()]),e))},function(r){i[r.pname]=Ia(!1,function(n,e,t){return r.factory.sketch(nf(n,r,e,t))})},function(o){i[o.pname]=Fa(!0,function(e,n,t){var r=e[o.name];return N(r,function(n){return o.factory.sketch(qt(o.defaults(e,n,t),n,o.overrides(e,n)))})})})}),{internals:y(i),externals:y(o)};var r,i,o},of=function(n,e,t){return _a(T.some(n),e,e.components,t)},uf=function(n,e,t){var r=e.partUids[t];return n.getSystem().getByUid(r).toOptional()},cf=function(n,e,t){return uf(n,e,t).getOrDie("Could not find part: "+t)},af=function(e,n){var t=N(n,qa);return ir(N(t,function(n){return{key:n,value:e+"-"+n}}))},ff=function(e){return Sr("partUids","partUids",er(function(n){return af(n.uid,e)}),Rr())},sf=Ba("alloy-premade"),lf=function(n){return or(sf,n)},df=function(r){return n=function(n){for(var e=[],t=1;t')},function(n){return Vf(''+n+"")})},Pf=function(n,e,t,r){return If.sketch({dom:Nf(n,r),action:e,buttonBehaviours:qt(bo([Ff.config({})]),t)})},Hf=Ja({schema:[Br("dom")],name:"label"}),zf=function(e){return Ja({name:e+"-edge",overrides:function(n){return n.model.manager.edgeActions[e].fold(function(){return{}},function(r){return{events:Jr([no(_n(),function(n,e,t){return r(n,t)},[n]),no(Rn(),function(n,e,t){return r(n,t)},[n]),no(Vn(),function(n,e,t){t.mouseIsDown.get()&&r(n,t)},[n])])}})}})},Lf=zf("top-left"),Gf=zf("top"),$f=zf("top-right"),Uf=zf("right"),Wf=zf("bottom-right"),Xf=zf("bottom"),qf=zf("bottom-left"),Yf=[Hf,zf("left"),Uf,Gf,Xf,Lf,$f,qf,Wf,Ka({name:"thumb",defaults:y({dom:{styles:{position:"absolute"}}}),overrides:function(n){return{events:Jr([ro(_n(),n,"spectrum"),ro(In(),n,"spectrum"),ro(Fn(),n,"spectrum"),ro(Rn(),n,"spectrum"),ro(Vn(),n,"spectrum"),ro(Bn(),n,"spectrum")])}}}),Ka({schema:[$r("mouseIsDown",function(){return ko(!1)})],name:"spectrum",overrides:function(t){var r=t.model.manager,o=function(e,n){return r.getValueFromEvent(n).map(function(n){return r.setValueFrom(e,t,n)})};return{behaviours:bo([ba.config({mode:"special",onLeft:function(n){return r.onLeft(n,t)},onRight:function(n){return r.onRight(n,t)},onUp:function(n){return r.onUp(n,t)},onDown:function(n){return r.onDown(n,t)}}),_i.config({})]),events:Jr([Zr(_n(),o),Zr(In(),o),Zr(Rn(),o),Zr(Vn(),function(n,e){t.mouseIsDown.get()&&o(n,e)})])}}})],Kf=function(n,e,t){e.store.manager.onLoad(n,e,t)},Jf=function(n,e,t){e.store.manager.onUnload(n,e,t)},Qf=/* */Object.freeze({__proto__:null,onLoad:Kf,onUnload:Jf,setValue:function(n,e,t,r){e.store.manager.setValue(n,e,t,r)},getValue:function(n,e,t){return e.store.manager.getValue(n,e,t)},getState:function(n,e,t){return t}}),Zf=/* */Object.freeze({__proto__:null,events:function(t,r){var n=t.resetOnDom?[io(function(n,e){Kf(n,t,r)}),uo(function(n,e){Jf(n,t,r)})]:[mo(t,r,Kf)];return Jr(n)}}),ns=function(){var n=ko(null);return yo({set:n.set,get:n.get,isNotSet:function(){return null===n.get()},clear:function(){n.set(null)},readState:function(){return{mode:"memory",value:n.get()}}})},es=function(){var i=ko({}),u=ko({});return yo({readState:function(){return{mode:"dataset",dataByValue:i.get(),dataByText:u.get()}},lookup:function(n){return it(i.get(),n).orThunk(function(){return it(u.get(),n)})},update:function(n){var e=i.get(),t=u.get(),r={},o={};P(n,function(e){r[e.value]=e,it(e,"meta").each(function(n){it(n,"text").each(function(n){o[n]=e})})}),i.set(x(x({},e),r)),u.set(x(x({},t),o))},clear:function(){i.set({}),u.set({})}})},ts=/* */Object.freeze({__proto__:null,memory:ns,dataset:es,manual:function(){return yo({readState:function(){}})},init:function(n){return n.store.manager.state(n)}}),rs=function(n,e,t,r){var o=e.store;t.update([r]),o.setValue(n,r),e.onSetValue(n,r)},os=[Nr("initialValue"),Br("getFallbackEntry"),Br("getDataKey"),Br("setValue"),ri("manager",{setValue:rs,getValue:function(n,e,t){var r=e.store,o=r.getDataKey(n);return t.lookup(o).fold(function(){return r.getFallbackEntry(o)},function(n){return n})},onLoad:function(e,t,r){t.store.initialValue.each(function(n){rs(e,t,r,n)})},onUnload:function(n,e,t){t.clear()},state:es})],is=[Br("getValue"),Lr("setValue",O),Nr("initialValue"),ri("manager",{setValue:function(n,e,t,r){e.store.setValue(n,r),e.onSetValue(n,r)},getValue:function(n,e,t){return e.store.getValue(n)},onLoad:function(e,t,n){t.store.initialValue.each(function(n){t.store.setValue(e,n)})},onUnload:O,state:vo.init})],us=[Nr("initialValue"),ri("manager",{setValue:function(n,e,t,r){t.set(r),e.onSetValue(n,r)},getValue:function(n,e,t){return t.get()},onLoad:function(n,e,t){e.store.initialValue.each(function(n){t.isNotSet()&&t.set(n)})},onUnload:function(n,e,t){t.clear()},state:ns})],cs=[Gr("store",{mode:"memory"},Fr("mode",{memory:us,manual:is,dataset:os})),Zo("onSetValue"),Lr("resetOnDom",!1)],as=wo({fields:cs,name:"representing",active:Zf,apis:Qf,extra:{setValueFrom:function(n,e){var t=as.getValue(e);as.setValue(n,t)}},state:ts}),fs=Hi("width",function(n){return n.dom.offsetWidth}),ss=function(n,e){return fs.set(n,e)},ls=function(n){return fs.get(n)},ds=function(t,r){return{left:t,top:r,translate:function(n,e){return ds(t+n,r+e)}}},ms=ds,gs=y("slider.change.value"),ps=function(n){var e=n.event.raw;return-1===e.type.indexOf("touch")?e.clientX!==undefined?T.some(e).map(function(n){return ms(n.clientX,n.clientY)}):T.none():e.touches!==undefined&&1===e.touches.length?T.some(e.touches[0]).map(function(n){return ms(n.clientX,n.clientY)}):T.none()},hs=function(n){return n.model.minX},vs=function(n){return n.model.minY},ys=function(n){return n.model.minX-1},bs=function(n){return n.model.minY-1},xs=function(n){return n.model.maxX},ws=function(n){return n.model.maxY},Ss=function(n){return n.model.maxX+1},Os=function(n){return n.model.maxY+1},Ts=function(n,e,t){return e(n)-t(n)},ks=function(n){return Ts(n,xs,hs)},Es=function(n){return Ts(n,ws,vs)},Cs=function(n){return ks(n)/2},Ms=function(n){return Es(n)/2},Ds=function(n){return n.stepSize},_s=function(n){return n.snapToGrid},Is=function(n){return n.snapStart},Fs=function(n){return n.rounded},Rs=function(n,e){return n[e+"-edge"]!==undefined},Vs=function(n){return Rs(n,"left")},Bs=function(n){return Rs(n,"right")},As=function(n){return Rs(n,"top")},js=function(n){return Rs(n,"bottom")},Ns=function(n){return n.model.value.get()},Ps=function(n){return{x:n}},Hs=function(n){return{y:n}},zs=function(n,e){return{x:n,y:e}},Ls=function(n,e){ce(n,gs(),{value:e})},Gs=function(n,e,t,r){return n'),components:[Hl.parts["left-edge"](Bf('
')),Hl.parts.spectrum({dom:Vf('
'),components:[Bf('
')],behaviours:bo([bi.config({toggleClass:Ti("thumb-active")})])}),Hl.parts["right-edge"](Bf('
')),Hl.parts.thumb({dom:Vf('
'),behaviours:bo([bi.config({toggleClass:Ti("thumb-active")})])})],onChange:function(n,e,t){var r=i(t.x());Ri(e.element,"background-color",r),o.onChange(n,e,r)},onDragStart:function(n,e){bi.on(e)},onDragEnd:function(n,e){bi.off(e)},onInit:function(n,e,t,r){var o=i(r.x());Ri(e.element,"background-color",o)},stepSize:10,model:{mode:"x",minX:0,maxX:360,getInitialValue:function(){return{x:o.getInitialValue()}}},sliderBehaviours:bo([wi(Hl.refresh)])}))];var o,i},Gl=["9px","10px","11px","12px","14px","16px","18px","20px","24px","32px","36px"],$l=function(e,n){return(xe(n)?T.some(n):Ee(n).filter(xe)).map(function(n){return Wi(function(n,e){return e(n)},Yi,n,function(n){return ji(n,"font-size").isSome()},e).bind(function(n){return ji(n,"font-size")}).getOrThunk(function(){return Bi(n,"font-size")})}).getOr("")},Ul=function(n){var e=n.selection.getStart(),t=de.fromDom(e),r=de.fromDom(n.getBody()),o=$l(function(n){return ve(r,n)},t);return G(Gl,function(n){return o===n}).getOr("medium")},Wl=function(n){var e,t=Ul(n);return e=t,$(Gl,function(n){return n===e}).getOr(2)},Xl=function(r,n){var e;e=n,T.from(Gl[e]).each(function(n){var e,t;t=n,Ul(e=r)!==t&&e.execCommand("fontSize",!1,t)})},ql=y(Gl),Yl=vr([Br("getInitialValue"),Br("onChange"),Br("category"),Br("sizes")]),Kl=function(n){var i=_r("SizeSlider",Yl,n);return Hl.sketch({dom:{tag:"div",classes:[Ti("slider-"+i.category+"-size-container"),Ti("slider"),Ti("slider-size-container")]},onChange:function(n,e,t){var r,o=t.x();0<=(r=o)&&r'),components:[Bf('
')]}),Hl.parts.thumb({dom:Vf('
'),behaviours:bo([bi.config({toggleClass:Ti("thumb-active")})])})]})},Jl=ql(),Ql=function(n){return[Bf(''),Kl({onChange:(e=n).onChange,sizes:Jl,category:"font",getInitialValue:e.getInitialValue}),Bf('')];var e},Zl=function(n){var e=n.uid!==undefined&&ct(n,"uid")?n.uid:bf("memento");return{get:function(n){return n.getSystem().getByUid(e).getOrDie()},getOpt:function(n){return n.getSystem().getByUid(e).toOptional()},asSpec:function(){return x(x({},n),{uid:e})}}},nd=window.Promise?window.Promise:(Of=function(n){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof n)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],cd(n,ed(rd,this),ed(od,this))},Tf=window,kf=Of.immediateFn||"function"==typeof Tf.setImmediate&&Tf.setImmediate||function(n){setTimeout(n,1)},Ef=Array.isArray||function(n){return"[object Array]"===Object.prototype.toString.call(n)},Of.prototype["catch"]=function(n){return this.then(null,n)},Of.prototype.then=function(t,r){var o=this;return new Of(function(n,e){td.call(o,new ud(t,r,n,e))})},Of.all=function(){for(var n=[],e=0;e'),action:function(n){var e=t.get(n);as.setValue(e,"")}}));return{name:n,spec:Td.sketch({dom:Vf('
'),components:[t.asSpec(),r.asSpec()],containerBehaviours:bo([bi.config({toggleClass:Ti("input-container-empty")}),Od.config({find:function(n){return T.some(t.get(n))}}),xd("input-clearing",[Zr(Pn(),function(n){var e=t.get(n);(0"},Qd=function(o,n){return{uid:o.uid,dom:o.dom,components:n,behaviours:Sa(o.formBehaviours,[as.config({store:{mode:"manual",getValue:function(n){var e,t,r=(e=o,t=n.getSystem(),et(e.partUids,function(n,e){return y(t.getByUid(n))}));return et(r,function(n,o){return n().bind(function(n){var e,t,r=Od.getCurrent(n);return e=r,t=new Error("Cannot find a current component to extract the value from for form part '"+o+"': "+Ho(n.element)),e.fold(function(){return Ct.error(t)},Ct.value)}).map(as.getValue)})},setValue:function(t,n){nt(n,function(e,n){uf(t,o,n).each(function(n){Od.getCurrent(n).each(function(n){as.setValue(n,e)})})})}}})]),apis:{getField:function(n,e){return uf(n,o,e).bind(Od.getCurrent)}}}},Zd=(df(function(n,e,t){return n.getField(e,t)}),function(n){var i,e=(i=[],{field:function(n,e){return i.push(n),t="form",r=Jd(n),o=e,{uiType:Ra(),owner:t,name:r,config:o,validated:{}};var t,r,o},record:function(){return i}}),t=n(e),r=e.record(),o=N(r,function(n){return Ka({name:n,pname:Jd(n)})});return wf("form",Kd,o,Qd,t)}),nm=function(){var e=ko(T.none()),t=function(){return e.get().each(function(n){return n.destroy()})};return{clear:function(){t(),e.set(T.none())},isSet:function(){return e.get().isSome()},set:function(n){t(),e.set(T.some(n))},run:function(n){return e.get().each(n)}}},em=function(){var e=ko(T.none());return{clear:function(){return e.set(T.none())},set:function(n){return e.set(T.some(n))},isSet:function(){return e.get().isSome()},on:function(n){return e.get().each(n)}}},tm=function(n){var r="navigateEvent",e=yr([Br("fields"),Lr("maxFieldIndex",n.fields.length-1),Br("onExecute"),Br("getInitialValue"),$r("state",function(){return{dialogSwipeState:em(),currentScreen:ko(0)}})]),u=_r("SerialisedDialog",e,n),o=function(e,n,t){return If.sketch({dom:Vf(''),action:function(n){ce(n,r,{direction:e})},buttonBehaviours:bo([Yd.config({disableClass:Ti("toolbar-navigation-disabled"),disabled:function(){return!t}})])})},i=function(n,o){var i=Ui(n.element,"."+Ti("serialised-dialog-screen"));Qi(n.element,"."+Ti("serialised-dialog-chain")).each(function(r){0<=u.state.currentScreen.get()+o&&u.state.currentScreen.get()+o'),components:[Td.sketch({dom:Vf('
'),components:N(u.fields,function(n,e){return e<=u.maxFieldIndex?Td.sketch({dom:Vf('
'),components:[o(-1,"previous",0'),behaviours:bo([Fu.config({highlightClass:Ti("dot-active"),itemClass:Ti("dot-item")})]),components:W(u.fields,function(n,e){return e<=u.maxFieldIndex?[Bf('
')]:[]})});return{dom:Vf('
'),components:[a.asSpec(),f.asSpec()],behaviours:bo([ba.config({mode:"special",focusIn:function(n){var e=a.get(n);ba.focusIn(e)}}),xd("serializer-wrapper-events",[Zr(_n(),function(n,e){var t=e.event;u.state.dialogSwipeState.set({xValue:t.raw.touches[0].clientX,points:[]})}),Zr(In(),function(n,e){var t=e.event;u.state.dialogSwipeState.on(function(n){e.event.prevent(),u.state.dialogSwipeState.set(function(n,e){if(e===n.xValue)return n;var t=0 "):r[0].name;return or(o,{handler:e,purpose:t})})});return ur(e,{})},bm="alloy.base.behaviour",xm=function(n){var e,t;return Mr("custom.definition",yr([Sr("dom","dom",Qt(),yr([Br("tag"),Lr("styles",{}),Lr("classes",[]),Lr("attributes",{}),Nr("value"),Nr("innerHtml")])),Br("components"),Br("uid"),Lr("events",{}),Lr("apis",{}),Sr("eventOrder","eventOrder",((e={})[Kn()]=["disabling",bm,"toggling","typeaheadevents"],e[Wn()]=[bm,"focusing","keying"],e[ne()]=[bm,"disabling","toggling","representing"],e[Pn()]=[bm,"representing","streaming","invalidating"],e[te()]=[bm,"representing","item-events","tooltipping"],e[Rn()]=["focusing",bm,"item-type-events"],e[_n()]=["focusing",bm,"item-type-events"],e[An()]=["item-type-events","tooltipping"],e[Yn()]=["receiving","reflecting","tooltipping"],t=e,Kt.mergeWithThunk(y(t))),Rr()),Nr("domModification")]),n)},wm=function(e,n){P(n,function(n){bt(e,n)})},Sm=function(e,n){P(n,function(n){wt(e,n)})},Om=function(n,e){return t=n,o=N(r=e,function(n){return Hr(n.name(),[Br("config"),Lr("state",vo)])}),i=Mr("component.behaviours",yr(o),t.behaviours).fold(function(n){throw new Error(Ir(n)+"\nComplete spec:\n"+JSON.stringify(t,null,2))},function(n){return n}),{list:r,data:et(i,function(n){var e=n.map(function(n){return{config:n.config,state:n.state.init(n.config)}});return function(){return e}})};var t,r,o,i},Tm=function(n){var e,t,r=(e=it(n,"behaviours").getOr({}),t=H(Qe(e),function(n){return e[n]!==undefined}),N(t,function(n){return e[n].me}));return Om(n,r)},km=function(n,e,t){var r,o,i,u=x(x({},(r=n).dom),{uid:r.uid,domChildren:N(r.components,function(n){return n.element})}),c=n.domModification.fold(function(){return lo({})},lo),a={"alloy.base.modification":c},f=0");r[t[0]]=or(t[1],n),r[t[1]]=or(t[0],n)}),r},createBistate:function(n,e,t){return ir([{key:n,value:or(e,t)},{key:e,value:or(n,t)}])},createTristate:function(n,e,t,r){return ir([{key:n,value:ir([{key:e,value:r},{key:t,value:r}])},{key:e,value:ir([{key:n,value:r},{key:t,value:r}])},{key:t,value:ir([{key:n,value:r},{key:e,value:r}])}])}}}),vg=Ti("scrollable"),yg=function(n){bt(n,vg)},bg=function(n){wt(n,vg)},xg=vg,wg=function(n){return it(n,"format").getOr(n.title)},Sg=function(n,e,t,r,o){return{data:{value:n,text:e},type:"item",dom:{tag:"div",classes:o?[Ti("styles-item-is-menu")]:[]},toggling:{toggleOnExecute:!1,toggleClass:Ti("format-matches"),selected:t},itemBehaviours:bo(o?[]:[xi(n,function(n,e){(e?bi.on:bi.off)(n)})]),components:[{dom:{tag:"div",attributes:{style:r},innerHtml:e}}]}},Og=function(n,e,t,r){return{value:n,dom:{tag:"div"},components:[If.sketch({dom:{tag:"div",classes:[Ti("styles-collapser")]},components:r?[{dom:{tag:"span",classes:[Ti("styles-collapse-icon")]}},Dm(n)]:[Dm(n)],action:function(n){var e;r&&(e=t().get(n),cg.collapseMenu(e))}}),{dom:{tag:"div",classes:[Ti("styles-menu-items-container")]},components:[Ym.parts.items({})],behaviours:bo([xd("adhoc-scrollable-menu",[io(function(n,e){Ri(n.element,"overflow-y","auto"),Ri(n.element,"-webkit-overflow-scrolling","touch"),yg(n.element)}),uo(function(n){Ni(n.element,"overflow-y"),Ni(n.element,"-webkit-overflow-scrolling"),bg(n.element)})])])}],items:e,menuBehaviours:bo([hg.config({initialState:"after",routes:hg.createTristate("before","current","after",{transition:{property:"transform",transitionClass:"transitioning"}})})])}},Tg=function(r){var o,i,n,e,t,u=(o=r.formats,i=function(){return c},n=Og("Styles",[].concat(N(o.items,function(n){return Sg(wg(n),n.title,n.isSelected(),n.getPreview(),ct(o.expansions,wg(n)))})),i,!1),e=et(o.menus,function(n,e){var t=N(n,function(n){return Sg(wg(n),n.title,n.isSelected!==undefined&&n.isSelected(),n.getPreview!==undefined?n.getPreview():"",ct(o.expansions,wg(n)))});return Og(e,t,i,!0)}),t=qt(e,or("styles",n)),{tmenu:cg.tieredData("styles",t,o.expansions)}),c=Zl(cg.sketch({dom:{tag:"div",classes:[Ti("styles-menu")]},components:[],fakeFocus:!0,stayInDom:!0,onExecute:function(n,e){var t=as.getValue(e);return r.handle(e,t.value),T.none()},onEscape:function(){return T.none()},onOpenMenu:function(n,e){var t=ls(n.element);ss(e.element,t),hg.jumpTo(e,"current")},onOpenSubmenu:function(n,e,t){var r=ls(n.element),o=Ji(e.element,'[role="menu"]').getOrDie("hacky"),i=n.getSystem().getByDom(o).getOrDie();ss(t.element,r),hg.progressTo(i,"before"),hg.jumpTo(t,"after"),hg.progressTo(t,"current")},onCollapseMenu:function(n,e,t){var r=Ji(e.element,'[role="menu"]').getOrDie("hacky"),o=n.getSystem().getByDom(r).getOrDie();hg.progressTo(o,"after"),hg.progressTo(t,"current")},navigateOnHover:!1,highlightImmediately:!0,data:u.tmenu,markers:{backgroundMenu:Ti("styles-background-menu"),menu:Ti("styles-menu"),selectedMenu:Ti("styles-selected-menu"),item:Ti("styles-item"),selectedItem:Ti("styles-selected-item")}}));return c.asSpec()},kg=function(n){return ct(n,"items")?(t=qt(rr(e=n,["items"]),{menu:!0}),r=Eg(e.items),{item:t,menus:qt(r.menus,or(e.title,r.items)),expansions:qt(r.expansions,or(e.title,e.title))}):{item:n,menus:{},expansions:{}};var e,t,r},Eg=function(n){return z(n,function(n,e){var t=kg(e);return{menus:qt(n.menus,t.menus),items:[t.item].concat(n.items),expansions:qt(n.expansions,t.expansions)}},{menus:{},expansions:{},items:[]})},Cg=function(u){var c=function(n){return function(){return u.formatter.match(n)}},a=function(n){return function(){return u.formatter.getCssText(n)}},f=function(n){return N(n,function(n){if(ct(n,"items")){var e=f(n.items);return qt(qt(n,{isSelected:l,getPreview:y("")}),{items:e})}return ct(n,"format")?qt(i=n,{isSelected:c(i.format),getPreview:a(i.format)}):(r=Ba((t=n).title),o=qt(t,{format:r,isSelected:c(r),getPreview:a(r)}),u.formatter.register(r,o),o);var t,r,o,i})};return f(u.getParam("style_formats",Fo,"array"))},Mg=function(t,n,r){var e,o,i,u=(e=t,i=(o=function(n){return W(n,function(n){return n.items===undefined?!ct(n,"format")||e.formatter.canApply(n.format)?[n]:[]:0e.innerHeight||n.bottom>e.innerHeight?n.bottom-e.innerHeight+50:0;0!=t&&e.scrollTo(e.pageXOffset,e.pageYOffset+t)})})].concat(!0==Fp?[]:[jg(de.fromDom(r.win),"blur",function(){t.getByDom(e).each(bi.off)}),jg(i,"select",n),jg(r.doc,"selectionchange",n)]);return{destroy:function(){P(c,function(n){n.unbind()})}}},Vp=function(n,e){var t=parseInt(lt(n,e),10);return isNaN(t)?0:t},Bp=function(n){return x(x({},n),{width:2})},Ap=function(n){return{left:n.left,top:n.top,right:n.right,bottom:n.bottom,width:n.width,height:n.height}},jp=function(n){var e=n.getSelection();return e!==undefined&&0e.innerHeight||t.bottom>e.innerHeight?Math.min(r,t.bottom-e.innerHeight+50):0);0!==o&&u.scrollTo(u.pageXOffset,u.pageYOffset+o)})}),Hp(e,n.innerHeight)});Hp(e,n.innerHeight);return{toEditing:function(){Np(u)},destroy:function(){t.unbind()}}},$p=function(t,r){var o=null;return{cancel:function(){null!==o&&(clearTimeout(o),o=null)},throttle:function(){for(var n=[],e=0;e