commit 7533598830d0d55aa0d23bf2121aa3f291bdc473 Author: chenlan <18339827479@163.com> Date: Fri Jun 6 09:07:50 2025 +0800 Initial commit diff --git a/404.html b/404.html new file mode 100755 index 0000000..d75ed78 --- /dev/null +++ b/404.html @@ -0,0 +1,6 @@ + +404 Not Found + +

404 Not Found

+
nginx
+ \ No newline at end of file diff --git a/admin.zip b/admin.zip new file mode 100644 index 0000000..78858ac Binary files /dev/null and b/admin.zip differ diff --git a/api/clear.json b/api/clear.json new file mode 100755 index 0000000..e0f5ed7 --- /dev/null +++ b/api/clear.json @@ -0,0 +1,4 @@ +{ + "code": 1, + "msg": "服务端清理缓存成功" +} \ No newline at end of file diff --git a/api/init - 副本.json b/api/init - 副本.json new file mode 100755 index 0000000..ecbc5a4 --- /dev/null +++ b/api/init - 副本.json @@ -0,0 +1,117 @@ +{ + "homeInfo": { + "title": "首页", + "name":"home", + "href": "page/welcome-1.html?t=1" + }, + "logoInfo": { + "title": "USED CAR", + "image": "assets/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "", + "icon": "fa fa-address-book", + "href": "", + "target": "_self", + "child": [ + { + "title": "首页", + "name":"home", + "href": "page/welcome-1.html", + "icon": "fa fa-home", + "target": "_self" + }, + { + "title": "小程序", + "name":"smallprogram", + "href": "", + "icon": "fa fa-calendar", + "target": "_self", + "child": [ + { + "title": "用户管理", + "name":"user", + "href": "page/userList.html", + "icon": "fa fa-user", + "target": "_self" + }, + { + "title": "车辆管理", + "name":"car", + "href": "page/carlist.html", + "icon": "fa fa-car", + "target": "_self" + }, + { + "title": "审核管理", + "name":"examine", + "href": "page/audit.html", + "icon": "fa fa-file-archive-o", + "target": "_self" + }, + { + "title": "品牌管理", + "name":"brand", + "href": "page/brand.html", + "icon": "fa fa-navicon", + "target": "_self" + }, + { + "title": "型号管理", + "name":"model", + "href": "page/model.html", + "icon": "fa fa-support", + "target": "_self" + }, + { + "title": "能源管理", + "name":"energy", + "href": "page/energy.html", + "icon": "fa fa-cogs", + "target": "_self" + }, + { + "title": "类型管理", + "name":"type", + "href": "page/type.html", + "icon": "fa fa-cubes", + "target": "_self" + }, + { + "title": "协议管理", + "name":"agreement", + "href": "page/agreement.html", + "icon": "fa fa-file-word-o", + "target": "_self" + }, + { + "title": "SEO管理", + "name":"seo", + "href": "page/seo.html", + "icon": "fa fa-file-word-o", + "target": "_self" + } + ] + }, + { + "title": "通用设置", + "name":"general", + "href": "", + "icon": "fa fa-cog", + "target": "_self", + "child": [ + { + "title": "字典设置", + "name":"dictionary", + "href": "page/dict.html", + "icon": "fa fa-file-powerpoint-o", + "target": "_self" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/api/init.json b/api/init.json new file mode 100755 index 0000000..890be1c --- /dev/null +++ b/api/init.json @@ -0,0 +1,108 @@ +{ + "homeInfo": { + "title": "首页", + "name":"home", + "href": "page/welcome-1.html" + }, + "logoInfo": { + "title": "USED CAR", + "image": "assets/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "", + "icon": "fa fa-address-book", + "href": "", + "target": "_self", + "child": [ + { + "title": "首页", + "name":"home", + "href": "page/welcome-1.html", + "icon": "fa fa-home", + "target": "_self" + }, + { + "title": "用户管理", + "name":"user", + "href": "page/userList1.html", + "icon": "fa fa-user", + "target": "_self" + }, + { + "title": "车辆管理", + "name": "car", + "href": "", + "icon": "fa fa-calendar", + "target": "_self", + "child": [ + { + "title": "二手车", + "name":"usedcar", + "href": "page/carlist.html", + "icon": "fa fa-car", + "target": "_self" + }, + { + "title": "新车管理", + "name":"newcar", + "href": "page/newcarlist.html", + "icon": "fa fa-car", + "target": "_self" + } + ] + }, + { + "title": "审核管理", + "name":"examine", + "href": "page/audit.html", + "icon": "fa fa-file-archive-o", + "target": "_self" + }, + { + "title": "品牌管理", + "name":"brand", + "href": "page/brand.html", + "icon": "fa fa-navicon", + "target": "_self" + }, + { + "title": "型号管理", + "name":"model", + "href": "page/model.html", + "icon": "fa fa-support", + "target": "_self" + }, + { + "title": "能源管理", + "name":"energy", + "href": "page/energy.html", + "icon": "fa fa-cogs", + "target": "_self" + }, + { + "title": "类型管理", + "name":"type", + "href": "page/type.html", + "icon": "fa fa-cubes", + "target": "_self" + }, + { + "title": "协议管理", + "name":"agreement", + "href": "page/agreement.html", + "icon": "fa fa-file-word-o", + "target": "_self" + }, + { + "title": "邮箱管理", + "name":"email", + "href": "page/email.html", + "icon": "fa fa-info-circle", + "target": "_self" + } + ] + } + ] +} \ No newline at end of file diff --git a/api/menus.json b/api/menus.json new file mode 100755 index 0000000..e14d00e --- /dev/null +++ b/api/menus.json @@ -0,0 +1,254 @@ +{ + "code": 0, + "msg": "", + "count": 19, + "data": [ + { + "authorityId": 1, + "authorityName": "系统管理", + "orderNumber": 1, + "menuUrl": null, + "menuIcon": "layui-icon-set", + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 0, + "parentId": -1 + }, + { + "authorityId": 2, + "authorityName": "用户管理", + "orderNumber": 2, + "menuUrl": "system/user", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 3, + "authorityName": "查询用户", + "orderNumber": 3, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:54:16", + "authority": "user:view", + "checked": 0, + "updateTime": "2018/07/21 13:54:16", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 4, + "authorityName": "添加用户", + "orderNumber": 4, + "menuUrl": null, + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": "user:add", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 5, + "authorityName": "修改用户", + "orderNumber": 5, + "menuUrl": null, + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": "user:edit", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 6, + "authorityName": "删除用户", + "orderNumber": 6, + "menuUrl": null, + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": "user:delete", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 2 + }, + { + "authorityId": 7, + "authorityName": "角色管理", + "orderNumber": 7, + "menuUrl": "system/role", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 8, + "authorityName": "查询角色", + "orderNumber": 8, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:54:59", + "authority": "role:view", + "checked": 0, + "updateTime": "2018/07/21 13:54:58", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 9, + "authorityName": "添加角色", + "orderNumber": 9, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:add", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 10, + "authorityName": "修改角色", + "orderNumber": 10, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:edit", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 11, + "authorityName": "删除角色", + "orderNumber": 11, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:delete", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 12, + "authorityName": "角色权限管理", + "orderNumber": 12, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "role:auth", + "checked": 0, + "updateTime": "2018/07/13 15:27:18", + "isMenu": 1, + "parentId": 7 + }, + { + "authorityId": 13, + "authorityName": "权限管理", + "orderNumber": 13, + "menuUrl": "system/authorities", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/07/13 15:45:13", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 14, + "authorityName": "查询权限", + "orderNumber": 14, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:55:57", + "authority": "authorities:view", + "checked": 0, + "updateTime": "2018/07/21 13:55:56", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 15, + "authorityName": "添加权限", + "orderNumber": 15, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "authorities:add", + "checked": 0, + "updateTime": "2018/06/29 11:05:41", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 16, + "authorityName": "修改权限", + "orderNumber": 16, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/13 09:13:42", + "authority": "authorities:edit", + "checked": 0, + "updateTime": "2018/07/13 09:13:42", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 17, + "authorityName": "删除权限", + "orderNumber": 17, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/06/29 11:05:41", + "authority": "authorities:delete", + "checked": 0, + "updateTime": "2018/06/29 11:05:41", + "isMenu": 1, + "parentId": 13 + }, + { + "authorityId": 18, + "authorityName": "登录日志", + "orderNumber": 18, + "menuUrl": "system/loginRecord", + "menuIcon": null, + "createTime": "2018/06/29 11:05:41", + "authority": null, + "checked": 0, + "updateTime": "2018/06/29 11:05:41", + "isMenu": 0, + "parentId": 1 + }, + { + "authorityId": 19, + "authorityName": "查询登录日志", + "orderNumber": 19, + "menuUrl": "", + "menuIcon": "", + "createTime": "2018/07/21 13:56:43", + "authority": "loginRecord:view", + "checked": 0, + "updateTime": "2018/07/21 13:56:43", + "isMenu": 1, + "parentId": 18 + } + ] +} \ No newline at end of file diff --git a/api/table.json b/api/table.json new file mode 100755 index 0000000..4620f9f --- /dev/null +++ b/api/table.json @@ -0,0 +1,127 @@ +{ + "code": 0, + "msg": "", + "count": 1000, + "data": [ + { + "id": 1, + "username": "user-0", + "sex": "女", + "city": "城市-0", + "sign": "签名-0", + "experience": 255, + "logins": 24, + "wealth": 82830700, + "classify": "作家", + "score": 57 + }, + { + "id": 2, + "username": "user-1", + "sex": "男", + "city": "城市-1", + "sign": "签名-1", + "experience": 884, + "logins": 58, + "wealth": 64928690, + "classify": "词人", + "score": 27 + }, + { + "id": 3, + "username": "user-2", + "sex": "女", + "city": "城市-2", + "sign": "签名-2", + "experience": 650, + "logins": 77, + "wealth": 6298078, + "classify": "酱油", + "score": 31 + }, + { + "id": 10003, + "username": "user-3", + "sex": "女", + "city": "城市-3", + "sign": "签名-3", + "experience": 362, + "logins": 157, + "wealth": 37117017, + "classify": "诗人", + "score": 68 + }, + { + "id": 10004, + "username": "user-4", + "sex": "男", + "city": "城市-4", + "sign": "签名-4", + "experience": 807, + "logins": 51, + "wealth": 76263262, + "classify": "作家", + "score": 6 + }, + { + "id": 10005, + "username": "user-5", + "sex": "女", + "city": "城市-5", + "sign": "签名-5", + "experience": 173, + "logins": 68, + "wealth": 60344147, + "classify": "作家", + "score": 87 + }, + { + "id": 10006, + "username": "user-6", + "sex": "女", + "city": "城市-6", + "sign": "签名-6", + "experience": 982, + "logins": 37, + "wealth": 57768166, + "classify": "作家", + "score": 34 + }, + { + "id": 10007, + "username": "user-7", + "sex": "男", + "city": "城市-7", + "sign": "签名-7", + "experience": 727, + "logins": 150, + "wealth": 82030578, + "classify": "作家", + "score": 28 + }, + { + "id": 10008, + "username": "user-8", + "sex": "男", + "city": "城市-8", + "sign": "签名-8", + "experience": 951, + "logins": 133, + "wealth": 16503371, + "classify": "词人", + "score": 14 + }, + { + "id": 10009, + "username": "user-9", + "sex": "女", + "city": "城市-9", + "sign": "签名-9", + "experience": 484, + "logins": 25, + "wealth": 86801934, + "classify": "词人", + "score": 75 + } + ] +} \ No newline at end of file diff --git a/api/tableSelect.json b/api/tableSelect.json new file mode 100755 index 0000000..37fb0ed --- /dev/null +++ b/api/tableSelect.json @@ -0,0 +1,23 @@ +{ + "code": 0, + "msg": "", + "count": 16, + "data": [ + { "id":"001", "username":"张玉林", "sex":"女" }, + { "id":"002", "username":"刘晓军", "sex":"男" }, + { "id":"003", "username":"张恒", "sex":"男" }, + { "id":"004", "username":"朱一", "sex":"男" }, + { "id":"005", "username":"刘佳能", "sex":"女" }, + { "id":"006", "username":"晓梅", "sex":"女" }, + { "id":"007", "username":"马冬梅", "sex":"女" }, + { "id":"008", "username":"刘晓庆", "sex":"女" }, + { "id":"009", "username":"刘晓庆", "sex":"女" }, + { "id":"010", "username":"刘晓庆", "sex":"女" }, + { "id":"011", "username":"刘晓庆", "sex":"女" }, + { "id":"012", "username":"刘晓庆", "sex":"女" }, + { "id":"013", "username":"刘晓庆", "sex":"女" }, + { "id":"014", "username":"刘晓庆", "sex":"女" }, + { "id":"015", "username":"刘晓庆", "sex":"女" }, + { "id":"016", "username":"刘晓庆", "sex":"女" } + ] +} \ No newline at end of file diff --git a/api/upload.json b/api/upload.json new file mode 100755 index 0000000..691902d --- /dev/null +++ b/api/upload.json @@ -0,0 +1,10 @@ +{ + "code": 1, + "msg": "上传成功", + "data": { + "url": [ + "../images/logo.png", + "../images/captcha.jpg" + ] + } +} diff --git a/assets/css/layuimini.css b/assets/css/layuimini.css new file mode 100755 index 0000000..da982d3 --- /dev/null +++ b/assets/css/layuimini.css @@ -0,0 +1,928 @@ +/** +配色方案(如有需要,请自行配置) + */ +/**头部-配色*/ +.layui-layout-admin .layui-header { + background-color: #1aa094 !important; +} + +.layui-header > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover { + background-color: #197971 !important; +} + +.layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover { + background-color: #197971 !important; +} + +/**logo-配色*/ +.layui-layout-admin .layuimini-logo { + background-color: #243346 !important; +} + +/**左侧-配色*/ +.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul { + background-color: #2f4056 !important; +} + +.layuimini-menu-left .layui-nav .layui-nav-child a:hover:not(.layui-this) { + background-color: #3b3f4b; +} + +/**左侧菜单选中-配色*/ +.layui-layout-admin .layui-nav-tree .layui-this, .layui-layout-admin .layui-nav-tree .layui-this > a, .layui-layout-admin .layui-nav-tree .layui-nav-child dd.layui-this, .layui-layout-admin .layui-nav-tree .layui-nav-child dd.layui-this a { + background-color: #1aa094 !important; +} + + +/**头部样式 */ +.layui-layout-admin .header { + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; +} + +.layuimini-header-menu, .layui-header { + height: 60px !important; +} + +.layuimini-header-menu > .layui-nav-item { + color: #1b1d21; + height: 60px !important; + line-height: 60px !important; +} + +.layui-header > .layui-layout-right > .layui-nav-item { + height: 60px !important; + line-height: 60px !important; +} + +.layui-layout-left { + left: 295px !important; +} + +.layui-nav.layui-layout-left.layuimini-header-menu.layuimini-pc-show { + font-weight: bold; + transition: all .2s; +} + + +/**logo演示(通用) */ +.layui-layout-admin .layuimini-logo { + font-weight: bold; + color: #ffffff !important; + height: 60px !important; + line-height: 60px !important; + overflow: hidden; + line-height: 64px; + transition: all .2s !important; +} + +.layui-layout-admin .layuimini-logo img { + display: inline-block; + height: 40px; + vertical-align: middle; +} + +.layui-layout-admin .layuimini-logo h1 { + display: inline-block; + margin: 0 0 0 12px; + color: #ffffff; + font-weight: 600; + font-size: 20px; + font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; + vertical-align: middle; +} + +/**缩放工具(通用) */ +.layuimini-tool { + position: absolute !important; + top: 0; + left: 235px; + width: 60px; + height: 100%; + line-height: 60px; + text-align: center; + color: #ffffff !important; + transition: all .2s; +} + +/**缩放工具(缩放) */ +.layuimini-tool i { + display: block; + color: #bbe3df; + width: 32px; + height: 32px; + line-height: 32px; + border-radius: 3px; + text-align: center; + margin-top: 15px; + cursor: pointer; +} + +/**tab选项卡 */ +.layuimini-tab { + margin: 0px; + overflow: hidden; + height: 100% !important; +} + +.layuimini-tab .layui-tab-content { + height: calc(100% - 37px) !important; +} + +.layuimini-tab .layui-tab-content .layui-tab-item { + height: 100%; +} + +.layuimini-tab .layui-tab-content { + padding: 0px; +} + +.layuimini-tab .layui-tab-title { + border: none; + border: 1px solid whitesmoke; + background-color: white; +} + +.layuimini-tab .layui-tab-title li { + border-right: 1px solid whitesmoke; + color: dimgray; +} + +.layuimini-tab .layui-tab-title .layui-tab-bar { + display: none; +} + +.layuimini-tab .layui-tab-title .layui-this:after { + display: none; +} + +.layuimini-tab .layui-tab-title .layuimini-tab-active { + display: inline-block; + background-color: lightgray; + width: 9px; + height: 9px; + border-radius: 30px; + margin-right: 5px; +} + +.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active { + background-color: #1aa094; +} + +.layuimini-tab > .layui-tab-title, .layuimini-tab > .close-box { + height: 35px !important; +} + +.layuimini-tab > .layui-tab-title li, .layuimini-tab > .close-box li { + line-height: 35px !important; +} + +.layuimini-tab .layui-tab-title span { + color: #acafb1; +} + +.layuimini-tab .layui-tab-title .layui-this span { + color: dimgray; +} + +.layuimini-tab .layui-tab-title .layui-tab-close { + font-size: 12px !important; + width: 14px !important; + height: 14px !important; + line-height: 16px !important; +} + +.layuimini-tab .layui-tab-title .layui-tab-close:hover { + border-radius: 4em; + background: #ff5722; +} + +.layuimini-tab .layui-tab-title .disable-close + .layui-tab-close { + display: none; +} + +.layuimini-tab .layui-tab-title .able-close + .layui-tab-close { + display: inline-block; +} + +.layuimini-tab .layui-tab-control > li { + position: absolute; + top: 0px; + height: 35px; + line-height: 35px; + width: 35px; + text-align: center; + background-color: white; + border-top: whitesmoke 1px solid; + border-bottom: whitesmoke 1px solid; +} + +.layuimini-tab .layuimini-tab-roll-left { + left: 0px; + border-right: whitesmoke 1px solid; + border-left: whitesmoke 1px solid; +} + +.layuimini-tab .layuimini-tab-roll-right { + right: 35px; + border-left: 1px solid whitesmoke; +} + +.layuimini-tab .layui-tab-tool { + right: 0px; + border-left: 1px solid whitesmoke; +} + +.layuimini-tab .layui-tab-control .layui-tab-tool, +.layuimini-tab .layui-tab-control .layuimini-tab-roll-left, +.layuimini-tab .layui-tab-control .layuimini-tab-roll-right { + display: none; +} + +.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-left, +.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-right { + display: block; +} + +.layuimini-tab.layui-tab-roll .layui-tab-control .layuimini-tab-roll-right { + right: 0px; + border-right: 1px solid whitesmoke; +} + +.layuimini-tab.layui-tab-roll .layui-tab-title { + padding-left: 35px; + padding-right: 35px; +} + + +.layuimini-tab.layui-tab-tool .layui-tab-control .layui-tab-tool { + display: block; +} + +.layuimini-tab.layui-tab-tool .layui-tab-title { + padding-left: 0px; + padding-right: 35px; +} + + +.layuimini-tab.layui-tab-rollTool .layui-tab-title { + padding-left: 35px; + padding-right: 80px; +} + +.layuimini-tab.layui-tab-rollTool .layui-tab-control .layuimini-tab-roll-left, +.layuimini-tab.layui-tab-rollTool .layui-tab-control .layuimini-tab-roll-right, +.layuimini-tab.layui-tab-rollTool .layui-tab-control .layui-tab-tool { + display: block; +} + +.layuimini-tab .layui-tab-tool .layui-nav { + position: absolute; + height: 43px !important; + top: 0; + width: 100%; + height: 100%; + padding: 0; + background: 0 0; +} + +.layuimini-tab .layui-tab-tool .layui-nav-item { + height: 35px; +} + +.layuimini-tab .layui-tab-tool .layui-nav-bar { + display: none; +} + +.layuimini-tab .layui-tab-tool .layui-nav-child { + left: auto; + top: 45px; + right: 3px; + width: 120px; + border: 1px solid whitesmoke; +} + +.layuimini-tab .layui-tab-tool .layui-this a { + background-color: #009688; +} + +.layuimini-tab-loading { + position: absolute; + display: none; + width: 100%; + height: calc(100% - 37px); + top: 37px; + z-index: 19; + background-color: #fff +} + +.layuimini-tab-loading.close { + animation: close 1s; + -webkit-animation: close 1s; + animation-fill-mode: forwards; +} + +/**左侧菜单栏 (通用) */ +.layui-side.layui-bg-black { + transition: all .2s; +} + +.layui-side.layui-bg-black > .layuimini-menu-left > ul { + transition: all .2s; +} + +.layui-side.layui-bg-black > .layuimini-menu-left > ul > .layui-nav-item:first-child { + border-top: 1px solid #4b5461; +} + +.layuimini-menu-left .layui-nav .layui-nav-item a { + height: 40px; + line-height: 40px; + padding-right: 30px; +} + +.layuimini-menu-left .layui-nav .layui-nav-item > a { + padding-top: 5px; + padding-bottom: 5px; +} + +.layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child { + background: 0 0 !important +} + +.layuimini-menu-left .layui-nav .layui-nav-more { + right: 15px; +} + +.layuimini-menu-left .layui-nav .layui-nav-item a:hover { + background-color: transparent !important; +} + +.layuimini-menu-left .layui-nav { + background-color: transparent !important; +} + + +/**左侧菜单栏 (正常) */ +.layui-layout-body .layui-nav-itemed .layui-nav-child a, .layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child a { + padding-left: 35px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child a { + padding-left: 45px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child .layui-nav-child a { + padding-left: 55px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a { + padding-left: 65px; +} + +.layui-layout-body .layuimini-menu-left .layui-nav .layui-nav-itemed > .layui-nav-child { + padding: 5px 0; +} + +/**内容主体(通用) */ +.layui-layout-admin .layui-body { + overflow: hidden; + bottom: 0px !important; + top: 60px !important; + transition: all .2s; +} + +/**选择配色方案 */ +.layuimini-color .color-title { + padding: 10px 0 10px 20px; + border-bottom: 1px solid #d9dada; + margin-bottom: 8px; +} + +.layuimini-color .color-content { + padding: 10px 5px 0 5px; +} + +.layuimini-color .color-content ul { + list-style: none; + text-align: center; +} + +.layuimini-color .color-content ul li { + position: relative; + display: inline-block; + vertical-align: top; + width: 80px; + height: 50px; + margin: 0 15px 15px 0; + padding: 2px 2px 4px 2px; + background-color: #f2f2f2; + cursor: pointer; + font-size: 12px; + color: #666; +} + +.layuimini-color .color-content li.layui-this:after, .layuimini-color .color-content li:hover:after { + width: 100%; + height: 100%; + padding: 4px; + top: -5px; + left: -5px; + border-color: #d8d8d8; + opacity: 1; +} + +.layuimini-color .color-content li:after { + content: ''; + position: absolute; + z-index: 20; + top: 50%; + left: 50%; + width: 1px; + height: 0; + border: 1px solid #f2f2f2; + transition: all .3s; + -webkit-transition: all .3s; + opacity: 0; +} + + +/**其它 */ +.layui-tab-item { + width: 100% !important; + height: 100% !important; +} + +.layui-nav-item.layui-this { + background-color: #1b1d21; +} + +.layui-width-height { + width: 100%; + height: 95%; +} + +.layui-tab { + margin: 0 0 0 0; + z-index: 99999; +} + +.text-center { + height: 30px !important; + line-height: 30px !important; + text-align: center !important; +} + +.layui-nav { + padding: 0 !important; +} + +.layui-nav .layui-this:after, .layui-nav-bar, .layui-nav-tree .layui-nav-itemed:after { + width: 0 !important; + height: 0 !important; +} + +.layui-layout-admin .layui-side { + top: 60px !important; +} + +.layui-tab-card { + box-shadow: 0px 0px 0px #888888; + border-bottom: 0; +} + + +/**自定义滚动条样式 */ +::-webkit-scrollbar { + display: none +} + + +/*移动端遮罩层*/ +.layuimini-make { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: 1000; + background: rgba(0, 0, 0, .5); + display: none; +} + +.layuimini-mini .layui-header { + z-index: 1001; +} + +/**初始化加载层*/ +.layuimini-loader { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: #ffffff; + z-index: 999999; +} + +.layuimini-loader .layuimini-loader-inner { + display: block; + position: relative; + left: 50%; + top: 50%; + width: 150px; + height: 150px; + margin: -75px 0 0 -75px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 2s linear infinite; +} + +.layuimini-loader .layuimini-loader-inner:before { + content: ""; + position: absolute; + top: 5px; + left: 5px; + right: 5px; + bottom: 5px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 3s linear infinite; +} + +.layuimini-loader .layuimini-loader-inner:after { + content: ""; + position: absolute; + top: 15px; + left: 15px; + right: 15px; + bottom: 15px; + border-radius: 50%; + border: 3px solid transparent; + border-top-color: #1E9FFF; + animation: spin 1.5s linear infinite; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + to { + transform: rotate(1turn); + } +} + +/*系统设置*/ + +.layuimini-color .layui-word-aux { + position: absolute; + left: 60px; + top: 12px; + font-size: 12px; +} + +.layuimini-color .layui-input-block { + margin-left: 15px; + min-height: 36px; +} + +.layuimini-color .more-menu-list { + width: 100%; + margin-top: 30px; +} + + +.layuimini-color .more-menu-item:first-child { + border-top: 1px solid #e8e8e8; +} + +.layuimini-color .more-menu-item .layui-icon { + font-size: 18px; + padding-right: 10px; +} + +.layuimini-color .more-menu-item { + color: #595959; + height: 50px; + line-height: 50px; + font-size: 16px; + padding: 0 25px; + border-bottom: 1px solid #e8e8e8; + font-style: normal; + display: block; +} + +.layuimini-color .more-menu-item:hover { + background-color: whitesmoke; +} + +.layuimini-color .more-menu-item:after { + color: #8c8c8c; + right: 16px; + content: "\e602"; + position: absolute; + font-family: layui-icon !important; +} + +/** +鼠标右键 + */ +.layuimini-tab-mousedown { + display: none; + width: 80px; + position: absolute; + top: 0px !important; + left: 0px !important; +} + +.layuimini-tab-mousedown dd a { + padding: 0 15px; + color: #484545; +} + +.layuimini-tab-make{ + position: absolute; + top: 36px; + bottom: 0px; + width: 100%; + background: rgb(255, 255, 255,0); + padding: 0px; + overflow: hidden; +} + +/** +菜单缩放 + */ +.popup-tips .layui-layer-TipsG{ + display: none; +} +.popup-tips.layui-layer-tips .layui-layer-content{ + padding: 0; +} +.popup-tips .layui-nav-tree{ + width: 150px; + border-radius: 10px; +} + +/**左侧菜单字体间距*/ +.layuimini-menu-left .layui-nav-item a span { + letter-spacing: 1px; +} + +/**头部菜单字体间距*/ +.layui-layout-admin .layui-header .layuimini-header-menu.layuimini-pc-show,.layui-layout-admin .layui-header .layuimini-header-menu.layuimini-mobile-show { + letter-spacing: 1px; +} + + +/**左侧菜单更多下拉样式*/ +.layuimini-menu-left .layui-nav-more,.layuimini-menu-left-zoom .layui-nav-more { + top:36%; + font-family: layui-icon !important; + font-size: 12px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + overflow: hidden; + width: auto; + height: auto; + line-height: normal; + border: none; + display: inline-block; + margin-top: -6px !important; +} + +.layuimini-menu-left .layui-nav-child .layui-nav-more { + margin-top: -6px !important; +} + +.layuimini-menu-left .layui-nav .layui-nav-mored,.layuimini-menu-left .layui-nav-itemed>a .layui-nav-more{ + margin-top: -9px!important; +} + +.layuimini-menu-left-zoom.layui-nav .layui-nav-mored,.layuimini-menu-left-zoom.layui-nav-itemed>a .layui-nav-more{ + margin-top: -9px!important; +} + +.layuimini-menu-left .layui-nav-more:before,.layuimini-menu-left-zoom .layui-nav-more:before { + content: "\e61a"; +} +.layuimini-menu-left .layui-nav-itemed > a > .layui-nav-more,.layuimini-menu-left-zoom .layui-nav-itemed > a > .layui-nav-more { + transform: rotate(180deg); + -ms-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -webkit-transform: rotate(180deg); + -o-transform: rotate(180deg); + width: 12px; + text-align: center; + border-style:none; +} + +.layuimini-menu-left .layui-nav-itemed > a > .layui-nav-more:before,.layuimini-menu-left-zoom .layui-nav-itemed > a > .layui-nav-more:before { + content: '\e61a'; + background-color: transparent; + display: inline-block; + vertical-align: middle; +} + +/**修复左侧菜单字体不对齐的问题*/ +.layuimini-menu-left .layui-nav-item a .fa,.layuimini-menu-left .layui-nav-item a .layui-icon{ + width: 20px; +} + + +/** + PC版样式 + */ +@media screen and (min-width: 1025px) { + /**头部样式(缩放) */ + .layuimini-mini .layui-layout-left.layuimini-header-menu.layuimini-pc-show { + left: 155px !important; + } + + /**logo演示(缩放) */ + .layuimini-mini .layui-layout-admin .layuimini-logo { + width: 60px !important; + } + + .layuimini-mini .layui-layout-admin .layuimini-logo h1 { + display: none; + } + + /**左侧菜单栏(缩放) */ + .layuimini-mini .layuimini-menu-left { + width: 80px !important; + } + + .layuimini-mini .layui-side.layui-bg-black, .layuimini-mini .layuimini-menu-left > ul, .layuimini-mini .layuimini-menu-left > ul li i { + width: 60px !important; + } + + .layuimini-mini .layuimini-menu-left > ul li span:first-child { + display: none; + } + + .layuimini-mini .layuimini-menu-left > ul li span:last-child { + float: right; + right: 7px; + } + + .layuimini-mini .layuimini-menu-left .layui-nav .layui-nav-item a { + height: 40px; + line-height: 40px; + padding-right: 0px !important; + } + + /**内容主体(缩放) */ + .layuimini-mini .layui-layout-admin .layui-body { + left: 60px !important; + } + + .layuimini-mini .layuimini-tool { + left: 95px !important; + } + + .layuimini-pc-show{ + display: block; + } + .layuimini-mobile-show{ + display: none; + } + + /**菜单缩放*/ + .layuimini-mini .layuimini-menu-left .layui-nav-more,.layuimini-mini .layuimini-menu-left .layui-nav-child{ + display: none;!important; + } +} + +/** + 手机自适应样式 +*/ +@media screen and (max-width: 1024px) { + + /** + todo 修复低版本IOS不能滑动问题, 但还是有问题, 低版本IOS部分情况下子页面无法自适应 + */ + .layuimini-tab .layui-tab-content .layui-tab-item { + -webkit-overflow-scrolling: touch; + overflow: scroll; + width: 100%; + height: 100%; + } + + .layuimini-tab .layui-tab-content .layui-tab-item iframe { + height: 100%; + width: 100%; + } + + .layuimini-pc-show{ + display: none; + } + .layuimini-mobile-show{ + display: block; + } + .layuimini-header-content { + left: 0; + } + + .layui-layout-admin .layui-body .layui-tab-item.layui-show { + border-top: 1px solid #e2e2e2; + } + + .layuimini-all .layui-layout-left.layuimini-header-menu { + left: 15px !important + } + + .layuimini-mini .layui-layout-left.layuimini-header-menu { + left: 205px !important + } + + .layui-layout-admin .layui-nav.layui-layout-right > li:not(.layuimini-setting) { + width: 40px !important; + } + + .layui-layout-admin .layui-nav.layui-layout-right > li:not(.layuimini-setting) a { + padding: 0 15px; + } + + .layuimini-all .layui-layout-admin .layui-body { + left: 0px !important; + } + + .layuimini-mini .layui-layout-admin .layuimini-menu-left, .layuimini-mini .layui-header .layuimini-logo { + left: 0; + transition: left .2s; + z-index: 1001 !important; + } + + .layuimini-all .layui-layout-admin .layuimini-menu-left, .layuimini-all .layui-header .layuimini-logo { + left: -200px; + transition: left .2s; + top: 0; + z-index: 1002; + } + + .layuimini-mini .layui-layout-admin .layui-body { + left: 0!important; + transition: left .2s; + top: 0; + z-index: 998; + } + + .layuimini-mini .layuimini-make { + display: block; + } + + .layuimini-multi-module .layuimini-header-content .layuimini-tool { + display: none; + } + + .layuimini-single-module .layuimini-header-content .layuimini-tool { + left: 15px; + } + + .layuimini-mini .layuimini-site-mobile { + display: none !important; + } + + .layuimini-site-mobile { + display: block !important; + position: fixed; + z-index: 100000; + bottom: 15px; + left: 15px; + width: 40px; + height: 40px; + line-height: 40px; + border-radius: 2px; + text-align: center; + background-color: rgba(0, 0, 0, .7); + color: #fff; + } + + .layuimini-header-content { + z-index: 997; + } + + /*修复UC之类的浏览器点击无效*/ + .layuimini-make { + cursor: pointer; + } + + .layuimini-site-mobile { + cursor: pointer; + } +} + +@media screen and (max-width: 550px){ + + /**头部右侧数据*/ + .layuimini-multi-module.layuimini-mini .layuimini-header-content .layui-layout-right { + display: none; + } +} diff --git a/assets/css/public.css b/assets/css/public.css new file mode 100755 index 0000000..3973964 --- /dev/null +++ b/assets/css/public.css @@ -0,0 +1,118 @@ +body { + margin: 15px 15px 15px 15px; + background: #f2f2f2; +} +.bootm{ + text-align: right; + margin: 10px; +} +.more{ + display: flex; + justify-content: center; + color: #1890ff; +} +.more i{ + font-size: 20px !important; +} +.c-t{ + text-align: center; +} +.layuimini-form{ + margin: 20px 20px 0px 0px; +} +.layuimini-container { + border: 1px solid #f2f2f2; + border-radius: 5px; + background-color: #ffffff +} + +.layuimini-main { + margin: 10px 10px 10px 10px; +} +/**必填红点 */ +.layuimini-form > .layui-form-item > .required:after { + content: '*'; + color: red; + position: absolute; + margin-left: 4px; + font-weight: bold; + line-height: 1.8em; + top: 6px; + right: 5px; +} + +.layuimini-form > .layui-form-item > .layui-form-label { + width: 120px !important; +} + +.layuimini-form > .layui-form-item > .layui-input-block { + margin-left: 150px !important; +} + +.layuimini-form > .layui-form-item > .layui-input-block > tip { + display: inline-block; + margin-top: 10px; + line-height: 10px; + font-size: 10px; + color: #a29c9c; +} + +/**搜索框*/ +.layuimini-container .table-search-fieldset { + margin: 0; + border: 1px solid #e6e6e6; + padding: 10px 20px 5px 20px; + color: #6b6b6b; +} + +/**自定义滚动条样式 */ +::-webkit-scrollbar { + width: 6px; + height: 6px +} + +::-webkit-scrollbar-track { + background-color: transparent; + -webkit-border-radius: 2em; + -moz-border-radius: 2em; + border-radius: 2em; +} + +::-webkit-scrollbar-thumb { + background-color: #9c9da0; + -webkit-border-radius: 2em; + -moz-border-radius: 2em; + border-radius: 2em +} +.layadmin-contact-box .edit{ + margin-right: 0px; +} +.check, +.show, +.edit { + margin-right: 10px; +} +.check{ + color: #FFB800; +} +.show{ + color: #009688; +} +.edit{ + color: #1890ff; +} +.delete{ + color: #FF5722; +} +.red{ + color: #FF5722; +} +.orange{ + color: #FFB800; +} +.green{ + color: #009688; +} +.blue{ + color: #1890ff; +} \ No newline at end of file diff --git a/assets/css/themes/default.css b/assets/css/themes/default.css new file mode 100755 index 0000000..4f3cefb --- /dev/null +++ b/assets/css/themes/default.css @@ -0,0 +1,95 @@ +/*头部右侧背景色 headerRightBg */ +.layui-layout-admin .layui-header { + background-color: #ffffff !important; +} + +/*头部右侧选中背景色 headerRightBgThis */ +.layui-layout-admin .layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover { + background-color: #e4e4e4 !important; +} + +/*头部右侧字体颜色 headerRightColor */ +.layui-layout-admin .layui-header .layui-nav .layui-nav-item a { + color: rgba(107, 107, 107, 0.7); +} + +/**头部右侧下拉字体颜色 headerRightChildColor */ +.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child a { + color: rgba(107, 107, 107, 0.7) !important; +} + +/*头部右侧鼠标选中 headerRightColorThis */ +.layui-header .layuimini-menu-header-pc.layui-nav .layui-nav-item a:hover, .layui-header .layuimini-header-menu.layuimini-pc-show.layui-nav .layui-this a { + color: #565656 !important; +} + +/*头部右侧更多下拉颜色 headerRightNavMore */ +.layui-header .layui-nav .layui-nav-more { + border-top-color: rgba(160, 160, 160, 0.7) !important; +} + +/*头部右侧更多下拉颜色 headerRightNavMore */ +.layui-header .layui-nav .layui-nav-mored, .layui-header .layui-nav-itemed > a .layui-nav-more { + border-color: transparent transparent rgba(160, 160, 160, 0.7) !important; +} + +/**头部右侧更多下拉配置色 headerRightNavMoreBg headerRightNavMoreColor */ +.layui-header .layui-nav .layui-nav-child dd.layui-this a, .layui-header .layui-nav-child dd.layui-this, .layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child .layui-this a { + background-color: #1E9FFF !important; + color: #ffffff !important; +} + +/*头部缩放按钮样式 headerRightToolColor */ +.layui-layout-admin .layui-header .layuimini-tool i { + color: #565656; +} + +/*logo背景颜色 headerLogoBg */ +.layui-layout-admin .layuimini-logo { + background-color: #192027 !important; +} + +/*logo字体颜色 headerLogoColor */ +.layui-layout-admin .layuimini-logo h1 { + color: rgb(191, 187, 187); +} + +/*左侧菜单更多下拉样式 leftMenuNavMore */ +.layuimini-menu-left .layui-nav .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-more { + border-top-color: rgb(191, 187, 187); +} + +/*左侧菜单更多下拉样式 leftMenuNavMore */ +.layuimini-menu-left .layui-nav .layui-nav-mored, .layuimini-menu-left .layui-nav-itemed > a .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-mored, .layuimini-menu-left-zoom.layui-nav-itemed > a .layui-nav-more { + border-color: transparent transparent rgb(191, 187, 187) !important; +} + +/*左侧菜单背景 leftMenuBg */ +.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul, .layuimini-menu-left-zoom > ul { + background-color: #28333E !important; +} + +/*左侧菜单选中背景 leftMenuBgThis */ +.layuimini-menu-left .layui-nav-tree .layui-this, .layuimini-menu-left .layui-nav-tree .layui-this > a, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this a, .layuimini-menu-left-zoom.layui-nav-tree .layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-this > a, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this a { + background-color: #1E9FFF !important +} + +/*左侧菜单子菜单背景 leftMenuChildBg */ +.layuimini-menu-left .layui-nav-itemed > .layui-nav-child { + background-color: #0c0f13 !important; +} + +/*左侧菜单字体颜色 leftMenuColor */ +.layuimini-menu-left .layui-nav .layui-nav-item a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a { + color: rgb(191, 187, 187) !important; +} + +/*左侧菜单选中字体颜色 leftMenuColorThis */ +.layuimini-menu-left .layui-nav .layui-nav-item a:hover, .layuimini-menu-left .layui-nav .layui-this a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a:hover, .layuimini-menu-left-zoom.layui-nav .layui-this a { + color: #ffffff !important; +} + +/**tab选项卡选中颜色 tabActiveColor */ +.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active { + background-color: #1e9fff; +} diff --git a/assets/images/bg.jpg b/assets/images/bg.jpg new file mode 100755 index 0000000..d5870f5 Binary files /dev/null and b/assets/images/bg.jpg differ diff --git a/assets/images/captcha.jpg b/assets/images/captcha.jpg new file mode 100755 index 0000000..92b2a33 Binary files /dev/null and b/assets/images/captcha.jpg differ diff --git a/assets/images/donate_qrcode.png b/assets/images/donate_qrcode.png new file mode 100755 index 0000000..079ac3d Binary files /dev/null and b/assets/images/donate_qrcode.png differ diff --git a/assets/images/favicon.ico b/assets/images/favicon.ico new file mode 100755 index 0000000..3e4cd51 Binary files /dev/null and b/assets/images/favicon.ico differ diff --git a/assets/images/home.png b/assets/images/home.png new file mode 100755 index 0000000..348ff27 Binary files /dev/null and b/assets/images/home.png differ diff --git a/assets/images/icon-login.png b/assets/images/icon-login.png new file mode 100755 index 0000000..1db2f96 Binary files /dev/null and b/assets/images/icon-login.png differ diff --git a/assets/images/loginbg.png b/assets/images/loginbg.png new file mode 100755 index 0000000..675c74b Binary files /dev/null and b/assets/images/loginbg.png differ diff --git a/assets/images/logo.png b/assets/images/logo.png new file mode 100755 index 0000000..8e6cfe6 Binary files /dev/null and b/assets/images/logo.png differ diff --git a/assets/images/noimg.png b/assets/images/noimg.png new file mode 100755 index 0000000..af0df0e Binary files /dev/null and b/assets/images/noimg.png differ diff --git a/assets/images/portrait.png b/assets/images/portrait.png new file mode 100755 index 0000000..33c7691 Binary files /dev/null and b/assets/images/portrait.png differ diff --git a/assets/js/agreement.js b/assets/js/agreement.js new file mode 100755 index 0000000..9198b94 --- /dev/null +++ b/assets/js/agreement.js @@ -0,0 +1,216 @@ +layui.use(['form','table'], function () { + var $ = layui.jquery, + form = layui.form, + table = layui.table; + // 获取当前语言 + var currentLang = localStorage.getItem('language') || 'zh'; + var lang = langConfig[currentLang]; + var operationBar = $('#currentTableBar').html(); + if (operationBar) { + var newHtml = operationBar + .replace(/编辑/g, lang.carlist.operations.edit) + .replace(/删除/g, lang.carlist.operations.delete) + $('#currentTableBar').html(newHtml); + } + var toolbarDemo = $('#toolbarDemo').html(); + if (toolbarDemo) { + var newHtmlt = toolbarDemo + .replace(/添加/g, lang.userlist.add) + $('#toolbarDemo').html(newHtmlt); + } + var tableInitb=table.render({ + elem: '#currentTableId', + url: lang.baseUrl+'console/agt/list', + headers: { + Authorization: sessionStorage.tokencar, + lang:localStorage.getItem('language')?localStorage.getItem('language'):"zh" + }, + toolbar: '#toolbarDemo', + defaultToolbar: ['filter', 'exports', 'print', { + title: '提示', + layEvent: 'LAYTABLE_TIPS', + icon: 'layui-icon-tips' + }], + parseData: function(res) { //res 即为原始返回的数据 + console.log(res) + return { + "code": 0, //解析接口状态 + "msg": 'message', //解析提示文本 + "count": res.data.meta.total, //解析数据长度 + "data": res.data.list //解析数据列表 + }; + }, + cols: [[ + {type: "checkbox"}, + {field: 'id', title: 'ID', sort: true}, + {field: 'key', title: lang.alllist.agtype, + templet: function(d){ + var v='' + if(d.key=='privacy'){ + v=lang.alllist.privacy + } + if(d.key=='user'){ + v=lang.alllist.user + } + return v + } + }, + {field: 'content', title: lang.alllist.title}, + {field: 'title',title: lang.alllist.content}, + {field: 'status', title:lang.alllist.status, + templet: function(d){ + var v='' + if(d.status==1){ + v=''+lang.alllist.status2+'' + } + if(d.status==0){ + v=''+lang.alllist.status2+'' + } + return v + }, + }, + {field: 'sort', title: lang.alllist.sort}, + {field: 'created_at',title: lang.alllist.create_time}, + {field: 'updated_at',title: lang.alllist.update_time}, + {title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"} + ]], + limits: [10, 15, 20, 25, 50, 100], + limit: 10, + page: true, + skin: 'line', + done: function(res, curr, count){ + window.i18n.updatePageContent(); + } + }); + // 监听搜索操作 + form.on('submit(data-search-btn)', function (data) { + var result = JSON.stringify(data.field); + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + key: data.field.key, + status: data.field.status, + title: data.field.title, + } + }, 'data'); + + return false; + }); + + /** + * toolbar监听事件 + */ + table.on('toolbar(currentTableFilter)', function (obj) { + if (obj.event === 'add') { // 监听添加操作 + var index = layer.open({ + title: lang.userlist.add, + type: 2, + maxmin: true, + area: ['70%', '90%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/agreementadd.html', + yes: function (index, layero) { + var iframeWindow = window['layui-layer-iframe' + index] + , submitID = 'saveBtn' + , submit = layero.find('iframe').contents().find('#' + submitID); + //监听提交 + iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { + var field = data.field; //获取提交的字段 + self.agtadd({ + type: 'post', + data: data.field, + successCallBack: function (result) { + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function (result) { + alert(result.message); + } + }) + console.log(field) + + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + + } else if (obj.event === 'delete') { // 监听删除操作 + var checkStatus = table.checkStatus('currentTableId') + , data = checkStatus.data; + layer.alert(JSON.stringify(data)); + } + }); + + //监听表格复选框选择 + table.on('checkbox(currentTableFilter)', function (obj) { + console.log(obj) + }); + + table.on('tool(currentTableFilter)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + var index = layer.open({ + title:lang.audit.edit_title, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '90%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/agreementedit.html?id='+data.id, + yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'saveBtn' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + self.agtupdate({ + type:'post', + data:data.field, + successCallBack: function(result){ + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + } + }) + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + return false; + } else if (obj.event === 'delete') { + layer.confirm(lang.audit.confirm_delete, function(index) { + self.agtdelete({ + type:'post', + data:{id:data.id}, + successCallBack: function(result){ + layer.msg(result.message, { + icon: 1, + time: 1000 + }); + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + window.location.reload() + } + }) + + }); + } + }); + + }); \ No newline at end of file diff --git a/assets/js/audit.js b/assets/js/audit.js new file mode 100755 index 0000000..46ea651 --- /dev/null +++ b/assets/js/audit.js @@ -0,0 +1,232 @@ +layui.use(['form', 'table'], function () { + var $ = layui.jquery, + form = layui.form, + table = layui.table; + // 获取当前语言 + var currentLang = localStorage.getItem('language') || 'zh'; + var lang = langConfig[currentLang]; + var operationBar = $('#currentTableBar').html(); + if (operationBar) { + var newHtml = operationBar + .replace(/删除/g, lang.carlist.operations.delete) + .replace(/审核/g, lang.carlist.operations.check) + .replace(/详情/g, lang.carlist.operations.show) + .replace(/Delete/g, lang.carlist.operations.delete) + .replace(/Check/g, lang.carlist.operations.check) + .replace(/Details/g, lang.carlist.operations.show); + $('#currentTableBar').html(newHtml); + } + var toolbarDemo = $('#toolbarDemo').html(); + if (toolbarDemo) { + var newHtmlt = toolbarDemo + .replace(/全部/g, lang.audit.all) + .replace(/待审核/g, lang.audit.applied) + .replace(/已审核/g, lang.audit.not_applied) + $('#toolbarDemo').html(newHtmlt); + } + var tableInitb = table.render({ + elem: '#currentTableId', + url: lang.baseUrl+'console/apply/list', + headers: { + Authorization: sessionStorage.tokencar, + lang:localStorage.getItem('language')?localStorage.getItem('language'):"zh" + }, + toolbar: '#toolbarDemo', + defaultToolbar: ['filter', 'exports', 'print', { + title: '提示', + layEvent: 'LAYTABLE_TIPS', + icon: 'layui-icon-tips' + }], + parseData: function(res) { //res 即为原始返回的数据 + console.log(res) + return { + "code": 0, //解析接口状态 + "msg": 'message', //解析提示文本 + "count": res.data.meta.total, //解析数据长度 + "data": res.data.list //解析数据列表 + }; + }, + cols: [[ + {type: "checkbox"}, + {field: 'id',title:"ID", sort: true}, + // {field: 'admin_name',minWidth: 100, title: lang.audit.admin_name}, + {field: 'name',minWidth: 100, title: lang.audit.product_name}, + {field: 'desc',minWidth: 150, title: lang.audit.audit_desc, + templet: function (d) { + var v='' + if(d.apply_status==0){ + v='' + }else{ + v=d.desc + } + return v + } + }, + {field: 'apply_status', title: lang.audit.status, + templet: function (d) { + var v='' + if(d.apply_status==0){ + v='' + lang.audit.pending_review + '' + } + if(d.apply_status==1){ + v='' + lang.audit.approved + '' + } + if(d.apply_status==2){ + v='' + lang.audit.rejected + '' + } + return v + } + }, + {field: 'created_at',minWidth: 150,title: lang.audit.create_time}, + {field: 'updated_at',minWidth: 150,title: lang.audit.update_time}, + {title:lang.audit.operation, minWidth: 200, toolbar: '#currentTableBar', align: "center",fixed:'right'} + ]], + limits: [10, 15, 20, 25, 50, 100], + limit: 10, + page: true, + skin: 'line', + done: function(res, curr, count){ + window.i18n.updatePageContent(); + } + }); + // 监听搜索操作 + form.on('submit(data-search-btn)', function (data) { + //执行搜索重载 + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + vehicle_data_name: data.field.vehicle_data_name + } + }, 'data'); + + return false; + }); + + /** + * toolbar监听事件 + */ + table.on('toolbar(currentTableFilter)', function (obj) { + if (obj.event === 'all') { // 监听添加操作 + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + apply_status:'' + } + }, 'data'); + + } else if (obj.event === 'apply') { + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + apply_status: 1 + } + }, 'data'); + } else if (obj.event === 'noapply') { + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + apply_status: 0 + } + }, 'data'); + } + }); + + //监听表格复选框选择 + table.on('checkbox(currentTableFilter)', function (obj) { + console.log(obj) + }); + + table.on('tool(currentTableFilter)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + + var index = layer.open({ + title: lang.audit.edit_title, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '90%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/carlistedit.html?id='+data.id, + }); + $(window).on("resize", function () { + layer.full(index); + }); + return false; + } else if (obj.event === 'delete') { + layer.confirm(lang.audit.confirm_delete, function(index) { + self.applydelete({ + type:'post', + data:{id:data.id}, + successCallBack: function(result){ + layer.msg(result.message, { + icon: 1, + time: 1000 + }); + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + window.location.reload() + } + }) + + }); + } else if (obj.event === 'check') { // 监听删除操作 + var index = layer.open({ + title: lang.audit.check, + type: 2, + shade: 0.2, + maxmin: true, + shadeClose: false, + area: ['60%', '85%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/auditcheck.html?id='+data.id+'&vehicle_data_id='+data.vehicle_data_id, + yes: function (index, layero) { + var iframeWindow = window['layui-layer-iframe' + index] + , submitID = 'saveBtn' + , submit = layero.find('iframe').contents().find('#' + submitID); + //监听提交 + iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { + var field = data.field; //获取提交的字段 + self.applydo({ + type: 'post', + data: data.field, + successCallBack: function (result) { + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function (result) { + alert(result.message); + } + }) + console.log(field) + + }); + submit.trigger('click'); + } + }); + } else if (obj.event === 'show') { // 监听删除操作 + var index = layer.open({ + title: lang.audit.show, + type: 2, + shade: 0.2, + maxmin: true, + shadeClose: false, + area: ['60%', '85%'], + content: '../page/table/auditshow.html?id='+data.id + }); + } + }); + + }); \ No newline at end of file diff --git a/assets/js/brand.js b/assets/js/brand.js new file mode 100755 index 0000000..231b857 --- /dev/null +++ b/assets/js/brand.js @@ -0,0 +1,254 @@ +layui.use(['form', 'table'], function () { + var $ = layui.jquery, + form = layui.form, + table = layui.table; + // 获取当前语言 + var currentLang = localStorage.getItem('language') || 'zh'; + var lang = langConfig[currentLang]; + var operationBar = $('#currentTableBar').html(); + if (operationBar) { + var newHtml = operationBar + .replace(/编辑/g, lang.carlist.operations.edit) + .replace(/删除/g, lang.carlist.operations.delete) + $('#currentTableBar').html(newHtml); + } + var toolbarDemo = $('#toolbarDemo').html(); + if (toolbarDemo) { + var newHtmlt = toolbarDemo + .replace(/添加/g, lang.userlist.add) + $('#toolbarDemo').html(newHtmlt); + } + var tableInitb = table.render({ + elem: '#currentTableId', + url: lang.baseUrl+'console/brand/list', + headers: { + Authorization: sessionStorage.tokencar, + lang:localStorage.getItem('language')?localStorage.getItem('language'):"zh" + }, + toolbar: '#toolbarDemo', + defaultToolbar: ['filter', 'exports', 'print', { + title: '提示', + layEvent: 'LAYTABLE_TIPS', + icon: 'layui-icon-tips' + }], + parseData: function(res) { //res 即为原始返回的数据 + console.log(res) + return { + "code": 0, //解析接口状态 + "msg": 'message', //解析提示文本 + "count": res.data.meta.total, //解析数据长度 + "data": res.data.list //解析数据列表 + }; + }, + cols: [[ + {type: "checkbox"}, + {field: 'id', title: 'ID', sort: true}, + {field: 'name', title: lang.alllist.name}, + {field: 'cover', minWidth: 100,title: lang.alllist.logo, + templet: function(d){ + var img= '' + return img; + } + }, + {field: 'status',title: lang.alllist.status, + // templet: function(d){ + // var img= '' + // return img; + // }, + templet: function (d) { + form.on("switch(status)", function (data) { + let load = layer.load(); + let postData = {}; + postData.status = data.elem.checked ? 1 : 0; + postData.id = d.id; + postData.name = d.name; + self.brandupdate({ + type:'post', + data: postData, + successCallBack: function (result) { + layer.msg(result.message) + layer.close(load); + }, + failCallBack: function (result) { + layer.msg(result.message) + layer.closeAll('loading'); + tableInitb.reload() + } + }) + }); + let checked = d['status'] === 1 ? "checked" : ""; + return ''; + } + }, + {field: 'sort', title: lang.alllist.is_hot, + templet: function (d) { + var v='' + if(d.is_hot==0){ + v=''+lang.alllist.no+'' + } + if(d.is_hot==1){ + v=''+lang.alllist.yes+'' + } + return v + } + }, + {field: 'created_at',title: lang.alllist.create_time}, + {field: 'updated_at',title: lang.alllist.update_time}, + {title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"} + ]], + limits: [10, 15, 20, 25, 50, 100], + limit: 10, + page: true, + skin: 'line', + done: function(res, curr, count){ + // 表格渲染完成后绑定图片点击事件 + $('img[lay-src]').on('click', function(){ + var imgSrc = $(this).attr('lay-src'); + layer.photos({ + photos: { + "data": [{ + "src": imgSrc + }] + }, + anim: 5 + }); + }); + window.i18n.updatePageContent(); + }, + }); + // 监听搜索操作 + form.on('submit(data-search-btn)', function (data) { + var result = JSON.stringify(data.field); + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + name: data.field.name, + status: data.field.status, + } + }, 'data'); + + return false; + }); + + /** + * toolbar监听事件 + */ + table.on('toolbar(currentTableFilter)', function (obj) { + if (obj.event === 'add') { // 监听添加操作 + var index = layer.open({ + title: lang.userlist.add, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '80%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/brandadd.html', + yes: function (index, layero) { + var iframeWindow = window['layui-layer-iframe' + index] + , submitID = 'saveBtn' + , submit = layero.find('iframe').contents().find('#' + submitID); + //监听提交 + iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { + var field = data.field; //获取提交的字段 + var datas = transformData(field) + self.brandadd({ + type: 'post', + data: datas, + successCallBack: function (result) { + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function (result) { + alert(result.message); + } + }) + console.log(field) + + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + } else if (obj.event === 'delete') { // 监听删除操作 + var checkStatus = table.checkStatus('currentTableId') + , data = checkStatus.data; + layer.alert(JSON.stringify(data)); + } + }); + + //监听表格复选框选择 + table.on('checkbox(currentTableFilter)', function (obj) { + console.log(obj) + }); + + table.on('tool(currentTableFilter)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + + var index = layer.open({ + title: lang.audit.edit_title, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '80%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/brandedit.html?id='+data.id, + yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'saveBtn' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + var datas = transformDataalledt(field,'brand') + console.log(datas) + self.brandupdate({ + type:'post', + data:datas, + successCallBack: function(result){ + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + } + }) + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + return false; + }else if (obj.event === 'delete') { + layer.confirm(lang.audit.confirm_delete, function(index) { + self.branddelete({ + type:'post', + data:{id:data.id}, + successCallBack: function(result){ + layer.msg(result.message, { + icon: 1, + time: 1000 + }); + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + window.location.reload() + } + }) + + }); + } + }); + + }); \ No newline at end of file diff --git a/assets/js/carlist.js b/assets/js/carlist.js new file mode 100755 index 0000000..8dc5f77 --- /dev/null +++ b/assets/js/carlist.js @@ -0,0 +1,310 @@ +layui.use(['form', 'table'], function () { + var $ = layui.jquery, + form = layui.form, + table = layui.table; + + brandpresetfn(form) + typespresetfn(form) + energypresetfn(form) + // 获取当前语言 + var currentLang = localStorage.getItem('language') || 'zh'; + var lang = langConfig[currentLang]; + var operationBar = $('#currentTableBar').html(); + if (operationBar) { + var newHtml = operationBar + .replace(/编辑/g, lang.carlist.operations.edit) + .replace(/删除/g, lang.carlist.operations.delete) + .replace(/审核/g, lang.carlist.operations.check) + .replace(/详情/g, lang.carlist.operations.show) + .replace(/Edit/g, lang.carlist.operations.edit) + .replace(/Delete/g, lang.carlist.operations.delete) + .replace(/Check/g, lang.carlist.operations.check) + .replace(/Details/g, lang.carlist.operations.show); + $('#currentTableBar').html(newHtml); + } + var toolbarDemo = $('#toolbarDemo').html(); + if (toolbarDemo) { + var newHtmlt = toolbarDemo + .replace(/添加/g, lang.userlist.add) + $('#toolbarDemo').html(newHtmlt); + } + console.log(lang.carlist.operation) + var tableInitb = table.render({ + elem: '#currentTableId', + url: lang.baseUrl+'console/vehicle/data/list', + headers: { + Authorization: sessionStorage.tokencar, + lang:localStorage.getItem('language')?localStorage.getItem('language'):"zh" + }, + toolbar: '#toolbarDemo', + defaultToolbar: ['filter', 'exports', 'print', { + title: '提示', + layEvent: 'LAYTABLE_TIPS', + icon: 'layui-icon-tips' + }], + parseData: function(res) { //res 即为原始返回的数据 + console.log(res) + return { + "code": 0, //解析接口状态 + "msg": 'message', //解析提示文本 + "count": res.data.meta.total, //解析数据长度 + "data": res.data.list //解析数据列表 + }; + }, + cols: [[ + {type: "checkbox"}, + {field: 'id', title: lang.carlist.ID, sort: true}, + {field: 'user_nickname',minWidth: 100, title: lang.carlist.user}, + {field: 'name',minWidth: 100, title: lang.carlist.product_name}, + {field: 'vin',minWidth: 100, title: lang.carlist.VIN}, + {field: 'cover', minWidth: 100,title: lang.carlist.product_image, + templet: function(d){ + var img= '' + return img; + } + }, + {field: 'brand', title: lang.carlist.brand,}, + {field: 'price', title: lang.carlist.price}, + {field: 'type',title: lang.carlist.type,}, + {field: 'energy', title: lang.carlist.energy}, + {field: 'mileage', title: lang.carlist.mileage}, + {field: 'vehicle_age',title: lang.carlist.vehicle_age}, + {field: 'condition_desc',minWidth: 150, title: lang.carlist.condition_desc}, + // {field: 'info_status', title: lang.carlist.status, + // templet: function (d) { + // var v='' + // if(d.info_status==0){ + // v=''+lang.carlist.pending_review+'' + // } + // if(d.info_status==1){ + // v=''+lang.carlist.pending_publish+'' + // } + // if(d.info_status==2){ + // v=''+lang.carlist.rejected+'' + // } + // return v + // } + // }, + {field: 'is_saled', title: lang.carlist.is_sold, + templet: function (d) { + var v='' + if(d.is_saled==0){ + v=''+lang.carlist.not_sold+'' + } + if(d.info_status==1){ + v=''+lang.carlist.sold+'' + } + return v + } + }, + {field: 'created_at',minWidth: 150,title: lang.carlist.create_time}, + // {field: 'updated_at',minWidth: 150,title: '更新时间'}, + {title: lang.carlist.operation, minWidth: 200, toolbar: '#currentTableBar', align: "center",fixed:'right'} + ]], + done: function(res, curr, count){ + // 表格渲染完成后绑定图片点击事件 + $('img[lay-src]').on('click', function(){ + var imgSrc = $(this).attr('lay-src'); + layer.photos({ + photos: { + "data": [{ + "src": imgSrc + }] + }, + anim: 5 + }); + }); + window.i18n.updatePageContent(); + }, + limits: [10, 15, 20, 25, 50, 100], + limit: 10, + page: true, + skin: 'line', + lang: localStorage.getItem('language'), + // 添加分页相关的多语言配置 + }); + // 监听搜索操作 + form.on('submit(data-search-btn)', function (data) { + //执行搜索重载 + console.log(data.field) + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + "userInfo.nickname_like":data.field.nickname_like, + "name_like":data.field.name_like, + "brand":data.field.brand, + "type":data.field.type, + "energy":data.field.energy, + "is_saled":data.field.is_saled + } + }, 'data'); + + return false; + }); + + /** + * toolbar监听事件 + */ + table.on('toolbar(currentTableFilter)', function (obj) { + if (obj.event === 'add') { // 监听添加操作 + var index = layer.open({ + title: lang.userlist.add, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '90%'], + btn: [lang.audit.confirm, lang.audit.cancel], + // content: '../page/table/carlistadd.html', + content: '../page/table/carlistadd.html', + yes: function (index, layero) { + var iframeWindow = window['layui-layer-iframe' + index] + , submitID = 'saveBtn' + , submit = layero.find('iframe').contents().find('#' + submitID); + //监听提交 + iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { + var field = data.field; //获取提交的字段 + self.vehicleadd({ + type: 'post', + data: data.field, + successCallBack: function (result) { + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function (result) { + alert(result.message); + } + }) + console.log(field) + + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + } else if (obj.event === 'delete') { // 监听删除操作 + var checkStatus = table.checkStatus('currentTableId') + , data = checkStatus.data; + layer.alert(JSON.stringify(data)); + } + }); + + //监听表格复选框选择 + table.on('checkbox(currentTableFilter)', function (obj) { + console.log(obj) + }); + + table.on('tool(currentTableFilter)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + + var index = layer.open({ + title:lang.audit.edit_title, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '90%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/carlistedit.html?id='+data.id, + yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'saveBtn' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + console.log(field) + self.vehicleupdate({ + type:'post', + data:data.field, + successCallBack: function(result){ + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + } + }) + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + return false; + } else if (obj.event === 'delete') { + layer.confirm(lang.audit.confirm_delete, function(index) { + self.vehicledelete({ + type:'post', + data:{id:data.id}, + successCallBack: function(result){ + layer.msg(result.message, { + icon: 1, + time: 1000 + }); + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + window.location.reload() + } + }) + + }); + } else if (obj.event === 'check') { // 监听删除操作 + var index = layer.open({ + title:lang.audit.check, + type: 2, + shade: 0.2, + maxmin: true, + shadeClose: false, + area: ['60%', '85%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/carlistcheck.html?id='+data.id, + yes: function (index, layero) { + var iframeWindow = window['layui-layer-iframe' + index] + , submitID = 'saveBtn' + , submit = layero.find('iframe').contents().find('#' + submitID); + //监听提交 + iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { + var field = data.field; //获取提交的字段 + self.vehicleapply({ + type: 'post', + data: data.field, + successCallBack: function (result) { + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function (result) { + alert(result.message); + } + }) + console.log(field) + + }); + submit.trigger('click'); + } + }); + } else if (obj.event === 'show') { // 监听删除操作 + var index = layer.open({ + title: lang.audit.show, + type: 2, + shade: 0.2, + maxmin: true, + shadeClose: false, + area: ['60%', '85%'], + content: '../page/table/carlistshow.html?id='+data.id + }); + } + }); + + }); \ No newline at end of file diff --git a/assets/js/dict.js b/assets/js/dict.js new file mode 100755 index 0000000..3a7aff3 --- /dev/null +++ b/assets/js/dict.js @@ -0,0 +1,183 @@ +layui.use(['form', 'table'], function () { + var $ = layui.jquery, + form = layui.form, + table = layui.table; + + var tableInitb = table.render({ + elem: '#currentTableId', + url: 'console/brand/list', + headers: { + Authorization: sessionStorage.tokencar, + lang:localStorage.getItem('language')?localStorage.getItem('language'):"zh" + }, + toolbar: '#toolbarDemo', + defaultToolbar: ['filter', 'exports', 'print', { + title: '提示', + layEvent: 'LAYTABLE_TIPS', + icon: 'layui-icon-tips' + }], + parseData: function(res) { //res 即为原始返回的数据 + console.log(res) + return { + "code": 0, //解析接口状态 + "msg": 'message', //解析提示文本 + "count": res.data.meta.total, //解析数据长度 + "data": res.data.list //解析数据列表 + }; + }, + cols: [[ + {type: "checkbox"}, + {field: 'id', title: 'ID',width:80, sort: true}, + {field: 'name', width:80,title: '名称'}, + {field: 'status',title: '值', + templet: function (d) { + var value= '[{"value":"0","name":"女"},{"value":"1","name":"男"}]' + const dicts = JSON.parse(value) + return dicts.map(dict => `${dict.name}: ${dict.value}`).join(' '); + }, + }, + {title: '操作', minWidth: 150, toolbar: '#currentTableBar', align: "center"} + ]], + limits: [10, 15, 20, 25, 50, 100], + limit: 10, + page: true, + skin: 'line' + }); + // 监听搜索操作 + form.on('submit(data-search-btn)', function (data) { + var result = JSON.stringify(data.field); + layer.alert(result, { + title: '最终的搜索信息' + }); + + //执行搜索重载 + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + searchParams: result + } + }, 'data'); + + return false; + }); + + /** + * toolbar监听事件 + */ + table.on('toolbar(currentTableFilter)', function (obj) { + if (obj.event === 'add') { // 监听添加操作 + var index = layer.open({ + title: '添加', + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '80%'], + btn: ['确定', '取消'], + content: '../page/table/dictadd.html', + yes: function (index, layero) { + var iframeWindow = window['layui-layer-iframe' + index] + , submitID = 'saveBtn' + , submit = layero.find('iframe').contents().find('#' + submitID); + //监听提交 + iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { + var field = data.field; //获取提交的字段 + // self.brandadd({ + // type: 'post', + // data: data.field, + // successCallBack: function (result) { + // layer.msg(result.message) + // layer.close(index); //关闭弹层 + // tableInitb.reload() + // }, + // failCallBack: function (result) { + // alert(result.message); + // } + // }) + console.log(field) + + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + } else if (obj.event === 'delete') { // 监听删除操作 + var checkStatus = table.checkStatus('currentTableId') + , data = checkStatus.data; + layer.alert(JSON.stringify(data)); + } + }); + + //监听表格复选框选择 + table.on('checkbox(currentTableFilter)', function (obj) { + console.log(obj) + }); + + table.on('tool(currentTableFilter)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + + var index = layer.open({ + title: '编辑', + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '80%'], + btn: ['确定', '取消'], + content: '../page/table/dictedit.html?id='+data.id, + yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'saveBtn' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + console.log(field) + // self.brandupdate({ + // type:'post', + // data:data.field, + // successCallBack: function(result){ + // layer.msg(result.message) + // layer.close(index); //关闭弹层 + // tableInitb.reload() + // }, + // failCallBack: function(result){ + // alert(result.message); + // } + // }) + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + return false; + }else if (obj.event === 'delete') { + layer.confirm('确认删除么?', function(index) { + self.branddelete({ + type:'post', + data:{id:data.id}, + successCallBack: function(result){ + layer.msg(result.message, { + icon: 1, + time: 1000 + }); + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + window.location.reload() + } + }) + + }); + } + }); + + }); \ No newline at end of file diff --git a/assets/js/email.js b/assets/js/email.js new file mode 100755 index 0000000..0b741fe --- /dev/null +++ b/assets/js/email.js @@ -0,0 +1,193 @@ +layui.use(['form', 'table'], function () { + var $ = layui.jquery, + form = layui.form, + table = layui.table; + // 获取当前语言 + var currentLang = localStorage.getItem('language') || 'zh'; + var lang = langConfig[currentLang]; + var tableInitb = table.render({ + elem: '#currentTableId', + url: lang.baseUrl+'console/email/subscribe', + headers: { + Authorization: sessionStorage.tokencar, + lang:localStorage.getItem('language')?localStorage.getItem('language'):"zh" + }, + // toolbar: '#toolbarDemo', + defaultToolbar: ['filter', 'exports', 'print', { + title: '提示', + layEvent: 'LAYTABLE_TIPS', + icon: 'layui-icon-tips' + }], + parseData: function(res) { //res 即为原始返回的数据 + console.log(res) + return { + "code": 0, //解析接口状态 + "msg": 'message', //解析提示文本 + "count": res.data.meta.total, //解析数据长度 + "data": res.data.list //解析数据列表 + }; + }, + cols: [[ + {type: "checkbox"}, + {field: 'id', title: 'ID', sort: true}, + {field: 'email', title:lang.email.name}, + {field: 'ip', minWidth: 100,title: lang.email.ip}, + {field: 'created_at',title: lang.alllist.create_time}, + {field: 'updated_at',title: lang.alllist.update_time}, + // {title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"} + ]], + done: function(){ + // 表格渲染完成后绑定图片点击事件 + $('img[lay-src]').on('click', function(){ + var imgSrc = $(this).attr('lay-src'); + layer.photos({ + photos: { + "data": [{ + "src": imgSrc + }] + }, + anim: 5 + }); + }); + }, + limits: [10, 15, 20, 25, 50, 100], + limit: 10, + page: true, + skin: 'line', + done: function(res, curr, count){ + window.i18n.updatePageContent(); + } + }); + // 监听搜索操作 + form.on('submit(data-search-btn)', function (data) { + var result = JSON.stringify(data.field); + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + name: data.field.name, + status: data.field.status, + } + }, 'data'); + + return false; + }); + + /** + * toolbar监听事件 + */ + table.on('toolbar(currentTableFilter)', function (obj) { + if (obj.event === 'add') { // 监听添加操作 + var index = layer.open({ + title: lang.userlist.add, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '80%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/typeadd.html', + yes: function (index, layero) { + var iframeWindow = window['layui-layer-iframe' + index] + , submitID = 'saveBtn' + , submit = layero.find('iframe').contents().find('#' + submitID); + //监听提交 + iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { + var field = data.field; //获取提交的字段 + self.typesadd({ + type: 'post', + data: data.field, + successCallBack: function (result) { + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function (result) { + alert(result.message); + } + }) + console.log(field) + + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + } else if (obj.event === 'delete') { // 监听删除操作 + var checkStatus = table.checkStatus('currentTableId') + , data = checkStatus.data; + layer.alert(JSON.stringify(data)); + } + }); + + //监听表格复选框选择 + table.on('checkbox(currentTableFilter)', function (obj) { + console.log(obj) + }); + + table.on('tool(currentTableFilter)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + + var index = layer.open({ + title: lang.audit.edit_title, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '80%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/typeedit.html?id='+data.id, + yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'saveBtn' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + self.typesupdate({ + type:'post', + data:data.field, + successCallBack: function(result){ + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + } + }) + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + return false; + }else if (obj.event === 'delete') { + layer.confirm(lang.audit.confirm_delete, function(index) { + self.typesdelete({ + type:'post', + data:{id:data.id}, + successCallBack: function(result){ + layer.msg(result.message, { + icon: 1, + time: 1000 + }); + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + window.location.reload() + } + }) + + }); + } + }); + + }); \ No newline at end of file diff --git a/assets/js/energy.js b/assets/js/energy.js new file mode 100755 index 0000000..b4e73e8 --- /dev/null +++ b/assets/js/energy.js @@ -0,0 +1,223 @@ +layui.use(['form', 'table'], function () { + var $ = layui.jquery, + form = layui.form, + table = layui.table; + // 获取当前语言 + var currentLang = localStorage.getItem('language') || 'zh'; + var lang = langConfig[currentLang]; + var operationBar = $('#currentTableBar').html(); + if (operationBar) { + var newHtml = operationBar + .replace(/编辑/g, lang.carlist.operations.edit) + .replace(/删除/g, lang.carlist.operations.delete) + $('#currentTableBar').html(newHtml); + } + var toolbarDemo = $('#toolbarDemo').html(); + if (toolbarDemo) { + var newHtmlt = toolbarDemo + .replace(/添加/g, lang.userlist.add) + $('#toolbarDemo').html(newHtmlt); + } + var tableInitb = table.render({ + elem: '#currentTableId', + url: lang.baseUrl+'console/energy/list', + headers: { + Authorization: sessionStorage.tokencar, + lang:localStorage.getItem('language')?localStorage.getItem('language'):"zh" + }, + toolbar: '#toolbarDemo', + defaultToolbar: ['filter', 'exports', 'print', { + title: '提示', + layEvent: 'LAYTABLE_TIPS', + icon: 'layui-icon-tips' + }], + parseData: function(res) { //res 即为原始返回的数据 + console.log(res) + return { + "code": 0, //解析接口状态 + "msg": 'message', //解析提示文本 + "count": res.data.meta.total, //解析数据长度 + "data": res.data.list //解析数据列表 + }; + }, + cols: [[ + {type: "checkbox"}, + {field: 'id', title: 'ID', sort: true}, + {field: 'name', title: lang.alllist.name}, + {field: 'status',title:lang.alllist.status, + // templet: function(d){ + // var img= '' + // return img; + // }, + templet: function (d) { + form.on("switch(status)", function (data) { + let load = layer.load(); + let postData = {}; + postData.status = data.elem.checked ? 1 : 0; + postData.id = d.id; + postData.name = d.name; + self.brandupdate({ + type:'post', + data: postData, + successCallBack: function (result) { + layer.msg(result.message) + layer.close(load); + }, + failCallBack: function (result) { + layer.msg(result.message) + layer.closeAll('loading'); + tableInitb.reload() + } + }) + }); + let checked = d['status'] === 1 ? "checked" : ""; + return ''; + } + }, + {field: 'sort', title: lang.alllist.sort}, + {field: 'created_at',title: lang.alllist.create_time}, + {field: 'updated_at',title: lang.alllist.update_time}, + {title: lang.alllist.operation, minWidth: 150, toolbar: '#currentTableBar', align: "center"} + ]], + limits: [10, 15, 20, 25, 50, 100], + limit: 10, + page: true, + skin: 'line', + done: function(res, curr, count){ + window.i18n.updatePageContent(); + } + }); + // 监听搜索操作 + form.on('submit(data-search-btn)', function (data) { + var result = JSON.stringify(data.field); + + table.reload('currentTableId', { + page: { + curr: 1 + } + , where: { + name: data.field.name, + status: data.field.status, + } + }, 'data'); + + return false; + }); + + /** + * toolbar监听事件 + */ + table.on('toolbar(currentTableFilter)', function (obj) { + if (obj.event === 'add') { // 监听添加操作 + var index = layer.open({ + title: lang.userlist.add, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '80%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/energyadd.html', + yes: function (index, layero) { + var iframeWindow = window['layui-layer-iframe' + index] + , submitID = 'saveBtn' + , submit = layero.find('iframe').contents().find('#' + submitID); + //监听提交 + iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { + var field = data.field; //获取提交的字段 + self.energyadd({ + type: 'post', + data: data.field, + successCallBack: function (result) { + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function (result) { + alert(result.message); + } + }) + console.log(field) + + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + } else if (obj.event === 'delete') { // 监听删除操作 + var checkStatus = table.checkStatus('currentTableId') + , data = checkStatus.data; + layer.alert(JSON.stringify(data)); + } + }); + + //监听表格复选框选择 + table.on('checkbox(currentTableFilter)', function (obj) { + console.log(obj) + }); + + table.on('tool(currentTableFilter)', function (obj) { + var data = obj.data; + if (obj.event === 'edit') { + + var index = layer.open({ + title:lang.audit.edit_title, + type: 2, + shade: 0.2, + maxmin:true, + shadeClose: true, + area: ['70%', '80%'], + btn: [lang.audit.confirm, lang.audit.cancel], + content: '../page/table/energyedit.html?id='+data.id, + yes: function(index, layero){ + var iframeWindow = window['layui-layer-iframe'+ index] + ,submitID = 'saveBtn' + ,submit = layero.find('iframe').contents().find('#'+ submitID); + //监听提交 + iframeWindow.layui.form.on('submit('+ submitID +')', function(data){ + var field = data.field; //获取提交的字段 + self.energyupdate({ + type:'post', + data:data.field, + successCallBack: function(result){ + layer.msg(result.message) + layer.close(index); //关闭弹层 + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + } + }) + }); + submit.trigger('click'); + } + }); + $(window).on("resize", function () { + layer.full(index); + }); + return false; + }else if (obj.event === 'delete') { + layer.confirm(lang.audit.confirm_delete, function(index) { + self.energydelete({ + type:'post', + data:{id:data.id}, + successCallBack: function(result){ + layer.msg(result.message, { + icon: 1, + time: 1000 + }); + tableInitb.reload() + }, + failCallBack: function(result){ + alert(result.message); + window.location.reload() + } + }) + + }); + } + }); + + }); \ No newline at end of file diff --git a/assets/js/i18n.js b/assets/js/i18n.js new file mode 100755 index 0000000..d74ef2e --- /dev/null +++ b/assets/js/i18n.js @@ -0,0 +1,117 @@ +function loadJSONSync(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); // false 表示同步请求 + try { + xhr.send(null); + if (xhr.status === 200) { + return JSON.parse(xhr.responseText); + } else { + console.error('请求失败,状态码:', xhr.status); + return null; + } + } catch (e) { + console.error('请求过程中出错:', e); + return null; + } +} + + +class I18n { + constructor() { + this.currentLang = localStorage.getItem('language') || 'zh'; + this.translations = {}; + this.loadLanguage(this.currentLang); + this.updateLanguageSelect(); + } + + async loadLanguage(lang) { + try { + var data = loadJSONSync(`./assets/js/lang/${lang}.json`); + // console.log(data); + this.translations = data; + this.updatePageContent(); + this.updateLanguageSelect(); + + // 如果菜单已初始化,重新渲染菜单 + if (window.menu) { + window.menu.render(); + } + } catch (error) { + console.error('Error loading language file:', error); + } + } + + setLanguage(lang) { + this.currentLang = lang; + localStorage.setItem('language', lang); + this.loadLanguage(lang); + } + setLanguagehome(lang) { + this.currentLang = lang; + localStorage.setItem('language', lang); + window.location.reload(); + } + translate(key) { + const keys = key.split('.'); + let value = this.translations; + + for (const k of keys) { + if (value && value[k] !== undefined) { + value = value[k]; + } else { + return key; + } + } + + return value; + } + + updatePageContent() { + var data = this.translations; + + // 常规文本内容 + $('[data-i18n]').each(function() { + const keys = $(this).data('i18n').split('.'); + let value = data; + + keys.forEach(key => { + value = value[key]; + }); + + $(this).text(value || ''); + }); + + // placeholder翻译 + $('[data-i18n-placeholder]').each(function() { + const keys = $(this).data('i18n-placeholder').split('.'); + let value = data; + keys.forEach(key => { + value = value[key]; + }); + $(this).attr('placeholder', value || ''); + }); + + // option文本翻译 + $('option[data-i18n]').each(function() { + const keys = $(this).data('i18n').split('.'); + let value = data; + + keys.forEach(key => { + value = value[key]; + }); + + $(this).text(value || ''); + }); + } + + updateLanguageSelect() { + // 更新语言选择下拉框的选中状态 + const select = document.querySelector('.language-switch select'); + if (select) { + select.value = this.currentLang; + } + } +} + +// 创建全局实例 +window.i18n = new I18n(); \ No newline at end of file diff --git a/assets/js/i18n1.js b/assets/js/i18n1.js new file mode 100755 index 0000000..0e1dd6a --- /dev/null +++ b/assets/js/i18n1.js @@ -0,0 +1,117 @@ +function loadJSONSync(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); // false 表示同步请求 + try { + xhr.send(null); + if (xhr.status === 200) { + return JSON.parse(xhr.responseText); + } else { + console.error('请求失败,状态码:', xhr.status); + return null; + } + } catch (e) { + console.error('请求过程中出错:', e); + return null; + } +} + + +class I18n { + constructor() { + this.currentLang = localStorage.getItem('language') || 'zh'; + this.translations = {}; + this.loadLanguage(this.currentLang); + this.updateLanguageSelect(); + } + + async loadLanguage(lang) { + try { + var data = loadJSONSync(`../../assets/js/lang/${lang}.json`); + // console.log(data); + this.translations = data; + this.updatePageContent(); + this.updateLanguageSelect(); + + // 如果菜单已初始化,重新渲染菜单 + if (window.menu) { + window.menu.render(); + } + } catch (error) { + console.error('Error loading language file:', error); + } + } + + setLanguage(lang) { + this.currentLang = lang; + localStorage.setItem('language', lang); + this.loadLanguage(lang); + } + setLanguagehome(lang) { + this.currentLang = lang; + localStorage.setItem('language', lang); + window.location.reload(); + } + translate(key) { + const keys = key.split('.'); + let value = this.translations; + + for (const k of keys) { + if (value && value[k] !== undefined) { + value = value[k]; + } else { + return key; + } + } + + return value; + } + + updatePageContent() { + var data = this.translations; + + // 常规文本内容 + $('[data-i18n]').each(function() { + const keys = $(this).data('i18n').split('.'); + let value = data; + + keys.forEach(key => { + value = value[key]; + }); + + $(this).text(value || ''); + }); + + // placeholder翻译 + $('[data-i18n-placeholder]').each(function() { + const keys = $(this).data('i18n-placeholder').split('.'); + let value = data; + keys.forEach(key => { + value = value[key]; + }); + $(this).attr('placeholder', value || ''); + }); + + // option文本翻译 + $('option[data-i18n]').each(function() { + const keys = $(this).data('i18n').split('.'); + let value = data; + + keys.forEach(key => { + value = value[key]; + }); + + $(this).text(value || ''); + }); + } + + updateLanguageSelect() { + // 更新语言选择下拉框的选中状态 + const select = document.querySelector('.language-switch select'); + if (select) { + select.value = this.currentLang; + } + } +} + +// 创建全局实例 +window.i18n = new I18n(); \ No newline at end of file diff --git a/assets/js/i18n2.js b/assets/js/i18n2.js new file mode 100755 index 0000000..aae3b78 --- /dev/null +++ b/assets/js/i18n2.js @@ -0,0 +1,117 @@ +function loadJSONSync(url) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, false); // false 表示同步请求 + try { + xhr.send(null); + if (xhr.status === 200) { + return JSON.parse(xhr.responseText); + } else { + console.error('请求失败,状态码:', xhr.status); + return null; + } + } catch (e) { + console.error('请求过程中出错:', e); + return null; + } +} + + +class I18n { + constructor() { + this.currentLang = localStorage.getItem('language') || 'zh'; + this.translations = {}; + this.loadLanguage(this.currentLang); + this.updateLanguageSelect(); + } + + async loadLanguage(lang) { + try { + var data = loadJSONSync(`../assets/js/lang/${lang}.json`); + // console.log(data); + this.translations = data; + this.updatePageContent(); + this.updateLanguageSelect(); + + // 如果菜单已初始化,重新渲染菜单 + if (window.menu) { + window.menu.render(); + } + } catch (error) { + console.error('Error loading language file:', error); + } + } + + setLanguage(lang) { + this.currentLang = lang; + localStorage.setItem('language', lang); + this.loadLanguage(lang); + } + setLanguagehome(lang) { + this.currentLang = lang; + localStorage.setItem('language', lang); + window.location.reload(); + } + translate(key) { + const keys = key.split('.'); + let value = this.translations; + + for (const k of keys) { + if (value && value[k] !== undefined) { + value = value[k]; + } else { + return key; + } + } + + return value; + } + + updatePageContent() { + var data = this.translations; + + // 常规文本内容 + $('[data-i18n]').each(function() { + const keys = $(this).data('i18n').split('.'); + let value = data; + + keys.forEach(key => { + value = value[key]; + }); + + $(this).text(value || ''); + }); + + // placeholder翻译 + $('[data-i18n-placeholder]').each(function() { + const keys = $(this).data('i18n-placeholder').split('.'); + let value = data; + keys.forEach(key => { + value = value[key]; + }); + $(this).attr('placeholder', value || ''); + }); + + // option文本翻译 + $('option[data-i18n]').each(function() { + const keys = $(this).data('i18n').split('.'); + let value = data; + + keys.forEach(key => { + value = value[key]; + }); + + $(this).text(value || ''); + }); + } + + updateLanguageSelect() { + // 更新语言选择下拉框的选中状态 + const select = document.querySelector('.language-switch select'); + if (select) { + select.value = this.currentLang; + } + } +} + +// 创建全局实例 +window.i18n = new I18n(); \ No newline at end of file diff --git a/assets/js/lang/en - 副本.json b/assets/js/lang/en - 副本.json new file mode 100755 index 0000000..a7e1b01 --- /dev/null +++ b/assets/js/lang/en - 副本.json @@ -0,0 +1,169 @@ +{ + "page": { + "title": "Admin Panel-Login" + }, + "login": { + "title": "Admin Login", + "username": "Please enter username", + "password": "Please enter password", + "submit": "Login Now", + "username_required": "Username cannot be empty", + "password_required": "Password cannot be empty", + "success": "Login successful", + "invalid_credentials": "Authentication failed! Incorrect username or password!" + }, + "nav": { + "home": "Home", + "smallprogram": "Mini Program", + "user": "User", + "car": "Vehicle", + "examine": "Review", + "brand": "Brand", + "model": "Model", + "energy": "Energy", + "type": "Type", + "agreement": "Agreement", + "general": "General Settings", + "dictionary": "Dictionary Settings" + }, + "home": { + "welcome": "Welcome to our website", + "more": "Learn more" + }, + "btn": { + "submit": "Submit", + "cancel": "Cancel", + "search": "Search", + "add": "Add", + "edit": "Edit", + "delete": "Delete", + "check": "Check", + "show": "Details", + "confirm": "Confirm", + "reset": "Reset" + }, + "footer": { + "copyright": "Copyright", + "address": "Address", + "phone": "Phone", + "email": "Email" + }, + "search_info": "Search information", + "userlist": { + "search_info": "Search information", + "user_id": "User ID", + "nickname": "Nickname", + "realname": "Real Name", + "phone": "Phone", + "wechat_id": "WeChat ID", + "search": "Search", + "reset": "Reset", + "expand": "Expand", + "retract": "Retract", + "add": "Add", + "delete": "Delete", + "confirm_delete": "Confirm deletion?", + "no_data": "No data", + "id": "ID", + "company": "Company", + "phone_number": "Phone Number", + "wechat_id_full": "WeChat ID", + "create_time": "Creation Time", + "update_time": "Update Time", + "edit": "Edit", + "head":"profile picture", + "uploadig":"upload pictures", + "status":"state" + }, + "carlist": { + "user": "User", + "product_name": "Product Name", + "VIN": "VIN", + "product_image": "Product Image", + "brand": "Brand", + "price": "Price", + "type": "Type", + "energy": "Energy Type", + "mileage": "Mileage", + "vehicle_age": "Vehicle Age", + "condition_desc": "Condition Description", + "status": "Status", + "is_sold": "Sold Status", + "create_time": "Creation Time", + "operation": "Operation", + "pending_review": "Pending Review", + "pending_publish": "Pending Publication", + "rejected": "Rejected", + "not_sold": "Not Sold", + "sold": "Sold", + "confirm_delete": "Confirm deletion?", + "tips": "Tips", + "add_car": "Add Vehicle", + "edit_car": "Edit Vehicle", + "check_car": "Review Vehicle", + "car_details": "Vehicle Details", + "basic_info": "Basic Information", + "car_album": "Vehicle Album", + "store_status": "Inventory Status", + "in_stock": "In Stock", + "in_transit": "In Transit", + "on_order": "On Order", + "location": "Location", + "CoverImage":"Cover Image", + "model":"Model", + "front45Degree": "45° Front", + "leftFront45Degree": "Left Front 45°", + "leftFrontHeadlight": "Left Front Headlight", + "front": "Front", + "frontLowerPart": "Front Lower Part", + "wheelHub": "Wheel Hub", + "rightFrontSeat": "Right Front Seat", + "rightBottomEdge": "Right Bottom Edge", + "rightRearTaillight": "Right Rear Taillight", + "rightRear45Degree": "Right Rear 45°", + "rearLowerPart": "Rear Lower Part", + "trunk": "Trunk", + "leftBottomEdge": "Left Bottom Edge", + "rearSeat": "Rear Seat", + "console": "Console", + "controlPanel": "Control Panel", + "gearLever": "Gear Lever", + "key": "Key", + "steeringWheel": "Steering Wheel", + "dashboard": "Dashboard", + "displayedMileage": "Displayed Mileage", + "leftFrontDoorPanel": "Left Front Door Panel", + "leftFrontDoorFunctionArea": "Left Front Door Function Area", + "leftFrontSeat": "Left Front Seat", + "ceiling": "Ceiling" + }, + "audit":{ + "all": "全部", + "applied": "已审核", + "not_applied": "未审核" + }, + "seach":{ + "name":"Name", + "status": "Status", + "agtype":"Protocol", + "title":"Title", + "content":"Content" + }, + "selectlist":{ + "privacy": "Privacy Agreement", + "user": "User Agreement", + "status1": "Active", + "status2": "Disabled" + }, + "sort": "Sort", + "pleaseenter":"please enter", + "Belongingbrand":"Belonging brand", + "typeimg":"type map", + "select":"Please select", + "logout":"Log Out", + "Close1":"Close the current ", + "Close2":"Close Other", + "Close3":"Close All", + "all":"Total", + "items":"items" +} \ No newline at end of file diff --git a/assets/js/lang/en.json b/assets/js/lang/en.json new file mode 100755 index 0000000..71fdc48 --- /dev/null +++ b/assets/js/lang/en.json @@ -0,0 +1,237 @@ +{ + "page": { + "title": "Admin Panel - Login" + }, + "login": { + "title": "Admin Login", + "username": "Please enter username", + "password": "Please enter password", + "submit": "Login", + "username_required": "Username cannot be empty", + "password_required": "Password cannot be empty", + "success": "Login successful", + "invalid_credentials": "Authentication failed! Incorrect username or password!" + }, + "nav": { + "home": "Home", + "smallprogram": "Mini Program", + "user": "User", + "car": "Vehicle", + "examine": "Review", + "brand": "Brand", + "model": "Model", + "energy": "Energy", + "type": "Type", + "agreement": "Agreement", + "general": "General Settings", + "dictionary": "Dictionary Settings", + "newcar":"New Car", + "usedcar":"Used Car", + "seo":"SEO", + "email":"Email" + }, + "homE": { + "welcome": "Welcome to our website", + "more": "Learn more", + "title": "Data Statistics", + "realtime": "Real-time", + "brandCounts": "Number of Brands", + "inOrderCounts": "Orders in Process", + "inTransitCounts": "In Transit", + "vehicleCounts": "Vehicle Count" + }, + "btn": { + "submit": "Submit", + "cancel": "Cancel", + "search": "Search", + "add": "Add", + "edit": "Edit", + "delete": "Delete", + "check": "Review", + "show": "Details", + "confirm": "Confirm", + "reset": "Reset" + }, + "footer": { + "copyright": "Copyright", + "address": "Address", + "phone": "Phone", + "email": "Email" + }, + "search_info": "Search information", + "userlist": { + "search_info": "Search information", + "user_id": "User ID", + "nickname": "Nickname", + "realname": "Full Name", + "phone": "Phone", + "wechat_id": "WeChat ID", + "search": "Search", + "reset": "Reset", + "expand": "Expand", + "retract": "Collapse", + "add": "Add", + "delete": "Delete", + "confirm_delete": "Confirm deletion?", + "no_data": "No data", + "id": "ID", + "company": "Company", + "phone_number": "Phone Number", + "wechat_id_full": "WeChat ID", + "create_time": "Creation Time", + "update_time": "Update Time", + "edit": "Edit", + "head": "Avatar", + "uploadig": "Uploading image", + "status": "Status" + }, + "carlist": { + "user": "User", + "product_name": "Product Name", + "VIN": "Vehicle Identification Number", + "product_image": "Product Image", + "brand": "Brand", + "price": "Price", + "type": "Type", + "energy": "Energy", + "mileage": "Mileage", + "vehicle_age": "Vehicle age (years)", + "condition_desc": "Condition Description", + "status": "Status", + "is_sold": "Is Sold", + "create_time": "Creation Time", + "operation": "Operation", + "pending_review": "Pending Review", + "pending_publish": "Pending Publish", + "rejected": "Rejected", + "not_sold": "Not Sold", + "sold": "Sold", + "confirm_delete": "Confirm deletion?", + "tips": "Tips", + "add_car": "Add Vehicle", + "edit_car": "Edit Vehicle", + "check_car": "Review Vehicle", + "car_details": "Vehicle Details", + "basic_info": "Basic Information", + "car_album": "Vehicle Album", + "store_status": "Inventory Status", + "in_stock": "In Stock", + "in_transit": "In Transit", + "on_order": "On Order", + "location": "Location", + "CoverImage": "Cover Image", + "model": "Model", + "front45Degree": "45° Front View", + "leftFront45Degree": "Left Front 45°", + "leftFrontHeadlight": "Left Front Headlight", + "front": "Front View", + "frontLowerPart": "Front Lower Part", + "wheelHub": "Wheel Hub", + "rightFrontSeat": "Right Front Seat", + "rightBottomEdge": "Right Bottom Edge", + "rightRearTaillight": "Right Rear Taillight", + "rightRear45Degree": "Right Rear 45°", + "rearLowerPart": "Rear Lower Part", + "trunk": "Trunk", + "leftBottomEdge": "Left Bottom Edge", + "rearSeat": "Rear Seat", + "console": "Console", + "controlPanel": "Control Panel", + "gearLever": "Gear Lever", + "key": "Key", + "steeringWheel": "Steering Wheel", + "dashboard": "Dashboard", + "displayedMileage": "Displayed Mileage", + "leftFrontDoorPanel": "Left Front Door Panel", + "leftFrontDoorFunctionArea": "Left Front Door Function Area", + "leftFrontSeat": "Left Front Seat", + "ceiling": "Ceiling" + }, + "audit": { + "all": "All", + "applied": "Reviewed", + "not_applied": "Not Reviewed", + "pass": "Pass", + "refuse": "Refuse", + "desc": "Description", + "editcarbtn": "Edit vehicle" + }, + "seach": { + "name": "Name", + "status": "Status", + "agtype": "Agreement Type", + "title": "Title", + "content": "Content" + }, + "selectlist": { + "privacy": "Privacy Agreement", + "user": "User Agreement", + "status1": "Active", + "status2": "Disabled" + }, + "seo": { + "title": "Page Title", + "description": "Page Description", + "canonical": "", + "og_type": "Website Type", + "og_title": "Share Title", + "og_description": "Share Description", + "og_image": "Share Thumbnail", + "og_url": "Share URL", + "og_site_name": "Site Name", + "page": "Current Page" + }, + "brand": { + "name": "Brand Name", + "logo": "Brand Logo", + "logoalt": "Logo Description", + "status": "Status", + "banner": "Banner Image", + "banneralt": "Banner Description", + "desc": "Brand Description", + "thumbnail": "Thumbnail", + "thumbnailalt": "Thumbnail Description", + "detailsimg": "Brand Carousel Images", + "advantage": "Brand Advantages", + "advantage-title": "Advantage Title", + "advantage-desc": "Advantage Description", + "album": "Brand Album", + "is_hot": "Is Hot" + }, + "newcar": { + "memo": "Vehicle Description", + "introduce": "Vehicle Introduction", + "desc": "Vehicle Description", + "characteristic": "Vehicle Features", + "video": "Vehicle Video", + "problem": "FAQ", + "imgalt": "Image Description", + "coveralt": "Cover Image Description" + }, + "alls": { + "title": "Title", + "title_placeholder": "Please enter title", + "content": "Content", + "content_placeholder": "Please enter content", + "introduce_placeholder": "Please enter introduction", + "image_desc": "Please enter image description", + "problem": "Question", + "answer": "Answer", + "answer_placeholder": "Please enter answer", + "problem_placeholder": "Please enter question", + "yes": "Yes", + "no": "No" + }, + "sort": "Sort", + "pleaseenter": "Please enter", + "Belongingbrand": "Belonging Brand", + "typeimg": "Type Image", + "Imageratio":"Aspect ratio", + "select": "Please select", + "logout": "Logout", + "Close1": "Close Current", + "Close2": "Close Others", + "Close3": "Close All", + "all": "Total", + "items": "items" +} \ No newline at end of file diff --git a/assets/js/lang/ru.json b/assets/js/lang/ru.json new file mode 100755 index 0000000..713b04d --- /dev/null +++ b/assets/js/lang/ru.json @@ -0,0 +1,237 @@ +{ + "page": { + "title": "Админ панель - Вход" + }, + "login": { + "title": "Вход в админку", + "username": "Введите имя пользователя", + "password": "Введите пароль", + "submit": "Войти", + "username_required": "Имя пользователя не может быть пустым", + "password_required": "Пароль не может быть пустым", + "success": "Вход выполнен успешно", + "invalid_credentials": "Ошибка аутентификации! Неверное имя пользователя или пароль!" + }, + "nav": { + "home": "Главная", + "smallprogram": "Мини-программа", + "user": "пользователями", + "car": "автомобилями", + "examine": "проверками", + "brand": "брендами", + "model": "моделями", + "energy": "типами топлива", + "type": "типами", + "agreement": "соглашениями", + "general": "Общие настройки", + "dictionary": "Настройки словарей", + "newcar":"Новые автомобили", + "usedcar":"Б/у автомобили", + "seo":"SEO", + "email":"Эл. почта" + }, + "home": { + "welcome": "Добро пожаловать на наш сайт", + "more": "Узнать больше", + "title": "Статистика данных", + "realtime": "В реальном времени", + "brandCounts": "Количество брендов", + "inOrderCounts": "Заказы в обработке", + "inTransitCounts": "В пути", + "vehicleCounts": "Количество автомобилей" + }, + "btn": { + "submit": "Отправить", + "cancel": "Отмена", + "search": "Поиск", + "add": "Добавить", + "edit": "Редактировать", + "delete": "Удалить", + "check": "Проверить", + "show": "Подробности", + "confirm": "Подтвердить", + "reset": "Сброс" + }, + "footer": { + "copyright": "Авторские права", + "address": "Адрес", + "phone": "Телефон", + "email": "Эл. почта" + }, + "search_info": "Поиск информации", + "userlist": { + "search_info": "Поиск информации", + "user_id": "ID пользователя", + "nickname": "Никнейм", + "realname": "Полное имя", + "phone": "Телефон", + "wechat_id": "WeChat ID", + "search": "Поиск", + "reset": "Сброс", + "expand": "Развернуть", + "retract": "Свернуть", + "add": "Добавить", + "delete": "Удалить", + "confirm_delete": "Подтвердить удаление?", + "no_data": "Нет данных", + "id": "ID", + "company": "Компания", + "phone_number": "Номер телефона", + "wechat_id_full": "WeChat ID", + "create_time": "Время создания", + "update_time": "Время обновления", + "edit": "Редактировать", + "head": "Аватар", + "uploadig": "Загрузка изображения", + "status": "Статус" + }, + "carlist": { + "user": "Пользователь", + "product_name": "Название продукта", + "VIN": "Идентификационный номер автомобиля", + "product_image": "Изображение продукта", + "brand": "Бренд", + "price": "Цена", + "type": "Тип", + "energy": "Тип топлива", + "mileage": "Пробег", + "vehicle_age": "Возраст автомобиля (лет)", + "condition_desc": "Описание состояния", + "status": "Статус", + "is_sold": "Продан", + "create_time": "Время создания", + "operation": "Действие", + "pending_review": "Ожидает проверки", + "pending_publish": "Ожидает публикации", + "rejected": "Отклонено", + "not_sold": "Не продан", + "sold": "Продан", + "confirm_delete": "Подтвердить удаление?", + "tips": "Подсказки", + "add_car": "Добавить автомобиль", + "edit_car": "Редактировать автомобиль", + "check_car": "Проверить автомобиль", + "car_details": "Детали автомобиля", + "basic_info": "Основная информация", + "car_album": "Альбом автомобиля", + "store_status": "Статус склада", + "in_stock": "В наличии", + "in_transit": "В пути", + "on_order": "На заказ", + "location": "Местоположение", + "CoverImage": "Обложка", + "model": "Модель", + "front45Degree": "45° спереди", + "leftFront45Degree": "Слева спереди 45°", + "leftFrontHeadlight": "Левая передняя фара", + "front": "Вид спереди", + "frontLowerPart": "Нижняя часть спереди", + "wheelHub": "Ступица колеса", + "rightFrontSeat": "Правое переднее сиденье", + "rightBottomEdge": "Правая нижняя кромка", + "rightRearTaillight": "Правый задний фонарь", + "rightRear45Degree": "Справа сзади 45°", + "rearLowerPart": "Нижняя часть сзади", + "trunk": "Багажник", + "leftBottomEdge": "Левая нижняя кромка", + "rearSeat": "Заднее сиденье", + "console": "Консоль", + "controlPanel": "Панель управления", + "gearLever": "Рычаг переключения передач", + "key": "Ключ", + "steeringWheel": "Руль", + "dashboard": "Приборная панель", + "displayedMileage": "Показания пробега", + "leftFrontDoorPanel": "Левая передняя дверная панель", + "leftFrontDoorFunctionArea": "Функциональная зона левой передней двери", + "leftFrontSeat": "Левое переднее сиденье", + "ceiling": "Потолок" + }, + "audit": { + "all": "Все", + "applied": "Проверено", + "not_applied": "Не проверено", + "pass": "Пропустить", + "refuse": "Отказать", + "desc": "Описание", + "editcarbtn": "Изменить авто" + }, + "seach": { + "name": "Название", + "status": "Статус", + "agtype": "Тип соглашения", + "title": "Заголовок", + "content": "Содержание" + }, + "selectlist": { + "privacy": "Политика конфиденциальности", + "user": "Пользовательское соглашение", + "status1": "Активно", + "status2": "Отключено" + }, + "seo": { + "title": "Заголовок страницы", + "description": "Описание страницы", + "canonical": "", + "og_type": "Тип веб-страницы", + "og_title": "Заголовок для публикации", + "og_description": "Описание для публикации", + "og_image": "Миниатюра для публикации", + "og_url": "Ссылка для публикации", + "og_site_name": "Название сайта", + "page": "Текущая страница" + }, + "brand": { + "name": "Название бренда", + "logo": "Логотип бренда", + "logoalt": "Описание логотипа", + "status": "Статус", + "banner": "Баннер", + "banneralt": "Описание баннера", + "desc": "Описание бренда", + "thumbnail": "Миниатюра", + "thumbnailalt": "Описание миниатюры", + "detailsimg": "Карусель изображений бренда", + "advantage": "Преимущества бренда", + "advantage-title": "Заголовок преимущества", + "advantage-desc": "Описание преимущества", + "album": "Альбом бренда", + "is_hot": "Популярный" + }, + "newcar": { + "memo": "Описание автомобиля", + "introduce": "Описание автомобиля", + "desc": "Описание автомобиля", + "characteristic": "Характеристики автомобиля", + "video": "Видео автомобиля", + "problem": "Частые вопросы", + "imgalt": "Описание изображения", + "coveralt": "Описание обложки" + }, + "alls": { + "title": "Заголовок", + "title_placeholder": "Введите заголовок", + "content": "Содержание", + "content_placeholder": "Введите содержание", + "introduce_placeholder": "Введите описание", + "image_desc": "Введите описание изображения", + "problem": "Вопрос", + "answer": "Ответ", + "answer_placeholder": "Введите ответ", + "problem_placeholder": "Введите вопрос", + "yes": "Да", + "no": "Нет" + }, + "sort": "Сортировка", + "pleaseenter": "Пожалуйста, введите", + "Belongingbrand": "Принадлежащий бренд", + "typeimg": "Изображение типа", + "Imageratio":"Соотношение сторон", + "select": "Пожалуйста, выберите", + "logout": "Выйти", + "Close1": "Закрыть текущее", + "Close2": "Закрыть другие", + "Close3": "Закрыть все", + "all": "Всего", + "items": "шт." +} \ No newline at end of file diff --git a/assets/js/lang/zh.json b/assets/js/lang/zh.json new file mode 100755 index 0000000..c3a70c8 --- /dev/null +++ b/assets/js/lang/zh.json @@ -0,0 +1,237 @@ +{ + "page": { + "title": "后台管理-登录" + }, + "login": { + "title": "后台登录", + "username": "请输入登录账号", + "password": "请输入密码", + "submit": "立即登录", + "username_required": "用户名不能为空", + "password_required": "密码不能为空", + "success": "登录成功", + "invalid_credentials": "验证失败!用户名或者密码错误!" + }, + "nav": { + "home": "首页", + "smallprogram": "小程序", + "user": "用户管理", + "car": "车辆管理", + "examine": "审核管理", + "brand": "品牌管理", + "model": "型号管理", + "energy": "能源管理", + "type": "类型管理", + "agreement": "协议管理", + "general": "通用设置", + "dictionary": "字典设置", + "newcar":"新车管理", + "usedcar":"二手车", + "seo":"SEO管理", + "email":"邮箱管理" + }, + "home": { + "welcome": "欢迎访问我们的网站", + "more": "了解更多", + "title": "数据统计", + "realtime": "实时", + "brandCounts":"品牌数", + "inOrderCounts":"订购数", + "inTransitCounts":"在途数", + "vehicleCounts":"车辆数" + }, + "btn": { + "submit": "提交", + "cancel": "取消", + "search": "搜索", + "add": "添加", + "edit": "编辑", + "delete": "删除", + "check": "审核", + "show": "详情", + "confirm": "确定", + "reset": "重置" + }, + "footer": { + "copyright": "版权所有", + "address": "地址", + "phone": "电话", + "email": "邮箱" + }, + "search_info": "搜索信息", + "userlist": { + "search_info": "搜索信息", + "user_id": "用户编号", + "nickname": "昵称", + "realname": "姓名", + "phone": "手机", + "wechat_id": "微信id", + "search": "搜索", + "reset": "重置", + "expand": "展开", + "retract": "收起", + "add": "添加", + "delete": "删除", + "confirm_delete": "确认删除么?", + "no_data": "无数据", + "id": "编号", + "company": "公司", + "phone_number": "手机号", + "wechat_id_full": "微信ID", + "create_time": "创建时间", + "update_time": "更新时间", + "edit": "编辑", + "head":"头像", + "uploadig":"上传图片", + "status":"状态" + }, + "carlist":{ + "user": "用户", + "product_name": "产品名称", + "VIN": "车辆识别码", + "product_image": "产品图", + "brand": "品牌", + "price": "售价", + "type": "类型", + "energy": "能源", + "mileage": "里程", + "vehicle_age": "车龄(年)", + "condition_desc": "车况描述", + "status": "状态", + "is_sold": "是否出售", + "create_time": "创建时间", + "operation": "操作", + "pending_review": "待审核", + "pending_publish": "待发布", + "rejected": "已拒绝", + "not_sold": "未售", + "sold": "已售", + "confirm_delete": "确认删除么?", + "tips": "提示", + "add_car": "添加车辆", + "edit_car": "编辑车辆", + "check_car": "审核车辆", + "car_details": "车辆详情", + "basic_info": "基本信息", + "car_album": "车辆图册", + "store_status": "库存状态", + "in_stock": "现货", + "in_transit": "在途", + "on_order": "订购", + "location": "位置", + "CoverImage":"封面图", + "model":"型号", + "front45Degree": "45°正脸", + "leftFront45Degree": "左前45°", + "leftFrontHeadlight": "左前大灯", + "front": "正前", + "frontLowerPart": "车头下部", + "wheelHub": "车辆轮毂", + "rightFrontSeat": "右侧前排座椅", + "rightBottomEdge": "右侧底大边", + "rightRearTaillight": "右后尾灯", + "rightRear45Degree": "右后45°", + "rearLowerPart": "车尾下部", + "trunk": "后备厢", + "leftBottomEdge": "左侧底大边", + "rearSeat": "后排座椅", + "console": "中控台", + "controlPanel": "中控面板", + "gearLever": "档把", + "key": "钥匙", + "steeringWheel": "方向盘", + "dashboard": "仪表盘", + "displayedMileage": "表显里程", + "leftFrontDoorPanel": "左前门内饰板", + "leftFrontDoorFunctionArea": "左前门功能区", + "leftFrontSeat": "左侧前排座椅", + "ceiling": "车内顶棚" + }, + "audit":{ + "all": "全部", + "applied": "已审核", + "not_applied": "未审核", + "pass":"通过", + "refuse":"拒绝", + "desc":"描述", + "editcarbtn":"修改车辆信息" + }, + "seach":{ + "name":"名称", + "status": "状态", + "agtype":"协议类型", + "title":"标题", + "content":"内容" + }, + "selectlist":{ + "privacy":"隐私协议", + "user":"用户协议", + "status1":"正常", + "status2":"禁用" + }, + "seo":{ + "title":"页面标题", + "description":"页面描述", + "canonical":"", + "og_type":"网页类型", + "og_title":"分享显示标题", + "og_description":"分享时的描述文本", + "og_image":"分享显示缩略图", + "og_url":"分享的网页链接", + "og_site_name":"网站名称", + "page":"当前页面" + }, + "brand":{ + "name":"品牌名称", + "logo":"品牌logo", + "logoalt":"logo描述", + "status":"状态", + "banner":"导航图", + "banneralt":"导航图描述", + "desc":"品牌描述", + "thumbnail":"缩略图", + "thumbnailalt":"缩略图描述", + "detailsimg":"品牌轮播图", + "advantage":"品牌优势", + "advantage-title":"优势标题", + "advantage-desc":"优势描述", + "album":"品牌图册", + "is_hot":"是否热门" + }, + "newcar":{ + "memo":"车辆描述", + "introduce":"车辆介绍", + "desc":"车辆介绍", + "characteristic":"车辆特点", + "video":"车辆视频", + "problem":"常见问题", + "imgalt":"图片描述", + "coveralt":"封面图描述" + }, + "alls":{ + "title": "标题", + "title_placeholder": "请输入标题", + "content": "内容", + "content_placeholder": "请输入内容", + "introduce_placeholder": "请输入介绍内容", + "image_desc": "请输入图片描述", + "problem":"问题", + "answer":"回答", + "answer_placeholder": "请输入回答内容", + "problem_placeholder": "请输入问题内容", + "yes":"是", + "no":"否" + }, + "sort": "排序", + "pleaseenter":"请输入", + "Belongingbrand":"所属品牌", + "typeimg":"类型图", + "Imageratio":"图片比例", + "select":"请选择", + "logout":"退出登录", + "Close1":"关 闭 当 前", + "Close2":"关 闭 其 他", + "Close3":"关 闭 全 部", + "all":"共", + "items":"条" +} \ No newline at end of file diff --git a/assets/js/lay-config.js b/assets/js/lay-config.js new file mode 100755 index 0000000..2d85dbc --- /dev/null +++ b/assets/js/lay-config.js @@ -0,0 +1,32 @@ +/** + * date:2019/08/16 + * author:Mr.Chung + * description:此处放layui自定义扩展 + * version:2.0.4 + */ + +window.rootPath = (function (src) { + src = document.scripts[document.scripts.length - 1].src; + return src.substring(0, src.lastIndexOf("/") + 1); +})(); + +layui.config({ + base: rootPath + "lay-module/" +}).extend({ + miniAdmin: "layuimini/miniAdmin", // layuimini后台扩展 + miniMenu: "layuimini/miniMenu", // layuimini菜单扩展 + miniTab: "layuimini/miniTab", // layuimini tab扩展 + miniPage: "layuimini/miniPage", // layuimini 单页扩展 + miniTheme: "layuimini/miniTheme", // layuimini 主题扩展 + miniTongji: "layuimini/miniTongji", // layuimini 统计扩展 + step: 'step-lay/step', // 分步表单扩展 + treetable: 'treetable-lay/treetable', //table树形扩展 + tableSelect: 'tableSelect/tableSelect', // table选择扩展 + iconPickerFa: 'iconPicker/iconPickerFa', // fa图标选择扩展 + echarts: 'echarts/echarts', // echarts图表扩展 + echartsTheme: 'echarts/echartsTheme', // echarts图表主题扩展 + wangEditor: 'wangEditor/wangEditor', // wangEditor富文本扩展 + tinymce: 'tinymce/tinymce', // tinymce富文本扩展 + common: 'common/common', // tinymce富文本扩展 + layarea: 'layarea/layarea', // 省市县区三级联动下拉选择器 +}); diff --git a/assets/js/lay-module/common/common.js b/assets/js/lay-module/common/common.js new file mode 100755 index 0000000..6f1eac8 --- /dev/null +++ b/assets/js/lay-module/common/common.js @@ -0,0 +1,71 @@ +layui.define(['jquery', 'element','table'], function(exports) { + "use strict"; + + /** + * 常用封装类 + * */ + var MOD_NAME = 'common', + $ = layui.jquery, + table = layui.table, + element = layui.element; + + var common = new function() { + + /** + * 获取当前表格选中字段 + * @param obj 表格回调参数 + * @param field 要获取的字段 + * */ + this.checkField = function(obj, field) { + let data = table.checkStatus(obj.config.id).data; + if (data.length === 0) { + return ""; + } + let ids = ""; + for (let i = 0; i < data.length; i++) { + ids += data[i][field] + ","; + } + ids = ids.substr(0, ids.length - 1); + return ids; + } + + /** + * 当前是否为与移动端 + * */ + this.isModile = function(){ + if ($(window).width() <= 768) { + return true; + } + return false; + } + + + /** + * 提交 json 数据 + * @param data 提交数据 + * @param href 提交接口 + * @param table 刷新父级表 + * + * */ + this.submit = function(data,href,table,callback){ + $.ajax({ + url:href, + data:JSON.stringify(data), + dataType:'json', + contentType:'application/json', + type:'post', + success:callback !=null?callback(result):function(result){ + if(result.success){ + layer.msg(result.msg,{icon:1,time:1000},function(){ + parent.layer.close(parent.layer.getFrameIndex(window.name));//关闭当前页 + parent.layui.table.reload(table); + }); + }else{ + layer.msg(result.msg,{icon:2,time:1000}); + } + } + }) + } + } + exports(MOD_NAME, common); +}); diff --git a/assets/js/lay-module/echarts/echarts.js b/assets/js/lay-module/echarts/echarts.js new file mode 100755 index 0000000..fcb939c --- /dev/null +++ b/assets/js/lay-module/echarts/echarts.js @@ -0,0 +1,19 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.echarts={})}(this,function(t){"use strict";function e(t){var e={},i={},n=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),a=t.match(/Edge\/([\d.]+)/),o=/micromessenger/i.test(t);return n&&(i.firefox=!0,i.version=n[1]),r&&(i.ie=!0,i.version=r[1]),a&&(i.edge=!0,i.version=a[1]),o&&(i.weChat=!0),{browser:i,os:e,node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!i.ie&&!i.edge,pointerEventsSupported:"onpointerdown"in window&&(i.edge||i.ie&&i.version>=11),domSupported:"undefined"!=typeof document}}function i(t,e){"createCanvas"===t&&(dg=null),ug[t]=e}function n(t){if(null==t||"object"!=typeof t)return t;var e=t,i=ng.call(t);if("[object Array]"===i){if(!R(t)){e=[];for(var r=0,a=t.length;a>r;r++)e[r]=n(t[r])}}else if(ig[i]){if(!R(t)){var o=t.constructor;if(t.constructor.from)e=o.from(t);else{e=new o(t.length);for(var r=0,a=t.length;a>r;r++)e[r]=n(t[r])}}}else if(!eg[i]&&!R(t)&&!T(t)){e={};for(var s in t)t.hasOwnProperty(s)&&(e[s]=n(t[s]))}return e}function r(t,e,i){if(!S(e)||!S(t))return i?n(e):t;for(var a in e)if(e.hasOwnProperty(a)){var o=t[a],s=e[a];!S(s)||!S(o)||_(s)||_(o)||T(s)||T(o)||M(s)||M(o)||R(s)||R(o)?!i&&a in t||(t[a]=n(e[a],!0)):r(o,s,i)}return t}function a(t,e){for(var i=t[0],n=1,a=t.length;a>n;n++)i=r(i,t[n],e);return i}function o(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function s(t,e,i){for(var n in e)e.hasOwnProperty(n)&&(i?null!=e[n]:null==t[n])&&(t[n]=e[n]);return t}function l(){return dg||(dg=cg().getContext("2d")),dg}function h(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var i=0,n=t.length;n>i;i++)if(t[i]===e)return i}return-1}function u(t,e){function i(){}var n=t.prototype;i.prototype=e.prototype,t.prototype=new i;for(var r in n)t.prototype[r]=n[r];t.prototype.constructor=t,t.superClass=e}function c(t,e,i){t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,s(t,e,i)}function d(t){return t?"string"==typeof t?!1:"number"==typeof t.length:void 0}function f(t,e,i){if(t&&e)if(t.forEach&&t.forEach===ag)t.forEach(e,i);else if(t.length===+t.length)for(var n=0,r=t.length;r>n;n++)e.call(i,t[n],n,t);else for(var a in t)t.hasOwnProperty(a)&&e.call(i,t[a],a,t)}function p(t,e,i){if(t&&e){if(t.map&&t.map===lg)return t.map(e,i);for(var n=[],r=0,a=t.length;a>r;r++)n.push(e.call(i,t[r],r,t));return n}}function g(t,e,i,n){if(t&&e){if(t.reduce&&t.reduce===hg)return t.reduce(e,i,n);for(var r=0,a=t.length;a>r;r++)i=e.call(n,i,t[r],r,t);return i}}function v(t,e,i){if(t&&e){if(t.filter&&t.filter===og)return t.filter(e,i);for(var n=[],r=0,a=t.length;a>r;r++)e.call(i,t[r],r,t)&&n.push(t[r]);return n}}function m(t,e,i){if(t&&e)for(var n=0,r=t.length;r>n;n++)if(e.call(i,t[n],n,t))return t[n]}function y(t,e){var i=sg.call(arguments,2);return function(){return t.apply(e,i.concat(sg.call(arguments)))}}function x(t){var e=sg.call(arguments,1);return function(){return t.apply(this,e.concat(sg.call(arguments)))}}function _(t){return"[object Array]"===ng.call(t)}function w(t){return"function"==typeof t}function b(t){return"[object String]"===ng.call(t)}function S(t){var e=typeof t;return"function"===e||!!t&&"object"==e}function M(t){return!!eg[ng.call(t)]}function I(t){return!!ig[ng.call(t)]}function T(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function C(t){return t!==t}function A(){for(var t=0,e=arguments.length;e>t;t++)if(null!=arguments[t])return arguments[t]}function D(t,e){return null!=t?t:e}function k(t,e,i){return null!=t?t:null!=e?e:i}function P(){return Function.call.apply(sg,arguments)}function L(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function O(t,e){if(!t)throw new Error(e)}function z(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}function E(t){t[fg]=!0}function R(t){return t[fg]}function B(t){function e(t,e){i?n.set(t,e):n.set(e,t)}var i=_(t);this.data={};var n=this;t instanceof B?t.each(e):t&&f(t,e)}function N(t){return new B(t)}function F(t,e){for(var i=new t.constructor(t.length+e.length),n=0;n=0;if(r){var a="touchend"!=n?e.targetTouches[0]:e.changedTouches[0];a&&de(t,a,e,i)}else de(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var o=e.button;return null==e.which&&void 0!==o&&Mg.test(e.type)&&(e.which=1&o?1:2&o?3:4&o?2:0),e}function ge(t,e,i){Sg?t.addEventListener(e,i):t.attachEvent("on"+e,i)}function ve(t,e,i){Sg?t.removeEventListener(e,i):t.detachEvent("on"+e,i)}function me(t){return t.which>1}function ye(t,e,i){return{type:t,event:i,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:i.zrX,offsetY:i.zrY,gestureEvent:i.gestureEvent,pinchX:i.pinchX,pinchY:i.pinchY,pinchScale:i.pinchScale,wheelDelta:i.zrDelta,zrByTouch:i.zrByTouch,which:i.which,stop:xe}}function xe(){Ig(this.event)}function _e(){}function we(t,e,i){if(t[t.rectHover?"rectContain":"contain"](e,i)){for(var n,r=t;r;){if(r.clipPath&&!r.clipPath.contain(e,i))return!1;r.silent&&(n=!0),r=r.parent}return n?Tg:!0}return!1}function be(){var t=new Dg(6);return Se(t),t}function Se(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function Me(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function Ie(t,e,i){var n=e[0]*i[0]+e[2]*i[1],r=e[1]*i[0]+e[3]*i[1],a=e[0]*i[2]+e[2]*i[3],o=e[1]*i[2]+e[3]*i[3],s=e[0]*i[4]+e[2]*i[5]+e[4],l=e[1]*i[4]+e[3]*i[5]+e[5];return t[0]=n,t[1]=r,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t}function Te(t,e,i){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+i[0],t[5]=e[5]+i[1],t}function Ce(t,e,i){var n=e[0],r=e[2],a=e[4],o=e[1],s=e[3],l=e[5],h=Math.sin(i),u=Math.cos(i);return t[0]=n*u+o*h,t[1]=-n*h+o*u,t[2]=r*u+s*h,t[3]=-r*h+u*s,t[4]=u*a+h*l,t[5]=u*l-h*a,t}function Ae(t,e,i){var n=i[0],r=i[1];return t[0]=e[0]*n,t[1]=e[1]*r,t[2]=e[2]*n,t[3]=e[3]*r,t[4]=e[4]*n,t[5]=e[5]*r,t}function De(t,e){var i=e[0],n=e[2],r=e[4],a=e[1],o=e[3],s=e[5],l=i*o-a*n;return l?(l=1/l,t[0]=o*l,t[1]=-a*l,t[2]=-n*l,t[3]=i*l,t[4]=(n*s-o*r)*l,t[5]=(a*r-i*s)*l,t):null}function ke(t){var e=be();return Me(e,t),e}function Pe(t){return t>Lg||-Lg>t}function Le(t){this._target=t.target,this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null==t.loop?!1:t.loop,this.gap=t.gap||0,this.easing=t.easing||"Linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart,this._pausedTime=0,this._paused=!1}function Oe(t){return t=Math.round(t),0>t?0:t>255?255:t}function ze(t){return t=Math.round(t),0>t?0:t>360?360:t}function Ee(t){return 0>t?0:t>1?1:t}function Re(t){return Oe(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function Be(t){return Ee(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function Ne(t,e,i){return 0>i?i+=1:i>1&&(i-=1),1>6*i?t+(e-t)*i*6:1>2*i?e:2>3*i?t+(e-t)*(2/3-i)*6:t}function Fe(t,e,i){return t+(e-t)*i}function Ve(t,e,i,n,r){return t[0]=e,t[1]=i,t[2]=n,t[3]=r,t}function We(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Ge(t,e){Yg&&We(Yg,e),Yg=Xg.put(t,Yg||e.slice())}function He(t,e){if(t){e=e||[];var i=Xg.get(t);if(i)return We(e,i);t+="";var n=t.replace(/ /g,"").toLowerCase();if(n in Zg)return We(e,Zg[n]),Ge(t,e),e;if("#"!==n.charAt(0)){var r=n.indexOf("("),a=n.indexOf(")");if(-1!==r&&a+1===n.length){var o=n.substr(0,r),s=n.substr(r+1,a-(r+1)).split(","),l=1;switch(o){case"rgba":if(4!==s.length)return void Ve(e,0,0,0,1);l=Be(s.pop());case"rgb":return 3!==s.length?void Ve(e,0,0,0,1):(Ve(e,Re(s[0]),Re(s[1]),Re(s[2]),l),Ge(t,e),e);case"hsla":return 4!==s.length?void Ve(e,0,0,0,1):(s[3]=Be(s[3]),Ze(s,e),Ge(t,e),e);case"hsl":return 3!==s.length?void Ve(e,0,0,0,1):(Ze(s,e),Ge(t,e),e);default:return}}Ve(e,0,0,0,1)}else{if(4===n.length){var h=parseInt(n.substr(1),16);return h>=0&&4095>=h?(Ve(e,(3840&h)>>4|(3840&h)>>8,240&h|(240&h)>>4,15&h|(15&h)<<4,1),Ge(t,e),e):void Ve(e,0,0,0,1)}if(7===n.length){var h=parseInt(n.substr(1),16);return h>=0&&16777215>=h?(Ve(e,(16711680&h)>>16,(65280&h)>>8,255&h,1),Ge(t,e),e):void Ve(e,0,0,0,1)}}}}function Ze(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=Be(t[1]),r=Be(t[2]),a=.5>=r?r*(n+1):r+n-r*n,o=2*r-a;return e=e||[],Ve(e,Oe(255*Ne(o,a,i+1/3)),Oe(255*Ne(o,a,i)),Oe(255*Ne(o,a,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Xe(t){if(t){var e,i,n=t[0]/255,r=t[1]/255,a=t[2]/255,o=Math.min(n,r,a),s=Math.max(n,r,a),l=s-o,h=(s+o)/2;if(0===l)e=0,i=0;else{i=.5>h?l/(s+o):l/(2-s-o);var u=((s-n)/6+l/2)/l,c=((s-r)/6+l/2)/l,d=((s-a)/6+l/2)/l;n===s?e=d-c:r===s?e=1/3+u-d:a===s&&(e=2/3+c-u),0>e&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,h];return null!=t[3]&&f.push(t[3]),f}}function Ye(t,e){var i=He(t);if(i){for(var n=0;3>n;n++)i[n]=0>e?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0,i[n]>255?i[n]=255:t[n]<0&&(i[n]=0);return Qe(i,4===i.length?"rgba":"rgb")}}function je(t){var e=He(t);return e?((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1):void 0}function qe(t,e,i){if(e&&e.length&&t>=0&&1>=t){i=i||[];var n=t*(e.length-1),r=Math.floor(n),a=Math.ceil(n),o=e[r],s=e[a],l=n-r;return i[0]=Oe(Fe(o[0],s[0],l)),i[1]=Oe(Fe(o[1],s[1],l)),i[2]=Oe(Fe(o[2],s[2],l)),i[3]=Ee(Fe(o[3],s[3],l)),i}}function Ue(t,e,i){if(e&&e.length&&t>=0&&1>=t){var n=t*(e.length-1),r=Math.floor(n),a=Math.ceil(n),o=He(e[r]),s=He(e[a]),l=n-r,h=Qe([Oe(Fe(o[0],s[0],l)),Oe(Fe(o[1],s[1],l)),Oe(Fe(o[2],s[2],l)),Ee(Fe(o[3],s[3],l))],"rgba");return i?{color:h,leftIndex:r,rightIndex:a,value:n}:h}}function $e(t,e,i,n){return t=He(t),t?(t=Xe(t),null!=e&&(t[0]=ze(e)),null!=i&&(t[1]=Be(i)),null!=n&&(t[2]=Be(n)),Qe(Ze(t),"rgba")):void 0}function Ke(t,e){return t=He(t),t&&null!=e?(t[3]=Ee(e),Qe(t,"rgba")):void 0}function Qe(t,e){if(t&&t.length){var i=t[0]+","+t[1]+","+t[2];return("rgba"===e||"hsva"===e||"hsla"===e)&&(i+=","+t[3]),e+"("+i+")"}}function Je(t,e){return t[e]}function ti(t,e,i){t[e]=i}function ei(t,e,i){return(e-t)*i+t}function ii(t,e,i){return i>.5?e:t}function ni(t,e,i,n,r){var a=t.length;if(1==r)for(var o=0;a>o;o++)n[o]=ei(t[o],e[o],i);else for(var s=a&&t[0].length,o=0;a>o;o++)for(var l=0;s>l;l++)n[o][l]=ei(t[o][l],e[o][l],i)}function ri(t,e,i){var n=t.length,r=e.length;if(n!==r){var a=n>r;if(a)t.length=r;else for(var o=n;r>o;o++)t.push(1===i?e[o]:$g.call(e[o]))}for(var s=t[0]&&t[0].length,o=0;ol;l++)isNaN(t[o][l])&&(t[o][l]=e[o][l])}function ai(t,e,i){if(t===e)return!0;var n=t.length;if(n!==e.length)return!1;if(1===i){for(var r=0;n>r;r++)if(t[r]!==e[r])return!1}else for(var a=t[0].length,r=0;n>r;r++)for(var o=0;a>o;o++)if(t[r][o]!==e[r][o])return!1;return!0}function oi(t,e,i,n,r,a,o,s,l){var h=t.length;if(1==l)for(var u=0;h>u;u++)s[u]=si(t[u],e[u],i[u],n[u],r,a,o);else for(var c=t[0].length,u=0;h>u;u++)for(var d=0;c>d;d++)s[u][d]=si(t[u][d],e[u][d],i[u][d],n[u][d],r,a,o)}function si(t,e,i,n,r,a,o){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*o+(-3*(e-i)-2*s-l)*a+s*r+e}function li(t){if(d(t)){var e=t.length;if(d(t[0])){for(var i=[],n=0;e>n;n++)i.push($g.call(t[n]));return i}return $g.call(t)}return t}function hi(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}function ui(t){var e=t[t.length-1].value;return d(e&&e[0])?2:1}function ci(t,e,i,n,r,a){var o=t._getter,s=t._setter,l="spline"===e,h=n.length;if(h){var u,c=n[0].value,f=d(c),p=!1,g=!1,v=f?ui(n):0;n.sort(function(t,e){return t.time-e.time}),u=n[h-1].time;for(var m=[],y=[],x=n[0].value,_=!0,w=0;h>w;w++){m.push(n[w].time/u);var b=n[w].value;if(f&&ai(b,x,v)||!f&&b===x||(_=!1),x=b,"string"==typeof b){var S=He(b);S?(b=S,p=!0):g=!0}y.push(b)}if(a||!_){for(var M=y[h-1],w=0;h-1>w;w++)f?ri(y[w],M,v):!isNaN(y[w])||isNaN(M)||g||p||(y[w]=M);f&&ri(o(t._target,r),M,v);var I,T,C,A,D,k,P=0,L=0;if(p)var O=[0,0,0,0];var z=function(t,e){var i;if(0>e)i=0;else if(L>e){for(I=Math.min(P+1,h-1),i=I;i>=0&&!(m[i]<=e);i--);i=Math.min(i,h-2)}else{for(i=P;h>i&&!(m[i]>e);i++);i=Math.min(i-1,h-2)}P=i,L=e;var n=m[i+1]-m[i];if(0!==n)if(T=(e-m[i])/n,l)if(A=y[i],C=y[0===i?i:i-1],D=y[i>h-2?h-1:i+1],k=y[i>h-3?h-1:i+2],f)oi(C,A,D,k,T,T*T,T*T*T,o(t,r),v);else{var a;if(p)a=oi(C,A,D,k,T,T*T,T*T*T,O,1),a=hi(O);else{if(g)return ii(A,D,T);a=si(C,A,D,k,T,T*T,T*T*T)}s(t,r,a)}else if(f)ni(y[i],y[i+1],T,o(t,r),v);else{var a;if(p)ni(y[i],y[i+1],T,O,1),a=hi(O);else{if(g)return ii(y[i],y[i+1],T);a=ei(y[i],y[i+1],T)}s(t,r,a)}},E=new Le({target:t._target,life:u,loop:t._loop,delay:t._delay,onframe:z,ondestroy:i});return e&&"spline"!==e&&(E.easing=e),E}}}function di(t,e,i,n,r,a,o,s){function l(){u--,u||a&&a()}b(n)?(a=r,r=n,n=0):w(r)?(a=r,r="linear",n=0):w(n)?(a=n,n=0):w(i)?(a=i,i=500):i||(i=500),t.stopAnimation(),fi(t,"",t,e,i,n,s);var h=t.animators.slice(),u=h.length;u||a&&a();for(var c=0;c0&&t.animate(e,!1).when(null==r?500:r,s).delay(a||0)}function pi(t,e,i,n){if(e){var r={};r[e]={},r[e][i]=n,t.attr(r)}else t.attr(i,n)}function gi(t,e,i,n){0>i&&(t+=i,i=-i),0>n&&(e+=n,n=-n),this.x=t,this.y=e,this.width=i,this.height=n}function vi(t){for(var e=0;t>=hv;)e|=1&t,t>>=1;return t+e}function mi(t,e,i,n){var r=e+1;if(r===i)return 1;if(n(t[r++],t[e])<0){for(;i>r&&n(t[r],t[r-1])<0;)r++;yi(t,e,r)}else for(;i>r&&n(t[r],t[r-1])>=0;)r++;return r-e}function yi(t,e,i){for(i--;i>e;){var n=t[e];t[e++]=t[i],t[i--]=n}}function xi(t,e,i,n,r){for(n===e&&n++;i>n;n++){for(var a,o=t[n],s=e,l=n;l>s;)a=s+l>>>1,r(o,t[a])<0?l=a:s=a+1;var h=n-s;switch(h){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;h>0;)t[s+h]=t[s+h-1],h--}t[s]=o}}function _i(t,e,i,n,r,a){var o=0,s=0,l=1;if(a(t,e[i+r])>0){for(s=n-r;s>l&&a(t,e[i+r+l])>0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),o+=r,l+=r}else{for(s=r+1;s>l&&a(t,e[i+r-l])<=0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var h=o;o=r-l,l=r-h}for(o++;l>o;){var u=o+(l-o>>>1);a(t,e[i+u])>0?o=u+1:l=u}return l}function wi(t,e,i,n,r,a){var o=0,s=0,l=1;if(a(t,e[i+r])<0){for(s=r+1;s>l&&a(t,e[i+r-l])<0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var h=o;o=r-l,l=r-h}else{for(s=n-r;s>l&&a(t,e[i+r+l])>=0;)o=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),o+=r,l+=r}for(o++;l>o;){var u=o+(l-o>>>1);a(t,e[i+u])<0?l=u:o=u+1}return l}function bi(t,e){function i(t,e){l[c]=t,h[c]=e,c+=1}function n(){for(;c>1;){var t=c-2;if(t>=1&&h[t-1]<=h[t]+h[t+1]||t>=2&&h[t-2]<=h[t]+h[t-1])h[t-1]h[t+1])break;a(t)}}function r(){for(;c>1;){var t=c-2;t>0&&h[t-1]=r?o(n,r,a,u):s(n,r,a,u)))}function o(i,n,r,a){var o=0;for(o=0;n>o;o++)d[o]=t[i+o];var s=0,l=r,h=i;if(t[h++]=t[l++],0!==--a){if(1===n){for(o=0;a>o;o++)t[h+o]=t[l+o];return void(t[h+a]=d[s])}for(var c,f,p,g=u;;){c=0,f=0,p=!1;do if(e(t[l],d[s])<0){if(t[h++]=t[l++],f++,c=0,0===--a){p=!0;break}}else if(t[h++]=d[s++],c++,f=0,1===--n){p=!0;break}while(g>(c|f));if(p)break;do{if(c=wi(t[l],d,s,n,0,e),0!==c){for(o=0;c>o;o++)t[h+o]=d[s+o];if(h+=c,s+=c,n-=c,1>=n){p=!0;break}}if(t[h++]=t[l++],0===--a){p=!0;break}if(f=_i(d[s],t,l,a,0,e),0!==f){for(o=0;f>o;o++)t[h+o]=t[l+o];if(h+=f,l+=f,a-=f,0===a){p=!0;break}}if(t[h++]=d[s++],1===--n){p=!0;break}g--}while(c>=uv||f>=uv);if(p)break;0>g&&(g=0),g+=2}if(u=g,1>u&&(u=1),1===n){for(o=0;a>o;o++)t[h+o]=t[l+o];t[h+a]=d[s]}else{if(0===n)throw new Error;for(o=0;n>o;o++)t[h+o]=d[s+o]}}else for(o=0;n>o;o++)t[h+o]=d[s+o]}function s(i,n,r,a){var o=0;for(o=0;a>o;o++)d[o]=t[r+o];var s=i+n-1,l=a-1,h=r+a-1,c=0,f=0;if(t[h--]=t[s--],0!==--n){if(1===a){for(h-=n,s-=n,f=h+1,c=s+1,o=n-1;o>=0;o--)t[f+o]=t[c+o];return void(t[h]=d[l])}for(var p=u;;){var g=0,v=0,m=!1;do if(e(d[l],t[s])<0){if(t[h--]=t[s--],g++,v=0,0===--n){m=!0;break}}else if(t[h--]=d[l--],v++,g=0,1===--a){m=!0;break}while(p>(g|v));if(m)break;do{if(g=n-wi(d[l],t,i,n,n-1,e),0!==g){for(h-=g,s-=g,n-=g,f=h+1,c=s+1,o=g-1;o>=0;o--)t[f+o]=t[c+o];if(0===n){m=!0;break}}if(t[h--]=d[l--],1===--a){m=!0;break}if(v=a-_i(t[s],d,0,a,a-1,e),0!==v){for(h-=v,l-=v,a-=v,f=h+1,c=l+1,o=0;v>o;o++)t[f+o]=d[c+o];if(1>=a){m=!0;break}}if(t[h--]=t[s--],0===--n){m=!0;break}p--}while(g>=uv||v>=uv);if(m)break;0>p&&(p=0),p+=2}if(u=p,1>u&&(u=1),1===a){for(h-=n,s-=n,f=h+1,c=s+1,o=n-1;o>=0;o--)t[f+o]=t[c+o];t[h]=d[l]}else{if(0===a)throw new Error;for(c=h-(a-1),o=0;a>o;o++)t[c+o]=d[o]}}else for(c=h-(a-1),o=0;a>o;o++)t[c+o]=d[o]}var l,h,u=uv,c=0,d=[];l=[],h=[],this.mergeRuns=n,this.forceMergeRuns=r,this.pushRun=i}function Si(t,e,i,n){i||(i=0),n||(n=t.length);var r=n-i;if(!(2>r)){var a=0;if(hv>r)return a=mi(t,i,n,e),void xi(t,i,n,i+a,e);var o=new bi(t,e),s=vi(r);do{if(a=mi(t,i,n,e),s>a){var l=r;l>s&&(l=s),xi(t,i,i+l,i+a,e),a=l}o.pushRun(i,a),o.mergeRuns(),r-=a,i+=a}while(0!==r);o.forceMergeRuns()}}function Mi(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function Ii(t,e,i){var n=null==e.x?0:e.x,r=null==e.x2?1:e.x2,a=null==e.y?0:e.y,o=null==e.y2?0:e.y2;e.global||(n=n*i.width+i.x,r=r*i.width+i.x,a=a*i.height+i.y,o=o*i.height+i.y),n=isNaN(n)?0:n,r=isNaN(r)?1:r,a=isNaN(a)?0:a,o=isNaN(o)?0:o;var s=t.createLinearGradient(n,a,r,o);return s}function Ti(t,e,i){var n=i.width,r=i.height,a=Math.min(n,r),o=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;e.global||(o=o*n+i.x,s=s*r+i.y,l*=a);var h=t.createRadialGradient(o,s,0,o,s,l);return h}function Ci(){return!1}function Ai(t,e,i){var n=cg(),r=e.getWidth(),a=e.getHeight(),o=n.style;return o&&(o.position="absolute",o.left=0,o.top=0,o.width=r+"px",o.height=a+"px",n.setAttribute("data-zr-dom-id",t)),n.width=r*i,n.height=a*i,n}function Di(t){if("string"==typeof t){var e=bv.get(t);return e&&e.image}return t}function ki(t,e,i,n,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!i)return e;var a=bv.get(t),o={hostEl:i,cb:n,cbPayload:r};return a?(e=a.image,!Li(e)&&a.pending.push(o)):(!e&&(e=new Image),e.onload=e.onerror=Pi,bv.put(t,e.__cachedImgObj={image:e,pending:[o]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Pi(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;ea;a++)r=Math.max(Yi(n[a],e).width,r);return Mv>Iv&&(Mv=0,Sv={}),Mv++,Sv[i]=r,r}function Ei(t,e,i,n,r,a,o){return a?Bi(t,e,i,n,r,a,o):Ri(t,e,i,n,r,o)}function Ri(t,e,i,n,r,a){var o=ji(t,e,r,a),s=zi(t,e);r&&(s+=r[1]+r[3]);var l=o.outerHeight,h=Ni(0,s,i),u=Fi(0,l,n),c=new gi(h,u,s,l);return c.lineHeight=o.lineHeight,c}function Bi(t,e,i,n,r,a,o){var s=qi(t,{rich:a,truncate:o,font:e,textAlign:i,textPadding:r}),l=s.outerWidth,h=s.outerHeight,u=Ni(0,l,i),c=Fi(0,h,n);return new gi(u,c,l,h)}function Ni(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function Fi(t,e,i){return"middle"===i?t-=e/2:"bottom"===i&&(t-=e),t}function Vi(t,e,i){var n=e.x,r=e.y,a=e.height,o=e.width,s=a/2,l="left",h="top";switch(t){case"left":n-=i,r+=s,l="right",h="middle";break;case"right":n+=i+o,r+=s,h="middle";break;case"top":n+=o/2,r-=i,l="center",h="bottom";break;case"bottom":n+=o/2,r+=a+i,l="center";break;case"inside":n+=o/2,r+=s,l="center",h="middle";break;case"insideLeft":n+=i,r+=s,h="middle";break;case"insideRight":n+=o-i,r+=s,l="right",h="middle";break;case"insideTop":n+=o/2,r+=i,l="center";break;case"insideBottom":n+=o/2,r+=a-i,l="center",h="bottom";break;case"insideTopLeft":n+=i,r+=i;break;case"insideTopRight":n+=o-i,r+=i,l="right";break;case"insideBottomLeft":n+=i,r+=a-i,h="bottom";break;case"insideBottomRight":n+=o-i,r+=a-i,l="right",h="bottom"}return{x:n,y:r,textAlign:l,textVerticalAlign:h}}function Wi(t,e,i,n,r){if(!e)return"";var a=(t+"").split("\n");r=Gi(e,i,n,r);for(var o=0,s=a.length;s>o;o++)a[o]=Hi(a[o],r);return a.join("\n")}function Gi(t,e,i,n){n=o({},n),n.font=e;var i=D(i,"...");n.maxIterations=D(n.maxIterations,2);var r=n.minChar=D(n.minChar,0);n.cnCharWidth=zi("国",e);var a=n.ascCharWidth=zi("a",e);n.placeholder=D(n.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;r>l&&s>=a;l++)s-=a;var h=zi(i);return h>s&&(i="",h=0),s=t-h,n.ellipsis=i,n.ellipsisWidth=h,n.contentWidth=s,n.containerWidth=t,n}function Hi(t,e){var i=e.containerWidth,n=e.font,r=e.contentWidth;if(!i)return"";var a=zi(t,n);if(i>=a)return t;for(var o=0;;o++){if(r>=a||o>=e.maxIterations){t+=e.ellipsis;break}var s=0===o?Zi(t,r,e.ascCharWidth,e.cnCharWidth):a>0?Math.floor(t.length*r/a):0;t=t.substr(0,s),a=zi(t,n)}return""===t&&(t=e.placeholder),t}function Zi(t,e,i,n){for(var r=0,a=0,o=t.length;o>a&&e>r;a++){var s=t.charCodeAt(a);r+=s>=0&&127>=s?i:n}return a}function Xi(t){return zi("国",t)}function Yi(t,e){return Av.measureText(t,e)}function ji(t,e,i,n){null!=t&&(t+="");var r=Xi(e),a=t?t.split("\n"):[],o=a.length*r,s=o;if(i&&(s+=i[0]+i[2]),t&&n){var l=n.outerHeight,h=n.outerWidth;if(null!=l&&s>l)t="",a=[];else if(null!=h)for(var u=Gi(h-(i?i[1]+i[3]:0),e,n.ellipsis,{minChar:n.minChar,placeholder:n.placeholder}),c=0,d=a.length;d>c;c++)a[c]=Hi(a[c],u)}return{lines:a,height:o,outerHeight:s,lineHeight:r}}function qi(t,e){var i={lines:[],width:0,height:0};if(null!=t&&(t+=""),!t)return i;for(var n,r=Tv.lastIndex=0;null!=(n=Tv.exec(t));){var a=n.index;a>r&&Ui(i,t.substring(r,a)),Ui(i,n[2],n[1]),r=Tv.lastIndex}rf)return{lines:[],width:0,height:0};x.textWidth=zi(x.text,b);var M=_.textWidth,I=null==M||"auto"===M;if("string"==typeof M&&"%"===M.charAt(M.length-1))x.percentWidth=M,h.push(x),M=0;else{if(I){M=x.textWidth;var T=_.textBackgroundColor,C=T&&T.image;C&&(C=Di(C),Li(C)&&(M=Math.max(M,C.width*S/C.height)))}var A=w?w[1]+w[3]:0;M+=A;var P=null!=d?d-m:null;null!=P&&M>P&&(!I||A>P?(x.text="",x.textWidth=M=0):(x.text=Wi(x.text,P-A,b,c.ellipsis,{minChar:c.minChar}),x.textWidth=zi(x.text,b),M=x.textWidth+A))}m+=x.width=M,_&&(v=Math.max(v,x.lineHeight))}g.width=m,g.lineHeight=v,s+=v,l=Math.max(l,m)}i.outerWidth=i.width=D(e.textWidth,l),i.outerHeight=i.height=D(e.textHeight,s),u&&(i.outerWidth+=u[1]+u[3],i.outerHeight+=u[0]+u[2]);for(var p=0;pl&&(o+=l,l=-l),0>h&&(s+=h,h=-h),"number"==typeof u?i=n=r=a=u:u instanceof Array?1===u.length?i=n=r=a=u[0]:2===u.length?(i=r=u[0],n=a=u[1]):3===u.length?(i=u[0],n=a=u[1],r=u[2]):(i=u[0],n=u[1],r=u[2],a=u[3]):i=n=r=a=0;var c;i+n>l&&(c=i+n,i*=l/c,n*=l/c),r+a>l&&(c=r+a,r*=l/c,a*=l/c),n+r>h&&(c=n+r,n*=h/c,r*=h/c),i+a>h&&(c=i+a,i*=h/c,a*=h/c),t.moveTo(o+i,s),t.lineTo(o+l-n,s),0!==n&&t.arc(o+l-n,s+n,n,-Math.PI/2,0),t.lineTo(o+l,s+h-r),0!==r&&t.arc(o+l-r,s+h-r,r,0,Math.PI/2),t.lineTo(o+a,s+h),0!==a&&t.arc(o+a,s+h-a,a,Math.PI/2,Math.PI),t.lineTo(o,s+i),0!==i&&t.arc(o+i,s+i,i,Math.PI,1.5*Math.PI)}function Qi(t){return Ji(t),f(t.rich,Ji),t}function Ji(t){if(t){t.font=$i(t);var e=t.textAlign;"middle"===e&&(e="center"),t.textAlign=null==e||Dv[e]?e:"left";var i=t.textVerticalAlign||t.textBaseline;"center"===i&&(i="middle"),t.textVerticalAlign=null==i||kv[i]?i:"top";var n=t.textPadding;n&&(t.textPadding=L(t.textPadding))}}function tn(t,e,i,n,r,a){n.rich?nn(t,e,i,n,r):en(t,e,i,n,r,a)}function en(t,e,i,n,r,a){var o=a&&a.style,s=o&&"text"===a.type,l=n.font||Cv;s&&l===(o.font||Cv)||(e.font=l);var h=t.__computedFont;t.__styleFont!==l&&(t.__styleFont=l,h=t.__computedFont=e.font);var u=n.textPadding,c=t.__textCotentBlock;(!c||t.__dirtyText)&&(c=t.__textCotentBlock=ji(i,h,u,n.truncate));var d=c.outerHeight,f=c.lines,p=c.lineHeight,g=un(d,n,r),v=g.baseX,m=g.baseY,y=g.textAlign||"left",x=g.textVerticalAlign;an(e,n,r,v,m);var _=Fi(m,d,x),w=v,b=_,S=sn(n);if(S||u){var M=zi(i,h),I=M;u&&(I+=u[1]+u[3]);var T=Ni(v,I,y);S&&ln(t,e,n,T,_,I,d),u&&(w=gn(v,y,u),b+=u[0])}e.textAlign=y,e.textBaseline="middle";for(var C=0;CT&&(_=b[T],!_.textAlign||"left"===_.textAlign);)on(t,e,_,n,M,m,C,"left"),I-=_.width,C+=_.width,T++;for(;D>=0&&(_=b[D],"right"===_.textAlign);)on(t,e,_,n,M,m,A,"right"),I-=_.width,A-=_.width,D--;for(C+=(a-(C-v)-(y-A)-I)/2;D>=T;)_=b[T],on(t,e,_,n,M,m,C+_.width/2,"center"),C+=_.width,T++;m+=M}}function an(t,e,i,n,r){if(i&&e.textRotation){var a=e.textOrigin;"center"===a?(n=i.width/2+i.x,r=i.height/2+i.y):a&&(n=a[0]+i.x,r=a[1]+i.y),t.translate(n,r),t.rotate(-e.textRotation),t.translate(-n,-r)}}function on(t,e,i,n,r,a,o,s){var l=n.rich[i.styleName]||{};l.text=i.text;var h=i.textVerticalAlign,u=a+r/2;"top"===h?u=a+i.height/2:"bottom"===h&&(u=a+r-i.height/2),!i.isLineHolder&&sn(l)&&ln(t,e,l,"right"===s?o-i.width:"center"===s?o-i.width/2:o,u-i.height/2,i.width,i.height);var c=i.textPadding;c&&(o=gn(o,s,c),u-=i.height/2-c[2]-i.textHeight/2),cn(e,"shadowBlur",k(l.textShadowBlur,n.textShadowBlur,0)),cn(e,"shadowColor",l.textShadowColor||n.textShadowColor||"transparent"),cn(e,"shadowOffsetX",k(l.textShadowOffsetX,n.textShadowOffsetX,0)),cn(e,"shadowOffsetY",k(l.textShadowOffsetY,n.textShadowOffsetY,0)),cn(e,"textAlign",s),cn(e,"textBaseline","middle"),cn(e,"font",i.font||Cv);var d=dn(l.textStroke||n.textStroke,p),f=fn(l.textFill||n.textFill),p=D(l.textStrokeWidth,n.textStrokeWidth);d&&(cn(e,"lineWidth",p),cn(e,"strokeStyle",d),e.strokeText(i.text,o,u)),f&&(cn(e,"fillStyle",f),e.fillText(i.text,o,u))}function sn(t){return t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor}function ln(t,e,i,n,r,a,o){var s=i.textBackgroundColor,l=i.textBorderWidth,h=i.textBorderColor,u=b(s);if(cn(e,"shadowBlur",i.textBoxShadowBlur||0),cn(e,"shadowColor",i.textBoxShadowColor||"transparent"),cn(e,"shadowOffsetX",i.textBoxShadowOffsetX||0),cn(e,"shadowOffsetY",i.textBoxShadowOffsetY||0),u||l&&h){e.beginPath();var c=i.textBorderRadius;c?Ki(e,{x:n,y:r,width:a,height:o,r:c}):e.rect(n,r,a,o),e.closePath()}if(u)if(cn(e,"fillStyle",s),null!=i.fillOpacity){var d=e.globalAlpha;e.globalAlpha=i.fillOpacity*i.opacity,e.fill(),e.globalAlpha=d}else e.fill();else if(w(s))cn(e,"fillStyle",s(i)),e.fill();else if(S(s)){var f=s.image;f=ki(f,null,t,hn,s),f&&Li(f)&&e.drawImage(f,n,r,a,o)}if(l&&h)if(cn(e,"lineWidth",l),cn(e,"strokeStyle",h),null!=i.strokeOpacity){var d=e.globalAlpha;e.globalAlpha=i.strokeOpacity*i.opacity,e.stroke(),e.globalAlpha=d}else e.stroke()}function hn(t,e){e.image=t}function un(t,e,i){var n=e.x||0,r=e.y||0,a=e.textAlign,o=e.textVerticalAlign;if(i){var s=e.textPosition;if(s instanceof Array)n=i.x+pn(s[0],i.width),r=i.y+pn(s[1],i.height);else{var l=Vi(s,i,e.textDistance);n=l.x,r=l.y,a=a||l.textAlign,o=o||l.textVerticalAlign}var h=e.textOffset;h&&(n+=h[0],r+=h[1])}return{baseX:n,baseY:r,textAlign:a,textVerticalAlign:o}}function cn(t,e,i){return t[e]=fv(t,e,i),t[e]}function dn(t,e){return null==t||0>=e||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function fn(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function pn(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function gn(t,e,i){return"right"===e?t-i[1]:"center"===e?t+i[3]/2-i[1]/2:t+i[3]}function vn(t,e){return null!=t&&(t||e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor||e.textPadding)}function mn(t){t=t||{},rv.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new gv(t.style,this),this._rect=null,this.__clipPaths=[] +}function yn(t){mn.call(this,t)}function xn(t){return parseInt(t,10)}function _n(t){return t?t.__builtin__?!0:"function"!=typeof t.resize||"function"!=typeof t.refresh?!1:!0:!1}function wn(t,e,i){return Nv.copy(t.getBoundingRect()),t.transform&&Nv.applyTransform(t.transform),Fv.width=e,Fv.height=i,!Nv.intersect(Fv)}function bn(t,e){if(t==e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var i=0;in;n++){var a=i[n];!t.emphasis[e].hasOwnProperty(a)&&t[e].hasOwnProperty(a)&&(t.emphasis[e][a]=t[e][a])}}}function Vn(t){return!rm(t)||am(t)||t instanceof Date?t:t.value}function Wn(t){return rm(t)&&!(t instanceof Array)}function Gn(t,e){e=(e||[]).slice();var i=p(t||[],function(t){return{exist:t}});return nm(e,function(t,n){if(rm(t)){for(var r=0;r=i.length&&i.push({option:t})}}),i}function Hn(t){var e=N();nm(t,function(t){var i=t.exist;i&&e.set(i.id,t)}),nm(t,function(t){var i=t.option;O(!i||null==i.id||!e.get(i.id)||e.get(i.id)===t,"id duplicates: "+(i&&i.id)),i&&null!=i.id&&e.set(i.id,t),!t.keyInfo&&(t.keyInfo={})}),nm(t,function(t,i){var n=t.exist,r=t.option,a=t.keyInfo;if(rm(r)){if(a.name=null!=r.name?r.name+"":n?n.name:om+i,n)a.id=n.id;else if(null!=r.id)a.id=r.id+"";else{var o=0;do a.id="\x00"+a.name+"\x00"+o++;while(e.get(a.id))}e.set(a.id,t)}})}function Zn(t){var e=t.name;return!(!e||!e.indexOf(om))}function Xn(t){return rm(t)&&t.id&&0===(t.id+"").indexOf("\x00_ec_\x00")}function Yn(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?_(e.dataIndex)?p(e.dataIndex,function(e){return t.indexOfRawIndex(e)}):t.indexOfRawIndex(e.dataIndex):null!=e.name?_(e.name)?p(e.name,function(e){return t.indexOfName(e)}):t.indexOfName(e.name):void 0}function jn(){var t="__\x00ec_inner_"+lm++ +"_"+Math.random().toFixed(5);return function(e){return e[t]||(e[t]={})}}function qn(t,e,i){if(b(e)){var n={};n[e+"Index"]=0,e=n}var r=i&&i.defaultMainType;!r||Un(e,r+"Index")||Un(e,r+"Id")||Un(e,r+"Name")||(e[r+"Index"]=0);var a={};return nm(e,function(n,r){var n=e[r];if("dataIndex"===r||"dataIndexInside"===r)return void(a[r]=n);var o=r.match(/^(\w+)(Index|Id|Name)$/)||[],s=o[1],l=(o[2]||"").toLowerCase();if(!(!s||!l||null==n||"index"===l&&"none"===n||i&&i.includeMainTypes&&h(i.includeMainTypes,s)<0)){var u={mainType:s};("index"!==l||"all"!==n)&&(u[l]=n);var c=t.queryComponents(u);a[s+"Models"]=c,a[s+"Model"]=c[0]}}),a}function Un(t,e){return t&&t.hasOwnProperty(e)}function $n(t,e,i){t.setAttribute?t.setAttribute(e,i):t[e]=i}function Kn(t,e){return t.getAttribute?t.getAttribute(e):t[e]}function Qn(t){return"auto"===t?tg.domSupported?"html":"richText":t||"html"}function Jn(t){var e={main:"",sub:""};return t&&(t=t.split(hm),e.main=t[0]||"",e.sub=t[1]||""),e}function tr(t){O(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}function er(t){t.$constructor=t,t.extend=function(t){var e=this,i=function(){t.$constructor?t.$constructor.apply(this,arguments):e.apply(this,arguments)};return o(i.prototype,t),i.extend=this.extend,i.superCall=nr,i.superApply=rr,u(i,this),i.superClass=e,i}}function ir(t){var e=["__\x00is_clz",cm++,Math.random().toFixed(3)].join("_");t.prototype[e]=!0,t.isInstance=function(t){return!(!t||!t[e])}}function nr(t,e){var i=P(arguments,2);return this.superClass.prototype[e].apply(t,i)}function rr(t,e,i){return this.superClass.prototype[e].apply(t,i)}function ar(t,e){function i(t){var e=n[t.main];return e&&e[um]||(e=n[t.main]={},e[um]=!0),e}e=e||{};var n={};if(t.registerClass=function(t,e){if(e)if(tr(e),e=Jn(e),e.sub){if(e.sub!==um){var r=i(e);r[e.sub]=t}}else n[e.main]=t;return t},t.getClass=function(t,e,i){var r=n[t];if(r&&r[um]&&(r=e?r[e]:null),i&&!r)throw new Error(e?"Component "+t+"."+(e||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){t=Jn(t);var e=[],i=n[t.main];return i&&i[um]?f(i,function(t,i){i!==um&&e.push(t)}):e.push(i),e},t.hasClass=function(t){return t=Jn(t),!!n[t.main]},t.getAllClassMainTypes=function(){var t=[];return f(n,function(e,i){t.push(i)}),t},t.hasSubTypes=function(t){t=Jn(t);var e=n[t.main];return e&&e[um]},t.parseClassType=Jn,e.registerWhenExtend){var r=t.extend;r&&(t.extend=function(e){var i=r.call(this,e);return t.registerClass(i,e.type)})}return t}function or(t){return t>-xm&&xm>t}function sr(t){return t>xm||-xm>t}function lr(t,e,i,n,r){var a=1-r;return a*a*(a*t+3*r*e)+r*r*(r*n+3*a*i)}function hr(t,e,i,n,r){var a=1-r;return 3*(((e-t)*a+2*(i-e)*r)*a+(n-i)*r*r)}function ur(t,e,i,n,r,a){var o=n+3*(e-i)-t,s=3*(i-2*e+t),l=3*(e-t),h=t-r,u=s*s-3*o*l,c=s*l-9*o*h,d=l*l-3*s*h,f=0;if(or(u)&&or(c))if(or(s))a[0]=0;else{var p=-l/s;p>=0&&1>=p&&(a[f++]=p)}else{var g=c*c-4*u*d;if(or(g)){var v=c/u,p=-s/o+v,m=-v/2;p>=0&&1>=p&&(a[f++]=p),m>=0&&1>=m&&(a[f++]=m)}else if(g>0){var y=ym(g),x=u*s+1.5*o*(-c+y),_=u*s+1.5*o*(-c-y);x=0>x?-mm(-x,bm):mm(x,bm),_=0>_?-mm(-_,bm):mm(_,bm);var p=(-s-(x+_))/(3*o);p>=0&&1>=p&&(a[f++]=p)}else{var w=(2*u*s-3*o*c)/(2*ym(u*u*u)),b=Math.acos(w)/3,S=ym(u),M=Math.cos(b),p=(-s-2*S*M)/(3*o),m=(-s+S*(M+wm*Math.sin(b)))/(3*o),I=(-s+S*(M-wm*Math.sin(b)))/(3*o);p>=0&&1>=p&&(a[f++]=p),m>=0&&1>=m&&(a[f++]=m),I>=0&&1>=I&&(a[f++]=I)}}return f}function cr(t,e,i,n,r){var a=6*i-12*e+6*t,o=9*e+3*n-3*t-9*i,s=3*e-3*t,l=0;if(or(o)){if(sr(a)){var h=-s/a;h>=0&&1>=h&&(r[l++]=h)}}else{var u=a*a-4*o*s;if(or(u))r[0]=-a/(2*o);else if(u>0){var c=ym(u),h=(-a+c)/(2*o),d=(-a-c)/(2*o);h>=0&&1>=h&&(r[l++]=h),d>=0&&1>=d&&(r[l++]=d)}}return l}function dr(t,e,i,n,r,a){var o=(e-t)*r+t,s=(i-e)*r+e,l=(n-i)*r+i,h=(s-o)*r+o,u=(l-s)*r+s,c=(u-h)*r+h;a[0]=t,a[1]=o,a[2]=h,a[3]=c,a[4]=c,a[5]=u,a[6]=l,a[7]=n}function fr(t,e,i,n,r,a,o,s,l,h,u){var c,d,f,p,g,v=.005,m=1/0;Sm[0]=l,Sm[1]=h;for(var y=0;1>y;y+=.05)Mm[0]=lr(t,i,r,o,y),Mm[1]=lr(e,n,a,s,y),p=xg(Sm,Mm),m>p&&(c=y,m=p);m=1/0;for(var x=0;32>x&&!(_m>v);x++)d=c-v,f=c+v,Mm[0]=lr(t,i,r,o,d),Mm[1]=lr(e,n,a,s,d),p=xg(Mm,Sm),d>=0&&m>p?(c=d,m=p):(Im[0]=lr(t,i,r,o,f),Im[1]=lr(e,n,a,s,f),g=xg(Im,Sm),1>=f&&m>g?(c=f,m=g):v*=.5);return u&&(u[0]=lr(t,i,r,o,c),u[1]=lr(e,n,a,s,c)),ym(m)}function pr(t,e,i,n){var r=1-n;return r*(r*t+2*n*e)+n*n*i}function gr(t,e,i,n){return 2*((1-n)*(e-t)+n*(i-e))}function vr(t,e,i,n,r){var a=t-2*e+i,o=2*(e-t),s=t-n,l=0;if(or(a)){if(sr(o)){var h=-s/o;h>=0&&1>=h&&(r[l++]=h)}}else{var u=o*o-4*a*s;if(or(u)){var h=-o/(2*a);h>=0&&1>=h&&(r[l++]=h)}else if(u>0){var c=ym(u),h=(-o+c)/(2*a),d=(-o-c)/(2*a);h>=0&&1>=h&&(r[l++]=h),d>=0&&1>=d&&(r[l++]=d)}}return l}function mr(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function yr(t,e,i,n,r){var a=(e-t)*n+t,o=(i-e)*n+e,s=(o-a)*n+a;r[0]=t,r[1]=a,r[2]=s,r[3]=s,r[4]=o,r[5]=i}function xr(t,e,i,n,r,a,o,s,l){var h,u=.005,c=1/0;Sm[0]=o,Sm[1]=s;for(var d=0;1>d;d+=.05){Mm[0]=pr(t,i,r,d),Mm[1]=pr(e,n,a,d);var f=xg(Sm,Mm);c>f&&(h=d,c=f)}c=1/0;for(var p=0;32>p&&!(_m>u);p++){var g=h-u,v=h+u;Mm[0]=pr(t,i,r,g),Mm[1]=pr(e,n,a,g);var f=xg(Mm,Sm);if(g>=0&&c>f)h=g,c=f;else{Im[0]=pr(t,i,r,v),Im[1]=pr(e,n,a,v);var m=xg(Im,Sm);1>=v&&c>m?(h=v,c=m):u*=.5}}return l&&(l[0]=pr(t,i,r,h),l[1]=pr(e,n,a,h)),ym(c)}function _r(t,e,i){if(0!==t.length){var n,r=t[0],a=r[0],o=r[0],s=r[1],l=r[1];for(n=1;nu;u++){var p=d(t,i,r,o,zm[u]);l[0]=Tm(p,l[0]),h[0]=Cm(p,h[0])}for(f=c(e,n,a,s,Em),u=0;f>u;u++){var g=d(e,n,a,s,Em[u]);l[1]=Tm(g,l[1]),h[1]=Cm(g,h[1])}l[0]=Tm(t,l[0]),h[0]=Cm(t,h[0]),l[0]=Tm(o,l[0]),h[0]=Cm(o,h[0]),l[1]=Tm(e,l[1]),h[1]=Cm(e,h[1]),l[1]=Tm(s,l[1]),h[1]=Cm(s,h[1])}function Sr(t,e,i,n,r,a,o,s){var l=mr,h=pr,u=Cm(Tm(l(t,i,r),1),0),c=Cm(Tm(l(e,n,a),1),0),d=h(t,i,r,u),f=h(e,n,a,c);o[0]=Tm(t,r,d),o[1]=Tm(e,a,f),s[0]=Cm(t,r,d),s[1]=Cm(e,a,f)}function Mr(t,e,i,n,r,a,o,s,l){var h=oe,u=se,c=Math.abs(r-a);if(1e-4>c%km&&c>1e-4)return s[0]=t-i,s[1]=e-n,l[0]=t+i,void(l[1]=e+n);if(Pm[0]=Dm(r)*i+t,Pm[1]=Am(r)*n+e,Lm[0]=Dm(a)*i+t,Lm[1]=Am(a)*n+e,h(s,Pm,Lm),u(l,Pm,Lm),r%=km,0>r&&(r+=km),a%=km,0>a&&(a+=km),r>a&&!o?a+=km:a>r&&o&&(r+=km),o){var d=a;a=r,r=d}for(var f=0;a>f;f+=Math.PI/2)f>r&&(Om[0]=Dm(f)*i+t,Om[1]=Am(f)*n+e,h(s,Om,s),u(l,Om,l))}function Ir(t,e,i,n,r,a,o){if(0===r)return!1;var s=r,l=0,h=t;if(o>e+s&&o>n+s||e-s>o&&n-s>o||a>t+s&&a>i+s||t-s>a&&i-s>a)return!1;if(t===i)return Math.abs(a-t)<=s/2;l=(e-n)/(t-i),h=(t*n-i*e)/(t-i);var u=l*a-o+h,c=u*u/(l*l+1);return s/2*s/2>=c}function Tr(t,e,i,n,r,a,o,s,l,h,u){if(0===l)return!1;var c=l;if(u>e+c&&u>n+c&&u>a+c&&u>s+c||e-c>u&&n-c>u&&a-c>u&&s-c>u||h>t+c&&h>i+c&&h>r+c&&h>o+c||t-c>h&&i-c>h&&r-c>h&&o-c>h)return!1;var d=fr(t,e,i,n,r,a,o,s,h,u,null);return c/2>=d}function Cr(t,e,i,n,r,a,o,s,l){if(0===o)return!1;var h=o;if(l>e+h&&l>n+h&&l>a+h||e-h>l&&n-h>l&&a-h>l||s>t+h&&s>i+h&&s>r+h||t-h>s&&i-h>s&&r-h>s)return!1;var u=xr(t,e,i,n,r,a,s,l,null);return h/2>=u}function Ar(t){return t%=Um,0>t&&(t+=Um),t}function Dr(t,e,i,n,r,a,o,s,l){if(0===o)return!1;var h=o;s-=t,l-=e;var u=Math.sqrt(s*s+l*l);if(u-h>i||i>u+h)return!1;if(Math.abs(n-r)%$m<1e-4)return!0;if(a){var c=n;n=Ar(r),r=Ar(c)}else n=Ar(n),r=Ar(r);n>r&&(r+=$m);var d=Math.atan2(l,s);return 0>d&&(d+=$m),d>=n&&r>=d||d+$m>=n&&r>=d+$m}function kr(t,e,i,n,r,a){if(a>e&&a>n||e>a&&n>a)return 0;if(n===e)return 0;var o=e>n?1:-1,s=(a-e)/(n-e);(1===s||0===s)&&(o=e>n?.5:-.5);var l=s*(i-t)+t;return l===r?1/0:l>r?o:0}function Pr(t,e){return Math.abs(t-e)e&&h>n&&h>a&&h>s||e>h&&n>h&&a>h&&s>h)return 0;var u=ur(e,n,a,s,h,ty);if(0===u)return 0;for(var c,d,f=0,p=-1,g=0;u>g;g++){var v=ty[g],m=0===v||1===v?.5:1,y=lr(t,i,r,o,v);l>y||(0>p&&(p=cr(e,n,a,s,ey),ey[1]1&&Lr(),c=lr(e,n,a,s,ey[0]),p>1&&(d=lr(e,n,a,s,ey[1]))),f+=2==p?vc?m:-m:vd?m:-m:d>s?m:-m:vc?m:-m:c>s?m:-m)}return f}function zr(t,e,i,n,r,a,o,s){if(s>e&&s>n&&s>a||e>s&&n>s&&a>s)return 0;var l=vr(e,n,a,s,ty);if(0===l)return 0;var h=mr(e,n,a);if(h>=0&&1>=h){for(var u=0,c=pr(e,n,a,h),d=0;l>d;d++){var f=0===ty[d]||1===ty[d]?.5:1,p=pr(t,i,r,ty[d]);o>p||(u+=ty[d]c?f:-f:c>a?f:-f)}return u}var f=0===ty[0]||1===ty[0]?.5:1,p=pr(t,i,r,ty[0]);return o>p?0:e>a?f:-f}function Er(t,e,i,n,r,a,o,s){if(s-=e,s>i||-i>s)return 0;var l=Math.sqrt(i*i-s*s);ty[0]=-l,ty[1]=l;var h=Math.abs(n-r);if(1e-4>h)return 0;if(1e-4>h%Qm){n=0,r=Qm;var u=a?1:-1;return o>=ty[0]+t&&o<=ty[1]+t?u:0}if(a){var l=n;n=Ar(r),r=Ar(l)}else n=Ar(n),r=Ar(r);n>r&&(r+=Qm);for(var c=0,d=0;2>d;d++){var f=ty[d];if(f+t>o){var p=Math.atan2(s,f),u=a?1:-1;0>p&&(p=Qm+p),(p>=n&&r>=p||p+Qm>=n&&r>=p+Qm)&&(p>Math.PI/2&&p<1.5*Math.PI&&(u=-u),c+=u)}}return c}function Rr(t,e,i,n,r){for(var a=0,o=0,s=0,l=0,h=0,u=0;u1&&(i||(a+=kr(o,s,l,h,n,r))),1==u&&(o=t[u],s=t[u+1],l=o,h=s),c){case Km.M:l=t[u++],h=t[u++],o=l,s=h;break;case Km.L:if(i){if(Ir(o,s,t[u],t[u+1],e,n,r))return!0}else a+=kr(o,s,t[u],t[u+1],n,r)||0;o=t[u++],s=t[u++];break;case Km.C:if(i){if(Tr(o,s,t[u++],t[u++],t[u++],t[u++],t[u],t[u+1],e,n,r))return!0}else a+=Or(o,s,t[u++],t[u++],t[u++],t[u++],t[u],t[u+1],n,r)||0;o=t[u++],s=t[u++];break;case Km.Q:if(i){if(Cr(o,s,t[u++],t[u++],t[u],t[u+1],e,n,r))return!0}else a+=zr(o,s,t[u++],t[u++],t[u],t[u+1],n,r)||0;o=t[u++],s=t[u++];break;case Km.A:var d=t[u++],f=t[u++],p=t[u++],g=t[u++],v=t[u++],m=t[u++],y=(t[u++],1-t[u++]),x=Math.cos(v)*p+d,_=Math.sin(v)*g+f;u>1?a+=kr(o,s,x,_,n,r):(l=x,h=_);var w=(n-d)*g/p+d;if(i){if(Dr(d,f,g,v,v+m,y,e,w,r))return!0}else a+=Er(d,f,g,v,v+m,y,w,r);o=Math.cos(v+m)*p+d,s=Math.sin(v+m)*g+f;break;case Km.R:l=o=t[u++],h=s=t[u++];var b=t[u++],S=t[u++],x=l+b,_=h+S;if(i){if(Ir(l,h,x,h,e,n,r)||Ir(x,h,x,_,e,n,r)||Ir(x,_,l,_,e,n,r)||Ir(l,_,l,h,e,n,r))return!0}else a+=kr(x,h,x,_,n,r),a+=kr(l,_,l,h,n,r);break;case Km.Z:if(i){if(Ir(o,s,l,h,e,n,r))return!0}else a+=kr(o,s,l,h,n,r);o=l,s=h}}return i||Pr(s,h)||(a+=kr(o,s,l,h,n,r)||0),0!==a}function Br(t,e,i){return Rr(t,0,!1,e,i)}function Nr(t,e,i,n){return Rr(t,e,!0,i,n)}function Fr(t){mn.call(this,t),this.path=null}function Vr(t,e,i,n,r,a,o,s,l,h,u){var c=l*(fy/180),d=dy(c)*(t-i)/2+cy(c)*(e-n)/2,f=-1*cy(c)*(t-i)/2+dy(c)*(e-n)/2,p=d*d/(o*o)+f*f/(s*s);p>1&&(o*=uy(p),s*=uy(p));var g=(r===a?-1:1)*uy((o*o*s*s-o*o*f*f-s*s*d*d)/(o*o*f*f+s*s*d*d))||0,v=g*o*f/s,m=g*-s*d/o,y=(t+i)/2+dy(c)*v-cy(c)*m,x=(e+n)/2+cy(c)*v+dy(c)*m,_=vy([1,0],[(d-v)/o,(f-m)/s]),w=[(d-v)/o,(f-m)/s],b=[(-1*d-v)/o,(-1*f-m)/s],S=vy(w,b);gy(w,b)<=-1&&(S=fy),gy(w,b)>=1&&(S=0),0===a&&S>0&&(S-=2*fy),1===a&&0>S&&(S+=2*fy),u.addData(h,y,x,o,s,_,S,c,a)}function Wr(t){if(!t)return new qm;for(var e,i=0,n=0,r=i,a=n,o=new qm,s=qm.CMD,l=t.match(my),h=0;hg;g++)f[g]=parseFloat(f[g]);for(var v=0;p>v;){var m,y,x,_,w,b,S,M=i,I=n;switch(d){case"l":i+=f[v++],n+=f[v++],u=s.L,o.addData(u,i,n);break;case"L":i=f[v++],n=f[v++],u=s.L,o.addData(u,i,n);break;case"m":i+=f[v++],n+=f[v++],u=s.M,o.addData(u,i,n),r=i,a=n,d="l";break;case"M":i=f[v++],n=f[v++],u=s.M,o.addData(u,i,n),r=i,a=n,d="L";break;case"h":i+=f[v++],u=s.L,o.addData(u,i,n);break;case"H":i=f[v++],u=s.L,o.addData(u,i,n);break;case"v":n+=f[v++],u=s.L,o.addData(u,i,n);break;case"V":n=f[v++],u=s.L,o.addData(u,i,n);break;case"C":u=s.C,o.addData(u,f[v++],f[v++],f[v++],f[v++],f[v++],f[v++]),i=f[v-2],n=f[v-1];break;case"c":u=s.C,o.addData(u,f[v++]+i,f[v++]+n,f[v++]+i,f[v++]+n,f[v++]+i,f[v++]+n),i+=f[v-2],n+=f[v-1];break;case"S":m=i,y=n;var T=o.len(),C=o.data;e===s.C&&(m+=i-C[T-4],y+=n-C[T-3]),u=s.C,M=f[v++],I=f[v++],i=f[v++],n=f[v++],o.addData(u,m,y,M,I,i,n);break;case"s":m=i,y=n;var T=o.len(),C=o.data;e===s.C&&(m+=i-C[T-4],y+=n-C[T-3]),u=s.C,M=i+f[v++],I=n+f[v++],i+=f[v++],n+=f[v++],o.addData(u,m,y,M,I,i,n);break;case"Q":M=f[v++],I=f[v++],i=f[v++],n=f[v++],u=s.Q,o.addData(u,M,I,i,n);break;case"q":M=f[v++]+i,I=f[v++]+n,i+=f[v++],n+=f[v++],u=s.Q,o.addData(u,M,I,i,n);break;case"T":m=i,y=n;var T=o.len(),C=o.data;e===s.Q&&(m+=i-C[T-4],y+=n-C[T-3]),i=f[v++],n=f[v++],u=s.Q,o.addData(u,m,y,i,n);break;case"t":m=i,y=n;var T=o.len(),C=o.data;e===s.Q&&(m+=i-C[T-4],y+=n-C[T-3]),i+=f[v++],n+=f[v++],u=s.Q,o.addData(u,m,y,i,n);break;case"A":x=f[v++],_=f[v++],w=f[v++],b=f[v++],S=f[v++],M=i,I=n,i=f[v++],n=f[v++],u=s.A,Vr(M,I,i,n,b,S,x,_,w,u,o);break;case"a":x=f[v++],_=f[v++],w=f[v++],b=f[v++],S=f[v++],M=i,I=n,i+=f[v++],n+=f[v++],u=s.A,Vr(M,I,i,n,b,S,x,_,w,u,o)}}("z"===d||"Z"===d)&&(u=s.Z,o.addData(u),i=r,n=a),e=u}return o.toStatic(),o}function Gr(t,e){var i=Wr(t);return e=e||{},e.buildPath=function(t){if(t.setData){t.setData(i.data);var e=t.getContext();e&&t.rebuildPath(e)}else{var e=t;i.rebuildPath(e)}},e.applyTransform=function(t){hy(i,t),this.dirty(!0)},e}function Hr(t,e){return new Fr(Gr(t,e))}function Zr(t,e){return Fr.extend(Gr(t,e))}function Xr(t,e){for(var i=[],n=t.length,r=0;n>r;r++){var a=t[r];a.path||a.createPathProxy(),a.__dirtyPath&&a.buildPath(a.path,a.shape,!0),i.push(a.path)}var o=new Fr(e);return o.createPathProxy(),o.buildPath=function(t){t.appendPath(i);var e=t.getContext();e&&t.rebuildPath(e)},o}function Yr(t,e,i,n,r,a,o){var s=.5*(i-t),l=.5*(n-e);return(2*(e-i)+s+l)*o+(-3*(e-i)-2*s-l)*a+s*r+e}function jr(t,e,i){var n=e.points,r=e.smooth;if(n&&n.length>=2){if(r&&"spline"!==r){var a=Ty(n,r,i,e.smoothConstraint);t.moveTo(n[0][0],n[0][1]);for(var o=n.length,s=0;(i?o:o-1)>s;s++){var l=a[2*s],h=a[2*s+1],u=n[(s+1)%o];t.bezierCurveTo(l[0],l[1],h[0],h[1],u[0],u[1])}}else{"spline"===r&&(n=Iy(n,i)),t.moveTo(n[0][0],n[0][1]);for(var s=1,c=n.length;c>s;s++)t.lineTo(n[s][0],n[s][1])}i&&t.closePath()}}function qr(t,e,i){var n=t.cpx2,r=t.cpy2;return null===n||null===r?[(i?hr:lr)(t.x1,t.cpx1,t.cpx2,t.x2,e),(i?hr:lr)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(i?gr:pr)(t.x1,t.cpx1,t.x2,e),(i?gr:pr)(t.y1,t.cpy1,t.y2,e)]}function Ur(t){mn.call(this,t),this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.notClear=!0}function $r(t){return Fr.extend(t)}function Kr(t,e){return Zr(t,e)}function Qr(t,e,i,n){var r=Hr(t,e);return i&&("center"===n&&(i=ta(i,r.getBoundingRect())),ea(r,i)),r}function Jr(t,e,i){var n=new yn({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===i){var r={width:t.width,height:t.height};n.setStyle(ta(e,r))}}});return n}function ta(t,e){var i,n=e.width/e.height,r=t.height*n;r<=t.width?i=t.height:(r=t.width,i=r/n);var a=t.x+t.width/2,o=t.y+t.height/2;return{x:a-r/2,y:o-i/2,width:r,height:i}}function ea(t,e){if(t.applyTransform){var i=t.getBoundingRect(),n=i.calculateTransform(e);t.applyTransform(n)}}function ia(t){var e=t.shape,i=t.style.lineWidth;return Fy(2*e.x1)===Fy(2*e.x2)&&(e.x1=e.x2=ra(e.x1,i,!0)),Fy(2*e.y1)===Fy(2*e.y2)&&(e.y1=e.y2=ra(e.y1,i,!0)),t}function na(t){var e=t.shape,i=t.style.lineWidth,n=e.x,r=e.y,a=e.width,o=e.height;return e.x=ra(e.x,i,!0),e.y=ra(e.y,i,!0),e.width=Math.max(ra(n+a,i,!1)-e.x,0===a?0:1),e.height=Math.max(ra(r+o,i,!1)-e.y,0===o?0:1),t}function ra(t,e,i){var n=Fy(2*t);return(n+Fy(e))%2===0?n/2:(n+(i?1:-1))/2}function aa(t){return null!=t&&"none"!==t}function oa(t){if("string"!=typeof t)return t;var e=Zy.get(t);return e||(e=Ye(t,-.1),1e4>Xy&&(Zy.set(t,e),Xy++)),e}function sa(t){if(t.__hoverStlDirty){t.__hoverStlDirty=!1;var e=t.__hoverStl;if(!e)return void(t.__normalStl=null);var i=t.__normalStl={},n=t.style;for(var r in e)null!=e[r]&&(i[r]=n[r]);i.fill=n.fill,i.stroke=n.stroke}}function la(t){var e=t.__hoverStl;if(e&&!t.__highlighted){var i=t.useHoverLayer;t.__highlighted=i?"layer":"plain";var n=t.__zr;if(n||!i){var r=t,a=t.style;i&&(r=n.addHover(t),a=r.style),Da(a),i||sa(r),a.extendFrom(e),ha(a,e,"fill"),ha(a,e,"stroke"),Aa(a),i||(t.dirty(!1),t.z2+=1)}}}function ha(t,e,i){!aa(e[i])&&aa(t[i])&&(t[i]=oa(t[i]))}function ua(t){t.__highlighted&&(ca(t),t.__highlighted=!1)}function ca(t){var e=t.__highlighted;if("layer"===e)t.__zr&&t.__zr.removeHover(t);else if(e){var i=t.style,n=t.__normalStl;n&&(Da(i),t.setStyle(n),Aa(i),t.z2-=1)}}function da(t,e){t.isGroup?t.traverse(function(t){!t.isGroup&&e(t)}):e(t)}function fa(t,e){e=t.__hoverStl=e!==!1&&(e||{}),t.__hoverStlDirty=!0,t.__highlighted&&(ua(t),la(t))}function pa(t){return t&&t.__isEmphasisEntered}function ga(t){this.__hoverSilentOnTouch&&t.zrByTouch||!this.__isEmphasisEntered&&da(this,la)}function va(t){this.__hoverSilentOnTouch&&t.zrByTouch||!this.__isEmphasisEntered&&da(this,ua)}function ma(){this.__isEmphasisEntered=!0,da(this,la)}function ya(){this.__isEmphasisEntered=!1,da(this,ua)}function xa(t,e,i){t.isGroup?t.traverse(function(t){!t.isGroup&&fa(t,t.hoverStyle||e)}):fa(t,t.hoverStyle||e),_a(t,i)}function _a(t,e){var i=e===!1;if(t.__hoverSilentOnTouch=null!=e&&e.hoverSilentOnTouch,!i||t.__hoverStyleTrigger){var n=i?"off":"on";t[n]("mouseover",ga)[n]("mouseout",va),t[n]("emphasis",ma)[n]("normal",ya),t.__hoverStyleTrigger=!i}}function wa(t,e,i,n,r,a,o){r=r||Gy;var s,l=r.labelFetcher,h=r.labelDataIndex,u=r.labelDimIndex,c=i.getShallow("show"),d=n.getShallow("show");(c||d)&&(l&&(s=l.getFormattedLabel(h,"normal",null,u)),null==s&&(s=w(r.defaultText)?r.defaultText(h,r):r.defaultText));var f=c?s:null,p=d?D(l?l.getFormattedLabel(h,"emphasis",null,u):null,s):null;(null!=f||null!=p)&&(ba(t,i,a,r),ba(e,n,o,r,!0)),t.text=f,e.text=p}function ba(t,e,i,n,r){return Ma(t,e,n,r),i&&o(t,i),t}function Sa(t,e,i){var n,r={isRectText:!0};i===!1?n=!0:r.autoColor=i,Ma(t,e,r,n)}function Ma(t,e,i,n){if(i=i||Gy,i.isRectText){var r=e.getShallow("position")||(n?null:"inside");"outside"===r&&(r="top"),t.textPosition=r,t.textOffset=e.getShallow("offset");var a=e.getShallow("rotate");null!=a&&(a*=Math.PI/180),t.textRotation=a,t.textDistance=D(e.getShallow("distance"),n?null:5)}var o,s=e.ecModel,l=s&&s.option.textStyle,h=Ia(e);if(h){o={};for(var u in h)if(h.hasOwnProperty(u)){var c=e.getModel(["rich",u]);Ta(o[u]={},c,l,i,n)}}return t.rich=o,Ta(t,e,l,i,n,!0),i.forceRich&&!i.textStyle&&(i.textStyle={}),t}function Ia(t){for(var e;t&&t!==t.ecModel;){var i=(t.option||Gy).rich;if(i){e=e||{};for(var n in i)i.hasOwnProperty(n)&&(e[n]=1)}t=t.parentModel}return e}function Ta(t,e,i,n,r,a){i=!r&&i||Gy,t.textFill=Ca(e.getShallow("color"),n)||i.color,t.textStroke=Ca(e.getShallow("textBorderColor"),n)||i.textBorderColor,t.textStrokeWidth=D(e.getShallow("textBorderWidth"),i.textBorderWidth),t.insideRawTextPosition=t.textPosition,r||(a&&(t.insideRollbackOpt=n,Aa(t)),null==t.textFill&&(t.textFill=n.autoColor)),t.fontStyle=e.getShallow("fontStyle")||i.fontStyle,t.fontWeight=e.getShallow("fontWeight")||i.fontWeight,t.fontSize=e.getShallow("fontSize")||i.fontSize,t.fontFamily=e.getShallow("fontFamily")||i.fontFamily,t.textAlign=e.getShallow("align"),t.textVerticalAlign=e.getShallow("verticalAlign")||e.getShallow("baseline"),t.textLineHeight=e.getShallow("lineHeight"),t.textWidth=e.getShallow("width"),t.textHeight=e.getShallow("height"),t.textTag=e.getShallow("tag"),a&&n.disableBox||(t.textBackgroundColor=Ca(e.getShallow("backgroundColor"),n),t.textPadding=e.getShallow("padding"),t.textBorderColor=Ca(e.getShallow("borderColor"),n),t.textBorderWidth=e.getShallow("borderWidth"),t.textBorderRadius=e.getShallow("borderRadius"),t.textBoxShadowColor=e.getShallow("shadowColor"),t.textBoxShadowBlur=e.getShallow("shadowBlur"),t.textBoxShadowOffsetX=e.getShallow("shadowOffsetX"),t.textBoxShadowOffsetY=e.getShallow("shadowOffsetY")),t.textShadowColor=e.getShallow("textShadowColor")||i.textShadowColor,t.textShadowBlur=e.getShallow("textShadowBlur")||i.textShadowBlur,t.textShadowOffsetX=e.getShallow("textShadowOffsetX")||i.textShadowOffsetX,t.textShadowOffsetY=e.getShallow("textShadowOffsetY")||i.textShadowOffsetY}function Ca(t,e){return"auto"!==t?t:e&&e.autoColor?e.autoColor:null}function Aa(t){var e=t.insideRollbackOpt;if(e&&null==t.textFill){var i,n=e.useInsideStyle,r=t.insideRawTextPosition,a=e.autoColor;n!==!1&&(n===!0||e.isRectText&&r&&"string"==typeof r&&r.indexOf("inside")>=0)?(i={textFill:null,textStroke:t.textStroke,textStrokeWidth:t.textStrokeWidth},t.textFill="#fff",null==t.textStroke&&(t.textStroke=a,null==t.textStrokeWidth&&(t.textStrokeWidth=2))):null!=a&&(i={textFill:null},t.textFill=a),i&&(t.insideRollback=i)}}function Da(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth,t.insideRollback=null)}function ka(t,e){var i=e||e.getModel("textStyle");return z([t.fontStyle||i&&i.getShallow("fontStyle")||"",t.fontWeight||i&&i.getShallow("fontWeight")||"",(t.fontSize||i&&i.getShallow("fontSize")||12)+"px",t.fontFamily||i&&i.getShallow("fontFamily")||"sans-serif"].join(" "))}function Pa(t,e,i,n,r,a){"function"==typeof r&&(a=r,r=null);var o=n&&n.isAnimationEnabled();if(o){var s=t?"Update":"",l=n.getShallow("animationDuration"+s),h=n.getShallow("animationEasing"+s),u=n.getShallow("animationDelay"+s);"function"==typeof u&&(u=u(r,n.getAnimationDelayParams?n.getAnimationDelayParams(e,r):null)),"function"==typeof l&&(l=l(r)),l>0?e.animateTo(i,l,u||0,h,a,!!a):(e.stopAnimation(),e.attr(i),a&&a())}else e.stopAnimation(),e.attr(i),a&&a()}function La(t,e,i,n,r){Pa(!0,t,e,i,n,r)}function Oa(t,e,i,n,r){Pa(!1,t,e,i,n,r)}function za(t,e){for(var i=Se([]);t&&t!==e;)Ie(i,t.getLocalTransform(),i),t=t.parent;return i}function Ea(t,e,i){return e&&!d(e)&&(e=Og.getLocalTransform(e)),i&&(e=De([],e)),ae([],t,e)}function Ra(t,e,i){var n=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),a=["left"===t?-n:"right"===t?n:0,"top"===t?-r:"bottom"===t?r:0];return a=Ea(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function Ba(t,e,i){function n(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}function r(t){var e={position:H(t.position),rotation:t.rotation};return t.shape&&(e.shape=o({},t.shape)),e}if(t&&e){var a=n(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=a[t.anid];if(e){var n=r(t);t.attr(r(e)),La(t,n,i,t.dataIndex)}}})}}function Na(t,e){return p(t,function(t){var i=t[0];i=Vy(i,e.x),i=Wy(i,e.x+e.width);var n=t[1];return n=Vy(n,e.y),n=Wy(n,e.y+e.height),[i,n]})}function Fa(t,e){var i=Vy(t.x,e.x),n=Wy(t.x+t.width,e.x+e.width),r=Vy(t.y,e.y),a=Wy(t.y+t.height,e.y+e.height);return n>=i&&a>=r?{x:i,y:r,width:n-i,height:a-r}:void 0}function Va(t,e,i){e=o({rectHover:!0},e);var n=e.style={strokeNoScale:!0};return i=i||{x:-1,y:-1,width:2,height:2},t?0===t.indexOf("image://")?(n.image=t.slice(8),s(n,i),new yn(e)):Qr(t.replace("path://",""),e,i,"center"):void 0}function Wa(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function Ga(t,e,i){for(var n=0;n=0&&i.push(t)}),i}t.topologicalTravel=function(t,e,n,r){function a(t){l[t].entryCount--,0===l[t].entryCount&&h.push(t)}function o(t){u[t]=!0,a(t)}if(t.length){var s=i(e),l=s.graph,h=s.noEntryList,u={};for(f(t,function(t){u[t]=!0});h.length;){var c=h.pop(),d=l[c],p=!!u[c];p&&(n.call(r,c,d.originalDeps.slice()),delete u[c]),f(d.successor,p?o:a)}f(u,function(){throw new Error("Circle dependency may exists")})}}}function ja(t){return t.replace(/^\s+/,"").replace(/\s+$/,"")}function qa(t,e,i,n){var r=e[1]-e[0],a=i[1]-i[0];if(0===r)return 0===a?i[0]:(i[0]+i[1])/2;if(n)if(r>0){if(t<=e[0])return i[0];if(t>=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/r*a+i[0]}function Ua(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?ja(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?0/0:+t}function $a(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Ka(t){return t.sort(function(t,e){return t-e}),t}function Qa(t){if(t=+t,isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function Ja(t){var e=t.toString(),i=e.indexOf("e");if(i>0){var n=+e.slice(i+1);return 0>n?-n:0}var r=e.indexOf(".");return 0>r?0:e.length-1-r}function to(t,e){var i=Math.log,n=Math.LN10,r=Math.floor(i(t[1]-t[0])/n),a=Math.round(i(Math.abs(e[1]-e[0]))/n),o=Math.min(Math.max(-r+a,0),20);return isFinite(o)?o:20}function eo(t,e,i){if(!t[e])return 0;var n=g(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===n)return 0;for(var r=Math.pow(10,i),a=p(t,function(t){return(isNaN(t)?0:t)/n*r*100}),o=100*r,s=p(a,function(t){return Math.floor(t)}),l=g(s,function(t,e){return t+e},0),h=p(a,function(t,e){return t-s[e]});o>l;){for(var u=Number.NEGATIVE_INFINITY,c=null,d=0,f=h.length;f>d;++d)h[d]>u&&(u=h[d],c=d);++s[c],h[c]=0,++l}return s[e]/r}function io(t){var e=2*Math.PI;return(t%e+e)%e}function no(t){return t>-tx&&tx>t}function ro(t){if(t instanceof Date)return t;if("string"==typeof t){var e=ix.exec(t);if(!e)return new Date(0/0);if(e[8]){var i=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(i-=e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,i,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return new Date(null==t?0/0:Math.round(t))}function ao(t){return Math.pow(10,oo(t))}function oo(t){return Math.floor(Math.log(t)/Math.LN10)}function so(t,e){var i,n=oo(t),r=Math.pow(10,n),a=t/r;return i=e?1.5>a?1:2.5>a?2:4>a?3:7>a?5:10:1>a?1:2>a?2:3>a?3:5>a?5:10,t=i*r,n>=-20?+t.toFixed(0>n?-n:0):t}function lo(t,e){var i=(t.length-1)*e+1,n=Math.floor(i),r=+t[n-1],a=i-n;return a?r+a*(t[n]-r):r}function ho(t){function e(t,i,n){return t.interval[n]s;s++)a[s]<=i&&(a[s]=i,o[s]=s?1:1-n),i=a[s],n=o[s];a[0]===a[1]&&o[0]*o[1]!==1?t.splice(r,1):r++}return t}function uo(t){return t-parseFloat(t)>=0}function co(t){return isNaN(t)?"-":(t=(t+"").split("."),t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:""))}function fo(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,function(t,e){return e.toUpperCase()}),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}function po(t){return null==t?"":(t+"").replace(ax,function(t,e){return ox[e]})}function go(t,e,i){_(e)||(e=[e]);var n=e.length;if(!n)return"";for(var r=e[0].$vars||[],a=0;as;s++)for(var l=0;l':'':{renderMode:r,content:"{marker"+a+"|} ",style:{color:i}}:"" +}function yo(t,e){return t+="","0000".substr(0,e-t.length)+t}function xo(t,e,i){("week"===t||"month"===t||"quarter"===t||"half-year"===t||"year"===t)&&(t="MM-dd\nyyyy");var n=ro(e),r=i?"UTC":"",a=n["get"+r+"FullYear"](),o=n["get"+r+"Month"]()+1,s=n["get"+r+"Date"](),l=n["get"+r+"Hours"](),h=n["get"+r+"Minutes"](),u=n["get"+r+"Seconds"](),c=n["get"+r+"Milliseconds"]();return t=t.replace("MM",yo(o,2)).replace("M",o).replace("yyyy",a).replace("yy",a%100).replace("dd",yo(s,2)).replace("d",s).replace("hh",yo(l,2)).replace("h",l).replace("mm",yo(h,2)).replace("m",h).replace("ss",yo(u,2)).replace("s",u).replace("SSS",yo(c,3))}function _o(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function wo(t,e,i,n,r){var a=0,o=0;null==n&&(n=1/0),null==r&&(r=1/0);var s=0;e.eachChild(function(l,h){var u,c,d=l.position,f=l.getBoundingRect(),p=e.childAt(h+1),g=p&&p.getBoundingRect();if("horizontal"===t){var v=f.width+(g?-g.x+f.x:0);u=a+v,u>n||l.newline?(a=0,u=v,o+=s+i,s=f.height):s=Math.max(s,f.height)}else{var m=f.height+(g?-g.y+f.y:0);c=o+m,c>r||l.newline?(a+=s+i,o=0,c=m,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=a,d[1]=o,"horizontal"===t?a=u+i:o=c+i)})}function bo(t,e,i){i=rx(i||0);var n=e.width,r=e.height,a=Ua(t.left,n),o=Ua(t.top,r),s=Ua(t.right,n),l=Ua(t.bottom,r),h=Ua(t.width,n),u=Ua(t.height,r),c=i[2]+i[0],d=i[1]+i[3],f=t.aspect;switch(isNaN(h)&&(h=n-s-d-a),isNaN(u)&&(u=r-l-c-o),null!=f&&(isNaN(h)&&isNaN(u)&&(f>n/r?h=.8*n:u=.8*r),isNaN(h)&&(h=f*u),isNaN(u)&&(u=h/f)),isNaN(a)&&(a=n-s-h-d),isNaN(o)&&(o=r-l-u-c),t.left||t.right){case"center":a=n/2-h/2-i[3];break;case"right":a=n-h-d}switch(t.top||t.bottom){case"middle":case"center":o=r/2-u/2-i[0];break;case"bottom":o=r-u-c}a=a||0,o=o||0,isNaN(h)&&(h=n-d-a-(s||0)),isNaN(u)&&(u=r-c-o-(l||0));var p=new gi(a+i[3],o+i[0],h,u);return p.margin=i,p}function So(t,e,i){function n(i,n){var o={},l=0,h={},u=0,c=2;if(dx(i,function(e){h[e]=t[e]}),dx(i,function(t){r(e,t)&&(o[t]=h[t]=e[t]),a(o,t)&&l++,a(h,t)&&u++}),s[n])return a(e,i[1])?h[i[2]]=null:a(e,i[2])&&(h[i[1]]=null),h;if(u!==c&&l){if(l>=c)return o;for(var d=0;dn;n++)if(t[n].length>e)return t[n];return t[i-1]}function Ao(t){var e=t.get("coordinateSystem"),i={coordSysName:e,coordSysDims:[],axisMap:N(),categoryAxisMap:N()},n=Mx[e];return n?(n(t,i,i.axisMap,i.categoryAxisMap),i):void 0}function Do(t){return"category"===t.get("type")}function ko(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===Ax?{}:[]),this.sourceFormat=t.sourceFormat||Dx,this.seriesLayoutBy=t.seriesLayoutBy||Px,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&N(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}function Po(t){var e=t.option.source,i=Dx;if(I(e))i=kx;else if(_(e)){0===e.length&&(i=Tx);for(var n=0,r=e.length;r>n;n++){var a=e[n];if(null!=a){if(_(a)){i=Tx;break}if(S(a)){i=Cx;break}}}}else if(S(e)){for(var o in e)if(e.hasOwnProperty(o)&&d(e[o])){i=Ax;break}}else if(null!=e)throw new Error("Invalid data");Ox(t).sourceFormat=i}function Lo(t){return Ox(t).source}function Oo(t){Ox(t).datasetMap=N()}function zo(t){var e=t.option,i=e.data,n=I(i)?kx:Ix,r=!1,a=e.seriesLayoutBy,o=e.sourceHeader,s=e.dimensions,l=Vo(t);if(l){var h=l.option;i=h.source,n=Ox(l).sourceFormat,r=!0,a=a||h.seriesLayoutBy,null==o&&(o=h.sourceHeader),s=s||h.dimensions}var u=Eo(i,n,a,o,s),c=e.encode;!c&&l&&(c=Fo(t,l,i,n,a,u)),Ox(t).source=new ko({data:i,fromDataset:r,seriesLayoutBy:a,sourceFormat:n,dimensionsDefine:u.dimensionsDefine,startIndex:u.startIndex,dimensionsDetectCount:u.dimensionsDetectCount,encodeDefine:c})}function Eo(t,e,i,n,r){if(!t)return{dimensionsDefine:Ro(r)};var a,o,s;if(e===Tx)"auto"===n||null==n?Bo(function(t){null!=t&&"-"!==t&&(b(t)?null==o&&(o=1):o=0)},i,t,10):o=n?1:0,r||1!==o||(r=[],Bo(function(t,e){r[e]=null!=t?t:""},i,t)),a=r?r.length:i===Lx?t.length:t[0]?t[0].length:null;else if(e===Cx)r||(r=No(t),s=!0);else if(e===Ax)r||(r=[],s=!0,f(t,function(t,e){r.push(e)}));else if(e===Ix){var l=Vn(t[0]);a=_(l)&&l.length||1}var h;return s&&f(r,function(t,e){"name"===(S(t)?t.name:t)&&(h=e)}),{startIndex:o,dimensionsDefine:Ro(r),dimensionsDetectCount:a,potentialNameDimIndex:h}}function Ro(t){if(t){var e=N();return p(t,function(t){if(t=o({},S(t)?t:{name:t}),null==t.name)return t;t.name+="",null==t.displayName&&(t.displayName=t.name);var i=e.get(t.name);return i?t.name+="-"+i.count++:e.set(t.name,{count:1}),t})}}function Bo(t,e,i,n){if(null==n&&(n=1/0),e===Lx)for(var r=0;rr;r++)t(i[r]?i[r][0]:null,r);else for(var a=i[0]||[],r=0;rr;r++)t(a[r],r)}function No(t){for(var e,i=0;ix&&null==y;x++)Go(i,n,r,a.dimensionsDefine,a.startIndex,x)||(y=x);if(null!=y){s.value=y;var _=a.potentialNameDimIndex||Math.max(y-1,0);h.push(_),l.push(_)}}return l.length&&(s.itemName=l),h.length&&(s.seriesName=h),s}function Vo(t){var e=t.option,i=e.data;return i?void 0:t.ecModel.getComponent("dataset",e.datasetIndex||0)}function Wo(t,e){return Go(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function Go(t,e,i,n,r,a){function o(t){return null!=t&&isFinite(t)&&""!==t?!1:b(t)&&"-"!==t?!0:void 0}var s,l=5;if(I(t))return!1;var h;if(n&&(h=n[a],h=S(h)?h.name:h),e===Tx)if(i===Lx){for(var u=t[a],c=0;c<(u||[]).length&&l>c;c++)if(null!=(s=o(u[r+c])))return s}else for(var c=0;cc;c++){var d=t[r+c];if(d&&null!=(s=o(d[a])))return s}else if(e===Cx){if(!h)return;for(var c=0;cc;c++){var f=t[c];if(f&&null!=(s=o(f[h])))return s}}else if(e===Ax){if(!h)return;var u=t[h];if(!u||I(u))return!1;for(var c=0;cc;c++)if(null!=(s=o(u[c])))return s}else if(e===Ix)for(var c=0;cc;c++){var f=t[c],p=Vn(f);if(!_(p))return!1;if(null!=(s=o(p[a])))return s}return!1}function Ho(t,e){if(e){var i=e.seiresIndex,n=e.seriesId,r=e.seriesName;return null!=i&&t.componentIndex!==i||null!=n&&t.id!==n||null!=r&&t.name!==r}}function Zo(t,e){var i=t.color&&!t.colorLayer;f(e,function(e,a){"colorLayer"===a&&i||yx.hasClass(a)||("object"==typeof e?t[a]=t[a]?r(t[a],e,!1):n(e):null==t[a]&&(t[a]=e))})}function Xo(t){t=t,this.option={},this.option[zx]=1,this._componentsMap=N({series:[]}),this._seriesIndices,this._seriesIndicesMap,Zo(t,this._theme.option),r(t,_x,!1),this.mergeOption(t)}function Yo(t,e){_(e)||(e=e?[e]:[]);var i={};return f(e,function(e){i[e]=(t.get(e)||[]).slice()}),i}function jo(t,e,i){var n=e.type?e.type:i?i.subType:yx.determineSubType(t,e);return n}function qo(t,e){t._seriesIndicesMap=N(t._seriesIndices=p(e,function(t){return t.componentIndex})||[])}function Uo(t,e){return e.hasOwnProperty("subType")?v(t,function(t){return t.subType===e.subType}):t}function $o(t){f(Rx,function(e){this[e]=y(t[e],t)},this)}function Ko(){this._coordinateSystems=[]}function Qo(t){this._api=t,this._timelineOptions=[],this._mediaList=[],this._mediaDefault,this._currentMediaIndices=[],this._optionBackup,this._newBaseOption}function Jo(t,e,i){var n,r,a=[],o=[],s=t.timeline;if(t.baseOption&&(r=t.baseOption),(s||t.options)&&(r=r||{},a=(t.options||[]).slice()),t.media){r=r||{};var l=t.media;Nx(l,function(t){t&&t.option&&(t.query?o.push(t):n||(n=t))})}return r||(r=t),r.timeline||(r.timeline=s),Nx([r].concat(a).concat(p(o,function(t){return t.option})),function(t){Nx(e,function(e){e(t,i)})}),{baseOption:r,timelineOptions:a,mediaDefault:n,mediaList:o}}function ts(t,e,i){var n={width:e,height:i,aspectratio:e/i},r=!0;return f(t,function(t,e){var i=e.match(Gx);if(i&&i[1]&&i[2]){var a=i[1],o=i[2].toLowerCase();es(n[o],t,a)||(r=!1)}}),r}function es(t,e,i){return"min"===i?t>=e:"max"===i?e>=t:t===e}function is(t,e){return t.join(",")===e.join(",")}function ns(t,e){e=e||{},Nx(e,function(e,i){if(null!=e){var n=t[i];if(yx.hasClass(i)){e=Nn(e),n=Nn(n);var r=Gn(n,e);t[i]=Vx(r,function(t){return t.option&&t.exist?Wx(t.exist,t.option,!0):t.exist||t.option})}else t[i]=Wx(n,e,!0)}})}function rs(t){var e=t&&t.itemStyle;if(e)for(var i=0,n=Xx.length;n>i;i++){var a=Xx[i],o=e.normal,s=e.emphasis;o&&o[a]&&(t[a]=t[a]||{},t[a].normal?r(t[a].normal,o[a]):t[a].normal=o[a],o[a]=null),s&&s[a]&&(t[a]=t[a]||{},t[a].emphasis?r(t[a].emphasis,s[a]):t[a].emphasis=s[a],s[a]=null)}}function as(t,e,i){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var n=t[e].normal,r=t[e].emphasis;n&&(i?(t[e].normal=t[e].emphasis=null,s(t[e],n)):t[e]=n),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r)}}function os(t){as(t,"itemStyle"),as(t,"lineStyle"),as(t,"areaStyle"),as(t,"label"),as(t,"labelLine"),as(t,"upperLabel"),as(t,"edgeLabel")}function ss(t,e){var i=Zx(t)&&t[e],n=Zx(i)&&i.textStyle;if(n)for(var r=0,a=sm.length;a>r;r++){var e=sm[r];n.hasOwnProperty(e)&&(i[e]=n[e])}}function ls(t){t&&(os(t),ss(t,"label"),t.emphasis&&ss(t.emphasis,"label"))}function hs(t){if(Zx(t)){rs(t),os(t),ss(t,"label"),ss(t,"upperLabel"),ss(t,"edgeLabel"),t.emphasis&&(ss(t.emphasis,"label"),ss(t.emphasis,"upperLabel"),ss(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(rs(e),ls(e));var i=t.markLine;i&&(rs(i),ls(i));var n=t.markArea;n&&ls(n);var r=t.data;if("graph"===t.type){r=r||t.nodes;var a=t.links||t.edges;if(a&&!I(a))for(var o=0;o=0;p--){var g=t[p];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,c)),d>=0){var v=g.data.getByRawIndex(g.stackResultDimension,d);if(u>=0&&v>0||0>=u&&0>v){u+=v,f=v;break}}}return n[0]=u,n[1]=f,n});o.hostModel.setData(l),e.data=l})}function vs(t,e){ko.isInstance(t)||(t=ko.seriesDataToSource(t)),this._source=t;var i=this._data=t.data,n=t.sourceFormat;n===kx&&(this._offset=0,this._dimSize=e,this._data=i);var r=Qx[n===Tx?n+"_"+t.seriesLayoutBy:n];o(this,r)}function ms(){return this._data.length}function ys(t){return this._data[t]}function xs(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function zs(t,e){f(t.CHANGABLE_METHODS,function(i){t.wrapMethod(i,x(Es,e))})}function Es(t){var e=Rs(t);e&&e.setOutputEnd(this.count())}function Rs(t){var e=(t.ecModel||{}).scheduler,i=e&&e.getPipeline(t.uid);if(i){var n=i.currentTask;if(n){var r=n.agentStubMap;r&&(n=r.get(t.uid))}return n}}function Bs(){this.group=new lv,this.uid=Za("viewChart"),this.renderTask=Is({plan:Vs,reset:Ws}),this.renderTask.context={view:this}}function Ns(t,e){if(t&&(t.trigger(e),"group"===t.type))for(var i=0;i=0?n():c=setTimeout(n,-a),h=r};return d.clear=function(){c&&(clearTimeout(c),c=null)},d.debounceNextCall=function(t){l=t},d}function Hs(t,e,i,n){var r=t[e];if(r){var a=r[p_]||r,o=r[v_],s=r[g_];if(s!==i||o!==n){if(null==i||!n)return t[e]=a;r=t[e]=Gs(a,i,"debounce"===n),r[p_]=a,r[v_]=n,r[g_]=i}return r}}function Zs(t,e){var i=t[e];i&&i[p_]&&(t[e]=i[p_])}function Xs(t,e,i,n){this.ecInstance=t,this.api=e,this.unfinished;var i=this._dataProcessorHandlers=i.slice(),n=this._visualHandlers=n.slice();this._allHandlers=i.concat(n),this._stageTaskMap=N()}function Ys(t,e,i,n,r){function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}r=r||{};var o;f(e,function(e){if(!r.visualType||r.visualType===e.visualType){var s=t._stageTaskMap.get(e.uid),l=s.seriesTaskMap,h=s.overallTask;if(h){var u,c=h.agentStubMap;c.each(function(t){a(r,t)&&(t.dirty(),u=!0)}),u&&h.dirty(),S_(h,n);var d=t.getPerformArgs(h,r.block);c.each(function(t){t.perform(d)}),o|=h.perform(d)}else l&&l.each(function(s){a(r,s)&&s.dirty();var l=t.getPerformArgs(s,r.block);l.skip=!e.performRawSeries&&i.isSeriesFiltered(s.context.model),S_(s,n),o|=s.perform(l)})}}),t.unfinished|=o}function js(t,e,i,n,r){function a(i){var a=i.uid,s=o.get(a)||o.set(a,Is({plan:Js,reset:tl,count:il}));s.context={model:i,ecModel:n,api:r,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},nl(t,i,s)}var o=i.seriesTaskMap||(i.seriesTaskMap=N()),s=e.seriesType,l=e.getTargetSeries;e.createOnAllSeries?n.eachRawSeries(a):s?n.eachRawSeriesByType(s,a):l&&l(n,r).each(a);var h=t._pipelineMap;o.each(function(t,e){h.get(e)||(t.dispose(),o.removeKey(e))})}function qs(t,e,i,n,r){function a(e){var i=e.uid,n=s.get(i);n||(n=s.set(i,Is({reset:$s,onDirty:Qs})),o.dirty()),n.context={model:e,overallProgress:u,modifyOutputEnd:c},n.agent=o,n.__block=u,nl(t,e,n)}var o=i.overallTask=i.overallTask||Is({reset:Us});o.context={ecModel:n,api:r,overallReset:e.overallReset,scheduler:t};var s=o.agentStubMap=o.agentStubMap||N(),l=e.seriesType,h=e.getTargetSeries,u=!0,c=e.modifyOutputEnd;l?n.eachRawSeriesByType(l,a):h?h(n,r).each(a):(u=!1,f(n.getSeries(),a));var d=t._pipelineMap;s.each(function(t,e){d.get(e)||(t.dispose(),o.dirty(),s.removeKey(e))})}function Us(t){t.overallReset(t.ecModel,t.api,t.payload)}function $s(t){return t.overallProgress&&Ks}function Ks(){this.agent.dirty(),this.getDownstream().dirty()}function Qs(){this.agent&&this.agent.dirty()}function Js(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function tl(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Nn(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?p(e,function(t,e){return el(e)}):M_}function el(t){return function(e,i){var n=i.data,r=i.resetDefines[t];if(r&&r.dataEach)for(var a=e.start;a0?parseInt(n,10)/100:n?parseFloat(n):0;var r=i.getAttribute("stop-color")||"#000000";e.addColorStop(n,r)}i=i.nextSibling}}function hl(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),s(e.__inheritedStyle,t.__inheritedStyle))}function ul(t){for(var e=z(t).split(E_),i=[],n=0;n0;a-=2){var o=r[a],s=r[a-1];switch(n=n||be(),s){case"translate":o=z(o).split(E_),Te(n,n,[parseFloat(o[0]),parseFloat(o[1]||0)]);break;case"scale":o=z(o).split(E_),Ae(n,n,[parseFloat(o[0]),parseFloat(o[1]||o[0])]);break;case"rotate":o=z(o).split(E_),Ce(n,n,parseFloat(o[0]));break;case"skew":o=z(o).split(E_),console.warn("Skew transform is not supported yet");break;case"matrix":var o=z(o).split(E_);n[0]=parseFloat(o[0]),n[1]=parseFloat(o[1]),n[2]=parseFloat(o[2]),n[3]=parseFloat(o[3]),n[4]=parseFloat(o[4]),n[5]=parseFloat(o[5])}}}e.setLocalTransform(n)}function pl(t){var e=t.getAttribute("style"),i={};if(!e)return i;var n={};W_.lastIndex=0;for(var r;null!=(r=W_.exec(e));)n[r[1]]=r[2];for(var a in N_)N_.hasOwnProperty(a)&&null!=n[a]&&(i[N_[a]]=n[a]);return i}function gl(t,e,i){var n=e/t.width,r=i/t.height,a=Math.min(n,r),o=[a,a],s=[-(t.x+t.width/2)*a+e/2,-(t.y+t.height/2)*a+i/2];return{scale:o,position:s}}function vl(t){return function(e,i,n){e=e&&e.toLowerCase(),bg.prototype[t].call(this,e,i,n)}}function ml(){bg.call(this)}function yl(t,e,i){function r(t,e){return t.__prio-e.__prio}i=i||{},"string"==typeof e&&(e=xw[e]),this.id,this.group,this._dom=t;var a="canvas",o=this._zr=On(t,{renderer:i.renderer||a,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height});this._throttledZrFlush=Gs(y(o.flush,o),17);var e=n(e);e&&Ux(e,!0),this._theme=e,this._chartsViews=[],this._chartsMap={},this._componentsViews=[],this._componentsMap={},this._coordSysMgr=new Ko;var s=this._api=Rl(this);Si(yw,r),Si(gw,r),this._scheduler=new Xs(this,s,gw,yw),bg.call(this,this._ecEventProcessor=new Bl),this._messageCenter=new ml,this._initEvents(),this.resize=y(this.resize,this),this._pendingActions=[],o.animation.on("frame",this._onframe,this),Tl(o,this),E(this)}function xl(t,e,i){var n,r=this._model,a=this._coordSysMgr.getCoordinateSystems();e=qn(r,e);for(var o=0;oe.get("hoverLayerThreshold")&&!tg.node&&i.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)})}function zl(t,e){var i=t.get("blendMode")||null;e.group.traverse(function(t){t.isGroup||t.style.blend!==i&&t.setStyle("blend",i),t.eachPendingDisplayable&&t.eachPendingDisplayable(function(t){t.setStyle("blend",i)})})}function El(t,e){var i=t.get("z"),n=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t.zlevel=n))})}function Rl(t){var e=t._coordSysMgr;return o(new $o(t),{getCoordinateSystems:y(e.getCoordinateSystems,e),getComponentByElement:function(e){for(;e;){var i=e.__ecComponentInfo;if(null!=i)return t._model.getComponent(i.mainType,i.index);e=e.parent}}})}function Bl(){this.eventInfo}function Nl(t){function e(t,e){for(var i=0;i65535?Ow:zw}function vh(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function mh(t,e){f(Ew.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods,f(Rw,function(i){t[i]=n(e[i])}),t._calculationInfo=o(e._calculationInfo)}function yh(t){var e=t._invertedIndicesMap;f(e,function(i,n){var r=t._dimensionInfos[n],a=r.ordinalMeta;if(a){i=e[n]=new Ow(a.categories.length);for(var o=0;o=0?this._indices[t]:-1}function bh(t,e){var i=t._idList[e];return null==i&&(i=xh(t,t._idDimIdx,e)),null==i&&(i=Pw+e),i}function Sh(t){return _(t)||(t=[t]),t}function Mh(t,e){var i=t.dimensions,n=new Bw(p(i,t.getDimensionInfo,t),t.hostModel);mh(n,t);for(var r=n._storage={},a=t._storage,o=0;o=0?(r[s]=Ih(a[s]),n._rawExtent[s]=Th(),n._extent[s]=null):r[s]=a[s])}return n}function Ih(t){for(var e=new Array(t.length),i=0;ip;p++){var g=a[p]=o({},S(a[p])?a[p]:{name:a[p]}),v=g.name,m=c[p]={otherDims:{}};null!=v&&null==h.get(v)&&(m.name=m.displayName=v,h.set(v,p)),null!=g.type&&(m.type=g.type),null!=g.displayName&&(m.displayName=g.displayName)}l.each(function(t,e){if(t=Nn(t).slice(),1===t.length&&t[0]<0)return void l.set(e,!1);var i=l.set(e,[]);f(t,function(t,n){b(t)&&(t=h.get(t)),null!=t&&d>t&&(i[n]=t,r(c[t],e,n))})});var y=0;f(t,function(t){var e,t,i,a;if(b(t))e=t,t={};else{e=t.name;var o=t.ordinalMeta;t.ordinalMeta=null,t=n(t),t.ordinalMeta=o,i=t.dimsDef,a=t.otherDims,t.name=t.coordDim=t.coordDimIndex=t.dimsDef=t.otherDims=null}var h=l.get(e);if(h!==!1){var h=Nn(h);if(!h.length)for(var u=0;u<(i&&i.length||1);u++){for(;yI;I++){var m=c[I]=c[I]||{},T=m.coordDim;null==T&&(m.coordDim=Dh(M,u,w),m.coordDimIndex=0,(!x||0>=_)&&(m.isExtraCoord=!0),_--),null==m.name&&(m.name=Dh(m.coordDim,h)),null==m.type&&Wo(e,I,m.name)&&(m.type="ordinal")}return c}function Ah(t,e,i,n){var r=Math.max(t.dimensionsDetectCount||1,e.length,i.length,n||0);return f(e,function(t){var e=t.dimsDef;e&&(r=Math.max(r,e.length)) +}),r}function Dh(t,e,i){if(i||null!=e.get(t)){for(var n=0;null!=e.get(t+n);)n++;t+=n}return e.set(t,!0),t}function kh(t,e,i){i=i||{};var n,r,a,o,s=i.byIndex,l=i.stackedCoordDimension,h=!(!t||!t.get("stack"));if(f(e,function(t,i){b(t)&&(e[i]=t={name:t}),h&&!t.isExtraCoord&&(s||n||!t.ordinalMeta||(n=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))}),!r||s||n||(s=!0),r){a="__\x00ecstackresult",o="__\x00ecstackedover",n&&(n.createInvertedIndices=!0);var u=r.coordDim,c=r.type,d=0;f(e,function(t){t.coordDim===u&&d++}),e.push({name:a,coordDim:u,coordDimIndex:d,type:c,isExtraCoord:!0,isCalculationCoord:!0}),d++,e.push({name:o,coordDim:o,coordDimIndex:d,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:n&&n.name,isStackedByIndex:s,stackedOverDimension:o,stackResultDimension:a}}function Ph(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function Lh(t,e){return Ph(t,e)?t.getCalculationInfo("stackResultDimension"):e}function Oh(t,e,i){i=i||{},ko.isInstance(t)||(t=ko.seriesDataToSource(t));var n,r=e.get("coordinateSystem"),a=Ko.get(r),o=Ao(e);o&&(n=p(o.coordSysDims,function(t){var e={name:t},i=o.axisMap.get(t);if(i){var n=i.get("type");e.type=fh(n)}return e})),n||(n=a&&(a.getDimensionsInfo?a.getDimensionsInfo():a.dimensions.slice())||["x","y"]);var s,l,h=Vw(t,{coordDimensions:n,generateCoord:i.generateCoord});o&&f(h,function(t,e){var i=t.coordDim,n=o.categoryAxisMap.get(i);n&&(null==s&&(s=e),t.ordinalMeta=n.getOrdinalMeta()),null!=t.otherDims.itemName&&(l=!0)}),l||null==s||(h[s].otherDims.itemName=0);var u=kh(e,h),c=new Bw(h,e);c.setCalculationInfo(u);var d=null!=s&&zh(t)?function(t,e,i,n){return n===s?i:this.defaultDimValueGetter(t,e,i,n)}:null;return c.hasItemOption=!1,c.initData(t,null,d),c}function zh(t){if(t.sourceFormat===Ix){var e=Eh(t.data||[]);return null!=e&&!_(Vn(e))}}function Eh(t){for(var e=0;eo&&(o=r.interval=i),null!=n&&o>n&&(o=r.interval=n);var s=r.intervalPrecision=Wh(o),l=r.niceTickExtent=[Zw(Math.ceil(t[0]/o)*o,s),Zw(Math.floor(t[1]/o)*o,s)];return Hh(l,t),r}function Wh(t){return Ja(t)+2}function Gh(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function Hh(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Gh(t,0,e),Gh(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Zh(t,e,i,n){var r=[];if(!t)return r;var a=1e4;e[0]a)return[];return e[1]>(r.length?r[r.length-1]:i[1])&&r.push(e[1]),r}function Xh(t){return t.get("stack")||jw+t.seriesIndex}function Yh(t){return t.dim+t.index}function jh(t){var e=[],i=t.axis,n="axis0";if("category"===i.type){for(var r=i.getBandWidth(),a=0;ae&&(e=Math.min(e,s),t.width&&(e=Math.min(e,t.width)),s-=e,t.width=e,l--)}),h=(s-a)/(l+(l-1)*o),h=Math.max(h,0);var u,c=0;f(n,function(t){t.width||(t.width=h),u=t,c+=t.width*(1+o)}),u&&(c-=u.width*o);var d=-c/2;f(n,function(t,n){i[e][n]=i[e][n]||{offset:d,width:t.width},d+=t.width*(1+o)})}),i}function Kh(t,e,i){if(t&&e){var n=t[Yh(e)];return null!=n&&null!=i&&(n=n[Xh(i)]),n}}function Qh(t,e){var i=qh(t,e),n=Uh(i),r={};f(i,function(t){var e=t.getData(),i=t.coordinateSystem,a=i.getBaseAxis(),o=Xh(t),s=n[Yh(a)][o],l=s.offset,h=s.width,u=i.getOtherAxis(a),c=t.get("barMinHeight")||0;r[o]=r[o]||[],e.setLayout({offset:l,size:h});for(var d=e.mapDimension(u.dim),f=e.mapDimension(a.dim),p=Ph(e,d),g=u.isHorizontal(),v=eu(a,u,p),m=0,y=e.count();y>m;m++){var x=e.get(d,m),_=e.get(f,m);if(!isNaN(x)){var w=x>=0?"p":"n",b=v;p&&(r[o][_]||(r[o][_]={p:v,n:v}),b=r[o][_][w]);var S,M,I,T;if(g){var C=i.dataToPoint([x,_]);S=b,M=C[1]+l,I=C[0]-v,T=h,Math.abs(I)I?-1:1)*c),p&&(r[o][_][w]+=I)}else{var C=i.dataToPoint([_,x]);S=C[0]+l,M=b,I=h,T=C[1]-v,Math.abs(T)=T?-1:1)*c),p&&(r[o][_][w]+=T)}e.setItemLayout(m,{x:S,y:M,width:I,height:T})}}},this)}function Jh(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function tu(t){return t.pipelineContext&&t.pipelineContext.large}function eu(t,e){var i,n,r=e.getGlobalExtent();r[0]>r[1]?(i=r[1],n=r[0]):(i=r[0],n=r[1]);var a=e.toGlobalCoord(e.dataToCoord(0));return i>a&&(a=i),a>n&&(a=n),a}function iu(t,e){return ub(t,hb(e))}function nu(t,e){var i,n,r,a=t.type,o=e.getMin(),s=e.getMax(),l=null!=o,h=null!=s,u=t.getExtent();"ordinal"===a?i=e.getCategories().length:(n=e.get("boundaryGap"),_(n)||(n=[n||0,n||0]),"boolean"==typeof n[0]&&(n=[0,0]),n[0]=Ua(n[0],1),n[1]=Ua(n[1],1),r=u[1]-u[0]||Math.abs(u[0])),null==o&&(o="ordinal"===a?i?0:0/0:u[0]-n[0]*r),null==s&&(s="ordinal"===a?i?i-1:0/0:u[1]+n[1]*r),"dataMin"===o?o=u[0]:"function"==typeof o&&(o=o({min:u[0],max:u[1]})),"dataMax"===s?s=u[1]:"function"==typeof s&&(s=s({min:u[0],max:u[1]})),(null==o||!isFinite(o))&&(o=0/0),(null==s||!isFinite(s))&&(s=0/0),t.setBlank(C(o)||C(s)||"ordinal"===a&&!t.getOrdinalMeta().categories.length),e.getNeedCrossZero()&&(o>0&&s>0&&!l&&(o=0),0>o&&0>s&&!h&&(s=0));var c=e.ecModel;if(c&&"time"===a){var d,p=qh("bar",c);if(f(p,function(t){d|=t.getBaseAxis()===e.axis}),d){var g=Uh(p),v=ru(o,s,e,g);o=v.min,s=v.max}}return[o,s]}function ru(t,e,i,n){var r=i.axis.getExtent(),a=r[1]-r[0],o=Kh(n,i.axis);if(void 0===o)return{min:t,max:e};var s=1/0;f(o,function(t){s=Math.min(t.offset,s)});var l=-1/0;f(o,function(t){l=Math.max(t.offset+t.width,l)}),s=Math.abs(s),l=Math.abs(l);var h=s+l,u=e-t,c=1-(s+l)/a,d=u/c-u;return e+=d*(l/h),t-=d*(s/h),{min:t,max:e}}function au(t,e){var i=nu(t,e),n=null!=e.getMin(),r=null!=e.getMax(),a=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:a,fixMin:n,fixMax:r,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var s=e.get("interval");null!=s&&t.setInterval&&t.setInterval(s)}function ou(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Hw(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new Yw;default:return(Rh.getClass(e)||Yw).create(t)}}function su(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||0>i&&0>n)}function lu(t){var e=t.getLabelModel().get("formatter"),i="category"===t.type?t.scale.getExtent()[0]:null;return"string"==typeof e?e=function(e){return function(i){return i=t.scale.getLabel(i),e.replace("{value}",null!=i?i:"")}}(e):"function"==typeof e?function(n,r){return null!=i&&(r=n-i),e(hu(t,n),r)}:function(e){return t.scale.getLabel(e)}}function hu(t,e){return"category"===t.type?t.scale.getLabel(e):e}function uu(t){var e=t.model,i=t.scale;if(e.get("axisLabel.show")&&!i.isBlank()){var n,r,a="category"===t.type,o=i.getExtent();a?r=i.count():(n=i.getTicks(),r=n.length);var s,l=t.getLabelModel(),h=lu(t),u=1;r>40&&(u=Math.ceil(r/40));for(var c=0;r>c;c+=u){var d=n?n[c]:o[0]+c,f=h(d),p=l.getTextRect(f),g=cu(p,l.get("rotate")||0);s?s.union(g):s=g}return s}}function cu(t,e){var i=e*Math.PI/180,n=t.plain(),r=n.width,a=n.height,o=r*Math.cos(i)+a*Math.sin(i),s=r*Math.sin(i)+a*Math.cos(i),l=new gi(n.x,n.y,o,s);return l}function du(t,e){if("image"!==this.type){var i=this.style,n=this.shape;n&&"line"===n.symbolType?i.stroke=t:this.__isEmptyBrush?(i.stroke=t,i.fill=e||"#fff"):(i.fill&&(i.fill=t),i.stroke&&(i.stroke=t)),this.dirty(!1)}}function fu(t,e,i,n,r,a,o){var s=0===t.indexOf("empty");s&&(t=t.substr(5,1).toLowerCase()+t.substr(6));var l;return l=0===t.indexOf("image://")?Jr(t.slice(8),new gi(e,i,n,r),o?"center":"cover"):0===t.indexOf("path://")?Qr(t.slice(7),{},new gi(e,i,n,r),o?"center":"cover"):new Mb({shape:{symbolType:t,x:e,y:i,width:n,height:r}}),l.__isEmptyBrush=s,l.setColor=du,l.setColor(a),l}function pu(t){return Oh(t.getSource(),t)}function gu(t,e){var i=e;Wa.isInstance(e)||(i=new Wa(e),c(i,vb));var n=ou(i);return n.setExtent(t[0],t[1]),au(n,i),n}function vu(t){c(t,vb)}function mu(t,e){return Math.abs(t-e)>1^-(1&s),l=l>>1^-(1&l),s+=r,l+=a,r=s,a=l,n.push([s/i,l/i])}return n}function bu(t){return"category"===t.type?Mu(t):Cu(t)}function Su(t,e){return"category"===t.type?Tu(t,e):{ticks:t.scale.getTicks()}}function Mu(t){var e=t.getLabelModel(),i=Iu(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:i.labelCategoryInterval}:i}function Iu(t,e){var i=Au(t,"labels"),n=Ru(e),r=Du(i,n);if(r)return r;var a,o;return w(n)?a=Eu(t,n):(o="auto"===n?Pu(t):n,a=zu(t,o)),ku(i,n,{labels:a,labelCategoryInterval:o})}function Tu(t,e){var i=Au(t,"ticks"),n=Ru(e),r=Du(i,n);if(r)return r;var a,o;if((!e.get("show")||t.scale.isBlank())&&(a=[]),w(n))a=Eu(t,n,!0);else if("auto"===n){var s=Iu(t,t.getLabelModel());o=s.labelCategoryInterval,a=p(s.labels,function(t){return t.tickValue})}else o=n,a=zu(t,o,!0);return ku(i,n,{ticks:a,tickCategoryInterval:o})}function Cu(t){var e=t.scale.getTicks(),i=lu(t);return{labels:p(e,function(e,n){return{formattedLabel:i(e,n),rawLabel:t.scale.getLabel(e),tickValue:e}})}}function Au(t,e){return Db(t)[e]||(Db(t)[e]=[])}function Du(t,e){for(var i=0;i40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],h=t.dataToCoord(l+1)-t.dataToCoord(l),u=Math.abs(h*Math.cos(n)),c=Math.abs(h*Math.sin(n)),d=0,f=0;l<=a[1];l+=s){var p=0,g=0,v=Ei(i(l),e.font,"center","top");p=1.3*v.width,g=1.3*v.height,d=Math.max(d,p,7),f=Math.max(f,g,7)}var m=d/u,y=f/c;isNaN(m)&&(m=1/0),isNaN(y)&&(y=1/0);var x=Math.max(0,Math.floor(Math.min(m,y))),_=Db(t.model),w=_.lastAutoInterval,b=_.lastTickCount;return null!=w&&null!=b&&Math.abs(w-x)<=1&&Math.abs(b-o)<=1&&w>x?x=w:(_.lastTickCount=o,_.lastAutoInterval=x),x}function Ou(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function zu(t,e,i){function n(t){l.push(i?t:{formattedLabel:r(t),rawLabel:a.getLabel(t),tickValue:t})}var r=lu(t),a=t.scale,o=a.getExtent(),s=t.getLabelModel(),l=[],h=Math.max((e||0)+1,1),u=o[0],c=a.count();0!==u&&h>1&&c/h>2&&(u=Math.round(Math.ceil(u/h)*h));var d={min:s.get("showMinLabel"),max:s.get("showMaxLabel")};d.min&&u!==o[0]&&n(o[0]);for(var f=u;f<=o[1];f+=h)n(f);return d.max&&f!==o[1]&&n(o[1]),l}function Eu(t,e,i){var n=t.scale,r=lu(t),a=[];return f(n.getTicks(),function(t){var o=n.getLabel(t);e(t,o)&&a.push(i?t:{formattedLabel:r(t),rawLabel:o,tickValue:t})}),a}function Ru(t){var e=t.get("interval");return null==e?"auto":e}function Bu(t,e){var i=t[1]-t[0],n=e,r=i/n/2;t[0]+=r,t[1]-=r}function Nu(t,e,i,n,r){function a(t,e){return u?t>e:e>t}var o=e.length;if(t.onBand&&!n&&o){var s,l=t.getExtent();if(1===o)e[0].coord=l[0],s=e[1]={coord:l[0]};else{var h=e[1].coord-e[0].coord;f(e,function(t){t.coord-=h/2;var e=e||0;e%2>0&&(t.coord-=h/(2*(e+1)))}),s={coord:e[o-1].coord+h},e.push(s)}var u=l[0]>l[1];a(e[0].coord,l[0])&&(r?e[0].coord=l[0]:e.shift()),r&&a(l[0],e[0].coord)&&e.unshift({coord:l[0]}),a(l[1],s.coord)&&(r?s.coord=l[1]:e.pop()),r&&a(s.coord,l[1])&&e.push({coord:l[1]})}}function Fu(t){return this._axes[t]}function Vu(t){Eb.call(this,t)}function Wu(t,e){return e.type||(e.data?"category":"value")}function Gu(t,e){return t.getCoordSysModel()===e}function Hu(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}function Zu(t,e,i,n){function r(t){return t.dim+"_"+t.index}i.getAxesOnZeroOf=function(){return a?[a]:[]};var a,o=t[e],s=i.model,l=s.get("axisLine.onZero"),h=s.get("axisLine.onZeroAxisIndex");if(l){if(null!=h)Xu(o[h])&&(a=o[h]);else for(var u in o)if(o.hasOwnProperty(u)&&Xu(o[u])&&!n[r(o[u])]){a=o[u];break}a&&(n[r(a)]=!0)}}function Xu(t){return t&&"category"!==t.type&&"time"!==t.type&&su(t)}function Yu(t,e){var i=t.getExtent(),n=i[0]+i[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return n-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return n-t+e}}function ju(t){return p(Zb,function(e){var i=t.getReferringComponents(e)[0];return i})}function qu(t){return"cartesian2d"===t.get("coordinateSystem")}function Uu(t,e){var i=t.mapDimension("defaultedLabel",!0),n=i.length;if(1===n)return Ss(t,e,i[0]);if(n){for(var r=[],a=0;a0?"bottom":"top":r.width>0?"left":"right";l||$u(t.style,d,n,h,a,i,p),xa(t,d)}function ec(t,e){var i=t.get(qb)||0;return Math.min(i,Math.abs(e.width),Math.abs(e.height))}function ic(t,e,i){var n=t.getData(),r=[],a=n.getLayout("valueAxisHorizontal")?1:0;r[1-a]=n.getLayout("valueAxisStart");var o=new Kb({shape:{points:n.getLayout("largePoints")},incremental:!!i,__startPoint:r,__valueIdx:a});e.add(o),nc(o,t,n)}function nc(t,e,i){var n=i.getVisual("borderColor")||i.getVisual("color"),r=e.getModel("itemStyle").getItemStyle(["color","borderColor"]);t.useStyle(r),t.style.fill=null,t.style.stroke=n,t.style.lineWidth=i.getLayout("barWidth")}function rc(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e}function ac(t,e,i,n){var r,a,o=io(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;return no(o-Qb/2)?(a=l?"bottom":"top",r="center"):no(o-1.5*Qb)?(a=l?"top":"bottom",r="center"):(a="middle",r=1.5*Qb>o&&o>Qb/2?l?"left":"right":l?"right":"left"),{rotation:o,textAlign:r,textVerticalAlign:a}}function oc(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function sc(t,e,i){var n=t.get("axisLabel.showMinLabel"),r=t.get("axisLabel.showMaxLabel");e=e||[],i=i||[];var a=e[0],o=e[1],s=e[e.length-1],l=e[e.length-2],h=i[0],u=i[1],c=i[i.length-1],d=i[i.length-2];n===!1?(lc(a),lc(h)):hc(a,o)&&(n?(lc(o),lc(u)):(lc(a),lc(h))),r===!1?(lc(s),lc(c)):hc(l,s)&&(r?(lc(l),lc(d)):(lc(s),lc(c)))}function lc(t){t&&(t.ignore=!0)}function hc(t,e){var i=t&&t.getBoundingRect().clone(),n=e&&e.getBoundingRect().clone();if(i&&n){var r=Se([]);return Ce(r,r,-t.rotation),i.applyTransform(Ie([],r,t.getLocalTransform())),n.applyTransform(Ie([],r,e.getLocalTransform())),i.intersect(n)}}function uc(t){return"middle"===t||"center"===t}function cc(t,e,i){var n=e.axis;if(e.get("axisTick.show")&&!n.scale.isBlank()){for(var r=e.getModel("axisTick"),a=r.getModel("lineStyle"),o=r.get("length"),l=n.getTicksCoords(),h=[],u=[],c=t._transform,d=[],f=0;f=0||t===e}function xc(t){var e=_c(t);if(e){var i=e.axisPointerModel,n=e.axis.scale,r=i.option,a=i.get("status"),o=i.get("value");null!=o&&(o=n.parse(o));var s=bc(i);null==a&&(r.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==o||o>l[1])&&(o=l[1]),o0?i=n[0]:n[1]<0&&(i=n[1]),i}function Vc(t,e,i,n){var r=0/0;t.stacked&&(r=i.get(i.getCalculationInfo("stackedOverDimension"),n)),isNaN(r)&&(r=t.valueStart);var a=t.baseDataOffset,o=[];return o[a]=i.get(t.baseDim,n),o[1-a]=r,e.dataToPoint(o)}function Wc(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})}).update(function(t,e){i.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){i.push({cmd:"-",idx:t})}).execute(),i}function Gc(t){return isNaN(t[0])||isNaN(t[1])}function Hc(t,e,i,n,r,a,o,s,l,h){return"none"!==h&&h?Zc.apply(this,arguments):Xc.apply(this,arguments)}function Zc(t,e,i,n,r,a,o,s,l,h,u){for(var c=0,d=i,f=0;n>f;f++){var p=e[d];if(d>=r||0>d)break;if(Gc(p)){if(u){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]);else if(l>0){var g=e[c],v="y"===h?1:0,m=(p[v]-g[v])*l;_S(bS,g),bS[v]=g[v]+m,_S(SS,p),SS[v]=p[v]-m,t.bezierCurveTo(bS[0],bS[1],SS[0],SS[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Xc(t,e,i,n,r,a,o,s,l,h,u){for(var c=0,d=i,f=0;n>f;f++){var p=e[d];if(d>=r||0>d)break;if(Gc(p)){if(u){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]),_S(bS,p);else if(l>0){var g=d+a,v=e[g];if(u)for(;v&&Gc(e[g]);)g+=a,v=e[g];var m=.5,y=e[c],v=e[g];if(!v||Gc(v))_S(SS,p);else{Gc(v)&&!u&&(v=p),j(wS,v,y);var x,_;if("x"===h||"y"===h){var w="x"===h?0:1;x=Math.abs(p[w]-y[w]),_=Math.abs(p[w]-v[w])}else x=yg(p,y),_=yg(p,v);m=_/(_+x),xS(SS,p,wS,-l*(1-m))}mS(bS,bS,s),yS(bS,bS,o),mS(SS,SS,s),yS(SS,SS,o),t.bezierCurveTo(bS[0],bS[1],SS[0],SS[1],p[0],p[1]),xS(bS,p,wS,l*m)}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function Yc(t,e){var i=[1/0,1/0],n=[-1/0,-1/0];if(e)for(var r=0;rn[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}function jc(t,e){if(t.length===e.length){for(var i=0;ie[0]?1:-1;e[0]+=n*i,e[1]-=n*i}return e}function $c(t,e,i){if(!i.valueDim)return[];for(var n=[],r=0,a=e.count();a>r;r++)n.push(Vc(i,t,e,r));return n}function Kc(t,e,i,n){var r=Uc(t.getAxis("x")),a=Uc(t.getAxis("y")),o=t.getBaseAxis().isHorizontal(),s=Math.min(r[0],r[1]),l=Math.min(a[0],a[1]),h=Math.max(r[0],r[1])-s,u=Math.max(a[0],a[1])-l;if(i)s-=.5,h+=.5,l-=.5,u+=.5;else{var c=n.get("lineStyle.width")||2,d=n.get("clipOverflow")?c/2:Math.max(h,u);o?(l-=d,u+=2*d):(s-=d,h+=2*d)}var f=new Dy({shape:{x:s,y:l,width:h,height:u}});return e&&(f.shape[o?"width":"height"]=0,Oa(f,{shape:{width:h,height:u}},n)),f}function Qc(t,e,i,n){var r=t.getAngleAxis(),a=t.getRadiusAxis(),o=a.getExtent().slice();o[0]>o[1]&&o.reverse();var s=r.getExtent(),l=Math.PI/180;i&&(o[0]-=.5,o[1]+=.5);var h=new Sy({shape:{cx:$a(t.cx,1),cy:$a(t.cy,1),r0:$a(o[0],1),r:$a(o[1],1),startAngle:-s[0]*l,endAngle:-s[1]*l,clockwise:r.inverse}});return e&&(h.shape.endAngle=-s[0]*l,Oa(h,{shape:{endAngle:-s[1]*l}},n)),h}function Jc(t,e,i,n){return"polar"===t.type?Qc(t,e,i,n):Kc(t,e,i,n)}function td(t,e,i){for(var n=e.getBaseAxis(),r="x"===n.dim||"radius"===n.dim?0:1,a=[],o=0;o=0;a--){var o=i[a].dimension,s=t.dimensions[o],l=t.getDimensionInfo(s);if(n=l&&l.coordDim,"x"===n||"y"===n){r=i[a];break}}if(r){var h=e.getAxis(n),u=p(r.stops,function(t){return{coord:h.toGlobalCoord(h.dataToCoord(t.value)),color:t.color}}),c=u.length,d=r.outerColors.slice();c&&u[0].coord>u[c-1].coord&&(u.reverse(),d.reverse());var g=10,v=u[0].coord-g,m=u[c-1].coord+g,y=m-v;if(.001>y)return"transparent";f(u,function(t){t.offset=(t.coord-v)/y}),u.push({offset:c?u[c-1].offset:.5,color:d[1]||"transparent"}),u.unshift({offset:c?u[0].offset:.5,color:d[0]||"transparent"});var x=new Ry(0,0,0,0,u,!0);return x[n]=v,x[n+"2"]=m,x}}}function id(t,e,i){var n=t.get("showAllSymbol"),r="auto"===n;if(!n||r){var a=i.getAxesByScale("ordinal")[0];if(a&&(!r||!nd(a,e))){var o=e.mapDimension(a.dim),s={};return f(a.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(o,t))}}}}function nd(t,e){var i=t.getExtent(),n=Math.abs(i[1]-i[0])/t.scale.count();isNaN(n)&&(n=0);for(var r=e.count(),a=Math.max(1,Math.round(r/5)),o=0;r>o;o+=a)if(1.5*Cc.getSymbolSize(e,o)[t.isHorizontal()?1:0]>n)return!1;return!0}function rd(t,e,i,n){var r=e.getData(),a=this.dataIndex,o=r.getName(a),s=e.get("selectedOffset");n.dispatchAction({type:"pieToggleSelect",from:t,name:o,seriesId:e.id}),r.each(function(t){ad(r.getItemGraphicEl(t),r.getItemLayout(t),e.isSelected(r.getName(t)),s,i)})}function ad(t,e,i,n,r){var a=(e.startAngle+e.endAngle)/2,o=Math.cos(a),s=Math.sin(a),l=i?n:0,h=[o*l,s*l];r?t.animate().when(200,{position:h}).start("bounceOut"):t.attr("position",h)}function od(t,e){function i(){a.ignore=a.hoverIgnore,o.ignore=o.hoverIgnore}function n(){a.ignore=a.normalIgnore,o.ignore=o.normalIgnore}lv.call(this);var r=new Sy({z2:2}),a=new Ay,o=new xy;this.add(r),this.add(a),this.add(o),this.updateData(t,e,!0),this.on("emphasis",i).on("normal",n).on("mouseover",i).on("mouseout",n)}function sd(t,e,i,n,r,a,o){function s(e,i,n){for(var r=e;i>r;r++)if(t[r].y+=n,r>e&&i>r+1&&t[r+1].y>t[r].y+t[r].height)return void l(r,n/2);l(i-1,n/2)}function l(e,i){for(var n=e;n>=0&&(t[n].y-=i,!(n>0&&t[n].y>t[n-1].y+t[n-1].height));n--);}function h(t,e,i,n,r,a){for(var o=a>0?e?Number.MAX_VALUE:0:e?Number.MAX_VALUE:0,s=0,l=t.length;l>s;s++)if("center"!==t[s].position){var h=Math.abs(t[s].y-n),u=t[s].len,c=t[s].len2,d=r+u>h?Math.sqrt((r+u+c)*(r+u+c)-h*h):Math.abs(t[s].x-i);e&&d>=o&&(d=o-10),!e&&o>=d&&(d=o+10),t[s].x=i+d*a,o=d}}t.sort(function(t,e){return t.y-e.y});for(var u,c=0,d=t.length,f=[],p=[],g=0;d>g;g++)u=t[g].y-c,0>u&&s(g,d,-u,r),c=t[g].y+t[g].height;0>o-c&&l(d-1,c-o);for(var g=0;d>g;g++)t[g].y>=i?p.push(t[g]):f.push(t[g]);h(f,!1,e,i,n,r),h(p,!0,e,i,n,r)}function ld(t,e,i,n,r,a){for(var o=[],s=[],l=0;lu;u++)a[u]&&xd(t.childAt(u),e,a[u],n,t,r)}}function wd(t){new uh(t.oldChildren,t.newChildren,bd,bd,t).add(Sd).update(Sd).remove(Md).execute()}function bd(t,e){var i=t&&t.name;return null!=i?i:KS+e}function Sd(t,e){var i=this.context,n=null!=t?i.newChildren[t]:null,r=null!=e?i.oldChildren[e]:null;xd(r,i.dataIndex,n,i.animatableModel,i.group,i.data)}function Md(t){var e=this.context,i=e.oldChildren[t];i&&e.group.remove(i)}function Id(t){return t&&(t.pathData||t.d)}function Td(t){return t&&(t.hasOwnProperty("pathData")||t.hasOwnProperty("d"))}function Cd(t,e){return t&&t.hasOwnProperty(e)}function Ad(t,e,i){var n,r={},a="toggleSelected"===t;return i.eachComponent("legend",function(i){a&&null!=n?i[n?"select":"unSelect"](e.name):(i[t](e.name),n=i.isSelected(e.name));var o=i.getData();f(o,function(t){var e=t.get("name");if("\n"!==e&&""!==e){var n=i.isSelected(e);r[e]=r.hasOwnProperty(e)?r[e]&&n:n}})}),{name:e.name,selected:r}}function Dd(t,e){var i=rx(e.get("padding")),n=e.getItemStyle(["color","opacity"]);n.fill=e.get("backgroundColor");var t=new Dy({shape:{x:t.x-i[3],y:t.y-i[0],width:t.width+i[1]+i[3],height:t.height+i[0]+i[2],r:e.get("borderRadius")},style:n,silent:!0,z2:-1});return t}function kd(t,e){e.dispatchAction({type:"legendToggleSelect",name:t})}function Pd(t,e,i,n){var r=i.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||i.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:n})}function Ld(t,e,i,n){var r=i.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||i.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:n})}function Od(t,e,i){var n=t.getOrient(),r=[1,1];r[n.index]=0,So(e,i,{type:"box",ignoreSize:r})}function zd(t,e,i,n,r){var a=t.axis;if(!a.scale.isBlank()&&a.containData(e)){if(!t.involveSeries)return void i.showPointer(t,e);var s=Ed(e,t),l=s.payloadBatch,h=s.snapToValue;l[0]&&null==r.seriesIndex&&o(r,l[0]),!n&&t.snap&&a.containData(h)&&null!=h&&(e=h),i.showPointer(t,e,l,r),i.showTooltip(t,s,h)}}function Ed(t,e){var i=e.axis,n=i.dim,r=t,a=[],o=Number.MAX_VALUE,s=-1;return cM(e.seriesModels,function(e){var l,h,u=e.getData().mapDimension(n,!0);if(e.getAxisTooltipData){var c=e.getAxisTooltipData(u,t,i);h=c.dataIndices,l=c.nestestValue}else{if(h=e.getData().indicesOfNearest(u[0],t,"category"===i.type?.5:null),!h.length)return;l=e.getData().get(u[0],h[0])}if(null!=l&&isFinite(l)){var d=t-l,f=Math.abs(d);o>=f&&((o>f||d>=0&&0>s)&&(o=f,s=d,r=l,a.length=0),cM(h,function(t){a.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:a,snapToValue:r}}function Rd(t,e,i,n){t[e.key]={value:i,payloadBatch:n}}function Bd(t,e,i,n){var r=i.payloadBatch,a=e.axis,o=a.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,h=Sc(l),u=t.map[h];u||(u=t.map[h]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(u)),u.dataByAxis.push({axisDim:a.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:s.get("label.precision"),formatter:s.get("label.formatter")},seriesDataIndices:r.slice()})}}function Nd(t,e,i){var n=i.axesInfo=[];cM(e,function(e,i){var r=e.axisPointerModel.option,a=t[i];a?(!e.useHandle&&(r.status="show"),r.value=a.value,r.seriesDataIndices=(a.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&n.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})})}function Fd(t,e,i,n){if(Hd(e)||!t.list.length)return void n({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:i.tooltipOption,position:i.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}function Vd(t,e,i){var n=i.getZr(),r="axisPointerLastHighlights",a=fM(n)[r]||{},o=fM(n)[r]={};cM(t,function(t){var e=t.axisPointerModel.option;"show"===e.status&&cM(e.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;o[e]=t})});var s=[],l=[];f(a,function(t,e){!o[e]&&l.push(t)}),f(o,function(t,e){!a[e]&&s.push(t)}),l.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:l}),s.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:s})}function Wd(t,e){for(var i=0;i<(t||[]).length;i++){var n=t[i];if(e.axis.dim===n.axisDim&&e.axis.model.componentIndex===n.axisIndex)return n}}function Gd(t){var e=t.axis.model,i={},n=i.axisDim=t.axis.dim;return i.axisIndex=i[n+"AxisIndex"]=e.componentIndex,i.axisName=i[n+"AxisName"]=e.name,i.axisId=i[n+"AxisId"]=e.id,i}function Hd(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function Zd(t,e,i){if(!tg.node){var n=e.getZr();gM(n).records||(gM(n).records={}),Xd(n,e);var r=gM(n).records[t]||(gM(n).records[t]={});r.handler=i}}function Xd(t,e){function i(i,n){t.on(i,function(i){var r=Ud(e);vM(gM(t).records,function(t){t&&n(t,i,r.dispatchAction)}),Yd(r.pendings,e)})}gM(t).initialized||(gM(t).initialized=!0,i("click",x(qd,"click")),i("mousemove",x(qd,"mousemove")),i("globalout",jd))}function Yd(t,e){var i,n=t.showTip.length,r=t.hideTip.length;n?i=t.showTip[n-1]:r&&(i=t.hideTip[r-1]),i&&(i.dispatchAction=null,e.dispatchAction(i))}function jd(t,e,i){t.handler("leave",null,i)}function qd(t,e,i,n){e.handler(t,i,n)}function Ud(t){var e={showTip:[],hideTip:[]},i=function(n){var r=e[n.type];r?r.push(n):(n.dispatchAction=i,t.dispatchAction(n))};return{dispatchAction:i,pendings:e}}function $d(t,e){if(!tg.node){var i=e.getZr(),n=(gM(i).records||{})[t];n&&(gM(i).records[t]=null)}}function Kd(){}function Qd(t,e,i,n){Jd(yM(i).lastProp,n)||(yM(i).lastProp=n,e?La(i,n,t):(i.stopAnimation(),i.attr(n)))}function Jd(t,e){if(S(t)&&S(e)){var i=!0;return f(e,function(e,n){i=i&&Jd(t[n],e)}),!!i}return t===e}function tf(t,e){t[e.get("label.show")?"show":"hide"]()}function ef(t){return{position:t.position.slice(),rotation:t.rotation||0}}function nf(t,e,i){var n=e.get("z"),r=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=r&&(t.zlevel=r),t.silent=i)})}function rf(t){var e,i=t.get("type"),n=t.getModel(i+"Style");return"line"===i?(e=n.getLineStyle(),e.fill=null):"shadow"===i&&(e=n.getAreaStyle(),e.stroke=null),e}function af(t,e,i,n,r){var a=i.get("value"),o=sf(a,e.axis,e.ecModel,i.get("seriesDataIndices"),{precision:i.get("label.precision"),formatter:i.get("label.formatter")}),s=i.getModel("label"),l=rx(s.get("padding")||0),h=s.getFont(),u=Ei(o,h),c=r.position,d=u.width+l[1]+l[3],f=u.height+l[0]+l[2],p=r.align;"right"===p&&(c[0]-=d),"center"===p&&(c[0]-=d/2);var g=r.verticalAlign;"bottom"===g&&(c[1]-=f),"middle"===g&&(c[1]-=f/2),of(c,d,f,n);var v=s.get("backgroundColor");v&&"auto"!==v||(v=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:d,height:f,r:s.get("borderRadius")},position:c.slice(),style:{text:o,textFont:h,textFill:s.getTextColor(),textPosition:"inside",fill:v,stroke:s.get("borderColor")||"transparent",lineWidth:s.get("borderWidth")||0,shadowBlur:s.get("shadowBlur"),shadowColor:s.get("shadowColor"),shadowOffsetX:s.get("shadowOffsetX"),shadowOffsetY:s.get("shadowOffsetY")},z2:10}}function of(t,e,i,n){var r=n.getWidth(),a=n.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+i,a)-i,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function sf(t,e,i,n,r){t=e.scale.parse(t);var a=e.scale.getLabel(t,{precision:r.precision}),o=r.formatter;if(o){var s={value:hu(e,t),seriesData:[]};f(n,function(t){var e=i.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,r=e&&e.getDataParams(n);r&&s.seriesData.push(r)}),b(o)?a=o.replace("{value}",a):w(o)&&(a=o(s))}return a}function lf(t,e,i){var n=be();return Ce(n,n,i.rotation),Te(n,n,i.position),Ea([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)}function hf(t,e,i,n,r,a){var o=Jb.innerTextLayout(i.rotation,0,i.labelDirection);i.labelMargin=r.get("label.margin"),af(e,n,r,a,{position:lf(n.axis,t,i),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function uf(t,e,i){return i=i||0,{x1:t[i],y1:t[1-i],x2:e[i],y2:e[1-i]}}function cf(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}function df(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}function ff(t){return"x"===t.dim?0:1}function pf(t){var e="cubic-bezier(0.23, 1, 0.32, 1)",i="left "+t+"s "+e+",top "+t+"s "+e;return p(IM,function(t){return t+"transition:"+i}).join(";")}function gf(t){var e=[],i=t.get("fontSize"),n=t.getTextColor();return n&&e.push("color:"+n),e.push("font:"+t.getFont()),i&&e.push("line-height:"+Math.round(3*i/2)+"px"),SM(["decoration","align"],function(i){var n=t.get(i);n&&e.push("text-"+i+":"+n)}),e.join(";")}function vf(t){var e=[],i=t.get("transitionDuration"),n=t.get("backgroundColor"),r=t.getModel("textStyle"),a=t.get("padding");return i&&e.push(pf(i)),n&&(tg.canvasSupported?e.push("background-Color:"+n):(e.push("background-Color:#"+je(n)),e.push("filter:alpha(opacity=70)"))),SM(["width","color","radius"],function(i){var n="border-"+i,r=MM(n),a=t.get(r);null!=a&&e.push(n+":"+a+("color"===i?"":"px"))}),e.push(gf(r)),null!=a&&e.push("padding:"+rx(a).join("px ")+"px"),e.join(";")+";"}function mf(t,e){if(tg.wxa)return null;var i=document.createElement("div"),n=this._zr=e.getZr();this.el=i,this._x=e.getWidth()/2,this._y=e.getHeight()/2,t.appendChild(i),this._container=t,this._show=!1,this._hideTimeout;var r=this;i.onmouseenter=function(){r._enterable&&(clearTimeout(r._hideTimeout),r._show=!0),r._inContent=!0},i.onmousemove=function(e){if(e=e||window.event,!r._enterable){var i=n.handler;pe(t,e,!0),i.dispatch("mousemove",e)}},i.onmouseleave=function(){r._enterable&&r._show&&r.hideLater(r._hideDelay),r._inContent=!1}}function yf(t){this._zr=t.getZr(),this._show=!1,this._hideTimeout}function xf(t){for(var e=t.pop();t.length;){var i=t.pop();i&&(Wa.isInstance(i)&&(i=i.get("tooltip",!0)),"string"==typeof i&&(i={formatter:i}),e=new Wa(i,e,e.ecModel))}return e}function _f(t,e){return t.dispatchAction||y(e.dispatchAction,e)}function wf(t,e,i,n,r,a,o){var s=i.getOuterSize(),l=s.width,h=s.height;return null!=a&&(t+l+a>n?t-=l+a:t+=a),null!=o&&(e+h+o>r?e-=h+o:e+=o),[t,e]}function bf(t,e,i,n,r){var a=i.getOuterSize(),o=a.width,s=a.height;return t=Math.min(t+o,n)-o,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function Sf(t,e,i){var n=i[0],r=i[1],a=5,o=0,s=0,l=e.width,h=e.height;switch(t){case"inside":o=e.x+l/2-n/2,s=e.y+h/2-r/2;break;case"top":o=e.x+l/2-n/2,s=e.y-r-a;break;case"bottom":o=e.x+l/2-n/2,s=e.y+h+a;break;case"left":o=e.x-n-a,s=e.y+h/2-r/2;break;case"right":o=e.x+l+a,s=e.y+h/2-r/2}return[o,s]}function Mf(t){return"center"===t||"middle"===t}function If(t){Fn(t,"label",["show"])}function Tf(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}function Cf(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}function Af(t,e,i,n,r,a){var o=[],s=Ph(e,n),l=s?e.getCalculationInfo("stackResultDimension"):n,h=zf(e,l,t),u=e.indicesOfNearest(l,h)[0];o[r]=e.get(i,u),o[a]=e.get(n,u);var c=Qa(e.get(n,u));return c=Math.min(c,20),c>=0&&(o[a]=+o[a].toFixed(c)),o}function Df(t,e){var i=t.getData(),r=t.coordinateSystem;if(e&&!Cf(e)&&!_(e.coord)&&r){var a=r.dimensions,o=kf(e,i,r,t);if(e=n(e),e.type&&RM[e.type]&&o.baseAxis&&o.valueAxis){var s=zM(a,o.baseAxis.dim),l=zM(a,o.valueAxis.dim);e.coord=RM[e.type](i,o.baseDataDim,o.valueDataDim,s,l),e.value=e.coord[l]}else{for(var h=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],u=0;2>u;u++)RM[h[u]]&&(h[u]=zf(i,i.mapDimension(a[u]),h[u]));e.coord=h}}return e}function kf(t,e,i,n){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=i.getAxis(Pf(n,r.valueDataDim)),r.baseAxis=i.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=n.getBaseAxis(),r.valueAxis=i.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function Pf(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var r=0;rn?t.coord&&t.coord[n]:t.value}function zf(t,e,i){if("average"===i){var n=0,r=0;return t.each(e,function(t){isNaN(t)||(n+=t,r++)}),n/r}return"median"===i?t.getMedian(e):t.getDataExtent(e,!0)["max"===i?1:0]}function Ef(t,e,i){var n=e.coordinateSystem;t.each(function(r){var a,o=t.getItemModel(r),s=Ua(o.get("x"),i.getWidth()),l=Ua(o.get("y"),i.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)a=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(n){var h=t.get(n.dimensions[0],r),u=t.get(n.dimensions[1],r);a=n.dataToPoint([h,u])}}else a=[s,l];isNaN(s)||(a[0]=s),isNaN(l)||(a[1]=l),t.setItemLayout(r,a)})}function Rf(t,e,i){var n;n=t?p(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return s({name:t},i)}):[{name:"value",type:"float"}];var r=new Bw(n,i),a=p(i.get("data"),x(Df,e));return t&&(a=v(a,x(Lf,t))),r.initData(a,null,t?Of:function(t){return t.value}),r}function Bf(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}function Nf(t){return"_"+t+"Type"}function Ff(t,e,i){var n=e.getItemVisual(i,"color"),r=e.getItemVisual(i,t),a=e.getItemVisual(i,t+"Size");if(r&&"none"!==r){_(a)||(a=[a,a]);var o=fu(r,-a[0]/2,-a[1]/2,a[0],a[1],n);return o.name=t,o}}function Vf(t){var e=new VM({name:"line"});return Wf(e.shape,t),e}function Wf(t,e){var i=e[0],n=e[1],r=e[2];t.x1=i[0],t.y1=i[1],t.x2=n[0],t.y2=n[1],t.percent=1,r?(t.cpx1=r[0],t.cpy1=r[1]):(t.cpx1=0/0,t.cpy1=0/0)}function Gf(){var t=this,e=t.childOfName("fromSymbol"),i=t.childOfName("toSymbol"),n=t.childOfName("label");if(e||i||!n.ignore){for(var r=1,a=this.parent;a;)a.scale&&(r/=a.scale[0]),a=a.parent;var o=t.childOfName("line");if(this.__dirty||o.__dirty){var s=o.shape.percent,l=o.pointAt(0),h=o.pointAt(s),u=j([],h,l);if(te(u,u),e){e.attr("position",l);var c=o.tangentAt(0);e.attr("rotation",Math.PI/2-Math.atan2(c[1],c[0])),e.attr("scale",[r*s,r*s])}if(i){i.attr("position",h);var c=o.tangentAt(1);i.attr("rotation",-Math.PI/2-Math.atan2(c[1],c[0])),i.attr("scale",[r*s,r*s])}if(!n.ignore){n.attr("position",h);var d,f,p,g=5*r;if("end"===n.__position)d=[u[0]*g+h[0],u[1]*g+h[1]],f=u[0]>.8?"left":u[0]<-.8?"right":"center",p=u[1]>.8?"top":u[1]<-.8?"bottom":"middle";else if("middle"===n.__position){var v=s/2,c=o.tangentAt(v),m=[c[1],-c[0]],y=o.pointAt(v);m[1]>0&&(m[0]=-m[0],m[1]=-m[1]),d=[y[0]+m[0]*g,y[1]+m[1]*g],f="center",p="bottom";var x=-Math.atan2(c[1],c[0]);h[0].8?"right":u[0]<-.8?"left":"center",p=u[1]>.8?"bottom":u[1]<-.8?"top":"middle";n.attr({style:{textVerticalAlign:n.__verticalAlign||p,textAlign:n.__textAlign||f},position:d,scale:[r,r]})}}}}function Hf(t,e,i){lv.call(this),this._createLine(t,e,i)}function Zf(t){this._ctor=t||Hf,this.group=new lv}function Xf(t,e,i,n){var r=e.getItemLayout(i);if(Uf(r)){var a=new t._ctor(e,i,n);e.setItemGraphicEl(i,a),t.group.add(a)}}function Yf(t,e,i,n,r,a){var o=e.getItemGraphicEl(n);return Uf(i.getItemLayout(r))?(o?o.updateData(i,r,a):o=new t._ctor(i,r,a),i.setItemGraphicEl(r,o),void t.group.add(o)):void t.group.remove(o)}function jf(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),hoverLineStyle:e.getModel("emphasis.lineStyle").getLineStyle(),labelModel:e.getModel("label"),hoverLabelModel:e.getModel("emphasis.label")}}function qf(t){return isNaN(t[0])||isNaN(t[1])}function Uf(t){return!qf(t[0])&&!qf(t[1])}function $f(t){return!isNaN(t)&&!isFinite(t)}function Kf(t,e,i,n){var r=1-t,a=n.dimensions[t];return $f(e[r])&&$f(i[r])&&e[t]===i[t]&&n.getAxis(a).containData(e[t])}function Qf(t,e){if("cartesian2d"===t.type){var i=e[0].coord,n=e[1].coord;if(i&&n&&(Kf(1,i,n,t)||Kf(0,i,n,t)))return!0}return Lf(t,e[0])&&Lf(t,e[1])}function Jf(t,e,i,n,r){var a,o=n.coordinateSystem,s=t.getItemModel(e),l=Ua(s.get("x"),r.getWidth()),h=Ua(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(h)){if(n.getMarkerPosition)a=n.getMarkerPosition(t.getValues(t.dimensions,e));else{var u=o.dimensions,c=t.get(u[0],e),d=t.get(u[1],e);a=o.dataToPoint([c,d])}if("cartesian2d"===o.type){var f=o.getAxis("x"),p=o.getAxis("y"),u=o.dimensions;$f(t.get(u[0],e))?a[0]=f.toGlobalCoord(f.getExtent()[i?0:1]):$f(t.get(u[1],e))&&(a[1]=p.toGlobalCoord(p.getExtent()[i?0:1]))}isNaN(l)||(a[0]=l),isNaN(h)||(a[1]=h)}else a=[l,h];t.setItemLayout(e,a)}function tp(t,e,i){var n;n=t?p(t&&t.dimensions,function(t){var i=e.getData().getDimensionInfo(e.getData().mapDimension(t))||{};return s({name:t},i)}):[{name:"value",type:"float"}];var r=new Bw(n,i),a=new Bw(n,i),o=new Bw([],i),l=p(i.get("data"),x(ZM,e,t,i));t&&(l=v(l,x(Qf,t)));var h=t?Of:function(t){return t.value};return r.initData(p(l,function(t){return t[0]}),null,h),a.initData(p(l,function(t){return t[1]}),null,h),o.initData(p(l,function(t){return t[2]})),o.hasItemOption=!0,{from:r,to:a,line:o}}function ep(t){return!isNaN(t)&&!isFinite(t)}function ip(t,e,i){var n=1-t;return ep(e[n])&&ep(i[n])}function np(t,e){var i=e.coord[0],n=e.coord[1];return"cartesian2d"===t.type&&i&&n&&(ip(1,i,n,t)||ip(0,i,n,t))?!0:Lf(t,{coord:i,x:e.x0,y:e.y0})||Lf(t,{coord:n,x:e.x1,y:e.y1})}function rp(t,e,i,n,r){var a,o=n.coordinateSystem,s=t.getItemModel(e),l=Ua(s.get(i[0]),r.getWidth()),h=Ua(s.get(i[1]),r.getHeight());if(isNaN(l)||isNaN(h)){if(n.getMarkerPosition)a=n.getMarkerPosition(t.getValues(i,e));else{var u=t.get(i[0],e),c=t.get(i[1],e),d=[u,c];o.clampData&&o.clampData(d,d),a=o.dataToPoint(d,!0)}if("cartesian2d"===o.type){var f=o.getAxis("x"),p=o.getAxis("y"),u=t.get(i[0],e),c=t.get(i[1],e);ep(u)?a[0]=f.toGlobalCoord(f.getExtent()["x0"===i[0]?0:1]):ep(c)&&(a[1]=p.toGlobalCoord(p.getExtent()["y0"===i[1]?0:1]))}isNaN(l)||(a[0]=l),isNaN(h)||(a[1]=h)}else a=[l,h];return a}function ap(t,e,i){var n,r,a=["x0","y0","x1","y1"];t?(n=p(t&&t.dimensions,function(t){var i=e.getData(),n=i.getDimensionInfo(i.mapDimension(t))||{};return s({name:t},n)}),r=new Bw(p(a,function(t,e){return{name:t,type:n[e%2].type}}),i)):(n=[{name:"value",type:"float"}],r=new Bw(n,i));var o=p(i.get("data"),x(XM,e,t,i));t&&(o=v(o,x(np,t)));var l=t?function(t,e,i,n){return t.coord[Math.floor(n/2)][n%2]}:function(t){return t.value};return r.initData(o,null,l),r.hasItemOption=!0,r}function op(t){var e=t.type,i={number:"value",time:"time"};if(i[e]&&(t.axisType=i[e],delete t.type),sp(t),lp(t,"controlPosition")){var n=t.controlStyle||(t.controlStyle={});lp(n,"position")||(n.position=t.controlPosition),"none"!==n.position||lp(n,"show")||(n.show=!1,delete n.position),delete t.controlPosition}f(t.data||[],function(t){S(t)&&!_(t)&&(!lp(t,"value")&&lp(t,"name")&&(t.value=t.name),sp(t))})}function sp(t){var e=t.itemStyle||(t.itemStyle={}),i=e.emphasis||(e.emphasis={}),n=t.label||t.label||{},r=n.normal||(n.normal={}),a={normal:1,emphasis:1};f(n,function(t,e){a[e]||lp(r,e)||(r[e]=t)}),i.label&&!lp(n,"emphasis")&&(n.emphasis=i.label,delete i.label)}function lp(t,e){return t.hasOwnProperty(e)}function hp(t,e){return bo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}function up(t,e,i,r){var a=Qr(t.get(e).replace(/^path:\/\//,""),n(r||{}),new gi(i[0],i[1],i[2],i[3]),"center");return a}function cp(t,e,i,n,a,o){var s=e.get("color");if(a)a.setColor(s),i.add(a),o&&o.onUpdate(a);else{var l=t.get("symbol");a=fu(l,-1,-1,2,2,s),a.setStyle("strokeNoScale",!0),i.add(a),o&&o.onCreate(a)}var h=e.getItemStyle(["color","symbol","symbolSize"]);a.setStyle(h),n=r({rectHover:!0,z2:100},n,!0);var u=t.get("symbolSize");u=u instanceof Array?u.slice():[+u,+u],u[0]/=2,u[1]/=2,n.scale=u;var c=t.get("symbolOffset");if(c){var d=n.position=n.position||[0,0];d[0]+=Ua(c[0],u[0]),d[1]+=Ua(c[1],u[1])}var f=t.get("symbolRotate");return n.rotation=(f||0)*Math.PI/180||0,a.attr(n),a.updateTransform(),a}function dp(t,e,i,n,r){if(!t.dragging){var a=n.getModel("checkpointStyle"),o=i.dataToCoord(n.getData().get(["value"],e));r||!a.get("animation",!0)?t.attr({position:[o,0]}):(t.stopAnimation(!0),t.animateTo({position:[o,0]},a.get("animationDuration",!0),a.get("animationEasing",!0)))}}function fp(t){return h(iI,t)>=0}function pp(t,e){t=t.slice();var i=p(t,_o);e=(e||[]).slice();var n=p(e,_o);return function(r,a){f(t,function(t,o){for(var s={name:t,capital:i[o]},l=0;l=0}function r(t,n){var r=!1;return e(function(e){f(i(t,e)||[],function(t){n.records[e.name][t]&&(r=!0)})}),r}function a(t,n){n.nodes.push(t),e(function(e){f(i(t,e)||[],function(t){n.records[e.name][t]=!0})})}return function(i){function o(t){!n(t,s)&&r(t,s)&&(a(t,s),l=!0)}var s={nodes:[],records:{}};if(e(function(t){s.records[t.name]={}}),!i)return s;a(i,s);var l;do l=!1,t(o);while(l);return s}}function vp(t,e,i){var n=[1/0,-1/0];return rI(i,function(t){var i=t.getData();i&&rI(i.mapDimension(e,!0),function(t){var e=i.getApproximateExtent(t);e[0]n[1]&&(n[1]=e[1])})}),n[1]0?0:0/0);var o=i.getMax(!0);return null!=o&&"dataMax"!==o&&"function"!=typeof o?e[1]=o:r&&(e[1]=a>0?a-1:0/0),i.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function yp(t,e){var i=t.getAxisModel(),n=t._percentWindow,r=t._valueWindow;if(n){var a=to(r,[0,500]);a=Math.min(a,20);var o=e||0===n[0]&&100===n[1];i.setRange(o?null:+r[0].toFixed(a),o?null:+r[1].toFixed(a))}}function xp(t){var e=t._minMaxSpan={},i=t._dataZoomModel;rI(["min","max"],function(n){e[n+"Span"]=i.get(n+"Span");var r=i.get(n+"ValueSpan");if(null!=r&&(e[n+"ValueSpan"]=r,r=t.getAxisModel().axis.scale.parse(r),null!=r)){var a=t._dataExtent;e[n+"Span"]=qa(a[0]+r,a,[0,100],!0)}})}function _p(t){var e={};return sI(["start","end","startValue","endValue","throttle"],function(i){t.hasOwnProperty(i)&&(e[i]=t[i])}),e}function wp(t,e){var i=t._rangePropMode,n=t.get("rangeMode");sI([["start","startValue"],["end","endValue"]],function(t,r){var a=null!=e[t[0]],o=null!=e[t[1]];a&&!o?i[r]="percent":!a&&o?i[r]="value":n?i[r]=n[r]:a&&(i[r]="percent")})}function bp(t,e){var i=t[e]-t[1-e];return{span:Math.abs(i),sign:i>0?-1:0>i?1:e?-1:1}}function Sp(t,e){return Math.min(e[1],Math.max(e[0],t))}function Mp(t){var e={x:"y",y:"x",radius:"angle",angle:"radius"};return e[t]}function Ip(t){return"vertical"===t?"ns-resize":"ew-resize"}function Tp(t,e){return!!Cp(t)[e]}function Cp(t){return t[II]||(t[II]={})}function Ap(t){this.pointerChecker,this._zr=t,this._opt={};var e=y,i=e(Dp,this),r=e(kp,this),a=e(Pp,this),o=e(Lp,this),l=e(Op,this);bg.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(e,h){this.disable(),this._opt=s(n(h)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==e&&(e=!0),(e===!0||"move"===e||"pan"===e)&&(t.on("mousedown",i),t.on("mousemove",r),t.on("mouseup",a)),(e===!0||"scale"===e||"zoom"===e)&&(t.on("mousewheel",o),t.on("pinch",l))},this.disable=function(){t.off("mousedown",i),t.off("mousemove",r),t.off("mouseup",a),t.off("mousewheel",o),t.off("pinch",l)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function Dp(t){if(!(me(t)||t.target&&t.target.draggable)){var e=t.offsetX,i=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,i)&&(this._x=e,this._y=i,this._dragging=!0)}}function kp(t){if(!me(t)&&Rp("moveOnMouseMove",t,this._opt)&&this._dragging&&"pinch"!==t.gestureEvent&&!Tp(this._zr,"globalPan")){var e=t.offsetX,i=t.offsetY,n=this._x,r=this._y,a=e-n,o=i-r;this._x=e,this._y=i,this._opt.preventDefaultMouseMove&&Ig(t.event),Ep(this,"pan","moveOnMouseMove",t,{dx:a,dy:o,oldX:n,oldY:r,newX:e,newY:i})}}function Pp(t){me(t)||(this._dragging=!1)}function Lp(t){var e=Rp("zoomOnMouseWheel",t,this._opt),i=Rp("moveOnMouseWheel",t,this._opt),n=t.wheelDelta,r=Math.abs(n),a=t.offsetX,o=t.offsetY;if(0!==n&&(e||i)){if(e){var s=r>3?1.4:r>1?1.2:1.1,l=n>0?s:1/s;zp(this,"zoom","zoomOnMouseWheel",t,{scale:l,originX:a,originY:o})}if(i){var h=Math.abs(n),u=(n>0?1:-1)*(h>3?.4:h>1?.15:.05);zp(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:u,originX:a,originY:o})}}}function Op(t){if(!Tp(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;zp(this,"zoom",null,t,{scale:e,originX:t.pinchX,originY:t.pinchY})}}function zp(t,e,i,n,r){t.pointerChecker&&t.pointerChecker(n,r.originX,r.originY)&&(Ig(n.event),Ep(t,e,i,n,r))}function Ep(t,e,i,n,r){r.isAvailableBehavior=y(Rp,null,i,n),t.trigger(e,r)}function Rp(t,e,i){var n=i[t];return!t||n&&(!b(n)||e.event[n+"Key"])}function Bp(t,e){var i=Vp(t),n=e.dataZoomId,r=e.coordId;f(i,function(t){var i=t.dataZoomInfos;i[n]&&h(e.allCoordIds,r)<0&&(delete i[n],t.count--)}),Gp(i);var a=i[r];a||(a=i[r]={coordId:r,dataZoomInfos:{},count:0},a.controller=Wp(t,a),a.dispatchAction=x(Hp,t)),!a.dataZoomInfos[n]&&a.count++,a.dataZoomInfos[n]=e;var o=Zp(a.dataZoomInfos);a.controller.enable(o.controlType,o.opt),a.controller.setPointerChecker(e.containsPoint),Hs(a,"dispatchAction",e.dataZoomModel.get("throttle",!0),"fixRate")}function Np(t,e){var i=Vp(t);f(i,function(t){t.controller.dispose();var i=t.dataZoomInfos;i[e]&&(delete i[e],t.count--)}),Gp(i)}function Fp(t){return t.type+"\x00_"+t.id}function Vp(t){var e=t.getZr();return e[TI]||(e[TI]={})}function Wp(t,e){var i=new Ap(t.getZr());return f(["pan","zoom","scrollMove"],function(t){i.on(t,function(i){var n=[];f(e.dataZoomInfos,function(r){if(i.isAvailableBehavior(r.dataZoomModel.option)){var a=(r.getRange||{})[t],o=a&&a(e.controller,i);!r.dataZoomModel.get("disabled",!0)&&o&&n.push({dataZoomId:r.dataZoomId,start:o[0],end:o[1]})}}),n.length&&e.dispatchAction(n)})}),i}function Gp(t){f(t,function(e,i){e.count||(e.controller.dispose(),delete t[i])})}function Hp(t,e){t.dispatchAction({type:"dataZoom",batch:e})}function Zp(t){var e,i="type_",n={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return f(t,function(t){var a=t.dataZoomModel,o=a.get("disabled",!0)?!1:a.get("zoomLock",!0)?"move":!0;n[i+o]>n[i+e]&&(e=o),r&=a.get("preventDefaultMouseMove",!0)}),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}function Xp(t){return function(e,i,n,r){var a=this._range,o=a.slice(),s=e.axisModels[0];if(s){var l=t(o,s,e,i,n,r);return cI(l,o,[0,100],"all"),this._range=o,a[0]!==o[0]||a[1]!==o[1]?o:void 0}}}function Yp(t){return PI(t)}function jp(){if(!zI&&EI){zI=!0;var t=EI.styleSheets;t.length<31?EI.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}}function qp(t){return parseInt(t,10)}function Up(t,e){jp(),this.root=t,this.storage=e;var i=document.createElement("div"),n=document.createElement("div");i.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",n.style.cssText="position:absolute;left:0;top:0;",t.appendChild(i),this._vmlRoot=n,this._vmlViewport=i,this.resize();var r=e.delFromStorage,a=e.addToStorage;e.delFromStorage=function(t){r.call(e,t),t&&t.onRemove&&t.onRemove(n)},e.addToStorage=function(t){t.onAdd&&t.onAdd(n),a.call(e,t) +},this._firstPaint=!0}function $p(t){return function(){iv('In IE8.0 VML mode painter not support method "'+t+'"')}}var Kp=2311,Qp=function(){return Kp++},Jp={};Jp="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0,domSupported:!1}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0,domSupported:!1}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0,domSupported:!1}:e(navigator.userAgent);var tg=Jp,eg={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},ig={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},ng=Object.prototype.toString,rg=Array.prototype,ag=rg.forEach,og=rg.filter,sg=rg.slice,lg=rg.map,hg=rg.reduce,ug={},cg=function(){return ug.createCanvas()};ug.createCanvas=function(){return document.createElement("canvas")};var dg,fg="__ec_primitive__";B.prototype={constructor:B,get:function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},set:function(t,e){return this.data[t]=e},each:function(t,e){void 0!==e&&(t=y(t,e));for(var i in this.data)this.data.hasOwnProperty(i)&&t(this.data[i],i)},removeKey:function(t){delete this.data[t]}};var pg=(Object.freeze||Object)({$override:i,clone:n,merge:r,mergeAll:a,extend:o,defaults:s,createCanvas:cg,getContext:l,indexOf:h,inherits:u,mixin:c,isArrayLike:d,each:f,map:p,reduce:g,filter:v,find:m,bind:y,curry:x,isArray:_,isFunction:w,isString:b,isObject:S,isBuiltInObject:M,isTypedArray:I,isDom:T,eqNaN:C,retrieve:A,retrieve2:D,retrieve3:k,slice:P,normalizeCssArray:L,assert:O,trim:z,setAsPrimitive:E,isPrimitive:R,createHashMap:N,concatArray:F,noop:V}),gg="undefined"==typeof Float32Array?Array:Float32Array,vg=q,mg=U,yg=ee,xg=ie,_g=(Object.freeze||Object)({create:W,copy:G,clone:H,set:Z,add:X,scaleAndAdd:Y,sub:j,len:q,length:vg,lenSquare:U,lengthSquare:mg,mul:$,div:K,dot:Q,scale:J,normalize:te,distance:ee,dist:yg,distanceSquare:ie,distSquare:xg,negate:ne,lerp:re,applyTransform:ae,min:oe,max:se});le.prototype={constructor:le,_dragStart:function(t){var e=t.target;e&&e.draggable&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.dispatchToElement(he(e,t),"dragstart",t.event))},_drag:function(t){var e=this._draggingTarget;if(e){var i=t.offsetX,n=t.offsetY,r=i-this._x,a=n-this._y;this._x=i,this._y=n,e.drift(r,a,t),this.dispatchToElement(he(e,t),"drag",t.event);var o=this.findHover(i,n,e).target,s=this._dropTarget;this._dropTarget=o,e!==o&&(s&&o!==s&&this.dispatchToElement(he(s,t),"dragleave",t.event),o&&o!==s&&this.dispatchToElement(he(o,t),"dragenter",t.event))}},_dragEnd:function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.dispatchToElement(he(e,t),"dragend",t.event),this._dropTarget&&this.dispatchToElement(he(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null}};var wg=Array.prototype.slice,bg=function(t){this._$handlers={},this._$eventProcessor=t};bg.prototype={constructor:bg,one:function(t,e,i,n){var r=this._$handlers;if("function"==typeof e&&(n=i,i=e,e=null),!i||!t)return this;e=ue(this,e),r[t]||(r[t]=[]);for(var a=0;ar;r++)i[t][r].h!==e&&n.push(i[t][r]);i[t]=n}i[t]&&0===i[t].length&&delete i[t]}else delete i[t];return this},trigger:function(t){var e=this._$handlers[t],i=this._$eventProcessor;if(e){var n=arguments,r=n.length;r>3&&(n=wg.call(n,1));for(var a=e.length,o=0;a>o;){var s=e[o];if(i&&i.filter&&null!=s.query&&!i.filter(t,s.query))o++;else{switch(r){case 1:s.h.call(s.ctx);break;case 2:s.h.call(s.ctx,n[1]);break;case 3:s.h.call(s.ctx,n[1],n[2]);break;default:s.h.apply(s.ctx,n)}s.one?(e.splice(o,1),a--):o++}}}return i&&i.afterTrigger&&i.afterTrigger(t),this},triggerWithContext:function(t){var e=this._$handlers[t],i=this._$eventProcessor;if(e){var n=arguments,r=n.length;r>4&&(n=wg.call(n,1,n.length-1));for(var a=n[n.length-1],o=e.length,s=0;o>s;){var l=e[s];if(i&&i.filter&&null!=l.query&&!i.filter(t,l.query))s++;else{switch(r){case 1:l.h.call(a);break;case 2:l.h.call(a,n[1]);break;case 3:l.h.call(a,n[1],n[2]);break;default:l.h.apply(a,n)}l.one?(e.splice(s,1),o--):s++}}}return i&&i.afterTrigger&&i.afterTrigger(t),this}};var Sg="undefined"!=typeof window&&!!window.addEventListener,Mg=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ig=Sg?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0},Tg="silent";_e.prototype.dispose=function(){};var Cg=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Ag=function(t,e,i,n){bg.call(this),this.storage=t,this.painter=e,this.painterRoot=n,i=i||new _e,this.proxy=null,this._hovered={},this._lastTouchMoment,this._lastX,this._lastY,le.call(this),this.setHandlerProxy(i)};Ag.prototype={constructor:Ag,setHandlerProxy:function(t){this.proxy&&this.proxy.dispose(),t&&(f(Cg,function(e){t.on&&t.on(e,this[e],this)},this),t.handler=this),this.proxy=t},mousemove:function(t){var e=t.zrX,i=t.zrY,n=this._hovered,r=n.target;r&&!r.__zr&&(n=this.findHover(n.x,n.y),r=n.target);var a=this._hovered=this.findHover(e,i),o=a.target,s=this.proxy;s.setCursor&&s.setCursor(o?o.cursor:"default"),r&&o!==r&&this.dispatchToElement(n,"mouseout",t),this.dispatchToElement(a,"mousemove",t),o&&o!==r&&this.dispatchToElement(a,"mouseover",t)},mouseout:function(t){this.dispatchToElement(this._hovered,"mouseout",t);var e,i=t.toElement||t.relatedTarget;do i=i&&i.parentNode;while(i&&9!=i.nodeType&&!(e=i===this.painterRoot));!e&&this.trigger("globalout",{event:t})},resize:function(){this._hovered={}},dispatch:function(t,e){var i=this[t];i&&i.call(this,e)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},dispatchToElement:function(t,e,i){t=t||{};var n=t.target;if(!n||!n.silent){for(var r="on"+e,a=ye(e,t,i);n&&(n[r]&&(a.cancelBubble=n[r].call(n,a)),n.trigger(e,a),n=n.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(e,a),this.painter&&this.painter.eachOtherLayer(function(t){"function"==typeof t[r]&&t[r].call(t,a),t.trigger&&t.trigger(e,a)}))}},findHover:function(t,e,i){for(var n=this.storage.getDisplayList(),r={x:t,y:e},a=n.length-1;a>=0;a--){var o;if(n[a]!==i&&!n[a].ignore&&(o=we(n[a],t,e))&&(!r.topTarget&&(r.topTarget=n[a]),o!==Tg)){r.target=n[a];break}}return r}},f(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){Ag.prototype[t]=function(e){var i=this.findHover(e.zrX,e.zrY),n=i.target;if("mousedown"===t)this._downEl=n,this._downPoint=[e.zrX,e.zrY],this._upEl=n;else if("mouseup"===t)this._upEl=n;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||yg(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(i,t,e)}}),c(Ag,bg),c(Ag,le);var Dg="undefined"==typeof Float32Array?Array:Float32Array,kg=(Object.freeze||Object)({create:be,identity:Se,copy:Me,mul:Ie,translate:Te,rotate:Ce,scale:Ae,invert:De,clone:ke}),Pg=Se,Lg=5e-5,Og=function(t){t=t||{},t.position||(this.position=[0,0]),null==t.rotation&&(this.rotation=0),t.scale||(this.scale=[1,1]),this.origin=this.origin||null},zg=Og.prototype;zg.transform=null,zg.needLocalTransform=function(){return Pe(this.rotation)||Pe(this.position[0])||Pe(this.position[1])||Pe(this.scale[0]-1)||Pe(this.scale[1]-1)};var Eg=[];zg.updateTransform=function(){var t=this.parent,e=t&&t.transform,i=this.needLocalTransform(),n=this.transform;if(!i&&!e)return void(n&&Pg(n));n=n||be(),i?this.getLocalTransform(n):Pg(n),e&&(i?Ie(n,t.transform,n):Me(n,t.transform)),this.transform=n;var r=this.globalScaleRatio;if(null!=r&&1!==r){this.getGlobalScale(Eg);var a=Eg[0]<0?-1:1,o=Eg[1]<0?-1:1,s=((Eg[0]-a)*r+a)/Eg[0]||0,l=((Eg[1]-o)*r+o)/Eg[1]||0;n[0]*=s,n[1]*=s,n[2]*=l,n[3]*=l}this.invTransform=this.invTransform||be(),De(this.invTransform,n)},zg.getLocalTransform=function(t){return Og.getLocalTransform(this,t)},zg.setTransform=function(t){var e=this.transform,i=t.dpr||1;e?t.setTransform(i*e[0],i*e[1],i*e[2],i*e[3],i*e[4],i*e[5]):t.setTransform(i,0,0,i,0,0)},zg.restoreTransform=function(t){var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var Rg=[],Bg=be();zg.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],i=t[2]*t[2]+t[3]*t[3],n=this.position,r=this.scale;Pe(e-1)&&(e=Math.sqrt(e)),Pe(i-1)&&(i=Math.sqrt(i)),t[0]<0&&(e=-e),t[3]<0&&(i=-i),n[0]=t[4],n[1]=t[5],r[0]=e,r[1]=i,this.rotation=Math.atan2(-t[1]/i,t[0]/e)}},zg.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(Ie(Rg,t.invTransform,e),e=Rg);var i=this.origin;i&&(i[0]||i[1])&&(Bg[4]=i[0],Bg[5]=i[1],Ie(Rg,e,Bg),Rg[4]-=i[0],Rg[5]-=i[1],e=Rg),this.setLocalTransform(e)}},zg.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},zg.transformCoordToLocal=function(t,e){var i=[t,e],n=this.invTransform;return n&&ae(i,i,n),i},zg.transformCoordToGlobal=function(t,e){var i=[t,e],n=this.transform;return n&&ae(i,i,n),i},Og.getLocalTransform=function(t,e){e=e||[],Pg(e);var i=t.origin,n=t.scale||[1,1],r=t.rotation||0,a=t.position||[0,0];return i&&(e[4]-=i[0],e[5]-=i[1]),Ae(e,e,n),r&&Ce(e,e,r),i&&(e[4]+=i[0],e[5]+=i[1]),e[4]+=a[0],e[5]+=a[1],e};var Ng={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)))},elasticOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin(2*(t-e)*Math.PI/n)+1)},elasticInOut:function(t){var e,i=.1,n=.4;return 0===t?0:1===t?1:(!i||1>i?(i=1,e=n/4):e=n*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n):i*Math.pow(2,-10*(t-=1))*Math.sin(2*(t-e)*Math.PI/n)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?.5*t*t*((e+1)*t-e):.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Ng.bounceOut(1-t)},bounceOut:function(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return.5>t?.5*Ng.bounceIn(2*t):.5*Ng.bounceOut(2*t-1)+.5}};Le.prototype={constructor:Le,step:function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),this._paused)return void(this._pausedTime+=e);var i=(t-this._startTime-this._pausedTime)/this._life;if(!(0>i)){i=Math.min(i,1);var n=this.easing,r="string"==typeof n?Ng[n]:n,a="function"==typeof r?r(i):i;return this.fire("frame",a),1==i?this.loop?(this.restart(t),"restart"):(this._needsRemove=!0,"destroy"):null}},restart:function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0,this._needsRemove=!1},fire:function(t,e){t="on"+t,this[t]&&this[t](this._target,e)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var Fg=function(){this.head=null,this.tail=null,this._len=0},Vg=Fg.prototype;Vg.insert=function(t){var e=new Wg(t);return this.insertEntry(e),e},Vg.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},Vg.remove=function(t){var e=t.prev,i=t.next;e?e.next=i:this.head=i,i?i.prev=e:this.tail=e,t.next=t.prev=null,this._len--},Vg.len=function(){return this._len},Vg.clear=function(){this.head=this.tail=null,this._len=0};var Wg=function(t){this.value=t,this.next,this.prev},Gg=function(t){this._list=new Fg,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},Hg=Gg.prototype;Hg.put=function(t,e){var i=this._list,n=this._map,r=null;if(null==n[t]){var a=i.len(),o=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=i.head;i.remove(s),delete n[s.key],r=s.value,this._lastRemovedEntry=s}o?o.value=e:o=new Wg(e),o.key=t,i.insertEntry(o),n[t]=o}return r},Hg.get=function(t){var e=this._map[t],i=this._list;return null!=e?(e!==i.tail&&(i.remove(e),i.insertEntry(e)),e.value):void 0},Hg.clear=function(){this._list.clear(),this._map={}};var Zg={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]},Xg=new Gg(20),Yg=null,jg=qe,qg=Ue,Ug=(Object.freeze||Object)({parse:He,lift:Ye,toHex:je,fastLerp:qe,fastMapToColor:jg,lerp:Ue,mapToColor:qg,modifyHSL:$e,modifyAlpha:Ke,stringify:Qe}),$g=Array.prototype.slice,Kg=function(t,e,i,n){this._tracks={},this._target=t,this._loop=e||!1,this._getter=i||Je,this._setter=n||ti,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};Kg.prototype={when:function(t,e){var i=this._tracks;for(var n in e)if(e.hasOwnProperty(n)){if(!i[n]){i[n]=[];var r=this._getter(this._target,n);if(null==r)continue;0!==t&&i[n].push({time:0,value:li(r)})}i[n].push({time:t,value:e[n]})}return this},during:function(t){return this._onframeList.push(t),this},pause:function(){for(var t=0;ti;i++)t[i].call(this)},start:function(t,e){var i,n=this,r=0,a=function(){r--,r||n._doneCallback()};for(var o in this._tracks)if(this._tracks.hasOwnProperty(o)){var s=ci(this,t,a,this._tracks[o],o,e);s&&(this._clipList.push(s),r++,this.animation&&this.animation.addClip(s),i=s)}if(i){var l=i.onframe;i.onframe=function(t,e){l(t,e);for(var i=0;i1&&(ev=function(){for(var t in arguments)console.log(arguments[t])});var iv=ev,nv=function(){this.animators=[]};nv.prototype={constructor:nv,animate:function(t,e){var i,n=!1,r=this,a=this.__zr;if(t){var o=t.split("."),s=r;n="shape"===o[0];for(var l=0,u=o.length;u>l;l++)s&&(s=s[o[l]]);s&&(i=s)}else i=r;if(!i)return void iv('Property "'+t+'" is not existed in element '+r.id);var c=r.animators,d=new Kg(i,e);return d.during(function(){r.dirty(n)}).done(function(){c.splice(h(c,d),1)}),c.push(d),a&&a.animation.addAnimator(d),d},stopAnimation:function(t){for(var e=this.animators,i=e.length,n=0;i>n;n++)e[n].stop(t);return e.length=0,this},animateTo:function(t,e,i,n,r,a){di(this,t,e,i,n,r,a)},animateFrom:function(t,e,i,n,r,a){di(this,t,e,i,n,r,a,!0)}};var rv=function(t){Og.call(this,t),bg.call(this,t),nv.call(this,t),this.id=t.id||Qp()};rv.prototype={type:"element",name:"",__zr:null,ignore:!1,clipPath:null,isGroup:!1,drift:function(t,e){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(){},attrKV:function(t,e){if("position"===t||"scale"===t||"origin"===t){if(e){var i=this[t];i||(i=this[t]=[]),i[0]=e[0],i[1]=e[1]}}else this[t]=e},hide:function(){this.ignore=!0,this.__zr&&this.__zr.refresh()},show:function(){this.ignore=!1,this.__zr&&this.__zr.refresh()},attr:function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(S(t))for(var i in t)t.hasOwnProperty(i)&&this.attrKV(i,t[i]);return this.dirty(!1),this},setClipPath:function(t){var e=this.__zr;e&&t.addSelfToZr(e),this.clipPath&&this.clipPath!==t&&this.removeClipPath(),this.clipPath=t,t.__zr=e,t.__clipTarget=this,this.dirty(!1)},removeClipPath:function(){var t=this.clipPath;t&&(t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__clipTarget=null,this.clipPath=null,this.dirty(!1))},addSelfToZr:function(t){this.__zr=t;var e=this.animators;if(e)for(var i=0;in||i>s||l>a||r>h)},contain:function(t,e){var i=this;return t>=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new gi(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},gi.create=function(t){return new gi(t.x,t.y,t.width,t.height)};var lv=function(t){t=t||{},rv.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};lv.prototype={constructor:lv,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i=0&&(i.splice(n,0,t),this._doAdd(t))}return this},_doAdd:function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__storage,i=this.__zr;e&&e!==t.__storage&&(e.addToStorage(t),t instanceof lv&&t.addChildrenToStorage(e)),i&&i.refresh()},remove:function(t){var e=this.__zr,i=this.__storage,n=this._children,r=h(n,t);return 0>r?this:(n.splice(r,1),t.parent=null,i&&(i.delFromStorage(t),t instanceof lv&&t.delChildrenFromStorage(i)),e&&e.refresh(),this)},removeAll:function(){var t,e,i=this._children,n=this.__storage;for(e=0;en;n++)this._updateAndAddDisplayable(e[n],null,t);i.length=this._displayListLen,tg.canvasSupported&&Si(i,Mi)},_updateAndAddDisplayable:function(t,e,i){if(!t.ignore||i){t.beforeUpdate(),t.__dirty&&t.update(),t.afterUpdate();var n=t.clipPath;if(n){e=e?e.slice():[];for(var r=n,a=t;r;)r.parent=a,r.updateTransform(),e.push(r),a=r,r=r.clipPath}if(t.isGroup){for(var o=t._children,s=0;se;e++)this.delRoot(t[e]);else{var r=h(this._roots,t);r>=0&&(this.delFromStorage(t),this._roots.splice(r,1),t instanceof lv&&t.delChildrenFromStorage(this))}},addToStorage:function(t){return t&&(t.__storage=this,t.dirty(!1)),this},delFromStorage:function(t){return t&&(t.__storage=null),this},dispose:function(){this._renderList=this._roots=null},displayableSortFunc:Mi};var dv={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1},fv=function(t,e,i){return dv.hasOwnProperty(e)?i*=t.dpr:i},pv=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],gv=function(t){this.extendFrom(t,!1)};gv.prototype={constructor:gv,fill:"#000",stroke:null,opacity:1,fillOpacity:null,strokeOpacity:null,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,font:null,textFont:null,fontStyle:null,fontWeight:null,fontSize:null,fontFamily:null,textTag:null,textFill:"#000",textStroke:null,textWidth:null,textHeight:null,textStrokeWidth:0,textLineHeight:null,textPosition:"inside",textRect:null,textOffset:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowColor:"transparent",textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textBoxShadowColor:"transparent",textBoxShadowBlur:0,textBoxShadowOffsetX:0,textBoxShadowOffsetY:0,transformText:!1,textRotation:0,textOrigin:null,textBackgroundColor:null,textBorderColor:null,textBorderWidth:0,textBorderRadius:0,textPadding:null,rich:null,truncate:null,blend:null,bind:function(t,e,i){for(var n=this,r=i&&i.style,a=!r,o=0;o0},extendFrom:function(t,e){if(t)for(var i in t)!t.hasOwnProperty(i)||e!==!0&&(e===!1?this.hasOwnProperty(i):null==t[i])||(this[i]=t[i])},set:function(t,e){"string"==typeof t?this[t]=e:this.extendFrom(t,!0)},clone:function(){var t=new this.constructor;return t.extendFrom(this,!0),t},getGradient:function(t,e,i){for(var n="radial"===e.type?Ti:Ii,r=n(t,e,i),a=e.colorStops,o=0;o=0&&i.splice(n,1),t.__hoverMir=null},clearHover:function(){for(var t=this._hoverElements,e=0;er;){var a=t[r],o=a.__from;o&&o.__zr?(r++,o.invisible||(a.transform=o.transform,a.invTransform=o.invTransform,a.__clipPaths=o.__clipPaths,this._doPaintEl(a,i,!0,n))):(t.splice(r,1),o.__hoverMir=null,e--)}i.ctx.restore()}},getHoverLayer:function(){return this.getLayer(zv)},_paintList:function(t,e,i){if(this._redrawId===i){e=e||!1,this._updateLayerStatus(t);var n=this._doPaintList(t,e);if(this._needsManuallyCompositing&&this._compositeManually(),!n){var r=this;wv(function(){r._paintList(t,e,i)})}}},_compositeManually:function(){var t=this.getLayer(Ev).ctx,e=this._domRoot.width,i=this._domRoot.height;t.clearRect(0,0,e,i),this.eachBuiltinLayer(function(n){n.virtual&&t.drawImage(n.dom,0,0,e,i)})},_doPaintList:function(t,e){for(var i=[],n=0;n15)break}}a.__drawIndex=v,a.__drawIndex0&&t>n[0]){for(o=0;r-1>o&&!(n[o]t);o++);a=i[n[o]]}if(n.splice(o+1,0,t),i[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?s.insertBefore(e.dom,l.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom)},eachLayer:function(t,e){var i,n,r=this._zlevelList;for(n=0;n0?Rv:0),this._needsManuallyCompositing),o.__builtin__||iv("ZLevel "+s+" has been used by unkown layer "+o.id),o!==r&&(o.__used=!0,o.__startIndex!==i&&(o.__dirty=!0),o.__startIndex=i,o.__drawIndex=o.incremental?-1:i,e(i),r=o),n.__dirty&&(o.__dirty=!0,o.incremental&&o.__drawIndex<0&&(o.__drawIndex=i))}e(i),this.eachBuiltinLayer(function(t){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)})},clear:function(){return this.eachBuiltinLayer(this._clearLayer),this},_clearLayer:function(t){t.clear()},setBackgroundColor:function(t){this._backgroundColor=t},configLayer:function(t,e){if(e){var i=this._layerConfig;i[t]?r(i[t],e,!0):i[t]=e;for(var n=0;n=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),i=0;io;o++){var s=i[o],l=s.step(t,e);l&&(r.push(l),a.push(s))}for(var o=0;n>o;)i[o]._needsRemove?(i[o]=i[n-1],i.pop(),n--):o++;n=r.length;for(var o=0;n>o;o++)a[o].fire(r[o]);this._time=t,this.onframe(e),this.trigger("frame",e),this.stage.update&&this.stage.update()},_startLoop:function(){function t(){e._running&&(wv(t),!e._paused&&e._update())}var e=this;this._running=!0,wv(t)},start:function(){this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop()},stop:function(){this._running=!1},pause:function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},resume:function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},clear:function(){this._clips=[]},isFinished:function(){return!this._clips.length},animate:function(t,e){e=e||{};var i=new Kg(t,e.loop,e.getter,e.setter);return this.addAnimator(i),i}},c(Wv,bg);var Gv=function(){this._track=[]};Gv.prototype={constructor:Gv,recognize:function(t,e,i){return this._doTrack(t,e,i),this._recognize(t)},clear:function(){return this._track.length=0,this},_doTrack:function(t,e,i){var n=t.touches;if(n){for(var r={points:[],touches:[],target:e,event:t},a=0,o=n.length;o>a;a++){var s=n[a],l=de(i,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},_recognize:function(t){for(var e in Hv)if(Hv.hasOwnProperty(e)){var i=Hv[e](this._track,t);if(i)return i}}};var Hv={pinch:function(t,e){var i=t.length;if(i){var n=(t[i-1]||{}).points,r=(t[i-2]||{}).points||n;if(r&&r.length>1&&n&&n.length>1){var a=In(n)/In(r);!isFinite(a)&&(a=1),e.pinchScale=a;var o=Tn(n);return e.pinchX=o[0],e.pinchY=o[1],{type:"pinch",target:t[0].target,event:e}}}}},Zv=300,Xv=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Yv=["touchstart","touchend","touchmove"],jv={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},qv=p(Xv,function(t){var e=t.replace("mouse","pointer");return jv[e]?e:t}),Uv={mousemove:function(t){t=pe(this.dom,t),this.trigger("mousemove",t)},mouseout:function(t){t=pe(this.dom,t);var e=t.toElement||t.relatedTarget;if(e!=this.dom)for(;e&&9!=e.nodeType;){if(e===this.dom)return;e=e.parentNode}this.trigger("mouseout",t)},touchstart:function(t){t=pe(this.dom,t),t.zrByTouch=!0,this._lastTouchMoment=new Date,An(this,t,"start"),Uv.mousemove.call(this,t),Uv.mousedown.call(this,t),Dn(this)},touchmove:function(t){t=pe(this.dom,t),t.zrByTouch=!0,An(this,t,"change"),Uv.mousemove.call(this,t),Dn(this)},touchend:function(t){t=pe(this.dom,t),t.zrByTouch=!0,An(this,t,"end"),Uv.mouseup.call(this,t),+new Date-this._lastTouchMoment=0||n&&h(n,o)<0)){var s=e.getShallow(o);null!=s&&(r[t[a][0]]=s)}}return r}},fm=dm([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),pm={getLineStyle:function(t){var e=fm(this,t),i=this.getLineDash(e.lineWidth);return i&&(e.lineDash=i),e},getLineDash:function(t){null==t&&(t=1);var e=this.get("type"),i=Math.max(t,2),n=4*t;return"solid"===e||null==e?null:"dashed"===e?[n,n]:[i,i]}},gm=dm([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),vm={getAreaStyle:function(t,e){return gm(this,t,e)}},mm=Math.pow,ym=Math.sqrt,xm=1e-8,_m=1e-4,wm=ym(3),bm=1/3,Sm=W(),Mm=W(),Im=W(),Tm=Math.min,Cm=Math.max,Am=Math.sin,Dm=Math.cos,km=2*Math.PI,Pm=W(),Lm=W(),Om=W(),zm=[],Em=[],Rm={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Bm=[],Nm=[],Fm=[],Vm=[],Wm=Math.min,Gm=Math.max,Hm=Math.cos,Zm=Math.sin,Xm=Math.sqrt,Ym=Math.abs,jm="undefined"!=typeof Float32Array,qm=function(t){this._saveData=!t,this._saveData&&(this.data=[]),this._ctx=null};qm.prototype={constructor:qm,_xi:0,_yi:0,_x0:0,_y0:0,_ux:0,_uy:0,_len:0,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(t,e){this._ux=Ym(1/tv/t)||0,this._uy=Ym(1/tv/e)||0},getContext:function(){return this._ctx},beginPath:function(t){return this._ctx=t,t&&t.beginPath(),t&&(this.dpr=t.dpr),this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this},moveTo:function(t,e){return this.addData(Rm.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},lineTo:function(t,e){var i=Ym(t-this._xi)>this._ux||Ym(e-this._yi)>this._uy||this._len<5;return this.addData(Rm.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,r,a){return this.addData(Rm.C,t,e,i,n,r,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,r,a):this._ctx.bezierCurveTo(t,e,i,n,r,a)),this._xi=r,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(Rm.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,r,a){return this.addData(Rm.A,t,e,i,i,n,r-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,r,a),this._xi=Hm(r)*i+t,this._yi=Zm(r)*i+e,this},arcTo:function(t,e,i,n,r){return this._ctx&&this._ctx.arcTo(t,e,i,n,r),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(Rm.R,t,e,i,n),this},closePath:function(){this.addData(Rm.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,i=0;ii;i++)this.data[i]=t[i];this._len=e},appendPath:function(t){t instanceof Array||(t=[t]);for(var e=t.length,i=0,n=this._len,r=0;e>r;r++)i+=t[r].len();jm&&this.data instanceof Float32Array&&(this.data=new Float32Array(n+i));for(var r=0;e>r;r++)for(var a=t[r].data,o=0;oe.length&&(this._expandData(),e=this.data);for(var i=0;ia&&(a=r+a),a%=r,f-=a*u,p-=a*c;u>0&&t>=f||0>u&&f>=t||0==u&&(c>0&&e>=p||0>c&&p>=e);)n=this._dashIdx,i=o[n],f+=u*i,p+=c*i,this._dashIdx=(n+1)%g,u>0&&l>f||0>u&&f>l||c>0&&h>p||0>c&&p>h||s[n%2?"moveTo":"lineTo"](u>=0?Wm(f,t):Gm(f,t),c>=0?Wm(p,e):Gm(p,e));u=f-t,c=p-e,this._dashOffset=-Xm(u*u+c*c)},_dashedBezierTo:function(t,e,i,n,r,a){var o,s,l,h,u,c=this._dashSum,d=this._dashOffset,f=this._lineDash,p=this._ctx,g=this._xi,v=this._yi,m=lr,y=0,x=this._dashIdx,_=f.length,w=0;for(0>d&&(d=c+d),d%=c,o=0;1>o;o+=.1)s=m(g,t,i,r,o+.1)-m(g,t,i,r,o),l=m(v,e,n,a,o+.1)-m(v,e,n,a,o),y+=Xm(s*s+l*l);for(;_>x&&(w+=f[x],!(w>d));x++);for(o=(w-d)/y;1>=o;)h=m(g,t,i,r,o),u=m(v,e,n,a,o),x%2?p.moveTo(h,u):p.lineTo(h,u),o+=f[x]/y,x=(x+1)%_;x%2!==0&&p.lineTo(r,a),s=r-h,l=a-u,this._dashOffset=-Xm(s*s+l*l)},_dashedQuadraticTo:function(t,e,i,n){var r=i,a=n;i=(i+2*t)/3,n=(n+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,i,n,r,a)},toStatic:function(){var t=this.data;t instanceof Array&&(t.length=this._len,jm&&(this.data=new Float32Array(t)))},getBoundingRect:function(){Bm[0]=Bm[1]=Fm[0]=Fm[1]=Number.MAX_VALUE,Nm[0]=Nm[1]=Vm[0]=Vm[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,i=0,n=0,r=0,a=0;ac;){var d=s[c++];switch(1==c&&(n=s[c],r=s[c+1],e=n,i=r),d){case Rm.M:e=n=s[c++],i=r=s[c++],t.moveTo(n,r);break;case Rm.L:a=s[c++],o=s[c++],(Ym(a-n)>l||Ym(o-r)>h||c===u-1)&&(t.lineTo(a,o),n=a,r=o);break;case Rm.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),n=s[c-2],r=s[c-1];break;case Rm.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],r=s[c-1];break;case Rm.A:var f=s[c++],p=s[c++],g=s[c++],v=s[c++],m=s[c++],y=s[c++],x=s[c++],_=s[c++],w=g>v?g:v,b=g>v?1:g/v,S=g>v?v/g:1,M=Math.abs(g-v)>.001,I=m+y;M?(t.translate(f,p),t.rotate(x),t.scale(b,S),t.arc(0,0,w,m,I,1-_),t.scale(1/b,1/S),t.rotate(-x),t.translate(-f,-p)):t.arc(f,p,w,m,I,1-_),1==c&&(e=Hm(m)*g+f,i=Zm(m)*v+p),n=Hm(I)*g+f,r=Zm(I)*v+p;break;case Rm.R:e=n=s[c],i=r=s[c+1],t.rect(s[c++],s[c++],s[c++],s[c++]);break;case Rm.Z:t.closePath(),n=e,r=i}}}},qm.CMD=Rm;var Um=2*Math.PI,$m=2*Math.PI,Km=qm.CMD,Qm=2*Math.PI,Jm=1e-4,ty=[-1,-1,-1],ey=[-1,-1],iy=xv.prototype.getCanvasPattern,ny=Math.abs,ry=new qm(!0);Fr.prototype={constructor:Fr,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(t,e){var i=this.style,n=this.path||ry,r=i.hasStroke(),a=i.hasFill(),o=i.fill,s=i.stroke,l=a&&!!o.colorStops,h=r&&!!s.colorStops,u=a&&!!o.image,c=r&&!!s.image;if(i.bind(t,this,e),this.setTransform(t),this.__dirty){var d;l&&(d=d||this.getBoundingRect(),this._fillGradient=i.getGradient(t,o,d)),h&&(d=d||this.getBoundingRect(),this._strokeGradient=i.getGradient(t,s,d))}l?t.fillStyle=this._fillGradient:u&&(t.fillStyle=iy.call(o,t)),h?t.strokeStyle=this._strokeGradient:c&&(t.strokeStyle=iy.call(s,t));var f=i.lineDash,p=i.lineDashOffset,g=!!t.setLineDash,v=this.getGlobalScale();if(n.setScale(v[0],v[1]),this.__dirtyPath||f&&!g&&r?(n.beginPath(t),f&&!g&&(n.setLineDash(f),n.setLineDashOffset(p)),this.buildPath(n,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(t.beginPath(),this.path.rebuildPath(t)),a)if(null!=i.fillOpacity){var m=t.globalAlpha;t.globalAlpha=i.fillOpacity*i.opacity,n.fill(t),t.globalAlpha=m}else n.fill(t);if(f&&g&&(t.setLineDash(f),t.lineDashOffset=p),r)if(null!=i.strokeOpacity){var m=t.globalAlpha;t.globalAlpha=i.strokeOpacity*i.opacity,n.stroke(t),t.globalAlpha=m}else n.stroke(t);f&&g&&t.setLineDash([]),null!=i.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))},buildPath:function(){},createPathProxy:function(){this.path=new qm},getBoundingRect:function(){var t=this._rect,e=this.style,i=!t;if(i){var n=this.path;n||(n=this.path=new qm),this.__dirtyPath&&(n.beginPath(),this.buildPath(n,this.shape,!1)),t=n.getBoundingRect()}if(this._rect=t,e.hasStroke()){var r=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){r.copy(t);var a=e.lineWidth,o=e.strokeNoScale?this.getLineScale():1;e.hasFill()||(a=Math.max(a,this.strokeContainThreshold||4)),o>1e-10&&(r.width+=a/o,r.height+=a/o,r.x-=a/o/2,r.y-=a/o/2)}return r}return t},contain:function(t,e){var i=this.transformCoordToLocal(t,e),n=this.getBoundingRect(),r=this.style;if(t=i[0],e=i[1],n.contain(t,e)){var a=this.path.data;if(r.hasStroke()){var o=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(r.hasFill()||(o=Math.max(o,this.strokeContainThreshold)),Nr(a,o/s,t,e)))return!0}if(r.hasFill())return Br(a,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=this.__dirtyText=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(t){return this.animate("shape",t)},attrKV:function(t,e){"shape"===t?(this.setShape(e),this.__dirtyPath=!0,this._rect=null):mn.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var i=this.shape;if(i){if(S(t))for(var n in t)t.hasOwnProperty(n)&&(i[n]=t[n]);else i[t]=e;this.dirty(!0)}return this},getLineScale:function(){var t=this.transform;return t&&ny(t[0]-1)>1e-10&&ny(t[3]-1)>1e-10?Math.sqrt(ny(t[0]*t[3]-t[2]*t[1])):1}},Fr.extend=function(t){var e=function(e){Fr.call(this,e),t.style&&this.style.extendFrom(t.style,!1);var i=t.shape;if(i){this.shape=this.shape||{};var n=this.shape;for(var r in i)!n.hasOwnProperty(r)&&i.hasOwnProperty(r)&&(n[r]=i[r])}t.init&&t.init.call(this,e)};u(e,Fr);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},u(Fr,mn);var ay=qm.CMD,oy=[[],[],[]],sy=Math.sqrt,ly=Math.atan2,hy=function(t,e){var i,n,r,a,o,s,l=t.data,h=ay.M,u=ay.C,c=ay.L,d=ay.R,f=ay.A,p=ay.Q;for(r=0,a=0;ro;o++){var s=oy[o];s[0]=l[r++],s[1]=l[r++],ae(s,s,e),l[a++]=s[0],l[a++]=s[1]}}},uy=Math.sqrt,cy=Math.sin,dy=Math.cos,fy=Math.PI,py=function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])},gy=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(py(t)*py(e))},vy=function(t,e){return(t[0]*e[1]=11?function(){var e,i=this.__clipPaths,n=this.style;if(i)for(var r=0;ra;a++)r+=ee(t[a-1],t[a]);var o=r/2;o=i>o?i:o;for(var a=0;o>a;a++){var s,l,h,u=a/(o-1)*(e?i:i-1),c=Math.floor(u),d=u-c,f=t[c%i];e?(s=t[(c-1+i)%i],l=t[(c+1)%i],h=t[(c+2)%i]):(s=t[0===c?c:c-1],l=t[c>i-2?i-1:c+1],h=t[c>i-3?i-1:c+2]);var p=d*d,g=d*p;n.push([Yr(s[0],f[0],l[0],h[0],d,p,g),Yr(s[1],f[1],l[1],h[1],d,p,g)])}return n},Ty=function(t,e,i,n){var r,a,o,s,l=[],h=[],u=[],c=[];if(n){o=[1/0,1/0],s=[-1/0,-1/0];for(var d=0,f=t.length;f>d;d++)oe(o,o,t[d]),se(s,s,t[d]);oe(o,o,n[0]),se(s,s,n[1])}for(var d=0,f=t.length;f>d;d++){var p=t[d];if(i)r=t[d?d-1:f-1],a=t[(d+1)%f];else{if(0===d||d===f-1){l.push(H(t[d]));continue}r=t[d-1],a=t[d+1]}j(h,a,r),J(h,h,e);var g=ee(p,r),v=ee(p,a),m=g+v;0!==m&&(g/=m,v/=m),J(u,h,-g),J(c,h,v);var y=X([],p,u),x=X([],p,c);n&&(se(y,y,o),oe(y,y,s),se(x,x,o),oe(x,x,s)),l.push(y),l.push(x)}return i&&l.push(l.shift()),l},Cy=Fr.extend({type:"polygon",shape:{points:null,smooth:!1,smoothConstraint:null},buildPath:function(t,e){jr(t,e,!0)}}),Ay=Fr.extend({type:"polyline",shape:{points:null,smooth:!1,smoothConstraint:null},style:{stroke:"#000",fill:null},buildPath:function(t,e){jr(t,e,!1)}}),Dy=Fr.extend({type:"rect",shape:{r:0,x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,r=e.width,a=e.height;e.r?Ki(t,e):t.rect(i,n,r,a),t.closePath()}}),ky=Fr.extend({type:"line",shape:{x1:0,y1:0,x2:0,y2:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,r=e.x2,a=e.y2,o=e.percent;0!==o&&(t.moveTo(i,n),1>o&&(r=i*(1-o)+r*o,a=n*(1-o)+a*o),t.lineTo(r,a))},pointAt:function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]}}),Py=[],Ly=Fr.extend({type:"bezier-curve",shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.x1,n=e.y1,r=e.x2,a=e.y2,o=e.cpx1,s=e.cpy1,l=e.cpx2,h=e.cpy2,u=e.percent;0!==u&&(t.moveTo(i,n),null==l||null==h?(1>u&&(yr(i,o,r,u,Py),o=Py[1],r=Py[2],yr(n,s,a,u,Py),s=Py[1],a=Py[2]),t.quadraticCurveTo(o,s,r,a)):(1>u&&(dr(i,o,l,r,u,Py),o=Py[1],l=Py[2],r=Py[3],dr(n,s,h,a,u,Py),s=Py[1],h=Py[2],a=Py[3]),t.bezierCurveTo(o,s,l,h,r,a)))},pointAt:function(t){return qr(this.shape,t,!1)},tangentAt:function(t){var e=qr(this.shape,t,!0);return te(e,e)}}),Oy=Fr.extend({type:"arc",shape:{cx:0,cy:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},style:{stroke:"#000",fill:null},buildPath:function(t,e){var i=e.cx,n=e.cy,r=Math.max(e.r,0),a=e.startAngle,o=e.endAngle,s=e.clockwise,l=Math.cos(a),h=Math.sin(a);t.moveTo(l*r+i,h*r+n),t.arc(i,n,r,a,o,!s)}}),zy=Fr.extend({type:"compound",shape:{paths:null},_updatePathDirty:function(){for(var t=this.__dirtyPath,e=this.shape.paths,i=0;i"'])/g,ox={"&":"&","<":"<",">":">",'"':""","'":"'"},sx=["a","b","c","d","e","f","g"],lx=function(t,e){return"{"+t+(null==e?"":e)+"}"},hx=Wi,ux=Ei,cx=(Object.freeze||Object)({addCommas:co,toCamelCase:fo,normalizeCssArray:rx,encodeHTML:po,formatTpl:go,formatTplSimple:vo,getTooltipMarker:mo,formatTime:xo,capitalFirst:_o,truncateText:hx,getTextRect:ux}),dx=f,fx=["left","right","top","bottom","width","height"],px=[["width","left","right"],["height","top","bottom"]],gx=wo,vx=(x(wo,"vertical"),x(wo,"horizontal"),{getBoxLayoutParams:function(){return{left:this.get("left"),top:this.get("top"),right:this.get("right"),bottom:this.get("bottom"),width:this.get("width"),height:this.get("height")}}}),mx=jn(),yx=Wa.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,n){Wa.call(this,t,e,i,n),this.uid=Za("ec_cpt_model")},init:function(t,e,i){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,n=i?Mo(t):{},a=e.getTheme();r(t,a.get(this.mainType)),r(t,this.getDefaultOption()),i&&So(t,n,i)},mergeOption:function(t){r(this.option,t,!0);var e=this.layoutMode;e&&So(this.option,t,e)},optionUpdated:function(){},getDefaultOption:function(){var t=mx(this);if(!t.defaultOption){for(var e=[],i=this.constructor;i;){var n=i.prototype.defaultOption;n&&e.push(n),i=i.superClass}for(var a={},o=e.length-1;o>=0;o--)a=r(a,e[o],!0);t.defaultOption=a}return t.defaultOption},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});ar(yx,{registerWhenExtend:!0}),Xa(yx),Ya(yx,To),c(yx,vx);var xx="";"undefined"!=typeof navigator&&(xx=navigator.platform||"");var _x={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:xx.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,animation:"auto",animationDuration:1e3,animationDurationUpdate:300,animationEasing:"exponentialOut",animationEasingUpdate:"cubicOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},bx=jn(),Sx={clearColorPalette:function(){bx(this).colorIdx=0,bx(this).colorNameMap={}},getColorFromPalette:function(t,e,i){e=e||this;var n=bx(e),r=n.colorIdx||0,a=n.colorNameMap=n.colorNameMap||{};if(a.hasOwnProperty(t))return a[t];var o=Nn(this.get("color",!0)),s=this.get("colorLayer",!0),l=null!=i&&s?Co(s,i):o;if(l=l||o,l&&l.length){var h=l[r];return t&&(a[t]=h),n.colorIdx=(r+1)%l.length,h}}},Mx={cartesian2d:function(t,e,i,n){var r=t.getReferringComponents("xAxis")[0],a=t.getReferringComponents("yAxis")[0];e.coordSysDims=["x","y"],i.set("x",r),i.set("y",a),Do(r)&&(n.set("x",r),e.firstCategoryDimIndex=0),Do(a)&&(n.set("y",a),e.firstCategoryDimIndex=1)},singleAxis:function(t,e,i,n){var r=t.getReferringComponents("singleAxis")[0];e.coordSysDims=["single"],i.set("single",r),Do(r)&&(n.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,i,n){var r=t.getReferringComponents("polar")[0],a=r.findAxisModel("radiusAxis"),o=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],i.set("radius",a),i.set("angle",o),Do(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),Do(o)&&(n.set("angle",o),e.firstCategoryDimIndex=1)},geo:function(t,e){e.coordSysDims=["lng","lat"]},parallel:function(t,e,i,n){var r=t.ecModel,a=r.getComponent("parallel",t.get("parallelIndex")),o=e.coordSysDims=a.dimensions.slice();f(a.parallelAxisIndex,function(t,a){var s=r.getComponent("parallelAxis",t),l=o[a];i.set(l,s),Do(s)&&null==e.firstCategoryDimIndex&&(n.set(l,s),e.firstCategoryDimIndex=a)})}},Ix="original",Tx="arrayRows",Cx="objectRows",Ax="keyedColumns",Dx="unknown",kx="typedArray",Px="column",Lx="row";ko.seriesDataToSource=function(t){return new ko({data:t,sourceFormat:I(t)?kx:Ix,fromDataset:!1})},ir(ko);var Ox=jn(),zx="\x00_ec_inner",Ex=Wa.extend({init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new Wa(i),this._optionManager=n},setOption:function(t,e){O(!(zx in t),"please use chart.getOption()"),this._optionManager.setOption(t,e),this.resetOption(null)},resetOption:function(t){var e=!1,i=this._optionManager;if(!t||"recreate"===t){var n=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this.mergeOption(n)):Xo.call(this,n),e=!0}if(("timeline"===t||"media"===t)&&this.restoreData(),!t||"recreate"===t||"timeline"===t){var r=i.getTimelineOption(this);r&&(this.mergeOption(r),e=!0)}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this,this._api);a.length&&f(a,function(t){this.mergeOption(t,e=!0)},this)}return e},mergeOption:function(t){function e(e,n){var r=Nn(t[e]),s=Gn(a.get(e),r);Hn(s),f(s,function(t){var i=t.option;S(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=jo(e,i,t.exist))});var l=Yo(a,n);i[e]=[],a.set(e,[]),f(s,function(t,n){var r=t.exist,s=t.option;if(O(S(s)||r,"Empty component definition"),s){var h=yx.getClass(e,t.keyInfo.subType,!0);if(r&&r instanceof h)r.name=t.keyInfo.name,r.mergeOption(s,this),r.optionUpdated(s,!1);else{var u=o({dependentModels:l,componentIndex:n},t.keyInfo);r=new h(s,this,this,u),o(r,u),r.init(s,this,this,u),r.optionUpdated(null,!0)}}else r.mergeOption({},this),r.optionUpdated({},!1);a.get(e)[n]=r,i[e][n]=r.option},this),"series"===e&&qo(this,a.get("series"))}var i=this.option,a=this._componentsMap,s=[];Oo(this),f(t,function(t,e){null!=t&&(yx.hasClass(e)?e&&s.push(e):i[e]=null==i[e]?n(t):r(i[e],t,!0))}),yx.topologicalTravel(s,yx.getAllClassMainTypes(),e,this),this._seriesIndicesMap=N(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var t=n(this.option);return f(t,function(e,i){if(yx.hasClass(i)){for(var e=Nn(e),n=e.length-1;n>=0;n--)Xn(e[n])&&e.splice(n,1);t[i]=e}}),delete t[zx],t},getTheme:function(){return this._theme},getComponent:function(t,e){var i=this._componentsMap.get(t);return i?i[e||0]:void 0},queryComponents:function(t){var e=t.mainType;if(!e)return[];var i=t.index,n=t.id,r=t.name,a=this._componentsMap.get(e);if(!a||!a.length)return[];var o;if(null!=i)_(i)||(i=[i]),o=v(p(i,function(t){return a[t]}),function(t){return!!t});else if(null!=n){var s=_(n);o=v(a,function(t){return s&&h(n,t.id)>=0||!s&&t.id===n})}else if(null!=r){var l=_(r);o=v(a,function(t){return l&&h(r,t.name)>=0||!l&&t.name===r})}else o=a.slice();return Uo(o,t)},findComponents:function(t){function e(t){var e=r+"Index",i=r+"Id",n=r+"Name";return!t||null==t[e]&&null==t[i]&&null==t[n]?null:{mainType:r,index:t[e],id:t[i],name:t[n]}}function i(e){return t.filter?v(e,t.filter):e}var n=t.query,r=t.mainType,a=e(n),o=a?this.queryComponents(a):this._componentsMap.get(r);return i(Uo(o,t))},eachComponent:function(t,e,i){var n=this._componentsMap;if("function"==typeof t)i=e,e=t,n.each(function(t,n){f(t,function(t,r){e.call(i,n,t,r)})});else if(b(t))f(n.get(t),e,i);else if(S(t)){var r=this.findComponents(t);f(r,e,i)}},getSeriesByName:function(t){var e=this._componentsMap.get("series");return v(e,function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.get("series")[t]},getSeriesByType:function(t){var e=this._componentsMap.get("series");return v(e,function(e){return e.subType===t})},getSeries:function(){return this._componentsMap.get("series").slice()},getSeriesCount:function(){return this._componentsMap.get("series").length},eachSeries:function(t,e){f(this._seriesIndices,function(i){var n=this._componentsMap.get("series")[i];t.call(e,n,i)},this)},eachRawSeries:function(t,e){f(this._componentsMap.get("series"),t,e)},eachSeriesByType:function(t,e,i){f(this._seriesIndices,function(n){var r=this._componentsMap.get("series")[n];r.subType===t&&e.call(i,r,n)},this)},eachRawSeriesByType:function(t,e,i){return f(this.getSeriesByType(t),e,i)},isSeriesFiltered:function(t){return null==this._seriesIndicesMap.get(t.componentIndex)},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(t,e){var i=v(this._componentsMap.get("series"),t,e);qo(this,i)},restoreData:function(t){var e=this._componentsMap;qo(this,e.get("series"));var i=[];e.each(function(t,e){i.push(e)}),yx.topologicalTravel(i,yx.getAllClassMainTypes(),function(i){f(e.get(i),function(e){("series"!==i||!Ho(e,t))&&e.restoreData()})})}});c(Ex,Sx);var Rx=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],Bx={};Ko.prototype={constructor:Ko,create:function(t,e){var i=[];f(Bx,function(n){var r=n.create(t,e);i=i.concat(r||[])}),this._coordinateSystems=i},update:function(t,e){f(this._coordinateSystems,function(i){i.update&&i.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},Ko.register=function(t,e){Bx[t]=e},Ko.get=function(t){return Bx[t]};var Nx=f,Fx=n,Vx=p,Wx=r,Gx=/^(min|max)?(.+)$/;Qo.prototype={constructor:Qo,setOption:function(t,e){t&&f(Nn(t.series),function(t){t&&t.data&&I(t.data)&&E(t.data)}),t=Fx(t,!0);var i=this._optionBackup,n=Jo.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(ns(i.baseOption,n.baseOption),n.timelineOptions.length&&(i.timelineOptions=n.timelineOptions),n.mediaList.length&&(i.mediaList=n.mediaList),n.mediaDefault&&(i.mediaDefault=n.mediaDefault)):this._optionBackup=n},mountOption:function(t){var e=this._optionBackup;return this._timelineOptions=Vx(e.timelineOptions,Fx),this._mediaList=Vx(e.mediaList,Fx),this._mediaDefault=Fx(e.mediaDefault),this._currentMediaIndices=[],Fx(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,i=this._timelineOptions;if(i.length){var n=t.getComponent("timeline");n&&(e=Fx(i[n.getCurrentIndex()],!0))}return e},getMediaOption:function(){var t=this._api.getWidth(),e=this._api.getHeight(),i=this._mediaList,n=this._mediaDefault,r=[],a=[];if(!i.length&&!n)return a;for(var o=0,s=i.length;s>o;o++)ts(i[o].query,t,e)&&r.push(o);return!r.length&&n&&(r=[-1]),r.length&&!is(r,this._currentMediaIndices)&&(a=Vx(r,function(t){return Fx(-1===t?n.option:i[t].option)})),this._currentMediaIndices=r,a}};var Hx=f,Zx=S,Xx=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"],Yx=function(t,e){Hx(us(t.series),function(t){Zx(t)&&hs(t)});var i=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&i.push("valueAxis","categoryAxis","logAxis","timeAxis"),Hx(i,function(e){Hx(us(t[e]),function(t){t&&(ss(t,"axisLabel"),ss(t.axisPointer,"label"))})}),Hx(us(t.parallel),function(t){var e=t&&t.parallelAxisDefault;ss(e,"axisLabel"),ss(e&&e.axisPointer,"label")}),Hx(us(t.calendar),function(t){as(t,"itemStyle"),ss(t,"dayLabel"),ss(t,"monthLabel"),ss(t,"yearLabel")}),Hx(us(t.radar),function(t){ss(t,"name")}),Hx(us(t.geo),function(t){Zx(t)&&(ls(t),Hx(us(t.regions),function(t){ls(t)}))}),Hx(us(t.timeline),function(t){ls(t),as(t,"label"),as(t,"itemStyle"),as(t,"controlStyle",!0);var e=t.data;_(e)&&f(e,function(t){S(t)&&(as(t,"label"),as(t,"itemStyle"))})}),Hx(us(t.toolbox),function(t){as(t,"iconStyle"),Hx(t.feature,function(t){as(t,"iconStyle")})}),ss(cs(t.axisPointer),"label"),ss(cs(t.tooltip).axisPointer,"label")},jx=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],qx=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],Ux=function(t,e){Yx(t,e),t.series=Nn(t.series),f(t.series,function(t){if(S(t)){var e=t.type;if(("pie"===e||"gauge"===e)&&null!=t.clockWise&&(t.clockwise=t.clockWise),"gauge"===e){var i=ds(t,"pointer.color");null!=i&&fs(t,"itemStyle.normal.color",i)}ps(t)}}),t.dataRange&&(t.visualMap=t.dataRange),f(qx,function(e){var i=t[e];i&&(_(i)||(i=[i]),f(i,function(t){ps(t)}))})},$x=function(t){var e=N();t.eachSeries(function(t){var i=t.get("stack");if(i){var n=e.get(i)||e.set(i,[]),r=t.getData(),a={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!a.stackedDimension||!a.isStackedByIndex&&!a.stackedByDimension)return;n.length&&r.setCalculationInfo("stackedOnSeries",n[n.length-1].seriesModel),n.push(a)}}),e.each(gs)},Kx=vs.prototype;Kx.pure=!1,Kx.persistent=!0,Kx.getSource=function(){return this._source};var Qx={arrayRows_column:{pure:!0,count:function(){return Math.max(0,this._data.length-this._source.startIndex)},getItem:function(t){return this._data[t+this._source.startIndex]},appendData:xs},arrayRows_row:{pure:!0,count:function(){var t=this._data[0];return t?Math.max(0,t.length-this._source.startIndex):0},getItem:function(t){t+=this._source.startIndex;for(var e=[],i=this._data,n=0;n=1)&&(t=1),t}var i=this._upstream,n=t&&t.skip;if(this._dirty&&i){var r=this.context;r.data=r.outputData=i.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var o=e(this._modBy),s=this._modDataCount||0,l=e(t&&t.modBy),h=t&&t.modDataCount||0;(o!==l||s!==h)&&(a="reset");var u;(this._dirty||"reset"===a)&&(this._dirty=!1,u=As(this,n)),this._modBy=l,this._modDataCount=h;var c=t&&t.step;if(this._dueEnd=i?i._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var d=this._dueIndex,f=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!n&&(u||f>d)){var p=this._progress;if(_(p))for(var g=0;gn?n++:null}function e(){var t=n%o*r+Math.ceil(n/o),e=n>=i?null:a>t?t:n;return n++,e}var i,n,r,a,o,s={reset:function(l,h,u,c){n=l,i=h,r=u,a=c,o=Math.ceil(a/r),s.next=r>1&&a>0?e:t}};return s}();n_.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},n_.unfinished=function(){return this._progress&&this._dueIndex":"",v=p+s.join(p||", ");return{renderMode:n,content:v,style:h}}function a(t){return{renderMode:n,content:po(co(t)),style:h}}var o=this;n=n||"html";var s="html"===n?"
":"\n",l="richText"===n,h={},u=0,c=this.getData(),d=c.mapDimension("defaultedTooltip",!0),p=d.length,v=this.getRawValue(t),m=_(v),y=c.getItemVisual(t,"color");S(y)&&y.colorStops&&(y=(y.colorStops[0]||{}).color),y=y||"transparent";var x=p>1||m&&!p?r(v):a(p?Ss(c,t,d[0]):m?v[0]:v),w=x.content,b=o.seriesIndex+"at"+u,M=mo({color:y,type:"item",renderMode:n,markerId:b});h[b]=y,++u;var I=c.getName(t),T=this.name;Zn(this)||(T=""),T=T?po(T)+(e?": ":s):"";var C="string"==typeof M?M:M.content,A=e?C+T+w:T+C+(I?po(I)+": "+w:w);return{html:A,markers:h}},isAnimationEnabled:function(){if(tg.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,i){var n=this.ecModel,r=Sx.getColorFromPalette.call(this,t,e,i);return r||(r=n.getColorFromPalette(t,e,i)),r},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});c(o_,i_),c(o_,Sx);var s_=function(){this.group=new lv,this.uid=Za("viewComponent")};s_.prototype={constructor:s_,init:function(){},render:function(){},dispose:function(){},filterForExposedEvent:null};var l_=s_.prototype;l_.updateView=l_.updateLayout=l_.updateVisual=function(){},er(s_),ar(s_,{registerWhenExtend:!0});var h_=function(){var t=jn();return function(e){var i=t(e),n=e.pipelineContext,r=i.large,a=i.progressiveRender,o=i.large=n.large,s=i.progressiveRender=n.progressiveRender;return!!(r^o||a^s)&&"reset"}},u_=jn(),c_=h_();Bs.prototype={type:"chart",init:function(){},render:function(){},highlight:function(t,e,i,n){Fs(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){Fs(t.getData(),n,"normal")},remove:function(){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null,filterForExposedEvent:null};var d_=Bs.prototype;d_.updateView=d_.updateLayout=d_.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},er(Bs,["dispose"]),ar(Bs,{registerWhenExtend:!0}),Bs.markUpdateMethod=function(t,e){u_(t).updateMethod=e +};var f_={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},p_="\x00__throttleOriginMethod",g_="\x00__throttleRate",v_="\x00__throttleType",m_={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var i=t.getData(),n=(t.visualColorAccessPath||"itemStyle.color").split("."),r=t.get(n)||t.getColorFromPalette(t.name,null,e.getSeriesCount());if(i.setVisual("color",r),!e.isSeriesFiltered(t)){"function"!=typeof r||r instanceof Ey||i.each(function(e){i.setItemVisual(e,"color",r(t.getDataParams(e)))});var a=function(t,e){var i=t.getItemModel(e),r=i.get(n,!0);null!=r&&t.setItemVisual(e,"color",r)};return{dataEach:i.hasItemOption?a:null}}}},y_={toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}},x_=function(t,e){function i(t,e){if("string"!=typeof t)return t;var i=t;return f(e,function(t,e){i=i.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),i}function n(t){var e=o.get(t);if(null==e){for(var i=t.split("."),n=y_.aria,r=0;rs)){var d=r();l=d?i(n("general.withTitle"),{title:d}):n("general.withoutTitle");var p=[],g=s>1?"series.multiple.prefix":"series.single.prefix";l+=i(n(g),{seriesCount:s}),e.eachSeries(function(t,e){if(c>e){var r,o=t.get("name"),l="series."+(s>1?"multiple":"single")+".";r=n(o?l+"withName":l+"withoutName"),r=i(r,{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:a(t.subType)});var u=t.getData();window.data=u,r+=u.count()>h?i(n("data.partialData"),{displayCnt:h}):n("data.allData");for(var d=[],f=0;ff){var g=u.getName(f),v=Ss(u,f);d.push(i(n(g?"data.withName":"data.withoutName"),{name:g,value:v}))}r+=d.join(n("data.separator.middle"))+n("data.separator.end"),p.push(r)}}),l+=p.join(n("series.multiple.separator.middle"))+n("series.multiple.separator.end"),t.setAttribute("aria-label",l)}}},__=Math.PI,w_=function(t,e){e=e||{},s(e,{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var i=new Dy({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4}),n=new Oy({shape:{startAngle:-__/2,endAngle:-__/2+.1,r:10},style:{stroke:e.color,lineCap:"round",lineWidth:5},zlevel:e.zlevel,z:10001}),r=new Dy({style:{fill:"none",text:e.text,textPosition:"right",textDistance:10,textFill:e.textColor},zlevel:e.zlevel,z:10001});n.animateShape(!0).when(1e3,{endAngle:3*__/2}).start("circularInOut"),n.animateShape(!0).when(1e3,{startAngle:3*__/2}).delay(300).start("circularInOut");var a=new lv;return a.add(n),a.add(r),a.add(i),a.resize=function(){var e=t.getWidth()/2,a=t.getHeight()/2;n.setShape({cx:e,cy:a});var o=n.shape.r;r.setShape({x:e-o,y:a-o,width:2*o,height:2*o}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},a.resize(),a},b_=Xs.prototype;b_.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each(function(t){var e=t.overallTask;e&&e.dirty()})},b_.getPerformArgs=function(t,e){if(t.__pipeline){var i=this._pipelineMap.get(t.__pipeline.id),n=i.context,r=!e&&i.progressiveEnabled&&(!n||n.progressiveRender)&&t.__idxInPipeline>i.blockIndex,a=r?i.step:null,o=n&&n.modDataCount,s=null!=o?Math.ceil(o/a):null;return{step:a,modBy:s,modDataCount:o}}},b_.getPipeline=function(t){return this._pipelineMap.get(t)},b_.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData(),r=n.count(),a=i.progressiveEnabled&&e.incrementalPrepareRender&&r>=i.threshold,o=t.get("large")&&r>=t.get("largeThreshold"),s="mod"===t.get("progressiveChunkMode")?r:null;t.pipelineContext=i.context={progressiveRender:a,modDataCount:s,large:o}},b_.restorePipelines=function(t){var e=this,i=e._pipelineMap=N();t.eachSeries(function(t){var n=t.getProgressive(),r=t.uid;i.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:n&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(n||700),count:0}),nl(e,t,t.dataTask)})},b_.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),i=this.api;f(this._allHandlers,function(n){var r=t.get(n.uid)||t.set(n.uid,[]);n.reset&&js(this,n,r,e,i),n.overallReset&&qs(this,n,r,e,i)},this)},b_.prepareView=function(t,e,i,n){var r=t.renderTask,a=r.context;a.model=e,a.ecModel=i,a.api=n,r.__block=!t.incrementalPrepareRender,nl(this,e,r)},b_.performDataProcessorTasks=function(t,e){Ys(this,this._dataProcessorHandlers,t,e,{block:!0})},b_.performVisualTasks=function(t,e,i){Ys(this,this._visualHandlers,t,e,i)},b_.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},b_.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var S_=b_.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},M_=el(0);Xs.wrapStageHandler=function(t,e){return w(t)&&(t={overallReset:t,seriesType:rl(t)}),t.uid=Za("stageHandler"),e&&(t.visualType=e),t};var I_,T_={},C_={};al(T_,Ex),al(C_,$o),T_.eachSeriesByType=T_.eachRawSeriesByType=function(t){I_=t},T_.eachComponent=function(t){"series"===t.mainType&&t.subType&&(I_=t.subType)};var A_=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],D_={color:A_,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],A_]},k_="#eee",P_=function(){return{axisLine:{lineStyle:{color:k_}},axisTick:{lineStyle:{color:k_}},axisLabel:{textStyle:{color:k_}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:k_}}}},L_=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],O_={color:L_,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:k_},crossStyle:{color:k_}}},legend:{textStyle:{color:k_}},textStyle:{color:k_},title:{textStyle:{color:k_}},toolbox:{iconStyle:{normal:{borderColor:k_}}},dataZoom:{textStyle:{color:k_}},visualMap:{textStyle:{color:k_}},timeline:{lineStyle:{color:k_},itemStyle:{normal:{color:L_[1]}},label:{normal:{textStyle:{color:k_}}},controlStyle:{normal:{color:k_,borderColor:k_}}},timeAxis:P_(),logAxis:P_(),valueAxis:P_(),categoryAxis:P_(),line:{symbol:"circle"},graph:{color:L_},gauge:{title:{textStyle:{color:k_}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};O_.categoryAxis.splitLine.show=!1,yx.extend({type:"dataset",defaultOption:{seriesLayoutBy:Px,sourceHeader:null,dimensions:null,source:null},optionUpdated:function(){Po(this)}}),s_.extend({type:"dataset"});var z_=Fr.extend({type:"ellipse",shape:{cx:0,cy:0,rx:0,ry:0},buildPath:function(t,e){var i=.5522848,n=e.cx,r=e.cy,a=e.rx,o=e.ry,s=a*i,l=o*i;t.moveTo(n-a,r),t.bezierCurveTo(n-a,r-l,n-s,r-o,n,r-o),t.bezierCurveTo(n+s,r-o,n+a,r-l,n+a,r),t.bezierCurveTo(n+a,r+l,n+s,r+o,n,r+o),t.bezierCurveTo(n-s,r+o,n-a,r+l,n-a,r),t.closePath()}}),E_=/[\s,]+/;sl.prototype.parse=function(t,e){e=e||{};var i=ol(t);if(!i)throw new Error("Illegal svg");var n=new lv;this._root=n;var r=i.getAttribute("viewBox")||"",a=parseFloat(i.getAttribute("width")||e.width),o=parseFloat(i.getAttribute("height")||e.height);isNaN(a)&&(a=null),isNaN(o)&&(o=null),cl(i,n,null,!0);for(var s=i.firstChild;s;)this._parseNode(s,n),s=s.nextSibling;var l,h;if(r){var u=z(r).split(E_);u.length>=4&&(l={x:parseFloat(u[0]||0),y:parseFloat(u[1]||0),width:parseFloat(u[2]),height:parseFloat(u[3])})}if(l&&null!=a&&null!=o&&(h=gl(l,a,o),!e.ignoreViewBox)){var c=n;n=new lv,n.add(c),c.scale=h.scale.slice(),c.position=h.position.slice()}return e.ignoreRootClip||null==a||null==o||n.setClipPath(new Dy({shape:{x:0,y:0,width:a,height:o}})),{root:n,width:a,height:o,viewBoxRect:l,viewBoxTransform:h}},sl.prototype._parseNode=function(t,e){var i=t.nodeName.toLowerCase();"defs"===i?this._isDefine=!0:"text"===i&&(this._isText=!0);var n;if(this._isDefine){var r=B_[i];if(r){var a=r.call(this,t),o=t.getAttribute("id");o&&(this._defs[o]=a)}}else{var r=R_[i];r&&(n=r.call(this,t,e),e.add(n))}for(var s=t.firstChild;s;)1===s.nodeType&&this._parseNode(s,n),3===s.nodeType&&this._isText&&this._parseText(s,n),s=s.nextSibling;"defs"===i?this._isDefine=!1:"text"===i&&(this._isText=!1)},sl.prototype._parseText=function(t,e){if(1===t.nodeType){var i=t.getAttribute("dx")||0,n=t.getAttribute("dy")||0;this._textX+=parseFloat(i),this._textY+=parseFloat(n)}var r=new xy({style:{text:t.textContent,transformText:!0},position:[this._textX||0,this._textY||0]});hl(e,r),cl(t,r,this._defs);var a=r.style.fontSize;a&&9>a&&(r.style.fontSize=9,r.scale=r.scale||[1,1],r.scale[0]*=a/9,r.scale[1]*=a/9);var o=r.getBoundingRect();return this._textX+=o.width,e.add(r),r};var R_={g:function(t,e){var i=new lv;return hl(e,i),cl(t,i,this._defs),i},rect:function(t,e){var i=new Dy;return hl(e,i),cl(t,i,this._defs),i.setShape({x:parseFloat(t.getAttribute("x")||0),y:parseFloat(t.getAttribute("y")||0),width:parseFloat(t.getAttribute("width")||0),height:parseFloat(t.getAttribute("height")||0)}),i},circle:function(t,e){var i=new _y;return hl(e,i),cl(t,i,this._defs),i.setShape({cx:parseFloat(t.getAttribute("cx")||0),cy:parseFloat(t.getAttribute("cy")||0),r:parseFloat(t.getAttribute("r")||0)}),i},line:function(t,e){var i=new ky;return hl(e,i),cl(t,i,this._defs),i.setShape({x1:parseFloat(t.getAttribute("x1")||0),y1:parseFloat(t.getAttribute("y1")||0),x2:parseFloat(t.getAttribute("x2")||0),y2:parseFloat(t.getAttribute("y2")||0)}),i},ellipse:function(t,e){var i=new z_;return hl(e,i),cl(t,i,this._defs),i.setShape({cx:parseFloat(t.getAttribute("cx")||0),cy:parseFloat(t.getAttribute("cy")||0),rx:parseFloat(t.getAttribute("rx")||0),ry:parseFloat(t.getAttribute("ry")||0)}),i},polygon:function(t,e){var i=t.getAttribute("points");i&&(i=ul(i));var n=new Cy({shape:{points:i||[]}});return hl(e,n),cl(t,n,this._defs),n},polyline:function(t,e){var i=new Fr;hl(e,i),cl(t,i,this._defs);var n=t.getAttribute("points");n&&(n=ul(n));var r=new Ay({shape:{points:n||[]}});return r},image:function(t,e){var i=new yn;return hl(e,i),cl(t,i,this._defs),i.setStyle({image:t.getAttribute("xlink:href"),x:t.getAttribute("x"),y:t.getAttribute("y"),width:t.getAttribute("width"),height:t.getAttribute("height")}),i},text:function(t,e){var i=t.getAttribute("x")||0,n=t.getAttribute("y")||0,r=t.getAttribute("dx")||0,a=t.getAttribute("dy")||0;this._textX=parseFloat(i)+parseFloat(r),this._textY=parseFloat(n)+parseFloat(a);var o=new lv;return hl(e,o),cl(t,o,this._defs),o},tspan:function(t,e){var i=t.getAttribute("x"),n=t.getAttribute("y");null!=i&&(this._textX=parseFloat(i)),null!=n&&(this._textY=parseFloat(n));var r=t.getAttribute("dx")||0,a=t.getAttribute("dy")||0,o=new lv;return hl(e,o),cl(t,o,this._defs),this._textX+=r,this._textY+=a,o},path:function(t,e){var i=t.getAttribute("d")||"",n=Hr(i);return hl(e,n),cl(t,n,this._defs),n}},B_={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||0,10),i=parseInt(t.getAttribute("y1")||0,10),n=parseInt(t.getAttribute("x2")||10,10),r=parseInt(t.getAttribute("y2")||0,10),a=new Ry(e,i,n,r);return ll(t,a),a},radialgradient:function(){}},N_={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-align":"textAlign","alignment-baseline":"textBaseline"},F_=/url\(\s*#(.*?)\)/,V_=/(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g,W_=/([^\s:;]+)\s*:\s*([^:;]+)/g,G_=N(),H_={registerMap:function(t,e,i){var n;return _(e)?n=e:e.svg?n=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}]:(e.geoJson&&!e.features&&(i=e.specialAreas,e=e.geoJson),n=[{type:"geoJSON",source:e,specialAreas:i}]),f(n,function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var i=Z_[e];i(t)}),G_.set(t,n)},retrieveMap:function(t){return G_.get(t)}},Z_={geoJSON:function(t){var e=t.source;t.geoJSON=b(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=ol(t.source)}},X_=O,Y_=f,j_=w,q_=S,U_=yx.parseClassType,$_="4.2.0",K_={zrender:"4.0.5"},Q_=1,J_=1e3,tw=5e3,ew=1e3,iw=2e3,nw=3e3,rw=4e3,aw=5e3,ow={PROCESSOR:{FILTER:J_,STATISTIC:tw},VISUAL:{LAYOUT:ew,GLOBAL:iw,CHART:nw,COMPONENT:rw,BRUSH:aw}},sw="__flagInMainProcess",lw="__optionUpdated",hw=/^[a-zA-Z0-9_]+$/;ml.prototype.on=vl("on"),ml.prototype.off=vl("off"),ml.prototype.one=vl("one"),c(ml,bg);var uw=yl.prototype;uw._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[lw]){var e=this[lw].silent;this[sw]=!0,_l(this),cw.update.call(this),this[sw]=!1,this[lw]=!1,Ml.call(this,e),Il.call(this,e)}else if(t.unfinished){var i=Q_,n=this._model,r=this._api;t.unfinished=!1;do{var a=+new Date;t.performSeriesTasks(n),t.performDataProcessorTasks(n),bl(this,n),t.performVisualTasks(n),Pl(this,this._model,r,"remain"),i-=+new Date-a}while(i>0&&t.unfinished);t.unfinished||this._zr.flush()}}},uw.getDom=function(){return this._dom},uw.getZr=function(){return this._zr},uw.setOption=function(t,e,i){var n;if(q_(e)&&(i=e.lazyUpdate,n=e.silent,e=e.notMerge),this[sw]=!0,!this._model||e){var r=new Qo(this._api),a=this._theme,o=this._model=new Ex(null,null,a,r);o.scheduler=this._scheduler,o.init(null,null,a,r)}this._model.setOption(t,vw),i?(this[lw]={silent:n},this[sw]=!1):(_l(this),cw.update.call(this),this._zr.flush(),this[lw]=!1,this[sw]=!1,Ml.call(this,n),Il.call(this,n))},uw.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},uw.getModel=function(){return this._model},uw.getOption=function(){return this._model&&this._model.getOption()},uw.getWidth=function(){return this._zr.getWidth()},uw.getHeight=function(){return this._zr.getHeight()},uw.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},uw.getRenderedCanvas=function(t){if(tg.canvasSupported){t=t||{},t.pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor");var e=this._zr;return e.painter.getRenderedCanvas(t)}},uw.getSvgDataUrl=function(){if(tg.svgSupported){var t=this._zr,e=t.storage.getDisplayList();return f(e,function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},uw.getDataURL=function(t){t=t||{};var e=t.excludeComponents,i=this._model,n=[],r=this;Y_(e,function(t){i.eachComponent({mainType:t},function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(n.push(e),e.group.ignore=!0)})});var a="svg"===this._zr.painter.getType()?this.getSvgDataUrl():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Y_(n,function(t){t.group.ignore=!1}),a},uw.getConnectedDataURL=function(t){if(tg.canvasSupported){var e=this.group,i=Math.min,r=Math.max,a=1/0;if(bw[e]){var o=a,s=a,l=-a,h=-a,u=[],c=t&&t.pixelRatio||1;f(ww,function(a){if(a.group===e){var c=a.getRenderedCanvas(n(t)),d=a.getDom().getBoundingClientRect();o=i(d.left,o),s=i(d.top,s),l=r(d.right,l),h=r(d.bottom,h),u.push({dom:c,left:d.left,top:d.top})}}),o*=c,s*=c,l*=c,h*=c;var d=l-o,p=h-s,g=cg();g.width=d,g.height=p;var v=On(g);return Y_(u,function(t){var e=new yn({style:{x:t.left*c-o,y:t.top*c-s,image:t.dom}});v.add(e)}),v.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},uw.convertToPixel=x(xl,"convertToPixel"),uw.convertFromPixel=x(xl,"convertFromPixel"),uw.containPixel=function(t,e){var i,n=this._model;return t=qn(n,t),f(t,function(t,n){n.indexOf("Models")>=0&&f(t,function(t){var r=t.coordinateSystem;if(r&&r.containPoint)i|=!!r.containPoint(e);else if("seriesModels"===n){var a=this._chartsMap[t.__viewId];a&&a.containPoint&&(i|=a.containPoint(e,t))}},this)},this),!!i},uw.getVisual=function(t,e){var i=this._model;t=qn(i,t,{defaultMainType:"series"});var n=t.seriesModel,r=n.getData(),a=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?r.indexOfRawIndex(t.dataIndex):null;return null!=a?r.getItemVisual(a,e):r.getVisual(e)},uw.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},uw.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var cw={prepareAndUpdate:function(t){_l(this),cw.update.call(this,t)},update:function(t){var e=this._model,i=this._api,n=this._zr,r=this._coordSysMgr,a=this._scheduler;if(e){a.restoreData(e,t),a.performSeriesTasks(e),r.create(e,i),a.performDataProcessorTasks(e,t),bl(this,e),r.update(e,i),Al(e),a.performVisualTasks(e,t),Dl(this,e,i,t);var o=e.get("backgroundColor")||"transparent";if(tg.canvasSupported)n.setBackgroundColor(o);else{var s=He(o);o=Qe(s,"rgb"),0===s[3]&&(o="transparent")}Ll(e,i)}},updateTransform:function(t){var e=this._model,i=this,n=this._api;if(e){var r=[];e.eachComponent(function(a,o){var s=i.getViewOfComponentModel(o);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(o,e,n,t);l&&l.update&&r.push(s)}else r.push(s)});var a=N();e.eachSeries(function(r){var o=i._chartsMap[r.__viewId];if(o.updateTransform){var s=o.updateTransform(r,e,n,t);s&&s.update&&a.set(r.uid,1)}else a.set(r.uid,1)}),Al(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:a}),Pl(i,e,n,t,a),Ll(e,this._api)}},updateView:function(t){var e=this._model;e&&(Bs.markUpdateMethod(t,"updateView"),Al(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),Dl(this,this._model,this._api,t),Ll(e,this._api))},updateVisual:function(t){cw.update.call(this,t)},updateLayout:function(t){cw.update.call(this,t)}};uw.resize=function(t){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var i=e.resetOption("media"),n=t&&t.silent;this[sw]=!0,i&&_l(this),cw.update.call(this),this[sw]=!1,Ml.call(this,n),Il.call(this,n)}},uw.showLoading=function(t,e){if(q_(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),_w[t]){var i=_w[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},uw.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},uw.makeActionFromEvent=function(t){var e=o({},t);return e.type=pw[t.type],e},uw.dispatchAction=function(t,e){if(q_(e)||(e={silent:!!e}),fw[t.type]&&this._model){if(this[sw])return void this._pendingActions.push(t);Sl.call(this,t,e.silent),e.flush?this._zr.flush(!0):e.flush!==!1&&tg.browser.weChat&&this._throttledZrFlush(),Ml.call(this,e.silent),Il.call(this,e.silent)}},uw.appendData=function(t){var e=t.seriesIndex,i=this.getModel(),n=i.getSeriesByIndex(e);n.appendData(t),this._scheduler.unfinished=!0},uw.on=vl("on"),uw.off=vl("off"),uw.one=vl("one");var dw=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];uw._initEvents=function(){Y_(dw,function(t){this._zr.on(t,function(e){var i,n=this.getModel(),r=e.target,a="globalout"===t;if(a)i={};else if(r&&null!=r.dataIndex){var s=r.dataModel||n.getSeriesByIndex(r.seriesIndex);i=s&&s.getDataParams(r.dataIndex,r.dataType,r)||{}}else r&&r.eventData&&(i=o({},r.eventData));if(i){var l=i.componentType,h=i.componentIndex;("markLine"===l||"markPoint"===l||"markArea"===l)&&(l="series",h=i.seriesIndex);var u=l&&null!=h&&n.getComponent(l,h),c=u&&this["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];i.event=e,i.type=t,this._ecEventProcessor.eventInfo={targetEl:r,packedEvent:i,model:u,view:c},this.trigger(t,i)}},this)},this),Y_(pw,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},uw.isDisposed=function(){return this._disposed},uw.clear=function(){this.setOption({series:[]},!0)},uw.dispose=function(){if(!this._disposed){this._disposed=!0,$n(this.getDom(),Iw,"");var t=this._api,e=this._model;Y_(this._componentsViews,function(i){i.dispose(e,t)}),Y_(this._chartsViews,function(i){i.dispose(e,t)}),this._zr.dispose(),delete ww[this.id]}},c(yl,bg),Bl.prototype={constructor:Bl,normalizeQuery:function(t){var e={},i={},n={};if(b(t)){var r=U_(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var a=["Index","Name","Id"],o={name:1,dataIndex:1,dataType:1};f(t,function(t,r){for(var s=!1,l=0;l0&&u===r.length-h.length){var c=r.slice(0,u);"data"!==c&&(e.mainType=c,e[h.toLowerCase()]=t,s=!0)}}o.hasOwnProperty(r)&&(i[r]=t,s=!0),s||(n[r]=t)})}return{cptQuery:e,dataQuery:i,otherQuery:n}},filter:function(t,e){function i(t,e,i,n){return null==t[i]||e[n||i]===t[i]}var n=this.eventInfo;if(!n)return!0;var r=n.targetEl,a=n.packedEvent,o=n.model,s=n.view;if(!o||!s)return!0;var l=e.cptQuery,h=e.dataQuery;return i(l,o,"mainType")&&i(l,o,"subType")&&i(l,o,"index","componentIndex")&&i(l,o,"name")&&i(l,o,"id")&&i(h,a,"name")&&i(h,a,"dataIndex")&&i(h,a,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,e.otherQuery,r,a))},afterTrigger:function(){this.eventInfo=null}};var fw={},pw={},gw=[],vw=[],mw=[],yw=[],xw={},_w={},ww={},bw={},Sw=new Date-0,Mw=new Date-0,Iw="_echarts_instance_",Tw=Wl;Jl(iw,m_),Yl(Ux),jl(tw,$x),eh("default",w_),Ul({type:"highlight",event:"highlight",update:"highlight"},V),Ul({type:"downplay",event:"downplay",update:"downplay"},V),Xl("light",D_),Xl("dark",O_);var Cw={};uh.prototype={constructor:uh,add:function(t){return this._add=t,this},update:function(t){return this._update=t,this},remove:function(t){return this._remove=t,this},execute:function(){var t,e=this._old,i=this._new,n={},r={},a=[],o=[];for(ch(e,n,a,"_oldKeyGetter",this),ch(i,r,o,"_newKeyGetter",this),t=0;tu;u++)this._add&&this._add(l[u]);else this._add&&this._add(l)}}}};var Aw=N(["tooltip","label","itemName","itemId","seriesName"]),Dw=S,kw="undefined",Pw="e\x00\x00",Lw={"float":typeof Float64Array===kw?Array:Float64Array,"int":typeof Int32Array===kw?Array:Int32Array,ordinal:Array,number:Array,time:Array},Ow=typeof Uint32Array===kw?Array:Uint32Array,zw=typeof Uint16Array===kw?Array:Uint16Array,Ew=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_chunkSize","_chunkCount","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx"],Rw=["_extent","_approximateExtent","_rawExtent"],Bw=function(t,e){t=t||["x","y"];for(var i={},n=[],r={},a=0;a=e)){for(var i,n=this._chunkSize,r=this._rawData,a=this._storage,o=this.dimensions,s=o.length,l=this._dimensionInfos,h=this._nameList,u=this._idList,c=this._rawExtent,d=this._nameRepeatCount={},f=this._chunkCount,p=f-1,g=0;s>g;g++){var v=o[g];c[v]||(c[v]=Th());var m=l[v];0===m.otherDims.itemName&&(i=this._nameDimIdx=g),0===m.otherDims.itemId&&(this._idDimIdx=g);var y=Lw[m.type];a[v]||(a[v]=[]);var x=a[v][p];if(x&&x.lengthb;b+=n)a[v].push(new y(Math.min(e-b,n)));this._chunkCount=a[v].length}for(var S=new Array(s),M=t;e>M;M++){S=r.getItem(M,S);for(var I=Math.floor(M/n),T=M%n,b=0;s>b;b++){var v=o[b],C=a[v][I],A=this._dimValueGetter(S,v,M,b);C[T]=A;var D=c[v];AD[1]&&(D[1]=A)}if(!r.pure){var k=h[M];if(S&&null==k)if(null!=S.name)h[M]=k=S.name;else if(null!=i){var P=o[i],L=a[P][I];if(L){k=L[T];var O=l[P].ordinalMeta;O&&O.categories.length&&(k=O.categories[k])}}var z=null==S?null:S.id;null==z&&null!=k&&(d[k]=d[k]||0,z=k,d[k]>0&&(z+="__ec__"+d[k]),d[k]++),null!=z&&(u[M]=z)}}!r.persistent&&r.clean&&r.clean(),this._rawCount=this._count=e,this._extent={},yh(this)}},Nw.count=function(){return this._count},Nw.getIndices=function(){var t,e=this._indices;if(e){var i=e.constructor,n=this._count;if(i===Array){t=new i(n);for(var r=0;n>r;r++)t[r]=e[r]}else t=new i(e.buffer,0,n)}else for(var i=gh(this),t=new i(this.count()),r=0;r=0&&e=0&&en;n++)i.push(this.get(t[n],e));return i},Nw.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,i=this._dimensionInfos,n=0,r=e.length;r>n;n++)if("ordinal"!==i[e[n]].type&&isNaN(this.get(e[n],t)))return!1;return!0},Nw.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],i=Th();if(!e)return i;var n,r=this.count(),a=!this._indices;if(a)return this._rawExtent[t].slice();if(n=this._extent[t])return n.slice();n=i;for(var o=n[0],s=n[1],l=0;r>l;l++){var h=this._getFast(t,this.getRawIndex(l));o>h&&(o=h),h>s&&(s=h)}return n=[o,s],this._extent[t]=n,n},Nw.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},Nw.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},Nw.getCalculationInfo=function(t){return this._calculationInfo[t]},Nw.setCalculationInfo=function(t,e){Dw(t)?o(this._calculationInfo,t):this._calculationInfo[t]=e},Nw.getSum=function(t){var e=this._storage[t],i=0;if(e)for(var n=0,r=this.count();r>n;n++){var a=this.get(t,n);isNaN(a)||(i+=a)}return i},Nw.getMedian=function(t){var e=[];this.each(t,function(t){isNaN(t)||e.push(t)});var i=[].concat(e).sort(function(t,e){return t-e}),n=this.count();return 0===n?0:n%2===1?i[(n-1)/2]:(i[n/2]+i[n/2-1])/2},Nw.rawIndexOf=function(t,e){var i=t&&this._invertedIndicesMap[t],n=i[e];return null==n||isNaN(n)?-1:n},Nw.indexOfName=function(t){for(var e=0,i=this.count();i>e;e++)if(this.getName(e)===t)return e;return-1},Nw.indexOfRawIndex=function(t){if(!this._indices)return t;if(t>=this._rawCount||0>t)return-1;var e=this._indices,i=e[t];if(null!=i&&i=n;){var a=(n+r)/2|0;if(e[a]t))return a;r=a-1}}return-1},Nw.indicesOfNearest=function(t,e,i){var n=this._storage,r=n[t],a=[];if(!r)return a;null==i&&(i=1/0);for(var o=Number.MAX_VALUE,s=-1,l=0,h=this.count();h>l;l++){var u=e-this.get(t,l),c=Math.abs(u);i>=u&&o>=c&&((o>c||u>=0&&0>s)&&(o=c,s=u,a.length=0),a.push(l))}return a},Nw.getRawIndex=_h,Nw.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],i=0;io;o++)s[o]=this.get(t[o],a);s[o]=a,e.apply(i,s)}}},Nw.filterSelf=function(t,e,i,n){if(this._count){"function"==typeof t&&(n=i,i=e,e=t,t=[]),i=i||n||this,t=p(Sh(t),this.getDimension,this);for(var r=this.count(),a=gh(this),o=new a(r),s=[],l=t.length,h=0,u=t[0],c=0;r>c;c++){var d,f=this.getRawIndex(c);if(0===l)d=e.call(i,c);else if(1===l){var g=this._getFast(u,f);d=e.call(i,g,c)}else{for(var v=0;l>v;v++)s[v]=this._getFast(u,f);s[v]=c,d=e.apply(i,s)}d&&(o[h++]=f)}return r>h&&(this._indices=o),this._count=h,this._extent={},this.getRawIndex=this._indices?wh:_h,this}},Nw.selectRange=function(t){if(this._count){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(i);var n=e.length;if(n){var r=this.count(),a=gh(this),o=new a(r),s=0,l=e[0],h=t[l][0],u=t[l][1],c=!1;if(!this._indices){var d=0;if(1===n){for(var f=this._storage[e[0]],p=0;pm;m++){var y=g[m];(y>=h&&u>=y||isNaN(y))&&(o[s++]=d),d++}c=!0}else if(2===n){for(var f=this._storage[l],x=this._storage[e[1]],_=t[e[1]][0],w=t[e[1]][1],p=0;pm;m++){var y=g[m],S=b[m]; + (y>=h&&u>=y||isNaN(y))&&(S>=_&&w>=S||isNaN(S))&&(o[s++]=d),d++}c=!0}}if(!c)if(1===n)for(var m=0;r>m;m++){var M=this.getRawIndex(m),y=this._getFast(l,M);(y>=h&&u>=y||isNaN(y))&&(o[s++]=M)}else for(var m=0;r>m;m++){for(var I=!0,M=this.getRawIndex(m),p=0;n>p;p++){var T=e[p],y=this._getFast(i,M);(yt[T][1])&&(I=!1)}I&&(o[s++]=this.getRawIndex(m))}return r>s&&(this._indices=o),this._count=s,this._extent={},this.getRawIndex=this._indices?wh:_h,this}}},Nw.mapArray=function(t,e,i,n){"function"==typeof t&&(n=i,i=e,e=t,t=[]),i=i||n||this;var r=[];return this.each(t,function(){r.push(e&&e.apply(this,arguments))},i),r},Nw.map=function(t,e,i,n){i=i||n||this,t=p(Sh(t),this.getDimension,this);var r=Mh(this,t);r._indices=this._indices,r.getRawIndex=r._indices?wh:_h;for(var a=r._storage,o=[],s=this._chunkSize,l=t.length,h=this.count(),u=[],c=r._rawExtent,d=0;h>d;d++){for(var f=0;l>f;f++)u[f]=this.get(t[f],d);u[l]=d;var g=e&&e.apply(i,u);if(null!=g){"object"!=typeof g&&(o[0]=g,g=o);for(var v=this.getRawIndex(d),m=Math.floor(v/s),y=v%s,x=0;xb[1]&&(b[1]=w)}}}return r},Nw.downSample=function(t,e,i,n){for(var r=Mh(this,[t]),a=r._storage,o=[],s=Math.floor(1/e),l=a[t],h=this.count(),u=this._chunkSize,c=r._rawExtent[t],d=new(gh(this))(h),f=0,p=0;h>p;p+=s){s>h-p&&(s=h-p,o.length=s);for(var g=0;s>g;g++){var v=this.getRawIndex(p+g),m=Math.floor(v/u),y=v%u;o[g]=l[m][y]}var x=i(o),_=this.getRawIndex(Math.min(p+n(o,x)||0,h-1)),w=Math.floor(_/u),b=_%u;l[w][b]=x,xc[1]&&(c[1]=x),d[f++]=_}return r._count=f,r._indices=d,r.getRawIndex=wh,r},Nw.getItemModel=function(t){var e=this.hostModel;return new Wa(this.getRawDataItem(t),e,e&&e.ecModel)},Nw.diff=function(t){var e=this;return new uh(t?t.getIndices():[],this.getIndices(),function(e){return bh(t,e)},function(t){return bh(e,t)})},Nw.getVisual=function(t){var e=this._visual;return e&&e[t]},Nw.setVisual=function(t,e){if(Dw(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},Nw.setLayout=function(t,e){if(Dw(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},Nw.getLayout=function(t){return this._layout[t]},Nw.getItemLayout=function(t){return this._itemLayouts[t]},Nw.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?o(this._itemLayouts[t]||{},e):e},Nw.clearItemLayouts=function(){this._itemLayouts.length=0},Nw.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],r=n&&n[e];return null!=r||i?r:this.getVisual(e)},Nw.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},r=this.hasItemVisual;if(this._itemVisuals[t]=n,Dw(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],r[a]=!0);else n[e]=i,r[e]=!0},Nw.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var Fw=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};Nw.setItemGraphicEl=function(t,e){var i=this.hostModel;e&&(e.dataIndex=t,e.dataType=this.dataType,e.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(Fw,e)),this._graphicEls[t]=e},Nw.getItemGraphicEl=function(t){return this._graphicEls[t]},Nw.eachItemGraphicEl=function(t,e){f(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},Nw.cloneShallow=function(t){if(!t){var e=p(this.dimensions,this.getDimensionInfo,this);t=new Bw(e,this.hostModel)}if(t._storage=this._storage,mh(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?wh:_h,t},Nw.wrapMethod=function(t,e){var i=this[t];"function"==typeof i&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=i.apply(this,arguments);return e.apply(this,[t].concat(P(arguments)))})},Nw.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],Nw.CHANGABLE_METHODS=["filterSelf","selectRange"];var Vw=function(t,e){return e=e||{},Ch(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};Rh.prototype.parse=function(t){return t},Rh.prototype.getSetting=function(t){return this._setting[t]},Rh.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},Rh.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},Rh.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},Rh.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},Rh.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Rh.prototype.getExtent=function(){return this._extent.slice()},Rh.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},Rh.prototype.isBlank=function(){return this._isBlank},Rh.prototype.setBlank=function(t){this._isBlank=t},Rh.prototype.getLabel=null,er(Rh),ar(Rh,{registerWhenExtend:!0}),Bh.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&p(i,Fh);return new Bh({categories:n,needCollect:!n,deduplication:e.dedplication!==!1})};var Ww=Bh.prototype;Ww.getOrdinal=function(t){return Nh(this).get(t)},Ww.parseAndCollect=function(t){var e,i=this._needCollect;if("string"!=typeof t&&!i)return t;if(i&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var n=Nh(this);return e=n.get(t),null==e&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=0/0),e};var Gw=Rh.prototype,Hw=Rh.extend({type:"ordinal",init:function(t,e){(!t||_(t))&&(t=new Bh({categories:t})),this._ordinalMeta=t,this._extent=e||[0,t.categories.length-1]},parse:function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},contain:function(t){return t=this.parse(t),Gw.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return Gw.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(Gw.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){return this.isBlank()?void 0:this._ordinalMeta.categories[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:V,niceExtent:V});Hw.create=function(){return new Hw};var Zw=$a,Xw=$a,Yw=Rh.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(t,e){var i=this._extent;isNaN(t)||(i[0]=parseFloat(t)),isNaN(e)||(i[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),Yw.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Wh(t)},getTicks:function(){return Zh(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getLabel:function(t,e){if(null==t)return"";var i=e&&e.precision;return null==i?i=Ja(t)||0:"auto"===i&&(i=this._intervalPrecision),t=Xw(t,i,!0),co(t)},niceTicks:function(t,e,i){t=t||5;var n=this._extent,r=n[1]-n[0];if(isFinite(r)){0>r&&(r=-r,n.reverse());var a=Vh(n,t,e,i);this._intervalPrecision=a.intervalPrecision,this._interval=a.interval,this._niceExtent=a.niceTickExtent}},niceExtent:function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var i=e[0];t.fixMax?e[0]-=i/2:(e[1]+=i/2,e[0]-=i/2)}else e[1]=1;var n=e[1]-e[0];isFinite(n)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=Xw(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=Xw(Math.ceil(e[1]/r)*r))}});Yw.create=function(){return new Yw};var jw="__ec_stack_",qw=.5,Uw="undefined"!=typeof Float32Array?Float32Array:Array,$w={seriesType:"bar",plan:h_(),reset:function(t){function e(t,e){for(var i,c=new Uw(2*t.count),d=[],f=[],p=0;null!=(i=t.next());)f[h]=e.get(o,i),f[1-h]=e.get(s,i),d=n.dataToPoint(f,null,d),c[p++]=d[0],c[p++]=d[1];e.setLayout({largePoints:c,barWidth:u,valueAxisStart:eu(r,a,!1),valueAxisHorizontal:l})}if(Jh(t)&&tu(t)){var i=t.getData(),n=t.coordinateSystem,r=n.getBaseAxis(),a=n.getOtherAxis(r),o=i.mapDimension(a.dim),s=i.mapDimension(r.dim),l=a.isHorizontal(),h=l?0:1,u=Kh(Uh([t]),r,t).width;return u>qw||(u=qw),{progress:e}}}},Kw=Yw.prototype,Qw=Math.ceil,Jw=Math.floor,tb=1e3,eb=60*tb,ib=60*eb,nb=24*ib,rb=function(t,e,i,n){for(;n>i;){var r=i+n>>>1;t[r][1]a&&(a=e),null!=i&&a>i&&(a=i);var o=ob.length,s=rb(ob,a,0,o),l=ob[Math.min(s,o-1)],h=l[1];if("year"===l[0]){var u=r/h,c=so(u/t,!0);h*=c}var d=this.getSetting("useUTC")?0:60*new Date(+n[0]||+n[1]).getTimezoneOffset()*1e3,f=[Math.round(Qw((n[0]-d)/h)*h+d),Math.round(Jw((n[1]-d)/h)*h+d)];Hh(f,n),this._stepLvl=l,this._interval=h,this._niceExtent=f},parse:function(t){return+ro(t)}});f(["contain","normalize"],function(t){ab.prototype[t]=function(e){return Kw[t].call(this,this.parse(e))}});var ob=[["hh:mm:ss",tb],["hh:mm:ss",5*tb],["hh:mm:ss",10*tb],["hh:mm:ss",15*tb],["hh:mm:ss",30*tb],["hh:mm\nMM-dd",eb],["hh:mm\nMM-dd",5*eb],["hh:mm\nMM-dd",10*eb],["hh:mm\nMM-dd",15*eb],["hh:mm\nMM-dd",30*eb],["hh:mm\nMM-dd",ib],["hh:mm\nMM-dd",2*ib],["hh:mm\nMM-dd",6*ib],["hh:mm\nMM-dd",12*ib],["MM-dd\nyyyy",nb],["MM-dd\nyyyy",2*nb],["MM-dd\nyyyy",3*nb],["MM-dd\nyyyy",4*nb],["MM-dd\nyyyy",5*nb],["MM-dd\nyyyy",6*nb],["week",7*nb],["MM-dd\nyyyy",10*nb],["week",14*nb],["week",21*nb],["month",31*nb],["week",42*nb],["month",62*nb],["week",70*nb],["quarter",95*nb],["month",31*nb*4],["month",31*nb*5],["half-year",380*nb/2],["month",31*nb*8],["month",31*nb*10],["year",380*nb]];ab.create=function(t){return new ab({useUTC:t.ecModel.get("useUTC")})};var sb=Rh.prototype,lb=Yw.prototype,hb=Ja,ub=$a,cb=Math.floor,db=Math.ceil,fb=Math.pow,pb=Math.log,gb=Rh.extend({type:"log",base:10,$constructor:function(){Rh.apply(this,arguments),this._originalScale=new Yw},getTicks:function(){var t=this._originalScale,e=this._extent,i=t.getExtent();return p(lb.getTicks.call(this),function(n){var r=$a(fb(this.base,n));return r=n===e[0]&&t.__fixMin?iu(r,i[0]):r,r=n===e[1]&&t.__fixMax?iu(r,i[1]):r},this)},getLabel:lb.getLabel,scale:function(t){return t=sb.scale.call(this,t),fb(this.base,t)},setExtent:function(t,e){var i=this.base;t=pb(t)/pb(i),e=pb(e)/pb(i),lb.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=sb.getExtent.call(this);e[0]=fb(t,e[0]),e[1]=fb(t,e[1]);var i=this._originalScale,n=i.getExtent();return i.__fixMin&&(e[0]=iu(e[0],n[0])),i.__fixMax&&(e[1]=iu(e[1],n[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=pb(t[0])/pb(e),t[1]=pb(t[1])/pb(e),sb.unionExtent.call(this,t)},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},niceTicks:function(t){t=t||10;var e=this._extent,i=e[1]-e[0];if(!(1/0===i||0>=i)){var n=ao(i),r=t/i*n;for(.5>=r&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var a=[$a(db(e[0]/n)*n),$a(cb(e[1]/n)*n)];this._interval=n,this._niceExtent=a}},niceExtent:function(t){lb.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});f(["contain","normalize"],function(t){gb.prototype[t]=function(e){return e=pb(e)/pb(this.base),sb[t].call(this,e)}}),gb.create=function(){return new gb};var vb={getMin:function(t){var e=this.option,i=t||null==e.rangeStart?e.min:e.rangeStart;return this.axis&&null!=i&&"dataMin"!==i&&"function"!=typeof i&&!C(i)&&(i=this.axis.scale.parse(i)),i},getMax:function(t){var e=this.option,i=t||null==e.rangeEnd?e.max:e.rangeEnd;return this.axis&&null!=i&&"dataMax"!==i&&"function"!=typeof i&&!C(i)&&(i=this.axis.scale.parse(i)),i},getNeedCrossZero:function(){var t=this.option;return null!=t.rangeStart||null!=t.rangeEnd?!1:!t.scale},getCoordSysModel:V,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}},mb=$r({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+r,n+a),t.lineTo(i-r,n+a),t.closePath()}}),yb=$r({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,r=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+r,n),t.lineTo(i,n+a),t.lineTo(i-r,n),t.closePath()}}),xb=$r({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,r=e.width/5*3,a=Math.max(r,e.height),o=r/2,s=o*o/(a-o),l=n-a+o+s,h=Math.asin(s/o),u=Math.cos(h)*o,c=Math.sin(h),d=Math.cos(h),f=.6*o,p=.7*o;t.moveTo(i-u,l+s),t.arc(i,l,o,Math.PI-h,2*Math.PI+h),t.bezierCurveTo(i+u-c*f,l+s+d*f,i,n-p,i,n),t.bezierCurveTo(i,n-p,i-u+c*f,l+s+d*f,i-u,l+s),t.closePath()}}),_b=$r({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.height,n=e.width,r=e.x,a=e.y,o=n/3*2;t.moveTo(r,a),t.lineTo(r+o,a+i),t.lineTo(r,a+i/4*3),t.lineTo(r-o,a+i),t.lineTo(r,a),t.closePath()}}),wb={line:ky,rect:Dy,roundRect:Dy,square:Dy,circle:_y,diamond:yb,pin:xb,arrow:_b,triangle:mb},bb={line:function(t,e,i,n,r){r.x1=t,r.y1=e+n/2,r.x2=t+i,r.y2=e+n/2},rect:function(t,e,i,n,r){r.x=t,r.y=e,r.width=i,r.height=n},roundRect:function(t,e,i,n,r){r.x=t,r.y=e,r.width=i,r.height=n,r.r=Math.min(i,n)/4},square:function(t,e,i,n,r){var a=Math.min(i,n);r.x=t,r.y=e,r.width=a,r.height=a},circle:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.r=Math.min(i,n)/2},diamond:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.width=i,r.height=n},pin:function(t,e,i,n,r){r.x=t+i/2,r.y=e+n/2,r.width=i,r.height=n},arrow:function(t,e,i,n,r){r.x=t+i/2,r.y=e+n/2,r.width=i,r.height=n},triangle:function(t,e,i,n,r){r.cx=t+i/2,r.cy=e+n/2,r.width=i,r.height=n}},Sb={};f(wb,function(t,e){Sb[e]=new t});var Mb=$r({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var t=this.style,e=this.shape;"pin"===e.symbolType&&"inside"===t.textPosition&&(t.textPosition=["50%","40%"],t.textAlign="center",t.textVerticalAlign="middle")},buildPath:function(t,e,i){var n=e.symbolType,r=Sb[n];"none"!==e.symbolType&&(r||(n="rect",r=Sb[n]),bb[n](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,i))}}),Ib={isDimensionStacked:Ph,enableDataStack:kh,getStackedDimension:Lh},Tb=(Object.freeze||Object)({createList:pu,getLayoutRect:bo,dataStack:Ib,createScale:gu,mixinAxisModelCommonMethods:vu,completeDimensions:Ch,createDimensions:Vw,createSymbol:fu}),Cb=1e-8;xu.prototype={constructor:xu,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],r=[],a=[],o=this.geometries,s=0;sn;n++)if("polygon"===i[n].type){var a=i[n].exterior,o=i[n].interiors;if(yu(a,t[0],t[1])){for(var s=0;s<(o?o.length:0);s++)if(yu(o[s]))continue t;return!0}}return!1},transformTo:function(t,e,i,n){var r=this.getBoundingRect(),a=r.width/r.height;i?n||(n=i/a):i=a*n;for(var o=new gi(t,e,i,n),s=r.calculateTransform(o),l=this.geometries,h=0;h0}),function(t){var e=t.properties,i=t.geometry,n=i.coordinates,r=[];"Polygon"===i.type&&r.push({type:"polygon",exterior:n[0],interiors:n.slice(1)}),"MultiPolygon"===i.type&&f(n,function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var a=new xu(e.name,r,e.cp);return a.properties=e,a})},Db=jn(),kb=[0,1],Pb=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1};Pb.prototype={constructor:Pb,contain:function(t){var e=this._extent,i=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return t>=i&&n>=t},containData:function(t){return this.contain(this.dataToCoord(t))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return to(t||this.scale.getExtent(),this._extent)},setExtent:function(t,e){var i=this._extent;i[0]=t,i[1]=e},dataToCoord:function(t,e){var i=this._extent,n=this.scale;return t=n.normalize(t),this.onBand&&"ordinal"===n.type&&(i=i.slice(),Bu(i,n.count())),qa(t,kb,i,e)},coordToData:function(t,e){var i=this._extent,n=this.scale;this.onBand&&"ordinal"===n.type&&(i=i.slice(),Bu(i,n.count()));var r=qa(t,i,kb,e);return this.scale.scale(r)},pointToData:function(){},getTicksCoords:function(t){t=t||{};var e=t.tickModel||this.getTickModel(),i=Su(this,e),n=i.ticks,r=p(n,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this),a=e.get("alignWithLabel");return Nu(this,r,i.tickCategoryInterval,a,t.clamp),r},getViewLabels:function(){return bu(this).labels},getLabelModel:function(){return this.model.getModel("axisLabel")},getTickModel:function(){return this.model.getModel("axisTick")},getBandWidth:function(){var t=this._extent,e=this.scale.getExtent(),i=e[1]-e[0]+(this.onBand?1:0);0===i&&(i=1);var n=Math.abs(t[1]-t[0]);return Math.abs(n)/i},isHorizontal:null,getRotate:null,calculateCategoryInterval:function(){return Lu(this)}};var Lb=Ab,Ob={};f(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(t){Ob[t]=pg[t]});var zb={};f(["extendShape","extendPath","makePath","makeImage","mergePath","resizePath","createIcon","setHoverStyle","setLabelStyle","setTextStyle","setText","getFont","updateProps","initProps","getTransform","clipPointsByRect","clipRectByRect","Group","Image","Text","Circle","Sector","Ring","Polygon","Polyline","Rect","Line","BezierCurve","Arc","IncrementalDisplayable","CompoundPath","LinearGradient","RadialGradient","BoundingRect"],function(t){zb[t]=Yy[t]});var Eb=function(t){this._axes={},this._dimList=[],this.name=t||""};Eb.prototype={constructor:Eb,type:"cartesian",getAxis:function(t){return this._axes[t]},getAxes:function(){return p(this._dimList,Fu,this)},getAxesByScale:function(t){return t=t.toLowerCase(),v(this.getAxes(),function(e){return e.scale.type===t})},addAxis:function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},dataToCoord:function(t){return this._dataCoordConvert(t,"dataToCoord")},coordToData:function(t){return this._dataCoordConvert(t,"coordToData")},_dataCoordConvert:function(t,e){for(var i=this._dimList,n=t instanceof Array?[]:{},r=0;re[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},u(Rb,Pb);var Bb={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},Nb={};Nb.categoryAxis=r({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},Bb),Nb.valueAxis=r({boundaryGap:[0,0],splitNumber:5},Bb),Nb.timeAxis=s({scale:!0,min:"dataMin",max:"dataMax"},Nb.valueAxis),Nb.logAxis=s({scale:!0,logBase:10},Nb.valueAxis);var Fb=["value","category","time","log"],Vb=function(t,e,i,n){f(Fb,function(o){e.extend({type:t+"Axis."+o,mergeDefaultAndTheme:function(e,n){var a=this.layoutMode,s=a?Mo(e):{},l=n.getTheme();r(e,l.get(o+"Axis")),r(e,this.getDefaultOption()),e.type=i(t,e),a&&So(e,s,a)},optionUpdated:function(){var t=this.option;"category"===t.type&&(this.__ordinalMeta=Bh.createByAxisModel(this))},getCategories:function(t){var e=this.option;return"category"===e.type?t?e.data:this.__ordinalMeta.categories:void 0},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:a([{},Nb[o+"Axis"],n],!0)})}),yx.registerSubTypeDefaulter(t+"Axis",x(i,t))},Wb=yx.extend({type:"cartesian2dAxis",axis:null,init:function(){Wb.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){Wb.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){Wb.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});r(Wb.prototype,vb);var Gb={offset:0};Vb("x",Wb,Wu,Gb),Vb("y",Wb,Wu,Gb),yx.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var Hb=Hu.prototype;Hb.type="grid",Hb.axisPointerEnabled=!0,Hb.getRect=function(){return this._rect},Hb.update=function(t,e){var i=this._axesMap;this._updateScale(t,this.model),f(i.x,function(t){au(t.scale,t.model)}),f(i.y,function(t){au(t.scale,t.model)});var n={};f(i.x,function(t){Zu(i,"y",t,n)}),f(i.y,function(t){Zu(i,"x",t,n)}),this.resize(this.model,e)},Hb.resize=function(t,e,i){function n(){f(a,function(t){var e=t.isHorizontal(),i=e?[0,r.width]:[0,r.height],n=t.inverse?1:0;t.setExtent(i[n],i[1-n]),Yu(t,e?r.x:r.y)})}var r=bo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=r;var a=this._axesList;n(),!i&&t.get("containLabel")&&(f(a,function(t){if(!t.model.get("axisLabel.inside")){var e=uu(t);if(e){var i=t.isHorizontal()?"height":"width",n=t.model.get("axisLabel.margin");r[i]-=e[i]+n,"top"===t.position?r.y+=e.height+n:"left"===t.position&&(r.x+=e.width+n)}}}),n())},Hb.getAxis=function(t,e){var i=this._axesMap[t];if(null!=i){if(null==e)for(var n in i)if(i.hasOwnProperty(n))return i[n];return i[e]}},Hb.getAxes=function(){return this._axesList.slice()},Hb.getCartesian=function(t,e){if(null!=t&&null!=e){var i="x"+t+"y"+e;return this._coordsMap[i]}S(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var n=0,r=this._coordsList;nt&&(t=e),t}});var Yb=dm([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),jb={getBarItemStyle:function(t){var e=Yb(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}},qb=["itemStyle","barBorderWidth"];o(Wa.prototype,jb),ah({type:"bar",render:function(t,e,i){this._updateDrawMode(t);var n=t.get("coordinateSystem");return("cartesian2d"===n||"polar"===n)&&(this._isLargeDraw?this._renderLarge(t,e,i):this._renderNormal(t,e,i)),this.group},incrementalPrepareRender:function(t){this._clear(),this._updateDrawMode(t)},incrementalRender:function(t,e){this._incrementalRenderLarge(t,e)},_updateDrawMode:function(t){var e=t.pipelineContext.large;(null==this._isLargeDraw||e^this._isLargeDraw)&&(this._isLargeDraw=e,this._clear())},_renderNormal:function(t){var e,i=this.group,n=t.getData(),r=this._data,a=t.coordinateSystem,o=a.getBaseAxis();"cartesian2d"===a.type?e=o.isHorizontal():"polar"===a.type&&(e="angle"===o.dim);var s=t.isAnimationEnabled()?t:null;n.diff(r).add(function(r){if(n.hasValue(r)){var o=n.getItemModel(r),l=$b[a.type](n,r,o),h=Ub[a.type](n,r,o,l,e,s);n.setItemGraphicEl(r,h),i.add(h),tc(h,n,r,o,l,t,e,"polar"===a.type)}}).update(function(o,l){var h=r.getItemGraphicEl(l);if(!n.hasValue(o))return void i.remove(h);var u=n.getItemModel(o),c=$b[a.type](n,o,u);h?La(h,{shape:c},s,o):h=Ub[a.type](n,o,u,c,e,s,!0),n.setItemGraphicEl(o,h),i.add(h),tc(h,n,o,u,c,t,e,"polar"===a.type)}).remove(function(t){var e=r.getItemGraphicEl(t);"cartesian2d"===a.type?e&&Qu(t,s,e):e&&Ju(t,s,e)}).execute(),this._data=n},_renderLarge:function(t){this._clear(),ic(t,this.group)},_incrementalRenderLarge:function(t,e){ic(e,this.group,!0)},dispose:V,remove:function(t){this._clear(t)},_clear:function(t){var e=this.group,i=this._data;t&&t.get("animation")&&i&&!this._isLargeDraw?i.eachItemGraphicEl(function(e){"sector"===e.type?Ju(e.dataIndex,t,e):Qu(e.dataIndex,t,e)}):e.removeAll(),this._data=null}});var Ub={cartesian2d:function(t,e,i,n,r,a,s){var l=new Dy({shape:o({},n)});if(a){var h=l.shape,u=r?"height":"width",c={};h[u]=0,c[u]=n[u],Yy[s?"updateProps":"initProps"](l,{shape:c},a,e)}return l},polar:function(t,e,i,n,r,a,o){var l=n.startAngle0?1:-1,o=n.height>0?1:-1;return{x:n.x+a*r/2,y:n.y+o*r/2,width:n.width-a*r,height:n.height-o*r}},polar:function(t,e){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}},Kb=Fr.extend({type:"largeBar",shape:{points:[]},buildPath:function(t,e){for(var i=e.points,n=this.__startPoint,r=this.__valueIdx,a=0;ah[1]?-1:1,c=["start"===r?h[0]-u*l:"end"===r?h[1]+u*l:(h[0]+h[1])/2,uc(r)?t.labelOffset+a*l:0],d=e.get("nameRotate");null!=d&&(d=d*Qb/180);var f;uc(r)?n=eS(t.rotation,null!=d?d:t.rotation,a):(n=ac(t,r,d||0,h),f=t.axisNameAvailableWidth,null!=f&&(f=Math.abs(f/Math.sin(n.rotation)),!isFinite(f)&&(f=null)));var p=s.getFont(),g=e.get("nameTruncate",!0)||{},v=g.ellipsis,m=A(t.nameTruncateMaxWidth,g.maxWidth,f),y=null!=v&&null!=m?hx(i,m,p,v,{minChar:2,placeholder:g.placeholder}):i,x=e.get("tooltip",!0),_=e.mainType,w={componentType:_,name:i,$vars:["name"]};w[_+"Index"]=e.componentIndex;var b=new xy({anid:"name",__fullText:i,__truncatedText:y,position:c,rotation:n.rotation,silent:oc(e),z2:1,tooltip:x&&x.show?o({content:i,formatter:function(){return i},formatterParams:w},x):null});ba(b.style,s,{text:y,textFont:p,textFill:s.getTextColor()||e.get("axisLine.lineStyle.color"),textAlign:n.textAlign,textVerticalAlign:n.textVerticalAlign}),e.get("triggerEvent")&&(b.eventData=rc(e),b.eventData.targetType="axisName",b.eventData.name=i),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},eS=Jb.innerTextLayout=function(t,e,i){var n,r,a=io(e-t);return no(a)?(r=i>0?"top":"bottom",n="center"):no(a-Qb)?(r=i>0?"bottom":"top",n="center"):(r="middle",n=a>0&&Qb>a?i>0?"right":"left":i>0?"left":"right"),{rotation:a,textAlign:n,textVerticalAlign:r}},iS=f,nS=x,rS=nh({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,n){this.axisPointerClass&&xc(t),rS.superApply(this,"render",arguments),Mc(this,t,e,i,n,!0)},updateAxisPointer:function(t,e,i,n){Mc(this,t,e,i,n,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),rS.superApply(this,"remove",arguments)},dispose:function(t,e){Ic(this,e),rS.superApply(this,"dispose",arguments)}}),aS=[];rS.registerAxisPointerClass=function(t,e){aS[t]=e},rS.getAxisPointerClass=function(t){return t&&aS[t]};var oS=["axisLine","axisTickLabel","axisName"],sS=["splitArea","splitLine"],lS=rS.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,i,n){this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new lv,this.group.add(this._axisGroup),t.get("show")){var a=t.getCoordSysModel(),o=Tc(a,t),s=new Jb(t,o);f(oS,s.add,s),this._axisGroup.add(s.getGroup()),f(sS,function(e){t.get(e+".show")&&this["_"+e](t,a)},this),Ba(r,this._axisGroup,t),lS.superCall(this,"render",t,e,i,n)}},remove:function(){this._splitAreaColors=null},_splitLine:function(t,e){var i=t.axis;if(!i.scale.isBlank()){var n=t.getModel("splitLine"),r=n.getModel("lineStyle"),a=r.get("color");a=_(a)?a:[a];for(var o=e.coordinateSystem.getRect(),l=i.isHorizontal(),h=0,u=i.getTicksCoords({tickModel:n}),c=[],d=[],f=r.getLineStyle(),p=0;p0&&Gc(i[r-1]);r--);for(;r>n&&Gc(i[n]);n++);}for(;r>n;)n+=Hc(t,i,n,r,r,1,a.min,a.max,e.smooth,e.smoothMonotone,e.connectNulls)+1}}),IS=Fr.extend({type:"ec-polygon",shape:{points:[],stackedOnPoints:[],smooth:0,stackedOnSmooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},brush:by(Fr.prototype.brush),buildPath:function(t,e){var i=e.points,n=e.stackedOnPoints,r=0,a=i.length,o=e.smoothMonotone,s=Yc(i,e.smoothConstraint),l=Yc(n,e.smoothConstraint);if(e.connectNulls){for(;a>0&&Gc(i[a-1]);a--);for(;a>r&&Gc(i[r]);r++);}for(;a>r;){var h=Hc(t,i,r,a,a,1,s.min,s.max,e.smooth,o,e.connectNulls);Hc(t,n,r+h-1,h,a,-1,l.min,l.max,e.stackedOnSmooth,o,e.connectNulls),r+=h+1,t.closePath()}}});Bs.extend({type:"line",init:function(){var t=new lv,e=new zc;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,i){var n=t.coordinateSystem,r=this.group,a=t.getData(),o=t.getModel("lineStyle"),l=t.getModel("areaStyle"),h=a.mapArray(a.getItemLayout),u="polar"===n.type,c=this._coordSys,d=this._symbolDraw,f=this._polyline,p=this._polygon,g=this._lineGroup,v=t.get("animation"),m=!l.isEmpty(),y=l.get("origin"),x=Nc(n,a,y),_=$c(n,a,x),w=t.get("showSymbol"),b=w&&!u&&id(t,a,n),S=this._data;S&&S.eachItemGraphicEl(function(t,e){t.__temp&&(r.remove(t),S.setItemGraphicEl(e,null))}),w||d.remove(),r.add(g);var M=!u&&t.get("step");f&&c.type===n.type&&M===this._step?(m&&!p?p=this._newPolygon(h,_,n,v):p&&!m&&(g.remove(p),p=this._polygon=null),g.setClipPath(Jc(n,!1,!1,t)),w&&d.updateData(a,{isIgnore:b,clipShape:Jc(n,!1,!0,t)}),a.eachItemGraphicEl(function(t){t.stopAnimation(!0)}),jc(this._stackedOnPoints,_)&&jc(this._points,h)||(v?this._updateAnimation(a,_,n,i,M,y):(M&&(h=td(h,n,M),_=td(_,n,M)),f.setShape({points:h}),p&&p.setShape({points:h,stackedOnPoints:_})))):(w&&d.updateData(a,{isIgnore:b,clipShape:Jc(n,!1,!0,t)}),M&&(h=td(h,n,M),_=td(_,n,M)),f=this._newPolyline(h,n,v),m&&(p=this._newPolygon(h,_,n,v)),g.setClipPath(Jc(n,!0,!1,t)));var I=ed(a,n)||a.getVisual("color");f.useStyle(s(o.getLineStyle(),{fill:"none",stroke:I,lineJoin:"bevel"}));var T=t.get("smooth");if(T=qc(t.get("smooth")),f.setShape({smooth:T,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),p){var C=a.getCalculationInfo("stackedOnSeries"),A=0;p.useStyle(s(l.getAreaStyle(),{fill:I,opacity:.7,lineJoin:"bevel"})),C&&(A=qc(C.get("smooth"))),p.setShape({smooth:T,stackedOnSmooth:A,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=a,this._coordSys=n,this._stackedOnPoints=_,this._points=h,this._step=M,this._valueOrigin=y},dispose:function(){},highlight:function(t,e,i,n){var r=t.getData(),a=Yn(r,n);if(!(a instanceof Array)&&null!=a&&a>=0){var o=r.getItemGraphicEl(a);if(!o){var s=r.getItemLayout(a);if(!s)return;o=new Cc(r,a),o.position=s,o.setZ(t.get("zlevel"),t.get("z")),o.ignore=isNaN(s[0])||isNaN(s[1]),o.__temp=!0,r.setItemGraphicEl(a,o),o.stopSymbolAnimation(!0),this.group.add(o)}o.highlight()}else Bs.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var r=t.getData(),a=Yn(r,n);if(null!=a&&a>=0){var o=r.getItemGraphicEl(a);o&&(o.__temp?(r.setItemGraphicEl(a,null),this.group.remove(o)):o.downplay())}else Bs.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new MS({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e,e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new IS({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i,i},_updateAnimation:function(t,e,i,n,r,a){var o=this._polyline,s=this._polygon,l=t.hostModel,h=vS(this._data,t,this._stackedOnPoints,e,this._coordSys,i,this._valueOrigin,a),u=h.current,c=h.stackedOnCurrent,d=h.next,f=h.stackedOnNext;r&&(u=td(h.current,i,r),c=td(h.stackedOnCurrent,i,r),d=td(h.next,i,r),f=td(h.stackedOnNext,i,r)),o.shape.__points=h.current,o.shape.points=u,La(o,{shape:{points:d}},l),s&&(s.setShape({points:u,stackedOnPoints:c}),La(s,{shape:{points:d,stackedOnPoints:f}},l));for(var p=[],g=h.status,v=0;ve&&(e=t[i]);return isFinite(e)?e:0/0},min:function(t){for(var e=1/0,i=0;i1){var h;"string"==typeof i?h=AS[i]:"function"==typeof i&&(h=i),h&&t.setData(e.downSample(e.mapDimension(a.dim),1/l,h,DS))}}}}};Jl(TS("line","circle","line")),Ql(CS("line")),jl(ow.PROCESSOR.STATISTIC,kS("line"));var PS=function(t,e,i){e=_(e)&&{coordDimensions:e}||o({},e);var n=t.getSource(),r=Vw(n,e),a=new Bw(r,t);return a.initData(n,i),a},LS={updateSelectedMap:function(t){this._targetList=_(t)?t.slice():[],this._selectTargetMap=g(t||[],function(t,e){return t.set(e.name,e),t},N())},select:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t),n=this.get("selectedMode");"single"===n&&this._selectTargetMap.each(function(t){t.selected=!1}),i&&(i.selected=!0)},unSelect:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);i&&(i.selected=!1)},toggleSelected:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return null!=i?(this[i.selected?"unSelect":"select"](t,e),i.selected):void 0},isSelected:function(t,e){var i=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return i&&i.selected}},OS=rh({type:"series.pie",init:function(t){OS.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this.updateSelectedMap(this._createSelectableList()),this._defaultLabelLine(t)},mergeOption:function(t){OS.superCall(this,"mergeOption",t),this.updateSelectedMap(this._createSelectableList())},getInitialData:function(){return PS(this,["value"])},_createSelectableList:function(){for(var t=this.getRawData(),e=t.mapDimension("value"),i=[],n=0,r=t.count();r>n;n++)i.push({name:t.getName(n),value:t.get(e,n),selected:Ms(t,n,"selected")});return i},getDataParams:function(t){var e=this.getData(),i=OS.superCall(this,"getDataParams",t),n=[];return e.each(e.mapDimension("value"),function(t){n.push(t)}),i.percent=eo(n,t,e.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},_defaultLabelLine:function(t){Fn(t,"labelLine",["show"]);var e=t.labelLine,i=t.emphasis.labelLine;e.show=e.show&&t.label.show,i.show=i.show&&t.emphasis.label.show},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,selectedOffset:10,hoverOffset:10,avoidLabelOverlap:!0,percentPrecision:2,stillShowZeroSum:!0,label:{rotate:!1,show:!0,position:"outer"},labelLine:{show:!0,length:15,length2:15,smooth:!1,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},animationType:"expansion",animationEasing:"cubicOut"}});c(OS,LS);var zS=od.prototype;zS.updateData=function(t,e,i){function n(){a.stopAnimation(!0),a.animateTo({shape:{r:u.r+l.get("hoverOffset")}},300,"elasticOut")}function r(){a.stopAnimation(!0),a.animateTo({shape:{r:u.r}},300,"elasticOut")}var a=this.childAt(0),l=t.hostModel,h=t.getItemModel(e),u=t.getItemLayout(e),c=o({},u);if(c.label=null,i){a.setShape(c);var d=l.getShallow("animationType");"scale"===d?(a.shape.r=u.r0,Oa(a,{shape:{r:u.r}},l,e)):(a.shape.endAngle=u.startAngle,La(a,{shape:{endAngle:u.endAngle}},l,e))}else La(a,{shape:c},l,e);var f=t.getItemVisual(e,"color");a.useStyle(s({lineJoin:"bevel",fill:f},h.getModel("itemStyle").getItemStyle())),a.hoverStyle=h.getModel("emphasis.itemStyle").getItemStyle();var p=h.getShallow("cursor");p&&a.attr("cursor",p),ad(this,t.getItemLayout(e),l.isSelected(null,e),l.get("selectedOffset"),l.get("animation")),a.off("mouseover").off("mouseout").off("emphasis").off("normal"),h.get("hoverAnimation")&&l.isAnimationEnabled()&&a.on("mouseover",n).on("mouseout",r).on("emphasis",n).on("normal",r),this._updateLabel(t,e),xa(this)},zS._updateLabel=function(t,e){var i=this.childAt(1),n=this.childAt(2),r=t.hostModel,a=t.getItemModel(e),o=t.getItemLayout(e),s=o.label,l=t.getItemVisual(e,"color");La(i,{shape:{points:s.linePoints||[[s.x,s.y],[s.x,s.y],[s.x,s.y]]}},r,e),La(n,{style:{x:s.x,y:s.y}},r,e),n.attr({rotation:s.rotation,origin:[s.x,s.y],z2:10});var h=a.getModel("label"),u=a.getModel("emphasis.label"),c=a.getModel("labelLine"),d=a.getModel("emphasis.labelLine"),l=t.getItemVisual(e,"color");wa(n.style,n.hoverStyle={},h,u,{labelFetcher:t.hostModel,labelDataIndex:e,defaultText:t.getName(e),autoColor:l,useInsideStyle:!!s.inside},{textAlign:s.textAlign,textVerticalAlign:s.verticalAlign,opacity:t.getItemVisual(e,"opacity")}),n.ignore=n.normalIgnore=!h.get("show"),n.hoverIgnore=!u.get("show"),i.ignore=i.normalIgnore=!c.get("show"),i.hoverIgnore=!d.get("show"),i.setStyle({stroke:l,opacity:t.getItemVisual(e,"opacity")}),i.setStyle(c.getModel("lineStyle").getLineStyle()),i.hoverStyle=d.getModel("lineStyle").getLineStyle();var f=c.get("smooth");f&&f===!0&&(f=.4),i.setShape({smooth:f})},u(od,lv);var ES=(Bs.extend({type:"pie",init:function(){var t=new lv;this._sectorGroup=t},render:function(t,e,i,n){if(!n||n.from!==this.uid){var r=t.getData(),a=this._data,o=this.group,s=e.get("animation"),l=!a,h=t.get("animationType"),u=x(rd,this.uid,t,s,i),c=t.get("selectedMode");if(r.diff(a).add(function(t){var e=new od(r,t);l&&"scale"!==h&&e.eachChild(function(t){t.stopAnimation(!0)}),c&&e.on("click",u),r.setItemGraphicEl(t,e),o.add(e)}).update(function(t,e){var i=a.getItemGraphicEl(e);i.updateData(r,t),i.off("click"),c&&i.on("click",u),o.add(i),r.setItemGraphicEl(t,i)}).remove(function(t){var e=a.getItemGraphicEl(t);o.remove(e)}).execute(),s&&l&&r.count()>0&&"scale"!==h){var d=r.getItemLayout(0),f=Math.max(i.getWidth(),i.getHeight())/2,p=y(o.removeClipPath,o);o.setClipPath(this._createClipPath(d.cx,d.cy,f,d.startAngle,d.clockwise,p,t))}else o.removeClipPath();this._data=r}},dispose:function(){},_createClipPath:function(t,e,i,n,r,a,o){var s=new Sy({shape:{cx:t,cy:e,r0:0,r:i,startAngle:n,endAngle:n,clockwise:r}});return Oa(s,{shape:{endAngle:n+(r?1:-1)*Math.PI*2}},o,a),s},containPoint:function(t,e){var i=e.getData(),n=i.getItemLayout(0);if(n){var r=t[0]-n.cx,a=t[1]-n.cy,o=Math.sqrt(r*r+a*a);return o<=n.r&&o>=n.r0}}}),function(t,e){f(e,function(e){e.update="updateView",Ul(e,function(i,n){var r={};return n.eachComponent({mainType:"series",subType:t,query:i},function(t){t[e.method]&&t[e.method](i.name,i.dataIndex);var n=t.getData();n.each(function(e){var i=n.getName(e);r[i]=t.isSelected(i)||!1})}),{name:i.name,selected:r}})})}),RS=function(t){return{getTargetSeries:function(e){var i={},n=N();return e.eachSeriesByType(t,function(t){t.__paletteScope=i,n.set(t.uid,t)}),n},reset:function(t){var e=t.getRawData(),i={},n=t.getData();n.each(function(t){var e=n.getRawIndex(t);i[e]=t}),e.each(function(r){var a=i[r],o=null!=a&&n.getItemVisual(a,"color",!0);if(o)e.setItemVisual(r,"color",o);else{var s=e.getItemModel(r),l=s.get("itemStyle.color")||t.getColorFromPalette(e.getName(r)||r+"",t.__paletteScope,e.count());e.setItemVisual(r,"color",l),null!=a&&n.setItemVisual(a,"color",l)}})}}},BS=function(t,e,i,n){var r,a,o=t.getData(),s=[],l=!1;o.each(function(i){var n,h,u,c,d=o.getItemLayout(i),f=o.getItemModel(i),p=f.getModel("label"),g=p.get("position")||f.get("emphasis.label.position"),v=f.getModel("labelLine"),m=v.get("length"),y=v.get("length2"),x=(d.startAngle+d.endAngle)/2,_=Math.cos(x),w=Math.sin(x);r=d.cx,a=d.cy;var b="inside"===g||"inner"===g;if("center"===g)n=d.cx,h=d.cy,c="center";else{var S=(b?(d.r+d.r0)/2*_:d.r*_)+r,M=(b?(d.r+d.r0)/2*w:d.r*w)+a;if(n=S+3*_,h=M+3*w,!b){var I=S+_*(m+e-d.r),T=M+w*(m+e-d.r),C=I+(0>_?-1:1)*y,A=T;n=C+(0>_?-5:5),h=A,u=[[S,M],[I,T],[C,A]]}c=b?"center":_>0?"left":"right"}var D=p.getFont(),k=p.get("rotate")?0>_?-x+Math.PI:-x:0,P=t.getFormattedLabel(i,"normal")||o.getName(i),L=Ei(P,D,c,"top");l=!!k,d.label={x:n,y:h,position:g,height:L.height,len:m,len2:y,linePoints:u,textAlign:c,verticalAlign:"middle",rotation:k,inside:b},b||s.push(d.label)}),!l&&t.get("avoidLabelOverlap")&&ld(s,r,a,e,i,n)},NS=2*Math.PI,FS=Math.PI/180,VS=function(t,e,i){e.eachSeriesByType(t,function(t){var e=t.getData(),n=e.mapDimension("value"),r=t.get("center"),a=t.get("radius");_(a)||(a=[0,a]),_(r)||(r=[r,r]);var o=i.getWidth(),s=i.getHeight(),l=Math.min(o,s),h=Ua(r[0],o),u=Ua(r[1],s),c=Ua(a[0],l/2),d=Ua(a[1],l/2),f=-t.get("startAngle")*FS,p=t.get("minAngle")*FS,g=0;e.each(n,function(t){!isNaN(t)&&g++});var v=e.getSum(n),m=Math.PI/(v||g)*2,y=t.get("clockwise"),x=t.get("roseType"),w=t.get("stillShowZeroSum"),b=e.getDataExtent(n);b[0]=0;var S=NS,M=0,I=f,T=y?1:-1;if(e.each(n,function(t,i){var n;if(isNaN(t))return void e.setItemLayout(i,{angle:0/0,startAngle:0/0,endAngle:0/0,clockwise:y,cx:h,cy:u,r0:c,r:x?0/0:d});n="area"!==x?0===v&&w?m:t*m:NS/g,p>n?(n=p,S-=p):M+=t;var r=I+T*n;e.setItemLayout(i,{angle:n,startAngle:I,endAngle:r,clockwise:y,cx:h,cy:u,r0:c,r:x?qa(t,b,[c,d]):d}),I=r}),NS>S&&g)if(.001>=S){var C=NS/g;e.each(n,function(t,i){if(!isNaN(t)){var n=e.getItemLayout(i);n.angle=C,n.startAngle=f+T*i*C,n.endAngle=f+T*(i+1)*C}})}else m=S/M,I=f,e.each(n,function(t,i){if(!isNaN(t)){var n=e.getItemLayout(i),r=n.angle===p?p:t*m;n.startAngle=I,n.endAngle=I+T*r,I+=T*r}});BS(t,d,o,s)})},WS=function(t){return{seriesType:t,reset:function(t,e){var i=e.findComponents({mainType:"legend"});if(i&&i.length){var n=t.getData();n.filterSelf(function(t){for(var e=n.getName(t),r=0;rn[1]&&n.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:n[1],r0:n[0]},api:{coord:y(function(n){var r=e.dataToRadius(n[0]),a=i.dataToAngle(n[1]),o=t.coordToPoint([r,a]);return o.push(r,a*Math.PI/180),o}),size:y(dd,t)}}},YS=function(t){var e=t.getRect(),i=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:i.start,end:i.end,weeks:i.weeks,dayCount:i.allDay}},api:{coord:function(e,i){return t.dataToPoint(e,i)}}}},jS=["itemStyle"],qS=["emphasis","itemStyle"],US=["label"],$S=["emphasis","label"],KS="e\x00\x00",QS={cartesian2d:GS,geo:HS,singleAxis:ZS,polar:XS,calendar:YS};o_.extend({type:"series.custom",dependencies:["grid","polar","geo","singleAxis","calendar"],defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,useTransform:!0},getInitialData:function(){return Oh(this.getSource(),this)},getDataParams:function(t,e,i){var n=o_.prototype.getDataParams.apply(this,arguments);return i&&(n.info=i.info),n}}),Bs.extend({type:"custom",_data:null,render:function(t,e,i,n){var r=this._data,a=t.getData(),o=this.group,s=vd(t,a,e,i);a.diff(r).add(function(e){yd(null,e,s(e,n),t,o,a)}).update(function(e,i){var l=r.getItemGraphicEl(i);yd(l,e,s(e,n),t,o,a)}).remove(function(t){var e=r.getItemGraphicEl(t);e&&o.remove(e)}).execute(),this._data=a},incrementalPrepareRender:function(){this.group.removeAll(),this._data=null},incrementalRender:function(t,e,i,n,r){function a(t){t.isGroup||(t.incremental=!0,t.useHoverLayer=!0)}for(var o=e.getData(),s=vd(e,o,i,n),l=t.start;l=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0,tooltip:{show:!1}}});Ul("legendToggleSelect","legendselectchanged",x(Ad,"toggleSelected")),Ul("legendSelect","legendselected",x(Ad,"select")),Ul("legendUnSelect","legendunselected",x(Ad,"unSelect"));var tM=x,eM=f,iM=lv,nM=nh({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new iM),this._backgroundEl},getContentGroup:function(){return this._contentGroup},render:function(t,e,i){if(this.resetInner(),t.get("show",!0)){var n=t.get("align");n&&"auto"!==n||(n="right"===t.get("left")&&"vertical"===t.get("orient")?"right":"left"),this.renderInner(n,t,e,i);var r=t.getBoxLayoutParams(),a={width:i.getWidth(),height:i.getHeight()},o=t.get("padding"),l=bo(r,a,o),h=this.layoutInner(t,n,l),u=bo(s({width:h.width,height:h.height},r),a,o);this.group.attr("position",[u.x-h.x,u.y-h.y]),this.group.add(this._backgroundEl=Dd(h,t))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(t,e,i,n){var r=this.getContentGroup(),a=N(),o=e.get("selectedMode"),s=[];i.eachRawSeries(function(t){!t.get("legendHoverLink")&&s.push(t.id)}),eM(e.getData(),function(l,h){var u=l.get("name");if(!this.newlineDisabled&&(""===u||"\n"===u))return void r.add(new iM({newline:!0}));var c=i.getSeriesByName(u)[0];if(!a.get(u))if(c){var d=c.getData(),f=d.getVisual("color");"function"==typeof f&&(f=f(c.getDataParams(0)));var p=d.getVisual("legendSymbol")||"roundRect",g=d.getVisual("symbol"),v=this._createItem(u,h,l,e,p,g,t,f,o);v.on("click",tM(kd,u,n)).on("mouseover",tM(Pd,c.name,null,n,s)).on("mouseout",tM(Ld,c.name,null,n,s)),a.set(u,!0)}else i.eachRawSeries(function(i){if(!a.get(u)&&i.legendDataProvider){var r=i.legendDataProvider(),c=r.indexOfName(u);if(0>c)return;var d=r.getItemVisual(c,"color"),f="roundRect",p=this._createItem(u,h,l,e,f,null,t,d,o);p.on("click",tM(kd,u,n)).on("mouseover",tM(Pd,null,u,n,s)).on("mouseout",tM(Ld,null,u,n,s)),a.set(u,!0)}},this)},this)},_createItem:function(t,e,i,n,r,a,s,l,h){var u=n.get("itemWidth"),c=n.get("itemHeight"),d=n.get("inactiveColor"),f=n.get("symbolKeepAspect"),p=n.isSelected(t),g=new iM,v=i.getModel("textStyle"),m=i.get("icon"),y=i.getModel("tooltip"),x=y.parentModel;if(r=m||r,g.add(fu(r,0,0,u,c,p?l:d,null==f?!0:f)),!m&&a&&(a!==r||"none"===a)){var _=.8*c;"none"===a&&(a="circle"),g.add(fu(a,(u-_)/2,(c-_)/2,_,_,p?l:d,null==f?!0:f))}var w="left"===s?u+5:-5,b=s,S=n.get("formatter"),M=t;"string"==typeof S&&S?M=S.replace("{name}",null!=t?t:""):"function"==typeof S&&(M=S(t)),g.add(new xy({style:ba({},v,{text:M,x:w,y:c/2,textFill:p?v.getTextColor():d,textAlign:b,textVerticalAlign:"middle"})}));var I=new Dy({shape:g.getBoundingRect(),invisible:!0,tooltip:y.get("show")?o({content:t,formatter:x.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:n.componentIndex,name:t,$vars:["name"]}},y.option):null});return g.add(I),g.eachChild(function(t){t.silent=!0}),I.silent=!h,this.getContentGroup().add(g),xa(g),g.__legendDataIndex=e,g},layoutInner:function(t,e,i){var n=this.getContentGroup();gx(t.get("orient"),n,t.get("itemGap"),i.width,i.height);var r=n.getBoundingRect();return n.attr("position",[-r.x,-r.y]),this.group.getBoundingRect()}}),rM=function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var i=0;ii[s],f=[-u.x,-u.y];f[o]=n.position[o];var p=[0,0],g=[-c.x,-c.y],v=D(t.get("pageButtonGap",!0),t.get("itemGap",!0));if(d){var m=t.get("pageButtonPosition",!0);"end"===m?g[o]+=i[s]-c[s]:p[o]+=c[s]+v}g[1-o]+=u[l]/2-c[l]/2,n.attr("position",f),r.attr("position",p),a.attr("position",g);var y=this.group.getBoundingRect(),y={x:0,y:0};if(y[s]=d?i[s]:u[s],y[l]=Math.max(u[l],c[l]),y[h]=Math.min(0,c[h]+g[1-o]),r.__rectSize=i[s],d){var x={x:0,y:0};x[s]=Math.max(i[s]-c[s]-v,0),x[l]=y[l],r.setClipPath(new Dy({shape:x})),r.__rectSize=x[s]}else a.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var _=this._getPageInfo(t);return null!=_.pageIndex&&La(n,{position:_.contentPosition},d?t:!1),this._updatePageInfoView(t,_),y},_pageGo:function(t,e,i){var n=this._getPageInfo(e)[t];null!=n&&i.dispatchAction({type:"legendScroll",scrollDataIndex:n,legendId:e.id})},_updatePageInfoView:function(t,e){var i=this._controllerGroup;f(["pagePrev","pageNext"],function(n){var r=null!=e[n+"DataIndex"],a=i.childOfName(n);a&&(a.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),a.cursor=r?"pointer":"default")});var n=i.childOfName("pageText"),r=t.get("pageFormatter"),a=e.pageIndex,o=null!=a?a+1:0,s=e.pageCount;n&&r&&n.setStyle("text",b(r)?r.replace("{current}",o).replace("{total}",s):r({current:o,total:s}))},_getPageInfo:function(t){function e(t){var e=t.getBoundingRect().clone();return e[f]+=t.position[u],e}var i,n,r,a,o=t.get("scrollDataIndex",!0),s=this.getContentGroup(),l=s.getBoundingRect(),h=this._containerGroup.__rectSize,u=t.getOrient().index,c=sM[u],d=sM[1-u],f=lM[u],p=s.position.slice();this._showController?s.eachChild(function(t){t.__legendDataIndex===o&&(a=t)}):a=s.childAt(0);var g=h?Math.ceil(l[c]/h):0;if(a){var v=a.getBoundingRect(),m=a.position[u]+v[f];p[u]=-m-l[f],i=Math.floor(g*(m+v[f]+h/2)/l[c]),i=l[c]&&g?Math.max(0,Math.min(g-1,i)):-1;var y={x:0,y:0};y[c]=h,y[d]=l[d],y[f]=-p[u]-l[f];var x,_=s.children();if(s.eachChild(function(t,i){var n=e(t);n.intersect(y)&&(null==x&&(x=i),r=t.__legendDataIndex),i===_.length-1&&n[f]+n[c]<=y[f]+y[c]&&(r=null)}),null!=x){var w=_[x],b=e(w);if(y[f]=b[f]+b[c]-y[c],0>=x&&b[f]>=y[f])n=null;else{for(;x>0&&e(_[x-1]).intersect(y);)x--;n=_[x].__legendDataIndex}}}return{contentPosition:p,pageIndex:i,pageCount:g,pagePrevDataIndex:n,pageNextDataIndex:r}}});Ul("legendScroll","legendscroll",function(t,e){var i=t.scrollDataIndex;null!=i&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(i)})});var uM=function(t,e){var i,n=[],r=t.seriesIndex;if(null==r||!(i=e.getSeriesByIndex(r)))return{point:[]};var a=i.getData(),o=Yn(a,t);if(null==o||0>o||_(o))return{point:[]};var s=a.getItemGraphicEl(o),l=i.coordinateSystem;if(i.getTooltipPosition)n=i.getTooltipPosition(o)||[];else if(l&&l.dataToPoint)n=l.dataToPoint(a.getValues(p(l.dimensions,function(t){return a.mapDimension(t)}),o,!0))||[];else if(s){var h=s.getBoundingRect().clone();h.applyTransform(s.transform),n=[h.x+h.width/2,h.y+h.height/2]}return{point:n,el:s}},cM=f,dM=x,fM=jn(),pM=function(t,e,i){var n=t.currTrigger,r=[t.x,t.y],a=t,o=t.dispatchAction||y(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){Hd(r)&&(r=uM({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},e).point);var l=Hd(r),h=a.axesInfo,u=s.axesInfo,c="leave"===n||Hd(r),d={},f={},p={list:[],map:{}},g={showPointer:dM(Rd,f),showTooltip:dM(Bd,p)};cM(s.coordSysMap,function(t,e){var i=l||t.containPoint(r);cM(s.coordSysAxesInfo[e],function(t){var e=t.axis,n=Wd(h,t);if(!c&&i&&(!h||n)){var a=n&&n.value;null!=a||l||(a=e.pointToData(r)),null!=a&&zd(t,a,g,!1,d)}})});var v={};return cM(u,function(t,e){var i=t.linkGroup;i&&!f[e]&&cM(i.axesInfo,function(e,n){var r=f[n];if(e!==t&&r){var a=r.value;i.mapper&&(a=t.axis.scale.parse(i.mapper(a,Gd(e),Gd(t)))),v[t.key]=a}})}),cM(v,function(t,e){zd(u[e],t,g,!0,d)}),Nd(f,u,d),Fd(p,r,t,o),Vd(u,o,i),d}},gM=(ih({type:"axisPointer",coordSysAxesInfo:null,defaultOption:{show:"auto",triggerOn:null,zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#aaa",width:1,type:"solid"},shadowStyle:{color:"rgba(150,150,150,0.3)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,shadowBlur:3,shadowColor:"#aaa"},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}}}),jn()),vM=f,mM=nh({type:"axisPointer",render:function(t,e,i){var n=e.getComponent("tooltip"),r=t.get("triggerOn")||n&&n.get("triggerOn")||"mousemove|click";Zd("axisPointer",i,function(t,e,i){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&i({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){$d(e.getZr(),"axisPointer"),mM.superApply(this._model,"remove",arguments)},dispose:function(t,e){$d("axisPointer",e),mM.superApply(this._model,"dispose",arguments)}}),yM=jn(),xM=n,_M=y;Kd.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(t,e,i,n){var r=e.get("value"),a=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=i,n||this._lastValue!==r||this._lastStatus!==a){this._lastValue=r,this._lastStatus=a;var o=this._group,s=this._handle;if(!a||"hide"===a)return o&&o.hide(),void(s&&s.hide());o&&o.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,i);var h=l.graphicKey;h!==this._lastGraphicKey&&this.clear(i),this._lastGraphicKey=h;var u=this._moveAnimation=this.determineAnimation(t,e);if(o){var c=x(Qd,e,u);this.updatePointerEl(o,l,c,e),this.updateLabelEl(o,l,c,e)}else o=this._group=new lv,this.createPointerEl(o,l,t,e),this.createLabelEl(o,l,t,e),i.getZr().add(o);nf(o,e,!0),this._renderHandle(r)}},remove:function(t){this.clear(t)},dispose:function(t){this.clear(t)},determineAnimation:function(t,e){var i=e.get("animation"),n=t.axis,r="category"===n.type,a=e.get("snap");if(!a&&!r)return!1;if("auto"===i||null==i){var o=this.animationThreshold;if(r&&n.getBandWidth()>o)return!0;if(a){var s=_c(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>o}return!1}return i===!0},makeElOption:function(){},createPointerEl:function(t,e){var i=e.pointer;if(i){var n=yM(t).pointerEl=new Yy[i.type](xM(e.pointer));t.add(n)}},createLabelEl:function(t,e,i,n){if(e.label){var r=yM(t).labelEl=new Dy(xM(e.label));t.add(r),tf(r,n)}},updatePointerEl:function(t,e,i){var n=yM(t).pointerEl;n&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var r=yM(t).labelEl;r&&(r.setStyle(e.label.style),i(r,{shape:e.label.shape,position:e.label.position}),tf(r,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,i=this._api.getZr(),n=this._handle,r=e.getModel("handle"),a=e.get("status");if(!r.get("show")||!a||"hide"===a)return n&&i.remove(n),void(this._handle=null);var o;this._handle||(o=!0,n=this._handle=Va(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Ig(t.event)},onmousedown:_M(this._onHandleDragMove,this,0,0),drift:_M(this._onHandleDragMove,this),ondragend:_M(this._onHandleDragEnd,this)}),i.add(n)),nf(n,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];n.setStyle(r.getItemStyle(null,s));var l=r.get("size");_(l)||(l=[l,l]),n.attr("scale",[l[0]/2,l[1]/2]),Hs(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,o)}},_moveHandleToValue:function(t,e){Qd(this._axisPointerModel,!e&&this._moveAnimation,this._handle,ef(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(ef(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(ef(n)),yM(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){var t=this._handle;if(t){var e=this._payloadInfo,i=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:i.axis.dim,axisIndex:i.componentIndex}]})}},_onHandleDragEnd:function(){this._dragging=!1;var t=this._handle;if(t){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),i=this._group,n=this._handle;e&&i&&(this._lastGraphicKey=null,i&&e.remove(i),n&&e.remove(n),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}},Kd.prototype.constructor=Kd,er(Kd);var wM=Kd.extend({makeElOption:function(t,e,i,n,r){var a=i.axis,o=a.grid,s=n.get("type"),l=df(o,a).getOtherAxis(a).getGlobalExtent(),h=a.toGlobalCoord(a.dataToCoord(e,!0));if(s&&"none"!==s){var u=rf(n),c=bM[s](a,h,l,u);c.style=u,t.graphicKey=c.type,t.pointer=c}var d=Tc(o.model,i);hf(e,t,d,i,n,r)},getHandleTransform:function(t,e,i){var n=Tc(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:lf(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i){var n=i.axis,r=n.grid,a=n.getGlobalExtent(!0),o=df(r,n).getOtherAxis(n).getGlobalExtent(),s="x"===n.dim?0:1,l=t.position;l[s]+=e[s],l[s]=Math.min(a[1],l[s]),l[s]=Math.max(a[0],l[s]);var h=(o[1]+o[0])/2,u=[h,h];u[s]=l[s];var c=[{verticalAlign:"middle"},{align:"center"}];return{position:l,rotation:t.rotation,cursorPoint:u,tooltipOption:c[s]}}}),bM={line:function(t,e,i,n){var r=uf([e,i[0]],[e,i[1]],ff(t));return ia({shape:r,style:n}),{type:"Line",shape:r}},shadow:function(t,e,i){var n=Math.max(1,t.getBandWidth()),r=i[1]-i[0];return{type:"Rect",shape:cf([e-n/2,i[0]],[n,r],ff(t))}}};rS.registerAxisPointerClass("CartesianAxisPointer",wM),Yl(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!_(e)&&(t.axisPointer.link=[e])}}),jl(ow.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=fc(t,e)}),Ul({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},pM),ih({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#fff",fontSize:14}}});var SM=f,MM=fo,IM=["","-webkit-","-moz-","-o-"],TM="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;";mf.prototype={constructor:mf,_enterable:!0,update:function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),i=t.style;"absolute"!==i.position&&"absolute"!==e.position&&(i.position="relative")},show:function(t){clearTimeout(this._hideTimeout);var e=this.el;e.style.cssText=TM+vf(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"none",e.style.pointerEvents=this._enterable?"auto":"none",this._show=!0},setContent:function(t){this.el.innerHTML=null==t?"":t},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el;return[t.clientWidth,t.clientHeight]},moveTo:function(t,e){var i,n=this._zr;n&&n.painter&&(i=n.painter.getViewportRootOffset())&&(t+=i.offsetLeft,e+=i.offsetTop);var r=this.el.style;r.left=t+"px",r.top=e+"px",this._x=t,this._y=e},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(y(this.hide,this),t)):this.hide())},isShow:function(){return this._show},getOuterSize:function(){var t=this.el.clientWidth,e=this.el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var i=document.defaultView.getComputedStyle(this.el);i&&(t+=parseInt(i.paddingLeft,10)+parseInt(i.paddingRight,10)+parseInt(i.borderLeftWidth,10)+parseInt(i.borderRightWidth,10),e+=parseInt(i.paddingTop,10)+parseInt(i.paddingBottom,10)+parseInt(i.borderTopWidth,10)+parseInt(i.borderBottomWidth,10))}return{width:t,height:e}}},yf.prototype={constructor:yf,_enterable:!0,update:function(){},show:function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.attr("show",!0),this._show=!0},setContent:function(t,e,i){this.el&&this._zr.remove(this.el);for(var n={},r=t,a="{marker",o="|}",s=r.indexOf(a);s>=0;){var l=r.indexOf(o),h=r.substr(s+a.length,l-s-a.length);n["marker"+h]=h.indexOf("sub")>-1?{textWidth:4,textHeight:4,textBorderRadius:2,textBackgroundColor:e[h],textOffset:[3,0]}:{textWidth:10,textHeight:10,textBorderRadius:5,textBackgroundColor:e[h]},r=r.substr(l+1),s=r.indexOf("{marker")}this.el=new xy({style:{rich:n,text:t,textLineHeight:20,textBackgroundColor:i.get("backgroundColor"),textBorderRadius:i.get("borderRadius"),textFill:i.get("textStyle.color"),textPadding:i.get("padding")},z:i.get("z")}),this._zr.add(this.el);var u=this;this.el.on("mouseover",function(){u._enterable&&(clearTimeout(u._hideTimeout),u._show=!0),u._inContent=!0}),this.el.on("mouseout",function(){u._enterable&&u._show&&u.hideLater(u._hideDelay),u._inContent=!1})},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el.getBoundingRect();return[t.width,t.height]},moveTo:function(t,e){this.el&&this.el.attr("position",[t,e])},hide:function(){this.el.hide(),this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(y(this.hide,this),t)):this.hide())},isShow:function(){return this._show},getOuterSize:function(){return this.getSize()}};var CM=y,AM=f,DM=Ua,kM=new Dy({shape:{x:-1,y:-1,width:2,height:2}});nh({type:"tooltip",init:function(t,e){if(!tg.node){var i=t.getComponent("tooltip"),n=i.get("renderMode");this._renderMode=Qn(n);var r;"html"===this._renderMode?(r=new mf(e.getDom(),e),this._newLine="
"):(r=new yf(e),this._newLine="\n"),this._tooltipContent=r}},render:function(t,e,i){if(!tg.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=i,this._lastDataByCoordSys=null,this._alwaysShowContent=t.get("alwaysShowContent");var n=this._tooltipContent;n.update(),n.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel,e=t.get("triggerOn");Zd("itemTooltip",this._api,CM(function(t,i,n){"none"!==e&&(e.indexOf(t)>=0?this._tryShow(i,n):"leave"===t&&this._hide(n))},this))},_keepShow:function(){var t=this._tooltipModel,e=this._ecModel,i=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var n=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){n.manuallyShowTip(t,e,i,{x:n._lastX,y:n._lastY})})}},manuallyShowTip:function(t,e,i,n){if(n.from!==this.uid&&!tg.node){var r=_f(n,i);this._ticket="";var a=n.dataByCoordSys;if(n.tooltip&&null!=n.x&&null!=n.y){var o=kM;o.position=[n.x,n.y],o.update(),o.tooltip=n.tooltip,this._tryShow({offsetX:n.x,offsetY:n.y,target:o},r)}else if(a)this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,event:{},dataByCoordSys:n.dataByCoordSys,tooltipOption:n.tooltipOption},r);else if(null!=n.seriesIndex){if(this._manuallyAxisShowTip(t,e,i,n))return;var s=uM(n,e),l=s.point[0],h=s.point[1];null!=l&&null!=h&&this._tryShow({offsetX:l,offsetY:h,position:n.position,target:s.el,event:{}},r)}else null!=n.x&&null!=n.y&&(i.dispatchAction({type:"updateAxisPointer",x:n.x,y:n.y}),this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,target:i.getZr().findHover(n.x,n.y).target,event:{}},r))}},manuallyHideTip:function(t,e,i,n){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,n.from!==this.uid&&this._hide(_f(n,i))},_manuallyAxisShowTip:function(t,e,i,n){var r=n.seriesIndex,a=n.dataIndex,o=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=a&&null!=o){var s=e.getSeriesByIndex(r);if(s){var l=s.getData(),t=xf([l.getItemModel(a),s,(s.coordinateSystem||{}).model,t]);if("axis"===t.get("trigger"))return i.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:a,position:n.position}),!0}}},_tryShow:function(t,e){var i=t.target,n=this._tooltipModel;if(n){this._lastX=t.offsetX,this._lastY=t.offsetY;var r=t.dataByCoordSys;r&&r.length?this._showAxisTooltip(r,t):i&&null!=i.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,i,e)):i&&i.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,i,e)):(this._lastDataByCoordSys=null,this._hide(e))}},_showOrMove:function(t,e){var i=t.get("showDelay");e=y(e,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(e,i):e()},_showAxisTooltip:function(t,e){var i=this._ecModel,n=this._tooltipModel,a=[e.offsetX,e.offsetY],o=[],s=[],l=xf([e.tooltipOption,n]),h=this._renderMode,u=this._newLine,c={};AM(t,function(t){AM(t.dataByAxis,function(t){var e=i.getComponent(t.axisDim+"Axis",t.axisIndex),n=t.value,a=[];if(e&&null!=n){var l=sf(n,e.axis,i,t.seriesDataIndices,t.valueLabelOpt);f(t.seriesDataIndices,function(o){var u=i.getSeriesByIndex(o.seriesIndex),d=o.dataIndexInside,f=u&&u.getDataParams(d);if(f.axisDim=t.axisDim,f.axisIndex=t.axisIndex,f.axisType=t.axisType,f.axisId=t.axisId,f.axisValue=hu(e.axis,n),f.axisValueLabel=l,f){s.push(f);var p,g=u.formatTooltip(d,!0,null,h);if(S(g)){p=g.html;var v=g.markers;r(c,v)}else p=g;a.push(p)}});var d=l;o.push("html"!==h?a.join(u):(d?po(d)+u:"")+a.join(u))}})},this),o.reverse(),o=o.join(this._newLine+this._newLine);var d=e.position;this._showOrMove(l,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(l,d,a[0],a[1],this._tooltipContent,s):this._showTooltipContent(l,o,s,Math.random(),a[0],a[1],d,void 0,c)})},_showSeriesItemTooltip:function(t,e,i){var n=this._ecModel,r=e.seriesIndex,a=n.getSeriesByIndex(r),o=e.dataModel||a,s=e.dataIndex,l=e.dataType,h=o.getData(),u=xf([h.getItemModel(s),o,a&&(a.coordinateSystem||{}).model,this._tooltipModel]),c=u.get("trigger");if(null==c||"item"===c){var d,f,p=o.getDataParams(s,l),g=o.formatTooltip(s,!1,l,this._renderMode);S(g)?(d=g.html,f=g.markers):(d=g,f=null);var v="item_"+o.name+"_"+s;this._showOrMove(u,function(){this._showTooltipContent(u,d,p,v,t.offsetX,t.offsetY,t.position,t.target,f)}),i({type:"showTip",dataIndexInside:s,dataIndex:h.getRawIndex(s),seriesIndex:r,from:this.uid})}},_showComponentItemTooltip:function(t,e,i){var n=e.tooltip;if("string"==typeof n){var r=n;n={content:r,formatter:r}}var a=new Wa(n,this._tooltipModel,this._ecModel),o=a.get("content"),s=Math.random();this._showOrMove(a,function(){this._showTooltipContent(a,o,a.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),i({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,i,n,r,a,o,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var h=this._tooltipContent,u=t.get("formatter");o=o||t.get("position");var c=e;if(u&&"string"==typeof u)c=go(u,i,!0);else if("function"==typeof u){var d=CM(function(e,n){e===this._ticket&&(h.setContent(n,l,t),this._updatePosition(t,o,r,a,h,i,s))},this);this._ticket=n,c=u(i,n,d)}h.setContent(c,l,t),h.show(t),this._updatePosition(t,o,r,a,h,i,s)}},_updatePosition:function(t,e,i,n,r,a,o){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var h=r.getSize(),u=t.get("align"),c=t.get("verticalAlign"),d=o&&o.getBoundingRect().clone();if(o&&d.applyTransform(o.transform),"function"==typeof e&&(e=e([i,n],a,r.el,d,{viewSize:[s,l],contentSize:h.slice()})),_(e))i=DM(e[0],s),n=DM(e[1],l);else if(S(e)){e.width=h[0],e.height=h[1];var f=bo(e,{width:s,height:l});i=f.x,n=f.y,u=null,c=null}else if("string"==typeof e&&o){var p=Sf(e,d,h);i=p[0],n=p[1]}else{var p=wf(i,n,r,s,l,u?null:20,c?null:20);i=p[0],n=p[1]}if(u&&(i-=Mf(u)?h[0]/2:"right"===u?h[0]:0),c&&(n-=Mf(c)?h[1]/2:"bottom"===c?h[1]:0),t.get("confine")){var p=bf(i,n,r,s,l);i=p[0],n=p[1]}r.moveTo(i,n)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,i=!!e&&e.length===t.length;return i&&AM(e,function(e,n){var r=e.dataByAxis||{},a=t[n]||{},o=a.dataByAxis||[];i&=r.length===o.length,i&&AM(r,function(t,e){var n=o[e]||{},r=t.seriesDataIndices||[],a=n.seriesDataIndices||[];i&=t.value===n.value&&t.axisType===n.axisType&&t.axisId===n.axisId&&r.length===a.length,i&&AM(r,function(t,e){var n=a[e];i&=t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})})}),this._lastDataByCoordSys=t,!!i},_hide:function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},dispose:function(t,e){tg.node||(this._tooltipContent.hide(),$d("itemTooltip",e))}}),Ul({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),Ul({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){});var PM=co,LM=po,OM=ih({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i),this.mergeOption(t,i,n.createdBySelf,!0)},isAnimationEnabled:function(){if(tg.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,i,n){var r=this.constructor,a=this.mainType+"Model";i||e.eachSeries(function(t){var i=t.get(this.mainType,!0),s=t[a];return i&&i.data?(s?s.mergeOption(i,e,!0):(n&&If(i),f(i.data,function(t){t instanceof Array?(If(t[0]),If(t[1])):If(t)}),s=new r(i,this,e),o(s,{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),s.__hostSeries=t),void(t[a]=s)):void(t[a]=null)},this)},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=_(i)?p(i,PM).join(", "):PM(i),r=e.getName(t),a=LM(this.name);return(null!=i||r)&&(a+="
"),r&&(a+=LM(r),null!=i&&(a+=" : ")),null!=i&&(a+=LM(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});c(OM,i_),OM.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var zM=h,EM=x,RM={min:EM(Af,"min"),max:EM(Af,"max"),average:EM(Af,"average")},BM=nh({type:"marker",init:function(){this.markerGroupMap=N()},render:function(t,e,i){var n=this.markerGroupMap;n.each(function(t){t.__keep=!1});var r=this.type+"Model";e.eachSeries(function(t){var n=t[r];n&&this.renderSeries(t,n,e,i)},this),n.each(function(t){!t.__keep&&this.group.remove(t.group)},this)},renderSeries:function(){}});BM.extend({type:"markPoint",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markPointModel;e&&(Ef(e.getData(),t,i),this.markerGroupMap.get(t.id).updateLayout(e))},this)},renderSeries:function(t,e,i,n){var r=t.coordinateSystem,a=t.id,o=t.getData(),s=this.markerGroupMap,l=s.get(a)||s.set(a,new zc),h=Rf(r,t,e);e.setData(h),Ef(e.getData(),t,n),h.each(function(t){var i=h.getItemModel(t),n=i.getShallow("symbolSize");"function"==typeof n&&(n=n(e.getRawValue(t),e.getDataParams(t))),h.setItemVisual(t,{symbolSize:n,color:i.get("itemStyle.color")||o.getVisual("color"),symbol:i.getShallow("symbol")})}),l.updateData(h),this.group.add(l.group),h.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e + })}),l.__keep=!0,l.group.silent=e.get("silent")||t.get("silent")}}),Yl(function(t){t.markPoint=t.markPoint||{}}),OM.extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end"},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"}});var NM=ky.prototype,FM=Ly.prototype,VM=$r({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){(Bf(e)?NM:FM).buildPath(t,e)},pointAt:function(t){return Bf(this.shape)?NM.pointAt.call(this,t):FM.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,i=Bf(e)?[e.x2-e.x1,e.y2-e.y1]:FM.tangentAt.call(this,t);return te(i,i)}}),WM=["fromSymbol","toSymbol"],GM=Hf.prototype;GM.beforeUpdate=Gf,GM._createLine=function(t,e,i){var n=t.hostModel,r=t.getItemLayout(e),a=Vf(r);a.shape.percent=0,Oa(a,{shape:{percent:1}},n,e),this.add(a);var o=new xy({name:"label"});this.add(o),f(WM,function(i){var n=Ff(i,t,e);this.add(n),this[Nf(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},GM.updateData=function(t,e,i){var n=t.hostModel,r=this.childOfName("line"),a=t.getItemLayout(e),o={shape:{}};Wf(o.shape,a),La(r,o,n,e),f(WM,function(i){var n=t.getItemVisual(e,i),r=Nf(i);if(this[r]!==n){this.remove(this.childOfName(i));var a=Ff(i,t,e);this.add(a)}this[r]=n},this),this._updateCommonStl(t,e,i)},GM._updateCommonStl=function(t,e,i){var n=t.hostModel,r=this.childOfName("line"),a=i&&i.lineStyle,o=i&&i.hoverLineStyle,l=i&&i.labelModel,h=i&&i.hoverLabelModel;if(!i||t.hasItemOption){var u=t.getItemModel(e);a=u.getModel("lineStyle").getLineStyle(),o=u.getModel("emphasis.lineStyle").getLineStyle(),l=u.getModel("label"),h=u.getModel("emphasis.label")}var c=t.getItemVisual(e,"color"),d=k(t.getItemVisual(e,"opacity"),a.opacity,1);r.useStyle(s({strokeNoScale:!0,fill:"none",stroke:c,opacity:d},a)),r.hoverStyle=o,f(WM,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:d}))},this);var p,g,v=l.getShallow("show"),m=h.getShallow("show"),y=this.childOfName("label");if((v||m)&&(p=c||"#000",g=n.getFormattedLabel(e,"normal",t.dataType),null==g)){var x=n.getRawValue(e);g=null==x?t.getName(e):isFinite(x)?$a(x):x}var _=v?g:null,w=m?D(n.getFormattedLabel(e,"emphasis",t.dataType),g):null,b=y.style;(null!=_||null!=w)&&(ba(y.style,l,{text:_},{autoColor:p}),y.__textAlign=b.textAlign,y.__verticalAlign=b.textVerticalAlign,y.__position=l.get("position")||"middle"),y.hoverStyle=null!=w?{text:w,textFill:h.getTextColor(!0),fontStyle:h.getShallow("fontStyle"),fontWeight:h.getShallow("fontWeight"),fontSize:h.getShallow("fontSize"),fontFamily:h.getShallow("fontFamily")}:{text:null},y.ignore=!v&&!m,xa(this)},GM.highlight=function(){this.trigger("emphasis")},GM.downplay=function(){this.trigger("normal")},GM.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},GM.setLinePoints=function(t){var e=this.childOfName("line");Wf(e.shape,t),e.dirty()},u(Hf,lv);var HM=Zf.prototype;HM.isPersistent=function(){return!0},HM.updateData=function(t){var e=this,i=e.group,n=e._lineData;e._lineData=t,n||i.removeAll();var r=jf(t);t.diff(n).add(function(i){Xf(e,t,i,r)}).update(function(i,a){Yf(e,n,t,a,i,r)}).remove(function(t){i.remove(n.getItemGraphicEl(t))}).execute()},HM.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,i){e.updateLayout(t,i)},this)},HM.incrementalPrepareUpdate=function(t){this._seriesScope=jf(t),this._lineData=null,this.group.removeAll()},HM.incrementalUpdate=function(t,e){function i(t){t.isGroup||(t.incremental=t.useHoverLayer=!0)}for(var n=t.start;n=0&&"number"==typeof c&&(c=+c.toFixed(Math.min(m,20))),g.coord[f]=v.coord[f]=c,a=[g,v,{type:l,valueIndex:a.valueIndex,value:c}]}return a=[Df(t,a[0]),Df(t,a[1]),o({},a[2])],a[2].type=a[2].type||"",r(a[2],a[0]),r(a[2],a[1]),a};BM.extend({type:"markLine",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markLineModel;if(e){var n=e.getData(),r=e.__from,a=e.__to;r.each(function(e){Jf(r,e,!0,t,i),Jf(a,e,!1,t,i)}),n.each(function(t){n.setItemLayout(t,[r.getItemLayout(t),a.getItemLayout(t)])}),this.markerGroupMap.get(t.id).updateLayout()}},this)},renderSeries:function(t,e,i,n){function r(e,i,r){var a=e.getItemModel(i);Jf(e,i,r,t,n),e.setItemVisual(i,{symbolSize:a.get("symbolSize")||g[r?0:1],symbol:a.get("symbol",!0)||p[r?0:1],color:a.get("itemStyle.color")||s.getVisual("color")})}var a=t.coordinateSystem,o=t.id,s=t.getData(),l=this.markerGroupMap,h=l.get(o)||l.set(o,new Zf);this.group.add(h.group);var u=tp(a,t,e),c=u.from,d=u.to,f=u.line;e.__from=c,e.__to=d,e.setData(f);var p=e.get("symbol"),g=e.get("symbolSize");_(p)||(p=[p,p]),"number"==typeof g&&(g=[g,g]),u.from.each(function(t){r(c,t,!0),r(d,t,!1)}),f.each(function(t){var e=f.getItemModel(t).get("lineStyle.color");f.setItemVisual(t,{color:e||c.getItemVisual(t,"color")}),f.setItemLayout(t,[c.getItemLayout(t),d.getItemLayout(t)]),f.setItemVisual(t,{fromSymbolSize:c.getItemVisual(t,"symbolSize"),fromSymbol:c.getItemVisual(t,"symbol"),toSymbolSize:d.getItemVisual(t,"symbolSize"),toSymbol:d.getItemVisual(t,"symbol")})}),h.updateData(f),u.line.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),h.__keep=!0,h.group.silent=e.get("silent")||t.get("silent")}}),Yl(function(t){t.markLine=t.markLine||{}}),OM.extend({type:"markArea",defaultOption:{zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}}});var XM=function(t,e,i,n){var r=Df(t,n[0]),o=Df(t,n[1]),s=A,l=r.coord,h=o.coord;l[0]=s(l[0],-1/0),l[1]=s(l[1],-1/0),h[0]=s(h[0],1/0),h[1]=s(h[1],1/0);var u=a([{},r,o]);return u.coord=[r.coord,o.coord],u.x0=r.x,u.y0=r.y,u.x1=o.x,u.y1=o.y,u},YM=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];BM.extend({type:"markArea",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markAreaModel;if(e){var n=e.getData();n.each(function(e){var r=p(YM,function(r){return rp(n,e,r,t,i)});n.setItemLayout(e,r);var a=n.getItemGraphicEl(e);a.setShape("points",r)})}},this)},renderSeries:function(t,e,i,n){var r=t.coordinateSystem,a=t.id,o=t.getData(),l=this.markerGroupMap,h=l.get(a)||l.set(a,{group:new lv});this.group.add(h.group),h.__keep=!0;var u=ap(r,t,e);e.setData(u),u.each(function(e){u.setItemLayout(e,p(YM,function(i){return rp(u,e,i,t,n)})),u.setItemVisual(e,{color:o.getVisual("color")})}),u.diff(h.__data).add(function(t){var e=new Cy({shape:{points:u.getItemLayout(t)}});u.setItemGraphicEl(t,e),h.group.add(e)}).update(function(t,i){var n=h.__data.getItemGraphicEl(i);La(n,{shape:{points:u.getItemLayout(t)}},e,t),h.group.add(n),u.setItemGraphicEl(t,n)}).remove(function(t){var e=h.__data.getItemGraphicEl(t);h.group.remove(e)}).execute(),u.eachItemGraphicEl(function(t,i){var n=u.getItemModel(i),r=n.getModel("label"),a=n.getModel("emphasis.label"),o=u.getItemVisual(i,"color");t.useStyle(s(n.getModel("itemStyle").getItemStyle(),{fill:Ke(o,.4),stroke:o})),t.hoverStyle=n.getModel("emphasis.itemStyle").getItemStyle(),wa(t.style,t.hoverStyle,r,a,{labelFetcher:e,labelDataIndex:i,defaultText:u.getName(i)||"",isRectText:!0,autoColor:o}),xa(t,{}),t.dataModel=e}),h.__data=u,h.group.silent=e.get("silent")||t.get("silent")}}),Yl(function(t){t.markArea=t.markArea||{}});var jM=function(t){var e=t&&t.timeline;_(e)||(e=e?[e]:[]),f(e,function(t){t&&op(t)})};yx.registerSubTypeDefaulter("timeline",function(){return"slider"}),Ul({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),s({currentIndex:i.option.currentIndex},t)}),Ul({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var qM=yx.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(){qM.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),0>t&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],i=t.axisType,r=this._names=[];if("category"===i){var a=[];f(e,function(t,e){var i,o=Vn(t);S(t)?(i=n(t),i.value=e):i=e,a.push(i),b(o)||null!=o&&!isNaN(o)||(o=""),r.push(o+"")}),e=a}var o={category:"ordinal",time:"time"}[i]||"number",s=this._data=new Bw([{name:"value",type:o}],this);s.initData(e,r)},getData:function(){return this._data},getCategories:function(){return"category"===this.get("axisType")?this._names.slice():void 0}}),UM=qM.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}});c(UM,i_);var $M=s_.extend({type:"timeline"}),KM=function(t,e,i,n){Pb.call(this,t,e,i),this.type=n||"value",this.model=null};KM.prototype={constructor:KM,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},u(KM,Pb);var QM=y,JM=f,tI=Math.PI;$M.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(t,e,i){if(this.model=t,this.api=i,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var n=this._layout(t,i),r=this._createGroup("mainGroup"),a=this._createGroup("labelGroup"),o=this._axis=this._createAxis(n,t);t.formatTooltip=function(t){return po(o.scale.getLabel(t))},JM(["AxisLine","AxisTick","Control","CurrentPointer"],function(e){this["_render"+e](n,r,o,t)},this),this._renderAxisLabel(n,a,o,t),this._position(n,t)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.position"),n=t.get("orient"),r=hp(t,e);null==i||"auto"===i?i="horizontal"===n?r.y+r.height/2=0||"+"===i?"left":"right"},o={horizontal:i>=0||"+"===i?"top":"bottom",vertical:"middle"},s={horizontal:0,vertical:tI/2},l="vertical"===n?r.height:r.width,h=t.getModel("controlStyle"),u=h.get("show",!0),c=u?h.get("itemSize"):0,d=u?h.get("itemGap"):0,f=c+d,p=t.get("label.rotate")||0;p=p*tI/180;var g,v,m,y,x=h.get("position",!0),_=u&&h.get("showPlayBtn",!0),w=u&&h.get("showPrevBtn",!0),b=u&&h.get("showNextBtn",!0),S=0,M=l;return"left"===x||"bottom"===x?(_&&(g=[0,0],S+=f),w&&(v=[S,0],S+=f),b&&(m=[M-c,0],M-=f)):(_&&(g=[M-c,0],M-=f),w&&(v=[0,0],S+=f),b&&(m=[M-c,0],M-=f)),y=[S,M],t.get("inverse")&&y.reverse(),{viewRect:r,mainLength:l,orient:n,rotation:s[n],labelRotation:p,labelPosOpt:i,labelAlign:t.get("label.align")||a[n],labelBaseline:t.get("label.verticalAlign")||t.get("label.baseline")||o[n],playPosition:g,prevBtnPosition:v,nextBtnPosition:m,axisExtent:y,controlSize:c,controlGap:d}},_position:function(t){function e(t){var e=t.position;t.origin=[u[0][0]-e[0],u[1][0]-e[1]]}function i(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function n(t,e,i,n,r){t[n]+=i[n][r]-e[n][r]}var r=this._mainGroup,a=this._labelGroup,o=t.viewRect;if("vertical"===t.orient){var s=be(),l=o.x,h=o.y+o.height;Te(s,s,[-l,-h]),Ce(s,s,-tI/2),Te(s,s,[l,h]),o=o.clone(),o.applyTransform(s)}var u=i(o),c=i(r.getBoundingRect()),d=i(a.getBoundingRect()),f=r.position,p=a.position;p[0]=f[0]=u[0][0];var g=t.labelPosOpt;if(isNaN(g)){var v="+"===g?0:1;n(f,c,u,1,v),n(p,d,u,1,1-v)}else{var v=g>=0?0:1;n(f,c,u,1,v),p[1]=f[1]+g}r.attr("position",f),a.attr("position",p),r.rotation=a.rotation=t.rotation,e(r),e(a)},_createAxis:function(t,e){var i=e.getData(),n=e.get("axisType"),r=ou(e,n);r.getTicks=function(){return i.mapArray(["value"],function(t){return t})};var a=i.getDataExtent("value");r.setExtent(a[0],a[1]),r.niceTicks();var o=new KM("value",r,t.axisExtent,n);return o.model=e,o},_createGroup:function(t){var e=this["_"+t]=new lv;return this.group.add(e),e},_renderAxisLine:function(t,e,i,n){var r=i.getExtent();n.get("lineStyle.show")&&e.add(new ky({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:o({lineCap:"round"},n.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(t,e,i,n){var r=n.getData(),a=i.scale.getTicks();JM(a,function(t){var a=i.dataToCoord(t),o=r.getItemModel(t),s=o.getModel("itemStyle"),l=o.getModel("emphasis.itemStyle"),h={position:[a,0],onclick:QM(this._changeTimeline,this,t)},u=cp(o,s,e,h);xa(u,l.getItemStyle()),o.get("tooltip")?(u.dataIndex=t,u.dataModel=n):u.dataIndex=u.dataModel=null},this)},_renderAxisLabel:function(t,e,i,n){var r=i.getLabelModel();if(r.get("show")){var a=n.getData(),o=i.getViewLabels();JM(o,function(n){var r=n.tickValue,o=a.getItemModel(r),s=o.getModel("label"),l=o.getModel("emphasis.label"),h=i.dataToCoord(n.tickValue),u=new xy({position:[h,0],rotation:t.labelRotation-t.rotation,onclick:QM(this._changeTimeline,this,r),silent:!1});ba(u.style,s,{text:n.formattedLabel,textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline}),e.add(u),xa(u,ba({},l))},this)}},_renderControl:function(t,e,i,n){function r(t,i,r,u){if(t){var c={position:t,origin:[a/2,0],rotation:u?-o:0,rectHover:!0,style:s,onclick:r},d=up(n,i,h,c);e.add(d),xa(d,l)}}var a=t.controlSize,o=t.rotation,s=n.getModel("controlStyle").getItemStyle(),l=n.getModel("emphasis.controlStyle").getItemStyle(),h=[0,-a/2,a,a],u=n.getPlayState(),c=n.get("inverse",!0);r(t.nextBtnPosition,"controlStyle.nextIcon",QM(this._changeTimeline,this,c?"-":"+")),r(t.prevBtnPosition,"controlStyle.prevIcon",QM(this._changeTimeline,this,c?"+":"-")),r(t.playPosition,"controlStyle."+(u?"stopIcon":"playIcon"),QM(this._handlePlayClick,this,!u),!0)},_renderCurrentPointer:function(t,e,i,n){var r=n.getData(),a=n.getCurrentIndex(),o=r.getItemModel(a).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=QM(s._handlePointerDrag,s),t.ondragend=QM(s._handlePointerDragend,s),dp(t,a,i,n,!0)},onUpdate:function(t){dp(t,a,i,n)}};this._currentPointer=cp(o,o,this._mainGroup,{},this._currentPointer,l)},_handlePlayClick:function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},_handlePointerDrag:function(t,e,i){this._clearTimer(),this._pointerChangeTimeline([i.offsetX,i.offsetY])},_handlePointerDragend:function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},_pointerChangeTimeline:function(t,e){var i=this._toAxisCoord(t)[0],n=this._axis,r=Ka(n.getExtent().slice());i>r[1]&&(i=r[1]),is&&(n=s,e=a)}),e},_clearTimer:function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},_changeTimeline:function(t){var e=this.model.getCurrentIndex();"+"===t?t=e+1:"-"===t&&(t=e-1),this.api.dispatchAction({type:"timelineChange",currentIndex:t,from:this.uid})}}),Yl(jM),yx.registerSubTypeDefaulter("dataZoom",function(){return"slider"});var eI=["x","y","z","radius","angle","single"],iI=["cartesian2d","polar","singleAxis"],nI=pp(eI,["axisIndex","axis","index","id"]),rI=f,aI=Ka,oI=function(t,e,i,n){this._dimName=t,this._axisIndex=e,this._valueWindow,this._percentWindow,this._dataExtent,this._minMaxSpan,this.ecModel=n,this._dataZoomModel=i};oI.prototype={constructor:oI,hostedBy:function(t){return this._dataZoomModel===t},getDataValueWindow:function(){return this._valueWindow.slice()},getDataPercentWindow:function(){return this._percentWindow.slice()},getTargetSeriesModels:function(){var t=[],e=this.ecModel;return e.eachSeries(function(i){if(fp(i.get("coordinateSystem"))){var n=this._dimName,r=e.queryComponents({mainType:n+"Axis",index:i.get(n+"AxisIndex"),id:i.get(n+"AxisId")})[0];this._axisIndex===(r&&r.componentIndex)&&t.push(i)}},this),t},getAxisModel:function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},getOtherAxisModel:function(){var t,e,i=this._dimName,n=this.ecModel,r=this.getAxisModel(),a="x"===i||"y"===i;a?(e="gridIndex",t="x"===i?"y":"x"):(e="polarIndex",t="angle"===i?"radius":"angle");var o;return n.eachComponent(t+"Axis",function(t){(t.get(e)||0)===(r.get(e)||0)&&(o=t)}),o},getMinMaxSpan:function(){return n(this._minMaxSpan)},calculateDataWindow:function(t){var e=this._dataExtent,i=this.getAxisModel(),n=i.axis.scale,r=this._dataZoomModel.getRangePropMode(),a=[0,100],o=[t.start,t.end],s=[];return rI(["startValue","endValue"],function(e){s.push(null!=t[e]?n.parse(t[e]):null)}),rI([0,1],function(t){var i=s[t],l=o[t];"percent"===r[t]?(null==l&&(l=a[t]),i=n.parse(qa(l,a,e,!0))):l=qa(i,e,a,!0),s[t]=i,o[t]=l}),{valueWindow:aI(s),percentWindow:aI(o)}},reset:function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=vp(this,this._dimName,e);var i=this.calculateDataWindow(t.option);this._valueWindow=i.valueWindow,this._percentWindow=i.percentWindow,xp(this),yp(this)}},restore:function(t){t===this._dataZoomModel&&(this._valueWindow=this._percentWindow=null,yp(this,!0))},filterData:function(t){function e(t){return t>=a[0]&&t<=a[1]}if(t===this._dataZoomModel){var i=this._dimName,n=this.getTargetSeriesModels(),r=t.get("filterMode"),a=this._valueWindow;"none"!==r&&rI(n,function(t){var n=t.getData(),o=n.mapDimension(i,!0);o.length&&("weakFilter"===r?n.filterSelf(function(t){for(var e,i,r,s=0;sa[1];if(h&&!u&&!c)return!0;h&&(r=!0),u&&(e=!0),c&&(i=!0)}return r&&e&&i}):rI(o,function(i){if("empty"===r)t.setData(n.map(i,function(t){return e(t)?t:0/0}));else{var o={};o[i]=a,n.selectRange(o)}}),rI(o,function(t){n.setApproximateExtent(a,t)}))})}}};var sI=f,lI=nI,hI=ih({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(t,e,i){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var n=_p(t);this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=_p(t);r(this.option,t,!0),this.doInit(e)},doInit:function(t){var e=this.option;tg.canvasSupported||(e.realtime=!1),this._setDefaultThrottle(t),wp(this,t),sI([["start","startValue"],["end","endValue"]],function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var t=this._axisProxies;this.eachTargetAxis(function(e,i,n,r){var a=this.dependentModels[e.axis][i],o=a.__dzAxisProxy||(a.__dzAxisProxy=new oI(e.name,i,this,r));t[e.name+"_"+i]=o},this)},_resetTarget:function(){var t=this.option,e=this._judgeAutoMode();lI(function(e){var i=e.axisIndex;t[i]=Nn(t[i])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this.option,e=!1;lI(function(i){null!=t[i.axisIndex]&&(e=!0)},this);var i=t.orient;return null==i&&e?"orient":e?void 0:(null==i&&(t.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var t=!0,e=this.get("orient",!0),i=this.option,n=this.dependentModels;if(t){var r="vertical"===e?"y":"x";n[r+"Axis"].length?(i[r+"AxisIndex"]=[0],t=!1):sI(n.singleAxis,function(n){t&&n.get("orient",!0)===e&&(i.singleAxisIndex=[n.componentIndex],t=!1)})}t&&lI(function(e){if(t){var n=[],r=this.dependentModels[e.axis];if(r.length&&!n.length)for(var a=0,o=r.length;o>a;a++)"category"===r[a].get("type")&&n.push(a);i[e.axisIndex]=n,n.length&&(t=!1)}},this),t&&this.ecModel.eachSeries(function(t){this._isSeriesHasAllAxesTypeOf(t,"value")&&lI(function(e){var n=i[e.axisIndex],r=t.get(e.axisIndex),a=t.get(e.axisId),o=t.ecModel.queryComponents({mainType:e.axis,index:r,id:a})[0];r=o.componentIndex,h(n,r)<0&&n.push(r)})},this)},_autoSetOrient:function(){var t;this.eachTargetAxis(function(e){!t&&(t=e.name)},this),this.option.orient="y"===t?"vertical":"horizontal"},_isSeriesHasAllAxesTypeOf:function(t,e){var i=!0;return lI(function(n){var r=t.get(n.axisIndex),a=this.dependentModels[n.axis][r];a&&a.get("type")===e||(i=!1)},this),i},_setDefaultThrottle:function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},getFirstTargetAxisModel:function(){var t;return lI(function(e){if(null==t){var i=this.get(e.axisIndex);i.length&&(t=this.dependentModels[e.axis][i[0]])}},this),t},eachTargetAxis:function(t,e){var i=this.ecModel;lI(function(n){sI(this.get(n.axisIndex),function(r){t.call(e,n,r,this,i)},this)},this)},getAxisProxy:function(t,e){return this._axisProxies[t+"_"+e]},getAxisModel:function(t,e){var i=this.getAxisProxy(t,e);return i&&i.getAxisModel()},setRawRange:function(t,e){var i=this.option;sI([["start","startValue"],["end","endValue"]],function(e){(null!=t[e[0]]||null!=t[e[1]])&&(i[e[0]]=t[e[0]],i[e[1]]=t[e[1]])},this),!e&&wp(this,t)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();return t?t.getDataPercentWindow():void 0},getValueRange:function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var i=this.findRepresentativeAxisProxy();return i?i.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(t){if(t)return t.__dzAxisProxy;var e=this._axisProxies;for(var i in e)if(e.hasOwnProperty(i)&&e[i].hostedBy(this))return e[i];for(var i in e)if(e.hasOwnProperty(i)&&!e[i].hostedBy(this))return e[i]},getRangePropMode:function(){return this._rangePropMode.slice()}}),uI=s_.extend({type:"dataZoom",render:function(t,e,i){this.dataZoomModel=t,this.ecModel=e,this.api=i},getTargetCoordInfo:function(){function t(t,e,i,n){for(var r,a=0;aa&&(e[1-n]=e[n]+u.sign*a),e}),dI=Dy,fI=qa,pI=Ka,gI=y,vI=f,mI=7,yI=1,xI=30,_I="horizontal",wI="vertical",bI=5,SI=["line","bar","candlestick","scatter"],MI=uI.extend({type:"dataZoom.slider",init:function(t,e){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=e},render:function(t,e,i,n){return MI.superApply(this,"render",arguments),Hs(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),this.dataZoomModel.get("show")===!1?void this.group.removeAll():(n&&"dataZoom"===n.type&&n.from===this.uid||this._buildView(),void this._updateView())},remove:function(){MI.superApply(this,"remove",arguments),Zs(this,"_dispatchZoomAction")},dispose:function(){MI.superApply(this,"dispose",arguments),Zs(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t.removeAll(),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new lv;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,i=this._findCoordRect(),n={width:e.getWidth(),height:e.getHeight()},r=this._orient===_I?{right:n.width-i.x-i.width,top:n.height-xI-mI,width:i.width,height:xI}:{right:mI,top:i.y,width:xI,height:i.height},a=Mo(t.option);f(["right","top","width","height"],function(t){"ph"===a[t]&&(a[t]=r[t])});var o=bo(a,n,t.padding);this._location={x:o.x,y:o.y},this._size=[o.width,o.height],this._orient===wI&&this._size.reverse()},_positionGroup:function(){var t=this.group,e=this._location,i=this._orient,n=this.dataZoomModel.getFirstTargetAxisModel(),r=n&&n.get("inverse"),a=this._displayables.barGroup,o=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(i!==_I||r?i===_I&&r?{scale:o?[-1,1]:[-1,-1]}:i!==wI||r?{scale:o?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:o?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:o?[1,1]:[1,-1]});var s=t.getBoundingRect([a]);t.attr("position",[e.x-s.x,e.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var t=this.dataZoomModel,e=this._size,i=this._displayables.barGroup;i.add(new dI({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40})),i.add(new dI({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:y(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,i=t.series,n=i.getRawData(),r=i.getShadowDim?i.getShadowDim():t.otherDim;if(null!=r){var a=n.getDataExtent(r),o=.3*(a[1]-a[0]);a=[a[0]-o,a[1]+o];var l,h=[0,e[1]],u=[0,e[0]],c=[[e[0],0],[0,0]],d=[],f=u[1]/(n.count()-1),p=0,g=Math.round(n.count()/e[0]);n.each([r],function(t,e){if(g>0&&e%g)return void(p+=f);var i=null==t||isNaN(t)||""===t,n=i?0:fI(t,a,h,!0);i&&!l&&e?(c.push([c[c.length-1][0],0]),d.push([d[d.length-1][0],0])):!i&&l&&(c.push([p,0]),d.push([p,0])),c.push([p,n]),d.push([p,n]),p+=f,l=i});var v=this.dataZoomModel;this._displayables.barGroup.add(new Cy({shape:{points:c},style:s({fill:v.get("dataBackgroundColor")},v.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new Ay({shape:{points:d},style:v.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(e!==!1){var i,n=this.ecModel;return t.eachTargetAxis(function(r,a){var o=t.getAxisProxy(r.name,a).getTargetSeriesModels();f(o,function(t){if(!(i||e!==!0&&h(SI,t.get("type"))<0)){var o,s=n.getComponent(r.axis,a).axis,l=Mp(r.name),u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(o=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),i={thisAxis:s,series:t,thisDim:r.name,otherDim:l,otherAxisInverse:o}}},this)},this),i}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],i=t.handleLabels=[],n=this._displayables.barGroup,r=this._size,a=this.dataZoomModel;n.add(t.filler=new dI({draggable:!0,cursor:Ip(this._orient),drift:gI(this._onDragMove,this,"all"),onmousemove:function(t){Ig(t.event)},ondragstart:gI(this._showDataInfo,this,!0),ondragend:gI(this._onDragEnd,this),onmouseover:gI(this._showDataInfo,this,!0),onmouseout:gI(this._showDataInfo,this,!1),style:{fill:a.get("fillerColor"),textPosition:"inside"}})),n.add(new dI(na({silent:!0,shape:{x:0,y:0,width:r[0],height:r[1]},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:yI,fill:"rgba(0,0,0,0)"}}))),vI([0,1],function(t){var r=Va(a.get("handleIcon"),{cursor:Ip(this._orient),draggable:!0,drift:gI(this._onDragMove,this,t),onmousemove:function(t){Ig(t.event) + },ondragend:gI(this._onDragEnd,this),onmouseover:gI(this._showDataInfo,this,!0),onmouseout:gI(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),o=r.getBoundingRect();this._handleHeight=Ua(a.get("handleSize"),this._size[1]),this._handleWidth=o.width/o.height*this._handleHeight,r.setStyle(a.getModel("handleStyle").getItemStyle());var s=a.get("handleColor");null!=s&&(r.style.fill=s),n.add(e[t]=r);var l=a.textStyleModel;this.group.add(i[t]=new xy({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",textFill:l.getTextColor(),textFont:l.getFont()},z2:10}))},this)},_resetInterval:function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[fI(t[0],[0,100],e,!0),fI(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var i=this.dataZoomModel,n=this._handleEnds,r=this._getViewExtent(),a=i.findRepresentativeAxisProxy().getMinMaxSpan(),o=[0,100];cI(e,n,r,i.get("zoomLock")?"all":t,null!=a.minSpan?fI(a.minSpan,o,r,!0):null,null!=a.maxSpan?fI(a.maxSpan,o,r,!0):null);var s=this._range,l=this._range=pI([fI(n[0],r,o,!0),fI(n[1],r,o,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},_updateView:function(t){var e=this._displayables,i=this._handleEnds,n=pI(i.slice()),r=this._size;vI([0,1],function(t){var n=e.handles[t],a=this._handleHeight;n.attr({scale:[a/2,a/2],position:[i[t],r[1]/2-a/2]})},this),e.filler.setShape({x:n[0],y:0,width:n[1]-n[0],height:r[1]}),this._updateDataInfo(t)},_updateDataInfo:function(t){function e(t){var e=za(n.handles[t].parent,this.group),i=Ra(0===t?"right":"left",e),s=this._handleWidth/2+bI,l=Ea([c[t]+(0===t?-s:s),this._size[1]/2],e);r[t].setStyle({x:l[0],y:l[1],textVerticalAlign:a===_I?"middle":i,textAlign:a===_I?i:"center",text:o[t]})}var i=this.dataZoomModel,n=this._displayables,r=n.handleLabels,a=this._orient,o=["",""];if(i.get("showDetail")){var s=i.findRepresentativeAxisProxy();if(s){var l=s.getAxisModel().axis,h=this._range,u=t?s.calculateDataWindow({start:h[0],end:h[1]}).valueWindow:s.getDataValueWindow();o=[this._formatLabel(u[0],l),this._formatLabel(u[1],l)]}}var c=pI(this._handleEnds.slice());e.call(this,0),e.call(this,1)},_formatLabel:function(t,e){var i=this.dataZoomModel,n=i.get("labelFormatter"),r=i.get("labelPrecision");(null==r||"auto"===r)&&(r=e.getPixelPrecision());var a=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel(Math.round(t)):t.toFixed(Math.min(r,20));return w(n)?n(t,a):b(n)?n.replace("{value}",a):a},_showDataInfo:function(t){t=this._dragging||t;var e=this._displayables.handleLabels;e[0].attr("invisible",!t),e[1].attr("invisible",!t)},_onDragMove:function(t,e,i){this._dragging=!0;var n=this._displayables.barGroup.getLocalTransform(),r=Ea([e,i],n,!0),a=this._updateInterval(t,r[0]),o=this.dataZoomModel.get("realtime");this._updateView(!o),a&&o&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1);var t=this.dataZoomModel.get("realtime");!t&&this._dispatchZoomAction()},_onClickPanelClick:function(t){var e=this._size,i=this._displayables.barGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(i[0]<0||i[0]>e[0]||i[1]<0||i[1]>e[1])){var n=this._handleEnds,r=(n[0]+n[1])/2,a=this._updateInterval("all",i[0]-r);this._updateView(),a&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var t;if(vI(this.getTargetCoordInfo(),function(e){if(!t&&e.length){var i=e[0].model.coordinateSystem;t=i.getRect&&i.getRect()}}),!t){var e=this.api.getWidth(),i=this.api.getHeight();t={x:.2*e,y:.2*i,width:.6*e,height:.6*i}}return t}});hI.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}});var II="\x00_ec_interaction_mutex";Ul({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),c(Ap,bg);var TI="\x00_ec_dataZoom_roams",CI=y,AI=uI.extend({type:"dataZoom.inside",init:function(){this._range},render:function(t,e,i){AI.superApply(this,"render",arguments),this._range=t.getPercentRange(),f(this.getTargetCoordInfo(),function(e,n){var r=p(e,function(t){return Fp(t.model)});f(e,function(e){var a=e.model,o={};f(["pan","zoom","scrollMove"],function(t){o[t]=CI(DI[t],this,e,n)},this),Bp(i,{coordId:Fp(a),allCoordIds:r,containsPoint:function(t,e,i){return a.coordinateSystem.containPoint([e,i])},dataZoomId:t.id,dataZoomModel:t,getRange:o})},this)},this)},dispose:function(){Np(this.api,this.dataZoomModel.id),AI.superApply(this,"dispose",arguments),this._range=null}}),DI={zoom:function(t,e,i,n){var r=this._range,a=r.slice(),o=t.axisModels[0];if(o){var s=kI[e](null,[n.originX,n.originY],o,i,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(a[1]-a[0])+a[0],h=Math.max(1/n.scale,0);a[0]=(a[0]-l)*h+l,a[1]=(a[1]-l)*h+l;var u=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return cI(0,a,[0,100],0,u.minSpan,u.maxSpan),this._range=a,r[0]!==a[0]||r[1]!==a[1]?a:void 0}},pan:Xp(function(t,e,i,n,r,a){var o=kI[n]([a.oldX,a.oldY],[a.newX,a.newY],e,r,i);return o.signal*(t[1]-t[0])*o.pixel/o.pixelLength}),scrollMove:Xp(function(t,e,i,n,r,a){var o=kI[n]([0,0],[a.scrollDelta,a.scrollDelta],e,r,i);return o.signal*(t[1]-t[0])*a.scrollDelta})},kI={grid:function(t,e,i,n,r){var a=i.axis,o={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===a.dim?(o.pixel=e[0]-t[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=a.inverse?1:-1):(o.pixel=e[1]-t[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=a.inverse?-1:1),o},polar:function(t,e,i,n,r){var a=i.axis,o={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),h=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===i.mainType?(o.pixel=e[0]-t[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=a.inverse?1:-1):(o.pixel=e[1]-t[1],o.pixelLength=h[1]-h[0],o.pixelStart=h[0],o.signal=a.inverse?-1:1),o},singleAxis:function(t,e,i,n,r){var a=i.axis,o=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===a.orient?(s.pixel=e[0]-t[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=a.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=a.inverse?-1:1),s}};jl({getTargetSeries:function(t){var e=N();return t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){var r=n.getAxisProxy(t.name,i);f(r.getTargetSeriesModels(),function(t){e.set(t.uid,t)})})}),e},modifyOutputEnd:!0,overallReset:function(t,e){t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).reset(n,e)}),t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).filterData(n,e)})}),t.eachComponent("dataZoom",function(t){var e=t.findRepresentativeAxisProxy(),i=e.getDataPercentWindow(),n=e.getDataValueWindow();t.setRawRange({start:i[0],end:i[1],startValue:n[0],endValue:n[1]},!0)})}}),Ul("dataZoom",function(t,e){var i=gp(y(e.eachComponent,e,"dataZoom"),nI,function(t,e){return t.get(e.axisIndex)}),n=[];e.eachComponent({mainType:"dataZoom",query:t},function(t){n.push.apply(n,i(t).nodes)}),f(n,function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})});var PI,LI="urn:schemas-microsoft-com:vml",OI="undefined"==typeof window?null:window,zI=!1,EI=OI&&OI.document;if(EI&&!tg.canvasSupported)try{!EI.namespaces.zrvml&&EI.namespaces.add("zrvml",LI),PI=function(t){return EI.createElement("')}}catch(RI){PI=function(t){return EI.createElement("<"+t+' xmlns="'+LI+'" class="zrvml">')}}var BI=qm.CMD,NI=Math.round,FI=Math.sqrt,VI=Math.abs,WI=Math.cos,GI=Math.sin,HI=Math.max;if(!tg.canvasSupported){var ZI=",",XI="progid:DXImageTransform.Microsoft",YI=21600,jI=YI/2,qI=1e5,UI=1e3,$I=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=YI+","+YI,t.coordorigin="0,0"},KI=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},QI=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},JI=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},tT=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},eT=function(t,e,i){return(parseFloat(t)||0)*qI+(parseFloat(e)||0)*UI+i},iT=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},nT=function(t,e,i){var n=He(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=QI(n[0],n[1],n[2]),t.opacity=i*n[3])},rT=function(t){var e=He(t);return[QI(e[0],e[1],e[2]),e[3]]},aT=function(t,e,i){var n=e.fill;if(null!=n)if(n instanceof Ey){var r,a=0,o=[0,0],s=0,l=1,h=i.getBoundingRect(),u=h.width,c=h.height;if("linear"===n.type){r="gradient";var d=i.transform,f=[n.x*u,n.y*c],p=[n.x2*u,n.y2*c];d&&(ae(f,f,d),ae(p,p,d));var g=p[0]-f[0],v=p[1]-f[1];a=180*Math.atan2(g,v)/Math.PI,0>a&&(a+=360),1e-6>a&&(a=0)}else{r="gradientradial";var f=[n.x*u,n.y*c],d=i.transform,m=i.scale,y=u,x=c;o=[(f[0]-h.x)/y,(f[1]-h.y)/x],d&&ae(f,f,d),y/=m[0]*YI,x/=m[1]*YI;var _=HI(y,x);s=0/_,l=2*n.r/_-s}var w=n.colorStops.slice();w.sort(function(t,e){return t.offset-e.offset});for(var b=w.length,S=[],M=[],I=0;b>I;I++){var T=w[I],C=rT(T.color);M.push(T.offset*l+s+" "+C[0]),(0===I||I===b-1)&&S.push(C)}if(b>=2){var A=S[0][0],D=S[1][0],k=S[0][1]*e.opacity,P=S[1][1]*e.opacity;t.type=r,t.method="none",t.focus="100%",t.angle=a,t.color=A,t.color2=D,t.colors=M.join(","),t.opacity=P,t.opacity2=k}"radial"===r&&(t.focusposition=o.join(","))}else nT(t,n,e.opacity)},oT=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof Ey||nT(t,e.stroke,e.opacity)},sT=function(t,e,i,n){var r="fill"==e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(r||!r&&i.lineWidth)?(t[r?"filled":"stroked"]="true",i[e]instanceof Ey&&tT(t,a),a||(a=Yp(e)),r?aT(a,i,n):oT(a,i),JI(t,a)):(t[r?"filled":"stroked"]="false",tT(t,a))},lT=[[],[],[]],hT=function(t,e){var i,n,r,a,o,s,l=BI.M,h=BI.C,u=BI.L,c=BI.A,d=BI.Q,f=[],p=t.data,g=t.len();for(a=0;g>a;){switch(r=p[a++],n="",i=0,r){case l:n=" m ",i=1,o=p[a++],s=p[a++],lT[0][0]=o,lT[0][1]=s;break;case u:n=" l ",i=1,o=p[a++],s=p[a++],lT[0][0]=o,lT[0][1]=s;break;case d:case h:n=" c ",i=3;var v,m,y=p[a++],x=p[a++],_=p[a++],w=p[a++];r===d?(v=_,m=w,_=(_+2*y)/3,w=(w+2*x)/3,y=(o+2*y)/3,x=(s+2*x)/3):(v=p[a++],m=p[a++]),lT[0][0]=y,lT[0][1]=x,lT[1][0]=_,lT[1][1]=w,lT[2][0]=v,lT[2][1]=m,o=v,s=m;break;case c:var b=0,S=0,M=1,I=1,T=0;e&&(b=e[4],S=e[5],M=FI(e[0]*e[0]+e[1]*e[1]),I=FI(e[2]*e[2]+e[3]*e[3]),T=Math.atan2(-e[1]/I,e[0]/M));var C=p[a++],A=p[a++],D=p[a++],k=p[a++],P=p[a++]+T,L=p[a++]+P+T;a++;var O=p[a++],z=C+WI(P)*D,E=A+GI(P)*k,y=C+WI(L)*D,x=A+GI(L)*k,R=O?" wa ":" at ";Math.abs(z-y)<1e-4&&(Math.abs(L-P)>.01?O&&(z+=270/YI):Math.abs(E-A)<1e-4?O&&C>z||!O&&z>C?x-=270/YI:x+=270/YI:O&&A>E||!O&&E>A?y+=270/YI:y-=270/YI),f.push(R,NI(((C-D)*M+b)*YI-jI),ZI,NI(((A-k)*I+S)*YI-jI),ZI,NI(((C+D)*M+b)*YI-jI),ZI,NI(((A+k)*I+S)*YI-jI),ZI,NI((z*M+b)*YI-jI),ZI,NI((E*I+S)*YI-jI),ZI,NI((y*M+b)*YI-jI),ZI,NI((x*I+S)*YI-jI)),o=y,s=x;break;case BI.R:var B=lT[0],N=lT[1];B[0]=p[a++],B[1]=p[a++],N[0]=B[0]+p[a++],N[1]=B[1]+p[a++],e&&(ae(B,B,e),ae(N,N,e)),B[0]=NI(B[0]*YI-jI),N[0]=NI(N[0]*YI-jI),B[1]=NI(B[1]*YI-jI),N[1]=NI(N[1]*YI-jI),f.push(" m ",B[0],ZI,B[1]," l ",N[0],ZI,B[1]," l ",N[0],ZI,N[1]," l ",B[0],ZI,N[1]);break;case BI.Z:f.push(" x ")}if(i>0){f.push(n);for(var F=0;i>F;F++){var V=lT[F];e&&ae(V,V,e),f.push(NI(V[0]*YI-jI),ZI,NI(V[1]*YI-jI),i-1>F?ZI:"")}}}return f.join("")};Fr.prototype.brushVML=function(t){var e=this.style,i=this._vmlEl;i||(i=Yp("shape"),$I(i),this._vmlEl=i),sT(i,"fill",e,this),sT(i,"stroke",e,this);var n=this.transform,r=null!=n,a=i.getElementsByTagName("stroke")[0];if(a){var o=e.lineWidth;if(r&&!e.strokeNoScale){var s=n[0]*n[3]-n[1]*n[2];o*=FI(VI(s))}a.weight=o+"px"}var l=this.path||(this.path=new qm);this.__dirtyPath&&(l.beginPath(),this.buildPath(l,this.shape),l.toStatic(),this.__dirtyPath=!1),i.path=hT(l,this.transform),i.style.zIndex=eT(this.zlevel,this.z,this.z2),JI(t,i),null!=e.text?this.drawRectText(t,this.getBoundingRect()):this.removeRectText(t)},Fr.prototype.onRemove=function(t){tT(t,this._vmlEl),this.removeRectText(t)},Fr.prototype.onAdd=function(t){JI(t,this._vmlEl),this.appendRectText(t)};var uT=function(t){return"object"==typeof t&&t.tagName&&"IMG"===t.tagName.toUpperCase()};yn.prototype.brushVML=function(t){var e,i,n=this.style,r=n.image;if(uT(r)){var a=r.src;if(a===this._imageSrc)e=this._imageWidth,i=this._imageHeight;else{var o=r.runtimeStyle,s=o.width,l=o.height;o.width="auto",o.height="auto",e=r.width,i=r.height,o.width=s,o.height=l,this._imageSrc=a,this._imageWidth=e,this._imageHeight=i}r=a}else r===this._imageSrc&&(e=this._imageWidth,i=this._imageHeight);if(r){var h=n.x||0,u=n.y||0,c=n.width,d=n.height,f=n.sWidth,p=n.sHeight,g=n.sx||0,v=n.sy||0,m=f&&p,y=this._vmlEl;y||(y=EI.createElement("div"),$I(y),this._vmlEl=y);var x,_=y.style,w=!1,b=1,S=1;if(this.transform&&(x=this.transform,b=FI(x[0]*x[0]+x[1]*x[1]),S=FI(x[2]*x[2]+x[3]*x[3]),w=x[1]||x[2]),w){var M=[h,u],I=[h+c,u],T=[h,u+d],C=[h+c,u+d];ae(M,M,x),ae(I,I,x),ae(T,T,x),ae(C,C,x);var A=HI(M[0],I[0],T[0],C[0]),D=HI(M[1],I[1],T[1],C[1]),k=[];k.push("M11=",x[0]/b,ZI,"M12=",x[2]/S,ZI,"M21=",x[1]/b,ZI,"M22=",x[3]/S,ZI,"Dx=",NI(h*b+x[4]),ZI,"Dy=",NI(u*S+x[5])),_.padding="0 "+NI(A)+"px "+NI(D)+"px 0",_.filter=XI+".Matrix("+k.join("")+", SizingMethod=clip)"}else x&&(h=h*b+x[4],u=u*S+x[5]),_.filter="",_.left=NI(h)+"px",_.top=NI(u)+"px";var P=this._imageEl,L=this._cropEl;P||(P=EI.createElement("div"),this._imageEl=P);var O=P.style;if(m){if(e&&i)O.width=NI(b*e*c/f)+"px",O.height=NI(S*i*d/p)+"px";else{var z=new Image,E=this;z.onload=function(){z.onload=null,e=z.width,i=z.height,O.width=NI(b*e*c/f)+"px",O.height=NI(S*i*d/p)+"px",E._imageWidth=e,E._imageHeight=i,E._imageSrc=r},z.src=r}L||(L=EI.createElement("div"),L.style.overflow="hidden",this._cropEl=L);var R=L.style;R.width=NI((c+g*c/f)*b),R.height=NI((d+v*d/p)*S),R.filter=XI+".Matrix(Dx="+-g*c/f*b+",Dy="+-v*d/p*S+")",L.parentNode||y.appendChild(L),P.parentNode!=L&&L.appendChild(P)}else O.width=NI(b*c)+"px",O.height=NI(S*d)+"px",y.appendChild(P),L&&L.parentNode&&(y.removeChild(L),this._cropEl=null);var B="",N=n.opacity;1>N&&(B+=".Alpha(opacity="+NI(100*N)+") "),B+=XI+".AlphaImageLoader(src="+r+", SizingMethod=scale)",O.filter=B,y.style.zIndex=eT(this.zlevel,this.z,this.z2),JI(t,y),null!=n.text&&this.drawRectText(t,this.getBoundingRect())}},yn.prototype.onRemove=function(t){tT(t,this._vmlEl),this._vmlEl=null,this._cropEl=null,this._imageEl=null,this.removeRectText(t)},yn.prototype.onAdd=function(t){JI(t,this._vmlEl),this.appendRectText(t)};var cT,dT="normal",fT={},pT=0,gT=100,vT=document.createElement("div"),mT=function(t){var e=fT[t];if(!e){pT>gT&&(pT=0,fT={});var i,n=vT.style;try{n.font=t,i=n.fontFamily.split(",")[0]}catch(r){}e={style:n.fontStyle||dT,variant:n.fontVariant||dT,weight:n.fontWeight||dT,size:0|parseFloat(n.fontSize||12),family:i||"Microsoft YaHei"},fT[t]=e,pT++}return e};Oi("measureText",function(t,e){var i=EI;cT||(cT=i.createElement("div"),cT.style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",EI.body.appendChild(cT));try{cT.style.font=e}catch(n){}return cT.innerHTML="",cT.appendChild(i.createTextNode(t)),{width:cT.offsetWidth}});for(var yT=new gi,xT=function(t,e,i,n){var r=this.style;this.__dirty&&Qi(r,!0);var a=r.text;if(null!=a&&(a+=""),a){if(r.rich){var o=qi(a,r);a=[];for(var s=0;s'; + + oriIcon += ''; + + var selectHtml = '
' + + '
' + + '
' + + '' + + oriIcon + + '' + + '' + + '
' + + '
' + + '
' + + '123' + + '
'; + $(elem).after(selectHtml); + return a; + }, + /** + * 展开/折叠下拉框 + */ + toggleSelect: function () { + var item = '#' + TITLE_ID + ' .layui-iconpicker-item,#' + TITLE_ID + ' .layui-iconpicker-item .layui-edge'; + a.event('click', item, function (e) { + var $icon = $('#' + ICON_BODY); + if ($icon.hasClass(selected)) { + $icon.removeClass(selected).addClass(unselect); + } else { + // 隐藏其他picker + $('.layui-form-select').removeClass(selected); + // 显示当前picker + $icon.addClass(selected).removeClass(unselect); + } + e.stopPropagation(); + }); + return a; + }, + /** + * 绘制主体部分 + */ + createBody: function () { + // 获取数据 + var searchHtml = ''; + + if (search) { + searchHtml = ''; + } + + // 组合dom + var bodyHtml = '
' + + searchHtml + + '
' + + '
'; + $('#' + ICON_BODY).find('.layui-anim').eq(0).html(bodyHtml); + a.search().createList().check().page(); + + return a; + }, + /** + * 绘制图标列表 + * @param text 模糊查询关键字 + * @returns {string} + */ + createList: function (text) { + var d = data, + l = d.length, + pageHtml = '', + listHtml = $('
')//'
'; + + // 计算分页数据 + var _limit = limit, // 每页显示数量 + _pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1), // 总计多少页 + _id = PAGE_ID; + + // 图标列表 + var icons = []; + + for (var i = 0; i < l; i++) { + var obj = d[i]; + + // 判断是否模糊查询 + if (text && obj.indexOf(text) === -1) { + continue; + } + + // 是否自定义格子宽度 + var style = ''; + if (cellWidth !== null) { + style += ' style="width:' + cellWidth + '"'; + } + + // 每个图标dom + var icon = '
'; + + icon += ''; + + icon += '
'; + + icons.push(icon); + } + + // 查询出图标后再分页 + l = icons.length; + _pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1); + for (var i = 0; i < _pages; i++) { + // 按limit分块 + var lm = $('
'); + + for (var j = i * _limit; j < (i + 1) * _limit && j < l; j++) { + lm.append(icons[j]); + } + + listHtml.append(lm); + } + + // 无数据 + if (l === 0) { + listHtml.append('

无数据

'); + } + + // 判断是否分页 + if (page) { + $('#' + PICKER_BODY).addClass('layui-iconpicker-body-page'); + pageHtml = '
' + + '
' + + '1/' + + '' + _pages + '' + + ' (' + l + ')' + + '
' + + '
' + + ' ' + + ' ' + + '
' + + '
'; + } + + + $('#' + ICON_BODY).find('.layui-anim').find('.' + LIST_BOX).html('').append(listHtml).append(pageHtml); + return a; + }, + // 阻止Layui的一些默认事件 + preventEvent: function () { + var item = '#' + ICON_BODY + ' .layui-anim'; + a.event('click', item, function (e) { + e.stopPropagation(); + }); + return a; + }, + // 分页 + page: function () { + var icon = '#' + PAGE_ID + ' .layui-iconpicker-page-operate .layui-icon'; + + $(icon).unbind('click'); + a.event('click', icon, function (e) { + var elem = e.currentTarget, + total = parseInt($('#' + PAGE_ID + '-pages').html()), + isPrev = $(elem).attr('prev') !== undefined, + // 按钮上标的页码 + index = parseInt($(elem).attr('data-index')), + $cur = $('#' + PAGE_ID + '-current'), + // 点击时正在显示的页码 + current = parseInt($cur.html()); + + // 分页数据 + if (isPrev && current > 1) { + current = current - 1; + $(icon + '[prev]').attr('data-index', current); + } else if (!isPrev && current < total) { + current = current + 1; + $(icon + '[next]').attr('data-index', current); + } + $cur.html(current); + + // 图标数据 + $('#' + ICON_BODY + ' .layui-iconpicker-icon-limit').hide(); + $('#layui-iconpicker-icon-limit-' + tmp + current).show(); + e.stopPropagation(); + }); + return a; + }, + /** + * 搜索 + */ + search: function () { + var item = '#' + PICKER_BODY + ' .layui-iconpicker-search .layui-input'; + a.event('input propertychange', item, function (e) { + var elem = e.target, + t = $(elem).val(); + a.createList(t); + }); + return a; + }, + /** + * 点击选中图标 + */ + check: function () { + var item = '#' + PICKER_BODY + ' .layui-iconpicker-icon-item'; + a.event('click', item, function (e) { + var el = $(e.currentTarget).find('.fa'), + icon = ''; + + var clsArr = el.attr('class').split(/[\s\n]/), + cls = clsArr[1], + icon = cls; + $('#' + TITLE_ID).find('.layui-iconpicker-item .fa').html('').attr('class', clsArr.join(' ')); + + + $('#' + ICON_BODY).removeClass(selected).addClass(unselect); + $(elem).val(icon).attr('value', icon); + // 回调 + if (click) { + click({ + icon: icon + }); + } + + }); + return a; + }, + // 监听原始input数值改变 + inputListen: function () { + var el = $(elem); + a.event('change', elem, function () { + var value = el.val(); + }) + // el.change(function(){ + + // }); + return a; + }, + event: function (evt, el, fn) { + $(BODY).on(evt, el, fn); + } + }; + + var common = { + /** + * 加载样式表 + */ + loadCss: function () { + var css = '.layui-iconpicker {max-width: 280px;}.layui-iconpicker .layui-anim{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box;}.layui-iconpicker-item{border:1px solid #e6e6e6;width:90px;height:38px;border-radius:4px;cursor:pointer;position:relative;}.layui-iconpicker-icon{border-right:1px solid #e6e6e6;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;width:60px;height:100%;float:left;text-align:center;background:#fff;transition:all .3s;}.layui-iconpicker-icon i{line-height:38px;font-size:18px;}.layui-iconpicker-item > .layui-edge{left:70px;}.layui-iconpicker-item:hover{border-color:#D2D2D2!important;}.layui-iconpicker-item:hover .layui-iconpicker-icon{border-color:#D2D2D2!important;}.layui-iconpicker.layui-form-selected .layui-anim{display:block;}.layui-iconpicker-body{padding:6px;}.layui-iconpicker .layui-iconpicker-list{background-color:#fff;border:1px solid #ccc;border-radius:4px;}.layui-iconpicker .layui-iconpicker-icon-item{display:inline-block;width:21.1%;line-height:36px;text-align:center;cursor:pointer;vertical-align:top;height:36px;margin:4px;border:1px solid #ddd;border-radius:2px;transition:300ms;}.layui-iconpicker .layui-iconpicker-icon-item i.layui-icon{font-size:17px;}.layui-iconpicker .layui-iconpicker-icon-item:hover{background-color:#eee;border-color:#ccc;-webkit-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;-moz-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;box-shadow:0 0 2px #aaa,0 0 2px #fff inset;text-shadow:0 0 1px #fff;}.layui-iconpicker-search{position:relative;margin:0 0 6px 0;border:1px solid #e6e6e6;border-radius:2px;transition:300ms;}.layui-iconpicker-search:hover{border-color:#D2D2D2!important;}.layui-iconpicker-search .layui-input{cursor:text;display:inline-block;width:86%;border:none;padding-right:0;margin-top:1px;}.layui-iconpicker-search .layui-icon{position:absolute;top:11px;right:4%;}.layui-iconpicker-tips{text-align:center;padding:8px 0;cursor:not-allowed;}.layui-iconpicker-page{margin-top:6px;margin-bottom:-6px;font-size:12px;padding:0 2px;}.layui-iconpicker-page-count{display:inline-block;}.layui-iconpicker-page-operate{display:inline-block;float:right;cursor:default;}.layui-iconpicker-page-operate .layui-icon{font-size:12px;cursor:pointer;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit{display:none;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit:first-child{display:block;}'; + var $style = $('head').find('style[iconpicker]'); + if ($style.length === 0) { + $('head').append(''); + } + }, + + /** + * 获取数据 + */ + getData: function (url) { + var iconlist = []; + $.ajax({ + url: url, + type: 'get', + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + async: false, + success: function (ret) { + var exp = /fa-var-(.*):/ig; + var result; + while ((result = exp.exec(ret)) != null) { + iconlist.push('fa-' + result[1]); + } + }, + error: function (xhr, textstatus, thrown) { + layer.msg('fa图标接口有误'); + } + }); + return iconlist; + } + }; + + a.init(); + return new IconPicker(); + }; + + /** + * 选中图标 + * @param filter lay-filter + * @param iconName 图标名称,自动识别fontClass/unicode + */ + IconPicker.prototype.checkIcon = function (filter, iconName) { + var el = $('*[lay-filter=' + filter + ']'), + p = el.next().find('.layui-iconpicker-item .fa'), + c = iconName; + + if (c.indexOf('#xe') > 0) { + p.html(c); + } else { + p.html('').attr('class', 'fa ' + c); + } + el.attr('value', c).val(c); + }; + + var iconPicker = new IconPicker(); + exports(_MOD, iconPicker); +}); \ No newline at end of file diff --git a/assets/js/lay-module/layarea/layarea.js b/assets/js/lay-module/layarea/layarea.js new file mode 100755 index 0000000..d62e384 --- /dev/null +++ b/assets/js/lay-module/layarea/layarea.js @@ -0,0 +1,4040 @@ +layui.define(['layer', 'form', 'laytpl'], function (exports) { + "use strict"; + + let $ = layui.$ + , form = layui.form + , layarea = { + _id: 0 + , config: {} + , set: function (options) { + let that = this; + that.config = $.extend({}, that.config, options); + return that; + } + , on: function (events, callback) { + return layui.onevent.call(this, 'layarea', events, callback); + } + } + , thisArea = function () { + let that = this; + return { + layarea: function (files) { + that.layarea.call(that, files); + } + , config: that.config + } + } + , Class = function (options) { + let that = this; + that.config = $.extend({}, that.config, layarea.config, options); + that.render(); + }; + + let areaList = { + province_list: { + 110000: '北京市', + 120000: '天津市', + 130000: '河北省', + 140000: '山西省', + 150000: '内蒙古自治区', + 210000: '辽宁省', + 220000: '吉林省', + 230000: '黑龙江省', + 310000: '上海市', + 320000: '江苏省', + 330000: '浙江省', + 340000: '安徽省', + 350000: '福建省', + 360000: '江西省', + 370000: '山东省', + 410000: '河南省', + 420000: '湖北省', + 430000: '湖南省', + 440000: '广东省', + 450000: '广西壮族自治区', + 460000: '海南省', + 500000: '重庆市', + 510000: '四川省', + 520000: '贵州省', + 530000: '云南省', + 540000: '西藏自治区', + 610000: '陕西省', + 620000: '甘肃省', + 630000: '青海省', + 640000: '宁夏回族自治区', + 650000: '新疆维吾尔自治区', + 710000: '台湾省', + 810000: '香港特别行政区', + 820000: '澳门特别行政区', + 900000: '海外' + }, + city_list: { + 110100: '北京市', + 120100: '天津市', + 130100: '石家庄市', + 130200: '唐山市', + 130300: '秦皇岛市', + 130400: '邯郸市', + 130500: '邢台市', + 130600: '保定市', + 130700: '张家口市', + 130800: '承德市', + 130900: '沧州市', + 131000: '廊坊市', + 131100: '衡水市', + 139000: '省直辖县', + 140100: '太原市', + 140200: '大同市', + 140300: '阳泉市', + 140400: '长治市', + 140500: '晋城市', + 140600: '朔州市', + 140700: '晋中市', + 140800: '运城市', + 140900: '忻州市', + 141000: '临汾市', + 141100: '吕梁市', + 150100: '呼和浩特市', + 150200: '包头市', + 150300: '乌海市', + 150400: '赤峰市', + 150500: '通辽市', + 150600: '鄂尔多斯市', + 150700: '呼伦贝尔市', + 150800: '巴彦淖尔市', + 150900: '乌兰察布市', + 152200: '兴安盟', + 152500: '锡林郭勒盟', + 152900: '阿拉善盟', + 210100: '沈阳市', + 210200: '大连市', + 210300: '鞍山市', + 210400: '抚顺市', + 210500: '本溪市', + 210600: '丹东市', + 210700: '锦州市', + 210800: '营口市', + 210900: '阜新市', + 211000: '辽阳市', + 211100: '盘锦市', + 211200: '铁岭市', + 211300: '朝阳市', + 211400: '葫芦岛市', + 220100: '长春市', + 220200: '吉林市', + 220300: '四平市', + 220400: '辽源市', + 220500: '通化市', + 220600: '白山市', + 220700: '松原市', + 220800: '白城市', + 222400: '延边朝鲜族自治州', + 230100: '哈尔滨市', + 230200: '齐齐哈尔市', + 230300: '鸡西市', + 230400: '鹤岗市', + 230500: '双鸭山市', + 230600: '大庆市', + 230700: '伊春市', + 230800: '佳木斯市', + 230900: '七台河市', + 231000: '牡丹江市', + 231100: '黑河市', + 231200: '绥化市', + 232700: '大兴安岭地区', + 310100: '上海市', + 320100: '南京市', + 320200: '无锡市', + 320300: '徐州市', + 320400: '常州市', + 320500: '苏州市', + 320600: '南通市', + 320700: '连云港市', + 320800: '淮安市', + 320900: '盐城市', + 321000: '扬州市', + 321100: '镇江市', + 321200: '泰州市', + 321300: '宿迁市', + 330100: '杭州市', + 330200: '宁波市', + 330300: '温州市', + 330400: '嘉兴市', + 330500: '湖州市', + 330600: '绍兴市', + 330700: '金华市', + 330800: '衢州市', + 330900: '舟山市', + 331000: '台州市', + 331100: '丽水市', + 340100: '合肥市', + 340200: '芜湖市', + 340300: '蚌埠市', + 340400: '淮南市', + 340500: '马鞍山市', + 340600: '淮北市', + 340700: '铜陵市', + 340800: '安庆市', + 341000: '黄山市', + 341100: '滁州市', + 341200: '阜阳市', + 341300: '宿州市', + 341500: '六安市', + 341600: '亳州市', + 341700: '池州市', + 341800: '宣城市', + 350100: '福州市', + 350200: '厦门市', + 350300: '莆田市', + 350400: '三明市', + 350500: '泉州市', + 350600: '漳州市', + 350700: '南平市', + 350800: '龙岩市', + 350900: '宁德市', + 360100: '南昌市', + 360200: '景德镇市', + 360300: '萍乡市', + 360400: '九江市', + 360500: '新余市', + 360600: '鹰潭市', + 360700: '赣州市', + 360800: '吉安市', + 360900: '宜春市', + 361000: '抚州市', + 361100: '上饶市', + 370100: '济南市', + 370200: '青岛市', + 370300: '淄博市', + 370400: '枣庄市', + 370500: '东营市', + 370600: '烟台市', + 370700: '潍坊市', + 370800: '济宁市', + 370900: '泰安市', + 371000: '威海市', + 371100: '日照市', + 371200: '莱芜市', + 371300: '临沂市', + 371400: '德州市', + 371500: '聊城市', + 371600: '滨州市', + 371700: '菏泽市', + 410100: '郑州市', + 410200: '开封市', + 410300: '洛阳市', + 410400: '平顶山市', + 410500: '安阳市', + 410600: '鹤壁市', + 410700: '新乡市', + 410800: '焦作市', + 410900: '濮阳市', + 411000: '许昌市', + 411100: '漯河市', + 411200: '三门峡市', + 411300: '南阳市', + 411400: '商丘市', + 411500: '信阳市', + 411600: '周口市', + 411700: '驻马店市', + 419000: '省直辖县', + 420100: '武汉市', + 420200: '黄石市', + 420300: '十堰市', + 420500: '宜昌市', + 420600: '襄阳市', + 420700: '鄂州市', + 420800: '荆门市', + 420900: '孝感市', + 421000: '荆州市', + 421100: '黄冈市', + 421200: '咸宁市', + 421300: '随州市', + 422800: '恩施土家族苗族自治州', + 429000: '省直辖县', + 430100: '长沙市', + 430200: '株洲市', + 430300: '湘潭市', + 430400: '衡阳市', + 430500: '邵阳市', + 430600: '岳阳市', + 430700: '常德市', + 430800: '张家界市', + 430900: '益阳市', + 431000: '郴州市', + 431100: '永州市', + 431200: '怀化市', + 431300: '娄底市', + 433100: '湘西土家族苗族自治州', + 440100: '广州市', + 440200: '韶关市', + 440300: '深圳市', + 440400: '珠海市', + 440500: '汕头市', + 440600: '佛山市', + 440700: '江门市', + 440800: '湛江市', + 440900: '茂名市', + 441200: '肇庆市', + 441300: '惠州市', + 441400: '梅州市', + 441500: '汕尾市', + 441600: '河源市', + 441700: '阳江市', + 441800: '清远市', + 441900: '东莞市', + 442000: '中山市', + 445100: '潮州市', + 445200: '揭阳市', + 445300: '云浮市', + 450100: '南宁市', + 450200: '柳州市', + 450300: '桂林市', + 450400: '梧州市', + 450500: '北海市', + 450600: '防城港市', + 450700: '钦州市', + 450800: '贵港市', + 450900: '玉林市', + 451000: '百色市', + 451100: '贺州市', + 451200: '河池市', + 451300: '来宾市', + 451400: '崇左市', + 460100: '海口市', + 460200: '三亚市', + 460300: '三沙市', + 460400: '儋州市', + 469000: '省直辖县', + 500100: '重庆市', + 500200: '县', + 510100: '成都市', + 510300: '自贡市', + 510400: '攀枝花市', + 510500: '泸州市', + 510600: '德阳市', + 510700: '绵阳市', + 510800: '广元市', + 510900: '遂宁市', + 511000: '内江市', + 511100: '乐山市', + 511300: '南充市', + 511400: '眉山市', + 511500: '宜宾市', + 511600: '广安市', + 511700: '达州市', + 511800: '雅安市', + 511900: '巴中市', + 512000: '资阳市', + 513200: '阿坝藏族羌族自治州', + 513300: '甘孜藏族自治州', + 513400: '凉山彝族自治州', + 520100: '贵阳市', + 520200: '六盘水市', + 520300: '遵义市', + 520400: '安顺市', + 520500: '毕节市', + 520600: '铜仁市', + 522300: '黔西南布依族苗族自治州', + 522600: '黔东南苗族侗族自治州', + 522700: '黔南布依族苗族自治州', + 530100: '昆明市', + 530300: '曲靖市', + 530400: '玉溪市', + 530500: '保山市', + 530600: '昭通市', + 530700: '丽江市', + 530800: '普洱市', + 530900: '临沧市', + 532300: '楚雄彝族自治州', + 532500: '红河哈尼族彝族自治州', + 532600: '文山壮族苗族自治州', + 532800: '西双版纳傣族自治州', + 532900: '大理白族自治州', + 533100: '德宏傣族景颇族自治州', + 533300: '怒江傈僳族自治州', + 533400: '迪庆藏族自治州', + 540100: '拉萨市', + 540200: '日喀则市', + 540300: '昌都市', + 540400: '林芝市', + 540500: '山南市', + 540600: '那曲市', + 542500: '阿里地区', + 610100: '西安市', + 610200: '铜川市', + 610300: '宝鸡市', + 610400: '咸阳市', + 610500: '渭南市', + 610600: '延安市', + 610700: '汉中市', + 610800: '榆林市', + 610900: '安康市', + 611000: '商洛市', + 620100: '兰州市', + 620200: '嘉峪关市', + 620300: '金昌市', + 620400: '白银市', + 620500: '天水市', + 620600: '武威市', + 620700: '张掖市', + 620800: '平凉市', + 620900: '酒泉市', + 621000: '庆阳市', + 621100: '定西市', + 621200: '陇南市', + 622900: '临夏回族自治州', + 623000: '甘南藏族自治州', + 630100: '西宁市', + 630200: '海东市', + 632200: '海北藏族自治州', + 632300: '黄南藏族自治州', + 632500: '海南藏族自治州', + 632600: '果洛藏族自治州', + 632700: '玉树藏族自治州', + 632800: '海西蒙古族藏族自治州', + 640100: '银川市', + 640200: '石嘴山市', + 640300: '吴忠市', + 640400: '固原市', + 640500: '中卫市', + 650100: '乌鲁木齐市', + 650200: '克拉玛依市', + 650400: '吐鲁番市', + 650500: '哈密市', + 652300: '昌吉回族自治州', + 652700: '博尔塔拉蒙古自治州', + 652800: '巴音郭楞蒙古自治州', + 652900: '阿克苏地区', + 653000: '克孜勒苏柯尔克孜自治州', + 653100: '喀什地区', + 653200: '和田地区', + 654000: '伊犁哈萨克自治州', + 654200: '塔城地区', + 654300: '阿勒泰地区', + 659000: '自治区直辖县级行政区划', + 710100: '台北市', + 710200: '高雄市', + 710300: '台南市', + 710400: '台中市', + 710500: '金门县', + 710600: '南投县', + 710700: '基隆市', + 710800: '新竹市', + 710900: '嘉义市', + 711100: '新北市', + 711200: '宜兰县', + 711300: '新竹县', + 711400: '桃园县', + 711500: '苗栗县', + 711700: '彰化县', + 711900: '嘉义县', + 712100: '云林县', + 712400: '屏东县', + 712500: '台东县', + 712600: '花莲县', + 712700: '澎湖县', + 712800: '连江县', + 810100: '香港岛', + 810200: '九龙', + 810300: '新界', + 820100: '澳门半岛', + 820200: '离岛', + 912400: '加拿大', + 941000: '韩国', + 984000: '美国' + }, + county_list: { + 110101: '东城区', + 110102: '西城区', + 110105: '朝阳区', + 110106: '丰台区', + 110107: '石景山区', + 110108: '海淀区', + 110109: '门头沟区', + 110111: '房山区', + 110112: '通州区', + 110113: '顺义区', + 110114: '昌平区', + 110115: '大兴区', + 110116: '怀柔区', + 110117: '平谷区', + 110118: '密云区', + 110119: '延庆区', + 120101: '和平区', + 120102: '河东区', + 120103: '河西区', + 120104: '南开区', + 120105: '河北区', + 120106: '红桥区', + 120110: '东丽区', + 120111: '西青区', + 120112: '津南区', + 120113: '北辰区', + 120114: '武清区', + 120115: '宝坻区', + 120116: '滨海新区', + 120117: '宁河区', + 120118: '静海区', + 120119: '蓟州区', + 130102: '长安区', + 130104: '桥西区', + 130105: '新华区', + 130107: '井陉矿区', + 130108: '裕华区', + 130109: '藁城区', + 130110: '鹿泉区', + 130111: '栾城区', + 130121: '井陉县', + 130123: '正定县', + 130125: '行唐县', + 130126: '灵寿县', + 130127: '高邑县', + 130128: '深泽县', + 130129: '赞皇县', + 130130: '无极县', + 130131: '平山县', + 130132: '元氏县', + 130133: '赵县', + 130181: '辛集市', + 130183: '晋州市', + 130184: '新乐市', + 130202: '路南区', + 130203: '路北区', + 130204: '古冶区', + 130205: '开平区', + 130207: '丰南区', + 130208: '丰润区', + 130209: '曹妃甸区', + 130223: '滦县', + 130224: '滦南县', + 130225: '乐亭县', + 130227: '迁西县', + 130229: '玉田县', + 130281: '遵化市', + 130283: '迁安市', + 130302: '海港区', + 130303: '山海关区', + 130304: '北戴河区', + 130306: '抚宁区', + 130321: '青龙满族自治县', + 130322: '昌黎县', + 130324: '卢龙县', + 130390: '经济技术开发区', + 130402: '邯山区', + 130403: '丛台区', + 130404: '复兴区', + 130406: '峰峰矿区', + 130407: '肥乡区', + 130408: '永年区', + 130423: '临漳县', + 130424: '成安县', + 130425: '大名县', + 130426: '涉县', + 130427: '磁县', + 130430: '邱县', + 130431: '鸡泽县', + 130432: '广平县', + 130433: '馆陶县', + 130434: '魏县', + 130435: '曲周县', + 130481: '武安市', + 130502: '桥东区', + 130503: '桥西区', + 130521: '邢台县', + 130522: '临城县', + 130523: '内丘县', + 130524: '柏乡县', + 130525: '隆尧县', + 130526: '任县', + 130527: '南和县', + 130528: '宁晋县', + 130529: '巨鹿县', + 130530: '新河县', + 130531: '广宗县', + 130532: '平乡县', + 130533: '威县', + 130534: '清河县', + 130535: '临西县', + 130581: '南宫市', + 130582: '沙河市', + 130602: '竞秀区', + 130606: '莲池区', + 130607: '满城区', + 130608: '清苑区', + 130609: '徐水区', + 130623: '涞水县', + 130624: '阜平县', + 130626: '定兴县', + 130627: '唐县', + 130628: '高阳县', + 130629: '容城县', + 130630: '涞源县', + 130631: '望都县', + 130632: '安新县', + 130633: '易县', + 130634: '曲阳县', + 130635: '蠡县', + 130636: '顺平县', + 130637: '博野县', + 130638: '雄县', + 130681: '涿州市', + 130682: '定州市', + 130683: '安国市', + 130684: '高碑店市', + 130702: '桥东区', + 130703: '桥西区', + 130705: '宣化区', + 130706: '下花园区', + 130708: '万全区', + 130709: '崇礼区', + 130722: '张北县', + 130723: '康保县', + 130724: '沽源县', + 130725: '尚义县', + 130726: '蔚县', + 130727: '阳原县', + 130728: '怀安县', + 130730: '怀来县', + 130731: '涿鹿县', + 130732: '赤城县', + 130802: '双桥区', + 130803: '双滦区', + 130804: '鹰手营子矿区', + 130821: '承德县', + 130822: '兴隆县', + 130824: '滦平县', + 130825: '隆化县', + 130826: '丰宁满族自治县', + 130827: '宽城满族自治县', + 130828: '围场满族蒙古族自治县', + 130881: '平泉市', + 130902: '新华区', + 130903: '运河区', + 130921: '沧县', + 130922: '青县', + 130923: '东光县', + 130924: '海兴县', + 130925: '盐山县', + 130926: '肃宁县', + 130927: '南皮县', + 130928: '吴桥县', + 130929: '献县', + 130930: '孟村回族自治县', + 130981: '泊头市', + 130982: '任丘市', + 130983: '黄骅市', + 130984: '河间市', + 131002: '安次区', + 131003: '广阳区', + 131022: '固安县', + 131023: '永清县', + 131024: '香河县', + 131025: '大城县', + 131026: '文安县', + 131028: '大厂回族自治县', + 131081: '霸州市', + 131082: '三河市', + 131090: '开发区', + 131102: '桃城区', + 131103: '冀州区', + 131121: '枣强县', + 131122: '武邑县', + 131123: '武强县', + 131124: '饶阳县', + 131125: '安平县', + 131126: '故城县', + 131127: '景县', + 131128: '阜城县', + 131182: '深州市', + 140105: '小店区', + 140106: '迎泽区', + 140107: '杏花岭区', + 140108: '尖草坪区', + 140109: '万柏林区', + 140110: '晋源区', + 140121: '清徐县', + 140122: '阳曲县', + 140123: '娄烦县', + 140181: '古交市', + 140202: '城区', + 140203: '矿区', + 140211: '南郊区', + 140212: '新荣区', + 140221: '阳高县', + 140222: '天镇县', + 140223: '广灵县', + 140224: '灵丘县', + 140225: '浑源县', + 140226: '左云县', + 140227: '大同县', + 140302: '城区', + 140303: '矿区', + 140311: '郊区', + 140321: '平定县', + 140322: '盂县', + 140402: '城区', + 140411: '郊区', + 140421: '长治县', + 140423: '襄垣县', + 140424: '屯留县', + 140425: '平顺县', + 140426: '黎城县', + 140427: '壶关县', + 140428: '长子县', + 140429: '武乡县', + 140430: '沁县', + 140431: '沁源县', + 140481: '潞城市', + 140502: '城区', + 140521: '沁水县', + 140522: '阳城县', + 140524: '陵川县', + 140525: '泽州县', + 140581: '高平市', + 140602: '朔城区', + 140603: '平鲁区', + 140621: '山阴县', + 140622: '应县', + 140623: '右玉县', + 140624: '怀仁县', + 140702: '榆次区', + 140721: '榆社县', + 140722: '左权县', + 140723: '和顺县', + 140724: '昔阳县', + 140725: '寿阳县', + 140726: '太谷县', + 140727: '祁县', + 140728: '平遥县', + 140729: '灵石县', + 140781: '介休市', + 140802: '盐湖区', + 140821: '临猗县', + 140822: '万荣县', + 140823: '闻喜县', + 140824: '稷山县', + 140825: '新绛县', + 140826: '绛县', + 140827: '垣曲县', + 140828: '夏县', + 140829: '平陆县', + 140830: '芮城县', + 140881: '永济市', + 140882: '河津市', + 140902: '忻府区', + 140921: '定襄县', + 140922: '五台县', + 140923: '代县', + 140924: '繁峙县', + 140925: '宁武县', + 140926: '静乐县', + 140927: '神池县', + 140928: '五寨县', + 140929: '岢岚县', + 140930: '河曲县', + 140931: '保德县', + 140932: '偏关县', + 140981: '原平市', + 141002: '尧都区', + 141021: '曲沃县', + 141022: '翼城县', + 141023: '襄汾县', + 141024: '洪洞县', + 141025: '古县', + 141026: '安泽县', + 141027: '浮山县', + 141028: '吉县', + 141029: '乡宁县', + 141030: '大宁县', + 141031: '隰县', + 141032: '永和县', + 141033: '蒲县', + 141034: '汾西县', + 141081: '侯马市', + 141082: '霍州市', + 141102: '离石区', + 141121: '文水县', + 141122: '交城县', + 141123: '兴县', + 141124: '临县', + 141125: '柳林县', + 141126: '石楼县', + 141127: '岚县', + 141128: '方山县', + 141129: '中阳县', + 141130: '交口县', + 141181: '孝义市', + 141182: '汾阳市', + 150102: '新城区', + 150103: '回民区', + 150104: '玉泉区', + 150105: '赛罕区', + 150121: '土默特左旗', + 150122: '托克托县', + 150123: '和林格尔县', + 150124: '清水河县', + 150125: '武川县', + 150202: '东河区', + 150203: '昆都仑区', + 150204: '青山区', + 150205: '石拐区', + 150206: '白云鄂博矿区', + 150207: '九原区', + 150221: '土默特右旗', + 150222: '固阳县', + 150223: '达尔罕茂明安联合旗', + 150302: '海勃湾区', + 150303: '海南区', + 150304: '乌达区', + 150402: '红山区', + 150403: '元宝山区', + 150404: '松山区', + 150421: '阿鲁科尔沁旗', + 150422: '巴林左旗', + 150423: '巴林右旗', + 150424: '林西县', + 150425: '克什克腾旗', + 150426: '翁牛特旗', + 150428: '喀喇沁旗', + 150429: '宁城县', + 150430: '敖汉旗', + 150502: '科尔沁区', + 150521: '科尔沁左翼中旗', + 150522: '科尔沁左翼后旗', + 150523: '开鲁县', + 150524: '库伦旗', + 150525: '奈曼旗', + 150526: '扎鲁特旗', + 150581: '霍林郭勒市', + 150602: '东胜区', + 150603: '康巴什区', + 150621: '达拉特旗', + 150622: '准格尔旗', + 150623: '鄂托克前旗', + 150624: '鄂托克旗', + 150625: '杭锦旗', + 150626: '乌审旗', + 150627: '伊金霍洛旗', + 150702: '海拉尔区', + 150703: '扎赉诺尔区', + 150721: '阿荣旗', + 150722: '莫力达瓦达斡尔族自治旗', + 150723: '鄂伦春自治旗', + 150724: '鄂温克族自治旗', + 150725: '陈巴尔虎旗', + 150726: '新巴尔虎左旗', + 150727: '新巴尔虎右旗', + 150781: '满洲里市', + 150782: '牙克石市', + 150783: '扎兰屯市', + 150784: '额尔古纳市', + 150785: '根河市', + 150802: '临河区', + 150821: '五原县', + 150822: '磴口县', + 150823: '乌拉特前旗', + 150824: '乌拉特中旗', + 150825: '乌拉特后旗', + 150826: '杭锦后旗', + 150902: '集宁区', + 150921: '卓资县', + 150922: '化德县', + 150923: '商都县', + 150924: '兴和县', + 150925: '凉城县', + 150926: '察哈尔右翼前旗', + 150927: '察哈尔右翼中旗', + 150928: '察哈尔右翼后旗', + 150929: '四子王旗', + 150981: '丰镇市', + 152201: '乌兰浩特市', + 152202: '阿尔山市', + 152221: '科尔沁右翼前旗', + 152222: '科尔沁右翼中旗', + 152223: '扎赉特旗', + 152224: '突泉县', + 152501: '二连浩特市', + 152502: '锡林浩特市', + 152522: '阿巴嘎旗', + 152523: '苏尼特左旗', + 152524: '苏尼特右旗', + 152525: '东乌珠穆沁旗', + 152526: '西乌珠穆沁旗', + 152527: '太仆寺旗', + 152528: '镶黄旗', + 152529: '正镶白旗', + 152530: '正蓝旗', + 152531: '多伦县', + 152921: '阿拉善左旗', + 152922: '阿拉善右旗', + 152923: '额济纳旗', + 210102: '和平区', + 210103: '沈河区', + 210104: '大东区', + 210105: '皇姑区', + 210106: '铁西区', + 210111: '苏家屯区', + 210112: '浑南区', + 210113: '沈北新区', + 210114: '于洪区', + 210115: '辽中区', + 210123: '康平县', + 210124: '法库县', + 210181: '新民市', + 210190: '经济技术开发区', + 210202: '中山区', + 210203: '西岗区', + 210204: '沙河口区', + 210211: '甘井子区', + 210212: '旅顺口区', + 210213: '金州区', + 210214: '普兰店区', + 210224: '长海县', + 210281: '瓦房店市', + 210283: '庄河市', + 210302: '铁东区', + 210303: '铁西区', + 210304: '立山区', + 210311: '千山区', + 210321: '台安县', + 210323: '岫岩满族自治县', + 210381: '海城市', + 210390: '高新区', + 210402: '新抚区', + 210403: '东洲区', + 210404: '望花区', + 210411: '顺城区', + 210421: '抚顺县', + 210422: '新宾满族自治县', + 210423: '清原满族自治县', + 210502: '平山区', + 210503: '溪湖区', + 210504: '明山区', + 210505: '南芬区', + 210521: '本溪满族自治县', + 210522: '桓仁满族自治县', + 210602: '元宝区', + 210603: '振兴区', + 210604: '振安区', + 210624: '宽甸满族自治县', + 210681: '东港市', + 210682: '凤城市', + 210702: '古塔区', + 210703: '凌河区', + 210711: '太和区', + 210726: '黑山县', + 210727: '义县', + 210781: '凌海市', + 210782: '北镇市', + 210793: '经济技术开发区', + 210802: '站前区', + 210803: '西市区', + 210804: '鲅鱼圈区', + 210811: '老边区', + 210881: '盖州市', + 210882: '大石桥市', + 210902: '海州区', + 210903: '新邱区', + 210904: '太平区', + 210905: '清河门区', + 210911: '细河区', + 210921: '阜新蒙古族自治县', + 210922: '彰武县', + 211002: '白塔区', + 211003: '文圣区', + 211004: '宏伟区', + 211005: '弓长岭区', + 211011: '太子河区', + 211021: '辽阳县', + 211081: '灯塔市', + 211102: '双台子区', + 211103: '兴隆台区', + 211104: '大洼区', + 211122: '盘山县', + 211202: '银州区', + 211204: '清河区', + 211221: '铁岭县', + 211223: '西丰县', + 211224: '昌图县', + 211281: '调兵山市', + 211282: '开原市', + 211302: '双塔区', + 211303: '龙城区', + 211321: '朝阳县', + 211322: '建平县', + 211324: '喀喇沁左翼蒙古族自治县', + 211381: '北票市', + 211382: '凌源市', + 211402: '连山区', + 211403: '龙港区', + 211404: '南票区', + 211421: '绥中县', + 211422: '建昌县', + 211481: '兴城市', + 215090: '工业园区', + 220102: '南关区', + 220103: '宽城区', + 220104: '朝阳区', + 220105: '二道区', + 220106: '绿园区', + 220112: '双阳区', + 220113: '九台区', + 220122: '农安县', + 220182: '榆树市', + 220183: '德惠市', + 220192: '经济技术开发区', + 220202: '昌邑区', + 220203: '龙潭区', + 220204: '船营区', + 220211: '丰满区', + 220221: '永吉县', + 220281: '蛟河市', + 220282: '桦甸市', + 220283: '舒兰市', + 220284: '磐石市', + 220302: '铁西区', + 220303: '铁东区', + 220322: '梨树县', + 220323: '伊通满族自治县', + 220381: '公主岭市', + 220382: '双辽市', + 220402: '龙山区', + 220403: '西安区', + 220421: '东丰县', + 220422: '东辽县', + 220502: '东昌区', + 220503: '二道江区', + 220521: '通化县', + 220523: '辉南县', + 220524: '柳河县', + 220581: '梅河口市', + 220582: '集安市', + 220602: '浑江区', + 220605: '江源区', + 220621: '抚松县', + 220622: '靖宇县', + 220623: '长白朝鲜族自治县', + 220681: '临江市', + 220702: '宁江区', + 220721: '前郭尔罗斯蒙古族自治县', + 220722: '长岭县', + 220723: '乾安县', + 220781: '扶余市', + 220802: '洮北区', + 220821: '镇赉县', + 220822: '通榆县', + 220881: '洮南市', + 220882: '大安市', + 221090: '工业园区', + 222401: '延吉市', + 222402: '图们市', + 222403: '敦化市', + 222404: '珲春市', + 222405: '龙井市', + 222406: '和龙市', + 222424: '汪清县', + 222426: '安图县', + 230102: '道里区', + 230103: '南岗区', + 230104: '道外区', + 230108: '平房区', + 230109: '松北区', + 230110: '香坊区', + 230111: '呼兰区', + 230112: '阿城区', + 230113: '双城区', + 230123: '依兰县', + 230124: '方正县', + 230125: '宾县', + 230126: '巴彦县', + 230127: '木兰县', + 230128: '通河县', + 230129: '延寿县', + 230183: '尚志市', + 230184: '五常市', + 230202: '龙沙区', + 230203: '建华区', + 230204: '铁锋区', + 230205: '昂昂溪区', + 230206: '富拉尔基区', + 230207: '碾子山区', + 230208: '梅里斯达斡尔族区', + 230221: '龙江县', + 230223: '依安县', + 230224: '泰来县', + 230225: '甘南县', + 230227: '富裕县', + 230229: '克山县', + 230230: '克东县', + 230231: '拜泉县', + 230281: '讷河市', + 230302: '鸡冠区', + 230303: '恒山区', + 230304: '滴道区', + 230305: '梨树区', + 230306: '城子河区', + 230307: '麻山区', + 230321: '鸡东县', + 230381: '虎林市', + 230382: '密山市', + 230402: '向阳区', + 230403: '工农区', + 230404: '南山区', + 230405: '兴安区', + 230406: '东山区', + 230407: '兴山区', + 230421: '萝北县', + 230422: '绥滨县', + 230502: '尖山区', + 230503: '岭东区', + 230505: '四方台区', + 230506: '宝山区', + 230521: '集贤县', + 230522: '友谊县', + 230523: '宝清县', + 230524: '饶河县', + 230602: '萨尔图区', + 230603: '龙凤区', + 230604: '让胡路区', + 230605: '红岗区', + 230606: '大同区', + 230621: '肇州县', + 230622: '肇源县', + 230623: '林甸县', + 230624: '杜尔伯特蒙古族自治县', + 230702: '伊春区', + 230703: '南岔区', + 230704: '友好区', + 230705: '西林区', + 230706: '翠峦区', + 230707: '新青区', + 230708: '美溪区', + 230709: '金山屯区', + 230710: '五营区', + 230711: '乌马河区', + 230712: '汤旺河区', + 230713: '带岭区', + 230714: '乌伊岭区', + 230715: '红星区', + 230716: '上甘岭区', + 230722: '嘉荫县', + 230781: '铁力市', + 230803: '向阳区', + 230804: '前进区', + 230805: '东风区', + 230811: '郊区', + 230822: '桦南县', + 230826: '桦川县', + 230828: '汤原县', + 230881: '同江市', + 230882: '富锦市', + 230883: '抚远市', + 230902: '新兴区', + 230903: '桃山区', + 230904: '茄子河区', + 230921: '勃利县', + 231002: '东安区', + 231003: '阳明区', + 231004: '爱民区', + 231005: '西安区', + 231025: '林口县', + 231081: '绥芬河市', + 231083: '海林市', + 231084: '宁安市', + 231085: '穆棱市', + 231086: '东宁市', + 231102: '爱辉区', + 231121: '嫩江县', + 231123: '逊克县', + 231124: '孙吴县', + 231181: '北安市', + 231182: '五大连池市', + 231202: '北林区', + 231221: '望奎县', + 231222: '兰西县', + 231223: '青冈县', + 231224: '庆安县', + 231225: '明水县', + 231226: '绥棱县', + 231281: '安达市', + 231282: '肇东市', + 231283: '海伦市', + 232721: '呼玛县', + 232722: '塔河县', + 232723: '漠河县', + 232790: '松岭区', + 232791: '呼中区', + 232792: '加格达奇区', + 232793: '新林区', + 310101: '黄浦区', + 310104: '徐汇区', + 310105: '长宁区', + 310106: '静安区', + 310107: '普陀区', + 310109: '虹口区', + 310110: '杨浦区', + 310112: '闵行区', + 310113: '宝山区', + 310114: '嘉定区', + 310115: '浦东新区', + 310116: '金山区', + 310117: '松江区', + 310118: '青浦区', + 310120: '奉贤区', + 310151: '崇明区', + 320102: '玄武区', + 320104: '秦淮区', + 320105: '建邺区', + 320106: '鼓楼区', + 320111: '浦口区', + 320113: '栖霞区', + 320114: '雨花台区', + 320115: '江宁区', + 320116: '六合区', + 320117: '溧水区', + 320118: '高淳区', + 320205: '锡山区', + 320206: '惠山区', + 320211: '滨湖区', + 320213: '梁溪区', + 320214: '新吴区', + 320281: '江阴市', + 320282: '宜兴市', + 320302: '鼓楼区', + 320303: '云龙区', + 320305: '贾汪区', + 320311: '泉山区', + 320312: '铜山区', + 320321: '丰县', + 320322: '沛县', + 320324: '睢宁县', + 320381: '新沂市', + 320382: '邳州市', + 320391: '工业园区', + 320402: '天宁区', + 320404: '钟楼区', + 320411: '新北区', + 320412: '武进区', + 320413: '金坛区', + 320481: '溧阳市', + 320505: '虎丘区', + 320506: '吴中区', + 320507: '相城区', + 320508: '姑苏区', + 320509: '吴江区', + 320581: '常熟市', + 320582: '张家港市', + 320583: '昆山市', + 320585: '太仓市', + 320590: '工业园区', + 320591: '高新区', + 320602: '崇川区', + 320611: '港闸区', + 320612: '通州区', + 320621: '海安县', + 320623: '如东县', + 320681: '启东市', + 320682: '如皋市', + 320684: '海门市', + 320691: '高新区', + 320703: '连云区', + 320706: '海州区', + 320707: '赣榆区', + 320722: '东海县', + 320723: '灌云县', + 320724: '灌南县', + 320803: '淮安区', + 320804: '淮阴区', + 320812: '清江浦区', + 320813: '洪泽区', + 320826: '涟水县', + 320830: '盱眙县', + 320831: '金湖县', + 320890: '经济开发区', + 320902: '亭湖区', + 320903: '盐都区', + 320904: '大丰区', + 320921: '响水县', + 320922: '滨海县', + 320923: '阜宁县', + 320924: '射阳县', + 320925: '建湖县', + 320981: '东台市', + 321002: '广陵区', + 321003: '邗江区', + 321012: '江都区', + 321023: '宝应县', + 321081: '仪征市', + 321084: '高邮市', + 321090: '经济开发区', + 321102: '京口区', + 321111: '润州区', + 321112: '丹徒区', + 321181: '丹阳市', + 321182: '扬中市', + 321183: '句容市', + 321202: '海陵区', + 321203: '高港区', + 321204: '姜堰区', + 321281: '兴化市', + 321282: '靖江市', + 321283: '泰兴市', + 321302: '宿城区', + 321311: '宿豫区', + 321322: '沭阳县', + 321323: '泗阳县', + 321324: '泗洪县', + 330102: '上城区', + 330103: '下城区', + 330104: '江干区', + 330105: '拱墅区', + 330106: '西湖区', + 330108: '滨江区', + 330109: '萧山区', + 330110: '余杭区', + 330111: '富阳区', + 330112: '临安区', + 330122: '桐庐县', + 330127: '淳安县', + 330182: '建德市', + 330203: '海曙区', + 330205: '江北区', + 330206: '北仑区', + 330211: '镇海区', + 330212: '鄞州区', + 330213: '奉化区', + 330225: '象山县', + 330226: '宁海县', + 330281: '余姚市', + 330282: '慈溪市', + 330302: '鹿城区', + 330303: '龙湾区', + 330304: '瓯海区', + 330305: '洞头区', + 330324: '永嘉县', + 330326: '平阳县', + 330327: '苍南县', + 330328: '文成县', + 330329: '泰顺县', + 330381: '瑞安市', + 330382: '乐清市', + 330402: '南湖区', + 330411: '秀洲区', + 330421: '嘉善县', + 330424: '海盐县', + 330481: '海宁市', + 330482: '平湖市', + 330483: '桐乡市', + 330502: '吴兴区', + 330503: '南浔区', + 330521: '德清县', + 330522: '长兴县', + 330523: '安吉县', + 330602: '越城区', + 330603: '柯桥区', + 330604: '上虞区', + 330624: '新昌县', + 330681: '诸暨市', + 330683: '嵊州市', + 330702: '婺城区', + 330703: '金东区', + 330723: '武义县', + 330726: '浦江县', + 330727: '磐安县', + 330781: '兰溪市', + 330782: '义乌市', + 330783: '东阳市', + 330784: '永康市', + 330802: '柯城区', + 330803: '衢江区', + 330822: '常山县', + 330824: '开化县', + 330825: '龙游县', + 330881: '江山市', + 330902: '定海区', + 330903: '普陀区', + 330921: '岱山县', + 330922: '嵊泗县', + 331002: '椒江区', + 331003: '黄岩区', + 331004: '路桥区', + 331022: '三门县', + 331023: '天台县', + 331024: '仙居县', + 331081: '温岭市', + 331082: '临海市', + 331083: '玉环市', + 331102: '莲都区', + 331121: '青田县', + 331122: '缙云县', + 331123: '遂昌县', + 331124: '松阳县', + 331125: '云和县', + 331126: '庆元县', + 331127: '景宁畲族自治县', + 331181: '龙泉市', + 340102: '瑶海区', + 340103: '庐阳区', + 340104: '蜀山区', + 340111: '包河区', + 340121: '长丰县', + 340122: '肥东县', + 340123: '肥西县', + 340124: '庐江县', + 340181: '巢湖市', + 340190: '高新技术开发区', + 340191: '经济技术开发区', + 340202: '镜湖区', + 340203: '弋江区', + 340207: '鸠江区', + 340208: '三山区', + 340221: '芜湖县', + 340222: '繁昌县', + 340223: '南陵县', + 340225: '无为县', + 340302: '龙子湖区', + 340303: '蚌山区', + 340304: '禹会区', + 340311: '淮上区', + 340321: '怀远县', + 340322: '五河县', + 340323: '固镇县', + 340402: '大通区', + 340403: '田家庵区', + 340404: '谢家集区', + 340405: '八公山区', + 340406: '潘集区', + 340421: '凤台县', + 340422: '寿县', + 340503: '花山区', + 340504: '雨山区', + 340506: '博望区', + 340521: '当涂县', + 340522: '含山县', + 340523: '和县', + 340602: '杜集区', + 340603: '相山区', + 340604: '烈山区', + 340621: '濉溪县', + 340705: '铜官区', + 340706: '义安区', + 340711: '郊区', + 340722: '枞阳县', + 340802: '迎江区', + 340803: '大观区', + 340811: '宜秀区', + 340822: '怀宁县', + 340824: '潜山县', + 340825: '太湖县', + 340826: '宿松县', + 340827: '望江县', + 340828: '岳西县', + 340881: '桐城市', + 341002: '屯溪区', + 341003: '黄山区', + 341004: '徽州区', + 341021: '歙县', + 341022: '休宁县', + 341023: '黟县', + 341024: '祁门县', + 341102: '琅琊区', + 341103: '南谯区', + 341122: '来安县', + 341124: '全椒县', + 341125: '定远县', + 341126: '凤阳县', + 341181: '天长市', + 341182: '明光市', + 341202: '颍州区', + 341203: '颍东区', + 341204: '颍泉区', + 341221: '临泉县', + 341222: '太和县', + 341225: '阜南县', + 341226: '颍上县', + 341282: '界首市', + 341302: '埇桥区', + 341321: '砀山县', + 341322: '萧县', + 341323: '灵璧县', + 341324: '泗县', + 341390: '经济开发区', + 341502: '金安区', + 341503: '裕安区', + 341504: '叶集区', + 341522: '霍邱县', + 341523: '舒城县', + 341524: '金寨县', + 341525: '霍山县', + 341602: '谯城区', + 341621: '涡阳县', + 341622: '蒙城县', + 341623: '利辛县', + 341702: '贵池区', + 341721: '东至县', + 341722: '石台县', + 341723: '青阳县', + 341802: '宣州区', + 341821: '郎溪县', + 341822: '广德县', + 341823: '泾县', + 341824: '绩溪县', + 341825: '旌德县', + 341881: '宁国市', + 350102: '鼓楼区', + 350103: '台江区', + 350104: '仓山区', + 350105: '马尾区', + 350111: '晋安区', + 350112: '长乐区', + 350121: '闽侯县', + 350122: '连江县', + 350123: '罗源县', + 350124: '闽清县', + 350125: '永泰县', + 350128: '平潭县', + 350181: '福清市', + 350203: '思明区', + 350205: '海沧区', + 350206: '湖里区', + 350211: '集美区', + 350212: '同安区', + 350213: '翔安区', + 350302: '城厢区', + 350303: '涵江区', + 350304: '荔城区', + 350305: '秀屿区', + 350322: '仙游县', + 350402: '梅列区', + 350403: '三元区', + 350421: '明溪县', + 350423: '清流县', + 350424: '宁化县', + 350425: '大田县', + 350426: '尤溪县', + 350427: '沙县', + 350428: '将乐县', + 350429: '泰宁县', + 350430: '建宁县', + 350481: '永安市', + 350502: '鲤城区', + 350503: '丰泽区', + 350504: '洛江区', + 350505: '泉港区', + 350521: '惠安县', + 350524: '安溪县', + 350525: '永春县', + 350526: '德化县', + 350527: '金门县', + 350581: '石狮市', + 350582: '晋江市', + 350583: '南安市', + 350602: '芗城区', + 350603: '龙文区', + 350622: '云霄县', + 350623: '漳浦县', + 350624: '诏安县', + 350625: '长泰县', + 350626: '东山县', + 350627: '南靖县', + 350628: '平和县', + 350629: '华安县', + 350681: '龙海市', + 350702: '延平区', + 350703: '建阳区', + 350721: '顺昌县', + 350722: '浦城县', + 350723: '光泽县', + 350724: '松溪县', + 350725: '政和县', + 350781: '邵武市', + 350782: '武夷山市', + 350783: '建瓯市', + 350802: '新罗区', + 350803: '永定区', + 350821: '长汀县', + 350823: '上杭县', + 350824: '武平县', + 350825: '连城县', + 350881: '漳平市', + 350902: '蕉城区', + 350921: '霞浦县', + 350922: '古田县', + 350923: '屏南县', + 350924: '寿宁县', + 350925: '周宁县', + 350926: '柘荣县', + 350981: '福安市', + 350982: '福鼎市', + 360102: '东湖区', + 360103: '西湖区', + 360104: '青云谱区', + 360105: '湾里区', + 360111: '青山湖区', + 360112: '新建区', + 360121: '南昌县', + 360123: '安义县', + 360124: '进贤县', + 360190: '经济技术开发区', + 360192: '高新区', + 360202: '昌江区', + 360203: '珠山区', + 360222: '浮梁县', + 360281: '乐平市', + 360302: '安源区', + 360313: '湘东区', + 360321: '莲花县', + 360322: '上栗县', + 360323: '芦溪县', + 360402: '濂溪区', + 360403: '浔阳区', + 360404: '柴桑区', + 360423: '武宁县', + 360424: '修水县', + 360425: '永修县', + 360426: '德安县', + 360428: '都昌县', + 360429: '湖口县', + 360430: '彭泽县', + 360481: '瑞昌市', + 360482: '共青城市', + 360483: '庐山市', + 360490: '经济技术开发区', + 360502: '渝水区', + 360521: '分宜县', + 360602: '月湖区', + 360622: '余江县', + 360681: '贵溪市', + 360702: '章贡区', + 360703: '南康区', + 360704: '赣县区', + 360722: '信丰县', + 360723: '大余县', + 360724: '上犹县', + 360725: '崇义县', + 360726: '安远县', + 360727: '龙南县', + 360728: '定南县', + 360729: '全南县', + 360730: '宁都县', + 360731: '于都县', + 360732: '兴国县', + 360733: '会昌县', + 360734: '寻乌县', + 360735: '石城县', + 360781: '瑞金市', + 360802: '吉州区', + 360803: '青原区', + 360821: '吉安县', + 360822: '吉水县', + 360823: '峡江县', + 360824: '新干县', + 360825: '永丰县', + 360826: '泰和县', + 360827: '遂川县', + 360828: '万安县', + 360829: '安福县', + 360830: '永新县', + 360881: '井冈山市', + 360902: '袁州区', + 360921: '奉新县', + 360922: '万载县', + 360923: '上高县', + 360924: '宜丰县', + 360925: '靖安县', + 360926: '铜鼓县', + 360981: '丰城市', + 360982: '樟树市', + 360983: '高安市', + 361002: '临川区', + 361003: '东乡区', + 361021: '南城县', + 361022: '黎川县', + 361023: '南丰县', + 361024: '崇仁县', + 361025: '乐安县', + 361026: '宜黄县', + 361027: '金溪县', + 361028: '资溪县', + 361030: '广昌县', + 361102: '信州区', + 361103: '广丰区', + 361121: '上饶县', + 361123: '玉山县', + 361124: '铅山县', + 361125: '横峰县', + 361126: '弋阳县', + 361127: '余干县', + 361128: '鄱阳县', + 361129: '万年县', + 361130: '婺源县', + 361181: '德兴市', + 370102: '历下区', + 370103: '市中区', + 370104: '槐荫区', + 370105: '天桥区', + 370112: '历城区', + 370113: '长清区', + 370114: '章丘区', + 370124: '平阴县', + 370125: '济阳县', + 370126: '商河县', + 370190: '高新区', + 370202: '市南区', + 370203: '市北区', + 370211: '黄岛区', + 370212: '崂山区', + 370213: '李沧区', + 370214: '城阳区', + 370215: '即墨区', + 370281: '胶州市', + 370283: '平度市', + 370285: '莱西市', + 370290: '开发区', + 370302: '淄川区', + 370303: '张店区', + 370304: '博山区', + 370305: '临淄区', + 370306: '周村区', + 370321: '桓台县', + 370322: '高青县', + 370323: '沂源县', + 370402: '市中区', + 370403: '薛城区', + 370404: '峄城区', + 370405: '台儿庄区', + 370406: '山亭区', + 370481: '滕州市', + 370502: '东营区', + 370503: '河口区', + 370505: '垦利区', + 370522: '利津县', + 370523: '广饶县', + 370602: '芝罘区', + 370611: '福山区', + 370612: '牟平区', + 370613: '莱山区', + 370634: '长岛县', + 370681: '龙口市', + 370682: '莱阳市', + 370683: '莱州市', + 370684: '蓬莱市', + 370685: '招远市', + 370686: '栖霞市', + 370687: '海阳市', + 370690: '开发区', + 370702: '潍城区', + 370703: '寒亭区', + 370704: '坊子区', + 370705: '奎文区', + 370724: '临朐县', + 370725: '昌乐县', + 370781: '青州市', + 370782: '诸城市', + 370783: '寿光市', + 370784: '安丘市', + 370785: '高密市', + 370786: '昌邑市', + 370790: '开发区', + 370791: '高新区', + 370811: '任城区', + 370812: '兖州区', + 370826: '微山县', + 370827: '鱼台县', + 370828: '金乡县', + 370829: '嘉祥县', + 370830: '汶上县', + 370831: '泗水县', + 370832: '梁山县', + 370881: '曲阜市', + 370883: '邹城市', + 370890: '高新区', + 370902: '泰山区', + 370911: '岱岳区', + 370921: '宁阳县', + 370923: '东平县', + 370982: '新泰市', + 370983: '肥城市', + 371002: '环翠区', + 371003: '文登区', + 371082: '荣成市', + 371083: '乳山市', + 371091: '经济技术开发区', + 371102: '东港区', + 371103: '岚山区', + 371121: '五莲县', + 371122: '莒县', + 371202: '莱城区', + 371203: '钢城区', + 371302: '兰山区', + 371311: '罗庄区', + 371312: '河东区', + 371321: '沂南县', + 371322: '郯城县', + 371323: '沂水县', + 371324: '兰陵县', + 371325: '费县', + 371326: '平邑县', + 371327: '莒南县', + 371328: '蒙阴县', + 371329: '临沭县', + 371402: '德城区', + 371403: '陵城区', + 371422: '宁津县', + 371423: '庆云县', + 371424: '临邑县', + 371425: '齐河县', + 371426: '平原县', + 371427: '夏津县', + 371428: '武城县', + 371481: '乐陵市', + 371482: '禹城市', + 371502: '东昌府区', + 371521: '阳谷县', + 371522: '莘县', + 371523: '茌平县', + 371524: '东阿县', + 371525: '冠县', + 371526: '高唐县', + 371581: '临清市', + 371602: '滨城区', + 371603: '沾化区', + 371621: '惠民县', + 371622: '阳信县', + 371623: '无棣县', + 371625: '博兴县', + 371626: '邹平县', + 371702: '牡丹区', + 371703: '定陶区', + 371721: '曹县', + 371722: '单县', + 371723: '成武县', + 371724: '巨野县', + 371725: '郓城县', + 371726: '鄄城县', + 371728: '东明县', + 410102: '中原区', + 410103: '二七区', + 410104: '管城回族区', + 410105: '金水区', + 410106: '上街区', + 410108: '惠济区', + 410122: '中牟县', + 410181: '巩义市', + 410182: '荥阳市', + 410183: '新密市', + 410184: '新郑市', + 410185: '登封市', + 410190: '高新技术开发区', + 410191: '经济技术开发区', + 410202: '龙亭区', + 410203: '顺河回族区', + 410204: '鼓楼区', + 410205: '禹王台区', + 410212: '祥符区', + 410221: '杞县', + 410222: '通许县', + 410223: '尉氏县', + 410225: '兰考县', + 410302: '老城区', + 410303: '西工区', + 410304: '瀍河回族区', + 410305: '涧西区', + 410306: '吉利区', + 410311: '洛龙区', + 410322: '孟津县', + 410323: '新安县', + 410324: '栾川县', + 410325: '嵩县', + 410326: '汝阳县', + 410327: '宜阳县', + 410328: '洛宁县', + 410329: '伊川县', + 410381: '偃师市', + 410402: '新华区', + 410403: '卫东区', + 410404: '石龙区', + 410411: '湛河区', + 410421: '宝丰县', + 410422: '叶县', + 410423: '鲁山县', + 410425: '郏县', + 410481: '舞钢市', + 410482: '汝州市', + 410502: '文峰区', + 410503: '北关区', + 410505: '殷都区', + 410506: '龙安区', + 410522: '安阳县', + 410523: '汤阴县', + 410526: '滑县', + 410527: '内黄县', + 410581: '林州市', + 410590: '开发区', + 410602: '鹤山区', + 410603: '山城区', + 410611: '淇滨区', + 410621: '浚县', + 410622: '淇县', + 410702: '红旗区', + 410703: '卫滨区', + 410704: '凤泉区', + 410711: '牧野区', + 410721: '新乡县', + 410724: '获嘉县', + 410725: '原阳县', + 410726: '延津县', + 410727: '封丘县', + 410728: '长垣县', + 410781: '卫辉市', + 410782: '辉县市', + 410802: '解放区', + 410803: '中站区', + 410804: '马村区', + 410811: '山阳区', + 410821: '修武县', + 410822: '博爱县', + 410823: '武陟县', + 410825: '温县', + 410882: '沁阳市', + 410883: '孟州市', + 410902: '华龙区', + 410922: '清丰县', + 410923: '南乐县', + 410926: '范县', + 410927: '台前县', + 410928: '濮阳县', + 411002: '魏都区', + 411003: '建安区', + 411024: '鄢陵县', + 411025: '襄城县', + 411081: '禹州市', + 411082: '长葛市', + 411102: '源汇区', + 411103: '郾城区', + 411104: '召陵区', + 411121: '舞阳县', + 411122: '临颍县', + 411202: '湖滨区', + 411203: '陕州区', + 411221: '渑池县', + 411224: '卢氏县', + 411281: '义马市', + 411282: '灵宝市', + 411302: '宛城区', + 411303: '卧龙区', + 411321: '南召县', + 411322: '方城县', + 411323: '西峡县', + 411324: '镇平县', + 411325: '内乡县', + 411326: '淅川县', + 411327: '社旗县', + 411328: '唐河县', + 411329: '新野县', + 411330: '桐柏县', + 411381: '邓州市', + 411402: '梁园区', + 411403: '睢阳区', + 411421: '民权县', + 411422: '睢县', + 411423: '宁陵县', + 411424: '柘城县', + 411425: '虞城县', + 411426: '夏邑县', + 411481: '永城市', + 411502: '浉河区', + 411503: '平桥区', + 411521: '罗山县', + 411522: '光山县', + 411523: '新县', + 411524: '商城县', + 411525: '固始县', + 411526: '潢川县', + 411527: '淮滨县', + 411528: '息县', + 411602: '川汇区', + 411621: '扶沟县', + 411622: '西华县', + 411623: '商水县', + 411624: '沈丘县', + 411625: '郸城县', + 411626: '淮阳县', + 411627: '太康县', + 411628: '鹿邑县', + 411681: '项城市', + 411690: '经济开发区', + 411702: '驿城区', + 411721: '西平县', + 411722: '上蔡县', + 411723: '平舆县', + 411724: '正阳县', + 411725: '确山县', + 411726: '泌阳县', + 411727: '汝南县', + 411728: '遂平县', + 411729: '新蔡县', + 419001: '济源市', + 420102: '江岸区', + 420103: '江汉区', + 420104: '硚口区', + 420105: '汉阳区', + 420106: '武昌区', + 420107: '青山区', + 420111: '洪山区', + 420112: '东西湖区', + 420113: '汉南区', + 420114: '蔡甸区', + 420115: '江夏区', + 420116: '黄陂区', + 420117: '新洲区', + 420202: '黄石港区', + 420203: '西塞山区', + 420204: '下陆区', + 420205: '铁山区', + 420222: '阳新县', + 420281: '大冶市', + 420302: '茅箭区', + 420303: '张湾区', + 420304: '郧阳区', + 420322: '郧西县', + 420323: '竹山县', + 420324: '竹溪县', + 420325: '房县', + 420381: '丹江口市', + 420502: '西陵区', + 420503: '伍家岗区', + 420504: '点军区', + 420505: '猇亭区', + 420506: '夷陵区', + 420525: '远安县', + 420526: '兴山县', + 420527: '秭归县', + 420528: '长阳土家族自治县', + 420529: '五峰土家族自治县', + 420581: '宜都市', + 420582: '当阳市', + 420583: '枝江市', + 420590: '经济开发区', + 420602: '襄城区', + 420606: '樊城区', + 420607: '襄州区', + 420624: '南漳县', + 420625: '谷城县', + 420626: '保康县', + 420682: '老河口市', + 420683: '枣阳市', + 420684: '宜城市', + 420702: '梁子湖区', + 420703: '华容区', + 420704: '鄂城区', + 420802: '东宝区', + 420804: '掇刀区', + 420821: '京山县', + 420822: '沙洋县', + 420881: '钟祥市', + 420902: '孝南区', + 420921: '孝昌县', + 420922: '大悟县', + 420923: '云梦县', + 420981: '应城市', + 420982: '安陆市', + 420984: '汉川市', + 421002: '沙市区', + 421003: '荆州区', + 421022: '公安县', + 421023: '监利县', + 421024: '江陵县', + 421081: '石首市', + 421083: '洪湖市', + 421087: '松滋市', + 421102: '黄州区', + 421121: '团风县', + 421122: '红安县', + 421123: '罗田县', + 421124: '英山县', + 421125: '浠水县', + 421126: '蕲春县', + 421127: '黄梅县', + 421181: '麻城市', + 421182: '武穴市', + 421202: '咸安区', + 421221: '嘉鱼县', + 421222: '通城县', + 421223: '崇阳县', + 421224: '通山县', + 421281: '赤壁市', + 421303: '曾都区', + 421321: '随县', + 421381: '广水市', + 422801: '恩施市', + 422802: '利川市', + 422822: '建始县', + 422823: '巴东县', + 422825: '宣恩县', + 422826: '咸丰县', + 422827: '来凤县', + 422828: '鹤峰县', + 429004: '仙桃市', + 429005: '潜江市', + 429006: '天门市', + 429021: '神农架林区', + 430102: '芙蓉区', + 430103: '天心区', + 430104: '岳麓区', + 430105: '开福区', + 430111: '雨花区', + 430112: '望城区', + 430121: '长沙县', + 430181: '浏阳市', + 430182: '宁乡市', + 430202: '荷塘区', + 430203: '芦淞区', + 430204: '石峰区', + 430211: '天元区', + 430221: '株洲县', + 430223: '攸县', + 430224: '茶陵县', + 430225: '炎陵县', + 430281: '醴陵市', + 430302: '雨湖区', + 430304: '岳塘区', + 430321: '湘潭县', + 430381: '湘乡市', + 430382: '韶山市', + 430405: '珠晖区', + 430406: '雁峰区', + 430407: '石鼓区', + 430408: '蒸湘区', + 430412: '南岳区', + 430421: '衡阳县', + 430422: '衡南县', + 430423: '衡山县', + 430424: '衡东县', + 430426: '祁东县', + 430481: '耒阳市', + 430482: '常宁市', + 430502: '双清区', + 430503: '大祥区', + 430511: '北塔区', + 430521: '邵东县', + 430522: '新邵县', + 430523: '邵阳县', + 430524: '隆回县', + 430525: '洞口县', + 430527: '绥宁县', + 430528: '新宁县', + 430529: '城步苗族自治县', + 430581: '武冈市', + 430602: '岳阳楼区', + 430603: '云溪区', + 430611: '君山区', + 430621: '岳阳县', + 430623: '华容县', + 430624: '湘阴县', + 430626: '平江县', + 430681: '汨罗市', + 430682: '临湘市', + 430702: '武陵区', + 430703: '鼎城区', + 430721: '安乡县', + 430722: '汉寿县', + 430723: '澧县', + 430724: '临澧县', + 430725: '桃源县', + 430726: '石门县', + 430781: '津市市', + 430802: '永定区', + 430811: '武陵源区', + 430821: '慈利县', + 430822: '桑植县', + 430902: '资阳区', + 430903: '赫山区', + 430921: '南县', + 430922: '桃江县', + 430923: '安化县', + 430981: '沅江市', + 431002: '北湖区', + 431003: '苏仙区', + 431021: '桂阳县', + 431022: '宜章县', + 431023: '永兴县', + 431024: '嘉禾县', + 431025: '临武县', + 431026: '汝城县', + 431027: '桂东县', + 431028: '安仁县', + 431081: '资兴市', + 431102: '零陵区', + 431103: '冷水滩区', + 431121: '祁阳县', + 431122: '东安县', + 431123: '双牌县', + 431124: '道县', + 431125: '江永县', + 431126: '宁远县', + 431127: '蓝山县', + 431128: '新田县', + 431129: '江华瑶族自治县', + 431202: '鹤城区', + 431221: '中方县', + 431222: '沅陵县', + 431223: '辰溪县', + 431224: '溆浦县', + 431225: '会同县', + 431226: '麻阳苗族自治县', + 431227: '新晃侗族自治县', + 431228: '芷江侗族自治县', + 431229: '靖州苗族侗族自治县', + 431230: '通道侗族自治县', + 431281: '洪江市', + 431302: '娄星区', + 431321: '双峰县', + 431322: '新化县', + 431381: '冷水江市', + 431382: '涟源市', + 433101: '吉首市', + 433122: '泸溪县', + 433123: '凤凰县', + 433124: '花垣县', + 433125: '保靖县', + 433126: '古丈县', + 433127: '永顺县', + 433130: '龙山县', + 440103: '荔湾区', + 440104: '越秀区', + 440105: '海珠区', + 440106: '天河区', + 440111: '白云区', + 440112: '黄埔区', + 440113: '番禺区', + 440114: '花都区', + 440115: '南沙区', + 440117: '从化区', + 440118: '增城区', + 440203: '武江区', + 440204: '浈江区', + 440205: '曲江区', + 440222: '始兴县', + 440224: '仁化县', + 440229: '翁源县', + 440232: '乳源瑶族自治县', + 440233: '新丰县', + 440281: '乐昌市', + 440282: '南雄市', + 440303: '罗湖区', + 440304: '福田区', + 440305: '南山区', + 440306: '宝安区', + 440307: '龙岗区', + 440308: '盐田区', + 440309: '龙华区', + 440310: '坪山区', + 440402: '香洲区', + 440403: '斗门区', + 440404: '金湾区', + 440507: '龙湖区', + 440511: '金平区', + 440512: '濠江区', + 440513: '潮阳区', + 440514: '潮南区', + 440515: '澄海区', + 440523: '南澳县', + 440604: '禅城区', + 440605: '南海区', + 440606: '顺德区', + 440607: '三水区', + 440608: '高明区', + 440703: '蓬江区', + 440704: '江海区', + 440705: '新会区', + 440781: '台山市', + 440783: '开平市', + 440784: '鹤山市', + 440785: '恩平市', + 440802: '赤坎区', + 440803: '霞山区', + 440804: '坡头区', + 440811: '麻章区', + 440823: '遂溪县', + 440825: '徐闻县', + 440881: '廉江市', + 440882: '雷州市', + 440883: '吴川市', + 440890: '经济技术开发区', + 440902: '茂南区', + 440904: '电白区', + 440981: '高州市', + 440982: '化州市', + 440983: '信宜市', + 441202: '端州区', + 441203: '鼎湖区', + 441204: '高要区', + 441223: '广宁县', + 441224: '怀集县', + 441225: '封开县', + 441226: '德庆县', + 441284: '四会市', + 441302: '惠城区', + 441303: '惠阳区', + 441322: '博罗县', + 441323: '惠东县', + 441324: '龙门县', + 441402: '梅江区', + 441403: '梅县区', + 441422: '大埔县', + 441423: '丰顺县', + 441424: '五华县', + 441426: '平远县', + 441427: '蕉岭县', + 441481: '兴宁市', + 441502: '城区', + 441521: '海丰县', + 441523: '陆河县', + 441581: '陆丰市', + 441602: '源城区', + 441621: '紫金县', + 441622: '龙川县', + 441623: '连平县', + 441624: '和平县', + 441625: '东源县', + 441702: '江城区', + 441704: '阳东区', + 441721: '阳西县', + 441781: '阳春市', + 441802: '清城区', + 441803: '清新区', + 441821: '佛冈县', + 441823: '阳山县', + 441825: '连山壮族瑶族自治县', + 441826: '连南瑶族自治县', + 441881: '英德市', + 441882: '连州市', + 441901: '中堂镇', + 441903: '南城区', + 441904: '长安镇', + 441905: '东坑镇', + 441906: '樟木头镇', + 441907: '莞城区', + 441908: '石龙镇', + 441909: '桥头镇', + 441910: '万江区', + 441911: '麻涌镇', + 441912: '虎门镇', + 441913: '谢岗镇', + 441914: '石碣镇', + 441915: '茶山镇', + 441916: '东城区', + 441917: '洪梅镇', + 441918: '道滘镇', + 441919: '高埗镇', + 441920: '企石镇', + 441921: '凤岗镇', + 441922: '大岭山镇', + 441923: '松山湖', + 441924: '清溪镇', + 441925: '望牛墩镇', + 441926: '厚街镇', + 441927: '常平镇', + 441928: '寮步镇', + 441929: '石排镇', + 441930: '横沥镇', + 441931: '塘厦镇', + 441932: '黄江镇', + 441933: '大朗镇', + 441990: '沙田镇', + 442001: '南头镇', + 442002: '神湾镇', + 442003: '东凤镇', + 442004: '五桂山镇', + 442005: '黄圃镇', + 442006: '小榄镇', + 442007: '石岐区街道', + 442008: '横栏镇', + 442009: '三角镇', + 442010: '三乡镇', + 442011: '港口镇', + 442012: '沙溪镇', + 442013: '板芙镇', + 442014: '沙朗镇', + 442015: '东升镇', + 442016: '阜沙镇', + 442017: '民众镇', + 442018: '东区街道', + 442019: '火炬开发区', + 442020: '西区街道', + 442021: '南区街道', + 442022: '古镇', + 442023: '坦洲镇', + 442024: '大涌镇', + 442025: '南朗镇', + 445102: '湘桥区', + 445103: '潮安区', + 445122: '饶平县', + 445202: '榕城区', + 445203: '揭东区', + 445222: '揭西县', + 445224: '惠来县', + 445281: '普宁市', + 445302: '云城区', + 445303: '云安区', + 445321: '新兴县', + 445322: '郁南县', + 445381: '罗定市', + 450102: '兴宁区', + 450103: '青秀区', + 450105: '江南区', + 450107: '西乡塘区', + 450108: '良庆区', + 450109: '邕宁区', + 450110: '武鸣区', + 450123: '隆安县', + 450124: '马山县', + 450125: '上林县', + 450126: '宾阳县', + 450127: '横县', + 450202: '城中区', + 450203: '鱼峰区', + 450204: '柳南区', + 450205: '柳北区', + 450206: '柳江区', + 450222: '柳城县', + 450223: '鹿寨县', + 450224: '融安县', + 450225: '融水苗族自治县', + 450226: '三江侗族自治县', + 450302: '秀峰区', + 450303: '叠彩区', + 450304: '象山区', + 450305: '七星区', + 450311: '雁山区', + 450312: '临桂区', + 450321: '阳朔县', + 450323: '灵川县', + 450324: '全州县', + 450325: '兴安县', + 450326: '永福县', + 450327: '灌阳县', + 450328: '龙胜各族自治县', + 450329: '资源县', + 450330: '平乐县', + 450331: '荔浦县', + 450332: '恭城瑶族自治县', + 450403: '万秀区', + 450405: '长洲区', + 450406: '龙圩区', + 450421: '苍梧县', + 450422: '藤县', + 450423: '蒙山县', + 450481: '岑溪市', + 450502: '海城区', + 450503: '银海区', + 450512: '铁山港区', + 450521: '合浦县', + 450602: '港口区', + 450603: '防城区', + 450621: '上思县', + 450681: '东兴市', + 450702: '钦南区', + 450703: '钦北区', + 450721: '灵山县', + 450722: '浦北县', + 450802: '港北区', + 450803: '港南区', + 450804: '覃塘区', + 450821: '平南县', + 450881: '桂平市', + 450902: '玉州区', + 450903: '福绵区', + 450921: '容县', + 450922: '陆川县', + 450923: '博白县', + 450924: '兴业县', + 450981: '北流市', + 451002: '右江区', + 451021: '田阳县', + 451022: '田东县', + 451023: '平果县', + 451024: '德保县', + 451026: '那坡县', + 451027: '凌云县', + 451028: '乐业县', + 451029: '田林县', + 451030: '西林县', + 451031: '隆林各族自治县', + 451081: '靖西市', + 451102: '八步区', + 451103: '平桂区', + 451121: '昭平县', + 451122: '钟山县', + 451123: '富川瑶族自治县', + 451202: '金城江区', + 451203: '宜州区', + 451221: '南丹县', + 451222: '天峨县', + 451223: '凤山县', + 451224: '东兰县', + 451225: '罗城仫佬族自治县', + 451226: '环江毛南族自治县', + 451227: '巴马瑶族自治县', + 451228: '都安瑶族自治县', + 451229: '大化瑶族自治县', + 451302: '兴宾区', + 451321: '忻城县', + 451322: '象州县', + 451323: '武宣县', + 451324: '金秀瑶族自治县', + 451381: '合山市', + 451402: '江州区', + 451421: '扶绥县', + 451422: '宁明县', + 451423: '龙州县', + 451424: '大新县', + 451425: '天等县', + 451481: '凭祥市', + 460105: '秀英区', + 460106: '龙华区', + 460107: '琼山区', + 460108: '美兰区', + 460202: '海棠区', + 460203: '吉阳区', + 460204: '天涯区', + 460205: '崖州区', + 460321: '西沙群岛', + 460322: '南沙群岛', + 460323: '中沙群岛的岛礁及其海域', + 460401: '那大镇', + 460402: '和庆镇', + 460403: '南丰镇', + 460404: '大成镇', + 460405: '雅星镇', + 460406: '兰洋镇', + 460407: '光村镇', + 460408: '木棠镇', + 460409: '海头镇', + 460410: '峨蔓镇', + 460411: '王五镇', + 460412: '白马井镇', + 460413: '中和镇', + 460414: '排浦镇', + 460415: '东成镇', + 460416: '新州镇', + 469001: '五指山市', + 469002: '琼海市', + 469005: '文昌市', + 469006: '万宁市', + 469007: '东方市', + 469021: '定安县', + 469022: '屯昌县', + 469023: '澄迈县', + 469024: '临高县', + 469025: '白沙黎族自治县', + 469026: '昌江黎族自治县', + 469027: '乐东黎族自治县', + 469028: '陵水黎族自治县', + 469029: '保亭黎族苗族自治县', + 469030: '琼中黎族苗族自治县', + 500101: '万州区', + 500102: '涪陵区', + 500103: '渝中区', + 500104: '大渡口区', + 500105: '江北区', + 500106: '沙坪坝区', + 500107: '九龙坡区', + 500108: '南岸区', + 500109: '北碚区', + 500110: '綦江区', + 500111: '大足区', + 500112: '渝北区', + 500113: '巴南区', + 500114: '黔江区', + 500115: '长寿区', + 500116: '江津区', + 500117: '合川区', + 500118: '永川区', + 500119: '南川区', + 500120: '璧山区', + 500151: '铜梁区', + 500152: '潼南区', + 500153: '荣昌区', + 500154: '开州区', + 500155: '梁平区', + 500156: '武隆区', + 500229: '城口县', + 500230: '丰都县', + 500231: '垫江县', + 500233: '忠县', + 500235: '云阳县', + 500236: '奉节县', + 500237: '巫山县', + 500238: '巫溪县', + 500240: '石柱土家族自治县', + 500241: '秀山土家族苗族自治县', + 500242: '酉阳土家族苗族自治县', + 500243: '彭水苗族土家族自治县', + 510104: '锦江区', + 510105: '青羊区', + 510106: '金牛区', + 510107: '武侯区', + 510108: '成华区', + 510112: '龙泉驿区', + 510113: '青白江区', + 510114: '新都区', + 510115: '温江区', + 510116: '双流区', + 510117: '郫都区', + 510121: '金堂县', + 510129: '大邑县', + 510131: '蒲江县', + 510132: '新津县', + 510181: '都江堰市', + 510182: '彭州市', + 510183: '邛崃市', + 510184: '崇州市', + 510185: '简阳市', + 510191: '高新区', + 510302: '自流井区', + 510303: '贡井区', + 510304: '大安区', + 510311: '沿滩区', + 510321: '荣县', + 510322: '富顺县', + 510402: '东区', + 510403: '西区', + 510411: '仁和区', + 510421: '米易县', + 510422: '盐边县', + 510502: '江阳区', + 510503: '纳溪区', + 510504: '龙马潭区', + 510521: '泸县', + 510522: '合江县', + 510524: '叙永县', + 510525: '古蔺县', + 510603: '旌阳区', + 510604: '罗江区', + 510623: '中江县', + 510681: '广汉市', + 510682: '什邡市', + 510683: '绵竹市', + 510703: '涪城区', + 510704: '游仙区', + 510705: '安州区', + 510722: '三台县', + 510723: '盐亭县', + 510725: '梓潼县', + 510726: '北川羌族自治县', + 510727: '平武县', + 510781: '江油市', + 510791: '高新区', + 510802: '利州区', + 510811: '昭化区', + 510812: '朝天区', + 510821: '旺苍县', + 510822: '青川县', + 510823: '剑阁县', + 510824: '苍溪县', + 510903: '船山区', + 510904: '安居区', + 510921: '蓬溪县', + 510922: '射洪县', + 510923: '大英县', + 511002: '市中区', + 511011: '东兴区', + 511024: '威远县', + 511025: '资中县', + 511083: '隆昌市', + 511102: '市中区', + 511111: '沙湾区', + 511112: '五通桥区', + 511113: '金口河区', + 511123: '犍为县', + 511124: '井研县', + 511126: '夹江县', + 511129: '沐川县', + 511132: '峨边彝族自治县', + 511133: '马边彝族自治县', + 511181: '峨眉山市', + 511302: '顺庆区', + 511303: '高坪区', + 511304: '嘉陵区', + 511321: '南部县', + 511322: '营山县', + 511323: '蓬安县', + 511324: '仪陇县', + 511325: '西充县', + 511381: '阆中市', + 511402: '东坡区', + 511403: '彭山区', + 511421: '仁寿县', + 511423: '洪雅县', + 511424: '丹棱县', + 511425: '青神县', + 511502: '翠屏区', + 511503: '南溪区', + 511521: '宜宾县', + 511523: '江安县', + 511524: '长宁县', + 511525: '高县', + 511526: '珙县', + 511527: '筠连县', + 511528: '兴文县', + 511529: '屏山县', + 511602: '广安区', + 511603: '前锋区', + 511621: '岳池县', + 511622: '武胜县', + 511623: '邻水县', + 511681: '华蓥市', + 511702: '通川区', + 511703: '达川区', + 511722: '宣汉县', + 511723: '开江县', + 511724: '大竹县', + 511725: '渠县', + 511781: '万源市', + 511802: '雨城区', + 511803: '名山区', + 511822: '荥经县', + 511823: '汉源县', + 511824: '石棉县', + 511825: '天全县', + 511826: '芦山县', + 511827: '宝兴县', + 511902: '巴州区', + 511903: '恩阳区', + 511921: '通江县', + 511922: '南江县', + 511923: '平昌县', + 512002: '雁江区', + 512021: '安岳县', + 512022: '乐至县', + 513201: '马尔康市', + 513221: '汶川县', + 513222: '理县', + 513223: '茂县', + 513224: '松潘县', + 513225: '九寨沟县', + 513226: '金川县', + 513227: '小金县', + 513228: '黑水县', + 513230: '壤塘县', + 513231: '阿坝县', + 513232: '若尔盖县', + 513233: '红原县', + 513301: '康定市', + 513322: '泸定县', + 513323: '丹巴县', + 513324: '九龙县', + 513325: '雅江县', + 513326: '道孚县', + 513327: '炉霍县', + 513328: '甘孜县', + 513329: '新龙县', + 513330: '德格县', + 513331: '白玉县', + 513332: '石渠县', + 513333: '色达县', + 513334: '理塘县', + 513335: '巴塘县', + 513336: '乡城县', + 513337: '稻城县', + 513338: '得荣县', + 513401: '西昌市', + 513422: '木里藏族自治县', + 513423: '盐源县', + 513424: '德昌县', + 513425: '会理县', + 513426: '会东县', + 513427: '宁南县', + 513428: '普格县', + 513429: '布拖县', + 513430: '金阳县', + 513431: '昭觉县', + 513432: '喜德县', + 513433: '冕宁县', + 513434: '越西县', + 513435: '甘洛县', + 513436: '美姑县', + 513437: '雷波县', + 520102: '南明区', + 520103: '云岩区', + 520111: '花溪区', + 520112: '乌当区', + 520113: '白云区', + 520115: '观山湖区', + 520121: '开阳县', + 520122: '息烽县', + 520123: '修文县', + 520181: '清镇市', + 520201: '钟山区', + 520203: '六枝特区', + 520221: '水城县', + 520281: '盘州市', + 520302: '红花岗区', + 520303: '汇川区', + 520304: '播州区', + 520322: '桐梓县', + 520323: '绥阳县', + 520324: '正安县', + 520325: '道真仡佬族苗族自治县', + 520326: '务川仡佬族苗族自治县', + 520327: '凤冈县', + 520328: '湄潭县', + 520329: '余庆县', + 520330: '习水县', + 520381: '赤水市', + 520382: '仁怀市', + 520402: '西秀区', + 520403: '平坝区', + 520422: '普定县', + 520423: '镇宁布依族苗族自治县', + 520424: '关岭布依族苗族自治县', + 520425: '紫云苗族布依族自治县', + 520502: '七星关区', + 520521: '大方县', + 520522: '黔西县', + 520523: '金沙县', + 520524: '织金县', + 520525: '纳雍县', + 520526: '威宁彝族回族苗族自治县', + 520527: '赫章县', + 520602: '碧江区', + 520603: '万山区', + 520621: '江口县', + 520622: '玉屏侗族自治县', + 520623: '石阡县', + 520624: '思南县', + 520625: '印江土家族苗族自治县', + 520626: '德江县', + 520627: '沿河土家族自治县', + 520628: '松桃苗族自治县', + 522301: '兴义市', + 522322: '兴仁县', + 522323: '普安县', + 522324: '晴隆县', + 522325: '贞丰县', + 522326: '望谟县', + 522327: '册亨县', + 522328: '安龙县', + 522601: '凯里市', + 522622: '黄平县', + 522623: '施秉县', + 522624: '三穗县', + 522625: '镇远县', + 522626: '岑巩县', + 522627: '天柱县', + 522628: '锦屏县', + 522629: '剑河县', + 522630: '台江县', + 522631: '黎平县', + 522632: '榕江县', + 522633: '从江县', + 522634: '雷山县', + 522635: '麻江县', + 522636: '丹寨县', + 522701: '都匀市', + 522702: '福泉市', + 522722: '荔波县', + 522723: '贵定县', + 522725: '瓮安县', + 522726: '独山县', + 522727: '平塘县', + 522728: '罗甸县', + 522729: '长顺县', + 522730: '龙里县', + 522731: '惠水县', + 522732: '三都水族自治县', + 530102: '五华区', + 530103: '盘龙区', + 530111: '官渡区', + 530112: '西山区', + 530113: '东川区', + 530114: '呈贡区', + 530115: '晋宁区', + 530124: '富民县', + 530125: '宜良县', + 530126: '石林彝族自治县', + 530127: '嵩明县', + 530128: '禄劝彝族苗族自治县', + 530129: '寻甸回族彝族自治县', + 530181: '安宁市', + 530302: '麒麟区', + 530303: '沾益区', + 530321: '马龙县', + 530322: '陆良县', + 530323: '师宗县', + 530324: '罗平县', + 530325: '富源县', + 530326: '会泽县', + 530381: '宣威市', + 530402: '红塔区', + 530403: '江川区', + 530422: '澄江县', + 530423: '通海县', + 530424: '华宁县', + 530425: '易门县', + 530426: '峨山彝族自治县', + 530427: '新平彝族傣族自治县', + 530428: '元江哈尼族彝族傣族自治县', + 530502: '隆阳区', + 530521: '施甸县', + 530523: '龙陵县', + 530524: '昌宁县', + 530581: '腾冲市', + 530602: '昭阳区', + 530621: '鲁甸县', + 530622: '巧家县', + 530623: '盐津县', + 530624: '大关县', + 530625: '永善县', + 530626: '绥江县', + 530627: '镇雄县', + 530628: '彝良县', + 530629: '威信县', + 530630: '水富县', + 530702: '古城区', + 530721: '玉龙纳西族自治县', + 530722: '永胜县', + 530723: '华坪县', + 530724: '宁蒗彝族自治县', + 530802: '思茅区', + 530821: '宁洱哈尼族彝族自治县', + 530822: '墨江哈尼族自治县', + 530823: '景东彝族自治县', + 530824: '景谷傣族彝族自治县', + 530825: '镇沅彝族哈尼族拉祜族自治县', + 530826: '江城哈尼族彝族自治县', + 530827: '孟连傣族拉祜族佤族自治县', + 530828: '澜沧拉祜族自治县', + 530829: '西盟佤族自治县', + 530902: '临翔区', + 530921: '凤庆县', + 530922: '云县', + 530923: '永德县', + 530924: '镇康县', + 530925: '双江拉祜族佤族布朗族傣族自治县', + 530926: '耿马傣族佤族自治县', + 530927: '沧源佤族自治县', + 532301: '楚雄市', + 532322: '双柏县', + 532323: '牟定县', + 532324: '南华县', + 532325: '姚安县', + 532326: '大姚县', + 532327: '永仁县', + 532328: '元谋县', + 532329: '武定县', + 532331: '禄丰县', + 532501: '个旧市', + 532502: '开远市', + 532503: '蒙自市', + 532504: '弥勒市', + 532523: '屏边苗族自治县', + 532524: '建水县', + 532525: '石屏县', + 532527: '泸西县', + 532528: '元阳县', + 532529: '红河县', + 532530: '金平苗族瑶族傣族自治县', + 532531: '绿春县', + 532532: '河口瑶族自治县', + 532601: '文山市', + 532622: '砚山县', + 532623: '西畴县', + 532624: '麻栗坡县', + 532625: '马关县', + 532626: '丘北县', + 532627: '广南县', + 532628: '富宁县', + 532801: '景洪市', + 532822: '勐海县', + 532823: '勐腊县', + 532901: '大理市', + 532922: '漾濞彝族自治县', + 532923: '祥云县', + 532924: '宾川县', + 532925: '弥渡县', + 532926: '南涧彝族自治县', + 532927: '巍山彝族回族自治县', + 532928: '永平县', + 532929: '云龙县', + 532930: '洱源县', + 532931: '剑川县', + 532932: '鹤庆县', + 533102: '瑞丽市', + 533103: '芒市', + 533122: '梁河县', + 533123: '盈江县', + 533124: '陇川县', + 533301: '泸水市', + 533323: '福贡县', + 533324: '贡山独龙族怒族自治县', + 533325: '兰坪白族普米族自治县', + 533401: '香格里拉市', + 533422: '德钦县', + 533423: '维西傈僳族自治县', + 540102: '城关区', + 540103: '堆龙德庆区', + 540104: '达孜区', + 540121: '林周县', + 540122: '当雄县', + 540123: '尼木县', + 540124: '曲水县', + 540127: '墨竹工卡县', + 540202: '桑珠孜区', + 540221: '南木林县', + 540222: '江孜县', + 540223: '定日县', + 540224: '萨迦县', + 540225: '拉孜县', + 540226: '昂仁县', + 540227: '谢通门县', + 540228: '白朗县', + 540229: '仁布县', + 540230: '康马县', + 540231: '定结县', + 540232: '仲巴县', + 540233: '亚东县', + 540234: '吉隆县', + 540235: '聂拉木县', + 540236: '萨嘎县', + 540237: '岗巴县', + 540302: '卡若区', + 540321: '江达县', + 540322: '贡觉县', + 540323: '类乌齐县', + 540324: '丁青县', + 540325: '察雅县', + 540326: '八宿县', + 540327: '左贡县', + 540328: '芒康县', + 540329: '洛隆县', + 540330: '边坝县', + 540402: '巴宜区', + 540421: '工布江达县', + 540422: '米林县', + 540423: '墨脱县', + 540424: '波密县', + 540425: '察隅县', + 540426: '朗县', + 540502: '乃东区', + 540521: '扎囊县', + 540522: '贡嘎县', + 540523: '桑日县', + 540524: '琼结县', + 540525: '曲松县', + 540526: '措美县', + 540527: '洛扎县', + 540528: '加查县', + 540529: '隆子县', + 540530: '错那县', + 540531: '浪卡子县', + 540602: '色尼区', + 542421: '那曲县', + 542422: '嘉黎县', + 542423: '比如县', + 542424: '聂荣县', + 542425: '安多县', + 542426: '申扎县', + 542427: '索县', + 542428: '班戈县', + 542429: '巴青县', + 542430: '尼玛县', + 542431: '双湖县', + 542521: '普兰县', + 542522: '札达县', + 542523: '噶尔县', + 542524: '日土县', + 542525: '革吉县', + 542526: '改则县', + 542527: '措勤县', + 610102: '新城区', + 610103: '碑林区', + 610104: '莲湖区', + 610111: '灞桥区', + 610112: '未央区', + 610113: '雁塔区', + 610114: '阎良区', + 610115: '临潼区', + 610116: '长安区', + 610117: '高陵区', + 610118: '鄠邑区', + 610122: '蓝田县', + 610124: '周至县', + 610202: '王益区', + 610203: '印台区', + 610204: '耀州区', + 610222: '宜君县', + 610302: '渭滨区', + 610303: '金台区', + 610304: '陈仓区', + 610322: '凤翔县', + 610323: '岐山县', + 610324: '扶风县', + 610326: '眉县', + 610327: '陇县', + 610328: '千阳县', + 610329: '麟游县', + 610330: '凤县', + 610331: '太白县', + 610402: '秦都区', + 610403: '杨陵区', + 610404: '渭城区', + 610422: '三原县', + 610423: '泾阳县', + 610424: '乾县', + 610425: '礼泉县', + 610426: '永寿县', + 610427: '彬县', + 610428: '长武县', + 610429: '旬邑县', + 610430: '淳化县', + 610431: '武功县', + 610481: '兴平市', + 610502: '临渭区', + 610503: '华州区', + 610522: '潼关县', + 610523: '大荔县', + 610524: '合阳县', + 610525: '澄城县', + 610526: '蒲城县', + 610527: '白水县', + 610528: '富平县', + 610581: '韩城市', + 610582: '华阴市', + 610602: '宝塔区', + 610603: '安塞区', + 610621: '延长县', + 610622: '延川县', + 610623: '子长县', + 610625: '志丹县', + 610626: '吴起县', + 610627: '甘泉县', + 610628: '富县', + 610629: '洛川县', + 610630: '宜川县', + 610631: '黄龙县', + 610632: '黄陵县', + 610702: '汉台区', + 610703: '南郑区', + 610722: '城固县', + 610723: '洋县', + 610724: '西乡县', + 610725: '勉县', + 610726: '宁强县', + 610727: '略阳县', + 610728: '镇巴县', + 610729: '留坝县', + 610730: '佛坪县', + 610802: '榆阳区', + 610803: '横山区', + 610822: '府谷县', + 610824: '靖边县', + 610825: '定边县', + 610826: '绥德县', + 610827: '米脂县', + 610828: '佳县', + 610829: '吴堡县', + 610830: '清涧县', + 610831: '子洲县', + 610881: '神木市', + 610902: '汉滨区', + 610921: '汉阴县', + 610922: '石泉县', + 610923: '宁陕县', + 610924: '紫阳县', + 610925: '岚皋县', + 610926: '平利县', + 610927: '镇坪县', + 610928: '旬阳县', + 610929: '白河县', + 611002: '商州区', + 611021: '洛南县', + 611022: '丹凤县', + 611023: '商南县', + 611024: '山阳县', + 611025: '镇安县', + 611026: '柞水县', + 620102: '城关区', + 620103: '七里河区', + 620104: '西固区', + 620105: '安宁区', + 620111: '红古区', + 620121: '永登县', + 620122: '皋兰县', + 620123: '榆中县', + 620201: '市辖区', + 620290: '雄关区', + 620291: '长城区', + 620292: '镜铁区', + 620293: '新城镇', + 620294: '峪泉镇', + 620295: '文殊镇', + 620302: '金川区', + 620321: '永昌县', + 620402: '白银区', + 620403: '平川区', + 620421: '靖远县', + 620422: '会宁县', + 620423: '景泰县', + 620502: '秦州区', + 620503: '麦积区', + 620521: '清水县', + 620522: '秦安县', + 620523: '甘谷县', + 620524: '武山县', + 620525: '张家川回族自治县', + 620602: '凉州区', + 620621: '民勤县', + 620622: '古浪县', + 620623: '天祝藏族自治县', + 620702: '甘州区', + 620721: '肃南裕固族自治县', + 620722: '民乐县', + 620723: '临泽县', + 620724: '高台县', + 620725: '山丹县', + 620802: '崆峒区', + 620821: '泾川县', + 620822: '灵台县', + 620823: '崇信县', + 620824: '华亭县', + 620825: '庄浪县', + 620826: '静宁县', + 620902: '肃州区', + 620921: '金塔县', + 620922: '瓜州县', + 620923: '肃北蒙古族自治县', + 620924: '阿克塞哈萨克族自治县', + 620981: '玉门市', + 620982: '敦煌市', + 621002: '西峰区', + 621021: '庆城县', + 621022: '环县', + 621023: '华池县', + 621024: '合水县', + 621025: '正宁县', + 621026: '宁县', + 621027: '镇原县', + 621102: '安定区', + 621121: '通渭县', + 621122: '陇西县', + 621123: '渭源县', + 621124: '临洮县', + 621125: '漳县', + 621126: '岷县', + 621202: '武都区', + 621221: '成县', + 621222: '文县', + 621223: '宕昌县', + 621224: '康县', + 621225: '西和县', + 621226: '礼县', + 621227: '徽县', + 621228: '两当县', + 622901: '临夏市', + 622921: '临夏县', + 622922: '康乐县', + 622923: '永靖县', + 622924: '广河县', + 622925: '和政县', + 622926: '东乡族自治县', + 622927: '积石山保安族东乡族撒拉族自治县', + 623001: '合作市', + 623021: '临潭县', + 623022: '卓尼县', + 623023: '舟曲县', + 623024: '迭部县', + 623025: '玛曲县', + 623026: '碌曲县', + 623027: '夏河县', + 630102: '城东区', + 630103: '城中区', + 630104: '城西区', + 630105: '城北区', + 630121: '大通回族土族自治县', + 630122: '湟中县', + 630123: '湟源县', + 630202: '乐都区', + 630203: '平安区', + 630222: '民和回族土族自治县', + 630223: '互助土族自治县', + 630224: '化隆回族自治县', + 630225: '循化撒拉族自治县', + 632221: '门源回族自治县', + 632222: '祁连县', + 632223: '海晏县', + 632224: '刚察县', + 632321: '同仁县', + 632322: '尖扎县', + 632323: '泽库县', + 632324: '河南蒙古族自治县', + 632521: '共和县', + 632522: '同德县', + 632523: '贵德县', + 632524: '兴海县', + 632525: '贵南县', + 632621: '玛沁县', + 632622: '班玛县', + 632623: '甘德县', + 632624: '达日县', + 632625: '久治县', + 632626: '玛多县', + 632701: '玉树市', + 632722: '杂多县', + 632723: '称多县', + 632724: '治多县', + 632725: '囊谦县', + 632726: '曲麻莱县', + 632801: '格尔木市', + 632802: '德令哈市', + 632821: '乌兰县', + 632822: '都兰县', + 632823: '天峻县', + 640104: '兴庆区', + 640105: '西夏区', + 640106: '金凤区', + 640121: '永宁县', + 640122: '贺兰县', + 640181: '灵武市', + 640202: '大武口区', + 640205: '惠农区', + 640221: '平罗县', + 640302: '利通区', + 640303: '红寺堡区', + 640323: '盐池县', + 640324: '同心县', + 640381: '青铜峡市', + 640402: '原州区', + 640422: '西吉县', + 640423: '隆德县', + 640424: '泾源县', + 640425: '彭阳县', + 640502: '沙坡头区', + 640521: '中宁县', + 640522: '海原县', + 650102: '天山区', + 650103: '沙依巴克区', + 650104: '新市区', + 650105: '水磨沟区', + 650106: '头屯河区', + 650107: '达坂城区', + 650109: '米东区', + 650121: '乌鲁木齐县', + 650202: '独山子区', + 650203: '克拉玛依区', + 650204: '白碱滩区', + 650205: '乌尔禾区', + 650402: '高昌区', + 650421: '鄯善县', + 650422: '托克逊县', + 650502: '伊州区', + 650521: '巴里坤哈萨克自治县', + 650522: '伊吾县', + 652301: '昌吉市', + 652302: '阜康市', + 652323: '呼图壁县', + 652324: '玛纳斯县', + 652325: '奇台县', + 652327: '吉木萨尔县', + 652328: '木垒哈萨克自治县', + 652701: '博乐市', + 652702: '阿拉山口市', + 652722: '精河县', + 652723: '温泉县', + 652801: '库尔勒市', + 652822: '轮台县', + 652823: '尉犁县', + 652824: '若羌县', + 652825: '且末县', + 652826: '焉耆回族自治县', + 652827: '和静县', + 652828: '和硕县', + 652829: '博湖县', + 652901: '阿克苏市', + 652922: '温宿县', + 652923: '库车县', + 652924: '沙雅县', + 652925: '新和县', + 652926: '拜城县', + 652927: '乌什县', + 652928: '阿瓦提县', + 652929: '柯坪县', + 653001: '阿图什市', + 653022: '阿克陶县', + 653023: '阿合奇县', + 653024: '乌恰县', + 653101: '喀什市', + 653121: '疏附县', + 653122: '疏勒县', + 653123: '英吉沙县', + 653124: '泽普县', + 653125: '莎车县', + 653126: '叶城县', + 653127: '麦盖提县', + 653128: '岳普湖县', + 653129: '伽师县', + 653130: '巴楚县', + 653131: '塔什库尔干塔吉克自治县', + 653201: '和田市', + 653221: '和田县', + 653222: '墨玉县', + 653223: '皮山县', + 653224: '洛浦县', + 653225: '策勒县', + 653226: '于田县', + 653227: '民丰县', + 654002: '伊宁市', + 654003: '奎屯市', + 654004: '霍尔果斯市', + 654021: '伊宁县', + 654022: '察布查尔锡伯自治县', + 654023: '霍城县', + 654024: '巩留县', + 654025: '新源县', + 654026: '昭苏县', + 654027: '特克斯县', + 654028: '尼勒克县', + 654201: '塔城市', + 654202: '乌苏市', + 654221: '额敏县', + 654223: '沙湾县', + 654224: '托里县', + 654225: '裕民县', + 654226: '和布克赛尔蒙古自治县', + 654301: '阿勒泰市', + 654321: '布尔津县', + 654322: '富蕴县', + 654323: '福海县', + 654324: '哈巴河县', + 654325: '青河县', + 654326: '吉木乃县', + 659001: '石河子市', + 659002: '阿拉尔市', + 659003: '图木舒克市', + 659004: '五家渠市', + 659005: '北屯市', + 659006: '铁门关市', + 659007: '双河市', + 659008: '可克达拉市', + 659009: '昆玉市', + 710101: '中正区', + 710102: '大同区', + 710103: '中山区', + 710104: '松山区', + 710105: '大安区', + 710106: '万华区', + 710107: '信义区', + 710108: '士林区', + 710109: '北投区', + 710110: '内湖区', + 710111: '南港区', + 710112: '文山区', + 710199: '其它区', + 710201: '新兴区', + 710202: '前金区', + 710203: '芩雅区', + 710204: '盐埕区', + 710205: '鼓山区', + 710206: '旗津区', + 710207: '前镇区', + 710208: '三民区', + 710209: '左营区', + 710210: '楠梓区', + 710211: '小港区', + 710241: '苓雅区', + 710242: '仁武区', + 710243: '大社区', + 710244: '冈山区', + 710245: '路竹区', + 710246: '阿莲区', + 710247: '田寮区', + 710248: '燕巢区', + 710249: '桥头区', + 710250: '梓官区', + 710251: '弥陀区', + 710252: '永安区', + 710253: '湖内区', + 710254: '凤山区', + 710255: '大寮区', + 710256: '林园区', + 710257: '鸟松区', + 710258: '大树区', + 710259: '旗山区', + 710260: '美浓区', + 710261: '六龟区', + 710262: '内门区', + 710263: '杉林区', + 710264: '甲仙区', + 710265: '桃源区', + 710266: '那玛夏区', + 710267: '茂林区', + 710268: '茄萣区', + 710299: '其它区', + 710301: '中西区', + 710302: '东区', + 710303: '南区', + 710304: '北区', + 710305: '安平区', + 710306: '安南区', + 710339: '永康区', + 710340: '归仁区', + 710341: '新化区', + 710342: '左镇区', + 710343: '玉井区', + 710344: '楠西区', + 710345: '南化区', + 710346: '仁德区', + 710347: '关庙区', + 710348: '龙崎区', + 710349: '官田区', + 710350: '麻豆区', + 710351: '佳里区', + 710352: '西港区', + 710353: '七股区', + 710354: '将军区', + 710355: '学甲区', + 710356: '北门区', + 710357: '新营区', + 710358: '后壁区', + 710359: '白河区', + 710360: '东山区', + 710361: '六甲区', + 710362: '下营区', + 710363: '柳营区', + 710364: '盐水区', + 710365: '善化区', + 710366: '大内区', + 710367: '山上区', + 710368: '新市区', + 710369: '安定区', + 710399: '其它区', + 710401: '中区', + 710402: '东区', + 710403: '南区', + 710404: '西区', + 710405: '北区', + 710406: '北屯区', + 710407: '西屯区', + 710408: '南屯区', + 710431: '太平区', + 710432: '大里区', + 710433: '雾峰区', + 710434: '乌日区', + 710435: '丰原区', + 710436: '后里区', + 710437: '石冈区', + 710438: '东势区', + 710439: '和平区', + 710440: '新社区', + 710441: '潭子区', + 710442: '大雅区', + 710443: '神冈区', + 710444: '大肚区', + 710445: '沙鹿区', + 710446: '龙井区', + 710447: '梧栖区', + 710448: '清水区', + 710449: '大甲区', + 710450: '外埔区', + 710451: '大安区', + 710499: '其它区', + 710507: '金沙镇', + 710508: '金湖镇', + 710509: '金宁乡', + 710510: '金城镇', + 710511: '烈屿乡', + 710512: '乌坵乡', + 710614: '南投市', + 710615: '中寮乡', + 710616: '草屯镇', + 710617: '国姓乡', + 710618: '埔里镇', + 710619: '仁爱乡', + 710620: '名间乡', + 710621: '集集镇', + 710622: '水里乡', + 710623: '鱼池乡', + 710624: '信义乡', + 710625: '竹山镇', + 710626: '鹿谷乡', + 710701: '仁爱区', + 710702: '信义区', + 710703: '中正区', + 710704: '中山区', + 710705: '安乐区', + 710706: '暖暖区', + 710707: '七堵区', + 710799: '其它区', + 710801: '东区', + 710802: '北区', + 710803: '香山区', + 710899: '其它区', + 710901: '东区', + 710902: '西区', + 710999: '其它区', + 711130: '万里区', + 711132: '板桥区', + 711133: '汐止区', + 711134: '深坑区', + 711136: '瑞芳区', + 711137: '平溪区', + 711138: '双溪区', + 711140: '新店区', + 711141: '坪林区', + 711142: '乌来区', + 711143: '永和区', + 711144: '中和区', + 711145: '土城区', + 711146: '三峡区', + 711147: '树林区', + 711149: '三重区', + 711150: '新庄区', + 711151: '泰山区', + 711152: '林口区', + 711154: '五股区', + 711155: '八里区', + 711156: '淡水区', + 711157: '三芝区', + 711287: '宜兰市', + 711288: '头城镇', + 711289: '礁溪乡', + 711290: '壮围乡', + 711291: '员山乡', + 711292: '罗东镇', + 711293: '三星乡', + 711294: '大同乡', + 711295: '五结乡', + 711296: '冬山乡', + 711297: '苏澳镇', + 711298: '南澳乡', + 711299: '钓鱼台', + 711387: '竹北市', + 711388: '湖口乡', + 711389: '新丰乡', + 711390: '新埔镇', + 711391: '关西镇', + 711392: '芎林乡', + 711393: '宝山乡', + 711394: '竹东镇', + 711395: '五峰乡', + 711396: '横山乡', + 711397: '尖石乡', + 711398: '北埔乡', + 711399: '峨眉乡', + 711487: '中坜市', + 711488: '平镇市', + 711489: '龙潭乡', + 711490: '杨梅市', + 711491: '新屋乡', + 711492: '观音乡', + 711493: '桃园市', + 711494: '龟山乡', + 711495: '八德市', + 711496: '大溪镇', + 711497: '复兴乡', + 711498: '大园乡', + 711499: '芦竹乡', + 711582: '竹南镇', + 711583: '头份镇', + 711584: '三湾乡', + 711585: '南庄乡', + 711586: '狮潭乡', + 711587: '后龙镇', + 711588: '通霄镇', + 711589: '苑里镇', + 711590: '苗栗市', + 711591: '造桥乡', + 711592: '头屋乡', + 711593: '公馆乡', + 711594: '大湖乡', + 711595: '泰安乡', + 711596: '铜锣乡', + 711597: '三义乡', + 711598: '西湖乡', + 711599: '卓兰镇', + 711774: '彰化市', + 711775: '芬园乡', + 711776: '花坛乡', + 711777: '秀水乡', + 711778: '鹿港镇', + 711779: '福兴乡', + 711780: '线西乡', + 711781: '和美镇', + 711782: '伸港乡', + 711783: '员林镇', + 711784: '社头乡', + 711785: '永靖乡', + 711786: '埔心乡', + 711787: '溪湖镇', + 711788: '大村乡', + 711789: '埔盐乡', + 711790: '田中镇', + 711791: '北斗镇', + 711792: '田尾乡', + 711793: '埤头乡', + 711794: '溪州乡', + 711795: '竹塘乡', + 711796: '二林镇', + 711797: '大城乡', + 711798: '芳苑乡', + 711799: '二水乡', + 711982: '番路乡', + 711983: '梅山乡', + 711984: '竹崎乡', + 711985: '阿里山乡', + 711986: '中埔乡', + 711987: '大埔乡', + 711988: '水上乡', + 711989: '鹿草乡', + 711990: '太保市', + 711991: '朴子市', + 711992: '东石乡', + 711993: '六脚乡', + 711994: '新港乡', + 711995: '民雄乡', + 711996: '大林镇', + 711997: '溪口乡', + 711998: '义竹乡', + 711999: '布袋镇', + 712180: '斗南镇', + 712181: '大埤乡', + 712182: '虎尾镇', + 712183: '土库镇', + 712184: '褒忠乡', + 712185: '东势乡', + 712186: '台西乡', + 712187: '仑背乡', + 712188: '麦寮乡', + 712189: '斗六市', + 712190: '林内乡', + 712191: '古坑乡', + 712192: '莿桐乡', + 712193: '西螺镇', + 712194: '二仑乡', + 712195: '北港镇', + 712196: '水林乡', + 712197: '口湖乡', + 712198: '四湖乡', + 712199: '元长乡', + 712467: '屏东市', + 712468: '三地门乡', + 712469: '雾台乡', + 712470: '玛家乡', + 712471: '九如乡', + 712472: '里港乡', + 712473: '高树乡', + 712474: '盐埔乡', + 712475: '长治乡', + 712476: '麟洛乡', + 712477: '竹田乡', + 712478: '内埔乡', + 712479: '万丹乡', + 712480: '潮州镇', + 712481: '泰武乡', + 712482: '来义乡', + 712483: '万峦乡', + 712484: '莰顶乡', + 712485: '新埤乡', + 712486: '南州乡', + 712487: '林边乡', + 712488: '东港镇', + 712489: '琉球乡', + 712490: '佳冬乡', + 712491: '新园乡', + 712492: '枋寮乡', + 712493: '枋山乡', + 712494: '春日乡', + 712495: '狮子乡', + 712496: '车城乡', + 712497: '牡丹乡', + 712498: '恒春镇', + 712499: '满州乡', + 712584: '台东市', + 712585: '绿岛乡', + 712586: '兰屿乡', + 712587: '延平乡', + 712588: '卑南乡', + 712589: '鹿野乡', + 712590: '关山镇', + 712591: '海端乡', + 712592: '池上乡', + 712593: '东河乡', + 712594: '成功镇', + 712595: '长滨乡', + 712596: '金峰乡', + 712597: '大武乡', + 712598: '达仁乡', + 712599: '太麻里乡', + 712686: '花莲市', + 712687: '新城乡', + 712688: '太鲁阁', + 712689: '秀林乡', + 712690: '吉安乡', + 712691: '寿丰乡', + 712692: '凤林镇', + 712693: '光复乡', + 712694: '丰滨乡', + 712695: '瑞穗乡', + 712696: '万荣乡', + 712697: '玉里镇', + 712698: '卓溪乡', + 712699: '富里乡', + 712794: '马公市', + 712795: '西屿乡', + 712796: '望安乡', + 712797: '七美乡', + 712798: '白沙乡', + 712799: '湖西乡', + 712896: '南竿乡', + 712897: '北竿乡', + 712898: '东引乡', + 712899: '莒光乡', + 810101: '中西区', + 810102: '湾仔', + 810103: '东区', + 810104: '南区', + 810201: '九龙城区', + 810202: '油尖旺区', + 810203: '深水埗区', + 810204: '黄大仙区', + 810205: '观塘区', + 810301: '北区', + 810302: '大埔区', + 810303: '沙田区', + 810304: '西贡区', + 810305: '元朗区', + 810306: '屯门区', + 810307: '荃湾区', + 810308: '葵青区', + 810309: '离岛区', + 820101: '澳门半岛', + 820201: '离岛' + } + }; + + + Class.prototype.config = { + elem: '', + data: { + province: '', + city: '', + county: '', + provinceCode: 0, + cityCode: 0, + countyCode: 0, + }, + change: function(result){} + }; + + Class.prototype.index = 0; + + Class.prototype.render = function () { + let that = this, options = that.config; + options.elem = $(options.elem); + options.bindAction = $(options.bindAction); + + that.events(); + }; + + Class.prototype.events = function () { + let that = this, options = that.config, index; + let provinceFilter = 'province-' + layarea._id; + let cityFilter = 'city-' + layarea._id; + let countyFilter = 'county-' + layarea._id; + + let provinceEl = options.elem.find('.province-selector'); + let cityEl = options.elem.find('.city-selector'); + let countyEl = options.elem.find('.county-selector'); + + //filter + if(provinceEl.attr('lay-filter')){ + provinceFilter = provinceEl.attr('lay-filter'); + } + if(cityEl.attr('lay-filter')){ + cityFilter = cityEl.attr('lay-filter'); + } + if(countyEl.attr('lay-filter')){ + countyFilter = countyEl.attr('lay-filter'); + } + provinceEl.attr('lay-filter', provinceFilter); + cityEl.attr('lay-filter', cityFilter); + countyEl.attr('lay-filter', countyFilter); + + //获取默认值 + if(provinceEl.data('value')){ + options.data.province = provinceEl.data('value'); + options.data.provinceCode = getCode('province', options.data.province); + } + if(cityEl.data('value')){ + options.data.city = cityEl.data('value'); + let code = getCode('city', options.data.city, options.data.provinceCode.slice(0, 2)); + options.data.cityCode = code; + } + if(countyEl.data('value')){ + options.data.county = countyEl.data('value'); + options.data.countyCode = getCode('county', options.data.county, options.data.cityCode.slice(0, 4)); + } + provinceEl.attr('lay-filter', provinceFilter); + cityEl.attr('lay-filter', cityFilter); + countyEl.attr('lay-filter', countyFilter); + + //监听结果 + form.on('select('+provinceFilter+')', function(data){ + options.data.province = data.value; + options.data.provinceCode = getCode('province', data.value); + renderCity(options.data.provinceCode); + + options.change(options.data); + }); + form.on('select('+cityFilter+')', function(data){ + options.data.city = data.value; + if(options.data.provinceCode){ + options.data.cityCode = getCode('city', data.value, options.data.provinceCode.slice(0, 2)); + renderCounty(options.data.cityCode); + } + + options.change(options.data); + }); + form.on('select('+countyFilter+')', function(data){ + options.data.county = data.value; + if(options.data.cityCode){ + options.data.countyCode = getCode('county', data.value, options.data.cityCode.slice(0, 4)); + } + options.change(options.data); + }); + + renderProvince(); + + //查找province + function renderProvince(){ + let tpl = ''; + let provinceList = getList("province"); + let currentCode = ''; + let currentName = ''; + provinceList.forEach(function(_item){ + // if (!currentCode){ + // currentCode = _item.code; + // currentName = _item.name; + // } + if(_item.name === options.data.province){ + currentCode = _item.code; + currentName = _item.name; + } + tpl += ''; + }); + provinceEl.html(tpl); + provinceEl.val(options.data.province); + form.render('select'); + renderCity(currentCode); + } + + function renderCity(provinceCode){ + let tpl = ''; + let cityList = getList('city', provinceCode.slice(0, 2)); + let currentCode = ''; + let currentName = ''; + cityList.forEach(function(_item){ + // if (!currentCode){ + // currentCode = _item.code; + // currentName = _item.name; + // } + if(_item.name === options.data.city){ + currentCode = _item.code; + currentName = _item.name; + } + tpl += ''; + }); + options.data.city = currentName; + cityEl.html(tpl); + cityEl.val(options.data.city); + form.render('select'); + renderCounty(currentCode); + } + + function renderCounty(cityCode){ + let tpl = ''; + let countyList = getList('county', cityCode.slice(0, 4)); + let currentCode = ''; + let currentName = ''; + countyList.forEach(function(_item){ + // if (!currentCode){ + // currentCode = _item.code; + // currentName = _item.name; + // } + if(_item.name === options.data.county){ + currentCode = _item.code; + currentName = _item.name; + } + tpl += ''; + }); + options.data.county = currentName; + countyEl.html(tpl); + countyEl.val(options.data.county); + + form.render('select'); + } + + function getList(type, code) { + let result = []; + + if (type !== 'province' && !code) { + return result; + } + + let list = areaList[type + "_list"] || {}; + result = Object.keys(list).map(function (code) { + return { + code: code, + name: list[code] + }; + }); + + if (code) { + // oversea code + if (code[0] === '9' && type === 'city') { + code = '9'; + } + + result = result.filter(function (item) { + return item.code.indexOf(code) === 0; + }); + } + + return result; + } + + function getCode(type, name, parentCode = 0){ + let code = ''; + let list = areaList[type + "_list"] || {}; + let result = {}; + Object.keys(list).map(function (_code) { + if(parentCode){ + if(_code.indexOf(parentCode) === 0){ + result[_code] = list[_code]; + } + }else{ + result[_code] = list[_code]; + } + }); + layui.each(result, function(_code, _name){ + if(_name === name){ + code = _code; + } + }); + + return code; + } + }; + + layarea.render = function (options) { + let inst = new Class(options); + layarea._id++; + return thisArea.call(inst); + }; + + //暴露接口 + exports('layarea', layarea); +}); \ No newline at end of file diff --git a/assets/js/lay-module/layuimini/miniAdmin.js b/assets/js/lay-module/layuimini/miniAdmin.js new file mode 100755 index 0000000..1b63e23 --- /dev/null +++ b/assets/js/lay-module/layuimini/miniAdmin.js @@ -0,0 +1,363 @@ +/** + * date:2020/02/27 + * author:Mr.Chung + * version:2.0 + * description:layuimini 主体框架扩展 + */ +layui.define(["jquery", "miniMenu", "element","miniTab","miniPage", "miniTheme"], function (exports) { + var $ = layui.$, + layer = layui.layer, + miniMenu = layui.miniMenu, + miniTheme = layui.miniTheme, + element = layui.element , + miniTab = layui.miniTab, + miniPage = layui.miniPage; + + if (!/http(s*):\/\//.test(location.href)) { + var tips = "请先将项目部署至web容器(Apache/Tomcat/Nginx/IIS/等),否则部分数据将无法显示"; + return layer.alert(tips); + } + + var miniAdmin = { + + /** + * 后台框架初始化 + * @param options.iniUrl 后台初始化接口地址 + * @param options.clearUrl 后台清理缓存接口 + * @param options.urlHashLocation URL地址hash定位 + * @param options.bgColorDefault 默认皮肤 + * @param options.multiModule 是否开启多模块 + * @param options.menuChildOpen 是否展开子菜单 + * @param options.loadingTime 初始化加载时间 + * @param options.pageAnim iframe窗口动画 + * @param options.maxTabNum 最大的tab打开数量 + */ + render: function (options) { + options.iniUrl = options.iniUrl || null; + options.clearUrl = options.clearUrl || null; + options.urlHashLocation = options.urlHashLocation || false; + options.bgColorDefault = options.bgColorDefault || 0; + options.multiModule = options.multiModule || false; + options.menuChildOpen = options.menuChildOpen || false; + options.loadingTime = options.loadingTime || 1; + options.pageAnim = options.pageAnim || false; + options.maxTabNum = options.maxTabNum || 20; + $.getJSON(options.iniUrl, function (data) { + if (data == null) { + miniAdmin.error('暂无菜单信息') + } else { + miniAdmin.renderLogo(data.logoInfo); + miniAdmin.renderClear(options.clearUrl); + miniAdmin.renderHome(data.homeInfo); + miniAdmin.renderAnim(options.pageAnim); + miniAdmin.listen(); + miniMenu.render({ + menuList: data.menuInfo, + multiModule: options.multiModule, + menuChildOpen: options.menuChildOpen + }); + miniPage.render({ + homeInfo:data.homeInfo, + menuList: data.menuInfo, + multiModule: options.multiModule, + renderPageVersion: options.renderPageVersion, + menuChildOpen: options.menuChildOpen, + listenSwichCallback: function () { + miniAdmin.renderDevice(); + } + }); + miniTab.render({ + filter: 'layuiminiTab', + urlHashLocation: options.urlHashLocation, + multiModule: options.multiModule, + menuChildOpen: options.menuChildOpen, + maxTabNum: options.maxTabNum, + menuList: data.menuInfo, + homeInfo: data.homeInfo, + listenSwichCallback: function () { + miniAdmin.renderDevice(); + } + }); + miniTheme.render({ + bgColorDefault: options.bgColorDefault, + listen: true, + }); + miniAdmin.deleteLoader(options.loadingTime); + } + }).fail(function () { + miniAdmin.error('菜单接口有误'); + }); + }, + + /** + * 初始化logo + * @param data + */ + renderLogo: function (data) { + var html = 'logo

' + data.title + '

'; + $('.layuimini-logo').html(html); + }, + + /** + * 初始化首页 + * @param data + */ + renderHome: function (data) { + sessionStorage.setItem('layuiminiHomeHref', data.href); + $('#layuiminiHomeTabId').html('ဆ'); + // $('#layuiminiHomeTabId').html('' + data.title + 'ဆ'); + $('#layuiminiHomeTabId').attr('lay-id', data.href); + $('#layuiminiHomeTabIframe').html(''); + }, + + /** + * 初始化缓存地址 + * @param clearUrl + */ + renderClear: function (clearUrl) { + $('.layuimini-clear').attr('data-href',clearUrl); + }, + + /** + * 初始化iframe窗口动画 + * @param anim + */ + renderAnim: function (anim) { + if (anim) { + $('#layuimini-bg-color').after(''); + } + }, + + fullScreen: function () { + var el = document.documentElement; + var rfs = el.requestFullScreen || el.webkitRequestFullScreen; + if (typeof rfs != "undefined" && rfs) { + rfs.call(el); + } else if (typeof window.ActiveXObject != "undefined") { + var wscript = new ActiveXObject("WScript.Shell"); + if (wscript != null) { + wscript.SendKeys("{F11}"); + } + } else if (el.msRequestFullscreen) { + el.msRequestFullscreen(); + } else if (el.oRequestFullscreen) { + el.oRequestFullscreen(); + } else if (el.webkitRequestFullscreen) { + el.webkitRequestFullscreen(); + } else if (el.mozRequestFullScreen) { + el.mozRequestFullScreen(); + } else { + miniAdmin.error('浏览器不支持全屏调用!'); + } + }, + + /** + * 退出全屏 + */ + exitFullScreen: function () { + var el = document; + var cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.exitFullScreen; + if (typeof cfs != "undefined" && cfs) { + cfs.call(el); + } else if (typeof window.ActiveXObject != "undefined") { + var wscript = new ActiveXObject("WScript.Shell"); + if (wscript != null) { + wscript.SendKeys("{F11}"); + } + } else if (el.msExitFullscreen) { + el.msExitFullscreen(); + } else if (el.oRequestFullscreen) { + el.oCancelFullScreen(); + }else if (el.mozCancelFullScreen) { + el.mozCancelFullScreen(); + } else if (el.webkitCancelFullScreen) { + el.webkitCancelFullScreen(); + } else { + miniAdmin.error('浏览器不支持全屏调用!'); + } + }, + + /** + * 初始化设备端 + */ + renderDevice: function () { + if (miniAdmin.checkMobile()) { + $('.layuimini-tool i').attr('data-side-fold', 1); + $('.layuimini-tool i').attr('class', 'fa fa-outdent'); + $('.layui-layout-body').removeClass('layuimini-mini'); + $('.layui-layout-body').addClass('layuimini-all'); + } + }, + + + /** + * 初始化加载时间 + * @param loadingTime + */ + deleteLoader: function (loadingTime) { + setTimeout(function () { + $('.layuimini-loader').fadeOut(); + }, loadingTime * 1000) + }, + + /** + * 成功 + * @param title + * @returns {*} + */ + success: function (title) { + return layer.msg(title, {icon: 1, shade: this.shade, scrollbar: false, time: 2000, shadeClose: true}); + }, + + /** + * 失败 + * @param title + * @returns {*} + */ + error: function (title) { + return layer.msg(title, {icon: 2, shade: this.shade, scrollbar: false, time: 3000, shadeClose: true}); + }, + + /** + * 判断是否为手机 + * @returns {boolean} + */ + checkMobile: function () { + var ua = navigator.userAgent.toLocaleLowerCase(); + var pf = navigator.platform.toLocaleLowerCase(); + var isAndroid = (/android/i).test(ua) || ((/iPhone|iPod|iPad/i).test(ua) && (/linux/i).test(pf)) + || (/ucweb.*linux/i.test(ua)); + var isIOS = (/iPhone|iPod|iPad/i).test(ua) && !isAndroid; + var isWinPhone = (/Windows Phone|ZuneWP7/i).test(ua); + var clientWidth = document.documentElement.clientWidth; + if (!isAndroid && !isIOS && !isWinPhone && clientWidth > 1024) { + return false; + } else { + return true; + } + }, + + /** + * 监听 + */ + listen: function () { + + /** + * 清理 + */ + $('body').on('click', '[data-clear]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + sessionStorage.clear(); + + // 判断是否清理服务端 + var clearUrl = $(this).attr('data-href'); + if (clearUrl != undefined && clearUrl != '' && clearUrl != null) { + $.getJSON(clearUrl, function (data, status) { + layer.close(loading); + if (data.code != 1) { + return miniAdmin.error(data.msg); + } else { + return miniAdmin.success(data.msg); + } + }).fail(function () { + layer.close(loading); + return miniAdmin.error('清理缓存接口有误'); + }); + } else { + layer.close(loading); + return miniAdmin.success('清除缓存成功'); + } + }); + + /** + * 刷新 + */ + $('body').on('click', '[data-refresh]', function () { + miniPage.refresh(options); + // $(".layui-tab-item.layui-show").find("iframe")[0].contentWindow.location.reload(); + miniAdmin.success('刷新成功'); + }); + + /** + * 监听提示信息 + */ + $("body").on("mouseenter", ".layui-nav-tree .menu-li", function () { + if (miniAdmin.checkMobile()) { + return false; + } + var classInfo = $(this).attr('class'), + tips = $(this).prop("innerHTML"), + isShow = $('.layuimini-tool i').attr('data-side-fold'); + if (isShow == 0 && tips) { + tips = "
  • "+tips+"
" ; + window.openTips = layer.tips(tips, $(this), { + tips: [2, '#2f4056'], + time: 300000, + skin:"popup-tips", + success:function (el) { + var left = $(el).position().left - 10 ; + $(el).css({ left:left }); + element.render(); + } + }); + } + }); + + $("body").on("mouseleave", ".popup-tips", function () { + if (miniAdmin.checkMobile()) { + return false; + } + var isShow = $('.layuimini-tool i').attr('data-side-fold'); + if (isShow == 0) { + try { + layer.close(window.openTips); + } catch (e) { + console.log(e.message); + } + } + }); + + + /** + * 全屏 + */ + $('body').on('click', '[data-check-screen]', function () { + var check = $(this).attr('data-check-screen'); + if (check == 'full') { + miniAdmin.fullScreen(); + $(this).attr('data-check-screen', 'exit'); + $(this).html(''); + } else { + miniAdmin.exitFullScreen(); + $(this).attr('data-check-screen', 'full'); + $(this).html(''); + } + }); + + /** + * 点击遮罩层 + */ + $('body').on('click', '.layuimini-make', function () { + miniAdmin.renderDevice(); + }); + + } + }; + + + exports("miniAdmin", miniAdmin); +}); diff --git a/assets/js/lay-module/layuimini/miniMenu.js b/assets/js/lay-module/layuimini/miniMenu.js new file mode 100755 index 0000000..f3b0c53 --- /dev/null +++ b/assets/js/lay-module/layuimini/miniMenu.js @@ -0,0 +1,253 @@ +/** + * date:2020/02/27 + * author:Mr.Chung + * version:2.0 + * description:layuimini 菜单框架扩展 + */ +layui.define(["element","laytpl" ,"jquery"], function (exports) { + var element = layui.element, + $ = layui.$, + laytpl = layui.laytpl, + layer = layui.layer; + + var miniMenu = { + + /** + * 菜单初始化 + * @param options.menuList 菜单数据信息 + * @param options.multiModule 是否开启多模块 + * @param options.menuChildOpen 是否展开子菜单 + */ + render: function (options) { + options.menuList = options.menuList || []; + options.multiModule = options.multiModule || false; + options.menuChildOpen = options.menuChildOpen || false; + if (options.multiModule) { + miniMenu.renderMultiModule(options.menuList, options.menuChildOpen); + } else { + miniMenu.renderSingleModule(options.menuList, options.menuChildOpen); + } + window.i18n.updatePageContent(); + miniMenu.listen(); + }, + + /** + * 单模块 + * @param menuList 菜单数据 + * @param menuChildOpen 是否默认展开 + */ + renderSingleModule: function (menuList, menuChildOpen) { + menuList = menuList || []; + var leftMenuHtml = '', + childOpenClass = '', + leftMenuCheckDefault = 'layui-this'; + var me = this ; + if (menuChildOpen) childOpenClass = ' layui-nav-itemed'; + leftMenuHtml = this.renderLeftMenu(menuList,{ childOpenClass:childOpenClass }) ; + $('.layui-layout-body').addClass('layuimini-single-module'); //单模块标识 + $('.layuimini-header-menu').remove(); + $('.layuimini-menu-left').html(leftMenuHtml); + + element.init(); + }, + + /** + * 渲染一级菜单 + */ + compileMenu: function(menu,isSub){ + // console.log(menu) + var menuHtml = '' ; + if(isSub){ + menuHtml = '' + } + return laytpl(menuHtml).render(menu); + }, + compileMenuContainer :function(menu,isSub){ + var wrapperHtml = '
    {{d.children}}
' ; + if(isSub){ + wrapperHtml = '
{{d.children}}
' ; + } + if(!menu.children){ + return ""; + } + return laytpl(wrapperHtml).render(menu); + }, + + each:function(list,callback){ + var _list = []; + for(var i = 0 ,length = list.length ; i 0) { + for (var key in pageTitleArray) { + key = parseInt(key); + if (key !== pageTitleArray.length - 1) { + pageTitleHtml += '' + pageTitleArray[key] + '/\n'; + } else { + pageTitleHtml += '' + pageTitleArray[key] + '\n'; + } + } + } else { + var title = sessionStorage.getItem('layuimini_page_title'); + if (title === null || title === undefined || title === '') { + $('.layuimini-page-header').addClass('layui-hide'); + } else { + pageTitleHtml += '' + title + '\n'; + } + } + $('.layuimini-page-header .layuimini-page-title').empty().html(pageTitleHtml); + }, + + /** + * 初始化页面内容 + * @param options + * @param href + */ + renderPageContent: function (href, options) { + options.renderPageVersion = options.renderPageVersion || false; + var container = '.layuimini-content-page'; + if (options.renderPageVersion) { + var v = new Date().getTime(); + // href = href.indexOf("?") > -1 ? href + '&v=' + v : href + '?v=' + v; + href = href; + } + if ($(".layuimini-page-header").hasClass("layui-hide")) { + $(container).removeAttr("style"); + } else { + $(container).attr("style", "height: calc(100% - 36px)"); + } + $(container).html(''); + $.ajax({ + url: href, + type: 'get', + dataType: 'html', + success: function (data) { + $(container).html(data); + element.init(); + }, + error: function (xhr, textstatus, thrown) { + return layer.msg('Status:' + xhr.status + ',' + xhr.statusText + ',请稍后再试!'); + } + }); + }, + + /** + * 刷新页面内容 + * @param options + */ + refresh: function (options) { + var href = location.hash.replace(/^#\//, ''); + if (href === null || href === undefined || href === '') { + miniPage.renderHome(options); + } else { + miniPage.renderPageContent(href, options); + } + }, + + /** + * 构建页面标题数组 + * @param href + * @param menuList + */ + buildPageTitleArray: function (href, menuList) { + var array = [], + newArray = []; + for (key in menuList) { + var item = menuList[key]; + if (item.href === href) { + array.push(item.title); + break; + } + if (item.child) { + newArray = miniPage.buildPageTitleArray(href, item.child); + if (newArray.length > 0) { + newArray.unshift(item.title); + array = array.concat(newArray); + break; + } + } + } + return array; + }, + + /** + * 获取指定链接内容 + * @param href + * @returns {string} + */ + getHrefContent: function (href) { + var content = ''; + var v = new Date().getTime(); + $.ajax({ + url: href.indexOf("?") > -1 ? href + '&v=' + v : href + '?v=' + v, + type: 'get', + dataType: 'html', + async: false, + success: function (data) { + content = data; + }, + error: function (xhr, textstatus, thrown) { + return layer.msg('Status:' + xhr.status + ',' + xhr.statusText + ',请稍后再试!'); + } + }); + return content; + }, + + /** + * 获取弹出层的宽高 + * @returns {jQuery[]} + */ + getOpenWidthHeight: function () { + var clienWidth = $(".layuimini-content-page").width(); + var clienWidth1 = $(".layuimini-content-page").width(); + var clientHeight = $(".layuimini-content-page").height(); + var offsetLeft = $(".layuimini-content-page").offset().left; + var offsetTop = $(".layuimini-content-page").offset().top; + if(parseFloat(clienWidth)>1000){ + clienWidth=clienWidth/2 + } + if(parseFloat(clientHeight)>700){ + clientHeight=700 + } + return [clienWidth, clientHeight, offsetTop, offsetLeft,clienWidth1]; + }, + + /** + * 单模块切换 + * @param tabId + */ + listenSwitchSingleModule: function (tabId) { + $("[layuimini-href]").each(function () { + if ($(this).attr("layuimini-href") === tabId) { + // 自动展开菜单栏 + var addMenuClass = function ($element, type) { + if (type === 1) { + $element.addClass('layui-this'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } else { + $element.addClass('layui-nav-itemed'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } + }; + addMenuClass($(this).parent(), 1); + return false; + } + }); + }, + + /** + * 多模块切换 + * @param tabId + */ + listenSwitchMultiModule: function (tabId) { + $("[layuimini-href]").each(function () { + if ($(this).attr("layuimini-href") === tabId) { + + // 自动展开菜单栏 + var addMenuClass = function ($element, type) { + if (type === 1) { + $element.addClass('layui-this'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { + var moduleId = $element.parent().attr('id'); + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } else { + $element.addClass('layui-nav-itemed'); + $element.addClass('additemed'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { + var moduleId = $element.parent().attr('id'); + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } + }; + addMenuClass($(this).parent(), 1); + return false; + } + }); + }, + + /** + * 修改hash地址定位 + * @param href + */ + hashChange: function (href) { + window.location.hash = "/" + href; + }, + + /** + * 修改hash地址为主页 + */ + hashHome: function () { + window.location.hash = "/"; + }, + + /** + * 监听 + * @param options + */ + listen: function (options) { + + /** + * 打开新窗口 + */ + $('body').on('click', '[layuimini-href]', function (e) { + e.stopPropagation() + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var href = $(this).attr('layuimini-href'), + target = $(this).attr('target'); + if(!href) return ; + if(href=='welcome.html'){ + $(".menu-li").removeClass("layui-nav-itemed") + $(".menu-li").removeClass("additemed") + }else{ + + } + var me = this ; + var el = $("[layuimini-href='"+href+"']",".layuimini-menu-left") ; + layer.close(window.openTips); + if(el.length){ + $(el).closest(".layui-nav-tree").find(".layui-this").removeClass("layui-this"); + $(el).parent().addClass("layui-this"); + } + if (target === '_blank') { + layer.close(loading); + window.open(href, "_blank"); + return false; + } + miniPage.hashChange(href); + $('.layuimini-menu-left').attr('layuimini-page-add', 'yes'); + layer.close(loading); + }); + + /** + * 在子页面上打开新窗口 + */ + $('body').on('click', '[layuimini-content-href]', function () { + var loading = parent.layer.load(0, {shade: false, time: 2 * 1000}); + var href = $(this).attr('layuimini-content-href'), + title = $(this).attr('data-title'), + target = $(this).attr('target'); + if(!href) return ; + var me = this ; + var el = $("[layuimini-href='"+href+"']",".layuimini-menu-left") ; + layer.close(window.openTips); + if(el.length){ + $(el).closest(".layui-nav-tree").find(".layui-this").removeClass("layui-this"); + $(el).parent().addClass("layui-this"); + } + if (target === '_blank') { + parent.layer.close(loading); + window.open(href, "_blank"); + return false; + } + sessionStorage.setItem('layuimini_page_title', title); + miniPage.hashChange(href); + parent.layer.close(loading); + }); + + /** + * 返回主页 + */ + $('body').on('click', '.layuimini-back-home', function () { + miniPage.hashHome(); + }); + + + }, + + + /** + * 监听hash变化 + * @returns {boolean} + */ + listenHash: function (options) { + options.homeInfo = options.homeInfo || {}; + options.multiModule = options.multiModule || false; + options.listenSwichCallback = options.listenSwichCallback || function () { + }; + window.onhashchange = function () { + var href = location.hash.replace(/^#\//, ''); + if (typeof options.listenSwichCallback === 'function') { + options.listenSwichCallback(); + } + if (href === null || href === undefined || href === '') { + $("[layuimini-href]").parent().removeClass('layui-this'); + miniPage.renderHome(options); + } else { + miniPage.renderPage(href, options); + } + if ($('.layuimini-menu-left').attr('layuimini-page-add') === 'yes') { + $('.layuimini-menu-left').attr('layuimini-page-add', 'no'); + } else { + // 从页面中打开的话,浏览器前进后退、需要重新定位菜单焦点 + $("[layuimini-href]").parent().removeClass('layui-this'); + if (options.multiModule) { + miniPage.listenSwitchMultiModule(href); + } else { + miniPage.listenSwitchSingleModule(href); + } + } + }; + }, + + + }; + + exports("miniPage", miniPage); +}); diff --git a/assets/js/lay-module/layuimini/miniTab.js b/assets/js/lay-module/layuimini/miniTab.js new file mode 100755 index 0000000..9ec731c --- /dev/null +++ b/assets/js/lay-module/layuimini/miniTab.js @@ -0,0 +1,597 @@ +/** + * date:2020/02/27 + * author:Mr.Chung + * version:2.0 + * description:layuimini tab框架扩展 + */ +layui.define(["element", "layer", "jquery"], function (exports) { + var element = layui.element, + layer = layui.layer, + $ = layui.$; + + + var miniTab = { + + /** + * 初始化tab + * @param options + */ + render: function (options) { + options.filter = options.filter || null; + options.multiModule = options.multiModule || false; + options.urlHashLocation = options.urlHashLocation || false; + options.maxTabNum = options.maxTabNum || 20; + options.menuList = options.menuList || []; // todo 后期菜单想改为不操作dom, 而是直接操作初始化传过来的数据 + options.homeInfo = options.homeInfo || {}; + options.listenSwichCallback = options.listenSwichCallback || function () { + }; + miniTab.listen(options); + miniTab.listenRoll(); + miniTab.listenSwitch(options); + miniTab.listenHash(options); + }, + + /** + * 新建tab窗口 + * @param options.tabId + * @param options.href + * @param options.title + * @param options.isIframe + * @param options.maxTabNum + */ + create: function (options) { + options.tabId = options.tabId || null; + options.href = options.href || null; + options.title = options.title || null; + options.isIframe = options.isIframe || false; + options.maxTabNum = options.maxTabNum || 20; + if ($(".layuimini-tab .layui-tab-title li").length >= options.maxTabNum) { + layer.msg('Tab窗口已达到限定数量,请先关闭部分Tab'); + return false; + } + var ele = element; + // console.log(options) + if (options.isIframe) ele = parent.layui.element; + if(options.hash){ + ele.tabAdd('layuiminiTab', { + title: 'ဆ' //用于演示 + , content: '' + , id: options.tabId + }); + window.i18n.updatePageContent(); + }else{ + ele.tabAdd('layuiminiTab', { + title: '' + options.title + 'ဆ' //用于演示 + , content: '' + , id: options.tabId + }); + } + + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'add'); + sessionStorage.setItem('layuiminimenu_' + options.tabId, options.title); + }, + + + /** + * 切换选项卡 + * @param tabId + */ + change: function (tabId) { + element.tabChange('layuiminiTab', tabId); + }, + + /** + * 删除tab窗口 + * @param tabId + * @param isParent + */ + delete: function (tabId, isParent) { + // todo 未知BUG,不知道是不是layui问题,必须先删除元素 + $(".layuimini-tab .layui-tab-title .layui-unselect.layui-tab-bar").remove(); + + if (isParent === true) { + parent.layui.element.tabDelete('layuiminiTab', tabId); + } else { + element.tabDelete('layuiminiTab', tabId); + } + }, + + /** + * 在iframe层打开新tab方法 + */ + openNewTabByIframe: function (options) { + // console.log(options) + options.href = options.href || null; + options.title = options.title || null; + var loading = parent.layer.load(0, {shade: false, time: 2 * 1000}); + if (options.href === null || options.href === undefined) options.href = new Date().getTime(); + var checkTab = miniTab.check(options.href, true); + if (!checkTab) { + miniTab.create({ + tabId: options.href, + href: options.href, + title: options.title, + name: options.name, + isIframe: true, + }); + } + parent.layui.element.tabChange('layuiminiTab', options.href); + parent.layer.close(loading); + }, + + /** + * 在iframe层关闭当前tab方法 + */ + deleteCurrentByIframe: function () { + var ele = $(".layuimini-tab .layui-tab-title li.layui-this", parent.document); + if (ele.length > 0) { + var layId = $(ele[0]).attr('lay-id'); + miniTab.delete(layId, true); + } + }, + + /** + * 判断tab窗口 + */ + check: function (tabId, isIframe) { + // 判断选项卡上是否有 + var checkTab = false; + if (isIframe === undefined || isIframe === false) { + $(".layui-tab-title li").each(function () { + var checkTabId = $(this).attr('lay-id'); + if (checkTabId != null && checkTabId === tabId) { + checkTab = true; + } + }); + } else { + parent.layui.$(".layui-tab-title li").each(function () { + var checkTabId = $(this).attr('lay-id'); + if (checkTabId != null && checkTabId === tabId) { + checkTab = true; + } + }); + } + return checkTab; + }, + + /** + * 开启tab右键菜单 + * @param tabId + * @param left + */ + openTabRignMenu: function (tabId, left) { + miniTab.closeTabRignMenu(); + var menuHtml = '
\n' + + '
\n' + + '
关 闭 当 前
\n' + + '
关 闭 其 他
\n' + + '
关 闭 全 部
\n' + + '
\n' + + '
'; + var makeHtml = '
'; + $('.layuimini-tab .layui-tab-title').after(menuHtml); + $('.layuimini-tab .layui-tab-content').after(makeHtml); + }, + + /** + * 关闭tab右键菜单 + */ + closeTabRignMenu: function () { + $('.layuimini-tab-mousedown').remove(); + $('.layuimini-tab-make').remove(); + }, + + /** + * 查询菜单信息 + * @param href + * @param menuList + */ + searchMenu: function (href, menuList) { + var menu; + for (key in menuList) { + var item = menuList[key]; + if (item.href === href) { + menu = item; + break; + } + if (item.child) { + newMenu = miniTab.searchMenu(href, item.child); + if (newMenu) { + menu = newMenu; + break; + } + } + } + return menu; + }, + + /** + * 监听 + * @param options + */ + listen: function (options) { + options = options || {}; + options.maxTabNum = options.maxTabNum || 20; + + /** + * 打开新窗口 + */ + $('body').on('click', '[layuimini-href]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var tabId = $(this).attr('layuimini-href'), + href = $(this).attr('layuimini-href'), + title = $(this).text(), + target = $(this).attr('target'); + + var el = $("[layuimini-href='" + href + "']", ".layuimini-menu-left"); + layer.close(window.openTips); + if (el.length) { + $(el).closest(".layui-nav-tree").find(".layui-this").removeClass("layui-this"); + $(el).parent().addClass("layui-this"); + } + + if (target === '_blank') { + layer.close(loading); + window.open(href, "_blank"); + return false; + } + + if (tabId === null || tabId === undefined) tabId = new Date().getTime(); + var checkTab = miniTab.check(tabId); + if (!checkTab) { + miniTab.create({ + tabId: tabId, + href: href, + title: title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + } + element.tabChange('layuiminiTab', tabId); + layer.close(loading); + }); + + /** + * 在iframe子菜单上打开新窗口 + */ + $('body').on('click', '[layuimini-content-href]', function () { + var loading = parent.layer.load(0, {shade: false, time: 2 * 1000}); + var tabId = $(this).attr('layuimini-content-href'), + href = $(this).attr('layuimini-content-href'), + title = $(this).attr('data-title'), + target = $(this).attr('target'); + if (target === '_blank') { + parent.layer.close(loading); + window.open(href, "_blank"); + return false; + } + if (tabId === null || tabId === undefined) tabId = new Date().getTime(); + var checkTab = miniTab.check(tabId, true); + if (!checkTab) { + miniTab.create({ + tabId: tabId, + href: href, + title: title, + isIframe: true, + maxTabNum: options.maxTabNum, + }); + } + parent.layui.element.tabChange('layuiminiTab', tabId); + parent.layer.close(loading); + }); + + /** + * 关闭选项卡 + **/ + $('body').on('click', '.layuimini-tab .layui-tab-title .layui-tab-close', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var $parent = $(this).parent(); + var tabId = $parent.attr('lay-id'); + if (tabId !== undefined || tabId !== null) { + miniTab.delete(tabId); + } + layer.close(loading); + }); + + /** + * 选项卡操作 + */ + $('body').on('click', '[layuimini-tab-close]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var closeType = $(this).attr('layuimini-tab-close'); + $(".layuimini-tab .layui-tab-title li").each(function () { + var tabId = $(this).attr('lay-id'); + var id = $(this).attr('id'); + var isCurrent = $(this).hasClass('layui-this'); + if (id !== 'layuiminiHomeTabId') { + if (closeType === 'all') { + miniTab.delete(tabId); + } else { + if (closeType === 'current' && isCurrent) { + miniTab.delete(tabId); + } else if (closeType === 'other' && !isCurrent) { + miniTab.delete(tabId); + } + } + } + }); + layer.close(loading); + }); + + /** + * 禁用网页右键 + */ + $(".layuimini-tab .layui-tab-title").unbind("mousedown").bind("contextmenu", function (e) { + e.preventDefault(); + return false; + }); + + /** + * 注册鼠标右键 + */ + $('body').on('mousedown', '.layuimini-tab .layui-tab-title li', function (e) { + var left = $(this).offset().left - $('.layuimini-tab ').offset().left + ($(this).width() / 2), + tabId = $(this).attr('lay-id'); + if (e.which === 3) { + miniTab.openTabRignMenu(tabId, left); + } + }); + + /** + * 关闭tab右键菜单 + */ + $('body').on('click', '.layui-body,.layui-header,.layuimini-menu-left,.layuimini-tab-make', function () { + miniTab.closeTabRignMenu(); + }); + + /** + * tab右键选项卡操作 + */ + $('body').on('click', '[layuimini-tab-menu-close]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var closeType = $(this).attr('layuimini-tab-menu-close'), + currentTabId = $('.layuimini-tab-mousedown').attr('data-tab-id'); + $(".layuimini-tab .layui-tab-title li").each(function () { + var tabId = $(this).attr('lay-id'); + var id = $(this).attr('id'); + if (id !== 'layuiminiHomeTabId') { + if (closeType === 'all') { + miniTab.delete(tabId); + } else { + if (closeType === 'current' && currentTabId === tabId) { + miniTab.delete(tabId); + } else if (closeType === 'other' && currentTabId !== tabId) { + miniTab.delete(tabId); + } + } + } + }); + miniTab.closeTabRignMenu(); + layer.close(loading); + }); + }, + + /** + * 监听tab切换 + * @param options + */ + listenSwitch: function (options) { + options.filter = options.filter || null; + options.multiModule = options.multiModule || false; + options.urlHashLocation = options.urlHashLocation || false; + options.listenSwichCallback = options.listenSwichCallback || function () { + + }; + element.on('tab(' + options.filter + ')', function (data) { + var tabId = $(this).attr('lay-id'); + if (options.urlHashLocation) { + location.hash = '/' + tabId; + } + if (typeof options.listenSwichCallback === 'function') { + options.listenSwichCallback(); + } + // 判断是否为新增窗口 + if ($('.layuimini-menu-left').attr('layuimini-tab-tag') === 'add') { + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'no') + } else { + $("[layuimini-href]").parent().removeClass('layui-this'); + if (options.multiModule) { + miniTab.listenSwitchMultiModule(tabId); + } else { + miniTab.listenSwitchSingleModule(tabId); + } + } + miniTab.rollPosition(); + }); + }, + + /** + * 监听hash变化 + * @param options + * @returns {boolean} + */ + listenHash: function (options) { + options.urlHashLocation = options.urlHashLocation || false; + options.maxTabNum = options.maxTabNum || 20; + options.homeInfo = options.homeInfo || {}; + options.menuList = options.menuList || []; + if (!options.urlHashLocation) return false; + var tabId = location.hash.replace(/^#\//, ''); + if (tabId === null || tabId === undefined || tabId ==='') return false; + + // 判断是否为首页 + if(tabId ===options.homeInfo.href) return false; + + // 判断是否为右侧菜单 + var menu = miniTab.searchMenu(tabId, options.menuList); + if (menu !== undefined) { + miniTab.create({ + hash:true, + tabId: tabId, + href: tabId, + title: menu.title, + name: menu.name, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'no'); + element.tabChange('layuiminiTab', tabId); + return false; + } + + // 判断是否为快捷菜单 + var isSearchMenu = false; + $("[layuimini-content-href]").each(function () { + if ($(this).attr("layuimini-content-href") === tabId) { + var title = $(this).attr("data-title"); + miniTab.create({ + tabId: tabId, + href: tabId, + title: title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + $('.layuimini-menu-left').attr('layuimini-tab-tag', 'no'); + element.tabChange('layuiminiTab', tabId); + isSearchMenu = true; + return false; + } + }); + if (isSearchMenu) return false; + + // 既不是右侧菜单、快捷菜单,就直接打开 + var title = sessionStorage.getItem('layuiminimenu_' + tabId) === null ? tabId : sessionStorage.getItem('layuiminimenu_' + tabId); + miniTab.create({ + tabId: tabId, + href: tabId, + title: title, + isIframe: false, + maxTabNum: options.maxTabNum, + }); + element.tabChange('layuiminiTab', tabId); + return false; + }, + + /** + * 监听滚动 + */ + listenRoll: function () { + $(".layuimini-tab-roll-left").click(function () { + miniTab.rollClick("left"); + }); + $(".layuimini-tab-roll-right").click(function () { + miniTab.rollClick("right"); + }); + }, + + /** + * 单模块切换 + * @param tabId + */ + listenSwitchSingleModule: function (tabId) { + $("[layuimini-href]").each(function () { + if ($(this).attr("layuimini-href") === tabId) { + // 自动展开菜单栏 + var addMenuClass = function ($element, type) { + if (type === 1) { + $element.addClass('layui-this'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } else { + $element.addClass('layui-nav-itemed'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } + }; + addMenuClass($(this).parent(), 1); + return false; + } + }); + }, + + /** + * 多模块切换 + * @param tabId + */ + listenSwitchMultiModule: function (tabId) { + $("[layuimini-href]").each(function () { + if ($(this).attr("layuimini-href") === tabId) { + + // 自动展开菜单栏 + var addMenuClass = function ($element, type) { + if (type === 1) { + $element.addClass('layui-this'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-this')) { + var moduleId = $element.parent().attr('id'); + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } else { + $element.addClass('layui-nav-itemed'); + if ($element.hasClass('layui-nav-item') && $element.hasClass('layui-nav-itemed')) { + var moduleId = $element.parent().attr('id'); + $(".layuimini-header-menu li").attr('class', 'layui-nav-item'); + $("#" + moduleId + "HeaderId").addClass("layui-this"); + $(".layuimini-menu-left .layui-nav.layui-nav-tree").attr('class', 'layui-nav layui-nav-tree layui-hide'); + $("#" + moduleId).attr('class', 'layui-nav layui-nav-tree layui-this'); + } else { + addMenuClass($element.parent().parent(), 2); + } + } + }; + addMenuClass($(this).parent(), 1); + return false; + } + }); + }, + + /** + * 自动定位 + */ + rollPosition: function () { + var $tabTitle = $('.layuimini-tab .layui-tab-title'); + var autoLeft = 0; + $tabTitle.children("li").each(function () { + if ($(this).hasClass('layui-this')) { + return false; + } else { + autoLeft += $(this).outerWidth(); + } + }); + $tabTitle.animate({ + scrollLeft: autoLeft - $tabTitle.width() / 3 + }, 200); + }, + + /** + * 点击滚动 + * @param direction + */ + rollClick: function (direction) { + var $tabTitle = $('.layuimini-tab .layui-tab-title'); + var left = $tabTitle.scrollLeft(); + if ('left' === direction) { + $tabTitle.animate({ + scrollLeft: left - 450 + }, 200); + } else { + $tabTitle.animate({ + scrollLeft: left + 450 + }, 200); + } + } + + }; + + exports("miniTab", miniTab); +}); diff --git a/assets/js/lay-module/layuimini/miniTheme.js b/assets/js/lay-module/layuimini/miniTheme.js new file mode 100755 index 0000000..b2aa016 --- /dev/null +++ b/assets/js/lay-module/layuimini/miniTheme.js @@ -0,0 +1,469 @@ +/** + * date:2020/02/28 + * author:Mr.Chung + * version:2.0 + * description:layuimini tab框架扩展 + */ +layui.define(["jquery", "layer"], function (exports) { + var $ = layui.$, + layer = layui.layer; + + var miniTheme = { + + /** + * 主题配置项 + * @param bgcolorId + * @returns {{headerLogo, menuLeftHover, headerRight, menuLeft, headerRightThis, menuLeftThis}|*|*[]} + */ + config: function (bgcolorId) { + var bgColorConfig = [ + { + headerRightBg: '#ffffff', //头部右侧背景色 + headerRightBgThis: '#e4e4e4', //头部右侧选中背景色, + headerRightColor: 'rgba(107, 107, 107, 0.7)', //头部右侧字体颜色, + headerRightChildColor: 'rgba(107, 107, 107, 0.7)', //头部右侧下拉字体颜色, + headerRightColorThis: '#565656', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(160, 160, 160, 0.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1E9FFF', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#565656', //头部缩放按钮样式, + headerLogoBg: '#192027', //logo背景颜色, + headerLogoColor: 'rgb(191, 187, 187)', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#28333E', //左侧菜单背景, + leftMenuBgThis: '#1E9FFF', //左侧菜单选中背景, + leftMenuChildBg: '#0c0f13', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#1e9fff', //tab选项卡选中颜色, + }, + { + headerRightBg: '#23262e', //头部右侧背景色 + headerRightBgThis: '#0c0c0c', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1aa094', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#23262e', //左侧菜单背景, + leftMenuBgThis: '#737373', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#23262e', //tab选项卡选中颜色, + }, + { + headerRightBg: '#ffa4d1', //头部右侧背景色 + headerRightBgThis: '#bf7b9d', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#ffa4d1', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#e694bd', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#737373', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#ffa4d1', //tab选项卡选中颜色, + }, + { + headerRightBg: '#1aa094', //头部右侧背景色 + headerRightBgThis: '#197971', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1aa094', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#23262e', //左侧菜单背景, + leftMenuBgThis: '#1aa094', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#1aa094', //tab选项卡选中颜色, + }, + { + headerRightBg: '#1e9fff', //头部右侧背景色 + headerRightBgThis: '#0069b7', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#1e9fff', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#1e9fff', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#1e9fff', //tab选项卡选中颜色, + }, + { + headerRightBg: '#ffb800', //头部右侧背景色 + headerRightBgThis: '#d09600', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#d09600', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#243346', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#8593a7', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#ffb800', //tab选项卡选中颜色, + }, + { + headerRightBg: '#e82121', //头部右侧背景色 + headerRightBgThis: '#ae1919', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#ae1919', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0c0c0c', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#3b3f4b', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#e82121', //tab选项卡选中颜色, + }, + { + headerRightBg: '#963885', //头部右侧背景色 + headerRightBgThis: '#772c6a', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#772c6a', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#243346', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#586473', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#963885', //tab选项卡选中颜色, + }, + { + headerRightBg: '#2D8CF0', //头部右侧背景色 + headerRightBgThis: '#0069b7', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#0069b7', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#0069b7', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#2D8CF0', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#2d8cf0', //tab选项卡选中颜色, + }, + { + headerRightBg: '#ffb800', //头部右侧背景色 + headerRightBgThis: '#d09600', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#d09600', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#d09600', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#3b3f4b', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#ffb800', //tab选项卡选中颜色, + }, + { + headerRightBg: '#e82121', //头部右侧背景色 + headerRightBgThis: '#ae1919', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#ae1919', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#d91f1f', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#1f1f1f', //左侧菜单背景, + leftMenuBgThis: '#3b3f4b', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#e82121', //tab选项卡选中颜色, + }, + { + headerRightBg: '#963885', //头部右侧背景色 + headerRightBgThis: '#772c6a', //头部右侧选中背景色, + headerRightColor: 'rgba(255,255,255,.7)', //头部右侧字体颜色, + headerRightChildColor: '#676767', //头部右侧下拉字体颜色, + headerRightColorThis: '#ffffff', //头部右侧鼠标选中, + headerRightNavMore: 'rgba(255,255,255,.7)', //头部右侧更多下拉颜色, + headerRightNavMoreBg: '#772c6a', //头部右侧更多下拉列表选中背景色, + headerRightNavMoreColor: '#ffffff', //头部右侧更多下拉列表字体色, + headerRightToolColor: '#bbe3df', //头部缩放按钮样式, + headerLogoBg: '#772c6a', //logo背景颜色, + headerLogoColor: '#ffffff', //logo字体颜色, + leftMenuNavMore: 'rgb(191, 187, 187)', //左侧菜单更多下拉样式, + leftMenuBg: '#2f4056', //左侧菜单背景, + leftMenuBgThis: '#626f7f', //左侧菜单选中背景, + leftMenuChildBg: 'rgba(0,0,0,.3)', //左侧菜单子菜单背景, + leftMenuColor: 'rgb(191, 187, 187)', //左侧菜单字体颜色, + leftMenuColorThis: '#ffffff', //左侧菜单选中字体颜色, + tabActiveColor: '#963885', //tab选项卡选中颜色, + } + ]; + if (bgcolorId === undefined) { + return bgColorConfig; + } else { + return bgColorConfig[bgcolorId]; + } + }, + + /** + * 初始化 + * @param options + */ + render: function (options) { + options.bgColorDefault = options.bgColorDefault || false; + options.listen = options.listen || false; + var bgcolorId = sessionStorage.getItem('layuiminiBgcolorId'); + if (bgcolorId === null || bgcolorId === undefined || bgcolorId === '') { + bgcolorId = options.bgColorDefault; + } + miniTheme.buildThemeCss(bgcolorId); + if (options.listen) miniTheme.listen(options); + }, + + /** + * 构建主题样式 + * @param bgcolorId + * @returns {boolean} + */ + buildThemeCss: function (bgcolorId) { + if (!bgcolorId) { + return false; + } + var bgcolorData = miniTheme.config(bgcolorId); + var styleHtml = '/*头部右侧背景色 headerRightBg */\n' + + '.layui-layout-admin .layui-header {\n' + + ' background-color: ' + bgcolorData.headerRightBg + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧选中背景色 headerRightBgThis */\n' + + '.layui-layout-admin .layui-header .layuimini-header-content > ul > .layui-nav-item.layui-this, .layuimini-tool i:hover {\n' + + ' background-color: ' + bgcolorData.headerRightBgThis + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧字体颜色 headerRightColor */\n' + + '.layui-layout-admin .layui-header .layui-nav .layui-nav-item a {\n' + + ' color: ' + bgcolorData.headerRightColor + ';\n' + + '}\n' + + '/**头部右侧下拉字体颜色 headerRightChildColor */\n' + + '.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child a {\n' + + ' color: ' + bgcolorData.headerRightChildColor + '!important;\n' + + '}\n'+ + '\n' + + '/*头部右侧鼠标选中 headerRightColorThis */\n' + + '.layui-header .layuimini-menu-header-pc.layui-nav .layui-nav-item a:hover, .layui-header .layuimini-header-menu.layuimini-pc-show.layui-nav .layui-this a {\n' + + ' color: ' + bgcolorData.headerRightColorThis + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧更多下拉颜色 headerRightNavMore */\n' + + '.layui-header .layui-nav .layui-nav-more {\n' + + ' border-top-color: ' + bgcolorData.headerRightNavMore + ' !important;\n' + + '}\n' + + '\n' + + '/*头部右侧更多下拉颜色 headerRightNavMore */\n' + + '.layui-header .layui-nav .layui-nav-mored, .layui-header .layui-nav-itemed > a .layui-nav-more {\n' + + ' border-color: transparent transparent ' + bgcolorData.headerRightNavMore + ' !important;\n' + + '}\n' + + '\n' + + '/**头部右侧更多下拉配置色 headerRightNavMoreBg headerRightNavMoreColor */\n' + + '.layui-header .layui-nav .layui-nav-child dd.layui-this a, .layui-header .layui-nav-child dd.layui-this, .layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child .layui-this a {\n' + + ' background-color: ' + bgcolorData.headerRightNavMoreBg + ' !important;\n' + + ' color:' + bgcolorData.headerRightNavMoreColor + ' !important;\n' + + '}\n' + + '\n' + + '/*头部缩放按钮样式 headerRightToolColor */\n' + + '.layui-layout-admin .layui-header .layuimini-tool i {\n' + + ' color: ' + bgcolorData.headerRightToolColor + ';\n' + + '}\n' + + '\n' + + '/*logo背景颜色 headerLogoBg */\n' + + '.layui-layout-admin .layuimini-logo {\n' + + ' background-color: ' + bgcolorData.headerLogoBg + ' !important;\n' + + '}\n' + + '\n' + + '/*logo字体颜色 headerLogoColor */\n' + + '.layui-layout-admin .layuimini-logo h1 {\n' + + ' color: ' + bgcolorData.headerLogoColor + ';\n' + + '}\n' + + '\n' + + '/*左侧菜单更多下拉样式 leftMenuNavMore */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-more,.layuimini-menu-left-zoom.layui-nav .layui-nav-more {\n' + + ' border-top-color: ' + bgcolorData.leftMenuNavMore + ';\n' + + '}\n' + + '\n' + + '/*左侧菜单更多下拉样式 leftMenuNavMore */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-mored, .layuimini-menu-left .layui-nav-itemed > a .layui-nav-more, .layuimini-menu-left-zoom.layui-nav .layui-nav-mored, .layuimini-menu-left-zoom.layui-nav-itemed > a .layui-nav-more {\n' + + ' border-color: transparent transparent ' + bgcolorData.leftMenuNavMore + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单背景 leftMenuBg */\n' + + '.layui-side.layui-bg-black, .layui-side.layui-bg-black > .layuimini-menu-left > ul, .layuimini-menu-left-zoom > ul {\n' + + ' background-color: ' + bgcolorData.leftMenuBg + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单选中背景 leftMenuBgThis */\n' + + '.layuimini-menu-left .layui-nav-tree .layui-this, .layuimini-menu-left .layui-nav-tree .layui-this > a, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left .layui-nav-tree .layui-nav-child dd.layui-this a, .layuimini-menu-left-zoom.layui-nav-tree .layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-this > a, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this, .layuimini-menu-left-zoom.layui-nav-tree .layui-nav-child dd.layui-this a {\n' + + ' background-color: ' + bgcolorData.leftMenuBgThis + ' !important\n' + + '}\n' + + '\n' + + '/*左侧菜单子菜单背景 leftMenuChildBg */\n' + + '.layuimini-menu-left .layui-nav-itemed > .layui-nav-child{\n' + + ' background-color: ' + bgcolorData.leftMenuChildBg + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单字体颜色 leftMenuColor */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-item a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a {\n' + + ' color: ' + bgcolorData.leftMenuColor + ' !important;\n' + + '}\n' + + '\n' + + '/*左侧菜单选中字体颜色 leftMenuColorThis */\n' + + '.layuimini-menu-left .layui-nav .layui-nav-item a:hover, .layuimini-menu-left .layui-nav .layui-this a, .layuimini-menu-left-zoom.layui-nav .layui-nav-item a:hover, .layuimini-menu-left-zoom.layui-nav .layui-this a {\n' + + ' color:' + bgcolorData.leftMenuColorThis + ' !important;\n' + + '}\n' + + '\n' + + '/**tab选项卡选中颜色 tabActiveColor */\n' + + '.layuimini-tab .layui-tab-title .layui-this .layuimini-tab-active {\n' + + ' background-color: ' + bgcolorData.tabActiveColor + ';\n' + + '}\n'; + $('#layuimini-bg-color').html(styleHtml); + }, + + /** + * 构建主题选择html + * @param options + * @returns {string} + */ + buildBgColorHtml: function (options) { + options.bgColorDefault = options.bgColorDefault || 0; + var bgcolorId = parseInt(sessionStorage.getItem('layuiminiBgcolorId')); + if (isNaN(bgcolorId)) bgcolorId = options.bgColorDefault; + var bgColorConfig = miniTheme.config(); + var html = ''; + $.each(bgColorConfig, function (key, val) { + if (key === bgcolorId) { + html += '
  • \n'; + } else { + html += '
  • \n'; + } + html += '\n' + + '
    \n' + + '
    \n' + + '
    \n' + + '
  • '; + }); + return html; + }, + + /** + * 监听 + * @param options + */ + listen: function (options) { + $('body').on('click', '[data-bgcolor]', function () { + var loading = layer.load(0, {shade: false, time: 2 * 1000}); + var clientHeight = (document.documentElement.clientHeight) - 60; + var bgColorHtml = miniTheme.buildBgColorHtml(options); + var html = '
    \n' + + '
    \n' + + '配色方案\n' + + '
    \n' + + '
    \n' + + '
      \n' + bgColorHtml + '
    \n' + + '
    \n' + + '
    '; + layer.open({ + type: 1, + title: false, + closeBtn: 0, + shade: 0.2, + anim: 2, + shadeClose: true, + id: 'layuiminiBgColor', + area: ['340px', clientHeight + 'px'], + offset: 'rb', + content: html, + success: function (index, layero) { + }, + end: function () { + $('.layuimini-select-bgcolor').removeClass('layui-this'); + } + }); + layer.close(loading); + }); + + $('body').on('click', '[data-select-bgcolor]', function () { + var bgcolorId = $(this).attr('data-select-bgcolor'); + $('.layuimini-color .color-content ul .layui-this').attr('class', ''); + $(this).attr('class', 'layui-this'); + sessionStorage.setItem('layuiminiBgcolorId', bgcolorId); + miniTheme.render({ + bgColorDefault: bgcolorId, + listen: false, + }); + }); + } + }; + + exports("miniTheme", miniTheme); + +}) +; \ No newline at end of file diff --git a/assets/js/lay-module/layuimini/miniTongji.js b/assets/js/lay-module/layuimini/miniTongji.js new file mode 100755 index 0000000..f0ca101 --- /dev/null +++ b/assets/js/lay-module/layuimini/miniTongji.js @@ -0,0 +1,40 @@ +/** + * date:2020/03/01 + * author:Mr.Chung + * version:2.0 + * description:layuimini 统计框架扩展 + */ +layui.define(["jquery"], function (exports) { + var $ = layui.$; + + var miniTongji = { + + /** + * 初始化 + * @param options + */ + render: function (options) { + options.specific = options.specific || false; + options.domains = options.domains || []; + var domain = window.location.hostname; + if (options.specific === false || (options.specific === true && options.domains.indexOf(domain) >=0)) { + miniTongji.listen(); + } + }, + + /** + * 监听统计代码 + */ + listen: function () { + var _hmt = _hmt || []; + (function () { + var hm = document.createElement("script"); + hm.src = "https://hm.baidu.com/hm.js?d97abf6d61c21d773f97835defbdef4e"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); + })(); + } + }; + + exports("miniTongji", miniTongji); +}); \ No newline at end of file diff --git a/assets/js/lay-module/step-lay/step.css b/assets/js/lay-module/step-lay/step.css new file mode 100755 index 0000000..cc5e2ce --- /dev/null +++ b/assets/js/lay-module/step-lay/step.css @@ -0,0 +1,79 @@ +.lay-step { + font-size: 0; + width: 400px; + margin: 0 auto; + max-width: 100%; + padding-left: 200px; +} + +.step-item { + display: inline-block; + line-height: 26px; + position: relative; + font-size: 14px; +} + +.step-item-tail { + width: 100%; + padding: 0 10px; + position: absolute; + left: 0; + top: 13px; +} + +.step-item-tail i { + display: inline-block; + width: 100%; + height: 1px; + vertical-align: top; + background: #c2c2c2; + position: relative; +} + +.step-item-tail .step-item-tail-done { + background: #009688; +} + +.step-item-head { + position: relative; + display: inline-block; + height: 26px; + width: 26px; + text-align: center; + vertical-align: top; + color: #009688; + border: 1px solid #009688; + border-radius: 50%; + background: #ffffff; +} + +.step-item-head.step-item-head-active { + background: #009688; + color: #ffffff; +} + +.step-item-main { + display: block; + position: relative; + margin-left: -50%; + margin-right: 50%; + padding-left: 26px; + text-align: center; +} + +.step-item-main-title { + font-weight: bolder; + color: #555555; +} + +.step-item-main-desc { + color: #aaaaaa; +} + +.lay-step + [carousel-item]:before { + display: none; +} + +.lay-step + [carousel-item] > * { + background-color: transparent; +} \ No newline at end of file diff --git a/assets/js/lay-module/step-lay/step.js b/assets/js/lay-module/step-lay/step.js new file mode 100755 index 0000000..baa015b --- /dev/null +++ b/assets/js/lay-module/step-lay/step.js @@ -0,0 +1,101 @@ +layui.define(['layer', 'carousel'], function (exports) { + var $ = layui.jquery; + var layer = layui.layer; + var carousel = layui.carousel; + + // 添加步骤条dom节点 + var renderDom = function (elem, stepItems, postion) { + var stepDiv = '
    '; + for (var i = 0; i < stepItems.length; i++) { + stepDiv += '
    '; + // 线 + if (i < (stepItems.length - 1)) { + if (i < postion) { + stepDiv += '
    '; + } else { + stepDiv += '
    '; + } + } + + // 数字 + var number = stepItems[i].number; + if (!number) { + number = i + 1; + } + if (i == postion) { + stepDiv += '
    ' + number + '
    '; + } else if (i < postion) { + stepDiv += '
    '; + } else { + stepDiv += '
    ' + number + '
    '; + } + + // 标题和描述 + var title = stepItems[i].title; + var desc = stepItems[i].desc; + if (title || desc) { + stepDiv += '
    '; + if (title) { + stepDiv += '
    ' + title + '
    '; + } + if (desc) { + stepDiv += '
    ' + desc + '
    '; + } + stepDiv += '
    '; + } + stepDiv += '
    '; + } + stepDiv += '
    '; + + $(elem).prepend(stepDiv); + + // 计算每一个条目的宽度 + var bfb = 100 / stepItems.length; + $('.step-item').css('width', bfb + '%'); + }; + + var step = { + // 渲染步骤条 + render: function (param) { + param.indicator = 'none'; // 不显示指示器 + param.arrow = 'always'; // 始终显示箭头 + param.autoplay = false; // 关闭自动播放 + if (!param.stepWidth) { + param.stepWidth = '400px'; + } + + // 渲染轮播图 + carousel.render(param); + + // 渲染步骤条 + var stepItems = param.stepItems; + renderDom(param.elem, stepItems, 0); + $('.lay-step').css('width', param.stepWidth); + + //监听轮播切换事件 + carousel.on('change(' + param.filter + ')', function (obj) { + $(param.elem).find('.lay-step').remove(); + renderDom(param.elem, stepItems, obj.index); + $('.lay-step').css('width', param.stepWidth); + }); + + // 隐藏左右箭头按钮 + $(param.elem).find('.layui-carousel-arrow').css('display', 'none'); + + // 去掉轮播图的背景颜色 + $(param.elem).css('background-color', 'transparent'); + }, + // 下一步 + next: function (elem) { + $(elem).find('.layui-carousel-arrow[lay-type=add]').trigger('click'); + }, + // 上一步 + pre: function (elem) { + $(elem).find('.layui-carousel-arrow[lay-type=sub]').trigger('click'); + } + }; + + layui.link(layui.cache.base + 'step-lay/step.css'); + + exports('step', step); +}); diff --git a/assets/js/lay-module/tableSelect/tableSelect.js b/assets/js/lay-module/tableSelect/tableSelect.js new file mode 100755 index 0000000..84acc3d --- /dev/null +++ b/assets/js/lay-module/tableSelect/tableSelect.js @@ -0,0 +1,272 @@ +layui.define(['table', 'jquery', 'form'], function (exports) { + "use strict"; + + var MOD_NAME = 'tableSelect', + $ = layui.jquery, + table = layui.table, + form = layui.form; + var tableSelect = function () { + this.v = '1.1.0'; + }; + + /** + * 初始化表格选择器 + */ + tableSelect.prototype.render = function (opt) { + var elem = $(opt.elem); + var tableDone = opt.table.done || function(){}; + + //默认设置 + opt.searchKey = opt.searchKey || 'keyword'; + opt.searchPlaceholder = opt.searchPlaceholder || '关键词搜索'; + opt.checkedKey = opt.checkedKey; + opt.table.page = opt.table.page || true; + opt.table.height = opt.height || 315; + + //最小宽度 + opt.width = opt.width || '530'; + + //多搜索条件 + opt.searchType = opt.searchType || 'one'; + opt.searchList = opt.searchList || [{key: opt.searchKey, placeholder: opt.searchPlaceholder}]; + + elem.off('click').on('click', function(e) { + e.stopPropagation(); + + if($('div.tableSelect').length >= 1){ + return false; + } + + var t = elem.offset().top + elem.outerHeight()+"px"; + var l = elem.offset().left +"px"; + var tableName = "tableSelect_table_" + new Date().getTime(); + var tableBox = '
    '; + tableBox += '
    '; + tableBox += '
    '; + + //判断是否多搜索条件 + if(opt.searchType == 'more'){ + $.each(opt.searchList, function (index, item) { + tableBox += ''; + }); + }else{ + tableBox += ''; + } + + tableBox += ''; + tableBox += '
    '; + tableBox += ''; + tableBox += '
    '; + tableBox += '
    '; + tableBox += '
    '; + tableBox = $(tableBox); + $('body').append(tableBox); + + //数据缓存 + var checkedData = []; + + //渲染TABLE + opt.table.elem = "#"+tableName; + opt.table.id = tableName; + opt.table.done = function(res, curr, count){ + defaultChecked(res, curr, count); + setChecked(res, curr, count); + tableDone(res, curr, count); + }; + var tableSelect_table = table.render(opt.table); + + //分页选中保存数组 + table.on('radio('+tableName+')', function(obj){ + if(opt.checkedKey){ + checkedData = table.checkStatus(tableName).data + } + updataButton(table.checkStatus(tableName).data.length) + }) + table.on('checkbox('+tableName+')', function(obj){ + if(opt.checkedKey){ + if(obj.checked){ + for (var i=0;i $(window).height(); + var overWidth = (elem.offset().left + tableBox.outerWidth()) > $(window).width(); + overHeight && tableBox.css({'top':'auto','bottom':'0px'}); + overWidth && tableBox.css({'left':'auto','right':'5px'}) + + //关键词搜索 + form.on('submit(tableSelect_btn_search)', function(data){ + tableSelect_table.reload({ + where: data.field, + page: { + curr: 1 + } + }); + return false; + }); + + //双击行选中 + table.on('rowDouble('+tableName+')', function(obj){ + var checkStatus = {data:[obj.data]}; + selectDone(checkStatus); + }) + + //按钮选中 + tableBox.find('.tableSelect_btn_select').on('click', function() { + var checkStatus = table.checkStatus(tableName); + if(checkedData.length > 1){ + checkStatus.data = checkedData; + } + selectDone(checkStatus); + }) + + //写值回调和关闭 + function selectDone (checkStatus){ + if(opt.checkedKey){ + var selected = []; + for(var i=0;i-1 ? '.min' : '') + + option.base_url = isset(option.base_url) ? option.base_url : settings.base_url + + option.language = isset(option.language) ? option.language : settings.language + + option.selector = isset(option.selector) ? option.selector : option.elem + + option.quickbars_selection_toolbar = isset(option.quickbars_selection_toolbar) ? option.quickbars_selection_toolbar : 'cut copy | bold italic underline strikethrough ' + + option.plugins = isset(option.plugins) ? option.plugins : 'quickbars print preview searchreplace autolink fullscreen image link media codesample table charmap hr advlist lists wordcount imagetools indent2em'; + + option.toolbar = isset(option.toolbar) ? option.toolbar : 'undo redo | forecolor backcolor bold italic underline strikethrough | indent2em alignleft aligncenter alignright alignjustify outdent indent | link bullist numlist image table codesample | formatselect fontselect fontsizeselect'; + + option.resize = isset(option.resize) ? option.resize : false; + + option.elementpath = isset(option.elementpath) ? option.elementpath : false; + + option.branding = isset(option.branding) ? option.branding : false; + + option.contextmenu_never_use_native = isset(option.contextmenu_never_use_native) ? option.contextmenu_never_use_native : true; + + option.menubar = isset(option.menubar) ? option.menubar : 'file edit insert format table'; + + option.images_upload_url = isset(option.images_upload_url) ? option.images_upload_url : settings.images_upload_url; + + option.images_upload_handler = isset(option.images_upload_handler) ? option.images_upload_handler : function (blobInfo, succFun, failFun) { + + if(isEmpty(option.images_upload_url)){ + + failFun("上传接口未配置"); + + return console.error('images_upload_url未配置'); + + } + + var formData = new FormData(); + + formData.append(file_field, blobInfo.blob()); + + if(typeof form_data == 'object'){ + + for(var key in form_data){ + + formData.append(key, form_data[key]); + + } + + } + + var ajaxOpt = { + url: option.images_upload_url, + dataType: 'json', + type: 'POST', + data: formData, + processData: false, + contentType: false, + success: function (res) { + + settings.success(res, succFun, failFun) + + }, + error: function (res) { + + failFun("网络错误:" + res.status); + + } + }; + + if (typeof admin.req == 'function') { + + admin.req(ajaxOpt); + + } else { + + $.ajax(ajaxOpt); + + } + } + + var edit = t.get(option.elem); + + if (edit) { + + edit.destroy(); + + } + + option.menu = isset(option.menu) ? option.menu : { + + file: {title: '文件', items: 'newdocument | print preview fullscreen | wordcount'}, + + edit: {title: '编辑', items: 'undo redo | cut copy paste pastetext selectall | searchreplace'}, + + format: { + + title: '格式', + + items: 'bold italic underline strikethrough superscript subscript | formats | forecolor backcolor | removeformat' + + }, + + table: {title: '表格', items: 'inserttable tableprops deletetable | cell row column'}, + }; + + initTinymce(); + + layui.sessionData('layui-tinymce',{ + + key:option.selector, + + value:option + }) + + tinymce.init(option); + + if(typeof callback == 'function'){ + callback.call(option) + } + + return tinymce.activeEditor; + }; + + t.init = t.render + + // 获取ID对应的编辑器对象 + t.get = function (elem) { + + initTinymce(); + + if (elem && /^#|\./.test(elem)) { + + var id = elem.substr(1); + + var edit = tinymce.editors[id]; + + return edit + + } else { + return false; + } + } + + //重载 + t.reload = function (option,callback) { + + option = option || {} + + var edit = t.get(option.elem); + + var optionCache = layui.sessionData('layui-tinymce')[option.elem] + + edit.destroy() + + $.extend(optionCache,option) + + tinymce.init(optionCache) + + if(typeof callback == 'function'){ + callback.call(optionCache) + } + + return tinymce.activeEditor; + } + + // 适配单页应用的渲染 + t.autoRender = function (option, callback) { + + if (typeof tinymce == 'undefined') { + return t.render(option, callback); + } + + if (!tinymce.editors[option.elem.substr(1)]) { + return t.render(option, callback); + } + + return t.reload(option, callback); + } + + function initTinymce(){ + if (typeof tinymce == 'undefined') { + $.ajax({//获取插件 + url: settings.base_url + '/' + plugin_filename, + dataType: 'script', + cache: true, + async: false, + }); + } + } + + function isset(value){ + return typeof value !== 'undefined' && value !== null + } + + function isEmpty(value){ + if(typeof value === 'undefined' || value === null|| value === ''){ + return true + } else if (value instanceof Array && value.length === 0){ + return true + } else if (typeof value === 'object' && Object.keys(value).length === 0){ + return true + } + return false + } + + exports('tinymce', t); + +}); diff --git a/assets/js/lay-module/tinymce/tinymce/icons/default/icons.min.js b/assets/js/lay-module/tinymce/tinymce/icons/default/icons.min.js new file mode 100755 index 0000000..086f297 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/icons/default/icons.min.js @@ -0,0 +1 @@ +tinymce.IconManager.add("default",{icons:{"accessibility-check":'',"action-next":'',"action-prev":'',"align-center":'',"align-justify":'',"align-left":'',"align-none":'',"align-right":'',"arrow-left":'',"arrow-right":'',bold:'',bookmark:'',"border-width":'',brightness:'',browse:'',cancel:'',"change-case":'',"character-count":'',"checklist-rtl":'',checklist:'',checkmark:'',"chevron-down":'',"chevron-left":'',"chevron-right":'',"chevron-up":'',close:'',"code-sample":'',"color-levels":'',"color-picker":'',"color-swatch-remove-color":'',"color-swatch":'',"comment-add":'',comment:'',contrast:'',copy:'',crop:'',"cut-column":'',"cut-row":'',cut:'',"document-properties":'',drag:'',"duplicate-column":'',"duplicate-row":'',duplicate:'',"edit-block":'',"edit-image":'',"embed-page":'',embed:'',emoji:'',"export":'',fill:'',"flip-horizontally":'',"flip-vertically":'',"format-painter":'',format:'',fullscreen:'',gallery:'',gamma:'',help:'',"highlight-bg-color":'',home:'',"horizontal-rule":'',"image-options":'',image:'',indent:'',info:'',"insert-character":'',"insert-time":'',invert:'',italic:'',"line-height":'',line:'',link:'',"list-bull-circle":'',"list-bull-default":'',"list-bull-square":'',"list-num-default-rtl":'',"list-num-default":'',"list-num-lower-alpha-rtl":'',"list-num-lower-alpha":'',"list-num-lower-greek-rtl":'',"list-num-lower-greek":'',"list-num-lower-roman-rtl":'',"list-num-lower-roman":'',"list-num-upper-alpha-rtl":'',"list-num-upper-alpha":'',"list-num-upper-roman-rtl":'',"list-num-upper-roman":'',lock:'',ltr:'',"more-drawer":'',"new-document":'',"new-tab":'',"non-breaking":'',notice:'',"ordered-list-rtl":'',"ordered-list":'',orientation:'',outdent:'',"page-break":'',paragraph:'',"paste-column-after":'',"paste-column-before":'',"paste-row-after":'',"paste-row-before":'',"paste-text":'',paste:'',"permanent-pen":'',plus:'',preferences:'',preview:'',print:'',quote:'',redo:'',reload:'',"remove-formatting":'',remove:'',"resize-handle":'',resize:'',"restore-draft":'',"rotate-left":'',"rotate-right":'',rtl:'',save:'',search:'',"select-all":'',selected:'',settings:'',sharpen:'',sourcecode:'',"spell-check":'',"strike-through":'',subscript:'',superscript:'',"table-cell-properties":'',"table-cell-select-all":'',"table-cell-select-inner":'',"table-delete-column":'',"table-delete-row":'',"table-delete-table":'',"table-insert-column-after":'',"table-insert-column-before":'',"table-insert-row-above":'',"table-insert-row-after":'',"table-left-header":'',"table-merge-cells":'',"table-row-properties":'',"table-split-cells":'',"table-top-header":'',table:'',template:'',"temporary-placeholder":'',"text-color":'',toc:'',translate:'',underline:'',undo:'',unlink:'',unlock:'',"unordered-list":'',unselected:'',upload:'',user:'',visualblocks:'',visualchars:'',warning:'',"zoom-in":'',"zoom-out":''}}); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/jquery.tinymce.min.js b/assets/js/lay-module/tinymce/tinymce/jquery.tinymce.min.js new file mode 100755 index 0000000..f26b879 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/jquery.tinymce.min.js @@ -0,0 +1,92 @@ +/** + * 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/ + */ +/** + * Jquery integration plugin. + * + * @class tinymce.core.JqueryIntegration + * @private + */ +!function(){var f,c,u,s=[],p="undefined"!=typeof global?global:window,d=p.jQuery,v=function(){ +// Reference to tinymce needs to be lazily evaluated since tinymce +// might be loaded through the compressor or other means +return p.tinymce};d.fn.tinymce=function(o){var e,t,i,l=this,r=""; +// No match then just ignore the call +if(!l.length)return l; +// Get editor instance +if(!o)return v()?v().get(l[0].id):null;l.css("visibility","hidden");// Hide textarea to avoid flicker +var n,a=function(){var a=[],c=0; +// Apply patches to the jQuery object, only once +u||(m(),u=!0), +// Create an editor instance for each matched node +l.each(function(e,t){var n,i=t.id,r=o.oninit; +// Generate unique id for target element if needed +i||(t.id=i=v().DOM.uniqueId()), +// Only init the editor once +v().get(i)||( +// Create editor instance and render it +n=v().createEditor(i,o),a.push(n),n.on("init",function(){var e,t=r;l.css("visibility",""), +// Run this if the oninit setting is defined +// this logic will fire the oninit callback ones each +// matched editor instance is initialized +r&&++c==a.length&&("string"==typeof t&&(e=-1===t.indexOf(".")?null:v().resolve(t.replace(/\.\w+$/,"")),t=v().resolve(t)), +// Call the oninit function with the object +t.apply(e||v(),a))}))}), +// Render the editor instances in a separate loop since we +// need to have the full editors array used in the onInit calls +d.each(a,function(e,t){t.render()})}; +// Load TinyMCE on demand, if we need to +return p.tinymce||c||!(e=o.script_url)? +// Delay the init call until tinymce is loaded +1===c?s.push(a):a():(c=1,t=e.substring(0,e.lastIndexOf("/")), +// Check if it's a dev/src version they want to load then +// make sure that all plugins, themes etc are loaded in source mode as well +-1!=e.indexOf(".min")&&(r=".min"), +// Setup tinyMCEPreInit object this will later be used by the TinyMCE +// core script to locate other resources like CSS files, dialogs etc +// You can also predefined a tinyMCEPreInit object and then it will use that instead +p.tinymce=p.tinyMCEPreInit||{base:t,suffix:r}, +// url contains gzip then we assume it's a compressor +-1!=e.indexOf("gzip")&&(i=o.language||"en",e=e+(/\?/.test(e)?"&":"?")+"js=true&core=true&suffix="+escape(r)+"&themes="+escape(o.theme||"modern")+"&plugins="+escape(o.plugins||"")+"&languages="+(i||""), +// Check if compressor script is already loaded otherwise setup a basic one +p.tinyMCE_GZ||(p.tinyMCE_GZ={start:function(){var n=function(e){v().ScriptLoader.markDone(v().baseURI.toAbsolute(e))}; +// Add core languages +n("langs/"+i+".js"), +// Add themes with languages +n("themes/"+o.theme+"/theme"+r+".js"),n("themes/"+o.theme+"/langs/"+i+".js"), +// Add plugins with languages +d.each(o.plugins.split(","),function(e,t){t&&(n("plugins/"+t+"/plugin"+r+".js"),n("plugins/"+t+"/langs/"+i+".js"))})},end:function(){}})),(n=document.createElement("script")).type="text/javascript",n.onload=n.onreadystatechange=function(e){e=e||window.event,2===c||"load"!=e.type&&!/complete|loaded/.test(n.readyState)||(v().dom.Event.domLoaded=1,c=2, +// Execute callback after mainscript has been loaded and before the initialization occurs +o.script_loaded&&o.script_loaded(),a(),d.each(s,function(e,t){t()}))},n.src=e,document.body.appendChild(n)),l}, +// Add :tinymce pseudo selector this will select elements that has been converted into editor instances +// it's now possible to use things like $('*:tinymce') to get all TinyMCE bound elements. +d.extend(d.expr[":"],{tinymce:function(e){var t;return!!(e.id&&"tinymce"in p&&(t=v().get(e.id))&&t.editorManager===v())}}); +// This function patches internal jQuery functions so that if +// you for example remove an div element containing an editor it's +// automatically destroyed by the TinyMCE API +var m=function(){ +// Removes any child editor instances by looking for editor wrapper elements +var r=function(e){ +// If the function is remove +"remove"===e&&this.each(function(e,t){var n=l(t);n&&n.remove()}),this.find("span.mceEditor,div.mceEditor").each(function(e,t){var n=v().get(t.id.replace(/_parent$/,""));n&&n.remove()})},o=function(i){var e,t=this; +// Handle set value +/*jshint eqnull:true */if(null!=i)r.call(t), +// Saves the contents before get/set value of textarea/div +t.each(function(e,t){var n;(n=v().get(t.id))&&n.setContent(i)});else if(0])*>/g,""):n.getContent({save:!0}):a.apply(d(t),r)}),i}}), +// Makes it possible to use $('#id').append("content"); to append contents to the TinyMCE editor iframe +d.each(["append","prepend"],function(e,t){var n=s[t]=d.fn[t],r="prepend"===t;d.fn[t]=function(i){var e=this;return u(e)?i!==f?("string"==typeof i&&e.filter(":tinymce").each(function(e,t){var n=l(t);n&&n.setContent(r?i+n.getContent():n.getContent()+i)}),n.apply(e.not(":tinymce"),arguments),e):void 0:n.apply(e,arguments)}}), +// Makes sure that the editor instance gets properly destroyed when the parent element is removed +d.each(["remove","replaceWith","replaceAll","empty"],function(e,t){var n=s[t]=d.fn[t];d.fn[t]=function(){return r.call(this,t),n.apply(this,arguments)}}),s.attr=d.fn.attr, +// Makes sure that $('#tinymce_id').attr('value') gets the editors current HTML contents +d.fn.attr=function(e,t){var n=this,i=arguments;if(!e||"value"!==e||!u(n))return s.attr.apply(n,i);if(t!==f)return o.call(n.filter(":tinymce"),t),s.attr.apply(n.not(":tinymce"),i),n;// return original set for chaining +var r=n[0],a=l(r);return a?a.getContent({save:!0}):s.attr.apply(d(r),i)}}}(); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/langs/readme.md b/assets/js/lay-module/tinymce/tinymce/langs/readme.md new file mode 100755 index 0000000..a52bf03 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/langs/readme.md @@ -0,0 +1,3 @@ +This is where language files should be placed. + +Please DO NOT translate these directly use this service: https://www.transifex.com/projects/p/tinymce/ diff --git a/assets/js/lay-module/tinymce/tinymce/langs/zh_CN - 副本.js b/assets/js/lay-module/tinymce/tinymce/langs/zh_CN - 副本.js new file mode 100755 index 0000000..18a9955 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/langs/zh_CN - 副本.js @@ -0,0 +1,419 @@ +tinymce.addI18n('zh_CN',{ +"Redo": "\u91cd\u505a", +"Undo": "\u64a4\u9500", +"Cut": "\u526a\u5207", +"Copy": "\u590d\u5236", +"Paste": "\u7c98\u8d34", +"Select all": "\u5168\u9009", +"New document": "\u65b0\u6587\u4ef6", +"Ok": "\u786e\u5b9a", +"Cancel": "\u53d6\u6d88", +"Visual aids": "\u7f51\u683c\u7ebf", +"Bold": "\u7c97\u4f53", +"Italic": "\u659c\u4f53", +"Underline": "\u4e0b\u5212\u7ebf", +"Strikethrough": "\u5220\u9664\u7ebf", +"Superscript": "\u4e0a\u6807", +"Subscript": "\u4e0b\u6807", +"Clear formatting": "\u6e05\u9664\u683c\u5f0f", +"Align left": "\u5de6\u8fb9\u5bf9\u9f50", +"Align center": "\u4e2d\u95f4\u5bf9\u9f50", +"Align right": "\u53f3\u8fb9\u5bf9\u9f50", +"Justify": "\u4e24\u7aef\u5bf9\u9f50", +"Bullet list": "\u9879\u76ee\u7b26\u53f7", +"Numbered list": "\u7f16\u53f7\u5217\u8868", +"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", +"Increase indent": "\u589e\u52a0\u7f29\u8fdb", +"Close": "\u5173\u95ed", +"Formats": "\u683c\u5f0f", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002", +"Headers": "\u6807\u9898", +"Header 1": "\u6807\u98981", +"Header 2": "\u6807\u98982", +"Header 3": "\u6807\u98983", +"Header 4": "\u6807\u98984", +"Header 5": "\u6807\u98985", +"Header 6": "\u6807\u98986", +"Headings": "\u6807\u9898", +"Heading 1": "\u6807\u98981", +"Heading 2": "\u6807\u98982", +"Heading 3": "\u6807\u98983", +"Heading 4": "\u6807\u98984", +"Heading 5": "\u6807\u98985", +"Heading 6": "\u6807\u98986", +"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684", +"Div": "Div", +"Pre": "Pre", +"Code": "\u4ee3\u7801", +"Paragraph": "\u6bb5\u843d", +"Blockquote": "\u5f15\u6587\u533a\u5757", +"Inline": "\u6587\u672c", +"Blocks": "\u57fa\u5757", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", +"Fonts": "\u5b57\u4f53", +"Font Sizes": "\u5b57\u53f7", +"Class": "\u7c7b\u578b", +"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf", +"OR": "\u6216", +"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64", +"Upload": "\u4e0a\u4f20", +"Block": "\u5757", +"Align": "\u5bf9\u9f50", +"Default": "\u9ed8\u8ba4", +"Circle": "\u7a7a\u5fc3\u5706", +"Disc": "\u5b9e\u5fc3\u5706", +"Square": "\u65b9\u5757", +"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", +"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", +"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", +"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Anchor...": "\u951a\u70b9...", +"Name": "\u540d\u79f0", +"Id": "\u6807\u8bc6\u7b26", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", +"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", +"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", +"Special character...": "\u7279\u6b8a\u5b57\u7b26...", +"Source code": "\u6e90\u4ee3\u7801", +"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", +"Language": "\u8bed\u8a00", +"Code sample...": "\u793a\u4f8b\u4ee3\u7801...", +"Color Picker": "\u9009\u8272\u5668", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u4ece\u5de6\u5230\u53f3", +"Right to left": "\u4ece\u53f3\u5230\u5de6", +"Emoticons...": "\u8868\u60c5\u7b26\u53f7...", +"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027", +"Title": "\u6807\u9898", +"Keywords": "\u5173\u952e\u8bcd", +"Description": "\u63cf\u8ff0", +"Robots": "\u673a\u5668\u4eba", +"Author": "\u4f5c\u8005", +"Encoding": "\u7f16\u7801", +"Fullscreen": "\u5168\u5c4f", +"Action": "\u64cd\u4f5c", +"Shortcut": "\u5feb\u6377\u952e", +"Help": "\u5e2e\u52a9", +"Address": "\u5730\u5740", +"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f", +"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f", +"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84", +"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355", +"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):", +"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a", +"Learn more...": "\u4e86\u89e3\u66f4\u591a...", +"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}", +"Plugins": "\u63d2\u4ef6", +"Handy Shortcuts": "\u5feb\u6377\u952e", +"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", +"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", +"Image description": "\u56fe\u7247\u63cf\u8ff0", +"Source": "\u5730\u5740", +"Dimensions": "\u5927\u5c0f", +"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", +"General": "\u666e\u901a", +"Advanced": "\u9ad8\u7ea7", +"Style": "\u6837\u5f0f", +"Vertical space": "\u5782\u76f4\u8fb9\u8ddd", +"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", +"Border": "\u8fb9\u6846", +"Insert image": "\u63d2\u5165\u56fe\u7247", +"Image...": "\u56fe\u7247...", +"Image list": "\u56fe\u7247\u5217\u8868", +"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", +"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", +"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", +"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", +"Edit image": "\u7f16\u8f91\u56fe\u7247", +"Image options": "\u56fe\u7247\u9009\u9879", +"Zoom in": "\u653e\u5927", +"Zoom out": "\u7f29\u5c0f", +"Crop": "\u88c1\u526a", +"Resize": "\u8c03\u6574\u5927\u5c0f", +"Orientation": "\u65b9\u5411", +"Brightness": "\u4eae\u5ea6", +"Sharpen": "\u9510\u5316", +"Contrast": "\u5bf9\u6bd4\u5ea6", +"Color levels": "\u989c\u8272\u5c42\u6b21", +"Gamma": "\u4f3d\u9a6c\u503c", +"Invert": "\u53cd\u8f6c", +"Apply": "\u5e94\u7528", +"Back": "\u540e\u9000", +"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", +"Date\/time": "\u65e5\u671f\/\u65f6\u95f4", +"Insert\/Edit Link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Text to display": "\u663e\u793a\u6587\u5b57", +"Url": "\u5730\u5740", +"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...", +"Current window": "\u5f53\u524d\u7a97\u53e3", +"None": "\u65e0", +"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", +"Remove link": "\u5220\u9664\u94fe\u63a5", +"Anchors": "\u951a\u70b9", +"Link...": "\u94fe\u63a5...", +"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", +"Link list": "\u94fe\u63a5\u5217\u8868", +"Insert video": "\u63d2\u5165\u89c6\u9891", +"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", +"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", +"Alternative source": "\u955c\u50cf", +"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740", +"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)", +"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", +"Embed": "\u5185\u5d4c", +"Media...": "\u591a\u5a92\u4f53...", +"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", +"Page break": "\u5206\u9875\u7b26", +"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", +"Preview": "\u9884\u89c8", +"Print...": "\u6253\u5370...", +"Save": "\u4fdd\u5b58", +"Find": "\u67e5\u627e", +"Replace with": "\u66ff\u6362\u4e3a", +"Replace": "\u66ff\u6362", +"Replace all": "\u5168\u90e8\u66ff\u6362", +"Previous": "\u4e0a\u4e00\u4e2a", +"Next": "\u4e0b\u4e00\u4e2a", +"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...", +"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", +"Match case": "\u533a\u5206\u5927\u5c0f\u5199", +"Find whole words only": "\u5168\u5b57\u5339\u914d", +"Spell check": "\u62fc\u5199\u68c0\u67e5", +"Ignore": "\u5ffd\u7565", +"Ignore all": "\u5168\u90e8\u5ffd\u7565", +"Finish": "\u5b8c\u6210", +"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", +"Insert table": "\u63d2\u5165\u8868\u683c", +"Table properties": "\u8868\u683c\u5c5e\u6027", +"Delete table": "\u5220\u9664\u8868\u683c", +"Cell": "\u5355\u5143\u683c", +"Row": "\u884c", +"Column": "\u5217", +"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", +"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", +"Split cell": "\u62c6\u5206\u5355\u5143\u683c", +"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", +"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", +"Delete row": "\u5220\u9664\u884c", +"Row properties": "\u884c\u5c5e\u6027", +"Cut row": "\u526a\u5207\u884c", +"Copy row": "\u590d\u5236\u884c", +"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", +"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", +"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", +"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", +"Delete column": "\u5220\u9664\u5217", +"Cols": "\u5217", +"Rows": "\u884c", +"Width": "\u5bbd", +"Height": "\u9ad8", +"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", +"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", +"Show caption": "\u663e\u793a\u6807\u9898", +"Left": "\u5de6\u5bf9\u9f50", +"Center": "\u5c45\u4e2d", +"Right": "\u53f3\u5bf9\u9f50", +"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", +"Scope": "\u8303\u56f4", +"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", +"H Align": "\u6c34\u5e73\u5bf9\u9f50", +"V Align": "\u5782\u76f4\u5bf9\u9f50", +"Top": "\u9876\u90e8\u5bf9\u9f50", +"Middle": "\u5782\u76f4\u5c45\u4e2d", +"Bottom": "\u5e95\u90e8\u5bf9\u9f50", +"Header cell": "\u8868\u5934\u5355\u5143\u683c", +"Row group": "\u884c\u7ec4", +"Column group": "\u5217\u7ec4", +"Row type": "\u884c\u7c7b\u578b", +"Header": "\u8868\u5934", +"Body": "\u8868\u4f53", +"Footer": "\u8868\u5c3e", +"Border color": "\u8fb9\u6846\u989c\u8272", +"Insert template...": "\u63d2\u5165\u6a21\u677f...", +"Templates": "\u6a21\u677f", +"Template": "\u6a21\u677f", +"Text color": "\u6587\u5b57\u989c\u8272", +"Background color": "\u80cc\u666f\u8272", +"Custom...": "\u81ea\u5b9a\u4e49...", +"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", +"No color": "\u65e0", +"Remove color": "\u79fb\u9664\u989c\u8272", +"Table of Contents": "\u5185\u5bb9\u5217\u8868", +"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", +"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", +"Word count": "\u5b57\u6570", +"Count": "\u8ba1\u6570", +"Document": "\u6587\u6863", +"Selection": "\u9009\u62e9", +"Words": "\u5355\u8bcd", +"Words: {0}": "\u5b57\u6570\uff1a{0}", +"{0} words": "{0} \u5b57", +"File": "\u6587\u4ef6", +"Edit": "\u7f16\u8f91", +"Insert": "\u63d2\u5165", +"View": "\u89c6\u56fe", +"Format": "\u683c\u5f0f", +"Table": "\u8868\u683c", +"Tools": "\u5de5\u5177", +"Powered by {0}": "\u7531{0}\u9a71\u52a8", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", +"Image title": "\u56fe\u7247\u6807\u9898", +"Border width": "\u8fb9\u6846\u5bbd\u5ea6", +"Border style": "\u8fb9\u6846\u6837\u5f0f", +"Error": "\u9519\u8bef", +"Warn": "\u8b66\u544a", +"Valid": "\u6709\u6548", +"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846", +"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002", +"System Font": "\u7cfb\u7edf\u5b57\u4f53", +"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}", +"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}", +"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}", +"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}", +"example": "\u793a\u4f8b", +"Search": "\u641c\u7d22", +"All": "\u5168\u90e8", +"Currency": "\u8d27\u5e01", +"Text": "\u6587\u5b57", +"Quotations": "\u5f15\u7528", +"Mathematical": "\u6570\u5b66", +"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145", +"Symbols": "\u7b26\u53f7", +"Arrows": "\u7bad\u5934", +"User Defined": "\u81ea\u5b9a\u4e49", +"dollar sign": "\u7f8e\u5143\u7b26\u53f7", +"currency sign": "\u8d27\u5e01\u7b26\u53f7", +"euro-currency sign": "\u6b27\u5143\u7b26\u53f7", +"colon sign": "\u5192\u53f7", +"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7", +"french franc sign": "\u6cd5\u90ce\u7b26\u53f7", +"lira sign": "\u91cc\u62c9\u7b26\u53f7", +"mill sign": "\u5bc6\u5c14\u7b26\u53f7", +"naira sign": "\u5948\u62c9\u7b26\u53f7", +"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7", +"rupee sign": "\u5362\u6bd4\u7b26\u53f7", +"won sign": "\u97e9\u5143\u7b26\u53f7", +"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7", +"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7", +"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7", +"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7", +"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7", +"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7", +"peso sign": "\u6bd4\u7d22\u7b26\u53f7", +"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7", +"austral sign": "\u6fb3\u5143\u7b26\u53f7", +"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7", +"cedi sign": "\u585e\u5730\u7b26\u53f7", +"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7", +"spesmilo sign": "spesmilo\u7b26\u53f7", +"tenge sign": "\u575a\u6208\u7b26\u53f7", +"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4", +"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9", +"nordic mark sign": "\u5317\u6b27\u9a6c\u514b", +"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7", +"ruble sign": "\u5362\u5e03\u7b26\u53f7", +"yen character": "\u65e5\u5143\u5b57\u6837", +"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837", +"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09", +"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09", +"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...", +"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7", +"People": "\u4eba\u7c7b", +"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136", +"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1", +"Activity": "\u6d3b\u52a8", +"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9", +"Objects": "\u7269\u4ef6", +"Flags": "\u65d7\u5e1c", +"Characters": "\u5b57\u7b26", +"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)", +"{0} characters": "{0} \u4e2a\u5b57\u7b26", +"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002", +"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002", +"Update": "\u66f4\u65b0", +"Color swatch": "\u989c\u8272\u6837\u672c", +"Turquoise": "\u9752\u7eff\u8272", +"Green": "\u7eff\u8272", +"Blue": "\u84dd\u8272", +"Purple": "\u7d2b\u8272", +"Navy Blue": "\u6d77\u519b\u84dd", +"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272", +"Dark Green": "\u6df1\u7eff\u8272", +"Medium Blue": "\u4e2d\u84dd\u8272", +"Medium Purple": "\u4e2d\u7d2b\u8272", +"Midnight Blue": "\u6df1\u84dd\u8272", +"Yellow": "\u9ec4\u8272", +"Orange": "\u6a59\u8272", +"Red": "\u7ea2\u8272", +"Light Gray": "\u6d45\u7070\u8272", +"Gray": "\u7070\u8272", +"Dark Yellow": "\u6697\u9ec4\u8272", +"Dark Orange": "\u6df1\u6a59\u8272", +"Dark Red": "\u6df1\u7ea2\u8272", +"Medium Gray": "\u4e2d\u7070\u8272", +"Dark Gray": "\u6df1\u7070\u8272", +"Light Green": "\u6d45\u7eff\u8272", +"Light Yellow": "\u6d45\u9ec4\u8272", +"Light Red": "\u6d45\u7ea2\u8272", +"Light Purple": "\u6d45\u7d2b\u8272", +"Light Blue": "\u6d45\u84dd\u8272", +"Dark Purple": "\u6df1\u7d2b\u8272", +"Dark Blue": "\u6df1\u84dd\u8272", +"Black": "\u9ed1\u8272", +"White": "\u767d\u8272", +"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f", +"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846", +"history": "\u5386\u53f2", +"styles": "\u6837\u5f0f", +"formatting": "\u683c\u5f0f\u5316", +"alignment": "\u5bf9\u9f50", +"indentation": "\u7f29\u8fdb", +"permanent pen": "\u8bb0\u53f7\u7b14", +"comments": "\u5907\u6ce8", +"Format Painter": "\u683c\u5f0f\u5237", +"Insert\/edit iframe": "\u63d2\u5165\/\u7f16\u8f91\u6846\u67b6", +"Capitalization": "\u5927\u5199", +"lowercase": "\u5c0f\u5199", +"UPPERCASE": "\u5927\u5199", +"Title Case": "\u9996\u5b57\u6bcd\u5927\u5199", +"Permanent Pen Properties": "\u6c38\u4e45\u7b14\u5c5e\u6027", +"Permanent pen properties...": "\u6c38\u4e45\u7b14\u5c5e\u6027...", +"Font": "\u5b57\u4f53", +"Size": "\u5b57\u53f7", +"More...": "\u66f4\u591a...", +"Spellcheck Language": "\u62fc\u5199\u68c0\u67e5\u8bed\u8a00", +"Select...": "\u9009\u62e9...", +"Preferences": "\u9996\u9009\u9879", +"Yes": "\u662f", +"No": "\u5426", +"Keyboard Navigation": "\u952e\u76d8\u6307\u5f15", +"Version": "\u7248\u672c", +"Anchor": "\u951a\u70b9", +"Special character": "\u7279\u6b8a\u7b26\u53f7", +"Code sample": "\u4ee3\u7801\u793a\u4f8b", +"Color": "\u989c\u8272", +"Emoticons": "\u8868\u60c5", +"Document properties": "\u6587\u6863\u5c5e\u6027", +"Image": "\u56fe\u7247", +"Insert link": "\u63d2\u5165\u94fe\u63a5", +"Target": "\u6253\u5f00\u65b9\u5f0f", +"Link": "\u94fe\u63a5", +"Poster": "\u5c01\u9762", +"Media": "\u5a92\u4f53", +"Print": "\u6253\u5370", +"Prev": "\u4e0a\u4e00\u4e2a", +"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", +"Whole words": "\u5168\u5b57\u5339\u914d", +"Spellcheck": "\u62fc\u5199\u68c0\u67e5", +"Caption": "\u6807\u9898", +"Insert template": "\u63d2\u5165\u6a21\u677f" +}); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/langs/zh_CN.js b/assets/js/lay-module/tinymce/tinymce/langs/zh_CN.js new file mode 100755 index 0000000..d02abd0 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/langs/zh_CN.js @@ -0,0 +1,837 @@ +tinymce.addI18n('zh',{ +"Redo": "\u91cd\u505a", +"Undo": "\u64a4\u9500", +"Cut": "\u526a\u5207", +"Copy": "\u590d\u5236", +"Paste": "\u7c98\u8d34", +"Select all": "\u5168\u9009", +"New document": "\u65b0\u6587\u4ef6", +"Ok": "\u786e\u5b9a", +"Cancel": "\u53d6\u6d88", +"Visual aids": "\u7f51\u683c\u7ebf", +"Bold": "\u7c97\u4f53", +"Italic": "\u659c\u4f53", +"Underline": "\u4e0b\u5212\u7ebf", +"Strikethrough": "\u5220\u9664\u7ebf", +"Superscript": "\u4e0a\u6807", +"Subscript": "\u4e0b\u6807", +"Clear formatting": "\u6e05\u9664\u683c\u5f0f", +"Align left": "\u5de6\u8fb9\u5bf9\u9f50", +"Align center": "\u4e2d\u95f4\u5bf9\u9f50", +"Align right": "\u53f3\u8fb9\u5bf9\u9f50", +"Justify": "\u4e24\u7aef\u5bf9\u9f50", +"Bullet list": "\u9879\u76ee\u7b26\u53f7", +"Numbered list": "\u7f16\u53f7\u5217\u8868", +"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", +"Increase indent": "\u589e\u52a0\u7f29\u8fdb", +"Close": "\u5173\u95ed", +"Formats": "\u683c\u5f0f", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002", +"Headers": "\u6807\u9898", +"Header 1": "\u6807\u98981", +"Header 2": "\u6807\u98982", +"Header 3": "\u6807\u98983", +"Header 4": "\u6807\u98984", +"Header 5": "\u6807\u98985", +"Header 6": "\u6807\u98986", +"Headings": "\u6807\u9898", +"Heading 1": "\u6807\u98981", +"Heading 2": "\u6807\u98982", +"Heading 3": "\u6807\u98983", +"Heading 4": "\u6807\u98984", +"Heading 5": "\u6807\u98985", +"Heading 6": "\u6807\u98986", +"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684", +"Div": "Div", +"Pre": "Pre", +"Code": "\u4ee3\u7801", +"Paragraph": "\u6bb5\u843d", +"Blockquote": "\u5f15\u6587\u533a\u5757", +"Inline": "\u6587\u672c", +"Blocks": "\u57fa\u5757", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", +"Fonts": "\u5b57\u4f53", +"Font Sizes": "\u5b57\u53f7", +"Class": "\u7c7b\u578b", +"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf", +"OR": "\u6216", +"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64", +"Upload": "\u4e0a\u4f20", +"Block": "\u5757", +"Align": "\u5bf9\u9f50", +"Default": "\u9ed8\u8ba4", +"Circle": "\u7a7a\u5fc3\u5706", +"Disc": "\u5b9e\u5fc3\u5706", +"Square": "\u65b9\u5757", +"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", +"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", +"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", +"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Anchor...": "\u951a\u70b9...", +"Name": "\u540d\u79f0", +"Id": "\u6807\u8bc6\u7b26", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", +"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", +"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", +"Special character...": "\u7279\u6b8a\u5b57\u7b26...", +"Source code": "\u6e90\u4ee3\u7801", +"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", +"Language": "\u8bed\u8a00", +"Code sample...": "\u793a\u4f8b\u4ee3\u7801...", +"Color Picker": "\u9009\u8272\u5668", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u4ece\u5de6\u5230\u53f3", +"Right to left": "\u4ece\u53f3\u5230\u5de6", +"Emoticons...": "\u8868\u60c5\u7b26\u53f7...", +"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027", +"Title": "\u6807\u9898", +"Keywords": "\u5173\u952e\u8bcd", +"Description": "\u63cf\u8ff0", +"Robots": "\u673a\u5668\u4eba", +"Author": "\u4f5c\u8005", +"Encoding": "\u7f16\u7801", +"Fullscreen": "\u5168\u5c4f", +"Action": "\u64cd\u4f5c", +"Shortcut": "\u5feb\u6377\u952e", +"Help": "\u5e2e\u52a9", +"Address": "\u5730\u5740", +"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f", +"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f", +"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84", +"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355", +"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):", +"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a", +"Learn more...": "\u4e86\u89e3\u66f4\u591a...", +"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}", +"Plugins": "\u63d2\u4ef6", +"Handy Shortcuts": "\u5feb\u6377\u952e", +"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", +"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", +"Image description": "\u56fe\u7247\u63cf\u8ff0", +"Source": "\u5730\u5740", +"Dimensions": "\u5927\u5c0f", +"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", +"General": "\u666e\u901a", +"Advanced": "\u9ad8\u7ea7", +"Style": "\u6837\u5f0f", +"Vertical space": "\u5782\u76f4\u8fb9\u8ddd", +"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", +"Border": "\u8fb9\u6846", +"Insert image": "\u63d2\u5165\u56fe\u7247", +"Image...": "\u56fe\u7247...", +"Image list": "\u56fe\u7247\u5217\u8868", +"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", +"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", +"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", +"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", +"Edit image": "\u7f16\u8f91\u56fe\u7247", +"Image options": "\u56fe\u7247\u9009\u9879", +"Zoom in": "\u653e\u5927", +"Zoom out": "\u7f29\u5c0f", +"Crop": "\u88c1\u526a", +"Resize": "\u8c03\u6574\u5927\u5c0f", +"Orientation": "\u65b9\u5411", +"Brightness": "\u4eae\u5ea6", +"Sharpen": "\u9510\u5316", +"Contrast": "\u5bf9\u6bd4\u5ea6", +"Color levels": "\u989c\u8272\u5c42\u6b21", +"Gamma": "\u4f3d\u9a6c\u503c", +"Invert": "\u53cd\u8f6c", +"Apply": "\u5e94\u7528", +"Back": "\u540e\u9000", +"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", +"Date\/time": "\u65e5\u671f\/\u65f6\u95f4", +"Insert\/Edit Link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Text to display": "\u663e\u793a\u6587\u5b57", +"Url": "\u5730\u5740", +"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...", +"Current window": "\u5f53\u524d\u7a97\u53e3", +"None": "\u65e0", +"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", +"Remove link": "\u5220\u9664\u94fe\u63a5", +"Anchors": "\u951a\u70b9", +"Link...": "\u94fe\u63a5...", +"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", +"Link list": "\u94fe\u63a5\u5217\u8868", +"Insert video": "\u63d2\u5165\u89c6\u9891", +"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", +"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", +"Alternative source": "\u955c\u50cf", +"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740", +"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)", +"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", +"Embed": "\u5185\u5d4c", +"Media...": "\u591a\u5a92\u4f53...", +"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", +"Page break": "\u5206\u9875\u7b26", +"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", +"Preview": "\u9884\u89c8", +"Print...": "\u6253\u5370...", +"Save": "\u4fdd\u5b58", +"Find": "\u67e5\u627e", +"Replace with": "\u66ff\u6362\u4e3a", +"Replace": "\u66ff\u6362", +"Replace all": "\u5168\u90e8\u66ff\u6362", +"Previous": "\u4e0a\u4e00\u4e2a", +"Next": "\u4e0b\u4e00\u4e2a", +"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...", +"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", +"Match case": "\u533a\u5206\u5927\u5c0f\u5199", +"Find whole words only": "\u5168\u5b57\u5339\u914d", +"Spell check": "\u62fc\u5199\u68c0\u67e5", +"Ignore": "\u5ffd\u7565", +"Ignore all": "\u5168\u90e8\u5ffd\u7565", +"Finish": "\u5b8c\u6210", +"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", +"Insert table": "\u63d2\u5165\u8868\u683c", +"Table properties": "\u8868\u683c\u5c5e\u6027", +"Delete table": "\u5220\u9664\u8868\u683c", +"Cell": "\u5355\u5143\u683c", +"Row": "\u884c", +"Column": "\u5217", +"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", +"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", +"Split cell": "\u62c6\u5206\u5355\u5143\u683c", +"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", +"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", +"Delete row": "\u5220\u9664\u884c", +"Row properties": "\u884c\u5c5e\u6027", +"Cut row": "\u526a\u5207\u884c", +"Copy row": "\u590d\u5236\u884c", +"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", +"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", +"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", +"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", +"Delete column": "\u5220\u9664\u5217", +"Cols": "\u5217", +"Rows": "\u884c", +"Width": "\u5bbd", +"Height": "\u9ad8", +"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", +"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", +"Show caption": "\u663e\u793a\u6807\u9898", +"Left": "\u5de6\u5bf9\u9f50", +"Center": "\u5c45\u4e2d", +"Right": "\u53f3\u5bf9\u9f50", +"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", +"Scope": "\u8303\u56f4", +"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", +"H Align": "\u6c34\u5e73\u5bf9\u9f50", +"V Align": "\u5782\u76f4\u5bf9\u9f50", +"Top": "\u9876\u90e8\u5bf9\u9f50", +"Middle": "\u5782\u76f4\u5c45\u4e2d", +"Bottom": "\u5e95\u90e8\u5bf9\u9f50", +"Header cell": "\u8868\u5934\u5355\u5143\u683c", +"Row group": "\u884c\u7ec4", +"Column group": "\u5217\u7ec4", +"Row type": "\u884c\u7c7b\u578b", +"Header": "\u8868\u5934", +"Body": "\u8868\u4f53", +"Footer": "\u8868\u5c3e", +"Border color": "\u8fb9\u6846\u989c\u8272", +"Insert template...": "\u63d2\u5165\u6a21\u677f...", +"Templates": "\u6a21\u677f", +"Template": "\u6a21\u677f", +"Text color": "\u6587\u5b57\u989c\u8272", +"Background color": "\u80cc\u666f\u8272", +"Custom...": "\u81ea\u5b9a\u4e49...", +"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", +"No color": "\u65e0", +"Remove color": "\u79fb\u9664\u989c\u8272", +"Table of Contents": "\u5185\u5bb9\u5217\u8868", +"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", +"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", +"Word count": "\u5b57\u6570", +"Count": "\u8ba1\u6570", +"Document": "\u6587\u6863", +"Selection": "\u9009\u62e9", +"Words": "\u5355\u8bcd", +"Words: {0}": "\u5b57\u6570\uff1a{0}", +"{0} words": "{0} \u5b57", +"File": "\u6587\u4ef6", +"Edit": "\u7f16\u8f91", +"Insert": "\u63d2\u5165", +"View": "\u89c6\u56fe", +"Format": "\u683c\u5f0f", +"Table": "\u8868\u683c", +"Tools": "\u5de5\u5177", +"Powered by {0}": "\u7531{0}\u9a71\u52a8", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", +"Image title": "\u56fe\u7247\u6807\u9898", +"Border width": "\u8fb9\u6846\u5bbd\u5ea6", +"Border style": "\u8fb9\u6846\u6837\u5f0f", +"Error": "\u9519\u8bef", +"Warn": "\u8b66\u544a", +"Valid": "\u6709\u6548", +"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846", +"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002", +"System Font": "\u7cfb\u7edf\u5b57\u4f53", +"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}", +"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}", +"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}", +"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}", +"example": "\u793a\u4f8b", +"Search": "\u641c\u7d22", +"All": "\u5168\u90e8", +"Currency": "\u8d27\u5e01", +"Text": "\u6587\u5b57", +"Quotations": "\u5f15\u7528", +"Mathematical": "\u6570\u5b66", +"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145", +"Symbols": "\u7b26\u53f7", +"Arrows": "\u7bad\u5934", +"User Defined": "\u81ea\u5b9a\u4e49", +"dollar sign": "\u7f8e\u5143\u7b26\u53f7", +"currency sign": "\u8d27\u5e01\u7b26\u53f7", +"euro-currency sign": "\u6b27\u5143\u7b26\u53f7", +"colon sign": "\u5192\u53f7", +"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7", +"french franc sign": "\u6cd5\u90ce\u7b26\u53f7", +"lira sign": "\u91cc\u62c9\u7b26\u53f7", +"mill sign": "\u5bc6\u5c14\u7b26\u53f7", +"naira sign": "\u5948\u62c9\u7b26\u53f7", +"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7", +"rupee sign": "\u5362\u6bd4\u7b26\u53f7", +"won sign": "\u97e9\u5143\u7b26\u53f7", +"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7", +"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7", +"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7", +"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7", +"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7", +"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7", +"peso sign": "\u6bd4\u7d22\u7b26\u53f7", +"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7", +"austral sign": "\u6fb3\u5143\u7b26\u53f7", +"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7", +"cedi sign": "\u585e\u5730\u7b26\u53f7", +"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7", +"spesmilo sign": "spesmilo\u7b26\u53f7", +"tenge sign": "\u575a\u6208\u7b26\u53f7", +"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4", +"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9", +"nordic mark sign": "\u5317\u6b27\u9a6c\u514b", +"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7", +"ruble sign": "\u5362\u5e03\u7b26\u53f7", +"yen character": "\u65e5\u5143\u5b57\u6837", +"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837", +"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09", +"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09", +"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...", +"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7", +"People": "\u4eba\u7c7b", +"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136", +"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1", +"Activity": "\u6d3b\u52a8", +"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9", +"Objects": "\u7269\u4ef6", +"Flags": "\u65d7\u5e1c", +"Characters": "\u5b57\u7b26", +"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)", +"{0} characters": "{0} \u4e2a\u5b57\u7b26", +"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002", +"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002", +"Update": "\u66f4\u65b0", +"Color swatch": "\u989c\u8272\u6837\u672c", +"Turquoise": "\u9752\u7eff\u8272", +"Green": "\u7eff\u8272", +"Blue": "\u84dd\u8272", +"Purple": "\u7d2b\u8272", +"Navy Blue": "\u6d77\u519b\u84dd", +"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272", +"Dark Green": "\u6df1\u7eff\u8272", +"Medium Blue": "\u4e2d\u84dd\u8272", +"Medium Purple": "\u4e2d\u7d2b\u8272", +"Midnight Blue": "\u6df1\u84dd\u8272", +"Yellow": "\u9ec4\u8272", +"Orange": "\u6a59\u8272", +"Red": "\u7ea2\u8272", +"Light Gray": "\u6d45\u7070\u8272", +"Gray": "\u7070\u8272", +"Dark Yellow": "\u6697\u9ec4\u8272", +"Dark Orange": "\u6df1\u6a59\u8272", +"Dark Red": "\u6df1\u7ea2\u8272", +"Medium Gray": "\u4e2d\u7070\u8272", +"Dark Gray": "\u6df1\u7070\u8272", +"Light Green": "\u6d45\u7eff\u8272", +"Light Yellow": "\u6d45\u9ec4\u8272", +"Light Red": "\u6d45\u7ea2\u8272", +"Light Purple": "\u6d45\u7d2b\u8272", +"Light Blue": "\u6d45\u84dd\u8272", +"Dark Purple": "\u6df1\u7d2b\u8272", +"Dark Blue": "\u6df1\u84dd\u8272", +"Black": "\u9ed1\u8272", +"White": "\u767d\u8272", +"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f", +"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846", +"history": "\u5386\u53f2", +"styles": "\u6837\u5f0f", +"formatting": "\u683c\u5f0f\u5316", +"alignment": "\u5bf9\u9f50", +"indentation": "\u7f29\u8fdb", +"permanent pen": "\u8bb0\u53f7\u7b14", +"comments": "\u5907\u6ce8", +"Format Painter": "\u683c\u5f0f\u5237", +"Insert\/edit iframe": "\u63d2\u5165\/\u7f16\u8f91\u6846\u67b6", +"Capitalization": "\u5927\u5199", +"lowercase": "\u5c0f\u5199", +"UPPERCASE": "\u5927\u5199", +"Title Case": "\u9996\u5b57\u6bcd\u5927\u5199", +"Permanent Pen Properties": "\u6c38\u4e45\u7b14\u5c5e\u6027", +"Permanent pen properties...": "\u6c38\u4e45\u7b14\u5c5e\u6027...", +"Font": "\u5b57\u4f53", +"Size": "\u5b57\u53f7", +"More...": "\u66f4\u591a...", +"Spellcheck Language": "\u62fc\u5199\u68c0\u67e5\u8bed\u8a00", +"Select...": "\u9009\u62e9...", +"Preferences": "\u9996\u9009\u9879", +"Yes": "\u662f", +"No": "\u5426", +"Keyboard Navigation": "\u952e\u76d8\u6307\u5f15", +"Version": "\u7248\u672c", +"Anchor": "\u951a\u70b9", +"Special character": "\u7279\u6b8a\u7b26\u53f7", +"Code sample": "\u4ee3\u7801\u793a\u4f8b", +"Color": "\u989c\u8272", +"Emoticons": "\u8868\u60c5", +"Document properties": "\u6587\u6863\u5c5e\u6027", +"Image": "\u56fe\u7247", +"Insert link": "\u63d2\u5165\u94fe\u63a5", +"Target": "\u6253\u5f00\u65b9\u5f0f", +"Link": "\u94fe\u63a5", +"Poster": "\u5c01\u9762", +"Media": "\u5a92\u4f53", +"Print": "\u6253\u5370", +"Prev": "\u4e0a\u4e00\u4e2a", +"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", +"Whole words": "\u5168\u5b57\u5339\u914d", +"Spellcheck": "\u62fc\u5199\u68c0\u67e5", +"Caption": "\u6807\u9898", +"Insert template": "\u63d2\u5165\u6a21\u677f" +},"en":{ + "Redo": "Redo", + "Undo": "Undo", + "Cut": "Cut", + "Copy": "Copy", + "Paste": "Paste", + "Select all": "Select all", + "New document": "New document", + "Ok": "Ok", + "Cancel": "Cancel", + "Visual aids": "Visual aids", + "Bold": "Bold", + "Italic": "Italic", + "Underline": "Underline", + "Strikethrough": "Strikethrough", + "Superscript": "Superscript", + "Subscript": "Subscript", + "Clear formatting": "Clear formatting", + "Align left": "Align left", + "Align center": "Align center", + "Align right": "Align right", + "Justify": "Justify", + "Bullet list": "Bullet list", + "Numbered list": "Numbered list", + "Decrease indent": "Decrease indent", + "Increase indent": "Increase indent", + "Close": "Close", + "Formats": "Formats", + "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.", + "Headers": "Headers", + "Header 1": "Header 1", + "Header 2": "Header 2", + "Header 3": "Header 3", + "Header 4": "Header 4", + "Header 5": "Header 5", + "Header 6": "Header 6", + "Headings": "Headings", + "Heading 1": "Heading 1", + "Heading 2": "Heading 2", + "Heading 3": "Heading 3", + "Heading 4": "Heading 4", + "Heading 5": "Heading 5", + "Heading 6": "Heading 6", + "Preformatted": "Preformatted", + "Div": "Div", + "Pre": "Pre", + "Code": "Code", + "Paragraph": "Paragraph", + "Blockquote": "Blockquote", + "Inline": "Inline", + "Blocks": "Blocks", + "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.", + "Fonts": "Fonts", + "Font Sizes": "Font Sizes", + "Class": "Class", + "Browse for an image": "Browse for an image", + "OR": "OR", + "Drop an image here": "Drop an image here", + "Upload": "Upload", + "Block": "Block", + "Align": "Align", + "Default": "Default", + "Circle": "Circle", + "Disc": "Disc", + "Square": "Square", + "Lower Alpha": "Lower Alpha", + "Lower Greek": "Lower Greek", + "Lower Roman": "Lower Roman", + "Upper Alpha": "Upper Alpha", + "Upper Roman": "Upper Roman", + "Anchor...": "Anchor...", + "Name": "Name", + "Id": "Id", + "Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.", + "You have unsaved changes are you sure you want to navigate away?": "You have unsaved changes are you sure you want to navigate away?", + "Restore last draft": "Restore last draft", + "Special character...": "Special character...", + "Source code": "Source code", + "Insert/Edit code sample": "Insert/Edit code sample", + "Language": "Language", + "Code sample...": "Code sample...", + "Color Picker": "Color Picker", + "R": "R", + "G": "G", + "B": "B", + "Left to right": "Left to right", + "Right to left": "Right to left", + "Emoticons...": "Emoticons...", + "Metadata and Document Properties": "Metadata and Document Properties", + "Title": "Title", + "Keywords": "Keywords", + "Description": "Description", + "Robots": "Robots", + "Author": "Author", + "Encoding": "Encoding", + "Fullscreen": "Fullscreen", + "Action": "Action", + "Shortcut": "Shortcut", + "Help": "Help", + "Address": "Address", + "Focus to menubar": "Focus to menubar", + "Focus to toolbar": "Focus to toolbar", + "Focus to element path": "Focus to element path", + "Focus to contextual toolbar": "Focus to contextual toolbar", + "Insert link (if link plugin activated)": "Insert link (if link plugin activated)", + "Save (if save plugin activated)": "Save (if save plugin activated)", + "Find (if searchreplace plugin activated)": "Find (if searchreplace plugin activated)", + "Plugins installed ({0}):": "Plugins installed ({0}):", + "Premium plugins:": "Premium plugins:", + "Learn more...": "Learn more...", + "You are using {0}": "You are using {0}", + "Plugins": "Plugins", + "Handy Shortcuts": "Handy Shortcuts", + "Horizontal line": "Horizontal line", + "Insert/edit image": "Insert/edit image", + "Image description": "Image description", + "Source": "Source", + "Dimensions": "Dimensions", + "Constrain proportions": "Constrain proportions", + "General": "General", + "Advanced": "Advanced", + "Style": "Style", + "Vertical space": "Vertical space", + "Horizontal space": "Horizontal space", + "Border": "Border", + "Insert image": "Insert image", + "Image...": "Image...", + "Image list": "Image list", + "Rotate counterclockwise": "Rotate counterclockwise", + "Rotate clockwise": "Rotate clockwise", + "Flip vertically": "Flip vertically", + "Flip horizontally": "Flip horizontally", + "Edit image": "Edit image", + "Image options": "Image options", + "Zoom in": "Zoom in", + "Zoom out": "Zoom out", + "Crop": "Crop", + "Resize": "Resize", + "Orientation": "Orientation", + "Brightness": "Brightness", + "Sharpen": "Sharpen", + "Contrast": "Contrast", + "Color levels": "Color levels", + "Gamma": "Gamma", + "Invert": "Invert", + "Apply": "Apply", + "Back": "Back", + "Insert date/time": "Insert date/time", + "Date/time": "Date/time", + "Insert/Edit Link": "Insert/Edit Link", + "Insert/edit link": "Insert/edit link", + "Text to display": "Text to display", + "Url": "Url", + "Open link in...": "Open link in...", + "Current window": "Current window", + "None": "None", + "New window": "New window", + "Remove link": "Remove link", + "Anchors": "Anchors", + "Link...": "Link...", + "Paste or type a link": "Paste or type a link", + "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?", + "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?", + "Link list": "Link list", + "Insert video": "Insert video", + "Insert/edit video": "Insert/edit video", + "Insert/edit media": "Insert/edit media", + "Alternative source": "Alternative source", + "Alternative source URL": "Alternative source URL", + "Media poster (Image URL)": "Media poster (Image URL)", + "Paste your embed code below:": "Paste your embed code below:", + "Embed": "Embed", + "Media...": "Media...", + "Nonbreaking space": "Nonbreaking space", + "Page break": "Page break", + "Paste as text": "Paste as text", + "Preview": "Preview", + "Print...": "Print...", + "Save": "Save", + "Find": "Find", + "Replace with": "Replace with", + "Replace": "Replace", + "Replace all": "Replace all", + "Previous": "Previous", + "Next": "Next", + "Find and replace...": "Find and replace...", + "Could not find the specified string.": "Could not find the specified string.", + "Match case": "Match case", + "Find whole words only": "Find whole words only", + "Spell check": "Spell check", + "Ignore": "Ignore", + "Ignore all": "Ignore all", + "Finish": "Finish", + "Add to Dictionary": "Add to Dictionary", + "Insert table": "Insert table", + "Table properties": "Table properties", + "Delete table": "Delete table", + "Cell": "Cell", + "Row": "Row", + "Column": "Column", + "Cell properties": "Cell properties", + "Merge cells": "Merge cells", + "Split cell": "Split cell", + "Insert row before": "Insert row before", + "Insert row after": "Insert row after", + "Delete row": "Delete row", + "Row properties": "Row properties", + "Cut row": "Cut row", + "Copy row": "Copy row", + "Paste row before": "Paste row before", + "Paste row after": "Paste row after", + "Insert column before": "Insert column before", + "Insert column after": "Insert column after", + "Delete column": "Delete column", + "Cols": "Cols", + "Rows": "Rows", + "Width": "Width", + "Height": "Height", + "Cell spacing": "Cell spacing", + "Cell padding": "Cell padding", + "Show caption": "Show caption", + "Left": "Left", + "Center": "Center", + "Right": "Right", + "Cell type": "Cell type", + "Scope": "Scope", + "Alignment": "Alignment", + "H Align": "H Align", + "V Align": "V Align", + "Top": "Top", + "Middle": "Middle", + "Bottom": "Bottom", + "Header cell": "Header cell", + "Row group": "Row group", + "Column group": "Column group", + "Row type": "Row type", + "Header": "Header", + "Body": "Body", + "Footer": "Footer", + "Border color": "Border color", + "Insert template...": "Insert template...", + "Templates": "Templates", + "Template": "Template", + "Text color": "Text color", + "Background color": "Background color", + "Custom...": "Custom...", + "Custom color": "Custom color", + "No color": "No color", + "Remove color": "Remove color", + "Table of Contents": "Table of Contents", + "Show blocks": "Show blocks", + "Show invisible characters": "Show invisible characters", + "Word count": "Word count", + "Count": "Count", + "Document": "Document", + "Selection": "Selection", + "Words": "Words", + "Words: {0}": "Words: {0}", + "{0} words": "{0} words", + "File": "File", + "Edit": "Edit", + "Insert": "Insert", + "View": "View", + "Format": "Format", + "Table": "Table", + "Tools": "Tools", + "Powered by {0}": "Powered by {0}", + "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help", + "Image title": "Image title", + "Border width": "Border width", + "Border style": "Border style", + "Error": "Error", + "Warn": "Warn", + "Valid": "Valid", + "To open the popup, press Shift+Enter": "To open the popup, press Shift+Enter", + "Rich Text Area. Press ALT-0 for help.": "Rich Text Area. Press ALT-0 for help.", + "System Font": "System Font", + "Failed to upload image: {0}": "Failed to upload image: {0}", + "Failed to load plugin: {0} from url {1}": "Failed to load plugin: {0} from url {1}", + "Failed to load plugin url: {0}": "Failed to load plugin url: {0}", + "Failed to initialize plugin: {0}": "Failed to initialize plugin: {0}", + "example": "example", + "Search": "Search", + "All": "All", + "Currency": "Currency", + "Text": "Text", + "Quotations": "Quotations", + "Mathematical": "Mathematical", + "Extended Latin": "Extended Latin", + "Symbols": "Symbols", + "Arrows": "Arrows", + "User Defined": "User Defined", + "dollar sign": "dollar sign", + "currency sign": "currency sign", + "euro-currency sign": "euro-currency sign", + "colon sign": "colon sign", + "cruzeiro sign": "cruzeiro sign", + "french franc sign": "french franc sign", + "lira sign": "lira sign", + "mill sign": "mill sign", + "naira sign": "naira sign", + "peseta sign": "peseta sign", + "rupee sign": "rupee sign", + "won sign": "won sign", + "new sheqel sign": "new sheqel sign", + "dong sign": "dong sign", + "kip sign": "kip sign", + "tugrik sign": "tugrik sign", + "drachma sign": "drachma sign", + "german penny symbol": "german penny symbol", + "peso sign": "peso sign", + "guarani sign": "guarani sign", + "austral sign": "austral sign", + "hryvnia sign": "hryvnia sign", + "cedi sign": "cedi sign", + "livre tournois sign": "livre tournois sign", + "spesmilo sign": "spesmilo sign", + "tenge sign": "tenge sign", + "indian rupee sign": "indian rupee sign", + "turkish lira sign": "turkish lira sign", + "nordic mark sign": "nordic mark sign", + "manat sign": "manat sign", + "ruble sign": "ruble sign", + "yen character": "yen character", + "yuan character": "yuan character", + "yuan character, in hong kong and taiwan": "yuan character, in hong kong and taiwan", + "yen/yuan character variant one": "yen/yuan character variant one", + "Loading emoticons...": "Loading emoticons...", + "Could not load emoticons": "Could not load emoticons", + "People": "People", + "Animals and Nature": "Animals and Nature", + "Food and Drink": "Food and Drink", + "Activity": "Activity", + "Travel and Places": "Travel and Places", + "Objects": "Objects", + "Flags": "Flags", + "Characters": "Characters", + "Characters (no spaces)": "Characters (no spaces)", + "{0} characters": "{0} characters", + "Error: Form submit field collision.": "Error: Form submit field collision.", + "Error: No form element found.": "Error: No form element found.", + "Update": "Update", + "Color swatch": "Color swatch", + "Turquoise": "Turquoise", + "Green": "Green", + "Blue": "Blue", + "Purple": "Purple", + "Navy Blue": "Navy Blue", + "Dark Turquoise": "Dark Turquoise", + "Dark Green": "Dark Green", + "Medium Blue": "Medium Blue", + "Medium Purple": "Medium Purple", + "Midnight Blue": "Midnight Blue", + "Yellow": "Yellow", + "Orange": "Orange", + "Red": "Red", + "Light Gray": "Light Gray", + "Gray": "Gray", + "Dark Yellow": "Dark Yellow", + "Dark Orange": "Dark Orange", + "Dark Red": "Dark Red", + "Medium Gray": "Medium Gray", + "Dark Gray": "Dark Gray", + "Light Green": "Light Green", + "Light Yellow": "Light Yellow", + "Light Red": "Light Red", + "Light Purple": "Light Purple", + "Light Blue": "Light Blue", + "Dark Purple": "Dark Purple", + "Dark Blue": "Dark Blue", + "Black": "Black", + "White": "White", + "Switch to or from fullscreen mode": "Switch to or from fullscreen mode", + "Open help dialog": "Open help dialog", + "history": "history", + "styles": "styles", + "formatting": "formatting", + "alignment": "alignment", + "indentation": "indentation", + "permanent pen": "permanent pen", + "comments": "comments", + "Format Painter": "Format Painter", + "Insert/edit iframe": "Insert/edit iframe", + "Capitalization": "Capitalization", + "lowercase": "lowercase", + "UPPERCASE": "UPPERCASE", + "Title Case": "Title Case", + "Permanent Pen Properties": "Permanent Pen Properties", + "Permanent pen properties...": "Permanent pen properties...", + "Font": "Font", + "Size": "Size", + "More...": "More...", + "Spellcheck Language": "Spellcheck Language", + "Select...": "Select...", + "Preferences": "Preferences", + "Yes": "Yes", + "No": "No", + "Keyboard Navigation": "Keyboard Navigation", + "Version": "Version", + "Anchor": "Anchor", + "Special character": "Special character", + "Code sample": "Code sample", + "Color": "Color", + "Emoticons": "Emoticons", + "Document properties": "Document properties", + "Image": "Image", + "Insert link": "Insert link", + "Target": "Target", + "Link": "Link", + "Poster": "Poster", + "Media": "Media", + "Print": "Print", + "Prev": "Prev", + "Find and replace": "Find and replace", + "Whole words": "Whole words", + "Spellcheck": "Spellcheck", + "Caption": "Caption", + "Insert template": "Insert template" +}); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/license.txt b/assets/js/lay-module/tinymce/tinymce/license.txt new file mode 100755 index 0000000..b17fc90 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/license.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/advlist/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/advlist/plugin.js new file mode 100755 index 0000000..dc0a4c7 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/advlist/plugin.js @@ -0,0 +1,281 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function () { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var applyListFormat = function (editor, listName, styleValue) { + var cmd = listName === 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList'; + editor.execCommand(cmd, false, styleValue === false ? null : { 'list-style-type': styleValue }); + }; + + var register = function (editor) { + editor.addCommand('ApplyUnorderedListStyle', function (ui, value) { + applyListFormat(editor, 'UL', value['list-style-type']); + }); + editor.addCommand('ApplyOrderedListStyle', function (ui, value) { + applyListFormat(editor, 'OL', value['list-style-type']); + }); + }; + + var getNumberStyles = function (editor) { + var styles = editor.getParam('advlist_number_styles', 'default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman'); + return styles ? styles.split(/[ ,]/) : []; + }; + var getBulletStyles = function (editor) { + var styles = editor.getParam('advlist_bullet_styles', 'default,circle,square'); + return styles ? styles.split(/[ ,]/) : []; + }; + + var noop = function () { + }; + var constant = function (value) { + return function () { + return value; + }; + }; + var never = constant(false); + var always = constant(true); + + var none = function () { + return NONE; + }; + var NONE = function () { + var eq = function (o) { + return o.isNone(); + }; + var call = function (thunk) { + return thunk(); + }; + var id = function (n) { + return n; + }; + var me = { + fold: function (n, _s) { + return n(); + }, + is: never, + isSome: never, + isNone: always, + getOr: id, + getOrThunk: call, + getOrDie: function (msg) { + throw new Error(msg || 'error: getOrDie called on none.'); + }, + getOrNull: constant(null), + getOrUndefined: constant(undefined), + or: id, + orThunk: call, + map: none, + each: noop, + bind: none, + exists: never, + forall: always, + filter: none, + equals: eq, + equals_: eq, + toArray: function () { + return []; + }, + toString: constant('none()') + }; + return me; + }(); + var some = function (a) { + var constant_a = constant(a); + var self = function () { + return me; + }; + var bind = function (f) { + return f(a); + }; + var me = { + fold: function (n, s) { + return s(a); + }, + is: function (v) { + return a === v; + }, + isSome: always, + isNone: never, + getOr: constant_a, + getOrThunk: constant_a, + getOrDie: constant_a, + getOrNull: constant_a, + getOrUndefined: constant_a, + or: self, + orThunk: self, + map: function (f) { + return some(f(a)); + }, + each: function (f) { + f(a); + }, + bind: bind, + exists: bind, + forall: bind, + filter: function (f) { + return f(a) ? me : NONE; + }, + toArray: function () { + return [a]; + }, + toString: function () { + return 'some(' + a + ')'; + }, + equals: function (o) { + return o.is(a); + }, + equals_: function (o, elementEq) { + return o.fold(never, function (b) { + return elementEq(a, b); + }); + } + }; + return me; + }; + var from = function (value) { + return value === null || value === undefined ? NONE : some(value); + }; + var Option = { + some: some, + none: none, + from: from + }; + + var isChildOfBody = function (editor, elm) { + return editor.$.contains(editor.getBody(), elm); + }; + var isTableCellNode = function (node) { + return node && /^(TH|TD)$/.test(node.nodeName); + }; + var isListNode = function (editor) { + return function (node) { + return node && /^(OL|UL|DL)$/.test(node.nodeName) && isChildOfBody(editor, node); + }; + }; + var getSelectedStyleType = function (editor) { + var listElm = editor.dom.getParent(editor.selection.getNode(), 'ol,ul'); + var style = editor.dom.getStyle(listElm, 'listStyleType'); + return Option.from(style); + }; + + var findIndex = function (list, predicate) { + for (var index = 0; index < list.length; index++) { + var element = list[index]; + if (predicate(element)) { + return index; + } + } + return -1; + }; + var styleValueToText = function (styleValue) { + return styleValue.replace(/\-/g, ' ').replace(/\b\w/g, function (chr) { + return chr.toUpperCase(); + }); + }; + var isWithinList = function (editor, e, nodeName) { + var tableCellIndex = findIndex(e.parents, isTableCellNode); + var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents; + var lists = global$1.grep(parents, isListNode(editor)); + return lists.length > 0 && lists[0].nodeName === nodeName; + }; + var addSplitButton = function (editor, id, tooltip, cmd, nodeName, styles) { + editor.ui.registry.addSplitButton(id, { + tooltip: tooltip, + icon: nodeName === 'OL' ? 'ordered-list' : 'unordered-list', + presets: 'listpreview', + columns: 3, + fetch: function (callback) { + var items = global$1.map(styles, function (styleValue) { + var iconStyle = nodeName === 'OL' ? 'num' : 'bull'; + var iconName = styleValue === 'disc' || styleValue === 'decimal' ? 'default' : styleValue; + var itemValue = styleValue === 'default' ? '' : styleValue; + var displayText = styleValueToText(styleValue); + return { + type: 'choiceitem', + value: itemValue, + icon: 'list-' + iconStyle + '-' + iconName, + text: displayText + }; + }); + callback(items); + }, + onAction: function () { + return editor.execCommand(cmd); + }, + onItemAction: function (_splitButtonApi, value) { + applyListFormat(editor, nodeName, value); + }, + select: function (value) { + var listStyleType = getSelectedStyleType(editor); + return listStyleType.map(function (listStyle) { + return value === listStyle; + }).getOr(false); + }, + onSetup: function (api) { + var nodeChangeHandler = function (e) { + api.setActive(isWithinList(editor, e, nodeName)); + }; + editor.on('NodeChange', nodeChangeHandler); + return function () { + return editor.off('NodeChange', nodeChangeHandler); + }; + } + }); + }; + var addButton = function (editor, id, tooltip, cmd, nodeName, _styles) { + editor.ui.registry.addToggleButton(id, { + active: false, + tooltip: tooltip, + icon: nodeName === 'OL' ? 'ordered-list' : 'unordered-list', + onSetup: function (api) { + var nodeChangeHandler = function (e) { + api.setActive(isWithinList(editor, e, nodeName)); + }; + editor.on('NodeChange', nodeChangeHandler); + return function () { + return editor.off('NodeChange', nodeChangeHandler); + }; + }, + onAction: function () { + return editor.execCommand(cmd); + } + }); + }; + var addControl = function (editor, id, tooltip, cmd, nodeName, styles) { + if (styles.length > 1) { + addSplitButton(editor, id, tooltip, cmd, nodeName, styles); + } else { + addButton(editor, id, tooltip, cmd, nodeName); + } + }; + var register$1 = function (editor) { + addControl(editor, 'numlist', 'Numbered list', 'InsertOrderedList', 'OL', getNumberStyles(editor)); + addControl(editor, 'bullist', 'Bullet list', 'InsertUnorderedList', 'UL', getBulletStyles(editor)); + }; + + function Plugin () { + global.add('advlist', function (editor) { + var hasPlugin = function (editor, plugin) { + return global$1.inArray(editor.getParam('plugins', '', 'string').split(/[ ,]/), plugin) !== -1; + }; + if (hasPlugin(editor, 'lists')) { + register$1(editor); + register(editor); + } + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/advlist/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/advlist/plugin.min.js new file mode 100755 index 0000000..d5d7997 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/advlist/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var n,t,e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=tinymce.util.Tools.resolve("tinymce.util.Tools"),c=function(n,t,e){var r="UL"===t?"InsertUnorderedList":"InsertOrderedList";n.execCommand(r,!1,!1===e?null:{"list-style-type":e})},i=function(n){return function(){return n}},u=i(!1),s=i(!0),o=function(){return a},a=(n=function(n){return n.isNone()},{fold:function(n,t){return n()},is:u,isSome:u,isNone:s,getOr:e=function(n){return n},getOrThunk:t=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:e,orThunk:t,map:o,each:function(){},bind:o,exists:u,forall:s,filter:o,equals:n,equals_:n,toArray:function(){return[]},toString:i("none()")}),f=function(e){var n=i(e),t=function(){return o},r=function(n){return n(e)},o={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:s,isNone:u,getOr:n,getOrThunk:n,getOrDie:n,getOrNull:n,getOrUndefined:n,or:t,orThunk:t,map:function(n){return f(n(e))},each:function(n){n(e)},bind:r,exists:r,forall:r,filter:function(n){return n(e)?o:a},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(u,function(n){return t(e,n)})}};return o},d=function(n){return null===n||n===undefined?a:f(n)},g=function(n){return n&&/^(TH|TD)$/.test(n.nodeName)},m=function(r){return function(n){return n&&/^(OL|UL|DL)$/.test(n.nodeName)&&(e=n,(t=r).$.contains(t.getBody(),e));var t,e}},p=function(n,t,e){var r=function(n,t){for(var e=0;e len) { + index = len; + } + } + return index; + }; + var setStart = function (rng, container, offset) { + if (container.nodeType !== 1 || container.hasChildNodes()) { + rng.setStart(container, scopeIndex(container, offset)); + } else { + rng.setStartBefore(container); + } + }; + var setEnd = function (rng, container, offset) { + if (container.nodeType !== 1 || container.hasChildNodes()) { + rng.setEnd(container, scopeIndex(container, offset)); + } else { + rng.setEndAfter(container); + } + }; + var parseCurrentLine = function (editor, endOffset, delimiter) { + var end, endContainer, bookmark, text, prev, len, rngText; + var autoLinkPattern = getAutoLinkPattern(editor); + var defaultLinkTarget = getDefaultLinkTarget(editor); + if (editor.selection.getNode().tagName === 'A') { + return; + } + var rng = editor.selection.getRng().cloneRange(); + if (rng.startOffset < 5) { + prev = rng.endContainer.previousSibling; + if (!prev) { + if (!rng.endContainer.firstChild || !rng.endContainer.firstChild.nextSibling) { + return; + } + prev = rng.endContainer.firstChild.nextSibling; + } + len = prev.length; + setStart(rng, prev, len); + setEnd(rng, prev, len); + if (rng.endOffset < 5) { + return; + } + end = rng.endOffset; + endContainer = prev; + } else { + endContainer = rng.endContainer; + if (endContainer.nodeType !== 3 && endContainer.firstChild) { + while (endContainer.nodeType !== 3 && endContainer.firstChild) { + endContainer = endContainer.firstChild; + } + if (endContainer.nodeType === 3) { + setStart(rng, endContainer, 0); + setEnd(rng, endContainer, endContainer.nodeValue.length); + } + } + if (rng.endOffset === 1) { + end = 2; + } else { + end = rng.endOffset - 1 - endOffset; + } + } + var start = end; + do { + setStart(rng, endContainer, end >= 2 ? end - 2 : 0); + setEnd(rng, endContainer, end >= 1 ? end - 1 : 0); + end -= 1; + rngText = rng.toString(); + } while (rngText !== ' ' && rngText !== '' && rngText.charCodeAt(0) !== 160 && end - 2 >= 0 && rngText !== delimiter); + if (rangeEqualsDelimiterOrSpace(rng.toString(), delimiter)) { + setStart(rng, endContainer, end); + setEnd(rng, endContainer, start); + end += 1; + } else if (rng.startOffset === 0) { + setStart(rng, endContainer, 0); + setEnd(rng, endContainer, start); + } else { + setStart(rng, endContainer, end); + setEnd(rng, endContainer, start); + } + text = rng.toString(); + if (text.charAt(text.length - 1) === '.') { + setEnd(rng, endContainer, start - 1); + } + text = rng.toString().trim(); + var matches = text.match(autoLinkPattern); + var protocol = getDefaultLinkProtocol(editor); + if (matches) { + if (matches[1] === 'www.') { + matches[1] = protocol + '://www.'; + } else if (/@$/.test(matches[1]) && !/^mailto:/.test(matches[1])) { + matches[1] = 'mailto:' + matches[1]; + } + bookmark = editor.selection.getBookmark(); + editor.selection.setRng(rng); + editor.execCommand('createlink', false, matches[1] + matches[2]); + if (defaultLinkTarget !== false) { + editor.dom.setAttrib(editor.selection.getNode(), 'target', defaultLinkTarget); + } + editor.selection.moveToBookmark(bookmark); + editor.nodeChanged(); + } + }; + var setup = function (editor) { + var autoUrlDetectState; + editor.on('keydown', function (e) { + if (e.keyCode === 13) { + return handleEnter(editor); + } + }); + if (global$1.browser.isIE()) { + editor.on('focus', function () { + if (!autoUrlDetectState) { + autoUrlDetectState = true; + try { + editor.execCommand('AutoUrlDetect', false, true); + } catch (ex) { + } + } + }); + return; + } + editor.on('keypress', function (e) { + if (e.keyCode === 41) { + return handleEclipse(editor); + } + }); + editor.on('keyup', function (e) { + if (e.keyCode === 32) { + return handleSpacebar(editor); + } + }); + }; + + function Plugin () { + global.add('autolink', function (editor) { + setup(editor); + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/autolink/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/autolink/plugin.min.js new file mode 100755 index 0000000..d5a785d --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/autolink/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=tinymce.util.Tools.resolve("tinymce.Env"),o=function(e,t){if(t<0&&(t=0),3===e.nodeType){var n=e.data.length;n getAutoResizeMinHeight(editor)) { + resizeHeight = contentHeight + chromeHeight; + } + var maxHeight = getAutoResizeMaxHeight(editor); + if (maxHeight && resizeHeight > maxHeight) { + resizeHeight = maxHeight; + toggleScrolling(editor, true); + } else { + toggleScrolling(editor, false); + } + if (resizeHeight !== oldSize.get()) { + var deltaSize = resizeHeight - oldSize.get(); + dom.setStyle(editor.getContainer(), 'height', resizeHeight + 'px'); + oldSize.set(resizeHeight); + fireResizeEditor(editor); + if (global$1.browser.isSafari() && global$1.mac) { + var win = editor.getWin(); + win.scrollTo(win.pageXOffset, win.pageYOffset); + } + if (editor.hasFocus()) { + editor.selection.scrollIntoView(editor.selection.getNode()); + } + if (global$1.webkit && deltaSize < 0) { + resize(editor, oldSize); + } + } + }; + var setup = function (editor, oldSize) { + editor.on('init', function () { + var overflowPadding = getAutoResizeOverflowPadding(editor); + var dom = editor.dom; + dom.setStyles(editor.getDoc().documentElement, { height: 'auto' }); + dom.setStyles(editor.getBody(), { + 'paddingLeft': overflowPadding, + 'paddingRight': overflowPadding, + 'min-height': 0 + }); + }); + editor.on('NodeChange SetContent keyup FullscreenStateChanged ResizeContent', function () { + resize(editor, oldSize); + }); + if (shouldAutoResizeOnInit(editor)) { + editor.on('init', function () { + wait(editor, oldSize, 20, 100, function () { + wait(editor, oldSize, 5, 1000); + }); + }); + } + }; + + var register = function (editor, oldSize) { + editor.addCommand('mceAutoResize', function () { + resize(editor, oldSize); + }); + }; + + function Plugin () { + global.add('autoresize', function (editor) { + if (!editor.settings.hasOwnProperty('resize')) { + editor.settings.resize = false; + } + if (!editor.inline) { + var oldSize = Cell(0); + register(editor, oldSize); + setup(editor, oldSize); + } + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/autoresize/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/autoresize/plugin.min.js new file mode 100755 index 0000000..ccef929 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/autoresize/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),h=tinymce.util.Tools.resolve("tinymce.Env"),r=tinymce.util.Tools.resolve("tinymce.util.Delay"),v=function(e){return e.getParam("min_height",e.getElement().offsetHeight,"number")},s=function(e,t,n,i,o){r.setEditorTimeout(e,function(){b(e,t),n--?s(e,t,n,i,o):o&&o()},i)},y=function(e,t){var n=e.getBody();n&&(n.style.overflowY=t?"":"hidden",t||(n.scrollTop=0))},p=function(e,t,n,i){var o=parseInt(e.getStyle(t,n,i),10);return isNaN(o)?0:o},b=function(e,t){var n=e.dom,i=e.getDoc();if(i)if((o=e).plugins.fullscreen&&o.plugins.fullscreen.isFullscreen())y(e,!0);else{var o,r=i.documentElement,a=e.getParam("autoresize_bottom_margin",50,"number"),s=v(e),u=p(n,r,"margin-top",!0),g=p(n,r,"margin-bottom",!0),l=r.offsetHeight+u+g+a;l<0&&(l=0);var f=e.getContainer().offsetHeight-e.getContentAreaContainer().offsetHeight;l+f>v(e)&&(s=l+f);var c=e.getParam("max_height",0,"number");if(c&&c getAutoSaveRetention(editor)) { + removeDraft(editor, false); + return false; + } + return true; + }; + var removeDraft = function (editor, fire) { + var prefix = getAutoSavePrefix(editor); + global$2.removeItem(prefix + 'draft'); + global$2.removeItem(prefix + 'time'); + if (fire !== false) { + fireRemoveDraft(editor); + } + }; + var storeDraft = function (editor) { + var prefix = getAutoSavePrefix(editor); + if (!isEmpty(editor) && editor.isDirty()) { + global$2.setItem(prefix + 'draft', editor.getContent({ + format: 'raw', + no_events: true + })); + global$2.setItem(prefix + 'time', new Date().getTime().toString()); + fireStoreDraft(editor); + } + }; + var restoreDraft = function (editor) { + var prefix = getAutoSavePrefix(editor); + if (hasDraft(editor)) { + editor.setContent(global$2.getItem(prefix + 'draft'), { format: 'raw' }); + fireRestoreDraft(editor); + } + }; + var startStoreDraft = function (editor) { + var interval = getAutoSaveInterval(editor); + global$1.setInterval(function () { + if (!editor.removed) { + storeDraft(editor); + } + }, interval); + }; + var restoreLastDraft = function (editor) { + editor.undoManager.transact(function () { + restoreDraft(editor); + removeDraft(editor); + }); + editor.focus(); + }; + + var get = function (editor) { + return { + hasDraft: function () { + return hasDraft(editor); + }, + storeDraft: function () { + return storeDraft(editor); + }, + restoreDraft: function () { + return restoreDraft(editor); + }, + removeDraft: function (fire) { + return removeDraft(editor, fire); + }, + isEmpty: function (html) { + return isEmpty(editor, html); + } + }; + }; + + var global$4 = tinymce.util.Tools.resolve('tinymce.EditorManager'); + + var setup = function (editor) { + editor.editorManager.on('BeforeUnload', function (e) { + var msg; + global$3.each(global$4.get(), function (editor) { + if (editor.plugins.autosave) { + editor.plugins.autosave.storeDraft(); + } + if (!msg && editor.isDirty() && shouldAskBeforeUnload(editor)) { + msg = editor.translate('You have unsaved changes are you sure you want to navigate away?'); + } + }); + if (msg) { + e.preventDefault(); + e.returnValue = msg; + } + }); + }; + + var makeSetupHandler = function (editor) { + return function (api) { + api.setDisabled(!hasDraft(editor)); + var editorEventCallback = function () { + return api.setDisabled(!hasDraft(editor)); + }; + editor.on('StoreDraft RestoreDraft RemoveDraft', editorEventCallback); + return function () { + return editor.off('StoreDraft RestoreDraft RemoveDraft', editorEventCallback); + }; + }; + }; + var register = function (editor) { + startStoreDraft(editor); + editor.ui.registry.addButton('restoredraft', { + tooltip: 'Restore last draft', + icon: 'restore-draft', + onAction: function () { + restoreLastDraft(editor); + }, + onSetup: makeSetupHandler(editor) + }); + editor.ui.registry.addMenuItem('restoredraft', { + text: 'Restore last draft', + icon: 'restore-draft', + onAction: function () { + restoreLastDraft(editor); + }, + onSetup: makeSetupHandler(editor) + }); + }; + + function Plugin () { + global.add('autosave', function (editor) { + setup(editor); + register(editor); + editor.on('init', function () { + if (shouldRestoreWhenEmpty(editor) && editor.dom.isEmpty(editor.getBody())) { + restoreDraft(editor); + } + }); + return get(editor); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/autosave/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/autosave/plugin.min.js new file mode 100755 index 0000000..17b17a1 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/autosave/plugin.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.4.2 (2020-08-17) + */ +!function(a){"use strict";var e,t=tinymce.util.Tools.resolve("tinymce.PluginManager"),r=tinymce.util.Tools.resolve("tinymce.util.Delay"),n=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),o=tinymce.util.Tools.resolve("tinymce.util.Tools"),i=function(t,e){var r=t||e,n=/^(\d+)([ms]?)$/.exec(""+r);return(n[2]?{s:1e3,m:6e4}[n[2]]:1)*parseInt(r,10)},u=function(t){var e=a.document.location;return t.getParam("autosave_prefix","tinymce-autosave-{path}{query}{hash}-{id}-").replace(/{path}/g,e.pathname).replace(/{query}/g,e.search).replace(/{hash}/g,e.hash).replace(/{id}/g,t.id)},s=(e=undefined,function(t){return e===t}),f=function(t,e){if(s(e))return t.dom.isEmpty(t.getBody());var r=o.trim(e);if(""===r)return!0;var n=(new a.DOMParser).parseFromString(r,"text/html");return t.dom.isEmpty(n)},c=function(t){var e=parseInt(n.getItem(u(t)+"time"),10)||0;return!((new Date).getTime()-e>i(t.getParam("autosave_retention"),"20m"))||(m(t,!1),!1)},m=function(t,e){var r=u(t);n.removeItem(r+"draft"),n.removeItem(r+"time"),!1!==e&&t.fire("RemoveDraft")},l=function(t){var e=u(t);!f(t)&&t.isDirty()&&(n.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),n.setItem(e+"time",(new Date).getTime().toString()),t.fire("StoreDraft"))},v=function(t){var e=u(t);c(t)&&(t.setContent(n.getItem(e+"draft"),{format:"raw"}),t.fire("RestoreDraft"))},d=function(t){var e=i(t.getParam("autosave_interval"),"30s");r.setInterval(function(){t.removed||l(t)},e)},g=function(t){t.undoManager.transact(function(){v(t),m(t)}),t.focus()},y=tinymce.util.Tools.resolve("tinymce.EditorManager"),D=function(r){return function(t){t.setDisabled(!c(r));var e=function(){return t.setDisabled(!c(r))};return r.on("StoreDraft RestoreDraft RemoveDraft",e),function(){return r.off("StoreDraft RestoreDraft RemoveDraft",e)}}};!function p(){t.add("autosave",function(t){var e,r;return t.editorManager.on("BeforeUnload",function(t){var e;o.each(y.get(),function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&t.getParam("autosave_ask_before_unload",!0)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e&&(t.preventDefault(),t.returnValue=e)}),d(e=t),e.ui.registry.addButton("restoredraft",{tooltip:"Restore last draft",icon:"restore-draft",onAction:function(){g(e)},onSetup:D(e)}),e.ui.registry.addMenuItem("restoredraft",{text:"Restore last draft",icon:"restore-draft",onAction:function(){g(e)},onSetup:D(e)}),t.on("init",function(){t.getParam("autosave_restore_when_empty",!1)&&t.dom.isEmpty(t.getBody())&&v(t)}),r=t,{hasDraft:function(){return c(r)},storeDraft:function(){return l(r)},restoreDraft:function(){return v(r)},removeDraft:function(t){return m(r,t)},isEmpty:function(t){return f(r,t)}}})}()}(window); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/bbcode/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/bbcode/plugin.js new file mode 100755 index 0000000..4548028 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/bbcode/plugin.js @@ -0,0 +1,99 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function () { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var html2bbcode = function (s) { + s = global$1.trim(s); + var rep = function (re, str) { + s = s.replace(re, str); + }; + rep(/(.*?)<\/a>/gi, '[url=$1]$2[/url]'); + rep(/(.*?)<\/font>/gi, '[code][color=$1]$2[/color][/code]'); + rep(/(.*?)<\/font>/gi, '[quote][color=$1]$2[/color][/quote]'); + rep(/(.*?)<\/font>/gi, '[code][color=$1]$2[/color][/code]'); + rep(/(.*?)<\/font>/gi, '[quote][color=$1]$2[/color][/quote]'); + rep(/(.*?)<\/span>/gi, '[color=$1]$2[/color]'); + rep(/(.*?)<\/font>/gi, '[color=$1]$2[/color]'); + rep(/(.*?)<\/span>/gi, '[size=$1]$2[/size]'); + rep(/(.*?)<\/font>/gi, '$1'); + rep(//gi, '[img]$1[/img]'); + rep(/(.*?)<\/span>/gi, '[code]$1[/code]'); + rep(/(.*?)<\/span>/gi, '[quote]$1[/quote]'); + rep(/(.*?)<\/strong>/gi, '[code][b]$1[/b][/code]'); + rep(/(.*?)<\/strong>/gi, '[quote][b]$1[/b][/quote]'); + rep(/(.*?)<\/em>/gi, '[code][i]$1[/i][/code]'); + rep(/(.*?)<\/em>/gi, '[quote][i]$1[/i][/quote]'); + rep(/(.*?)<\/u>/gi, '[code][u]$1[/u][/code]'); + rep(/(.*?)<\/u>/gi, '[quote][u]$1[/u][/quote]'); + rep(/<\/(strong|b)>/gi, '[/b]'); + rep(/<(strong|b)>/gi, '[b]'); + rep(/<\/(em|i)>/gi, '[/i]'); + rep(/<(em|i)>/gi, '[i]'); + rep(/<\/u>/gi, '[/u]'); + rep(/(.*?)<\/span>/gi, '[u]$1[/u]'); + rep(//gi, '[u]'); + rep(/]*>/gi, '[quote]'); + rep(/<\/blockquote>/gi, '[/quote]'); + rep(/
    /gi, '\n'); + rep(//gi, '\n'); + rep(/
    /gi, '\n'); + rep(/

    /gi, ''); + rep(/<\/p>/gi, '\n'); + rep(/ |\u00a0/gi, ' '); + rep(/"/gi, '"'); + rep(/</gi, '<'); + rep(/>/gi, '>'); + rep(/&/gi, '&'); + return s; + }; + var bbcode2html = function (s) { + s = global$1.trim(s); + var rep = function (re, str) { + s = s.replace(re, str); + }; + rep(/\n/gi, '
    '); + rep(/\[b\]/gi, ''); + rep(/\[\/b\]/gi, ''); + rep(/\[i\]/gi, ''); + rep(/\[\/i\]/gi, ''); + rep(/\[u\]/gi, ''); + rep(/\[\/u\]/gi, ''); + rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi, '$2'); + rep(/\[url\](.*?)\[\/url\]/gi, '$1'); + rep(/\[img\](.*?)\[\/img\]/gi, ''); + rep(/\[color=(.*?)\](.*?)\[\/color\]/gi, '$2'); + rep(/\[code\](.*?)\[\/code\]/gi, '$1 '); + rep(/\[quote.*?\](.*?)\[\/quote\]/gi, '$1 '); + return s; + }; + + function Plugin () { + global.add('bbcode', function (editor) { + editor.on('BeforeSetContent', function (e) { + e.content = bbcode2html(e.content); + }); + editor.on('PostProcess', function (e) { + if (e.set) { + e.content = bbcode2html(e.content); + } + if (e.get) { + e.content = html2bbcode(e.content); + } + }); + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/bbcode/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/bbcode/plugin.min.js new file mode 100755 index 0000000..a0d2a45 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/bbcode/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var o=tinymce.util.Tools.resolve("tinymce.PluginManager"),e=tinymce.util.Tools.resolve("tinymce.util.Tools"),t=function(t){t=e.trim(t);var o=function(o,e){t=t.replace(o,e)};return o(/\n/gi,"
    "),o(/\[b\]/gi,""),o(/\[\/b\]/gi,""),o(/\[i\]/gi,""),o(/\[\/i\]/gi,""),o(/\[u\]/gi,""),o(/\[\/u\]/gi,""),o(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'$2'),o(/\[url\](.*?)\[\/url\]/gi,'$1'),o(/\[img\](.*?)\[\/img\]/gi,''),o(/\[color=(.*?)\](.*?)\[\/color\]/gi,'$2'),o(/\[code\](.*?)\[\/code\]/gi,'$1 '),o(/\[quote.*?\](.*?)\[\/quote\]/gi,'$1 '),t};!function i(){o.add("bbcode",function(o){o.on("BeforeSetContent",function(o){o.content=t(o.content)}),o.on("PostProcess",function(o){o.set&&(o.content=t(o.content)),o.get&&(o.content=function(t){t=e.trim(t);var o=function(o,e){t=t.replace(o,e)};return o(/(.*?)<\/a>/gi,"[url=$1]$2[/url]"),o(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/(.*?)<\/span>/gi,"[color=$1]$2[/color]"),o(/(.*?)<\/font>/gi,"[color=$1]$2[/color]"),o(/(.*?)<\/span>/gi,"[size=$1]$2[/size]"),o(/(.*?)<\/font>/gi,"$1"),o(//gi,"[img]$1[/img]"),o(/(.*?)<\/span>/gi,"[code]$1[/code]"),o(/(.*?)<\/span>/gi,"[quote]$1[/quote]"),o(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),o(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),o(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),o(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),o(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),o(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),o(/<\/(strong|b)>/gi,"[/b]"),o(/<(strong|b)>/gi,"[b]"),o(/<\/(em|i)>/gi,"[/i]"),o(/<(em|i)>/gi,"[i]"),o(/<\/u>/gi,"[/u]"),o(/(.*?)<\/span>/gi,"[u]$1[/u]"),o(//gi,"[u]"),o(/]*>/gi,"[quote]"),o(/<\/blockquote>/gi,"[/quote]"),o(/
    /gi,"\n"),o(//gi,"\n"),o(/
    /gi,"\n"),o(/

    /gi,""),o(/<\/p>/gi,"\n"),o(/ |\u00a0/gi," "),o(/"/gi,'"'),o(/</gi,"<"),o(/>/gi,">"),o(/&/gi,"&"),t}(o.content))})})}()}(); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/charmap/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/charmap/plugin.js new file mode 100755 index 0000000..40a97ba --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/charmap/plugin.js @@ -0,0 +1,1706 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function (domGlobals) { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var fireInsertCustomChar = function (editor, chr) { + return editor.fire('insertCustomChar', { chr: chr }); + }; + + var insertChar = function (editor, chr) { + var evtChr = fireInsertCustomChar(editor, chr).chr; + editor.execCommand('mceInsertContent', false, evtChr); + }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var getCharMap = function (editor) { + return editor.getParam('charmap'); + }; + var getCharMapAppend = function (editor) { + return editor.getParam('charmap_append'); + }; + + var noop = function () { + }; + var constant = function (value) { + return function () { + return value; + }; + }; + var never = constant(false); + var always = constant(true); + + var none = function () { + return NONE; + }; + var NONE = function () { + var eq = function (o) { + return o.isNone(); + }; + var call = function (thunk) { + return thunk(); + }; + var id = function (n) { + return n; + }; + var me = { + fold: function (n, _s) { + return n(); + }, + is: never, + isSome: never, + isNone: always, + getOr: id, + getOrThunk: call, + getOrDie: function (msg) { + throw new Error(msg || 'error: getOrDie called on none.'); + }, + getOrNull: constant(null), + getOrUndefined: constant(undefined), + or: id, + orThunk: call, + map: none, + each: noop, + bind: none, + exists: never, + forall: always, + filter: none, + equals: eq, + equals_: eq, + toArray: function () { + return []; + }, + toString: constant('none()') + }; + return me; + }(); + var some = function (a) { + var constant_a = constant(a); + var self = function () { + return me; + }; + var bind = function (f) { + return f(a); + }; + var me = { + fold: function (n, s) { + return s(a); + }, + is: function (v) { + return a === v; + }, + isSome: always, + isNone: never, + getOr: constant_a, + getOrThunk: constant_a, + getOrDie: constant_a, + getOrNull: constant_a, + getOrUndefined: constant_a, + or: self, + orThunk: self, + map: function (f) { + return some(f(a)); + }, + each: function (f) { + f(a); + }, + bind: bind, + exists: bind, + forall: bind, + filter: function (f) { + return f(a) ? me : NONE; + }, + toArray: function () { + return [a]; + }, + toString: function () { + return 'some(' + a + ')'; + }, + equals: function (o) { + return o.is(a); + }, + equals_: function (o, elementEq) { + return o.fold(never, function (b) { + return elementEq(a, b); + }); + } + }; + return me; + }; + var from = function (value) { + return value === null || value === undefined ? NONE : some(value); + }; + var Option = { + some: some, + none: none, + from: from + }; + + var typeOf = function (x) { + var t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) { + return 'array'; + } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) { + return 'string'; + } else { + return t; + } + }; + var isType = function (type) { + return function (value) { + return typeOf(value) === type; + }; + }; + var isArray = isType('array'); + + var nativePush = Array.prototype.push; + var map = function (xs, f) { + var len = xs.length; + var r = new Array(len); + for (var i = 0; i < len; i++) { + var x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + var each = function (xs, f) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + f(x, i); + } + }; + var findUntil = function (xs, pred, until) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i)) { + return Option.some(x); + } else if (until(x, i)) { + break; + } + } + return Option.none(); + }; + var find = function (xs, pred) { + return findUntil(xs, pred, never); + }; + var flatten = function (xs) { + var r = []; + for (var i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + var bind = function (xs, f) { + return flatten(map(xs, f)); + }; + + var isArray$1 = global$1.isArray; + var UserDefined = 'User Defined'; + var getDefaultCharMap = function () { + return [ + { + name: 'Currency', + characters: [ + [ + 36, + 'dollar sign' + ], + [ + 162, + 'cent sign' + ], + [ + 8364, + 'euro sign' + ], + [ + 163, + 'pound sign' + ], + [ + 165, + 'yen sign' + ], + [ + 164, + 'currency sign' + ], + [ + 8352, + 'euro-currency sign' + ], + [ + 8353, + 'colon sign' + ], + [ + 8354, + 'cruzeiro sign' + ], + [ + 8355, + 'french franc sign' + ], + [ + 8356, + 'lira sign' + ], + [ + 8357, + 'mill sign' + ], + [ + 8358, + 'naira sign' + ], + [ + 8359, + 'peseta sign' + ], + [ + 8360, + 'rupee sign' + ], + [ + 8361, + 'won sign' + ], + [ + 8362, + 'new sheqel sign' + ], + [ + 8363, + 'dong sign' + ], + [ + 8365, + 'kip sign' + ], + [ + 8366, + 'tugrik sign' + ], + [ + 8367, + 'drachma sign' + ], + [ + 8368, + 'german penny symbol' + ], + [ + 8369, + 'peso sign' + ], + [ + 8370, + 'guarani sign' + ], + [ + 8371, + 'austral sign' + ], + [ + 8372, + 'hryvnia sign' + ], + [ + 8373, + 'cedi sign' + ], + [ + 8374, + 'livre tournois sign' + ], + [ + 8375, + 'spesmilo sign' + ], + [ + 8376, + 'tenge sign' + ], + [ + 8377, + 'indian rupee sign' + ], + [ + 8378, + 'turkish lira sign' + ], + [ + 8379, + 'nordic mark sign' + ], + [ + 8380, + 'manat sign' + ], + [ + 8381, + 'ruble sign' + ], + [ + 20870, + 'yen character' + ], + [ + 20803, + 'yuan character' + ], + [ + 22291, + 'yuan character, in hong kong and taiwan' + ], + [ + 22278, + 'yen/yuan character variant one' + ] + ] + }, + { + name: 'Text', + characters: [ + [ + 169, + 'copyright sign' + ], + [ + 174, + 'registered sign' + ], + [ + 8482, + 'trade mark sign' + ], + [ + 8240, + 'per mille sign' + ], + [ + 181, + 'micro sign' + ], + [ + 183, + 'middle dot' + ], + [ + 8226, + 'bullet' + ], + [ + 8230, + 'three dot leader' + ], + [ + 8242, + 'minutes / feet' + ], + [ + 8243, + 'seconds / inches' + ], + [ + 167, + 'section sign' + ], + [ + 182, + 'paragraph sign' + ], + [ + 223, + 'sharp s / ess-zed' + ] + ] + }, + { + name: 'Quotations', + characters: [ + [ + 8249, + 'single left-pointing angle quotation mark' + ], + [ + 8250, + 'single right-pointing angle quotation mark' + ], + [ + 171, + 'left pointing guillemet' + ], + [ + 187, + 'right pointing guillemet' + ], + [ + 8216, + 'left single quotation mark' + ], + [ + 8217, + 'right single quotation mark' + ], + [ + 8220, + 'left double quotation mark' + ], + [ + 8221, + 'right double quotation mark' + ], + [ + 8218, + 'single low-9 quotation mark' + ], + [ + 8222, + 'double low-9 quotation mark' + ], + [ + 60, + 'less-than sign' + ], + [ + 62, + 'greater-than sign' + ], + [ + 8804, + 'less-than or equal to' + ], + [ + 8805, + 'greater-than or equal to' + ], + [ + 8211, + 'en dash' + ], + [ + 8212, + 'em dash' + ], + [ + 175, + 'macron' + ], + [ + 8254, + 'overline' + ], + [ + 164, + 'currency sign' + ], + [ + 166, + 'broken bar' + ], + [ + 168, + 'diaeresis' + ], + [ + 161, + 'inverted exclamation mark' + ], + [ + 191, + 'turned question mark' + ], + [ + 710, + 'circumflex accent' + ], + [ + 732, + 'small tilde' + ], + [ + 176, + 'degree sign' + ], + [ + 8722, + 'minus sign' + ], + [ + 177, + 'plus-minus sign' + ], + [ + 247, + 'division sign' + ], + [ + 8260, + 'fraction slash' + ], + [ + 215, + 'multiplication sign' + ], + [ + 185, + 'superscript one' + ], + [ + 178, + 'superscript two' + ], + [ + 179, + 'superscript three' + ], + [ + 188, + 'fraction one quarter' + ], + [ + 189, + 'fraction one half' + ], + [ + 190, + 'fraction three quarters' + ] + ] + }, + { + name: 'Mathematical', + characters: [ + [ + 402, + 'function / florin' + ], + [ + 8747, + 'integral' + ], + [ + 8721, + 'n-ary sumation' + ], + [ + 8734, + 'infinity' + ], + [ + 8730, + 'square root' + ], + [ + 8764, + 'similar to' + ], + [ + 8773, + 'approximately equal to' + ], + [ + 8776, + 'almost equal to' + ], + [ + 8800, + 'not equal to' + ], + [ + 8801, + 'identical to' + ], + [ + 8712, + 'element of' + ], + [ + 8713, + 'not an element of' + ], + [ + 8715, + 'contains as member' + ], + [ + 8719, + 'n-ary product' + ], + [ + 8743, + 'logical and' + ], + [ + 8744, + 'logical or' + ], + [ + 172, + 'not sign' + ], + [ + 8745, + 'intersection' + ], + [ + 8746, + 'union' + ], + [ + 8706, + 'partial differential' + ], + [ + 8704, + 'for all' + ], + [ + 8707, + 'there exists' + ], + [ + 8709, + 'diameter' + ], + [ + 8711, + 'backward difference' + ], + [ + 8727, + 'asterisk operator' + ], + [ + 8733, + 'proportional to' + ], + [ + 8736, + 'angle' + ] + ] + }, + { + name: 'Extended Latin', + characters: [ + [ + 192, + 'A - grave' + ], + [ + 193, + 'A - acute' + ], + [ + 194, + 'A - circumflex' + ], + [ + 195, + 'A - tilde' + ], + [ + 196, + 'A - diaeresis' + ], + [ + 197, + 'A - ring above' + ], + [ + 256, + 'A - macron' + ], + [ + 198, + 'ligature AE' + ], + [ + 199, + 'C - cedilla' + ], + [ + 200, + 'E - grave' + ], + [ + 201, + 'E - acute' + ], + [ + 202, + 'E - circumflex' + ], + [ + 203, + 'E - diaeresis' + ], + [ + 274, + 'E - macron' + ], + [ + 204, + 'I - grave' + ], + [ + 205, + 'I - acute' + ], + [ + 206, + 'I - circumflex' + ], + [ + 207, + 'I - diaeresis' + ], + [ + 298, + 'I - macron' + ], + [ + 208, + 'ETH' + ], + [ + 209, + 'N - tilde' + ], + [ + 210, + 'O - grave' + ], + [ + 211, + 'O - acute' + ], + [ + 212, + 'O - circumflex' + ], + [ + 213, + 'O - tilde' + ], + [ + 214, + 'O - diaeresis' + ], + [ + 216, + 'O - slash' + ], + [ + 332, + 'O - macron' + ], + [ + 338, + 'ligature OE' + ], + [ + 352, + 'S - caron' + ], + [ + 217, + 'U - grave' + ], + [ + 218, + 'U - acute' + ], + [ + 219, + 'U - circumflex' + ], + [ + 220, + 'U - diaeresis' + ], + [ + 362, + 'U - macron' + ], + [ + 221, + 'Y - acute' + ], + [ + 376, + 'Y - diaeresis' + ], + [ + 562, + 'Y - macron' + ], + [ + 222, + 'THORN' + ], + [ + 224, + 'a - grave' + ], + [ + 225, + 'a - acute' + ], + [ + 226, + 'a - circumflex' + ], + [ + 227, + 'a - tilde' + ], + [ + 228, + 'a - diaeresis' + ], + [ + 229, + 'a - ring above' + ], + [ + 257, + 'a - macron' + ], + [ + 230, + 'ligature ae' + ], + [ + 231, + 'c - cedilla' + ], + [ + 232, + 'e - grave' + ], + [ + 233, + 'e - acute' + ], + [ + 234, + 'e - circumflex' + ], + [ + 235, + 'e - diaeresis' + ], + [ + 275, + 'e - macron' + ], + [ + 236, + 'i - grave' + ], + [ + 237, + 'i - acute' + ], + [ + 238, + 'i - circumflex' + ], + [ + 239, + 'i - diaeresis' + ], + [ + 299, + 'i - macron' + ], + [ + 240, + 'eth' + ], + [ + 241, + 'n - tilde' + ], + [ + 242, + 'o - grave' + ], + [ + 243, + 'o - acute' + ], + [ + 244, + 'o - circumflex' + ], + [ + 245, + 'o - tilde' + ], + [ + 246, + 'o - diaeresis' + ], + [ + 248, + 'o slash' + ], + [ + 333, + 'o macron' + ], + [ + 339, + 'ligature oe' + ], + [ + 353, + 's - caron' + ], + [ + 249, + 'u - grave' + ], + [ + 250, + 'u - acute' + ], + [ + 251, + 'u - circumflex' + ], + [ + 252, + 'u - diaeresis' + ], + [ + 363, + 'u - macron' + ], + [ + 253, + 'y - acute' + ], + [ + 254, + 'thorn' + ], + [ + 255, + 'y - diaeresis' + ], + [ + 563, + 'y - macron' + ], + [ + 913, + 'Alpha' + ], + [ + 914, + 'Beta' + ], + [ + 915, + 'Gamma' + ], + [ + 916, + 'Delta' + ], + [ + 917, + 'Epsilon' + ], + [ + 918, + 'Zeta' + ], + [ + 919, + 'Eta' + ], + [ + 920, + 'Theta' + ], + [ + 921, + 'Iota' + ], + [ + 922, + 'Kappa' + ], + [ + 923, + 'Lambda' + ], + [ + 924, + 'Mu' + ], + [ + 925, + 'Nu' + ], + [ + 926, + 'Xi' + ], + [ + 927, + 'Omicron' + ], + [ + 928, + 'Pi' + ], + [ + 929, + 'Rho' + ], + [ + 931, + 'Sigma' + ], + [ + 932, + 'Tau' + ], + [ + 933, + 'Upsilon' + ], + [ + 934, + 'Phi' + ], + [ + 935, + 'Chi' + ], + [ + 936, + 'Psi' + ], + [ + 937, + 'Omega' + ], + [ + 945, + 'alpha' + ], + [ + 946, + 'beta' + ], + [ + 947, + 'gamma' + ], + [ + 948, + 'delta' + ], + [ + 949, + 'epsilon' + ], + [ + 950, + 'zeta' + ], + [ + 951, + 'eta' + ], + [ + 952, + 'theta' + ], + [ + 953, + 'iota' + ], + [ + 954, + 'kappa' + ], + [ + 955, + 'lambda' + ], + [ + 956, + 'mu' + ], + [ + 957, + 'nu' + ], + [ + 958, + 'xi' + ], + [ + 959, + 'omicron' + ], + [ + 960, + 'pi' + ], + [ + 961, + 'rho' + ], + [ + 962, + 'final sigma' + ], + [ + 963, + 'sigma' + ], + [ + 964, + 'tau' + ], + [ + 965, + 'upsilon' + ], + [ + 966, + 'phi' + ], + [ + 967, + 'chi' + ], + [ + 968, + 'psi' + ], + [ + 969, + 'omega' + ] + ] + }, + { + name: 'Symbols', + characters: [ + [ + 8501, + 'alef symbol' + ], + [ + 982, + 'pi symbol' + ], + [ + 8476, + 'real part symbol' + ], + [ + 978, + 'upsilon - hook symbol' + ], + [ + 8472, + 'Weierstrass p' + ], + [ + 8465, + 'imaginary part' + ] + ] + }, + { + name: 'Arrows', + characters: [ + [ + 8592, + 'leftwards arrow' + ], + [ + 8593, + 'upwards arrow' + ], + [ + 8594, + 'rightwards arrow' + ], + [ + 8595, + 'downwards arrow' + ], + [ + 8596, + 'left right arrow' + ], + [ + 8629, + 'carriage return' + ], + [ + 8656, + 'leftwards double arrow' + ], + [ + 8657, + 'upwards double arrow' + ], + [ + 8658, + 'rightwards double arrow' + ], + [ + 8659, + 'downwards double arrow' + ], + [ + 8660, + 'left right double arrow' + ], + [ + 8756, + 'therefore' + ], + [ + 8834, + 'subset of' + ], + [ + 8835, + 'superset of' + ], + [ + 8836, + 'not a subset of' + ], + [ + 8838, + 'subset of or equal to' + ], + [ + 8839, + 'superset of or equal to' + ], + [ + 8853, + 'circled plus' + ], + [ + 8855, + 'circled times' + ], + [ + 8869, + 'perpendicular' + ], + [ + 8901, + 'dot operator' + ], + [ + 8968, + 'left ceiling' + ], + [ + 8969, + 'right ceiling' + ], + [ + 8970, + 'left floor' + ], + [ + 8971, + 'right floor' + ], + [ + 9001, + 'left-pointing angle bracket' + ], + [ + 9002, + 'right-pointing angle bracket' + ], + [ + 9674, + 'lozenge' + ], + [ + 9824, + 'black spade suit' + ], + [ + 9827, + 'black club suit' + ], + [ + 9829, + 'black heart suit' + ], + [ + 9830, + 'black diamond suit' + ], + [ + 8194, + 'en space' + ], + [ + 8195, + 'em space' + ], + [ + 8201, + 'thin space' + ], + [ + 8204, + 'zero width non-joiner' + ], + [ + 8205, + 'zero width joiner' + ], + [ + 8206, + 'left-to-right mark' + ], + [ + 8207, + 'right-to-left mark' + ] + ] + } + ]; + }; + var charmapFilter = function (charmap) { + return global$1.grep(charmap, function (item) { + return isArray$1(item) && item.length === 2; + }); + }; + var getCharsFromSetting = function (settingValue) { + if (isArray$1(settingValue)) { + return [].concat(charmapFilter(settingValue)); + } + if (typeof settingValue === 'function') { + return settingValue(); + } + return []; + }; + var extendCharMap = function (editor, charmap) { + var userCharMap = getCharMap(editor); + if (userCharMap) { + charmap = [{ + name: UserDefined, + characters: getCharsFromSetting(userCharMap) + }]; + } + var userCharMapAppend = getCharMapAppend(editor); + if (userCharMapAppend) { + var userDefinedGroup = global$1.grep(charmap, function (cg) { + return cg.name === UserDefined; + }); + if (userDefinedGroup.length) { + userDefinedGroup[0].characters = [].concat(userDefinedGroup[0].characters).concat(getCharsFromSetting(userCharMapAppend)); + return charmap; + } + return [].concat(charmap).concat({ + name: UserDefined, + characters: getCharsFromSetting(userCharMapAppend) + }); + } + return charmap; + }; + var getCharMap$1 = function (editor) { + var groups = extendCharMap(editor, getDefaultCharMap()); + return groups.length > 1 ? [{ + name: 'All', + characters: bind(groups, function (g) { + return g.characters; + }) + }].concat(groups) : groups; + }; + + var get = function (editor) { + var getCharMap = function () { + return getCharMap$1(editor); + }; + var insertChar$1 = function (chr) { + insertChar(editor, chr); + }; + return { + getCharMap: getCharMap, + insertChar: insertChar$1 + }; + }; + + var Cell = function (initial) { + var value = initial; + var get = function () { + return value; + }; + var set = function (v) { + value = v; + }; + return { + get: get, + set: set + }; + }; + + var last = function (fn, rate) { + var timer = null; + var cancel = function () { + if (timer !== null) { + domGlobals.clearTimeout(timer); + timer = null; + } + }; + var throttle = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (timer !== null) { + domGlobals.clearTimeout(timer); + } + timer = domGlobals.setTimeout(function () { + fn.apply(null, args); + timer = null; + }, rate); + }; + return { + cancel: cancel, + throttle: throttle + }; + }; + + var nativeFromCodePoint = String.fromCodePoint; + var contains = function (str, substr) { + return str.indexOf(substr) !== -1; + }; + var fromCodePoint = function () { + var codePoints = []; + for (var _i = 0; _i < arguments.length; _i++) { + codePoints[_i] = arguments[_i]; + } + if (nativeFromCodePoint) { + return nativeFromCodePoint.apply(void 0, codePoints); + } else { + var codeUnits = []; + var codeLen = 0; + var result = ''; + for (var index = 0, len = codePoints.length; index !== len; ++index) { + var codePoint = +codePoints[index]; + if (!(codePoint < 1114111 && codePoint >>> 0 === codePoint)) { + throw RangeError('Invalid code point: ' + codePoint); + } + if (codePoint <= 65535) { + codeLen = codeUnits.push(codePoint); + } else { + codePoint -= 65536; + codeLen = codeUnits.push((codePoint >> 10) + 55296, codePoint % 1024 + 56320); + } + if (codeLen >= 16383) { + result += String.fromCharCode.apply(null, codeUnits); + codeUnits.length = 0; + } + } + return result + String.fromCharCode.apply(null, codeUnits); + } + }; + + var charMatches = function (charCode, name, lowerCasePattern) { + if (contains(fromCodePoint(charCode).toLowerCase(), lowerCasePattern)) { + return true; + } else { + return contains(name.toLowerCase(), lowerCasePattern) || contains(name.toLowerCase().replace(/\s+/g, ''), lowerCasePattern); + } + }; + var scan = function (group, pattern) { + var matches = []; + var lowerCasePattern = pattern.toLowerCase(); + each(group.characters, function (g) { + if (charMatches(g[0], g[1], lowerCasePattern)) { + matches.push(g); + } + }); + return map(matches, function (m) { + return { + text: m[1], + value: fromCodePoint(m[0]), + icon: fromCodePoint(m[0]) + }; + }); + }; + + var patternName = 'pattern'; + var open = function (editor, charMap) { + var makeGroupItems = function () { + return [ + { + label: 'Search', + type: 'input', + name: patternName + }, + { + type: 'collection', + name: 'results' + } + ]; + }; + var makeTabs = function () { + return map(charMap, function (charGroup) { + return { + title: charGroup.name, + name: charGroup.name, + items: makeGroupItems() + }; + }); + }; + var makePanel = function () { + return { + type: 'panel', + items: makeGroupItems() + }; + }; + var makeTabPanel = function () { + return { + type: 'tabpanel', + tabs: makeTabs() + }; + }; + var currentTab = charMap.length === 1 ? Cell(UserDefined) : Cell('All'); + var scanAndSet = function (dialogApi, pattern) { + find(charMap, function (group) { + return group.name === currentTab.get(); + }).each(function (f) { + var items = scan(f, pattern); + dialogApi.setData({ results: items }); + }); + }; + var SEARCH_DELAY = 40; + var updateFilter = last(function (dialogApi) { + var pattern = dialogApi.getData().pattern; + scanAndSet(dialogApi, pattern); + }, SEARCH_DELAY); + var body = charMap.length === 1 ? makePanel() : makeTabPanel(); + var initialData = { + pattern: '', + results: scan(charMap[0], '') + }; + var bridgeSpec = { + title: 'Special Character', + size: 'normal', + body: body, + buttons: [{ + type: 'cancel', + name: 'close', + text: 'Close', + primary: true + }], + initialData: initialData, + onAction: function (api, details) { + if (details.name === 'results') { + insertChar(editor, details.value); + api.close(); + } + }, + onTabChange: function (dialogApi, details) { + currentTab.set(details.newTabName); + updateFilter.throttle(dialogApi); + }, + onChange: function (dialogApi, changeData) { + if (changeData.name === patternName) { + updateFilter.throttle(dialogApi); + } + } + }; + var dialogApi = editor.windowManager.open(bridgeSpec); + dialogApi.focus(patternName); + }; + + var register = function (editor, charMap) { + editor.addCommand('mceShowCharmap', function () { + open(editor, charMap); + }); + }; + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Promise'); + + var init = function (editor, all) { + editor.ui.registry.addAutocompleter('charmap', { + ch: ':', + columns: 'auto', + minChars: 2, + fetch: function (pattern, _maxResults) { + return new global$2(function (resolve, _reject) { + resolve(scan(all, pattern)); + }); + }, + onAction: function (autocompleteApi, rng, value) { + editor.selection.setRng(rng); + editor.insertContent(value); + autocompleteApi.hide(); + } + }); + }; + + var register$1 = function (editor) { + editor.ui.registry.addButton('charmap', { + icon: 'insert-character', + tooltip: 'Special character', + onAction: function () { + return editor.execCommand('mceShowCharmap'); + } + }); + editor.ui.registry.addMenuItem('charmap', { + icon: 'insert-character', + text: 'Special character...', + onAction: function () { + return editor.execCommand('mceShowCharmap'); + } + }); + }; + + function Plugin () { + global.add('charmap', function (editor) { + var charMap = getCharMap$1(editor); + register(editor, charMap); + register$1(editor); + init(editor, charMap[0]); + return get(editor); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/charmap/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/charmap/plugin.min.js new file mode 100755 index 0000000..4066994 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/charmap/plugin.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.4.2 (2020-08-17) + */ +!function(s){"use strict";var e,n,r,t,a=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=function(e,n){var r,t=(r=n,e.fire("insertCustomChar",{chr:r}).chr);e.execCommand("mceInsertContent",!1,t)},i=tinymce.util.Tools.resolve("tinymce.util.Tools"),o=function(e){return function(){return e}},c=o(!1),u=o(!0),g=function(){return m},m=(e=function(e){return e.isNone()},{fold:function(e,n){return e()},is:c,isSome:c,isNone:u,getOr:r=function(e){return e},getOrThunk:n=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:o(null),getOrUndefined:o(undefined),or:r,orThunk:n,map:g,each:function(){},bind:g,exists:c,forall:u,filter:g,equals:e,equals_:e,toArray:function(){return[]},toString:o("none()")}),f=function(r){var e=o(r),n=function(){return a},t=function(e){return e(r)},a={fold:function(e,n){return n(r)},is:function(e){return r===e},isSome:u,isNone:c,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:n,orThunk:n,map:function(e){return f(e(r))},each:function(e){e(r)},bind:t,exists:t,forall:t,filter:function(e){return e(r)?a:m},toArray:function(){return[r]},toString:function(){return"some("+r+")"},equals:function(e){return e.is(r)},equals_:function(e,n){return e.fold(c,function(e){return n(r,e)})}};return a},h={some:f,none:g,from:function(e){return null===e||e===undefined?m:f(e)}},d=(t="array",function(e){return r=typeof(n=e),(null===n?"null":"object"==r&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==r&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":r)===t;var n,r}),p=Array.prototype.push,y=function(e,n){for(var r=e.length,t=new Array(r),a=0;a>>0===o))throw RangeError("Invalid code point: "+o);16383<=(o<=65535?r.push(o):(o-=65536,r.push(55296+(o>>10),o%1024+56320)))&&(t+=String.fromCharCode.apply(null,r),r.length=0)}return t+String.fromCharCode.apply(null,r)},T=function(e,n){var a=[],i=n.toLowerCase();return function(e,n){for(var r=0,t=e.length;r>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/, + 'number': /(?:\b0x(?:[\da-f]+\.?[\da-f]*|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i + }); + Prism.languages.insertBefore('c', 'string', { + 'macro': { + pattern: /(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im, + lookbehind: true, + alias: 'property', + inside: { + 'string': { + pattern: /(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/, + lookbehind: true + }, + 'directive': { + pattern: /(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/, + lookbehind: true, + alias: 'keyword' + } + } + }, + 'constant': /\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/ + }); + delete Prism.languages.c['boolean']; + }, + {} + ], + 2: [ + function (require, module, exports) { + Prism.languages.clike = { + 'comment': [ + { + pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, + lookbehind: true + }, + { + pattern: /(^|[^\\:])\/\/.*/, + lookbehind: true, + greedy: true + } + ], + 'string': { + pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: true + }, + 'class-name': { + pattern: /(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i, + lookbehind: true, + inside: { 'punctuation': /[.\\]/ } + }, + 'keyword': /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, + 'boolean': /\b(?:true|false)\b/, + 'function': /\w+(?=\()/, + 'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, + 'operator': /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/, + 'punctuation': /[{}[\];(),.:]/ + }; + }, + {} + ], + 3: [ + function (require, module, exports) { + (function (global) { + var _self = typeof window !== 'undefined' ? window : typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ? self : {}; + var Prism = function (_self) { + var lang = /\blang(?:uage)?-([\w-]+)\b/i; + var uniqueId = 0; + var _ = { + manual: _self.Prism && _self.Prism.manual, + disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, + util: { + encode: function (tokens) { + if (tokens instanceof Token) { + return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); + } else if (Array.isArray(tokens)) { + return tokens.map(_.util.encode); + } else { + return tokens.replace(/&/g, '&').replace(/ text.length) { + return; + } + if (str instanceof Token) { + continue; + } + if (greedy && i != strarr.length - 1) { + pattern.lastIndex = pos; + var match = pattern.exec(text); + if (!match) { + break; + } + var from = match.index + (lookbehind && match[1] ? match[1].length : 0), to = match.index + match[0].length, k = i, p = pos; + for (var len = strarr.length; k < len && (p < to || !strarr[k].type && !strarr[k - 1].greedy); ++k) { + p += strarr[k].length; + if (from >= p) { + ++i; + pos = p; + } + } + if (strarr[i] instanceof Token) { + continue; + } + delNum = k - i; + str = text.slice(pos, p); + match.index -= pos; + } else { + pattern.lastIndex = 0; + var match = pattern.exec(str), delNum = 1; + } + if (!match) { + if (oneshot) { + break; + } + continue; + } + if (lookbehind) { + lookbehindLength = match[1] ? match[1].length : 0; + } + var from = match.index + lookbehindLength, match = match[0].slice(lookbehindLength), to = from + match.length, before = str.slice(0, from), after = str.slice(to); + var args = [ + i, + delNum + ]; + if (before) { + ++i; + pos += before.length; + args.push(before); + } + var wrapped = new Token(token, inside ? _.tokenize(match, inside) : match, alias, match, greedy); + args.push(wrapped); + if (after) { + args.push(after); + } + Array.prototype.splice.apply(strarr, args); + if (delNum != 1) + _.matchGrammar(text, strarr, grammar, i, pos, true, token + ',' + j); + if (oneshot) + break; + } + } + } + }, + tokenize: function (text, grammar) { + var strarr = [text]; + var rest = grammar.rest; + if (rest) { + for (var token in rest) { + grammar[token] = rest[token]; + } + delete grammar.rest; + } + _.matchGrammar(text, strarr, grammar, 0, 0, false); + return strarr; + }, + hooks: { + all: {}, + add: function (name, callback) { + var hooks = _.hooks.all; + hooks[name] = hooks[name] || []; + hooks[name].push(callback); + }, + run: function (name, env) { + var callbacks = _.hooks.all[name]; + if (!callbacks || !callbacks.length) { + return; + } + for (var i = 0, callback; callback = callbacks[i++];) { + callback(env); + } + } + }, + Token: Token + }; + _self.Prism = _; + function Token(type, content, alias, matchedStr, greedy) { + this.type = type; + this.content = content; + this.alias = alias; + this.length = (matchedStr || '').length | 0; + this.greedy = !!greedy; + } + Token.stringify = function (o, language) { + if (typeof o == 'string') { + return o; + } + if (Array.isArray(o)) { + return o.map(function (element) { + return Token.stringify(element, language); + }).join(''); + } + var env = { + type: o.type, + content: Token.stringify(o.content, language), + tag: 'span', + classes: [ + 'token', + o.type + ], + attributes: {}, + language: language + }; + if (o.alias) { + var aliases = Array.isArray(o.alias) ? o.alias : [o.alias]; + Array.prototype.push.apply(env.classes, aliases); + } + _.hooks.run('wrap', env); + var attributes = Object.keys(env.attributes).map(function (name) { + return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"'; + }).join(' '); + return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + ''; + }; + if (!_self.document) { + if (!_self.addEventListener) { + return _; + } + if (!_.disableWorkerMessageHandler) { + _self.addEventListener('message', function (evt) { + var message = JSON.parse(evt.data), lang = message.language, code = message.code, immediateClose = message.immediateClose; + _self.postMessage(_.highlight(code, _.languages[lang], lang)); + if (immediateClose) { + _self.close(); + } + }, false); + } + return _; + } + var script = _.util.currentScript(); + if (script) { + _.filename = script.src; + if (script.hasAttribute('data-manual')) { + _.manual = true; + } + } + if (!_.manual) { + var highlightAutomaticallyCallback = function () { + if (!_.manual) { + _.highlightAll(); + } + }; + var readyState = document.readyState; + if (readyState === 'loading' || readyState === 'interactive' && script && script.defer) { + document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback); + } else { + if (window.requestAnimationFrame) { + window.requestAnimationFrame(highlightAutomaticallyCallback); + } else { + window.setTimeout(highlightAutomaticallyCallback, 16); + } + } + } + return _; + }(_self); + if (typeof module !== 'undefined' && module.exports) { + module.exports = Prism; + } + if (typeof global !== 'undefined') { + global.Prism = Prism; + } + }.call(this, typeof global$2 !== 'undefined' ? global$2 : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : {})); + }, + {} + ], + 4: [ + function (require, module, exports) { + Prism.languages.cpp = Prism.languages.extend('c', { + 'class-name': { + pattern: /(\b(?:class|enum|struct)\s+)\w+/, + lookbehind: true + }, + 'keyword': /\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/, + 'number': { + pattern: /(?:\b0b[01']+|\b0x(?:[\da-f']+\.?[\da-f']*|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+\.?[\d']*|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]*/i, + greedy: true + }, + 'operator': />>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/, + 'boolean': /\b(?:true|false)\b/ + }); + Prism.languages.insertBefore('cpp', 'string', { + 'raw-string': { + pattern: /R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/, + alias: 'string', + greedy: true + } + }); + }, + {} + ], + 5: [ + function (require, module, exports) { + Prism.languages.csharp = Prism.languages.extend('clike', { + 'keyword': /\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/, + 'string': [ + { + pattern: /@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/, + greedy: true + }, + { + pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/, + greedy: true + } + ], + 'class-name': [ + { + pattern: /\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/, + inside: { punctuation: /\./ } + }, + { + pattern: /(\[)[A-Z]\w*(?:\.\w+)*\b/, + lookbehind: true, + inside: { punctuation: /\./ } + }, + { + pattern: /(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/, + lookbehind: true, + inside: { punctuation: /\./ } + }, + { + pattern: /((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/, + lookbehind: true, + inside: { punctuation: /\./ } + } + ], + 'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i, + 'operator': />>=?|<<=?|[-=]>|([-+&|?])\1|~|[-+*/%&|^!=<>]=?/, + 'punctuation': /\?\.?|::|[{}[\];(),.:]/ + }); + Prism.languages.insertBefore('csharp', 'class-name', { + 'generic-method': { + pattern: /\w+\s*<[^>\r\n]+?>\s*(?=\()/, + inside: { + function: /^\w+/, + 'class-name': { + pattern: /\b[A-Z]\w*(?:\.\w+)*\b/, + inside: { punctuation: /\./ } + }, + keyword: Prism.languages.csharp.keyword, + punctuation: /[<>(),.:]/ + } + }, + 'preprocessor': { + pattern: /(^\s*)#.*/m, + lookbehind: true, + alias: 'property', + inside: { + 'directive': { + pattern: /(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/, + lookbehind: true, + alias: 'keyword' + } + } + } + }); + Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp; + }, + {} + ], + 6: [ + function (require, module, exports) { + (function (Prism) { + var string = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/; + Prism.languages.css = { + 'comment': /\/\*[\s\S]*?\*\//, + 'atrule': { + pattern: /@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/, + inside: { 'rule': /@[\w-]+/ } + }, + 'url': { + pattern: RegExp('url\\((?:' + string.source + '|[^\n\r()]*)\\)', 'i'), + inside: { + 'function': /^url/i, + 'punctuation': /^\(|\)$/ + } + }, + 'selector': RegExp('[^{}\\s](?:[^{};"\']|' + string.source + ')*?(?=\\s*\\{)'), + 'string': { + pattern: string, + greedy: true + }, + 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, + 'important': /!important\b/i, + 'function': /[-a-z0-9]+(?=\()/i, + 'punctuation': /[(){};:,]/ + }; + Prism.languages.css['atrule'].inside.rest = Prism.languages.css; + var markup = Prism.languages.markup; + if (markup) { + markup.tag.addInlined('style', 'css'); + Prism.languages.insertBefore('inside', 'attr-value', { + 'style-attr': { + pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, + inside: { + 'attr-name': { + pattern: /^\s*style/i, + inside: markup.tag.inside + }, + 'punctuation': /^\s*=\s*['"]|['"]\s*$/, + 'attr-value': { + pattern: /.+/i, + inside: Prism.languages.css + } + }, + alias: 'language-css' + } + }, markup.tag); + } + }(Prism)); + }, + {} + ], + 7: [ + function (require, module, exports) { + (function (Prism) { + var keywords = /\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|null|open|opens|package|private|protected|provides|public|requires|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/; + var className = /\b[A-Z](?:\w*[a-z]\w*)?\b/; + Prism.languages.java = Prism.languages.extend('clike', { + 'class-name': [ + className, + /\b[A-Z]\w*(?=\s+\w+\s*[;,=())])/ + ], + 'keyword': keywords, + 'function': [ + Prism.languages.clike.function, + { + pattern: /(\:\:)[a-z_]\w*/, + lookbehind: true + } + ], + 'number': /\b0b[01][01_]*L?\b|\b0x[\da-f_]*\.?[\da-f_p+-]+\b|(?:\b\d[\d_]*\.?[\d_]*|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i, + 'operator': { + pattern: /(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m, + lookbehind: true + } + }); + Prism.languages.insertBefore('java', 'string', { + 'triple-quoted-string': { + pattern: /"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/, + greedy: true, + alias: 'string' + } + }); + Prism.languages.insertBefore('java', 'class-name', { + 'annotation': { + alias: 'punctuation', + pattern: /(^|[^.])@\w+/, + lookbehind: true + }, + 'namespace': { + pattern: /(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)[a-z]\w*(?:\.[a-z]\w*)+/, + lookbehind: true, + inside: { 'punctuation': /\./ } + }, + 'generics': { + pattern: /<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/, + inside: { + 'class-name': className, + 'keyword': keywords, + 'punctuation': /[<>(),.:]/, + 'operator': /[?&|]/ + } + } + }); + }(Prism)); + }, + {} + ], + 8: [ + function (require, module, exports) { + Prism.languages.javascript = Prism.languages.extend('clike', { + 'class-name': [ + Prism.languages.clike['class-name'], + { + pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, + lookbehind: true + } + ], + 'keyword': [ + { + pattern: /((?:^|})\s*)(?:catch|finally)\b/, + lookbehind: true + }, + { + pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, + lookbehind: true + } + ], + 'number': /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/, + 'function': /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, + 'operator': /--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/ + }); + Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/; + Prism.languages.insertBefore('javascript', 'keyword', { + 'regex': { + pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*[\s\S]*?\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/, + lookbehind: true, + greedy: true + }, + 'function-variable': { + pattern: /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/, + alias: 'function' + }, + 'parameter': [ + { + pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i, + inside: Prism.languages.javascript + }, + { + pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/, + lookbehind: true, + inside: Prism.languages.javascript + } + ], + 'constant': /\b[A-Z](?:[A-Z_]|\dx?)*\b/ + }); + Prism.languages.insertBefore('javascript', 'string', { + 'template-string': { + pattern: /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/, + greedy: true, + inside: { + 'template-punctuation': { + pattern: /^`|`$/, + alias: 'string' + }, + 'interpolation': { + pattern: /((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/, + lookbehind: true, + inside: { + 'interpolation-punctuation': { + pattern: /^\${|}$/, + alias: 'punctuation' + }, + rest: Prism.languages.javascript + } + }, + 'string': /[\s\S]+/ + } + } + }); + if (Prism.languages.markup) { + Prism.languages.markup.tag.addInlined('script', 'javascript'); + } + Prism.languages.js = Prism.languages.javascript; + }, + {} + ], + 9: [ + function (require, module, exports) { + (function (Prism) { + function getPlaceholder(language, index) { + return '___' + language.toUpperCase() + index + '___'; + } + Object.defineProperties(Prism.languages['markup-templating'] = {}, { + buildPlaceholders: { + value: function (env, language, placeholderPattern, replaceFilter) { + if (env.language !== language) { + return; + } + var tokenStack = env.tokenStack = []; + env.code = env.code.replace(placeholderPattern, function (match) { + if (typeof replaceFilter === 'function' && !replaceFilter(match)) { + return match; + } + var i = tokenStack.length; + var placeholder; + while (env.code.indexOf(placeholder = getPlaceholder(language, i)) !== -1) + ++i; + tokenStack[i] = match; + return placeholder; + }); + env.grammar = Prism.languages.markup; + } + }, + tokenizePlaceholders: { + value: function (env, language) { + if (env.language !== language || !env.tokenStack) { + return; + } + env.grammar = Prism.languages[language]; + var j = 0; + var keys = Object.keys(env.tokenStack); + function walkTokens(tokens) { + for (var i = 0; i < tokens.length; i++) { + if (j >= keys.length) { + break; + } + var token = tokens[i]; + if (typeof token === 'string' || token.content && typeof token.content === 'string') { + var k = keys[j]; + var t = env.tokenStack[k]; + var s = typeof token === 'string' ? token : token.content; + var placeholder = getPlaceholder(language, k); + var index = s.indexOf(placeholder); + if (index > -1) { + ++j; + var before = s.substring(0, index); + var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar), 'language-' + language, t); + var after = s.substring(index + placeholder.length); + var replacement = []; + if (before) { + replacement.push.apply(replacement, walkTokens([before])); + } + replacement.push(middle); + if (after) { + replacement.push.apply(replacement, walkTokens([after])); + } + if (typeof token === 'string') { + tokens.splice.apply(tokens, [ + i, + 1 + ].concat(replacement)); + } else { + token.content = replacement; + } + } + } else if (token.content) { + walkTokens(token.content); + } + } + return tokens; + } + walkTokens(env.tokens); + } + } + }); + }(Prism)); + }, + {} + ], + 10: [ + function (require, module, exports) { + Prism.languages.markup = { + 'comment': //, + 'prolog': /<\?[\s\S]+?\?>/, + 'doctype': { + pattern: /"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i, + greedy: true + }, + 'cdata': //i, + 'tag': { + pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i, + greedy: true, + inside: { + 'tag': { + pattern: /^<\/?[^\s>\/]+/i, + inside: { + 'punctuation': /^<\/?/, + 'namespace': /^[^\s>\/:]+:/ + } + }, + 'attr-value': { + pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i, + inside: { + 'punctuation': [ + /^=/, + { + pattern: /^(\s*)["']|["']$/, + lookbehind: true + } + ] + } + }, + 'punctuation': /\/?>/, + 'attr-name': { + pattern: /[^\s>\/]+/, + inside: { 'namespace': /^[^\s>\/:]+:/ } + } + } + }, + 'entity': /&#?[\da-z]{1,8};/i + }; + Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = Prism.languages.markup['entity']; + Prism.hooks.add('wrap', function (env) { + if (env.type === 'entity') { + env.attributes['title'] = env.content.replace(/&/, '&'); + } + }); + Object.defineProperty(Prism.languages.markup.tag, 'addInlined', { + value: function addInlined(tagName, lang) { + var includedCdataInside = {}; + includedCdataInside['language-' + lang] = { + pattern: /(^$)/i, + lookbehind: true, + inside: Prism.languages[lang] + }; + includedCdataInside['cdata'] = /^$/i; + var inside = { + 'included-cdata': { + pattern: //i, + inside: includedCdataInside + } + }; + inside['language-' + lang] = { + pattern: /[\s\S]+/, + inside: Prism.languages[lang] + }; + var def = {}; + def[tagName] = { + pattern: RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g, tagName), 'i'), + lookbehind: true, + greedy: true, + inside: inside + }; + Prism.languages.insertBefore('markup', 'cdata', def); + } + }); + Prism.languages.xml = Prism.languages.extend('markup', {}); + Prism.languages.html = Prism.languages.markup; + Prism.languages.mathml = Prism.languages.markup; + Prism.languages.svg = Prism.languages.markup; + }, + {} + ], + 11: [ + function (require, module, exports) { + (function (Prism) { + Prism.languages.php = Prism.languages.extend('clike', { + 'keyword': /\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i, + 'boolean': { + pattern: /\b(?:false|true)\b/i, + alias: 'constant' + }, + 'constant': [ + /\b[A-Z_][A-Z0-9_]*\b/, + /\b(?:null)\b/i + ], + 'comment': { + pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/, + lookbehind: true + } + }); + Prism.languages.insertBefore('php', 'string', { + 'shell-comment': { + pattern: /(^|[^\\])#.*/, + lookbehind: true, + alias: 'comment' + } + }); + Prism.languages.insertBefore('php', 'comment', { + 'delimiter': { + pattern: /\?>$|^<\?(?:php(?=\s)|=)?/i, + alias: 'important' + } + }); + Prism.languages.insertBefore('php', 'keyword', { + 'variable': /\$+(?:\w+\b|(?={))/i, + 'package': { + pattern: /(\\|namespace\s+|use\s+)[\w\\]+/, + lookbehind: true, + inside: { punctuation: /\\/ } + } + }); + Prism.languages.insertBefore('php', 'operator', { + 'property': { + pattern: /(->)[\w]+/, + lookbehind: true + } + }); + var string_interpolation = { + pattern: /{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/, + lookbehind: true, + inside: Prism.languages.php + }; + Prism.languages.insertBefore('php', 'string', { + 'nowdoc-string': { + pattern: /<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/, + greedy: true, + alias: 'string', + inside: { + 'delimiter': { + pattern: /^<<<'[^']+'|[a-z_]\w*;$/i, + alias: 'symbol', + inside: { 'punctuation': /^<<<'?|[';]$/ } + } + } + }, + 'heredoc-string': { + pattern: /<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i, + greedy: true, + alias: 'string', + inside: { + 'delimiter': { + pattern: /^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i, + alias: 'symbol', + inside: { 'punctuation': /^<<<"?|[";]$/ } + }, + 'interpolation': string_interpolation + } + }, + 'single-quoted-string': { + pattern: /'(?:\\[\s\S]|[^\\'])*'/, + greedy: true, + alias: 'string' + }, + 'double-quoted-string': { + pattern: /"(?:\\[\s\S]|[^\\"])*"/, + greedy: true, + alias: 'string', + inside: { 'interpolation': string_interpolation } + } + }); + delete Prism.languages.php['string']; + Prism.hooks.add('before-tokenize', function (env) { + if (!/<\?/.test(env.code)) { + return; + } + var phpPattern = /<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/ig; + Prism.languages['markup-templating'].buildPlaceholders(env, 'php', phpPattern); + }); + Prism.hooks.add('after-tokenize', function (env) { + Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php'); + }); + }(Prism)); + }, + {} + ], + 12: [ + function (require, module, exports) { + Prism.languages.python = { + 'comment': { + pattern: /(^|[^\\])#.*/, + lookbehind: true + }, + 'string-interpolation': { + pattern: /(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i, + greedy: true, + inside: { + 'interpolation': { + pattern: /((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/, + lookbehind: true, + inside: { + 'format-spec': { + pattern: /(:)[^:(){}]+(?=}$)/, + lookbehind: true + }, + 'conversion-option': { + pattern: /![sra](?=[:}]$)/, + alias: 'punctuation' + }, + rest: null + } + }, + 'string': /[\s\S]+/ + } + }, + 'triple-quoted-string': { + pattern: /(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i, + greedy: true, + alias: 'string' + }, + 'string': { + pattern: /(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i, + greedy: true + }, + 'function': { + pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g, + lookbehind: true + }, + 'class-name': { + pattern: /(\bclass\s+)\w+/i, + lookbehind: true + }, + 'decorator': { + pattern: /(^\s*)@\w+(?:\.\w+)*/im, + lookbehind: true, + alias: [ + 'annotation', + 'punctuation' + ], + inside: { 'punctuation': /\./ } + }, + 'keyword': /\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/, + 'builtin': /\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/, + 'boolean': /\b(?:True|False|None)\b/, + 'number': /(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i, + 'operator': /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/, + 'punctuation': /[{}[\];(),.:]/ + }; + Prism.languages.python['string-interpolation'].inside['interpolation'].inside.rest = Prism.languages.python; + Prism.languages.py = Prism.languages.python; + }, + {} + ], + 13: [ + function (require, module, exports) { + (function (Prism) { + Prism.languages.ruby = Prism.languages.extend('clike', { + 'comment': [ + /#.*/, + { + pattern: /^=begin\s[\s\S]*?^=end/m, + greedy: true + } + ], + 'class-name': { + pattern: /(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i, + lookbehind: true, + inside: { 'punctuation': /[.\\]/ } + }, + 'keyword': /\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/ + }); + var interpolation = { + pattern: /#\{[^}]+\}/, + inside: { + 'delimiter': { + pattern: /^#\{|\}$/, + alias: 'tag' + }, + rest: Prism.languages.ruby + } + }; + delete Prism.languages.ruby.function; + Prism.languages.insertBefore('ruby', 'keyword', { + 'regex': [ + { + pattern: /%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /(^|[^/])\/(?!\/)(?:\[.+?]|\\.|[^/\\\r\n])+\/[gim]{0,3}(?=\s*(?:$|[\r\n,.;})]))/, + lookbehind: true, + greedy: true + } + ], + 'variable': /[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/, + 'symbol': { + pattern: /(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/, + lookbehind: true + }, + 'method-definition': { + pattern: /(\bdef\s+)[\w.]+/, + lookbehind: true, + inside: { + 'function': /\w+$/, + rest: Prism.languages.ruby + } + } + }); + Prism.languages.insertBefore('ruby', 'number', { + 'builtin': /\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/, + 'constant': /\b[A-Z]\w*(?:[?!]|\b)/ + }); + Prism.languages.ruby.string = [ + { + pattern: /%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/, + greedy: true, + inside: { 'interpolation': interpolation } + }, + { + pattern: /("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: true, + inside: { 'interpolation': interpolation } + } + ]; + Prism.languages.rb = Prism.languages.ruby; + }(Prism)); + }, + {} + ], + 14: [ + function (require, module, exports) { + var Prism = require('prismjs/components/prism-core'); + require('prismjs/components/prism-clike'); + require('prismjs/components/prism-markup-templating'); + require('prismjs/components/prism-c'); + require('prismjs/components/prism-cpp'); + require('prismjs/components/prism-csharp'); + require('prismjs/components/prism-css'); + require('prismjs/components/prism-java'); + require('prismjs/components/prism-javascript'); + require('prismjs/components/prism-markup'); + require('prismjs/components/prism-php'); + require('prismjs/components/prism-python'); + require('prismjs/components/prism-ruby'); + module.exports = { boltExport: Prism }; + }, + { + 'prismjs/components/prism-c': 1, + 'prismjs/components/prism-clike': 2, + 'prismjs/components/prism-core': 3, + 'prismjs/components/prism-cpp': 4, + 'prismjs/components/prism-csharp': 5, + 'prismjs/components/prism-css': 6, + 'prismjs/components/prism-java': 7, + 'prismjs/components/prism-javascript': 8, + 'prismjs/components/prism-markup': 10, + 'prismjs/components/prism-markup-templating': 9, + 'prismjs/components/prism-php': 11, + 'prismjs/components/prism-python': 12, + 'prismjs/components/prism-ruby': 13 + } + ] + }, {}, [14])(14); + })); + var prism = window.Prism; + window.Prism = oldprism; + return prism; + }(undefined, exports$1, module, undefined)); + var Prism$1 = module.exports.boltExport; + + var getLanguages = function (editor) { + return editor.getParam('codesample_languages'); + }; + var useGlobalPrismJS = function (editor) { + return editor.getParam('codesample_global_prismjs', false, 'boolean'); + }; + + var get = function (editor) { + return Global.Prism && useGlobalPrismJS(editor) ? Global.Prism : Prism$1; + }; + + var getSelectedCodeSample = function (editor) { + var node = editor.selection ? editor.selection.getNode() : null; + if (isCodeSample(node)) { + return Option.some(node); + } + return Option.none(); + }; + var insertCodeSample = function (editor, language, code) { + editor.undoManager.transact(function () { + var node = getSelectedCodeSample(editor); + code = global$1.DOM.encode(code); + return node.fold(function () { + editor.insertContent('

    ' + code + '
    '); + editor.selection.select(editor.$('#__new').removeAttr('id')[0]); + }, function (n) { + editor.dom.setAttrib(n, 'class', 'language-' + language); + n.innerHTML = code; + get(editor).highlightElement(n); + editor.selection.select(n); + }); + }); + }; + var getCurrentCode = function (editor) { + var node = getSelectedCodeSample(editor); + return node.fold(function () { + return ''; + }, function (n) { + return n.textContent; + }); + }; + + var getLanguages$1 = function (editor) { + var defaultLanguages = [ + { + text: 'HTML/XML', + value: 'markup' + }, + { + text: 'JavaScript', + value: 'javascript' + }, + { + text: 'CSS', + value: 'css' + }, + { + text: 'PHP', + value: 'php' + }, + { + text: 'Ruby', + value: 'ruby' + }, + { + text: 'Python', + value: 'python' + }, + { + text: 'Java', + value: 'java' + }, + { + text: 'C', + value: 'c' + }, + { + text: 'C#', + value: 'csharp' + }, + { + text: 'C++', + value: 'cpp' + } + ]; + var customLanguages = getLanguages(editor); + return customLanguages ? customLanguages : defaultLanguages; + }; + var getCurrentLanguage = function (editor, fallback) { + var node = getSelectedCodeSample(editor); + return node.fold(function () { + return fallback; + }, function (n) { + var matches = n.className.match(/language-(\w+)/); + return matches ? matches[1] : fallback; + }); + }; + + var open = function (editor) { + var languages = getLanguages$1(editor); + var defaultLanguage = head(languages).fold(function () { + return ''; + }, function (l) { + return l.value; + }); + var currentLanguage = getCurrentLanguage(editor, defaultLanguage); + var currentCode = getCurrentCode(editor); + editor.windowManager.open({ + title: 'Insert/Edit Code Sample', + size: 'large', + body: { + type: 'panel', + items: [ + { + type: 'selectbox', + name: 'language', + label: 'Language', + items: languages + }, + { + type: 'textarea', + name: 'code', + label: 'Code view' + } + ] + }, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + initialData: { + language: currentLanguage, + code: currentCode + }, + onSubmit: function (api) { + var data = api.getData(); + insertCodeSample(editor, data.language, data.code); + api.close(); + } + }); + }; + + var register = function (editor) { + editor.addCommand('codesample', function () { + var node = editor.selection.getNode(); + if (editor.selection.isCollapsed() || isCodeSample(node)) { + open(editor); + } else { + editor.formatter.toggle('code'); + } + }); + }; + + var setup = function (editor) { + var $ = editor.$; + editor.on('PreProcess', function (e) { + $('pre[contenteditable=false]', e.node).filter(trimArg(isCodeSample)).each(function (idx, elm) { + var $elm = $(elm), code = elm.textContent; + $elm.attr('class', $.trim($elm.attr('class'))); + $elm.removeAttr('contentEditable'); + $elm.empty().append($('').each(function () { + this.textContent = code; + })); + }); + }); + editor.on('SetContent', function () { + var unprocessedCodeSamples = $('pre').filter(trimArg(isCodeSample)).filter(function (idx, elm) { + return elm.contentEditable !== 'false'; + }); + if (unprocessedCodeSamples.length) { + editor.undoManager.transact(function () { + unprocessedCodeSamples.each(function (idx, elm) { + $(elm).find('br').each(function (idx, elm) { + elm.parentNode.replaceChild(editor.getDoc().createTextNode('\n'), elm); + }); + elm.contentEditable = 'false'; + elm.innerHTML = editor.dom.encode(elm.textContent); + get(editor).highlightElement(elm); + elm.className = $.trim(elm.className); + }); + }); + } + }); + }; + + var isCodeSampleSelection = function (editor) { + var node = editor.selection.getStart(); + return editor.dom.is(node, 'pre[class*="language-"]'); + }; + var register$1 = function (editor) { + editor.ui.registry.addToggleButton('codesample', { + icon: 'code-sample', + tooltip: 'Insert/edit code sample', + onAction: function () { + return open(editor); + }, + onSetup: function (api) { + var nodeChangeHandler = function () { + api.setActive(isCodeSampleSelection(editor)); + }; + editor.on('NodeChange', nodeChangeHandler); + return function () { + return editor.off('NodeChange', nodeChangeHandler); + }; + } + }); + editor.ui.registry.addMenuItem('codesample', { + text: 'Code sample...', + icon: 'code-sample', + onAction: function () { + return open(editor); + } + }); + }; + + function Plugin () { + global.add('codesample', function (editor) { + setup(editor); + register$1(editor); + register(editor); + editor.on('dblclick', function (ev) { + if (isCodeSample(ev.target)) { + open(editor); + } + }); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/codesample/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/codesample/plugin.min.js new file mode 100755 index 0000000..79fff55 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/codesample/plugin.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.4.2 (2020-08-17) + */ +!function(e){"use strict";var n,t,a,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(e){return function(){return e}},s=i(!1),o=i(!0),l=function(){return u},u=(n=function(e){return e.isNone()},{fold:function(e,n){return e()},is:s,isSome:s,isNone:o,getOr:a=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:a,orThunk:t,map:l,each:function(){},bind:l,exists:s,forall:o,filter:l,equals:n,equals_:n,toArray:function(){return[]},toString:i("none()")}),c=function(t){var e=i(t),n=function(){return r},a=function(e){return e(t)},r={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:o,isNone:s,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:n,orThunk:n,map:function(e){return c(e(t))},each:function(e){e(t)},bind:a,exists:a,forall:a,filter:function(e){return e(t)?r:u},toArray:function(){return[t]},toString:function(){return"some("+t+")"},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(s,function(e){return n(t,e)})}};return r},d={some:c,none:l,from:function(e){return null===e||e===undefined?u:c(e)}},p=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils");function g(e){return e&&"PRE"===e.nodeName&&-1!==e.className.indexOf("language-")}function m(t){return function(e,n){return t(n)}}var f="undefined"!=typeof e.window?e.window:Function("return this;")(),h={},b={exports:h},y={};!function(n,t,a,d){var e=window.Prism;window.Prism={manual:!0},function(e){if("object"==typeof t&&void 0!==a)a.exports=e();else if("function"==typeof n&&n.amd)n([],e);else{("undefined"!=typeof window?window:void 0!==y?y:"undefined"!=typeof self?self:this).EphoxContactWrapper=e()}}(function(){return function c(i,s,o){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof d&&d;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var a=new Error("Cannot find module '"+n+"'");throw a.code="MODULE_NOT_FOUND",a}var r=s[n]={exports:{}};i[n][0].call(r.exports,function(e){return l(i[n][1][e]||e)},r,r.exports,c,i,s,o)}return s[n].exports}for(var u="function"==typeof d&&d,e=0;e>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/,number:/(?:\b0x(?:[\da-f]+\.?[\da-f]*|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/,lookbehind:!0},directive:{pattern:/(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,lookbehind:!0,alias:"keyword"}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete Prism.languages.c["boolean"]},{}],2:[function(e,n,t){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(?:true|false)\b/,"function":/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},{}],3:[function(e,t,n){(function(e){var n=function(u){var c=/\blang(?:uage)?-([\w-]+)\b/i,n=0,C={manual:u.Prism&&u.Prism.manual,disableWorkerMessageHandler:u.Prism&&u.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof O?new O(e.type,C.util.encode(e.content),e.alias):Array.isArray(e)?e.map(C.util.encode):e.replace(/&/g,"&").replace(/e.length)return;if(!(w instanceof O)){if(g&&b!=n.length-1){if(c.lastIndex=y,!(P=c.exec(e)))break;for(var v=P.index+(p&&P[1]?P[1].length:0),k=P.index+P[0].length,x=b,_=y,F=n.length;x"+t.content+""},!u.document)return u.addEventListener&&(C.disableWorkerMessageHandler||u.addEventListener("message",function(e){var n=JSON.parse(e.data),t=n.language,a=n.code,r=n.immediateClose;u.postMessage(C.highlight(a,C.languages[t],t)),r&&u.close()},!1)),C;var e=C.util.currentScript();if(e&&(C.filename=e.src,e.hasAttribute("data-manual")&&(C.manual=!0)),!C.manual){var t=function(){C.manual||C.highlightAll()},a=document.readyState;"loading"===a||"interactive"===a&&e&&e.defer?document.addEventListener("DOMContentLoaded",t):window.requestAnimationFrame?window.requestAnimationFrame(t):window.setTimeout(t,16)}return C}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});void 0!==t&&t.exports&&(t.exports=n),void 0!==e&&(e.Prism=n)}).call(this,void 0!==y?y:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],4:[function(e,n,t){Prism.languages.cpp=Prism.languages.extend("c",{"class-name":{pattern:/(\b(?:class|enum|struct)\s+)\w+/,lookbehind:!0},keyword:/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+\.?[\da-f']*|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+\.?[\d']*|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]*/i,greedy:!0},operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,"boolean":/\b(?:true|false)\b/}),Prism.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}})},{}],5:[function(e,n,t){Prism.languages.csharp=Prism.languages.extend("clike",{keyword:/\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/,string:[{pattern:/@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/,greedy:!0}],"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i,operator:/>>=?|<<=?|[-=]>|([-+&|?])\1|~|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),Prism.languages.insertBefore("csharp","class-name",{"generic-method":{pattern:/\w+\s*<[^>\r\n]+?>\s*(?=\()/,inside:{"function":/^\w+/,"class-name":{pattern:/\b[A-Z]\w*(?:\.\w+)*\b/,inside:{punctuation:/\./}},keyword:Prism.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}}),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},{}],6:[function(e,n,t){!function(e){var n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/,inside:{rule:/@[\w-]+/}},url:{pattern:RegExp("url\\((?:"+n.source+"|[^\n\r()]*)\\)","i"),inside:{"function":/^url/i,punctuation:/^\(|\)$/}},selector:RegExp("[^{}\\s](?:[^{};\"']|"+n.source+")*?(?=\\s*\\{)"),string:{pattern:n,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var t=e.languages.markup;t&&(t.tag.addInlined("style","css"),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:t.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:e.languages.css}},alias:"language-css"}},t.tag))}(Prism)},{}],7:[function(e,n,t){var a,r,i;a=Prism,r=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|null|open|opens|package|private|protected|provides|public|requires|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,i=/\b[A-Z](?:\w*[a-z]\w*)?\b/,a.languages.java=a.languages.extend("clike",{"class-name":[i,/\b[A-Z]\w*(?=\s+\w+\s*[;,=())])/],keyword:r,"function":[a.languages.clike["function"],{pattern:/(\:\:)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x[\da-f_]*\.?[\da-f_p+-]+\b|(?:\b\d[\d_]*\.?[\d_]*|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),a.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),a.languages.insertBefore("java","class-name",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0},namespace:{pattern:/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)[a-z]\w*(?:\.[a-z]\w*)+/,lookbehind:!0,inside:{punctuation:/\./}},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":i,keyword:r,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})},{}],8:[function(e,n,t){Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,"function":/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,operator:/--|\+\+|\*\*=?|=>|&&|\|\||[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?[.?]?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*[\s\S]*?\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.js=Prism.languages.javascript},{}],9:[function(e,n,t){function b(e,n){return"___"+e.toUpperCase()+n+"___"}var y;y=Prism,Object.defineProperties(y.languages["markup-templating"]={},{buildPlaceholders:{value:function(a,r,e,i){if(a.language===r){var s=a.tokenStack=[];a.code=a.code.replace(e,function(e){if("function"==typeof i&&!i(e))return e;for(var n,t=s.length;-1!==a.code.indexOf(n=b(r,t));)++t;return s[t]=e,n}),a.grammar=y.languages.markup}}},tokenizePlaceholders:{value:function(p,g){if(p.language===g&&p.tokenStack){p.grammar=y.languages[g];var m=0,f=Object.keys(p.tokenStack);!function h(e){for(var n=0;n=f.length);n++){var t=e[n];if("string"==typeof t||t.content&&"string"==typeof t.content){var a=f[m],r=p.tokenStack[a],i="string"==typeof t?t:t.content,s=b(g,a),o=i.indexOf(s);if(-1/,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i,greedy:!0},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,n){var t={};t["language-"+n]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[n]},t.cdata=/^$/i;var a={"included-cdata":{pattern://i,inside:t}};a["language-"+n]={pattern:/[\s\S]+/,inside:Prism.languages[n]};var r={};r[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,e),"i"),lookbehind:!0,greedy:!0,inside:a},Prism.languages.insertBefore("markup","cdata",r)}}),Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup},{}],11:[function(e,n,t){!function(n){n.languages.php=n.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,"boolean":{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),n.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),n.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),n.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),n.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var e={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:n.languages.php};n.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:e}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:e}}}),delete n.languages.php.string,n.hooks.add("before-tokenize",function(e){if(/<\?/.test(e.code)){n.languages["markup-templating"].buildPlaceholders(e,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}}),n.hooks.add("after-tokenize",function(e){n.languages["markup-templating"].tokenizePlaceholders(e,"php")})}(Prism)},{}],12:[function(e,n,t){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,"boolean":/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},{}],13:[function(e,n,t){!function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin\s[\s\S]*?^=end/m,greedy:!0}],"class-name":{pattern:/(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/});var n={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.languages.ruby}};delete e.languages.ruby["function"],e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/(^|[^/])\/(?!\/)(?:\[.+?]|\\.|[^/\\\r\n])+\/[gim]{0,3}(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0},"method-definition":{pattern:/(\bdef\s+)[\w.]+/,lookbehind:!0,inside:{"function":/\w+$/,rest:e.languages.ruby}}}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0,inside:{interpolation:n}},{pattern:/("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:n}}],e.languages.rb=e.languages.ruby}(Prism)},{}],14:[function(e,n,t){var a=e("prismjs/components/prism-core");e("prismjs/components/prism-clike"),e("prismjs/components/prism-markup-templating"),e("prismjs/components/prism-c"),e("prismjs/components/prism-cpp"),e("prismjs/components/prism-csharp"),e("prismjs/components/prism-css"),e("prismjs/components/prism-java"),e("prismjs/components/prism-javascript"),e("prismjs/components/prism-markup"),e("prismjs/components/prism-php"),e("prismjs/components/prism-python"),e("prismjs/components/prism-ruby"),n.exports={boltExport:a}},{"prismjs/components/prism-c":1,"prismjs/components/prism-clike":2,"prismjs/components/prism-core":3,"prismjs/components/prism-cpp":4,"prismjs/components/prism-csharp":5,"prismjs/components/prism-css":6,"prismjs/components/prism-java":7,"prismjs/components/prism-javascript":8,"prismjs/components/prism-markup":10,"prismjs/components/prism-markup-templating":9,"prismjs/components/prism-php":11,"prismjs/components/prism-python":12,"prismjs/components/prism-ruby":13}]},{},[14])(14)});var r=window.Prism;window.Prism=e}(undefined,h,b,undefined);var w=b.exports.boltExport,v=function(e){return f.Prism&&e.getParam("codesample_global_prismjs",!1,"boolean")?f.Prism:w},k=function(e){var n=e.selection?e.selection.getNode():null;return g(n)?d.some(n):d.none()},x=function(i){var e,t,n=i.getParam("codesample_languages")||[{text:"HTML/XML",value:"markup"},{text:"JavaScript",value:"javascript"},{text:"CSS",value:"css"},{text:"PHP",value:"php"},{text:"Ruby",value:"ruby"},{text:"Python",value:"python"},{text:"Java",value:"java"},{text:"C",value:"c"},{text:"C#",value:"csharp"},{text:"C++",value:"cpp"}],a=(0===(e=n).length?d.none():d.some(e[0])).fold(function(){return""},function(e){return e.value}),r=(t=a,k(i).fold(function(){return t},function(e){var n=e.className.match(/language-(\w+)/);return n?n[1]:t})),s=k(i).fold(function(){return""},function(e){return e.textContent});i.windowManager.open({title:"Insert/Edit Code Sample",size:"large",body:{type:"panel",items:[{type:"selectbox",name:"language",label:"Language",items:n},{type:"textarea",name:"code",label:"Code view"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{language:r,code:s},onSubmit:function(e){var n,t,a,r=e.getData();n=i,t=r.language,a=r.code,n.undoManager.transact(function(){var e=k(n);return a=p.DOM.encode(a),e.fold(function(){n.insertContent('
    '+a+"
    "),n.selection.select(n.$("#__new").removeAttr("id")[0])},function(e){n.dom.setAttrib(e,"class","language-"+t),e.innerHTML=a,v(n).highlightElement(e),n.selection.select(e)})}),e.close()}})},_=function(a){a.ui.registry.addToggleButton("codesample",{icon:"code-sample",tooltip:"Insert/edit code sample",onAction:function(){return x(a)},onSetup:function(t){var e=function(){var e,n;t.setActive((n=(e=a).selection.getStart(),e.dom.is(n,'pre[class*="language-"]')))};return a.on("NodeChange",e),function(){return a.off("NodeChange",e)}}}),a.ui.registry.addMenuItem("codesample",{text:"Code sample...",icon:"code-sample",onAction:function(){return x(a)}})};!function F(){r.add("codesample",function(n){var t,r,a;r=(t=n).$,t.on("PreProcess",function(e){r("pre[contenteditable=false]",e.node).filter(m(g)).each(function(e,n){var t=r(n),a=n.textContent;t.attr("class",r.trim(t.attr("class"))),t.removeAttr("contentEditable"),t.empty().append(r("").each(function(){this.textContent=a}))})}),t.on("SetContent",function(){var e=r("pre").filter(m(g)).filter(function(e,n){return"false"!==n.contentEditable});e.length&&t.undoManager.transact(function(){e.each(function(e,n){r(n).find("br").each(function(e,n){n.parentNode.replaceChild(t.getDoc().createTextNode("\n"),n)}),n.contentEditable="false",n.innerHTML=t.dom.encode(n.textContent),v(t).highlightElement(n),n.className=r.trim(n.className)})})}),_(n),(a=n).addCommand("codesample",function(){var e=a.selection.getNode();a.selection.isCollapsed()||g(e)?x(a):a.formatter.toggle("code")}),n.on("dblclick",function(e){g(e.target)&&x(n)})})}()}(window); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/colorpicker/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/colorpicker/plugin.js new file mode 100755 index 0000000..7099faf --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/colorpicker/plugin.js @@ -0,0 +1,22 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function (domGlobals) { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + function Plugin () { + global.add('colorpicker', function () { + domGlobals.console.warn('Color picker plugin is now built in to the core editor, please remove it from your editor configuration'); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/colorpicker/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/colorpicker/plugin.min.js new file mode 100755 index 0000000..6a98df1 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/colorpicker/plugin.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.4.2 (2020-08-17) + */ +!function(o){"use strict";var i=tinymce.util.Tools.resolve("tinymce.PluginManager");!function n(){i.add("colorpicker",function(){o.console.warn("Color picker plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/contextmenu/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/contextmenu/plugin.js new file mode 100755 index 0000000..83b8f02 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/contextmenu/plugin.js @@ -0,0 +1,22 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function (domGlobals) { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + function Plugin () { + global.add('contextmenu', function () { + domGlobals.console.warn('Context menu plugin is now built in to the core editor, please remove it from your editor configuration'); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/contextmenu/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/contextmenu/plugin.min.js new file mode 100755 index 0000000..b11d3f1 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/contextmenu/plugin.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.4.2 (2020-08-17) + */ +!function(n){"use strict";var o=tinymce.util.Tools.resolve("tinymce.PluginManager");!function e(){o.add("contextmenu",function(){n.console.warn("Context menu plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/directionality/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/directionality/plugin.js new file mode 100755 index 0000000..933cfdc --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/directionality/plugin.js @@ -0,0 +1,314 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function (domGlobals) { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var setDir = function (editor, dir) { + var dom = editor.dom; + var curDir; + var blocks = editor.selection.getSelectedBlocks(); + if (blocks.length) { + curDir = dom.getAttrib(blocks[0], 'dir'); + global$1.each(blocks, function (block) { + if (!dom.getParent(block.parentNode, '*[dir="' + dir + '"]', dom.getRoot())) { + dom.setAttrib(block, 'dir', curDir !== dir ? dir : null); + } + }); + editor.nodeChanged(); + } + }; + + var register = function (editor) { + editor.addCommand('mceDirectionLTR', function () { + setDir(editor, 'ltr'); + }); + editor.addCommand('mceDirectionRTL', function () { + setDir(editor, 'rtl'); + }); + }; + + var noop = function () { + }; + var compose1 = function (fbc, fab) { + return function (a) { + return fbc(fab(a)); + }; + }; + var constant = function (value) { + return function () { + return value; + }; + }; + var never = constant(false); + var always = constant(true); + + var none = function () { + return NONE; + }; + var NONE = function () { + var eq = function (o) { + return o.isNone(); + }; + var call = function (thunk) { + return thunk(); + }; + var id = function (n) { + return n; + }; + var me = { + fold: function (n, _s) { + return n(); + }, + is: never, + isSome: never, + isNone: always, + getOr: id, + getOrThunk: call, + getOrDie: function (msg) { + throw new Error(msg || 'error: getOrDie called on none.'); + }, + getOrNull: constant(null), + getOrUndefined: constant(undefined), + or: id, + orThunk: call, + map: none, + each: noop, + bind: none, + exists: never, + forall: always, + filter: none, + equals: eq, + equals_: eq, + toArray: function () { + return []; + }, + toString: constant('none()') + }; + return me; + }(); + var some = function (a) { + var constant_a = constant(a); + var self = function () { + return me; + }; + var bind = function (f) { + return f(a); + }; + var me = { + fold: function (n, s) { + return s(a); + }, + is: function (v) { + return a === v; + }, + isSome: always, + isNone: never, + getOr: constant_a, + getOrThunk: constant_a, + getOrDie: constant_a, + getOrNull: constant_a, + getOrUndefined: constant_a, + or: self, + orThunk: self, + map: function (f) { + return some(f(a)); + }, + each: function (f) { + f(a); + }, + bind: bind, + exists: bind, + forall: bind, + filter: function (f) { + return f(a) ? me : NONE; + }, + toArray: function () { + return [a]; + }, + toString: function () { + return 'some(' + a + ')'; + }, + equals: function (o) { + return o.is(a); + }, + equals_: function (o, elementEq) { + return o.fold(never, function (b) { + return elementEq(a, b); + }); + } + }; + return me; + }; + var from = function (value) { + return value === null || value === undefined ? NONE : some(value); + }; + var Option = { + some: some, + none: none, + from: from + }; + + var fromHtml = function (html, scope) { + var doc = scope || domGlobals.document; + var div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + domGlobals.console.error('HTML does not have a single root node', html); + throw new Error('HTML must have a single root node'); + } + return fromDom(div.childNodes[0]); + }; + var fromTag = function (tag, scope) { + var doc = scope || domGlobals.document; + var node = doc.createElement(tag); + return fromDom(node); + }; + var fromText = function (text, scope) { + var doc = scope || domGlobals.document; + var node = doc.createTextNode(text); + return fromDom(node); + }; + var fromDom = function (node) { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: constant(node) }; + }; + var fromPoint = function (docElm, x, y) { + var doc = docElm.dom(); + return Option.from(doc.elementFromPoint(x, y)).map(fromDom); + }; + var Element = { + fromHtml: fromHtml, + fromTag: fromTag, + fromText: fromText, + fromDom: fromDom, + fromPoint: fromPoint + }; + + var isSimpleType = function (type) { + return function (value) { + return typeof value === type; + }; + }; + var isFunction = isSimpleType('function'); + + var isSupported = function (dom) { + return dom.style !== undefined && isFunction(dom.style.getPropertyValue); + }; + + var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); + + var DOCUMENT = 9; + var DOCUMENT_FRAGMENT = 11; + var TEXT = 3; + + var type = function (element) { + return element.dom().nodeType; + }; + var isType = function (t) { + return function (element) { + return type(element) === t; + }; + }; + var isText = isType(TEXT); + var isDocument = isType(DOCUMENT); + var isDocumentFragment = isType(DOCUMENT_FRAGMENT); + + var owner = function (element) { + return Element.fromDom(element.dom().ownerDocument); + }; + var documentOrOwner = function (dos) { + return isDocument(dos) ? dos : owner(dos); + }; + + var isShadowRoot = function (dos) { + return isDocumentFragment(dos); + }; + var supported = isFunction(domGlobals.Element.prototype.attachShadow) && isFunction(domGlobals.Node.prototype.getRootNode); + var getRootNode = supported ? function (e) { + return Element.fromDom(e.dom().getRootNode()); + } : documentOrOwner; + var getShadowRoot = function (e) { + var r = getRootNode(e); + return isShadowRoot(r) ? Option.some(r) : Option.none(); + }; + var getShadowHost = function (e) { + return Element.fromDom(e.dom().host); + }; + + var inBody = function (element) { + var dom = isText(element) ? element.dom().parentNode : element.dom(); + if (dom === undefined || dom === null || dom.ownerDocument === null) { + return false; + } + return getShadowRoot(Element.fromDom(dom)).fold(function () { + return dom.ownerDocument.body.contains(dom); + }, compose1(inBody, getShadowHost)); + }; + + var get = function (element, property) { + var dom = element.dom(); + var styles = domGlobals.window.getComputedStyle(dom); + var r = styles.getPropertyValue(property); + return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r; + }; + var getUnsafeProperty = function (dom, property) { + return isSupported(dom) ? dom.style.getPropertyValue(property) : ''; + }; + + var getDirection = function (element) { + return get(element, 'direction') === 'rtl' ? 'rtl' : 'ltr'; + }; + + var getNodeChangeHandler = function (editor, dir) { + return function (api) { + var nodeChangeHandler = function (e) { + var element = Element.fromDom(e.element); + api.setActive(getDirection(element) === dir); + }; + editor.on('NodeChange', nodeChangeHandler); + return function () { + return editor.off('NodeChange', nodeChangeHandler); + }; + }; + }; + var register$1 = function (editor) { + editor.ui.registry.addToggleButton('ltr', { + tooltip: 'Left to right', + icon: 'ltr', + onAction: function () { + return editor.execCommand('mceDirectionLTR'); + }, + onSetup: getNodeChangeHandler(editor, 'ltr') + }); + editor.ui.registry.addToggleButton('rtl', { + tooltip: 'Right to left', + icon: 'rtl', + onAction: function () { + return editor.execCommand('mceDirectionRTL'); + }, + onSetup: getNodeChangeHandler(editor, 'rtl') + }); + }; + + function Plugin () { + global.add('directionality', function (editor) { + register(editor); + register$1(editor); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/directionality/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/directionality/plugin.min.js new file mode 100755 index 0000000..fe50f8e --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/directionality/plugin.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.4.2 (2020-08-17) + */ +!function(u){"use strict";var n,t,e,o,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=tinymce.util.Tools.resolve("tinymce.util.Tools"),c=function(n,t){var e,o=n.dom,r=n.selection.getSelectedBlocks();r.length&&(e=o.getAttrib(r[0],"dir"),i.each(r,function(n){o.getParent(n.parentNode,'*[dir="'+t+'"]',o.getRoot())||o.setAttrib(n,"dir",e!==t?t:null)}),n.nodeChanged())},f=function(n){return function(){return n}},d=f(!1),l=f(!0),m=function(){return a},a=(n=function(n){return n.isNone()},{fold:function(n,t){return n()},is:d,isSome:d,isNone:l,getOr:e=function(n){return n},getOrThunk:t=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:f(null),getOrUndefined:f(undefined),or:e,orThunk:t,map:m,each:function(){},bind:m,exists:d,forall:l,filter:m,equals:n,equals_:n,toArray:function(){return[]},toString:f("none()")}),s=function(e){var n=f(e),t=function(){return r},o=function(n){return n(e)},r={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:l,isNone:d,getOr:n,getOrThunk:n,getOrDie:n,getOrNull:n,getOrUndefined:n,or:t,orThunk:t,map:function(n){return s(n(e))},each:function(n){n(e)},bind:o,exists:o,forall:o,filter:function(n){return n(e)?r:a},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(d,function(n){return t(e,n)})}};return r},g={some:s,none:m,from:function(n){return null===n||n===undefined?a:s(n)}},h=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:f(n)}},y={fromHtml:function(n,t){var e=(t||u.document).createElement("div");if(e.innerHTML=n,!e.hasChildNodes()||1= max; + }; + }); + for (var i = 0; i < list.length; i++) { + if (pattern.length === 0 || emojiMatches(list[i], lowerCasePattern)) { + matches.push({ + value: list[i].char, + text: list[i].title, + icon: list[i].char + }); + if (reachedLimit(matches.length)) { + break; + } + } + } + return matches; + }; + + var init = function (editor, database) { + editor.ui.registry.addAutocompleter('emoticons', { + ch: ':', + columns: 'auto', + minChars: 2, + fetch: function (pattern, maxResults) { + return database.waitForLoad().then(function () { + var candidates = database.listAll(); + return emojisFrom(candidates, pattern, Option.some(maxResults)); + }); + }, + onAction: function (autocompleteApi, rng, value) { + editor.selection.setRng(rng); + editor.insertContent(value); + autocompleteApi.hide(); + } + }); + }; + + var Cell = function (initial) { + var value = initial; + var get = function () { + return value; + }; + var set = function (v) { + value = v; + }; + return { + get: get, + set: set + }; + }; + + var last = function (fn, rate) { + var timer = null; + var cancel = function () { + if (timer !== null) { + domGlobals.clearTimeout(timer); + timer = null; + } + }; + var throttle = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (timer !== null) { + domGlobals.clearTimeout(timer); + } + timer = domGlobals.setTimeout(function () { + fn.apply(null, args); + timer = null; + }, rate); + }; + return { + cancel: cancel, + throttle: throttle + }; + }; + + var insertEmoticon = function (editor, ch) { + editor.insertContent(ch); + }; + + var __assign = function () { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + var hasOwnProperty = Object.prototype.hasOwnProperty; + var shallow = function (old, nu) { + return nu; + }; + var baseMerge = function (merger) { + return function () { + var objects = new Array(arguments.length); + for (var i = 0; i < objects.length; i++) { + objects[i] = arguments[i]; + } + if (objects.length === 0) { + throw new Error('Can\'t merge zero objects'); + } + var ret = {}; + for (var j = 0; j < objects.length; j++) { + var curObject = objects[j]; + for (var key in curObject) { + if (hasOwnProperty.call(curObject, key)) { + ret[key] = merger(ret[key], curObject[key]); + } + } + } + return ret; + }; + }; + var merge = baseMerge(shallow); + + var keys = Object.keys; + var hasOwnProperty$1 = Object.hasOwnProperty; + var each = function (obj, f) { + var props = keys(obj); + for (var k = 0, len = props.length; k < len; k++) { + var i = props[k]; + var x = obj[i]; + f(x, i); + } + }; + var map$1 = function (obj, f) { + return tupleMap(obj, function (x, i) { + return { + k: i, + v: f(x, i) + }; + }); + }; + var tupleMap = function (obj, f) { + var r = {}; + each(obj, function (x, i) { + var tuple = f(x, i); + r[tuple.k] = tuple.v; + }); + return r; + }; + var has = function (obj, key) { + return hasOwnProperty$1.call(obj, key); + }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.Resource'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay'); + + var global$3 = tinymce.util.Tools.resolve('tinymce.util.Promise'); + + var DEFAULT_ID = 'tinymce.plugins.emoticons'; + var getEmoticonDatabaseUrl = function (editor, pluginUrl) { + return editor.getParam('emoticons_database_url', pluginUrl + '/js/emojis' + editor.suffix + '.js'); + }; + var getEmoticonDatabaseId = function (editor) { + return editor.getParam('emoticons_database_id', DEFAULT_ID, 'string'); + }; + var getAppendedEmoticons = function (editor) { + return editor.getParam('emoticons_append', {}, 'object'); + }; + + var ALL_CATEGORY = 'All'; + var categoryNameMap = { + symbols: 'Symbols', + people: 'People', + animals_and_nature: 'Animals and Nature', + food_and_drink: 'Food and Drink', + activity: 'Activity', + travel_and_places: 'Travel and Places', + objects: 'Objects', + flags: 'Flags', + user: 'User Defined' + }; + var translateCategory = function (categories, name) { + return has(categories, name) ? categories[name] : name; + }; + var getUserDefinedEmoticons = function (editor) { + var userDefinedEmoticons = getAppendedEmoticons(editor); + return map$1(userDefinedEmoticons, function (value) { + return __assign({ + keywords: [], + category: 'user' + }, value); + }); + }; + var initDatabase = function (editor, databaseUrl, databaseId) { + var categories = Cell(Option.none()); + var all = Cell(Option.none()); + var processEmojis = function (emojis) { + var cats = {}; + var everything = []; + each(emojis, function (lib, title) { + var entry = { + title: title, + keywords: lib.keywords, + char: lib.char, + category: translateCategory(categoryNameMap, lib.category) + }; + var current = cats[entry.category] !== undefined ? cats[entry.category] : []; + cats[entry.category] = current.concat([entry]); + everything.push(entry); + }); + categories.set(Option.some(cats)); + all.set(Option.some(everything)); + }; + editor.on('init', function () { + global$1.load(databaseId, databaseUrl).then(function (emojis) { + var userEmojis = getUserDefinedEmoticons(editor); + processEmojis(merge(emojis, userEmojis)); + }, function (err) { + domGlobals.console.log('Failed to load emoticons: ' + err); + categories.set(Option.some({})); + all.set(Option.some([])); + }); + }); + var listCategory = function (category) { + if (category === ALL_CATEGORY) { + return listAll(); + } + return categories.get().bind(function (cats) { + return Option.from(cats[category]); + }).getOr([]); + }; + var listAll = function () { + return all.get().getOr([]); + }; + var listCategories = function () { + return [ALL_CATEGORY].concat(keys(categories.get().getOr({}))); + }; + var waitForLoad = function () { + if (hasLoaded()) { + return global$3.resolve(true); + } else { + return new global$3(function (resolve, reject) { + var numRetries = 15; + var interval = global$2.setInterval(function () { + if (hasLoaded()) { + global$2.clearInterval(interval); + resolve(true); + } else { + numRetries--; + if (numRetries < 0) { + domGlobals.console.log('Could not load emojis from url: ' + databaseUrl); + global$2.clearInterval(interval); + reject(false); + } + } + }, 100); + }); + } + }; + var hasLoaded = function () { + return categories.get().isSome() && all.get().isSome(); + }; + return { + listCategories: listCategories, + hasLoaded: hasLoaded, + waitForLoad: waitForLoad, + listAll: listAll, + listCategory: listCategory + }; + }; + + var patternName = 'pattern'; + var open = function (editor, database) { + var initialState = { + pattern: '', + results: emojisFrom(database.listAll(), '', Option.some(300)) + }; + var currentTab = Cell(ALL_CATEGORY); + var scan = function (dialogApi) { + var dialogData = dialogApi.getData(); + var category = currentTab.get(); + var candidates = database.listCategory(category); + var results = emojisFrom(candidates, dialogData[patternName], category === ALL_CATEGORY ? Option.some(300) : Option.none()); + dialogApi.setData({ results: results }); + }; + var updateFilter = last(function (dialogApi) { + scan(dialogApi); + }, 200); + var searchField = { + label: 'Search', + type: 'input', + name: patternName + }; + var resultsField = { + type: 'collection', + name: 'results' + }; + var getInitialState = function () { + var body = { + type: 'tabpanel', + tabs: map(database.listCategories(), function (cat) { + return { + title: cat, + name: cat, + items: [ + searchField, + resultsField + ] + }; + }) + }; + return { + title: 'Emoticons', + size: 'normal', + body: body, + initialData: initialState, + onTabChange: function (dialogApi, details) { + currentTab.set(details.newTabName); + updateFilter.throttle(dialogApi); + }, + onChange: updateFilter.throttle, + onAction: function (dialogApi, actionData) { + if (actionData.name === 'results') { + insertEmoticon(editor, actionData.value); + dialogApi.close(); + } + }, + buttons: [{ + type: 'cancel', + text: 'Close', + primary: true + }] + }; + }; + var dialogApi = editor.windowManager.open(getInitialState()); + dialogApi.focus(patternName); + if (!database.hasLoaded()) { + dialogApi.block('Loading emoticons...'); + database.waitForLoad().then(function () { + dialogApi.redial(getInitialState()); + updateFilter.throttle(dialogApi); + dialogApi.focus(patternName); + dialogApi.unblock(); + }).catch(function (_err) { + dialogApi.redial({ + title: 'Emoticons', + body: { + type: 'panel', + items: [{ + type: 'alertbanner', + level: 'error', + icon: 'warning', + text: '

    Could not load emoticons

    ' + }] + }, + buttons: [{ + type: 'cancel', + text: 'Close', + primary: true + }], + initialData: { + pattern: '', + results: [] + } + }); + dialogApi.focus(patternName); + dialogApi.unblock(); + }); + } + }; + + var register = function (editor, database) { + var onAction = function () { + return open(editor, database); + }; + editor.ui.registry.addButton('emoticons', { + tooltip: 'Emoticons', + icon: 'emoji', + onAction: onAction + }); + editor.ui.registry.addMenuItem('emoticons', { + text: 'Emoticons...', + icon: 'emoji', + onAction: onAction + }); + }; + + function Plugin () { + global.add('emoticons', function (editor, pluginUrl) { + var databaseUrl = getEmoticonDatabaseUrl(editor, pluginUrl); + var databaseId = getEmoticonDatabaseId(editor); + var database = initDatabase(editor, databaseUrl, databaseId); + register(editor, database); + init(editor, database); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/emoticons/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/emoticons/plugin.min.js new file mode 100755 index 0000000..65a791d --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/emoticons/plugin.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.4.2 (2020-08-17) + */ +!function(m){"use strict";var n,t,e,u,o=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n){return function(){return n}},a=i(!1),c=i(!0),r=function(){return l},l=(n=function(n){return n.isNone()},{fold:function(n,t){return n()},is:a,isSome:a,isNone:c,getOr:e=function(n){return n},getOrThunk:t=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:e,orThunk:t,map:r,each:function(){},bind:r,exists:a,forall:c,filter:r,equals:n,equals_:n,toArray:function(){return[]},toString:i("none()")}),s=function(e){var n=i(e),t=function(){return r},o=function(n){return n(e)},r={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:c,isNone:a,getOr:n,getOrThunk:n,getOrDie:n,getOrNull:n,getOrUndefined:n,or:t,orThunk:t,map:function(n){return s(n(e))},each:function(n){n(e)},bind:o,exists:o,forall:o,filter:function(n){return n(e)?r:l},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(a,function(n){return t(e,n)})}};return r},g={some:s,none:r,from:function(n){return null===n||n===undefined?l:s(n)}},f=function(n,t){return-1!==n.indexOf(t)},d=function(n,t){return f(n.title.toLowerCase(),t)||function(n,t){for(var e=0,o=n.length;eCould not load emoticons

    "}]},buttons:[{type:"cancel",text:"Close",primary:!0}],initialData:{pattern:"",results:[]}}),f.focus(S),f.unblock()}))};!function E(){o.add("emoticons",function(n,t){var e,o,r,i,u,a,c,l=(o=t,(e=n).getParam("emoticons_database_url",o+"/js/emojis"+e.suffix+".js")),s=n.getParam("emoticons_database_id","tinymce.plugins.emoticons","string"),f=L(n,l,s);i=f,u=function(){return N(r,i)},(r=n).ui.registry.addButton("emoticons",{tooltip:"Emoticons",icon:"emoji",onAction:u}),r.ui.registry.addMenuItem("emoticons",{text:"Emoticons...",icon:"emoji",onAction:u}),c=f,(a=n).ui.registry.addAutocompleter("emoticons",{ch:":",columns:"auto",minChars:2,fetch:function(t,e){return c.waitForLoad().then(function(){var n=c.listAll();return y(n,t,g.some(e))})},onAction:function(n,t,e){a.selection.setRng(t),a.insertContent(e),n.hide()}})})}()}(window); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/fullpage/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/fullpage/plugin.js new file mode 100755 index 0000000..c6f7040 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/fullpage/plugin.js @@ -0,0 +1,544 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function (domGlobals) { + 'use strict'; + + var Cell = function (initial) { + var value = initial; + var get = function () { + return value; + }; + var set = function (v) { + value = v; + }; + return { + get: get, + set: set + }; + }; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var __assign = function () { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.html.DomParser'); + + var global$3 = tinymce.util.Tools.resolve('tinymce.html.Node'); + + var global$4 = tinymce.util.Tools.resolve('tinymce.html.Serializer'); + + var shouldHideInSourceView = function (editor) { + return editor.getParam('fullpage_hide_in_source_view'); + }; + var getDefaultXmlPi = function (editor) { + return editor.getParam('fullpage_default_xml_pi'); + }; + var getDefaultEncoding = function (editor) { + return editor.getParam('fullpage_default_encoding'); + }; + var getDefaultFontFamily = function (editor) { + return editor.getParam('fullpage_default_font_family'); + }; + var getDefaultFontSize = function (editor) { + return editor.getParam('fullpage_default_font_size'); + }; + var getDefaultTextColor = function (editor) { + return editor.getParam('fullpage_default_text_color'); + }; + var getDefaultTitle = function (editor) { + return editor.getParam('fullpage_default_title'); + }; + var getDefaultDocType = function (editor) { + return editor.getParam('fullpage_default_doctype', ''); + }; + var getProtect = function (editor) { + return editor.getParam('protect'); + }; + + var parseHeader = function (head) { + return global$2({ + validate: false, + root_name: '#document' + }).parse(head, { format: 'xhtml' }); + }; + var htmlToData = function (editor, head) { + var headerFragment = parseHeader(head); + var data = {}; + var elm, matches; + function getAttr(elm, name) { + var value = elm.attr(name); + return value || ''; + } + data.fontface = getDefaultFontFamily(editor); + data.fontsize = getDefaultFontSize(editor); + elm = headerFragment.firstChild; + if (elm.type === 7) { + data.xml_pi = true; + matches = /encoding="([^"]+)"/.exec(elm.value); + if (matches) { + data.docencoding = matches[1]; + } + } + elm = headerFragment.getAll('#doctype')[0]; + if (elm) { + data.doctype = ''; + } + elm = headerFragment.getAll('title')[0]; + if (elm && elm.firstChild) { + data.title = elm.firstChild.value; + } + global$1.each(headerFragment.getAll('meta'), function (meta) { + var name = meta.attr('name'); + var httpEquiv = meta.attr('http-equiv'); + var matches; + if (name) { + data[name.toLowerCase()] = meta.attr('content'); + } else if (httpEquiv === 'Content-Type') { + matches = /charset\s*=\s*(.*)\s*/gi.exec(meta.attr('content')); + if (matches) { + data.docencoding = matches[1]; + } + } + }); + elm = headerFragment.getAll('html')[0]; + if (elm) { + data.langcode = getAttr(elm, 'lang') || getAttr(elm, 'xml:lang'); + } + data.stylesheets = []; + global$1.each(headerFragment.getAll('link'), function (link) { + if (link.attr('rel') === 'stylesheet') { + data.stylesheets.push(link.attr('href')); + } + }); + elm = headerFragment.getAll('body')[0]; + if (elm) { + data.langdir = getAttr(elm, 'dir'); + data.style = getAttr(elm, 'style'); + data.visited_color = getAttr(elm, 'vlink'); + data.link_color = getAttr(elm, 'link'); + data.active_color = getAttr(elm, 'alink'); + } + return data; + }; + var dataToHtml = function (editor, data, head) { + var headElement, elm, value; + var dom = editor.dom; + function setAttr(elm, name, value) { + elm.attr(name, value ? value : undefined); + } + function addHeadNode(node) { + if (headElement.firstChild) { + headElement.insert(node, headElement.firstChild); + } else { + headElement.append(node); + } + } + var headerFragment = parseHeader(head); + headElement = headerFragment.getAll('head')[0]; + if (!headElement) { + elm = headerFragment.getAll('html')[0]; + headElement = new global$3('head', 1); + if (elm.firstChild) { + elm.insert(headElement, elm.firstChild, true); + } else { + elm.append(headElement); + } + } + elm = headerFragment.firstChild; + if (data.xml_pi) { + value = 'version="1.0"'; + if (data.docencoding) { + value += ' encoding="' + data.docencoding + '"'; + } + if (elm.type !== 7) { + elm = new global$3('xml', 7); + headerFragment.insert(elm, headerFragment.firstChild, true); + } + elm.value = value; + } else if (elm && elm.type === 7) { + elm.remove(); + } + elm = headerFragment.getAll('#doctype')[0]; + if (data.doctype) { + if (!elm) { + elm = new global$3('#doctype', 10); + if (data.xml_pi) { + headerFragment.insert(elm, headerFragment.firstChild); + } else { + addHeadNode(elm); + } + } + elm.value = data.doctype.substring(9, data.doctype.length - 1); + } else if (elm) { + elm.remove(); + } + elm = null; + global$1.each(headerFragment.getAll('meta'), function (meta) { + if (meta.attr('http-equiv') === 'Content-Type') { + elm = meta; + } + }); + if (data.docencoding) { + if (!elm) { + elm = new global$3('meta', 1); + elm.attr('http-equiv', 'Content-Type'); + elm.shortEnded = true; + addHeadNode(elm); + } + elm.attr('content', 'text/html; charset=' + data.docencoding); + } else if (elm) { + elm.remove(); + } + elm = headerFragment.getAll('title')[0]; + if (data.title) { + if (!elm) { + elm = new global$3('title', 1); + addHeadNode(elm); + } else { + elm.empty(); + } + elm.append(new global$3('#text', 3)).value = data.title; + } else if (elm) { + elm.remove(); + } + global$1.each('keywords,description,author,copyright,robots'.split(','), function (name) { + var nodes = headerFragment.getAll('meta'); + var i, meta; + var value = data[name]; + for (i = 0; i < nodes.length; i++) { + meta = nodes[i]; + if (meta.attr('name') === name) { + if (value) { + meta.attr('content', value); + } else { + meta.remove(); + } + return; + } + } + if (value) { + elm = new global$3('meta', 1); + elm.attr('name', name); + elm.attr('content', value); + elm.shortEnded = true; + addHeadNode(elm); + } + }); + var currentStyleSheetsMap = {}; + global$1.each(headerFragment.getAll('link'), function (stylesheet) { + if (stylesheet.attr('rel') === 'stylesheet') { + currentStyleSheetsMap[stylesheet.attr('href')] = stylesheet; + } + }); + global$1.each(data.stylesheets, function (stylesheet) { + if (!currentStyleSheetsMap[stylesheet]) { + elm = new global$3('link', 1); + elm.attr({ + rel: 'stylesheet', + text: 'text/css', + href: stylesheet + }); + elm.shortEnded = true; + addHeadNode(elm); + } + delete currentStyleSheetsMap[stylesheet]; + }); + global$1.each(currentStyleSheetsMap, function (stylesheet) { + stylesheet.remove(); + }); + elm = headerFragment.getAll('body')[0]; + if (elm) { + setAttr(elm, 'dir', data.langdir); + setAttr(elm, 'style', data.style); + setAttr(elm, 'vlink', data.visited_color); + setAttr(elm, 'link', data.link_color); + setAttr(elm, 'alink', data.active_color); + dom.setAttribs(editor.getBody(), { + style: data.style, + dir: data.dir, + vLink: data.visited_color, + link: data.link_color, + aLink: data.active_color + }); + } + elm = headerFragment.getAll('html')[0]; + if (elm) { + setAttr(elm, 'lang', data.langcode); + setAttr(elm, 'xml:lang', data.langcode); + } + if (!headElement.firstChild) { + headElement.remove(); + } + var html = global$4({ + validate: false, + indent: true, + indent_before: 'head,html,body,meta,title,script,link,style', + indent_after: 'head,html,body,meta,title,script,link,style' + }).serialize(headerFragment); + return html.substring(0, html.indexOf('')); + }; + + var open = function (editor, headState) { + var data = htmlToData(editor, headState.get()); + var defaultData = { + title: '', + keywords: '', + description: '', + robots: '', + author: '', + docencoding: '' + }; + var initialData = __assign(__assign({}, defaultData), data); + editor.windowManager.open({ + title: 'Metadata and Document Properties', + size: 'normal', + body: { + type: 'panel', + items: [ + { + name: 'title', + type: 'input', + label: 'Title' + }, + { + name: 'keywords', + type: 'input', + label: 'Keywords' + }, + { + name: 'description', + type: 'input', + label: 'Description' + }, + { + name: 'robots', + type: 'input', + label: 'Robots' + }, + { + name: 'author', + type: 'input', + label: 'Author' + }, + { + name: 'docencoding', + type: 'input', + label: 'Encoding' + } + ] + }, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + initialData: initialData, + onSubmit: function (api) { + var nuData = api.getData(); + var headHtml = dataToHtml(editor, global$1.extend(data, nuData), headState.get()); + headState.set(headHtml); + api.close(); + } + }); + }; + + var register = function (editor, headState) { + editor.addCommand('mceFullPageProperties', function () { + open(editor, headState); + }); + }; + + var protectHtml = function (protect, html) { + global$1.each(protect, function (pattern) { + html = html.replace(pattern, function (str) { + return ''; + }); + }); + return html; + }; + var unprotectHtml = function (html) { + return html.replace(//g, function (a, m) { + return unescape(m); + }); + }; + + var each = global$1.each; + var low = function (s) { + return s.replace(/<\/?[A-Z]+/g, function (a) { + return a.toLowerCase(); + }); + }; + var handleSetContent = function (editor, headState, footState, evt) { + var startPos, endPos, content, styles = ''; + var dom = editor.dom; + if (evt.selection) { + return; + } + content = protectHtml(getProtect(editor), evt.content); + if (evt.format === 'raw' && headState.get()) { + return; + } + if (evt.source_view && shouldHideInSourceView(editor)) { + return; + } + if (content.length === 0 && !evt.source_view) { + content = global$1.trim(headState.get()) + '\n' + global$1.trim(content) + '\n' + global$1.trim(footState.get()); + } + content = content.replace(/<(\/?)BODY/gi, '<$1body'); + startPos = content.indexOf('', startPos); + headState.set(low(content.substring(0, startPos + 1))); + endPos = content.indexOf('\n'); + } + var headerFragment = parseHeader(headState.get()); + each(headerFragment.getAll('style'), function (node) { + if (node.firstChild) { + styles += node.firstChild.value; + } + }); + var bodyElm = headerFragment.getAll('body')[0]; + if (bodyElm) { + dom.setAttribs(editor.getBody(), { + style: bodyElm.attr('style') || '', + dir: bodyElm.attr('dir') || '', + vLink: bodyElm.attr('vlink') || '', + link: bodyElm.attr('link') || '', + aLink: bodyElm.attr('alink') || '' + }); + } + dom.remove('fullpage_styles'); + var headElm = editor.getDoc().getElementsByTagName('head')[0]; + if (styles) { + var styleElm = dom.add(headElm, 'style', { id: 'fullpage_styles' }); + styleElm.appendChild(domGlobals.document.createTextNode(styles)); + } + var currentStyleSheetsMap = {}; + global$1.each(headElm.getElementsByTagName('link'), function (stylesheet) { + if (stylesheet.rel === 'stylesheet' && stylesheet.getAttribute('data-mce-fullpage')) { + currentStyleSheetsMap[stylesheet.href] = stylesheet; + } + }); + global$1.each(headerFragment.getAll('link'), function (stylesheet) { + var href = stylesheet.attr('href'); + if (!href) { + return true; + } + if (!currentStyleSheetsMap[href] && stylesheet.attr('rel') === 'stylesheet') { + dom.add(headElm, 'link', { + 'rel': 'stylesheet', + 'text': 'text/css', + href: href, + 'data-mce-fullpage': '1' + }); + } + delete currentStyleSheetsMap[href]; + }); + global$1.each(currentStyleSheetsMap, function (stylesheet) { + stylesheet.parentNode.removeChild(stylesheet); + }); + }; + var getDefaultHeader = function (editor) { + var header = '', value, styles = ''; + if (getDefaultXmlPi(editor)) { + var piEncoding = getDefaultEncoding(editor); + header += '\n'; + } + header += getDefaultDocType(editor); + header += '\n\n\n'; + if (value = getDefaultTitle(editor)) { + header += '' + value + '\n'; + } + if (value = getDefaultEncoding(editor)) { + header += '\n'; + } + if (value = getDefaultFontFamily(editor)) { + styles += 'font-family: ' + value + ';'; + } + if (value = getDefaultFontSize(editor)) { + styles += 'font-size: ' + value + ';'; + } + if (value = getDefaultTextColor(editor)) { + styles += 'color: ' + value + ';'; + } + header += '\n\n'; + return header; + }; + var handleGetContent = function (editor, head, foot, evt) { + if (!evt.selection && (!evt.source_view || !shouldHideInSourceView(editor))) { + evt.content = unprotectHtml(global$1.trim(head) + '\n' + global$1.trim(evt.content) + '\n' + global$1.trim(foot)); + } + }; + var setup = function (editor, headState, footState) { + editor.on('BeforeSetContent', function (evt) { + handleSetContent(editor, headState, footState, evt); + }); + editor.on('GetContent', function (evt) { + handleGetContent(editor, headState.get(), footState.get(), evt); + }); + }; + + var register$1 = function (editor) { + editor.ui.registry.addButton('fullpage', { + tooltip: 'Metadata and document properties', + icon: 'document-properties', + onAction: function () { + editor.execCommand('mceFullPageProperties'); + } + }); + editor.ui.registry.addMenuItem('fullpage', { + text: 'Metadata and document properties', + icon: 'document-properties', + onAction: function () { + editor.execCommand('mceFullPageProperties'); + } + }); + }; + + function Plugin () { + global.add('fullpage', function (editor) { + var headState = Cell(''), footState = Cell(''); + register(editor, headState); + register$1(editor); + setup(editor, headState, footState); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/fullpage/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/fullpage/plugin.min.js new file mode 100755 index 0000000..e7da7f9 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/fullpage/plugin.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.4.2 (2020-08-17) + */ +!function(p){"use strict";var s=function(e){var t=e;return{get:function(){return t},set:function(e){t=e}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=function(){return(u=Object.assign||function(e){for(var t,n=1,l=arguments.length;n"),(n=o.getAll("title")[0])&&n.firstChild&&(a.title=n.firstChild.value),y.each(o.getAll("meta"),function(e){var t,n=e.attr("name"),l=e.attr("http-equiv");n?a[n.toLowerCase()]=e.attr("content"):"Content-Type"===l&&(t=/charset\s*=\s*(.*)\s*/gi.exec(e.attr("content")))&&(a.docencoding=t[1])}),(n=o.getAll("html")[0])&&(a.langcode=s(n,"lang")||s(n,"xml:lang")),a.stylesheets=[],y.each(o.getAll("link"),function(e){"stylesheet"===e.attr("rel")&&a.stylesheets.push(e.attr("href"))}),(n=o.getAll("body")[0])&&(a.langdir=s(n,"dir"),a.style=s(n,"style"),a.visited_color=s(n,"vlink"),a.link_color=s(n,"link"),a.active_color=s(n,"alink")),a);function s(e,t){return e.attr(t)||""}var d=u(u({},{title:"",keywords:"",description:"",robots:"",author:"",docencoding:""}),c);l.windowManager.open({title:"Metadata and Document Properties",size:"normal",body:{type:"panel",items:[{name:"title",type:"input",label:"Title"},{name:"keywords",type:"input",label:"Keywords"},{name:"description",type:"input",label:"Description"},{name:"robots",type:"input",label:"Robots"},{name:"author",type:"input",label:"Author"},{name:"docencoding",type:"input",label:"Encoding"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:d,onSubmit:function(e){var t=e.getData(),n=function(e,r,t){var n,o,l,i=e.dom;function a(e,t,n){e.attr(t,n||undefined)}function c(e){n.firstChild?n.insert(e,n.firstChild):n.append(e)}var s=_(t);(n=s.getAll("head")[0])||(o=s.getAll("html")[0],n=new m("head",1),o.firstChild?o.insert(n,o.firstChild,!0):o.append(n)),o=s.firstChild,r.xml_pi?(l='version="1.0"',r.docencoding&&(l+=' encoding="'+r.docencoding+'"'),7!==o.type&&(o=new m("xml",7),s.insert(o,s.firstChild,!0)),o.value=l):o&&7===o.type&&o.remove(),o=s.getAll("#doctype")[0],r.doctype?(o||(o=new m("#doctype",10),r.xml_pi?s.insert(o,s.firstChild):c(o)),o.value=r.doctype.substring(9,r.doctype.length-1)):o&&o.remove(),o=null,y.each(s.getAll("meta"),function(e){"Content-Type"===e.attr("http-equiv")&&(o=e)}),r.docencoding?(o||((o=new m("meta",1)).attr("http-equiv","Content-Type"),o.shortEnded=!0,c(o)),o.attr("content","text/html; charset="+r.docencoding)):o&&o.remove(),o=s.getAll("title")[0],r.title?(o?o.empty():c(o=new m("title",1)),o.append(new m("#text",3)).value=r.title):o&&o.remove(),y.each("keywords,description,author,copyright,robots".split(","),function(e){var t,n,l=s.getAll("meta"),i=r[e];for(t=0;t"))}(l,y.extend(c,t),i.get());i.set(n),e.close()}})},b=y.each,x=function(e){return e.replace(/<\/?[A-Z]+/g,function(e){return e.toLowerCase()})},k=function(e,t,n,l){var i,r,o,a,c,s="",d=e.dom;if(!l.selection&&(a=e.getParam("protect"),c=l.content,y.each(a,function(e){c=c.replace(e,function(e){return"\x3c!--mce:protected "+escape(e)+"--\x3e"})}),o=c,!("raw"===l.format&&t.get()||l.source_view&&h(e)))){0!==o.length||l.source_view||(o=y.trim(t.get())+"\n"+y.trim(o)+"\n"+y.trim(n.get())),-1!==(i=(o=o.replace(/<(\/?)BODY/gi,"<$1body")).indexOf("",i),t.set(x(o.substring(0,i+1))),-1===(r=o.indexOf("\n"));var u=_(t.get());b(u.getAll("style"),function(e){e.firstChild&&(s+=e.firstChild.value)});var m=u.getAll("body")[0];m&&d.setAttribs(e.getBody(),{style:m.attr("style")||"",dir:m.attr("dir")||"",vLink:m.attr("vlink")||"",link:m.attr("link")||"",aLink:m.attr("alink")||""}),d.remove("fullpage_styles");var f=e.getDoc().getElementsByTagName("head")[0];if(s)d.add(f,"style",{id:"fullpage_styles"}).appendChild(p.document.createTextNode(s));var g={};y.each(f.getElementsByTagName("link"),function(e){"stylesheet"===e.rel&&e.getAttribute("data-mce-fullpage")&&(g[e.href]=e)}),y.each(u.getAll("link"),function(e){var t=e.attr("href");if(!t)return!0;g[t]||"stylesheet"!==e.attr("rel")||d.add(f,"link",{rel:"stylesheet",text:"text/css",href:t,"data-mce-fullpage":"1"}),delete g[t]}),y.each(g,function(e){e.parentNode.removeChild(e)})}},C=function(e){var t,n="",l="";if(e.getParam("fullpage_default_xml_pi")){var i=r(e);n+='\n'}return n+=e.getParam("fullpage_default_doctype",""),n+="\n\n\n",(t=e.getParam("fullpage_default_title"))&&(n+=""+t+"\n"),(t=r(e))&&(n+='\n'),(t=g(e))&&(l+="font-family: "+t+";"),(t=v(e))&&(l+="font-size: "+t+";"),(t=e.getParam("fullpage_default_text_color"))&&(l+="color: "+t+";"),n+="\n\n"},A=function(e,t,n,l){l.selection||l.source_view&&h(e)||(l.content=(y.trim(t)+"\n"+y.trim(l.content)+"\n"+y.trim(n)).replace(//g,function(e,t){return unescape(t)}))};!function n(){e.add("fullpage",function(e){var t,n,l,i,r,o,a=s(""),c=s("");n=a,(t=e).addCommand("mceFullPageProperties",function(){d(t,n)}),(l=e).ui.registry.addButton("fullpage",{tooltip:"Metadata and document properties",icon:"document-properties",onAction:function(){l.execCommand("mceFullPageProperties")}}),l.ui.registry.addMenuItem("fullpage",{text:"Metadata and document properties",icon:"document-properties",onAction:function(){l.execCommand("mceFullPageProperties")}}),r=a,o=c,(i=e).on("BeforeSetContent",function(e){k(i,r,o,e)}),i.on("GetContent",function(e){A(i,r.get(),o.get(),e)})})}()}(window); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/fullscreen/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/fullscreen/plugin.js new file mode 100755 index 0000000..ae7a2c0 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/fullscreen/plugin.js @@ -0,0 +1,851 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function (domGlobals) { + 'use strict'; + + var Cell = function (initial) { + var value = initial; + var get = function () { + return value; + }; + var set = function (v) { + value = v; + }; + return { + get: get, + set: set + }; + }; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var get = function (fullscreenState) { + return { + isFullscreen: function () { + return fullscreenState.get() !== null; + } + }; + }; + + var noop = function () { + }; + var compose = function (fa, fb) { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return fa(fb.apply(null, args)); + }; + }; + var compose1 = function (fbc, fab) { + return function (a) { + return fbc(fab(a)); + }; + }; + var constant = function (value) { + return function () { + return value; + }; + }; + var never = constant(false); + var always = constant(true); + + var none = function () { + return NONE; + }; + var NONE = function () { + var eq = function (o) { + return o.isNone(); + }; + var call = function (thunk) { + return thunk(); + }; + var id = function (n) { + return n; + }; + var me = { + fold: function (n, _s) { + return n(); + }, + is: never, + isSome: never, + isNone: always, + getOr: id, + getOrThunk: call, + getOrDie: function (msg) { + throw new Error(msg || 'error: getOrDie called on none.'); + }, + getOrNull: constant(null), + getOrUndefined: constant(undefined), + or: id, + orThunk: call, + map: none, + each: noop, + bind: none, + exists: never, + forall: always, + filter: none, + equals: eq, + equals_: eq, + toArray: function () { + return []; + }, + toString: constant('none()') + }; + return me; + }(); + var some = function (a) { + var constant_a = constant(a); + var self = function () { + return me; + }; + var bind = function (f) { + return f(a); + }; + var me = { + fold: function (n, s) { + return s(a); + }, + is: function (v) { + return a === v; + }, + isSome: always, + isNone: never, + getOr: constant_a, + getOrThunk: constant_a, + getOrDie: constant_a, + getOrNull: constant_a, + getOrUndefined: constant_a, + or: self, + orThunk: self, + map: function (f) { + return some(f(a)); + }, + each: function (f) { + f(a); + }, + bind: bind, + exists: bind, + forall: bind, + filter: function (f) { + return f(a) ? me : NONE; + }, + toArray: function () { + return [a]; + }, + toString: function () { + return 'some(' + a + ')'; + }, + equals: function (o) { + return o.is(a); + }, + equals_: function (o, elementEq) { + return o.fold(never, function (b) { + return elementEq(a, b); + }); + } + }; + return me; + }; + var from = function (value) { + return value === null || value === undefined ? NONE : some(value); + }; + var Option = { + some: some, + none: none, + from: from + }; + + var revocable = function (doRevoke) { + var subject = Cell(Option.none()); + var revoke = function () { + subject.get().each(doRevoke); + }; + var clear = function () { + revoke(); + subject.set(Option.none()); + }; + var set = function (s) { + revoke(); + subject.set(Option.some(s)); + }; + var isSet = function () { + return subject.get().isSome(); + }; + return { + clear: clear, + isSet: isSet, + set: set + }; + }; + var unbindable = function () { + return revocable(function (s) { + s.unbind(); + }); + }; + var value = function () { + var subject = Cell(Option.none()); + var clear = function () { + subject.set(Option.none()); + }; + var set = function (s) { + subject.set(Option.some(s)); + }; + var on = function (f) { + subject.get().each(f); + }; + var isSet = function () { + return subject.get().isSome(); + }; + return { + clear: clear, + set: set, + isSet: isSet, + on: on + }; + }; + + var typeOf = function (x) { + var t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) { + return 'array'; + } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) { + return 'string'; + } else { + return t; + } + }; + var isType = function (type) { + return function (value) { + return typeOf(value) === type; + }; + }; + var isSimpleType = function (type) { + return function (value) { + return typeof value === type; + }; + }; + var isString = isType('string'); + var isArray = isType('array'); + var isBoolean = isSimpleType('boolean'); + var isNullable = function (a) { + return a === null || a === undefined; + }; + var isNonNullable = function (a) { + return !isNullable(a); + }; + var isFunction = isSimpleType('function'); + var isNumber = isSimpleType('number'); + + var nativePush = Array.prototype.push; + var map = function (xs, f) { + var len = xs.length; + var r = new Array(len); + for (var i = 0; i < len; i++) { + var x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + var each = function (xs, f) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + f(x, i); + } + }; + var filter = function (xs, pred) { + var r = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i)) { + r.push(x); + } + } + return r; + }; + var flatten = function (xs) { + var r = []; + for (var i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + var bind = function (xs, f) { + return flatten(map(xs, f)); + }; + var head = function (xs) { + return xs.length === 0 ? Option.none() : Option.some(xs[0]); + }; + + var keys = Object.keys; + var each$1 = function (obj, f) { + var props = keys(obj); + for (var k = 0, len = props.length; k < len; k++) { + var i = props[k]; + var x = obj[i]; + f(x, i); + } + }; + + var isSupported = function (dom) { + return dom.style !== undefined && isFunction(dom.style.getPropertyValue); + }; + + var fromHtml = function (html, scope) { + var doc = scope || domGlobals.document; + var div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + domGlobals.console.error('HTML does not have a single root node', html); + throw new Error('HTML must have a single root node'); + } + return fromDom(div.childNodes[0]); + }; + var fromTag = function (tag, scope) { + var doc = scope || domGlobals.document; + var node = doc.createElement(tag); + return fromDom(node); + }; + var fromText = function (text, scope) { + var doc = scope || domGlobals.document; + var node = doc.createTextNode(text); + return fromDom(node); + }; + var fromDom = function (node) { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: constant(node) }; + }; + var fromPoint = function (docElm, x, y) { + var doc = docElm.dom(); + return Option.from(doc.elementFromPoint(x, y)).map(fromDom); + }; + var Element = { + fromHtml: fromHtml, + fromTag: fromTag, + fromText: fromText, + fromDom: fromDom, + fromPoint: fromPoint + }; + + var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); + + var DOCUMENT = 9; + var DOCUMENT_FRAGMENT = 11; + var ELEMENT = 1; + var TEXT = 3; + + var type = function (element) { + return element.dom().nodeType; + }; + var isType$1 = function (t) { + return function (element) { + return type(element) === t; + }; + }; + var isElement = isType$1(ELEMENT); + var isText = isType$1(TEXT); + var isDocument = isType$1(DOCUMENT); + var isDocumentFragment = isType$1(DOCUMENT_FRAGMENT); + + var is = function (element, selector) { + var dom = element.dom(); + if (dom.nodeType !== ELEMENT) { + return false; + } else { + var elem = dom; + if (elem.matches !== undefined) { + return elem.matches(selector); + } else if (elem.msMatchesSelector !== undefined) { + return elem.msMatchesSelector(selector); + } else if (elem.webkitMatchesSelector !== undefined) { + return elem.webkitMatchesSelector(selector); + } else if (elem.mozMatchesSelector !== undefined) { + return elem.mozMatchesSelector(selector); + } else { + throw new Error('Browser lacks native selectors'); + } + } + }; + var bypassSelector = function (dom) { + return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0; + }; + var all = function (selector, scope) { + var base = scope === undefined ? domGlobals.document : scope.dom(); + return bypassSelector(base) ? [] : map(base.querySelectorAll(selector), Element.fromDom); + }; + + var eq = function (e1, e2) { + return e1.dom() === e2.dom(); + }; + + var owner = function (element) { + return Element.fromDom(element.dom().ownerDocument); + }; + var documentOrOwner = function (dos) { + return isDocument(dos) ? dos : owner(dos); + }; + var parent = function (element) { + return Option.from(element.dom().parentNode).map(Element.fromDom); + }; + var parents = function (element, isRoot) { + var stop = isFunction(isRoot) ? isRoot : never; + var dom = element.dom(); + var ret = []; + while (dom.parentNode !== null && dom.parentNode !== undefined) { + var rawParent = dom.parentNode; + var p = Element.fromDom(rawParent); + ret.push(p); + if (stop(p) === true) { + break; + } else { + dom = rawParent; + } + } + return ret; + }; + var siblings = function (element) { + var filterSelf = function (elements) { + return filter(elements, function (x) { + return !eq(element, x); + }); + }; + return parent(element).map(children).map(filterSelf).getOr([]); + }; + var children = function (element) { + return map(element.dom().childNodes, Element.fromDom); + }; + + var isShadowRoot = function (dos) { + return isDocumentFragment(dos); + }; + var supported = isFunction(domGlobals.Element.prototype.attachShadow) && isFunction(domGlobals.Node.prototype.getRootNode); + var isSupported$1 = constant(supported); + var getRootNode = supported ? function (e) { + return Element.fromDom(e.dom().getRootNode()); + } : documentOrOwner; + var getShadowRoot = function (e) { + var r = getRootNode(e); + return isShadowRoot(r) ? Option.some(r) : Option.none(); + }; + var getShadowHost = function (e) { + return Element.fromDom(e.dom().host); + }; + var getOriginalEventTarget = function (event) { + if (isSupported$1() && isNonNullable(event.target)) { + var el = Element.fromDom(event.target); + if (isElement(el) && isOpenShadowHost(Element.fromDom(event.target))) { + var eventAny = event; + if (eventAny.composed && eventAny.composedPath) { + var composedPath = eventAny.composedPath(); + if (composedPath) { + return head(composedPath); + } + } + } + } + return Option.from(event.target); + }; + var isOpenShadowHost = function (element) { + return isNonNullable(element.dom().shadowRoot); + }; + + var inBody = function (element) { + var dom = isText(element) ? element.dom().parentNode : element.dom(); + if (dom === undefined || dom === null || dom.ownerDocument === null) { + return false; + } + return getShadowRoot(Element.fromDom(dom)).fold(function () { + return dom.ownerDocument.body.contains(dom); + }, compose1(inBody, getShadowHost)); + }; + + var rawSet = function (dom, key, value) { + if (isString(value) || isBoolean(value) || isNumber(value)) { + dom.setAttribute(key, value + ''); + } else { + domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom); + throw new Error('Attribute value was not simple'); + } + }; + var set = function (element, key, value) { + rawSet(element.dom(), key, value); + }; + var get$1 = function (element, key) { + var v = element.dom().getAttribute(key); + return v === null ? undefined : v; + }; + var remove = function (element, key) { + element.dom().removeAttribute(key); + }; + + var internalSet = function (dom, property, value) { + if (!isString(value)) { + domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom); + throw new Error('CSS value must be a string: ' + value); + } + if (isSupported(dom)) { + dom.style.setProperty(property, value); + } + }; + var setAll = function (element, css) { + var dom = element.dom(); + each$1(css, function (v, k) { + internalSet(dom, k, v); + }); + }; + var get$2 = function (element, property) { + var dom = element.dom(); + var styles = domGlobals.window.getComputedStyle(dom); + var r = styles.getPropertyValue(property); + return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r; + }; + var getUnsafeProperty = function (dom, property) { + return isSupported(dom) ? dom.style.getPropertyValue(property) : ''; + }; + + var mkEvent = function (target, x, y, stop, prevent, kill, raw) { + return { + target: constant(target), + x: constant(x), + y: constant(y), + stop: stop, + prevent: prevent, + kill: kill, + raw: constant(raw) + }; + }; + var fromRawEvent = function (rawEvent) { + var target = Element.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target)); + var stop = function () { + return rawEvent.stopPropagation(); + }; + var prevent = function () { + return rawEvent.preventDefault(); + }; + var kill = compose(prevent, stop); + return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent); + }; + + var r = function (left, top) { + var translate = function (x, y) { + return r(left + x, top + y); + }; + return { + left: constant(left), + top: constant(top), + translate: translate + }; + }; + var Position = r; + + var get$3 = function (_DOC) { + var doc = _DOC !== undefined ? _DOC.dom() : domGlobals.document; + var x = doc.body.scrollLeft || doc.documentElement.scrollLeft; + var y = doc.body.scrollTop || doc.documentElement.scrollTop; + return Position(x, y); + }; + + var get$4 = function (_win) { + var win = _win === undefined ? domGlobals.window : _win; + return Option.from(win['visualViewport']); + }; + var bounds = function (x, y, width, height) { + return { + x: x, + y: y, + width: width, + height: height, + right: x + width, + bottom: y + height + }; + }; + var getBounds = function (_win) { + var win = _win === undefined ? domGlobals.window : _win; + var doc = win.document; + var scroll = get$3(Element.fromDom(doc)); + return get$4(win).fold(function () { + var html = win.document.documentElement; + var width = html.clientWidth; + var height = html.clientHeight; + return bounds(scroll.left(), scroll.top(), width, height); + }, function (visualViewport) { + return bounds(Math.max(visualViewport.pageLeft, scroll.left()), Math.max(visualViewport.pageTop, scroll.top()), visualViewport.width, visualViewport.height); + }); + }; + var bind$1 = function (name, callback, _win) { + return get$4(_win).map(function (visualViewport) { + var handler = function (e) { + return callback(fromRawEvent(e)); + }; + visualViewport.addEventListener(name, handler); + return { + unbind: function () { + return visualViewport.removeEventListener(name, handler); + } + }; + }).getOrThunk(function () { + return { unbind: noop }; + }); + }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.Env'); + + var global$3 = tinymce.util.Tools.resolve('tinymce.util.Delay'); + + var fireFullscreenStateChanged = function (editor, state) { + editor.fire('FullscreenStateChanged', { state: state }); + }; + + var ancestors = function (scope, predicate, isRoot) { + return filter(parents(scope, isRoot), predicate); + }; + var siblings$1 = function (scope, predicate) { + return filter(siblings(scope), predicate); + }; + + var all$1 = function (selector) { + return all(selector); + }; + var ancestors$1 = function (scope, selector, isRoot) { + return ancestors(scope, function (e) { + return is(e, selector); + }, isRoot); + }; + var siblings$2 = function (scope, selector) { + return siblings$1(scope, function (e) { + return is(e, selector); + }); + }; + + var attr = 'data-ephox-mobile-fullscreen-style'; + var siblingStyles = 'display:none!important;'; + var ancestorPosition = 'position:absolute!important;'; + var ancestorStyles = 'top:0!important;left:0!important;margin:0!important;padding:0!important;width:100%!important;height:100%!important;overflow:visible!important;'; + var bgFallback = 'background-color:rgb(255,255,255)!important;'; + var isAndroid = global$2.os.isAndroid(); + var matchColor = function (editorBody) { + var color = get$2(editorBody, 'background-color'); + return color !== undefined && color !== '' ? 'background-color:' + color + '!important' : bgFallback; + }; + var clobberStyles = function (dom, container, editorBody) { + var gatherSibilings = function (element) { + return siblings$2(element, '*:not(.tox-silver-sink)'); + }; + var clobber = function (clobberStyle) { + return function (element) { + var styles = get$1(element, 'style'); + var backup = styles === undefined ? 'no-styles' : styles.trim(); + if (backup === clobberStyle) { + return; + } else { + set(element, attr, backup); + setAll(element, dom.parseStyle(clobberStyle)); + } + }; + }; + var ancestors = ancestors$1(container, '*'); + var siblings = bind(ancestors, gatherSibilings); + var bgColor = matchColor(editorBody); + each(siblings, clobber(siblingStyles)); + each(ancestors, clobber(ancestorPosition + ancestorStyles + bgColor)); + var containerStyles = isAndroid === true ? '' : ancestorPosition; + clobber(containerStyles + ancestorStyles + bgColor)(container); + }; + var restoreStyles = function (dom) { + var clobberedEls = all$1('[' + attr + ']'); + each(clobberedEls, function (element) { + var restore = get$1(element, attr); + if (restore !== 'no-styles') { + setAll(element, dom.parseStyle(restore)); + } else { + remove(element, 'style'); + } + remove(element, attr); + }); + }; + + var DOM = global$1.DOM; + var getScrollPos = function () { + var vp = getBounds(domGlobals.window); + return { + x: vp.x, + y: vp.y + }; + }; + var setScrollPos = function (pos) { + domGlobals.window.scrollTo(pos.x, pos.y); + }; + var viewportUpdate = get$4().fold(function () { + return { + bind: noop, + unbind: noop + }; + }, function (visualViewport) { + var editorContainer = value(); + var resizeBinder = unbindable(); + var scrollBinder = unbindable(); + var refreshScroll = function () { + domGlobals.document.body.scrollTop = 0; + domGlobals.document.documentElement.scrollTop = 0; + }; + var refreshVisualViewport = function () { + domGlobals.window.requestAnimationFrame(function () { + editorContainer.on(function (container) { + return setAll(container, { + top: visualViewport.offsetTop + 'px', + left: visualViewport.offsetLeft + 'px', + height: visualViewport.height + 'px', + width: visualViewport.width + 'px' + }); + }); + }); + }; + var update = global$3.throttle(function () { + refreshScroll(); + refreshVisualViewport(); + }, 50); + var bind = function (element) { + editorContainer.set(element); + update(); + resizeBinder.set(bind$1('resize', update)); + scrollBinder.set(bind$1('scroll', update)); + }; + var unbind = function () { + editorContainer.on(function () { + resizeBinder.clear(); + scrollBinder.clear(); + }); + editorContainer.clear(); + }; + return { + bind: bind, + unbind: unbind + }; + }); + var toggleFullscreen = function (editor, fullscreenState) { + var body = domGlobals.document.body; + var documentElement = domGlobals.document.documentElement; + var editorContainer = editor.getContainer(); + var editorContainerS = Element.fromDom(editorContainer); + var fullscreenInfo = fullscreenState.get(); + var editorBody = Element.fromDom(editor.getBody()); + var isTouch = global$2.deviceType.isTouch(); + var editorContainerStyle = editorContainer.style; + var iframe = editor.iframeElement; + var iframeStyle = iframe.style; + var cleanup = function () { + if (isTouch) { + restoreStyles(editor.dom); + } + DOM.removeClass(body, 'tox-fullscreen'); + DOM.removeClass(documentElement, 'tox-fullscreen'); + DOM.removeClass(editorContainer, 'tox-fullscreen'); + viewportUpdate.unbind(); + }; + if (!fullscreenInfo) { + var newFullScreenInfo = { + scrollPos: getScrollPos(), + containerWidth: editorContainerStyle.width, + containerHeight: editorContainerStyle.height, + containerTop: editorContainerStyle.top, + containerLeft: editorContainerStyle.left, + iframeWidth: iframeStyle.width, + iframeHeight: iframeStyle.height + }; + if (isTouch) { + clobberStyles(editor.dom, editorContainerS, editorBody); + } + iframeStyle.width = iframeStyle.height = '100%'; + editorContainerStyle.width = editorContainerStyle.height = ''; + DOM.addClass(body, 'tox-fullscreen'); + DOM.addClass(documentElement, 'tox-fullscreen'); + DOM.addClass(editorContainer, 'tox-fullscreen'); + viewportUpdate.bind(editorContainerS); + editor.on('remove', cleanup); + fullscreenState.set(newFullScreenInfo); + fireFullscreenStateChanged(editor, true); + } else { + iframeStyle.width = fullscreenInfo.iframeWidth; + iframeStyle.height = fullscreenInfo.iframeHeight; + editorContainerStyle.width = fullscreenInfo.containerWidth; + editorContainerStyle.height = fullscreenInfo.containerHeight; + editorContainerStyle.top = fullscreenInfo.containerTop; + editorContainerStyle.left = fullscreenInfo.containerLeft; + setScrollPos(fullscreenInfo.scrollPos); + fullscreenState.set(null); + fireFullscreenStateChanged(editor, false); + cleanup(); + editor.off('remove', cleanup); + } + }; + + var register = function (editor, fullscreenState) { + editor.addCommand('mceFullScreen', function () { + toggleFullscreen(editor, fullscreenState); + }); + }; + + var makeSetupHandler = function (editor, fullscreenState) { + return function (api) { + api.setActive(fullscreenState.get() !== null); + var editorEventCallback = function (e) { + return api.setActive(e.state); + }; + editor.on('FullscreenStateChanged', editorEventCallback); + return function () { + return editor.off('FullscreenStateChanged', editorEventCallback); + }; + }; + }; + var register$1 = function (editor, fullscreenState) { + editor.ui.registry.addToggleMenuItem('fullscreen', { + text: 'Fullscreen', + icon: 'fullscreen', + shortcut: 'Meta+Shift+F', + onAction: function () { + return editor.execCommand('mceFullScreen'); + }, + onSetup: makeSetupHandler(editor, fullscreenState) + }); + editor.ui.registry.addToggleButton('fullscreen', { + tooltip: 'Fullscreen', + icon: 'fullscreen', + onAction: function () { + return editor.execCommand('mceFullScreen'); + }, + onSetup: makeSetupHandler(editor, fullscreenState) + }); + }; + + function Plugin () { + global.add('fullscreen', function (editor) { + var fullscreenState = Cell(null); + if (editor.inline) { + return get(fullscreenState); + } + register(editor, fullscreenState); + register$1(editor, fullscreenState); + editor.addShortcut('Meta+Shift+F', '', 'mceFullScreen'); + return get(fullscreenState); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/fullscreen/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/fullscreen/plugin.min.js new file mode 100755 index 0000000..19cd6cd --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/fullscreen/plugin.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.4.2 (2020-08-17) + */ +!function(p){"use strict";var n,t,e,c=function(n){var t=n;return{get:function(){return t},set:function(n){t=n}}},r=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(n){return{isFullscreen:function(){return null!==n.get()}}},o=function(){},a=function(n){return function(){return n}},f=a(!1),u=a(!0),l=function(){return d},d=(n=function(n){return n.isNone()},{fold:function(n,t){return n()},is:f,isSome:f,isNone:u,getOr:e=function(n){return n},getOrThunk:t=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:a(null),getOrUndefined:a(undefined),or:e,orThunk:t,map:l,each:o,bind:l,exists:f,forall:u,filter:l,equals:n,equals_:n,toArray:function(){return[]},toString:a("none()")}),s=function(e){var n=a(e),t=function(){return o},r=function(n){return n(e)},o={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:u,isNone:f,getOr:n,getOrThunk:n,getOrDie:n,getOrNull:n,getOrUndefined:n,or:t,orThunk:t,map:function(n){return s(n(e))},each:function(n){n(e)},bind:r,exists:r,forall:r,filter:function(n){return n(e)?o:d},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(f,function(n){return t(e,n)})}};return o},m={some:s,none:l,from:function(n){return null===n||n===undefined?d:s(n)}},h=function(){return n=function(n){n.unbind()},t=c(m.none()),e=function(){t.get().each(n)},{clear:function(){e(),t.set(m.none())},isSet:function(){return t.get().isSome()},set:function(n){e(),t.set(m.some(n))}};var n,t,e},g=function(r){return function(n){return e=typeof(t=n),(null===t?"null":"object"==e&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":e)===r;var t,e}},v=function(t){return function(n){return typeof n===t}},y=g("string"),w=g("array"),b=v("boolean"),S=function(n){return!(null===(t=n)||t===undefined);var t},T=v("function"),x=v("number"),D=Array.prototype.push,E=function(n,t){for(var e=n.length,r=new Array(e),o=0;o -1; + }; + var map = function (xs, f) { + var len = xs.length; + var r = new Array(len); + for (var i = 0; i < len; i++) { + var x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + var filter = function (xs, pred) { + var r = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i)) { + r.push(x); + } + } + return r; + }; + var findUntil = function (xs, pred, until) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i)) { + return Option.some(x); + } else if (until(x, i)) { + break; + } + } + return Option.none(); + }; + var find = function (xs, pred) { + return findUntil(xs, pred, never); + }; + + var keys = Object.keys; + var hasOwnProperty = Object.hasOwnProperty; + var get$1 = function (obj, key) { + return has(obj, key) ? Option.from(obj[key]) : Option.none(); + }; + var has = function (obj, key) { + return hasOwnProperty.call(obj, key); + }; + + var cat = function (arr) { + var r = []; + var push = function (x) { + r.push(x); + }; + for (var i = 0; i < arr.length; i++) { + arr[i].each(push); + } + return r; + }; + + var getHelpTabs = function (editor) { + return Option.from(editor.getParam('help_tabs')); + }; + var getForcedPlugins = function (editor) { + return editor.getParam('forced_plugins'); + }; + + var shortcuts = [ + { + shortcuts: ['Meta + B'], + action: 'Bold' + }, + { + shortcuts: ['Meta + I'], + action: 'Italic' + }, + { + shortcuts: ['Meta + U'], + action: 'Underline' + }, + { + shortcuts: ['Meta + A'], + action: 'Select all' + }, + { + shortcuts: [ + 'Meta + Y', + 'Meta + Shift + Z' + ], + action: 'Redo' + }, + { + shortcuts: ['Meta + Z'], + action: 'Undo' + }, + { + shortcuts: ['Access + 1'], + action: 'Header 1' + }, + { + shortcuts: ['Access + 2'], + action: 'Header 2' + }, + { + shortcuts: ['Access + 3'], + action: 'Header 3' + }, + { + shortcuts: ['Access + 4'], + action: 'Header 4' + }, + { + shortcuts: ['Access + 5'], + action: 'Header 5' + }, + { + shortcuts: ['Access + 6'], + action: 'Header 6' + }, + { + shortcuts: ['Access + 7'], + action: 'Paragraph' + }, + { + shortcuts: ['Access + 8'], + action: 'Div' + }, + { + shortcuts: ['Access + 9'], + action: 'Address' + }, + { + shortcuts: ['Alt + 0'], + action: 'Open help dialog' + }, + { + shortcuts: ['Alt + F9'], + action: 'Focus to menubar' + }, + { + shortcuts: ['Alt + F10'], + action: 'Focus to toolbar' + }, + { + shortcuts: ['Alt + F11'], + action: 'Focus to element path' + }, + { + shortcuts: ['Ctrl + F9'], + action: 'Focus to contextual toolbar' + }, + { + shortcuts: ['Shift + Enter'], + action: 'Open popup menu for split buttons' + }, + { + shortcuts: ['Meta + K'], + action: 'Insert link (if link plugin activated)' + }, + { + shortcuts: ['Meta + S'], + action: 'Save (if save plugin activated)' + }, + { + shortcuts: ['Meta + F'], + action: 'Find (if searchreplace plugin activated)' + }, + { + shortcuts: ['Meta + Shift + F'], + action: 'Switch to or from fullscreen mode' + } + ]; + + var global$1 = tinymce.util.Tools.resolve('tinymce.Env'); + + var convertText = function (source) { + var mac = { + alt: '⌥', + ctrl: '⌃', + shift: '⇧', + meta: '⌘', + access: '⌃⌥' + }; + var other = { + meta: 'Ctrl ', + access: 'Shift + Alt ' + }; + var replace = global$1.mac ? mac : other; + var shortcut = source.split('+'); + var updated = map(shortcut, function (segment) { + var search = segment.toLowerCase().trim(); + return has(replace, search) ? replace[search] : segment; + }); + return global$1.mac ? updated.join('').replace(/\s/, '') : updated.join('+'); + }; + + var tab = function () { + var shortcutList = map(shortcuts, function (shortcut) { + var shortcutText = map(shortcut.shortcuts, convertText).join(' or '); + return [ + shortcut.action, + shortcutText + ]; + }); + var tablePanel = { + type: 'table', + header: [ + 'Action', + 'Shortcut' + ], + cells: shortcutList + }; + return { + name: 'shortcuts', + title: 'Handy Shortcuts', + items: [tablePanel] + }; + }; + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.I18n'); + + var urls = [ + { + key: 'advlist', + name: 'Advanced List' + }, + { + key: 'anchor', + name: 'Anchor' + }, + { + key: 'autolink', + name: 'Autolink' + }, + { + key: 'autoresize', + name: 'Autoresize' + }, + { + key: 'autosave', + name: 'Autosave' + }, + { + key: 'bbcode', + name: 'BBCode' + }, + { + key: 'charmap', + name: 'Character Map' + }, + { + key: 'code', + name: 'Code' + }, + { + key: 'codesample', + name: 'Code Sample' + }, + { + key: 'colorpicker', + name: 'Color Picker' + }, + { + key: 'directionality', + name: 'Directionality' + }, + { + key: 'emoticons', + name: 'Emoticons' + }, + { + key: 'fullpage', + name: 'Full Page' + }, + { + key: 'fullscreen', + name: 'Full Screen' + }, + { + key: 'help', + name: 'Help' + }, + { + key: 'hr', + name: 'Horizontal Rule' + }, + { + key: 'image', + name: 'Image' + }, + { + key: 'imagetools', + name: 'Image Tools' + }, + { + key: 'importcss', + name: 'Import CSS' + }, + { + key: 'insertdatetime', + name: 'Insert Date/Time' + }, + { + key: 'legacyoutput', + name: 'Legacy Output' + }, + { + key: 'link', + name: 'Link' + }, + { + key: 'lists', + name: 'Lists' + }, + { + key: 'media', + name: 'Media' + }, + { + key: 'nonbreaking', + name: 'Nonbreaking' + }, + { + key: 'noneditable', + name: 'Noneditable' + }, + { + key: 'pagebreak', + name: 'Page Break' + }, + { + key: 'paste', + name: 'Paste' + }, + { + key: 'preview', + name: 'Preview' + }, + { + key: 'print', + name: 'Print' + }, + { + key: 'save', + name: 'Save' + }, + { + key: 'searchreplace', + name: 'Search and Replace' + }, + { + key: 'spellchecker', + name: 'Spell Checker' + }, + { + key: 'tabfocus', + name: 'Tab Focus' + }, + { + key: 'table', + name: 'Table' + }, + { + key: 'template', + name: 'Template' + }, + { + key: 'textcolor', + name: 'Text Color' + }, + { + key: 'textpattern', + name: 'Text Pattern' + }, + { + key: 'toc', + name: 'Table of Contents' + }, + { + key: 'visualblocks', + name: 'Visual Blocks' + }, + { + key: 'visualchars', + name: 'Visual Characters' + }, + { + key: 'wordcount', + name: 'Word Count' + }, + { + key: 'advcode', + name: 'Advanced Code Editor*' + }, + { + key: 'formatpainter', + name: 'Format Painter*' + }, + { + key: 'powerpaste', + name: 'PowerPaste*' + }, + { + key: 'tinydrive', + name: 'Tiny Drive*', + slug: 'drive' + }, + { + key: 'tinymcespellchecker', + name: 'Spell Checker Pro*' + }, + { + key: 'a11ychecker', + name: 'Accessibility Checker*' + }, + { + key: 'linkchecker', + name: 'Link Checker*' + }, + { + key: 'mentions', + name: 'Mentions*' + }, + { + key: 'mediaembed', + name: 'Enhanced Media Embed*' + }, + { + key: 'checklist', + name: 'Checklist*' + }, + { + key: 'casechange', + name: 'Case Change*' + }, + { + key: 'permanentpen', + name: 'Permanent Pen*' + }, + { + key: 'pageembed', + name: 'Page Embed*' + }, + { + key: 'tinycomments', + name: 'Tiny Comments*', + slug: 'comments' + }, + { + key: 'advtable', + name: 'Advanced Tables*' + }, + { + key: 'autocorrect', + name: 'Autocorrect*' + } + ]; + + var tab$1 = function (editor) { + var availablePlugins = function () { + var premiumPlugins = [ + 'Accessibility Checker', + 'Advanced Code Editor', + 'Advanced Tables', + 'Case Change', + 'Checklist', + 'Tiny Comments', + 'Tiny Drive', + 'Enhanced Media Embed', + 'Format Painter', + 'Link Checker', + 'Mentions', + 'MoxieManager', + 'Page Embed', + 'Permanent Pen', + 'PowerPaste', + 'Spell Checker Pro' + ]; + var premiumPluginList = map(premiumPlugins, function (plugin) { + return '
  • ' + global$2.translate(plugin) + '
  • '; + }).join(''); + return '
    ' + '

    ' + global$2.translate('Premium plugins:') + '

    ' + '' + '
    '; + }; + var makeLink = function (p) { + return '' + p.name + ''; + }; + var maybeUrlize = function (editor, key) { + return find(urls, function (x) { + return x.key === key; + }).fold(function () { + var getMetadata = editor.plugins[key].getMetadata; + return typeof getMetadata === 'function' ? makeLink(getMetadata()) : key; + }, function (x) { + var urlSlug = x.slug || x.key; + return makeLink({ + name: x.name, + url: 'https://www.tiny.cloud/docs/plugins/' + urlSlug + }); + }); + }; + var getPluginKeys = function (editor) { + var keys$1 = keys(editor.plugins); + var forced_plugins = getForcedPlugins(editor); + return forced_plugins === undefined ? keys$1 : filter(keys$1, function (k) { + return !contains(forced_plugins, k); + }); + }; + var pluginLister = function (editor) { + var pluginKeys = getPluginKeys(editor); + var pluginLis = map(pluginKeys, function (key) { + return '
  • ' + maybeUrlize(editor, key) + '
  • '; + }); + var count = pluginLis.length; + var pluginsString = pluginLis.join(''); + var html = '

    ' + global$2.translate([ + 'Plugins installed ({0}):', + count + ]) + '

    ' + '
      ' + pluginsString + '
    '; + return html; + }; + var installedPlugins = function (editor) { + if (editor == null) { + return ''; + } + return '
    ' + pluginLister(editor) + '
    '; + }; + var htmlPanel = { + type: 'htmlpanel', + presets: 'document', + html: [ + installedPlugins(editor), + availablePlugins() + ].join('') + }; + return { + name: 'plugins', + title: 'Plugins', + items: [htmlPanel] + }; + }; + + var global$3 = tinymce.util.Tools.resolve('tinymce.EditorManager'); + + var tab$2 = function () { + var getVersion = function (major, minor) { + return major.indexOf('@') === 0 ? 'X.X.X' : major + '.' + minor; + }; + var version = getVersion(global$3.majorVersion, global$3.minorVersion); + var changeLogLink = 'TinyMCE ' + version + ''; + var htmlPanel = { + type: 'htmlpanel', + html: '

    ' + global$2.translate([ + 'You are using {0}', + changeLogLink + ]) + '

    ', + presets: 'document' + }; + return { + name: 'versions', + title: 'Version', + items: [htmlPanel] + }; + }; + + var description = '

    Editor UI keyboard navigation

    \n\n

    Activating keyboard navigation

    \n\n

    The sections of the outer UI of the editor - the menubar, toolbar, sidebar and footer - are all keyboard navigable. As such, there are multiple ways to activate keyboard navigation:

    \n
      \n
    • Focus the menubar: Alt + F9 (Windows) or ⌥F9 (MacOS)
    • \n
    • Focus the toolbar: Alt + F10 (Windows) or ⌥F10 (MacOS)
    • \n
    • Focus the footer: Alt + F11 (Windows) or ⌥F11 (MacOS)
    • \n
    \n\n

    Focusing the menubar or toolbar will start keyboard navigation at the first item in the menubar or toolbar, which will be highlighted with a gray background. Focusing the footer will start keyboard navigation at the first item in the element path, which will be highlighted with an underline.

    \n\n

    Moving between UI sections

    \n\n

    When keyboard navigation is active, pressing tab will move the focus to the next major section of the UI, where applicable. These sections are:

    \n
      \n
    • the menubar
    • \n
    • each group of the toolbar
    • \n
    • the sidebar
    • \n
    • the element path in the footer
    • \n
    • the wordcount toggle button in the footer
    • \n
    • the branding link in the footer
    • \n
    \n\n

    Pressing shift + tab will move backwards through the same sections, except when moving from the footer to the toolbar. Focusing the element path then pressing shift + tab will move focus to the first toolbar group, not the last.

    \n\n

    Moving within UI sections

    \n\n

    Keyboard navigation within UI sections can usually be achieved using the left and right arrow keys. This includes:

    \n
      \n
    • moving between menus in the menubar
    • \n
    • moving between buttons in a toolbar group
    • \n
    • moving between items in the element path
    • \n
    \n\n

    In all these UI sections, keyboard navigation will cycle within the section. For example, focusing the last button in a toolbar group then pressing right arrow will move focus to the first item in the same toolbar group.

    \n\n

    Executing buttons

    \n\n

    To execute a button, navigate the selection to the desired button and hit space or enter.

    \n\n

    Opening, navigating and closing menus

    \n\n

    When focusing a menubar button or a toolbar button with a menu, pressing space, enter or down arrow will open the menu. When the menu opens the first item will be selected. To move up or down the menu, press the up or down arrow key respectively. This is the same for submenus, which can also be opened and closed using the left and right arrow keys.

    \n\n

    To close any active menu, hit the escape key. When a menu is closed the selection will be restored to its previous selection. This also works for closing submenus.

    \n\n

    Context toolbars and menus

    \n\n

    To focus an open context toolbar such as the table context toolbar, press Ctrl + F9 (Windows) or ⌃F9 (MacOS).

    \n\n

    Context toolbar navigation is the same as toolbar navigation, and context menu navigation is the same as standard menu navigation.

    \n\n

    Dialog navigation

    \n\n

    There are two types of dialog UIs in TinyMCE: tabbed dialogs and non-tabbed dialogs.

    \n\n

    When a non-tabbed dialog is opened, the first interactive component in the dialog will be focused. Users can navigate between interactive components by pressing tab. This includes any footer buttons. Navigation will cycle back to the first dialog component if tab is pressed while focusing the last component in the dialog. Pressing shift + tab will navigate backwards.

    \n\n

    When a tabbed dialog is opened, the first button in the tab menu is focused. Pressing tab will navigate to the first interactive component in that tab, and will cycle through the tab\u2019s components, the footer buttons, then back to the tab button. To switch to another tab, focus the tab button for the current tab, then use the arrow keys to cycle through the tab buttons.

    '; + var tab$3 = function () { + var body = { + type: 'htmlpanel', + presets: 'document', + html: description + }; + return { + name: 'keyboardnav', + title: 'Keyboard Navigation', + items: [body] + }; + }; + + var parseHelpTabsSetting = function (tabsFromSettings, tabs) { + var newTabs = {}; + var names = map(tabsFromSettings, function (t) { + if (typeof t === 'string') { + if (has(tabs, t)) { + newTabs[t] = tabs[t]; + } + return t; + } else { + newTabs[t.name] = t; + return t.name; + } + }); + return { + tabs: newTabs, + names: names + }; + }; + var getNamesFromTabs = function (tabs) { + var names = keys(tabs); + var idx = names.indexOf('versions'); + if (idx !== -1) { + names.splice(idx, 1); + names.push('versions'); + } + return { + tabs: tabs, + names: names + }; + }; + var parseCustomTabs = function (editor, customTabs) { + var _a; + var shortcuts = tab(); + var nav = tab$3(); + var plugins = tab$1(editor); + var versions = tab$2(); + var tabs = __assign((_a = {}, _a[shortcuts.name] = shortcuts, _a[nav.name] = nav, _a[plugins.name] = plugins, _a[versions.name] = versions, _a), customTabs.get()); + return getHelpTabs(editor).fold(function () { + return getNamesFromTabs(tabs); + }, function (tabsFromSettings) { + return parseHelpTabsSetting(tabsFromSettings, tabs); + }); + }; + var init = function (editor, customTabs) { + return function () { + var _a = parseCustomTabs(editor, customTabs), tabs = _a.tabs, names = _a.names; + var foundTabs = map(names, function (name) { + return get$1(tabs, name); + }); + var dialogTabs = cat(foundTabs); + var body = { + type: 'tabpanel', + tabs: dialogTabs + }; + editor.windowManager.open({ + title: 'Help', + size: 'medium', + body: body, + buttons: [{ + type: 'cancel', + name: 'close', + text: 'Close', + primary: true + }], + initialData: {} + }); + }; + }; + + function Plugin () { + global.add('help', function (editor) { + var customTabs = Cell({}); + var api = get(customTabs); + var dialogOpener = init(editor, customTabs); + register$1(editor, dialogOpener); + register(editor, dialogOpener); + editor.shortcuts.add('Alt+0', 'Open help dialog', 'mceHelp'); + return api; + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/help/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/help/plugin.min.js new file mode 100755 index 0000000..7b8f4d2 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/help/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var e,t,n,a=tinymce.util.Tools.resolve("tinymce.PluginManager"),m=function(){return(m=Object.assign||function(e){for(var t,n=1,a=arguments.length;n'+e.name+""};return{name:"plugins",title:"Plugins",items:[{type:"htmlpanel",presets:"document",html:[null==(n=e)?"":'
    '+function(a){var e,t,n,o=(t=f((e=a).plugins),(n=e.getParam("forced_plugins"))===undefined?t:function(e,t){for(var n=[],a=0,o=e.length;a"+(t=a,n=e,g(C,function(e){return e.key===n}).fold(function(){var e=t.plugins[n].getMetadata;return"function"==typeof e?c(e()):n},function(e){var t=e.slug||e.key;return c({name:e.name,url:"https://www.tiny.cloud/docs/plugins/"+t})}))+"";var t,n}),r=i.length,s=i.join("");return"

    "+A.translate(["Plugins installed ({0}):",r])+"

      "+s+"
    "}(n)+"
    ",(t=p(["Accessibility Checker","Advanced Code Editor","Advanced Tables","Case Change","Checklist","Tiny Comments","Tiny Drive","Enhanced Media Embed","Format Painter","Link Checker","Mentions","MoxieManager","Page Embed","Permanent Pen","PowerPaste","Spell Checker Pro"],function(e){return"
  • "+A.translate(e)+"
  • "}).join(""),'

    '+A.translate("Premium plugins:")+"

    ")].join("")}]}},x=tinymce.util.Tools.resolve("tinymce.EditorManager"),P=function(e,t){var n,a,o,i,r,s={name:"shortcuts",title:"Handy Shortcuts",items:[{type:"table",header:["Action","Shortcut"],cells:p(k,function(e){var t=p(e.shortcuts,w).join(" or ");return[e.action,t]})}]},c={name:"keyboardnav",title:"Keyboard Navigation",items:[{type:"htmlpanel",presets:"document",html:"

    Editor UI keyboard navigation

    \n\n

    Activating keyboard navigation

    \n\n

    The sections of the outer UI of the editor - the menubar, toolbar, sidebar and footer - are all keyboard navigable. As such, there are multiple ways to activate keyboard navigation:

    \n
      \n
    • Focus the menubar: Alt + F9 (Windows) or ⌥F9 (MacOS)
    • \n
    • Focus the toolbar: Alt + F10 (Windows) or ⌥F10 (MacOS)
    • \n
    • Focus the footer: Alt + F11 (Windows) or ⌥F11 (MacOS)
    • \n
    \n\n

    Focusing the menubar or toolbar will start keyboard navigation at the first item in the menubar or toolbar, which will be highlighted with a gray background. Focusing the footer will start keyboard navigation at the first item in the element path, which will be highlighted with an underline.

    \n\n

    Moving between UI sections

    \n\n

    When keyboard navigation is active, pressing tab will move the focus to the next major section of the UI, where applicable. These sections are:

    \n
      \n
    • the menubar
    • \n
    • each group of the toolbar
    • \n
    • the sidebar
    • \n
    • the element path in the footer
    • \n
    • the wordcount toggle button in the footer
    • \n
    • the branding link in the footer
    • \n
    \n\n

    Pressing shift + tab will move backwards through the same sections, except when moving from the footer to the toolbar. Focusing the element path then pressing shift + tab will move focus to the first toolbar group, not the last.

    \n\n

    Moving within UI sections

    \n\n

    Keyboard navigation within UI sections can usually be achieved using the left and right arrow keys. This includes:

    \n
      \n
    • moving between menus in the menubar
    • \n
    • moving between buttons in a toolbar group
    • \n
    • moving between items in the element path
    • \n
    \n\n

    In all these UI sections, keyboard navigation will cycle within the section. For example, focusing the last button in a toolbar group then pressing right arrow will move focus to the first item in the same toolbar group.

    \n\n

    Executing buttons

    \n\n

    To execute a button, navigate the selection to the desired button and hit space or enter.

    \n\n

    Opening, navigating and closing menus

    \n\n

    When focusing a menubar button or a toolbar button with a menu, pressing space, enter or down arrow will open the menu. When the menu opens the first item will be selected. To move up or down the menu, press the up or down arrow key respectively. This is the same for submenus, which can also be opened and closed using the left and right arrow keys.

    \n\n

    To close any active menu, hit the escape key. When a menu is closed the selection will be restored to its previous selection. This also works for closing submenus.

    \n\n

    Context toolbars and menus

    \n\n

    To focus an open context toolbar such as the table context toolbar, press Ctrl + F9 (Windows) or ⌃F9 (MacOS).

    \n\n

    Context toolbar navigation is the same as toolbar navigation, and context menu navigation is the same as standard menu navigation.

    \n\n

    Dialog navigation

    \n\n

    There are two types of dialog UIs in TinyMCE: tabbed dialogs and non-tabbed dialogs.

    \n\n

    When a non-tabbed dialog is opened, the first interactive component in the dialog will be focused. Users can navigate between interactive components by pressing tab. This includes any footer buttons. Navigation will cycle back to the first dialog component if tab is pressed while focusing the last component in the dialog. Pressing shift + tab will navigate backwards.

    \n\n

    When a tabbed dialog is opened, the first button in the tab menu is focused. Pressing tab will navigate to the first interactive component in that tab, and will cycle through the tab\u2019s components, the footer buttons, then back to the tab button. To switch to another tab, focus the tab button for the current tab, then use the arrow keys to cycle through the tab buttons.

    "}]},l=T(e),u=(i='TinyMCE '+(a=x.majorVersion,o=x.minorVersion,0===a.indexOf("@")?"X.X.X":a+"."+o)+"",{name:"versions",title:"Version",items:[{type:"htmlpanel",html:"

    "+A.translate(["You are using {0}",i])+"

    ",presets:"document"}]}),h=m(((n={})[s.name]=s,n[c.name]=c,n[l.name]=l,n[u.name]=u,n),t.get());return r=e,d.from(r.getParam("help_tabs")).fold(function(){return t=f(e=h),-1!==(n=t.indexOf("versions"))&&(t.splice(n,1),t.push("versions")),{tabs:e,names:t};var e,t,n},function(e){return t=h,n={},a=p(e,function(e){return"string"==typeof e?(y(t,e)&&(n[e]=t[e]),e):(n[e.name]=e).name}),{tabs:n,names:a};var t,n,a})},M=function(o,i){return function(){var e=P(o,i),a=e.tabs,t=e.names,n={type:"tabpanel",tabs:function(e){for(var t=[],n=function(e){t.push(e)},a=0;a'); + }); + }; + + var register$1 = function (editor) { + editor.ui.registry.addButton('hr', { + icon: 'horizontal-rule', + tooltip: 'Horizontal line', + onAction: function () { + return editor.execCommand('InsertHorizontalRule'); + } + }); + editor.ui.registry.addMenuItem('hr', { + icon: 'horizontal-rule', + text: 'Horizontal line', + onAction: function () { + return editor.execCommand('InsertHorizontalRule'); + } + }); + }; + + function Plugin () { + global.add('hr', function (editor) { + register(editor); + register$1(editor); + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/hr/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/hr/plugin.min.js new file mode 100755 index 0000000..392e58f --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/hr/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager");!function o(){n.add("hr",function(n){var o,t;(o=n).addCommand("InsertHorizontalRule",function(){o.execCommand("mceInsertContent",!1,"
    ")}),(t=n).ui.registry.addButton("hr",{icon:"horizontal-rule",tooltip:"Horizontal line",onAction:function(){return t.execCommand("InsertHorizontalRule")}}),t.ui.registry.addMenuItem("hr",{icon:"horizontal-rule",text:"Horizontal line",onAction:function(){return t.execCommand("InsertHorizontalRule")}})})}()}(); \ No newline at end of file diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/image/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/image/plugin.js new file mode 100755 index 0000000..80f7fd4 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/image/plugin.js @@ -0,0 +1,1660 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function (domGlobals) { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var noop = function () { + }; + var constant = function (value) { + return function () { + return value; + }; + }; + var never = constant(false); + var always = constant(true); + + var none = function () { + return NONE; + }; + var NONE = function () { + var eq = function (o) { + return o.isNone(); + }; + var call = function (thunk) { + return thunk(); + }; + var id = function (n) { + return n; + }; + var me = { + fold: function (n, _s) { + return n(); + }, + is: never, + isSome: never, + isNone: always, + getOr: id, + getOrThunk: call, + getOrDie: function (msg) { + throw new Error(msg || 'error: getOrDie called on none.'); + }, + getOrNull: constant(null), + getOrUndefined: constant(undefined), + or: id, + orThunk: call, + map: none, + each: noop, + bind: none, + exists: never, + forall: always, + filter: none, + equals: eq, + equals_: eq, + toArray: function () { + return []; + }, + toString: constant('none()') + }; + return me; + }(); + var some = function (a) { + var constant_a = constant(a); + var self = function () { + return me; + }; + var bind = function (f) { + return f(a); + }; + var me = { + fold: function (n, s) { + return s(a); + }, + is: function (v) { + return a === v; + }, + isSome: always, + isNone: never, + getOr: constant_a, + getOrThunk: constant_a, + getOrDie: constant_a, + getOrNull: constant_a, + getOrUndefined: constant_a, + or: self, + orThunk: self, + map: function (f) { + return some(f(a)); + }, + each: function (f) { + f(a); + }, + bind: bind, + exists: bind, + forall: bind, + filter: function (f) { + return f(a) ? me : NONE; + }, + toArray: function () { + return [a]; + }, + toString: function () { + return 'some(' + a + ')'; + }, + equals: function (o) { + return o.is(a); + }, + equals_: function (o, elementEq) { + return o.fold(never, function (b) { + return elementEq(a, b); + }); + } + }; + return me; + }; + var from = function (value) { + return value === null || value === undefined ? NONE : some(value); + }; + var Option = { + some: some, + none: none, + from: from + }; + + var typeOf = function (x) { + var t = typeof x; + if (x === null) { + return 'null'; + } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) { + return 'array'; + } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) { + return 'string'; + } else { + return t; + } + }; + var isType = function (type) { + return function (value) { + return typeOf(value) === type; + }; + }; + var isSimpleType = function (type) { + return function (value) { + return typeof value === type; + }; + }; + var eq = function (t) { + return function (a) { + return t === a; + }; + }; + var isString = isType('string'); + var isObject = isType('object'); + var isArray = isType('array'); + var isNull = eq(null); + var isBoolean = isSimpleType('boolean'); + var isNumber = isSimpleType('number'); + + var nativePush = Array.prototype.push; + var flatten = function (xs) { + var r = []; + for (var i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + var head = function (xs) { + return xs.length === 0 ? Option.none() : Option.some(xs[0]); + }; + var findMap = function (arr, f) { + for (var i = 0; i < arr.length; i++) { + var r = f(arr[i], i); + if (r.isSome()) { + return r; + } + } + return Option.none(); + }; + + var hasOwnProperty = Object.prototype.hasOwnProperty; + var deep = function (old, nu) { + var bothObjects = isObject(old) && isObject(nu); + return bothObjects ? deepMerge(old, nu) : nu; + }; + var baseMerge = function (merger) { + return function () { + var objects = new Array(arguments.length); + for (var i = 0; i < objects.length; i++) { + objects[i] = arguments[i]; + } + if (objects.length === 0) { + throw new Error('Can\'t merge zero objects'); + } + var ret = {}; + for (var j = 0; j < objects.length; j++) { + var curObject = objects[j]; + for (var key in curObject) { + if (hasOwnProperty.call(curObject, key)) { + ret[key] = merger(ret[key], curObject[key]); + } + } + } + return ret; + }; + }; + var deepMerge = baseMerge(deep); + + var __assign = function () { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); + + var rawSet = function (dom, key, value) { + if (isString(value) || isBoolean(value) || isNumber(value)) { + dom.setAttribute(key, value + ''); + } else { + domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom); + throw new Error('Attribute value was not simple'); + } + }; + var set = function (element, key, value) { + rawSet(element.dom(), key, value); + }; + var remove = function (element, key) { + element.dom().removeAttribute(key); + }; + + var fromHtml = function (html, scope) { + var doc = scope || domGlobals.document; + var div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + domGlobals.console.error('HTML does not have a single root node', html); + throw new Error('HTML must have a single root node'); + } + return fromDom(div.childNodes[0]); + }; + var fromTag = function (tag, scope) { + var doc = scope || domGlobals.document; + var node = doc.createElement(tag); + return fromDom(node); + }; + var fromText = function (text, scope) { + var doc = scope || domGlobals.document; + var node = doc.createTextNode(text); + return fromDom(node); + }; + var fromDom = function (node) { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: constant(node) }; + }; + var fromPoint = function (docElm, x, y) { + var doc = docElm.dom(); + return Option.from(doc.elementFromPoint(x, y)).map(fromDom); + }; + var Element = { + fromHtml: fromHtml, + fromTag: fromTag, + fromText: fromText, + fromDom: fromDom, + fromPoint: fromPoint + }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Promise'); + + var global$3 = tinymce.util.Tools.resolve('tinymce.util.XHR'); + + var hasDimensions = function (editor) { + return editor.getParam('image_dimensions', true, 'boolean'); + }; + var hasAdvTab = function (editor) { + return editor.getParam('image_advtab', false, 'boolean'); + }; + var hasUploadTab = function (editor) { + return editor.getParam('image_uploadtab', true, 'boolean'); + }; + var getPrependUrl = function (editor) { + return editor.getParam('image_prepend_url', '', 'string'); + }; + var getClassList = function (editor) { + return editor.getParam('image_class_list'); + }; + var hasDescription = function (editor) { + return editor.getParam('image_description', true, 'boolean'); + }; + var hasImageTitle = function (editor) { + return editor.getParam('image_title', false, 'boolean'); + }; + var hasImageCaption = function (editor) { + return editor.getParam('image_caption', false, 'boolean'); + }; + var getImageList = function (editor) { + return editor.getParam('image_list', false); + }; + var hasUploadUrl = function (editor) { + return !!getUploadUrl(editor); + }; + var hasUploadHandler = function (editor) { + return !!getUploadHandler(editor); + }; + var getUploadUrl = function (editor) { + return editor.getParam('images_upload_url', '', 'string'); + }; + var getUploadHandler = function (editor) { + return editor.getParam('images_upload_handler', undefined, 'function'); + }; + var getUploadBasePath = function (editor) { + return editor.getParam('images_upload_base_path', undefined, 'string'); + }; + var getUploadCredentials = function (editor) { + return editor.getParam('images_upload_credentials', false, 'boolean'); + }; + var showAccessibilityOptions = function (editor) { + return editor.getParam('a11y_advanced_options', false, 'boolean'); + }; + var isAutomaticUploadsEnabled = function (editor) { + return editor.getParam('automatic_uploads', true, 'boolean'); + }; + + var parseIntAndGetMax = function (val1, val2) { + return Math.max(parseInt(val1, 10), parseInt(val2, 10)); + }; + var getImageSize = function (url) { + return new global$2(function (callback) { + var img = domGlobals.document.createElement('img'); + var done = function (dimensions) { + if (img.parentNode) { + img.parentNode.removeChild(img); + } + callback(dimensions); + }; + img.onload = function () { + var width = parseIntAndGetMax(img.width, img.clientWidth); + var height = parseIntAndGetMax(img.height, img.clientHeight); + var dimensions = { + width: width, + height: height + }; + done(global$2.resolve(dimensions)); + }; + img.onerror = function () { + done(global$2.reject('Failed to get image dimensions for: ' + url)); + }; + var style = img.style; + style.visibility = 'hidden'; + style.position = 'fixed'; + style.bottom = style.left = '0px'; + style.width = style.height = 'auto'; + domGlobals.document.body.appendChild(img); + img.src = url; + }); + }; + var removePixelSuffix = function (value) { + if (value) { + value = value.replace(/px$/, ''); + } + return value; + }; + var addPixelSuffix = function (value) { + if (value.length > 0 && /^[0-9]+$/.test(value)) { + value += 'px'; + } + return value; + }; + var mergeMargins = function (css) { + if (css.margin) { + var splitMargin = String(css.margin).split(' '); + switch (splitMargin.length) { + case 1: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[0]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; + css['margin-left'] = css['margin-left'] || splitMargin[0]; + break; + case 2: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; + css['margin-left'] = css['margin-left'] || splitMargin[1]; + break; + case 3: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; + css['margin-left'] = css['margin-left'] || splitMargin[1]; + break; + case 4: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; + css['margin-left'] = css['margin-left'] || splitMargin[3]; + } + delete css.margin; + } + return css; + }; + var createImageList = function (editor, callback) { + var imageList = getImageList(editor); + if (typeof imageList === 'string') { + global$3.send({ + url: imageList, + success: function (text) { + callback(JSON.parse(text)); + } + }); + } else if (typeof imageList === 'function') { + imageList(callback); + } else { + callback(imageList); + } + }; + var waitLoadImage = function (editor, data, imgElm) { + var selectImage = function () { + imgElm.onload = imgElm.onerror = null; + if (editor.selection) { + editor.selection.select(imgElm); + editor.nodeChanged(); + } + }; + imgElm.onload = function () { + if (!data.width && !data.height && hasDimensions(editor)) { + editor.dom.setAttribs(imgElm, { + width: String(imgElm.clientWidth), + height: String(imgElm.clientHeight) + }); + } + selectImage(); + }; + imgElm.onerror = selectImage; + }; + var blobToDataUri = function (blob) { + return new global$2(function (resolve, reject) { + var reader = new domGlobals.FileReader(); + reader.onload = function () { + resolve(reader.result); + }; + reader.onerror = function () { + reject(reader.error.message); + }; + reader.readAsDataURL(blob); + }); + }; + var isPlaceholderImage = function (imgElm) { + return imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder')); + }; + + var DOM = global$1.DOM; + var getHspace = function (image) { + if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) { + return removePixelSuffix(image.style.marginLeft); + } else { + return ''; + } + }; + var getVspace = function (image) { + if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) { + return removePixelSuffix(image.style.marginTop); + } else { + return ''; + } + }; + var getBorder = function (image) { + if (image.style.borderWidth) { + return removePixelSuffix(image.style.borderWidth); + } else { + return ''; + } + }; + var getAttrib = function (image, name) { + if (image.hasAttribute(name)) { + return image.getAttribute(name); + } else { + return ''; + } + }; + var getStyle = function (image, name) { + return image.style[name] ? image.style[name] : ''; + }; + var hasCaption = function (image) { + return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE'; + }; + var updateAttrib = function (image, name, value) { + if (value === '') { + image.removeAttribute(name); + } else { + image.setAttribute(name, value); + } + }; + var wrapInFigure = function (image) { + var figureElm = DOM.create('figure', { class: 'image' }); + DOM.insertAfter(figureElm, image); + figureElm.appendChild(image); + figureElm.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption')); + figureElm.contentEditable = 'false'; + }; + var removeFigure = function (image) { + var figureElm = image.parentNode; + DOM.insertAfter(image, figureElm); + DOM.remove(figureElm); + }; + var toggleCaption = function (image) { + if (hasCaption(image)) { + removeFigure(image); + } else { + wrapInFigure(image); + } + }; + var normalizeStyle = function (image, normalizeCss) { + var attrValue = image.getAttribute('style'); + var value = normalizeCss(attrValue !== null ? attrValue : ''); + if (value.length > 0) { + image.setAttribute('style', value); + image.setAttribute('data-mce-style', value); + } else { + image.removeAttribute('style'); + } + }; + var setSize = function (name, normalizeCss) { + return function (image, name, value) { + if (image.style[name]) { + image.style[name] = addPixelSuffix(value); + normalizeStyle(image, normalizeCss); + } else { + updateAttrib(image, name, value); + } + }; + }; + var getSize = function (image, name) { + if (image.style[name]) { + return removePixelSuffix(image.style[name]); + } else { + return getAttrib(image, name); + } + }; + var setHspace = function (image, value) { + var pxValue = addPixelSuffix(value); + image.style.marginLeft = pxValue; + image.style.marginRight = pxValue; + }; + var setVspace = function (image, value) { + var pxValue = addPixelSuffix(value); + image.style.marginTop = pxValue; + image.style.marginBottom = pxValue; + }; + var setBorder = function (image, value) { + var pxValue = addPixelSuffix(value); + image.style.borderWidth = pxValue; + }; + var setBorderStyle = function (image, value) { + image.style.borderStyle = value; + }; + var getBorderStyle = function (image) { + return getStyle(image, 'borderStyle'); + }; + var isFigure = function (elm) { + return elm.nodeName === 'FIGURE'; + }; + var isImage = function (elm) { + return elm.nodeName === 'IMG'; + }; + var getIsDecorative = function (image) { + return DOM.getAttrib(image, 'alt').length === 0 && DOM.getAttrib(image, 'role') === 'presentation'; + }; + var getAlt = function (image) { + if (getIsDecorative(image)) { + return ''; + } else { + return getAttrib(image, 'alt'); + } + }; + var defaultData = function () { + return { + src: '', + alt: '', + title: '', + width: '', + height: '', + class: '', + style: '', + caption: false, + hspace: '', + vspace: '', + border: '', + borderStyle: '', + isDecorative: false + }; + }; + var getStyleValue = function (normalizeCss, data) { + var image = domGlobals.document.createElement('img'); + updateAttrib(image, 'style', data.style); + if (getHspace(image) || data.hspace !== '') { + setHspace(image, data.hspace); + } + if (getVspace(image) || data.vspace !== '') { + setVspace(image, data.vspace); + } + if (getBorder(image) || data.border !== '') { + setBorder(image, data.border); + } + if (getBorderStyle(image) || data.borderStyle !== '') { + setBorderStyle(image, data.borderStyle); + } + return normalizeCss(image.getAttribute('style')); + }; + var create = function (normalizeCss, data) { + var image = domGlobals.document.createElement('img'); + write(normalizeCss, __assign(__assign({}, data), { caption: false }), image); + setAlt(image, data.alt, data.isDecorative); + if (data.caption) { + var figure = DOM.create('figure', { class: 'image' }); + figure.appendChild(image); + figure.appendChild(DOM.create('figcaption', { contentEditable: 'true' }, 'Caption')); + figure.contentEditable = 'false'; + return figure; + } else { + return image; + } + }; + var read = function (normalizeCss, image) { + return { + src: getAttrib(image, 'src'), + alt: getAlt(image), + title: getAttrib(image, 'title'), + width: getSize(image, 'width'), + height: getSize(image, 'height'), + class: getAttrib(image, 'class'), + style: normalizeCss(getAttrib(image, 'style')), + caption: hasCaption(image), + hspace: getHspace(image), + vspace: getVspace(image), + border: getBorder(image), + borderStyle: getStyle(image, 'borderStyle'), + isDecorative: getIsDecorative(image) + }; + }; + var updateProp = function (image, oldData, newData, name, set) { + if (newData[name] !== oldData[name]) { + set(image, name, newData[name]); + } + }; + var setAlt = function (image, alt, isDecorative) { + if (isDecorative) { + DOM.setAttrib(image, 'role', 'presentation'); + var sugarImage = Element.fromDom(image); + set(sugarImage, 'alt', ''); + } else { + if (isNull(alt)) { + var sugarImage = Element.fromDom(image); + remove(sugarImage, 'alt'); + } else { + var sugarImage = Element.fromDom(image); + set(sugarImage, 'alt', alt); + } + if (DOM.getAttrib(image, 'role') === 'presentation') { + DOM.setAttrib(image, 'role', ''); + } + } + }; + var updateAlt = function (image, oldData, newData) { + if (newData.alt !== oldData.alt || newData.isDecorative !== oldData.isDecorative) { + setAlt(image, newData.alt, newData.isDecorative); + } + }; + var normalized = function (set, normalizeCss) { + return function (image, name, value) { + set(image, value); + normalizeStyle(image, normalizeCss); + }; + }; + var write = function (normalizeCss, newData, image) { + var oldData = read(normalizeCss, image); + updateProp(image, oldData, newData, 'caption', function (image, _name, _value) { + return toggleCaption(image); + }); + updateProp(image, oldData, newData, 'src', updateAttrib); + updateProp(image, oldData, newData, 'title', updateAttrib); + updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss)); + updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss)); + updateProp(image, oldData, newData, 'class', updateAttrib); + updateProp(image, oldData, newData, 'style', normalized(function (image, value) { + return updateAttrib(image, 'style', value); + }, normalizeCss)); + updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss)); + updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss)); + updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss)); + updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss)); + updateAlt(image, oldData, newData); + }; + + var normalizeCss = function (editor, cssText) { + var css = editor.dom.styles.parse(cssText); + var mergedCss = mergeMargins(css); + var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss)); + return editor.dom.styles.serialize(compressed); + }; + var getSelectedImage = function (editor) { + var imgElm = editor.selection.getNode(); + var figureElm = editor.dom.getParent(imgElm, 'figure.image'); + if (figureElm) { + return editor.dom.select('img', figureElm)[0]; + } + if (imgElm && (imgElm.nodeName !== 'IMG' || isPlaceholderImage(imgElm))) { + return null; + } + return imgElm; + }; + var splitTextBlock = function (editor, figure) { + var dom = editor.dom; + var textBlock = dom.getParent(figure.parentNode, function (node) { + return !!editor.schema.getTextBlockElements()[node.nodeName]; + }, editor.getBody()); + if (textBlock) { + return dom.split(textBlock, figure); + } else { + return figure; + } + }; + var readImageDataFromSelection = function (editor) { + var image = getSelectedImage(editor); + return image ? read(function (css) { + return normalizeCss(editor, css); + }, image) : defaultData(); + }; + var insertImageAtCaret = function (editor, data) { + var elm = create(function (css) { + return normalizeCss(editor, css); + }, data); + editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew'); + editor.focus(); + editor.selection.setContent(elm.outerHTML); + var insertedElm = editor.dom.select('*[data-mce-id="__mcenew"]')[0]; + editor.dom.setAttrib(insertedElm, 'data-mce-id', null); + if (isFigure(insertedElm)) { + var figure = splitTextBlock(editor, insertedElm); + editor.selection.select(figure); + } else { + editor.selection.select(insertedElm); + } + }; + var syncSrcAttr = function (editor, image) { + editor.dom.setAttrib(image, 'src', image.getAttribute('src')); + }; + var deleteImage = function (editor, image) { + if (image) { + var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image; + editor.dom.remove(elm); + editor.focus(); + editor.nodeChanged(); + if (editor.dom.isEmpty(editor.getBody())) { + editor.setContent(''); + editor.selection.setCursorLocation(); + } + } + }; + var writeImageDataToSelection = function (editor, data) { + var image = getSelectedImage(editor); + write(function (css) { + return normalizeCss(editor, css); + }, data, image); + syncSrcAttr(editor, image); + if (isFigure(image.parentNode)) { + var figure = image.parentNode; + splitTextBlock(editor, figure); + editor.selection.select(image.parentNode); + } else { + editor.selection.select(image); + waitLoadImage(editor, data, image); + } + }; + var insertOrUpdateImage = function (editor, partialData) { + var image = getSelectedImage(editor); + if (image) { + var selectedImageData = read(function (css) { + return normalizeCss(editor, css); + }, image); + var data = __assign(__assign({}, selectedImageData), partialData); + if (data.src) { + writeImageDataToSelection(editor, data); + } else { + deleteImage(editor, image); + } + } else if (partialData.src) { + insertImageAtCaret(editor, __assign(__assign({}, defaultData()), partialData)); + } + }; + + var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var getValue = function (item) { + return isString(item.value) ? item.value : ''; + }; + var sanitizeList = function (list, extractValue) { + var out = []; + global$4.each(list, function (item) { + var text = isString(item.text) ? item.text : isString(item.title) ? item.title : ''; + if (item.menu !== undefined) { + var items = sanitizeList(item.menu, extractValue); + out.push({ + text: text, + items: items + }); + } else { + var value = extractValue(item); + out.push({ + text: text, + value: value + }); + } + }); + return out; + }; + var sanitizer = function (extracter) { + if (extracter === void 0) { + extracter = getValue; + } + return function (list) { + if (list) { + return Option.from(list).map(function (list) { + return sanitizeList(list, extracter); + }); + } else { + return Option.none(); + } + }; + }; + var sanitize = function (list) { + return sanitizer(getValue)(list); + }; + var isGroup = function (item) { + return Object.prototype.hasOwnProperty.call(item, 'items'); + }; + var findEntryDelegate = function (list, value) { + return findMap(list, function (item) { + if (isGroup(item)) { + return findEntryDelegate(item.items, value); + } else if (item.value === value) { + return Option.some(item); + } else { + return Option.none(); + } + }); + }; + var findEntry = function (optList, value) { + return optList.bind(function (list) { + return findEntryDelegate(list, value); + }); + }; + var ListUtils = { + sanitizer: sanitizer, + sanitize: sanitize, + findEntry: findEntry + }; + + var pathJoin = function (path1, path2) { + if (path1) { + return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, ''); + } + return path2; + }; + function Uploader (settings) { + var defaultHandler = function (blobInfo, success, failure, progress) { + var xhr = new domGlobals.XMLHttpRequest(); + xhr.open('POST', settings.url); + xhr.withCredentials = settings.credentials; + xhr.upload.onprogress = function (e) { + progress(e.loaded / e.total * 100); + }; + xhr.onerror = function () { + failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status); + }; + xhr.onload = function () { + if (xhr.status < 200 || xhr.status >= 300) { + failure('HTTP Error: ' + xhr.status); + return; + } + var json = JSON.parse(xhr.responseText); + if (!json || typeof json.location !== 'string') { + failure('Invalid JSON: ' + xhr.responseText); + return; + } + success(pathJoin(settings.basePath, json.location)); + }; + var formData = new domGlobals.FormData(); + formData.append('file', blobInfo.blob(), blobInfo.filename()); + xhr.send(formData); + }; + var uploadBlob = function (blobInfo, handler) { + return new global$2(function (resolve, reject) { + try { + handler(blobInfo, resolve, reject, noop); + } catch (ex) { + reject(ex.message); + } + }); + }; + var isDefaultHandler = function (handler) { + return handler === defaultHandler; + }; + var upload = function (blobInfo) { + return !settings.url && isDefaultHandler(settings.handler) ? global$2.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler); + }; + settings = global$4.extend({ + credentials: false, + handler: defaultHandler + }, settings); + return { upload: upload }; + } + + var makeTab = function (_info) { + return { + title: 'Advanced', + name: 'advanced', + items: [ + { + type: 'input', + label: 'Style', + name: 'style' + }, + { + type: 'grid', + columns: 2, + items: [ + { + type: 'input', + label: 'Vertical space', + name: 'vspace', + inputMode: 'numeric' + }, + { + type: 'input', + label: 'Horizontal space', + name: 'hspace', + inputMode: 'numeric' + }, + { + type: 'input', + label: 'Border width', + name: 'border', + inputMode: 'numeric' + }, + { + type: 'selectbox', + name: 'borderstyle', + label: 'Border style', + items: [ + { + text: 'Select...', + value: '' + }, + { + text: 'Solid', + value: 'solid' + }, + { + text: 'Dotted', + value: 'dotted' + }, + { + text: 'Dashed', + value: 'dashed' + }, + { + text: 'Double', + value: 'double' + }, + { + text: 'Groove', + value: 'groove' + }, + { + text: 'Ridge', + value: 'ridge' + }, + { + text: 'Inset', + value: 'inset' + }, + { + text: 'Outset', + value: 'outset' + }, + { + text: 'None', + value: 'none' + }, + { + text: 'Hidden', + value: 'hidden' + } + ] + } + ] + } + ] + }; + }; + var AdvTab = { makeTab: makeTab }; + + var collect = function (editor) { + var urlListSanitizer = ListUtils.sanitizer(function (item) { + return editor.convertURL(item.value || item.url, 'src'); + }); + var futureImageList = new global$2(function (completer) { + createImageList(editor, function (imageList) { + completer(urlListSanitizer(imageList).map(function (items) { + return flatten([ + [{ + text: 'None', + value: '' + }], + items + ]); + })); + }); + }); + var classList = ListUtils.sanitize(getClassList(editor)); + var hasAdvTab$1 = hasAdvTab(editor); + var hasUploadTab$1 = hasUploadTab(editor); + var hasUploadUrl$1 = hasUploadUrl(editor); + var hasUploadHandler$1 = hasUploadHandler(editor); + var image = readImageDataFromSelection(editor); + var hasDescription$1 = hasDescription(editor); + var hasImageTitle$1 = hasImageTitle(editor); + var hasDimensions$1 = hasDimensions(editor); + var hasImageCaption$1 = hasImageCaption(editor); + var hasAccessibilityOptions = showAccessibilityOptions(editor); + var url = getUploadUrl(editor); + var basePath = getUploadBasePath(editor); + var credentials = getUploadCredentials(editor); + var handler = getUploadHandler(editor); + var automaticUploads = isAutomaticUploadsEnabled(editor); + var prependURL = Option.some(getPrependUrl(editor)).filter(function (preUrl) { + return isString(preUrl) && preUrl.length > 0; + }); + return futureImageList.then(function (imageList) { + return { + image: image, + imageList: imageList, + classList: classList, + hasAdvTab: hasAdvTab$1, + hasUploadTab: hasUploadTab$1, + hasUploadUrl: hasUploadUrl$1, + hasUploadHandler: hasUploadHandler$1, + hasDescription: hasDescription$1, + hasImageTitle: hasImageTitle$1, + hasDimensions: hasDimensions$1, + hasImageCaption: hasImageCaption$1, + url: url, + basePath: basePath, + credentials: credentials, + handler: handler, + prependURL: prependURL, + hasAccessibilityOptions: hasAccessibilityOptions, + automaticUploads: automaticUploads + }; + }); + }; + + var makeItems = function (info) { + var imageUrl = { + name: 'src', + type: 'urlinput', + filetype: 'image', + label: 'Source' + }; + var imageList = info.imageList.map(function (items) { + return { + name: 'images', + type: 'selectbox', + label: 'Image list', + items: items + }; + }); + var imageDescription = { + name: 'alt', + type: 'input', + label: 'Alternative description', + disabled: info.hasAccessibilityOptions && info.image.isDecorative + }; + var imageTitle = { + name: 'title', + type: 'input', + label: 'Image title' + }; + var imageDimensions = { + name: 'dimensions', + type: 'sizeinput' + }; + var isDecorative = { + type: 'label', + label: 'Accessibility', + items: [{ + name: 'isDecorative', + type: 'checkbox', + label: 'Image is decorative' + }] + }; + var classList = info.classList.map(function (items) { + return { + name: 'classes', + type: 'selectbox', + label: 'Class', + items: items + }; + }); + var caption = { + type: 'label', + label: 'Caption', + items: [{ + type: 'checkbox', + name: 'caption', + label: 'Show caption' + }] + }; + return flatten([ + [imageUrl], + imageList.toArray(), + info.hasAccessibilityOptions && info.hasDescription ? [isDecorative] : [], + info.hasDescription ? [imageDescription] : [], + info.hasImageTitle ? [imageTitle] : [], + info.hasDimensions ? [imageDimensions] : [], + [{ + type: 'grid', + columns: 2, + items: flatten([ + classList.toArray(), + info.hasImageCaption ? [caption] : [] + ]) + }] + ]); + }; + var makeTab$1 = function (info) { + return { + title: 'General', + name: 'general', + items: makeItems(info) + }; + }; + var MainTab = { + makeTab: makeTab$1, + makeItems: makeItems + }; + + var makeTab$2 = function (_info) { + var items = [{ + type: 'dropzone', + name: 'fileinput' + }]; + return { + title: 'Upload', + name: 'upload', + items: items + }; + }; + var UploadTab = { makeTab: makeTab$2 }; + + var createState = function (info) { + return { + prevImage: ListUtils.findEntry(info.imageList, info.image.src), + prevAlt: info.image.alt, + open: true + }; + }; + var fromImageData = function (image) { + return { + src: { + value: image.src, + meta: {} + }, + images: image.src, + alt: image.alt, + title: image.title, + dimensions: { + width: image.width, + height: image.height + }, + classes: image.class, + caption: image.caption, + style: image.style, + vspace: image.vspace, + border: image.border, + hspace: image.hspace, + borderstyle: image.borderStyle, + fileinput: [], + isDecorative: image.isDecorative + }; + }; + var toImageData = function (data, removeEmptyAlt) { + return { + src: data.src.value, + alt: data.alt.length === 0 && removeEmptyAlt ? null : data.alt, + title: data.title, + width: data.dimensions.width, + height: data.dimensions.height, + class: data.classes, + style: data.style, + caption: data.caption, + hspace: data.hspace, + vspace: data.vspace, + border: data.border, + borderStyle: data.borderstyle, + isDecorative: data.isDecorative + }; + }; + var addPrependUrl2 = function (info, srcURL) { + if (!/^(?:[a-zA-Z]+:)?\/\//.test(srcURL)) { + return info.prependURL.bind(function (prependUrl) { + if (srcURL.substring(0, prependUrl.length) !== prependUrl) { + return Option.some(prependUrl + srcURL); + } + return Option.none(); + }); + } + return Option.none(); + }; + var addPrependUrl = function (info, api) { + var data = api.getData(); + addPrependUrl2(info, data.src.value).each(function (srcURL) { + api.setData({ + src: { + value: srcURL, + meta: data.src.meta + } + }); + }); + }; + var formFillFromMeta2 = function (info, data, meta) { + if (info.hasDescription && isString(meta.alt)) { + data.alt = meta.alt; + } + if (info.hasAccessibilityOptions) { + data.isDecorative = meta.isDecorative || data.isDecorative || false; + } + if (info.hasImageTitle && isString(meta.title)) { + data.title = meta.title; + } + if (info.hasDimensions) { + if (isString(meta.width)) { + data.dimensions.width = meta.width; + } + if (isString(meta.height)) { + data.dimensions.height = meta.height; + } + } + if (isString(meta.class)) { + ListUtils.findEntry(info.classList, meta.class).each(function (entry) { + data.classes = entry.value; + }); + } + if (info.hasImageCaption) { + if (isBoolean(meta.caption)) { + data.caption = meta.caption; + } + } + if (info.hasAdvTab) { + if (isString(meta.style)) { + data.style = meta.style; + } + if (isString(meta.vspace)) { + data.vspace = meta.vspace; + } + if (isString(meta.border)) { + data.border = meta.border; + } + if (isString(meta.hspace)) { + data.hspace = meta.hspace; + } + if (isString(meta.borderstyle)) { + data.borderstyle = meta.borderstyle; + } + } + }; + var formFillFromMeta = function (info, api) { + var data = api.getData(); + var meta = data.src.meta; + if (meta !== undefined) { + var newData = deepMerge({}, data); + formFillFromMeta2(info, newData, meta); + api.setData(newData); + } + }; + var calculateImageSize = function (helpers, info, state, api) { + var data = api.getData(); + var url = data.src.value; + var meta = data.src.meta || {}; + if (!meta.width && !meta.height && info.hasDimensions) { + helpers.imageSize(url).then(function (size) { + if (state.open) { + api.setData({ dimensions: size }); + } + }); + } + }; + var updateImagesDropdown = function (info, state, api) { + var data = api.getData(); + var image = ListUtils.findEntry(info.imageList, data.src.value); + state.prevImage = image; + api.setData({ + images: image.map(function (entry) { + return entry.value; + }).getOr('') + }); + }; + var changeSrc = function (helpers, info, state, api) { + addPrependUrl(info, api); + formFillFromMeta(info, api); + calculateImageSize(helpers, info, state, api); + updateImagesDropdown(info, state, api); + }; + var changeImages = function (helpers, info, state, api) { + var data = api.getData(); + var image = ListUtils.findEntry(info.imageList, data.images); + image.each(function (img) { + var updateAlt = data.alt === '' || state.prevImage.map(function (image) { + return image.text === data.alt; + }).getOr(false); + if (updateAlt) { + if (img.value === '') { + api.setData({ + src: img, + alt: state.prevAlt + }); + } else { + api.setData({ + src: img, + alt: img.text + }); + } + } else { + api.setData({ src: img }); + } + }); + state.prevImage = image; + changeSrc(helpers, info, state, api); + }; + var calcVSpace = function (css) { + var matchingTopBottom = css['margin-top'] && css['margin-bottom'] && css['margin-top'] === css['margin-bottom']; + return matchingTopBottom ? removePixelSuffix(String(css['margin-top'])) : ''; + }; + var calcHSpace = function (css) { + var matchingLeftRight = css['margin-right'] && css['margin-left'] && css['margin-right'] === css['margin-left']; + return matchingLeftRight ? removePixelSuffix(String(css['margin-right'])) : ''; + }; + var calcBorderWidth = function (css) { + return css['border-width'] ? removePixelSuffix(String(css['border-width'])) : ''; + }; + var calcBorderStyle = function (css) { + return css['border-style'] ? String(css['border-style']) : ''; + }; + var calcStyle = function (parseStyle, serializeStyle, css) { + return serializeStyle(parseStyle(serializeStyle(css))); + }; + var changeStyle2 = function (parseStyle, serializeStyle, data) { + var css = mergeMargins(parseStyle(data.style)); + var dataCopy = deepMerge({}, data); + dataCopy.vspace = calcVSpace(css); + dataCopy.hspace = calcHSpace(css); + dataCopy.border = calcBorderWidth(css); + dataCopy.borderstyle = calcBorderStyle(css); + dataCopy.style = calcStyle(parseStyle, serializeStyle, css); + return dataCopy; + }; + var changeStyle = function (helpers, api) { + var data = api.getData(); + var newData = changeStyle2(helpers.parseStyle, helpers.serializeStyle, data); + api.setData(newData); + }; + var changeAStyle = function (helpers, info, api) { + var data = deepMerge(fromImageData(info.image), api.getData()); + var style = getStyleValue(helpers.normalizeCss, toImageData(data, false)); + api.setData({ style: style }); + }; + var changeFileInput = function (helpers, info, state, api) { + var data = api.getData(); + api.block('Uploading image'); + head(data.fileinput).fold(function () { + api.unblock(); + }, function (file) { + var blobUri = domGlobals.URL.createObjectURL(file); + var uploader = Uploader({ + url: info.url, + basePath: info.basePath, + credentials: info.credentials, + handler: info.handler + }); + var finalize = function () { + api.unblock(); + domGlobals.URL.revokeObjectURL(blobUri); + }; + var updateSrcAndSwitchTab = function (url) { + api.setData({ + src: { + value: url, + meta: {} + } + }); + api.showTab('general'); + changeSrc(helpers, info, state, api); + }; + blobToDataUri(file).then(function (dataUrl) { + var blobInfo = helpers.createBlobCache(file, blobUri, dataUrl); + if (info.automaticUploads) { + uploader.upload(blobInfo).then(function (url) { + updateSrcAndSwitchTab(url); + finalize(); + }).catch(function (err) { + finalize(); + helpers.alertErr(err); + }); + } else { + helpers.addToBlobCache(blobInfo); + updateSrcAndSwitchTab(blobInfo.blobUri()); + api.unblock(); + } + }); + }); + }; + var changeHandler = function (helpers, info, state) { + return function (api, evt) { + if (evt.name === 'src') { + changeSrc(helpers, info, state, api); + } else if (evt.name === 'images') { + changeImages(helpers, info, state, api); + } else if (evt.name === 'alt') { + state.prevAlt = api.getData().alt; + } else if (evt.name === 'style') { + changeStyle(helpers, api); + } else if (evt.name === 'vspace' || evt.name === 'hspace' || evt.name === 'border' || evt.name === 'borderstyle') { + changeAStyle(helpers, info, api); + } else if (evt.name === 'fileinput') { + changeFileInput(helpers, info, state, api); + } else if (evt.name === 'isDecorative') { + if (api.getData().isDecorative) { + api.disable('alt'); + } else { + api.enable('alt'); + } + } + }; + }; + var closeHandler = function (state) { + return function () { + state.open = false; + }; + }; + var makeDialogBody = function (info) { + if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) { + var tabPanel = { + type: 'tabpanel', + tabs: flatten([ + [MainTab.makeTab(info)], + info.hasAdvTab ? [AdvTab.makeTab(info)] : [], + info.hasUploadTab && (info.hasUploadUrl || info.hasUploadHandler) ? [UploadTab.makeTab(info)] : [] + ]) + }; + return tabPanel; + } else { + var panel = { + type: 'panel', + items: MainTab.makeItems(info) + }; + return panel; + } + }; + var makeDialog = function (helpers) { + return function (info) { + var state = createState(info); + return { + title: 'Insert/Edit Image', + size: 'normal', + body: makeDialogBody(info), + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + initialData: fromImageData(info.image), + onSubmit: helpers.onSubmit(info), + onChange: changeHandler(helpers, info, state), + onClose: closeHandler(state) + }; + }; + }; + var submitHandler = function (editor) { + return function (info) { + return function (api) { + var data = deepMerge(fromImageData(info.image), api.getData()); + editor.execCommand('mceUpdateImage', false, toImageData(data, info.hasAccessibilityOptions)); + editor.editorUpload.uploadImagesAuto(); + api.close(); + }; + }; + }; + var imageSize = function (editor) { + return function (url) { + return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(function (dimensions) { + return { + width: String(dimensions.width), + height: String(dimensions.height) + }; + }); + }; + }; + var createBlobCache = function (editor) { + return function (file, blobUri, dataUrl) { + return editor.editorUpload.blobCache.create({ + blob: file, + blobUri: blobUri, + name: file.name ? file.name.replace(/\.[^\.]+$/, '') : null, + base64: dataUrl.split(',')[1] + }); + }; + }; + var addToBlobCache = function (editor) { + return function (blobInfo) { + editor.editorUpload.blobCache.add(blobInfo); + }; + }; + var alertErr = function (editor) { + return function (message) { + editor.windowManager.alert(message); + }; + }; + var normalizeCss$1 = function (editor) { + return function (cssText) { + return normalizeCss(editor, cssText); + }; + }; + var parseStyle = function (editor) { + return function (cssText) { + return editor.dom.parseStyle(cssText); + }; + }; + var serializeStyle = function (editor) { + return function (stylesArg, name) { + return editor.dom.serializeStyle(stylesArg, name); + }; + }; + var Dialog = function (editor) { + var helpers = { + onSubmit: submitHandler(editor), + imageSize: imageSize(editor), + addToBlobCache: addToBlobCache(editor), + createBlobCache: createBlobCache(editor), + alertErr: alertErr(editor), + normalizeCss: normalizeCss$1(editor), + parseStyle: parseStyle(editor), + serializeStyle: serializeStyle(editor) + }; + var open = function () { + return collect(editor).then(makeDialog(helpers)).then(function (spec) { + return editor.windowManager.open(spec); + }); + }; + var openLater = function () { + open(); + }; + return { + open: open, + openLater: openLater + }; + }; + + var register = function (editor) { + editor.addCommand('mceImage', Dialog(editor).openLater); + editor.addCommand('mceUpdateImage', function (_ui, data) { + editor.undoManager.transact(function () { + return insertOrUpdateImage(editor, data); + }); + }); + }; + + var hasImageClass = function (node) { + var className = node.attr('class'); + return className && /\bimage\b/.test(className); + }; + var toggleContentEditableState = function (state) { + return function (nodes) { + var i = nodes.length; + var toggleContentEditable = function (node) { + node.attr('contenteditable', state ? 'true' : null); + }; + while (i--) { + var node = nodes[i]; + if (hasImageClass(node)) { + node.attr('contenteditable', state ? 'false' : null); + global$4.each(node.getAll('figcaption'), toggleContentEditable); + } + } + }; + }; + var setup = function (editor) { + editor.on('PreInit', function () { + editor.parser.addNodeFilter('figure', toggleContentEditableState(true)); + editor.serializer.addNodeFilter('figure', toggleContentEditableState(false)); + }); + }; + + var register$1 = function (editor) { + editor.ui.registry.addToggleButton('image', { + icon: 'image', + tooltip: 'Insert/edit image', + onAction: Dialog(editor).openLater, + onSetup: function (buttonApi) { + return editor.selection.selectorChangedWithUnbind('img:not([data-mce-object],[data-mce-placeholder]),figure.image', buttonApi.setActive).unbind; + } + }); + editor.ui.registry.addMenuItem('image', { + icon: 'image', + text: 'Image...', + onAction: Dialog(editor).openLater + }); + editor.ui.registry.addContextMenu('image', { + update: function (element) { + return isFigure(element) || isImage(element) && !isPlaceholderImage(element) ? ['image'] : []; + } + }); + }; + + function Plugin () { + global.add('image', function (editor) { + setup(editor); + register$1(editor); + register(editor); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/image/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/image/plugin.min.js new file mode 100755 index 0000000..ce527bd --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/image/plugin.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.4.2 (2020-08-17) + */ +!function(m){"use strict";var e,t,n,r,o,a=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(){},l=function(e){return function(){return e}},s=l(!1),u=l(!0),c=function(){return d},d=(e=function(e){return e.isNone()},{fold:function(e,t){return e()},is:s,isSome:s,isNone:u,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:l(null),getOrUndefined:l(undefined),or:n,orThunk:t,map:c,each:i,bind:c,exists:s,forall:u,filter:c,equals:e,equals_:e,toArray:function(){return[]},toString:l("none()")}),g=function(n){var e=l(n),t=function(){return a},r=function(e){return e(n)},a={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:u,isNone:s,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:t,orThunk:t,map:function(e){return g(e(n))},each:function(e){e(n)},bind:r,exists:r,forall:r,filter:function(e){return e(n)?a:d},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(s,function(e){return t(n,e)})}};return a},A={some:g,none:c,from:function(e){return null===e||e===undefined?d:g(e)}},f=function(r){return function(e){return n=typeof(t=e),(null===t?"null":"object"==n&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":n)===r;var t,n}},p=function(t){return function(e){return typeof e===t}},S=f("string"),h=f("object"),b=f("array"),v=(r=null,function(e){return r===e}),y=p("boolean"),w=p("number"),D=Array.prototype.push,x=function(e){for(var t=[],n=0,r=e.length;n 1) { + domGlobals.console.error('HTML does not have a single root node', html); + throw new Error('HTML must have a single root node'); + } + return fromDom(div.childNodes[0]); + }; + var fromTag = function (tag, scope) { + var doc = scope || domGlobals.document; + var node = doc.createElement(tag); + return fromDom(node); + }; + var fromText = function (text, scope) { + var doc = scope || domGlobals.document; + var node = doc.createTextNode(text); + return fromDom(node); + }; + var fromDom = function (node) { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: constant(node) }; + }; + var fromPoint = function (docElm, x, y) { + var doc = docElm.dom(); + return Option.from(doc.elementFromPoint(x, y)).map(fromDom); + }; + var Element = { + fromHtml: fromHtml, + fromTag: fromTag, + fromText: fromText, + fromDom: fromDom, + fromPoint: fromPoint + }; + + var ELEMENT = 1; + + var is = function (element, selector) { + var dom = element.dom(); + if (dom.nodeType !== ELEMENT) { + return false; + } else { + var elem = dom; + if (elem.matches !== undefined) { + return elem.matches(selector); + } else if (elem.msMatchesSelector !== undefined) { + return elem.msMatchesSelector(selector); + } else if (elem.webkitMatchesSelector !== undefined) { + return elem.webkitMatchesSelector(selector); + } else if (elem.mozMatchesSelector !== undefined) { + return elem.mozMatchesSelector(selector); + } else { + throw new Error('Browser lacks native selectors'); + } + } + }; + + var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); + + var supported = isFunction(domGlobals.Element.prototype.attachShadow) && isFunction(domGlobals.Node.prototype.getRootNode); + + var child = function (scope, predicate) { + var pred = function (node) { + return predicate(Element.fromDom(node)); + }; + var result = find(scope.dom().childNodes, pred); + return result.map(Element.fromDom); + }; + + var child$1 = function (scope, selector) { + return child(scope, function (e) { + return is(e, selector); + }); + }; + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay'); + + var global$3 = tinymce.util.Tools.resolve('tinymce.util.Promise'); + + var global$4 = tinymce.util.Tools.resolve('tinymce.util.URI'); + + var getToolbarItems = function (editor) { + return editor.getParam('imagetools_toolbar', 'rotateleft rotateright flipv fliph editimage imageoptions'); + }; + var getProxyUrl = function (editor) { + return editor.getParam('imagetools_proxy'); + }; + var getCorsHosts = function (editor) { + return editor.getParam('imagetools_cors_hosts', [], 'string[]'); + }; + var getCredentialsHosts = function (editor) { + return editor.getParam('imagetools_credentials_hosts', [], 'string[]'); + }; + var getFetchImage = function (editor) { + return Option.from(editor.getParam('imagetools_fetch_image', null, 'function')); + }; + var getApiKey = function (editor) { + return editor.getParam('api_key', editor.getParam('imagetools_api_key', '', 'string'), 'string'); + }; + var getUploadTimeout = function (editor) { + return editor.getParam('images_upload_timeout', 30000, 'number'); + }; + var shouldReuseFilename = function (editor) { + return editor.getParam('images_reuse_filename', false, 'boolean'); + }; + + function getImageSize(img) { + var width, height; + function isPxValue(value) { + return /^[0-9\.]+px$/.test(value); + } + width = img.style.width; + height = img.style.height; + if (width || height) { + if (isPxValue(width) && isPxValue(height)) { + return { + w: parseInt(width, 10), + h: parseInt(height, 10) + }; + } + return null; + } + width = img.width; + height = img.height; + if (width && height) { + return { + w: parseInt(width, 10), + h: parseInt(height, 10) + }; + } + return null; + } + function setImageSize(img, size) { + var width, height; + if (size) { + width = img.style.width; + height = img.style.height; + if (width || height) { + img.style.width = size.w + 'px'; + img.style.height = size.h + 'px'; + img.removeAttribute('data-mce-style'); + } + width = img.width; + height = img.height; + if (width || height) { + img.setAttribute('width', size.w); + img.setAttribute('height', size.h); + } + } + } + function getNaturalImageSize(img) { + return { + w: img.naturalWidth, + h: img.naturalHeight + }; + } + + var isValue = function (obj) { + return obj !== null && obj !== undefined; + }; + var traverse = function (json, path) { + var value = path.reduce(function (result, key) { + return isValue(result) ? result[key] : undefined; + }, json); + return isValue(value) ? value : null; + }; + var requestUrlAsBlob = function (url, headers, withCredentials) { + return new global$3(function (resolve) { + var xhr = new domGlobals.XMLHttpRequest(); + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + resolve({ + status: xhr.status, + blob: this.response + }); + } + }; + xhr.open('GET', url, true); + xhr.withCredentials = withCredentials; + global$1.each(headers, function (value, key) { + xhr.setRequestHeader(key, value); + }); + xhr.responseType = 'blob'; + xhr.send(); + }); + }; + var readBlob = function (blob) { + return new global$3(function (resolve) { + var fr = new domGlobals.FileReader(); + fr.onload = function (e) { + var data = e.target; + resolve(data.result); + }; + fr.readAsText(blob); + }); + }; + var parseJson = function (text) { + var json; + try { + json = JSON.parse(text); + } catch (ex) { + } + return json; + }; + + var friendlyHttpErrors = [ + { + code: 404, + message: 'Could not find Image Proxy' + }, + { + code: 403, + message: 'Rejected request' + }, + { + code: 0, + message: 'Incorrect Image Proxy URL' + } + ]; + var friendlyServiceErrors = [ + { + type: 'key_missing', + message: 'The request did not include an api key.' + }, + { + type: 'key_not_found', + message: 'The provided api key could not be found.' + }, + { + type: 'domain_not_trusted', + message: 'The api key is not valid for the request origins.' + } + ]; + var isServiceErrorCode = function (code) { + return code === 400 || code === 403 || code === 500; + }; + var getHttpErrorMsg = function (status) { + var message = find(friendlyHttpErrors, function (error) { + return status === error.code; + }).fold(constant('Unknown ImageProxy error'), function (error) { + return error.message; + }); + return 'ImageProxy HTTP error: ' + message; + }; + var handleHttpError = function (status) { + var message = getHttpErrorMsg(status); + return global$3.reject(message); + }; + var getServiceErrorMsg = function (type) { + return find(friendlyServiceErrors, function (error) { + return error.type === type; + }).fold(constant('Unknown service error'), function (error) { + return error.message; + }); + }; + var getServiceError = function (text) { + var serviceError = parseJson(text); + var errorType = traverse(serviceError, [ + 'error', + 'type' + ]); + var errorMsg = errorType ? getServiceErrorMsg(errorType) : 'Invalid JSON in service error message'; + return 'ImageProxy Service error: ' + errorMsg; + }; + var handleServiceError = function (status, blob) { + return readBlob(blob).then(function (text) { + var serviceError = getServiceError(text); + return global$3.reject(serviceError); + }); + }; + var handleServiceErrorResponse = function (status, blob) { + return isServiceErrorCode(status) ? handleServiceError(status, blob) : handleHttpError(status); + }; + + var appendApiKey = function (url, apiKey) { + var separator = url.indexOf('?') === -1 ? '?' : '&'; + if (/[?&]apiKey=/.test(url) || !apiKey) { + return url; + } else { + return url + separator + 'apiKey=' + encodeURIComponent(apiKey); + } + }; + var requestServiceBlob = function (url, apiKey) { + var headers = { + 'Content-Type': 'application/json;charset=UTF-8', + 'tiny-api-key': apiKey + }; + return requestUrlAsBlob(appendApiKey(url, apiKey), headers, false).then(function (result) { + return result.status < 200 || result.status >= 300 ? handleServiceErrorResponse(result.status, result.blob) : global$3.resolve(result.blob); + }); + }; + function requestBlob(url, withCredentials) { + return requestUrlAsBlob(url, {}, withCredentials).then(function (result) { + return result.status < 200 || result.status >= 300 ? handleHttpError(result.status) : global$3.resolve(result.blob); + }); + } + var getUrl = function (url, apiKey, withCredentials) { + return apiKey ? requestServiceBlob(url, apiKey) : requestBlob(url, withCredentials); + }; + + var count = 0; + var getFigureImg = function (elem) { + return child$1(Element.fromDom(elem), 'img'); + }; + var isFigure = function (editor, elem) { + return editor.dom.is(elem, 'figure'); + }; + var getEditableImage = function (editor, elem) { + var isImage = function (imgNode) { + return editor.dom.is(imgNode, 'img:not([data-mce-object],[data-mce-placeholder])'); + }; + var isEditable = function (imgNode) { + return isImage(imgNode) && (isLocalImage(editor, imgNode) || isCorsImage(editor, imgNode) || getProxyUrl(editor)); + }; + if (isFigure(editor, elem)) { + var imgOpt = getFigureImg(elem); + return imgOpt.map(function (img) { + return isEditable(img.dom()) ? Option.some(img.dom()) : Option.none(); + }); + } + return isEditable(elem) ? Option.some(elem) : Option.none(); + }; + var displayError = function (editor, error) { + editor.notificationManager.open({ + text: error, + type: 'error' + }); + }; + var getSelectedImage = function (editor) { + var elem = editor.selection.getNode(); + if (isFigure(editor, elem)) { + return getFigureImg(elem); + } else { + return Option.some(Element.fromDom(elem)); + } + }; + var extractFilename = function (editor, url) { + var m = url.match(/\/([^\/\?]+)?\.(?:jpeg|jpg|png|gif)(?:\?|$)/i); + if (m) { + return editor.dom.encode(m[1]); + } + return null; + }; + var createId = function () { + return 'imagetools' + count++; + }; + var isLocalImage = function (editor, img) { + var url = img.src; + return url.indexOf('data:') === 0 || url.indexOf('blob:') === 0 || new global$4(url).host === editor.documentBaseURI.host; + }; + var isCorsImage = function (editor, img) { + return global$1.inArray(getCorsHosts(editor), new global$4(img.src).host) !== -1; + }; + var isCorsWithCredentialsImage = function (editor, img) { + return global$1.inArray(getCredentialsHosts(editor), new global$4(img.src).host) !== -1; + }; + var defaultFetchImage = function (editor, img) { + var src = img.src, apiKey; + if (isCorsImage(editor, img)) { + return getUrl(img.src, null, isCorsWithCredentialsImage(editor, img)); + } + if (!isLocalImage(editor, img)) { + src = getProxyUrl(editor); + src += (src.indexOf('?') === -1 ? '?' : '&') + 'url=' + encodeURIComponent(img.src); + apiKey = getApiKey(editor); + return getUrl(src, apiKey, false); + } + return imageToBlob$1(img); + }; + var imageToBlob$2 = function (editor, img) { + return getFetchImage(editor).fold(function () { + return defaultFetchImage(editor, img); + }, function (customFetchImage) { + return customFetchImage(img); + }); + }; + var findBlob = function (editor, img) { + var blobInfo = editor.editorUpload.blobCache.getByUri(img.src); + if (blobInfo) { + return global$3.resolve(blobInfo.blob()); + } + return imageToBlob$2(editor, img); + }; + var startTimedUpload = function (editor, imageUploadTimerState) { + var imageUploadTimer = global$2.setEditorTimeout(editor, function () { + editor.editorUpload.uploadImagesAuto(); + }, getUploadTimeout(editor)); + imageUploadTimerState.set(imageUploadTimer); + }; + var cancelTimedUpload = function (imageUploadTimerState) { + global$2.clearTimeout(imageUploadTimerState.get()); + }; + var updateSelectedImage = function (editor, ir, uploadImmediately, imageUploadTimerState, selectedImage, size) { + return ir.toBlob().then(function (blob) { + var uri, name, blobInfo; + var blobCache = editor.editorUpload.blobCache; + uri = selectedImage.src; + if (shouldReuseFilename(editor)) { + blobInfo = blobCache.getByUri(uri); + if (blobInfo) { + uri = blobInfo.uri(); + name = blobInfo.name(); + } else { + name = extractFilename(editor, uri); + } + } + blobInfo = blobCache.create({ + id: createId(), + blob: blob, + base64: ir.toBase64(), + uri: uri, + name: name + }); + blobCache.add(blobInfo); + editor.undoManager.transact(function () { + function imageLoadedHandler() { + editor.$(selectedImage).off('load', imageLoadedHandler); + editor.nodeChanged(); + if (uploadImmediately) { + editor.editorUpload.uploadImagesAuto(); + } else { + cancelTimedUpload(imageUploadTimerState); + startTimedUpload(editor, imageUploadTimerState); + } + } + editor.$(selectedImage).on('load', imageLoadedHandler); + if (size) { + editor.$(selectedImage).attr({ + width: size.w, + height: size.h + }); + } + editor.$(selectedImage).attr({ src: blobInfo.blobUri() }).removeAttr('data-mce-src'); + }); + return blobInfo; + }); + }; + var selectedImageOperation = function (editor, imageUploadTimerState, fn, size) { + return function () { + var imgOpt = getSelectedImage(editor); + return imgOpt.fold(function () { + displayError(editor, 'Could not find selected image'); + }, function (img) { + return editor._scanForImages().then(function () { + return findBlob(editor, img.dom()); + }).then(blobToImageResult).then(fn).then(function (imageResult) { + return updateSelectedImage(editor, imageResult, false, imageUploadTimerState, img.dom(), size); + }, function (error) { + displayError(editor, error); + }); + }); + }; + }; + var rotate$2 = function (editor, imageUploadTimerState, angle) { + return function () { + var imgOpt = getSelectedImage(editor); + var flippedSize = imgOpt.fold(function () { + return null; + }, function (img) { + var size = getImageSize(img.dom()); + return size ? { + w: size.h, + h: size.w + } : null; + }); + return selectedImageOperation(editor, imageUploadTimerState, function (imageResult) { + return rotate$1(imageResult, angle); + }, flippedSize)(); + }; + }; + var flip$2 = function (editor, imageUploadTimerState, axis) { + return function () { + return selectedImageOperation(editor, imageUploadTimerState, function (imageResult) { + return flip$1(imageResult, axis); + })(); + }; + }; + var handleDialogBlob = function (editor, imageUploadTimerState, img, originalSize, blob) { + return blobToImage$1(blob).then(function (newImage) { + var newSize = getNaturalImageSize(newImage); + if (originalSize.w !== newSize.w || originalSize.h !== newSize.h) { + if (getImageSize(img)) { + setImageSize(img, newSize); + } + } + domGlobals.URL.revokeObjectURL(newImage.src); + return blob; + }).then(blobToImageResult).then(function (imageResult) { + return updateSelectedImage(editor, imageResult, true, imageUploadTimerState, img); + }, function () { + }); + }; + + var saveState = 'save-state'; + var disable = 'disable'; + var enable = 'enable'; + + var createState = function (blob) { + return { + blob: blob, + url: domGlobals.URL.createObjectURL(blob) + }; + }; + var makeOpen = function (editor, imageUploadTimerState) { + return function () { + var getLoadedSpec = function (currentState) { + return { + title: 'Edit Image', + size: 'large', + body: { + type: 'panel', + items: [{ + type: 'imagetools', + name: 'imagetools', + label: 'Edit Image', + currentState: currentState + }] + }, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true, + disabled: true + } + ], + onSubmit: function (api) { + var blob = api.getData().imagetools.blob; + originalImgOpt.each(function (originalImg) { + originalSizeOpt.each(function (originalSize) { + handleDialogBlob(editor, imageUploadTimerState, originalImg.dom(), originalSize, blob); + }); + }); + api.close(); + }, + onCancel: function () { + }, + onAction: function (api, details) { + switch (details.name) { + case saveState: + if (details.value) { + api.enable('save'); + } else { + api.disable('save'); + } + break; + case disable: + api.disable('save'); + api.disable('cancel'); + break; + case enable: + api.enable('cancel'); + break; + } + } + }; + }; + var originalImgOpt = getSelectedImage(editor); + var originalSizeOpt = originalImgOpt.map(function (origImg) { + return getNaturalImageSize(origImg.dom()); + }); + var imgOpt = getSelectedImage(editor); + imgOpt.each(function (img) { + getEditableImage(editor, img.dom()).each(function (_) { + findBlob(editor, img.dom()).then(function (blob) { + var state = createState(blob); + editor.windowManager.open(getLoadedSpec(state)); + }); + }); + }); + }; + }; + + var register = function (editor, imageUploadTimerState) { + global$1.each({ + mceImageRotateLeft: rotate$2(editor, imageUploadTimerState, -90), + mceImageRotateRight: rotate$2(editor, imageUploadTimerState, 90), + mceImageFlipVertical: flip$2(editor, imageUploadTimerState, 'v'), + mceImageFlipHorizontal: flip$2(editor, imageUploadTimerState, 'h'), + mceEditImage: makeOpen(editor, imageUploadTimerState) + }, function (fn, cmd) { + editor.addCommand(cmd, fn); + }); + }; + + var setup = function (editor, imageUploadTimerState, lastSelectedImageState) { + editor.on('NodeChange', function (e) { + var lastSelectedImage = lastSelectedImageState.get(); + if (lastSelectedImage && lastSelectedImage.src !== e.element.src) { + cancelTimedUpload(imageUploadTimerState); + editor.editorUpload.uploadImagesAuto(); + lastSelectedImageState.set(null); + } + getEditableImage(editor, e.element).each(lastSelectedImageState.set); + }); + }; + + var register$1 = function (editor) { + var cmd = function (command) { + return function () { + return editor.execCommand(command); + }; + }; + editor.ui.registry.addButton('rotateleft', { + tooltip: 'Rotate counterclockwise', + icon: 'rotate-left', + onAction: cmd('mceImageRotateLeft') + }); + editor.ui.registry.addButton('rotateright', { + tooltip: 'Rotate clockwise', + icon: 'rotate-right', + onAction: cmd('mceImageRotateRight') + }); + editor.ui.registry.addButton('flipv', { + tooltip: 'Flip vertically', + icon: 'flip-vertically', + onAction: cmd('mceImageFlipVertical') + }); + editor.ui.registry.addButton('fliph', { + tooltip: 'Flip horizontally', + icon: 'flip-horizontally', + onAction: cmd('mceImageFlipHorizontal') + }); + editor.ui.registry.addButton('editimage', { + tooltip: 'Edit image', + icon: 'edit-image', + onAction: cmd('mceEditImage'), + onSetup: function (buttonApi) { + var setDisabled = function () { + var elementOpt = getSelectedImage(editor); + elementOpt.each(function (element) { + var disabled = getEditableImage(editor, element.dom()).isNone(); + buttonApi.setDisabled(disabled); + }); + }; + editor.on('NodeChange', setDisabled); + return function () { + editor.off('NodeChange', setDisabled); + }; + } + }); + editor.ui.registry.addButton('imageoptions', { + tooltip: 'Image options', + icon: 'image-options', + onAction: cmd('mceImage') + }); + editor.ui.registry.addContextMenu('imagetools', { + update: function (element) { + return getEditableImage(editor, element).fold(function () { + return []; + }, function (_) { + return [{ + text: 'Edit image', + icon: 'edit-image', + onAction: cmd('mceEditImage') + }]; + }); + } + }); + }; + + var register$2 = function (editor) { + editor.ui.registry.addContextToolbar('imagetools', { + items: getToolbarItems(editor), + predicate: function (elem) { + return getEditableImage(editor, elem).isSome(); + }, + position: 'node', + scope: 'node' + }); + }; + + function Plugin () { + global.add('imagetools', function (editor) { + var imageUploadTimerState = Cell(0); + var lastSelectedImageState = Cell(null); + register(editor, imageUploadTimerState); + register$1(editor); + register$2(editor); + setup(editor, imageUploadTimerState, lastSelectedImageState); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/imagetools/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/imagetools/plugin.min.js new file mode 100755 index 0000000..19d4cd0 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/imagetools/plugin.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.4.2 (2020-08-17) + */ +!function(p){"use strict";var t,e,n,l=function(t){var e=t;return{get:function(){return e},set:function(t){e=t}}},r=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.util.Tools"),o=function(){},f=function(t){return function(){return t}},i=f(!1),u=f(!0),a=function(){return c},c=(t=function(t){return t.isNone()},{fold:function(t,e){return t()},is:i,isSome:i,isNone:u,getOr:n=function(t){return t},getOrThunk:e=function(t){return t()},getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:f(null),getOrUndefined:f(undefined),or:n,orThunk:e,map:a,each:o,bind:a,exists:i,forall:u,filter:a,equals:t,equals_:t,toArray:function(){return[]},toString:f("none()")}),s=function(n){var t=f(n),e=function(){return o},r=function(t){return t(n)},o={fold:function(t,e){return e(n)},is:function(t){return n===t},isSome:u,isNone:i,getOr:t,getOrThunk:t,getOrDie:t,getOrNull:t,getOrUndefined:t,or:e,orThunk:e,map:function(t){return s(t(n))},each:function(t){t(n)},bind:r,exists:r,forall:r,filter:function(t){return t(n)?o:c},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(t){return t.is(n)},equals_:function(t,e){return t.fold(i,function(t){return e(n,t)})}};return o},v={some:s,none:a,from:function(t){return null===t||t===undefined?c:s(t)}};function m(t,e){return y(p.document.createElement("canvas"),t,e)}function h(t){var e=m(t.width,t.height);return g(e).drawImage(t,0,0),e}function g(t){return t.getContext("2d")}function y(t,e,n){return t.width=e,t.height=n,t}var w,b,I,T=window.Promise?window.Promise:(b=(w=function(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],L(t,_(U,this),_(A,this))}).immediateFn||"function"==typeof window.setImmediate&&window.setImmediate||function(t){p.setTimeout(t,1)},I=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},w.prototype["catch"]=function(t){return this.then(null,t)},w.prototype.then=function(n,r){var o=this;return new w(function(t,e){R.call(o,new x(n,r,t,e))})},w.all=function(){for(var t=[],e=0;e 0) { + global$4.each(selectorGroups, function (group) { + var menuItem = processSelector(selector, group); + if (menuItem) { + model.addItemToGroup(group.title, menuItem); + } + }); + } else { + var menuItem = processSelector(selector, null); + if (menuItem) { + model.addItem(menuItem); + } + } + } + } + }); + var items = model.toFormats(); + editor.fire('addStyleModifications', { + items: items, + replace: !shouldAppend(editor) + }); + }); + }; + + var get = function (editor) { + var convertSelectorToFormat = function (selectorText) { + return defaultConvertSelectorToFormat(editor, selectorText); + }; + return { convertSelectorToFormat: convertSelectorToFormat }; + }; + + function Plugin () { + global.add('importcss', function (editor) { + setup(editor); + return get(editor); + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/importcss/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/importcss/plugin.min.js new file mode 100755 index 0000000..91da219 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/importcss/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var n,t=tinymce.util.Tools.resolve("tinymce.PluginManager"),y=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),f=tinymce.util.Tools.resolve("tinymce.EditorManager"),m=tinymce.util.Tools.resolve("tinymce.Env"),h=tinymce.util.Tools.resolve("tinymce.util.Tools"),d=function(t){return t.getParam("importcss_selector_converter")},i=(n="array",function(t){return r=typeof(e=t),(null===e?"null":"object"==r&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==r&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":r)===n;var e,r}),o=Array.prototype.push,l=function(t,e){return function(t){for(var e=[],r=0,n=t.length;r'); + + var stateSelectorAdapter = function (editor, selector) { + return function (buttonApi) { + return editor.selection.selectorChangedWithUnbind(selector.join(','), buttonApi.setActive).unbind; + }; + }; + + editor.ui.registry.addToggleButton('indent2em', { + icon: 'indent2em', + tooltip: pluginName, + onAction: function () { + doAct(); + }, + onSetup: stateSelectorAdapter(editor, [ + '*[style*="text-indent"]', + '*[data-mce-style*="text-indent"]', + ]) + }); + + editor.ui.registry.addMenuItem('indent2em', { + text: pluginName, + onAction: function() { + doAct(); + } + }); + + editor.addCommand('indent2em', doAct ); + + return { + getMetadata: function () { + return { + name: pluginName, + url: "http://tinymce.ax-z.cn/more-plugins/indent2em.php", + }; + } + }; +}); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/indent2em/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/indent2em/plugin.min.js new file mode 100755 index 0000000..b9d8382 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/indent2em/plugin.min.js @@ -0,0 +1,62 @@ +tinymce.PluginManager.add('indent2em', function(editor, url) { + var pluginName='首行缩进'; + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + var indent2em_val = editor.getParam('indent2em_val', '2em'); + var doAct = function () { + var dom = editor.dom; + var blocks = editor.selection.getSelectedBlocks(); + var act = ''; + global$1.each(blocks, function (block) { + if(act==''){ + act = dom.getStyle(block,'text-indent')==indent2em_val ? 'remove' : 'add'; + } + if( act=='add' ){ + dom.setStyle(block, 'text-indent', indent2em_val); + }else{ + var style=dom.getAttrib(block,'style'); + var reg = new RegExp('text-indent:[\\s]*' + indent2em_val + ';', 'ig'); + style = style.replace(reg, ''); + dom.setAttrib(block,'style',style); + } + + }); + }; + + editor.ui.registry.getAll().icons.indent2em || editor.ui.registry.addIcon('indent2em',''); + + var stateSelectorAdapter = function (editor, selector) { + return function (buttonApi) { + return editor.selection.selectorChangedWithUnbind(selector.join(','), buttonApi.setActive).unbind; + }; + }; + + editor.ui.registry.addToggleButton('indent2em', { + icon: 'indent2em', + tooltip: pluginName, + onAction: function () { + doAct(); + }, + onSetup: stateSelectorAdapter(editor, [ + '*[style*="text-indent"]', + '*[data-mce-style*="text-indent"]', + ]) + }); + + editor.ui.registry.addMenuItem('indent2em', { + text: pluginName, + onAction: function() { + doAct(); + } + }); + + editor.addCommand('indent2em', doAct ); + + return { + getMetadata: function () { + return { + name: pluginName, + url: "http://tinymce.ax-z.cn/more-plugins/indent2em.php", + }; + } + }; +}); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/insertdatetime/plugin.js b/assets/js/lay-module/tinymce/tinymce/plugins/insertdatetime/plugin.js new file mode 100755 index 0000000..efab74f --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/insertdatetime/plugin.js @@ -0,0 +1,177 @@ +/** + * 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.4.2 (2020-08-17) + */ +(function () { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var getDateFormat = function (editor) { + return editor.getParam('insertdatetime_dateformat', editor.translate('%Y-%m-%d')); + }; + var getTimeFormat = function (editor) { + return editor.getParam('insertdatetime_timeformat', editor.translate('%H:%M:%S')); + }; + var getFormats = function (editor) { + return editor.getParam('insertdatetime_formats', [ + '%H:%M:%S', + '%Y-%m-%d', + '%I:%M:%S %p', + '%D' + ]); + }; + var getDefaultDateTime = function (editor) { + var formats = getFormats(editor); + return formats.length > 0 ? formats[0] : getTimeFormat(editor); + }; + var shouldInsertTimeElement = function (editor) { + return editor.getParam('insertdatetime_element', false); + }; + + var daysShort = 'Sun Mon Tue Wed Thu Fri Sat Sun'.split(' '); + var daysLong = 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday'.split(' '); + var monthsShort = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' '); + var monthsLong = 'January February March April May June July August September October November December'.split(' '); + var addZeros = function (value, len) { + value = '' + value; + if (value.length < len) { + for (var i = 0; i < len - value.length; i++) { + value = '0' + value; + } + } + return value; + }; + var getDateTime = function (editor, fmt, date) { + date = date || new Date(); + fmt = fmt.replace('%D', '%m/%d/%Y'); + fmt = fmt.replace('%r', '%I:%M:%S %p'); + fmt = fmt.replace('%Y', '' + date.getFullYear()); + fmt = fmt.replace('%y', '' + date.getYear()); + fmt = fmt.replace('%m', addZeros(date.getMonth() + 1, 2)); + fmt = fmt.replace('%d', addZeros(date.getDate(), 2)); + fmt = fmt.replace('%H', '' + addZeros(date.getHours(), 2)); + fmt = fmt.replace('%M', '' + addZeros(date.getMinutes(), 2)); + fmt = fmt.replace('%S', '' + addZeros(date.getSeconds(), 2)); + fmt = fmt.replace('%I', '' + ((date.getHours() + 11) % 12 + 1)); + fmt = fmt.replace('%p', '' + (date.getHours() < 12 ? 'AM' : 'PM')); + fmt = fmt.replace('%B', '' + editor.translate(monthsLong[date.getMonth()])); + fmt = fmt.replace('%b', '' + editor.translate(monthsShort[date.getMonth()])); + fmt = fmt.replace('%A', '' + editor.translate(daysLong[date.getDay()])); + fmt = fmt.replace('%a', '' + editor.translate(daysShort[date.getDay()])); + fmt = fmt.replace('%%', '%'); + return fmt; + }; + var updateElement = function (editor, timeElm, computerTime, userTime) { + var newTimeElm = editor.dom.create('time', { datetime: computerTime }, userTime); + timeElm.parentNode.insertBefore(newTimeElm, timeElm); + editor.dom.remove(timeElm); + editor.selection.select(newTimeElm, true); + editor.selection.collapse(false); + }; + var insertDateTime = function (editor, format) { + if (shouldInsertTimeElement(editor)) { + var userTime = getDateTime(editor, format); + var computerTime = void 0; + if (/%[HMSIp]/.test(format)) { + computerTime = getDateTime(editor, '%Y-%m-%dT%H:%M'); + } else { + computerTime = getDateTime(editor, '%Y-%m-%d'); + } + var timeElm = editor.dom.getParent(editor.selection.getStart(), 'time'); + if (timeElm) { + updateElement(editor, timeElm, computerTime, userTime); + } else { + editor.insertContent(''); + } + } else { + editor.insertContent(getDateTime(editor, format)); + } + }; + + var register = function (editor) { + editor.addCommand('mceInsertDate', function () { + insertDateTime(editor, getDateFormat(editor)); + }); + editor.addCommand('mceInsertTime', function () { + insertDateTime(editor, getTimeFormat(editor)); + }); + }; + + var Cell = function (initial) { + var value = initial; + var get = function () { + return value; + }; + var set = function (v) { + value = v; + }; + return { + get: get, + set: set + }; + }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var register$1 = function (editor) { + var formats = getFormats(editor); + var defaultFormat = Cell(getDefaultDateTime(editor)); + editor.ui.registry.addSplitButton('insertdatetime', { + icon: 'insert-time', + tooltip: 'Insert date/time', + select: function (value) { + return value === defaultFormat.get(); + }, + fetch: function (done) { + done(global$1.map(formats, function (format) { + return { + type: 'choiceitem', + text: getDateTime(editor, format), + value: format + }; + })); + }, + onAction: function (_api) { + insertDateTime(editor, defaultFormat.get()); + }, + onItemAction: function (_api, value) { + defaultFormat.set(value); + insertDateTime(editor, value); + } + }); + var makeMenuItemHandler = function (format) { + return function () { + defaultFormat.set(format); + insertDateTime(editor, format); + }; + }; + editor.ui.registry.addNestedMenuItem('insertdatetime', { + icon: 'insert-time', + text: 'Date/time', + getSubmenuItems: function () { + return global$1.map(formats, function (format) { + return { + type: 'menuitem', + text: getDateTime(editor, format), + onAction: makeMenuItemHandler(format) + }; + }); + } + }); + }; + + function Plugin () { + global.add('insertdatetime', function (editor) { + register(editor); + register$1(editor); + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/insertdatetime/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/insertdatetime/plugin.min.js new file mode 100755 index 0000000..8997eac --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/insertdatetime/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=function(e){return e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S"))},c=function(e){return e.getParam("insertdatetime_formats",["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"])},r="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),a="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),i="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),o="January February March April May June July August September October November December".split(" "),m=function(e,t){if((e=""+e).length'+n+"")}else e.insertContent(s(e,t));var i,o,u,c,m},t=function(t){t.addCommand("mceInsertDate",function(){var e;l(t,(e=t).getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d")))}),t.addCommand("mceInsertTime",function(){l(t,u(t))})},d=tinymce.util.Tools.resolve("tinymce.util.Tools"),n=function(n){var e,t,r,a,i=c(n),o=(a=c(r=n),e=0 -1; + }; + var map = function (xs, f) { + var len = xs.length; + var r = new Array(len); + for (var i = 0; i < len; i++) { + var x = xs[i]; + r[i] = f(x, i); + } + return r; + }; + var each = function (xs, f) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + f(x, i); + } + }; + var foldl = function (xs, f, acc) { + each(xs, function (x) { + acc = f(acc, x); + }); + return acc; + }; + var flatten = function (xs) { + var r = []; + for (var i = 0, len = xs.length; i < len; ++i) { + if (!isArray(xs[i])) { + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + } + nativePush.apply(r, xs[i]); + } + return r; + }; + var bind = function (xs, f) { + return flatten(map(xs, f)); + }; + var findMap = function (arr, f) { + for (var i = 0; i < arr.length; i++) { + var r = f(arr[i], i); + if (r.isSome()) { + return r; + } + } + return Option.none(); + }; + + var cat = function (arr) { + var r = []; + var push = function (x) { + r.push(x); + }; + for (var i = 0; i < arr.length; i++) { + arr[i].each(push); + } + return r; + }; + var someIf = function (b, a) { + return b ? Option.some(a) : Option.none(); + }; + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var getValue = function (item) { + return isString(item.value) ? item.value : ''; + }; + var sanitizeList = function (list, extractValue) { + var out = []; + global$2.each(list, function (item) { + var text = isString(item.text) ? item.text : isString(item.title) ? item.title : ''; + if (item.menu !== undefined) ; else { + var value = extractValue(item); + out.push({ + text: text, + value: value + }); + } + }); + return out; + }; + var sanitizeWith = function (extracter) { + if (extracter === void 0) { + extracter = getValue; + } + return function (list) { + return Option.from(list).map(function (list) { + return sanitizeList(list, extracter); + }); + }; + }; + var sanitize = function (list) { + return sanitizeWith(getValue)(list); + }; + var createUi = function (name, label) { + return function (items) { + return { + name: name, + type: 'selectbox', + label: label, + items: items + }; + }; + }; + var ListOptions = { + sanitize: sanitize, + sanitizeWith: sanitizeWith, + createUi: createUi, + getValue: getValue + }; + + var __assign = function () { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + + var keys = Object.keys; + var each$1 = function (obj, f) { + var props = keys(obj); + for (var k = 0, len = props.length; k < len; k++) { + var i = props[k]; + var x = obj[i]; + f(x, i); + } + }; + var objAcc = function (r) { + return function (x, i) { + r[i] = x; + }; + }; + var internalFilter = function (obj, pred, onTrue, onFalse) { + var r = {}; + each$1(obj, function (x, i) { + (pred(x, i) ? onTrue : onFalse)(x, i); + }); + return r; + }; + var filter = function (obj, pred) { + var t = {}; + internalFilter(obj, pred, objAcc(t), noop); + return t; + }; + + var hasRtcPlugin = function (editor) { + if (/(^|[ ,])rtc([, ]|$)/.test(editor.getParam('plugins', '', 'string')) && global.get('rtc')) { + return true; + } else { + return false; + } + }; + + var hasProtocol = function (url) { + return /^\w+:/i.test(url); + }; + var getHref = function (elm) { + var href = elm.getAttribute('data-mce-href'); + return href ? href : elm.getAttribute('href'); + }; + var applyRelTargetRules = function (rel, isUnsafe) { + var rules = ['noopener']; + var rels = rel ? rel.split(/\s+/) : []; + var toString = function (rels) { + return global$2.trim(rels.sort().join(' ')); + }; + var addTargetRules = function (rels) { + rels = removeTargetRules(rels); + return rels.length > 0 ? rels.concat(rules) : rules; + }; + var removeTargetRules = function (rels) { + return rels.filter(function (val) { + return global$2.inArray(rules, val) === -1; + }); + }; + var newRels = isUnsafe ? addTargetRules(rels) : removeTargetRules(rels); + return newRels.length > 0 ? toString(newRels) : ''; + }; + var trimCaretContainers = function (text) { + return text.replace(/\uFEFF/g, ''); + }; + var getAnchorElement = function (editor, selectedElm) { + selectedElm = selectedElm || editor.selection.getNode(); + if (isImageFigure(selectedElm)) { + return editor.dom.select('a[href]', selectedElm)[0]; + } else { + return editor.dom.getParent(selectedElm, 'a[href]'); + } + }; + var getAnchorText = function (selection, anchorElm) { + var text = anchorElm ? anchorElm.innerText || anchorElm.textContent : selection.getContent({ format: 'text' }); + return trimCaretContainers(text); + }; + var isLink = function (elm) { + return elm && elm.nodeName === 'A' && !!getHref(elm); + }; + var hasLinks = function (elements) { + return global$2.grep(elements, isLink).length > 0; + }; + var isOnlyTextSelected = function (html) { + if (/]+>[^<]+<\/a>$/.test(html) || html.indexOf('href=') === -1)) { + return false; + } + return true; + }; + var isImageFigure = function (elm) { + return elm && elm.nodeName === 'FIGURE' && /\bimage\b/i.test(elm.className); + }; + var getLinkAttrs = function (data) { + return foldl([ + 'title', + 'rel', + 'class', + 'target' + ], function (acc, key) { + data[key].each(function (value) { + acc[key] = value.length > 0 ? value : null; + }); + return acc; + }, { href: data.href }); + }; + var handleExternalTargets = function (href, assumeExternalTargets) { + if ((assumeExternalTargets === 'http' || assumeExternalTargets === 'https') && !hasProtocol(href)) { + return assumeExternalTargets + '://' + href; + } + return href; + }; + var applyLinkOverrides = function (editor, linkAttrs) { + var newLinkAttrs = __assign({}, linkAttrs); + if (!(getRelList(editor).length > 0) && allowUnsafeLinkTarget(editor) === false) { + var newRel = applyRelTargetRules(newLinkAttrs.rel, newLinkAttrs.target === '_blank'); + newLinkAttrs.rel = newRel ? newRel : null; + } + if (Option.from(newLinkAttrs.target).isNone() && getTargetList(editor) === false) { + newLinkAttrs.target = getDefaultLinkTarget(editor); + } + newLinkAttrs.href = handleExternalTargets(newLinkAttrs.href, assumeExternalTargets(editor)); + return newLinkAttrs; + }; + var updateLink = function (editor, anchorElm, text, linkAttrs) { + text.each(function (text) { + if (anchorElm.hasOwnProperty('innerText')) { + anchorElm.innerText = text; + } else { + anchorElm.textContent = text; + } + }); + editor.dom.setAttribs(anchorElm, linkAttrs); + editor.selection.select(anchorElm); + }; + var createLink = function (editor, selectedElm, text, linkAttrs) { + if (isImageFigure(selectedElm)) { + linkImageFigure(editor, selectedElm, linkAttrs); + } else { + text.fold(function () { + editor.execCommand('mceInsertLink', false, linkAttrs); + }, function (text) { + editor.insertContent(editor.dom.createHTML('a', linkAttrs, editor.dom.encode(text))); + }); + } + }; + var linkDomMutation = function (editor, attachState, data) { + var selectedElm = editor.selection.getNode(); + var anchorElm = getAnchorElement(editor, selectedElm); + var linkAttrs = applyLinkOverrides(editor, getLinkAttrs(data)); + editor.undoManager.transact(function () { + if (data.href === attachState.href) { + attachState.attach(); + } + if (anchorElm) { + editor.focus(); + updateLink(editor, anchorElm, data.text, linkAttrs); + } else { + createLink(editor, selectedElm, data.text, linkAttrs); + } + }); + }; + var unlinkDomMutation = function (editor) { + editor.undoManager.transact(function () { + var node = editor.selection.getNode(); + if (isImageFigure(node)) { + unlinkImageFigure(editor, node); + } else { + var anchorElm = editor.dom.getParent(node, 'a[href]', editor.getBody()); + if (anchorElm) { + editor.dom.remove(anchorElm, true); + } + } + editor.focus(); + }); + }; + var unwrapOptions = function (data) { + var cls = data.class, href = data.href, rel = data.rel, target = data.target, text = data.text, title = data.title; + return filter({ + class: cls.getOrNull(), + href: href, + rel: rel.getOrNull(), + target: target.getOrNull(), + text: text.getOrNull(), + title: title.getOrNull() + }, function (v, _k) { + return isNull(v) === false; + }); + }; + var link = function (editor, attachState, data) { + hasRtcPlugin(editor) ? editor.execCommand('createlink', false, unwrapOptions(data)) : linkDomMutation(editor, attachState, data); + }; + var unlink = function (editor) { + hasRtcPlugin(editor) ? editor.execCommand('unlink') : unlinkDomMutation(editor); + }; + var unlinkImageFigure = function (editor, fig) { + var img = editor.dom.select('img', fig)[0]; + if (img) { + var a = editor.dom.getParents(img, 'a[href]', fig)[0]; + if (a) { + a.parentNode.insertBefore(img, a); + editor.dom.remove(a); + } + } + }; + var linkImageFigure = function (editor, fig, attrs) { + var img = editor.dom.select('img', fig)[0]; + if (img) { + var a = editor.dom.create('a', attrs); + img.parentNode.insertBefore(a, img); + a.appendChild(img); + } + }; + + var findTextByValue = function (value, catalog) { + return findMap(catalog, function (item) { + return someIf(item.value === value, item); + }); + }; + var getDelta = function (persistentText, fieldName, catalog, data) { + var value = data[fieldName]; + var hasPersistentText = persistentText.length > 0; + return value !== undefined ? findTextByValue(value, catalog).map(function (i) { + return { + url: { + value: i.value, + meta: { + text: hasPersistentText ? persistentText : i.text, + attach: noop + } + }, + text: hasPersistentText ? persistentText : i.text + }; + }) : Option.none(); + }; + var findCatalog = function (catalogs, fieldName) { + if (fieldName === 'link') { + return catalogs.link; + } else if (fieldName === 'anchor') { + return catalogs.anchor; + } else { + return Option.none(); + } + }; + var init = function (initialData, linkCatalog) { + var persistentData = { + text: initialData.text, + title: initialData.title + }; + var getTitleFromUrlChange = function (url) { + return someIf(persistentData.title.length <= 0, Option.from(url.meta.title).getOr('')); + }; + var getTextFromUrlChange = function (url) { + return someIf(persistentData.text.length <= 0, Option.from(url.meta.text).getOr(url.value)); + }; + var onUrlChange = function (data) { + var text = getTextFromUrlChange(data.url); + var title = getTitleFromUrlChange(data.url); + if (text.isSome() || title.isSome()) { + return Option.some(__assign(__assign({}, text.map(function (text) { + return { text: text }; + }).getOr({})), title.map(function (title) { + return { title: title }; + }).getOr({}))); + } else { + return Option.none(); + } + }; + var onCatalogChange = function (data, change) { + var catalog = findCatalog(linkCatalog, change.name).getOr([]); + return getDelta(persistentData.text, change.name, catalog, data); + }; + var onChange = function (getData, change) { + var name = change.name; + if (name === 'url') { + return onUrlChange(getData()); + } else if (contains([ + 'anchor', + 'link' + ], name)) { + return onCatalogChange(getData(), change); + } else if (name === 'text' || name === 'title') { + persistentData[name] = getData()[name]; + return Option.none(); + } else { + return Option.none(); + } + }; + return { onChange: onChange }; + }; + var DialogChanges = { + init: init, + getDelta: getDelta + }; + + var global$3 = tinymce.util.Tools.resolve('tinymce.util.Delay'); + + var global$4 = tinymce.util.Tools.resolve('tinymce.util.Promise'); + + var delayedConfirm = function (editor, message, callback) { + var rng = editor.selection.getRng(); + global$3.setEditorTimeout(editor, function () { + editor.windowManager.confirm(message, function (state) { + editor.selection.setRng(rng); + callback(state); + }); + }); + }; + var tryEmailTransform = function (data) { + var url = data.href; + var suggestMailTo = url.indexOf('@') > 0 && url.indexOf('/') === -1 && url.indexOf('mailto:') === -1; + return suggestMailTo ? Option.some({ + message: 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?', + preprocess: function (oldData) { + return __assign(__assign({}, oldData), { href: 'mailto:' + url }); + } + }) : Option.none(); + }; + var tryProtocolTransform = function (assumeExternalTargets, defaultLinkProtocol) { + return function (data) { + var url = data.href; + var suggestProtocol = assumeExternalTargets === 1 && !hasProtocol(url) || assumeExternalTargets === 0 && /^\s*www[\.|\d\.]/i.test(url); + return suggestProtocol ? Option.some({ + message: 'The URL you entered seems to be an external link. Do you want to add the required ' + defaultLinkProtocol + ':// prefix?', + preprocess: function (oldData) { + return __assign(__assign({}, oldData), { href: defaultLinkProtocol + '://' + url }); + } + }) : Option.none(); + }; + }; + var preprocess = function (editor, data) { + return findMap([ + tryEmailTransform, + tryProtocolTransform(assumeExternalTargets(editor), getDefaultLinkProtocol(editor)) + ], function (f) { + return f(data); + }).fold(function () { + return global$4.resolve(data); + }, function (transform) { + return new global$4(function (callback) { + delayedConfirm(editor, transform.message, function (state) { + callback(state ? transform.preprocess(data) : data); + }); + }); + }); + }; + var DialogConfirms = { preprocess: preprocess }; + + var getAnchors = function (editor) { + var anchorNodes = editor.dom.select('a:not([href])'); + var anchors = bind(anchorNodes, function (anchor) { + var id = anchor.name || anchor.id; + return id ? [{ + text: id, + value: '#' + id + }] : []; + }); + return anchors.length > 0 ? Option.some([{ + text: 'None', + value: '' + }].concat(anchors)) : Option.none(); + }; + var AnchorListOptions = { getAnchors: getAnchors }; + + var getClasses = function (editor) { + var list = getLinkClassList(editor); + if (list.length > 0) { + return ListOptions.sanitize(list); + } + return Option.none(); + }; + var ClassListOptions = { getClasses: getClasses }; + + var global$5 = tinymce.util.Tools.resolve('tinymce.util.XHR'); + + var parseJson = function (text) { + try { + return Option.some(JSON.parse(text)); + } catch (err) { + return Option.none(); + } + }; + var getLinks = function (editor) { + var extractor = function (item) { + return editor.convertURL(item.value || item.url, 'href'); + }; + var linkList = getLinkList(editor); + return new global$4(function (callback) { + if (isString(linkList)) { + global$5.send({ + url: linkList, + success: function (text) { + return callback(parseJson(text)); + }, + error: function (_) { + return callback(Option.none()); + } + }); + } else if (isFunction(linkList)) { + linkList(function (output) { + return callback(Option.some(output)); + }); + } else { + callback(Option.from(linkList)); + } + }).then(function (optItems) { + return optItems.bind(ListOptions.sanitizeWith(extractor)).map(function (items) { + if (items.length > 0) { + return [{ + text: 'None', + value: '' + }].concat(items); + } else { + return items; + } + }); + }); + }; + var LinkListOptions = { getLinks: getLinks }; + + var getRels = function (editor, initialTarget) { + var list = getRelList(editor); + if (list.length > 0) { + var isTargetBlank_1 = initialTarget.is('_blank'); + var enforceSafe = allowUnsafeLinkTarget(editor) === false; + var safeRelExtractor = function (item) { + return applyRelTargetRules(ListOptions.getValue(item), isTargetBlank_1); + }; + var sanitizer = enforceSafe ? ListOptions.sanitizeWith(safeRelExtractor) : ListOptions.sanitize; + return sanitizer(list); + } + return Option.none(); + }; + var RelOptions = { getRels: getRels }; + + var fallbacks = [ + { + text: 'Current window', + value: '' + }, + { + text: 'New window', + value: '_blank' + } + ]; + var getTargets = function (editor) { + var list = getTargetList(editor); + if (isArray(list)) { + return ListOptions.sanitize(list).orThunk(function () { + return Option.some(fallbacks); + }); + } else if (list === false) { + return Option.none(); + } + return Option.some(fallbacks); + }; + var TargetOptions = { getTargets: getTargets }; + + var nonEmptyAttr = function (dom, elem, name) { + var val = dom.getAttrib(elem, name); + return val !== null && val.length > 0 ? Option.some(val) : Option.none(); + }; + var extractFromAnchor = function (editor, anchor) { + var dom = editor.dom; + var onlyText = isOnlyTextSelected(editor.selection.getContent()); + var text = onlyText ? Option.some(getAnchorText(editor.selection, anchor)) : Option.none(); + var url = anchor ? Option.some(dom.getAttrib(anchor, 'href')) : Option.none(); + var target = anchor ? Option.from(dom.getAttrib(anchor, 'target')) : Option.none(); + var rel = nonEmptyAttr(dom, anchor, 'rel'); + var linkClass = nonEmptyAttr(dom, anchor, 'class'); + var title = nonEmptyAttr(dom, anchor, 'title'); + return { + url: url, + text: text, + title: title, + target: target, + rel: rel, + linkClass: linkClass + }; + }; + var collect = function (editor, linkNode) { + return LinkListOptions.getLinks(editor).then(function (links) { + var anchor = extractFromAnchor(editor, linkNode); + return { + anchor: anchor, + catalogs: { + targets: TargetOptions.getTargets(editor), + rels: RelOptions.getRels(editor, anchor.target), + classes: ClassListOptions.getClasses(editor), + anchor: AnchorListOptions.getAnchors(editor), + link: links + }, + optNode: Option.from(linkNode), + flags: { titleEnabled: shouldShowLinkTitle(editor) } + }; + }); + }; + var DialogInfo = { collect: collect }; + + var handleSubmit = function (editor, info) { + return function (api) { + var data = api.getData(); + if (!data.url.value) { + unlink(editor); + api.close(); + return; + } + var getChangedValue = function (key) { + return Option.from(data[key]).filter(function (value) { + return !info.anchor[key].is(value); + }); + }; + var changedData = { + href: data.url.value, + text: getChangedValue('text'), + target: getChangedValue('target'), + rel: getChangedValue('rel'), + class: getChangedValue('linkClass'), + title: getChangedValue('title') + }; + var attachState = { + href: data.url.value, + attach: data.url.meta !== undefined && data.url.meta.attach ? data.url.meta.attach : function () { + } + }; + DialogConfirms.preprocess(editor, changedData).then(function (pData) { + link(editor, attachState, pData); + }); + api.close(); + }; + }; + var collectData = function (editor) { + var anchorNode = getAnchorElement(editor); + return DialogInfo.collect(editor, anchorNode); + }; + var getInitialData = function (info, defaultTarget) { + var anchor = info.anchor; + var url = anchor.url.getOr(''); + return { + url: { + value: url, + meta: { original: { value: url } } + }, + text: anchor.text.getOr(''), + title: anchor.title.getOr(''), + anchor: url, + link: url, + rel: anchor.rel.getOr(''), + target: anchor.target.or(defaultTarget).getOr(''), + linkClass: anchor.linkClass.getOr('') + }; + }; + var makeDialog = function (settings, onSubmit, editor) { + var urlInput = [{ + name: 'url', + type: 'urlinput', + filetype: 'file', + label: 'URL' + }]; + var displayText = settings.anchor.text.map(function () { + return { + name: 'text', + type: 'input', + label: 'Text to display' + }; + }).toArray(); + var titleText = settings.flags.titleEnabled ? [{ + name: 'title', + type: 'input', + label: 'Title' + }] : []; + var defaultTarget = Option.from(getDefaultLinkTarget(editor)); + var initialData = getInitialData(settings, defaultTarget); + var catalogs = settings.catalogs; + var dialogDelta = DialogChanges.init(initialData, catalogs); + var body = { + type: 'panel', + items: flatten([ + urlInput, + displayText, + titleText, + cat([ + catalogs.anchor.map(ListOptions.createUi('anchor', 'Anchors')), + catalogs.rels.map(ListOptions.createUi('rel', 'Rel')), + catalogs.targets.map(ListOptions.createUi('target', 'Open link in...')), + catalogs.link.map(ListOptions.createUi('link', 'Link list')), + catalogs.classes.map(ListOptions.createUi('linkClass', 'Class')) + ]) + ]) + }; + return { + title: 'Insert/Edit Link', + size: 'normal', + body: body, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + initialData: initialData, + onChange: function (api, _a) { + var name = _a.name; + dialogDelta.onChange(api.getData, { name: name }).each(function (newData) { + api.setData(newData); + }); + }, + onSubmit: onSubmit + }; + }; + var open = function (editor) { + var data = collectData(editor); + data.then(function (info) { + var onSubmit = handleSubmit(editor, info); + return makeDialog(info, onSubmit, editor); + }).then(function (spec) { + editor.windowManager.open(spec); + }); + }; + + var appendClickRemove = function (link, evt) { + domGlobals.document.body.appendChild(link); + link.dispatchEvent(evt); + domGlobals.document.body.removeChild(link); + }; + var open$1 = function (url) { + var link = domGlobals.document.createElement('a'); + link.target = '_blank'; + link.href = url; + link.rel = 'noreferrer noopener'; + var evt = domGlobals.document.createEvent('MouseEvents'); + evt.initMouseEvent('click', true, true, domGlobals.window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + appendClickRemove(link, evt); + }; + + var getLink = function (editor, elm) { + return editor.dom.getParent(elm, 'a[href]'); + }; + var getSelectedLink = function (editor) { + return getLink(editor, editor.selection.getStart()); + }; + var hasOnlyAltModifier = function (e) { + return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false; + }; + var gotoLink = function (editor, a) { + if (a) { + var href = getHref(a); + if (/^#/.test(href)) { + var targetEl = editor.$(href); + if (targetEl.length) { + editor.selection.scrollIntoView(targetEl[0], true); + } + } else { + open$1(a.href); + } + } + }; + var openDialog = function (editor) { + return function () { + open(editor); + }; + }; + var gotoSelectedLink = function (editor) { + return function () { + gotoLink(editor, getSelectedLink(editor)); + }; + }; + var setupGotoLinks = function (editor) { + editor.on('click', function (e) { + var link = getLink(editor, e.target); + if (link && global$1.metaKeyPressed(e)) { + e.preventDefault(); + gotoLink(editor, link); + } + }); + editor.on('keydown', function (e) { + var link = getSelectedLink(editor); + if (link && e.keyCode === 13 && hasOnlyAltModifier(e)) { + e.preventDefault(); + gotoLink(editor, link); + } + }); + }; + var toggleActiveState = function (editor) { + return function (api) { + var nodeChangeHandler = function (e) { + return api.setActive(!editor.mode.isReadOnly() && !!getAnchorElement(editor, e.element)); + }; + editor.on('NodeChange', nodeChangeHandler); + return function () { + return editor.off('NodeChange', nodeChangeHandler); + }; + }; + }; + var toggleEnabledState = function (editor) { + return function (api) { + var parents = editor.dom.getParents(editor.selection.getStart()); + api.setDisabled(!hasLinks(parents)); + var nodeChangeHandler = function (e) { + return api.setDisabled(!hasLinks(e.parents)); + }; + editor.on('NodeChange', nodeChangeHandler); + return function () { + return editor.off('NodeChange', nodeChangeHandler); + }; + }; + }; + + var register = function (editor) { + editor.addCommand('mceLink', function () { + if (useQuickLink(editor)) { + editor.fire('contexttoolbar-show', { toolbarKey: 'quicklink' }); + } else { + openDialog(editor)(); + } + }); + }; + + var setup = function (editor) { + editor.addShortcut('Meta+K', '', function () { + editor.execCommand('mceLink'); + }); + }; + + var setupButtons = function (editor) { + editor.ui.registry.addToggleButton('link', { + icon: 'link', + tooltip: 'Insert/edit link', + onAction: openDialog(editor), + onSetup: toggleActiveState(editor) + }); + editor.ui.registry.addButton('openlink', { + icon: 'new-tab', + tooltip: 'Open link', + onAction: gotoSelectedLink(editor), + onSetup: toggleEnabledState(editor) + }); + editor.ui.registry.addButton('unlink', { + icon: 'unlink', + tooltip: 'Remove link', + onAction: function () { + return unlink(editor); + }, + onSetup: toggleEnabledState(editor) + }); + }; + var setupMenuItems = function (editor) { + editor.ui.registry.addMenuItem('openlink', { + text: 'Open link', + icon: 'new-tab', + onAction: gotoSelectedLink(editor), + onSetup: toggleEnabledState(editor) + }); + editor.ui.registry.addMenuItem('link', { + icon: 'link', + text: 'Link...', + shortcut: 'Meta+K', + onAction: openDialog(editor) + }); + editor.ui.registry.addMenuItem('unlink', { + icon: 'unlink', + text: 'Remove link', + onAction: function () { + return unlink(editor); + }, + onSetup: toggleEnabledState(editor) + }); + }; + var setupContextMenu = function (editor) { + var inLink = 'link unlink openlink'; + var noLink = 'link'; + editor.ui.registry.addContextMenu('link', { + update: function (element) { + return hasLinks(editor.dom.getParents(element, 'a')) ? inLink : noLink; + } + }); + }; + var setupContextToolbars = function (editor) { + var collapseSelectionToEnd = function (editor) { + editor.selection.collapse(false); + }; + var onSetupLink = function (buttonApi) { + var node = editor.selection.getNode(); + buttonApi.setDisabled(!getAnchorElement(editor, node)); + return function () { + }; + }; + editor.ui.registry.addContextForm('quicklink', { + launch: { + type: 'contextformtogglebutton', + icon: 'link', + tooltip: 'Link', + onSetup: toggleActiveState(editor) + }, + label: 'Link', + predicate: function (node) { + return !!getAnchorElement(editor, node) && hasContextToolbar(editor); + }, + initValue: function () { + var elm = getAnchorElement(editor); + return !!elm ? getHref(elm) : ''; + }, + commands: [ + { + type: 'contextformtogglebutton', + icon: 'link', + tooltip: 'Link', + primary: true, + onSetup: function (buttonApi) { + var node = editor.selection.getNode(); + buttonApi.setActive(!!getAnchorElement(editor, node)); + return toggleActiveState(editor)(buttonApi); + }, + onAction: function (formApi) { + var anchor = getAnchorElement(editor); + var value = formApi.getValue(); + if (!anchor) { + var attachState = { + href: value, + attach: function () { + } + }; + var onlyText = isOnlyTextSelected(editor.selection.getContent()); + var text = onlyText ? Option.some(getAnchorText(editor.selection, anchor)).filter(function (t) { + return t.length > 0; + }).or(Option.from(value)) : Option.none(); + link(editor, attachState, { + href: value, + text: text, + title: Option.none(), + rel: Option.none(), + target: Option.none(), + class: Option.none() + }); + formApi.hide(); + } else { + editor.undoManager.transact(function () { + editor.dom.setAttrib(anchor, 'href', value); + collapseSelectionToEnd(editor); + formApi.hide(); + }); + } + } + }, + { + type: 'contextformbutton', + icon: 'unlink', + tooltip: 'Remove link', + onSetup: onSetupLink, + onAction: function (formApi) { + unlink(editor); + formApi.hide(); + } + }, + { + type: 'contextformbutton', + icon: 'new-tab', + tooltip: 'Open link', + onSetup: onSetupLink, + onAction: function (formApi) { + gotoSelectedLink(editor)(); + formApi.hide(); + } + } + ] + }); + }; + + function Plugin () { + global.add('link', function (editor) { + setupButtons(editor); + setupMenuItems(editor); + setupContextMenu(editor); + setupContextToolbars(editor); + setupGotoLinks(editor); + register(editor); + setup(editor); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/link/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/link/plugin.min.js new file mode 100755 index 0000000..3f989b7 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/link/plugin.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.4.2 (2020-08-17) + */ +!function(i){"use strict";var n,t,e,r,o=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=tinymce.util.Tools.resolve("tinymce.util.VK"),a=function(r){return function(t){return e=typeof(n=t),(null===n?"null":"object"==e&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":e)===r;var n,e}},l=function(n){return function(t){return typeof t===n}},c=a("string"),f=a("array"),s=function(t){return n===t},m=l("boolean"),g=l("function"),d=function(t){var n=t.getParam("link_assume_external_targets",!1);return m(n)&&n?1:!c(n)||"http"!==n&&"https"!==n?0:n},v=function(t){return t.getParam("default_link_target")},h=function(t){return t.getParam("target_list",!0)},p=function(t){return t.getParam("rel_list",[],"array")},y=function(t){return t.getParam("allow_unsafe_link_target",!1,"boolean")},k=function(){},x=function(t){return function(){return t}},b=x(!1),O=x(!(n=null)),w=function(){return C},C=(t=function(t){return t.isNone()},{fold:function(t,n){return t()},is:b,isSome:b,isNone:O,getOr:r=function(t){return t},getOrThunk:e=function(t){return t()},getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:x(null),getOrUndefined:x(undefined),or:r,orThunk:e,map:w,each:k,bind:w,exists:b,forall:O,filter:w,equals:t,equals_:t,toArray:function(){return[]},toString:x("none()")}),A=function(e){var t=x(e),n=function(){return o},r=function(t){return t(e)},o={fold:function(t,n){return n(e)},is:function(t){return e===t},isSome:O,isNone:b,getOr:t,getOrThunk:t,getOrDie:t,getOrNull:t,getOrUndefined:t,or:n,orThunk:n,map:function(t){return A(t(e))},each:function(t){t(e)},bind:r,exists:r,forall:r,filter:function(t){return t(e)?o:C},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(t){return t.is(e)},equals_:function(t,n){return t.fold(b,function(t){return n(e,t)})}};return o},N={some:A,none:w,from:function(t){return null===t||t===undefined?C:A(t)}},P=Array.prototype.indexOf,_=Array.prototype.push,S=function(t,n){return e=t,r=n,-1]+>[^<]+<\/a>$/.test(t)||-1===t.indexOf("href=")))},Q=function(t){return t&&"FIGURE"===t.nodeName&&/\bimage\b/i.test(t.className)},Y=function(t){return n=["title","rel","class","target"],e=function(n,e){return t[e].each(function(t){n[e]=0 1) { + domGlobals.console.error('HTML does not have a single root node', html); + throw new Error('HTML must have a single root node'); + } + return fromDom(div.childNodes[0]); + }; + var fromTag = function (tag, scope) { + var doc = scope || domGlobals.document; + var node = doc.createElement(tag); + return fromDom(node); + }; + var fromText = function (text, scope) { + var doc = scope || domGlobals.document; + var node = doc.createTextNode(text); + return fromDom(node); + }; + var fromDom = function (node) { + if (node === null || node === undefined) { + throw new Error('Node cannot be null or undefined'); + } + return { dom: constant(node) }; + }; + var fromPoint = function (docElm, x, y) { + var doc = docElm.dom(); + return Option.from(doc.elementFromPoint(x, y)).map(fromDom); + }; + var Element = { + fromHtml: fromHtml, + fromTag: fromTag, + fromText: fromText, + fromDom: fromDom, + fromPoint: fromPoint + }; + + var ELEMENT = 1; + + var is = function (element, selector) { + var dom = element.dom(); + if (dom.nodeType !== ELEMENT) { + return false; + } else { + var elem = dom; + if (elem.matches !== undefined) { + return elem.matches(selector); + } else if (elem.msMatchesSelector !== undefined) { + return elem.msMatchesSelector(selector); + } else if (elem.webkitMatchesSelector !== undefined) { + return elem.webkitMatchesSelector(selector); + } else if (elem.mozMatchesSelector !== undefined) { + return elem.mozMatchesSelector(selector); + } else { + throw new Error('Browser lacks native selectors'); + } + } + }; + + var eq = function (e1, e2) { + return e1.dom() === e2.dom(); + }; + var regularContains = function (e1, e2) { + var d1 = e1.dom(); + var d2 = e2.dom(); + return d1 === d2 ? false : d1.contains(d2); + }; + var ieContains = function (e1, e2) { + return documentPositionContainedBy(e1.dom(), e2.dom()); + }; + var contains$1 = function (e1, e2) { + return detect$3().browser.isIE() ? ieContains(e1, e2) : regularContains(e1, e2); + }; + var is$1 = is; + + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker'); + + var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK'); + + var lift2 = function (oa, ob, f) { + return oa.isSome() && ob.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie())) : Option.none(); + }; + + var fromElements = function (elements, scope) { + var doc = scope || domGlobals.document; + var fragment = doc.createDocumentFragment(); + each(elements, function (element) { + fragment.appendChild(element.dom()); + }); + return Element.fromDom(fragment); + }; + + var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); + + var name = function (element) { + var r = element.dom().nodeName; + return r.toLowerCase(); + }; + var type = function (element) { + return element.dom().nodeType; + }; + var isType$1 = function (t) { + return function (element) { + return type(element) === t; + }; + }; + var isElement = isType$1(ELEMENT); + + var parent = function (element) { + return Option.from(element.dom().parentNode).map(Element.fromDom); + }; + var children = function (element) { + return map(element.dom().childNodes, Element.fromDom); + }; + var child = function (element, index) { + var cs = element.dom().childNodes; + return Option.from(cs[index]).map(Element.fromDom); + }; + var firstChild = function (element) { + return child(element, 0); + }; + var lastChild = function (element) { + return child(element, element.dom().childNodes.length - 1); + }; + + var before = function (marker, element) { + var parent$1 = parent(marker); + parent$1.each(function (v) { + v.dom().insertBefore(element.dom(), marker.dom()); + }); + }; + var append = function (parent, element) { + parent.dom().appendChild(element.dom()); + }; + + var before$1 = function (marker, elements) { + each(elements, function (x) { + before(marker, x); + }); + }; + var append$1 = function (parent, elements) { + each(elements, function (x) { + append(parent, x); + }); + }; + + var remove = function (element) { + var dom = element.dom(); + if (dom.parentNode !== null) { + dom.parentNode.removeChild(dom); + } + }; + + var fireListEvent = function (editor, action, element) { + return editor.fire('ListMutation', { + action: action, + element: element + }); + }; + + var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery'); + + var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var matchNodeName = function (name) { + return function (node) { + return node && node.nodeName.toLowerCase() === name; + }; + }; + var matchNodeNames = function (regex) { + return function (node) { + return node && regex.test(node.nodeName); + }; + }; + var isTextNode = function (node) { + return node && node.nodeType === 3; + }; + var isListNode = matchNodeNames(/^(OL|UL|DL)$/); + var isOlUlNode = matchNodeNames(/^(OL|UL)$/); + var isOlNode = matchNodeName('ol'); + var isListItemNode = matchNodeNames(/^(LI|DT|DD)$/); + var isDlItemNode = matchNodeNames(/^(DT|DD)$/); + var isTableCellNode = matchNodeNames(/^(TH|TD)$/); + var isBr = matchNodeName('br'); + var isFirstChild = function (node) { + return node.parentNode.firstChild === node; + }; + var isTextBlock = function (editor, node) { + return node && !!editor.schema.getTextBlockElements()[node.nodeName]; + }; + var isBlock = function (node, blockElements) { + return node && node.nodeName in blockElements; + }; + var isBogusBr = function (dom, node) { + if (!isBr(node)) { + return false; + } + if (dom.isBlock(node.nextSibling) && !isBr(node.previousSibling)) { + return true; + } + return false; + }; + var isEmpty = function (dom, elm, keepBookmarks) { + var empty = dom.isEmpty(elm); + if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) { + return false; + } + return empty; + }; + var isChildOfBody = function (dom, elm) { + return dom.isChildOf(elm, dom.getRoot()); + }; + + var getParentList = function (editor, node) { + var selectionStart = node || editor.selection.getStart(true); + return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart)); + }; + var isParentListSelected = function (parentList, selectedBlocks) { + return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList; + }; + var findSubLists = function (parentList) { + return global$5.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm) { + return isListNode(elm); + }); + }; + var getSelectedSubLists = function (editor) { + var parentList = getParentList(editor); + var selectedBlocks = editor.selection.getSelectedBlocks(); + if (isParentListSelected(parentList, selectedBlocks)) { + return findSubLists(parentList); + } else { + return global$5.grep(selectedBlocks, function (elm) { + return isListNode(elm) && parentList !== elm; + }); + } + }; + var findParentListItemsNodes = function (editor, elms) { + var listItemsElms = global$5.map(elms, function (elm) { + var parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm)); + return parentLi ? parentLi : elm; + }); + return global$4.unique(listItemsElms); + }; + var getSelectedListItems = function (editor) { + var selectedBlocks = editor.selection.getSelectedBlocks(); + return global$5.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) { + return isListItemNode(block); + }); + }; + var getSelectedDlItems = function (editor) { + return filter(getSelectedListItems(editor), isDlItemNode); + }; + var getClosestListRootElm = function (editor, elm) { + var parentTableCell = editor.dom.getParents(elm, 'TD,TH'); + var root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody(); + return root; + }; + var findLastParentListNode = function (editor, elm) { + var parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListRootElm(editor, elm)); + return last(parentLists); + }; + var getSelectedLists = function (editor) { + var firstList = findLastParentListNode(editor, editor.selection.getStart()); + var subsequentLists = filter(editor.selection.getSelectedBlocks(), isOlUlNode); + return firstList.toArray().concat(subsequentLists); + }; + var getSelectedListRoots = function (editor) { + var selectedLists = getSelectedLists(editor); + return getUniqueListRoots(editor, selectedLists); + }; + var getUniqueListRoots = function (editor, lists) { + var listRoots = map(lists, function (list) { + return findLastParentListNode(editor, list).getOr(list); + }); + return global$4.unique(listRoots); + }; + + var shouldIndentOnTab = function (editor) { + return editor.getParam('lists_indent_on_tab', true); + }; + var getForcedRootBlock = function (editor) { + var block = editor.getParam('forced_root_block', 'p'); + if (block === false) { + return ''; + } else if (block === true) { + return 'p'; + } else { + return block; + } + }; + var getForcedRootBlockAttrs = function (editor) { + return editor.getParam('forced_root_block_attrs', {}); + }; + + var createTextBlock = function (editor, contentNode) { + var dom = editor.dom; + var blockElements = editor.schema.getBlockElements(); + var fragment = dom.createFragment(); + var blockName = getForcedRootBlock(editor); + var node, textBlock, hasContentNode; + if (blockName) { + textBlock = dom.create(blockName); + if (textBlock.tagName === blockName.toUpperCase()) { + dom.setAttribs(textBlock, getForcedRootBlockAttrs(editor)); + } + if (!isBlock(contentNode.firstChild, blockElements)) { + fragment.appendChild(textBlock); + } + } + if (contentNode) { + while (node = contentNode.firstChild) { + var nodeName = node.nodeName; + if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) { + hasContentNode = true; + } + if (isBlock(node, blockElements)) { + fragment.appendChild(node); + textBlock = null; + } else { + if (blockName) { + if (!textBlock) { + textBlock = dom.create(blockName); + fragment.appendChild(textBlock); + } + textBlock.appendChild(node); + } else { + fragment.appendChild(node); + } + } + } + } + if (!blockName) { + fragment.appendChild(dom.create('br')); + } else { + if (!hasContentNode) { + textBlock.appendChild(dom.create('br', { 'data-mce-bogus': '1' })); + } + } + return fragment; + }; + + var keys = Object.keys; + var each$1 = function (obj, f) { + var props = keys(obj); + for (var k = 0, len = props.length; k < len; k++) { + var i = props[k]; + var x = obj[i]; + f(x, i); + } + }; + var objAcc = function (r) { + return function (x, i) { + r[i] = x; + }; + }; + var internalFilter = function (obj, pred, onTrue, onFalse) { + var r = {}; + each$1(obj, function (x, i) { + (pred(x, i) ? onTrue : onFalse)(x, i); + }); + return r; + }; + var filter$1 = function (obj, pred) { + var t = {}; + internalFilter(obj, pred, objAcc(t), noop); + return t; + }; + + var rawSet = function (dom, key, value) { + if (isString(value) || isBoolean(value) || isNumber(value)) { + dom.setAttribute(key, value + ''); + } else { + domGlobals.console.error('Invalid call to Attr.set. Key ', key, ':: Value ', value, ':: Element ', dom); + throw new Error('Attribute value was not simple'); + } + }; + var setAll = function (element, attrs) { + var dom = element.dom(); + each$1(attrs, function (v, k) { + rawSet(dom, k, v); + }); + }; + var clone = function (element) { + return foldl(element.dom().attributes, function (acc, attr) { + acc[attr.name] = attr.value; + return acc; + }, {}); + }; + + var isSupported = function (dom) { + return dom.style !== undefined && isFunction(dom.style.getPropertyValue); + }; + + var supported = isFunction(domGlobals.Element.prototype.attachShadow) && isFunction(domGlobals.Node.prototype.getRootNode); + + var internalSet = function (dom, property, value) { + if (!isString(value)) { + domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom); + throw new Error('CSS value must be a string: ' + value); + } + if (isSupported(dom)) { + dom.style.setProperty(property, value); + } + }; + var set = function (element, property, value) { + var dom = element.dom(); + internalSet(dom, property, value); + }; + + var clone$1 = function (original, isDeep) { + return Element.fromDom(original.dom().cloneNode(isDeep)); + }; + var deep = function (original) { + return clone$1(original, true); + }; + var shallowAs = function (original, tag) { + var nu = Element.fromTag(tag); + var attributes = clone(original); + setAll(nu, attributes); + return nu; + }; + var mutate = function (original, tag) { + var nu = shallowAs(original, tag); + before(original, nu); + var children$1 = children(original); + append$1(nu, children$1); + remove(original); + return nu; + }; + + var joinSegment = function (parent, child) { + append(parent.item, child.list); + }; + var joinSegments = function (segments) { + for (var i = 1; i < segments.length; i++) { + joinSegment(segments[i - 1], segments[i]); + } + }; + var appendSegments = function (head$1, tail) { + lift2(last(head$1), head(tail), joinSegment); + }; + var createSegment = function (scope, listType) { + var segment = { + list: Element.fromTag(listType, scope), + item: Element.fromTag('li', scope) + }; + append(segment.list, segment.item); + return segment; + }; + var createSegments = function (scope, entry, size) { + var segments = []; + for (var i = 0; i < size; i++) { + segments.push(createSegment(scope, entry.listType)); + } + return segments; + }; + var populateSegments = function (segments, entry) { + for (var i = 0; i < segments.length - 1; i++) { + set(segments[i].item, 'list-style-type', 'none'); + } + last(segments).each(function (segment) { + setAll(segment.list, entry.listAttributes); + setAll(segment.item, entry.itemAttributes); + append$1(segment.item, entry.content); + }); + }; + var normalizeSegment = function (segment, entry) { + if (name(segment.list) !== entry.listType) { + segment.list = mutate(segment.list, entry.listType); + } + setAll(segment.list, entry.listAttributes); + }; + var createItem = function (scope, attr, content) { + var item = Element.fromTag('li', scope); + setAll(item, attr); + append$1(item, content); + return item; + }; + var appendItem = function (segment, item) { + append(segment.list, item); + segment.item = item; + }; + var writeShallow = function (scope, cast, entry) { + var newCast = cast.slice(0, entry.depth); + last(newCast).each(function (segment) { + var item = createItem(scope, entry.itemAttributes, entry.content); + appendItem(segment, item); + normalizeSegment(segment, entry); + }); + return newCast; + }; + var writeDeep = function (scope, cast, entry) { + var segments = createSegments(scope, entry, entry.depth - cast.length); + joinSegments(segments); + populateSegments(segments, entry); + appendSegments(cast, segments); + return cast.concat(segments); + }; + var composeList = function (scope, entries) { + var cast = foldl(entries, function (cast, entry) { + return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry); + }, []); + return head(cast).map(function (segment) { + return segment.list; + }); + }; + + var isList = function (el) { + return is$1(el, 'OL,UL'); + }; + var hasFirstChildList = function (el) { + return firstChild(el).map(isList).getOr(false); + }; + var hasLastChildList = function (el) { + return lastChild(el).map(isList).getOr(false); + }; + + var isIndented = function (entry) { + return entry.depth > 0; + }; + var isSelected = function (entry) { + return entry.isSelected; + }; + var cloneItemContent = function (li) { + var children$1 = children(li); + var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1; + return map(content, deep); + }; + var createEntry = function (li, depth, isSelected) { + return parent(li).filter(isElement).map(function (list) { + return { + depth: depth, + dirty: false, + isSelected: isSelected, + content: cloneItemContent(li), + itemAttributes: clone(li), + listAttributes: clone(list), + listType: name(list) + }; + }); + }; + + var indentEntry = function (indentation, entry) { + switch (indentation) { + case 'Indent': + entry.depth++; + break; + case 'Outdent': + entry.depth--; + break; + case 'Flatten': + entry.depth = 0; + } + entry.dirty = true; + }; + + var cloneListProperties = function (target, source) { + target.listType = source.listType; + target.listAttributes = __assign({}, source.listAttributes); + }; + var cleanListProperties = function (entry) { + entry.listAttributes = filter$1(entry.listAttributes, function (_value, key) { + return key !== 'start'; + }); + }; + var closestSiblingEntry = function (entries, start) { + var depth = entries[start].depth; + var matches = function (entry) { + return entry.depth === depth && !entry.dirty; + }; + var until = function (entry) { + return entry.depth < depth; + }; + return findUntil(reverse(entries.slice(0, start)), matches, until).orThunk(function () { + return findUntil(entries.slice(start + 1), matches, until); + }); + }; + var normalizeEntries = function (entries) { + each(entries, function (entry, i) { + closestSiblingEntry(entries, i).fold(function () { + if (entry.dirty) { + cleanListProperties(entry); + } + }, function (matchingEntry) { + return cloneListProperties(entry, matchingEntry); + }); + }); + return entries; + }; + + var Cell = function (initial) { + var value = initial; + var get = function () { + return value; + }; + var set = function (v) { + value = v; + }; + return { + get: get, + set: set + }; + }; + + var parseItem = function (depth, itemSelection, selectionState, item) { + return firstChild(item).filter(isList).fold(function () { + itemSelection.each(function (selection) { + if (eq(selection.start, item)) { + selectionState.set(true); + } + }); + var currentItemEntry = createEntry(item, depth, selectionState.get()); + itemSelection.each(function (selection) { + if (eq(selection.end, item)) { + selectionState.set(false); + } + }); + var childListEntries = lastChild(item).filter(isList).map(function (list) { + return parseList(depth, itemSelection, selectionState, list); + }).getOr([]); + return currentItemEntry.toArray().concat(childListEntries); + }, function (list) { + return parseList(depth, itemSelection, selectionState, list); + }); + }; + var parseList = function (depth, itemSelection, selectionState, list) { + return bind(children(list), function (element) { + var parser = isList(element) ? parseList : parseItem; + var newDepth = depth + 1; + return parser(newDepth, itemSelection, selectionState, element); + }); + }; + var parseLists = function (lists, itemSelection) { + var selectionState = Cell(false); + var initialDepth = 0; + return map(lists, function (list) { + return { + sourceList: list, + entries: parseList(initialDepth, itemSelection, selectionState, list) + }; + }); + }; + + var outdentedComposer = function (editor, entries) { + var normalizedEntries = normalizeEntries(entries); + return map(normalizedEntries, function (entry) { + var content = fromElements(entry.content); + return Element.fromDom(createTextBlock(editor, content.dom())); + }); + }; + var indentedComposer = function (editor, entries) { + var normalizedEntries = normalizeEntries(entries); + return composeList(editor.contentDocument, normalizedEntries).toArray(); + }; + var composeEntries = function (editor, entries) { + return bind(groupBy(entries, isIndented), function (entries) { + var groupIsIndented = head(entries).map(isIndented).getOr(false); + return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries); + }); + }; + var indentSelectedEntries = function (entries, indentation) { + each(filter(entries, isSelected), function (entry) { + return indentEntry(indentation, entry); + }); + }; + var getItemSelection = function (editor) { + var selectedListItems = map(getSelectedListItems(editor), Element.fromDom); + return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), function (start, end) { + return { + start: start, + end: end + }; + }); + }; + var listIndentation = function (editor, lists, indentation) { + var entrySets = parseLists(lists, getItemSelection(editor)); + each(entrySets, function (entrySet) { + indentSelectedEntries(entrySet.entries, indentation); + var composedLists = composeEntries(editor, entrySet.entries); + each(composedLists, function (composedList) { + fireListEvent(editor, indentation === 'Indent' ? 'IndentList' : 'OutdentList', composedList.dom()); + }); + before$1(entrySet.sourceList, composedLists); + remove(entrySet.sourceList); + }); + }; + + var global$6 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var DOM = global$6.DOM; + var splitList = function (editor, ul, li) { + var removeAndKeepBookmarks = function (targetNode) { + global$5.each(bookmarks, function (node) { + targetNode.parentNode.insertBefore(node, li.parentNode); + }); + DOM.remove(targetNode); + }; + var bookmarks = DOM.select('span[data-mce-type="bookmark"]', ul); + var newBlock = createTextBlock(editor, li); + var tmpRng = DOM.createRng(); + tmpRng.setStartAfter(li); + tmpRng.setEndAfter(ul); + var fragment = tmpRng.extractContents(); + for (var node = fragment.firstChild; node; node = node.firstChild) { + if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) { + DOM.remove(node); + break; + } + } + if (!editor.dom.isEmpty(fragment)) { + DOM.insertAfter(fragment, ul); + } + DOM.insertAfter(newBlock, ul); + if (isEmpty(editor.dom, li.parentNode)) { + removeAndKeepBookmarks(li.parentNode); + } + DOM.remove(li); + if (isEmpty(editor.dom, ul)) { + DOM.remove(ul); + } + }; + + var outdentDlItem = function (editor, item) { + if (is$1(item, 'dd')) { + mutate(item, 'dt'); + } else if (is$1(item, 'dt')) { + parent(item).each(function (dl) { + return splitList(editor, dl.dom(), item.dom()); + }); + } + }; + var indentDlItem = function (item) { + if (is$1(item, 'dt')) { + mutate(item, 'dd'); + } + }; + var dlIndentation = function (editor, indentation, dlItems) { + if (indentation === 'Indent') { + each(dlItems, indentDlItem); + } else { + each(dlItems, function (item) { + return outdentDlItem(editor, item); + }); + } + }; + + var getNormalizedPoint = function (container, offset) { + if (isTextNode(container)) { + return { + container: container, + offset: offset + }; + } + var node = global$1.getNode(container, offset); + if (isTextNode(node)) { + return { + container: node, + offset: offset >= container.childNodes.length ? node.data.length : 0 + }; + } else if (node.previousSibling && isTextNode(node.previousSibling)) { + return { + container: node.previousSibling, + offset: node.previousSibling.data.length + }; + } else if (node.nextSibling && isTextNode(node.nextSibling)) { + return { + container: node.nextSibling, + offset: 0 + }; + } + return { + container: container, + offset: offset + }; + }; + var normalizeRange = function (rng) { + var outRng = rng.cloneRange(); + var rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset); + outRng.setStart(rangeStart.container, rangeStart.offset); + var rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset); + outRng.setEnd(rangeEnd.container, rangeEnd.offset); + return outRng; + }; + + var selectionIndentation = function (editor, indentation) { + var lists = map(getSelectedListRoots(editor), Element.fromDom); + var dlItems = map(getSelectedDlItems(editor), Element.fromDom); + var isHandled = false; + if (lists.length || dlItems.length) { + var bookmark = editor.selection.getBookmark(); + listIndentation(editor, lists, indentation); + dlIndentation(editor, indentation, dlItems); + editor.selection.moveToBookmark(bookmark); + editor.selection.setRng(normalizeRange(editor.selection.getRng())); + editor.nodeChanged(); + isHandled = true; + } + return isHandled; + }; + var indentListSelection = function (editor) { + return selectionIndentation(editor, 'Indent'); + }; + var outdentListSelection = function (editor) { + return selectionIndentation(editor, 'Outdent'); + }; + var flattenListSelection = function (editor) { + return selectionIndentation(editor, 'Flatten'); + }; + + var global$7 = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager'); + + var DOM$1 = global$6.DOM; + var createBookmark = function (rng) { + var bookmark = {}; + var setupEndPoint = function (start) { + var offsetNode, container, offset; + container = rng[start ? 'startContainer' : 'endContainer']; + offset = rng[start ? 'startOffset' : 'endOffset']; + if (container.nodeType === 1) { + offsetNode = DOM$1.create('span', { 'data-mce-type': 'bookmark' }); + if (container.hasChildNodes()) { + offset = Math.min(offset, container.childNodes.length - 1); + if (start) { + container.insertBefore(offsetNode, container.childNodes[offset]); + } else { + DOM$1.insertAfter(offsetNode, container.childNodes[offset]); + } + } else { + container.appendChild(offsetNode); + } + container = offsetNode; + offset = 0; + } + bookmark[start ? 'startContainer' : 'endContainer'] = container; + bookmark[start ? 'startOffset' : 'endOffset'] = offset; + }; + setupEndPoint(true); + if (!rng.collapsed) { + setupEndPoint(); + } + return bookmark; + }; + var resolveBookmark = function (bookmark) { + function restoreEndPoint(start) { + var container, offset, node; + var nodeIndex = function (container) { + var node = container.parentNode.firstChild, idx = 0; + while (node) { + if (node === container) { + return idx; + } + if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') { + idx++; + } + node = node.nextSibling; + } + return -1; + }; + container = node = bookmark[start ? 'startContainer' : 'endContainer']; + offset = bookmark[start ? 'startOffset' : 'endOffset']; + if (!container) { + return; + } + if (container.nodeType === 1) { + offset = nodeIndex(container); + container = container.parentNode; + DOM$1.remove(node); + if (!container.hasChildNodes() && DOM$1.isBlock(container)) { + container.appendChild(DOM$1.create('br')); + } + } + bookmark[start ? 'startContainer' : 'endContainer'] = container; + bookmark[start ? 'startOffset' : 'endOffset'] = offset; + } + restoreEndPoint(true); + restoreEndPoint(); + var rng = DOM$1.createRng(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + if (bookmark.endContainer) { + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } + return normalizeRange(rng); + }; + + var listToggleActionFromListName = function (listName) { + switch (listName) { + case 'UL': + return 'ToggleUlList'; + case 'OL': + return 'ToggleOlList'; + case 'DL': + return 'ToggleDLList'; + } + }; + + var isCustomList = function (list) { + return /\btox\-/.test(list.className); + }; + var listState = function (editor, listName, activate) { + var nodeChangeHandler = function (e) { + var inList = findUntil(e.parents, isListNode, isTableCellNode).filter(function (list) { + return list.nodeName === listName && !isCustomList(list); + }).isSome(); + activate(inList); + }; + var parents = editor.dom.getParents(editor.selection.getNode()); + nodeChangeHandler({ parents: parents }); + editor.on('NodeChange', nodeChangeHandler); + return function () { + return editor.off('NodeChange', nodeChangeHandler); + }; + }; + + var updateListStyle = function (dom, el, detail) { + var type = detail['list-style-type'] ? detail['list-style-type'] : null; + dom.setStyle(el, 'list-style-type', type); + }; + var setAttribs = function (elm, attrs) { + global$5.each(attrs, function (value, key) { + elm.setAttribute(key, value); + }); + }; + var updateListAttrs = function (dom, el, detail) { + setAttribs(el, detail['list-attributes']); + global$5.each(dom.select('li', el), function (li) { + setAttribs(li, detail['list-item-attributes']); + }); + }; + var updateListWithDetails = function (dom, el, detail) { + updateListStyle(dom, el, detail); + updateListAttrs(dom, el, detail); + }; + var removeStyles = function (dom, element, styles) { + global$5.each(styles, function (style) { + var _a; + return dom.setStyle(element, (_a = {}, _a[style] = '', _a)); + }); + }; + var getEndPointNode = function (editor, rng, start, root) { + var container = rng[start ? 'startContainer' : 'endContainer']; + var offset = rng[start ? 'startOffset' : 'endOffset']; + if (container.nodeType === 1) { + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + } + if (!start && isBr(container.nextSibling)) { + container = container.nextSibling; + } + while (container.parentNode !== root) { + if (isTextBlock(editor, container)) { + return container; + } + if (/^(TD|TH)$/.test(container.parentNode.nodeName)) { + return container; + } + container = container.parentNode; + } + return container; + }; + var getSelectedTextBlocks = function (editor, rng, root) { + var textBlocks = [], dom = editor.dom; + var startNode = getEndPointNode(editor, rng, true, root); + var endNode = getEndPointNode(editor, rng, false, root); + var block; + var siblings = []; + for (var node = startNode; node; node = node.nextSibling) { + siblings.push(node); + if (node === endNode) { + break; + } + } + global$5.each(siblings, function (node) { + if (isTextBlock(editor, node)) { + textBlocks.push(node); + block = null; + return; + } + if (dom.isBlock(node) || isBr(node)) { + if (isBr(node)) { + dom.remove(node); + } + block = null; + return; + } + var nextSibling = node.nextSibling; + if (global$7.isBookmarkNode(node)) { + if (isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) { + block = null; + return; + } + } + if (!block) { + block = dom.create('p'); + node.parentNode.insertBefore(block, node); + textBlocks.push(block); + } + block.appendChild(node); + }); + return textBlocks; + }; + var hasCompatibleStyle = function (dom, sib, detail) { + var sibStyle = dom.getStyle(sib, 'list-style-type'); + var detailStyle = detail ? detail['list-style-type'] : ''; + detailStyle = detailStyle === null ? '' : detailStyle; + return sibStyle === detailStyle; + }; + var applyList = function (editor, listName, detail) { + if (detail === void 0) { + detail = {}; + } + var rng = editor.selection.getRng(); + var listItemName = 'LI'; + var root = getClosestListRootElm(editor, editor.selection.getStart(true)); + var dom = editor.dom; + if (dom.getContentEditable(editor.selection.getNode()) === 'false') { + return; + } + listName = listName.toUpperCase(); + if (listName === 'DL') { + listItemName = 'DT'; + } + var bookmark = createBookmark(rng); + global$5.each(getSelectedTextBlocks(editor, rng, root), function (block) { + var listBlock; + var sibling = block.previousSibling; + if (sibling && isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) { + listBlock = sibling; + block = dom.rename(block, listItemName); + sibling.appendChild(block); + } else { + listBlock = dom.create(listName); + block.parentNode.insertBefore(listBlock, block); + listBlock.appendChild(block); + block = dom.rename(block, listItemName); + } + removeStyles(dom, block, [ + 'margin', + 'margin-right', + 'margin-bottom', + 'margin-left', + 'margin-top', + 'padding', + 'padding-right', + 'padding-bottom', + 'padding-left', + 'padding-top' + ]); + updateListWithDetails(dom, listBlock, detail); + mergeWithAdjacentLists(editor.dom, listBlock); + }); + editor.selection.setRng(resolveBookmark(bookmark)); + }; + var isValidLists = function (list1, list2) { + return list1 && list2 && isListNode(list1) && list1.nodeName === list2.nodeName; + }; + var hasSameListStyle = function (dom, list1, list2) { + var targetStyle = dom.getStyle(list1, 'list-style-type', true); + var style = dom.getStyle(list2, 'list-style-type', true); + return targetStyle === style; + }; + var hasSameClasses = function (elm1, elm2) { + return elm1.className === elm2.className; + }; + var shouldMerge = function (dom, list1, list2) { + return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2); + }; + var mergeWithAdjacentLists = function (dom, listBlock) { + var sibling, node; + sibling = listBlock.nextSibling; + if (shouldMerge(dom, listBlock, sibling)) { + while (node = sibling.firstChild) { + listBlock.appendChild(node); + } + dom.remove(sibling); + } + sibling = listBlock.previousSibling; + if (shouldMerge(dom, listBlock, sibling)) { + while (node = sibling.lastChild) { + listBlock.insertBefore(node, listBlock.firstChild); + } + dom.remove(sibling); + } + }; + var updateList = function (editor, list, listName, detail) { + if (list.nodeName !== listName) { + var newList = editor.dom.rename(list, listName); + updateListWithDetails(editor.dom, newList, detail); + fireListEvent(editor, listToggleActionFromListName(listName), newList); + } else { + updateListWithDetails(editor.dom, list, detail); + fireListEvent(editor, listToggleActionFromListName(listName), list); + } + }; + var toggleMultipleLists = function (editor, parentList, lists, listName, detail) { + if (parentList.nodeName === listName && !hasListStyleDetail(detail)) { + flattenListSelection(editor); + } else { + var bookmark = createBookmark(editor.selection.getRng(true)); + global$5.each([parentList].concat(lists), function (elm) { + updateList(editor, elm, listName, detail); + }); + editor.selection.setRng(resolveBookmark(bookmark)); + } + }; + var hasListStyleDetail = function (detail) { + return 'list-style-type' in detail; + }; + var toggleSingleList = function (editor, parentList, listName, detail) { + if (parentList === editor.getBody()) { + return; + } + if (parentList) { + if (parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList)) { + flattenListSelection(editor); + } else { + var bookmark = createBookmark(editor.selection.getRng(true)); + updateListWithDetails(editor.dom, parentList, detail); + var newList = editor.dom.rename(parentList, listName); + mergeWithAdjacentLists(editor.dom, newList); + editor.selection.setRng(resolveBookmark(bookmark)); + fireListEvent(editor, listToggleActionFromListName(listName), newList); + } + } else { + applyList(editor, listName, detail); + fireListEvent(editor, listToggleActionFromListName(listName), parentList); + } + }; + var toggleList = function (editor, listName, detail) { + var parentList = getParentList(editor); + var selectedSubLists = getSelectedSubLists(editor); + detail = detail ? detail : {}; + if (parentList && selectedSubLists.length > 0) { + toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail); + } else { + toggleSingleList(editor, parentList, listName, detail); + } + }; + + var DOM$2 = global$6.DOM; + var normalizeList = function (dom, ul) { + var sibling; + var parentNode = ul.parentNode; + if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) { + sibling = parentNode.previousSibling; + if (sibling && sibling.nodeName === 'LI') { + sibling.appendChild(ul); + if (isEmpty(dom, parentNode)) { + DOM$2.remove(parentNode); + } + } else { + DOM$2.setStyle(parentNode, 'listStyleType', 'none'); + } + } + if (isListNode(parentNode)) { + sibling = parentNode.previousSibling; + if (sibling && sibling.nodeName === 'LI') { + sibling.appendChild(ul); + } + } + }; + var normalizeLists = function (dom, element) { + global$5.each(global$5.grep(dom.select('ol,ul', element)), function (ul) { + normalizeList(dom, ul); + }); + }; + + var findNextCaretContainer = function (editor, rng, isForward, root) { + var node = rng.startContainer; + var offset = rng.startOffset; + if (isTextNode(node) && (isForward ? offset < node.data.length : offset > 0)) { + return node; + } + var nonEmptyBlocks = editor.schema.getNonEmptyElements(); + if (node.nodeType === 1) { + node = global$1.getNode(node, offset); + } + var walker = new global$2(node, root); + if (isForward) { + if (isBogusBr(editor.dom, node)) { + walker.next(); + } + } + while (node = walker[isForward ? 'next' : 'prev2']()) { + if (node.nodeName === 'LI' && !node.hasChildNodes()) { + return node; + } + if (nonEmptyBlocks[node.nodeName]) { + return node; + } + if (isTextNode(node) && node.data.length > 0) { + return node; + } + } + }; + var hasOnlyOneBlockChild = function (dom, elm) { + var childNodes = elm.childNodes; + return childNodes.length === 1 && !isListNode(childNodes[0]) && dom.isBlock(childNodes[0]); + }; + var unwrapSingleBlockChild = function (dom, elm) { + if (hasOnlyOneBlockChild(dom, elm)) { + dom.remove(elm.firstChild, true); + } + }; + var moveChildren = function (dom, fromElm, toElm) { + var node; + var targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm; + unwrapSingleBlockChild(dom, fromElm); + if (!isEmpty(dom, fromElm, true)) { + while (node = fromElm.firstChild) { + targetElm.appendChild(node); + } + } + }; + var mergeLiElements = function (dom, fromElm, toElm) { + var listNode; + var ul = fromElm.parentNode; + if (!isChildOfBody(dom, fromElm) || !isChildOfBody(dom, toElm)) { + return; + } + if (isListNode(toElm.lastChild)) { + listNode = toElm.lastChild; + } + if (ul === toElm.lastChild) { + if (isBr(ul.previousSibling)) { + dom.remove(ul.previousSibling); + } + } + var node = toElm.lastChild; + if (node && isBr(node) && fromElm.hasChildNodes()) { + dom.remove(node); + } + if (isEmpty(dom, toElm, true)) { + dom.$(toElm).empty(); + } + moveChildren(dom, fromElm, toElm); + if (listNode) { + toElm.appendChild(listNode); + } + var contains = contains$1(Element.fromDom(toElm), Element.fromDom(fromElm)); + var nestedLists = contains ? dom.getParents(fromElm, isListNode, toElm) : []; + dom.remove(fromElm); + each(nestedLists, function (list) { + if (isEmpty(dom, list) && list !== dom.getRoot()) { + dom.remove(list); + } + }); + }; + var mergeIntoEmptyLi = function (editor, fromLi, toLi) { + editor.dom.$(toLi).empty(); + mergeLiElements(editor.dom, fromLi, toLi); + editor.selection.setCursorLocation(toLi); + }; + var mergeForward = function (editor, rng, fromLi, toLi) { + var dom = editor.dom; + if (dom.isEmpty(toLi)) { + mergeIntoEmptyLi(editor, fromLi, toLi); + } else { + var bookmark = createBookmark(rng); + mergeLiElements(dom, fromLi, toLi); + editor.selection.setRng(resolveBookmark(bookmark)); + } + }; + var mergeBackward = function (editor, rng, fromLi, toLi) { + var bookmark = createBookmark(rng); + mergeLiElements(editor.dom, fromLi, toLi); + var resolvedBookmark = resolveBookmark(bookmark); + editor.selection.setRng(resolvedBookmark); + }; + var backspaceDeleteFromListToListCaret = function (editor, isForward) { + var dom = editor.dom, selection = editor.selection; + var selectionStartElm = selection.getStart(); + var root = getClosestListRootElm(editor, selectionStartElm); + var li = dom.getParent(selection.getStart(), 'LI', root); + if (li) { + var ul = li.parentNode; + if (ul === editor.getBody() && isEmpty(dom, ul)) { + return true; + } + var rng_1 = normalizeRange(selection.getRng()); + var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng_1, isForward, root), 'LI', root); + if (otherLi_1 && otherLi_1 !== li) { + editor.undoManager.transact(function () { + if (isForward) { + mergeForward(editor, rng_1, otherLi_1, li); + } else { + if (isFirstChild(li)) { + outdentListSelection(editor); + } else { + mergeBackward(editor, rng_1, li, otherLi_1); + } + } + }); + return true; + } else if (!otherLi_1) { + if (!isForward && rng_1.startOffset === 0 && rng_1.endOffset === 0) { + editor.undoManager.transact(function () { + flattenListSelection(editor); + }); + return true; + } + } + } + return false; + }; + var removeBlock = function (dom, block, root) { + var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root); + dom.remove(block); + if (parentBlock && dom.isEmpty(parentBlock)) { + dom.remove(parentBlock); + } + }; + var backspaceDeleteIntoListCaret = function (editor, isForward) { + var dom = editor.dom; + var selectionStartElm = editor.selection.getStart(); + var root = getClosestListRootElm(editor, selectionStartElm); + var block = dom.getParent(selectionStartElm, dom.isBlock, root); + if (block && dom.isEmpty(block)) { + var rng = normalizeRange(editor.selection.getRng()); + var otherLi_2 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root); + if (otherLi_2) { + editor.undoManager.transact(function () { + removeBlock(dom, block, root); + mergeWithAdjacentLists(dom, otherLi_2.parentNode); + editor.selection.select(otherLi_2, true); + editor.selection.collapse(isForward); + }); + return true; + } + } + return false; + }; + var backspaceDeleteCaret = function (editor, isForward) { + return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward); + }; + var backspaceDeleteRange = function (editor) { + var selectionStartElm = editor.selection.getStart(); + var root = getClosestListRootElm(editor, selectionStartElm); + var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root); + if (startListParent || getSelectedListItems(editor).length > 0) { + editor.undoManager.transact(function () { + editor.execCommand('Delete'); + normalizeLists(editor.dom, editor.getBody()); + }); + return true; + } + return false; + }; + var backspaceDelete = function (editor, isForward) { + return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor); + }; + var setup = function (editor) { + editor.on('keydown', function (e) { + if (e.keyCode === global$3.BACKSPACE) { + if (backspaceDelete(editor, false)) { + e.preventDefault(); + } + } else if (e.keyCode === global$3.DELETE) { + if (backspaceDelete(editor, true)) { + e.preventDefault(); + } + } + }); + }; + + var get = function (editor) { + return { + backspaceDelete: function (isForward) { + backspaceDelete(editor, isForward); + } + }; + }; + + var open = function (editor) { + var dom = editor.dom; + var currentList = getParentList(editor); + if (!isOlNode(currentList)) { + return; + } + editor.windowManager.open({ + title: 'List Properties', + body: { + type: 'panel', + items: [{ + type: 'input', + name: 'start', + label: 'Start list at number', + inputMode: 'numeric' + }] + }, + initialData: { start: dom.getAttrib(currentList, 'start') || '1' }, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + onSubmit: function (api) { + var data = api.getData(); + editor.undoManager.transact(function () { + dom.setAttrib(getParentList(editor), 'start', data.start === '1' ? '' : data.start); + }); + api.close(); + } + }); + }; + + var queryListCommandState = function (editor, listName) { + return function () { + var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL'); + return parentList && parentList.nodeName === listName; + }; + }; + var register = function (editor) { + editor.on('BeforeExecCommand', function (e) { + var cmd = e.command.toLowerCase(); + if (cmd === 'indent') { + indentListSelection(editor); + } else if (cmd === 'outdent') { + outdentListSelection(editor); + } + }); + editor.addCommand('InsertUnorderedList', function (ui, detail) { + toggleList(editor, 'UL', detail); + }); + editor.addCommand('InsertOrderedList', function (ui, detail) { + toggleList(editor, 'OL', detail); + }); + editor.addCommand('InsertDefinitionList', function (ui, detail) { + toggleList(editor, 'DL', detail); + }); + editor.addCommand('RemoveList', function () { + flattenListSelection(editor); + }); + editor.addCommand('mceListProps', function () { + open(editor); + }); + editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL')); + editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL')); + editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL')); + }; + + var hasRtcPlugin = function (editor) { + if (/(^|[ ,])rtc([, ]|$)/.test(editor.getParam('plugins', '', 'string')) && global.get('rtc')) { + return true; + } else { + return false; + } + }; + + var setupTabKey = function (editor) { + editor.on('keydown', function (e) { + if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) { + return; + } + editor.undoManager.transact(function () { + if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) { + e.preventDefault(); + } + }); + }); + }; + var setup$1 = function (editor) { + if (shouldIndentOnTab(editor)) { + setupTabKey(editor); + } + setup(editor); + }; + + var register$1 = function (editor) { + var hasPlugin = function (editor, plugin) { + var plugins = editor.getParam('plugins', '', 'string'); + return global$5.inArray(plugins.split(/[ ,]/), plugin) !== -1; + }; + var exec = function (command) { + return function () { + return editor.execCommand(command); + }; + }; + if (!hasPlugin(editor, 'advlist')) { + editor.ui.registry.addToggleButton('numlist', { + icon: 'ordered-list', + active: false, + tooltip: 'Numbered list', + onAction: exec('InsertOrderedList'), + onSetup: function (api) { + return listState(editor, 'OL', api.setActive); + } + }); + editor.ui.registry.addToggleButton('bullist', { + icon: 'unordered-list', + active: false, + tooltip: 'Bullet list', + onAction: exec('InsertUnorderedList'), + onSetup: function (api) { + return listState(editor, 'UL', api.setActive); + } + }); + } + }; + + var register$2 = function (editor) { + var listProperties = { + text: 'List properties...', + icon: 'ordered-list', + onAction: function () { + return open(editor); + }, + onSetup: function (api) { + return listState(editor, 'OL', function (active) { + return api.setDisabled(!active); + }); + } + }; + editor.ui.registry.addMenuItem('listprops', listProperties); + editor.ui.registry.addContextMenu('lists', { + update: function (node) { + var parentList = getParentList(editor, node); + return isOlNode(parentList) ? ['listprops'] : []; + } + }); + }; + + function Plugin () { + global.add('lists', function (editor) { + if (hasRtcPlugin(editor) === false) { + setup$1(editor); + register(editor); + } + register$1(editor); + register$2(editor); + return get(editor); + }); + } + + Plugin(); + +}(window)); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/lists/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/lists/plugin.min.js new file mode 100755 index 0000000..16fc6b0 --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/lists/plugin.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.4.2 (2020-08-17) + */ +!function(u){"use strict";var e,n,t,r,o,i,a,c=tinymce.util.Tools.resolve("tinymce.PluginManager"),s=function(){},y=function(e){return function(){return e}},f=function(n){return function(e){return!n(e)}},d=y(!1),l=y(!0),m=function(){return p},p=(e=function(e){return e.isNone()},{fold:function(e,n){return e()},is:d,isSome:d,isNone:l,getOr:t=function(e){return e},getOrThunk:n=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:y(null),getOrUndefined:y(undefined),or:t,orThunk:n,map:m,each:s,bind:m,exists:d,forall:l,filter:m,equals:e,equals_:e,toArray:function(){return[]},toString:y("none()")}),g=function(t){var e=y(t),n=function(){return o},r=function(e){return e(t)},o={fold:function(e,n){return n(t)},is:function(e){return t===e},isSome:l,isNone:d,getOr:e,getOrThunk:e,getOrDie:e,getOrNull:e,getOrUndefined:e,or:n,orThunk:n,map:function(e){return g(e(t))},each:function(e){e(t)},bind:r,exists:r,forall:r,filter:function(e){return e(t)?o:p},toArray:function(){return[t]},toString:function(){return"some("+t+")"},equals:function(e){return e.is(t)},equals_:function(e,n){return e.fold(d,function(e){return n(t,e)})}};return o},v={some:g,none:m,from:function(e){return null===e||e===undefined?p:g(e)}},h=function(r){return function(e){return t=typeof(n=e),(null===n?"null":"object"==t&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":t)===r;var n,t}},S=function(n){return function(e){return typeof e===n}},b=h("string"),C=h("array"),N=S("boolean"),O=S("function"),L=S("number"),w=Array.prototype.slice,T=Array.prototype.push,D=function(e,n){for(var t=e.length,r=new Array(t),o=0;oe.length?hn:vn)(t,e,n)},[]),I(r).map(function(e){return e.list}).toArray()},xn=function(u,e,s){var n,t=Tn(e,(n=D(en(u),ge.fromDom),Oe(P(n,f(Sn)),P(R(n),f(Sn)),function(e,n){return{start:e,end:n}})));k(t,function(e){var n,t;n=e.entries,t=s,k(x(n,Cn),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}n.dirty=!0}(t,e)});var r,o,i,a=(r=u,o=e.entries,B(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,a=e.length;i=e.childNodes.length?t.data.length:0}:t.previousSibling&&$e(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&$e(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}},In=function(e){var n=e.cloneRange(),t=Rn(e.startContainer,e.startOffset);n.setStart(t.container,t.offset);var r=Rn(e.endContainer,e.endOffset);return n.setEnd(r.container,r.offset),n},Mn=function(e,n){var t,r=D(rn(e),ge.fromDom),o=D(x(en(e),Ve),ge.fromDom),i=!1;if(r.length||o.length){var a=e.selection.getBookmark();xn(e,r,n),t=e,k(o,"Indent"===n?Bn:function(e){return Pn(t,e)}),e.selection.moveToBookmark(a),e.selection.setRng(In(e.selection.getRng())),e.nodeChanged(),i=!0}return i},Un=function(e){return Mn(e,"Indent")},_n=function(e){return Mn(e,"Outdent")},Fn=function(e){return Mn(e,"Flatten")},$n=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),Hn=An.DOM,jn=function(o){var i={},e=function(e){var n,t,r;t=o[e?"startContainer":"endContainer"],r=o[e?"startOffset":"endOffset"],1===t.nodeType&&(n=Hn.create("span",{"data-mce-type":"bookmark"}),t.hasChildNodes()?(r=Math.min(r,t.childNodes.length-1),e?t.insertBefore(n,t.childNodes[r]):Hn.insertAfter(n,t.childNodes[r])):t.appendChild(n),t=n,r=0),i[e?"startContainer":"endContainer"]=t,i[e?"startOffset":"endOffset"]=r};return e(!0),o.collapsed||e(),i},qn=function(o){function e(e){var n,t,r;n=r=o[e?"startContainer":"endContainer"],t=o[e?"startOffset":"endOffset"],n&&(1===n.nodeType&&(t=function(e){for(var n=e.parentNode.firstChild,t=0;n;){if(n===e)return t;1===n.nodeType&&"bookmark"===n.getAttribute("data-mce-type")||t++,n=n.nextSibling}return-1}(n),n=n.parentNode,Hn.remove(r),!n.hasChildNodes()&&Hn.isBlock(n)&&n.appendChild(Hn.create("br"))),o[e?"startContainer":"endContainer"]=n,o[e?"startOffset":"endOffset"]=t)}e(!0),e();var n=Hn.createRng();return n.setStart(o.startContainer,o.startOffset),o.endContainer&&n.setEnd(o.endContainer,o.endOffset),In(n)},Kn=function(e){switch(e){case"UL":return"ToggleUlList";case"OL":return"ToggleOlList";case"DL":return"ToggleDLList"}},Vn=function(e){return/\btox\-/.test(e.className)},Wn=function(e,t,r){var n=function(e){var n=E(e.parents,He,We).filter(function(e){return e.nodeName===t&&!Vn(e)}).isSome();r(n)},o=e.dom.getParents(e.selection.getNode());return n({parents:o}),e.on("NodeChange",n),function(){return e.off("NodeChange",n)}},Qn=function(t,e){Ue.each(e,function(e,n){t.setAttribute(n,e)})},Xn=function(e,n,t){var r,o,i,a,u,s,c;r=e,o=n,a=(i=t)["list-style-type"]?i["list-style-type"]:null,r.setStyle(o,"list-style-type",a),u=e,Qn(s=n,(c=t)["list-attributes"]),Ue.each(u.select("li",s),function(e){Qn(e,c["list-item-attributes"])})},zn=function(e,n,t,r){var o=n[t?"startContainer":"endContainer"],i=n[t?"startOffset":"endOffset"];for(1===o.nodeType&&(o=o.childNodes[Math.min(i,o.childNodes.length-1)]||o),!t&&Qe(o.nextSibling)&&(o=o.nextSibling);o.parentNode!==r;){if(Xe(e,o))return o;if(/^(TD|TH)$/.test(o.parentNode.nodeName))return o;o=o.parentNode}return o},Yn=function(f,d,l){void 0===l&&(l={});var e=f.selection.getRng(),m="LI",n=nn(f,f.selection.getStart(!0)),p=f.dom;if("false"!==p.getContentEditable(f.selection.getNode())){"DL"===(d=d.toUpperCase())&&(m="DT");var t=jn(e);Ue.each(function(t,e,r){for(var o,i=[],a=t.dom,n=zn(t,e,!0,r),u=zn(t,e,!1,r),s=[],c=n;c&&(s.push(c),c!==u);c=c.nextSibling);return Ue.each(s,function(e){if(Xe(t,e))return i.push(e),void(o=null);if(a.isBlock(e)||Qe(e))return Qe(e)&&a.remove(e),void(o=null);var n=e.nextSibling;$n.isBookmarkNode(e)&&(Xe(t,n)||!n&&e.parentNode===r)?o=null:(o||(o=a.create("p"),e.parentNode.insertBefore(o,e),i.push(o)),o.appendChild(e))}),i}(f,e,n),function(e){var n,t,r,o,i,a,u,s,c=e.previousSibling;c&&He(c)&&c.nodeName===d&&(t=c,r=l,o=p.getStyle(t,"list-style-type"),i=r?r["list-style-type"]:"",o===(i=null===i?"":i))?(n=c,e=p.rename(e,m),c.appendChild(e)):(n=p.create(d),e.parentNode.insertBefore(n,e),n.appendChild(e),e=p.rename(e,m)),a=p,u=e,s=["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],Ue.each(s,function(e){var n;return a.setStyle(u,((n={})[e]="",n))}),Xn(p,n,l),Jn(f.dom,n)}),f.selection.setRng(qn(t))}},Gn=function(e,n,t){return s=t,(u=n)&&s&&He(u)&&u.nodeName===s.nodeName&&(i=n,a=t,(o=e).getStyle(i,"list-style-type",!0)===o.getStyle(a,"list-style-type",!0))&&(r=t,n.className===r.className);var r,o,i,a,u,s},Jn=function(e,n){var t,r;if(t=n.nextSibling,Gn(e,n,t)){for(;r=t.firstChild;)n.appendChild(r);e.remove(t)}if(t=n.previousSibling,Gn(e,n,t)){for(;r=t.lastChild;)n.insertBefore(r,n.firstChild);e.remove(t)}},Zn=function(n,e,t,r,o){if(e.nodeName!==r||et(o)){var i=jn(n.selection.getRng(!0));Ue.each([e].concat(t),function(e){!function(e,n,t,r){if(n.nodeName!==t){var o=e.dom.rename(n,t);Xn(e.dom,o,r),Ie(e,Kn(t),o)}else Xn(e.dom,n,r),Ie(e,Kn(t),n)}(n,e,r,o)}),n.selection.setRng(qn(i))}else Fn(n)},et=function(e){return"list-style-type"in e},nt=function(e,n,t){var r=Je(e),o=Ze(e);t=t||{},r&&0 1) { + return protocolMatches[1] === 'www.' ? 'https://' : protocolMatches[1]; + } else { + return 'https://'; + } + }; + var getUrl = function (pattern, url) { + var protocol = getProtocol(url); + var match = pattern.regex.exec(url); + var newUrl = protocol + pattern.url; + var _loop_1 = function (i) { + newUrl = newUrl.replace('$' + i, function () { + return match[i] ? match[i] : ''; + }); + }; + for (var i = 0; i < match.length; i++) { + _loop_1(i); + } + return newUrl.replace(/\?$/, ''); + }; + var matchPattern = function (url) { + var patterns = urlPatterns.filter(function (pattern) { + return pattern.regex.test(url); + }); + if (patterns.length > 0) { + return global$1.extend({}, patterns[0], { url: getUrl(patterns[0], url) }); + } else { + return null; + } + }; + + var getIframeHtml = function (data) { + var allowFullscreen = data.allowFullscreen ? ' allowFullscreen="1"' : ''; + return ''; + }; + var getFlashHtml = function (data) { + var html = ''; + if (data.poster) { + html += ''; + } + html += ''; + return html; + }; + var getAudioHtml = function (data, audioTemplateCallback) { + if (audioTemplateCallback) { + return audioTemplateCallback(data); + } else { + return ''; + } + }; + var getVideoHtml = function (data, videoTemplateCallback) { + if (videoTemplateCallback) { + return videoTemplateCallback(data); + } else { + return ''; + } + }; + var getScriptHtml = function (data) { + return ''; + }; + var dataToHtml = function (editor, dataIn) { + var data = global$1.extend({}, dataIn); + if (!data.source) { + global$1.extend(data, htmlToData(getScripts(editor), data.embed)); + if (!data.source) { + return ''; + } + } + if (!data.altsource) { + data.altsource = ''; + } + if (!data.poster) { + data.poster = ''; + } + data.source = editor.convertURL(data.source, 'source'); + data.altsource = editor.convertURL(data.altsource, 'source'); + data.sourcemime = guess(data.source); + data.altsourcemime = guess(data.altsource); + data.poster = editor.convertURL(data.poster, 'poster'); + var pattern = matchPattern(data.source); + if (pattern) { + data.source = pattern.url; + data.type = pattern.type; + data.allowFullscreen = pattern.allowFullscreen; + data.width = data.width || String(pattern.w); + data.height = data.height || String(pattern.h); + } + if (data.embed) { + return updateHtml(data.embed, data, true); + } else { + var videoScript = getVideoScriptMatch(getScripts(editor), data.source); + if (videoScript) { + data.type = 'script'; + data.width = String(videoScript.width); + data.height = String(videoScript.height); + } + var audioTemplateCallback = getAudioTemplateCallback(editor); + var videoTemplateCallback = getVideoTemplateCallback(editor); + data.width = data.width || '300'; + data.height = data.height || '150'; + global$1.each(data, function (value, key) { + data[key] = editor.dom.encode('' + value); + }); + if (data.type === 'iframe') { + return getIframeHtml(data); + } else if (data.sourcemime === 'application/x-shockwave-flash') { + return getFlashHtml(data); + } else if (data.sourcemime.indexOf('audio') !== -1) { + return getAudioHtml(data, audioTemplateCallback); + } else if (data.type === 'script') { + return getScriptHtml(data); + } else { + return getVideoHtml(data, videoTemplateCallback); + } + } + }; + + var global$6 = tinymce.util.Tools.resolve('tinymce.util.Promise'); + + var cache = {}; + var embedPromise = function (data, dataToHtml, handler) { + return new global$6(function (res, rej) { + var wrappedResolve = function (response) { + if (response.html) { + cache[data.source] = response; + } + return res({ + url: data.source, + html: response.html ? response.html : dataToHtml(data) + }); + }; + if (cache[data.source]) { + wrappedResolve(cache[data.source]); + } else { + handler({ url: data.source }, wrappedResolve, rej); + } + }); + }; + var defaultPromise = function (data, dataToHtml) { + return new global$6(function (res) { + res({ + html: dataToHtml(data), + url: data.source + }); + }); + }; + var loadedData = function (editor) { + return function (data) { + return dataToHtml(editor, data); + }; + }; + var getEmbedHtml = function (editor, data) { + var embedHandler = getUrlResolver(editor); + return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor)); + }; + var isCached = function (url) { + return cache.hasOwnProperty(url); + }; + + var extractMeta = function (sourceInput, data) { + return get(data, sourceInput).bind(function (mainData) { + return get(mainData, 'meta'); + }); + }; + var getValue = function (data, metaData, sourceInput) { + return function (prop) { + var _a; + var getFromData = function () { + return get(data, prop); + }; + var getFromMetaData = function () { + return get(metaData, prop); + }; + var getNonEmptyValue = function (c) { + return get(c, 'value').bind(function (v) { + return v.length > 0 ? Option.some(v) : Option.none(); + }); + }; + var getFromValueFirst = function () { + return getFromData().bind(function (child) { + return isObject(child) ? getNonEmptyValue(child).orThunk(getFromMetaData) : getFromMetaData().orThunk(function () { + return Option.from(child); + }); + }); + }; + var getFromMetaFirst = function () { + return getFromMetaData().orThunk(function () { + return getFromData().bind(function (child) { + return isObject(child) ? getNonEmptyValue(child) : Option.from(child); + }); + }); + }; + return _a = {}, _a[prop] = (prop === sourceInput ? getFromValueFirst() : getFromMetaFirst()).getOr(''), _a; + }; + }; + var getDimensions = function (data, metaData) { + var dimensions = {}; + get(data, 'dimensions').each(function (dims) { + each([ + 'width', + 'height' + ], function (prop) { + get(metaData, prop).orThunk(function () { + return get(dims, prop); + }).each(function (value) { + return dimensions[prop] = value; + }); + }); + }); + return dimensions; + }; + var unwrap = function (data, sourceInput) { + var metaData = sourceInput ? extractMeta(sourceInput, data).getOr({}) : {}; + var get = getValue(data, metaData, sourceInput); + return __assign(__assign(__assign(__assign(__assign({}, get('source')), get('altsource')), get('poster')), get('embed')), getDimensions(data, metaData)); + }; + var wrap = function (data) { + var wrapped = __assign(__assign({}, data), { + source: { value: get(data, 'source').getOr('') }, + altsource: { value: get(data, 'altsource').getOr('') }, + poster: { value: get(data, 'poster').getOr('') } + }); + each([ + 'width', + 'height' + ], function (prop) { + get(data, prop).each(function (value) { + var dimensions = wrapped.dimensions || {}; + dimensions[prop] = value; + wrapped.dimensions = dimensions; + }); + }); + return wrapped; + }; + var handleError = function (editor) { + return function (error) { + var errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.'; + editor.notificationManager.open({ + type: 'error', + text: errorMessage + }); + }; + }; + var snippetToData = function (editor, embedSnippet) { + return htmlToData(getScripts(editor), embedSnippet); + }; + var isMediaElement = function (element) { + return element.getAttribute('data-mce-object') || element.getAttribute('data-ephox-embed-iri'); + }; + var getEditorData = function (editor) { + var element = editor.selection.getNode(); + var snippet = isMediaElement(element) ? editor.serializer.serialize(element, { selection: true }) : ''; + return __assign({ embed: snippet }, htmlToData(getScripts(editor), snippet)); + }; + var addEmbedHtml = function (api, editor) { + return function (response) { + if (isString(response.url) && response.url.trim().length > 0) { + var html = response.html; + var snippetData = snippetToData(editor, html); + var nuData = __assign(__assign({}, snippetData), { + source: response.url, + embed: html + }); + api.setData(wrap(nuData)); + } + }; + }; + var selectPlaceholder = function (editor, beforeObjects) { + var afterObjects = editor.dom.select('img[data-mce-object]'); + for (var i = 0; i < beforeObjects.length; i++) { + for (var y = afterObjects.length - 1; y >= 0; y--) { + if (beforeObjects[i] === afterObjects[y]) { + afterObjects.splice(y, 1); + } + } + } + editor.selection.select(afterObjects[0]); + }; + var handleInsert = function (editor, html) { + var beforeObjects = editor.dom.select('img[data-mce-object]'); + editor.insertContent(html); + selectPlaceholder(editor, beforeObjects); + editor.nodeChanged(); + }; + var submitForm = function (prevData, newData, editor) { + newData.embed = updateHtml(newData.embed, newData); + if (newData.embed && (prevData.source === newData.source || isCached(newData.source))) { + handleInsert(editor, newData.embed); + } else { + getEmbedHtml(editor, newData).then(function (response) { + handleInsert(editor, response.html); + }).catch(handleError(editor)); + } + }; + var showDialog = function (editor) { + var editorData = getEditorData(editor); + var currentData = Cell(editorData); + var initialData = wrap(editorData); + var handleSource = function (prevData, api) { + var serviceData = unwrap(api.getData(), 'source'); + if (prevData.source !== serviceData.source) { + addEmbedHtml(win, editor)({ + url: serviceData.source, + html: '' + }); + getEmbedHtml(editor, serviceData).then(addEmbedHtml(win, editor)).catch(handleError(editor)); + } + }; + var handleEmbed = function (api) { + var data = unwrap(api.getData()); + var dataFromEmbed = snippetToData(editor, data.embed); + api.setData(wrap(dataFromEmbed)); + }; + var handleUpdate = function (api, sourceInput) { + var data = unwrap(api.getData(), sourceInput); + var embed = dataToHtml(editor, data); + api.setData(wrap(__assign(__assign({}, data), { embed: embed }))); + }; + var mediaInput = [{ + name: 'source', + type: 'urlinput', + filetype: 'media', + label: 'Source' + }]; + var sizeInput = !hasDimensions(editor) ? [] : [{ + type: 'sizeinput', + name: 'dimensions', + label: 'Constrain proportions', + constrain: true + }]; + var generalTab = { + title: 'General', + name: 'general', + items: flatten([ + mediaInput, + sizeInput + ]) + }; + var embedTextarea = { + type: 'textarea', + name: 'embed', + label: 'Paste your embed code below:' + }; + var embedTab = { + title: 'Embed', + items: [embedTextarea] + }; + var advancedFormItems = []; + if (hasAltSource(editor)) { + advancedFormItems.push({ + name: 'altsource', + type: 'urlinput', + filetype: 'media', + label: 'Alternative source URL' + }); + } + if (hasPoster(editor)) { + advancedFormItems.push({ + name: 'poster', + type: 'urlinput', + filetype: 'image', + label: 'Media poster (Image URL)' + }); + } + var advancedTab = { + title: 'Advanced', + name: 'advanced', + items: advancedFormItems + }; + var tabs = [ + generalTab, + embedTab + ]; + if (advancedFormItems.length > 0) { + tabs.push(advancedTab); + } + var body = { + type: 'tabpanel', + tabs: tabs + }; + var win = editor.windowManager.open({ + title: 'Insert/Edit Media', + size: 'normal', + body: body, + buttons: [ + { + type: 'cancel', + name: 'cancel', + text: 'Cancel' + }, + { + type: 'submit', + name: 'save', + text: 'Save', + primary: true + } + ], + onSubmit: function (api) { + var serviceData = unwrap(api.getData()); + submitForm(currentData.get(), serviceData, editor); + api.close(); + }, + onChange: function (api, detail) { + switch (detail.name) { + case 'source': + handleSource(currentData.get(), api); + break; + case 'embed': + handleEmbed(api); + break; + case 'dimensions': + case 'altsource': + case 'poster': + handleUpdate(api, detail.name); + break; + } + currentData.set(unwrap(api.getData())); + }, + initialData: initialData + }); + }; + + var get$1 = function (editor) { + var showDialog$1 = function () { + showDialog(editor); + }; + return { showDialog: showDialog$1 }; + }; + + var register = function (editor) { + var showDialog$1 = function () { + showDialog(editor); + }; + editor.addCommand('mceMedia', showDialog$1); + }; + + var global$7 = tinymce.util.Tools.resolve('tinymce.html.Node'); + + var global$8 = tinymce.util.Tools.resolve('tinymce.Env'); + + var sanitize = function (editor, html) { + if (shouldFilterHtml(editor) === false) { + return html; + } + var writer = global$5(); + var blocked; + global$3({ + validate: false, + allow_conditional_comments: false, + comment: function (text) { + writer.comment(text); + }, + cdata: function (text) { + writer.cdata(text); + }, + text: function (text, raw) { + writer.text(text, raw); + }, + start: function (name, attrs, empty) { + blocked = true; + if (name === 'script' || name === 'noscript' || name === 'svg') { + return; + } + for (var i = attrs.length - 1; i >= 0; i--) { + var attrName = attrs[i].name; + if (attrName.indexOf('on') === 0) { + delete attrs.map[attrName]; + attrs.splice(i, 1); + } + if (attrName === 'style') { + attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name); + } + } + writer.start(name, attrs, empty); + blocked = false; + }, + end: function (name) { + if (blocked) { + return; + } + writer.end(name); + } + }, global$4({})).parse(html); + return writer.getContent(); + }; + + var createPlaceholderNode = function (editor, node) { + var name = node.name; + var placeHolder = new global$7('img', 1); + placeHolder.shortEnded = true; + retainAttributesAndInnerHtml(editor, node, placeHolder); + placeHolder.attr({ + 'width': node.attr('width') || '300', + 'height': node.attr('height') || (name === 'audio' ? '30' : '150'), + 'style': node.attr('style'), + 'src': global$8.transparentSrc, + 'data-mce-object': name, + 'class': 'mce-object mce-object-' + name + }); + return placeHolder; + }; + var createPreviewIframeNode = function (editor, node) { + var name = node.name; + var previewWrapper = new global$7('span', 1); + previewWrapper.attr({ + 'contentEditable': 'false', + 'style': node.attr('style'), + 'data-mce-object': name, + 'class': 'mce-preview-object mce-object-' + name + }); + retainAttributesAndInnerHtml(editor, node, previewWrapper); + var previewNode = new global$7(name, 1); + previewNode.attr({ + src: node.attr('src'), + allowfullscreen: node.attr('allowfullscreen'), + style: node.attr('style'), + class: node.attr('class'), + width: node.attr('width'), + height: node.attr('height'), + frameborder: '0' + }); + var shimNode = new global$7('span', 1); + shimNode.attr('class', 'mce-shim'); + previewWrapper.append(previewNode); + previewWrapper.append(shimNode); + return previewWrapper; + }; + var retainAttributesAndInnerHtml = function (editor, sourceNode, targetNode) { + var attrName; + var attrValue; + var ai; + var attribs = sourceNode.attributes; + ai = attribs.length; + while (ai--) { + attrName = attribs[ai].name; + attrValue = attribs[ai].value; + if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style') { + if (attrName === 'data' || attrName === 'src') { + attrValue = editor.convertURL(attrValue, attrName); + } + targetNode.attr('data-mce-p-' + attrName, attrValue); + } + } + var innerHtml = sourceNode.firstChild && sourceNode.firstChild.value; + if (innerHtml) { + targetNode.attr('data-mce-html', escape(sanitize(editor, innerHtml))); + targetNode.firstChild = null; + } + }; + var isPageEmbedWrapper = function (node) { + var nodeClass = node.attr('class'); + return nodeClass && /\btiny-pageembed\b/.test(nodeClass); + }; + var isWithinEmbedWrapper = function (node) { + while (node = node.parent) { + if (node.attr('data-ephox-embed-iri') || isPageEmbedWrapper(node)) { + return true; + } + } + return false; + }; + var placeHolderConverter = function (editor) { + return function (nodes) { + var i = nodes.length; + var node; + var videoScript; + while (i--) { + node = nodes[i]; + if (!node.parent) { + continue; + } + if (node.parent.attr('data-mce-object')) { + continue; + } + if (node.name === 'script') { + videoScript = getVideoScriptMatch(getScripts(editor), node.attr('src')); + if (!videoScript) { + continue; + } + } + if (videoScript) { + if (videoScript.width) { + node.attr('width', videoScript.width.toString()); + } + if (videoScript.height) { + node.attr('height', videoScript.height.toString()); + } + } + if (node.name === 'iframe' && hasLiveEmbeds(editor) && global$8.ceFalse) { + if (!isWithinEmbedWrapper(node)) { + node.replace(createPreviewIframeNode(editor, node)); + } + } else { + if (!isWithinEmbedWrapper(node)) { + node.replace(createPlaceholderNode(editor, node)); + } + } + } + }; + }; + + var setup = function (editor) { + editor.on('preInit', function () { + var specialElements = editor.schema.getSpecialElements(); + global$1.each('video audio iframe object'.split(' '), function (name) { + specialElements[name] = new RegExp(']*>', 'gi'); + }); + var boolAttrs = editor.schema.getBoolAttrs(); + global$1.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) { + boolAttrs[name] = {}; + }); + editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', placeHolderConverter(editor)); + editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) { + var i = nodes.length; + var node; + var realElm; + var ai; + var attribs; + var innerHtml; + var innerNode; + var realElmName; + var className; + while (i--) { + node = nodes[i]; + if (!node.parent) { + continue; + } + realElmName = node.attr(name); + realElm = new global$7(realElmName, 1); + if (realElmName !== 'audio' && realElmName !== 'script') { + className = node.attr('class'); + if (className && className.indexOf('mce-preview-object') !== -1) { + realElm.attr({ + width: node.firstChild.attr('width'), + height: node.firstChild.attr('height') + }); + } else { + realElm.attr({ + width: node.attr('width'), + height: node.attr('height') + }); + } + } + realElm.attr({ style: node.attr('style') }); + attribs = node.attributes; + ai = attribs.length; + while (ai--) { + var attrName = attribs[ai].name; + if (attrName.indexOf('data-mce-p-') === 0) { + realElm.attr(attrName.substr(11), attribs[ai].value); + } + } + if (realElmName === 'script') { + realElm.attr('type', 'text/javascript'); + } + innerHtml = node.attr('data-mce-html'); + if (innerHtml) { + innerNode = new global$7('#text', 3); + innerNode.raw = true; + innerNode.value = sanitize(editor, unescape(innerHtml)); + realElm.append(innerNode); + } + node.replace(realElm); + } + }); + }); + editor.on('SetContent', function () { + editor.$('span.mce-preview-object').each(function (index, elm) { + var $elm = editor.$(elm); + if ($elm.find('span.mce-shim').length === 0) { + $elm.append(''); + } + }); + }); + }; + + var setup$1 = function (editor) { + editor.on('ResolveName', function (e) { + var name; + if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) { + e.name = name; + } + }); + }; + + var setup$2 = function (editor) { + editor.on('click keyup touchend', function () { + var selectedNode = editor.selection.getNode(); + if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) { + if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) { + selectedNode.setAttribute('data-mce-selected', '2'); + } + } + }); + editor.on('ObjectSelected', function (e) { + var objectType = e.target.getAttribute('data-mce-object'); + if (objectType === 'audio' || objectType === 'script') { + e.preventDefault(); + } + }); + editor.on('ObjectResized', function (e) { + var target = e.target; + var html; + if (target.getAttribute('data-mce-object')) { + html = target.getAttribute('data-mce-html'); + if (html) { + html = unescape(html); + target.setAttribute('data-mce-html', escape(updateHtml(html, { + width: String(e.width), + height: String(e.height) + }))); + } + } + }); + }; + + var stateSelectorAdapter = function (editor, selector) { + return function (buttonApi) { + return editor.selection.selectorChangedWithUnbind(selector.join(','), buttonApi.setActive).unbind; + }; + }; + var register$1 = function (editor) { + editor.ui.registry.addToggleButton('media', { + tooltip: 'Insert/edit media', + icon: 'embed', + onAction: function () { + editor.execCommand('mceMedia'); + }, + onSetup: stateSelectorAdapter(editor, [ + 'img[data-mce-object]', + 'span[data-mce-object]', + 'div[data-ephox-embed-iri]' + ]) + }); + editor.ui.registry.addMenuItem('media', { + icon: 'embed', + text: 'Media...', + onAction: function () { + editor.execCommand('mceMedia'); + } + }); + }; + + function Plugin () { + global.add('media', function (editor) { + register(editor); + register$1(editor); + setup$1(editor); + setup(editor); + setup$2(editor); + return get$1(editor); + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/media/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/media/plugin.min.js new file mode 100755 index 0000000..536256e --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/media/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var e,t,r,n=tinymce.util.Tools.resolve("tinymce.PluginManager"),p=function(){return(p=Object.assign||function(e){for(var t,r=1,n=arguments.length;r"):"application/x-shockwave-flash"===n.sourcemime?(l='',s.poster&&(l+=''),l+=""):-1!==n.sourcemime.indexOf("audio")?(c=n,(u=h)?u(c):'"):"script"===n.type?' '; + var directionality = editor.getBody().dir; + var dirAttr = directionality ? ' dir="' + encode(directionality) + '"' : ''; + var previewHtml = '' + '' + '' + headHtml + '' + '' + editor.getContent() + preventClicksOnLinksScript + '' + ''; + return previewHtml; + }; + + var open = function (editor) { + var content = getPreviewHtml(editor); + var dataApi = editor.windowManager.open({ + title: 'Preview', + size: 'large', + body: { + type: 'panel', + items: [{ + name: 'preview', + type: 'iframe', + sandboxed: true + }] + }, + buttons: [{ + type: 'cancel', + name: 'close', + text: 'Close', + primary: true + }], + initialData: { preview: content } + }); + dataApi.focus('close'); + }; + + var register = function (editor) { + editor.addCommand('mcePreview', function () { + open(editor); + }); + }; + + var register$1 = function (editor) { + editor.ui.registry.addButton('preview', { + icon: 'preview', + tooltip: 'Preview', + onAction: function () { + return editor.execCommand('mcePreview'); + } + }); + editor.ui.registry.addMenuItem('preview', { + icon: 'preview', + text: 'Preview', + onAction: function () { + return editor.execCommand('mcePreview'); + } + }); + }; + + function Plugin () { + global.add('preview', function (editor) { + register(editor); + register$1(editor); + }); + } + + Plugin(); + +}()); diff --git a/assets/js/lay-module/tinymce/tinymce/plugins/preview/plugin.min.js b/assets/js/lay-module/tinymce/tinymce/plugins/preview/plugin.min.js new file mode 100755 index 0000000..e04e98a --- /dev/null +++ b/assets/js/lay-module/tinymce/tinymce/plugins/preview/plugin.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.4.2 (2020-08-17) + */ +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),g=tinymce.util.Tools.resolve("tinymce.Env"),w=tinymce.util.Tools.resolve("tinymce.util.Tools"),i=function(e){var t=function(t){var n="",i=t.dom.encode,e=t.getParam("content_style","");n+='',e&&(n+='");var o=t.getParam("content_css_cors",!1,"boolean")?' crossorigin="anonymous"':"";w.each(t.contentCSS,function(e){n+='"});var r,a,c,s,d,m,l,u=-1===(s=(r=t).getParam("body_id","tinymce","string")).indexOf("=")?s:(c=(a=r).getParam("body_id","","hash"))[a.id]||c,y=-1===(l=(d=t).getParam("body_class","","string")).indexOf("=")?l:(m=d).getParam("body_class","","hash")[m.id]||"",v=' + + + + + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..8dfa420 --- /dev/null +++ b/index.html @@ -0,0 +1,212 @@ + + + + + 后台管理-登录 + + + + + + + + + + + + +
    + +
    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/lib/font-awesome-4.7.0/HELP-US-OUT.txt b/lib/font-awesome-4.7.0/HELP-US-OUT.txt new file mode 100755 index 0000000..83d083d --- /dev/null +++ b/lib/font-awesome-4.7.0/HELP-US-OUT.txt @@ -0,0 +1,7 @@ +I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, +Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, +comprehensive icon sets or copy and paste your own. + +Please. Check it out. + +-Dave Gandy diff --git a/lib/font-awesome-4.7.0/css/font-awesome.css b/lib/font-awesome-4.7.0/css/font-awesome.css new file mode 100755 index 0000000..ee906a8 --- /dev/null +++ b/lib/font-awesome-4.7.0/css/font-awesome.css @@ -0,0 +1,2337 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/lib/font-awesome-4.7.0/css/font-awesome.min.css b/lib/font-awesome-4.7.0/css/font-awesome.min.css new file mode 100755 index 0000000..540440c --- /dev/null +++ b/lib/font-awesome-4.7.0/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/lib/font-awesome-4.7.0/fonts/FontAwesome.otf b/lib/font-awesome-4.7.0/fonts/FontAwesome.otf new file mode 100755 index 0000000..401ec0f Binary files /dev/null and b/lib/font-awesome-4.7.0/fonts/FontAwesome.otf differ diff --git a/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.eot b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.eot new file mode 100755 index 0000000..e9f60ca Binary files /dev/null and b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.eot differ diff --git a/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.svg b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.svg new file mode 100755 index 0000000..855c845 --- /dev/null +++ b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf new file mode 100755 index 0000000..35acda2 Binary files /dev/null and b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf differ diff --git a/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff new file mode 100755 index 0000000..400014a Binary files /dev/null and b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff differ diff --git a/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 new file mode 100755 index 0000000..4d13fc6 Binary files /dev/null and b/lib/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 differ diff --git a/lib/font-awesome-4.7.0/less/animated.less b/lib/font-awesome-4.7.0/less/animated.less new file mode 100755 index 0000000..66ad52a --- /dev/null +++ b/lib/font-awesome-4.7.0/less/animated.less @@ -0,0 +1,34 @@ +// Animated Icons +// -------------------------- + +.@{fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.@{fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/lib/font-awesome-4.7.0/less/bordered-pulled.less b/lib/font-awesome-4.7.0/less/bordered-pulled.less new file mode 100755 index 0000000..f1c8ad7 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/bordered-pulled.less @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.@{fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em @fa-border-color; + border-radius: .1em; +} + +.@{fa-css-prefix}-pull-left { float: left; } +.@{fa-css-prefix}-pull-right { float: right; } + +.@{fa-css-prefix} { + &.@{fa-css-prefix}-pull-left { margin-right: .3em; } + &.@{fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.@{fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/lib/font-awesome-4.7.0/less/core.less b/lib/font-awesome-4.7.0/less/core.less new file mode 100755 index 0000000..c577ac8 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/core.less @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.@{fa-css-prefix} { + display: inline-block; + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/lib/font-awesome-4.7.0/less/fixed-width.less b/lib/font-awesome-4.7.0/less/fixed-width.less new file mode 100755 index 0000000..110289f --- /dev/null +++ b/lib/font-awesome-4.7.0/less/fixed-width.less @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.@{fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/lib/font-awesome-4.7.0/less/font-awesome.less b/lib/font-awesome-4.7.0/less/font-awesome.less new file mode 100755 index 0000000..c3677de --- /dev/null +++ b/lib/font-awesome-4.7.0/less/font-awesome.less @@ -0,0 +1,18 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables.less"; +@import "mixins.less"; +@import "path.less"; +@import "core.less"; +@import "larger.less"; +@import "fixed-width.less"; +@import "list.less"; +@import "bordered-pulled.less"; +@import "animated.less"; +@import "rotated-flipped.less"; +@import "stacked.less"; +@import "icons.less"; +@import "screen-reader.less"; diff --git a/lib/font-awesome-4.7.0/less/icons.less b/lib/font-awesome-4.7.0/less/icons.less new file mode 100755 index 0000000..159d600 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/icons.less @@ -0,0 +1,789 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.@{fa-css-prefix}-glass:before { content: @fa-var-glass; } +.@{fa-css-prefix}-music:before { content: @fa-var-music; } +.@{fa-css-prefix}-search:before { content: @fa-var-search; } +.@{fa-css-prefix}-envelope-o:before { content: @fa-var-envelope-o; } +.@{fa-css-prefix}-heart:before { content: @fa-var-heart; } +.@{fa-css-prefix}-star:before { content: @fa-var-star; } +.@{fa-css-prefix}-star-o:before { content: @fa-var-star-o; } +.@{fa-css-prefix}-user:before { content: @fa-var-user; } +.@{fa-css-prefix}-film:before { content: @fa-var-film; } +.@{fa-css-prefix}-th-large:before { content: @fa-var-th-large; } +.@{fa-css-prefix}-th:before { content: @fa-var-th; } +.@{fa-css-prefix}-th-list:before { content: @fa-var-th-list; } +.@{fa-css-prefix}-check:before { content: @fa-var-check; } +.@{fa-css-prefix}-remove:before, +.@{fa-css-prefix}-close:before, +.@{fa-css-prefix}-times:before { content: @fa-var-times; } +.@{fa-css-prefix}-search-plus:before { content: @fa-var-search-plus; } +.@{fa-css-prefix}-search-minus:before { content: @fa-var-search-minus; } +.@{fa-css-prefix}-power-off:before { content: @fa-var-power-off; } +.@{fa-css-prefix}-signal:before { content: @fa-var-signal; } +.@{fa-css-prefix}-gear:before, +.@{fa-css-prefix}-cog:before { content: @fa-var-cog; } +.@{fa-css-prefix}-trash-o:before { content: @fa-var-trash-o; } +.@{fa-css-prefix}-home:before { content: @fa-var-home; } +.@{fa-css-prefix}-file-o:before { content: @fa-var-file-o; } +.@{fa-css-prefix}-clock-o:before { content: @fa-var-clock-o; } +.@{fa-css-prefix}-road:before { content: @fa-var-road; } +.@{fa-css-prefix}-download:before { content: @fa-var-download; } +.@{fa-css-prefix}-arrow-circle-o-down:before { content: @fa-var-arrow-circle-o-down; } +.@{fa-css-prefix}-arrow-circle-o-up:before { content: @fa-var-arrow-circle-o-up; } +.@{fa-css-prefix}-inbox:before { content: @fa-var-inbox; } +.@{fa-css-prefix}-play-circle-o:before { content: @fa-var-play-circle-o; } +.@{fa-css-prefix}-rotate-right:before, +.@{fa-css-prefix}-repeat:before { content: @fa-var-repeat; } +.@{fa-css-prefix}-refresh:before { content: @fa-var-refresh; } +.@{fa-css-prefix}-list-alt:before { content: @fa-var-list-alt; } +.@{fa-css-prefix}-lock:before { content: @fa-var-lock; } +.@{fa-css-prefix}-flag:before { content: @fa-var-flag; } +.@{fa-css-prefix}-headphones:before { content: @fa-var-headphones; } +.@{fa-css-prefix}-volume-off:before { content: @fa-var-volume-off; } +.@{fa-css-prefix}-volume-down:before { content: @fa-var-volume-down; } +.@{fa-css-prefix}-volume-up:before { content: @fa-var-volume-up; } +.@{fa-css-prefix}-qrcode:before { content: @fa-var-qrcode; } +.@{fa-css-prefix}-barcode:before { content: @fa-var-barcode; } +.@{fa-css-prefix}-tag:before { content: @fa-var-tag; } +.@{fa-css-prefix}-tags:before { content: @fa-var-tags; } +.@{fa-css-prefix}-book:before { content: @fa-var-book; } +.@{fa-css-prefix}-bookmark:before { content: @fa-var-bookmark; } +.@{fa-css-prefix}-print:before { content: @fa-var-print; } +.@{fa-css-prefix}-camera:before { content: @fa-var-camera; } +.@{fa-css-prefix}-font:before { content: @fa-var-font; } +.@{fa-css-prefix}-bold:before { content: @fa-var-bold; } +.@{fa-css-prefix}-italic:before { content: @fa-var-italic; } +.@{fa-css-prefix}-text-height:before { content: @fa-var-text-height; } +.@{fa-css-prefix}-text-width:before { content: @fa-var-text-width; } +.@{fa-css-prefix}-align-left:before { content: @fa-var-align-left; } +.@{fa-css-prefix}-align-center:before { content: @fa-var-align-center; } +.@{fa-css-prefix}-align-right:before { content: @fa-var-align-right; } +.@{fa-css-prefix}-align-justify:before { content: @fa-var-align-justify; } +.@{fa-css-prefix}-list:before { content: @fa-var-list; } +.@{fa-css-prefix}-dedent:before, +.@{fa-css-prefix}-outdent:before { content: @fa-var-outdent; } +.@{fa-css-prefix}-indent:before { content: @fa-var-indent; } +.@{fa-css-prefix}-video-camera:before { content: @fa-var-video-camera; } +.@{fa-css-prefix}-photo:before, +.@{fa-css-prefix}-image:before, +.@{fa-css-prefix}-picture-o:before { content: @fa-var-picture-o; } +.@{fa-css-prefix}-pencil:before { content: @fa-var-pencil; } +.@{fa-css-prefix}-map-marker:before { content: @fa-var-map-marker; } +.@{fa-css-prefix}-adjust:before { content: @fa-var-adjust; } +.@{fa-css-prefix}-tint:before { content: @fa-var-tint; } +.@{fa-css-prefix}-edit:before, +.@{fa-css-prefix}-pencil-square-o:before { content: @fa-var-pencil-square-o; } +.@{fa-css-prefix}-share-square-o:before { content: @fa-var-share-square-o; } +.@{fa-css-prefix}-check-square-o:before { content: @fa-var-check-square-o; } +.@{fa-css-prefix}-arrows:before { content: @fa-var-arrows; } +.@{fa-css-prefix}-step-backward:before { content: @fa-var-step-backward; } +.@{fa-css-prefix}-fast-backward:before { content: @fa-var-fast-backward; } +.@{fa-css-prefix}-backward:before { content: @fa-var-backward; } +.@{fa-css-prefix}-play:before { content: @fa-var-play; } +.@{fa-css-prefix}-pause:before { content: @fa-var-pause; } +.@{fa-css-prefix}-stop:before { content: @fa-var-stop; } +.@{fa-css-prefix}-forward:before { content: @fa-var-forward; } +.@{fa-css-prefix}-fast-forward:before { content: @fa-var-fast-forward; } +.@{fa-css-prefix}-step-forward:before { content: @fa-var-step-forward; } +.@{fa-css-prefix}-eject:before { content: @fa-var-eject; } +.@{fa-css-prefix}-chevron-left:before { content: @fa-var-chevron-left; } +.@{fa-css-prefix}-chevron-right:before { content: @fa-var-chevron-right; } +.@{fa-css-prefix}-plus-circle:before { content: @fa-var-plus-circle; } +.@{fa-css-prefix}-minus-circle:before { content: @fa-var-minus-circle; } +.@{fa-css-prefix}-times-circle:before { content: @fa-var-times-circle; } +.@{fa-css-prefix}-check-circle:before { content: @fa-var-check-circle; } +.@{fa-css-prefix}-question-circle:before { content: @fa-var-question-circle; } +.@{fa-css-prefix}-info-circle:before { content: @fa-var-info-circle; } +.@{fa-css-prefix}-crosshairs:before { content: @fa-var-crosshairs; } +.@{fa-css-prefix}-times-circle-o:before { content: @fa-var-times-circle-o; } +.@{fa-css-prefix}-check-circle-o:before { content: @fa-var-check-circle-o; } +.@{fa-css-prefix}-ban:before { content: @fa-var-ban; } +.@{fa-css-prefix}-arrow-left:before { content: @fa-var-arrow-left; } +.@{fa-css-prefix}-arrow-right:before { content: @fa-var-arrow-right; } +.@{fa-css-prefix}-arrow-up:before { content: @fa-var-arrow-up; } +.@{fa-css-prefix}-arrow-down:before { content: @fa-var-arrow-down; } +.@{fa-css-prefix}-mail-forward:before, +.@{fa-css-prefix}-share:before { content: @fa-var-share; } +.@{fa-css-prefix}-expand:before { content: @fa-var-expand; } +.@{fa-css-prefix}-compress:before { content: @fa-var-compress; } +.@{fa-css-prefix}-plus:before { content: @fa-var-plus; } +.@{fa-css-prefix}-minus:before { content: @fa-var-minus; } +.@{fa-css-prefix}-asterisk:before { content: @fa-var-asterisk; } +.@{fa-css-prefix}-exclamation-circle:before { content: @fa-var-exclamation-circle; } +.@{fa-css-prefix}-gift:before { content: @fa-var-gift; } +.@{fa-css-prefix}-leaf:before { content: @fa-var-leaf; } +.@{fa-css-prefix}-fire:before { content: @fa-var-fire; } +.@{fa-css-prefix}-eye:before { content: @fa-var-eye; } +.@{fa-css-prefix}-eye-slash:before { content: @fa-var-eye-slash; } +.@{fa-css-prefix}-warning:before, +.@{fa-css-prefix}-exclamation-triangle:before { content: @fa-var-exclamation-triangle; } +.@{fa-css-prefix}-plane:before { content: @fa-var-plane; } +.@{fa-css-prefix}-calendar:before { content: @fa-var-calendar; } +.@{fa-css-prefix}-random:before { content: @fa-var-random; } +.@{fa-css-prefix}-comment:before { content: @fa-var-comment; } +.@{fa-css-prefix}-magnet:before { content: @fa-var-magnet; } +.@{fa-css-prefix}-chevron-up:before { content: @fa-var-chevron-up; } +.@{fa-css-prefix}-chevron-down:before { content: @fa-var-chevron-down; } +.@{fa-css-prefix}-retweet:before { content: @fa-var-retweet; } +.@{fa-css-prefix}-shopping-cart:before { content: @fa-var-shopping-cart; } +.@{fa-css-prefix}-folder:before { content: @fa-var-folder; } +.@{fa-css-prefix}-folder-open:before { content: @fa-var-folder-open; } +.@{fa-css-prefix}-arrows-v:before { content: @fa-var-arrows-v; } +.@{fa-css-prefix}-arrows-h:before { content: @fa-var-arrows-h; } +.@{fa-css-prefix}-bar-chart-o:before, +.@{fa-css-prefix}-bar-chart:before { content: @fa-var-bar-chart; } +.@{fa-css-prefix}-twitter-square:before { content: @fa-var-twitter-square; } +.@{fa-css-prefix}-facebook-square:before { content: @fa-var-facebook-square; } +.@{fa-css-prefix}-camera-retro:before { content: @fa-var-camera-retro; } +.@{fa-css-prefix}-key:before { content: @fa-var-key; } +.@{fa-css-prefix}-gears:before, +.@{fa-css-prefix}-cogs:before { content: @fa-var-cogs; } +.@{fa-css-prefix}-comments:before { content: @fa-var-comments; } +.@{fa-css-prefix}-thumbs-o-up:before { content: @fa-var-thumbs-o-up; } +.@{fa-css-prefix}-thumbs-o-down:before { content: @fa-var-thumbs-o-down; } +.@{fa-css-prefix}-star-half:before { content: @fa-var-star-half; } +.@{fa-css-prefix}-heart-o:before { content: @fa-var-heart-o; } +.@{fa-css-prefix}-sign-out:before { content: @fa-var-sign-out; } +.@{fa-css-prefix}-linkedin-square:before { content: @fa-var-linkedin-square; } +.@{fa-css-prefix}-thumb-tack:before { content: @fa-var-thumb-tack; } +.@{fa-css-prefix}-external-link:before { content: @fa-var-external-link; } +.@{fa-css-prefix}-sign-in:before { content: @fa-var-sign-in; } +.@{fa-css-prefix}-trophy:before { content: @fa-var-trophy; } +.@{fa-css-prefix}-github-square:before { content: @fa-var-github-square; } +.@{fa-css-prefix}-upload:before { content: @fa-var-upload; } +.@{fa-css-prefix}-lemon-o:before { content: @fa-var-lemon-o; } +.@{fa-css-prefix}-phone:before { content: @fa-var-phone; } +.@{fa-css-prefix}-square-o:before { content: @fa-var-square-o; } +.@{fa-css-prefix}-bookmark-o:before { content: @fa-var-bookmark-o; } +.@{fa-css-prefix}-phone-square:before { content: @fa-var-phone-square; } +.@{fa-css-prefix}-twitter:before { content: @fa-var-twitter; } +.@{fa-css-prefix}-facebook-f:before, +.@{fa-css-prefix}-facebook:before { content: @fa-var-facebook; } +.@{fa-css-prefix}-github:before { content: @fa-var-github; } +.@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } +.@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } +.@{fa-css-prefix}-feed:before, +.@{fa-css-prefix}-rss:before { content: @fa-var-rss; } +.@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } +.@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } +.@{fa-css-prefix}-bell:before { content: @fa-var-bell; } +.@{fa-css-prefix}-certificate:before { content: @fa-var-certificate; } +.@{fa-css-prefix}-hand-o-right:before { content: @fa-var-hand-o-right; } +.@{fa-css-prefix}-hand-o-left:before { content: @fa-var-hand-o-left; } +.@{fa-css-prefix}-hand-o-up:before { content: @fa-var-hand-o-up; } +.@{fa-css-prefix}-hand-o-down:before { content: @fa-var-hand-o-down; } +.@{fa-css-prefix}-arrow-circle-left:before { content: @fa-var-arrow-circle-left; } +.@{fa-css-prefix}-arrow-circle-right:before { content: @fa-var-arrow-circle-right; } +.@{fa-css-prefix}-arrow-circle-up:before { content: @fa-var-arrow-circle-up; } +.@{fa-css-prefix}-arrow-circle-down:before { content: @fa-var-arrow-circle-down; } +.@{fa-css-prefix}-globe:before { content: @fa-var-globe; } +.@{fa-css-prefix}-wrench:before { content: @fa-var-wrench; } +.@{fa-css-prefix}-tasks:before { content: @fa-var-tasks; } +.@{fa-css-prefix}-filter:before { content: @fa-var-filter; } +.@{fa-css-prefix}-briefcase:before { content: @fa-var-briefcase; } +.@{fa-css-prefix}-arrows-alt:before { content: @fa-var-arrows-alt; } +.@{fa-css-prefix}-group:before, +.@{fa-css-prefix}-users:before { content: @fa-var-users; } +.@{fa-css-prefix}-chain:before, +.@{fa-css-prefix}-link:before { content: @fa-var-link; } +.@{fa-css-prefix}-cloud:before { content: @fa-var-cloud; } +.@{fa-css-prefix}-flask:before { content: @fa-var-flask; } +.@{fa-css-prefix}-cut:before, +.@{fa-css-prefix}-scissors:before { content: @fa-var-scissors; } +.@{fa-css-prefix}-copy:before, +.@{fa-css-prefix}-files-o:before { content: @fa-var-files-o; } +.@{fa-css-prefix}-paperclip:before { content: @fa-var-paperclip; } +.@{fa-css-prefix}-save:before, +.@{fa-css-prefix}-floppy-o:before { content: @fa-var-floppy-o; } +.@{fa-css-prefix}-square:before { content: @fa-var-square; } +.@{fa-css-prefix}-navicon:before, +.@{fa-css-prefix}-reorder:before, +.@{fa-css-prefix}-bars:before { content: @fa-var-bars; } +.@{fa-css-prefix}-list-ul:before { content: @fa-var-list-ul; } +.@{fa-css-prefix}-list-ol:before { content: @fa-var-list-ol; } +.@{fa-css-prefix}-strikethrough:before { content: @fa-var-strikethrough; } +.@{fa-css-prefix}-underline:before { content: @fa-var-underline; } +.@{fa-css-prefix}-table:before { content: @fa-var-table; } +.@{fa-css-prefix}-magic:before { content: @fa-var-magic; } +.@{fa-css-prefix}-truck:before { content: @fa-var-truck; } +.@{fa-css-prefix}-pinterest:before { content: @fa-var-pinterest; } +.@{fa-css-prefix}-pinterest-square:before { content: @fa-var-pinterest-square; } +.@{fa-css-prefix}-google-plus-square:before { content: @fa-var-google-plus-square; } +.@{fa-css-prefix}-google-plus:before { content: @fa-var-google-plus; } +.@{fa-css-prefix}-money:before { content: @fa-var-money; } +.@{fa-css-prefix}-caret-down:before { content: @fa-var-caret-down; } +.@{fa-css-prefix}-caret-up:before { content: @fa-var-caret-up; } +.@{fa-css-prefix}-caret-left:before { content: @fa-var-caret-left; } +.@{fa-css-prefix}-caret-right:before { content: @fa-var-caret-right; } +.@{fa-css-prefix}-columns:before { content: @fa-var-columns; } +.@{fa-css-prefix}-unsorted:before, +.@{fa-css-prefix}-sort:before { content: @fa-var-sort; } +.@{fa-css-prefix}-sort-down:before, +.@{fa-css-prefix}-sort-desc:before { content: @fa-var-sort-desc; } +.@{fa-css-prefix}-sort-up:before, +.@{fa-css-prefix}-sort-asc:before { content: @fa-var-sort-asc; } +.@{fa-css-prefix}-envelope:before { content: @fa-var-envelope; } +.@{fa-css-prefix}-linkedin:before { content: @fa-var-linkedin; } +.@{fa-css-prefix}-rotate-left:before, +.@{fa-css-prefix}-undo:before { content: @fa-var-undo; } +.@{fa-css-prefix}-legal:before, +.@{fa-css-prefix}-gavel:before { content: @fa-var-gavel; } +.@{fa-css-prefix}-dashboard:before, +.@{fa-css-prefix}-tachometer:before { content: @fa-var-tachometer; } +.@{fa-css-prefix}-comment-o:before { content: @fa-var-comment-o; } +.@{fa-css-prefix}-comments-o:before { content: @fa-var-comments-o; } +.@{fa-css-prefix}-flash:before, +.@{fa-css-prefix}-bolt:before { content: @fa-var-bolt; } +.@{fa-css-prefix}-sitemap:before { content: @fa-var-sitemap; } +.@{fa-css-prefix}-umbrella:before { content: @fa-var-umbrella; } +.@{fa-css-prefix}-paste:before, +.@{fa-css-prefix}-clipboard:before { content: @fa-var-clipboard; } +.@{fa-css-prefix}-lightbulb-o:before { content: @fa-var-lightbulb-o; } +.@{fa-css-prefix}-exchange:before { content: @fa-var-exchange; } +.@{fa-css-prefix}-cloud-download:before { content: @fa-var-cloud-download; } +.@{fa-css-prefix}-cloud-upload:before { content: @fa-var-cloud-upload; } +.@{fa-css-prefix}-user-md:before { content: @fa-var-user-md; } +.@{fa-css-prefix}-stethoscope:before { content: @fa-var-stethoscope; } +.@{fa-css-prefix}-suitcase:before { content: @fa-var-suitcase; } +.@{fa-css-prefix}-bell-o:before { content: @fa-var-bell-o; } +.@{fa-css-prefix}-coffee:before { content: @fa-var-coffee; } +.@{fa-css-prefix}-cutlery:before { content: @fa-var-cutlery; } +.@{fa-css-prefix}-file-text-o:before { content: @fa-var-file-text-o; } +.@{fa-css-prefix}-building-o:before { content: @fa-var-building-o; } +.@{fa-css-prefix}-hospital-o:before { content: @fa-var-hospital-o; } +.@{fa-css-prefix}-ambulance:before { content: @fa-var-ambulance; } +.@{fa-css-prefix}-medkit:before { content: @fa-var-medkit; } +.@{fa-css-prefix}-fighter-jet:before { content: @fa-var-fighter-jet; } +.@{fa-css-prefix}-beer:before { content: @fa-var-beer; } +.@{fa-css-prefix}-h-square:before { content: @fa-var-h-square; } +.@{fa-css-prefix}-plus-square:before { content: @fa-var-plus-square; } +.@{fa-css-prefix}-angle-double-left:before { content: @fa-var-angle-double-left; } +.@{fa-css-prefix}-angle-double-right:before { content: @fa-var-angle-double-right; } +.@{fa-css-prefix}-angle-double-up:before { content: @fa-var-angle-double-up; } +.@{fa-css-prefix}-angle-double-down:before { content: @fa-var-angle-double-down; } +.@{fa-css-prefix}-angle-left:before { content: @fa-var-angle-left; } +.@{fa-css-prefix}-angle-right:before { content: @fa-var-angle-right; } +.@{fa-css-prefix}-angle-up:before { content: @fa-var-angle-up; } +.@{fa-css-prefix}-angle-down:before { content: @fa-var-angle-down; } +.@{fa-css-prefix}-desktop:before { content: @fa-var-desktop; } +.@{fa-css-prefix}-laptop:before { content: @fa-var-laptop; } +.@{fa-css-prefix}-tablet:before { content: @fa-var-tablet; } +.@{fa-css-prefix}-mobile-phone:before, +.@{fa-css-prefix}-mobile:before { content: @fa-var-mobile; } +.@{fa-css-prefix}-circle-o:before { content: @fa-var-circle-o; } +.@{fa-css-prefix}-quote-left:before { content: @fa-var-quote-left; } +.@{fa-css-prefix}-quote-right:before { content: @fa-var-quote-right; } +.@{fa-css-prefix}-spinner:before { content: @fa-var-spinner; } +.@{fa-css-prefix}-circle:before { content: @fa-var-circle; } +.@{fa-css-prefix}-mail-reply:before, +.@{fa-css-prefix}-reply:before { content: @fa-var-reply; } +.@{fa-css-prefix}-github-alt:before { content: @fa-var-github-alt; } +.@{fa-css-prefix}-folder-o:before { content: @fa-var-folder-o; } +.@{fa-css-prefix}-folder-open-o:before { content: @fa-var-folder-open-o; } +.@{fa-css-prefix}-smile-o:before { content: @fa-var-smile-o; } +.@{fa-css-prefix}-frown-o:before { content: @fa-var-frown-o; } +.@{fa-css-prefix}-meh-o:before { content: @fa-var-meh-o; } +.@{fa-css-prefix}-gamepad:before { content: @fa-var-gamepad; } +.@{fa-css-prefix}-keyboard-o:before { content: @fa-var-keyboard-o; } +.@{fa-css-prefix}-flag-o:before { content: @fa-var-flag-o; } +.@{fa-css-prefix}-flag-checkered:before { content: @fa-var-flag-checkered; } +.@{fa-css-prefix}-terminal:before { content: @fa-var-terminal; } +.@{fa-css-prefix}-code:before { content: @fa-var-code; } +.@{fa-css-prefix}-mail-reply-all:before, +.@{fa-css-prefix}-reply-all:before { content: @fa-var-reply-all; } +.@{fa-css-prefix}-star-half-empty:before, +.@{fa-css-prefix}-star-half-full:before, +.@{fa-css-prefix}-star-half-o:before { content: @fa-var-star-half-o; } +.@{fa-css-prefix}-location-arrow:before { content: @fa-var-location-arrow; } +.@{fa-css-prefix}-crop:before { content: @fa-var-crop; } +.@{fa-css-prefix}-code-fork:before { content: @fa-var-code-fork; } +.@{fa-css-prefix}-unlink:before, +.@{fa-css-prefix}-chain-broken:before { content: @fa-var-chain-broken; } +.@{fa-css-prefix}-question:before { content: @fa-var-question; } +.@{fa-css-prefix}-info:before { content: @fa-var-info; } +.@{fa-css-prefix}-exclamation:before { content: @fa-var-exclamation; } +.@{fa-css-prefix}-superscript:before { content: @fa-var-superscript; } +.@{fa-css-prefix}-subscript:before { content: @fa-var-subscript; } +.@{fa-css-prefix}-eraser:before { content: @fa-var-eraser; } +.@{fa-css-prefix}-puzzle-piece:before { content: @fa-var-puzzle-piece; } +.@{fa-css-prefix}-microphone:before { content: @fa-var-microphone; } +.@{fa-css-prefix}-microphone-slash:before { content: @fa-var-microphone-slash; } +.@{fa-css-prefix}-shield:before { content: @fa-var-shield; } +.@{fa-css-prefix}-calendar-o:before { content: @fa-var-calendar-o; } +.@{fa-css-prefix}-fire-extinguisher:before { content: @fa-var-fire-extinguisher; } +.@{fa-css-prefix}-rocket:before { content: @fa-var-rocket; } +.@{fa-css-prefix}-maxcdn:before { content: @fa-var-maxcdn; } +.@{fa-css-prefix}-chevron-circle-left:before { content: @fa-var-chevron-circle-left; } +.@{fa-css-prefix}-chevron-circle-right:before { content: @fa-var-chevron-circle-right; } +.@{fa-css-prefix}-chevron-circle-up:before { content: @fa-var-chevron-circle-up; } +.@{fa-css-prefix}-chevron-circle-down:before { content: @fa-var-chevron-circle-down; } +.@{fa-css-prefix}-html5:before { content: @fa-var-html5; } +.@{fa-css-prefix}-css3:before { content: @fa-var-css3; } +.@{fa-css-prefix}-anchor:before { content: @fa-var-anchor; } +.@{fa-css-prefix}-unlock-alt:before { content: @fa-var-unlock-alt; } +.@{fa-css-prefix}-bullseye:before { content: @fa-var-bullseye; } +.@{fa-css-prefix}-ellipsis-h:before { content: @fa-var-ellipsis-h; } +.@{fa-css-prefix}-ellipsis-v:before { content: @fa-var-ellipsis-v; } +.@{fa-css-prefix}-rss-square:before { content: @fa-var-rss-square; } +.@{fa-css-prefix}-play-circle:before { content: @fa-var-play-circle; } +.@{fa-css-prefix}-ticket:before { content: @fa-var-ticket; } +.@{fa-css-prefix}-minus-square:before { content: @fa-var-minus-square; } +.@{fa-css-prefix}-minus-square-o:before { content: @fa-var-minus-square-o; } +.@{fa-css-prefix}-level-up:before { content: @fa-var-level-up; } +.@{fa-css-prefix}-level-down:before { content: @fa-var-level-down; } +.@{fa-css-prefix}-check-square:before { content: @fa-var-check-square; } +.@{fa-css-prefix}-pencil-square:before { content: @fa-var-pencil-square; } +.@{fa-css-prefix}-external-link-square:before { content: @fa-var-external-link-square; } +.@{fa-css-prefix}-share-square:before { content: @fa-var-share-square; } +.@{fa-css-prefix}-compass:before { content: @fa-var-compass; } +.@{fa-css-prefix}-toggle-down:before, +.@{fa-css-prefix}-caret-square-o-down:before { content: @fa-var-caret-square-o-down; } +.@{fa-css-prefix}-toggle-up:before, +.@{fa-css-prefix}-caret-square-o-up:before { content: @fa-var-caret-square-o-up; } +.@{fa-css-prefix}-toggle-right:before, +.@{fa-css-prefix}-caret-square-o-right:before { content: @fa-var-caret-square-o-right; } +.@{fa-css-prefix}-euro:before, +.@{fa-css-prefix}-eur:before { content: @fa-var-eur; } +.@{fa-css-prefix}-gbp:before { content: @fa-var-gbp; } +.@{fa-css-prefix}-dollar:before, +.@{fa-css-prefix}-usd:before { content: @fa-var-usd; } +.@{fa-css-prefix}-rupee:before, +.@{fa-css-prefix}-inr:before { content: @fa-var-inr; } +.@{fa-css-prefix}-cny:before, +.@{fa-css-prefix}-rmb:before, +.@{fa-css-prefix}-yen:before, +.@{fa-css-prefix}-jpy:before { content: @fa-var-jpy; } +.@{fa-css-prefix}-ruble:before, +.@{fa-css-prefix}-rouble:before, +.@{fa-css-prefix}-rub:before { content: @fa-var-rub; } +.@{fa-css-prefix}-won:before, +.@{fa-css-prefix}-krw:before { content: @fa-var-krw; } +.@{fa-css-prefix}-bitcoin:before, +.@{fa-css-prefix}-btc:before { content: @fa-var-btc; } +.@{fa-css-prefix}-file:before { content: @fa-var-file; } +.@{fa-css-prefix}-file-text:before { content: @fa-var-file-text; } +.@{fa-css-prefix}-sort-alpha-asc:before { content: @fa-var-sort-alpha-asc; } +.@{fa-css-prefix}-sort-alpha-desc:before { content: @fa-var-sort-alpha-desc; } +.@{fa-css-prefix}-sort-amount-asc:before { content: @fa-var-sort-amount-asc; } +.@{fa-css-prefix}-sort-amount-desc:before { content: @fa-var-sort-amount-desc; } +.@{fa-css-prefix}-sort-numeric-asc:before { content: @fa-var-sort-numeric-asc; } +.@{fa-css-prefix}-sort-numeric-desc:before { content: @fa-var-sort-numeric-desc; } +.@{fa-css-prefix}-thumbs-up:before { content: @fa-var-thumbs-up; } +.@{fa-css-prefix}-thumbs-down:before { content: @fa-var-thumbs-down; } +.@{fa-css-prefix}-youtube-square:before { content: @fa-var-youtube-square; } +.@{fa-css-prefix}-youtube:before { content: @fa-var-youtube; } +.@{fa-css-prefix}-xing:before { content: @fa-var-xing; } +.@{fa-css-prefix}-xing-square:before { content: @fa-var-xing-square; } +.@{fa-css-prefix}-youtube-play:before { content: @fa-var-youtube-play; } +.@{fa-css-prefix}-dropbox:before { content: @fa-var-dropbox; } +.@{fa-css-prefix}-stack-overflow:before { content: @fa-var-stack-overflow; } +.@{fa-css-prefix}-instagram:before { content: @fa-var-instagram; } +.@{fa-css-prefix}-flickr:before { content: @fa-var-flickr; } +.@{fa-css-prefix}-adn:before { content: @fa-var-adn; } +.@{fa-css-prefix}-bitbucket:before { content: @fa-var-bitbucket; } +.@{fa-css-prefix}-bitbucket-square:before { content: @fa-var-bitbucket-square; } +.@{fa-css-prefix}-tumblr:before { content: @fa-var-tumblr; } +.@{fa-css-prefix}-tumblr-square:before { content: @fa-var-tumblr-square; } +.@{fa-css-prefix}-long-arrow-down:before { content: @fa-var-long-arrow-down; } +.@{fa-css-prefix}-long-arrow-up:before { content: @fa-var-long-arrow-up; } +.@{fa-css-prefix}-long-arrow-left:before { content: @fa-var-long-arrow-left; } +.@{fa-css-prefix}-long-arrow-right:before { content: @fa-var-long-arrow-right; } +.@{fa-css-prefix}-apple:before { content: @fa-var-apple; } +.@{fa-css-prefix}-windows:before { content: @fa-var-windows; } +.@{fa-css-prefix}-android:before { content: @fa-var-android; } +.@{fa-css-prefix}-linux:before { content: @fa-var-linux; } +.@{fa-css-prefix}-dribbble:before { content: @fa-var-dribbble; } +.@{fa-css-prefix}-skype:before { content: @fa-var-skype; } +.@{fa-css-prefix}-foursquare:before { content: @fa-var-foursquare; } +.@{fa-css-prefix}-trello:before { content: @fa-var-trello; } +.@{fa-css-prefix}-female:before { content: @fa-var-female; } +.@{fa-css-prefix}-male:before { content: @fa-var-male; } +.@{fa-css-prefix}-gittip:before, +.@{fa-css-prefix}-gratipay:before { content: @fa-var-gratipay; } +.@{fa-css-prefix}-sun-o:before { content: @fa-var-sun-o; } +.@{fa-css-prefix}-moon-o:before { content: @fa-var-moon-o; } +.@{fa-css-prefix}-archive:before { content: @fa-var-archive; } +.@{fa-css-prefix}-bug:before { content: @fa-var-bug; } +.@{fa-css-prefix}-vk:before { content: @fa-var-vk; } +.@{fa-css-prefix}-weibo:before { content: @fa-var-weibo; } +.@{fa-css-prefix}-renren:before { content: @fa-var-renren; } +.@{fa-css-prefix}-pagelines:before { content: @fa-var-pagelines; } +.@{fa-css-prefix}-stack-exchange:before { content: @fa-var-stack-exchange; } +.@{fa-css-prefix}-arrow-circle-o-right:before { content: @fa-var-arrow-circle-o-right; } +.@{fa-css-prefix}-arrow-circle-o-left:before { content: @fa-var-arrow-circle-o-left; } +.@{fa-css-prefix}-toggle-left:before, +.@{fa-css-prefix}-caret-square-o-left:before { content: @fa-var-caret-square-o-left; } +.@{fa-css-prefix}-dot-circle-o:before { content: @fa-var-dot-circle-o; } +.@{fa-css-prefix}-wheelchair:before { content: @fa-var-wheelchair; } +.@{fa-css-prefix}-vimeo-square:before { content: @fa-var-vimeo-square; } +.@{fa-css-prefix}-turkish-lira:before, +.@{fa-css-prefix}-try:before { content: @fa-var-try; } +.@{fa-css-prefix}-plus-square-o:before { content: @fa-var-plus-square-o; } +.@{fa-css-prefix}-space-shuttle:before { content: @fa-var-space-shuttle; } +.@{fa-css-prefix}-slack:before { content: @fa-var-slack; } +.@{fa-css-prefix}-envelope-square:before { content: @fa-var-envelope-square; } +.@{fa-css-prefix}-wordpress:before { content: @fa-var-wordpress; } +.@{fa-css-prefix}-openid:before { content: @fa-var-openid; } +.@{fa-css-prefix}-institution:before, +.@{fa-css-prefix}-bank:before, +.@{fa-css-prefix}-university:before { content: @fa-var-university; } +.@{fa-css-prefix}-mortar-board:before, +.@{fa-css-prefix}-graduation-cap:before { content: @fa-var-graduation-cap; } +.@{fa-css-prefix}-yahoo:before { content: @fa-var-yahoo; } +.@{fa-css-prefix}-google:before { content: @fa-var-google; } +.@{fa-css-prefix}-reddit:before { content: @fa-var-reddit; } +.@{fa-css-prefix}-reddit-square:before { content: @fa-var-reddit-square; } +.@{fa-css-prefix}-stumbleupon-circle:before { content: @fa-var-stumbleupon-circle; } +.@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } +.@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } +.@{fa-css-prefix}-digg:before { content: @fa-var-digg; } +.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; } +.@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } +.@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } +.@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } +.@{fa-css-prefix}-language:before { content: @fa-var-language; } +.@{fa-css-prefix}-fax:before { content: @fa-var-fax; } +.@{fa-css-prefix}-building:before { content: @fa-var-building; } +.@{fa-css-prefix}-child:before { content: @fa-var-child; } +.@{fa-css-prefix}-paw:before { content: @fa-var-paw; } +.@{fa-css-prefix}-spoon:before { content: @fa-var-spoon; } +.@{fa-css-prefix}-cube:before { content: @fa-var-cube; } +.@{fa-css-prefix}-cubes:before { content: @fa-var-cubes; } +.@{fa-css-prefix}-behance:before { content: @fa-var-behance; } +.@{fa-css-prefix}-behance-square:before { content: @fa-var-behance-square; } +.@{fa-css-prefix}-steam:before { content: @fa-var-steam; } +.@{fa-css-prefix}-steam-square:before { content: @fa-var-steam-square; } +.@{fa-css-prefix}-recycle:before { content: @fa-var-recycle; } +.@{fa-css-prefix}-automobile:before, +.@{fa-css-prefix}-car:before { content: @fa-var-car; } +.@{fa-css-prefix}-cab:before, +.@{fa-css-prefix}-taxi:before { content: @fa-var-taxi; } +.@{fa-css-prefix}-tree:before { content: @fa-var-tree; } +.@{fa-css-prefix}-spotify:before { content: @fa-var-spotify; } +.@{fa-css-prefix}-deviantart:before { content: @fa-var-deviantart; } +.@{fa-css-prefix}-soundcloud:before { content: @fa-var-soundcloud; } +.@{fa-css-prefix}-database:before { content: @fa-var-database; } +.@{fa-css-prefix}-file-pdf-o:before { content: @fa-var-file-pdf-o; } +.@{fa-css-prefix}-file-word-o:before { content: @fa-var-file-word-o; } +.@{fa-css-prefix}-file-excel-o:before { content: @fa-var-file-excel-o; } +.@{fa-css-prefix}-file-powerpoint-o:before { content: @fa-var-file-powerpoint-o; } +.@{fa-css-prefix}-file-photo-o:before, +.@{fa-css-prefix}-file-picture-o:before, +.@{fa-css-prefix}-file-image-o:before { content: @fa-var-file-image-o; } +.@{fa-css-prefix}-file-zip-o:before, +.@{fa-css-prefix}-file-archive-o:before { content: @fa-var-file-archive-o; } +.@{fa-css-prefix}-file-sound-o:before, +.@{fa-css-prefix}-file-audio-o:before { content: @fa-var-file-audio-o; } +.@{fa-css-prefix}-file-movie-o:before, +.@{fa-css-prefix}-file-video-o:before { content: @fa-var-file-video-o; } +.@{fa-css-prefix}-file-code-o:before { content: @fa-var-file-code-o; } +.@{fa-css-prefix}-vine:before { content: @fa-var-vine; } +.@{fa-css-prefix}-codepen:before { content: @fa-var-codepen; } +.@{fa-css-prefix}-jsfiddle:before { content: @fa-var-jsfiddle; } +.@{fa-css-prefix}-life-bouy:before, +.@{fa-css-prefix}-life-buoy:before, +.@{fa-css-prefix}-life-saver:before, +.@{fa-css-prefix}-support:before, +.@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } +.@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } +.@{fa-css-prefix}-ra:before, +.@{fa-css-prefix}-resistance:before, +.@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } +.@{fa-css-prefix}-ge:before, +.@{fa-css-prefix}-empire:before { content: @fa-var-empire; } +.@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } +.@{fa-css-prefix}-git:before { content: @fa-var-git; } +.@{fa-css-prefix}-y-combinator-square:before, +.@{fa-css-prefix}-yc-square:before, +.@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } +.@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } +.@{fa-css-prefix}-qq:before { content: @fa-var-qq; } +.@{fa-css-prefix}-wechat:before, +.@{fa-css-prefix}-weixin:before { content: @fa-var-weixin; } +.@{fa-css-prefix}-send:before, +.@{fa-css-prefix}-paper-plane:before { content: @fa-var-paper-plane; } +.@{fa-css-prefix}-send-o:before, +.@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } +.@{fa-css-prefix}-history:before { content: @fa-var-history; } +.@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } +.@{fa-css-prefix}-header:before { content: @fa-var-header; } +.@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } +.@{fa-css-prefix}-sliders:before { content: @fa-var-sliders; } +.@{fa-css-prefix}-share-alt:before { content: @fa-var-share-alt; } +.@{fa-css-prefix}-share-alt-square:before { content: @fa-var-share-alt-square; } +.@{fa-css-prefix}-bomb:before { content: @fa-var-bomb; } +.@{fa-css-prefix}-soccer-ball-o:before, +.@{fa-css-prefix}-futbol-o:before { content: @fa-var-futbol-o; } +.@{fa-css-prefix}-tty:before { content: @fa-var-tty; } +.@{fa-css-prefix}-binoculars:before { content: @fa-var-binoculars; } +.@{fa-css-prefix}-plug:before { content: @fa-var-plug; } +.@{fa-css-prefix}-slideshare:before { content: @fa-var-slideshare; } +.@{fa-css-prefix}-twitch:before { content: @fa-var-twitch; } +.@{fa-css-prefix}-yelp:before { content: @fa-var-yelp; } +.@{fa-css-prefix}-newspaper-o:before { content: @fa-var-newspaper-o; } +.@{fa-css-prefix}-wifi:before { content: @fa-var-wifi; } +.@{fa-css-prefix}-calculator:before { content: @fa-var-calculator; } +.@{fa-css-prefix}-paypal:before { content: @fa-var-paypal; } +.@{fa-css-prefix}-google-wallet:before { content: @fa-var-google-wallet; } +.@{fa-css-prefix}-cc-visa:before { content: @fa-var-cc-visa; } +.@{fa-css-prefix}-cc-mastercard:before { content: @fa-var-cc-mastercard; } +.@{fa-css-prefix}-cc-discover:before { content: @fa-var-cc-discover; } +.@{fa-css-prefix}-cc-amex:before { content: @fa-var-cc-amex; } +.@{fa-css-prefix}-cc-paypal:before { content: @fa-var-cc-paypal; } +.@{fa-css-prefix}-cc-stripe:before { content: @fa-var-cc-stripe; } +.@{fa-css-prefix}-bell-slash:before { content: @fa-var-bell-slash; } +.@{fa-css-prefix}-bell-slash-o:before { content: @fa-var-bell-slash-o; } +.@{fa-css-prefix}-trash:before { content: @fa-var-trash; } +.@{fa-css-prefix}-copyright:before { content: @fa-var-copyright; } +.@{fa-css-prefix}-at:before { content: @fa-var-at; } +.@{fa-css-prefix}-eyedropper:before { content: @fa-var-eyedropper; } +.@{fa-css-prefix}-paint-brush:before { content: @fa-var-paint-brush; } +.@{fa-css-prefix}-birthday-cake:before { content: @fa-var-birthday-cake; } +.@{fa-css-prefix}-area-chart:before { content: @fa-var-area-chart; } +.@{fa-css-prefix}-pie-chart:before { content: @fa-var-pie-chart; } +.@{fa-css-prefix}-line-chart:before { content: @fa-var-line-chart; } +.@{fa-css-prefix}-lastfm:before { content: @fa-var-lastfm; } +.@{fa-css-prefix}-lastfm-square:before { content: @fa-var-lastfm-square; } +.@{fa-css-prefix}-toggle-off:before { content: @fa-var-toggle-off; } +.@{fa-css-prefix}-toggle-on:before { content: @fa-var-toggle-on; } +.@{fa-css-prefix}-bicycle:before { content: @fa-var-bicycle; } +.@{fa-css-prefix}-bus:before { content: @fa-var-bus; } +.@{fa-css-prefix}-ioxhost:before { content: @fa-var-ioxhost; } +.@{fa-css-prefix}-angellist:before { content: @fa-var-angellist; } +.@{fa-css-prefix}-cc:before { content: @fa-var-cc; } +.@{fa-css-prefix}-shekel:before, +.@{fa-css-prefix}-sheqel:before, +.@{fa-css-prefix}-ils:before { content: @fa-var-ils; } +.@{fa-css-prefix}-meanpath:before { content: @fa-var-meanpath; } +.@{fa-css-prefix}-buysellads:before { content: @fa-var-buysellads; } +.@{fa-css-prefix}-connectdevelop:before { content: @fa-var-connectdevelop; } +.@{fa-css-prefix}-dashcube:before { content: @fa-var-dashcube; } +.@{fa-css-prefix}-forumbee:before { content: @fa-var-forumbee; } +.@{fa-css-prefix}-leanpub:before { content: @fa-var-leanpub; } +.@{fa-css-prefix}-sellsy:before { content: @fa-var-sellsy; } +.@{fa-css-prefix}-shirtsinbulk:before { content: @fa-var-shirtsinbulk; } +.@{fa-css-prefix}-simplybuilt:before { content: @fa-var-simplybuilt; } +.@{fa-css-prefix}-skyatlas:before { content: @fa-var-skyatlas; } +.@{fa-css-prefix}-cart-plus:before { content: @fa-var-cart-plus; } +.@{fa-css-prefix}-cart-arrow-down:before { content: @fa-var-cart-arrow-down; } +.@{fa-css-prefix}-diamond:before { content: @fa-var-diamond; } +.@{fa-css-prefix}-ship:before { content: @fa-var-ship; } +.@{fa-css-prefix}-user-secret:before { content: @fa-var-user-secret; } +.@{fa-css-prefix}-motorcycle:before { content: @fa-var-motorcycle; } +.@{fa-css-prefix}-street-view:before { content: @fa-var-street-view; } +.@{fa-css-prefix}-heartbeat:before { content: @fa-var-heartbeat; } +.@{fa-css-prefix}-venus:before { content: @fa-var-venus; } +.@{fa-css-prefix}-mars:before { content: @fa-var-mars; } +.@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } +.@{fa-css-prefix}-intersex:before, +.@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } +.@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } +.@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } +.@{fa-css-prefix}-mars-double:before { content: @fa-var-mars-double; } +.@{fa-css-prefix}-venus-mars:before { content: @fa-var-venus-mars; } +.@{fa-css-prefix}-mars-stroke:before { content: @fa-var-mars-stroke; } +.@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } +.@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } +.@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } +.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; } +.@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } +.@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } +.@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } +.@{fa-css-prefix}-server:before { content: @fa-var-server; } +.@{fa-css-prefix}-user-plus:before { content: @fa-var-user-plus; } +.@{fa-css-prefix}-user-times:before { content: @fa-var-user-times; } +.@{fa-css-prefix}-hotel:before, +.@{fa-css-prefix}-bed:before { content: @fa-var-bed; } +.@{fa-css-prefix}-viacoin:before { content: @fa-var-viacoin; } +.@{fa-css-prefix}-train:before { content: @fa-var-train; } +.@{fa-css-prefix}-subway:before { content: @fa-var-subway; } +.@{fa-css-prefix}-medium:before { content: @fa-var-medium; } +.@{fa-css-prefix}-yc:before, +.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; } +.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; } +.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; } +.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; } +.@{fa-css-prefix}-battery-4:before, +.@{fa-css-prefix}-battery:before, +.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; } +.@{fa-css-prefix}-battery-3:before, +.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; } +.@{fa-css-prefix}-battery-2:before, +.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; } +.@{fa-css-prefix}-battery-1:before, +.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; } +.@{fa-css-prefix}-battery-0:before, +.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; } +.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; } +.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; } +.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; } +.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; } +.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; } +.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; } +.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; } +.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; } +.@{fa-css-prefix}-clone:before { content: @fa-var-clone; } +.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; } +.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; } +.@{fa-css-prefix}-hourglass-1:before, +.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; } +.@{fa-css-prefix}-hourglass-2:before, +.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; } +.@{fa-css-prefix}-hourglass-3:before, +.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; } +.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; } +.@{fa-css-prefix}-hand-grab-o:before, +.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; } +.@{fa-css-prefix}-hand-stop-o:before, +.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; } +.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; } +.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; } +.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; } +.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; } +.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; } +.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; } +.@{fa-css-prefix}-registered:before { content: @fa-var-registered; } +.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; } +.@{fa-css-prefix}-gg:before { content: @fa-var-gg; } +.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; } +.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; } +.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; } +.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; } +.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; } +.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; } +.@{fa-css-prefix}-safari:before { content: @fa-var-safari; } +.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; } +.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; } +.@{fa-css-prefix}-opera:before { content: @fa-var-opera; } +.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; } +.@{fa-css-prefix}-tv:before, +.@{fa-css-prefix}-television:before { content: @fa-var-television; } +.@{fa-css-prefix}-contao:before { content: @fa-var-contao; } +.@{fa-css-prefix}-500px:before { content: @fa-var-500px; } +.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; } +.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; } +.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; } +.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; } +.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; } +.@{fa-css-prefix}-industry:before { content: @fa-var-industry; } +.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; } +.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; } +.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; } +.@{fa-css-prefix}-map:before { content: @fa-var-map; } +.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; } +.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; } +.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; } +.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; } +.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; } +.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; } +.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; } +.@{fa-css-prefix}-edge:before { content: @fa-var-edge; } +.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; } +.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; } +.@{fa-css-prefix}-modx:before { content: @fa-var-modx; } +.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; } +.@{fa-css-prefix}-usb:before { content: @fa-var-usb; } +.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; } +.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; } +.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; } +.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; } +.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; } +.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; } +.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; } +.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; } +.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; } +.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; } +.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; } +.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; } +.@{fa-css-prefix}-percent:before { content: @fa-var-percent; } +.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; } +.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; } +.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; } +.@{fa-css-prefix}-envira:before { content: @fa-var-envira; } +.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; } +.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; } +.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; } +.@{fa-css-prefix}-blind:before { content: @fa-var-blind; } +.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; } +.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; } +.@{fa-css-prefix}-braille:before { content: @fa-var-braille; } +.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; } +.@{fa-css-prefix}-asl-interpreting:before, +.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; } +.@{fa-css-prefix}-deafness:before, +.@{fa-css-prefix}-hard-of-hearing:before, +.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; } +.@{fa-css-prefix}-glide:before { content: @fa-var-glide; } +.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; } +.@{fa-css-prefix}-signing:before, +.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; } +.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; } +.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; } +.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; } +.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; } +.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; } +.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; } +.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; } +.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; } +.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; } +.@{fa-css-prefix}-google-plus-circle:before, +.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; } +.@{fa-css-prefix}-fa:before, +.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; } +.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; } +.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; } +.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; } +.@{fa-css-prefix}-linode:before { content: @fa-var-linode; } +.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; } +.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; } +.@{fa-css-prefix}-vcard:before, +.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; } +.@{fa-css-prefix}-vcard-o:before, +.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; } +.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; } +.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; } +.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; } +.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; } +.@{fa-css-prefix}-drivers-license:before, +.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; } +.@{fa-css-prefix}-drivers-license-o:before, +.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; } +.@{fa-css-prefix}-quora:before { content: @fa-var-quora; } +.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; } +.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; } +.@{fa-css-prefix}-thermometer-4:before, +.@{fa-css-prefix}-thermometer:before, +.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; } +.@{fa-css-prefix}-thermometer-3:before, +.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; } +.@{fa-css-prefix}-thermometer-2:before, +.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; } +.@{fa-css-prefix}-thermometer-1:before, +.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; } +.@{fa-css-prefix}-thermometer-0:before, +.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; } +.@{fa-css-prefix}-shower:before { content: @fa-var-shower; } +.@{fa-css-prefix}-bathtub:before, +.@{fa-css-prefix}-s15:before, +.@{fa-css-prefix}-bath:before { content: @fa-var-bath; } +.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; } +.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; } +.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; } +.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; } +.@{fa-css-prefix}-times-rectangle:before, +.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; } +.@{fa-css-prefix}-times-rectangle-o:before, +.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; } +.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; } +.@{fa-css-prefix}-grav:before { content: @fa-var-grav; } +.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; } +.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; } +.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; } +.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; } +.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; } +.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; } +.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; } +.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; } +.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; } diff --git a/lib/font-awesome-4.7.0/less/larger.less b/lib/font-awesome-4.7.0/less/larger.less new file mode 100755 index 0000000..c9d6467 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/larger.less @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.@{fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.@{fa-css-prefix}-2x { font-size: 2em; } +.@{fa-css-prefix}-3x { font-size: 3em; } +.@{fa-css-prefix}-4x { font-size: 4em; } +.@{fa-css-prefix}-5x { font-size: 5em; } diff --git a/lib/font-awesome-4.7.0/less/list.less b/lib/font-awesome-4.7.0/less/list.less new file mode 100755 index 0000000..0b44038 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/list.less @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.@{fa-css-prefix}-ul { + padding-left: 0; + margin-left: @fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.@{fa-css-prefix}-li { + position: absolute; + left: -@fa-li-width; + width: @fa-li-width; + top: (2em / 14); + text-align: center; + &.@{fa-css-prefix}-lg { + left: (-@fa-li-width + (4em / 14)); + } +} diff --git a/lib/font-awesome-4.7.0/less/mixins.less b/lib/font-awesome-4.7.0/less/mixins.less new file mode 100755 index 0000000..beef231 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/mixins.less @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +.fa-icon() { + display: inline-block; + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +.fa-icon-rotate(@degrees, @rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); + transform: rotate(@degrees); +} + +.fa-icon-flip(@horiz, @vert, @rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; + -webkit-transform: scale(@horiz, @vert); + -ms-transform: scale(@horiz, @vert); + transform: scale(@horiz, @vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +.sr-only() { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +.sr-only-focusable() { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/lib/font-awesome-4.7.0/less/path.less b/lib/font-awesome-4.7.0/less/path.less new file mode 100755 index 0000000..835be41 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/path.less @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); + src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), + url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), + url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), + url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), + url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); + // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/lib/font-awesome-4.7.0/less/rotated-flipped.less b/lib/font-awesome-4.7.0/less/rotated-flipped.less new file mode 100755 index 0000000..f6ba814 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/rotated-flipped.less @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } +.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } +.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } + +.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } +.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .@{fa-css-prefix}-rotate-90, +:root .@{fa-css-prefix}-rotate-180, +:root .@{fa-css-prefix}-rotate-270, +:root .@{fa-css-prefix}-flip-horizontal, +:root .@{fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/lib/font-awesome-4.7.0/less/screen-reader.less b/lib/font-awesome-4.7.0/less/screen-reader.less new file mode 100755 index 0000000..11c1881 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/screen-reader.less @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { .sr-only(); } +.sr-only-focusable { .sr-only-focusable(); } diff --git a/lib/font-awesome-4.7.0/less/stacked.less b/lib/font-awesome-4.7.0/less/stacked.less new file mode 100755 index 0000000..fc53fb0 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/stacked.less @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.@{fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.@{fa-css-prefix}-stack-1x { line-height: inherit; } +.@{fa-css-prefix}-stack-2x { font-size: 2em; } +.@{fa-css-prefix}-inverse { color: @fa-inverse; } diff --git a/lib/font-awesome-4.7.0/less/variables.less b/lib/font-awesome-4.7.0/less/variables.less new file mode 100755 index 0000000..7ddbbc0 --- /dev/null +++ b/lib/font-awesome-4.7.0/less/variables.less @@ -0,0 +1,800 @@ +// Variables +// -------------------------- + +@fa-font-path: "../fonts"; +@fa-font-size-base: 14px; +@fa-line-height-base: 1; +//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly +@fa-css-prefix: fa; +@fa-version: "4.7.0"; +@fa-border-color: #eee; +@fa-inverse: #fff; +@fa-li-width: (30em / 14); + +@fa-var-500px: "\f26e"; +@fa-var-address-book: "\f2b9"; +@fa-var-address-book-o: "\f2ba"; +@fa-var-address-card: "\f2bb"; +@fa-var-address-card-o: "\f2bc"; +@fa-var-adjust: "\f042"; +@fa-var-adn: "\f170"; +@fa-var-align-center: "\f037"; +@fa-var-align-justify: "\f039"; +@fa-var-align-left: "\f036"; +@fa-var-align-right: "\f038"; +@fa-var-amazon: "\f270"; +@fa-var-ambulance: "\f0f9"; +@fa-var-american-sign-language-interpreting: "\f2a3"; +@fa-var-anchor: "\f13d"; +@fa-var-android: "\f17b"; +@fa-var-angellist: "\f209"; +@fa-var-angle-double-down: "\f103"; +@fa-var-angle-double-left: "\f100"; +@fa-var-angle-double-right: "\f101"; +@fa-var-angle-double-up: "\f102"; +@fa-var-angle-down: "\f107"; +@fa-var-angle-left: "\f104"; +@fa-var-angle-right: "\f105"; +@fa-var-angle-up: "\f106"; +@fa-var-apple: "\f179"; +@fa-var-archive: "\f187"; +@fa-var-area-chart: "\f1fe"; +@fa-var-arrow-circle-down: "\f0ab"; +@fa-var-arrow-circle-left: "\f0a8"; +@fa-var-arrow-circle-o-down: "\f01a"; +@fa-var-arrow-circle-o-left: "\f190"; +@fa-var-arrow-circle-o-right: "\f18e"; +@fa-var-arrow-circle-o-up: "\f01b"; +@fa-var-arrow-circle-right: "\f0a9"; +@fa-var-arrow-circle-up: "\f0aa"; +@fa-var-arrow-down: "\f063"; +@fa-var-arrow-left: "\f060"; +@fa-var-arrow-right: "\f061"; +@fa-var-arrow-up: "\f062"; +@fa-var-arrows: "\f047"; +@fa-var-arrows-alt: "\f0b2"; +@fa-var-arrows-h: "\f07e"; +@fa-var-arrows-v: "\f07d"; +@fa-var-asl-interpreting: "\f2a3"; +@fa-var-assistive-listening-systems: "\f2a2"; +@fa-var-asterisk: "\f069"; +@fa-var-at: "\f1fa"; +@fa-var-audio-description: "\f29e"; +@fa-var-automobile: "\f1b9"; +@fa-var-backward: "\f04a"; +@fa-var-balance-scale: "\f24e"; +@fa-var-ban: "\f05e"; +@fa-var-bandcamp: "\f2d5"; +@fa-var-bank: "\f19c"; +@fa-var-bar-chart: "\f080"; +@fa-var-bar-chart-o: "\f080"; +@fa-var-barcode: "\f02a"; +@fa-var-bars: "\f0c9"; +@fa-var-bath: "\f2cd"; +@fa-var-bathtub: "\f2cd"; +@fa-var-battery: "\f240"; +@fa-var-battery-0: "\f244"; +@fa-var-battery-1: "\f243"; +@fa-var-battery-2: "\f242"; +@fa-var-battery-3: "\f241"; +@fa-var-battery-4: "\f240"; +@fa-var-battery-empty: "\f244"; +@fa-var-battery-full: "\f240"; +@fa-var-battery-half: "\f242"; +@fa-var-battery-quarter: "\f243"; +@fa-var-battery-three-quarters: "\f241"; +@fa-var-bed: "\f236"; +@fa-var-beer: "\f0fc"; +@fa-var-behance: "\f1b4"; +@fa-var-behance-square: "\f1b5"; +@fa-var-bell: "\f0f3"; +@fa-var-bell-o: "\f0a2"; +@fa-var-bell-slash: "\f1f6"; +@fa-var-bell-slash-o: "\f1f7"; +@fa-var-bicycle: "\f206"; +@fa-var-binoculars: "\f1e5"; +@fa-var-birthday-cake: "\f1fd"; +@fa-var-bitbucket: "\f171"; +@fa-var-bitbucket-square: "\f172"; +@fa-var-bitcoin: "\f15a"; +@fa-var-black-tie: "\f27e"; +@fa-var-blind: "\f29d"; +@fa-var-bluetooth: "\f293"; +@fa-var-bluetooth-b: "\f294"; +@fa-var-bold: "\f032"; +@fa-var-bolt: "\f0e7"; +@fa-var-bomb: "\f1e2"; +@fa-var-book: "\f02d"; +@fa-var-bookmark: "\f02e"; +@fa-var-bookmark-o: "\f097"; +@fa-var-braille: "\f2a1"; +@fa-var-briefcase: "\f0b1"; +@fa-var-btc: "\f15a"; +@fa-var-bug: "\f188"; +@fa-var-building: "\f1ad"; +@fa-var-building-o: "\f0f7"; +@fa-var-bullhorn: "\f0a1"; +@fa-var-bullseye: "\f140"; +@fa-var-bus: "\f207"; +@fa-var-buysellads: "\f20d"; +@fa-var-cab: "\f1ba"; +@fa-var-calculator: "\f1ec"; +@fa-var-calendar: "\f073"; +@fa-var-calendar-check-o: "\f274"; +@fa-var-calendar-minus-o: "\f272"; +@fa-var-calendar-o: "\f133"; +@fa-var-calendar-plus-o: "\f271"; +@fa-var-calendar-times-o: "\f273"; +@fa-var-camera: "\f030"; +@fa-var-camera-retro: "\f083"; +@fa-var-car: "\f1b9"; +@fa-var-caret-down: "\f0d7"; +@fa-var-caret-left: "\f0d9"; +@fa-var-caret-right: "\f0da"; +@fa-var-caret-square-o-down: "\f150"; +@fa-var-caret-square-o-left: "\f191"; +@fa-var-caret-square-o-right: "\f152"; +@fa-var-caret-square-o-up: "\f151"; +@fa-var-caret-up: "\f0d8"; +@fa-var-cart-arrow-down: "\f218"; +@fa-var-cart-plus: "\f217"; +@fa-var-cc: "\f20a"; +@fa-var-cc-amex: "\f1f3"; +@fa-var-cc-diners-club: "\f24c"; +@fa-var-cc-discover: "\f1f2"; +@fa-var-cc-jcb: "\f24b"; +@fa-var-cc-mastercard: "\f1f1"; +@fa-var-cc-paypal: "\f1f4"; +@fa-var-cc-stripe: "\f1f5"; +@fa-var-cc-visa: "\f1f0"; +@fa-var-certificate: "\f0a3"; +@fa-var-chain: "\f0c1"; +@fa-var-chain-broken: "\f127"; +@fa-var-check: "\f00c"; +@fa-var-check-circle: "\f058"; +@fa-var-check-circle-o: "\f05d"; +@fa-var-check-square: "\f14a"; +@fa-var-check-square-o: "\f046"; +@fa-var-chevron-circle-down: "\f13a"; +@fa-var-chevron-circle-left: "\f137"; +@fa-var-chevron-circle-right: "\f138"; +@fa-var-chevron-circle-up: "\f139"; +@fa-var-chevron-down: "\f078"; +@fa-var-chevron-left: "\f053"; +@fa-var-chevron-right: "\f054"; +@fa-var-chevron-up: "\f077"; +@fa-var-child: "\f1ae"; +@fa-var-chrome: "\f268"; +@fa-var-circle: "\f111"; +@fa-var-circle-o: "\f10c"; +@fa-var-circle-o-notch: "\f1ce"; +@fa-var-circle-thin: "\f1db"; +@fa-var-clipboard: "\f0ea"; +@fa-var-clock-o: "\f017"; +@fa-var-clone: "\f24d"; +@fa-var-close: "\f00d"; +@fa-var-cloud: "\f0c2"; +@fa-var-cloud-download: "\f0ed"; +@fa-var-cloud-upload: "\f0ee"; +@fa-var-cny: "\f157"; +@fa-var-code: "\f121"; +@fa-var-code-fork: "\f126"; +@fa-var-codepen: "\f1cb"; +@fa-var-codiepie: "\f284"; +@fa-var-coffee: "\f0f4"; +@fa-var-cog: "\f013"; +@fa-var-cogs: "\f085"; +@fa-var-columns: "\f0db"; +@fa-var-comment: "\f075"; +@fa-var-comment-o: "\f0e5"; +@fa-var-commenting: "\f27a"; +@fa-var-commenting-o: "\f27b"; +@fa-var-comments: "\f086"; +@fa-var-comments-o: "\f0e6"; +@fa-var-compass: "\f14e"; +@fa-var-compress: "\f066"; +@fa-var-connectdevelop: "\f20e"; +@fa-var-contao: "\f26d"; +@fa-var-copy: "\f0c5"; +@fa-var-copyright: "\f1f9"; +@fa-var-creative-commons: "\f25e"; +@fa-var-credit-card: "\f09d"; +@fa-var-credit-card-alt: "\f283"; +@fa-var-crop: "\f125"; +@fa-var-crosshairs: "\f05b"; +@fa-var-css3: "\f13c"; +@fa-var-cube: "\f1b2"; +@fa-var-cubes: "\f1b3"; +@fa-var-cut: "\f0c4"; +@fa-var-cutlery: "\f0f5"; +@fa-var-dashboard: "\f0e4"; +@fa-var-dashcube: "\f210"; +@fa-var-database: "\f1c0"; +@fa-var-deaf: "\f2a4"; +@fa-var-deafness: "\f2a4"; +@fa-var-dedent: "\f03b"; +@fa-var-delicious: "\f1a5"; +@fa-var-desktop: "\f108"; +@fa-var-deviantart: "\f1bd"; +@fa-var-diamond: "\f219"; +@fa-var-digg: "\f1a6"; +@fa-var-dollar: "\f155"; +@fa-var-dot-circle-o: "\f192"; +@fa-var-download: "\f019"; +@fa-var-dribbble: "\f17d"; +@fa-var-drivers-license: "\f2c2"; +@fa-var-drivers-license-o: "\f2c3"; +@fa-var-dropbox: "\f16b"; +@fa-var-drupal: "\f1a9"; +@fa-var-edge: "\f282"; +@fa-var-edit: "\f044"; +@fa-var-eercast: "\f2da"; +@fa-var-eject: "\f052"; +@fa-var-ellipsis-h: "\f141"; +@fa-var-ellipsis-v: "\f142"; +@fa-var-empire: "\f1d1"; +@fa-var-envelope: "\f0e0"; +@fa-var-envelope-o: "\f003"; +@fa-var-envelope-open: "\f2b6"; +@fa-var-envelope-open-o: "\f2b7"; +@fa-var-envelope-square: "\f199"; +@fa-var-envira: "\f299"; +@fa-var-eraser: "\f12d"; +@fa-var-etsy: "\f2d7"; +@fa-var-eur: "\f153"; +@fa-var-euro: "\f153"; +@fa-var-exchange: "\f0ec"; +@fa-var-exclamation: "\f12a"; +@fa-var-exclamation-circle: "\f06a"; +@fa-var-exclamation-triangle: "\f071"; +@fa-var-expand: "\f065"; +@fa-var-expeditedssl: "\f23e"; +@fa-var-external-link: "\f08e"; +@fa-var-external-link-square: "\f14c"; +@fa-var-eye: "\f06e"; +@fa-var-eye-slash: "\f070"; +@fa-var-eyedropper: "\f1fb"; +@fa-var-fa: "\f2b4"; +@fa-var-facebook: "\f09a"; +@fa-var-facebook-f: "\f09a"; +@fa-var-facebook-official: "\f230"; +@fa-var-facebook-square: "\f082"; +@fa-var-fast-backward: "\f049"; +@fa-var-fast-forward: "\f050"; +@fa-var-fax: "\f1ac"; +@fa-var-feed: "\f09e"; +@fa-var-female: "\f182"; +@fa-var-fighter-jet: "\f0fb"; +@fa-var-file: "\f15b"; +@fa-var-file-archive-o: "\f1c6"; +@fa-var-file-audio-o: "\f1c7"; +@fa-var-file-code-o: "\f1c9"; +@fa-var-file-excel-o: "\f1c3"; +@fa-var-file-image-o: "\f1c5"; +@fa-var-file-movie-o: "\f1c8"; +@fa-var-file-o: "\f016"; +@fa-var-file-pdf-o: "\f1c1"; +@fa-var-file-photo-o: "\f1c5"; +@fa-var-file-picture-o: "\f1c5"; +@fa-var-file-powerpoint-o: "\f1c4"; +@fa-var-file-sound-o: "\f1c7"; +@fa-var-file-text: "\f15c"; +@fa-var-file-text-o: "\f0f6"; +@fa-var-file-video-o: "\f1c8"; +@fa-var-file-word-o: "\f1c2"; +@fa-var-file-zip-o: "\f1c6"; +@fa-var-files-o: "\f0c5"; +@fa-var-film: "\f008"; +@fa-var-filter: "\f0b0"; +@fa-var-fire: "\f06d"; +@fa-var-fire-extinguisher: "\f134"; +@fa-var-firefox: "\f269"; +@fa-var-first-order: "\f2b0"; +@fa-var-flag: "\f024"; +@fa-var-flag-checkered: "\f11e"; +@fa-var-flag-o: "\f11d"; +@fa-var-flash: "\f0e7"; +@fa-var-flask: "\f0c3"; +@fa-var-flickr: "\f16e"; +@fa-var-floppy-o: "\f0c7"; +@fa-var-folder: "\f07b"; +@fa-var-folder-o: "\f114"; +@fa-var-folder-open: "\f07c"; +@fa-var-folder-open-o: "\f115"; +@fa-var-font: "\f031"; +@fa-var-font-awesome: "\f2b4"; +@fa-var-fonticons: "\f280"; +@fa-var-fort-awesome: "\f286"; +@fa-var-forumbee: "\f211"; +@fa-var-forward: "\f04e"; +@fa-var-foursquare: "\f180"; +@fa-var-free-code-camp: "\f2c5"; +@fa-var-frown-o: "\f119"; +@fa-var-futbol-o: "\f1e3"; +@fa-var-gamepad: "\f11b"; +@fa-var-gavel: "\f0e3"; +@fa-var-gbp: "\f154"; +@fa-var-ge: "\f1d1"; +@fa-var-gear: "\f013"; +@fa-var-gears: "\f085"; +@fa-var-genderless: "\f22d"; +@fa-var-get-pocket: "\f265"; +@fa-var-gg: "\f260"; +@fa-var-gg-circle: "\f261"; +@fa-var-gift: "\f06b"; +@fa-var-git: "\f1d3"; +@fa-var-git-square: "\f1d2"; +@fa-var-github: "\f09b"; +@fa-var-github-alt: "\f113"; +@fa-var-github-square: "\f092"; +@fa-var-gitlab: "\f296"; +@fa-var-gittip: "\f184"; +@fa-var-glass: "\f000"; +@fa-var-glide: "\f2a5"; +@fa-var-glide-g: "\f2a6"; +@fa-var-globe: "\f0ac"; +@fa-var-google: "\f1a0"; +@fa-var-google-plus: "\f0d5"; +@fa-var-google-plus-circle: "\f2b3"; +@fa-var-google-plus-official: "\f2b3"; +@fa-var-google-plus-square: "\f0d4"; +@fa-var-google-wallet: "\f1ee"; +@fa-var-graduation-cap: "\f19d"; +@fa-var-gratipay: "\f184"; +@fa-var-grav: "\f2d6"; +@fa-var-group: "\f0c0"; +@fa-var-h-square: "\f0fd"; +@fa-var-hacker-news: "\f1d4"; +@fa-var-hand-grab-o: "\f255"; +@fa-var-hand-lizard-o: "\f258"; +@fa-var-hand-o-down: "\f0a7"; +@fa-var-hand-o-left: "\f0a5"; +@fa-var-hand-o-right: "\f0a4"; +@fa-var-hand-o-up: "\f0a6"; +@fa-var-hand-paper-o: "\f256"; +@fa-var-hand-peace-o: "\f25b"; +@fa-var-hand-pointer-o: "\f25a"; +@fa-var-hand-rock-o: "\f255"; +@fa-var-hand-scissors-o: "\f257"; +@fa-var-hand-spock-o: "\f259"; +@fa-var-hand-stop-o: "\f256"; +@fa-var-handshake-o: "\f2b5"; +@fa-var-hard-of-hearing: "\f2a4"; +@fa-var-hashtag: "\f292"; +@fa-var-hdd-o: "\f0a0"; +@fa-var-header: "\f1dc"; +@fa-var-headphones: "\f025"; +@fa-var-heart: "\f004"; +@fa-var-heart-o: "\f08a"; +@fa-var-heartbeat: "\f21e"; +@fa-var-history: "\f1da"; +@fa-var-home: "\f015"; +@fa-var-hospital-o: "\f0f8"; +@fa-var-hotel: "\f236"; +@fa-var-hourglass: "\f254"; +@fa-var-hourglass-1: "\f251"; +@fa-var-hourglass-2: "\f252"; +@fa-var-hourglass-3: "\f253"; +@fa-var-hourglass-end: "\f253"; +@fa-var-hourglass-half: "\f252"; +@fa-var-hourglass-o: "\f250"; +@fa-var-hourglass-start: "\f251"; +@fa-var-houzz: "\f27c"; +@fa-var-html5: "\f13b"; +@fa-var-i-cursor: "\f246"; +@fa-var-id-badge: "\f2c1"; +@fa-var-id-card: "\f2c2"; +@fa-var-id-card-o: "\f2c3"; +@fa-var-ils: "\f20b"; +@fa-var-image: "\f03e"; +@fa-var-imdb: "\f2d8"; +@fa-var-inbox: "\f01c"; +@fa-var-indent: "\f03c"; +@fa-var-industry: "\f275"; +@fa-var-info: "\f129"; +@fa-var-info-circle: "\f05a"; +@fa-var-inr: "\f156"; +@fa-var-instagram: "\f16d"; +@fa-var-institution: "\f19c"; +@fa-var-internet-explorer: "\f26b"; +@fa-var-intersex: "\f224"; +@fa-var-ioxhost: "\f208"; +@fa-var-italic: "\f033"; +@fa-var-joomla: "\f1aa"; +@fa-var-jpy: "\f157"; +@fa-var-jsfiddle: "\f1cc"; +@fa-var-key: "\f084"; +@fa-var-keyboard-o: "\f11c"; +@fa-var-krw: "\f159"; +@fa-var-language: "\f1ab"; +@fa-var-laptop: "\f109"; +@fa-var-lastfm: "\f202"; +@fa-var-lastfm-square: "\f203"; +@fa-var-leaf: "\f06c"; +@fa-var-leanpub: "\f212"; +@fa-var-legal: "\f0e3"; +@fa-var-lemon-o: "\f094"; +@fa-var-level-down: "\f149"; +@fa-var-level-up: "\f148"; +@fa-var-life-bouy: "\f1cd"; +@fa-var-life-buoy: "\f1cd"; +@fa-var-life-ring: "\f1cd"; +@fa-var-life-saver: "\f1cd"; +@fa-var-lightbulb-o: "\f0eb"; +@fa-var-line-chart: "\f201"; +@fa-var-link: "\f0c1"; +@fa-var-linkedin: "\f0e1"; +@fa-var-linkedin-square: "\f08c"; +@fa-var-linode: "\f2b8"; +@fa-var-linux: "\f17c"; +@fa-var-list: "\f03a"; +@fa-var-list-alt: "\f022"; +@fa-var-list-ol: "\f0cb"; +@fa-var-list-ul: "\f0ca"; +@fa-var-location-arrow: "\f124"; +@fa-var-lock: "\f023"; +@fa-var-long-arrow-down: "\f175"; +@fa-var-long-arrow-left: "\f177"; +@fa-var-long-arrow-right: "\f178"; +@fa-var-long-arrow-up: "\f176"; +@fa-var-low-vision: "\f2a8"; +@fa-var-magic: "\f0d0"; +@fa-var-magnet: "\f076"; +@fa-var-mail-forward: "\f064"; +@fa-var-mail-reply: "\f112"; +@fa-var-mail-reply-all: "\f122"; +@fa-var-male: "\f183"; +@fa-var-map: "\f279"; +@fa-var-map-marker: "\f041"; +@fa-var-map-o: "\f278"; +@fa-var-map-pin: "\f276"; +@fa-var-map-signs: "\f277"; +@fa-var-mars: "\f222"; +@fa-var-mars-double: "\f227"; +@fa-var-mars-stroke: "\f229"; +@fa-var-mars-stroke-h: "\f22b"; +@fa-var-mars-stroke-v: "\f22a"; +@fa-var-maxcdn: "\f136"; +@fa-var-meanpath: "\f20c"; +@fa-var-medium: "\f23a"; +@fa-var-medkit: "\f0fa"; +@fa-var-meetup: "\f2e0"; +@fa-var-meh-o: "\f11a"; +@fa-var-mercury: "\f223"; +@fa-var-microchip: "\f2db"; +@fa-var-microphone: "\f130"; +@fa-var-microphone-slash: "\f131"; +@fa-var-minus: "\f068"; +@fa-var-minus-circle: "\f056"; +@fa-var-minus-square: "\f146"; +@fa-var-minus-square-o: "\f147"; +@fa-var-mixcloud: "\f289"; +@fa-var-mobile: "\f10b"; +@fa-var-mobile-phone: "\f10b"; +@fa-var-modx: "\f285"; +@fa-var-money: "\f0d6"; +@fa-var-moon-o: "\f186"; +@fa-var-mortar-board: "\f19d"; +@fa-var-motorcycle: "\f21c"; +@fa-var-mouse-pointer: "\f245"; +@fa-var-music: "\f001"; +@fa-var-navicon: "\f0c9"; +@fa-var-neuter: "\f22c"; +@fa-var-newspaper-o: "\f1ea"; +@fa-var-object-group: "\f247"; +@fa-var-object-ungroup: "\f248"; +@fa-var-odnoklassniki: "\f263"; +@fa-var-odnoklassniki-square: "\f264"; +@fa-var-opencart: "\f23d"; +@fa-var-openid: "\f19b"; +@fa-var-opera: "\f26a"; +@fa-var-optin-monster: "\f23c"; +@fa-var-outdent: "\f03b"; +@fa-var-pagelines: "\f18c"; +@fa-var-paint-brush: "\f1fc"; +@fa-var-paper-plane: "\f1d8"; +@fa-var-paper-plane-o: "\f1d9"; +@fa-var-paperclip: "\f0c6"; +@fa-var-paragraph: "\f1dd"; +@fa-var-paste: "\f0ea"; +@fa-var-pause: "\f04c"; +@fa-var-pause-circle: "\f28b"; +@fa-var-pause-circle-o: "\f28c"; +@fa-var-paw: "\f1b0"; +@fa-var-paypal: "\f1ed"; +@fa-var-pencil: "\f040"; +@fa-var-pencil-square: "\f14b"; +@fa-var-pencil-square-o: "\f044"; +@fa-var-percent: "\f295"; +@fa-var-phone: "\f095"; +@fa-var-phone-square: "\f098"; +@fa-var-photo: "\f03e"; +@fa-var-picture-o: "\f03e"; +@fa-var-pie-chart: "\f200"; +@fa-var-pied-piper: "\f2ae"; +@fa-var-pied-piper-alt: "\f1a8"; +@fa-var-pied-piper-pp: "\f1a7"; +@fa-var-pinterest: "\f0d2"; +@fa-var-pinterest-p: "\f231"; +@fa-var-pinterest-square: "\f0d3"; +@fa-var-plane: "\f072"; +@fa-var-play: "\f04b"; +@fa-var-play-circle: "\f144"; +@fa-var-play-circle-o: "\f01d"; +@fa-var-plug: "\f1e6"; +@fa-var-plus: "\f067"; +@fa-var-plus-circle: "\f055"; +@fa-var-plus-square: "\f0fe"; +@fa-var-plus-square-o: "\f196"; +@fa-var-podcast: "\f2ce"; +@fa-var-power-off: "\f011"; +@fa-var-print: "\f02f"; +@fa-var-product-hunt: "\f288"; +@fa-var-puzzle-piece: "\f12e"; +@fa-var-qq: "\f1d6"; +@fa-var-qrcode: "\f029"; +@fa-var-question: "\f128"; +@fa-var-question-circle: "\f059"; +@fa-var-question-circle-o: "\f29c"; +@fa-var-quora: "\f2c4"; +@fa-var-quote-left: "\f10d"; +@fa-var-quote-right: "\f10e"; +@fa-var-ra: "\f1d0"; +@fa-var-random: "\f074"; +@fa-var-ravelry: "\f2d9"; +@fa-var-rebel: "\f1d0"; +@fa-var-recycle: "\f1b8"; +@fa-var-reddit: "\f1a1"; +@fa-var-reddit-alien: "\f281"; +@fa-var-reddit-square: "\f1a2"; +@fa-var-refresh: "\f021"; +@fa-var-registered: "\f25d"; +@fa-var-remove: "\f00d"; +@fa-var-renren: "\f18b"; +@fa-var-reorder: "\f0c9"; +@fa-var-repeat: "\f01e"; +@fa-var-reply: "\f112"; +@fa-var-reply-all: "\f122"; +@fa-var-resistance: "\f1d0"; +@fa-var-retweet: "\f079"; +@fa-var-rmb: "\f157"; +@fa-var-road: "\f018"; +@fa-var-rocket: "\f135"; +@fa-var-rotate-left: "\f0e2"; +@fa-var-rotate-right: "\f01e"; +@fa-var-rouble: "\f158"; +@fa-var-rss: "\f09e"; +@fa-var-rss-square: "\f143"; +@fa-var-rub: "\f158"; +@fa-var-ruble: "\f158"; +@fa-var-rupee: "\f156"; +@fa-var-s15: "\f2cd"; +@fa-var-safari: "\f267"; +@fa-var-save: "\f0c7"; +@fa-var-scissors: "\f0c4"; +@fa-var-scribd: "\f28a"; +@fa-var-search: "\f002"; +@fa-var-search-minus: "\f010"; +@fa-var-search-plus: "\f00e"; +@fa-var-sellsy: "\f213"; +@fa-var-send: "\f1d8"; +@fa-var-send-o: "\f1d9"; +@fa-var-server: "\f233"; +@fa-var-share: "\f064"; +@fa-var-share-alt: "\f1e0"; +@fa-var-share-alt-square: "\f1e1"; +@fa-var-share-square: "\f14d"; +@fa-var-share-square-o: "\f045"; +@fa-var-shekel: "\f20b"; +@fa-var-sheqel: "\f20b"; +@fa-var-shield: "\f132"; +@fa-var-ship: "\f21a"; +@fa-var-shirtsinbulk: "\f214"; +@fa-var-shopping-bag: "\f290"; +@fa-var-shopping-basket: "\f291"; +@fa-var-shopping-cart: "\f07a"; +@fa-var-shower: "\f2cc"; +@fa-var-sign-in: "\f090"; +@fa-var-sign-language: "\f2a7"; +@fa-var-sign-out: "\f08b"; +@fa-var-signal: "\f012"; +@fa-var-signing: "\f2a7"; +@fa-var-simplybuilt: "\f215"; +@fa-var-sitemap: "\f0e8"; +@fa-var-skyatlas: "\f216"; +@fa-var-skype: "\f17e"; +@fa-var-slack: "\f198"; +@fa-var-sliders: "\f1de"; +@fa-var-slideshare: "\f1e7"; +@fa-var-smile-o: "\f118"; +@fa-var-snapchat: "\f2ab"; +@fa-var-snapchat-ghost: "\f2ac"; +@fa-var-snapchat-square: "\f2ad"; +@fa-var-snowflake-o: "\f2dc"; +@fa-var-soccer-ball-o: "\f1e3"; +@fa-var-sort: "\f0dc"; +@fa-var-sort-alpha-asc: "\f15d"; +@fa-var-sort-alpha-desc: "\f15e"; +@fa-var-sort-amount-asc: "\f160"; +@fa-var-sort-amount-desc: "\f161"; +@fa-var-sort-asc: "\f0de"; +@fa-var-sort-desc: "\f0dd"; +@fa-var-sort-down: "\f0dd"; +@fa-var-sort-numeric-asc: "\f162"; +@fa-var-sort-numeric-desc: "\f163"; +@fa-var-sort-up: "\f0de"; +@fa-var-soundcloud: "\f1be"; +@fa-var-space-shuttle: "\f197"; +@fa-var-spinner: "\f110"; +@fa-var-spoon: "\f1b1"; +@fa-var-spotify: "\f1bc"; +@fa-var-square: "\f0c8"; +@fa-var-square-o: "\f096"; +@fa-var-stack-exchange: "\f18d"; +@fa-var-stack-overflow: "\f16c"; +@fa-var-star: "\f005"; +@fa-var-star-half: "\f089"; +@fa-var-star-half-empty: "\f123"; +@fa-var-star-half-full: "\f123"; +@fa-var-star-half-o: "\f123"; +@fa-var-star-o: "\f006"; +@fa-var-steam: "\f1b6"; +@fa-var-steam-square: "\f1b7"; +@fa-var-step-backward: "\f048"; +@fa-var-step-forward: "\f051"; +@fa-var-stethoscope: "\f0f1"; +@fa-var-sticky-note: "\f249"; +@fa-var-sticky-note-o: "\f24a"; +@fa-var-stop: "\f04d"; +@fa-var-stop-circle: "\f28d"; +@fa-var-stop-circle-o: "\f28e"; +@fa-var-street-view: "\f21d"; +@fa-var-strikethrough: "\f0cc"; +@fa-var-stumbleupon: "\f1a4"; +@fa-var-stumbleupon-circle: "\f1a3"; +@fa-var-subscript: "\f12c"; +@fa-var-subway: "\f239"; +@fa-var-suitcase: "\f0f2"; +@fa-var-sun-o: "\f185"; +@fa-var-superpowers: "\f2dd"; +@fa-var-superscript: "\f12b"; +@fa-var-support: "\f1cd"; +@fa-var-table: "\f0ce"; +@fa-var-tablet: "\f10a"; +@fa-var-tachometer: "\f0e4"; +@fa-var-tag: "\f02b"; +@fa-var-tags: "\f02c"; +@fa-var-tasks: "\f0ae"; +@fa-var-taxi: "\f1ba"; +@fa-var-telegram: "\f2c6"; +@fa-var-television: "\f26c"; +@fa-var-tencent-weibo: "\f1d5"; +@fa-var-terminal: "\f120"; +@fa-var-text-height: "\f034"; +@fa-var-text-width: "\f035"; +@fa-var-th: "\f00a"; +@fa-var-th-large: "\f009"; +@fa-var-th-list: "\f00b"; +@fa-var-themeisle: "\f2b2"; +@fa-var-thermometer: "\f2c7"; +@fa-var-thermometer-0: "\f2cb"; +@fa-var-thermometer-1: "\f2ca"; +@fa-var-thermometer-2: "\f2c9"; +@fa-var-thermometer-3: "\f2c8"; +@fa-var-thermometer-4: "\f2c7"; +@fa-var-thermometer-empty: "\f2cb"; +@fa-var-thermometer-full: "\f2c7"; +@fa-var-thermometer-half: "\f2c9"; +@fa-var-thermometer-quarter: "\f2ca"; +@fa-var-thermometer-three-quarters: "\f2c8"; +@fa-var-thumb-tack: "\f08d"; +@fa-var-thumbs-down: "\f165"; +@fa-var-thumbs-o-down: "\f088"; +@fa-var-thumbs-o-up: "\f087"; +@fa-var-thumbs-up: "\f164"; +@fa-var-ticket: "\f145"; +@fa-var-times: "\f00d"; +@fa-var-times-circle: "\f057"; +@fa-var-times-circle-o: "\f05c"; +@fa-var-times-rectangle: "\f2d3"; +@fa-var-times-rectangle-o: "\f2d4"; +@fa-var-tint: "\f043"; +@fa-var-toggle-down: "\f150"; +@fa-var-toggle-left: "\f191"; +@fa-var-toggle-off: "\f204"; +@fa-var-toggle-on: "\f205"; +@fa-var-toggle-right: "\f152"; +@fa-var-toggle-up: "\f151"; +@fa-var-trademark: "\f25c"; +@fa-var-train: "\f238"; +@fa-var-transgender: "\f224"; +@fa-var-transgender-alt: "\f225"; +@fa-var-trash: "\f1f8"; +@fa-var-trash-o: "\f014"; +@fa-var-tree: "\f1bb"; +@fa-var-trello: "\f181"; +@fa-var-tripadvisor: "\f262"; +@fa-var-trophy: "\f091"; +@fa-var-truck: "\f0d1"; +@fa-var-try: "\f195"; +@fa-var-tty: "\f1e4"; +@fa-var-tumblr: "\f173"; +@fa-var-tumblr-square: "\f174"; +@fa-var-turkish-lira: "\f195"; +@fa-var-tv: "\f26c"; +@fa-var-twitch: "\f1e8"; +@fa-var-twitter: "\f099"; +@fa-var-twitter-square: "\f081"; +@fa-var-umbrella: "\f0e9"; +@fa-var-underline: "\f0cd"; +@fa-var-undo: "\f0e2"; +@fa-var-universal-access: "\f29a"; +@fa-var-university: "\f19c"; +@fa-var-unlink: "\f127"; +@fa-var-unlock: "\f09c"; +@fa-var-unlock-alt: "\f13e"; +@fa-var-unsorted: "\f0dc"; +@fa-var-upload: "\f093"; +@fa-var-usb: "\f287"; +@fa-var-usd: "\f155"; +@fa-var-user: "\f007"; +@fa-var-user-circle: "\f2bd"; +@fa-var-user-circle-o: "\f2be"; +@fa-var-user-md: "\f0f0"; +@fa-var-user-o: "\f2c0"; +@fa-var-user-plus: "\f234"; +@fa-var-user-secret: "\f21b"; +@fa-var-user-times: "\f235"; +@fa-var-users: "\f0c0"; +@fa-var-vcard: "\f2bb"; +@fa-var-vcard-o: "\f2bc"; +@fa-var-venus: "\f221"; +@fa-var-venus-double: "\f226"; +@fa-var-venus-mars: "\f228"; +@fa-var-viacoin: "\f237"; +@fa-var-viadeo: "\f2a9"; +@fa-var-viadeo-square: "\f2aa"; +@fa-var-video-camera: "\f03d"; +@fa-var-vimeo: "\f27d"; +@fa-var-vimeo-square: "\f194"; +@fa-var-vine: "\f1ca"; +@fa-var-vk: "\f189"; +@fa-var-volume-control-phone: "\f2a0"; +@fa-var-volume-down: "\f027"; +@fa-var-volume-off: "\f026"; +@fa-var-volume-up: "\f028"; +@fa-var-warning: "\f071"; +@fa-var-wechat: "\f1d7"; +@fa-var-weibo: "\f18a"; +@fa-var-weixin: "\f1d7"; +@fa-var-whatsapp: "\f232"; +@fa-var-wheelchair: "\f193"; +@fa-var-wheelchair-alt: "\f29b"; +@fa-var-wifi: "\f1eb"; +@fa-var-wikipedia-w: "\f266"; +@fa-var-window-close: "\f2d3"; +@fa-var-window-close-o: "\f2d4"; +@fa-var-window-maximize: "\f2d0"; +@fa-var-window-minimize: "\f2d1"; +@fa-var-window-restore: "\f2d2"; +@fa-var-windows: "\f17a"; +@fa-var-won: "\f159"; +@fa-var-wordpress: "\f19a"; +@fa-var-wpbeginner: "\f297"; +@fa-var-wpexplorer: "\f2de"; +@fa-var-wpforms: "\f298"; +@fa-var-wrench: "\f0ad"; +@fa-var-xing: "\f168"; +@fa-var-xing-square: "\f169"; +@fa-var-y-combinator: "\f23b"; +@fa-var-y-combinator-square: "\f1d4"; +@fa-var-yahoo: "\f19e"; +@fa-var-yc: "\f23b"; +@fa-var-yc-square: "\f1d4"; +@fa-var-yelp: "\f1e9"; +@fa-var-yen: "\f157"; +@fa-var-yoast: "\f2b1"; +@fa-var-youtube: "\f167"; +@fa-var-youtube-play: "\f16a"; +@fa-var-youtube-square: "\f166"; + diff --git a/lib/font-awesome-4.7.0/scss/_animated.scss b/lib/font-awesome-4.7.0/scss/_animated.scss new file mode 100755 index 0000000..8a020db --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_animated.scss @@ -0,0 +1,34 @@ +// Spinning Icons +// -------------------------- + +.#{$fa-css-prefix}-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.#{$fa-css-prefix}-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/lib/font-awesome-4.7.0/scss/_bordered-pulled.scss b/lib/font-awesome-4.7.0/scss/_bordered-pulled.scss new file mode 100755 index 0000000..d4b85a0 --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_bordered-pulled.scss @@ -0,0 +1,25 @@ +// Bordered & Pulled +// ------------------------- + +.#{$fa-css-prefix}-border { + padding: .2em .25em .15em; + border: solid .08em $fa-border-color; + border-radius: .1em; +} + +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ +.pull-right { float: right; } +.pull-left { float: left; } + +.#{$fa-css-prefix} { + &.pull-left { margin-right: .3em; } + &.pull-right { margin-left: .3em; } +} diff --git a/lib/font-awesome-4.7.0/scss/_core.scss b/lib/font-awesome-4.7.0/scss/_core.scss new file mode 100755 index 0000000..7425ef8 --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_core.scss @@ -0,0 +1,12 @@ +// Base Class Definition +// ------------------------- + +.#{$fa-css-prefix} { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} diff --git a/lib/font-awesome-4.7.0/scss/_fixed-width.scss b/lib/font-awesome-4.7.0/scss/_fixed-width.scss new file mode 100755 index 0000000..b221c98 --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_fixed-width.scss @@ -0,0 +1,6 @@ +// Fixed Width Icons +// ------------------------- +.#{$fa-css-prefix}-fw { + width: (18em / 14); + text-align: center; +} diff --git a/lib/font-awesome-4.7.0/scss/_icons.scss b/lib/font-awesome-4.7.0/scss/_icons.scss new file mode 100755 index 0000000..e63e702 --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_icons.scss @@ -0,0 +1,789 @@ +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ + +.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } +.#{$fa-css-prefix}-music:before { content: $fa-var-music; } +.#{$fa-css-prefix}-search:before { content: $fa-var-search; } +.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } +.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } +.#{$fa-css-prefix}-star:before { content: $fa-var-star; } +.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } +.#{$fa-css-prefix}-user:before { content: $fa-var-user; } +.#{$fa-css-prefix}-film:before { content: $fa-var-film; } +.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } +.#{$fa-css-prefix}-th:before { content: $fa-var-th; } +.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } +.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-remove:before, +.#{$fa-css-prefix}-close:before, +.#{$fa-css-prefix}-times:before { content: $fa-var-times; } +.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } +.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } +.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } +.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-gear:before, +.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } +.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } +.#{$fa-css-prefix}-home:before { content: $fa-var-home; } +.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } +.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } +.#{$fa-css-prefix}-road:before { content: $fa-var-road; } +.#{$fa-css-prefix}-download:before { content: $fa-var-download; } +.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } +.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } +.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } +.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-rotate-right:before, +.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } +.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } +.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } +.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } +.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } +.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } +.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } +.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } +.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } +.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } +.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } +.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } +.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } +.#{$fa-css-prefix}-book:before { content: $fa-var-book; } +.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } +.#{$fa-css-prefix}-print:before { content: $fa-var-print; } +.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } +.#{$fa-css-prefix}-font:before { content: $fa-var-font; } +.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } +.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } +.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } +.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } +.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } +.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } +.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } +.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } +.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-dedent:before, +.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } +.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } +.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-photo:before, +.#{$fa-css-prefix}-image:before, +.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } +.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } +.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } +.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } +.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-edit:before, +.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } +.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } +.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } +.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } +.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } +.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } +.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } +.#{$fa-css-prefix}-play:before { content: $fa-var-play; } +.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } +.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } +.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } +.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } +.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } +.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } +.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } +.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } +.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } +.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } +.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } +.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } +.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } +.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } +.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } +.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } +.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } +.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } +.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } +.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } +.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } +.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-mail-forward:before, +.#{$fa-css-prefix}-share:before { content: $fa-var-share; } +.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } +.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } +.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } +.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } +.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } +.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } +.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } +.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } +.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } +.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } +.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-warning:before, +.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } +.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } +.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } +.#{$fa-css-prefix}-random:before { content: $fa-var-random; } +.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } +.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } +.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } +.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } +.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } +.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } +.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } +.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } +.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } +.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-bar-chart-o:before, +.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } +.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } +.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } +.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } +.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-gears:before, +.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } +.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } +.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } +.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } +.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } +.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } +.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } +.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } +.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } +.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } +.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } +.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } +.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } +.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } +.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } +.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } +.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } +.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } +.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } +.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-facebook-f:before, +.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } +.#{$fa-css-prefix}-github:before { content: $fa-var-github; } +.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } +.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, +.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } +.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } +.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } +.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } +.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } +.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } +.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } +.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } +.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } +.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } +.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } +.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } +.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } +.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } +.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } +.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } +.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } +.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } +.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-group:before, +.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-chain:before, +.#{$fa-css-prefix}-link:before { content: $fa-var-link; } +.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } +.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-cut:before, +.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-copy:before, +.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } +.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-save:before, +.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } +.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-navicon:before, +.#{$fa-css-prefix}-reorder:before, +.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } +.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } +.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } +.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } +.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } +.#{$fa-css-prefix}-table:before { content: $fa-var-table; } +.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } +.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } +.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } +.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } +.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } +.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } +.#{$fa-css-prefix}-money:before { content: $fa-var-money; } +.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } +.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } +.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } +.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } +.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-unsorted:before, +.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort-down:before, +.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-sort-up:before, +.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } +.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } +.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-rotate-left:before, +.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-legal:before, +.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-dashboard:before, +.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } +.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } +.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-flash:before, +.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } +.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } +.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-paste:before, +.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } +.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } +.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } +.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } +.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } +.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } +.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } +.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } +.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } +.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } +.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } +.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } +.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } +.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } +.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } +.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } +.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } +.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } +.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } +.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } +.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } +.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } +.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } +.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } +.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } +.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } +.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } +.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } +.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } +.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } +.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-mobile-phone:before, +.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } +.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } +.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } +.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } +.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } +.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mail-reply:before, +.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } +.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } +.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } +.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } +.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } +.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } +.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } +.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } +.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } +.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } +.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } +.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } +.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-mail-reply-all:before, +.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-star-half-empty:before, +.#{$fa-css-prefix}-star-half-full:before, +.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } +.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } +.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } +.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-unlink:before, +.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } +.#{$fa-css-prefix}-question:before { content: $fa-var-question; } +.#{$fa-css-prefix}-info:before { content: $fa-var-info; } +.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } +.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } +.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } +.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } +.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } +.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } +.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } +.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } +.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } +.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } +.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } +.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } +.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } +.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } +.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } +.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } +.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } +.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } +.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } +.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } +.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } +.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } +.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } +.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } +.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } +.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } +.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } +.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } +.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } +.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } +.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } +.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } +.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } +.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } +.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-toggle-down:before, +.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-toggle-up:before, +.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-toggle-right:before, +.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-euro:before, +.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } +.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-dollar:before, +.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-rupee:before, +.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-cny:before, +.#{$fa-css-prefix}-rmb:before, +.#{$fa-css-prefix}-yen:before, +.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-ruble:before, +.#{$fa-css-prefix}-rouble:before, +.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-won:before, +.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-bitcoin:before, +.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } +.#{$fa-css-prefix}-file:before { content: $fa-var-file; } +.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } +.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } +.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } +.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } +.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } +.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } +.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } +.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } +.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } +.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } +.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } +.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } +.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } +.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } +.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } +.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } +.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } +.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } +.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } +.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } +.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } +.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } +.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } +.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } +.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } +.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } +.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } +.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } +.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } +.#{$fa-css-prefix}-android:before { content: $fa-var-android; } +.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } +.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } +.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } +.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } +.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } +.#{$fa-css-prefix}-female:before { content: $fa-var-female; } +.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-gittip:before, +.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } +.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } +.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } +.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } +.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } +.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } +.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } +.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } +.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } +.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } +.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } +.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-toggle-left:before, +.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } +.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } +.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } +.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-turkish-lira:before, +.#{$fa-css-prefix}-try:before { content: $fa-var-try; } +.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } +.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } +.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } +.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } +.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } +.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } +.#{$fa-css-prefix}-institution:before, +.#{$fa-css-prefix}-bank:before, +.#{$fa-css-prefix}-university:before { content: $fa-var-university; } +.#{$fa-css-prefix}-mortar-board:before, +.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } +.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } +.#{$fa-css-prefix}-google:before { content: $fa-var-google; } +.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } +.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } +.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } +.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } +.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } +.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } +.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } +.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } +.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } +.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } +.#{$fa-css-prefix}-language:before { content: $fa-var-language; } +.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } +.#{$fa-css-prefix}-building:before { content: $fa-var-building; } +.#{$fa-css-prefix}-child:before { content: $fa-var-child; } +.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } +.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } +.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } +.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } +.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } +.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } +.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } +.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } +.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } +.#{$fa-css-prefix}-automobile:before, +.#{$fa-css-prefix}-car:before { content: $fa-var-car; } +.#{$fa-css-prefix}-cab:before, +.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } +.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } +.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } +.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } +.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } +.#{$fa-css-prefix}-database:before { content: $fa-var-database; } +.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } +.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } +.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } +.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } +.#{$fa-css-prefix}-file-photo-o:before, +.#{$fa-css-prefix}-file-picture-o:before, +.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } +.#{$fa-css-prefix}-file-zip-o:before, +.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } +.#{$fa-css-prefix}-file-sound-o:before, +.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } +.#{$fa-css-prefix}-file-movie-o:before, +.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } +.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } +.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } +.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } +.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } +.#{$fa-css-prefix}-life-bouy:before, +.#{$fa-css-prefix}-life-buoy:before, +.#{$fa-css-prefix}-life-saver:before, +.#{$fa-css-prefix}-support:before, +.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } +.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } +.#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-resistance:before, +.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } +.#{$fa-css-prefix}-ge:before, +.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } +.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } +.#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, +.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } +.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } +.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } +.#{$fa-css-prefix}-wechat:before, +.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } +.#{$fa-css-prefix}-send:before, +.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } +.#{$fa-css-prefix}-send-o:before, +.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } +.#{$fa-css-prefix}-history:before { content: $fa-var-history; } +.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } +.#{$fa-css-prefix}-header:before { content: $fa-var-header; } +.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } +.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } +.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } +.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } +.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-soccer-ball-o:before, +.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } +.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } +.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } +.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } +.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } +.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } +.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } +.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } +.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } +.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } +.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } +.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } +.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } +.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } +.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } +.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } +.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } +.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } +.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } +.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } +.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } +.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } +.#{$fa-css-prefix}-at:before { content: $fa-var-at; } +.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } +.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } +.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } +.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } +.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } +.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } +.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } +.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } +.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } +.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } +.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } +.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } +.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } +.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } +.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-shekel:before, +.#{$fa-css-prefix}-sheqel:before, +.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } +.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } +.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } +.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } +.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } +.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } +.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } +.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } +.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } +.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } +.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } +.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } +.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } +.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } +.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } +.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } +.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } +.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } +.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } +.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } +.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } +.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, +.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } +.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } +.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } +.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } +.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } +.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } +.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } +.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } +.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } +.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } +.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } +.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } +.#{$fa-css-prefix}-server:before { content: $fa-var-server; } +.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } +.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-hotel:before, +.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } +.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } +.#{$fa-css-prefix}-train:before { content: $fa-var-train; } +.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } +.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } +.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } +.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } +.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } +.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } +.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } +.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } +.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } +.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } +.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } +.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } +.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } +.#{$fa-css-prefix}-asl-interpreting:before, +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } +.#{$fa-css-prefix}-deafness:before, +.#{$fa-css-prefix}-hard-of-hearing:before, +.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } +.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } +.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } +.#{$fa-css-prefix}-signing:before, +.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } +.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } +.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } +.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } +.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } +.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } +.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } +.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } +.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } +.#{$fa-css-prefix}-google-plus-circle:before, +.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } +.#{$fa-css-prefix}-fa:before, +.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } +.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } +.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } +.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } +.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } +.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } +.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } +.#{$fa-css-prefix}-vcard:before, +.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } +.#{$fa-css-prefix}-vcard-o:before, +.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } +.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } +.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } +.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } +.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } +.#{$fa-css-prefix}-drivers-license:before, +.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } +.#{$fa-css-prefix}-drivers-license-o:before, +.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } +.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } +.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } +.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } +.#{$fa-css-prefix}-thermometer-4:before, +.#{$fa-css-prefix}-thermometer:before, +.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } +.#{$fa-css-prefix}-thermometer-3:before, +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } +.#{$fa-css-prefix}-thermometer-2:before, +.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } +.#{$fa-css-prefix}-thermometer-1:before, +.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } +.#{$fa-css-prefix}-thermometer-0:before, +.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } +.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } +.#{$fa-css-prefix}-bathtub:before, +.#{$fa-css-prefix}-s15:before, +.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } +.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } +.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } +.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } +.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } +.#{$fa-css-prefix}-times-rectangle:before, +.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } +.#{$fa-css-prefix}-times-rectangle-o:before, +.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } +.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } +.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } +.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } +.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } +.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } +.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } +.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } +.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } +.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } +.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } +.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } diff --git a/lib/font-awesome-4.7.0/scss/_larger.scss b/lib/font-awesome-4.7.0/scss/_larger.scss new file mode 100755 index 0000000..41e9a81 --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_larger.scss @@ -0,0 +1,13 @@ +// Icon Sizes +// ------------------------- + +/* makes the font 33% larger relative to the icon container */ +.#{$fa-css-prefix}-lg { + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { font-size: 2em; } +.#{$fa-css-prefix}-3x { font-size: 3em; } +.#{$fa-css-prefix}-4x { font-size: 4em; } +.#{$fa-css-prefix}-5x { font-size: 5em; } diff --git a/lib/font-awesome-4.7.0/scss/_list.scss b/lib/font-awesome-4.7.0/scss/_list.scss new file mode 100755 index 0000000..7d1e4d5 --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_list.scss @@ -0,0 +1,19 @@ +// List Icons +// ------------------------- + +.#{$fa-css-prefix}-ul { + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { position: relative; } +} +.#{$fa-css-prefix}-li { + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } +} diff --git a/lib/font-awesome-4.7.0/scss/_mixins.scss b/lib/font-awesome-4.7.0/scss/_mixins.scss new file mode 100755 index 0000000..c3bbd57 --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_mixins.scss @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/lib/font-awesome-4.7.0/scss/_path.scss b/lib/font-awesome-4.7.0/scss/_path.scss new file mode 100755 index 0000000..bb457c2 --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_path.scss @@ -0,0 +1,15 @@ +/* FONT PATH + * -------------------------- */ + +@font-face { + font-family: 'FontAwesome'; + src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); + src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), + url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), + url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), + url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), + url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); +// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; +} diff --git a/lib/font-awesome-4.7.0/scss/_rotated-flipped.scss b/lib/font-awesome-4.7.0/scss/_rotated-flipped.scss new file mode 100755 index 0000000..a3558fd --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_rotated-flipped.scss @@ -0,0 +1,20 @@ +// Rotated & Flipped Icons +// ------------------------- + +.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } +.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } +.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } + +.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } +.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } + +// Hook for IE8-9 +// ------------------------- + +:root .#{$fa-css-prefix}-rotate-90, +:root .#{$fa-css-prefix}-rotate-180, +:root .#{$fa-css-prefix}-rotate-270, +:root .#{$fa-css-prefix}-flip-horizontal, +:root .#{$fa-css-prefix}-flip-vertical { + filter: none; +} diff --git a/lib/font-awesome-4.7.0/scss/_screen-reader.scss b/lib/font-awesome-4.7.0/scss/_screen-reader.scss new file mode 100755 index 0000000..637426f --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only(); } +.sr-only-focusable { @include sr-only-focusable(); } diff --git a/lib/font-awesome-4.7.0/scss/_stacked.scss b/lib/font-awesome-4.7.0/scss/_stacked.scss new file mode 100755 index 0000000..aef7403 --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_stacked.scss @@ -0,0 +1,20 @@ +// Stacked Icons +// ------------------------- + +.#{$fa-css-prefix}-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { line-height: inherit; } +.#{$fa-css-prefix}-stack-2x { font-size: 2em; } +.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/lib/font-awesome-4.7.0/scss/_variables.scss b/lib/font-awesome-4.7.0/scss/_variables.scss new file mode 100755 index 0000000..498fc4a --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/_variables.scss @@ -0,0 +1,800 @@ +// Variables +// -------------------------- + +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 14px !default; +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-css-prefix: fa !default; +$fa-version: "4.7.0" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; + +$fa-var-500px: "\f26e"; +$fa-var-address-book: "\f2b9"; +$fa-var-address-book-o: "\f2ba"; +$fa-var-address-card: "\f2bb"; +$fa-var-address-card-o: "\f2bc"; +$fa-var-adjust: "\f042"; +$fa-var-adn: "\f170"; +$fa-var-align-center: "\f037"; +$fa-var-align-justify: "\f039"; +$fa-var-align-left: "\f036"; +$fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; +$fa-var-ambulance: "\f0f9"; +$fa-var-american-sign-language-interpreting: "\f2a3"; +$fa-var-anchor: "\f13d"; +$fa-var-android: "\f17b"; +$fa-var-angellist: "\f209"; +$fa-var-angle-double-down: "\f103"; +$fa-var-angle-double-left: "\f100"; +$fa-var-angle-double-right: "\f101"; +$fa-var-angle-double-up: "\f102"; +$fa-var-angle-down: "\f107"; +$fa-var-angle-left: "\f104"; +$fa-var-angle-right: "\f105"; +$fa-var-angle-up: "\f106"; +$fa-var-apple: "\f179"; +$fa-var-archive: "\f187"; +$fa-var-area-chart: "\f1fe"; +$fa-var-arrow-circle-down: "\f0ab"; +$fa-var-arrow-circle-left: "\f0a8"; +$fa-var-arrow-circle-o-down: "\f01a"; +$fa-var-arrow-circle-o-left: "\f190"; +$fa-var-arrow-circle-o-right: "\f18e"; +$fa-var-arrow-circle-o-up: "\f01b"; +$fa-var-arrow-circle-right: "\f0a9"; +$fa-var-arrow-circle-up: "\f0aa"; +$fa-var-arrow-down: "\f063"; +$fa-var-arrow-left: "\f060"; +$fa-var-arrow-right: "\f061"; +$fa-var-arrow-up: "\f062"; +$fa-var-arrows: "\f047"; +$fa-var-arrows-alt: "\f0b2"; +$fa-var-arrows-h: "\f07e"; +$fa-var-arrows-v: "\f07d"; +$fa-var-asl-interpreting: "\f2a3"; +$fa-var-assistive-listening-systems: "\f2a2"; +$fa-var-asterisk: "\f069"; +$fa-var-at: "\f1fa"; +$fa-var-audio-description: "\f29e"; +$fa-var-automobile: "\f1b9"; +$fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; +$fa-var-ban: "\f05e"; +$fa-var-bandcamp: "\f2d5"; +$fa-var-bank: "\f19c"; +$fa-var-bar-chart: "\f080"; +$fa-var-bar-chart-o: "\f080"; +$fa-var-barcode: "\f02a"; +$fa-var-bars: "\f0c9"; +$fa-var-bath: "\f2cd"; +$fa-var-bathtub: "\f2cd"; +$fa-var-battery: "\f240"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; +$fa-var-bed: "\f236"; +$fa-var-beer: "\f0fc"; +$fa-var-behance: "\f1b4"; +$fa-var-behance-square: "\f1b5"; +$fa-var-bell: "\f0f3"; +$fa-var-bell-o: "\f0a2"; +$fa-var-bell-slash: "\f1f6"; +$fa-var-bell-slash-o: "\f1f7"; +$fa-var-bicycle: "\f206"; +$fa-var-binoculars: "\f1e5"; +$fa-var-birthday-cake: "\f1fd"; +$fa-var-bitbucket: "\f171"; +$fa-var-bitbucket-square: "\f172"; +$fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-blind: "\f29d"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; +$fa-var-bold: "\f032"; +$fa-var-bolt: "\f0e7"; +$fa-var-bomb: "\f1e2"; +$fa-var-book: "\f02d"; +$fa-var-bookmark: "\f02e"; +$fa-var-bookmark-o: "\f097"; +$fa-var-braille: "\f2a1"; +$fa-var-briefcase: "\f0b1"; +$fa-var-btc: "\f15a"; +$fa-var-bug: "\f188"; +$fa-var-building: "\f1ad"; +$fa-var-building-o: "\f0f7"; +$fa-var-bullhorn: "\f0a1"; +$fa-var-bullseye: "\f140"; +$fa-var-bus: "\f207"; +$fa-var-buysellads: "\f20d"; +$fa-var-cab: "\f1ba"; +$fa-var-calculator: "\f1ec"; +$fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; +$fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; +$fa-var-camera: "\f030"; +$fa-var-camera-retro: "\f083"; +$fa-var-car: "\f1b9"; +$fa-var-caret-down: "\f0d7"; +$fa-var-caret-left: "\f0d9"; +$fa-var-caret-right: "\f0da"; +$fa-var-caret-square-o-down: "\f150"; +$fa-var-caret-square-o-left: "\f191"; +$fa-var-caret-square-o-right: "\f152"; +$fa-var-caret-square-o-up: "\f151"; +$fa-var-caret-up: "\f0d8"; +$fa-var-cart-arrow-down: "\f218"; +$fa-var-cart-plus: "\f217"; +$fa-var-cc: "\f20a"; +$fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; +$fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; +$fa-var-cc-mastercard: "\f1f1"; +$fa-var-cc-paypal: "\f1f4"; +$fa-var-cc-stripe: "\f1f5"; +$fa-var-cc-visa: "\f1f0"; +$fa-var-certificate: "\f0a3"; +$fa-var-chain: "\f0c1"; +$fa-var-chain-broken: "\f127"; +$fa-var-check: "\f00c"; +$fa-var-check-circle: "\f058"; +$fa-var-check-circle-o: "\f05d"; +$fa-var-check-square: "\f14a"; +$fa-var-check-square-o: "\f046"; +$fa-var-chevron-circle-down: "\f13a"; +$fa-var-chevron-circle-left: "\f137"; +$fa-var-chevron-circle-right: "\f138"; +$fa-var-chevron-circle-up: "\f139"; +$fa-var-chevron-down: "\f078"; +$fa-var-chevron-left: "\f053"; +$fa-var-chevron-right: "\f054"; +$fa-var-chevron-up: "\f077"; +$fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; +$fa-var-circle: "\f111"; +$fa-var-circle-o: "\f10c"; +$fa-var-circle-o-notch: "\f1ce"; +$fa-var-circle-thin: "\f1db"; +$fa-var-clipboard: "\f0ea"; +$fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; +$fa-var-close: "\f00d"; +$fa-var-cloud: "\f0c2"; +$fa-var-cloud-download: "\f0ed"; +$fa-var-cloud-upload: "\f0ee"; +$fa-var-cny: "\f157"; +$fa-var-code: "\f121"; +$fa-var-code-fork: "\f126"; +$fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; +$fa-var-coffee: "\f0f4"; +$fa-var-cog: "\f013"; +$fa-var-cogs: "\f085"; +$fa-var-columns: "\f0db"; +$fa-var-comment: "\f075"; +$fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; +$fa-var-comments: "\f086"; +$fa-var-comments-o: "\f0e6"; +$fa-var-compass: "\f14e"; +$fa-var-compress: "\f066"; +$fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; +$fa-var-copy: "\f0c5"; +$fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; +$fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; +$fa-var-crop: "\f125"; +$fa-var-crosshairs: "\f05b"; +$fa-var-css3: "\f13c"; +$fa-var-cube: "\f1b2"; +$fa-var-cubes: "\f1b3"; +$fa-var-cut: "\f0c4"; +$fa-var-cutlery: "\f0f5"; +$fa-var-dashboard: "\f0e4"; +$fa-var-dashcube: "\f210"; +$fa-var-database: "\f1c0"; +$fa-var-deaf: "\f2a4"; +$fa-var-deafness: "\f2a4"; +$fa-var-dedent: "\f03b"; +$fa-var-delicious: "\f1a5"; +$fa-var-desktop: "\f108"; +$fa-var-deviantart: "\f1bd"; +$fa-var-diamond: "\f219"; +$fa-var-digg: "\f1a6"; +$fa-var-dollar: "\f155"; +$fa-var-dot-circle-o: "\f192"; +$fa-var-download: "\f019"; +$fa-var-dribbble: "\f17d"; +$fa-var-drivers-license: "\f2c2"; +$fa-var-drivers-license-o: "\f2c3"; +$fa-var-dropbox: "\f16b"; +$fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; +$fa-var-edit: "\f044"; +$fa-var-eercast: "\f2da"; +$fa-var-eject: "\f052"; +$fa-var-ellipsis-h: "\f141"; +$fa-var-ellipsis-v: "\f142"; +$fa-var-empire: "\f1d1"; +$fa-var-envelope: "\f0e0"; +$fa-var-envelope-o: "\f003"; +$fa-var-envelope-open: "\f2b6"; +$fa-var-envelope-open-o: "\f2b7"; +$fa-var-envelope-square: "\f199"; +$fa-var-envira: "\f299"; +$fa-var-eraser: "\f12d"; +$fa-var-etsy: "\f2d7"; +$fa-var-eur: "\f153"; +$fa-var-euro: "\f153"; +$fa-var-exchange: "\f0ec"; +$fa-var-exclamation: "\f12a"; +$fa-var-exclamation-circle: "\f06a"; +$fa-var-exclamation-triangle: "\f071"; +$fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; +$fa-var-external-link: "\f08e"; +$fa-var-external-link-square: "\f14c"; +$fa-var-eye: "\f06e"; +$fa-var-eye-slash: "\f070"; +$fa-var-eyedropper: "\f1fb"; +$fa-var-fa: "\f2b4"; +$fa-var-facebook: "\f09a"; +$fa-var-facebook-f: "\f09a"; +$fa-var-facebook-official: "\f230"; +$fa-var-facebook-square: "\f082"; +$fa-var-fast-backward: "\f049"; +$fa-var-fast-forward: "\f050"; +$fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; +$fa-var-female: "\f182"; +$fa-var-fighter-jet: "\f0fb"; +$fa-var-file: "\f15b"; +$fa-var-file-archive-o: "\f1c6"; +$fa-var-file-audio-o: "\f1c7"; +$fa-var-file-code-o: "\f1c9"; +$fa-var-file-excel-o: "\f1c3"; +$fa-var-file-image-o: "\f1c5"; +$fa-var-file-movie-o: "\f1c8"; +$fa-var-file-o: "\f016"; +$fa-var-file-pdf-o: "\f1c1"; +$fa-var-file-photo-o: "\f1c5"; +$fa-var-file-picture-o: "\f1c5"; +$fa-var-file-powerpoint-o: "\f1c4"; +$fa-var-file-sound-o: "\f1c7"; +$fa-var-file-text: "\f15c"; +$fa-var-file-text-o: "\f0f6"; +$fa-var-file-video-o: "\f1c8"; +$fa-var-file-word-o: "\f1c2"; +$fa-var-file-zip-o: "\f1c6"; +$fa-var-files-o: "\f0c5"; +$fa-var-film: "\f008"; +$fa-var-filter: "\f0b0"; +$fa-var-fire: "\f06d"; +$fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-first-order: "\f2b0"; +$fa-var-flag: "\f024"; +$fa-var-flag-checkered: "\f11e"; +$fa-var-flag-o: "\f11d"; +$fa-var-flash: "\f0e7"; +$fa-var-flask: "\f0c3"; +$fa-var-flickr: "\f16e"; +$fa-var-floppy-o: "\f0c7"; +$fa-var-folder: "\f07b"; +$fa-var-folder-o: "\f114"; +$fa-var-folder-open: "\f07c"; +$fa-var-folder-open-o: "\f115"; +$fa-var-font: "\f031"; +$fa-var-font-awesome: "\f2b4"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; +$fa-var-forumbee: "\f211"; +$fa-var-forward: "\f04e"; +$fa-var-foursquare: "\f180"; +$fa-var-free-code-camp: "\f2c5"; +$fa-var-frown-o: "\f119"; +$fa-var-futbol-o: "\f1e3"; +$fa-var-gamepad: "\f11b"; +$fa-var-gavel: "\f0e3"; +$fa-var-gbp: "\f154"; +$fa-var-ge: "\f1d1"; +$fa-var-gear: "\f013"; +$fa-var-gears: "\f085"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; +$fa-var-gift: "\f06b"; +$fa-var-git: "\f1d3"; +$fa-var-git-square: "\f1d2"; +$fa-var-github: "\f09b"; +$fa-var-github-alt: "\f113"; +$fa-var-github-square: "\f092"; +$fa-var-gitlab: "\f296"; +$fa-var-gittip: "\f184"; +$fa-var-glass: "\f000"; +$fa-var-glide: "\f2a5"; +$fa-var-glide-g: "\f2a6"; +$fa-var-globe: "\f0ac"; +$fa-var-google: "\f1a0"; +$fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-circle: "\f2b3"; +$fa-var-google-plus-official: "\f2b3"; +$fa-var-google-plus-square: "\f0d4"; +$fa-var-google-wallet: "\f1ee"; +$fa-var-graduation-cap: "\f19d"; +$fa-var-gratipay: "\f184"; +$fa-var-grav: "\f2d6"; +$fa-var-group: "\f0c0"; +$fa-var-h-square: "\f0fd"; +$fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; +$fa-var-hand-o-down: "\f0a7"; +$fa-var-hand-o-left: "\f0a5"; +$fa-var-hand-o-right: "\f0a4"; +$fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-handshake-o: "\f2b5"; +$fa-var-hard-of-hearing: "\f2a4"; +$fa-var-hashtag: "\f292"; +$fa-var-hdd-o: "\f0a0"; +$fa-var-header: "\f1dc"; +$fa-var-headphones: "\f025"; +$fa-var-heart: "\f004"; +$fa-var-heart-o: "\f08a"; +$fa-var-heartbeat: "\f21e"; +$fa-var-history: "\f1da"; +$fa-var-home: "\f015"; +$fa-var-hospital-o: "\f0f8"; +$fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; +$fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-id-badge: "\f2c1"; +$fa-var-id-card: "\f2c2"; +$fa-var-id-card-o: "\f2c3"; +$fa-var-ils: "\f20b"; +$fa-var-image: "\f03e"; +$fa-var-imdb: "\f2d8"; +$fa-var-inbox: "\f01c"; +$fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; +$fa-var-info: "\f129"; +$fa-var-info-circle: "\f05a"; +$fa-var-inr: "\f156"; +$fa-var-instagram: "\f16d"; +$fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; +$fa-var-ioxhost: "\f208"; +$fa-var-italic: "\f033"; +$fa-var-joomla: "\f1aa"; +$fa-var-jpy: "\f157"; +$fa-var-jsfiddle: "\f1cc"; +$fa-var-key: "\f084"; +$fa-var-keyboard-o: "\f11c"; +$fa-var-krw: "\f159"; +$fa-var-language: "\f1ab"; +$fa-var-laptop: "\f109"; +$fa-var-lastfm: "\f202"; +$fa-var-lastfm-square: "\f203"; +$fa-var-leaf: "\f06c"; +$fa-var-leanpub: "\f212"; +$fa-var-legal: "\f0e3"; +$fa-var-lemon-o: "\f094"; +$fa-var-level-down: "\f149"; +$fa-var-level-up: "\f148"; +$fa-var-life-bouy: "\f1cd"; +$fa-var-life-buoy: "\f1cd"; +$fa-var-life-ring: "\f1cd"; +$fa-var-life-saver: "\f1cd"; +$fa-var-lightbulb-o: "\f0eb"; +$fa-var-line-chart: "\f201"; +$fa-var-link: "\f0c1"; +$fa-var-linkedin: "\f0e1"; +$fa-var-linkedin-square: "\f08c"; +$fa-var-linode: "\f2b8"; +$fa-var-linux: "\f17c"; +$fa-var-list: "\f03a"; +$fa-var-list-alt: "\f022"; +$fa-var-list-ol: "\f0cb"; +$fa-var-list-ul: "\f0ca"; +$fa-var-location-arrow: "\f124"; +$fa-var-lock: "\f023"; +$fa-var-long-arrow-down: "\f175"; +$fa-var-long-arrow-left: "\f177"; +$fa-var-long-arrow-right: "\f178"; +$fa-var-long-arrow-up: "\f176"; +$fa-var-low-vision: "\f2a8"; +$fa-var-magic: "\f0d0"; +$fa-var-magnet: "\f076"; +$fa-var-mail-forward: "\f064"; +$fa-var-mail-reply: "\f112"; +$fa-var-mail-reply-all: "\f122"; +$fa-var-male: "\f183"; +$fa-var-map: "\f279"; +$fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; +$fa-var-mars: "\f222"; +$fa-var-mars-double: "\f227"; +$fa-var-mars-stroke: "\f229"; +$fa-var-mars-stroke-h: "\f22b"; +$fa-var-mars-stroke-v: "\f22a"; +$fa-var-maxcdn: "\f136"; +$fa-var-meanpath: "\f20c"; +$fa-var-medium: "\f23a"; +$fa-var-medkit: "\f0fa"; +$fa-var-meetup: "\f2e0"; +$fa-var-meh-o: "\f11a"; +$fa-var-mercury: "\f223"; +$fa-var-microchip: "\f2db"; +$fa-var-microphone: "\f130"; +$fa-var-microphone-slash: "\f131"; +$fa-var-minus: "\f068"; +$fa-var-minus-circle: "\f056"; +$fa-var-minus-square: "\f146"; +$fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; +$fa-var-mobile: "\f10b"; +$fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; +$fa-var-money: "\f0d6"; +$fa-var-moon-o: "\f186"; +$fa-var-mortar-board: "\f19d"; +$fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; +$fa-var-music: "\f001"; +$fa-var-navicon: "\f0c9"; +$fa-var-neuter: "\f22c"; +$fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; +$fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; +$fa-var-outdent: "\f03b"; +$fa-var-pagelines: "\f18c"; +$fa-var-paint-brush: "\f1fc"; +$fa-var-paper-plane: "\f1d8"; +$fa-var-paper-plane-o: "\f1d9"; +$fa-var-paperclip: "\f0c6"; +$fa-var-paragraph: "\f1dd"; +$fa-var-paste: "\f0ea"; +$fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; +$fa-var-paw: "\f1b0"; +$fa-var-paypal: "\f1ed"; +$fa-var-pencil: "\f040"; +$fa-var-pencil-square: "\f14b"; +$fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; +$fa-var-phone: "\f095"; +$fa-var-phone-square: "\f098"; +$fa-var-photo: "\f03e"; +$fa-var-picture-o: "\f03e"; +$fa-var-pie-chart: "\f200"; +$fa-var-pied-piper: "\f2ae"; +$fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pied-piper-pp: "\f1a7"; +$fa-var-pinterest: "\f0d2"; +$fa-var-pinterest-p: "\f231"; +$fa-var-pinterest-square: "\f0d3"; +$fa-var-plane: "\f072"; +$fa-var-play: "\f04b"; +$fa-var-play-circle: "\f144"; +$fa-var-play-circle-o: "\f01d"; +$fa-var-plug: "\f1e6"; +$fa-var-plus: "\f067"; +$fa-var-plus-circle: "\f055"; +$fa-var-plus-square: "\f0fe"; +$fa-var-plus-square-o: "\f196"; +$fa-var-podcast: "\f2ce"; +$fa-var-power-off: "\f011"; +$fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; +$fa-var-puzzle-piece: "\f12e"; +$fa-var-qq: "\f1d6"; +$fa-var-qrcode: "\f029"; +$fa-var-question: "\f128"; +$fa-var-question-circle: "\f059"; +$fa-var-question-circle-o: "\f29c"; +$fa-var-quora: "\f2c4"; +$fa-var-quote-left: "\f10d"; +$fa-var-quote-right: "\f10e"; +$fa-var-ra: "\f1d0"; +$fa-var-random: "\f074"; +$fa-var-ravelry: "\f2d9"; +$fa-var-rebel: "\f1d0"; +$fa-var-recycle: "\f1b8"; +$fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; +$fa-var-reddit-square: "\f1a2"; +$fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; +$fa-var-remove: "\f00d"; +$fa-var-renren: "\f18b"; +$fa-var-reorder: "\f0c9"; +$fa-var-repeat: "\f01e"; +$fa-var-reply: "\f112"; +$fa-var-reply-all: "\f122"; +$fa-var-resistance: "\f1d0"; +$fa-var-retweet: "\f079"; +$fa-var-rmb: "\f157"; +$fa-var-road: "\f018"; +$fa-var-rocket: "\f135"; +$fa-var-rotate-left: "\f0e2"; +$fa-var-rotate-right: "\f01e"; +$fa-var-rouble: "\f158"; +$fa-var-rss: "\f09e"; +$fa-var-rss-square: "\f143"; +$fa-var-rub: "\f158"; +$fa-var-ruble: "\f158"; +$fa-var-rupee: "\f156"; +$fa-var-s15: "\f2cd"; +$fa-var-safari: "\f267"; +$fa-var-save: "\f0c7"; +$fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; +$fa-var-search: "\f002"; +$fa-var-search-minus: "\f010"; +$fa-var-search-plus: "\f00e"; +$fa-var-sellsy: "\f213"; +$fa-var-send: "\f1d8"; +$fa-var-send-o: "\f1d9"; +$fa-var-server: "\f233"; +$fa-var-share: "\f064"; +$fa-var-share-alt: "\f1e0"; +$fa-var-share-alt-square: "\f1e1"; +$fa-var-share-square: "\f14d"; +$fa-var-share-square-o: "\f045"; +$fa-var-shekel: "\f20b"; +$fa-var-sheqel: "\f20b"; +$fa-var-shield: "\f132"; +$fa-var-ship: "\f21a"; +$fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; +$fa-var-shopping-cart: "\f07a"; +$fa-var-shower: "\f2cc"; +$fa-var-sign-in: "\f090"; +$fa-var-sign-language: "\f2a7"; +$fa-var-sign-out: "\f08b"; +$fa-var-signal: "\f012"; +$fa-var-signing: "\f2a7"; +$fa-var-simplybuilt: "\f215"; +$fa-var-sitemap: "\f0e8"; +$fa-var-skyatlas: "\f216"; +$fa-var-skype: "\f17e"; +$fa-var-slack: "\f198"; +$fa-var-sliders: "\f1de"; +$fa-var-slideshare: "\f1e7"; +$fa-var-smile-o: "\f118"; +$fa-var-snapchat: "\f2ab"; +$fa-var-snapchat-ghost: "\f2ac"; +$fa-var-snapchat-square: "\f2ad"; +$fa-var-snowflake-o: "\f2dc"; +$fa-var-soccer-ball-o: "\f1e3"; +$fa-var-sort: "\f0dc"; +$fa-var-sort-alpha-asc: "\f15d"; +$fa-var-sort-alpha-desc: "\f15e"; +$fa-var-sort-amount-asc: "\f160"; +$fa-var-sort-amount-desc: "\f161"; +$fa-var-sort-asc: "\f0de"; +$fa-var-sort-desc: "\f0dd"; +$fa-var-sort-down: "\f0dd"; +$fa-var-sort-numeric-asc: "\f162"; +$fa-var-sort-numeric-desc: "\f163"; +$fa-var-sort-up: "\f0de"; +$fa-var-soundcloud: "\f1be"; +$fa-var-space-shuttle: "\f197"; +$fa-var-spinner: "\f110"; +$fa-var-spoon: "\f1b1"; +$fa-var-spotify: "\f1bc"; +$fa-var-square: "\f0c8"; +$fa-var-square-o: "\f096"; +$fa-var-stack-exchange: "\f18d"; +$fa-var-stack-overflow: "\f16c"; +$fa-var-star: "\f005"; +$fa-var-star-half: "\f089"; +$fa-var-star-half-empty: "\f123"; +$fa-var-star-half-full: "\f123"; +$fa-var-star-half-o: "\f123"; +$fa-var-star-o: "\f006"; +$fa-var-steam: "\f1b6"; +$fa-var-steam-square: "\f1b7"; +$fa-var-step-backward: "\f048"; +$fa-var-step-forward: "\f051"; +$fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; +$fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; +$fa-var-street-view: "\f21d"; +$fa-var-strikethrough: "\f0cc"; +$fa-var-stumbleupon: "\f1a4"; +$fa-var-stumbleupon-circle: "\f1a3"; +$fa-var-subscript: "\f12c"; +$fa-var-subway: "\f239"; +$fa-var-suitcase: "\f0f2"; +$fa-var-sun-o: "\f185"; +$fa-var-superpowers: "\f2dd"; +$fa-var-superscript: "\f12b"; +$fa-var-support: "\f1cd"; +$fa-var-table: "\f0ce"; +$fa-var-tablet: "\f10a"; +$fa-var-tachometer: "\f0e4"; +$fa-var-tag: "\f02b"; +$fa-var-tags: "\f02c"; +$fa-var-tasks: "\f0ae"; +$fa-var-taxi: "\f1ba"; +$fa-var-telegram: "\f2c6"; +$fa-var-television: "\f26c"; +$fa-var-tencent-weibo: "\f1d5"; +$fa-var-terminal: "\f120"; +$fa-var-text-height: "\f034"; +$fa-var-text-width: "\f035"; +$fa-var-th: "\f00a"; +$fa-var-th-large: "\f009"; +$fa-var-th-list: "\f00b"; +$fa-var-themeisle: "\f2b2"; +$fa-var-thermometer: "\f2c7"; +$fa-var-thermometer-0: "\f2cb"; +$fa-var-thermometer-1: "\f2ca"; +$fa-var-thermometer-2: "\f2c9"; +$fa-var-thermometer-3: "\f2c8"; +$fa-var-thermometer-4: "\f2c7"; +$fa-var-thermometer-empty: "\f2cb"; +$fa-var-thermometer-full: "\f2c7"; +$fa-var-thermometer-half: "\f2c9"; +$fa-var-thermometer-quarter: "\f2ca"; +$fa-var-thermometer-three-quarters: "\f2c8"; +$fa-var-thumb-tack: "\f08d"; +$fa-var-thumbs-down: "\f165"; +$fa-var-thumbs-o-down: "\f088"; +$fa-var-thumbs-o-up: "\f087"; +$fa-var-thumbs-up: "\f164"; +$fa-var-ticket: "\f145"; +$fa-var-times: "\f00d"; +$fa-var-times-circle: "\f057"; +$fa-var-times-circle-o: "\f05c"; +$fa-var-times-rectangle: "\f2d3"; +$fa-var-times-rectangle-o: "\f2d4"; +$fa-var-tint: "\f043"; +$fa-var-toggle-down: "\f150"; +$fa-var-toggle-left: "\f191"; +$fa-var-toggle-off: "\f204"; +$fa-var-toggle-on: "\f205"; +$fa-var-toggle-right: "\f152"; +$fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; +$fa-var-train: "\f238"; +$fa-var-transgender: "\f224"; +$fa-var-transgender-alt: "\f225"; +$fa-var-trash: "\f1f8"; +$fa-var-trash-o: "\f014"; +$fa-var-tree: "\f1bb"; +$fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; +$fa-var-trophy: "\f091"; +$fa-var-truck: "\f0d1"; +$fa-var-try: "\f195"; +$fa-var-tty: "\f1e4"; +$fa-var-tumblr: "\f173"; +$fa-var-tumblr-square: "\f174"; +$fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; +$fa-var-twitch: "\f1e8"; +$fa-var-twitter: "\f099"; +$fa-var-twitter-square: "\f081"; +$fa-var-umbrella: "\f0e9"; +$fa-var-underline: "\f0cd"; +$fa-var-undo: "\f0e2"; +$fa-var-universal-access: "\f29a"; +$fa-var-university: "\f19c"; +$fa-var-unlink: "\f127"; +$fa-var-unlock: "\f09c"; +$fa-var-unlock-alt: "\f13e"; +$fa-var-unsorted: "\f0dc"; +$fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; +$fa-var-usd: "\f155"; +$fa-var-user: "\f007"; +$fa-var-user-circle: "\f2bd"; +$fa-var-user-circle-o: "\f2be"; +$fa-var-user-md: "\f0f0"; +$fa-var-user-o: "\f2c0"; +$fa-var-user-plus: "\f234"; +$fa-var-user-secret: "\f21b"; +$fa-var-user-times: "\f235"; +$fa-var-users: "\f0c0"; +$fa-var-vcard: "\f2bb"; +$fa-var-vcard-o: "\f2bc"; +$fa-var-venus: "\f221"; +$fa-var-venus-double: "\f226"; +$fa-var-venus-mars: "\f228"; +$fa-var-viacoin: "\f237"; +$fa-var-viadeo: "\f2a9"; +$fa-var-viadeo-square: "\f2aa"; +$fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; +$fa-var-vimeo-square: "\f194"; +$fa-var-vine: "\f1ca"; +$fa-var-vk: "\f189"; +$fa-var-volume-control-phone: "\f2a0"; +$fa-var-volume-down: "\f027"; +$fa-var-volume-off: "\f026"; +$fa-var-volume-up: "\f028"; +$fa-var-warning: "\f071"; +$fa-var-wechat: "\f1d7"; +$fa-var-weibo: "\f18a"; +$fa-var-weixin: "\f1d7"; +$fa-var-whatsapp: "\f232"; +$fa-var-wheelchair: "\f193"; +$fa-var-wheelchair-alt: "\f29b"; +$fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; +$fa-var-window-close: "\f2d3"; +$fa-var-window-close-o: "\f2d4"; +$fa-var-window-maximize: "\f2d0"; +$fa-var-window-minimize: "\f2d1"; +$fa-var-window-restore: "\f2d2"; +$fa-var-windows: "\f17a"; +$fa-var-won: "\f159"; +$fa-var-wordpress: "\f19a"; +$fa-var-wpbeginner: "\f297"; +$fa-var-wpexplorer: "\f2de"; +$fa-var-wpforms: "\f298"; +$fa-var-wrench: "\f0ad"; +$fa-var-xing: "\f168"; +$fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; +$fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; +$fa-var-yelp: "\f1e9"; +$fa-var-yen: "\f157"; +$fa-var-yoast: "\f2b1"; +$fa-var-youtube: "\f167"; +$fa-var-youtube-play: "\f16a"; +$fa-var-youtube-square: "\f166"; + diff --git a/lib/font-awesome-4.7.0/scss/font-awesome.scss b/lib/font-awesome-4.7.0/scss/font-awesome.scss new file mode 100755 index 0000000..f1c83aa --- /dev/null +++ b/lib/font-awesome-4.7.0/scss/font-awesome.scss @@ -0,0 +1,18 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ + +@import "variables"; +@import "mixins"; +@import "path"; +@import "core"; +@import "larger"; +@import "fixed-width"; +@import "list"; +@import "bordered-pulled"; +@import "animated"; +@import "rotated-flipped"; +@import "stacked"; +@import "icons"; +@import "screen-reader"; diff --git a/lib/jq-module/jquery.particleground.min.js b/lib/jq-module/jquery.particleground.min.js new file mode 100755 index 0000000..dac720c --- /dev/null +++ b/lib/jq-module/jquery.particleground.min.js @@ -0,0 +1,195 @@ +/** + * Particleground + * + * @author Jonathan Nicol - @mrjnicol + * @version 1.0.1 + * @description Creates a canvas based particle system background + * + * Inspired by: + * http://requestlab.fr/ + * http://disruptivebydesign.com/ + * + * @license The MIT License (MIT) + * + * Copyright (c) 2014 Jonathan Nicol - @mrjnicol + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +!function (a) { + function b(b, d) { + function e() { + if (w) { + $canvas = a(''), v.prepend($canvas), p = $canvas[0], q = p.getContext("2d"), f(); + for (var b = Math.round(p.width * p.height / d.density), c = 0; b > c; c++) { + var e = new l; + e.setStackPos(c), x.push(e) + } + a(window).on("resize", function () { + h() + }), a(document).on("mousemove", function (a) { + y = a.pageX, z = a.pageY + }), B && !A && window.addEventListener("deviceorientation", function () { + D = Math.min(Math.max(-event.beta, -30), 30), C = Math.min(Math.max(-event.gamma, -30), 30) + }, !0), g(), o("onInit") + } + } + + function f() { + p.width = v.width(), p.height = v.height(), q.fillStyle = d.dotColor, q.strokeStyle = d.lineColor, q.lineWidth = d.lineWidth + } + + function g() { + if (w) { + s = a(window).width(), t = a(window).height(), q.clearRect(0, 0, p.width, p.height); + for (var b = 0; b < x.length; b++) x[b].updatePosition(); + for (var b = 0; b < x.length; b++) x[b].draw(); + E || (r = requestAnimationFrame(g)) + } + } + + function h() { + for (f(), i = x.length - 1; i >= 0; i--) (x[i].position.x > v.width() || x[i].position.y > v.height()) && x.splice(i, 1); + var a = Math.round(p.width * p.height / d.density); + if (a > x.length) for (; a > x.length;) { + var b = new l; + x.push(b) + } else a < x.length && x.splice(a); + for (i = x.length - 1; i >= 0; i--) x[i].setStackPos(i) + } + + function j() { + E = !0 + } + + function k() { + E = !1, g() + } + + function l() { + switch (this.stackPos, this.active = !0, this.layer = Math.ceil(3 * Math.random()), this.parallaxOffsetX = 0, this.parallaxOffsetY = 0, this.position = {x: Math.ceil(Math.random() * p.width), y: Math.ceil(Math.random() * p.height)}, this.speed = {}, d.directionX) { + case"left": + this.speed.x = +(-d.maxSpeedX + Math.random() * d.maxSpeedX - d.minSpeedX).toFixed(2); + break; + case"right": + this.speed.x = +(Math.random() * d.maxSpeedX + d.minSpeedX).toFixed(2); + break; + default: + this.speed.x = +(-d.maxSpeedX / 2 + Math.random() * d.maxSpeedX).toFixed(2), this.speed.x += this.speed.x > 0 ? d.minSpeedX : -d.minSpeedX + } + switch (d.directionY) { + case"up": + this.speed.y = +(-d.maxSpeedY + Math.random() * d.maxSpeedY - d.minSpeedY).toFixed(2); + break; + case"down": + this.speed.y = +(Math.random() * d.maxSpeedY + d.minSpeedY).toFixed(2); + break; + default: + this.speed.y = +(-d.maxSpeedY / 2 + Math.random() * d.maxSpeedY).toFixed(2), this.speed.x += this.speed.y > 0 ? d.minSpeedY : -d.minSpeedY + } + } + + function m(a, b) { + return b ? void(d[a] = b) : d[a] + } + + function n() { + v.find(".pg-canvas").remove(), o("onDestroy"), v.removeData("plugin_" + c) + } + + function o(a) { + void 0 !== d[a] && d[a].call(u) + } + + var p, q, r, s, t, u = b, v = a(b), w = !!document.createElement("canvas").getContext, x = [], y = 0, z = 0, A = !navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i), B = !!window.DeviceOrientationEvent, C = 0, D = 0, E = !1; + return d = a.extend({}, a.fn[c].defaults, d), l.prototype.draw = function () { + q.beginPath(), q.arc(this.position.x + this.parallaxOffsetX, this.position.y + this.parallaxOffsetY, d.particleRadius / 2, 0, 2 * Math.PI, !0), q.closePath(), q.fill(), q.beginPath(); + for (var a = x.length - 1; a > this.stackPos; a--) { + var b = x[a], c = this.position.x - b.position.x, e = this.position.y - b.position.y, f = Math.sqrt(c * c + e * e).toFixed(2); + f < d.proximity && (q.moveTo(this.position.x + this.parallaxOffsetX, this.position.y + this.parallaxOffsetY), d.curvedLines ? q.quadraticCurveTo(Math.max(b.position.x, b.position.x), Math.min(b.position.y, b.position.y), b.position.x + b.parallaxOffsetX, b.position.y + b.parallaxOffsetY) : q.lineTo(b.position.x + b.parallaxOffsetX, b.position.y + b.parallaxOffsetY)) + } + q.stroke(), q.closePath() + }, l.prototype.updatePosition = function () { + if (d.parallax) { + if (B && !A) { + var a = (s - 0) / 60; + pointerX = (C - -30) * a + 0; + var b = (t - 0) / 60; + pointerY = (D - -30) * b + 0 + } else pointerX = y, pointerY = z; + this.parallaxTargX = (pointerX - s / 2) / (d.parallaxMultiplier * this.layer), this.parallaxOffsetX += (this.parallaxTargX - this.parallaxOffsetX) / 10, this.parallaxTargY = (pointerY - t / 2) / (d.parallaxMultiplier * this.layer), this.parallaxOffsetY += (this.parallaxTargY - this.parallaxOffsetY) / 10 + } + switch (d.directionX) { + case"left": + this.position.x + this.speed.x + this.parallaxOffsetX < 0 && (this.position.x = v.width() - this.parallaxOffsetX); + break; + case"right": + this.position.x + this.speed.x + this.parallaxOffsetX > v.width() && (this.position.x = 0 - this.parallaxOffsetX); + break; + default: + (this.position.x + this.speed.x + this.parallaxOffsetX > v.width() || this.position.x + this.speed.x + this.parallaxOffsetX < 0) && (this.speed.x = -this.speed.x) + } + switch (d.directionY) { + case"up": + this.position.y + this.speed.y + this.parallaxOffsetY < 0 && (this.position.y = v.height() - this.parallaxOffsetY); + break; + case"down": + this.position.y + this.speed.y + this.parallaxOffsetY > v.height() && (this.position.y = 0 - this.parallaxOffsetY); + break; + default: + (this.position.y + this.speed.y + this.parallaxOffsetY > v.height() || this.position.y + this.speed.y + this.parallaxOffsetY < 0) && (this.speed.y = -this.speed.y) + } + this.position.x += this.speed.x, this.position.y += this.speed.y + }, l.prototype.setStackPos = function (a) { + this.stackPos = a + }, e(), {option: m, destroy: n, start: k, pause: j} + } + + var c = "particleground"; + a.fn[c] = function (d) { + if ("string" == typeof arguments[0]) { + var e, f = arguments[0], g = Array.prototype.slice.call(arguments, 1); + return this.each(function () { + a.data(this, "plugin_" + c) && "function" == typeof a.data(this, "plugin_" + c)[f] && (e = a.data(this, "plugin_" + c)[f].apply(this, g)) + }), void 0 !== e ? e : this + } + return "object" != typeof d && d ? void 0 : this.each(function () { + a.data(this, "plugin_" + c) || a.data(this, "plugin_" + c, new b(this, d)) + }) + }, a.fn[c].defaults = { + minSpeedX: .1, maxSpeedX: .7, minSpeedY: .1, maxSpeedY: .7, directionX: "center", directionY: "center", density: 1e4, dotColor: "#666666", lineColor: "#666666", particleRadius: 7, lineWidth: 1, curvedLines: !1, proximity: 100, parallax: !0, parallaxMultiplier: 5, onInit: function () { + }, onDestroy: function () { + } + } +}(jQuery), /** + * requestAnimationFrame polyfill by Erik M枚ller. fixes from Paul Irish and Tino Zijdel + * @see: http://paulirish.com/2011/requestanimationframe-for-smart-animating/ + * @see: http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating + * @license: MIT license + */ + function () { + for (var a = 0, b = ["ms", "moz", "webkit", "o"], c = 0; c < b.length && !window.requestAnimationFrame; ++c) window.requestAnimationFrame = window[b[c] + "RequestAnimationFrame"], window.cancelAnimationFrame = window[b[c] + "CancelAnimationFrame"] || window[b[c] + "CancelRequestAnimationFrame"]; + window.requestAnimationFrame || (window.requestAnimationFrame = function (b) { + var c = (new Date).getTime(), d = Math.max(0, 16 - (c - a)), e = window.setTimeout(function () { + b(c + d) + }, d); + return a = c + d, e + }), window.cancelAnimationFrame || (window.cancelAnimationFrame = function (a) { + clearTimeout(a) + }) + }(); \ No newline at end of file diff --git a/lib/jq-module/paigusu.min.js b/lib/jq-module/paigusu.min.js new file mode 100755 index 0000000..4564bc9 --- /dev/null +++ b/lib/jq-module/paigusu.min.js @@ -0,0 +1 @@ +(function(c,f,h,k){var g=function(a,b){this.eve=a;this.defaults={width:230,height:400,color:"#1926dc",recommend:!1,title:"\u6700\u8fd1\u4f7f\u7528"};this.options=c.extend({},this.defaults,b);console.log(this.options)};g.prototype={init:function(){this.getPosition();this.initDefaultColor();this.latelyColor();this.createHtml();this.on()},createHtml:function(){var a=this.options,b=a.bg.r+","+a.bg.g+","+a.bg.b,d="";c.each(a.lately,function(a,b){if(9b.h&&(b.h+=360);b.s*=100/255;b.b*=100/255;return b={h:Math.round(b.h),s:Math.round(b.s),b:Math.round(b.b)}},hexToRgb:function(a){a=-1>16,g:(a&65280)>>8,b:a&255}},rgbToHex:function(a){var b=[a.r.toString(16),a.g.toString(16),a.b.toString(16)];c.each(b,function(a,e){1==e.length&&(b[a]="0"+e)});return b.join("")},hsbToRgb:function(a){var b,d,e;b=a.h;var c=255*a.s/100;a=255*a.b/100;if(0==c)b=d=e=a;else{var c=(255-c)*a/255,f=b%60*(a-c)/60;360==b&&(b=0);60>b?(b=a,e=c,d=c+f):120>b?(d=a,e=c,b=a-f):180>b?(d=a,b=c,e=c+f):240>b?(e=a,b=c,d=a-f):300>b?(e=a,d=c,b=c+f):360>b?(b=a,d=c,e=a-f):e=d=b=0}return{r:Math.round(b),g:Math.round(d),b:Math.round(e)}},hsbToHex:function(a){a=this.hsbToRgb(a);var b=[a.r.toString(16),a.g.toString(16),a.b.toString(16)];c.each(b,function(a,c){1==c.length&&(b[a]="0"+c)});return b.join("")},getPosition:function(){var a=this.options,b=c(f).width(),d=c(f).height(),e=this.eve.getBoundingClientRect();b-e.right>a.width?this.set({positionLeft:e.right+5}):this.set({positionLeft:e.left-a.width-5});d-e.bottom>a.height?this.set({positionTop:e.top}):this.set({positionTop:e.bottom-a.height})},doploy:function(){var a=this.options;c("#paigusu-slider-btn").css("left",a.colorSlider-5);var b=this.hsbToHex({h:a.colorSlider/160*360,s:100,b:100}),d=this.hexToRgb(b),e={h:a.colorSlider/160*360,s:100,s:a.hsb.s,b:a.hsb.b},b=this.hsbToHex(e),f=this.hexToRgb(b);f.a=a.color.a;this.set({bg:d,color:f,hex:b,hsb:e});this.setInputColor()},setInputColor:function(){var a=this.options,b=a.color.r+","+a.color.g+","+a.color.b;c("#final-color").css("background","rgba("+b+","+a.color.a+")");var d=a.bg.r+","+a.bg.g+","+a.bg.b;console.log(d);c("#color-block").css("background","rgb("+d+")");c("#paigusu-alpha-block").css("background","linear-gradient(to right, rgba("+b+", 0) 0%, rgba("+b+", 1) 100%)");c.each(a.color,function(a,b){c("input[name\x3d'paigusu-"+a+"']").val(b)});c("input[name\x3d'paigusu-hex']").val("#"+a.hex);this.callFun()},inputSetColor:function(){var a=this.options.hsb,b=this.hsbToRgb({h:0==a.h?250:a.h,s:100,b:100}),d=150-a.b/100*150-6,e=a.s/100*230-6,a=parseInt(a.h/360*160),f=this.options.color;this.set({bg:b,ident:{top:d,left:e},colorSlider:a});c("#color-block").css("background","rgb("+b.r+","+b.g+","+b.b+")");c("#block-ident").css({top:d,left:e});c("#paigusu-slider-btn").css("left",a-5);c("#final-color").css("background","rgb("+f.r+","+f.g+","+f.b+","+f.a+")");c("#paigusu-alpha-block").css("background","linear-gradient(to right, rgba(0,17,255, 0) 0%, rgba("+b.r+","+b.g+","+b.b+", 1) 100%)");c("#paigusu-alpha-btn").css("left",parseInt(160*f.a)-5);this.callFun()},palette:function(){var a=this.options;c("#block-ident").css(a.ident);var b=0>a.ident.top?0:a.ident.top,d=0>a.ident.left?0:a.ident.left,a={s:((230b.offsetX?0:b.offsetX}),a.doploy())}).on("mouseup",function(){f.paigususlider=!1}).on("mouseleave",function(){f.paigususlider=!1});c("#paigusu-alpha").off().on("mousedown",function(b){b=b||f.event;f.paigusualpha=!0;c("#paigusu-alpha-btn").css("left",b.offsetX-6);a.options.color.a=parseFloat((b.offsetX/160).toFixed(1));a.setInputColor()}).on("mousemove",function(b){b=b||f.event;f.paigusualpha&&(c("#paigusu-alpha-btn").css("left",b.offsetX-6),a.options.color.a=parseFloat(((0>b.offsetX?0:b.offsetX)/160).toFixed(1)),a.setInputColor())}).on("mouseup",function(){f.paigusualpha=!1}).on("mouseleave",function(){f.paigusualpha=!1});c('input[name\x3d"paigusu-r"],input[name\x3d"paigusu-g"],input[name\x3d"paigusu-b"],input[name\x3d"paigusu-a"]').on("keyup",function(){var b=c(this).attr("name").split("-");if("a"==b[1]){var d=parseFloat(c(this).val())||1,d=parseFloat(d.toFixed(1));if(1d)c(this).val(1),d=1}else d=parseInt(c(this).val())||0,0>d?(c(this).val(0),d=0):255").width(boundx).height(boundy).addClass(cssClass("holder")).css({position:"relative",backgroundColor:options.bgColor}).insertAfter($origimg).append($img);if(options.addClass){$div.addClass(options.addClass)}var $img2=$("").attr("src",$img.attr("src")).css("position","absolute").width(boundx).height(boundy);var $img_holder=$("
    ").width(pct(100)).height(pct(100)).css({zIndex:310,position:"absolute",overflow:"hidden"}).append($img2);var $hdl_holder=$("
    ").width(pct(100)).height(pct(100)).css("zIndex",320);var $sel=$("
    ").css({position:"absolute",zIndex:300}).insertBefore($img).append($img_holder,$hdl_holder);var bound=options.boundary;var $trk=newTracker().width(boundx+(bound*2)).height(boundy+(bound*2)).css({position:"absolute",top:px(-bound),left:px(-bound),zIndex:290}).mousedown(newSelection);var xlimit,ylimit,xmin,ymin; +var xscale,yscale,enabled=true;var docOffset=getPos($img),btndown,lastcurs,dimmed,animating,shift_down;var Coords=function(){var x1=0,y1=0,x2=0,y2=0,ox,oy;function setPressed(pos){var pos=rebound(pos);x2=x1=pos[0];y2=y1=pos[1]}function setCurrent(pos){var pos=rebound(pos);ox=pos[0]-x2;oy=pos[1]-y2;x2=pos[0];y2=pos[1]}function getOffset(){return[ox,oy]}function moveOffset(offset){var ox=offset[0],oy=offset[1];if(0>x1+ox){ox-=ox+x1}if(0>y1+oy){oy-=oy+y1}if(boundyboundx){xx=boundx;h=Math.abs((xx-x1)/aspect);yy=rh<0?y1-h:h+y1}}}else{xx=x2;h=rwa/aspect;yy=rh<0?y1-h:y1+h;if(yy<0){yy=0;w=Math.abs((yy-y1)*aspect);xx=rw<0?x1-w:w+x1}else{if(yy>boundy){yy=boundy;w=Math.abs(yy-y1)*aspect;xx=rw<0?x1-w:w+x1}}}if(xx>x1){if(xx-x1max_x){xx=x1+max_x}}if(yy>y1){yy=y1+(xx-x1)/aspect}else{yy=y1-(xx-x1)/aspect}}else{if(xxmax_x){xx=x1-max_x}}if(yy>y1){yy=y1+(x1-xx)/aspect}else{yy=y1-(x1-xx)/aspect}}}if(xx<0){x1-=xx;xx=0}else{if(xx>boundx){x1-=xx-boundx;xx=boundx}}if(yy<0){y1-=yy;yy=0}else{if(yy>boundy){y1-=yy-boundy;yy=boundy}}return last=makeObj(flipCoords(x1,y1,xx,yy))}function rebound(p){if(p[0]<0){p[0]=0}if(p[1]<0){p[1]=0}if(p[0]>boundx){p[0]=boundx}if(p[1]>boundy){p[1]=boundy}return[p[0],p[1]] +}function flipCoords(x1,y1,x2,y2){var xa=x1,xb=x2,ya=y1,yb=y2;if(x2xlimit)){x2=(xsize>0)?(x1+xlimit):(x1-xlimit)}if(ylimit&&(Math.abs(ysize)>ylimit)){y2=(ysize>0)?(y1+ylimit):(y1-ylimit)}if(ymin&&(Math.abs(ysize)0)?(y1+ymin):(y1-ymin)}if(xmin&&(Math.abs(xsize)0)?(x1+xmin):(x1-xmin)}if(x1<0){x2-=x1;x1-=x1}if(y1<0){y2-=y1;y1-=y1}if(x2<0){x1-=x2;x2-=x2}if(y2<0){y1-=y2;y2-=y2}if(x2>boundx){var delta=x2-boundx;x1-=delta;x2-=delta}if(y2>boundy){var delta=y2-boundy;y1-=delta;y2-=delta}if(x1>boundx){var delta=x1-boundy;y2-=delta;y1-=delta}if(y1>boundy){var delta=y1-boundy;y2-=delta;y1-=delta}return makeObj(flipCoords(x1,y1,x2,y2))}function makeObj(a){return{x:a[0],y:a[1],x2:a[2],y2:a[3],w:a[2]-a[0],h:a[3]-a[1]}}return{flipCoords:flipCoords,setPressed:setPressed,setCurrent:setCurrent,getOffset:getOffset,moveOffset:moveOffset,getCorner:getCorner,getFixed:getFixed}}();var Selection=function(){var start,end,dragmode,awake,hdep=370;var borders={};var handle={};var seehandles=false;var hhs=options.handleOffset;if(options.drawBorders){borders={top:insertBorder("hline").css("top",$.browser.msie?px(-1):px(0)),bottom:insertBorder("hline"),left:insertBorder("vline"),right:insertBorder("vline")}}if(options.dragEdges){handle.t=insertDragbar("n");handle.b=insertDragbar("s");handle.r=insertDragbar("e");handle.l=insertDragbar("w")}options.sideHandles&&createHandles(["n","s","e","w"]);options.cornerHandles&&createHandles(["sw","nw","ne","se"]);function insertBorder(type){var jq=$("
    ").css({position:"absolute",opacity:options.borderOpacity}).addClass(cssClass(type));$img_holder.append(jq);return jq}function dragDiv(ord,zi){var jq=$("
    ").mousedown(createDragger(ord)).css({cursor:ord+"-resize",position:"absolute",zIndex:zi});$hdl_holder.append(jq);return jq}function insertHandle(ord){return dragDiv(ord,hdep++).css({top:px(-hhs+1),left:px(-hhs+1),opacity:options.handleOpacity}).addClass(cssClass("handle")) +}function insertDragbar(ord){var s=options.handleSize,o=hhs,h=s,w=s,t=o,l=o;switch(ord){case"n":case"s":w=pct(100);break;case"e":case"w":h=pct(100);break}return dragDiv(ord,hdep++).width(w).height(h).css({top:px(-t+1),left:px(-l+1)})}function createHandles(li){for(i in li){handle[li[i]]=insertHandle(li[i])}}function moveHandles(c){var midvert=Math.round((c.h/2)-hhs),midhoriz=Math.round((c.w/2)-hhs),north=west=-hhs+1,east=c.w-hhs,south=c.h-hhs,x,y;"e" in handle&&handle.e.css({top:px(midvert),left:px(east)})&&handle.w.css({top:px(midvert)})&&handle.s.css({top:px(south),left:px(midhoriz)})&&handle.n.css({left:px(midhoriz)});"ne" in handle&&handle.ne.css({left:px(east)})&&handle.se.css({top:px(south),left:px(east)})&&handle.sw.css({top:px(south)});"b" in handle&&handle.b.css({top:px(south)})&&handle.r.css({left:px(east)})}function moveto(x,y){$img2.css({top:px(-y),left:px(-x)});$sel.css({top:px(y),left:px(x)})}function resize(w,h){$sel.width(w).height(h)}function refresh(){var c=Coords.getFixed();Coords.setPressed([c.x,c.y]);Coords.setCurrent([c.x2,c.y2]);updateVisible()}function updateVisible(){if(awake){return update()}}function update(){var c=Coords.getFixed();resize(c.w,c.h);moveto(c.x,c.y);options.drawBorders&&borders["right"].css({left:px(c.w-1)})&&borders["bottom"].css({top:px(c.h-1)});seehandles&&moveHandles(c);awake||show();options.onChange(unscale(c))}function show(){$sel.show();$img.css("opacity",options.bgOpacity);awake=true}function release(){disableHandles();$sel.hide();$img.css("opacity",1);awake=false}function showHandles(){if(seehandles){moveHandles(Coords.getFixed());$hdl_holder.show()}}function enableHandles(){seehandles=true;if(options.allowResize){moveHandles(Coords.getFixed());$hdl_holder.show();return true}}function disableHandles(){seehandles=false;$hdl_holder.hide()}function animMode(v){(animating=v)?disableHandles():enableHandles()}function done(){animMode(false);refresh()}var $track=newTracker().mousedown(createDragger("move")).css({cursor:"move",position:"absolute",zIndex:360}); +$img_holder.append($track);disableHandles();return{updateVisible:updateVisible,update:update,release:release,refresh:refresh,setCursor:function(cursor){$track.css("cursor",cursor)},enableHandles:enableHandles,enableOnly:function(){seehandles=true},showHandles:showHandles,disableHandles:disableHandles,animMode:animMode,done:done}}();var Tracker=function(){var onMove=function(){},onDone=function(){},trackDoc=options.trackDocument;if(!trackDoc){$trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp)}function toFront(){$trk.css({zIndex:450});if(trackDoc){$(document).mousemove(trackMove).mouseup(trackUp)}}function toBack(){$trk.css({zIndex:290});if(trackDoc){$(document).unbind("mousemove",trackMove).unbind("mouseup",trackUp)}}function trackMove(e){onMove(mouseAbs(e))}function trackUp(e){e.preventDefault();e.stopPropagation();if(btndown){btndown=false;onDone(mouseAbs(e));options.onSelect(unscale(Coords.getFixed()));toBack();onMove=function(){};onDone=function(){}}return false}function activateHandlers(move,done){btndown=true;onMove=move;onDone=done;toFront();return false}function setCursor(t){$trk.css("cursor",t)}$img.before($trk);return{activateHandlers:activateHandlers,setCursor:setCursor}}();var KeyManager=function(){var $keymgr=$('').css({position:"absolute",left:"-30px"}).keypress(parseKey).blur(onBlur),$keywrap=$("
    ").css({position:"absolute",overflow:"hidden"}).append($keymgr);function watchKeys(){if(options.keySupport){$keymgr.show();$keymgr.focus()}}function onBlur(e){$keymgr.hide()}function doNudge(e,x,y){if(options.allowMove){Coords.moveOffset([x,y]);Selection.updateVisible()}e.preventDefault();e.stopPropagation()}function parseKey(e){if(e.ctrlKey){return true}shift_down=e.shiftKey?true:false;var nudge=shift_down?10:1;switch(e.keyCode){case 37:doNudge(e,-nudge,0);break;case 39:doNudge(e,nudge,0);break;case 38:doNudge(e,0,-nudge);break;case 40:doNudge(e,0,nudge);break;case 27:Selection.release();break;case 9:return true}return nothing(e) +}if(options.keySupport){$keywrap.insertBefore($img)}return{watchKeys:watchKeys}}();function px(n){return""+parseInt(n)+"px"}function pct(n){return""+parseInt(n)+"%"}function cssClass(cl){return options.baseClass+"-"+cl}function getPos(obj){var pos=$(obj).offset();return[pos.left,pos.top]}function mouseAbs(e){return[(e.pageX-docOffset[0]),(e.pageY-docOffset[1])]}function myCursor(type){if(type!=lastcurs){Tracker.setCursor(type);lastcurs=type}}function startDragMode(mode,pos){docOffset=getPos($img);Tracker.setCursor(mode=="move"?mode:mode+"-resize");if(mode=="move"){return Tracker.activateHandlers(createMover(pos),doneSelect)}var fc=Coords.getFixed();var opp=oppLockCorner(mode);var opc=Coords.getCorner(oppLockCorner(opp));Coords.setPressed(Coords.getCorner(opp));Coords.setCurrent(opc);Tracker.activateHandlers(dragmodeHandler(mode,fc),doneSelect)}function dragmodeHandler(mode,f){return function(pos){if(!options.aspectRatio){switch(mode){case"e":pos[1]=f.y2;break;case"w":pos[1]=f.y2;break;case"n":pos[0]=f.x2;break;case"s":pos[0]=f.x2;break}}else{switch(mode){case"e":pos[1]=f.y+1;break;case"w":pos[1]=f.y+1;break;case"n":pos[0]=f.x+1;break;case"s":pos[0]=f.x+1;break}}Coords.setCurrent(pos);Selection.update()}}function createMover(pos){var lloc=pos;KeyManager.watchKeys();return function(pos){Coords.moveOffset([pos[0]-lloc[0],pos[1]-lloc[1]]);lloc=pos;Selection.update()}}function oppLockCorner(ord){switch(ord){case"n":return"sw";case"s":return"nw";case"e":return"nw";case"w":return"ne";case"ne":return"sw";case"nw":return"se";case"se":return"nw";case"sw":return"ne"}}function createDragger(ord){return function(e){if(options.disabled){return false}if((ord=="move")&&!options.allowMove){return false}btndown=true;startDragMode(ord,mouseAbs(e));e.stopPropagation();e.preventDefault();return false}}function presize($obj,w,h){var nw=$obj.width(),nh=$obj.height();if((nw>w)&&w>0){nw=w;nh=(w/$obj.width())*$obj.height()}if((nh>h)&&h>0){nh=h;nw=(h/$obj.height())*$obj.width()}xscale=$obj.width()/nw; +yscale=$obj.height()/nh;$obj.width(nw).height(nh)}function unscale(c){return{x:parseInt(c.x*xscale),y:parseInt(c.y*yscale),x2:parseInt(c.x2*xscale),y2:parseInt(c.y2*yscale),w:parseInt(c.w*xscale),h:parseInt(c.h*yscale)}}function doneSelect(pos){var c=Coords.getFixed();if(c.w>options.minSelect[0]&&c.h>options.minSelect[1]){Selection.enableHandles();Selection.done()}else{Selection.release()}Tracker.setCursor(options.allowSelect?"crosshair":"default")}function newSelection(e){if(options.disabled){return false}if(!options.allowSelect){return false}btndown=true;docOffset=getPos($img);Selection.disableHandles();myCursor("crosshair");var pos=mouseAbs(e);Coords.setPressed(pos);Tracker.activateHandlers(selectDrag,doneSelect);KeyManager.watchKeys();Selection.update();e.stopPropagation();e.preventDefault();return false}function selectDrag(pos){Coords.setCurrent(pos);Selection.update()}function newTracker(){var trk=$("
    ").addClass(cssClass("tracker"));$.browser.msie&&trk.css({opacity:0,backgroundColor:"white"});return trk}function animateTo(a){var x1=a[0]/xscale,y1=a[1]/yscale,x2=a[2]/xscale,y2=a[3]/yscale;if(animating){return}var animto=Coords.flipCoords(x1,y1,x2,y2);var c=Coords.getFixed();var animat=initcr=[c.x,c.y,c.x2,c.y2];var interv=options.animationDelay;var x=animat[0];var y=animat[1];var x2=animat[2];var y2=animat[3];var ix1=animto[0]-initcr[0];var iy1=animto[1]-initcr[1];var ix2=animto[2]-initcr[2];var iy2=animto[3]-initcr[3];var pcent=0;var velocity=options.swingSpeed;Selection.animMode(true);var animator=function(){return function(){pcent+=(100-pcent)/velocity;animat[0]=x+((pcent/100)*ix1);animat[1]=y+((pcent/100)*iy1);animat[2]=x2+((pcent/100)*ix2);animat[3]=y2+((pcent/100)*iy2);if(pcent<100){animateStart()}else{Selection.done()}if(pcent>=99.8){pcent=100}setSelectRaw(animat)}}();function animateStart(){window.setTimeout(animator,interv)}animateStart()}function setSelect(rect){setSelectRaw([rect[0]/xscale,rect[1]/yscale,rect[2]/xscale,rect[3]/yscale])}function setSelectRaw(l){Coords.setPressed([l[0],l[1]]); +Coords.setCurrent([l[2],l[3]]);Selection.update()}function setOptions(opt){if(typeof(opt)!="object"){opt={}}options=$.extend(options,opt);if(typeof(options.onChange)!=="function"){options.onChange=function(){}}if(typeof(options.onSelect)!=="function"){options.onSelect=function(){}}}function tellSelect(){return unscale(Coords.getFixed())}function tellScaled(){return Coords.getFixed()}function setOptionsNew(opt){setOptions(opt);interfaceUpdate()}function disableCrop(){options.disabled=true;Selection.disableHandles();Selection.setCursor("default");Tracker.setCursor("default")}function enableCrop(){options.disabled=false;interfaceUpdate()}function cancelCrop(){Selection.done();Tracker.activateHandlers(null,null)}function destroy(){$div.remove();$origimg.show()}function interfaceUpdate(alt){options.allowResize?alt?Selection.enableOnly():Selection.enableHandles():Selection.disableHandles();Tracker.setCursor(options.allowSelect?"crosshair":"default");Selection.setCursor(options.allowMove?"move":"default");$div.css("backgroundColor",options.bgColor);if("setSelect" in options){setSelect(opt.setSelect);Selection.done();delete (options.setSelect)}if("trueSize" in options){xscale=options.trueSize[0]/boundx;yscale=options.trueSize[1]/boundy}xlimit=options.maxSize[0]||0;ylimit=options.maxSize[1]||0;xmin=options.minSize[0]||0;ymin=options.minSize[1]||0;if("outerImage" in options){$img.attr("src",options.outerImage);delete (options.outerImage)}Selection.refresh()}$hdl_holder.hide();interfaceUpdate(true);var api={animateTo:animateTo,setSelect:setSelect,setOptions:setOptionsNew,tellSelect:tellSelect,tellScaled:tellScaled,disable:disableCrop,enable:enableCrop,cancel:cancelCrop,focus:KeyManager.watchKeys,getBounds:function(){return[boundx*xscale,boundy*yscale]},getWidgetSize:function(){return[boundx,boundy]},release:Selection.release,destroy:destroy};$origimg.data("Jcrop",api);return api};$.fn.Jcrop=function(options){function attachWhenDone(from){var loadsrc=options.useImg||from.src;var img=new Image(); +img.onload=function(){$.Jcrop(from,options)};img.src=loadsrc}if(typeof(options)!=="object"){options={}}this.each(function(){if($(this).data("Jcrop")){if(options=="api"){return $(this).data("Jcrop")}else{$(this).data("Jcrop").setOptions(options)}}else{attachWhenDone(this)}});return this}})(jQuery);(function($,undefined){$.fn.zyPopup=function(options,param){var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"){var fn=this[0][options];if($.isFunction(fn)){return fn.apply(this,otherArgs)}else{throw ("zyPopup - No such method: "+options)}}return this.each(function(){var para={};var self=this;var zoom="",zoomContent="",zoomedIn=false,openedImage=null,windowWidth="",windowHeight="";var tailorVal={};var defaults={src:"",index:0,name:"",onTailor:function(val){}};para=$.extend(defaults,options);this.init=function(){this.createHtml();this.openPopup();this.bindPopupEvent()};this.createHtml=function(){$("#zoom").remove();$("body").append('
    ');zoom=$("#zoom").hide(),zoomContent=$("#zoom .content"),zoomedIn=false,openedImage=null,windowWidth=$(window).width(),windowHeight=$(window).height()};this.openPopup=function(){var self=this;var image=$(new Image()).attr("id","tailorImg").hide();$("#zoom .previous, #zoom .next").show();if(!zoomedIn){zoomedIn=true;zoom.show();$("body").addClass("zoomed")}zoomContent.html(image).delay(500).addClass("loading");image.load(render).attr("src",para.src);function render(){var image=$(this),borderWidth=parseInt(zoomContent.css("borderLeftWidth")),maxImageWidth=windowWidth-(borderWidth*2),maxImageHeight=windowHeight-(borderWidth*2),imageWidth=image.width(),imageHeight=image.height();if(imageWidth==zoomContent.width()&&imageWidth<=maxImageWidth&&imageHeight==zoomContent.height()&&imageHeight<=maxImageHeight){show(image);return}zoomContent.animate({width:image.width(),height:image.height(),marginTop:-(image.height()/2)-borderWidth,marginLeft:-(image.width()/2)-borderWidth},200,function(){show(image) +});function show(image){image.show();zoomContent.removeClass("loading");self.createTailorPlug()}}};this.createTailorPlug=function(){var width=$("#tailorImg").width();var height=$("#tailorImg").height();var x1=(width/2)-(width/5);var y1=(height/2)-(height/5);var x2=(width/2)+(width/5);var y2=(height/2)+(height/5);var api=$.Jcrop("#tailorImg",{setSelect:[x1,y1,x2,y2],onChange:setCoords,onSelect:setCoords});function setCoords(obj){tailorVal={"leftX":obj.x,"leftY":obj.y,"rightX":obj.x2,"rightY":obj.y2,"width":obj.w,"height":obj.h}}};this.bindPopupEvent=function(){var self=this;zoom.bind("click",function(event){event.preventDefault();if($(event.target).attr("id")=="zoom"){self.closePopup(event)}});$("#zoom .finish").bind("click",function(event){var quondamImgInfo=new Object();quondamImgInfo["width"]=$(".jcrop-holder>div>div>img").width();quondamImgInfo["height"]=$(".jcrop-holder>div>div>img").height();para.onTailor(tailorVal,quondamImgInfo);self.closePopup(event)});$("#zoom .close").bind("click",function(event){self.closePopup(event)})};this.closePopup=function(event){if(event){event.preventDefault()}zoomedIn=false;openedImage=null;zoom.hide();$("body").removeClass("zoomed");zoomContent.empty()};this.init()})}})(jQuery);var ZYFILE={fileInput:null,uploadInput:null,dragDrop:null,url:"",uploadFile:[],lastUploadFile:[],perUploadFile:[],fileNum:0,filterFile:function(files){return files},onSelect:function(selectFile,files){},onDelete:function(file,files){},onProgress:function(file,loaded,total){},onSuccess:function(file,responseInfo){},onFailure:function(file,responseInfo){},onComplete:function(responseInfo){},funDragHover:function(e){e.stopPropagation();e.preventDefault();this[e.type==="dragover"?"onDragOver":"onDragLeave"].call(e.target);return this},funGetFiles:function(e){var self=this;this.funDragHover(e);var files=e.target.files||e.dataTransfer.files;self.lastUploadFile=this.uploadFile;this.uploadFile=this.uploadFile.concat(this.filterFile(files));var tmpFiles=[];var lArr=[]; +var uArr=[];$.each(self.lastUploadFile,function(k,v){lArr.push(v.name)});$.each(self.uploadFile,function(k,v){uArr.push(v.name)});$.each(uArr,function(k,v){if($.inArray(v,lArr)<0){tmpFiles.push(self.uploadFile[k])}});this.uploadFile=tmpFiles;this.funDealtFiles();return true},funDealtFiles:function(){var self=this;$.each(this.uploadFile,function(k,v){v.index=self.fileNum;self.fileNum++});var selectFile=this.uploadFile;this.perUploadFile=this.perUploadFile.concat(this.uploadFile);this.uploadFile=this.lastUploadFile.concat(this.uploadFile);this.onSelect(selectFile,this.uploadFile);console.info("继续选择");console.info(this.uploadFile);return this},funDeleteFile:function(delFileIndex,isCb){var self=this;var tmpFile=[];var delFile=this.perUploadFile[delFileIndex];$.each(this.uploadFile,function(k,v){if(delFile!=v){tmpFile.push(v)}});this.uploadFile=tmpFile;if(isCb){self.onDelete(delFile,this.uploadFile)}console.info("还剩这些文件没有上传:");console.info(this.uploadFile);return true},funUploadFiles:function(){var self=this;$.each(this.uploadFile,function(k,v){self.funUploadFile(v)})},funUploadFile:function(file){var self=this;var formdata=new FormData();formdata.append("file",file);if($("#uploadTailor_"+file.index).length>0){formdata.append("tailor",$("#uploadTailor_"+file.index).attr("tailor"))}var xhr=new XMLHttpRequest();xhr.upload.addEventListener("progress",function(e){self.onProgress(file,e.loaded,e.total)},false);xhr.addEventListener("load",function(e){self.funDeleteFile(file.index,false);self.onSuccess(file,xhr.responseText);if(self.uploadFile.length==0){self.onComplete("全部完成")}},false);xhr.addEventListener("error",function(e){self.onFailure(file,xhr.responseText)},false);xhr.open("POST",self.url,true);xhr.send(formdata)},funReturnNeedFiles:function(){return this.uploadFile},init:function(){var self=this;if(this.dragDrop){this.dragDrop.addEventListener("dragover",function(e){self.funDragHover(e)},false);this.dragDrop.addEventListener("dragleave",function(e){self.funDragHover(e)},false); +this.dragDrop.addEventListener("drop",function(e){self.funGetFiles(e)},false)}if(self.fileInput){this.fileInput.addEventListener("change",function(e){self.funGetFiles(e)},false)}if(self.uploadInput){this.uploadInput.addEventListener("click",function(e){self.funUploadFiles(e)},false)}}};(function($,undefined){$.fn.zyUpload=function(options,param){var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"){var fn=this[0][options];if($.isFunction(fn)){return fn.apply(this,otherArgs)}else{throw ("zyUpload - No such method: "+options)}}return this.each(function(){var para={};var self=this;var defaults={width:"700px",height:"400px",itemWidth:"140px",itemHeight:"120px",url:"/upload/UploadAction",fileType:[],fileSize:51200000,multiple:true,dragDrop:true,tailor:false,del:true,finishDel:false,onSelect:function(selectFiles,allFiles){},onDelete:function(file,files){},onSuccess:function(file,response){},onFailure:function(file,response){},onComplete:function(response){}};para=$.extend(defaults,options);this.init=function(){this.createHtml();this.createCorePlug()};this.createHtml=function(){var multiple="";para.multiple?multiple="multiple":multiple="";var html="";if(para.dragDrop){html+='
    ';html+='
    ';html+='
    ';html+='
    ';html+='
    ';html+='
    ';html+='
    点击选择文件
    ';html+=' ";html+="
    ";html+="
    ";html+=' 或者将文件拖到此处';html+="
    ";html+='
    ';html+='
    选中0张文件,共0B。
    ';html+='
    ';html+='
    继续选择
    ';html+='
    开始上传
    '; +html+="
    ";html+="
    ";html+='
    ';html+="
    ";html+='
    ';html+=' ';html+="
    ";html+='
    ';html+="
    ";html+="
    "}else{var imgWidth=parseInt(para.itemWidth.replace("px",""))-15;html+='
    ';html+='
    ';html+='
    ';html+='
    ';html+='
    选中0张文件,共0B。
    ';html+='
    ';html+=' ";html+='
    选择文件
    ';html+='
    开始上传
    ';html+="
    ";html+="
    ";html+='
    ';html+=' ";html+="
    ";html+="
    ";html+='
    ';html+=' ';html+="
    ";html+='
    ';html+="
    ";html+="
    "}$(self).append(html).css({"width":para.width,"height":para.height});this.addEvent()};this.funSetStatusInfo=function(files){var size=0;var num=files.length;$.each(files,function(k,v){size+=v.size});if(size>1024*1024){size=(Math.round(size*100/(1024*1024))/100).toString()+"MB" +}else{size=(Math.round(size*100/1024)/100).toString()+"KB"}$("#status_info").html("选中"+num+"张文件,共"+size+"。")};this.funFilterEligibleFile=function(files){var arrFiles=[];for(var i=0,file;file=files[i];i++){var newStr=file.name.split("").reverse().join("");if(newStr.split(".")[0]!=null){var type=newStr.split(".")[0].split("").reverse().join("");if(jQuery.inArray(type,para.fileType)>-1){if(file.size>=para.fileSize){alert('您这个"'+file.name+'"文件大小过大')}else{arrFiles.push(file)}}else{alert('您这个"'+file.name+'"上传类型不符合')}}else{alert('您这个"'+file.name+'"没有类型, 无法识别')}}return arrFiles};this.funDisposePreviewHtml=function(file,e){var html="";var imgWidth=parseInt(para.itemWidth.replace("px",""))-15;var imgHeight=parseInt(para.itemHeight.replace("px",""))-10;var editHtml="";var delHtml="";if(para.tailor){editHtml=''}if(para.del){delHtml=''}var newStr=file.name.split("").reverse().join("");var type=newStr.split(".")[0].split("").reverse().join("");var fileImgSrc="zyupload/skins/images/fileType/";if(type=="rar"){fileImgSrc=fileImgSrc+"rar.png"}else{if(type=="zip"){fileImgSrc=fileImgSrc+"zip.png"}else{if(type=="txt"){fileImgSrc=fileImgSrc+"txt.png"}else{if(type=="ppt"){fileImgSrc=fileImgSrc+"ppt.png"}else{if(type=="xls"){fileImgSrc=fileImgSrc+"xls.png"}else{if(type=="pdf"){fileImgSrc=fileImgSrc+"pdf.png"}else{if(type=="psd"){fileImgSrc=fileImgSrc+"psd.png"}else{if(type=="ttf"){fileImgSrc=fileImgSrc+"ttf.png"}else{if(type=="swf"){fileImgSrc=fileImgSrc+"swf.png"}else{fileImgSrc=fileImgSrc+"file.png"}}}}}}}}}if(file.type.indexOf("image")==0){html+='
    ';html+='
    ';html+='
    ';html+='

    '+file.name+"

    ";html+=editHtml;html+=delHtml;html+="
    ";html+="
    ";html+=' '; +html+='
    ';html+=' ';html+="
    ";html+="
    ";html+='

    ';html+='

    上传失败,请重试

    ';html+='

    裁剪完成

    ';html+='

    ';html+="
    "}else{html+='
    ';html+='
    ';html+='
    ';html+='

    '+file.name+"

    ";html+=delHtml;html+="
    ";html+="
    ";html+=' ';html+='
    ';html+=' ';html+="
    ";html+="
    ";html+='

    ';html+='

    上传失败,请重试

    ';html+='

    ';html+="
    "}return html};this.createPopupPlug=function(imgSrc,index,name){$("body").zyPopup({src:imgSrc,index:index,name:name,onTailor:function(val,quondamImgInfo){var nWidth=parseInt(para.itemWidth.replace("px",""));var nHeight=parseInt(para.itemHeight.replace("px",""));var qWidth=val.width;var qHeight=val.height;var ratio=nWidth/qWidth;var width=ratio*quondamImgInfo.width;var height=ratio*quondamImgInfo.height;var left=val.leftX*ratio;var top=val.rightY*ratio-qHeight*ratio;$("#uploadImage_"+index).css({"width":width,"height":height,"margin-left":-left,"margin-top":-top}); +$("#uploadTailor_"+index).show();console.info(val);var tailor="{'leftX':"+val.leftX+",'leftY':"+val.leftY+",'rightX':"+val.rightX+",'rightY':"+val.rightY+",'width':"+val.width+",'height':"+val.height+"}";$("#uploadTailor_"+index).attr("tailor",tailor)}})};this.createCorePlug=function(){var params={fileInput:$("#fileImage").get(0),uploadInput:$("#fileSubmit").get(0),dragDrop:$("#fileDragArea").get(0),url:$("#uploadForm").attr("action"),filterFile:function(files){return self.funFilterEligibleFile(files)},onSelect:function(selectFiles,allFiles){para.onSelect(selectFiles,allFiles);self.funSetStatusInfo(ZYFILE.funReturnNeedFiles());var html="",i=0;var funDealtPreviewHtml=function(){file=selectFiles[i];if(file){var reader=new FileReader();reader.onload=function(e){html+=self.funDisposePreviewHtml(file,e);i++;funDealtPreviewHtml()};reader.readAsDataURL(file)}else{funAppendPreviewHtml(html)}};var funAppendPreviewHtml=function(html){if(para.dragDrop){$("#preview").append(html)}else{$(".add_upload").before(html)}funBindDelEvent();funBindHoverEvent()};var funBindDelEvent=function(){if($(".file_del").length>0){$(".file_del").click(function(){ZYFILE.funDeleteFile(parseInt($(this).attr("data-index")),true);return false})}if($(".file_edit").length>0){$(".file_edit").click(function(){var imgIndex=$(this).attr("data-index");var imgName=$(this).prev(".file_name").attr("title");var imgSrc=$("#uploadImage_"+imgIndex).attr("src");self.createPopupPlug(imgSrc,imgIndex,imgName);return false})}};var funBindHoverEvent=function(){$(".upload_append_list").hover(function(e){$(this).find(".file_bar").addClass("file_hover")},function(e){$(this).find(".file_bar").removeClass("file_hover")})};funDealtPreviewHtml()},onDelete:function(file,files){para.onDelete(file,files);$("#uploadList_"+file.index).fadeOut();self.funSetStatusInfo(files);console.info("剩下的文件");console.info(files)},onProgress:function(file,loaded,total){var eleProgress=$("#uploadProgress_"+file.index),percent=(loaded/total*100).toFixed(2)+"%"; +if(eleProgress.is(":hidden")){eleProgress.show()}eleProgress.css("width",percent)},onSuccess:function(file,response){para.onSuccess(file,response);$("#uploadProgress_"+file.index).hide();$("#uploadSuccess_"+file.index).show();if(para.finishDel){$("#uploadList_"+file.index).fadeOut();self.funSetStatusInfo(ZYFILE.funReturnNeedFiles())}if($("#uploadTailor_"+file.index).length>0){$("#uploadTailor_"+file.index).hide()}},onFailure:function(file,response){para.onFailure(file,response);$("#uploadProgress_"+file.index).hide();$("#uploadSuccess_"+file.index).show();if($("#uploadTailor_"+file.index).length>0){$("#uploadTailor_"+file.index).hide()}$("#uploadInf").append("

    文件"+file.name+"上传失败!

    ")},onComplete:function(response){para.onComplete(response);console.info(response)},onDragOver:function(){$(this).addClass("upload_drag_hover")},onDragLeave:function(){$(this).removeClass("upload_drag_hover")}};ZYFILE=$.extend(ZYFILE,params);ZYFILE.init()};this.addEvent=function(){if($(".filePicker").length>0){$(".filePicker").bind("click",function(e){$("#fileImage").click()})}$(".webuploader_pick").bind("click",function(e){$("#fileImage").click()});$(".upload_btn").bind("click",function(e){if(ZYFILE.funReturnNeedFiles().length>0){$("#fileSubmit").click()}else{alert("请先选中文件再点击上传")}});if($("#rapidAddImg").length>0){$("#rapidAddImg").bind("click",function(e){$("#fileImage").click()})}};this.init()})}})(jQuery); diff --git a/lib/jquery-3.4.1/jquery-3.4.1.min.js b/lib/jquery-3.4.1/jquery-3.4.1.min.js new file mode 100755 index 0000000..a1c07fd --- /dev/null +++ b/lib/jquery-3.4.1/jquery-3.4.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0 1 && !$.isFunction(value)) { + options = $.extend({}, config.defaults, options); + + if (typeof options.expires === 'number') { + var days = options.expires, t = options.expires = new Date(); + t.setTime(+t + days * 864e+5); + } + + return (document.cookie = [ + encode(key), '=', stringifyCookieValue(value), + options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE + options.path ? '; path=' + options.path : '', + options.domain ? '; domain=' + options.domain : '', + options.secure ? '; secure' : '' + ].join('')); + } + + // Read + + var result = key ? undefined : {}; + + // To prevent the for loop in the first place assign an empty array + // in case there are no cookies at all. Also prevents odd result when + // calling $.cookie(). + var cookies = document.cookie ? document.cookie.split('; ') : []; + + for (var i = 0, l = cookies.length; i < l; i++) { + var parts = cookies[i].split('='); + var name = decode(parts.shift()); + var cookie = parts.join('='); + + if (key && key === name) { + // If second argument (value) is a function it's a converter... + result = read(cookie, value); + break; + } + + // Prevent storing a cookie that we couldn't decode. + if (!key && (cookie = read(cookie)) !== undefined) { + result[name] = cookie; + } + } + + return result; + }; + + config.defaults = {}; + + $.removeCookie = function (key, options) { + if ($.cookie(key) === undefined) { + return false; + } + + // Must not alter options, thus extending a fresh object... + $.cookie(key, '', $.extend({}, options, { expires: -1 })); + return !$.cookie(key); + }; + +})); diff --git a/lib/layui-v2.6.3/css/layui.css b/lib/layui-v2.6.3/css/layui.css new file mode 100755 index 0000000..9191bc1 --- /dev/null +++ b/lib/layui-v2.6.3/css/layui.css @@ -0,0 +1 @@ +.layui-inline,img{display:inline-block;vertical-align:middle}h1,h2,h3,h4,h5,h6{font-weight:400}a,body{color:#333}.layui-edge,.layui-header,.layui-inline,.layui-main{position:relative}.layui-edge,hr{height:0;overflow:hidden}.layui-layout-body,.layui-side,.layui-side-scroll{overflow-x:hidden}.layui-btn,.layui-edge,.layui-inline,img{vertical-align:middle}.layui-btn,.layui-disabled,.layui-icon,.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-elip,.layui-form-checkbox span,.layui-form-pane .layui-form-label{text-overflow:ellipsis;white-space:nowrap}.layui-edge,.layui-elip,hr{overflow:hidden}blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}img{border:none}li{list-style:none}table{border-collapse:collapse;border-spacing:0}h4,h5,h6{font-size:100%}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}body{line-height:1.6;color:rgba(0,0,0,.85);font:14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif}hr{line-height:0;margin:10px 0;padding:0;border:none!important;border-bottom:1px solid #eee!important;clear:both;background:0 0}a{text-decoration:none}a:hover{color:#777}a cite{font-style:normal;*cursor:pointer}.layui-border-box,.layui-border-box *{box-sizing:border-box}.layui-box,.layui-box *{box-sizing:content-box}.layui-clear{clear:both;*zoom:1}.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-inline{*display:inline;*zoom:1}.layui-edge{display:inline-block;width:0;border-width:6px;border-style:dashed;border-color:transparent}.layui-edge-top{top:-4px;border-bottom-color:#999;border-bottom-style:solid}.layui-edge-right{border-left-color:#999;border-left-style:solid}.layui-edge-bottom{top:2px;border-top-color:#999;border-top-style:solid}.layui-edge-left{border-right-color:#999;border-right-style:solid}.layui-disabled,.layui-disabled:hover{color:#d2d2d2!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}.layui-show-v{visibility:visible!important}.layui-hide-v{visibility:hidden!important}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=256);src:url(../font/iconfont.eot?v=256#iefix) format('embedded-opentype'),url(../font/iconfont.woff2?v=256) format('woff2'),url(../font/iconfont.woff?v=256) format('woff'),url(../font/iconfont.ttf?v=256) format('truetype'),url(../font/iconfont.svg?v=256#layui-icon) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-search:before{content:"\e615"}.layui-icon-share:before{content:"\e641"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-engine:before{content:"\e628"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-star:before{content:"\e600"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-chat:before{content:"\e606"}.layui-icon-release:before{content:"\e609"}.layui-icon-list:before{content:"\e60a"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-ok-circle:before{content:"\1005"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-table:before{content:"\e62d"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-ie:before{content:"\e7bb"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-edit:before{content:"\e642"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-down:before{content:"\e61a"}.layui-icon-file:before{content:"\e621"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-read:before{content:"\e705"}.layui-icon-404:before{content:"\e61c"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-help:before{content:"\e607"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-windows:before{content:"\e67f"}.layui-icon-water:before{content:"\e636"}.layui-icon-username:before{content:"\e66f"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-about:before{content:"\e60b"}.layui-icon-location:before{content:"\e715"}.layui-icon-up:before{content:"\e619"}.layui-icon-pause:before{content:"\e651"}.layui-icon-date:before{content:"\e637"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-delete:before{content:"\e640"}.layui-icon-play:before{content:"\e652"}.layui-icon-top:before{content:"\e604"}.layui-icon-firefox:before{content:"\e686"}.layui-icon-friends:before{content:"\e612"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-ok:before{content:"\e605"}.layui-icon-layer:before{content:"\e638"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-group:before{content:"\e613"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-link:before{content:"\e64c"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-log:before{content:"\e60e"}.layui-icon-key:before{content:"\e683"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-return:before{content:"\e65c"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-form:before{content:"\e63c"}.layui-icon-cart:before{content:"\e657"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-heart-fill:before{content:"\e68f"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-ios:before{content:"\e680"}.layui-icon-at:before{content:"\e687"}.layui-icon-fire:before{content:"\e756"}.layui-icon-set:before{content:"\e716"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-tips:before{content:"\e702"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-bluetooth:before{content:"\e689"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-addition:before{content:"\e624"}.layui-icon-home:before{content:"\e68e"}.layui-icon-time:before{content:"\e68d"}.layui-icon-user:before{content:"\e770"}.layui-icon-notice:before{content:"\e667"}.layui-icon-chrome:before{content:"\e68a"}.layui-icon-edge:before{content:"\e68b"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-voice:before{content:"\e688"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-heart:before{content:"\e68c"}.layui-icon-logout:before{content:"\e682"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-template:before{content:"\e663"}.layui-icon-transfer:before{content:"\e691"}.layui-icon-auz:before{content:"\e672"}.layui-icon-console:before{content:"\e665"}.layui-icon-app:before{content:"\e653"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-next:before{content:"\e65b"}.layui-icon-component:before{content:"\e857"}.layui-icon-android:before{content:"\e684"}.layui-icon-more:before{content:"\e65f"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-camera:before{content:"\e660"}.layui-icon-note:before{content:"\e66e"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-password:before{content:"\e673"}.layui-icon-senior:before{content:"\e674"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-service:before{content:"\e626"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-print:before{content:"\e66d"}.layui-icon-cols:before{content:"\e610"}.layui-icon-wifi:before{content:"\e7e0"}.layui-icon-export:before{content:"\e67d"}.layui-icon-rss:before{content:"\e808"}.layui-icon-slider:before{content:"\e714"}.layui-icon-email:before{content:"\e618"}.layui-icon-subtraction:before{content:"\e67e"}.layui-icon-mike:before{content:"\e6dc"}.layui-icon-light:before{content:"\e748"}.layui-icon-gift:before{content:"\e627"}.layui-icon-mute:before{content:"\e685"}.layui-icon-reduce-circle:before{content:"\e616"}.layui-icon-music:before{content:"\e690"}.layui-main{width:1140px;margin:0 auto}.layui-header{z-index:1000;height:60px}.layui-header a:hover{transition:all .5s;-webkit-transition:all .5s}.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px}.layui-side-scroll{position:relative;width:220px;height:100%}.layui-body{position:relative;left:200px;right:0;top:0;bottom:0;z-index:900;width:auto;box-sizing:border-box}.layui-layout-admin .layui-header{position:fixed;top:0;left:0;right:0;background-color:#23262E}.layui-layout-admin .layui-side{top:60px;width:200px;overflow-x:hidden}.layui-layout-admin .layui-body{position:absolute;top:60px;padding-bottom:44px}.layui-layout-admin .layui-main{width:auto;margin:0 15px}.layui-layout-admin .layui-footer{position:fixed;left:200px;right:0;bottom:0;z-index:990;height:44px;line-height:44px;padding:0 15px;box-shadow:-1px 0 4px rgb(0 0 0 / 12%);background-color:#FAFAFA}.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:#009688;font-size:16px}.layui-layout-admin .layui-header .layui-nav{background:0 0}.layui-layout-left{position:absolute!important;left:200px;top:0}.layui-layout-right{position:absolute!important;right:0;top:0}.layui-container{position:relative;margin:0 auto;padding:0 15px;box-sizing:border-box}.layui-fluid{position:relative;margin:0 auto;padding:0 15px}.layui-row:after,.layui-row:before{content:"";display:block;clear:both}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}.layui-col-xs-offset1{margin-left:8.33333333%}.layui-col-xs-offset2{margin-left:16.66666667%}.layui-col-xs-offset3{margin-left:25%}.layui-col-xs-offset4{margin-left:33.33333333%}.layui-col-xs-offset5{margin-left:41.66666667%}.layui-col-xs-offset6{margin-left:50%}.layui-col-xs-offset7{margin-left:58.33333333%}.layui-col-xs-offset8{margin-left:66.66666667%}.layui-col-xs-offset9{margin-left:75%}.layui-col-xs-offset10{margin-left:83.33333333%}.layui-col-xs-offset11{margin-left:91.66666667%}.layui-col-xs-offset12{margin-left:100%}@media screen and (max-width:768px){.layui-hide-xs{display:none!important}.layui-show-xs-block{display:block!important}.layui-show-xs-inline{display:inline!important}.layui-show-xs-inline-block{display:inline-block!important}}@media screen and (min-width:768px){.layui-container{width:750px}.layui-hide-sm{display:none!important}.layui-show-sm-block{display:block!important}.layui-show-sm-inline{display:inline!important}.layui-show-sm-inline-block{display:inline-block!important}.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}.layui-col-sm-offset1{margin-left:8.33333333%}.layui-col-sm-offset2{margin-left:16.66666667%}.layui-col-sm-offset3{margin-left:25%}.layui-col-sm-offset4{margin-left:33.33333333%}.layui-col-sm-offset5{margin-left:41.66666667%}.layui-col-sm-offset6{margin-left:50%}.layui-col-sm-offset7{margin-left:58.33333333%}.layui-col-sm-offset8{margin-left:66.66666667%}.layui-col-sm-offset9{margin-left:75%}.layui-col-sm-offset10{margin-left:83.33333333%}.layui-col-sm-offset11{margin-left:91.66666667%}.layui-col-sm-offset12{margin-left:100%}}@media screen and (min-width:992px){.layui-container{width:970px}.layui-hide-md{display:none!important}.layui-show-md-block{display:block!important}.layui-show-md-inline{display:inline!important}.layui-show-md-inline-block{display:inline-block!important}.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}.layui-col-md-offset1{margin-left:8.33333333%}.layui-col-md-offset2{margin-left:16.66666667%}.layui-col-md-offset3{margin-left:25%}.layui-col-md-offset4{margin-left:33.33333333%}.layui-col-md-offset5{margin-left:41.66666667%}.layui-col-md-offset6{margin-left:50%}.layui-col-md-offset7{margin-left:58.33333333%}.layui-col-md-offset8{margin-left:66.66666667%}.layui-col-md-offset9{margin-left:75%}.layui-col-md-offset10{margin-left:83.33333333%}.layui-col-md-offset11{margin-left:91.66666667%}.layui-col-md-offset12{margin-left:100%}}@media screen and (min-width:1200px){.layui-container{width:1170px}.layui-hide-lg{display:none!important}.layui-show-lg-block{display:block!important}.layui-show-lg-inline{display:inline!important}.layui-show-lg-inline-block{display:inline-block!important}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}.layui-col-lg-offset1{margin-left:8.33333333%}.layui-col-lg-offset2{margin-left:16.66666667%}.layui-col-lg-offset3{margin-left:25%}.layui-col-lg-offset4{margin-left:33.33333333%}.layui-col-lg-offset5{margin-left:41.66666667%}.layui-col-lg-offset6{margin-left:50%}.layui-col-lg-offset7{margin-left:58.33333333%}.layui-col-lg-offset8{margin-left:66.66666667%}.layui-col-lg-offset9{margin-left:75%}.layui-col-lg-offset10{margin-left:83.33333333%}.layui-col-lg-offset11{margin-left:91.66666667%}.layui-col-lg-offset12{margin-left:100%}}.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}.layui-col-space2{margin:-1px}.layui-col-space2>*{padding:1px}.layui-col-space4{margin:-2px}.layui-col-space4>*{padding:2px}.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}.layui-col-space6{margin:-3px}.layui-col-space6>*{padding:3px}.layui-col-space8{margin:-4px}.layui-col-space8>*{padding:4px}.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}.layui-col-space14{margin:-7px}.layui-col-space14>*{padding:7px}.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}.layui-col-space16{margin:-8px}.layui-col-space16>*{padding:8px}.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}.layui-col-space24{margin:-12px}.layui-col-space24>*{padding:12px}.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}.layui-col-space26{margin:-13px}.layui-col-space26>*{padding:13px}.layui-col-space28{margin:-14px}.layui-col-space28>*{padding:14px}.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:1.6;border-left:5px solid #5FB878;border-radius:0 2px 2px 0;background-color:#FAFAFA}.layui-quote-nm{border-style:solid;border-width:1px 1px 1px 5px;background:0 0}.layui-elem-field{margin-bottom:10px;padding:0;border-width:1px;border-style:solid}.layui-elem-field legend{margin-left:20px;padding:0 10px;font-size:20px;font-weight:300}.layui-field-title{margin:10px 0 20px;border-width:1px 0 0}.layui-field-box{padding:15px}.layui-field-title .layui-field-box{padding:10px 0}.layui-progress{position:relative;height:6px;border-radius:20px;background-color:#eee}.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:6px;border-radius:20px;text-align:right;background-color:#5FB878;transition:all .3s;-webkit-transition:all .3s}.layui-progress-big,.layui-progress-big .layui-progress-bar{height:18px;line-height:18px}.layui-progress-text{position:relative;top:-20px;line-height:18px;font-size:12px;color:#666}.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:#FAFAFA;cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{display:none;padding:10px 15px;line-height:1.6;color:#666}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-card:last-child{margin-bottom:0}.layui-card-header{position:relative;height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f6f6f6;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-card-body{position:relative;padding:10px 15px;line-height:24px}.layui-card-body[pad15]{padding:15px}.layui-card-body[pad20]{padding:20px}.layui-card-body .layui-table{margin:5px 0}.layui-card .layui-tab{margin:0}.layui-panel{position:relative;border-width:1px;border-style:solid;border-radius:2px;box-shadow:1px 1px 4px rgb(0 0 0 / 8%);background-color:#fff;color:#666}.layui-bg-black,.layui-bg-blue,.layui-bg-cyan,.layui-bg-green,.layui-bg-orange,.layui-bg-red{color:#fff!important}.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid #eee;background-color:#fff}.layui-border,.layui-border-black,.layui-border-blue,.layui-border-cyan,.layui-border-green,.layui-border-orange,.layui-border-red{border-width:1px;border-style:solid}.layui-auxiliar-moving{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:0 0;z-index:9999999999}.layui-form-label,.layui-form-mid,.layui-form-select,.layui-input-block,.layui-input-inline,.layui-textarea{position:relative}.layui-bg-red{background-color:#FF5722!important}.layui-bg-orange{background-color:#FFB800!important}.layui-bg-green{background-color:#009688!important}.layui-bg-cyan{background-color:#2F4056!important}.layui-bg-blue{background-color:#1E9FFF!important}.layui-bg-black{background-color:#393D49!important}.layui-bg-gray{background-color:#FAFAFA!important;color:#666!important}.layui-badge-rim,.layui-border,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-layedit,.layui-layedit-tool,.layui-panel,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color:#eee}.layui-border{color:#666!important}.layui-border-red{border-color:#FF5722!important;color:#FF5722!important}.layui-border-orange{border-color:#FFB800!important;color:#FFB800!important}.layui-border-green{border-color:#009688!important;color:#009688!important}.layui-border-cyan{border-color:#2F4056!important;color:#2F4056!important}.layui-border-blue{border-color:#1E9FFF!important;color:#1E9FFF!important}.layui-border-black{border-color:#393D49!important;color:#393D49!important}.layui-timeline-item:before{background-color:#eee}.layui-text{line-height:1.6;font-size:14px;color:#666}.layui-text h1,.layui-text h2,.layui-text h3{font-weight:500;color:#333}.layui-text h1{font-size:30px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}.layui-text a:not(.layui-btn){color:#01AAED}.layui-text a:not(.layui-btn):hover{text-decoration:underline}.layui-text ul{padding:5px 0 5px 15px}.layui-text ul li{margin-top:5px;list-style-type:disc}.layui-text em,.layui-word-aux{color:#999!important;padding-left:5px!important;padding-right:5px!important}.layui-font-12{font-size:12px}.layui-font-14{font-size:14px}.layui-font-16{font-size:16px}.layui-font-18{font-size:18px}.layui-font-20{font-size:20px}.layui-font-red{color:#FF5722!important}.layui-font-orange{color:#FFB800!important}.layui-font-green{color:#009688!important}.layui-font-cyan{color:#2F4056!important}.layui-font-blue{color:#01AAED!important}.layui-font-black{color:#000!important}.layui-font-gray{color:#c2c2c2!important}.layui-btn{display:inline-block;height:38px;line-height:38px;padding:0 18px;border:1px solid transparent;background-color:#009688;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border-radius:2px;cursor:pointer}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.layui-btn:active{opacity:1;filter:alpha(opacity=100)}.layui-btn+.layui-btn{margin-left:10px}.layui-btn-container{font-size:0}.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px}.layui-btn-container .layui-btn+.layui-btn{margin-left:0}.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}.layui-btn-radius{border-radius:100px}.layui-btn .layui-icon{padding:0 2px;vertical-align:middle\9;vertical-align:bottom}.layui-btn-primary{border-color:#d2d2d2;background:0 0;color:#666}.layui-btn-primary:hover{border-color:#009688;color:#333}.layui-btn-normal{background-color:#1E9FFF}.layui-btn-warm{background-color:#FFB800}.layui-btn-danger{background-color:#FF5722}.layui-btn-checked{background-color:#5FB878}.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border-color:#eee;background-color:#FBFBFB;color:#d2d2d2;cursor:not-allowed;opacity:1}.layui-btn-lg{height:44px;line-height:44px;padding:0 25px;font-size:16px}.layui-btn-sm{height:30px;line-height:30px;padding:0 10px;font-size:12px}.layui-btn-xs{height:22px;line-height:22px;padding:0 5px;font-size:12px}.layui-btn-xs i{font-size:12px!important}.layui-btn-group{display:inline-block;vertical-align:middle;font-size:0}.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-left:1px solid rgba(255,255,255,.5);border-radius:0}.layui-btn-group .layui-btn-primary{border-left:none}.layui-btn-group .layui-btn-primary:hover{border-color:#d2d2d2;color:#009688}.layui-btn-group .layui-btn:first-child{border-left:none;border-radius:2px 0 0 2px}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #d2d2d2}.layui-btn-group .layui-btn:last-child{border-radius:0 2px 2px 0}.layui-btn-group .layui-btn+.layui-btn{margin-left:0}.layui-btn-group+.layui-btn-group{margin-left:10px}.layui-btn-fluid{width:100%}.layui-input,.layui-select,.layui-textarea{height:38px;line-height:1.3;line-height:38px\9;border-width:1px;border-style:solid;background-color:#fff;border-radius:2px}.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-input,.layui-textarea{display:block;width:100%;padding-left:10px}.layui-input:hover,.layui-textarea:hover{border-color:#eee!important}.layui-input:focus,.layui-textarea:focus{border-color:#d2d2d2!important}.layui-textarea{min-height:100px;height:auto;line-height:20px;padding:6px 10px;resize:vertical}.layui-select{padding:0 10px}.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}.layui-form [lay-ignore]{display:initial}.layui-form-item{margin-bottom:15px;clear:both;*zoom:1}.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-form-label{float:left;display:block;padding:9px 15px;width:80px;font-weight:400;line-height:20px;text-align:right}.layui-form-label-col{display:block;float:none;padding:9px 0;line-height:20px;text-align:left}.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}.layui-input-block{margin-left:110px;min-height:36px}.layui-input-inline{display:inline-block;vertical-align:middle}.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}.layui-form-text .layui-input-inline{width:auto}.layui-form-mid{float:left;display:block;padding:9px 0!important;line-height:20px;margin-right:10px}.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:#FF5722!important}.layui-form-select .layui-input{padding-right:30px;cursor:pointer}.layui-form-select .layui-edge{position:absolute;right:10px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:#c2c2c2;border-top-style:solid;transition:all .3s;-webkit-transition:all .3s}.layui-form-select dl{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box}.layui-form-select dl dd,.layui-form-select dl dt{padding:0 10px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layui-form-select dl dt{font-size:12px;color:#999}.layui-form-select dl dd{cursor:pointer}.layui-form-select dl dd:hover{background-color:#F6F6F6;-webkit-transition:.5s all;transition:.5s all}.layui-form-select .layui-select-group dd{padding-left:20px}.layui-form-select dl dd.layui-select-tips{padding-left:10px!important;color:#999}.layui-form-select dl dd.layui-this{background-color:#5FB878;color:#fff}.layui-form-checkbox,.layui-form-select dl dd.layui-disabled{background-color:#fff}.layui-form-selected dl{display:block}.layui-form-checkbox,.layui-form-checkbox *,.layui-form-switch{display:inline-block;vertical-align:middle}.layui-form-selected .layui-edge{margin-top:-9px;-webkit-transform:rotate(180deg);transform:rotate(180deg);margin-top:-3px\9}:root .layui-form-selected .layui-edge{margin-top:-9px\0/IE9}.layui-form-selectup dl{top:auto;bottom:42px}.layui-select-none{margin:5px 0;text-align:center;color:#999}.layui-select-disabled .layui-disabled{border-color:#eee!important}.layui-select-disabled .layui-edge{border-top-color:#d2d2d2}.layui-form-checkbox{position:relative;height:30px;line-height:30px;margin-right:10px;padding-right:30px;cursor:pointer;font-size:0;-webkit-transition:.1s linear;transition:.1s linear;box-sizing:border-box}.layui-form-checkbox span{padding:0 10px;height:100%;font-size:14px;border-radius:2px 0 0 2px;background-color:#d2d2d2;color:#fff;overflow:hidden}.layui-form-checkbox:hover span{background-color:#c2c2c2}.layui-form-checkbox i{position:absolute;right:0;top:0;width:30px;height:28px;border:1px solid #d2d2d2;border-left:none;border-radius:0 2px 2px 0;color:#fff;font-size:20px;text-align:center}.layui-form-checkbox:hover i{border-color:#c2c2c2;color:#c2c2c2}.layui-form-checked,.layui-form-checked:hover{border-color:#5FB878}.layui-form-checked span,.layui-form-checked:hover span{background-color:#5FB878}.layui-form-checked i,.layui-form-checked:hover i{color:#5FB878}.layui-form-item .layui-form-checkbox{margin-top:4px}.layui-form-checkbox[lay-skin=primary]{height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;border:none!important;margin-right:0;padding-left:28px;padding-right:0;background:0 0}.layui-form-checkbox[lay-skin=primary] span{padding-left:0;padding-right:15px;line-height:18px;background:0 0;color:#666}.layui-form-checkbox[lay-skin=primary] i{right:auto;left:0;width:16px;height:16px;line-height:16px;border:1px solid #d2d2d2;font-size:12px;border-radius:2px;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-checkbox[lay-skin=primary]:hover i{border-color:#5FB878;color:#fff}.layui-form-checked[lay-skin=primary] i{border-color:#5FB878!important;background-color:#5FB878;color:#fff}.layui-checkbox-disbaled[lay-skin=primary] span{background:0 0!important;color:#c2c2c2!important}.layui-checkbox-disbaled[lay-skin=primary]:hover i{border-color:#d2d2d2}.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}.layui-form-switch{position:relative;height:22px;line-height:22px;min-width:35px;padding:0 5px;margin-top:8px;border:1px solid #d2d2d2;border-radius:20px;cursor:pointer;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch i{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:20px;background-color:#d2d2d2;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch em{position:relative;top:0;width:25px;margin-left:21px;padding:0!important;text-align:center!important;color:#999!important;font-style:normal!important;font-size:12px}.layui-form-onswitch{border-color:#5FB878;background-color:#5FB878}.layui-checkbox-disbaled,.layui-checkbox-disbaled i{border-color:#eee!important}.layui-form-onswitch i{left:100%;margin-left:-21px;background-color:#fff}.layui-form-onswitch em{margin-left:5px;margin-right:21px;color:#fff!important}.layui-checkbox-disbaled span{background-color:#eee!important}.layui-checkbox-disbaled em{color:#d2d2d2!important}.layui-checkbox-disbaled:hover i{color:#fff!important}[lay-radio]{display:none}.layui-form-radio,.layui-form-radio *{display:inline-block;vertical-align:middle}.layui-form-radio{line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:#c2c2c2}.layui-form-radio:hover *,.layui-form-radioed,.layui-form-radioed>i{color:#5FB878}.layui-radio-disbaled>i{color:#eee!important}.layui-radio-disbaled *{color:#c2c2c2!important}.layui-form-pane .layui-form-label{width:110px;padding:8px 15px;height:38px;line-height:20px;border-width:1px;border-style:solid;border-radius:2px 0 0 2px;text-align:center;background-color:#FBFBFB;overflow:hidden;box-sizing:border-box}.layui-form-pane .layui-input-inline{margin-left:-1px}.layui-form-pane .layui-input-block{margin-left:110px;left:-1px}.layui-form-pane .layui-input{border-radius:0 2px 2px 0}.layui-form-pane .layui-form-text .layui-form-label{float:none;width:100%;border-radius:2px;box-sizing:border-box;text-align:left}.layui-form-pane .layui-form-text .layui-input-inline{display:block;margin:0;top:-1px;clear:both}.layui-form-pane .layui-form-text .layui-input-block{margin:0;left:0;top:-1px}.layui-form-pane .layui-form-text .layui-textarea{min-height:100px;border-radius:0 0 2px 2px}.layui-form-pane .layui-form-checkbox{margin:4px 0 4px 10px}.layui-form-pane .layui-form-radio,.layui-form-pane .layui-form-switch{margin-top:6px;margin-left:10px}.layui-form-pane .layui-form-item[pane]{position:relative;border-width:1px;border-style:solid}.layui-form-pane .layui-form-item[pane] .layui-form-label{position:absolute;left:0;top:0;height:100%;border-width:0 1px 0 0}.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left:110px}@media screen and (max-width:450px){.layui-form-item .layui-form-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-form-item .layui-inline{display:block;margin-right:0;margin-bottom:20px;clear:both}.layui-form-item .layui-inline:after{content:'\20';clear:both;display:block;height:0}.layui-form-item .layui-input-inline{display:block;float:none;left:-3px;width:auto;margin:0 0 10px 112px}.layui-form-item .layui-input-inline+.layui-form-mid{margin-left:110px;top:-5px;padding:0}.layui-form-item .layui-form-checkbox{margin-right:5px;margin-bottom:5px}}.layui-layedit{border-width:1px;border-style:solid;border-radius:2px}.layui-layedit-tool{padding:3px 5px;border-bottom-width:1px;border-bottom-style:solid;font-size:0}.layedit-tool-fixed{position:fixed;top:0;border-top:1px solid #eee}.layui-layedit-tool .layedit-tool-mid,.layui-layedit-tool .layui-icon{display:inline-block;vertical-align:middle;text-align:center;font-size:14px}.layui-layedit-tool .layui-icon{position:relative;width:32px;height:30px;line-height:30px;margin:3px 5px;color:#777;cursor:pointer;border-radius:2px}.layui-layedit-tool .layui-icon:hover{color:#393D49}.layui-layedit-tool .layui-icon:active{color:#000}.layui-layedit-tool .layedit-tool-active{background-color:#eee;color:#000}.layui-layedit-tool .layui-disabled,.layui-layedit-tool .layui-disabled:hover{color:#d2d2d2;cursor:not-allowed}.layui-layedit-tool .layedit-tool-mid{width:1px;height:18px;margin:0 10px;background-color:#d2d2d2}.layedit-tool-html{width:50px!important;font-size:30px!important}.layedit-tool-b,.layedit-tool-code,.layedit-tool-help{font-size:16px!important}.layedit-tool-d,.layedit-tool-face,.layedit-tool-image,.layedit-tool-unlink{font-size:18px!important}.layedit-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-layedit-iframe iframe{display:block;width:100%}#LAY_layedit_code{overflow:hidden}.layui-laypage{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;margin:10px 0;font-size:0}.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:2px 0 0 2px}.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 2px 2px 0}.layui-laypage>:first-child{margin-left:0!important}.layui-laypage>:last-child{margin-right:0!important}.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid #eee}.layui-laypage a,.layui-laypage span{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding:0 15px;height:28px;line-height:28px;margin:0 -1px 5px 0;background-color:#fff;color:#333;font-size:12px}.layui-flow-more a *,.layui-laypage input,.layui-table-view select[lay-ignore]{display:inline-block}.layui-laypage a:hover{color:#009688}.layui-laypage em{font-style:normal}.layui-laypage .layui-laypage-spr{color:#999;font-weight:700}.layui-laypage a{text-decoration:none}.layui-laypage .layui-laypage-curr{position:relative}.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:-1px;top:-1px;padding:1px;width:100%;height:100%;background-color:#009688}.layui-laypage-em{border-radius:2px}.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none}.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}.layui-laypage select{height:22px;padding:3px;border-radius:2px;cursor:pointer}.layui-laypage .layui-laypage-skip{height:30px;line-height:30px;color:#999}.layui-laypage button,.layui-laypage input{height:30px;line-height:30px;border-radius:2px;vertical-align:top;background-color:#fff;box-sizing:border-box}.layui-laypage input{width:40px;margin:0 10px;padding:0 3px;text-align:center}.layui-laypage input:focus,.layui-laypage select:focus{border-color:#009688!important}.layui-laypage button{margin-left:10px;padding:0 10px;cursor:pointer}.layui-table,.layui-table-view{margin:10px 0}.layui-flow-more{margin:10px 0;text-align:center;color:#999;font-size:14px}.layui-flow-more a{height:32px;line-height:32px}.layui-flow-more a *{vertical-align:top}.layui-flow-more a cite{padding:0 20px;border-radius:3px;background-color:#eee;color:#333;font-style:normal}.layui-flow-more a cite:hover{opacity:.8}.layui-flow-more a i{font-size:30px;color:#737383}.layui-table{width:100%;background-color:#fff;color:#666}.layui-table tr{transition:all .3s;-webkit-transition:all .3s}.layui-table th{text-align:left;font-weight:400}.layui-table tbody tr:hover,.layui-table thead tr,.layui-table-click,.layui-table-header,.layui-table-hover,.layui-table-mend,.layui-table-patch,.layui-table-tool,.layui-table-total,.layui-table-total tr,.layui-table[lay-even] tr:nth-child(even){background-color:#FAFAFA}.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-width:1px;border-style:solid;border-color:#eee}.layui-table td,.layui-table th{position:relative;padding:9px 15px;min-height:20px;line-height:20px;font-size:14px}.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0 0 1px}.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0 1px 0 0}.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}.layui-table img{max-width:100px}.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding:15px 30px}.layui-table-view .layui-table[lay-size=lg] .layui-table-cell{height:40px;line-height:40px}.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{font-size:12px;padding:5px 10px}.layui-table-view .layui-table[lay-size=sm] .layui-table-cell{height:20px;line-height:20px}.layui-table[lay-data]{display:none}.layui-table-box{position:relative;overflow:hidden}.layui-table-view .layui-table{position:relative;width:auto;margin:0}.layui-table-view .layui-table[lay-skin=line]{border-width:0 1px 0 0}.layui-table-view .layui-table[lay-skin=row]{border-width:0 0 1px}.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:5px 0;border-top:none;border-left:none}.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}.layui-table-view .layui-table td{cursor:default}.layui-table-view .layui-table td[data-edit=text]{cursor:text}.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:18px;height:18px}.layui-table-view .layui-form-radio{line-height:0;padding:0}.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}.layui-table-init{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;z-index:110}.layui-table-init .layui-icon{position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;font-size:30px;color:#c2c2c2}.layui-table-header{border-width:0 0 1px;overflow:hidden}.layui-table-header .layui-table{margin-bottom:-1px}.layui-table-tool .layui-inline[lay-event]{position:relative;width:26px;height:26px;padding:5px;line-height:16px;margin-right:10px;text-align:center;color:#333;border:1px solid #ccc;cursor:pointer;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid #999}.layui-table-tool-temp{padding-right:120px}.layui-table-tool-self{position:absolute;right:17px;top:10px}.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}.layui-table-tool-panel{position:absolute;top:29px;left:-1px;padding:5px 0;min-width:150px;min-height:40px;border:1px solid #d2d2d2;text-align:left;overflow-y:auto;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-table-cell,.layui-table-tool-panel li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-table-tool-panel li{padding:0 10px;line-height:30px;-webkit-transition:.5s all;transition:.5s all}.layui-menu li,.layui-menu-body-title a:hover,.layui-menu-body-title>.layui-icon:hover{transition:all .3s}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%;padding-left:28px}.layui-table-tool-panel li:hover{background-color:#F6F6F6}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;border-width:0 0 0 1px;background-color:#fff}.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:#666}.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}.layui-table-sort .layui-table-sort-desc:hover{border-top-color:#666}.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:#000}.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:#000}.layui-table-cell{height:28px;line-height:28px;padding:0 15px;position:relative;box-sizing:border-box}.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}.layui-table-cell .layui-table-link{color:#01AAED}.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{padding:0;text-align:center}.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}.layui-table-body .layui-none{line-height:26px;padding:15px;text-align:center;color:#999}.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}.layui-table-fixed .layui-table-body{overflow:hidden}.layui-table-fixed-l{box-shadow:0 -1px 8px rgba(0,0,0,.08)}.layui-table-fixed-r{left:auto;right:-1px;border-width:0 0 0 1px;box-shadow:-1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px}.layui-table-tool{position:relative;z-index:890;width:100%;min-height:50px;line-height:30px;padding:10px 15px;border-width:0 0 1px}.layui-table-tool .layui-btn-container{margin-bottom:-10px}.layui-table-page,.layui-table-total{border-width:1px 0 0;margin-bottom:-1px;overflow:hidden}.layui-table-page{position:relative;width:100%;padding:7px 7px 0;height:41px;font-size:12px;white-space:nowrap}.layui-table-page>div{height:26px}.layui-table-page .layui-laypage{margin:0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:26px;line-height:26px;margin-bottom:10px;border:none;background:0 0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}.layui-table-page .layui-laypage span{margin-left:0;padding:0}.layui-table-page .layui-laypage .layui-laypage-prev{margin-left:-7px!important}.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left:0;top:0;padding:0}.layui-table-page .layui-laypage button,.layui-table-page .layui-laypage input{height:26px;line-height:26px}.layui-table-page .layui-laypage input{width:40px}.layui-table-page .layui-laypage button{padding:0 10px}.layui-table-page select{height:18px}.layui-table-patch .layui-table-cell{padding:0;width:30px}.layui-table-edit{position:absolute;left:0;top:0;width:100%;height:100%;padding:0 14px 1px;border-radius:0;box-shadow:1px 1px 20px rgba(0,0,0,.15)}.layui-table-edit:focus{border-color:#5FB878!important}select.layui-table-edit{padding:0 0 0 10px;border-color:#d2d2d2}.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0;box-sizing:content-box}.layui-colorpicker-alpha-slider,.layui-colorpicker-side-slider,.layui-menu,.layui-menu *,.layui-nav{box-sizing:border-box}.layui-table-view .layui-form-checkbox{top:-1px;height:26px;line-height:26px}.layui-table-view .layui-form-checkbox i{height:26px}.layui-table-grid .layui-table-cell{overflow:visible}.layui-table-grid-down{position:absolute;top:0;right:0;width:26px;height:100%;padding:5px 0;border-width:0 0 0 1px;text-align:center;background-color:#fff;color:#999;cursor:pointer}.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px}.layui-table-grid-down:hover{background-color:#fbfbfb}body .layui-table-tips .layui-layer-content{background:0 0;padding:0;box-shadow:0 1px 6px rgba(0,0,0,.12)}.layui-table-tips-main{margin:-44px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background-color:#fff;color:#666}.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background-color:#666;border-radius:50%;color:#fff}.layui-table-tips-c:hover{background-color:#777}.layui-table-tips-c:before{position:relative;right:-2px}.layui-upload-file{display:none!important;opacity:.01;filter:Alpha(opacity=1)}.layui-upload-drag,.layui-upload-form,.layui-upload-wrap{display:inline-block}.layui-upload-list{margin:10px 0}.layui-upload-choose{padding:0 10px;color:#999}.layui-upload-drag{position:relative;padding:30px;border:1px dashed #e2e2e2;background-color:#fff;text-align:center;cursor:pointer;color:#999}.layui-upload-drag .layui-icon{font-size:50px;color:#009688}.layui-upload-drag[lay-over]{border-color:#009688}.layui-upload-iframe{position:absolute;width:0;height:0;border:0;visibility:hidden}.layui-upload-wrap{position:relative;vertical-align:middle}.layui-upload-wrap .layui-upload-file{display:block!important;position:absolute;left:0;top:0;z-index:10;font-size:100px;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-menu{position:relative;margin:5px 0;background-color:#fff}.layui-menu li,.layui-menu-body-title a{padding:5px 15px}.layui-menu li{position:relative;margin:1px 0;width:calc(100% + 1px);line-height:22px;color:rgba(0,0,0,.8);font-size:14px;white-space:nowrap;cursor:pointer}.layui-menu li:hover{background-color:#F6F6F6}.layui-menu-item-parent:hover>.layui-menu-body-panel{display:block;animation-name:layui-fadein;animation-duration:.3s;animation-fill-mode:both;animation-delay:.2s}.layui-menu-item-group .layui-menu-body-title,.layui-menu-item-parent .layui-menu-body-title{padding-right:25px}.layui-menu .layui-menu-item-divider:hover,.layui-menu .layui-menu-item-group:hover,.layui-menu .layui-menu-item-none:hover{background:0 0;cursor:default}.layui-menu .layui-menu-item-group>ul{margin:5px 0 -5px}.layui-menu .layui-menu-item-group>.layui-menu-body-title{color:rgba(0,0,0,.35);user-select:none}.layui-menu .layui-menu-item-none{color:rgba(0,0,0,.35);cursor:default;text-align:center}.layui-menu .layui-menu-item-divider{margin:5px 0;padding:0;height:0;line-height:0;border-bottom:1px solid #eee;overflow:hidden}.layui-menu .layui-menu-item-down:hover,.layui-menu .layui-menu-item-up:hover{cursor:pointer}.layui-menu .layui-menu-item-up>.layui-menu-body-title{color:rgba(0,0,0,.8)}.layui-menu .layui-menu-item-up>ul{visibility:hidden;height:0;overflow:hidden}.layui-menu .layui-menu-item-down:hover>.layui-menu-body-title>.layui-icon,.layui-menu .layui-menu-item-up>.layui-menu-body-title:hover>.layui-icon{color:rgba(0,0,0,1)}.layui-menu .layui-menu-item-down>ul{visibility:visible;height:auto}.layui-breadcrumb,.layui-tree-btnGroup{visibility:hidden}.layui-menu .layui-menu-item-checked,.layui-menu .layui-menu-item-checked2{background-color:#F6F6F6!important;color:#5FB878}.layui-menu .layui-menu-item-checked a,.layui-menu .layui-menu-item-checked2 a{color:#5FB878}.layui-menu .layui-menu-item-checked:after{position:absolute;right:0;top:0;bottom:0;border-right:3px solid #5FB878;content:""}.layui-menu-body-title{position:relative;overflow:hidden;text-overflow:ellipsis}.layui-menu-body-title a{display:block;margin:-5px -15px;color:rgba(0,0,0,.8)}.layui-menu-body-title>.layui-icon{position:absolute;right:0;top:0;font-size:14px}.layui-menu-body-title>.layui-icon-right{right:-1px}.layui-menu-body-panel{display:none;position:absolute;top:-7px;left:100%;z-index:1000;margin-left:13px;padding:5px 0}.layui-transfer-active,.layui-transfer-box{display:inline-block;vertical-align:middle}.layui-menu-body-panel:before{content:"";position:absolute;width:20px;left:-16px;top:0;bottom:0}.layui-menu-body-panel-left{left:auto;right:100%;margin:0 13px}.layui-menu-body-panel-left:before{left:auto;right:-16px}.layui-menu-lg li{line-height:32px}.layui-menu-lg .layui-menu-body-title a:hover,.layui-menu-lg li:hover{background:0 0;color:#5FB878}.layui-menu-lg li .layui-menu-body-panel{margin-left:14px}.layui-menu-lg li .layui-menu-body-panel-left{margin:0 15px}.layui-dropdown{position:absolute;left:-999999px;top:-999999px;z-index:66666666;margin:5px 0;min-width:100px}.layui-dropdown:before{content:"";position:absolute;width:100%;height:6px;left:0;top:-6px}.layui-transfer-box,.layui-transfer-header,.layui-transfer-search{border-width:0;border-style:solid;border-color:#eee}.layui-transfer-box{position:relative;border-width:1px;width:200px;height:360px;border-radius:2px;background-color:#fff}.layui-transfer-box .layui-form-checkbox{width:100%;margin:0!important}.layui-transfer-header{height:38px;line-height:38px;padding:0 10px;border-bottom-width:1px}.layui-transfer-search{position:relative;padding:10px;border-bottom-width:1px}.layui-transfer-search .layui-input{height:32px;padding-left:30px;font-size:12px}.layui-transfer-search .layui-icon-search{position:absolute;left:20px;top:50%;margin-top:-8px;color:#666}.layui-transfer-active{margin:0 15px}.layui-transfer-active .layui-btn{display:block;margin:0;padding:0 15px;background-color:#5FB878;border-color:#5FB878;color:#fff}.layui-transfer-active .layui-btn-disabled{background-color:#FBFBFB;border-color:#eee;color:#d2d2d2}.layui-transfer-active .layui-btn:first-child{margin-bottom:15px}.layui-transfer-active .layui-btn .layui-icon{margin:0;font-size:14px!important}.layui-transfer-data{padding:5px 0;overflow:auto}.layui-transfer-data li{height:32px;line-height:32px;padding:0 10px}.layui-transfer-data li:hover{background-color:#F6F6F6;transition:.5s all}.layui-transfer-data .layui-none{padding:15px 10px;text-align:center;color:#999}.layui-nav{position:relative;padding:0 20px;background-color:#393D49;color:#fff;border-radius:2px;font-size:0}.layui-nav *{font-size:14px}.layui-nav .layui-nav-item{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle;line-height:60px}.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:#fff;color:rgba(255,255,255,.7);transition:all .3s;-webkit-transition:all .3s}.layui-nav .layui-this:after,.layui-nav-bar,.layui-nav-tree .layui-nav-itemed:after{position:absolute;left:0;top:0;width:0;height:5px;background-color:#5FB878;transition:all .2s;-webkit-transition:all .2s}.layui-nav-bar{z-index:1000}.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:#fff}.layui-nav .layui-this:after{content:"";top:auto;bottom:0;width:100%}.layui-nav-img{width:30px;height:30px;margin-right:10px;border-radius:50%}.layui-nav .layui-nav-more{content:"";width:0;height:0;border-style:solid dashed dashed;border-color:#fff transparent transparent;overflow:hidden;cursor:pointer;transition:all .2s;-webkit-transition:all .2s;position:absolute;top:50%;right:3px;margin-top:-4px;border-width:6px;border-top-color:rgba(255,255,255,.7)}.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{margin-top:-9px;border-style:dashed dashed solid;border-color:transparent transparent #fff}.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:36px;padding:5px 0;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #d2d2d2;background-color:#fff;z-index:100;border-radius:2px;white-space:nowrap}.layui-nav .layui-nav-child a{color:#333}.layui-nav .layui-nav-child a:hover{background-color:#F6F6F6;color:#5FB878}.layui-nav-child dd{position:relative}.layui-nav .layui-nav-child dd.layui-this a,.layui-nav-child dd.layui-this{background-color:#5FB878;color:#fff}.layui-nav-child dd.layui-this:after{display:none}.layui-nav-tree{width:200px;padding:0}.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:45px}.layui-nav-tree .layui-nav-item a{position:relative;height:45px;line-height:45px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-nav-tree .layui-nav-item a:hover{background-color:#4E5465}.layui-nav-tree .layui-nav-bar{width:5px;height:0;background-color:#009688}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color:#009688;color:#fff}.layui-nav-tree .layui-this:after{display:none}.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:#fff!important}.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;box-shadow:none}.layui-nav-tree .layui-nav-child a{height:40px;line-height:40px;color:#fff;color:rgba(255,255,255,.7)}.layui-nav-tree .layui-nav-child,.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:#fff}.layui-nav-tree .layui-nav-more{right:10px}.layui-nav-itemed>.layui-nav-child{display:block;padding:0;background-color:rgba(0,0,0,.3)!important}.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}.layui-bg-blue .layui-nav-bar,.layui-bg-blue .layui-nav-itemed:after,.layui-bg-blue .layui-this:after{background-color:#93D1FF}.layui-bg-blue .layui-nav-child dd.layui-this{background-color:#1E9FFF}.layui-bg-blue .layui-nav-itemed>a,.layui-nav-tree.layui-bg-blue .layui-nav-title a,.layui-nav-tree.layui-bg-blue .layui-nav-title a:hover{background-color:#007DDB!important}.layui-breadcrumb{font-size:0}.layui-breadcrumb>*{font-size:14px}.layui-breadcrumb a{color:#999!important}.layui-breadcrumb a:hover{color:#5FB878!important}.layui-breadcrumb a cite{color:#666;font-style:normal}.layui-breadcrumb span[lay-separator]{margin:0 10px;color:#999}.layui-tab{margin:10px 0;text-align:left!important}.layui-tab[overflow]>.layui-tab-title{overflow:hidden}.layui-tab-title{position:relative;left:0;height:40px;white-space:nowrap;font-size:0;border-bottom-width:1px;border-bottom-style:solid;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;font-size:14px;transition:all .2s;-webkit-transition:all .2s;position:relative;line-height:40px;min-width:65px;padding:0 15px;text-align:center;cursor:pointer}.layui-tab-title li a{display:block}.layui-tab-title .layui-this{color:#000}.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:"";width:100%;height:41px;border-width:1px;border-style:solid;border-bottom-color:#fff;border-radius:2px 2px 0 0;box-sizing:border-box;pointer-events:none}.layui-tab-bar{position:absolute;right:0;top:0;z-index:10;width:30px;height:39px;line-height:39px;border-width:1px;border-style:solid;border-radius:2px;text-align:center;background-color:#fff;cursor:pointer}.layui-tab-bar .layui-icon{position:relative;display:inline-block;top:3px;transition:all .3s;-webkit-transition:all .3s}.layui-tab-item{display:none}.layui-tab-more{padding-right:30px;height:auto!important;white-space:normal!important}.layui-tab-more li.layui-this:after{border-bottom-color:#eee;border-radius:2px}.layui-tab-more .layui-tab-bar .layui-icon{top:-2px;top:3px\9;-webkit-transform:rotate(180deg);transform:rotate(180deg)}:root .layui-tab-more .layui-tab-bar .layui-icon{top:-2px\0/IE9}.layui-tab-content{padding:15px 0}.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;top:1px;text-align:center;font-size:14px;color:#c2c2c2;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li .layui-tab-close:hover{border-radius:2px;background-color:#FF5722;color:#fff}.layui-tab-brief>.layui-tab-title .layui-this{color:#009688}.layui-tab-brief>.layui-tab-more li.layui-this:after,.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-radius:0;border-bottom:2px solid #5FB878}.layui-tab-brief[overflow]>.layui-tab-title .layui-this:after{top:-1px}.layui-tab-card{border-width:1px;border-style:solid;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.layui-tab-card>.layui-tab-title{background-color:#FAFAFA}.layui-tab-card>.layui-tab-title li{margin-right:-1px;margin-left:-1px}.layui-tab-card>.layui-tab-title .layui-this{background-color:#fff}.layui-tab-card>.layui-tab-title .layui-this:after{border-top:none;border-width:1px;border-bottom-color:#fff}.layui-tab-card>.layui-tab-title .layui-tab-bar{height:40px;line-height:40px;border-radius:0;border-top:none;border-right:none}.layui-tab-card>.layui-tab-more .layui-this{background:0 0;color:#5FB878}.layui-tab-card>.layui-tab-more .layui-this:after{border:none}.layui-timeline{padding-left:5px}.layui-timeline-item{position:relative;padding-bottom:20px}.layui-timeline-axis{position:absolute;left:-5px;top:0;z-index:10;width:20px;height:20px;line-height:20px;background-color:#fff;color:#5FB878;border-radius:50%;text-align:center;cursor:pointer}.layui-timeline-axis:hover{color:#FF5722}.layui-timeline-item:before{content:"";position:absolute;left:5px;top:0;z-index:0;width:1px;height:100%}.layui-timeline-item:first-child:before{display:block}.layui-timeline-item:last-child:before{display:none}.layui-timeline-content{padding-left:25px}.layui-timeline-title{position:relative;margin-bottom:10px;line-height:22px}.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:0 6px;font-size:12px;text-align:center;background-color:#FF5722;color:#fff;border-radius:2px}.layui-badge{height:18px;line-height:18px}.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%}.layui-badge-rim{height:18px;line-height:18px;border-width:1px;border-style:solid;background-color:#fff;color:#666}.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-5px 6px 0}.layui-nav .layui-badge{margin-top:-10px}.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}.layui-carousel{position:relative;left:0;top:0;background-color:#f8f8f8}.layui-carousel>[carousel-item]{position:relative;width:100%;height:100%;overflow:hidden}.layui-carousel>[carousel-item]:before{position:absolute;content:'\e63d';left:50%;top:50%;width:100px;line-height:20px;margin:-10px 0 0 -50px;text-align:center;color:#c2c2c2;font-family:layui-icon!important;font-size:30px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-carousel>[carousel-item]>*{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f8f8f8;transition-duration:.3s;-webkit-transition-duration:.3s}.layui-carousel-updown>*{-webkit-transition:.3s ease-in-out up;transition:.3s ease-in-out up}.layui-carousel-arrow{display:none\9;opacity:0;position:absolute;left:10px;top:50%;margin-top:-18px;width:36px;height:36px;line-height:36px;text-align:center;font-size:20px;border:0;border-radius:50%;background-color:rgba(0,0,0,.2);color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;cursor:pointer}.layui-carousel-arrow[lay-type=add]{left:auto!important;right:10px}.layui-carousel:hover .layui-carousel-arrow[lay-type=add],.layui-carousel[lay-arrow=always] .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow{opacity:1;left:20px}.layui-carousel[lay-arrow=none] .layui-carousel-arrow{display:none}.layui-carousel-arrow:hover,.layui-carousel-ind ul:hover{background-color:rgba(0,0,0,.35)}.layui-carousel:hover .layui-carousel-arrow{display:block\9;opacity:1;left:20px}.layui-carousel-ind{position:relative;top:-35px;width:100%;line-height:0!important;text-align:center;font-size:0}.layui-carousel[lay-indicator=outside]{margin-bottom:30px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind{top:10px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul{background-color:rgba(0,0,0,.5)}.layui-carousel[lay-indicator=none] .layui-carousel-ind{display:none}.layui-carousel-ind ul{display:inline-block;padding:5px;background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li{display:inline-block;width:10px;height:10px;margin:0 3px;font-size:14px;background-color:#eee;background-color:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li:hover{background-color:rgba(255,255,255,.7)}.layui-carousel-ind li.layui-this{background-color:#fff}.layui-carousel>[carousel-item]>.layui-carousel-next,.layui-carousel>[carousel-item]>.layui-carousel-prev,.layui-carousel>[carousel-item]>.layui-this{display:block}.layui-carousel>[carousel-item]>.layui-this{left:0}.layui-carousel>[carousel-item]>.layui-carousel-prev{left:-100%}.layui-carousel>[carousel-item]>.layui-carousel-next{left:100%}.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right{left:0}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left{left:-100%}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right{left:100%}.layui-carousel[lay-anim=updown] .layui-carousel-arrow{left:50%!important;top:20px;margin:0 0 0 -18px}.layui-carousel[lay-anim=updown]>[carousel-item]>*,.layui-carousel[lay-anim=fade]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=updown] .layui-carousel-arrow[lay-type=add]{top:auto!important;bottom:20px}.layui-carousel[lay-anim=updown] .layui-carousel-ind{position:absolute;top:50%;right:20px;width:auto;height:auto}.layui-carousel[lay-anim=updown] .layui-carousel-ind ul{padding:3px 5px}.layui-carousel[lay-anim=updown] .layui-carousel-ind li{display:block;margin:6px 0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next{top:100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right{top:100%}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev{opacity:0}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{opacity:1}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-right{opacity:0}.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999}.layui-fixbar li{width:50px;height:50px;line-height:50px;margin-bottom:1px;text-align:center;cursor:pointer;font-size:30px;background-color:#9F9F9F;color:#fff;border-radius:2px;opacity:.95}.layui-fixbar li:hover{opacity:.85}.layui-fixbar li:active{opacity:1}.layui-fixbar .layui-fixbar-top{display:none;font-size:40px}body .layui-util-face{border:none;background:0 0}body .layui-util-face .layui-layer-content{padding:0;background-color:#fff;color:#666;box-shadow:none}.layui-util-face .layui-layer-TipsG{display:none}.layui-util-face ul{position:relative;width:372px;padding:10px;border:1px solid #D9D9D9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-util-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-util-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layui-code{position:relative;margin:10px 0;padding:15px;line-height:20px;border:1px solid #eee;border-left-width:6px;background-color:#FAFAFA;color:#333;font-family:Courier New;font-size:12px}.layui-rate,.layui-rate *{display:inline-block;vertical-align:middle}.layui-rate{padding:10px 5px 10px 0;font-size:0}.layui-rate li i.layui-icon{font-size:20px;color:#FFB800;margin-right:5px;transition:all .3s;-webkit-transition:all .3s}.layui-rate li i:hover{cursor:pointer;transform:scale(1.12);-webkit-transform:scale(1.12)}.layui-rate[readonly] li i:hover{cursor:default;transform:scale(1)}.layui-colorpicker{width:26px;height:26px;border:1px solid #eee;padding:5px;border-radius:2px;line-height:24px;display:inline-block;cursor:pointer;transition:all .3s;-webkit-transition:all .3s}.layui-colorpicker:hover{border-color:#d2d2d2}.layui-colorpicker.layui-colorpicker-lg{width:34px;height:34px;line-height:32px}.layui-colorpicker.layui-colorpicker-sm{width:24px;height:24px;line-height:22px}.layui-colorpicker.layui-colorpicker-xs{width:22px;height:22px;line-height:20px}.layui-colorpicker-trigger-bgcolor{display:block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px}.layui-colorpicker-trigger-span{display:block;height:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;text-align:center}.layui-colorpicker-trigger-i{display:inline-block;color:#FFF;font-size:12px}.layui-colorpicker-trigger-i.layui-icon-close{color:#999}.layui-colorpicker-main{position:absolute;z-index:66666666;width:280px;padding:7px;background:#FFF;border:1px solid #d2d2d2;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-colorpicker-main-wrapper{height:180px;position:relative}.layui-colorpicker-basis{width:260px;height:100%;position:relative}.layui-colorpicker-basis-white{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(90deg,#FFF,hsla(0,0%,100%,0))}.layui-colorpicker-basis-black{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(0deg,#000,transparent)}.layui-colorpicker-basis-cursor{width:10px;height:10px;border:1px solid #FFF;border-radius:50%;position:absolute;top:-3px;right:-3px;cursor:pointer}.layui-colorpicker-side{position:absolute;top:0;right:0;width:12px;height:100%;background:linear-gradient(red,#FF0,#0F0,#0FF,#00F,#F0F,red)}.layui-colorpicker-side-slider{width:100%;height:5px;box-shadow:0 0 1px #888;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;left:0}.layui-colorpicker-main-alpha{display:none;height:12px;margin-top:7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-alpha-bgcolor{height:100%;position:relative}.layui-colorpicker-alpha-slider{width:5px;height:100%;box-shadow:0 0 1px #888;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;top:0}.layui-colorpicker-main-pre{padding-top:7px;font-size:0}.layui-colorpicker-pre{width:20px;height:20px;border-radius:2px;display:inline-block;margin-left:6px;margin-bottom:7px;cursor:pointer}.layui-colorpicker-pre:nth-child(11n+1){margin-left:0}.layui-colorpicker-pre-isalpha{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-pre.layui-this{box-shadow:0 0 3px 2px rgba(0,0,0,.15)}.layui-colorpicker-pre>div{height:100%;border-radius:2px}.layui-colorpicker-main-input{text-align:right;padding-top:7px}.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin:0 0 0 10px}.layui-colorpicker-main-input div.layui-inline{float:left;margin-right:10px;font-size:14px}.layui-colorpicker-main-input input.layui-input{width:150px;height:30px;color:#666}.layui-slider{height:4px;background:#eee;border-radius:3px;position:relative;cursor:pointer}.layui-slider-bar{border-radius:3px;position:absolute;height:100%}.layui-slider-step{position:absolute;top:0;width:4px;height:4px;border-radius:50%;background:#FFF;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.layui-slider-wrap{width:36px;height:36px;position:absolute;top:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:10;text-align:center}.layui-slider-wrap-btn{width:12px;height:12px;border-radius:50%;background:#FFF;display:inline-block;vertical-align:middle;cursor:pointer;transition:.3s}.layui-slider-wrap:after{content:"";height:100%;display:inline-block;vertical-align:middle}.layui-slider-wrap-btn.layui-slider-hover,.layui-slider-wrap-btn:hover{transform:scale(1.2)}.layui-slider-wrap-btn.layui-disabled:hover{transform:scale(1)!important}.layui-slider-tips{position:absolute;top:-42px;z-index:66666666;white-space:nowrap;display:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:#FFF;background:#000;border-radius:3px;height:25px;line-height:25px;padding:0 10px}.layui-slider-tips:after{content:"";position:absolute;bottom:-12px;left:50%;margin-left:-6px;width:0;height:0;border-width:6px;border-style:solid;border-color:#000 transparent transparent}.layui-slider-input{width:70px;height:32px;border:1px solid #eee;border-radius:3px;font-size:16px;line-height:32px;position:absolute;right:0;top:-14px}.layui-slider-input-btn{position:absolute;top:0;right:0;width:20px;height:100%;border-left:1px solid #eee}.layui-slider-input-btn i{cursor:pointer;position:absolute;right:0;bottom:0;width:20px;height:50%;font-size:12px;line-height:16px;text-align:center;color:#999}.layui-slider-input-btn i:first-child{top:0;border-bottom:1px solid #eee}.layui-slider-input-txt{height:100%;font-size:14px}.layui-slider-input-txt input{height:100%;border:none}.layui-slider-input-btn i:hover{color:#009688}.layui-slider-vertical{width:4px;margin-left:33px}.layui-slider-vertical .layui-slider-bar{width:4px}.layui-slider-vertical .layui-slider-step{top:auto;left:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-wrap{top:auto;left:-16px;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-tips{top:auto;left:2px}@media \0screen{.layui-slider-wrap-btn{margin-left:-20px}.layui-slider-vertical .layui-slider-wrap-btn{margin-left:0;margin-bottom:-20px}.layui-slider-vertical .layui-slider-tips{margin-left:-8px}.layui-slider>span{margin-left:8px}}.layui-tree{line-height:22px}.layui-tree .layui-form-checkbox{margin:0!important}.layui-tree-set{width:100%;position:relative}.layui-tree-pack{display:none;padding-left:20px;position:relative}.layui-tree-iconClick,.layui-tree-main{display:inline-block;vertical-align:middle}.layui-tree-line .layui-tree-pack{padding-left:27px}.layui-tree-line .layui-tree-set .layui-tree-set:after{content:"";position:absolute;top:14px;left:-9px;width:17px;height:0;border-top:1px dotted #c0c4cc}.layui-tree-entry{position:relative;padding:3px 0;height:20px;white-space:nowrap}.layui-tree-entry:hover{background-color:#eee}.layui-tree-line .layui-tree-entry:hover{background-color:rgba(0,0,0,0)}.layui-tree-line .layui-tree-entry:hover .layui-tree-txt{color:#999;text-decoration:underline;transition:.3s}.layui-tree-main{cursor:pointer;padding-right:10px}.layui-tree-line .layui-tree-set:before{content:"";position:absolute;top:0;left:-9px;width:0;height:100%;border-left:1px dotted #c0c4cc}.layui-tree-line .layui-tree-set.layui-tree-setLineShort:before{height:13px}.layui-tree-line .layui-tree-set.layui-tree-setHide:before{height:0}.layui-tree-iconClick{position:relative;height:20px;line-height:20px;margin:0 10px;color:#c0c4cc}.layui-tree-icon{height:12px;line-height:12px;width:12px;text-align:center;border:1px solid #c0c4cc}.layui-tree-iconClick .layui-icon{font-size:18px}.layui-tree-icon .layui-icon{font-size:12px;color:#666}.layui-tree-iconArrow{padding:0 5px}.layui-tree-iconArrow:after{content:"";position:absolute;left:4px;top:3px;z-index:100;width:0;height:0;border-width:5px;border-style:solid;border-color:transparent transparent transparent #c0c4cc;transition:.5s}.layui-tree-btnGroup,.layui-tree-editInput{position:relative;vertical-align:middle;display:inline-block}.layui-tree-spread>.layui-tree-entry>.layui-tree-iconClick>.layui-tree-iconArrow:after{transform:rotate(90deg) translate(3px,4px)}.layui-tree-txt{display:inline-block;vertical-align:middle;color:#555}.layui-tree-search{margin-bottom:15px;color:#666}.layui-tree-btnGroup .layui-icon{display:inline-block;vertical-align:middle;padding:0 2px;cursor:pointer}.layui-tree-btnGroup .layui-icon:hover{color:#999;transition:.3s}.layui-tree-entry:hover .layui-tree-btnGroup{visibility:visible}.layui-tree-editInput{height:20px;line-height:20px;padding:0 3px;border:none;background-color:rgba(0,0,0,.05)}.layui-tree-emptyText{text-align:center;color:#999}.layui-anim{-webkit-animation-duration:.2s;-webkit-animation-fill-mode:both;animation-duration:.2s;animation-fill-mode:both}.layui-anim.layui-icon{display:inline-block}.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.layui-trans,.layui-trans a{transition:all .2s;-webkit-transition:all .2s}@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes layui-up{from{-webkit-transform:translate3d(0,100%,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{-webkit-animation-name:layui-up;animation-name:layui-up}@-webkit-keyframes layui-upbit{from{-webkit-transform:translate3d(0,15px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-upbit{from{transform:translate3d(0,15px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{-webkit-animation-name:layui-upbit;animation-name:layui-upbit}@keyframes layui-down{0%{opacity:.3;transform:translate3d(0,-100%,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-anim-down{animation-name:layui-down}@keyframes layui-downbit{0%{opacity:.3;transform:translate3d(0,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-anim-downbit{animation-name:layui-downbit}@-webkit-keyframes layui-scale{0%{opacity:.3;-webkit-transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale{0%{opacity:.3;-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-ms-transform:scale(1);transform:scale(1)}}.layui-anim-scale{-webkit-animation-name:layui-scale;animation-name:layui-scale}@-webkit-keyframes layui-scale-spring{0%{opacity:.5;-webkit-transform:scale(.5)}80%{opacity:.8;-webkit-transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{-webkit-animation-name:layui-scale-spring;animation-name:layui-scale-spring}@keyframes layui-scalesmall{0%{opacity:.3;transform:scale(1.5)}100%{opacity:1;transform:scale(1)}}.layui-anim-scalesmall{animation-name:layui-scalesmall}@keyframes layui-scalesmall-spring{0%{opacity:.3;transform:scale(1.5)}80%{opacity:.8;transform:scale(.9)}100%{opacity:1;transform:scale(1)}}.layui-anim-scalesmall-spring{animation-name:layui-scalesmall-spring}@-webkit-keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{-webkit-animation-name:layui-fadein;animation-name:layui-fadein}@-webkit-keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}.layui-anim-fadeout{-webkit-animation-name:layui-fadeout;animation-name:layui-fadeout} \ No newline at end of file diff --git a/lib/layui-v2.6.3/css/modules/code.css b/lib/layui-v2.6.3/css/modules/code.css new file mode 100755 index 0000000..0fee0c5 --- /dev/null +++ b/lib/layui-v2.6.3/css/modules/code.css @@ -0,0 +1 @@ +html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #eee;border-left-width:6px;background-color:#FAFAFA;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:40px;line-height:40px;border-bottom:1px solid #eee}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 10px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view .layui-code-ol li:first-child{padding-top:10px}.layui-code-view .layui-code-ol li:last-child{padding-bottom:10px}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}.layui-code-demo .layui-code{visibility:visible!important;margin:-15px;border-top:none;border-right:none;border-bottom:none}.layui-code-demo .layui-tab-content{padding:15px;border-top:none} \ No newline at end of file diff --git a/lib/layui-v2.6.3/css/modules/laydate/default/laydate.css b/lib/layui-v2.6.3/css/modules/laydate/default/laydate.css new file mode 100755 index 0000000..9f3064b --- /dev/null +++ b/lib/layui-v2.6.3/css/modules/laydate/default/laydate.css @@ -0,0 +1 @@ +.laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;animation-name:laydate-downbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@keyframes laydate-downbit{0%{opacity:.3;transform:translate3d(0,-5px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content,.layui-laydate-range .laydate-main-list-1 .layui-laydate-header{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#B5FFF8}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eee;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px} \ No newline at end of file diff --git a/lib/layui-v2.6.3/css/modules/layer/default/icon-ext.png b/lib/layui-v2.6.3/css/modules/layer/default/icon-ext.png new file mode 100755 index 0000000..bbbb669 Binary files /dev/null and b/lib/layui-v2.6.3/css/modules/layer/default/icon-ext.png differ diff --git a/lib/layui-v2.6.3/css/modules/layer/default/icon.png b/lib/layui-v2.6.3/css/modules/layer/default/icon.png new file mode 100755 index 0000000..3e17da8 Binary files /dev/null and b/lib/layui-v2.6.3/css/modules/layer/default/icon.png differ diff --git a/lib/layui-v2.6.3/css/modules/layer/default/layer.css b/lib/layui-v2.6.3/css/modules/layer/default/layer.css new file mode 100755 index 0000000..ef1db1d --- /dev/null +++ b/lib/layui-v2.6.3/css/modules/layer/default/layer.css @@ -0,0 +1 @@ +.layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) center center no-repeat #eee}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:50px;line-height:50px;border-bottom:1px solid #F0F0F0;font-size:14px;color:#333;overflow:hidden;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:17px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:1px -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#1E9FFF;background-color:#1E9FFF;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:300px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#E9E7E7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:260px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:300px;padding:0 20px;text-align:center;overflow:hidden;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:51px;border-left:1px solid #eee;border-right:1px solid #eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{-webkit-animation-duration:.8s;animation-duration:.8s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}} \ No newline at end of file diff --git a/lib/layui-v2.6.3/css/modules/layer/default/loading-0.gif b/lib/layui-v2.6.3/css/modules/layer/default/loading-0.gif new file mode 100755 index 0000000..6f3c953 Binary files /dev/null and b/lib/layui-v2.6.3/css/modules/layer/default/loading-0.gif differ diff --git a/lib/layui-v2.6.3/css/modules/layer/default/loading-1.gif b/lib/layui-v2.6.3/css/modules/layer/default/loading-1.gif new file mode 100755 index 0000000..db3a483 Binary files /dev/null and b/lib/layui-v2.6.3/css/modules/layer/default/loading-1.gif differ diff --git a/lib/layui-v2.6.3/css/modules/layer/default/loading-2.gif b/lib/layui-v2.6.3/css/modules/layer/default/loading-2.gif new file mode 100755 index 0000000..5bb90fd Binary files /dev/null and b/lib/layui-v2.6.3/css/modules/layer/default/loading-2.gif differ diff --git a/lib/layui-v2.6.3/font/iconfont.eot b/lib/layui-v2.6.3/font/iconfont.eot new file mode 100755 index 0000000..622d7ec Binary files /dev/null and b/lib/layui-v2.6.3/font/iconfont.eot differ diff --git a/lib/layui-v2.6.3/font/iconfont.svg b/lib/layui-v2.6.3/font/iconfont.svg new file mode 100755 index 0000000..999ca1f --- /dev/null +++ b/lib/layui-v2.6.3/font/iconfont.svg @@ -0,0 +1,554 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/layui-v2.6.3/font/iconfont.ttf b/lib/layui-v2.6.3/font/iconfont.ttf new file mode 100755 index 0000000..06e30f9 Binary files /dev/null and b/lib/layui-v2.6.3/font/iconfont.ttf differ diff --git a/lib/layui-v2.6.3/font/iconfont.woff b/lib/layui-v2.6.3/font/iconfont.woff new file mode 100755 index 0000000..66a1783 Binary files /dev/null and b/lib/layui-v2.6.3/font/iconfont.woff differ diff --git a/lib/layui-v2.6.3/font/iconfont.woff2 b/lib/layui-v2.6.3/font/iconfont.woff2 new file mode 100755 index 0000000..47e9980 Binary files /dev/null and b/lib/layui-v2.6.3/font/iconfont.woff2 differ diff --git a/lib/layui-v2.6.3/layui.js b/lib/layui-v2.6.3/layui.js new file mode 100755 index 0000000..cd9b970 --- /dev/null +++ b/lib/layui-v2.6.3/layui.js @@ -0,0 +1,12527 @@ +/** layui v2.6.3 | Released under the MIT license */ +;!function(t) { + "use strict"; + var e = document + , n = { + modules: {}, + status: {}, + timeout: 10, + event: {} + } + , r = function() { + this.v = "2.6.3" + } + , o = function() { + var t = e.currentScript ? e.currentScript.src : function() { + for (var t, n = e.scripts, r = n.length - 1, o = r; o > 0; o--) + if ("interactive" === n[o].readyState) { + t = n[o].src; + break + } + return t || n[r].src + }(); + return t.substring(0, t.lastIndexOf("/") + 1) + }() + , a = function(e, n) { + n = n || "log", + t.console && console[n] && console[n]("layui error hint: " + e) + } + , i = "undefined" != typeof opera && "[object Opera]" === opera.toString() + , u = n.builtin = { + lay: "lay", + layer: "layer", + laydate: "laydate", + laypage: "laypage", + laytpl: "laytpl", + layedit: "layedit", + form: "form", + upload: "upload", + dropdown: "dropdown", + transfer: "transfer", + tree: "tree", + table: "table", + element: "element", + rate: "rate", + colorpicker: "colorpicker", + slider: "slider", + carousel: "carousel", + flow: "flow", + util: "util", + code: "code", + jquery: "jquery", + all: "all", + "layui.all": "layui.all" + }; + r.prototype.cache = n, + r.prototype.define = function(t, e) { + var r = this + , o = "function" == typeof t + , a = function() { + var t = function(t, e) { + layui[t] = e, + n.status[t] = !0 + }; + return "function" == typeof e && e(function(r, o) { + t(r, o), + n.callback[r] = function() { + e(t) + } + }), + this + }; + return o && (e = t, + t = []), + r.use(t, a), + r + } + , + r.prototype.use = function(t, r, l) { + function c(t, e) { + var r = "PLaySTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/; + ("load" === t.type || r.test((t.currentTarget || t.srcElement).readyState)) && (n.modules[d] = e, + y.removeChild(m), + function o() { + return ++v > 1e3 * n.timeout / 4 ? a(d + " is not a valid module", "error") : void (n.status[d] ? s() : setTimeout(o, 4)) + }()) + } + function s() { + l.push(layui[d]), + t.length > 1 ? p.use(t.slice(1), r, l) : "function" == typeof r && function() { + return layui.jquery && "function" == typeof layui.jquery ? layui.jquery(function() { + r.apply(layui, l) + }) : void r.apply(layui, l) + }() + } + var p = this + , f = n.dir = n.dir ? n.dir : o + , y = e.getElementsByTagName("head")[0]; + t = function() { + return "string" == typeof t ? [t] : "function" == typeof t ? (r = t, + ["all"]) : t + }(); + var d = t[0] + , v = 0; + if (l = l || [], + n.host = n.host || (f.match(/\/\/([\s\S]+?)\//) || ["//" + location.host + "/"])[0], + 0 === t.length || layui["layui.all"] && u[d]) + return s(), + p; + var h = (u[d] ? f + "modules/" : /^\{\/\}/.test(p.modules[d]) ? "" : n.base || "") + (p.modules[d] || d) + ".js"; + if (h = h.replace(/^\{\/\}/, ""), + !n.modules[d] && layui[d] && (n.modules[d] = h), + n.modules[d]) + !function g() { + return ++v > 1e3 * n.timeout / 4 ? a(d + " is not a valid module", "error") : void ("string" == typeof n.modules[d] && n.status[d] ? s() : setTimeout(g, 4)) + }(); + else { + var m = e.createElement("script"); + m.async = !0, + m.charset = "utf-8", + m.src = h + function() { + var t = n.version === !0 ? n.v || (new Date).getTime() : n.version || ""; + return t ? "?v=" + t : "" + }(), + y.appendChild(m), + !m.attachEvent || m.attachEvent.toString && m.attachEvent.toString().indexOf("[native code") < 0 || i ? m.addEventListener("load", function(t) { + c(t, h) + }, !1) : m.attachEvent("onreadystatechange", function(t) { + c(t, h) + }), + n.modules[d] = h + } + return p + } + , + r.prototype.getStyle = function(e, n) { + var r = e.currentStyle ? e.currentStyle : t.getComputedStyle(e, null); + return r[r.getPropertyValue ? "getPropertyValue" : "getAttribute"](n) + } + , + r.prototype.link = function(t, r, o) { + var i = this + , u = e.createElement("link") + , l = e.getElementsByTagName("head")[0]; + "string" == typeof r && (o = r); + var c = (o || t).replace(/\.|\//g, "") + , s = u.id = "layuicss-" + c + , p = 0; + return u.rel = "stylesheet", + u.href = t + (n.debug ? "?v=" + (new Date).getTime() : ""), + u.media = "all", + e.getElementById(s) || l.appendChild(u), + "function" != typeof r ? i : (function f() { + return ++p > 1e3 * n.timeout / 100 ? a(t + " timeout") : void (1989 === parseInt(i.getStyle(e.getElementById(s), "width")) ? function() { + r() + }() : setTimeout(f, 100)) + }(), + i) + } + , + n.callback = {}, + r.prototype.factory = function(t) { + if (layui[t]) + return "function" == typeof n.callback[t] ? n.callback[t] : null + } + , + r.prototype.addcss = function(t, e, r) { + return layui.link(n.dir + "css/" + t, e, r) + } + , + r.prototype.img = function(t, e, n) { + var r = new Image; + return r.src = t, + r.complete ? e(r) : (r.onload = function() { + r.onload = null, + "function" == typeof e && e(r) + } + , + void (r.onerror = function(t) { + r.onerror = null, + "function" == typeof n && n(t) + } + )) + } + , + r.prototype.config = function(t) { + t = t || {}; + for (var e in t) + n[e] = t[e]; + return this + } + , + r.prototype.modules = function() { + var t = {}; + for (var e in u) + t[e] = u[e]; + return t + }(), + r.prototype.extend = function(t) { + var e = this; + t = t || {}; + for (var n in t) + e[n] || e.modules[n] ? a(n + " Module already exists", "error") : e.modules[n] = t[n]; + return e + } + , + r.prototype.router = function(t) { + var e = this + , t = t || location.hash + , n = { + path: [], + search: {}, + hash: (t.match(/[^#](#.*$)/) || [])[1] || "" + }; + return /^#\//.test(t) ? (t = t.replace(/^#\//, ""), + n.href = "/" + t, + t = t.replace(/([^#])(#.*$)/, "$1").split("/") || [], + e.each(t, function(t, e) { + /^\w+=/.test(e) ? function() { + e = e.split("="), + n.search[e[0]] = e[1] + }() : n.path.push(e) + }), + n) : n + } + , + r.prototype.url = function(t) { + var e = this + , n = { + pathname: function() { + var e = t ? function() { + var e = (t.match(/\.[^.]+?\/.+/) || [])[0] || ""; + return e.replace(/^[^\/]+/, "").replace(/\?.+/, "") + }() : location.pathname; + return e.replace(/^\//, "").split("/") + }(), + search: function() { + var n = {} + , r = (t ? function() { + var e = (t.match(/\?.+/) || [])[0] || ""; + return e.replace(/\#.+/, "") + }() : location.search).replace(/^\?+/, "").split("&"); + return e.each(r, function(t, e) { + var r = e.indexOf("=") + , o = function() { + return r < 0 ? e.substr(0, e.length) : 0 !== r && e.substr(0, r) + }(); + o && (n[o] = r > 0 ? e.substr(r + 1) : null) + }), + n + }(), + hash: e.router(function() { + return t ? (t.match(/#.+/) || [])[0] || "" : location.hash + }()) + }; + return n + } + , + r.prototype.data = function(e, n, r) { + if (e = e || "layui", + r = r || localStorage, + t.JSON && t.JSON.parse) { + if (null === n) + return delete r[e]; + n = "object" == typeof n ? n : { + key: n + }; + try { + var o = JSON.parse(r[e]) + } catch (a) { + var o = {} + } + return "value"in n && (o[n.key] = n.value), + n.remove && delete o[n.key], + r[e] = JSON.stringify(o), + n.key ? o[n.key] : o + } + } + , + r.prototype.sessionData = function(t, e) { + return this.data(t, e, sessionStorage) + } + , + r.prototype.device = function(e) { + var n = navigator.userAgent.toLowerCase() + , r = function(t) { + var e = new RegExp(t + "/([^\\s\\_\\-]+)"); + return t = (n.match(e) || [])[1], + t || !1 + } + , o = { + os: function() { + return /windows/.test(n) ? "windows" : /linux/.test(n) ? "linux" : /iphone|ipod|ipad|ios/.test(n) ? "ios" : /mac/.test(n) ? "mac" : void 0 + }(), + ie: function() { + return !!(t.ActiveXObject || "ActiveXObject"in t) && ((n.match(/msie\s(\d+)/) || [])[1] || "11") + }(), + weixin: r("micromessenger") + }; + return e && !o[e] && (o[e] = r(e)), + o.android = /android/.test(n), + o.ios = "ios" === o.os, + o.mobile = !(!o.android && !o.ios), + o + } + , + r.prototype.hint = function() { + return { + error: a + } + } + , + r.prototype.each = function(t, e) { + var n, r = this; + if ("function" != typeof e) + return r; + if (t = t || [], + t.constructor === Object) { + for (n in t) + if (e.call(t[n], n, t[n])) + break + } else + for (n = 0; n < t.length && !e.call(t[n], n, t[n]); n++) + ; + return r + } + , + r.prototype.sort = function(t, e, n) { + var r = JSON.parse(JSON.stringify(t || [])); + return e ? (r.sort(function(t, n) { + var r = /^-?\d+$/ + , o = t[e] + , a = n[e]; + return r.test(o) && (o = parseFloat(o)), + r.test(a) && (a = parseFloat(a)), + o && !a ? 1 : !o && a ? -1 : o > a ? 1 : o < a ? -1 : 0 + }), + n && r.reverse(), + r) : r + } + , + r.prototype.stope = function(e) { + e = e || t.event; + try { + e.stopPropagation() + } catch (n) { + e.cancelBubble = !0 + } + } + , + r.prototype.onevent = function(t, e, n) { + return "string" != typeof t || "function" != typeof n ? this : r.event(t, e, null, n) + } + , + r.prototype.event = r.event = function(t, e, r, o) { + var a = this + , i = null + , u = (e || "").match(/\((.*)\)$/) || [] + , l = (t + "." + e).replace(u[0], "") + , c = u[1] || "" + , s = function(t, e) { + var n = e && e.call(a, r); + n === !1 && null === i && (i = !1) + }; + return "LAYUI-EVENT-REMOVE" === r ? (delete (a.cache.event[l] || {})[c], + a) : o ? (n.event[l] = n.event[l] || {}, + n.event[l][c] = [o], + this) : (layui.each(n.event[l], function(t, e) { + return "{*}" === c ? void layui.each(e, s) : ("" === t && layui.each(e, s), + void (c && t === c && layui.each(e, s))) + }), + i) + } + , + r.prototype.on = function(t, e, n) { + var r = this; + return r.onevent.call(r, e, t, n) + } + , + r.prototype.off = function(t, e) { + var n = this; + return n.event.call(n, e, t, "LAYUI-EVENT-REMOVE") + } + , + t.layui = new r +}(window); +layui.define(function(a) { + var i = layui.cache; + layui.config({ + dir: i.dir.replace(/lay\/dest\/$/, "") + }), + a("layui.all", layui.v) +}); +!function() { + "use strict"; + var t = "lay" + , e = window.document + , n = function(t) { + return new r(t) + } + , r = function(t) { + for (var n = 0, r = "object" == typeof t ? [t] : (this.selector = t, + e.querySelectorAll(t || null)); n < r.length; n++) + this.push(r[n]) + }; + r.prototype = [], + r.prototype.constructor = r, + n.extend = function() { + var t = 1 + , e = arguments + , n = function(t, e) { + t = t || (e.constructor === Array ? [] : {}); + for (var r in e) + t[r] = e[r] && e[r].constructor === Object ? n(t[r], e[r]) : e[r]; + return t + }; + for (e[0] = "object" == typeof e[0] ? e[0] : {}; t < e.length; t++) + "object" == typeof e[t] && n(e[0], e[t]); + return e[0] + } + , + n.v = "1.0.0", + n.ie = function() { + var t = navigator.userAgent.toLowerCase(); + return !!(window.ActiveXObject || "ActiveXObject"in window) && ((t.match(/msie\s(\d+)/) || [])[1] || "11") + }(), + n.getPath = function() { + var t = e.currentScript ? e.currentScript.src : function() { + for (var t, n = e.scripts, r = n.length - 1, o = r; o > 0; o--) + if ("interactive" === n[o].readyState) { + t = n[o].src; + break + } + return t || n[r].src + }(); + return t.substring(0, t.lastIndexOf("/") + 1) + } + , + n.stope = function(t) { + t = t || window.event, + t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0 + } + , + n.each = function(t, e) { + var n, r = this; + if ("function" != typeof e) + return r; + if (t = t || [], + t.constructor === Object) { + for (n in t) + if (e.call(t[n], n, t[n])) + break + } else + for (n = 0; n < t.length && !e.call(t[n], n, t[n]); n++) + ; + return r + } + , + n.digit = function(t, e, n) { + var r = ""; + t = String(t), + e = e || 2; + for (var o = t.length; o < e; o++) + r += "0"; + return t < Math.pow(10, e) ? r + (0 | t) : t + } + , + n.elem = function(t, r) { + var o = e.createElement(t); + return n.each(r || {}, function(t, e) { + o.setAttribute(t, e) + }), + o + } + , + n.getStyle = function(t, e) { + var n = t.currentStyle ? t.currentStyle : window.getComputedStyle(t, null); + return n[n.getPropertyValue ? "getPropertyValue" : "getAttribute"](e) + } + , + n.link = function(t, r, o) { + var i = e.getElementsByTagName("head")[0] + , c = e.createElement("link"); + "string" == typeof r && (o = r); + var u = (o || t).replace(/\.|\//g, "") + , a = "layuicss-" + u + , s = 0; + c.rel = "stylesheet", + c.href = t, + c.id = a, + e.getElementById(a) || i.appendChild(c), + "function" == typeof r && !function l() { + return ++s > 80 ? window.console && console.error(u + ".css: Invalid") : void (1989 === parseInt(n.getStyle(e.getElementById(a), "width")) ? r() : setTimeout(l, 100)) + }() + } + , + n.hasScrollbar = function() { + return e.body.scrollHeight > (window.innerHeight || e.documentElement.clientHeight) + } + , + n.position = function(t, r, o) { + if (r) { + o = o || {}, + t !== e && t !== n("body")[0] || (o.clickType = "right"); + var i = "right" === o.clickType ? function() { + var t = o.e || window.event || {}; + return { + left: t.clientX, + top: t.clientY, + right: t.clientX, + bottom: t.clientY + } + }() : t.getBoundingClientRect() + , c = r.offsetWidth + , u = r.offsetHeight + , a = function(t) { + return t = t ? "scrollLeft" : "scrollTop", + e.body[t] | e.documentElement[t] + } + , s = function(t) { + return e.documentElement[t ? "clientWidth" : "clientHeight"] + } + , l = 5 + , f = i.left + , p = i.bottom; + f + c + l > s("width") && (f = s("width") - c - l), + p + u + l > s() && (i.top > u + l ? p = i.top - u - 2 * l : "right" === o.clickType && (p = s() - u - 2 * l, + p < 0 && (p = 0))); + var h = o.position; + if (h && (r.style.position = h), + r.style.left = f + ("fixed" === h ? 0 : a(1)) + "px", + r.style.top = p + ("fixed" === h ? 0 : a()) + "px", + !n.hasScrollbar()) { + var d = r.getBoundingClientRect(); + !o.SYSTEM_RELOAD && d.bottom + l > s() && (o.SYSTEM_RELOAD = !0, + setTimeout(function() { + n.position(t, r, o) + }, 50)) + } + } + } + , + n.options = function(t, e) { + var r = n(t) + , o = e || "lay-options"; + try { + return new Function("return " + (r.attr(o) || "{}"))() + } catch (i) { + return hint.error("parseerror:" + i, "error"), + {} + } + } + , + n.isTopElem = function(t) { + var r = [e, n("body")[0]] + , o = !1; + return n.each(r, function(e, n) { + if (n === t) + return o = !0 + }), + o + } + , + r.addStr = function(t, e) { + return t = t.replace(/\s+/, " "), + e = e.replace(/\s+/, " ").split(" "), + n.each(e, function(e, n) { + new RegExp("\\b" + n + "\\b").test(t) || (t = t + " " + n) + }), + t.replace(/^\s|\s$/, "") + } + , + r.removeStr = function(t, e) { + return t = t.replace(/\s+/, " "), + e = e.replace(/\s+/, " ").split(" "), + n.each(e, function(e, n) { + var r = new RegExp("\\b" + n + "\\b"); + r.test(t) && (t = t.replace(r, "")) + }), + t.replace(/\s+/, " ").replace(/^\s|\s$/, "") + } + , + r.prototype.find = function(t) { + var e = this + , r = 0 + , o = [] + , i = "object" == typeof t; + return this.each(function(n, c) { + for (var u = i ? [t] : c.querySelectorAll(t || null); r < u.length; r++) + o.push(u[r]); + e.shift() + }), + i || (e.selector = (e.selector ? e.selector + " " : "") + t), + n.each(o, function(t, n) { + e.push(n) + }), + e + } + , + r.prototype.each = function(t) { + return n.each.call(this, this, t) + } + , + r.prototype.addClass = function(t, e) { + return this.each(function(n, o) { + o.className = r[e ? "removeStr" : "addStr"](o.className, t) + }) + } + , + r.prototype.removeClass = function(t) { + return this.addClass(t, !0) + } + , + r.prototype.hasClass = function(t) { + var e = !1; + return this.each(function(n, r) { + new RegExp("\\b" + t + "\\b").test(r.className) && (e = !0) + }), + e + } + , + r.prototype.css = function(t, e) { + var r = this + , o = function(t) { + return isNaN(t) ? t : t + "px" + }; + return "string" == typeof t && void 0 === e ? function() { + if (r.length > 0) + return r[0].style[t] + }() : r.each(function(r, i) { + "object" == typeof t ? n.each(t, function(t, e) { + i.style[t] = o(e) + }) : i.style[t] = o(e) + }) + } + , + r.prototype.width = function(t) { + var e = this; + return void 0 === t ? function() { + if (e.length > 0) + return e[0].offsetWidth + }() : e.each(function(n, r) { + e.css("width", t) + }) + } + , + r.prototype.height = function(t) { + var e = this; + return void 0 === t ? function() { + if (e.length > 0) + return e[0].offsetHeight + }() : e.each(function(n, r) { + e.css("height", t) + }) + } + , + r.prototype.attr = function(t, e) { + var n = this; + return void 0 === e ? function() { + if (n.length > 0) + return n[0].getAttribute(t) + }() : n.each(function(n, r) { + r.setAttribute(t, e) + }) + } + , + r.prototype.removeAttr = function(t) { + return this.each(function(e, n) { + n.removeAttribute(t) + }) + } + , + r.prototype.html = function(t) { + return this.each(function(e, n) { + n.innerHTML = t + }) + } + , + r.prototype.val = function(t) { + return this.each(function(e, n) { + n.value = t + }) + } + , + r.prototype.append = function(t) { + return this.each(function(e, n) { + "object" == typeof t ? n.appendChild(t) : n.innerHTML = n.innerHTML + t + }) + } + , + r.prototype.remove = function(t) { + return this.each(function(e, n) { + t ? n.removeChild(t) : n.parentNode.removeChild(n) + }) + } + , + r.prototype.on = function(t, e) { + return this.each(function(n, r) { + r.attachEvent ? r.attachEvent("on" + t, function(t) { + t.target = t.srcElement, + e.call(r, t) + }) : r.addEventListener(t, e, !1) + }) + } + , + r.prototype.off = function(t, e) { + return this.each(function(n, r) { + r.detachEvent ? r.detachEvent("on" + t, e) : r.removeEventListener(t, e, !1) + }) + } + , + window.lay = n, + window.layui && layui.define && layui.define(function(e) { + e(t, n) + }) +}(); +layui.define(function(e) { + "use strict"; + var r = { + open: "{{", + close: "}}" + } + , c = { + exp: function(e) { + return new RegExp(e,"g") + }, + query: function(e, c, t) { + var o = ["#([\\s\\S])+?", "([^{#}])*?"][e || 0]; + return n((c || "") + r.open + o + r.close + (t || "")) + }, + escape: function(e) { + return String(e || "").replace(/&(?!#?[a-zA-Z0-9]+;)/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/"/g, """) + }, + error: function(e, r) { + var c = "Laytpl Error: "; + return "object" == typeof console && console.error(c + e + "\n" + (r || "")), + c + e + } + } + , n = c.exp + , t = function(e) { + this.tpl = e + }; + t.pt = t.prototype, + window.errors = 0, + t.pt.parse = function(e, t) { + var o = this + , p = e + , a = n("^" + r.open + "#", "") + , l = n(r.close + "$", ""); + e = e.replace(/\s+|\r|\t|\n/g, " ").replace(n(r.open + "#"), r.open + "# ").replace(n(r.close + "}"), "} " + r.close).replace(/\\/g, "\\\\").replace(n(r.open + "!(.+?)!" + r.close), function(e) { + return e = e.replace(n("^" + r.open + "!"), "").replace(n("!" + r.close), "").replace(n(r.open + "|" + r.close), function(e) { + return e.replace(/(.)/g, "\\$1") + }) + }).replace(/(?="|')/g, "\\").replace(c.query(), function(e) { + return e = e.replace(a, "").replace(l, ""), + '";' + e.replace(/\\/g, "") + ';view+="' + }).replace(c.query(1), function(e) { + var c = '"+('; + return e.replace(/\s/g, "") === r.open + r.close ? "" : (e = e.replace(n(r.open + "|" + r.close), ""), + /^=/.test(e) && (e = e.replace(/^=/, ""), + c = '"+_escape_('), + c + e.replace(/\\/g, "") + ')+"') + }), + e = '"use strict";var view = "' + e + '";return view;'; + try { + return o.cache = e = new Function("d, _escape_",e), + e(t, c.escape) + } catch (u) { + return delete o.cache, + c.error(u, p) + } + } + , + t.pt.render = function(e, r) { + var n, t = this; + return e ? (n = t.cache ? t.cache(e, c.escape) : t.parse(t.tpl, e), + r ? void r(n) : n) : c.error("no data") + } + ; + var o = function(e) { + return "string" != typeof e ? c.error("Template not found") : new t(e) + }; + o.config = function(e) { + e = e || {}; + for (var c in e) + r[c] = e[c] + } + , + o.v = "1.2.0", + e("laytpl", o) +}); +layui.define(function(e) { + "use strict"; + var a = document + , t = "getElementById" + , n = "getElementsByTagName" + , i = "laypage" + , r = "layui-disabled" + , u = function(e) { + var a = this; + a.config = e || {}, + a.config.index = ++s.index, + a.render(!0) + }; + u.prototype.type = function() { + var e = this.config; + if ("object" == typeof e.elem) + return void 0 === e.elem.length ? 2 : 3 + } + , + u.prototype.view = function() { + var e = this + , a = e.config + , t = a.groups = "groups"in a ? 0 | a.groups : 5; + a.layout = "object" == typeof a.layout ? a.layout : ["prev", "page", "next"], + a.count = 0 | a.count, + a.curr = 0 | a.curr || 1, + a.limits = "object" == typeof a.limits ? a.limits : [10, 20, 30, 40, 50], + a.limit = 0 | a.limit || 10, + a.pages = Math.ceil(a.count / a.limit) || 1, + a.curr > a.pages && (a.curr = a.pages), + t < 0 ? t = 1 : t > a.pages && (t = a.pages), + a.prev = "prev"in a ? a.prev : "上一页", + a.next = "next"in a ? a.next : "下一页"; + var n = a.pages > t ? Math.ceil((a.curr + (t > 1 ? 1 : 0)) / (t > 0 ? t : 1)) : 1 + , i = { + prev: function() { + return a.prev ? '' + a.prev + "" : "" + }(), + page: function() { + var e = []; + if (a.count < 1) + return ""; + n > 1 && a.first !== !1 && 0 !== t && e.push('' + (a.first || 1) + ""); + var i = Math.floor((t - 1) / 2) + , r = n > 1 ? a.curr - i : 1 + , u = n > 1 ? function() { + var e = a.curr + (t - i - 1); + return e > a.pages ? a.pages : e + }() : t; + for (u - r < t - 1 && (r = u - t + 1), + a.first !== !1 && r > 2 && e.push('…'); r <= u; r++) + r === a.curr ? e.push('" + r + "") : e.push('' + r + ""); + return a.pages > t && a.pages > u && a.last !== !1 && (u + 1 < a.pages && e.push('…'), + 0 !== t && e.push('' + (a.last || a.pages) + "")), + e.join("") + }(), + next: function() { + return a.next ? '' + a.next + "" : "" + }(), + count: '共 ' + a.count + '条 ', + limit: function() { + var e = ['" + }(), + refresh: ['', '', ""].join(""), + skip: function() { + return ['到第', '', '页', ""].join("") + }() + }; + return ['
    ', function() { + var e = []; + return layui.each(a.layout, function(a, t) { + i[t] && e.push(i[t]) + }), + e.join("") + }(), "
    "].join("") + } + , + u.prototype.jump = function(e, a) { + if (e) { + var t = this + , i = t.config + , r = e.children + , u = e[n]("button")[0] + , l = e[n]("input")[0] + , p = e[n]("select")[0] + , c = function() { + var e = 0 | l.value.replace(/\s|\D/g, ""); + e && (i.curr = e, + t.render()) + }; + if (a) + return c(); + for (var o = 0, y = r.length; o < y; o++) + "a" === r[o].nodeName.toLowerCase() && s.on(r[o], "click", function() { + var e = 0 | this.getAttribute("data-page"); + e < 1 || e > i.pages || (i.curr = e, + t.render()) + }); + p && s.on(p, "change", function() { + var e = this.value; + i.curr * e > i.count && (i.curr = Math.ceil(i.count / e)), + i.limit = e, + t.render() + }), + u && s.on(u, "click", function() { + c() + }) + } + } + , + u.prototype.skip = function(e) { + if (e) { + var a = this + , t = e[n]("input")[0]; + t && s.on(t, "keyup", function(t) { + var n = this.value + , i = t.keyCode; + /^(37|38|39|40)$/.test(i) || (/\D/.test(n) && (this.value = n.replace(/\D/, "")), + 13 === i && a.jump(e, !0)) + }) + } + } + , + u.prototype.render = function(e) { + var n = this + , i = n.config + , r = n.type() + , u = n.view(); + 2 === r ? i.elem && (i.elem.innerHTML = u) : 3 === r ? i.elem.html(u) : a[t](i.elem) && (a[t](i.elem).innerHTML = u), + i.jump && i.jump(i, e); + var s = a[t]("layui-laypage-" + i.index); + n.jump(s), + i.hash && !e && (location.hash = "!" + i.hash + "=" + i.curr), + n.skip(s) + } + ; + var s = { + render: function(e) { + var a = new u(e); + return a.index + }, + index: layui.laypage ? layui.laypage.index + 1e4 : 0, + on: function(e, a, t) { + return e.attachEvent ? e.attachEvent("on" + a, function(a) { + a.target = a.srcElement, + t.call(e, a) + }) : e.addEventListener(a, t, !1), + this + } + }; + e(i, s) +}); +!function(e) { + "use strict"; + var t = e.layui && layui.define + , a = { + getPath: e.lay && lay.getPath ? lay.getPath() : "", + link: function(t, a, l) { + n.path && e.lay && lay.link && lay.link(n.path + t, a, l) + } + } + , n = { + v: "5.2.1", + config: {}, + index: e.laydate && e.laydate.v ? 1e5 : 0, + path: a.getPath, + set: function(e) { + var t = this; + return t.config = lay.extend({}, t.config, e), + t + }, + ready: function(e) { + var l = "laydate" + , i = "" + , r = (t ? "modules/laydate/" : "theme/") + "default/laydate.css?v=" + n.v + i; + return t ? layui.addcss(r, e, l) : a.link(r, e, l), + this + } + } + , l = function() { + var e = this; + return { + hint: function(t) { + e.hint.call(e, t) + }, + config: e.config + } + } + , i = "laydate" + , r = ".layui-laydate" + , o = "layui-this" + , s = "laydate-disabled" + , y = [100, 2e5] + , d = "layui-laydate-static" + , m = "layui-laydate-list" + , c = "laydate-selected" + , u = "layui-laydate-hint" + , h = "layui-laydate-footer" + , f = ".laydate-btns-confirm" + , p = "laydate-time-text" + , g = ".laydate-btns-time" + , v = function(e) { + var t = this; + t.index = ++n.index, + t.config = lay.extend({}, t.config, n.config, e), + n.ready(function() { + t.init() + }) + }; + v.isLeapYear = function(e) { + return e % 4 === 0 && e % 100 !== 0 || e % 400 === 0 + } + , + v.prototype.config = { + type: "date", + range: !1, + format: "yyyy-MM-dd", + value: null, + isInitValue: !0, + min: "1900-1-1", + max: "2099-12-31", + trigger: "click", + show: !1, + showBottom: !0, + btns: ["clear", "now", "confirm"], + lang: "cn", + theme: "default", + position: null, + calendar: !1, + mark: {}, + zIndex: null, + done: null, + change: null + }, + v.prototype.lang = function() { + var e = this + , t = e.config + , a = { + cn: { + weeks: ["日", "一", "二", "三", "四", "五", "六"], + time: ["时", "分", "秒"], + timeTips: "选择时间", + startTime: "开始时间", + endTime: "结束时间", + dateTips: "返回日期", + month: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"], + tools: { + confirm: "确定", + clear: "清空", + now: "现在" + }, + timeout: "结束时间不能早于开始时间
    请重新选择", + invalidDate: "不在有效日期或时间范围内", + formatError: ["日期格式不合法
    必须遵循下述格式:
    ", "
    已为你重置"] + }, + en: { + weeks: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], + time: ["Hours", "Minutes", "Seconds"], + timeTips: "Select Time", + startTime: "Start Time", + endTime: "End Time", + dateTips: "Select Date", + month: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], + tools: { + confirm: "Confirm", + clear: "Clear", + now: "Now" + }, + timeout: "End time cannot be less than start Time
    Please re-select", + invalidDate: "Invalid date", + formatError: ["The date format error
    Must be followed:
    ", "
    It has been reset"] + } + }; + return a[t.lang] || a.cn + } + , + v.prototype.init = function() { + var t = this + , a = t.config + , n = "yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s" + , l = "static" === a.position + , i = { + year: "yyyy", + month: "yyyy-MM", + date: "yyyy-MM-dd", + time: "HH:mm:ss", + datetime: "yyyy-MM-dd HH:mm:ss" + }; + a.elem = lay(a.elem), + a.eventElem = lay(a.eventElem), + a.elem[0] && (a.range === !0 && (a.range = "-"), + i[a.type] || (e.console && console.error && console.error("laydate type error:'" + a.type + "' is not supported"), + a.type = "date"), + a.format === i.date && (a.format = i[a.type] || i.date), + t.format = a.format.match(new RegExp(n + "|.","g")) || [], + t.EXP_IF = "", + t.EXP_SPLIT = "", + lay.each(t.format, function(e, a) { + var l = new RegExp(n).test(a) ? "\\d{" + function() { + return new RegExp(n).test(t.format[0 === e ? e + 1 : e - 1] || "") ? /^yyyy|y$/.test(a) ? 4 : a.length : /^yyyy$/.test(a) ? "1,4" : /^y$/.test(a) ? "1,308" : "1,2" + }() + "}" : "\\" + a; + t.EXP_IF = t.EXP_IF + l, + t.EXP_SPLIT = t.EXP_SPLIT + "(" + l + ")" + }), + t.EXP_IF = new RegExp("^" + (a.range ? t.EXP_IF + "\\s\\" + a.range + "\\s" + t.EXP_IF : t.EXP_IF) + "$"), + t.EXP_SPLIT = new RegExp("^" + t.EXP_SPLIT + "$",""), + t.isInput(a.elem[0]) || "focus" === a.trigger && (a.trigger = "click"), + a.elem.attr("lay-key") || (a.elem.attr("lay-key", t.index), + a.eventElem.attr("lay-key", t.index)), + a.mark = lay.extend({}, a.calendar && "cn" === a.lang ? { + "0-1-1": "元旦", + "0-2-14": "情人", + "0-3-8": "妇女", + "0-3-12": "植树", + "0-4-1": "愚人", + "0-5-1": "劳动", + "0-5-4": "青年", + "0-6-1": "儿童", + "0-9-10": "教师", + "0-9-18": "国耻", + "0-10-1": "国庆", + "0-12-25": "圣诞" + } : {}, a.mark), + lay.each(["min", "max"], function(e, t) { + var n = [] + , l = []; + if ("number" == typeof a[t]) { + var i = a[t] + , r = (new Date).getTime() + , o = 864e5 + , s = new Date(i ? i < o ? r + i * o : i : r); + n = [s.getFullYear(), s.getMonth() + 1, s.getDate()], + i < o || (l = [s.getHours(), s.getMinutes(), s.getSeconds()]) + } else + n = (a[t].match(/\d+-\d+-\d+/) || [""])[0].split("-"), + l = (a[t].match(/\d+:\d+:\d+/) || [""])[0].split(":"); + a[t] = { + year: 0 | n[0] || (new Date).getFullYear(), + month: n[1] ? (0 | n[1]) - 1 : (new Date).getMonth(), + date: 0 | n[2] || (new Date).getDate(), + hours: 0 | l[0], + minutes: 0 | l[1], + seconds: 0 | l[2] + } + }), + t.elemID = "layui-laydate" + a.elem.attr("lay-key"), + (a.show || l) && t.render(), + l || t.events(), + a.value && a.isInitValue && (a.value.constructor === Date ? t.setValue(t.parse(0, t.systemDate(a.value))) : t.setValue(a.value))) + } + , + v.prototype.render = function() { + var e = this + , t = e.config + , a = e.lang() + , n = "static" === t.position + , l = e.elem = lay.elem("div", { + id: e.elemID, + "class": ["layui-laydate", t.range ? " layui-laydate-range" : "", n ? " " + d : "", t.theme && "default" !== t.theme && !/^#/.test(t.theme) ? " laydate-theme-" + t.theme : ""].join("") + }) + , i = e.elemMain = [] + , r = e.elemHeader = [] + , o = e.elemCont = [] + , s = e.table = [] + , y = e.footer = lay.elem("div", { + "class": h + }); + if (t.zIndex && (l.style.zIndex = t.zIndex), + lay.each(new Array(2), function(e) { + if (!t.range && e > 0) + return !0; + var n = lay.elem("div", { + "class": "layui-laydate-header" + }) + , l = [function() { + var e = lay.elem("i", { + "class": "layui-icon laydate-icon laydate-prev-y" + }); + return e.innerHTML = "", + e + }(), function() { + var e = lay.elem("i", { + "class": "layui-icon laydate-icon laydate-prev-m" + }); + return e.innerHTML = "", + e + }(), function() { + var e = lay.elem("div", { + "class": "laydate-set-ym" + }) + , t = lay.elem("span") + , a = lay.elem("span"); + return e.appendChild(t), + e.appendChild(a), + e + }(), function() { + var e = lay.elem("i", { + "class": "layui-icon laydate-icon laydate-next-m" + }); + return e.innerHTML = "", + e + }(), function() { + var e = lay.elem("i", { + "class": "layui-icon laydate-icon laydate-next-y" + }); + return e.innerHTML = "", + e + }()] + , y = lay.elem("div", { + "class": "layui-laydate-content" + }) + , d = lay.elem("table") + , m = lay.elem("thead") + , c = lay.elem("tr"); + lay.each(l, function(e, t) { + n.appendChild(t) + }), + m.appendChild(c), + lay.each(new Array(6), function(e) { + var t = d.insertRow(0); + lay.each(new Array(7), function(n) { + if (0 === e) { + var l = lay.elem("th"); + l.innerHTML = a.weeks[n], + c.appendChild(l) + } + t.insertCell(n) + }) + }), + d.insertBefore(m, d.children[0]), + y.appendChild(d), + i[e] = lay.elem("div", { + "class": "layui-laydate-main laydate-main-list-" + e + }), + i[e].appendChild(n), + i[e].appendChild(y), + r.push(l), + o.push(y), + s.push(d) + }), + lay(y).html(function() { + var e = [] + , l = []; + return "datetime" === t.type && e.push('' + a.timeTips + ""), + lay.each(t.btns, function(e, i) { + var r = a.tools[i] || "btn"; + t.range && "now" === i || (n && "clear" === i && (r = "cn" === t.lang ? "重置" : "Reset"), + l.push('' + r + "")) + }), + e.push('"), + e.join("") + }()), + lay.each(i, function(e, t) { + l.appendChild(t) + }), + t.showBottom && l.appendChild(y), + /^#/.test(t.theme)) { + var m = lay.elem("style") + , c = ["#{{id}} .layui-laydate-header{background-color:{{theme}};}", "#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g, e.elemID).replace(/{{theme}}/g, t.theme); + "styleSheet"in m ? (m.setAttribute("type", "text/css"), + m.styleSheet.cssText = c) : m.innerHTML = c, + lay(l).addClass("laydate-theme-molv"), + l.appendChild(m) + } + e.remove(v.thisElemDate), + n ? t.elem.append(l) : (document.body.appendChild(l), + e.position()), + e.checkDate().calendar(null, 0, "init"), + e.changeEvent(), + v.thisElemDate = e.elemID, + "function" == typeof t.ready && t.ready(lay.extend({}, t.dateTime, { + month: t.dateTime.month + 1 + })) + } + , + v.prototype.remove = function(e) { + var t = this + , a = (t.config, + lay("#" + (e || t.elemID))); + return a[0] ? (a.hasClass(d) || t.checkDate(function() { + a.remove(), + delete t.endDate + }), + t) : t + } + , + v.prototype.position = function() { + var e = this + , t = e.config; + return lay.position(e.bindElem || t.elem[0], e.elem, { + position: t.position + }), + e + } + , + v.prototype.hint = function(e) { + var t = this + , a = (t.config, + lay.elem("div", { + "class": u + })); + t.elem && (a.innerHTML = e || "", + lay(t.elem).find("." + u).remove(), + t.elem.appendChild(a), + clearTimeout(t.hinTimer), + t.hinTimer = setTimeout(function() { + lay(t.elem).find("." + u).remove() + }, 3e3)) + } + , + v.prototype.getAsYM = function(e, t, a) { + return a ? t-- : t++, + t < 0 && (t = 11, + e--), + t > 11 && (t = 0, + e++), + [e, t] + } + , + v.prototype.systemDate = function(e) { + var t = e || new Date; + return { + year: t.getFullYear(), + month: t.getMonth(), + date: t.getDate(), + hours: e ? e.getHours() : 0, + minutes: e ? e.getMinutes() : 0, + seconds: e ? e.getSeconds() : 0 + } + } + , + v.prototype.checkDate = function(e) { + var t, a, l = this, i = (new Date, + l.config), r = l.lang(), o = i.dateTime = i.dateTime || l.systemDate(), s = l.bindElem || i.elem[0], d = (l.isInput(s) ? "val" : "html", + l.isInput(s) ? s.value : "static" === i.position ? "" : s.innerHTML), m = function(e) { + e.year > y[1] && (e.year = y[1], + a = !0), + e.month > 11 && (e.month = 11, + a = !0), + e.hours > 23 && (e.hours = 0, + a = !0), + e.minutes > 59 && (e.minutes = 0, + e.hours++, + a = !0), + e.seconds > 59 && (e.seconds = 0, + e.minutes++, + a = !0), + t = n.getEndDate(e.month + 1, e.year), + e.date > t && (e.date = t, + a = !0) + }, c = function(e, t, n) { + var r = ["startTime", "endTime"]; + t = (t.match(l.EXP_SPLIT) || []).slice(1), + n = n || 0, + i.range && (l[r[n]] = l[r[n]] || {}), + lay.each(l.format, function(o, s) { + var d = parseFloat(t[o]); + t[o].length < s.length && (a = !0), + /yyyy|y/.test(s) ? (d < y[0] && (d = y[0], + a = !0), + e.year = d) : /MM|M/.test(s) ? (d < 1 && (d = 1, + a = !0), + e.month = d - 1) : /dd|d/.test(s) ? (d < 1 && (d = 1, + a = !0), + e.date = d) : /HH|H/.test(s) ? (d < 1 && (d = 0, + a = !0), + e.hours = d, + i.range && (l[r[n]].hours = d)) : /mm|m/.test(s) ? (d < 1 && (d = 0, + a = !0), + e.minutes = d, + i.range && (l[r[n]].minutes = d)) : /ss|s/.test(s) && (d < 1 && (d = 0, + a = !0), + e.seconds = d, + i.range && (l[r[n]].seconds = d)) + }), + m(e) + }; + return "limit" === e ? (m(o), + l) : (d = d || i.value, + "string" == typeof d && (d = d.replace(/\s+/g, " ").replace(/^\s|\s$/g, "")), + i.range && (l.endDate = l.endDate || lay.extend({}, o, function() { + var e = {} + , t = l.getAsYM(o.year, o.month); + return "year" === i.type ? e.year = o.year + 1 : "time" !== i.type && (e.year = t[0], + e.month = t[1]), + e + }())), + "string" == typeof d && d ? l.EXP_IF.test(d) ? i.range ? (d = d.split(" " + i.range + " "), + lay.each([i.dateTime, l.endDate], function(e, t) { + c(t, d[e], e) + })) : c(o, d) : (l.hint(r.formatError[0] + (i.range ? i.format + " " + i.range + " " + i.format : i.format) + r.formatError[1]), + a = !0) : d && d.constructor === Date ? i.dateTime = l.systemDate(d) : (i.dateTime = l.systemDate(), + delete l.startTime, + delete l.endTime), + m(o), + a && d && l.setValue(i.range ? l.endDate ? l.parse() : "" : l.parse()), + e && e(), + l) + } + , + v.prototype.mark = function(e, t) { + var a, n = this, l = n.config; + return lay.each(l.mark, function(e, n) { + var l = e.split("-"); + l[0] != t[0] && 0 != l[0] || l[1] != t[1] && 0 != l[1] || l[2] != t[2] || (a = n || t[2]) + }), + a && e.html('' + a + ""), + n + } + , + v.prototype.limit = function(e, t, a, n) { + var l, i = this, r = i.config, o = {}, y = r[a > 41 ? "endDate" : "dateTime"], d = lay.extend({}, y, t || {}); + return lay.each({ + now: d, + min: r.min, + max: r.max + }, function(e, t) { + o[e] = i.newDate(lay.extend({ + year: t.year, + month: t.month, + date: t.date + }, function() { + var e = {}; + return lay.each(n, function(a, n) { + e[n] = t[n] + }), + e + }())).getTime() + }), + l = o.now < o.min || o.now > o.max, + e && e[l ? "addClass" : "removeClass"](s), + l + } + , + v.prototype.thisDateTime = function(e) { + var t = this + , a = t.config; + return e ? t.endDate : a.dateTime + } + , + v.prototype.calendar = function(e, t, a) { + var l, i, r, s = this, d = s.config, t = t ? 1 : 0, m = e || s.thisDateTime(t), c = new Date, u = s.lang(), h = "date" !== d.type && "datetime" !== d.type, p = lay(s.table[t]).find("td"), g = lay(s.elemHeader[t][2]).find("span"); + return m.year < y[0] && (m.year = y[0], + s.hint(u.invalidDate)), + m.year > y[1] && (m.year = y[1], + s.hint(u.invalidDate)), + s.firstDate || (s.firstDate = lay.extend({}, m)), + c.setFullYear(m.year, m.month, 1), + l = c.getDay(), + i = n.getEndDate(m.month || 12, m.year), + r = n.getEndDate(m.month + 1, m.year), + lay.each(p, function(e, t) { + var a = [m.year, m.month] + , n = 0; + t = lay(t), + t.removeAttr("class"), + e < l ? (n = i - l + e, + t.addClass("laydate-day-prev"), + a = s.getAsYM(m.year, m.month, "sub")) : e >= l && e < r + l ? (n = e - l, + n + 1 === m.date && t.addClass(o)) : (n = e - r - l, + t.addClass("laydate-day-next"), + a = s.getAsYM(m.year, m.month)), + a[1]++, + a[2] = n + 1, + t.attr("lay-ymd", a.join("-")).html(a[2]), + s.mark(t, a).limit(t, { + year: a[0], + month: a[1] - 1, + date: a[2] + }, e) + }), + lay(g[0]).attr("lay-ym", m.year + "-" + (m.month + 1)), + lay(g[1]).attr("lay-ym", m.year + "-" + (m.month + 1)), + "cn" === d.lang ? (lay(g[0]).attr("lay-type", "year").html(m.year + "年"), + lay(g[1]).attr("lay-type", "month").html(m.month + 1 + "月")) : (lay(g[0]).attr("lay-type", "month").html(u.month[m.month]), + lay(g[1]).attr("lay-type", "year").html(m.year)), + h && (d.range ? e && (s.listYM = [[d.dateTime.year, d.dateTime.month + 1], [s.endDate.year, s.endDate.month + 1]], + s.list(d.type, 0).list(d.type, 1), + "time" === d.type ? s.setBtnStatus("时间", lay.extend({}, s.systemDate(), s.startTime), lay.extend({}, s.systemDate(), s.endTime)) : s.setBtnStatus(!0)) : (s.listYM = [[m.year, m.month + 1]], + s.list(d.type, 0))), + d.range && "init" === a && !e && s.calendar(s.endDate, 1), + d.range || s.limit(lay(s.footer).find(f), null, 0, ["hours", "minutes", "seconds"]), + s.setBtnStatus(), + s.stampRange(t, p), + s + } + , + v.prototype.list = function(e, t) { + var a = this + , n = a.config + , l = n.dateTime + , i = a.lang() + , r = n.range && "date" !== n.type && "datetime" !== n.type + , y = lay.elem("ul", { + "class": m + " " + { + year: "laydate-year-list", + month: "laydate-month-list", + time: "laydate-time-list" + }[e] + }) + , d = a.elemHeader[t] + , c = lay(d[2]).find("span") + , u = a.elemCont[t || 0] + , h = lay(u).find("." + m)[0] + , v = "cn" === n.lang + , T = v ? "年" : "" + , D = a.listYM[t] || {} + , M = ["hours", "minutes", "seconds"] + , x = ["startTime", "endTime"][t]; + if (D[0] < 1 && (D[0] = 1), + "year" === e) { + var C, w = C = D[0] - 7; + w < 1 && (w = C = 1), + lay.each(new Array(15), function(e) { + var l = lay.elem("li", { + "lay-ym": C + }) + , i = { + year: C + }; + C == D[0] && lay(l).addClass(o), + l.innerHTML = C + T, + y.appendChild(l), + C < a.firstDate.year ? (i.month = n.min.month, + i.date = n.min.date) : C >= a.firstDate.year && (i.month = n.max.month, + i.date = n.max.date), + a.limit(lay(l), i, t), + C++ + }), + lay(c[v ? 0 : 1]).attr("lay-ym", C - 8 + "-" + D[1]).html(w + T + " - " + (C - 1 + T)) + } else if ("month" === e) + lay.each(new Array(12), function(e) { + var l = lay.elem("li", { + "lay-ym": e + }) + , r = { + year: D[0], + month: e + }; + e + 1 == D[1] && lay(l).addClass(o), + l.innerHTML = i.month[e] + (v ? "月" : ""), + y.appendChild(l), + D[0] < a.firstDate.year ? r.date = n.min.date : D[0] >= a.firstDate.year && (r.date = n.max.date), + a.limit(lay(l), r, t) + }), + lay(c[v ? 0 : 1]).attr("lay-ym", D[0] + "-" + D[1]).html(D[0] + T); + else if ("time" === e) { + var k = function() { + lay(y).find("ol").each(function(e, n) { + lay(n).find("li").each(function(n, l) { + a.limit(lay(l), [{ + hours: n + }, { + hours: a[x].hours, + minutes: n + }, { + hours: a[x].hours, + minutes: a[x].minutes, + seconds: n + }][e], t, [["hours"], ["hours", "minutes"], ["hours", "minutes", "seconds"]][e]) + }) + }), + n.range || a.limit(lay(a.footer).find(f), a[x], 0, ["hours", "minutes", "seconds"]) + }; + n.range ? a[x] || (a[x] = { + hours: 0, + minutes: 0, + seconds: 0 + }) : a[x] = l, + lay.each([24, 60, 60], function(e, t) { + var n = lay.elem("li") + , l = ["

    " + i.time[e] + "

      "]; + lay.each(new Array(t), function(t) { + l.push("" + lay.digit(t, 2) + "") + }), + n.innerHTML = l.join("") + "
    ", + y.appendChild(n) + }), + k() + } + if (h && u.removeChild(h), + u.appendChild(y), + "year" === e || "month" === e) + lay(a.elemMain[t]).addClass("laydate-ym-show"), + lay(y).find("li").on("click", function() { + var i = 0 | lay(this).attr("lay-ym"); + if (!lay(this).hasClass(s)) { + 0 === t ? (l[e] = i, + a.limit(lay(a.footer).find(f), null, 0)) : a.endDate[e] = i; + var d = "year" === n.type || "month" === n.type; + d ? (lay(y).find("." + o).removeClass(o), + lay(this).addClass(o), + "month" === n.type && "year" === e && (a.listYM[t][0] = i, + r && (t ? l.year = i : a.endDate.year = i), + a.list("month", t))) : (a.checkDate("limit").calendar(null, t), + a.closeList()), + a.setBtnStatus(), + n.range || (("month" === n.type && "month" === e || "year" === n.type && "year" === e) && a.setValue(a.parse()).remove().done(), + a.done(null, "change")), + lay(a.footer).find(g).removeClass(s) + } + }); + else { + var E = lay.elem("span", { + "class": p + }) + , b = function() { + lay(y).find("ol").each(function(e) { + var t = this + , n = lay(t).find("li"); + t.scrollTop = 30 * (a[x][M[e]] - 2), + t.scrollTop <= 0 && n.each(function(e, a) { + if (!lay(this).hasClass(s)) + return t.scrollTop = 30 * (e - 2), + !0 + }) + }) + } + , H = lay(d[2]).find("." + p); + b(), + E.innerHTML = n.range ? [i.startTime, i.endTime][t] : i.timeTips, + lay(a.elemMain[t]).addClass("laydate-time-show"), + H[0] && H.remove(), + d[2].appendChild(E), + lay(y).find("ol").each(function(e) { + var t = this; + lay(t).find("li").on("click", function() { + var i = 0 | this.innerHTML; + lay(this).hasClass(s) || (n.range ? a[x][M[e]] = i : l[M[e]] = i, + lay(t).find("." + o).removeClass(o), + lay(this).addClass(o), + k(), + b(), + (a.endDate || "time" === n.type) && a.done(null, "change"), + a.setBtnStatus()) + }) + }) + } + return a + } + , + v.prototype.listYM = [], + v.prototype.closeList = function() { + var e = this; + e.config; + lay.each(e.elemCont, function(t, a) { + lay(this).find("." + m).remove(), + lay(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show") + }), + lay(e.elem).find("." + p).remove() + } + , + v.prototype.setBtnStatus = function(e, t, a) { + var n, l = this, i = l.config, r = l.lang(), o = lay(l.footer).find(f); + i.range && "time" !== i.type && (t = t || i.dateTime, + a = a || l.endDate, + n = l.newDate(t).getTime() > l.newDate(a).getTime(), + l.limit(null, t) || l.limit(null, a) ? o.addClass(s) : o[n ? "addClass" : "removeClass"](s), + e && n && l.hint("string" == typeof e ? r.timeout.replace(/日期/g, e) : r.timeout)) + } + , + v.prototype.parse = function(e, t) { + var a = this + , n = a.config + , l = t || (e ? lay.extend({}, a.endDate, a.endTime) : n.range ? lay.extend({}, n.dateTime, a.startTime) : n.dateTime) + , i = a.format.concat(); + return lay.each(i, function(e, t) { + /yyyy|y/.test(t) ? i[e] = lay.digit(l.year, t.length) : /MM|M/.test(t) ? i[e] = lay.digit(l.month + 1, t.length) : /dd|d/.test(t) ? i[e] = lay.digit(l.date, t.length) : /HH|H/.test(t) ? i[e] = lay.digit(l.hours, t.length) : /mm|m/.test(t) ? i[e] = lay.digit(l.minutes, t.length) : /ss|s/.test(t) && (i[e] = lay.digit(l.seconds, t.length)) + }), + n.range && !e ? i.join("") + " " + n.range + " " + a.parse(1) : i.join("") + } + , + v.prototype.newDate = function(e) { + return e = e || {}, + new Date(e.year || 1,e.month || 0,e.date || 1,e.hours || 0,e.minutes || 0,e.seconds || 0) + } + , + v.prototype.setValue = function(e) { + var t = this + , a = t.config + , n = t.bindElem || a.elem[0] + , l = t.isInput(n) ? "val" : "html"; + return "static" === a.position || lay(n)[l](e || ""), + this + } + , + v.prototype.stampRange = function(e, t) { + var a, n, l = this, i = l.config; + i.range && (a = l.newDate(i.dateTime).getTime(), + n = l.newDate(l.endDate).getTime(), + lay.each(t, function(t, i) { + var r = lay(i).attr("lay-ymd").split("-") + , o = l.newDate({ + year: r[0], + month: r[1] - 1, + date: r[2] + }).getTime(); + 0 == e ? o > a && lay(i).addClass(c) : o < n && lay(i).addClass(c) + })) + } + , + v.prototype.done = function(e, t) { + var a = this + , n = a.config + , l = lay.extend({}, lay.extend(n.dateTime, a.startTime)) + , i = lay.extend({}, lay.extend(a.endDate, a.endTime)); + return lay.each([l, i], function(e, t) { + "month"in t && lay.extend(t, { + month: t.month + 1 + }) + }), + e = e || [a.parse(), l, i], + "function" == typeof n[t || "done"] && n[t || "done"].apply(n, e), + a + } + , + v.prototype.choose = function(e, t) { + var a = this + , n = a.config + , l = a.thisDateTime(t) + , i = (lay(a.elem).find("td"), + e.attr("lay-ymd").split("-")); + i = { + year: 0 | i[0], + month: (0 | i[1]) - 1, + date: 0 | i[2] + }, + e.hasClass(s) || (lay.extend(l, i), + n.range ? (lay.each(["startTime", "endTime"], function(e, t) { + a[t] = a[t] || { + hours: 0, + minutes: 0, + seconds: 0 + } + }), + a.calendar(null, t)) : "static" === n.position ? a.calendar().done().done(null, "change") : "date" === n.type ? a.setValue(a.parse()).remove().done() : "datetime" === n.type && a.calendar().done(null, "change")) + } + , + v.prototype.tool = function(e, t) { + var a = this + , n = a.config + , l = a.lang() + , i = n.dateTime + , r = "static" === n.position + , o = { + datetime: function() { + lay(e).hasClass(s) || (a.list("time", 0), + n.range && a.list("time", 1), + lay(e).attr("lay-type", "date").html(a.lang().dateTips)) + }, + date: function() { + a.closeList(), + lay(e).attr("lay-type", "datetime").html(a.lang().timeTips) + }, + clear: function() { + a.setValue("").remove(), + r && (lay.extend(i, a.firstDate), + a.calendar()), + n.range && (delete a.endDate, + delete a.startTime, + delete a.endTime), + a.done(["", {}, {}]) + }, + now: function() { + var e = new Date; + lay.extend(i, a.systemDate(), { + hours: e.getHours(), + minutes: e.getMinutes(), + seconds: e.getSeconds() + }), + a.setValue(a.parse()).remove(), + r && a.calendar(), + a.done() + }, + confirm: function() { + if (n.range) { + if (lay(e).hasClass(s)) + return a.hint("time" === n.type ? l.timeout.replace(/日期/g, "时间") : l.timeout) + } else if (lay(e).hasClass(s)) + return a.hint(l.invalidDate); + a.done(), + a.setValue(a.parse()).remove() + } + }; + o[t] && o[t]() + } + , + v.prototype.change = function(e) { + var t = this + , a = t.config + , n = t.thisDateTime(e) + , l = a.range && ("year" === a.type || "month" === a.type) + , i = t.elemCont[e || 0] + , r = t.listYM[e] + , o = function(o) { + var s = lay(i).find(".laydate-year-list")[0] + , y = lay(i).find(".laydate-month-list")[0]; + return s && (r[0] = o ? r[0] - 15 : r[0] + 15, + t.list("year", e)), + y && (o ? r[0]-- : r[0]++, + t.list("month", e)), + (s || y) && (lay.extend(n, { + year: r[0] + }), + l && (n.year = r[0]), + a.range || t.done(null, "change"), + a.range || t.limit(lay(t.footer).find(f), { + year: r[0] + })), + t.setBtnStatus(), + s || y + }; + return { + prevYear: function() { + o("sub") || (n.year--, + t.checkDate("limit").calendar(null, e), + a.range || t.done(null, "change")) + }, + prevMonth: function() { + var l = t.getAsYM(n.year, n.month, "sub"); + lay.extend(n, { + year: l[0], + month: l[1] + }), + t.checkDate("limit").calendar(null, e), + a.range || t.done(null, "change") + }, + nextMonth: function() { + var l = t.getAsYM(n.year, n.month); + lay.extend(n, { + year: l[0], + month: l[1] + }), + t.checkDate("limit").calendar(null, e), + a.range || t.done(null, "change") + }, + nextYear: function() { + o() || (n.year++, + t.checkDate("limit").calendar(null, e), + a.range || t.done(null, "change")) + } + } + } + , + v.prototype.changeEvent = function() { + var e = this; + e.config; + lay(e.elem).on("click", function(e) { + lay.stope(e) + }), + lay.each(e.elemHeader, function(t, a) { + lay(a[0]).on("click", function(a) { + e.change(t).prevYear() + }), + lay(a[1]).on("click", function(a) { + e.change(t).prevMonth() + }), + lay(a[2]).find("span").on("click", function(a) { + var n = lay(this) + , l = n.attr("lay-ym") + , i = n.attr("lay-type"); + l && (l = l.split("-"), + e.listYM[t] = [0 | l[0], 0 | l[1]], + e.list(i, t), + lay(e.footer).find(g).addClass(s)) + }), + lay(a[3]).on("click", function(a) { + e.change(t).nextMonth() + }), + lay(a[4]).on("click", function(a) { + e.change(t).nextYear() + }) + }), + lay.each(e.table, function(t, a) { + var n = lay(a).find("td"); + n.on("click", function() { + e.choose(lay(this), t) + }) + }), + lay(e.footer).find("span").on("click", function() { + var t = lay(this).attr("lay-type"); + e.tool(this, t) + }) + } + , + v.prototype.isInput = function(e) { + return /input|textarea/.test(e.tagName.toLocaleLowerCase()) + } + , + v.prototype.events = function() { + var t = this + , a = t.config + , n = function(e, n) { + e.on(a.trigger, function() { + n && (t.bindElem = this), + t.render() + }) + }; + a.elem[0] && !a.elem[0].eventHandler && (n(a.elem, "bind"), + n(a.eventElem), + lay(document).on("click", function(e) { + e.target !== a.elem[0] && e.target !== a.eventElem[0] && e.target !== lay(a.closeStop)[0] && t.remove() + }).on("keydown", function(e) { + 13 === e.keyCode && lay("#" + t.elemID)[0] && t.elemID === v.thisElemDate && (e.preventDefault(), + lay(t.footer).find(f)[0].click()) + }), + lay(e).on("resize", function() { + return !(!t.elem || !lay(r)[0]) && void t.position() + }), + a.elem[0].eventHandler = !0) + } + , + n.render = function(e) { + var t = new v(e); + return l.call(t) + } + , + n.getEndDate = function(e, t) { + var a = new Date; + return a.setFullYear(t || a.getFullYear(), e || a.getMonth() + 1, 1), + new Date(a.getTime() - 864e5).getDate() + } + , + t ? (n.ready(), + layui.define("lay", function(e) { + n.path = layui.cache.dir, + e(i, n) + })) : "function" == typeof define && define.amd ? define(function() { + return n + }) : function() { + n.ready(), + e.laydate = n + }() +}(window); +!function(e, t) { + "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function(e) { + if (!e.document) + throw new Error("jQuery requires a window with a document"); + return t(e) + } + : t(e) +}("undefined" != typeof window ? window : this, function(e, t) { + function n(e) { + var t = !!e && "length"in e && e.length + , n = pe.type(e); + return "function" !== n && !pe.isWindow(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e) + } + function r(e, t, n) { + if (pe.isFunction(t)) + return pe.grep(e, function(e, r) { + return !!t.call(e, r, e) !== n + }); + if (t.nodeType) + return pe.grep(e, function(e) { + return e === t !== n + }); + if ("string" == typeof t) { + if (Ce.test(t)) + return pe.filter(t, e, n); + t = pe.filter(t, e) + } + return pe.grep(e, function(e) { + return pe.inArray(e, t) > -1 !== n + }) + } + function i(e, t) { + do + e = e[t]; + while (e && 1 !== e.nodeType); + return e + } + function o(e) { + var t = {}; + return pe.each(e.match(De) || [], function(e, n) { + t[n] = !0 + }), + t + } + function a() { + re.addEventListener ? (re.removeEventListener("DOMContentLoaded", s), + e.removeEventListener("load", s)) : (re.detachEvent("onreadystatechange", s), + e.detachEvent("onload", s)) + } + function s() { + (re.addEventListener || "load" === e.event.type || "complete" === re.readyState) && (a(), + pe.ready()) + } + function u(e, t, n) { + if (void 0 === n && 1 === e.nodeType) { + var r = "data-" + t.replace(_e, "-$1").toLowerCase(); + if (n = e.getAttribute(r), + "string" == typeof n) { + try { + n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : qe.test(n) ? pe.parseJSON(n) : n) + } catch (i) {} + pe.data(e, t, n) + } else + n = void 0 + } + return n + } + function l(e) { + var t; + for (t in e) + if (("data" !== t || !pe.isEmptyObject(e[t])) && "toJSON" !== t) + return !1; + return !0 + } + function c(e, t, n, r) { + if (He(e)) { + var i, o, a = pe.expando, s = e.nodeType, u = s ? pe.cache : e, l = s ? e[a] : e[a] && a; + if (l && u[l] && (r || u[l].data) || void 0 !== n || "string" != typeof t) + return l || (l = s ? e[a] = ne.pop() || pe.guid++ : a), + u[l] || (u[l] = s ? {} : { + toJSON: pe.noop + }), + "object" != typeof t && "function" != typeof t || (r ? u[l] = pe.extend(u[l], t) : u[l].data = pe.extend(u[l].data, t)), + o = u[l], + r || (o.data || (o.data = {}), + o = o.data), + void 0 !== n && (o[pe.camelCase(t)] = n), + "string" == typeof t ? (i = o[t], + null == i && (i = o[pe.camelCase(t)])) : i = o, + i + } + } + function f(e, t, n) { + if (He(e)) { + var r, i, o = e.nodeType, a = o ? pe.cache : e, s = o ? e[pe.expando] : pe.expando; + if (a[s]) { + if (t && (r = n ? a[s] : a[s].data)) { + pe.isArray(t) ? t = t.concat(pe.map(t, pe.camelCase)) : t in r ? t = [t] : (t = pe.camelCase(t), + t = t in r ? [t] : t.split(" ")), + i = t.length; + for (; i--; ) + delete r[t[i]]; + if (n ? !l(r) : !pe.isEmptyObject(r)) + return + } + (n || (delete a[s].data, + l(a[s]))) && (o ? pe.cleanData([e], !0) : fe.deleteExpando || a != a.window ? delete a[s] : a[s] = void 0) + } + } + } + function d(e, t, n, r) { + var i, o = 1, a = 20, s = r ? function() { + return r.cur() + } + : function() { + return pe.css(e, t, "") + } + , u = s(), l = n && n[3] || (pe.cssNumber[t] ? "" : "px"), c = (pe.cssNumber[t] || "px" !== l && +u) && Me.exec(pe.css(e, t)); + if (c && c[3] !== l) { + l = l || c[3], + n = n || [], + c = +u || 1; + do + o = o || ".5", + c /= o, + pe.style(e, t, c + l); + while (o !== (o = s() / u) && 1 !== o && --a) + } + return n && (c = +c || +u || 0, + i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], + r && (r.unit = l, + r.start = c, + r.end = i)), + i + } + function p(e) { + var t = ze.split("|") + , n = e.createDocumentFragment(); + if (n.createElement) + for (; t.length; ) + n.createElement(t.pop()); + return n + } + function h(e, t) { + var n, r, i = 0, o = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : void 0; + if (!o) + for (o = [], + n = e.childNodes || e; null != (r = n[i]); i++) + !t || pe.nodeName(r, t) ? o.push(r) : pe.merge(o, h(r, t)); + return void 0 === t || t && pe.nodeName(e, t) ? pe.merge([e], o) : o + } + function g(e, t) { + for (var n, r = 0; null != (n = e[r]); r++) + pe._data(n, "globalEval", !t || pe._data(t[r], "globalEval")) + } + function m(e) { + Be.test(e.type) && (e.defaultChecked = e.checked) + } + function y(e, t, n, r, i) { + for (var o, a, s, u, l, c, f, d = e.length, y = p(t), v = [], x = 0; x < d; x++) + if (a = e[x], + a || 0 === a) + if ("object" === pe.type(a)) + pe.merge(v, a.nodeType ? [a] : a); + else if (Ue.test(a)) { + for (u = u || y.appendChild(t.createElement("div")), + l = (We.exec(a) || ["", ""])[1].toLowerCase(), + f = Xe[l] || Xe._default, + u.innerHTML = f[1] + pe.htmlPrefilter(a) + f[2], + o = f[0]; o--; ) + u = u.lastChild; + if (!fe.leadingWhitespace && $e.test(a) && v.push(t.createTextNode($e.exec(a)[0])), + !fe.tbody) + for (a = "table" !== l || Ve.test(a) ? "" !== f[1] || Ve.test(a) ? 0 : u : u.firstChild, + o = a && a.childNodes.length; o--; ) + pe.nodeName(c = a.childNodes[o], "tbody") && !c.childNodes.length && a.removeChild(c); + for (pe.merge(v, u.childNodes), + u.textContent = ""; u.firstChild; ) + u.removeChild(u.firstChild); + u = y.lastChild + } else + v.push(t.createTextNode(a)); + for (u && y.removeChild(u), + fe.appendChecked || pe.grep(h(v, "input"), m), + x = 0; a = v[x++]; ) + if (r && pe.inArray(a, r) > -1) + i && i.push(a); + else if (s = pe.contains(a.ownerDocument, a), + u = h(y.appendChild(a), "script"), + s && g(u), + n) + for (o = 0; a = u[o++]; ) + Ie.test(a.type || "") && n.push(a); + return u = null, + y + } + function v() { + return !0 + } + function x() { + return !1 + } + function b() { + try { + return re.activeElement + } catch (e) {} + } + function w(e, t, n, r, i, o) { + var a, s; + if ("object" == typeof t) { + "string" != typeof n && (r = r || n, + n = void 0); + for (s in t) + w(e, s, n, r, t[s], o); + return e + } + if (null == r && null == i ? (i = n, + r = n = void 0) : null == i && ("string" == typeof n ? (i = r, + r = void 0) : (i = r, + r = n, + n = void 0)), + i === !1) + i = x; + else if (!i) + return e; + return 1 === o && (a = i, + i = function(e) { + return pe().off(e), + a.apply(this, arguments) + } + , + i.guid = a.guid || (a.guid = pe.guid++)), + e.each(function() { + pe.event.add(this, t, i, r, n) + }) + } + function T(e, t) { + return pe.nodeName(e, "table") && pe.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e + } + function C(e) { + return e.type = (null !== pe.find.attr(e, "type")) + "/" + e.type, + e + } + function E(e) { + var t = it.exec(e.type); + return t ? e.type = t[1] : e.removeAttribute("type"), + e + } + function N(e, t) { + if (1 === t.nodeType && pe.hasData(e)) { + var n, r, i, o = pe._data(e), a = pe._data(t, o), s = o.events; + if (s) { + delete a.handle, + a.events = {}; + for (n in s) + for (r = 0, + i = s[n].length; r < i; r++) + pe.event.add(t, n, s[n][r]) + } + a.data && (a.data = pe.extend({}, a.data)) + } + } + function k(e, t) { + var n, r, i; + if (1 === t.nodeType) { + if (n = t.nodeName.toLowerCase(), + !fe.noCloneEvent && t[pe.expando]) { + i = pe._data(t); + for (r in i.events) + pe.removeEvent(t, r, i.handle); + t.removeAttribute(pe.expando) + } + "script" === n && t.text !== e.text ? (C(t).text = e.text, + E(t)) : "object" === n ? (t.parentNode && (t.outerHTML = e.outerHTML), + fe.html5Clone && e.innerHTML && !pe.trim(t.innerHTML) && (t.innerHTML = e.innerHTML)) : "input" === n && Be.test(e.type) ? (t.defaultChecked = t.checked = e.checked, + t.value !== e.value && (t.value = e.value)) : "option" === n ? t.defaultSelected = t.selected = e.defaultSelected : "input" !== n && "textarea" !== n || (t.defaultValue = e.defaultValue) + } + } + function S(e, t, n, r) { + t = oe.apply([], t); + var i, o, a, s, u, l, c = 0, f = e.length, d = f - 1, p = t[0], g = pe.isFunction(p); + if (g || f > 1 && "string" == typeof p && !fe.checkClone && rt.test(p)) + return e.each(function(i) { + var o = e.eq(i); + g && (t[0] = p.call(this, i, o.html())), + S(o, t, n, r) + }); + if (f && (l = y(t, e[0].ownerDocument, !1, e, r), + i = l.firstChild, + 1 === l.childNodes.length && (l = i), + i || r)) { + for (s = pe.map(h(l, "script"), C), + a = s.length; c < f; c++) + o = l, + c !== d && (o = pe.clone(o, !0, !0), + a && pe.merge(s, h(o, "script"))), + n.call(e[c], o, c); + if (a) + for (u = s[s.length - 1].ownerDocument, + pe.map(s, E), + c = 0; c < a; c++) + o = s[c], + Ie.test(o.type || "") && !pe._data(o, "globalEval") && pe.contains(u, o) && (o.src ? pe._evalUrl && pe._evalUrl(o.src) : pe.globalEval((o.text || o.textContent || o.innerHTML || "").replace(ot, ""))); + l = i = null + } + return e + } + function A(e, t, n) { + for (var r, i = t ? pe.filter(t, e) : e, o = 0; null != (r = i[o]); o++) + n || 1 !== r.nodeType || pe.cleanData(h(r)), + r.parentNode && (n && pe.contains(r.ownerDocument, r) && g(h(r, "script")), + r.parentNode.removeChild(r)); + return e + } + function D(e, t) { + var n = pe(t.createElement(e)).appendTo(t.body) + , r = pe.css(n[0], "display"); + return n.detach(), + r + } + function j(e) { + var t = re + , n = lt[e]; + return n || (n = D(e, t), + "none" !== n && n || (ut = (ut || pe("'; + break; + case 3: + delete t.title, + delete t.closeBtn, + t.icon === -1 && 0 === t.icon, + r.closeAll("loading"); + break; + case 4: + f || (t.content = [t.content, "body"]), + t.follow = t.content[1], + t.content = t.content[0] + '', + delete t.title, + t.tips = "object" == typeof t.tips ? t.tips : [t.tips, !0], + t.tipsMore || r.closeAll("tips") + } + if (e.vessel(f, function(n, r, u) { + c.append(n[0]), + f ? function() { + 2 == t.type || 4 == t.type ? function() { + i("body").append(n[1]) + }() : function() { + s.parents("." + l[0])[0] || (s.data("display", s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]), + i("#" + l[0] + a).find("." + l[5]).before(r)) + }() + }() : c.append(n[1]), + i(".layui-layer-move")[0] || c.append(o.moveElem = u), + e.layero = i("#" + l[0] + a), + t.scrollbar || l.html.css("overflow", "hidden").attr("layer-full", a) + }).auto(a), + i("#layui-layer-shade" + e.index).css({ + "background-color": t.shade[1] || "#000", + opacity: t.shade[0] || t.shade + }), + 2 == t.type && 6 == r.ie && e.layero.find("iframe").attr("src", s[0]), + 4 == t.type ? e.tips() : e.offset(), + t.fixed && n.on("resize", function() { + e.offset(), + (/^\d+%$/.test(t.area[0]) || /^\d+%$/.test(t.area[1])) && e.auto(a), + 4 == t.type && e.tips() + }), + t.time <= 0 || setTimeout(function() { + r.close(e.index) + }, t.time), + e.move().callback(), + l.anim[t.anim]) { + var u = "layer-anim " + l.anim[t.anim]; + e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function() { + i(this).removeClass(u) + }) + } + t.isOutAnim && e.layero.data("isOutAnim", !0) + } + } + , + s.pt.auto = function(e) { + var t = this + , a = t.config + , o = i("#" + l[0] + e); + "" === a.area[0] && a.maxWidth > 0 && (r.ie && r.ie < 8 && a.btn && o.width(o.innerWidth()), + o.outerWidth() > a.maxWidth && o.width(a.maxWidth)); + var s = [o.innerWidth(), o.innerHeight()] + , f = o.find(l[1]).outerHeight() || 0 + , c = o.find("." + l[6]).outerHeight() || 0 + , u = function(e) { + e = o.find(e), + e.height(s[1] - f - c - 2 * (0 | parseFloat(e.css("padding-top")))) + }; + switch (a.type) { + case 2: + u("iframe"); + break; + default: + "" === a.area[1] ? a.maxHeight > 0 && o.outerHeight() > a.maxHeight ? (s[1] = a.maxHeight, + u("." + l[5])) : a.fixed && s[1] >= n.height() && (s[1] = n.height(), + u("." + l[5])) : u("." + l[5]) + } + return t + } + , + s.pt.offset = function() { + var e = this + , t = e.config + , i = e.layero + , a = [i.outerWidth(), i.outerHeight()] + , o = "object" == typeof t.offset; + e.offsetTop = (n.height() - a[1]) / 2, + e.offsetLeft = (n.width() - a[0]) / 2, + o ? (e.offsetTop = t.offset[0], + e.offsetLeft = t.offset[1] || e.offsetLeft) : "auto" !== t.offset && ("t" === t.offset ? e.offsetTop = 0 : "r" === t.offset ? e.offsetLeft = n.width() - a[0] : "b" === t.offset ? e.offsetTop = n.height() - a[1] : "l" === t.offset ? e.offsetLeft = 0 : "lt" === t.offset ? (e.offsetTop = 0, + e.offsetLeft = 0) : "lb" === t.offset ? (e.offsetTop = n.height() - a[1], + e.offsetLeft = 0) : "rt" === t.offset ? (e.offsetTop = 0, + e.offsetLeft = n.width() - a[0]) : "rb" === t.offset ? (e.offsetTop = n.height() - a[1], + e.offsetLeft = n.width() - a[0]) : e.offsetTop = t.offset), + t.fixed || (e.offsetTop = /%$/.test(e.offsetTop) ? n.height() * parseFloat(e.offsetTop) / 100 : parseFloat(e.offsetTop), + e.offsetLeft = /%$/.test(e.offsetLeft) ? n.width() * parseFloat(e.offsetLeft) / 100 : parseFloat(e.offsetLeft), + e.offsetTop += n.scrollTop(), + e.offsetLeft += n.scrollLeft()), + i.attr("minLeft") && (e.offsetTop = n.height() - (i.find(l[1]).outerHeight() || 0), + e.offsetLeft = i.css("left")), + i.css({ + top: e.offsetTop, + left: e.offsetLeft + }) + } + , + s.pt.tips = function() { + var e = this + , t = e.config + , a = e.layero + , o = [a.outerWidth(), a.outerHeight()] + , r = i(t.follow); + r[0] || (r = i("body")); + var s = { + width: r.outerWidth(), + height: r.outerHeight(), + top: r.offset().top, + left: r.offset().left + } + , f = a.find(".layui-layer-TipsG") + , c = t.tips[0]; + t.tips[1] || f.remove(), + s.autoLeft = function() { + s.left + o[0] - n.width() > 0 ? (s.tipLeft = s.left + s.width - o[0], + f.css({ + right: 12, + left: "auto" + })) : s.tipLeft = s.left + } + , + s.where = [function() { + s.autoLeft(), + s.tipTop = s.top - o[1] - 10, + f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color", t.tips[1]) + } + , function() { + s.tipLeft = s.left + s.width + 10, + s.tipTop = s.top, + f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color", t.tips[1]) + } + , function() { + s.autoLeft(), + s.tipTop = s.top + s.height + 10, + f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color", t.tips[1]) + } + , function() { + s.tipLeft = s.left - o[0] - 10, + s.tipTop = s.top, + f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color", t.tips[1]) + } + ], + s.where[c - 1](), + 1 === c ? s.top - (n.scrollTop() + o[1] + 16) < 0 && s.where[2]() : 2 === c ? n.width() - (s.left + s.width + o[0] + 16) > 0 || s.where[3]() : 3 === c ? s.top - n.scrollTop() + s.height + o[1] + 16 - n.height() > 0 && s.where[0]() : 4 === c && o[0] + 16 - s.left > 0 && s.where[1](), + a.find("." + l[5]).css({ + "background-color": t.tips[1], + "padding-right": t.closeBtn ? "30px" : "" + }), + a.css({ + left: s.tipLeft - (t.fixed ? n.scrollLeft() : 0), + top: s.tipTop - (t.fixed ? n.scrollTop() : 0) + }) + } + , + s.pt.move = function() { + var e = this + , t = e.config + , a = i(document) + , s = e.layero + , l = s.find(t.move) + , f = s.find(".layui-layer-resize") + , c = {}; + return t.move && l.css("cursor", "move"), + l.on("mousedown", function(e) { + e.preventDefault(), + t.move && (c.moveStart = !0, + c.offset = [e.clientX - parseFloat(s.css("left")), e.clientY - parseFloat(s.css("top"))], + o.moveElem.css("cursor", "move").show()) + }), + f.on("mousedown", function(e) { + e.preventDefault(), + c.resizeStart = !0, + c.offset = [e.clientX, e.clientY], + c.area = [s.outerWidth(), s.outerHeight()], + o.moveElem.css("cursor", "se-resize").show() + }), + a.on("mousemove", function(i) { + if (c.moveStart) { + var a = i.clientX - c.offset[0] + , o = i.clientY - c.offset[1] + , l = "fixed" === s.css("position"); + if (i.preventDefault(), + c.stX = l ? 0 : n.scrollLeft(), + c.stY = l ? 0 : n.scrollTop(), + !t.moveOut) { + var f = n.width() - s.outerWidth() + c.stX + , u = n.height() - s.outerHeight() + c.stY; + a < c.stX && (a = c.stX), + a > f && (a = f), + o < c.stY && (o = c.stY), + o > u && (o = u) + } + s.css({ + left: a, + top: o + }) + } + if (t.resize && c.resizeStart) { + var a = i.clientX - c.offset[0] + , o = i.clientY - c.offset[1]; + i.preventDefault(), + r.style(e.index, { + width: c.area[0] + a, + height: c.area[1] + o + }), + c.isResize = !0, + t.resizing && t.resizing(s) + } + }).on("mouseup", function(e) { + c.moveStart && (delete c.moveStart, + o.moveElem.hide(), + t.moveEnd && t.moveEnd(s)), + c.resizeStart && (delete c.resizeStart, + o.moveElem.hide()) + }), + e + } + , + s.pt.callback = function() { + function e() { + var e = a.cancel && a.cancel(t.index, n); + e === !1 || r.close(t.index) + } + var t = this + , n = t.layero + , a = t.config; + t.openLayer(), + a.success && (2 == a.type ? n.find("iframe").on("load", function() { + a.success(n, t.index) + }) : a.success(n, t.index)), + 6 == r.ie && t.IE6(n), + n.find("." + l[6]).children("a").on("click", function() { + var e = i(this).index(); + if (0 === e) + a.yes ? a.yes(t.index, n) : a.btn1 ? a.btn1(t.index, n) : r.close(t.index); + else { + var o = a["btn" + (e + 1)] && a["btn" + (e + 1)](t.index, n); + o === !1 || r.close(t.index) + } + }), + n.find("." + l[7]).on("click", e), + a.shadeClose && i("#layui-layer-shade" + t.index).on("click", function() { + r.close(t.index) + }), + n.find(".layui-layer-min").on("click", function() { + var e = a.min && a.min(n); + e === !1 || r.min(t.index, a) + }), + n.find(".layui-layer-max").on("click", function() { + i(this).hasClass("layui-layer-maxmin") ? (r.restore(t.index), + a.restore && a.restore(n)) : (r.full(t.index, a), + setTimeout(function() { + a.full && a.full(n) + }, 100)) + }), + a.end && (o.end[t.index] = a.end) + } + , + o.reselect = function() { + i.each(i("select"), function(e, t) { + var n = i(this); + n.parents("." + l[0])[0] || 1 == n.attr("layer") && i("." + l[0]).length < 1 && n.removeAttr("layer").show(), + n = null + }) + } + , + s.pt.IE6 = function(e) { + i("select").each(function(e, t) { + var n = i(this); + n.parents("." + l[0])[0] || "none" === n.css("display") || n.attr({ + layer: "1" + }).hide(), + n = null + }) + } + , + s.pt.openLayer = function() { + var e = this; + r.zIndex = e.config.zIndex, + r.setTop = function(e) { + var t = function() { + r.zIndex++, + e.css("z-index", r.zIndex + 1) + }; + return r.zIndex = parseInt(e[0].style.zIndex), + e.on("mousedown", t), + r.zIndex + } + } + , + o.record = function(e) { + var t = [e.width(), e.height(), e.position().top, e.position().left + parseFloat(e.css("margin-left"))]; + e.find(".layui-layer-max").addClass("layui-layer-maxmin"), + e.attr({ + area: t + }) + } + , + o.rescollbar = function(e) { + l.html.attr("layer-full") == e && (l.html[0].style.removeProperty ? l.html[0].style.removeProperty("overflow") : l.html[0].style.removeAttribute("overflow"), + l.html.removeAttr("layer-full")) + } + , + e.layer = r, + r.getChildFrame = function(e, t) { + return t = t || i("." + l[4]).attr("times"), + i("#" + l[0] + t).find("iframe").contents().find(e) + } + , + r.getFrameIndex = function(e) { + return i("#" + e).parents("." + l[4]).attr("times") + } + , + r.iframeAuto = function(e) { + if (e) { + var t = r.getChildFrame("html", e).outerHeight() + , n = i("#" + l[0] + e) + , a = n.find(l[1]).outerHeight() || 0 + , o = n.find("." + l[6]).outerHeight() || 0; + n.css({ + height: t + a + o + }), + n.find("iframe").css({ + height: t + }) + } + } + , + r.iframeSrc = function(e, t) { + i("#" + l[0] + e).find("iframe").attr("src", t) + } + , + r.style = function(e, t, n) { + var a = i("#" + l[0] + e) + , r = a.find(".layui-layer-content") + , s = a.attr("type") + , f = a.find(l[1]).outerHeight() || 0 + , c = a.find("." + l[6]).outerHeight() || 0; + a.attr("minLeft"); + s !== o.type[3] && s !== o.type[4] && (n || (parseFloat(t.width) <= 260 && (t.width = 260), + parseFloat(t.height) - f - c <= 64 && (t.height = 64 + f + c)), + a.css(t), + c = a.find("." + l[6]).outerHeight(), + s === o.type[2] ? a.find("iframe").css({ + height: parseFloat(t.height) - f - c + }) : r.css({ + height: parseFloat(t.height) - f - c - parseFloat(r.css("padding-top")) - parseFloat(r.css("padding-bottom")) + })) + } + , + r.min = function(e, t) { + var a = i("#" + l[0] + e) + , s = a.find(l[1]).outerHeight() || 0 + , f = a.attr("minLeft") || 181 * o.minIndex + "px" + , c = a.css("position"); + o.record(a), + o.minLeft[0] && (f = o.minLeft[0], + o.minLeft.shift()), + a.attr("position", c), + r.style(e, { + width: 180, + height: s, + left: f, + top: n.height() - s, + position: "fixed", + overflow: "hidden" + }, !0), + a.find(".layui-layer-min").hide(), + "page" === a.attr("type") && a.find(l[4]).hide(), + o.rescollbar(e), + a.attr("minLeft") || o.minIndex++, + a.attr("minLeft", f) + } + , + r.restore = function(e) { + var t = i("#" + l[0] + e) + , n = t.attr("area").split(","); + t.attr("type"); + r.style(e, { + width: parseFloat(n[0]), + height: parseFloat(n[1]), + top: parseFloat(n[2]), + left: parseFloat(n[3]), + position: t.attr("position"), + overflow: "visible" + }, !0), + t.find(".layui-layer-max").removeClass("layui-layer-maxmin"), + t.find(".layui-layer-min").show(), + "page" === t.attr("type") && t.find(l[4]).show(), + o.rescollbar(e) + } + , + r.full = function(e) { + var t, a = i("#" + l[0] + e); + o.record(a), + l.html.attr("layer-full") || l.html.css("overflow", "hidden").attr("layer-full", e), + clearTimeout(t), + t = setTimeout(function() { + var t = "fixed" === a.css("position"); + r.style(e, { + top: t ? 0 : n.scrollTop(), + left: t ? 0 : n.scrollLeft(), + width: n.width(), + height: n.height() + }, !0), + a.find(".layui-layer-min").hide() + }, 100) + } + , + r.title = function(e, t) { + var n = i("#" + l[0] + (t || r.index)).find(l[1]); + n.html(e) + } + , + r.close = function(e) { + r.ready(function() { + var t = i("#" + l[0] + e) + , n = t.attr("type") + , a = "layer-anim-close"; + if (t[0]) { + var s = "layui-layer-wrap" + , f = function() { + if (n === o.type[1] && "object" === t.attr("conType")) { + t.children(":not(." + l[5] + ")").remove(); + for (var a = t.find("." + s), r = 0; r < 2; r++) + a.unwrap(); + a.css("display", a.data("display")).removeClass(s) + } else { + if (n === o.type[2]) + try { + var f = i("#" + l[4] + e)[0]; + f.contentWindow.document.write(""), + f.contentWindow.close(), + t.find("." + l[5])[0].removeChild(f) + } catch (c) {} + t[0].innerHTML = "", + t.remove() + } + "function" == typeof o.end[e] && o.end[e](), + delete o.end[e] + }; + t.data("isOutAnim") && t.addClass("layer-anim " + a), + i("#layui-layer-moves, #layui-layer-shade" + e).remove(), + 6 == r.ie && o.reselect(), + o.rescollbar(e), + t.attr("minLeft") && (o.minIndex--, + o.minLeft.push(t.attr("minLeft"))), + r.ie && r.ie < 10 || !t.data("isOutAnim") ? f() : setTimeout(function() { + f() + }, 200) + } + }) + } + , + r.closeAll = function(e) { + r.ready(function() { + i.each(i("." + l[0]), function() { + var t = i(this) + , n = e ? t.attr("type") === e : 1; + n && r.close(t.attr("times")), + n = null + }) + }) + } + ; + var f = r.cache || {} + , c = function(e) { + return f.skin ? " " + f.skin + " " + f.skin + "-" + e : "" + }; + r.prompt = function(e, t) { + var a = ""; + if (e = e || {}, + "function" == typeof e && (t = e), + e.area) { + var o = e.area; + a = 'style="width: ' + o[0] + "; height: " + o[1] + ';"', + delete e.area + } + var s, l = 2 == e.formType ? '" : function() { + return '' + }(), f = e.success; + return delete e.success, + r.open(i.extend({ + type: 1, + btn: ["确定", "取消"], + content: l, + skin: "layui-layer-prompt" + c("prompt"), + maxWidth: n.width(), + success: function(t) { + s = t.find(".layui-layer-input"), + s.val(e.value || "").focus(), + "function" == typeof f && f(t) + }, + resize: !1, + yes: function(i) { + var n = s.val(); + "" === n ? s.focus() : n.length > (e.maxlength || 500) ? r.tips("最多输入" + (e.maxlength || 500) + "个字数", s, { + tips: 1 + }) : t && t(n, i, s) + } + }, e)) + } + , + r.tab = function(e) { + e = e || {}; + var t = e.tab || {} + , n = "layui-this" + , a = e.success; + return delete e.success, + r.open(i.extend({ + type: 1, + skin: "layui-layer-tab" + c("tab"), + resize: !1, + title: function() { + var e = t.length + , i = 1 + , a = ""; + if (e > 0) + for (a = '' + t[0].title + ""; i < e; i++) + a += "" + t[i].title + ""; + return a + }(), + content: '
      ' + function() { + var e = t.length + , i = 1 + , a = ""; + if (e > 0) + for (a = '
    • ' + (t[0].content || "no content") + "
    • "; i < e; i++) + a += '
    • ' + (t[i].content || "no content") + "
    • "; + return a + }() + "
    ", + success: function(t) { + var o = t.find(".layui-layer-title").children() + , r = t.find(".layui-layer-tabmain").children(); + o.on("mousedown", function(t) { + t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0; + var a = i(this) + , o = a.index(); + a.addClass(n).siblings().removeClass(n), + r.eq(o).show().siblings().hide(), + "function" == typeof e.change && e.change(o) + }), + "function" == typeof a && a(t) + } + }, e)) + } + , + r.photos = function(t, n, a) { + function o(e, t, i) { + var n = new Image; + return n.src = e, + n.complete ? t(n) : (n.onload = function() { + n.onload = null, + t(n) + } + , + void (n.onerror = function(e) { + n.onerror = null, + i(e) + } + )) + } + var s = {}; + if (t = t || {}, + t.photos) { + var l = t.photos.constructor === Object + , f = l ? t.photos : {} + , u = f.data || [] + , d = f.start || 0; + s.imgIndex = (0 | d) + 1, + t.img = t.img || "img"; + var y = t.success; + if (delete t.success, + l) { + if (0 === u.length) + return r.msg("没有图片") + } else { + var p = i(t.photos) + , h = function() { + u = [], + p.find(t.img).each(function(e) { + var t = i(this); + t.attr("layer-index", e), + u.push({ + alt: t.attr("alt"), + pid: t.attr("layer-pid"), + src: t.attr("layer-src") || t.attr("src"), + thumb: t.attr("src") + }) + }) + }; + if (h(), + 0 === u.length) + return; + if (n || p.on("click", t.img, function() { + var e = i(this) + , n = e.attr("layer-index"); + r.photos(i.extend(t, { + photos: { + start: n, + data: u, + tab: t.tab + }, + full: t.full + }), !0), + h() + }), + !n) + return + } + s.imgprev = function(e) { + s.imgIndex--, + s.imgIndex < 1 && (s.imgIndex = u.length), + s.tabimg(e) + } + , + s.imgnext = function(e, t) { + s.imgIndex++, + s.imgIndex > u.length && (s.imgIndex = 1, + t) || s.tabimg(e) + } + , + s.keyup = function(e) { + if (!s.end) { + var t = e.keyCode; + e.preventDefault(), + 37 === t ? s.imgprev(!0) : 39 === t ? s.imgnext(!0) : 27 === t && r.close(s.index) + } + } + , + s.tabimg = function(e) { + if (!(u.length <= 1)) + return f.start = s.imgIndex - 1, + r.close(s.index), + r.photos(t, !0, e) + } + , + s.event = function() { + s.bigimg.hover(function() { + s.imgsee.show() + }, function() { + s.imgsee.hide() + }), + s.bigimg.find(".layui-layer-imgprev").on("click", function(e) { + e.preventDefault(), + s.imgprev() + }), + s.bigimg.find(".layui-layer-imgnext").on("click", function(e) { + e.preventDefault(), + s.imgnext() + }), + i(document).on("keyup", s.keyup) + } + , + s.loadi = r.load(1, { + shade: !("shade"in t) && .9, + scrollbar: !1 + }), + o(u[d].src, function(n) { + r.close(s.loadi), + s.index = r.open(i.extend({ + type: 1, + id: "layui-layer-photos", + area: function() { + var a = [n.width, n.height] + , o = [i(e).width() - 100, i(e).height() - 100]; + if (!t.full && (a[0] > o[0] || a[1] > o[1])) { + var r = [a[0] / o[0], a[1] / o[1]]; + r[0] > r[1] ? (a[0] = a[0] / r[0], + a[1] = a[1] / r[0]) : r[0] < r[1] && (a[0] = a[0] / r[1], + a[1] = a[1] / r[1]) + } + return [a[0] + "px", a[1] + "px"] + }(), + title: !1, + shade: .9, + shadeClose: !0, + closeBtn: !1, + move: ".layui-layer-phimg img", + moveType: 1, + scrollbar: !1, + moveOut: !0, + isOutAnim: !1, + skin: "layui-layer-photos" + c("photos"), + content: '
    ' + (u[d].alt ||
    ' + (u.length > 1 ? '' : "") + '
    ' + (u[d].alt || "") + "" + s.imgIndex + "/" + u.length + "
    ", + success: function(e, i) { + s.bigimg = e.find(".layui-layer-phimg"), + s.imgsee = e.find(".layui-layer-imguide,.layui-layer-imgbar"), + s.event(e), + t.tab && t.tab(u[d], e), + "function" == typeof y && y(e) + }, + end: function() { + s.end = !0, + i(document).off("keyup", s.keyup) + } + }, t)) + }, function() { + r.close(s.loadi), + r.msg("当前图片地址异常
    是否继续查看下一张?", { + time: 3e4, + btn: ["下一张", "不看了"], + yes: function() { + u.length > 1 && s.imgnext(!0, !0) + } + }) + }) + } + } + , + o.run = function(t) { + i = t, + n = i(e), + l.html = i("html"), + r.open = function(e) { + var t = new s(e); + return t.index + } + } + , + e.layui && layui.define ? (r.ready(), + layui.define("jquery", function(t) { + r.path = layui.cache.dir, + o.run(layui.$), + e.layer = r, + t("layer", r) + })) : "function" == typeof define && define.amd ? define(["jquery"], function() { + return o.run(e.jQuery), + r + }) : function() { + o.run(e.jQuery), + r.ready() + }() +}(window); +layui.define("jquery", function(e) { + "use strict"; + var t = layui.$ + , i = { + fixbar: function(e) { + var i, a, n = "layui-fixbar", o = "layui-fixbar-top", r = t(document), l = t("body"); + e = t.extend({ + showHeight: 200 + }, e), + e.bar1 = e.bar1 === !0 ? "" : e.bar1, + e.bar2 = e.bar2 === !0 ? "" : e.bar2, + e.bgcolor = e.bgcolor ? "background-color:" + e.bgcolor : ""; + var c = [e.bar1, e.bar2, ""] + , g = t(['
      ', e.bar1 ? '
    • ' + c[0] + "
    • " : "", e.bar2 ? '
    • ' + c[1] + "
    • " : "", '
    • ' + c[2] + "
    • ", "
    "].join("")) + , u = g.find("." + o) + , s = function() { + var t = r.scrollTop(); + t >= e.showHeight ? i || (u.show(), + i = 1) : i && (u.hide(), + i = 0) + }; + t("." + n)[0] || ("object" == typeof e.css && g.css(e.css), + l.append(g), + s(), + g.find("li").on("click", function() { + var i = t(this) + , a = i.attr("lay-type"); + "top" === a && t("html,body").animate({ + scrollTop: 0 + }, 200), + e.click && e.click.call(this, a) + }), + r.on("scroll", function() { + clearTimeout(a), + a = setTimeout(function() { + s() + }, 100) + })) + }, + countdown: function(e, t, i) { + var a = this + , n = "function" == typeof t + , o = new Date(e).getTime() + , r = new Date(!t || n ? (new Date).getTime() : t).getTime() + , l = o - r + , c = [Math.floor(l / 864e5), Math.floor(l / 36e5) % 24, Math.floor(l / 6e4) % 60, Math.floor(l / 1e3) % 60]; + n && (i = t); + var g = setTimeout(function() { + a.countdown(e, r + 1e3, i) + }, 1e3); + return i && i(l > 0 ? c : [0, 0, 0, 0], t, g), + l <= 0 && clearTimeout(g), + g + }, + timeAgo: function(e, t) { + var i = this + , a = [[], []] + , n = (new Date).getTime() - new Date(e).getTime(); + return n > 26784e5 ? (n = new Date(e), + a[0][0] = i.digit(n.getFullYear(), 4), + a[0][1] = i.digit(n.getMonth() + 1), + a[0][2] = i.digit(n.getDate()), + t || (a[1][0] = i.digit(n.getHours()), + a[1][1] = i.digit(n.getMinutes()), + a[1][2] = i.digit(n.getSeconds())), + a[0].join("-") + " " + a[1].join(":")) : n >= 864e5 ? (n / 1e3 / 60 / 60 / 24 | 0) + "天前" : n >= 36e5 ? (n / 1e3 / 60 / 60 | 0) + "小时前" : n >= 18e4 ? (n / 1e3 / 60 | 0) + "分钟前" : n < 0 ? "未来" : "刚刚" + }, + digit: function(e, t) { + var i = ""; + e = String(e), + t = t || 2; + for (var a = e.length; a < t; a++) + i += "0"; + return e < Math.pow(10, t) ? i + (0 | e) : e + }, + toDateString: function(e, t) { + var i = this + , a = new Date(e || new Date) + , n = [i.digit(a.getFullYear(), 4), i.digit(a.getMonth() + 1), i.digit(a.getDate())] + , o = [i.digit(a.getHours()), i.digit(a.getMinutes()), i.digit(a.getSeconds())]; + return t = t || "yyyy-MM-dd HH:mm:ss", + t.replace(/yyyy/g, n[0]).replace(/MM/g, n[1]).replace(/dd/g, n[2]).replace(/HH/g, o[0]).replace(/mm/g, o[1]).replace(/ss/g, o[2]) + }, + escape: function(e) { + return String(e || "").replace(/&(?!#?[a-zA-Z0-9]+;)/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/"/g, """) + }, + unescape: function(e) { + return String(e || "").replace(/\&/g, "&").replace(/\</g, "<").replace(/\>/g, ">").replace(/\'/, "'").replace(/\"/, '"') + }, + event: function(e, a, n) { + var o = t("body"); + return n = n || "click", + a = i.event[e] = t.extend(!0, i.event[e], a) || {}, + i.event.UTIL_EVENT_CALLBACK = i.event.UTIL_EVENT_CALLBACK || {}, + o.off(n, "*[" + e + "]", i.event.UTIL_EVENT_CALLBACK[e]), + i.event.UTIL_EVENT_CALLBACK[e] = function() { + var i = t(this) + , n = i.attr(e); + "function" == typeof a[n] && a[n].call(this, i) + } + , + o.on(n, "*[" + e + "]", i.event.UTIL_EVENT_CALLBACK[e]), + a + } + }; + e("util", i) +}); +layui.define("jquery", function(t) { + "use strict"; + var a = layui.$ + , i = (layui.hint(), + layui.device()) + , e = "element" + , l = "layui-this" + , n = "layui-show" + , s = function() { + this.config = {} + }; + s.prototype.set = function(t) { + var i = this; + return a.extend(!0, i.config, t), + i + } + , + s.prototype.on = function(t, a) { + return layui.onevent.call(this, e, t, a) + } + , + s.prototype.tabAdd = function(t, i) { + var e = ".layui-tab-title" + , l = a(".layui-tab[lay-filter=" + t + "]") + , n = l.children(e) + , s = n.children(".layui-tab-bar") + , o = l.children(".layui-tab-content") + , r = '
  • " + (i.title || "unnaming") + "
  • "; + return s[0] ? s.before(r) : n.append(r), + o.append('
    ' + (i.content || "") + "
    "), + f.hideTabMore(!0), + f.tabAuto(), + this + } + , + s.prototype.tabDelete = function(t, i) { + var e = ".layui-tab-title" + , l = a(".layui-tab[lay-filter=" + t + "]") + , n = l.children(e) + , s = n.find('>li[lay-id="' + i + '"]'); + return f.tabDelete(null, s), + this + } + , + s.prototype.tabChange = function(t, i) { + var e = ".layui-tab-title" + , l = a(".layui-tab[lay-filter=" + t + "]") + , n = l.children(e) + , s = n.find('>li[lay-id="' + i + '"]'); + return f.tabClick.call(s[0], null, null, s), + this + } + , + s.prototype.tab = function(t) { + t = t || {}, + b.on("click", t.headerElem, function(i) { + var e = a(this).index(); + f.tabClick.call(this, i, e, null, t) + }) + } + , + s.prototype.progress = function(t, i) { + var e = "layui-progress" + , l = a("." + e + "[lay-filter=" + t + "]") + , n = l.find("." + e + "-bar") + , s = n.find("." + e + "-text"); + return n.css("width", i), + s.text(i), + this + } + ; + var o = ".layui-nav" + , r = "layui-nav-item" + , c = "layui-nav-bar" + , u = "layui-nav-tree" + , d = "layui-nav-child" + , y = "layui-nav-more" + , h = "layui-anim layui-anim-upbit" + , f = { + tabClick: function(t, i, s, o) { + o = o || {}; + var r = s || a(this) + , i = i || r.parent().children("li").index(r) + , c = o.headerElem ? r.parent() : r.parents(".layui-tab").eq(0) + , u = o.bodyElem ? a(o.bodyElem) : c.children(".layui-tab-content").children(".layui-tab-item") + , d = r.find("a") + , y = c.attr("lay-filter"); + "javascript:;" !== d.attr("href") && "_blank" === d.attr("target") || (r.addClass(l).siblings().removeClass(l), + u.eq(i).addClass(n).siblings().removeClass(n)), + layui.event.call(this, e, "tab(" + y + ")", { + elem: c, + index: i + }) + }, + tabDelete: function(t, i) { + var n = i || a(this).parent() + , s = n.index() + , o = n.parents(".layui-tab").eq(0) + , r = o.children(".layui-tab-content").children(".layui-tab-item") + , c = o.attr("lay-filter"); + n.hasClass(l) && (n.next()[0] ? f.tabClick.call(n.next()[0], null, s + 1) : n.prev()[0] && f.tabClick.call(n.prev()[0], null, s - 1)), + n.remove(), + r.eq(s).remove(), + setTimeout(function() { + f.tabAuto() + }, 50), + layui.event.call(this, e, "tabDelete(" + c + ")", { + elem: o, + index: s + }) + }, + tabAuto: function() { + var t = "layui-tab-more" + , e = "layui-tab-bar" + , l = "layui-tab-close" + , n = this; + a(".layui-tab").each(function() { + var s = a(this) + , o = s.children(".layui-tab-title") + , r = (s.children(".layui-tab-content").children(".layui-tab-item"), + 'lay-stope="tabmore"') + , c = a(''); + if (n === window && 8 != i.ie && f.hideTabMore(!0), + s.attr("lay-allowClose") && o.find("li").each(function() { + var t = a(this); + if (!t.find("." + l)[0]) { + var i = a('ဆ'); + i.on("click", f.tabDelete), + t.append(i) + } + }), + "string" != typeof s.attr("lay-unauto")) + if (o.prop("scrollWidth") > o.outerWidth() + 1) { + if (o.find("." + e)[0]) + return; + o.append(c), + s.attr("overflow", ""), + c.on("click", function(a) { + o[this.title ? "removeClass" : "addClass"](t), + this.title = this.title ? "" : "收缩" + }) + } else + o.find("." + e).remove(), + s.removeAttr("overflow") + }) + }, + hideTabMore: function(t) { + var i = a(".layui-tab-title"); + t !== !0 && "tabmore" === a(t.target).attr("lay-stope") || (i.removeClass("layui-tab-more"), + i.find(".layui-tab-bar").attr("title", "")) + }, + clickThis: function() { + var t = a(this) + , i = t.parents(o) + , n = i.attr("lay-filter") + , s = t.parent() + , c = t.siblings("." + d) + , y = "string" == typeof s.attr("lay-unselect"); + "javascript:;" !== t.attr("href") && "_blank" === t.attr("target") || y || c[0] || (i.find("." + l).removeClass(l), + s.addClass(l)), + i.hasClass(u) && (c.removeClass(h), + c[0] && (s["none" === c.css("display") ? "addClass" : "removeClass"](r + "ed"), + "all" === i.attr("lay-shrink") && s.siblings().removeClass(r + "ed"))), + layui.event.call(this, e, "nav(" + n + ")", t) + }, + collapse: function() { + var t = a(this) + , i = t.find(".layui-colla-icon") + , l = t.siblings(".layui-colla-content") + , s = t.parents(".layui-collapse").eq(0) + , o = s.attr("lay-filter") + , r = "none" === l.css("display"); + if ("string" == typeof s.attr("lay-accordion")) { + var c = s.children(".layui-colla-item").children("." + n); + c.siblings(".layui-colla-title").children(".layui-colla-icon").html(""), + c.removeClass(n) + } + l[r ? "addClass" : "removeClass"](n), + i.html(r ? "" : ""), + layui.event.call(this, e, "collapse(" + o + ")", { + title: t, + content: l, + show: r + }) + } + }; + s.prototype.init = function(t, e) { + var l = function() { + return e ? '[lay-filter="' + e + '"]' : "" + }() + , s = { + tab: function() { + f.tabAuto.call({}) + }, + nav: function() { + var t = 200 + , e = {} + , s = {} + , p = {} + , b = function(l, o, r) { + var c = a(this) + , f = c.find("." + d); + o.hasClass(u) ? l.css({ + top: c.position().top, + height: c.children("a").outerHeight(), + opacity: 1 + }) : (f.addClass(h), + l.css({ + left: c.position().left + parseFloat(c.css("marginLeft")), + top: c.position().top + c.height() - l.height() + }), + e[r] = setTimeout(function() { + l.css({ + width: c.width(), + opacity: 1 + }) + }, i.ie && i.ie < 10 ? 0 : t), + clearTimeout(p[r]), + "block" === f.css("display") && clearTimeout(s[r]), + s[r] = setTimeout(function() { + f.addClass(n), + c.find("." + y).addClass(y + "d") + }, 300)) + }; + a(o + l).each(function(i) { + var l = a(this) + , o = a('') + , h = l.find("." + r); + l.find("." + c)[0] || (l.append(o), + h.on("mouseenter", function() { + b.call(this, o, l, i) + }).on("mouseleave", function() { + l.hasClass(u) || (clearTimeout(s[i]), + s[i] = setTimeout(function() { + l.find("." + d).removeClass(n), + l.find("." + y).removeClass(y + "d") + }, 300)) + }), + l.on("mouseleave", function() { + clearTimeout(e[i]), + p[i] = setTimeout(function() { + l.hasClass(u) ? o.css({ + height: 0, + top: o.position().top + o.height() / 2, + opacity: 0 + }) : o.css({ + width: 0, + left: o.position().left + o.width() / 2, + opacity: 0 + }) + }, t) + })), + h.find("a").each(function() { + var t = a(this) + , i = (t.parent(), + t.siblings("." + d)); + i[0] && !t.children("." + y)[0] && t.append(''), + t.off("click", f.clickThis).on("click", f.clickThis) + }) + }) + }, + breadcrumb: function() { + var t = ".layui-breadcrumb"; + a(t + l).each(function() { + var t = a(this) + , i = "lay-separator" + , e = t.attr(i) || "/" + , l = t.find("a"); + l.next("span[" + i + "]")[0] || (l.each(function(t) { + t !== l.length - 1 && a(this).after("" + e + "") + }), + t.css("visibility", "visible")) + }) + }, + progress: function() { + var t = "layui-progress"; + a("." + t + l).each(function() { + var i = a(this) + , e = i.find(".layui-progress-bar") + , l = e.attr("lay-percent"); + e.css("width", function() { + return /^.+\/.+$/.test(l) ? 100 * new Function("return " + l)() + "%" : l + }()), + i.attr("lay-showPercent") && setTimeout(function() { + e.html('' + l + "") + }, 350) + }) + }, + collapse: function() { + var t = "layui-collapse"; + a("." + t + l).each(function() { + var t = a(this).find(".layui-colla-item"); + t.each(function() { + var t = a(this) + , i = t.find(".layui-colla-title") + , e = t.find(".layui-colla-content") + , l = "none" === e.css("display"); + i.find(".layui-colla-icon").remove(), + i.append('' + (l ? "" : "") + ""), + i.off("click", f.collapse).on("click", f.collapse) + }) + }) + } + }; + return s[t] ? s[t]() : layui.each(s, function(t, a) { + a() + }) + } + , + s.prototype.render = s.prototype.init; + var p = new s + , b = a(document); + p.render(); + var v = ".layui-tab-title li"; + b.on("click", v, f.tabClick), + b.on("click", f.hideTabMore), + a(window).on("resize", f.tabAuto), + t(e, p) +}); +layui.define("layer", function(e) { + "use strict"; + var t = layui.$ + , i = layui.layer + , n = layui.hint() + , o = layui.device() + , a = { + config: {}, + set: function(e) { + var i = this; + return i.config = t.extend({}, i.config, e), + i + }, + on: function(e, t) { + return layui.onevent.call(this, r, e, t) + } + } + , l = function() { + var e = this; + return { + upload: function(t) { + e.upload.call(e, t) + }, + reload: function(t) { + e.reload.call(e, t) + }, + config: e.config + } + } + , r = "upload" + , u = "layui-upload-file" + , c = "layui-upload-form" + , f = "layui-upload-iframe" + , s = "layui-upload-choose" + , p = function(e) { + var i = this; + i.config = t.extend({}, i.config, a.config, e), + i.render() + }; + p.prototype.config = { + accept: "images", + exts: "", + auto: !0, + bindAction: "", + url: "", + field: "file", + acceptMime: "", + method: "post", + data: {}, + drag: !0, + size: 0, + number: 0, + multiple: !1 + }, + p.prototype.render = function(e) { + var i = this + , e = i.config; + e.elem = t(e.elem), + e.bindAction = t(e.bindAction), + i.file(), + i.events() + } + , + p.prototype.file = function() { + var e = this + , i = e.config + , n = e.elemFile = t(['"].join("")) + , a = i.elem.next(); + (a.hasClass(u) || a.hasClass(c)) && a.remove(), + o.ie && o.ie < 10 && i.elem.wrap('
    '), + e.isFile() ? (e.elemFile = i.elem, + i.field = i.elem[0].name) : i.elem.after(n), + o.ie && o.ie < 10 && e.initIE() + } + , + p.prototype.initIE = function() { + var e = this + , i = e.config + , n = t('') + , o = t(['', ""].join("")); + t("#" + f)[0] || t("body").append(n), + i.elem.next().hasClass(c) || (e.elemFile.wrap(o), + i.elem.next("." + c).append(function() { + var e = []; + return layui.each(i.data, function(t, i) { + i = "function" == typeof i ? i() : i, + e.push('') + }), + e.join("") + }())) + } + , + p.prototype.msg = function(e) { + return i.msg(e, { + icon: 2, + shift: 6 + }) + } + , + p.prototype.isFile = function() { + var e = this.config.elem[0]; + if (e) + return "input" === e.tagName.toLocaleLowerCase() && "file" === e.type + } + , + p.prototype.preview = function(e) { + var t = this; + window.FileReader && layui.each(t.chooseFiles, function(t, i) { + var n = new FileReader; + n.readAsDataURL(i), + n.onload = function() { + e && e(t, i, this.result) + } + }) + } + , + p.prototype.upload = function(e, i) { + var n, a = this, l = a.config, r = a.elemFile[0], u = function() { + var i = 0 + , n = 0 + , o = e || a.files || a.chooseFiles || r.files + , u = function() { + l.multiple && i + n === a.fileLength && "function" == typeof l.allDone && l.allDone({ + total: a.fileLength, + successful: i, + aborted: n + }) + }; + layui.each(o, function(e, o) { + var r = new FormData; + r.append(l.field, o), + layui.each(l.data, function(e, t) { + t = "function" == typeof t ? t() : t, + r.append(e, t) + }); + var c = { + url: l.url, + type: "post", + data: r, + contentType: !1, + processData: !1, + dataType: "json", + headers: l.headers || {}, + success: function(t) { + i++, + d(e, t), + u() + }, + error: function() { + n++, + a.msg("请求上传接口出现异常"), + m(e), + u() + } + }; + "function" == typeof l.progress && (c.xhr = function() { + var e = t.ajaxSettings.xhr(); + return e.upload.addEventListener("progress", function(e) { + if (e.lengthComputable) { + var t = Math.floor(e.loaded / e.total * 100); + l.progress(t, l.item[0], e) + } + }), + e + } + ), + t.ajax(c) + }) + }, c = function() { + var e = t("#" + f); + a.elemFile.parent().submit(), + clearInterval(p.timer), + p.timer = setInterval(function() { + var t, i = e.contents().find("body"); + try { + t = i.text() + } catch (n) { + a.msg("获取上传后的响应信息出现异常"), + clearInterval(p.timer), + m() + } + t && (clearInterval(p.timer), + i.html(""), + d(0, t)) + }, 30) + }, d = function(e, t) { + if (a.elemFile.next("." + s).remove(), + r.value = "", + "object" != typeof t) + try { + t = JSON.parse(t) + } catch (i) { + return t = {}, + a.msg("请对上传接口返回有效JSON") + } + "function" == typeof l.done && l.done(t, e || 0, function(e) { + a.upload(e) + }) + }, m = function(e) { + l.auto && (r.value = ""), + "function" == typeof l.error && l.error(e || 0, function(e) { + a.upload(e) + }) + }, h = l.exts, v = function() { + var t = []; + return layui.each(e || a.chooseFiles, function(e, i) { + t.push(i.name) + }), + t + }(), g = { + preview: function(e) { + a.preview(e) + }, + upload: function(e, t) { + var i = {}; + i[e] = t, + a.upload(i) + }, + pushFile: function() { + return a.files = a.files || {}, + layui.each(a.chooseFiles, function(e, t) { + a.files[e] = t + }), + a.files + }, + resetFile: function(e, t, i) { + var n = new File([t],i); + a.files = a.files || {}, + a.files[e] = n + } + }, y = function() { + if ("choose" !== i && !l.auto || (l.choose && l.choose(g), + "choose" !== i)) + return l.before && l.before(g), + o.ie ? o.ie > 9 ? u() : c() : void u() + }; + if (v = 0 === v.length ? r.value.match(/[^\/\\]+\..+/g) || [] || "" : v, + 0 !== v.length) { + switch (l.accept) { + case "file": + if (h && !RegExp("\\w\\.(" + h + ")$", "i").test(escape(v))) + return a.msg("选择的文件中包含不支持的格式"), + r.value = ""; + break; + case "video": + if (!RegExp("\\w\\.(" + (h || "avi|mp4|wma|rmvb|rm|flash|3gp|flv") + ")$", "i").test(escape(v))) + return a.msg("选择的视频中包含不支持的格式"), + r.value = ""; + break; + case "audio": + if (!RegExp("\\w\\.(" + (h || "mp3|wav|mid") + ")$", "i").test(escape(v))) + return a.msg("选择的音频中包含不支持的格式"), + r.value = ""; + break; + default: + if (layui.each(v, function(e, t) { + RegExp("\\w\\.(" + (h || "jpg|png|gif|bmp|jpeg$") + ")", "i").test(escape(t)) || (n = !0) + }), + n) + return a.msg("选择的图片中包含不支持的格式"), + r.value = "" + } + if (a.fileLength = function() { + var t = 0 + , i = e || a.files || a.chooseFiles || r.files; + return layui.each(i, function() { + t++ + }), + t + }(), + l.number && a.fileLength > l.number) + return a.msg("同时最多只能上传的数量为:" + l.number); + if (l.size > 0 && !(o.ie && o.ie < 10)) { + var F; + if (layui.each(a.chooseFiles, function(e, t) { + if (t.size > 1024 * l.size) { + var i = l.size / 1024; + i = i >= 1 ? i.toFixed(2) + "MB" : l.size + "KB", + r.value = "", + F = i + } + }), + F) + return a.msg("文件不能超过" + F) + } + y() + } + } + , + p.prototype.reload = function(e) { + e = e || {}, + delete e.elem, + delete e.bindAction; + var i = this + , e = i.config = t.extend({}, i.config, a.config, e) + , n = e.elem.next(); + n.attr({ + name: e.name, + accept: e.acceptMime, + multiple: e.multiple + }) + } + , + p.prototype.events = function() { + var e = this + , i = e.config + , a = function(t) { + e.chooseFiles = {}, + layui.each(t, function(t, i) { + var n = (new Date).getTime(); + e.chooseFiles[n + "-" + t] = i + }) + } + , l = function(t, n) { + var o = e.elemFile + , a = t.length > 1 ? t.length + "个文件" : (t[0] || {}).name || o[0].value.match(/[^\/\\]+\..+/g) || [] || ""; + o.next().hasClass(s) && o.next().remove(), + e.upload(null, "choose"), + e.isFile() || i.choose || o.after('' + a + "") + }; + i.elem.off("upload.start").on("upload.start", function() { + var o = t(this) + , a = o.attr("lay-data"); + if (a) + try { + a = new Function("return " + a)(), + e.config = t.extend({}, i, a) + } catch (l) { + n.error("Upload element property lay-data configuration item has a syntax error: " + a) + } + e.config.item = o, + e.elemFile[0].click() + }), + o.ie && o.ie < 10 || i.elem.off("upload.over").on("upload.over", function() { + var e = t(this); + e.attr("lay-over", "") + }).off("upload.leave").on("upload.leave", function() { + var e = t(this); + e.removeAttr("lay-over") + }).off("upload.drop").on("upload.drop", function(n, o) { + var r = t(this) + , u = o.originalEvent.dataTransfer.files || []; + r.removeAttr("lay-over"), + a(u), + i.auto ? e.upload(u) : l(u) + }), + e.elemFile.off("upload.change").on("upload.change", function() { + var t = this.files || []; + a(t), + i.auto ? e.upload() : l(t) + }), + i.bindAction.off("upload.action").on("upload.action", function() { + e.upload() + }), + i.elem.data("haveEvents") || (e.elemFile.on("change", function() { + t(this).trigger("upload.change") + }), + i.elem.on("click", function() { + e.isFile() || t(this).trigger("upload.start") + }), + i.drag && i.elem.on("dragover", function(e) { + e.preventDefault(), + t(this).trigger("upload.over") + }).on("dragleave", function(e) { + t(this).trigger("upload.leave") + }).on("drop", function(e) { + e.preventDefault(), + t(this).trigger("upload.drop", e) + }), + i.bindAction.on("click", function() { + t(this).trigger("upload.action") + }), + i.elem.data("haveEvents", !0)) + } + , + a.render = function(e) { + var t = new p(e); + return l.call(t) + } + , + e(r, a) +}); +layui.define(["jquery", "laytpl", "lay"], function(e) { + "use strict"; + var i = layui.$ + , n = layui.laytpl + , t = layui.hint() + , a = layui.device() + , l = a.mobile ? "click" : "mousedown" + , r = "dropdown" + , o = "layui_" + r + "_index" + , u = { + config: {}, + index: layui[r] ? layui[r].index + 1e4 : 0, + set: function(e) { + var n = this; + return n.config = i.extend({}, n.config, e), + n + }, + on: function(e, i) { + return layui.onevent.call(this, r, e, i) + } + } + , d = function() { + var e = this + , i = e.config + , n = i.id; + return d.that[n] = e, + { + config: i, + reload: function(i) { + e.reload.call(e, i) + } + } + } + , s = "layui-dropdown" + , m = "layui-menu-item-up" + , c = "layui-menu-item-down" + , p = "layui-menu-body-title" + , y = "layui-menu-item-group" + , f = "layui-menu-item-parent" + , v = "layui-menu-item-divider" + , g = "layui-menu-item-checked" + , h = "layui-menu-item-checked2" + , w = "layui-menu-body-panel" + , C = "layui-menu-body-panel-left" + , V = "." + y + ">." + p + , k = function(e) { + var n = this; + n.index = ++u.index, + n.config = i.extend({}, n.config, u.config, e), + n.init() + }; + k.prototype.config = { + trigger: "click", + content: "", + className: "", + style: "", + show: !1, + isAllowSpread: !0, + isSpreadItem: !0, + data: [], + delay: 300 + }, + k.prototype.reload = function(e) { + var n = this; + n.config = i.extend({}, n.config, e), + n.init(!0) + } + , + k.prototype.init = function(e) { + var n = this + , t = n.config + , a = t.elem = i(t.elem); + if (a.length > 1) + return layui.each(a, function() { + u.render(i.extend({}, t, { + elem: this + })) + }), + n; + if (!e && a[0] && a.data(o)) { + var l = d.getThis(a.data(o)); + if (!l) + return; + return l.reload(t) + } + t.id = "id"in t ? t.id : n.index, + t.show && n.render(e), + n.events() + } + , + k.prototype.render = function(e) { + var t = this + , a = t.config + , r = i("body") + , s = function() { + var e = i('
      '); + return a.data.length > 0 ? m(e, a.data) : e.html('
    • no menu
    • '), + e + } + , m = function(e, t) { + return layui.each(t, function(t, l) { + var r = l.child && l.child.length > 0 + , o = "isSpreadItem"in l ? l.isSpreadItem : a.isSpreadItem + , u = l.templet ? n(l.templet).render(l) : a.templet ? n(a.templet).render(l) : l.title + , d = function() { + return r && (l.type = l.type || "parent"), + l.type ? { + group: "group", + parent: "parent", + "-": "-" + }[l.type] || "parent" : "" + }(); + if ("-" === d || l.title || l.id || r) { + var s = i(["", function() { + var e = "href"in l ? '' + u + "" : u; + return r ? '
      ' + e + function() { + return "parent" === d ? '' : "group" === d && a.isAllowSpread ? '' : "" + }() + "
      " : '
      ' + e + "
      " + }(), ""].join("")); + if (s.data("item", l), + r) { + var c = i('
      ') + , y = i("
        "); + "parent" === d ? (c.append(m(y, l.child)), + s.append(c)) : s.append(m(y, l.child)) + } + e.append(s) + } + }), + e + } + , c = ['
        ', "
        "].join(""); + ("contextmenu" === a.trigger || lay.isTopElem(a.elem[0])) && (e = !0), + !e && a.elem.data(o + "_opened") || (t.elemView = i(c), + t.elemView.append(a.content || s()), + a.className && t.elemView.addClass(a.className), + a.style && t.elemView.attr("style", a.style), + u.thisId = a.id, + t.remove(), + r.append(t.elemView), + a.elem.data(o + "_opened", !0), + t.position(), + d.prevElem = t.elemView, + d.prevElem.data("prevElem", a.elem), + t.elemView.find(".layui-menu").on(l, function(e) { + lay.stope(e) + }), + t.elemView.find(".layui-menu li").on("click", function(e) { + var n = i(this) + , l = n.data("item") || {} + , r = l.child && l.child.length > 0; + r || "-" === l.type || (t.remove(), + "function" == typeof a.click && a.click(l, n)) + }), + t.elemView.find(V).on("click", function(e) { + var n = i(this) + , t = n.parent() + , l = t.data("item") || {}; + "group" === l.type && a.isAllowSpread && d.spread(t) + }), + "mouseenter" === a.trigger && t.elemView.on("mouseenter", function() { + clearTimeout(d.timer) + }).on("mouseleave", function() { + t.delayRemove() + })) + } + , + k.prototype.position = function(e) { + var i = this + , n = i.config; + lay.position(n.elem[0], i.elemView[0], { + position: n.position, + e: i.e, + clickType: "contextmenu" === n.trigger ? "right" : null + }) + } + , + k.prototype.remove = function() { + var e = this + , i = (e.config, + d.prevElem); + i && (i.data("prevElem") && i.data("prevElem").data(o + "_opened", !1), + i.remove()) + } + , + k.prototype.delayRemove = function() { + var e = this + , i = e.config; + clearTimeout(d.timer), + d.timer = setTimeout(function() { + e.remove() + }, i.delay) + } + , + k.prototype.events = function() { + var e = this + , i = e.config; + "hover" === i.trigger && (i.trigger = "mouseenter"), + e.prevElem && e.prevElem.off(i.trigger, e.prevElemCallback), + e.prevElem = i.elem, + e.prevElemCallback = function(n) { + clearTimeout(d.timer), + e.e = n, + e.render(), + n.preventDefault(), + "function" == typeof i.ready && i.ready(e.elemView, i.elem, e.e.target) + } + , + i.elem.on(i.trigger, e.prevElemCallback), + "mouseenter" === i.trigger && i.elem.on("mouseleave", function() { + e.delayRemove() + }) + } + , + d.that = {}, + d.getThis = function(e) { + var i = d.that[e]; + return i || t.error(e ? r + " instance with ID '" + e + "' not found" : "ID argument required"), + i + } + , + d.spread = function(e) { + var i = e.children("." + p).find(".layui-icon"); + e.hasClass(m) ? (e.removeClass(m).addClass(c), + i.removeClass("layui-icon-down").addClass("layui-icon-up")) : (e.removeClass(c).addClass(m), + i.removeClass("layui-icon-up").addClass("layui-icon-down")) + } + , + !function() { + var e = i(window) + , n = i(document); + e.on("resize", function() { + if (u.thisId) { + var e = d.getThis(u.thisId); + if (e) { + if (!e.elemView[0] || !i("." + s)[0]) + return !1; + var n = e.config; + "contextmenu" === n.trigger ? e.remove() : e.position() + } + } + }), + n.on(l, function(e) { + if (u.thisId) { + var i = d.getThis(u.thisId); + if (i) { + var n = i.config; + !lay.isTopElem(n.elem[0]) && "contextmenu" !== n.trigger && (e.target === n.elem[0] || n.elem.find(e.target)[0] || e.target === i.elemView[0] || i.elemView && i.elemView.find(e.target)[0]) || i.remove() + } + } + }); + var t = ".layui-menu:not(.layui-dropdown-menu) li"; + n.on("click", t, function(e) { + var n = i(this) + , t = n.parents(".layui-menu").eq(0) + , a = n.hasClass(y) || n.hasClass(f) + , l = t.attr("lay-filter") || t.attr("id") + , o = lay.options(this); + n.hasClass(v) || a || (t.find("." + g).removeClass(g), + t.find("." + h).removeClass(h), + n.addClass(g), + n.parents("." + f).addClass(h), + layui.event.call(this, r, "click(" + l + ")", o)) + }), + n.on("click", t + V, function(e) { + var n = i(this) + , t = n.parents("." + y + ":eq(0)") + , a = lay.options(t[0]); + "isAllowSpread"in a && !a.isAllowSpread || d.spread(t) + }); + var a = ".layui-menu ." + f; + n.on("mouseenter", a, function(n) { + var t = i(this) + , a = t.find("." + w); + if (a[0]) { + var l = a[0].getBoundingClientRect(); + l.right > e.width() && (a.addClass(C), + l = a[0].getBoundingClientRect(), + l.left < 0 && a.removeClass(C)), + l.bottom > e.height() && a.eq(0).css("margin-top", -(l.bottom - e.height())) + } + }).on("mouseleave", a, function(e) { + var n = i(this) + , t = n.children("." + w); + t.removeClass(C), + t.css("margin-top", 0) + }) + }(), + u.reload = function(e, i) { + var n = d.getThis(e); + return n ? (n.reload(i), + d.call(n)) : this + } + , + u.render = function(e) { + var i = new k(e); + return d.call(i) + } + , + e(r, u) +}); +layui.define("jquery", function(e) { + "use strict"; + var i = layui.jquery + , t = { + config: {}, + index: layui.slider ? layui.slider.index + 1e4 : 0, + set: function(e) { + var t = this; + return t.config = i.extend({}, t.config, e), + t + }, + on: function(e, i) { + return layui.onevent.call(this, n, e, i) + } + } + , a = function() { + var e = this + , i = e.config; + return { + setValue: function(t, a) { + return i.value = t, + e.slide("set", t, a || 0) + }, + config: i + } + } + , n = "slider" + , l = "layui-disabled" + , s = "layui-slider" + , r = "layui-slider-bar" + , o = "layui-slider-wrap" + , u = "layui-slider-wrap-btn" + , d = "layui-slider-tips" + , v = "layui-slider-input" + , c = "layui-slider-input-txt" + , p = "layui-slider-input-btn" + , m = "layui-slider-hover" + , f = function(e) { + var a = this; + a.index = ++t.index, + a.config = i.extend({}, a.config, t.config, e), + a.render() + }; + f.prototype.config = { + type: "default", + min: 0, + max: 100, + value: 0, + step: 1, + showstep: !1, + tips: !0, + input: !1, + range: !1, + height: 200, + disabled: !1, + theme: "#009688" + }, + f.prototype.render = function() { + var e = this + , t = e.config; + if (t.step < 1 && (t.step = 1), + t.max < t.min && (t.max = t.min + t.step), + t.range) { + t.value = "object" == typeof t.value ? t.value : [t.min, t.value]; + var a = Math.min(t.value[0], t.value[1]) + , n = Math.max(t.value[0], t.value[1]); + t.value[0] = a > t.min ? a : t.min, + t.value[1] = n > t.min ? n : t.min, + t.value[0] = t.value[0] > t.max ? t.max : t.value[0], + t.value[1] = t.value[1] > t.max ? t.max : t.value[1]; + var r = Math.floor((t.value[0] - t.min) / (t.max - t.min) * 100) + , v = Math.floor((t.value[1] - t.min) / (t.max - t.min) * 100) + , p = v - r + "%"; + r += "%", + v += "%" + } else { + "object" == typeof t.value && (t.value = Math.min.apply(null, t.value)), + t.value < t.min && (t.value = t.min), + t.value > t.max && (t.value = t.max); + var p = Math.floor((t.value - t.min) / (t.max - t.min) * 100) + "%" + } + var m = t.disabled ? "#c2c2c2" : t.theme + , f = '
        ' + (t.tips ? '
        ' : "") + '
        ' + (t.range ? '
        ' : "") + "
        " + , h = i(t.elem) + , y = h.next("." + s); + if (y[0] && y.remove(), + e.elemTemp = i(f), + t.range ? (e.elemTemp.find("." + o).eq(0).data("value", t.value[0]), + e.elemTemp.find("." + o).eq(1).data("value", t.value[1])) : e.elemTemp.find("." + o).data("value", t.value), + h.html(e.elemTemp), + "vertical" === t.type && e.elemTemp.height(t.height + "px"), + t.showstep) { + for (var g = (t.max - t.min) / t.step, b = "", x = 1; x < g + 1; x++) { + var T = 100 * x / g; + T < 100 && (b += '
        ') + } + e.elemTemp.append(b) + } + if (t.input && !t.range) { + var w = i('
        '); + h.css("position", "relative"), + h.append(w), + h.find("." + c).children("input").val(t.value), + "vertical" === t.type ? w.css({ + left: 0, + top: -48 + }) : e.elemTemp.css("margin-right", w.outerWidth() + 15) + } + t.disabled ? (e.elemTemp.addClass(l), + e.elemTemp.find("." + u).addClass(l)) : e.slide(), + e.elemTemp.find("." + u).on("mouseover", function() { + var a = "vertical" === t.type ? t.height : e.elemTemp[0].offsetWidth + , n = e.elemTemp.find("." + o) + , l = "vertical" === t.type ? a - i(this).parent()[0].offsetTop - n.height() : i(this).parent()[0].offsetLeft + , s = l / a * 100 + , r = i(this).parent().data("value") + , u = t.setTips ? t.setTips(r) : r; + e.elemTemp.find("." + d).html(u), + "vertical" === t.type ? e.elemTemp.find("." + d).css({ + bottom: s + "%", + "margin-bottom": "20px", + display: "inline-block" + }) : e.elemTemp.find("." + d).css({ + left: s + "%", + display: "inline-block" + }) + }).on("mouseout", function() { + e.elemTemp.find("." + d).css("display", "none") + }) + } + , + f.prototype.slide = function(e, t, a) { + var n = this + , l = n.config + , s = n.elemTemp + , f = function() { + return "vertical" === l.type ? l.height : s[0].offsetWidth + } + , h = s.find("." + o) + , y = s.next("." + v) + , g = y.children("." + c).children("input").val() + , b = 100 / ((l.max - l.min) / Math.ceil(l.step)) + , x = function(e, i) { + e = Math.ceil(e) * b > 100 ? Math.ceil(e) * b : Math.round(e) * b, + e = e > 100 ? 100 : e, + h.eq(i).css("vertical" === l.type ? "bottom" : "left", e + "%"); + var t = T(h[0].offsetLeft) + , a = l.range ? T(h[1].offsetLeft) : 0; + "vertical" === l.type ? (s.find("." + d).css({ + bottom: e + "%", + "margin-bottom": "20px" + }), + t = T(f() - h[0].offsetTop - h.height()), + a = l.range ? T(f() - h[1].offsetTop - h.height()) : 0) : s.find("." + d).css("left", e + "%"), + t = t > 100 ? 100 : t, + a = a > 100 ? 100 : a; + var n = Math.min(t, a) + , o = Math.abs(t - a); + "vertical" === l.type ? s.find("." + r).css({ + height: o + "%", + bottom: n + "%" + }) : s.find("." + r).css({ + width: o + "%", + left: n + "%" + }); + var u = l.min + Math.round((l.max - l.min) * e / 100); + if (g = u, + y.children("." + c).children("input").val(g), + h.eq(i).data("value", u), + s.find("." + d).html(l.setTips ? l.setTips(u) : u), + l.range) { + var v = [h.eq(0).data("value"), h.eq(1).data("value")]; + v[0] > v[1] && v.reverse() + } + l.change && l.change(l.range ? v : u) + } + , T = function(e) { + var i = e / f() * 100 / b + , t = Math.round(i) * b; + return e == f() && (t = Math.ceil(i) * b), + t + } + , w = i(['
        f() && (r = f()); + var o = r / f() * 100 / b; + x(o, e), + t.addClass(m), + s.find("." + d).show(), + i.preventDefault() + } + , o = function() { + t.removeClass(m), + s.find("." + d).hide() + }; + M(r, o) + }) + }), + s.on("click", function(e) { + var t = i("." + u); + if (!t.is(event.target) && 0 === t.has(event.target).length && t.length) { + var a, n = "vertical" === l.type ? f() - e.clientY + i(this).offset().top : e.clientX - i(this).offset().left; + n < 0 && (n = 0), + n > f() && (n = f()); + var s = n / f() * 100 / b; + a = l.range ? "vertical" === l.type ? Math.abs(n - parseInt(i(h[0]).css("bottom"))) > Math.abs(n - parseInt(i(h[1]).css("bottom"))) ? 1 : 0 : Math.abs(n - h[0].offsetLeft) > Math.abs(n - h[1].offsetLeft) ? 1 : 0 : 0, + x(s, a), + e.preventDefault() + } + }), + y.children("." + p).children("i").each(function(e) { + i(this).on("click", function() { + g = y.children("." + c).children("input").val(), + g = 1 == e ? g - l.step < l.min ? l.min : Number(g) - l.step : Number(g) + l.step > l.max ? l.max : Number(g) + l.step; + var i = (g - l.min) / (l.max - l.min) * 100 / b; + x(i, 0) + }) + }); + var q = function() { + var e = this.value; + e = isNaN(e) ? 0 : e, + e = e < l.min ? l.min : e, + e = e > l.max ? l.max : e, + this.value = e; + var i = (e - l.min) / (l.max - l.min) * 100 / b; + x(i, 0) + }; + y.children("." + c).children("input").on("keydown", function(e) { + 13 === e.keyCode && (e.preventDefault(), + q.call(this)) + }).on("change", q) + } + , + f.prototype.events = function() { + var e = this; + e.config + } + , + t.render = function(e) { + var i = new f(e); + return a.call(i) + } + , + e(n, t) +}); +layui.define("jquery", function(e) { + "use strict"; + var i = layui.jquery + , o = { + config: {}, + index: layui.colorpicker ? layui.colorpicker.index + 1e4 : 0, + set: function(e) { + var o = this; + return o.config = i.extend({}, o.config, e), + o + }, + on: function(e, i) { + return layui.onevent.call(this, "colorpicker", e, i) + } + } + , r = function() { + var e = this + , i = e.config; + return { + config: i + } + } + , t = "colorpicker" + , n = "layui-show" + , l = "layui-colorpicker" + , c = ".layui-colorpicker-main" + , a = "layui-icon-down" + , s = "layui-icon-close" + , f = "layui-colorpicker-trigger-span" + , d = "layui-colorpicker-trigger-i" + , u = "layui-colorpicker-side" + , p = "layui-colorpicker-side-slider" + , g = "layui-colorpicker-basis" + , v = "layui-colorpicker-alpha-bgcolor" + , h = "layui-colorpicker-alpha-slider" + , m = "layui-colorpicker-basis-cursor" + , b = "layui-colorpicker-main-input" + , k = function(e) { + var i = { + h: 0, + s: 0, + b: 0 + } + , o = Math.min(e.r, e.g, e.b) + , r = Math.max(e.r, e.g, e.b) + , t = r - o; + return i.b = r, + i.s = 0 != r ? 255 * t / r : 0, + 0 != i.s ? e.r == r ? i.h = (e.g - e.b) / t : e.g == r ? i.h = 2 + (e.b - e.r) / t : i.h = 4 + (e.r - e.g) / t : i.h = -1, + r == o && (i.h = 0), + i.h *= 60, + i.h < 0 && (i.h += 360), + i.s *= 100 / 255, + i.b *= 100 / 255, + i + } + , y = function(e) { + var e = e.indexOf("#") > -1 ? e.substring(1) : e; + if (3 == e.length) { + var i = e.split(""); + e = i[0] + i[0] + i[1] + i[1] + i[2] + i[2] + } + e = parseInt(e, 16); + var o = { + r: e >> 16, + g: (65280 & e) >> 8, + b: 255 & e + }; + return k(o) + } + , x = function(e) { + var i = {} + , o = e.h + , r = 255 * e.s / 100 + , t = 255 * e.b / 100; + if (0 == r) + i.r = i.g = i.b = t; + else { + var n = t + , l = (255 - r) * t / 255 + , c = (n - l) * (o % 60) / 60; + 360 == o && (o = 0), + o < 60 ? (i.r = n, + i.b = l, + i.g = l + c) : o < 120 ? (i.g = n, + i.b = l, + i.r = n - c) : o < 180 ? (i.g = n, + i.r = l, + i.b = l + c) : o < 240 ? (i.b = n, + i.r = l, + i.g = n - c) : o < 300 ? (i.b = n, + i.g = l, + i.r = l + c) : o < 360 ? (i.r = n, + i.g = l, + i.b = n - c) : (i.r = 0, + i.g = 0, + i.b = 0) + } + return { + r: Math.round(i.r), + g: Math.round(i.g), + b: Math.round(i.b) + } + } + , C = function(e) { + var o = x(e) + , r = [o.r.toString(16), o.g.toString(16), o.b.toString(16)]; + return i.each(r, function(e, i) { + 1 == i.length && (r[e] = "0" + i) + }), + r.join("") + } + , P = function(e) { + var i = /[0-9]{1,3}/g + , o = e.match(i) || []; + return { + r: o[0], + g: o[1], + b: o[2] + } + } + , B = i(window) + , w = i(document) + , D = function(e) { + var r = this; + r.index = ++o.index, + r.config = i.extend({}, r.config, o.config, e), + r.render() + }; + D.prototype.config = { + color: "", + size: null, + alpha: !1, + format: "hex", + predefine: !1, + colors: ["#009688", "#5FB878", "#1E9FFF", "#FF5722", "#FFB800", "#01AAED", "#999", "#c00", "#ff8c00", "#ffd700", "#90ee90", "#00ced1", "#1e90ff", "#c71585", "rgb(0, 186, 189)", "rgb(255, 120, 0)", "rgb(250, 212, 0)", "#393D49", "rgba(0,0,0,.5)", "rgba(255, 69, 0, 0.68)", "rgba(144, 240, 144, 0.5)", "rgba(31, 147, 255, 0.73)"] + }, + D.prototype.render = function() { + var e = this + , o = e.config + , r = i(['
        ', "", ' 3 && (o.alpha && "rgb" == o.format || (e = "#" + C(k(P(o.color))))), + "background: " + e) : e + }() + '">', '', "", "", "
        "].join("")) + , t = i(o.elem); + o.size && r.addClass("layui-colorpicker-" + o.size), + t.addClass("layui-inline").html(e.elemColorBox = r), + e.color = e.elemColorBox.find("." + f)[0].style.background, + e.events() + } + , + D.prototype.renderPicker = function() { + var e = this + , o = e.config + , r = e.elemColorBox[0] + , t = e.elemPicker = i(['
        ', '
        ', '
        ', '
        ', '
        ', '
        ', "
        ", '
        ', '
        ', "
        ", "
        ", '
        ', '
        ', '
        ', "
        ", "
        ", function() { + if (o.predefine) { + var e = ['
        ']; + return layui.each(o.colors, function(i, o) { + e.push(['
        ', '
        ', "
        "].join("")) + }), + e.push("
        "), + e.join("") + } + return "" + }(), '
        ', '
        ', '', "
        ", '
        ', '', '', "", "
        "].join("")); + e.elemColorBox.find("." + f)[0]; + i(c)[0] && i(c).data("index") == e.index ? e.removePicker(D.thisElemInd) : (e.removePicker(D.thisElemInd), + i("body").append(t)), + D.thisElemInd = e.index, + D.thisColor = r.style.background, + e.position(), + e.pickerEvents() + } + , + D.prototype.removePicker = function(e) { + var o = this; + o.config; + return i("#layui-colorpicker" + (e || o.index)).remove(), + o + } + , + D.prototype.position = function() { + var e = this + , i = e.config + , o = e.bindElem || e.elemColorBox[0] + , r = e.elemPicker[0] + , t = o.getBoundingClientRect() + , n = r.offsetWidth + , l = r.offsetHeight + , c = function(e) { + return e = e ? "scrollLeft" : "scrollTop", + document.body[e] | document.documentElement[e] + } + , a = function(e) { + return document.documentElement[e ? "clientWidth" : "clientHeight"] + } + , s = 5 + , f = t.left + , d = t.bottom; + f -= (n - o.offsetWidth) / 2, + d += s, + f + n + s > a("width") ? f = a("width") - n - s : f < s && (f = s), + d + l + s > a() && (d = t.top > l ? t.top - l : a() - l, + d -= 2 * s), + i.position && (r.style.position = i.position), + r.style.left = f + ("fixed" === i.position ? 0 : c(1)) + "px", + r.style.top = d + ("fixed" === i.position ? 0 : c()) + "px" + } + , + D.prototype.val = function() { + var e = this + , i = (e.config, + e.elemColorBox.find("." + f)) + , o = e.elemPicker.find("." + b) + , r = i[0] + , t = r.style.backgroundColor; + if (t) { + var n = k(P(t)) + , l = i.attr("lay-type"); + if (e.select(n.h, n.s, n.b), + "torgb" === l && o.find("input").val(t), + "rgba" === l) { + var c = P(t); + if (3 == (t.match(/[0-9]{1,3}/g) || []).length) + o.find("input").val("rgba(" + c.r + ", " + c.g + ", " + c.b + ", 1)"), + e.elemPicker.find("." + h).css("left", 280); + else { + o.find("input").val(t); + var a = 280 * t.slice(t.lastIndexOf(",") + 1, t.length - 1); + e.elemPicker.find("." + h).css("left", a) + } + e.elemPicker.find("." + v)[0].style.background = "linear-gradient(to right, rgba(" + c.r + ", " + c.g + ", " + c.b + ", 0), rgb(" + c.r + ", " + c.g + ", " + c.b + "))" + } + } else + e.select(0, 100, 100), + o.find("input").val(""), + e.elemPicker.find("." + v)[0].style.background = "", + e.elemPicker.find("." + h).css("left", 280) + } + , + D.prototype.side = function() { + var e = this + , o = e.config + , r = e.elemColorBox.find("." + f) + , t = r.attr("lay-type") + , n = e.elemPicker.find("." + u) + , l = e.elemPicker.find("." + p) + , c = e.elemPicker.find("." + g) + , y = e.elemPicker.find("." + m) + , C = e.elemPicker.find("." + v) + , w = e.elemPicker.find("." + h) + , D = l[0].offsetTop / 180 * 360 + , E = 100 - (y[0].offsetTop + 3) / 180 * 100 + , H = (y[0].offsetLeft + 3) / 260 * 100 + , W = Math.round(w[0].offsetLeft / 280 * 100) / 100 + , j = e.elemColorBox.find("." + d) + , F = e.elemPicker.find(".layui-colorpicker-pre").children("div") + , L = function(i, n, l, c) { + e.select(i, n, l); + var f = x({ + h: i, + s: n, + b: l + }); + if (j.addClass(a).removeClass(s), + r[0].style.background = "rgb(" + f.r + ", " + f.g + ", " + f.b + ")", + "torgb" === t && e.elemPicker.find("." + b).find("input").val("rgb(" + f.r + ", " + f.g + ", " + f.b + ")"), + "rgba" === t) { + var d = 0; + d = 280 * c, + w.css("left", d), + e.elemPicker.find("." + b).find("input").val("rgba(" + f.r + ", " + f.g + ", " + f.b + ", " + c + ")"), + r[0].style.background = "rgba(" + f.r + ", " + f.g + ", " + f.b + ", " + c + ")", + C[0].style.background = "linear-gradient(to right, rgba(" + f.r + ", " + f.g + ", " + f.b + ", 0), rgb(" + f.r + ", " + f.g + ", " + f.b + "))" + } + o.change && o.change(e.elemPicker.find("." + b).find("input").val()) + } + , M = i(['
        t && (r = t); + var l = r / 180 * 360; + D = l, + L(l, H, E, W), + e.preventDefault() + }; + Y(r), + e.preventDefault() + }), + n.on("click", function(e) { + var o = e.clientY - i(this).offset().top; + o < 0 && (o = 0), + o > this.offsetHeight && (o = this.offsetHeight); + var r = o / 180 * 360; + D = r, + L(r, H, E, W), + e.preventDefault() + }), + y.on("mousedown", function(e) { + var i = this.offsetTop + , o = this.offsetLeft + , r = e.clientY + , t = e.clientX + , n = function(e) { + var n = i + (e.clientY - r) + , l = o + (e.clientX - t) + , a = c[0].offsetHeight - 3 + , s = c[0].offsetWidth - 3; + n < -3 && (n = -3), + n > a && (n = a), + l < -3 && (l = -3), + l > s && (l = s); + var f = (l + 3) / 260 * 100 + , d = 100 - (n + 3) / 180 * 100; + E = d, + H = f, + L(D, f, d, W), + e.preventDefault() + }; + layui.stope(e), + Y(n), + e.preventDefault() + }), + c.on("mousedown", function(e) { + var o = e.clientY - i(this).offset().top - 3 + B.scrollTop() + , r = e.clientX - i(this).offset().left - 3 + B.scrollLeft(); + o < -3 && (o = -3), + o > this.offsetHeight - 3 && (o = this.offsetHeight - 3), + r < -3 && (r = -3), + r > this.offsetWidth - 3 && (r = this.offsetWidth - 3); + var t = (r + 3) / 260 * 100 + , n = 100 - (o + 3) / 180 * 100; + E = n, + H = t, + L(D, t, n, W), + e.preventDefault(), + y.trigger(e, "mousedown") + }), + w.on("mousedown", function(e) { + var i = this.offsetLeft + , o = e.clientX + , r = function(e) { + var r = i + (e.clientX - o) + , t = C[0].offsetWidth; + r < 0 && (r = 0), + r > t && (r = t); + var n = Math.round(r / 280 * 100) / 100; + W = n, + L(D, H, E, n), + e.preventDefault() + }; + Y(r), + e.preventDefault() + }), + C.on("click", function(e) { + var o = e.clientX - i(this).offset().left; + o < 0 && (o = 0), + o > this.offsetWidth && (o = this.offsetWidth); + var r = Math.round(o / 280 * 100) / 100; + W = r, + L(D, H, E, r), + e.preventDefault() + }), + F.each(function() { + i(this).on("click", function() { + i(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected"); + var e, o = this.style.backgroundColor, r = k(P(o)), t = o.slice(o.lastIndexOf(",") + 1, o.length - 1); + D = r.h, + H = r.s, + E = r.b, + 3 == (o.match(/[0-9]{1,3}/g) || []).length && (t = 1), + W = t, + e = 280 * t, + L(r.h, r.s, r.b, t) + }) + }) + } + , + D.prototype.select = function(e, i, o, r) { + var t = this + , n = (t.config, + C({ + h: e, + s: 100, + b: 100 + })) + , l = C({ + h: e, + s: i, + b: o + }) + , c = e / 360 * 180 + , a = 180 - o / 100 * 180 - 3 + , s = i / 100 * 260 - 3; + t.elemPicker.find("." + p).css("top", c), + t.elemPicker.find("." + g)[0].style.background = "#" + n, + t.elemPicker.find("." + m).css({ + top: a, + left: s + }), + "change" !== r && t.elemPicker.find("." + b).find("input").val("#" + l) + } + , + D.prototype.pickerEvents = function() { + var e = this + , o = e.config + , r = e.elemColorBox.find("." + f) + , t = e.elemPicker.find("." + b + " input") + , n = { + clear: function(i) { + r[0].style.background = "", + e.elemColorBox.find("." + d).removeClass(a).addClass(s), + e.color = "", + o.done && o.done(""), + e.removePicker() + }, + confirm: function(i, n) { + var l = t.val() + , c = l + , f = {}; + if (l.indexOf(",") > -1) { + if (f = k(P(l)), + e.select(f.h, f.s, f.b), + r[0].style.background = c = "#" + C(f), + (l.match(/[0-9]{1,3}/g) || []).length > 3 && "rgba" === r.attr("lay-type")) { + var u = 280 * l.slice(l.lastIndexOf(",") + 1, l.length - 1); + e.elemPicker.find("." + h).css("left", u), + r[0].style.background = l, + c = l + } + } else + f = y(l), + r[0].style.background = c = "#" + C(f), + e.elemColorBox.find("." + d).removeClass(s).addClass(a); + return "change" === n ? (e.select(f.h, f.s, f.b, n), + void (o.change && o.change(c))) : (e.color = l, + o.done && o.done(l), + void e.removePicker()) + } + }; + e.elemPicker.on("click", "*[colorpicker-events]", function() { + var e = i(this) + , o = e.attr("colorpicker-events"); + n[o] && n[o].call(this, e) + }), + t.on("keyup", function(e) { + var o = i(this); + n.confirm.call(this, o, 13 === e.keyCode ? null : "change") + }) + } + , + D.prototype.events = function() { + var e = this + , o = e.config + , r = e.elemColorBox.find("." + f); + e.elemColorBox.on("click", function() { + e.renderPicker(), + i(c)[0] && (e.val(), + e.side()) + }), + o.elem[0] && !e.elemColorBox[0].eventHandler && (w.on("click", function(o) { + if (!i(o.target).hasClass(l) && !i(o.target).parents("." + l)[0] && !i(o.target).hasClass(c.replace(/\./g, "")) && !i(o.target).parents(c)[0] && e.elemPicker) { + if (e.color) { + var t = k(P(e.color)); + e.select(t.h, t.s, t.b) + } else + e.elemColorBox.find("." + d).removeClass(a).addClass(s); + r[0].style.background = e.color || "", + e.removePicker() + } + }), + B.on("resize", function() { + return !(!e.elemPicker || !i(c)[0]) && void e.position() + }), + e.elemColorBox[0].eventHandler = !0) + } + , + o.render = function(e) { + var i = new D(e); + return r.call(i) + } + , + e(t, o) +}); +layui.define("layer", function(e) { + "use strict"; + var t = layui.$ + , i = layui.layer + , a = layui.hint() + , n = layui.device() + , l = "form" + , r = ".layui-form" + , s = "layui-this" + , o = "layui-hide" + , c = "layui-disabled" + , u = function() { + this.config = { + verify: { + required: [/[\S]+/, "必填项不能为空"], + phone: [/^1\d{10}$/, "请输入正确的手机号"], + email: [/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"], + url: [/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "链接格式不正确"], + number: function(e) { + if (!e || isNaN(e)) + return "只能填写数字" + }, + date: [/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "日期格式不正确"], + identity: [/(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "请输入正确的身份证号"] + } + } + }; + u.prototype.set = function(e) { + var i = this; + return t.extend(!0, i.config, e), + i + } + , + u.prototype.verify = function(e) { + var i = this; + return t.extend(!0, i.config.verify, e), + i + } + , + u.prototype.on = function(e, t) { + return layui.onevent.call(this, l, e, t) + } + , + u.prototype.val = function(e, i) { + var a = this + , n = t(r + '[lay-filter="' + e + '"]'); + return n.each(function(e, a) { + var n = t(this); + layui.each(i, function(e, t) { + var i, a = n.find('[name="' + e + '"]'); + a[0] && (i = a[0].type, + "checkbox" === i ? a[0].checked = t : "radio" === i ? a.each(function() { + this.value == t && (this.checked = !0) + }) : a.val(t)) + }) + }), + f.render(null, e), + a.getValue(e) + } + , + u.prototype.getValue = function(e, i) { + i = i || t(r + '[lay-filter="' + e + '"]').eq(0); + var a = {} + , n = {} + , l = i.find("input,select,textarea"); + return layui.each(l, function(e, t) { + if (t.name = (t.name || "").replace(/^\s*|\s*&/, ""), + t.name) { + if (/^.*\[\]$/.test(t.name)) { + var i = t.name.match(/^(.*)\[\]$/g)[0]; + a[i] = 0 | a[i], + t.name = t.name.replace(/^(.*)\[\]$/, "$1[" + a[i]++ + "]") + } + /^checkbox|radio$/.test(t.type) && !t.checked || (n[t.name] = t.value) + } + }), + n + } + , + u.prototype.render = function(e, i) { + var n = this + , u = t(r + function() { + return i ? '[lay-filter="' + i + '"]' : "" + }()) + , d = { + select: function() { + var e, i = "请选择", a = "layui-form-select", n = "layui-select-title", r = "layui-select-none", d = "", f = u.find("select"), v = function(i, l) { + t(i.target).parent().hasClass(n) && !l || (t("." + a).removeClass(a + "ed " + a + "up"), + e && d && e.val(d)), + e = null + }, y = function(i, u, f) { + var y, p = t(this), m = i.find("." + n), k = m.find("input"), g = i.find("dl"), x = g.children("dd"), b = this.selectedIndex; + if (!u) { + var C = function() { + var e = i.offset().top + i.outerHeight() + 5 - h.scrollTop() + , t = g.outerHeight(); + b = p[0].selectedIndex, + i.addClass(a + "ed"), + x.removeClass(o), + y = null, + x.eq(b).addClass(s).siblings().removeClass(s), + e + t > h.height() && e >= t && i.addClass(a + "up"), + T() + } + , w = function(e) { + i.removeClass(a + "ed " + a + "up"), + k.blur(), + y = null, + e || $(k.val(), function(e) { + var i = p[0].selectedIndex; + e && (d = t(p[0].options[i]).html(), + 0 === i && d === k.attr("placeholder") && (d = ""), + k.val(d || "")) + }) + } + , T = function() { + var e = g.children("dd." + s); + if (e[0]) { + var t = e.position().top + , i = g.height() + , a = e.height(); + t > i && g.scrollTop(t + g.scrollTop() - i + a - 5), + t < 0 && g.scrollTop(t + g.scrollTop() - 5) + } + }; + m.on("click", function(e) { + i.hasClass(a + "ed") ? w() : (v(e, !0), + C()), + g.find("." + r).remove() + }), + m.find(".layui-edge").on("click", function() { + k.focus() + }), + k.on("keyup", function(e) { + var t = e.keyCode; + 9 === t && C() + }).on("keydown", function(e) { + var t = e.keyCode; + 9 === t && w(); + var i = function(t, a) { + var n, l; + e.preventDefault(); + var r = function() { + var e = g.children("dd." + s); + if (g.children("dd." + o)[0] && "next" === t) { + var i = g.children("dd:not(." + o + ",." + c + ")") + , n = i.eq(0).index(); + if (n >= 0 && n < e.index() && !i.hasClass(s)) + return i.eq(0).prev()[0] ? i.eq(0).prev() : g.children(":last") + } + return a && a[0] ? a : y && y[0] ? y : e + }(); + return l = r[t](), + n = r[t]("dd:not(." + o + ")"), + l[0] ? (y = r[t](), + n[0] && !n.hasClass(c) || !y[0] ? (n.addClass(s).siblings().removeClass(s), + void T()) : i(t, y)) : y = null + }; + 38 === t && i("prev"), + 40 === t && i("next"), + 13 === t && (e.preventDefault(), + g.children("dd." + s).trigger("click")) + }); + var $ = function(e, i, a) { + var n = 0; + layui.each(x, function() { + var i = t(this) + , l = i.text() + , r = l.indexOf(e) === -1; + ("" === e || "blur" === a ? e !== l : r) && n++, + "keyup" === a && i[r ? "addClass" : "removeClass"](o) + }); + var l = n === x.length; + return i(l), + l + } + , q = function(e) { + var t = this.value + , i = e.keyCode; + return 9 !== i && 13 !== i && 37 !== i && 38 !== i && 39 !== i && 40 !== i && ($(t, function(e) { + e ? g.find("." + r)[0] || g.append('

        无匹配项

        ') : g.find("." + r).remove() + }, "keyup"), + "" === t && g.find("." + r).remove(), + void T()) + }; + f && k.on("keyup", q).on("blur", function(i) { + var a = p[0].selectedIndex; + e = k, + d = t(p[0].options[a]).html(), + 0 === a && d === k.attr("placeholder") && (d = ""), + setTimeout(function() { + $(k.val(), function(e) { + d || k.val("") + }, "blur") + }, 200) + }), + x.on("click", function() { + var e = t(this) + , a = e.attr("lay-value") + , n = p.attr("lay-filter"); + return !e.hasClass(c) && (e.hasClass("layui-select-tips") ? k.val("") : (k.val(e.text()), + e.addClass(s)), + e.siblings().removeClass(s), + p.val(a).removeClass("layui-form-danger"), + layui.event.call(this, l, "select(" + n + ")", { + elem: p[0], + value: a, + othis: i + }), + w(!0), + !1) + }), + i.find("dl>dt").on("click", function(e) { + return !1 + }), + t(document).off("click", v).on("click", v) + } + }; + f.each(function(e, l) { + var r = t(this) + , o = r.next("." + a) + , u = this.disabled + , d = l.value + , f = t(l.options[l.selectedIndex]) + , v = l.options[0]; + if ("string" == typeof r.attr("lay-ignore")) + return r.show(); + var h = "string" == typeof r.attr("lay-search") + , p = v ? v.value ? i : v.innerHTML || i : i + , m = t(['
        ', '
        ', '', '
        ', '
        ', function(e) { + var t = []; + return layui.each(e, function(e, a) { + 0 !== e || a.value ? "optgroup" === a.tagName.toLowerCase() ? t.push("
        " + a.label + "
        ") : t.push('
        ' + a.innerHTML + "
        ") : t.push('
        ' + (a.innerHTML || i) + "
        ") + }), + 0 === t.length && t.push('
        没有选项
        '), + t.join("") + }(r.find("*")) + "
        ", "
        "].join("")); + o[0] && o.remove(), + r.after(m), + y.call(this, m, u, h) + }) + }, + checkbox: function() { + var e = { + checkbox: ["layui-form-checkbox", "layui-form-checked", "checkbox"], + _switch: ["layui-form-switch", "layui-form-onswitch", "switch"] + } + , i = u.find("input[type=checkbox]") + , a = function(e, i) { + var a = t(this); + e.on("click", function() { + var t = a.attr("lay-filter") + , n = (a.attr("lay-text") || "").split("|"); + a[0].disabled || (a[0].checked ? (a[0].checked = !1, + e.removeClass(i[1]).find("em").text(n[1])) : (a[0].checked = !0, + e.addClass(i[1]).find("em").text(n[0])), + layui.event.call(a[0], l, i[2] + "(" + t + ")", { + elem: a[0], + value: a[0].value, + othis: e + })) + }) + }; + i.each(function(i, n) { + var l = t(this) + , r = l.attr("lay-skin") + , s = (l.attr("lay-text") || "").split("|") + , o = this.disabled; + "switch" === r && (r = "_" + r); + var u = e[r] || e.checkbox; + if ("string" == typeof l.attr("lay-ignore")) + return l.show(); + var d = l.next("." + u[0]) + , f = t(['
        ", function() { + var e = n.title.replace(/\s/g, "") + , t = { + checkbox: [e ? "" + n.title + "" : "", ''].join(""), + _switch: "" + ((n.checked ? s[0] : s[1]) || "") + "" + }; + return t[r] || t.checkbox + }(), "
        "].join("")); + d[0] && d.remove(), + l.after(f), + a.call(this, f, u) + }) + }, + radio: function() { + var e = "layui-form-radio" + , i = ["", ""] + , a = u.find("input[type=radio]") + , n = function(a) { + var n = t(this) + , s = "layui-anim-scaleSpring"; + a.on("click", function() { + var o = n[0].name + , c = n.parents(r) + , u = n.attr("lay-filter") + , d = c.find("input[name=" + o.replace(/(\.|#|\[|\])/g, "\\$1") + "]"); + n[0].disabled || (layui.each(d, function() { + var a = t(this).next("." + e); + this.checked = !1, + a.removeClass(e + "ed"), + a.find(".layui-icon").removeClass(s).html(i[1]) + }), + n[0].checked = !0, + a.addClass(e + "ed"), + a.find(".layui-icon").addClass(s).html(i[0]), + layui.event.call(n[0], l, "radio(" + u + ")", { + elem: n[0], + value: n[0].value, + othis: a + })) + }) + }; + a.each(function(a, l) { + var r = t(this) + , s = r.next("." + e) + , o = this.disabled; + if ("string" == typeof r.attr("lay-ignore")) + return r.show(); + s[0] && s.remove(); + var u = t(['
        ', '' + i[l.checked ? 0 : 1] + "", "
        " + function() { + var e = l.title || ""; + return "string" == typeof r.next().attr("lay-radio") && (e = r.next().html(), + r.next().remove()), + e + }() + "
        ", "
        "].join("")); + r.after(u), + n.call(this, u) + }) + } + }; + return e ? d[e] ? d[e]() : a.error("不支持的" + e + "表单渲染") : layui.each(d, function(e, t) { + t() + }), + n + } + ; + var d = function() { + var e = null + , a = f.config.verify + , s = "layui-form-danger" + , o = {} + , c = t(this) + , u = c.parents(r) + , d = u.find("*[lay-verify]") + , v = c.parents("form")[0] + , h = c.attr("lay-filter"); + return layui.each(d, function(l, r) { + var o = t(this) + , c = o.attr("lay-verify").split("|") + , u = o.attr("lay-verType") + , d = o.val(); + if (o.removeClass(s), + layui.each(c, function(t, l) { + var c, f = "", v = "function" == typeof a[l]; + if (a[l]) { + var c = v ? f = a[l](d, r) : !a[l][0].test(d); + if (f = f || a[l][1], + "required" === l && (f = o.attr("lay-reqText") || f), + c) + return "tips" === u ? i.tips(f, function() { + return "string" == typeof o.attr("lay-ignore") || "select" !== r.tagName.toLowerCase() && !/^checkbox|radio$/.test(r.type) ? o : o.next() + }(), { + tips: 1 + }) : "alert" === u ? i.alert(f, { + title: "提示", + shadeClose: !0 + }) : /\bstring|number\b/.test(typeof f) && i.msg(f, { + icon: 5, + shift: 6 + }), + n.android || n.ios || setTimeout(function() { + r.focus() + }, 7), + o.addClass(s), + e = !0 + } + }), + e) + return e + }), + !e && (o = f.getValue(null, u), + layui.event.call(this, l, "submit(" + h + ")", { + elem: this, + form: v, + field: o + })) + } + , f = new u + , v = t(document) + , h = t(window); + f.render(), + v.on("reset", r, function() { + var e = t(this).attr("lay-filter"); + setTimeout(function() { + f.render(null, e) + }, 50) + }), + v.on("submit", r, d).on("click", "*[lay-submit]", d), + e(l, f) +}); +layui.define("form", function(e) { + "use strict"; + var i = layui.$ + , a = layui.form + , n = layui.layer + , t = "tree" + , r = { + config: {}, + index: layui[t] ? layui[t].index + 1e4 : 0, + set: function(e) { + var a = this; + return a.config = i.extend({}, a.config, e), + a + }, + on: function(e, i) { + return layui.onevent.call(this, t, e, i) + } + } + , l = function() { + var e = this + , i = e.config + , a = i.id || e.index; + return l.that[a] = e, + l.config[a] = i, + { + config: i, + reload: function(i) { + e.reload.call(e, i) + }, + getChecked: function() { + return e.getChecked.call(e) + }, + setChecked: function(i) { + return e.setChecked.call(e, i) + } + } + } + , c = "layui-hide" + , d = "layui-disabled" + , s = "layui-tree-set" + , o = "layui-tree-iconClick" + , h = "layui-icon-addition" + , u = "layui-icon-subtraction" + , p = "layui-tree-entry" + , f = "layui-tree-main" + , y = "layui-tree-txt" + , v = "layui-tree-pack" + , C = "layui-tree-spread" + , k = "layui-tree-setLineShort" + , m = "layui-tree-showLine" + , x = "layui-tree-lineExtend" + , b = function(e) { + var a = this; + a.index = ++r.index, + a.config = i.extend({}, a.config, r.config, e), + a.render() + }; + b.prototype.config = { + data: [], + showCheckbox: !1, + showLine: !0, + accordion: !1, + onlyIconControl: !1, + isJump: !1, + edit: !1, + text: { + defaultNodeName: "未命名", + none: "无数据" + } + }, + b.prototype.reload = function(e) { + var a = this; + layui.each(e, function(e, i) { + i.constructor === Array && delete a.config[e] + }), + a.config = i.extend(!0, {}, a.config, e), + a.render() + } + , + b.prototype.render = function() { + var e = this + , a = e.config; + e.checkids = []; + var n = i('
        '); + e.tree(n); + var t = a.elem = i(a.elem); + if (t[0]) { + if (e.key = a.id || e.index, + e.elem = n, + e.elemNone = i('
        ' + a.text.none + "
        "), + t.html(e.elem), + 0 == e.elem.find(".layui-tree-set").length) + return e.elem.append(e.elemNone); + a.showCheckbox && e.renderForm("checkbox"), + e.elem.find(".layui-tree-set").each(function() { + var e = i(this); + e.parent(".layui-tree-pack")[0] || e.addClass("layui-tree-setHide"), + !e.next()[0] && e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend") && e.addClass(k), + e.next()[0] || e.parents(".layui-tree-set").eq(0).next()[0] || e.addClass(k) + }), + e.events() + } + } + , + b.prototype.renderForm = function(e) { + a.render(e, "LAY-tree-" + this.index) + } + , + b.prototype.tree = function(e, a) { + var n = this + , t = n.config + , r = a || t.data; + layui.each(r, function(a, r) { + var l = r.children && r.children.length > 0 + , o = i('
        ") + , h = i(['
        ', '
        ', '
        ', function() { + return t.showLine ? l ? '' : '' : '' + }(), function() { + return t.showCheckbox ? '' : "" + }(), function() { + return t.isJump && r.href ? '' + (r.title || r.label || t.text.defaultNodeName) + "" : '' + (r.title || r.label || t.text.defaultNodeName) + "" + }(), "
        ", function() { + if (!t.edit) + return ""; + var e = { + add: '', + update: '', + del: '' + } + , i = ['
        ']; + return t.edit === !0 && (t.edit = ["update", "del"]), + "object" == typeof t.edit ? (layui.each(t.edit, function(a, n) { + i.push(e[n] || "") + }), + i.join("") + "
        ") : void 0 + }(), "
        "].join("")); + l && (h.append(o), + n.tree(o, r.children)), + e.append(h), + h.prev("." + s)[0] && h.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"), + l || h.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"), + n.spread(h, r), + t.showCheckbox && (r.checked && n.checkids.push(r.id), + n.checkClick(h, r)), + t.edit && n.operate(h, r) + }) + } + , + b.prototype.spread = function(e, a) { + var n = this + , t = n.config + , r = e.children("." + p) + , l = r.children("." + f) + , c = r.find("." + o) + , k = r.find("." + y) + , m = t.onlyIconControl ? c : l + , x = ""; + m.on("click", function(i) { + var a = e.children("." + v) + , n = m.children(".layui-icon")[0] ? m.children(".layui-icon") : m.find(".layui-tree-icon").children(".layui-icon"); + if (a[0]) { + if (e.hasClass(C)) + e.removeClass(C), + a.slideUp(200), + n.removeClass(u).addClass(h); + else if (e.addClass(C), + a.slideDown(200), + n.addClass(u).removeClass(h), + t.accordion) { + var r = e.siblings("." + s); + r.removeClass(C), + r.children("." + v).slideUp(200), + r.find(".layui-tree-icon").children(".layui-icon").removeClass(u).addClass(h) + } + } else + x = "normal" + }), + k.on("click", function() { + var n = i(this); + n.hasClass(d) || (x = e.hasClass(C) ? t.onlyIconControl ? "open" : "close" : t.onlyIconControl ? "close" : "open", + t.click && t.click({ + elem: e, + state: x, + data: a + })) + }) + } + , + b.prototype.setCheckbox = function(e, i, a) { + var n = this + , t = (n.config, + a.prop("checked")); + if (!a.prop("disabled")) { + if ("object" == typeof i.children || e.find("." + v)[0]) { + var r = e.find("." + v).find('input[same="layuiTreeCheck"]'); + r.each(function() { + this.disabled || (this.checked = t) + }) + } + var l = function(e) { + if (e.parents("." + s)[0]) { + var i, a = e.parent("." + v), n = a.parent(), r = a.prev().find('input[same="layuiTreeCheck"]'); + t ? r.prop("checked", t) : (a.find('input[same="layuiTreeCheck"]').each(function() { + this.checked && (i = !0) + }), + i || r.prop("checked", !1)), + l(n) + } + }; + l(e), + n.renderForm("checkbox") + } + } + , + b.prototype.checkClick = function(e, a) { + var n = this + , t = n.config + , r = e.children("." + p) + , l = r.children("." + f); + l.on("click", 'input[same="layuiTreeCheck"]+', function(r) { + layui.stope(r); + var l = i(this).prev() + , c = l.prop("checked"); + l.prop("disabled") || (n.setCheckbox(e, a, l), + t.oncheck && t.oncheck({ + elem: e, + checked: c, + data: a + })) + }) + } + , + b.prototype.operate = function(e, a) { + var t = this + , r = t.config + , l = e.children("." + p) + , d = l.children("." + f); + l.children(".layui-tree-btnGroup").on("click", ".layui-icon", function(l) { + layui.stope(l); + var f = i(this).data("type") + , b = e.children("." + v) + , g = { + data: a, + type: f, + elem: e + }; + if ("add" == f) { + b[0] || (r.showLine ? (d.find("." + o).addClass("layui-tree-icon"), + d.find("." + o).children(".layui-icon").addClass(h).removeClass("layui-icon-file")) : d.find(".layui-tree-iconArrow").removeClass(c), + e.append('
        ')); + var w = r.operate && r.operate(g) + , N = {}; + if (N.title = r.text.defaultNodeName, + N.id = w, + t.tree(e.children("." + v), [N]), + r.showLine) + if (b[0]) + b.hasClass(x) || b.addClass(x), + e.find("." + v).each(function() { + i(this).children("." + s).last().addClass(k) + }), + b.children("." + s).last().prev().hasClass(k) ? b.children("." + s).last().prev().removeClass(k) : b.children("." + s).last().removeClass(k), + !e.parent("." + v)[0] && e.next()[0] && b.children("." + s).last().removeClass(k); + else { + var T = e.siblings("." + s) + , L = 1 + , A = e.parent("." + v); + layui.each(T, function(e, a) { + i(a).children("." + v)[0] || (L = 0) + }), + 1 == L ? (T.children("." + v).addClass(m), + T.children("." + v).children("." + s).removeClass(k), + e.children("." + v).addClass(m), + A.removeClass(x), + A.children("." + s).last().children("." + v).children("." + s).last().addClass(k)) : e.children("." + v).children("." + s).addClass(k) + } + if (!r.showCheckbox) + return; + if (d.find('input[same="layuiTreeCheck"]')[0].checked) { + var I = e.children("." + v).children("." + s).last(); + I.find('input[same="layuiTreeCheck"]')[0].checked = !0 + } + t.renderForm("checkbox") + } else if ("update" == f) { + var F = d.children("." + y).html(); + d.children("." + y).html(""), + d.append(''), + d.children(".layui-tree-editInput").val(F).focus(); + var j = function(e) { + var i = e.val().trim(); + i = i ? i : r.text.defaultNodeName, + e.remove(), + d.children("." + y).html(i), + g.data.title = i, + r.operate && r.operate(g) + }; + d.children(".layui-tree-editInput").blur(function() { + j(i(this)) + }), + d.children(".layui-tree-editInput").on("keydown", function(e) { + 13 === e.keyCode && (e.preventDefault(), + j(i(this))) + }) + } else + n.confirm('确认删除该节点 "' + (a.title || "") + '" 吗?', function(a) { + if (r.operate && r.operate(g), + g.status = "remove", + n.close(a), + !e.prev("." + s)[0] && !e.next("." + s)[0] && !e.parent("." + v)[0]) + return e.remove(), + void t.elem.append(t.elemNone); + if (e.siblings("." + s).children("." + p)[0]) { + if (r.showCheckbox) { + var l = function(e) { + if (e.parents("." + s)[0]) { + var a = e.siblings("." + s).children("." + p) + , n = e.parent("." + v).prev() + , r = n.find('input[same="layuiTreeCheck"]')[0] + , c = 1 + , d = 0; + 0 == r.checked && (a.each(function(e, a) { + var n = i(a).find('input[same="layuiTreeCheck"]')[0]; + 0 != n.checked || n.disabled || (c = 0), + n.disabled || (d = 1) + }), + 1 == c && 1 == d && (r.checked = !0, + t.renderForm("checkbox"), + l(n.parent("." + s)))) + } + }; + l(e) + } + if (r.showLine) { + var d = e.siblings("." + s) + , h = 1 + , f = e.parent("." + v); + layui.each(d, function(e, a) { + i(a).children("." + v)[0] || (h = 0) + }), + 1 == h ? (b[0] || (f.removeClass(x), + d.children("." + v).addClass(m), + d.children("." + v).children("." + s).removeClass(k)), + e.next()[0] ? f.children("." + s).last().children("." + v).children("." + s).last().addClass(k) : e.prev().children("." + v).children("." + s).last().addClass(k), + e.next()[0] || e.parents("." + s)[1] || e.parents("." + s).eq(0).next()[0] || e.prev("." + s).addClass(k)) : !e.next()[0] && e.hasClass(k) && e.prev().addClass(k) + } + } else { + var y = e.parent("." + v).prev(); + if (r.showLine) { + y.find("." + o).removeClass("layui-tree-icon"), + y.find("." + o).children(".layui-icon").removeClass(u).addClass("layui-icon-file"); + var w = y.parents("." + v).eq(0); + w.addClass(x), + w.children("." + s).each(function() { + i(this).children("." + v).children("." + s).last().addClass(k) + }) + } else + y.find(".layui-tree-iconArrow").addClass(c); + e.parents("." + s).eq(0).removeClass(C), + e.parent("." + v).remove() + } + e.remove() + }) + }) + } + , + b.prototype.events = function() { + var e = this + , a = e.config; + e.elem.find(".layui-tree-checkedFirst"); + e.setChecked(e.checkids), + e.elem.find(".layui-tree-search").on("keyup", function() { + var n = i(this) + , t = n.val() + , r = n.nextAll() + , l = []; + r.find("." + y).each(function() { + var e = i(this).parents("." + p); + if (i(this).html().indexOf(t) != -1) { + l.push(i(this).parent()); + var a = function(e) { + e.addClass("layui-tree-searchShow"), + e.parent("." + v)[0] && a(e.parent("." + v).parent("." + s)) + }; + a(e.parent("." + s)) + } + }), + r.find("." + p).each(function() { + var e = i(this).parent("." + s); + e.hasClass("layui-tree-searchShow") || e.addClass(c) + }), + 0 == r.find(".layui-tree-searchShow").length && e.elem.append(e.elemNone), + a.onsearch && a.onsearch({ + elem: l + }) + }), + e.elem.find(".layui-tree-search").on("keydown", function() { + i(this).nextAll().find("." + p).each(function() { + var e = i(this).parent("." + s); + e.removeClass("layui-tree-searchShow " + c) + }), + i(".layui-tree-emptyText")[0] && i(".layui-tree-emptyText").remove() + }) + } + , + b.prototype.getChecked = function() { + var e = this + , a = e.config + , n = [] + , t = []; + e.elem.find(".layui-form-checked").each(function() { + n.push(i(this).prev()[0].value) + }); + var r = function(e, a) { + layui.each(e, function(e, t) { + layui.each(n, function(e, n) { + if (t.id == n) { + var l = i.extend({}, t); + return delete l.children, + a.push(l), + t.children && (l.children = [], + r(t.children, l.children)), + !0 + } + }) + }) + }; + return r(i.extend({}, a.data), t), + t + } + , + b.prototype.setChecked = function(e) { + var a = this; + a.config; + a.elem.find("." + s).each(function(a, n) { + var t = i(this).data("id") + , r = i(n).children("." + p).find('input[same="layuiTreeCheck"]') + , l = r.next(); + if ("number" == typeof e) { + if (t == e) + return r[0].checked || l.click(), + !1 + } else + "object" == typeof e && layui.each(e, function(e, i) { + if (i == t && !r[0].checked) + return l.click(), + !0 + }) + }) + } + , + l.that = {}, + l.config = {}, + r.reload = function(e, i) { + var a = l.that[e]; + return a.reload(i), + l.call(a) + } + , + r.getChecked = function(e) { + var i = l.that[e]; + return i.getChecked() + } + , + r.setChecked = function(e, i) { + var a = l.that[e]; + return a.setChecked(i) + } + , + r.render = function(e) { + var i = new b(e); + return l.call(i) + } + , + e(t, r) +}); +layui.define(["laytpl", "form"], function(e) { + "use strict"; + var a = layui.$ + , t = layui.laytpl + , i = layui.form + , n = "transfer" + , l = { + config: {}, + index: layui[n] ? layui[n].index + 1e4 : 0, + set: function(e) { + var t = this; + return t.config = a.extend({}, t.config, e), + t + }, + on: function(e, a) { + return layui.onevent.call(this, n, e, a) + } + } + , r = function() { + var e = this + , a = e.config + , t = a.id || e.index; + return r.that[t] = e, + r.config[t] = a, + { + config: a, + reload: function(a) { + e.reload.call(e, a) + }, + getData: function() { + return e.getData.call(e) + } + } + } + , c = "layui-hide" + , o = "layui-btn-disabled" + , d = "layui-none" + , s = "layui-transfer-box" + , u = "layui-transfer-header" + , h = "layui-transfer-search" + , f = "layui-transfer-active" + , y = "layui-transfer-data" + , p = function(e) { + return e = e || {}, + ['
        ', '
        ', '", "
        ", "{{# if(d.data.showSearch){ }}", '", "{{# } }}", '
          ', "
          "].join("") + } + , v = ['
          ', p({ + index: 0, + checkAllName: "layTransferLeftCheckAll" + }), '
          ', '", '", "
          ", p({ + index: 1, + checkAllName: "layTransferRightCheckAll" + }), "
          "].join("") + , x = function(e) { + var t = this; + t.index = ++l.index, + t.config = a.extend({}, t.config, l.config, e), + t.render() + }; + x.prototype.config = { + title: ["列表一", "列表二"], + width: 200, + height: 360, + data: [], + value: [], + showSearch: !1, + id: "", + text: { + none: "无数据", + searchNone: "无匹配数据" + } + }, + x.prototype.reload = function(e) { + var t = this; + t.config = a.extend({}, t.config, e), + t.render() + } + , + x.prototype.render = function() { + var e = this + , i = e.config + , n = e.elem = a(t(v).render({ + data: i, + index: e.index + })) + , l = i.elem = a(i.elem); + l[0] && (i.data = i.data || [], + i.value = i.value || [], + e.key = i.id || e.index, + l.html(e.elem), + e.layBox = e.elem.find("." + s), + e.layHeader = e.elem.find("." + u), + e.laySearch = e.elem.find("." + h), + e.layData = n.find("." + y), + e.layBtn = n.find("." + f + " .layui-btn"), + e.layBox.css({ + width: i.width, + height: i.height + }), + e.layData.css({ + height: function() { + return i.height - e.layHeader.outerHeight() - e.laySearch.outerHeight() - 2 + }() + }), + e.renderData(), + e.events()) + } + , + x.prototype.renderData = function() { + var e = this + , a = (e.config, + [{ + checkName: "layTransferLeftCheck", + views: [] + }, { + checkName: "layTransferRightCheck", + views: [] + }]); + e.parseData(function(e) { + var t = e.selected ? 1 : 0 + , i = ["
        • ", '', "
        • "].join(""); + a[t].views.push(i), + delete e.selected + }), + e.layData.eq(0).html(a[0].views.join("")), + e.layData.eq(1).html(a[1].views.join("")), + e.renderCheckBtn() + } + , + x.prototype.renderForm = function(e) { + i.render(e, "LAY-transfer-" + this.index) + } + , + x.prototype.renderCheckBtn = function(e) { + var t = this + , i = t.config; + e = e || {}, + t.layBox.each(function(n) { + var l = a(this) + , r = l.find("." + y) + , d = l.find("." + u).find('input[type="checkbox"]') + , s = r.find('input[type="checkbox"]') + , h = 0 + , f = !1; + if (s.each(function() { + var e = a(this).data("hide"); + (this.checked || this.disabled || e) && h++, + this.checked && !e && (f = !0) + }), + d.prop("checked", f && h === s.length), + t.layBtn.eq(n)[f ? "removeClass" : "addClass"](o), + !e.stopNone) { + var p = r.children("li:not(." + c + ")").length; + t.noneView(r, p ? "" : i.text.none) + } + }), + t.renderForm("checkbox") + } + , + x.prototype.noneView = function(e, t) { + var i = a('

          ' + (t || "") + "

          "); + e.find("." + d)[0] && e.find("." + d).remove(), + t.replace(/\s/g, "") && e.append(i) + } + , + x.prototype.setValue = function() { + var e = this + , t = e.config + , i = []; + return e.layBox.eq(1).find("." + y + ' input[type="checkbox"]').each(function() { + var e = a(this).data("hide"); + e || i.push(this.value) + }), + t.value = i, + e + } + , + x.prototype.parseData = function(e) { + var t = this + , i = t.config + , n = []; + return layui.each(i.data, function(t, l) { + l = ("function" == typeof i.parseData ? i.parseData(l) : l) || l, + n.push(l = a.extend({}, l)), + layui.each(i.value, function(e, a) { + a == l.value && (l.selected = !0) + }), + e && e(l) + }), + i.data = n, + t + } + , + x.prototype.getData = function(e) { + var a = this + , t = a.config + , i = []; + return a.setValue(), + layui.each(e || t.value, function(e, a) { + layui.each(t.data, function(e, t) { + delete t.selected, + a == t.value && i.push(t) + }) + }), + i + } + , + x.prototype.events = function() { + var e = this + , t = e.config; + e.elem.on("click", 'input[lay-filter="layTransferCheckbox"]+', function() { + var t = a(this).prev() + , i = t[0].checked + , n = t.parents("." + s).eq(0).find("." + y); + t[0].disabled || ("all" === t.attr("lay-type") && n.find('input[type="checkbox"]').each(function() { + this.disabled || (this.checked = i) + }), + e.renderCheckBtn({ + stopNone: !0 + })) + }), + e.layBtn.on("click", function() { + var i = a(this) + , n = i.data("index") + , l = e.layBox.eq(n) + , r = []; + if (!i.hasClass(o)) { + e.layBox.eq(n).each(function(t) { + var i = a(this) + , n = i.find("." + y); + n.children("li").each(function() { + var t = a(this) + , i = t.find('input[type="checkbox"]') + , n = i.data("hide"); + i[0].checked && !n && (i[0].checked = !1, + l.siblings("." + s).find("." + y).append(t.clone()), + t.remove(), + r.push(i[0].value)), + e.setValue() + }) + }), + e.renderCheckBtn(); + var c = l.siblings("." + s).find("." + h + " input"); + "" === c.val() || c.trigger("keyup"), + t.onchange && t.onchange(e.getData(r), n) + } + }), + e.laySearch.find("input").on("keyup", function() { + var i = this.value + , n = a(this).parents("." + h).eq(0).siblings("." + y) + , l = n.children("li"); + l.each(function() { + var e = a(this) + , t = e.find('input[type="checkbox"]') + , n = t[0].title.indexOf(i) !== -1; + e[n ? "removeClass" : "addClass"](c), + t.data("hide", !n) + }), + e.renderCheckBtn(); + var r = l.length === n.children("li." + c).length; + e.noneView(n, r ? t.text.searchNone : "") + }) + } + , + r.that = {}, + r.config = {}, + l.reload = function(e, a) { + var t = r.that[e]; + return t.reload(a), + r.call(t) + } + , + l.getData = function(e) { + var a = r.that[e]; + return a.getData() + } + , + l.render = function(e) { + var a = new x(e); + return r.call(a) + } + , + e(n, l) +}); +layui.define(["laytpl", "laypage", "layer", "form", "util"], function(e) { + "use strict"; + var t = layui.$ + , i = layui.laytpl + , a = layui.laypage + , l = layui.layer + , n = layui.form + , o = (layui.util, + layui.hint()) + , r = layui.device() + , d = { + config: { + checkName: "LAY_CHECKED", + indexName: "LAY_TABLE_INDEX" + }, + cache: {}, + index: layui.table ? layui.table.index + 1e4 : 0, + set: function(e) { + var i = this; + return i.config = t.extend({}, i.config, e), + i + }, + on: function(e, t) { + return layui.onevent.call(this, y, e, t) + } + } + , c = function() { + var e = this + , t = e.config + , i = t.id || t.index; + return i && (c.that[i] = e, + c.config[i] = t), + { + config: t, + reload: function(t, i) { + e.reload.call(e, t, i) + }, + setColsWidth: function() { + e.setColsWidth.call(e) + }, + resize: function() { + e.resize.call(e) + } + } + } + , s = function(e) { + var t = c.config[e]; + return t || o.error(e ? "The table instance with ID '" + e + "' not found" : "ID argument required"), + t || null + } + , u = function(e, a, l, n) { + var o = e.templet ? function() { + return "function" == typeof e.templet ? e.templet(l) : i(t(e.templet).html() || String(a)).render(l) + }() : a; + return n ? t("
          " + o + "
          ").text() : o + } + , y = "table" + , h = ".layui-table" + , f = "layui-hide" + , p = "layui-none" + , v = "layui-table-view" + , m = ".layui-table-tool" + , g = ".layui-table-box" + , b = ".layui-table-init" + , x = ".layui-table-header" + , k = ".layui-table-body" + , C = ".layui-table-main" + , w = ".layui-table-fixed" + , T = ".layui-table-fixed-l" + , N = ".layui-table-fixed-r" + , A = ".layui-table-total" + , L = ".layui-table-page" + , S = ".layui-table-sort" + , R = "layui-table-edit" + , W = "layui-table-hover" + , _ = function(e) { + var t = '{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}'; + return e = e || {}, + ['
          ', "", "{{# layui.each(d.data.cols, function(i1, item1){ }}", "", "{{# layui.each(item1, function(i2, item2){ }}", '{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}', '{{# if(item2.fixed === "right"){ right = true; } }}', function() { + return e.fixed && "right" !== e.fixed ? '{{# if(item2.fixed && item2.fixed !== "right"){ }}' : "right" === e.fixed ? '{{# if(item2.fixed === "right"){ }}' : "" + }(), "{{# var isSort = !(item2.colGroup) && item2.sort; }}", '", e.fixed ? "{{# }; }}" : "", "{{# }); }}", "", "{{# }); }}", "", "
          ', '
          ', '{{# if(item2.type === "checkbox"){ }}', '', "{{# } else { }}", '{{item2.title||""}}', "{{# if(isSort){ }}", '', "{{# } }}", "{{# } }}", "
          ", "
          "].join("") + } + , z = ['', "", "
          "].join("") + , E = ['
          ', "{{# if(d.data.toolbar){ }}", '
          ', '
          ', '
          ', "
          ", "{{# } }}", '
          ', "{{# if(d.data.loading){ }}", '
          ', '', "
          ", "{{# } }}", "{{# var left, right; }}", '
          ', _(), "
          ", '
          ', z, "
          ", "{{# if(left){ }}", '
          ', '
          ', _({ + fixed: !0 + }), "
          ", '
          ', z, "
          ", "
          ", "{{# }; }}", "{{# if(right){ }}", '
          ', '
          ', _({ + fixed: "right" + }), '
          ', "
          ", '
          ', z, "
          ", "
          ", "{{# }; }}", "
          ", "{{# if(d.data.totalRow){ }}", '
          ', '', '', "
          ", "
          ", "{{# } }}", "{{# if(d.data.page){ }}", '
          ', '
          ', "
          ", "{{# } }}", "", "
          "].join("") + , j = t(window) + , F = t(document) + , I = function(e) { + var i = this; + i.index = ++d.index, + i.config = t.extend({}, i.config, d.config, e), + i.render() + }; + I.prototype.config = { + limit: 10, + loading: !0, + cellMinWidth: 60, + defaultToolbar: ["filter", "exports", "print"], + autoSort: !0, + text: { + none: "无数据" + } + }, + I.prototype.render = function() { + var e = this + , a = e.config; + if (a.elem = t(a.elem), + a.where = a.where || {}, + a.id = a.id || a.elem.attr("id") || e.index, + a.request = t.extend({ + pageName: "page", + limitName: "limit" + }, a.request), + a.response = t.extend({ + statusName: "code", + statusCode: 0, + msgName: "msg", + dataName: "data", + totalRowName: "totalRow", + countName: "count" + }, a.response), + "object" == typeof a.page && (a.limit = a.page.limit || a.limit, + a.limits = a.page.limits || a.limits, + e.page = a.page.curr = a.page.curr || 1, + delete a.page.elem, + delete a.page.jump), + !a.elem[0]) + return e; + a.height && /^full-\d+$/.test(a.height) && (e.fullHeightGap = a.height.split("-")[1], + a.height = j.height() - e.fullHeightGap), + e.setInit(); + var l = a.elem + , n = l.next("." + v) + , o = e.elem = t(i(E).render({ + VIEW_CLASS: v, + data: a, + index: e.index + })); + if (a.index = e.index, + e.key = a.id || a.index, + n[0] && n.remove(), + l.after(o), + e.layTool = o.find(m), + e.layBox = o.find(g), + e.layHeader = o.find(x), + e.layMain = o.find(C), + e.layBody = o.find(k), + e.layFixed = o.find(w), + e.layFixLeft = o.find(T), + e.layFixRight = o.find(N), + e.layTotal = o.find(A), + e.layPage = o.find(L), + e.renderToolbar(), + e.fullSize(), + a.cols.length > 1) { + var r = e.layFixed.find(x).find("th"); + r.height(e.layHeader.height() - 1 - parseFloat(r.css("padding-top")) - parseFloat(r.css("padding-bottom"))) + } + e.pullData(e.page), + e.events() + } + , + I.prototype.initOpts = function(e) { + var t = this + , i = (t.config, + { + checkbox: 48, + radio: 48, + space: 15, + numbers: 40 + }); + e.checkbox && (e.type = "checkbox"), + e.space && (e.type = "space"), + e.type || (e.type = "normal"), + "normal" !== e.type && (e.unresize = !0, + e.width = e.width || i[e.type]) + } + , + I.prototype.setInit = function(e) { + var t = this + , i = t.config; + return i.clientWidth = i.width || function() { + var e = function(t) { + var a, l; + t = t || i.elem.parent(), + a = t.width(); + try { + l = "none" === t.css("display") + } catch (n) {} + return !t[0] || a && !l ? a : e(t.parent()) + }; + return e() + }(), + "width" === e ? i.clientWidth : void layui.each(i.cols, function(e, a) { + layui.each(a, function(l, n) { + if (!n) + return void a.splice(l, 1); + if (n.key = e + "-" + l, + n.hide = n.hide || !1, + n.colGroup || n.colspan > 1) { + var o = 0; + layui.each(i.cols[e + 1], function(t, i) { + i.HAS_PARENT || o > 1 && o == n.colspan || (i.HAS_PARENT = !0, + i.parentKey = e + "-" + l, + o += parseInt(i.colspan > 1 ? i.colspan : 1)) + }), + n.colGroup = !0 + } + t.initOpts(n) + }) + }) + } + , + I.prototype.renderToolbar = function() { + var e = this + , a = e.config + , l = ['
          ', '
          ', '
          '].join("") + , n = e.layTool.find(".layui-table-tool-temp"); + if ("default" === a.toolbar) + n.html(l); + else if ("string" == typeof a.toolbar) { + var o = t(a.toolbar).html() || ""; + o && n.html(i(o).render(a)) + } + var r = { + filter: { + title: "筛选列", + layEvent: "LAYTABLE_COLS", + icon: "layui-icon-cols" + }, + exports: { + title: "导出", + layEvent: "LAYTABLE_EXPORT", + icon: "layui-icon-export" + }, + print: { + title: "打印", + layEvent: "LAYTABLE_PRINT", + icon: "layui-icon-print" + } + } + , d = []; + "object" == typeof a.defaultToolbar && layui.each(a.defaultToolbar, function(e, t) { + var i = "string" == typeof t ? r[t] : t; + i && d.push('
          ') + }), + e.layTool.find(".layui-table-tool-self").html(d.join("")) + } + , + I.prototype.setParentCol = function(e, t) { + var i = this + , a = i.config + , l = i.layHeader.find('th[data-key="' + a.index + "-" + t + '"]') + , n = parseInt(l.attr("colspan")) || 0; + if (l[0]) { + var o = t.split("-") + , r = a.cols[o[0]][o[1]]; + e ? n-- : n++, + l.attr("colspan", n), + l[n < 1 ? "addClass" : "removeClass"](f), + r.colspan = n, + r.hide = n < 1; + var d = l.data("parentkey"); + d && i.setParentCol(e, d) + } + } + , + I.prototype.setColsPatch = function() { + var e = this + , t = e.config; + layui.each(t.cols, function(t, i) { + layui.each(i, function(t, i) { + i.hide && e.setParentCol(i.hide, i.parentKey) + }) + }) + } + , + I.prototype.setColsWidth = function() { + var e = this + , t = e.config + , i = 0 + , a = 0 + , l = 0 + , n = 0 + , o = e.setInit("width"); + e.eachCols(function(e, t) { + t.hide || i++ + }), + o = o - function() { + return "line" === t.skin || "nob" === t.skin ? 2 : i + 1 + }() - e.getScrollWidth(e.layMain[0]) - 1; + var r = function(e) { + layui.each(t.cols, function(i, r) { + layui.each(r, function(i, d) { + var c = 0 + , s = d.minWidth || t.cellMinWidth; + return d ? void (d.colGroup || d.hide || (e ? l && l < s && (a--, + c = s) : (c = d.width || 0, + /\d+%$/.test(c) ? (c = Math.floor(parseFloat(c) / 100 * o), + c < s && (c = s)) : c || (d.width = c = 0, + a++)), + d.hide && (c = 0), + n += c)) : void r.splice(i, 1) + }) + }), + o > n && a && (l = (o - n) / a) + }; + r(), + r(!0), + e.autoColNums = a, + e.eachCols(function(i, a) { + var n = a.minWidth || t.cellMinWidth; + a.colGroup || a.hide || (0 === a.width ? e.getCssRule(t.index + "-" + a.key, function(e) { + e.style.width = Math.floor(l >= n ? l : n) + "px" + }) : /\d+%$/.test(a.width) && e.getCssRule(t.index + "-" + a.key, function(e) { + e.style.width = Math.floor(parseFloat(a.width) / 100 * o) + "px" + })) + }); + var d = e.layMain.width() - e.getScrollWidth(e.layMain[0]) - e.layMain.children("table").outerWidth(); + if (e.autoColNums && d >= -i && d <= i) { + var c = function(t) { + var i; + return t = t || e.layHeader.eq(0).find("thead th:last-child"), + i = t.data("field"), + !i && t.prev()[0] ? c(t.prev()) : t + } + , s = c() + , u = s.data("key"); + e.getCssRule(u, function(t) { + var i = t.style.width || s.outerWidth(); + t.style.width = parseFloat(i) + d + "px", + e.layMain.height() - e.layMain.prop("clientHeight") > 0 && (t.style.width = parseFloat(t.style.width) - 1 + "px") + }) + } + e.loading(!0) + } + , + I.prototype.resize = function() { + var e = this; + e.fullSize(), + e.setColsWidth(), + e.scrollPatch() + } + , + I.prototype.reload = function(e, i) { + var a = this; + e = e || {}, + delete a.haveInit, + e.data && e.data.constructor === Array && delete a.config.data, + a.config = t.extend(i, {}, a.config, e), + a.render() + } + , + I.prototype.errorView = function(e) { + var i = this + , a = i.layMain.find("." + p) + , l = t('
          ' + (e || "Error") + "
          "); + a[0] && (i.layNone.remove(), + a.remove()), + i.layFixed.addClass(f), + i.layMain.find("tbody").html(""), + i.layMain.append(i.layNone = l), + d.cache[i.key] = [] + } + , + I.prototype.page = 1, + I.prototype.pullData = function(e) { + var i = this + , a = i.config + , l = a.request + , n = a.response + , o = function() { + "object" == typeof a.initSort && i.sort(a.initSort.field, a.initSort.type) + }; + if (i.startTime = (new Date).getTime(), + a.url) { + var r = {}; + r[l.pageName] = e, + r[l.limitName] = a.limit; + var d = t.extend(r, a.where); + a.contentType && 0 == a.contentType.indexOf("application/json") && (d = JSON.stringify(d)), + i.loading(), + t.ajax({ + type: a.method || "get", + url: a.url, + contentType: a.contentType, + data: d, + dataType: "json", + headers: a.headers || {}, + success: function(t) { + "function" == typeof a.parseData && (t = a.parseData(t) || t), + t[n.statusName] != n.statusCode ? (i.renderForm(), + i.errorView(t[n.msgName] || '返回的数据不符合规范,正确的成功状态码应为:"' + n.statusName + '": ' + n.statusCode)) : (i.renderData(t, e, t[n.countName]), + o(), + a.time = (new Date).getTime() - i.startTime + " ms"), + i.setColsWidth(), + "function" == typeof a.done && a.done(t, e, t[n.countName]) + }, + error: function(e, t) { + i.errorView("数据接口请求异常:" + t), + i.renderForm(), + i.setColsWidth(), + "function" == typeof a.error && a.error(e, t) + } + }) + } else if (a.data && a.data.constructor === Array) { + var c = {} + , s = e * a.limit - a.limit; + c[n.dataName] = a.data.concat().splice(s, a.limit), + c[n.countName] = a.data.length, + "object" == typeof a.totalRow && (c[n.totalRowName] = t.extend({}, a.totalRow)), + i.renderData(c, e, c[n.countName]), + o(), + i.setColsWidth(), + "function" == typeof a.done && a.done(c, e, c[n.countName]) + } + } + , + I.prototype.eachCols = function(e) { + var t = this; + return d.eachCols(null, e, t.config.cols), + t + } + , + I.prototype.renderData = function(e, n, o, r) { + var c = this + , s = c.config + , y = e[s.response.dataName] || [] + , h = e[s.response.totalRowName] + , v = [] + , m = [] + , g = [] + , b = function() { + var e; + return !r && c.sortKey ? c.sort(c.sortKey.field, c.sortKey.sort, !0) : (layui.each(y, function(a, l) { + var o = [] + , y = [] + , h = [] + , p = a + s.limit * (n - 1) + 1; + 0 !== l.length && (r || (l[d.config.indexName] = a), + c.eachCols(function(n, r) { + var c = r.field || n + , v = s.index + "-" + r.key + , m = l[c]; + if (void 0 !== m && null !== m || (m = ""), + !r.colGroup) { + var g = ['', '
          ' + function() { + var n = t.extend(!0, { + LAY_INDEX: p + }, l) + , o = d.config.checkName; + switch (r.type) { + case "checkbox": + return '"; + case "radio": + return n[o] && (e = a), + ''; + case "numbers": + return p + } + return r.toolbar ? i(t(r.toolbar).html() || "").render(n) : u(r, m, n) + }(), "
          "].join(""); + o.push(g), + r.fixed && "right" !== r.fixed && y.push(g), + "right" === r.fixed && h.push(g) + } + }), + v.push('' + o.join("") + ""), + m.push('' + y.join("") + ""), + g.push('' + h.join("") + "")) + }), + c.layBody.scrollTop(0), + c.layMain.find("." + p).remove(), + c.layMain.find("tbody").html(v.join("")), + c.layFixLeft.find("tbody").html(m.join("")), + c.layFixRight.find("tbody").html(g.join("")), + c.renderForm(), + "number" == typeof e && c.setThisRowChecked(e), + c.syncCheckAll(), + c.haveInit ? c.scrollPatch() : setTimeout(function() { + c.scrollPatch() + }, 50), + c.haveInit = !0, + l.close(c.tipsIndex), + s.HAS_SET_COLS_PATCH || c.setColsPatch(), + void (s.HAS_SET_COLS_PATCH = !0)) + }; + return d.cache[c.key] = y, + c.layPage[0 == o || 0 === y.length && 1 == n ? "addClass" : "removeClass"](f), + 0 === y.length ? (c.renderForm(), + c.errorView(s.text.none)) : (c.layFixed.removeClass(f), + r ? b() : (b(), + c.renderTotal(y, h), + void (s.page && (s.page = t.extend({ + elem: "layui-table-page" + s.index, + count: o, + limit: s.limit, + limits: s.limits || [10, 20, 30, 40, 50, 60, 70, 80, 90], + groups: 3, + // layout: ["prev", "page", "next", "skip", "count", "limit"], + layout: ["prev", "page", "next", "count"], + prev: '', + next: '', + jump: function(e, t) { + t || (c.page = e.curr, + s.limit = e.limit, + c.pullData(e.curr)) + } + }, s.page), + s.page.count = o, + a.render(s.page))))) + } + , + I.prototype.renderTotal = function(e, a) { + var l = this + , n = l.config + , o = {}; + if (n.totalRow) { + layui.each(e, function(e, t) { + 0 !== t.length && l.eachCols(function(e, i) { + var a = i.field || e + , l = t[a]; + i.totalRow && (o[a] = (o[a] || 0) + (parseFloat(l) || 0)) + }) + }), + l.dataTotal = {}; + var r = []; + l.eachCols(function(e, d) { + var c = d.field || e + , s = function() { + var e = d.totalRowText || "" + , t = parseFloat(o[c]).toFixed(2) + , i = {}; + return i[c] = t, + t = u(d, t, i), + a ? a[d.field] || e : d.totalRow ? t || e : e + }() + , y = ['', '
          ' + function() { + var e = d.totalRow || n.totalRow; + return "string" == typeof e ? i(e).render(t.extend({ + TOTAL_NUMS: s + }, d)) : s + }(), "
          "].join(""); + d.field && (l.dataTotal[c] = s), + r.push(y) + }), + l.layTotal.find("tbody").html("" + r.join("") + "") + } + } + , + I.prototype.getColElem = function(e, t) { + var i = this + , a = i.config; + return e.eq(0).find(".laytable-cell-" + (a.index + "-" + t) + ":eq(0)") + } + , + I.prototype.renderForm = function(e) { + n.render(e, "LAY-table-" + this.index) + } + , + I.prototype.setThisRowChecked = function(e) { + var t = this + , i = (t.config, + "layui-table-click") + , a = t.layBody.find('tr[data-index="' + e + '"]'); + a.addClass(i).siblings("tr").removeClass(i) + } + , + I.prototype.sort = function(e, i, a, l) { + var n, r, c = this, s = {}, u = c.config, h = u.elem.attr("lay-filter"), f = d.cache[c.key]; + "string" == typeof e && (n = e, + c.layHeader.find("th").each(function(i, a) { + var l = t(this) + , o = l.data("field"); + if (o === e) + return e = l, + n = o, + !1 + })); + try { + var n = n || e.data("field") + , p = e.data("key"); + if (c.sortKey && !a && n === c.sortKey.field && i === c.sortKey.sort) + return; + var v = c.layHeader.find("th .laytable-cell-" + p).find(S); + c.layHeader.find("th").find(S).removeAttr("lay-sort"), + v.attr("lay-sort", i || null), + c.layFixed.find("th") + } catch (m) { + o.error("Table modules: sort field '" + n + "' not matched") + } + c.sortKey = { + field: n, + sort: i + }, + u.autoSort && ("asc" === i ? r = layui.sort(f, n) : "desc" === i ? r = layui.sort(f, n, !0) : (r = layui.sort(f, d.config.indexName), + delete c.sortKey)), + s[u.response.dataName] = r || f, + c.renderData(s, c.page, c.count, !0), + l && layui.event.call(e, y, "sort(" + h + ")", { + field: n, + type: i + }) + } + , + I.prototype.loading = function(e) { + var i = this + , a = i.config; + a.loading && (e ? (i.layInit && i.layInit.remove(), + delete i.layInit, + i.layBox.find(b).remove()) : (i.layInit = t(['
          ', '', "
          "].join("")), + i.layBox.append(i.layInit))) + } + , + I.prototype.setCheckData = function(e, t) { + var i = this + , a = i.config + , l = d.cache[i.key]; + l[e] && l[e].constructor !== Array && (l[e][a.checkName] = t) + } + , + I.prototype.syncCheckAll = function() { + var e = this + , t = e.config + , i = e.layHeader.find('input[name="layTableCheckbox"]') + , a = function(i) { + return e.eachCols(function(e, a) { + "checkbox" === a.type && (a[t.checkName] = i) + }), + i + }; + i[0] && (d.checkStatus(e.key).isAll ? (i[0].checked || (i.prop("checked", !0), + e.renderForm("checkbox")), + a(!0)) : (i[0].checked && (i.prop("checked", !1), + e.renderForm("checkbox")), + a(!1))) + } + , + I.prototype.getCssRule = function(e, t) { + var i = this + , a = i.elem.find("style")[0] + , l = a.sheet || a.styleSheet || {} + , n = l.cssRules || l.rules; + layui.each(n, function(i, a) { + if (a.selectorText === ".laytable-cell-" + e) + return t(a), + !0 + }) + } + , + I.prototype.fullSize = function() { + var e, t = this, i = t.config, a = i.height; + t.fullHeightGap && (a = j.height() - t.fullHeightGap, + a < 135 && (a = 135), + t.elem.css("height", a)), + a && (e = parseFloat(a) - (t.layHeader.outerHeight() || 38), + i.toolbar && (e -= t.layTool.outerHeight() || 50), + i.totalRow && (e -= t.layTotal.outerHeight() || 40), + i.page && (e -= t.layPage.outerHeight() || 41), + t.layMain.css("height", e - 2)) + } + , + I.prototype.getScrollWidth = function(e) { + var t = 0; + return e ? t = e.offsetWidth - e.clientWidth : (e = document.createElement("div"), + e.style.width = "100px", + e.style.height = "100px", + e.style.overflowY = "scroll", + document.body.appendChild(e), + t = e.offsetWidth - e.clientWidth, + document.body.removeChild(e)), + t + } + , + I.prototype.scrollPatch = function() { + var e = this + , i = e.layMain.children("table") + , a = e.layMain.width() - e.layMain.prop("clientWidth") + , l = e.layMain.height() - e.layMain.prop("clientHeight") + , n = (e.getScrollWidth(e.layMain[0]), + i.outerWidth() - e.layMain.width()) + , o = function(e) { + if (a && l) { + if (e = e.eq(0), + !e.find(".layui-table-patch")[0]) { + var i = t('
          '); + i.find("div").css({ + width: a + }), + e.find("tr").append(i) + } + } else + e.find(".layui-table-patch").remove() + }; + o(e.layHeader), + o(e.layTotal); + var r = e.layMain.height() + , d = r - l; + e.layFixed.find(k).css("height", i.height() >= d ? d : "auto"), + e.layFixRight[n > 0 ? "removeClass" : "addClass"](f), + e.layFixRight.css("right", a - 1) + } + , + I.prototype.events = function() { + var e, i = this, a = i.config, o = t("body"), c = {}, s = i.layHeader.find("th"), h = ".layui-table-cell", p = a.elem.attr("lay-filter"); + i.layTool.on("click", "*[lay-event]", function(e) { + var o = t(this) + , c = o.attr("lay-event") + , s = function(e) { + var l = t(e.list) + , n = t('
            '); + n.html(l), + a.height && n.css("max-height", a.height - (i.layTool.outerHeight() || 50)), + o.find(".layui-table-tool-panel")[0] || o.append(n), + i.renderForm(), + n.on("click", function(e) { + layui.stope(e) + }), + e.done && e.done(n, l) + }; + switch (layui.stope(e), + F.trigger("table.tool.panel.remove"), + l.close(i.tipsIndex), + c) { + case "LAYTABLE_COLS": + s({ + list: function() { + var e = []; + return i.eachCols(function(t, i) { + i.field && "normal" == i.type && e.push('
          • ') + }), + e.join("") + }(), + done: function() { + n.on("checkbox(LAY_TABLE_TOOL_COLS)", function(e) { + var l = t(e.elem) + , n = this.checked + , o = l.data("key") + , r = l.data("parentkey"); + layui.each(a.cols, function(e, t) { + layui.each(t, function(t, l) { + if (e + "-" + t === o) { + var d = l.hide; + l.hide = !n, + i.elem.find('*[data-key="' + a.index + "-" + o + '"]')[n ? "removeClass" : "addClass"](f), + d != l.hide && i.setParentCol(!n, r), + i.resize() + } + }) + }) + }) + } + }); + break; + case "LAYTABLE_EXPORT": + r.ie ? l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出", this, { + tips: 3 + }) : s({ + list: function() { + return ['
          • 导出到 Csv 文件
          • ', '
          • 导出到 Excel 文件
          • '].join("") + }(), + done: function(e, l) { + l.on("click", function() { + var e = t(this).data("type"); + d.exportFile.call(i, a.id, null, e) + }) + } + }); + break; + case "LAYTABLE_PRINT": + var u = window.open("打印窗口", "_blank") + , h = [""].join("") + , v = t(i.layHeader.html()); + v.append(i.layMain.find("table").html()), + v.append(i.layTotal.find("table").html()), + v.find("th.layui-table-patch").remove(), + v.find(".layui-table-col-special").remove(), + u.document.write(h + v.prop("outerHTML")), + u.document.close(), + u.print(), + u.close() + } + layui.event.call(this, y, "toolbar(" + p + ")", t.extend({ + event: c, + config: a + }, {})) + }), + s.on("mousemove", function(e) { + var i = t(this) + , a = i.offset().left + , l = e.clientX - a; + i.data("unresize") || c.resizeStart || (c.allowResize = i.width() - l <= 10, + o.css("cursor", c.allowResize ? "col-resize" : "")) + }).on("mouseleave", function() { + t(this); + c.resizeStart || o.css("cursor", "") + }).on("mousedown", function(e) { + var l = t(this); + if (c.allowResize) { + var n = l.data("key"); + e.preventDefault(), + c.resizeStart = !0, + c.offset = [e.clientX, e.clientY], + i.getCssRule(n, function(e) { + var t = e.style.width || l.outerWidth(); + c.rule = e, + c.ruleWidth = parseFloat(t), + c.minWidth = l.data("minwidth") || a.cellMinWidth + }) + } + }), + F.on("mousemove", function(t) { + if (c.resizeStart) { + if (t.preventDefault(), + c.rule) { + var a = c.ruleWidth + t.clientX - c.offset[0]; + a < c.minWidth && (a = c.minWidth), + c.rule.style.width = a + "px", + l.close(i.tipsIndex) + } + e = 1 + } + }).on("mouseup", function(t) { + c.resizeStart && (c = {}, + o.css("cursor", ""), + i.scrollPatch()), + 2 === e && (e = null) + }), + s.on("click", function(a) { + var l, n = t(this), o = n.find(S), r = o.attr("lay-sort"); + return o[0] && 1 !== e ? (l = "asc" === r ? "desc" : "desc" === r ? null : "asc", + void i.sort(n, l, null, !0)) : e = 2 + }).find(S + " .layui-edge ").on("click", function(e) { + var a = t(this) + , l = a.index() + , n = a.parents("th").eq(0).data("field"); + layui.stope(e), + 0 === l ? i.sort(n, "asc", null, !0) : i.sort(n, "desc", null, !0) + }); + var v = function(e) { + var a = t(this) + , l = a.parents("tr").eq(0).data("index") + , n = i.layBody.find('tr[data-index="' + l + '"]') + , o = d.cache[i.key] || []; + return o = o[l] || {}, + t.extend({ + tr: n, + data: d.clearCacheKey(o), + del: function() { + d.cache[i.key][l] = [], + n.remove(), + i.scrollPatch() + }, + update: function(e) { + e = e || {}, + layui.each(e, function(e, t) { + if (e in o) { + var a, l = n.children('td[data-field="' + e + '"]'); + o[e] = t, + i.eachCols(function(t, i) { + i.field == e && i.templet && (a = i.templet) + }), + l.children(h).html(u({ + templet: a + }, t, o)), + l.data("content", t) + } + }) + } + }, e) + }; + i.elem.on("click", 'input[name="layTableCheckbox"]+', function() { + var e = t(this).prev() + , a = i.layBody.find('input[name="layTableCheckbox"]') + , l = e.parents("tr").eq(0).data("index") + , n = e[0].checked + , o = "layTableAllChoose" === e.attr("lay-filter"); + o ? (a.each(function(e, t) { + t.checked = n, + i.setCheckData(e, n) + }), + i.syncCheckAll(), + i.renderForm("checkbox")) : (i.setCheckData(l, n), + i.syncCheckAll()), + layui.event.call(e[0], y, "checkbox(" + p + ")", v.call(e[0], { + checked: n, + type: o ? "all" : "one" + })) + }), + i.elem.on("click", 'input[lay-type="layTableRadio"]+', function() { + var e = t(this).prev() + , l = e[0].checked + , n = d.cache[i.key] + , o = e.parents("tr").eq(0).data("index"); + layui.each(n, function(e, t) { + o === e ? t[a.checkName] = !0 : delete t[a.checkName] + }), + i.setThisRowChecked(o), + layui.event.call(this, y, "radio(" + p + ")", v.call(this, { + checked: l + })) + }), + i.layBody.on("mouseenter", "tr", function() { + var e = t(this) + , a = e.index(); + e.data("off") || i.layBody.find("tr:eq(" + a + ")").addClass(W) + }).on("mouseleave", "tr", function() { + var e = t(this) + , a = e.index(); + e.data("off") || i.layBody.find("tr:eq(" + a + ")").removeClass(W) + }).on("click", "tr", function() { + m.call(this, "row") + }).on("dblclick", "tr", function() { + m.call(this, "rowDouble") + }); + var m = function(e) { + var i = t(this); + i.data("off") || layui.event.call(this, y, e + "(" + p + ")", v.call(i.children("td")[0])) + }; + i.layBody.on("change", "." + R, function() { + var e = t(this) + , a = this.value + , l = e.parent().data("field") + , n = e.parents("tr").eq(0).data("index") + , o = d.cache[i.key][n]; + o[l] = a, + layui.event.call(this, y, "edit(" + p + ")", v.call(this, { + value: a, + field: l + })) + }).on("blur", "." + R, function() { + var e, a = t(this), l = this, n = a.parent().data("field"), o = a.parents("tr").eq(0).data("index"), r = d.cache[i.key][o]; + i.eachCols(function(t, i) { + i.field == n && i.templet && (e = i.templet) + }), + a.siblings(h).html(function(t) { + return u({ + templet: e + }, t, r) + }(l.value)), + a.parent().data("content", l.value), + a.remove() + }), + i.layBody.on("click", "td", function(e) { + var i = t(this) + , a = (i.data("field"), + i.data("edit")) + , l = i.children(h); + if (!i.data("off") && a) { + var n = t(''); + return n[0].value = i.data("content") || l.text(), + i.find("." + R)[0] || i.append(n), + n.focus(), + void layui.stope(e) + } + }).on("mouseenter", "td", function() { + b.call(this) + }).on("mouseleave", "td", function() { + b.call(this, "hide") + }); + var g = "layui-table-grid-down" + , b = function(e) { + var i = t(this) + , a = i.children(h); + if (!i.data("off")) + if (e) + i.find(".layui-table-grid-down").remove(); + else if (a.prop("scrollWidth") > a.outerWidth()) { + if (a.find("." + g)[0]) + return; + i.append('
            ') + } + }; + i.layBody.on("click", "." + g, function(e) { + var n = t(this) + , o = n.parent() + , d = o.children(h); + i.tipsIndex = l.tips(['
            ', d.html(), "
            ", ''].join(""), d[0], { + tips: [3, ""], + time: -1, + anim: -1, + maxWidth: r.ios || r.android ? 300 : i.elem.width() / 2, + isOutAnim: !1, + skin: "layui-table-tips", + success: function(e, t) { + e.find(".layui-table-tips-c").on("click", function() { + l.close(t) + }) + } + }), + layui.stope(e) + }), + i.layBody.on("click", "*[lay-event]", function() { + var e = t(this) + , a = e.parents("tr").eq(0).data("index"); + layui.event.call(this, y, "tool(" + p + ")", v.call(this, { + event: e.attr("lay-event") + })), + i.setThisRowChecked(a) + }), + i.layMain.on("scroll", function() { + var e = t(this) + , a = e.scrollLeft() + , n = e.scrollTop(); + i.layHeader.scrollLeft(a), + i.layTotal.scrollLeft(a), + i.layFixed.find(k).scrollTop(n), + l.close(i.tipsIndex) + }), + j.on("resize", function() { + i.resize() + }) + } + , + function() { + F.on("click", function() { + F.trigger("table.remove.tool.panel") + }), + F.on("table.remove.tool.panel", function() { + t(".layui-table-tool-panel").remove() + }) + }(), + d.init = function(e, i) { + i = i || {}; + var a = this + , l = t(e ? 'table[lay-filter="' + e + '"]' : h + "[lay-data]") + , n = "Table element property lay-data configuration item has a syntax error: "; + return l.each(function() { + var a = t(this) + , l = a.attr("lay-data"); + try { + l = new Function("return " + l)() + } catch (r) { + o.error(n + l, "error") + } + var c = [] + , s = t.extend({ + elem: this, + cols: [], + data: [], + skin: a.attr("lay-skin"), + size: a.attr("lay-size"), + even: "string" == typeof a.attr("lay-even") + }, d.config, i, l); + e && a.hide(), + a.find("thead>tr").each(function(e) { + s.cols[e] = [], + t(this).children().each(function(i) { + var a = t(this) + , l = a.attr("lay-data"); + try { + l = new Function("return " + l)() + } catch (r) { + return o.error(n + l) + } + var d = t.extend({ + title: a.text(), + colspan: a.attr("colspan") || 0, + rowspan: a.attr("rowspan") || 0 + }, l); + d.colspan < 2 && c.push(d), + s.cols[e].push(d) + }) + }), + a.find("tbody>tr").each(function(e) { + var i = t(this) + , a = {}; + i.children("td").each(function(e, i) { + var l = t(this) + , n = l.data("field"); + if (n) + return a[n] = l.html() + }), + layui.each(c, function(e, t) { + var l = i.children("td").eq(e); + a[t.field] = l.html() + }), + s.data[e] = a + }), + d.render(s) + }), + a + } + , + c.that = {}, + c.config = {}, + d.eachCols = function(e, i, a) { + var l = c.config[e] || {} + , n = [] + , o = 0; + a = t.extend(!0, [], a || l.cols), + layui.each(a, function(e, t) { + layui.each(t, function(t, i) { + if (i.colGroup) { + var l = 0; + o++, + i.CHILD_COLS = [], + layui.each(a[e + 1], function(e, t) { + t.PARENT_COL_INDEX || l > 1 && l == i.colspan || (t.PARENT_COL_INDEX = o, + i.CHILD_COLS.push(t), + l += parseInt(t.colspan > 1 ? t.colspan : 1)) + }) + } + i.PARENT_COL_INDEX || n.push(i) + }) + }); + var r = function(e) { + layui.each(e || n, function(e, t) { + return t.CHILD_COLS ? r(t.CHILD_COLS) : void ("function" == typeof i && i(e, t)) + }) + }; + r() + } + , + d.checkStatus = function(e) { + var t = 0 + , i = 0 + , a = [] + , l = d.cache[e] || []; + return layui.each(l, function(e, l) { + return l.constructor === Array ? void i++ : void (l[d.config.checkName] && (t++, + a.push(d.clearCacheKey(l)))) + }), + { + data: a, + isAll: !!l.length && t === l.length - i + } + } + , + d.getData = function(e) { + var t = [] + , i = d.cache[e] || []; + return layui.each(i, function(e, i) { + i.constructor !== Array && t.push(d.clearCacheKey(i)) + }), + t + } + , + d.exportFile = function(e, t, i) { + var a = this; + t = t || d.clearCacheKey(d.cache[e]), + i = i || "csv"; + var l = c.config[e] || {} + , n = { + csv: "text/csv", + xls: "application/vnd.ms-excel" + }[i] + , s = document.createElement("a"); + return r.ie ? o.error("IE_NOT_SUPPORT_EXPORTS") : (s.href = "data:" + n + ";charset=utf-8,\ufeff" + encodeURIComponent(function() { + var i = [] + , l = [] + , n = []; + return layui.each(t, function(t, a) { + var n = []; + "object" == typeof e ? (layui.each(e, function(e, a) { + 0 == t && i.push(a || "") + }), + layui.each(d.clearCacheKey(a), function(e, t) { + n.push('"' + (t || "") + '"') + })) : d.eachCols(e, function(e, l) { + if (l.field && "normal" == l.type && !l.hide) { + var o = a[l.field]; + void 0 !== o && null !== o || (o = ""), + 0 == t && i.push(l.title || ""), + n.push('"' + u(l, o, a, "text") + '"') + } + }), + l.push(n.join(",")) + }), + layui.each(a.dataTotal, function(e, t) { + n.push(t) + }), + i.join(",") + "\r\n" + l.join("\r\n") + "\r\n" + n.join(",") + }()), + s.download = (l.title || "table_" + (l.index || "")) + "." + i, + document.body.appendChild(s), + s.click(), + void document.body.removeChild(s)) + } + , + d.resize = function(e) { + if (e) { + var t = s(e); + if (!t) + return; + c.that[e].resize() + } else + layui.each(c.that, function() { + this.resize() + }) + } + , + d.reload = function(e, t, i) { + var a = s(e); + if (a) { + var l = c.that[e]; + return l.reload(t, i), + c.call(l) + } + } + , + d.render = function(e) { + var t = new I(e); + return c.call(t) + } + , + d.clearCacheKey = function(e) { + return e = t.extend({}, e), + delete e[d.config.checkName], + delete e[d.config.indexName], + e + } + , + d.init(), + e(y, d) +}); +layui.define("jquery", function(e) { + "use strict"; + var i = layui.$ + , n = (layui.hint(), + layui.device(), + { + config: {}, + set: function(e) { + var n = this; + return n.config = i.extend({}, n.config, e), + n + }, + on: function(e, i) { + return layui.onevent.call(this, t, e, i) + } + }) + , t = "carousel" + , a = "layui-this" + , l = ">*[carousel-item]>*" + , o = "layui-carousel-left" + , r = "layui-carousel-right" + , d = "layui-carousel-prev" + , s = "layui-carousel-next" + , u = "layui-carousel-arrow" + , c = "layui-carousel-ind" + , m = function(e) { + var t = this; + t.config = i.extend({}, t.config, n.config, e), + t.render() + }; + m.prototype.config = { + width: "600px", + height: "280px", + full: !1, + arrow: "hover", + indicator: "inside", + autoplay: !0, + interval: 3e3, + anim: "", + trigger: "click", + index: 0 + }, + m.prototype.render = function() { + var e = this + , n = e.config; + n.elem = i(n.elem), + n.elem[0] && (e.elemItem = n.elem.find(l), + n.index < 0 && (n.index = 0), + n.index >= e.elemItem.length && (n.index = e.elemItem.length - 1), + n.interval < 800 && (n.interval = 800), + n.full ? n.elem.css({ + position: "fixed", + width: "100%", + height: "100%", + zIndex: 9999 + }) : n.elem.css({ + width: n.width, + height: n.height + }), + n.elem.attr("lay-anim", n.anim), + e.elemItem.eq(n.index).addClass(a), + e.elemItem.length <= 1 || (e.indicator(), + e.arrow(), + e.autoplay(), + e.events())) + } + , + m.prototype.reload = function(e) { + var n = this; + clearInterval(n.timer), + n.config = i.extend({}, n.config, e), + n.render() + } + , + m.prototype.prevIndex = function() { + var e = this + , i = e.config + , n = i.index - 1; + return n < 0 && (n = e.elemItem.length - 1), + n + } + , + m.prototype.nextIndex = function() { + var e = this + , i = e.config + , n = i.index + 1; + return n >= e.elemItem.length && (n = 0), + n + } + , + m.prototype.addIndex = function(e) { + var i = this + , n = i.config; + e = e || 1, + n.index = n.index + e, + n.index >= i.elemItem.length && (n.index = 0) + } + , + m.prototype.subIndex = function(e) { + var i = this + , n = i.config; + e = e || 1, + n.index = n.index - e, + n.index < 0 && (n.index = i.elemItem.length - 1) + } + , + m.prototype.autoplay = function() { + var e = this + , i = e.config; + i.autoplay && (clearInterval(e.timer), + e.timer = setInterval(function() { + e.slide() + }, i.interval)) + } + , + m.prototype.arrow = function() { + var e = this + , n = e.config + , t = i(['", '"].join("")); + n.elem.attr("lay-arrow", n.arrow), + n.elem.find("." + u)[0] && n.elem.find("." + u).remove(), + n.elem.append(t), + t.on("click", function() { + var n = i(this) + , t = n.attr("lay-type"); + e.slide(t) + }) + } + , + m.prototype.indicator = function() { + var e = this + , n = e.config + , t = e.elemInd = i(['
              ', function() { + var i = []; + return layui.each(e.elemItem, function(e) { + i.push("") + }), + i.join("") + }(), "
            "].join("")); + n.elem.attr("lay-indicator", n.indicator), + n.elem.find("." + c)[0] && n.elem.find("." + c).remove(), + n.elem.append(t), + "updown" === n.anim && t.css("margin-top", -(t.height() / 2)), + t.find("li").on("hover" === n.trigger ? "mouseover" : n.trigger, function() { + var t = i(this) + , a = t.index(); + a > n.index ? e.slide("add", a - n.index) : a < n.index && e.slide("sub", n.index - a) + }) + } + , + m.prototype.slide = function(e, i) { + var n = this + , l = n.elemItem + , u = n.config + , c = u.index + , m = u.elem.attr("lay-filter"); + n.haveSlide || ("sub" === e ? (n.subIndex(i), + l.eq(u.index).addClass(d), + setTimeout(function() { + l.eq(c).addClass(r), + l.eq(u.index).addClass(r) + }, 50)) : (n.addIndex(i), + l.eq(u.index).addClass(s), + setTimeout(function() { + l.eq(c).addClass(o), + l.eq(u.index).addClass(o) + }, 50)), + setTimeout(function() { + l.removeClass(a + " " + d + " " + s + " " + o + " " + r), + l.eq(u.index).addClass(a), + n.haveSlide = !1 + }, 300), + n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a), + n.haveSlide = !0, + layui.event.call(this, t, "change(" + m + ")", { + index: u.index, + prevIndex: c, + item: l.eq(u.index) + })) + } + , + m.prototype.events = function() { + var e = this + , i = e.config; + i.elem.data("haveEvents") || (i.elem.on("mouseenter", function() { + clearInterval(e.timer) + }).on("mouseleave", function() { + e.autoplay() + }), + i.elem.data("haveEvents", !0)) + } + , + n.render = function(e) { + var i = new m(e); + return i + } + , + e(t, n) +}); +layui.define("jquery", function(e) { + "use strict"; + var a = layui.jquery + , l = { + config: {}, + index: layui.rate ? layui.rate.index + 1e4 : 0, + set: function(e) { + var l = this; + return l.config = a.extend({}, l.config, e), + l + }, + on: function(e, a) { + return layui.onevent.call(this, n, e, a) + } + } + , i = function() { + var e = this + , a = e.config; + return { + setvalue: function(a) { + e.setvalue.call(e, a) + }, + config: a + } + } + , n = "rate" + , t = "layui-rate" + , o = "layui-icon-rate" + , u = "layui-icon-rate-solid" + , s = "layui-icon-rate-half" + , r = "layui-icon-rate-solid layui-icon-rate-half" + , c = "layui-icon-rate-solid layui-icon-rate" + , f = "layui-icon-rate layui-icon-rate-half" + , v = function(e) { + var i = this; + i.index = ++l.index, + i.config = a.extend({}, i.config, l.config, e), + i.render() + }; + v.prototype.config = { + length: 5, + text: !1, + readonly: !1, + half: !1, + value: 0, + theme: "" + }, + v.prototype.render = function() { + var e = this + , l = e.config + , i = l.theme ? 'style="color: ' + l.theme + ';"' : ""; + l.elem = a(l.elem), + l.value > l.length && (l.value = l.length), + parseInt(l.value) !== l.value && (l.half || (l.value = Math.ceil(l.value) - l.value < .5 ? Math.ceil(l.value) : Math.floor(l.value))); + for (var n = '
              ", s = 1; s <= l.length; s++) { + var r = '
            • "; + l.half && parseInt(l.value) !== l.value && s == Math.ceil(l.value) ? n = n + '
            • " : n += r + } + n += "
            " + (l.text ? '' + l.value + "星" : "") + ""; + var c = l.elem + , f = c.next("." + t); + f[0] && f.remove(), + e.elemTemp = a(n), + l.span = e.elemTemp.next("span"), + l.setText && l.setText(l.value), + c.html(e.elemTemp), + c.addClass("layui-inline"), + l.readonly || e.action() + } + , + v.prototype.setvalue = function(e) { + var a = this + , l = a.config; + l.value = e, + a.render() + } + , + v.prototype.action = function() { + var e = this + , l = e.config + , i = e.elemTemp + , n = i.find("i").width(); + i.children("li").each(function(e) { + var t = e + 1 + , v = a(this); + v.on("click", function(e) { + if (l.value = t, + l.half) { + var o = e.pageX - a(this).offset().left; + o <= n / 2 && (l.value = l.value - .5) + } + l.text && i.next("span").text(l.value + "星"), + l.choose && l.choose(l.value), + l.setText && l.setText(l.value) + }), + v.on("mousemove", function(e) { + if (i.find("i").each(function() { + a(this).addClass(o).removeClass(r) + }), + i.find("i:lt(" + t + ")").each(function() { + a(this).addClass(u).removeClass(f) + }), + l.half) { + var c = e.pageX - a(this).offset().left; + c <= n / 2 && v.children("i").addClass(s).removeClass(u) + } + }), + v.on("mouseleave", function() { + i.find("i").each(function() { + a(this).addClass(o).removeClass(r) + }), + i.find("i:lt(" + Math.floor(l.value) + ")").each(function() { + a(this).addClass(u).removeClass(f) + }), + l.half && parseInt(l.value) !== l.value && i.children("li:eq(" + Math.floor(l.value) + ")").children("i").addClass(s).removeClass(c) + }) + }) + } + , + v.prototype.events = function() { + var e = this; + e.config + } + , + l.render = function(e) { + var a = new v(e); + return i.call(a) + } + , + e(n, l) +}); +layui.define("jquery", function(e) { + "use strict"; + var l = layui.$ + , o = function(e) {} + , t = ''; + o.prototype.load = function(e) { + var o, i, n, r, a = this, c = 0; + e = e || {}; + var f = l(e.elem); + if (f[0]) { + var m = l(e.scrollElem || document) + , u = e.mb || 50 + , s = !("isAuto"in e) || e.isAuto + , v = e.end || "没有更多了" + , y = e.scrollElem && e.scrollElem !== document + , d = "加载更多" + , h = l('"); + f.find(".layui-flow-more")[0] || f.append(h); + var p = function(e, t) { + e = l(e), + h.before(e), + t = 0 == t || null, + t ? h.html(v) : h.find("a").html(d), + i = t, + o = null, + n && n() + } + , g = function() { + o = !0, + h.find("a").html(t), + "function" == typeof e.done && e.done(++c, p) + }; + if (g(), + h.find("a").on("click", function() { + l(this); + i || o || g() + }), + e.isLazyimg) + var n = a.lazyimg({ + elem: e.elem + " img", + scrollElem: e.scrollElem + }); + return s ? (m.on("scroll", function() { + var e = l(this) + , t = e.scrollTop(); + r && clearTimeout(r), + !i && f.width() && (r = setTimeout(function() { + var i = y ? e.height() : l(window).height() + , n = y ? e.prop("scrollHeight") : document.documentElement.scrollHeight; + n - t - i <= u && (o || g()) + }, 100)) + }), + a) : a + } + } + , + o.prototype.lazyimg = function(e) { + var o, t = this, i = 0; + e = e || {}; + var n = l(e.scrollElem || document) + , r = e.elem || "img" + , a = e.scrollElem && e.scrollElem !== document + , c = function(e, l) { + var o = n.scrollTop() + , r = o + l + , c = a ? function() { + return e.offset().top - n.offset().top + o + }() : e.offset().top; + if (c >= o && c <= r && !e.attr("src")) { + var m = e.attr("lay-src"); + layui.img(m, function() { + var l = t.lazyimg.elem.eq(i); + e.attr("src", m).removeAttr("lay-src"), + l[0] && f(l), + i++ + }) + } + } + , f = function(e, o) { + var f = a ? (o || n).height() : l(window).height() + , m = n.scrollTop() + , u = m + f; + if (t.lazyimg.elem = l(r), + e) + c(e, f); + else + for (var s = 0; s < t.lazyimg.elem.length; s++) { + var v = t.lazyimg.elem.eq(s) + , y = a ? function() { + return v.offset().top - n.offset().top + m + }() : v.offset().top; + if (c(v, f), + i = s, + y > u) + break + } + }; + if (f(), + !o) { + var m; + n.on("scroll", function() { + var e = l(this); + m && clearTimeout(m), + m = setTimeout(function() { + f(null, e) + }, 50) + }), + o = !0 + } + return f + } + , + e("flow", new o) +}); +layui.define(["layer", "form"], function(t) { + "use strict"; + var e = layui.$ + , i = layui.layer + , a = layui.form + , l = (layui.hint(), + layui.device()) + , n = "layedit" + , o = "layui-show" + , r = "layui-disabled" + , c = function() { + var t = this; + t.index = 0, + t.config = { + tool: ["strong", "italic", "underline", "del", "|", "left", "center", "right", "|", "link", "unlink", "face", "image"], + hideTool: [], + height: 280 + } + }; + c.prototype.set = function(t) { + var i = this; + return e.extend(!0, i.config, t), + i + } + , + c.prototype.on = function(t, e) { + return layui.onevent(n, t, e) + } + , + c.prototype.build = function(t, i) { + i = i || {}; + var a = this + , n = a.config + , r = "layui-layedit" + , c = e("string" == typeof t ? "#" + t : t) + , u = "LAY_layedit_" + ++a.index + , d = c.next("." + r) + , y = e.extend({}, n, i) + , f = function() { + var t = [] + , e = {}; + return layui.each(y.hideTool, function(t, i) { + e[i] = !0 + }), + layui.each(y.tool, function(i, a) { + C[a] && !e[a] && t.push(C[a]) + }), + t.join("") + }() + , m = e(['
            ', '
            ' + f + "
            ", '
            ', '', "
            ", "
            "].join("")); + return l.ie && l.ie < 8 ? c.removeClass("layui-hide").addClass(o) : (d[0] && d.remove(), + s.call(a, m, c[0], y), + c.addClass("layui-hide").after(m), + a.index) + } + , + c.prototype.getContent = function(t) { + var e = u(t); + if (e[0]) + return d(e[0].document.body.innerHTML) + } + , + c.prototype.getText = function(t) { + var i = u(t); + if (i[0]) + return e(i[0].document.body).text() + } + , + c.prototype.setContent = function(t, i, a) { + var l = u(t); + l[0] && (a ? e(l[0].document.body).append(i) : e(l[0].document.body).html(i), + layedit.sync(t)) + } + , + c.prototype.sync = function(t) { + var i = u(t); + if (i[0]) { + var a = e("#" + i[1].attr("textarea")); + a.val(d(i[0].document.body.innerHTML)) + } + } + , + c.prototype.getSelection = function(t) { + var e = u(t); + if (e[0]) { + var i = m(e[0].document); + return document.selection ? i.text : i.toString() + } + } + ; + var s = function(t, i, a) { + var l = this + , n = t.find("iframe"); + n.css({ + height: a.height + }).on("load", function() { + var o = n.contents() + , r = n.prop("contentWindow") + , c = o.find("head") + , s = e([""].join("")) + , u = o.find("body"); + c.append(s), + u.attr("contenteditable", "true").css({ + "min-height": a.height + }).html(i.value || ""), + y.apply(l, [r, n, i, a]), + g.call(l, r, t, a) + }) + } + , u = function(t) { + var i = e("#LAY_layedit_" + t) + , a = i.prop("contentWindow"); + return [a, i] + } + , d = function(t) { + return 8 == l.ie && (t = t.replace(/<.+>/g, function(t) { + return t.toLowerCase() + })), + t + } + , y = function(t, a, n, o) { + var r = t.document + , c = e(r.body); + c.on("keydown", function(t) { + var e = t.keyCode; + if (13 === e) { + var a = m(r) + , l = p(a) + , n = l.parentNode; + if ("pre" === n.tagName.toLowerCase()) { + if (t.shiftKey) + return; + return i.msg("请暂时用shift+enter"), + !1 + } + r.execCommand("formatBlock", !1, "

            ") + } + }), + e(n).parents("form").on("submit", function() { + var t = c.html(); + 8 == l.ie && (t = t.replace(/<.+>/g, function(t) { + return t.toLowerCase() + })), + n.value = t + }), + c.on("paste", function(e) { + r.execCommand("formatBlock", !1, "

            "), + setTimeout(function() { + f.call(t, c), + n.value = c.html() + }, 100) + }) + } + , f = function(t) { + var i = this; + i.document; + t.find("*[style]").each(function() { + var t = this.style.textAlign; + this.removeAttribute("style"), + e(this).css({ + "text-align": t || "" + }) + }), + t.find("table").addClass("layui-table"), + t.find("script,link").remove() + } + , m = function(t) { + return t.selection ? t.selection.createRange() : t.getSelection().getRangeAt(0) + } + , p = function(t) { + return t.endContainer || t.parentElement().childNodes[0] + } + , v = function(t, i, a) { + var l = this.document + , n = document.createElement(t); + for (var o in i) + n.setAttribute(o, i[o]); + if (n.removeAttribute("text"), + l.selection) { + var r = a.text || i.text; + if ("a" === t && !r) + return; + r && (n.innerHTML = r), + a.pasteHTML(e(n).prop("outerHTML")), + a.select() + } else { + var r = a.toString() || i.text; + if ("a" === t && !r) + return; + r && (n.innerHTML = r), + a.deleteContents(), + a.insertNode(n) + } + } + , h = function(t, i) { + var a = this.document + , l = "layedit-tool-active" + , n = p(m(a)) + , o = function(e) { + return t.find(".layedit-tool-" + e) + }; + i && i[i.hasClass(l) ? "removeClass" : "addClass"](l), + t.find(">i").removeClass(l), + o("unlink").addClass(r), + e(n).parents().each(function() { + var t = this.tagName.toLowerCase() + , e = this.style.textAlign; + "b" !== t && "strong" !== t || o("b").addClass(l), + "i" !== t && "em" !== t || o("i").addClass(l), + "u" === t && o("u").addClass(l), + "strike" === t && o("d").addClass(l), + "p" === t && ("center" === e ? o("center").addClass(l) : "right" === e ? o("right").addClass(l) : o("left").addClass(l)), + "a" === t && (o("link").addClass(l), + o("unlink").removeClass(r)) + }) + } + , g = function(t, a, l) { + var n = t.document + , o = e(n.body) + , c = { + link: function(i) { + var a = p(i) + , l = e(a).parent(); + b.call(o, { + href: l.attr("href"), + target: l.attr("target") + }, function(e) { + var a = l[0]; + "A" === a.tagName ? a.href = e.url : v.call(t, "a", { + target: e.target, + href: e.url, + text: e.url + }, i) + }) + }, + unlink: function(t) { + n.execCommand("unlink") + }, + face: function(e) { + x.call(this, function(i) { + v.call(t, "img", { + src: i.src, + alt: i.alt + }, e) + }) + }, + image: function(a) { + var n = this; + layui.use("upload", function(o) { + var r = l.uploadImage || {}; + o.render({ + url: r.url, + method: r.type, + elem: e(n).find("input")[0], + done: function(e) { + 0 == e.code ? (e.data = e.data || {}, + v.call(t, "img", { + src: e.data.src, + alt: e.data.title + }, a)) : i.msg(e.msg || "上传失败") + } + }) + }) + }, + code: function(e) { + k.call(o, function(i) { + v.call(t, "pre", { + text: i.code, + "lay-lang": i.lang + }, e) + }) + }, + help: function() { + i.open({ + type: 2, + title: "帮助", + area: ["600px", "380px"], + shadeClose: !0, + shade: .1, + skin: "layui-layer-msg", + content: ["", "no"] + }) + } + } + , s = a.find(".layui-layedit-tool") + , u = function() { + var i = e(this) + , a = i.attr("layedit-event") + , l = i.attr("lay-command"); + if (!i.hasClass(r)) { + o.focus(); + var u = m(n); + u.commonAncestorContainer; + l ? (n.execCommand(l), + /justifyLeft|justifyCenter|justifyRight/.test(l) && n.execCommand("formatBlock", !1, "

            "), + setTimeout(function() { + o.focus() + }, 10)) : c[a] && c[a].call(this, u), + h.call(t, s, i) + } + } + , d = /image/; + s.find(">i").on("mousedown", function() { + var t = e(this) + , i = t.attr("layedit-event"); + d.test(i) || u.call(this) + }).on("click", function() { + var t = e(this) + , i = t.attr("layedit-event"); + d.test(i) && u.call(this) + }), + o.on("click", function() { + h.call(t, s), + i.close(x.index) + }) + } + , b = function(t, e) { + var l = this + , n = i.open({ + type: 1, + id: "LAY_layedit_link", + area: "350px", + shade: .05, + shadeClose: !0, + moveType: 1, + title: "超链接", + skin: "layui-layer-msg", + content: ['

              ', '
            • ', '', '
              ', '', "
              ", "
            • ", '
            • ', '', '
              ', '", '", "
              ", "
            • ", '
            • ', '', '', "
            • ", "
            "].join(""), + success: function(t, n) { + var o = "submit(layedit-link-yes)"; + a.render("radio"), + t.find(".layui-btn-primary").on("click", function() { + i.close(n), + l.focus() + }), + a.on(o, function(t) { + i.close(b.index), + e && e(t.field) + }) + } + }); + b.index = n + } + , x = function(t) { + var a = function() { + var t = ["[微笑]", "[嘻嘻]", "[哈哈]", "[可爱]", "[可怜]", "[挖鼻]", "[吃惊]", "[害羞]", "[挤眼]", "[闭嘴]", "[鄙视]", "[爱你]", "[泪]", "[偷笑]", "[亲亲]", "[生病]", "[太开心]", "[白眼]", "[右哼哼]", "[左哼哼]", "[嘘]", "[衰]", "[委屈]", "[吐]", "[哈欠]", "[抱抱]", "[怒]", "[疑问]", "[馋嘴]", "[拜拜]", "[思考]", "[汗]", "[困]", "[睡]", "[钱]", "[失望]", "[酷]", "[色]", "[哼]", "[鼓掌]", "[晕]", "[悲伤]", "[抓狂]", "[黑线]", "[阴险]", "[怒骂]", "[互粉]", "[心]", "[伤心]", "[猪头]", "[熊猫]", "[兔子]", "[ok]", "[耶]", "[good]", "[NO]", "[赞]", "[来]", "[弱]", "[草泥马]", "[神马]", "[囧]", "[浮云]", "[给力]", "[围观]", "[威武]", "[奥特曼]", "[礼物]", "[钟]", "[话筒]", "[蜡烛]", "[蛋糕]"] + , e = {}; + return layui.each(t, function(t, i) { + e[i] = layui.cache.dir + "images/face/" + t + ".gif" + }), + e + }(); + return x.hide = x.hide || function(t) { + "face" !== e(t.target).attr("layedit-event") && i.close(x.index) + } + , + x.index = i.tips(function() { + var t = []; + return layui.each(a, function(e, i) { + t.push('
          • ' + e + '
          • ') + }), + '
              ' + t.join("") + "
            " + }(), this, { + tips: 1, + time: 0, + skin: "layui-box layui-util-face", + maxWidth: 500, + success: function(l, n) { + l.css({ + marginTop: -4, + marginLeft: -10 + }).find(".layui-clear>li").on("click", function() { + t && t({ + src: a[this.title], + alt: this.title + }), + i.close(n) + }), + e(document).off("click", x.hide).on("click", x.hide) + } + }) + } + , k = function(t) { + var e = this + , l = i.open({ + type: 1, + id: "LAY_layedit_code", + area: "550px", + shade: .05, + shadeClose: !0, + moveType: 1, + title: "插入代码", + skin: "layui-layer-msg", + content: ['
              ', '
            • ', '', '
              ', '", "
              ", "
            • ", '
            • ', '', '
              ', '', "
              ", "
            • ", '
            • ', '', '', "
            • ", "
            "].join(""), + success: function(l, n) { + var o = "submit(layedit-code-yes)"; + a.render("select"), + l.find(".layui-btn-primary").on("click", function() { + i.close(n), + e.focus() + }), + a.on(o, function(e) { + i.close(k.index), + t && t(e.field) + }) + } + }); + k.index = l + } + , C = { + html: '', + strong: '', + italic: '', + underline: '', + del: '', + "|": '', + left: '', + center: '', + right: '', + link: '', + unlink: '', + face: '', + image: '', + code: '', + help: '' + } + , L = new c; + t(n, L) +}); +layui.define("jquery", function(a) { + "use strict"; + var e = layui.$; + a("code", function(a) { + var l = []; + a = a || {}, + a.elem = e(a.elem || ".layui-code"), + a.lang = "lang"in a ? a.lang : "code", + a.elem.each(function() { + l.push(this) + }), + layui.each(l.reverse(), function(l, i) { + var t = e(i) + , c = t.html(); + (t.attr("lay-encode") || a.encode) && (c = c.replace(/&(?!#?[a-zA-Z0-9]+;)/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/"/g, """)), + t.html('
            1. ' + c.replace(/[\r\t\n]+/g, "
            2. ") + "
            "), + t.find(">.layui-code-h3")[0] || t.prepend('

            ' + (t.attr("lay-title") || a.title || "</>") + '' + (t.attr("lay-lang") || a.lang || "") + "

            "); + var n = t.find(">.layui-code-ol"); + t.addClass("layui-box layui-code-view"), + (t.attr("lay-skin") || a.skin) && t.addClass("layui-code-" + (t.attr("lay-skin") || a.skin)), + (n.find("li").length / 100 | 0) > 0 && n.css("margin-left", (n.find("li").length / 100 | 0) + "px"), + (t.attr("lay-height") || a.height) && n.css("max-height", t.attr("lay-height") || a.height) + }) + }) +}).addcss("modules/code.css?v=1", "skincodecss"); diff --git a/lib/layui-v2.6.3/layuinew.js b/lib/layui-v2.6.3/layuinew.js new file mode 100755 index 0000000..d901353 --- /dev/null +++ b/lib/layui-v2.6.3/layuinew.js @@ -0,0 +1,15344 @@ +/** v2.9.23 | MIT Licensed */ +;!function(d) { + "use strict"; + var t, h = d.document, m = { + modules: {}, + status: {}, + timeout: 10, + event: {} + }, o = function() { + this.v = "2.9.23" + }, e = d.LAYUI_GLOBAL || {}, v = (t = h.currentScript && "SCRIPT" === h.currentScript.tagName.toUpperCase() ? h.currentScript.src : function() { + for (var t, e = h.getElementsByTagName("script"), n = e.length - 1, o = n; 0 < o; o--) + if ("interactive" === e[o].readyState) { + t = e[o].src; + break + } + return t || e[n].src + }(), + m.dir = e.dir || t.substring(0, t.lastIndexOf("/") + 1)), g = function(t, e) { + e = e || "log", + d.console && console[e] && console[e]("layui error hint: " + t) + }, b = "undefined" != typeof opera && "[object Opera]" === opera.toString(), N = m.builtin = { + lay: "lay", + layer: "layer", + laydate: "laydate", + laypage: "laypage", + laytpl: "laytpl", + form: "form", + upload: "upload", + dropdown: "dropdown", + transfer: "transfer", + tree: "tree", + table: "table", + treeTable: "treeTable", + element: "element", + rate: "rate", + colorpicker: "colorpicker", + slider: "slider", + carousel: "carousel", + flow: "flow", + util: "util", + code: "code", + jquery: "jquery", + all: "all", + "layui.all": "layui.all" + }, s = (o.prototype.cache = m, + o.prototype.define = function(t, o) { + return "function" == typeof t && (o = t, + t = []), + this.use(t, function() { + var n = function(t, e) { + layui[t] = e, + m.status[t] = !0 + }; + return "function" == typeof o && o(function(t, e) { + n(t, e), + m.callback[t] = function() { + o(n) + } + }), + this + }, null, "define"), + this + } + , + o.prototype.use = function(n, t, e, o) { + var r, i, a = this, u = m.dir = m.dir || v, l = h.getElementsByTagName("head")[0], s = (n = "string" == typeof n ? [n] : "function" == typeof n ? (t = n, + ["all"]) : n, + d.jQuery && jQuery.fn.on && (a.each(n, function(t, e) { + "jquery" === e && n.splice(t, 1) + }), + layui.jquery = layui.$ = jQuery), + n[0]), c = 0; + function p(t, e) { + var n = "PLaySTATION 3" === navigator.platform ? /^complete$/ : /^(complete|loaded)$/; + "load" !== t.type && !n.test((t.currentTarget || t.srcElement).readyState) || (m.modules[s] = e, + l.removeChild(r), + function o() { + return ++c > 1e3 * m.timeout / 4 ? g(s + " is not a valid module", "error") : void (m.status[s] ? y() : setTimeout(o, 4)) + }()) + } + function y() { + e.push(layui[s]), + 1 < n.length ? a.use(n.slice(1), t, e, o) : "function" == typeof t && (layui.jquery && "function" == typeof layui.jquery && "define" !== o ? layui.jquery(function() { + t.apply(layui, e) + }) : t.apply(layui, e)) + } + return e = e || [], + m.host = m.host || (u.match(/\/\/([\s\S]+?)\//) || ["//" + location.host + "/"])[0], + 0 === n.length || layui["layui.all"] && N[s] ? y() : (i = (i = (N[s] ? u + "modules/" : !/^\{\/\}/.test(a.modules[s]) && m.base || "") + (a.modules[s] || s) + ".js").replace(/^\{\/\}/, ""), + !m.modules[s] && layui[s] && (m.modules[s] = i), + m.modules[s] ? function f() { + return ++c > 1e3 * m.timeout / 4 ? g(s + " is not a valid module", "error") : void ("string" == typeof m.modules[s] && m.status[s] ? y() : setTimeout(f, 4)) + }() : ((r = h.createElement("script"))["async"] = !0, + r.charset = "utf-8", + r.src = i + ((u = !0 === m.version ? m.v || (new Date).getTime() : m.version || "") ? "?v=" + u : ""), + l.appendChild(r), + !r.attachEvent || r.attachEvent.toString && r.attachEvent.toString().indexOf("[native code") < 0 || b ? r.addEventListener("load", function(t) { + p(t, i) + }, !1) : r.attachEvent("onreadystatechange", function(t) { + p(t, i) + }), + m.modules[s] = i)), + a + } + , + o.prototype.disuse = function(t) { + var n = this; + return t = n.isArray(t) ? t : [t], + n.each(t, function(t, e) { + m.status[e], + delete n[e], + delete N[e], + delete n.modules[e], + delete m.status[e], + delete m.modules[e] + }), + n + } + , + o.prototype.getStyle = function(t, e) { + t = t.currentStyle || d.getComputedStyle(t, null); + return t.getPropertyValue ? t.getPropertyValue(e) : t.getAttribute(e.replace(/-(\w)/g, function(t, e) { + return e ? e.toUpperCase() : "" + })) + } + , + o.prototype.link = function(n, o, t) { + var r = this + , e = h.getElementsByTagName("head")[0] + , i = h.createElement("link") + , a = "layuicss-" + ((t = "string" == typeof o ? o : t) || n).replace(/\.|\//g, "") + , u = "creating" + , l = 0; + return i.href = n + (m.debug ? "?v=" + (new Date).getTime() : ""), + i.rel = "stylesheet", + i.id = a, + i.media = "all", + h.getElementById(a) || e.appendChild(i), + "function" == typeof o && function s(t) { + var e = h.getElementById(a); + return ++l > 1e3 * m.timeout / 100 ? g(n + " timeout") : void (1989 === parseInt(r.getStyle(e, "width")) ? (t === u && e.removeAttribute("lay-status"), + e.getAttribute("lay-status") === u ? setTimeout(s, 100) : o()) : (e.setAttribute("lay-status", u), + setTimeout(function() { + s(u) + }, 100))) + }(), + r + } + , + o.prototype.addcss = function(t, e, n) { + return layui.link(m.dir + "css/" + t, e, n) + } + , + m.callback = {}, + o.prototype.factory = function(t) { + if (layui[t]) + return "function" == typeof m.callback[t] ? m.callback[t] : null + } + , + o.prototype.img = function(t, e, n) { + var o = new Image; + if (o.src = t, + o.complete) + return e(o); + o.onload = function() { + o.onload = null, + "function" == typeof e && e(o) + } + , + o.onerror = function(t) { + o.onerror = null, + "function" == typeof n && n(t) + } + } + , + o.prototype.config = function(t) { + for (var e in t = t || {}) + m[e] = t[e]; + return this + } + , + o.prototype.modules = function() { + var t, e = {}; + for (t in N) + e[t] = N[t]; + return e + }(), + o.prototype.extend = function(t) { + for (var e in t = t || {}) + this[e] || this.modules[e] ? g(e + " Module already exists", "error") : this.modules[e] = t[e]; + return this + } + , + o.prototype.router = o.prototype.hash = function(t) { + var n = { + path: [], + search: {}, + hash: ((t = t || location.hash).match(/[^#](#.*$)/) || [])[1] || "" + }; + return /^#\//.test(t) && (t = t.replace(/^#\//, ""), + n.href = "/" + t, + t = t.replace(/([^#])(#.*$)/, "$1").split("/") || [], + this.each(t, function(t, e) { + /^\w+=/.test(e) ? (e = e.split("="), + n.search[e[0]] = e[1]) : n.path.push(e) + })), + n + } + , + o.prototype.url = function(t) { + var r, e, n = this; + return { + pathname: (t ? ((t.match(/\.[^.]+?\/.+/) || [])[0] || "").replace(/^[^\/]+/, "").replace(/\?.+/, "") : location.pathname).replace(/^\//, "").split("/"), + search: (r = {}, + e = (t ? ((t.match(/\?.+/) || [])[0] || "").replace(/\#.+/, "") : location.search).replace(/^\?+/, "").split("&"), + n.each(e, function(t, e) { + var n = e.indexOf("=") + , o = n < 0 ? e.substr(0, e.length) : 0 !== n && e.substr(0, n); + o && (r[o] = 0 < n ? e.substr(n + 1) : null) + }), + r), + hash: n.router(t ? (t.match(/#.+/) || [])[0] || "/" : location.hash) + } + } + , + o.prototype.data = function(t, e, n) { + if (t = t || "layui", + n = n || localStorage, + d.JSON && d.JSON.parse) { + if (null === e) + return delete n[t]; + e = "object" == typeof e ? e : { + key: e + }; + try { + var o = JSON.parse(n[t]) + } catch (r) { + o = {} + } + return "value"in e && (o[e.key] = e.value), + e.remove && delete o[e.key], + n[t] = JSON.stringify(o), + e.key ? o[e.key] : o + } + } + , + o.prototype.sessionData = function(t, e) { + return this.data(t, e, sessionStorage) + } + , + o.prototype.device = function(t) { + var n = navigator.userAgent.toLowerCase() + , e = function(t) { + var e = new RegExp(t + "/([^\\s\\_\\-]+)"); + return (t = (n.match(e) || [])[1]) || !1 + } + , o = { + os: /windows/.test(n) ? "windows" : /linux/.test(n) ? "linux" : /iphone|ipod|ipad|ios/.test(n) ? "ios" : /mac/.test(n) ? "mac" : void 0, + ie: !!(d.ActiveXObject || "ActiveXObject"in d) && ((n.match(/msie\s(\d+)/) || [])[1] || "11"), + weixin: e("micromessenger") + }; + return t && !o[t] && (o[t] = e(t)), + o.android = /android/.test(n), + o.ios = "ios" === o.os, + o.mobile = o.android || o.ios, + o + } + , + o.prototype.hint = function() { + return { + error: g + } + } + , + o.prototype._typeof = o.prototype.type = function(t) { + return null === t ? String(t) : "object" == typeof t || "function" == typeof t ? (e = (e = Object.prototype.toString.call(t).match(/\s(.+)\]$/) || [])[1] || "Object", + new RegExp("\\b(Function|Array|Date|RegExp|Object|Error|Symbol)\\b").test(e) ? e.toLowerCase() : "object") : typeof t; + var e + } + , + o.prototype._isArray = o.prototype.isArray = function(t) { + var e, n = this.type(t); + return !(!t || "object" != typeof t || t === d) && (e = "length"in t && t.length, + "array" === n || 0 === e || "number" == typeof e && 0 < e && e - 1 in t) + } + , + o.prototype.each = function(t, n) { + var e, o = function(t, e) { + return n.call(e[t], t, e[t]) + }; + if ("function" == typeof n) + if (this.isArray(t = t || [])) + for (e = 0; e < t.length && !o(e, t); e++) + ; + else + for (e in t) + if (o(e, t)) + break; + return this + } + , + o.prototype.sort = function(t, r, e, n) { + n = n ? t || [] : JSON.parse(JSON.stringify(t || [])); + if ("object" !== this.type(t) || r) { + if ("object" != typeof t) + return [n]; + n.sort(function(t, e) { + var n = t[r] + , o = e[r]; + if (!isNaN(t) && !isNaN(e)) + return t - e; + if (!isNaN(t) && isNaN(e)) { + if (!r || "object" != typeof e) + return -1; + n = t + } else if (isNaN(t) && !isNaN(e)) { + if (!r || "object" != typeof t) + return 1; + o = e + } + t = [!isNaN(n), !isNaN(o)]; + return t[0] && t[1] ? n && !o && 0 !== o ? 1 : !n && 0 !== n && o ? -1 : n - o : t[0] || t[1] ? t[0] || !t[1] ? -1 : !t[0] || t[1] ? 1 : void 0 : o < n ? 1 : n < o ? -1 : 0 + }), + e && n.reverse() + } + return n + } + , + o.prototype.stope = function(t) { + t = t || d.event; + try { + t.stopPropagation() + } catch (e) { + t.cancelBubble = !0 + } + } + , + "LAYUI-EVENT-REMOVE"); + o.prototype.onevent = function(t, e, n) { + return "string" != typeof t || "function" != typeof n ? this : o.event(t, e, null, n) + } + , + o.prototype.event = o.event = function(t, e, n, o) { + var r = this + , i = null + , a = (e || "").match(/\((.*)\)$/) || [] + , t = (t + "." + e).replace(a[0], "") + , u = a[1] || "" + , l = function(t, e) { + !1 === (e && e.call(r, n)) && null === i && (i = !1) + }; + return n === s ? (delete (r.cache.event[t] || {})[u], + r) : o ? (m.event[t] = m.event[t] || {}, + u ? m.event[t][u] = [o] : (m.event[t][u] = m.event[t][u] || [], + m.event[t][u].push(o)), + this) : (layui.each(m.event[t], function(t, e) { + ("{*}" === u || ("" === t && layui.each(e, l), + u && t === u)) && layui.each(e, l) + }), + i) + } + , + o.prototype.on = function(t, e, n) { + return this.onevent.call(this, e, t, n) + } + , + o.prototype.off = function(t, e) { + return this.event.call(this, e, t, s) + } + , + o.prototype.debounce = function(n, o) { + var r; + return function() { + var t = this + , e = arguments; + clearTimeout(r), + r = setTimeout(function() { + n.apply(t, e) + }, o) + } + } + , + o.prototype.throttle = function(t, e) { + var n = !1; + return function() { + n || (t.apply(this, arguments), + n = !0, + setTimeout(function() { + n = !1 + }, e)) + } + } + , + d.layui = new o +}(window); +layui.define(function(a) { + var i = layui.cache; + layui.config({ + dir: i.dir.replace(/lay\/dest\/$/, "") + }), + a("layui.all", layui.v) +}); +!function(d) { + "use strict"; + var t, h = d.document, p = function(t) { + return new r(t) + }, r = function(t) { + var n = this + , i = "object" == typeof t ? layui.isArray(t) ? t : [t] : (this.selector = t, + h.querySelectorAll(t || null)); + p.each(i, function(t, e) { + n.push(i[t]) + }) + }, n = (Array.prototype.indexOf = Array.prototype.indexOf || function(n, i) { + var r = -1; + return i = i || 0, + layui.each(this, function(t, e) { + if (n === e && i <= t) + return r = t, + !0 + }), + r + } + , + r.fn = r.prototype = [], + r.fn.constructor = r, + p.extend = function() { + var t, e = 1, n = arguments, i = function(t, e) { + for (var n in t = t || ("array" === layui.type(e) ? [] : {}), + e) + t[n] = e[n] && e[n].constructor === Object ? i(t[n], e[n]) : e[n]; + return t + }; + for (n[0] = "object" == typeof n[0] ? n[0] : {}, + t = n.length; e < t; e++) + "object" == typeof n[e] && i(n[0], n[e]); + return n[0] + } + , + p.ie = (t = navigator.userAgent.toLowerCase(), + !!(d.ActiveXObject || "ActiveXObject"in d) && ((t.match(/msie\s(\d+)/) || [])[1] || "11")), + p.layui = layui || {}, + p.getPath = layui.cache.dir, + p.stope = layui.stope, + p.each = function() { + return layui.each.apply(layui, arguments), + this + } + , + p.digit = function(t, e) { + if ("string" != typeof t && "number" != typeof t) + return ""; + var n = ""; + e = e || 2; + for (var i = (t = String(t)).length; i < e; i++) + n += "0"; + return t < Math.pow(10, e) ? n + t : t + } + , + p.elem = function(t, e) { + var n = h.createElement(t); + return p.each(e || {}, function(t, e) { + n.setAttribute(t, e) + }), + n + } + , + p.hasScrollbar = function() { + return h.body.scrollHeight > (d.innerHeight || h.documentElement.clientHeight) + } + , + p.getStyleRules = function(t, n) { + if (t) + return t = (t = t.sheet || t.styleSheet || {}).cssRules || t.rules, + "function" == typeof n && layui.each(t, function(t, e) { + if (n(e, t)) + return !0 + }), + t + } + , + p.style = function(t) { + t = t || {}; + var e = p.elem("style") + , n = t.text || "" + , i = t.target; + if (n) + return "styleSheet"in e ? (e.setAttribute("type", "text/css"), + e.styleSheet.cssText = n) : e.innerHTML = n, + e.id = "LAY-STYLE-" + (t.id || (n = p.style.index || 0, + p.style.index++, + "DF-" + n)), + i && ((t = p(i).find("#" + e.id))[0] && t.remove(), + p(i).append(e)), + e + } + , + p.position = function(t, e, n) { + var i, r, o, c, a, u, s, f, l; + e && (n = n || {}, + t !== h && t !== p("body")[0] || (n.clickType = "right"), + i = "right" === n.clickType ? { + left: (i = n.e || d.event || {}).clientX, + top: i.clientY, + right: i.clientX, + bottom: i.clientY + } : t.getBoundingClientRect(), + u = e.offsetWidth, + s = e.offsetHeight, + r = function(t) { + return h.body[t = t ? "scrollLeft" : "scrollTop"] | h.documentElement[t] + } + , + o = function(t) { + return h.documentElement[t ? "clientWidth" : "clientHeight"] + } + , + c = "margin"in n ? n.margin : 5, + l = i.left, + a = i.bottom, + "center" === n.align ? l -= (u - t.offsetWidth) / 2 : "right" === n.align && (l = l - u + t.offsetWidth), + (l = l + u + c > o("width") ? o("width") - u - c : l) < c && (l = c), + i.bottom + s + c > o() && (i.top > s + c && i.top <= o() ? a = i.top - s - 2 * c : n.allowBottomOut || (a = o() - s - 2 * c) < 0 && (a = 0)), + (u = n.position) && (e.style.position = u), + s = n.offset ? n.offset[0] : 0, + f = n.offset ? n.offset[1] : 0, + e.style.left = l + ("fixed" === u ? 0 : r(1)) + s + "px", + e.style.top = a + ("fixed" === u ? 0 : r()) + f + "px", + p.hasScrollbar() || (l = e.getBoundingClientRect(), + !n.SYSTEM_RELOAD && l.bottom + c > o() && (n.SYSTEM_RELOAD = !0, + setTimeout(function() { + p.position(t, e, n) + }, 50)))) + } + , + p.options = function(t, e) { + if (e = "object" == typeof e ? e : { + attr: e + }, + t === h) + return {}; + var t = p(t) + , n = e.attr || "lay-options" + , t = t.attr(n); + try { + return new Function("return " + (t || "{}"))() + } catch (i) { + return layui.hint().error(e.errorText || [n + '="' + t + '"', "\n parseerror: " + i].join("\n"), "error"), + {} + } + } + , + p.isTopElem = function(n) { + var t = [h, p("body")[0]] + , i = !1; + return p.each(t, function(t, e) { + if (e === n) + return i = !0 + }), + i + } + , + p.clipboard = { + writeText: function(n) { + var i = String(n.text); + function t() { + var t = h.createElement("textarea"); + t.value = i, + t.style.position = "fixed", + t.style.opacity = "0", + t.style.top = "0px", + t.style.left = "0px", + h.body.appendChild(t), + t.select(); + try { + h.execCommand("copy"), + "function" == typeof n.done && n.done() + } catch (e) { + "function" == typeof n.error && n.error(e) + } finally { + t.remove ? t.remove() : h.body.removeChild(t) + } + } + navigator && "clipboard"in navigator ? navigator.clipboard.writeText(i).then(n.done, function() { + t() + }) : t() + } + }, + p.passiveSupported = function() { + var t = !1; + try { + var e = Object.defineProperty({}, "passive", { + get: function() { + t = !0 + } + }); + d.addEventListener("test", null, e), + d.removeEventListener("test", null, e) + } catch (n) {} + return t + }(), + p.touchEventsSupported = function() { + return "ontouchstart"in d + } + , + p.touchSwipe = function(t, e) { + var n, i, r, o = e, c = p(t)[0]; + c && p.touchEventsSupported() && (n = { + pointerStart: { + x: 0, + y: 0 + }, + pointerEnd: { + x: 0, + y: 0 + }, + distanceX: 0, + distanceY: 0, + direction: "none", + timeStart: null + }, + e = function(t) { + 1 === t.touches.length && (c.addEventListener("touchmove", i, !!p.passiveSupported && { + passive: !1 + }), + c.addEventListener("touchend", r), + c.addEventListener("touchcancel", r), + n.timeStart = Date.now(), + n.pointerStart.x = n.pointerEnd.x = t.touches[0].clientX, + n.pointerStart.y = n.pointerEnd.y = t.touches[0].clientY, + n.distanceX = n.distanceY = 0, + n.direction = "none", + o.onTouchStart) && o.onTouchStart(t, n) + } + , + i = function(t) { + t.preventDefault(), + n.pointerEnd.x = t.touches[0].clientX, + n.pointerEnd.y = t.touches[0].clientY, + n.distanceX = n.pointerStart.x - n.pointerEnd.x, + n.distanceY = n.pointerStart.y - n.pointerEnd.y, + Math.abs(n.distanceX) > Math.abs(n.distanceY) ? n.direction = 0 < n.distanceX ? "left" : "right" : n.direction = 0 < n.distanceY ? "up" : "down", + o.onTouchMove && o.onTouchMove(t, n) + } + , + r = function(t) { + o.onTouchEnd && o.onTouchEnd(t, n), + c.removeEventListener("touchmove", i), + c.removeEventListener("touchend", r, !!p.passiveSupported && { + passive: !1 + }), + c.removeEventListener("touchcancel", r) + } + , + c.__lay_touchswipe_cb_ && c.removeEventListener("touchstart", c.__lay_touchswipe_cb_), + c.__lay_touchswipe_cb_ = e, + c.addEventListener("touchstart", e)) + } + , + p.addEvent = h.addEventListener ? function(t, e, n, i) { + t.addEventListener(e, n, i) + } + : function(e, t, n) { + var i = "_lay_on_" + t + , r = function(t) { + t.target = t.srcElement, + n.call(e, t) + } + , o = (r._rawFn = n, + e[i] || (e[i] = []), + !1); + p.each(e[i], function(t, e) { + if (e._rawFn === n) + return o = !0 + }), + o || (e[i].push(r), + e.attachEvent("on" + t, r)) + } + , + p.removeEvent = h.removeEventListener ? function(t, e, n, i) { + t.removeEventListener(e, n, i) + } + : function(n, i, r) { + var o, t = "_lay_on_" + i, e = n[t]; + layui.isArray(e) && (o = [], + p.each(e, function(t, e) { + e._rawFn === r ? n.detachEvent("on" + i, e) : o.push(e) + }), + n[t] = o) + } + , + p.onClickOutside = function(r, o, t) { + var e, n, i, c, a = (t = t || {}).event || ("onpointerdown"in d ? "pointerdown" : "mousedown"), u = t.scope || h, s = t.ignore || [], t = !("capture"in t) || t.capture; + return e = u, + n = a, + i = function(t) { + var e = r + , n = t.target || t.srcElement + , i = function(t) { + var e = t.composedPath && t.composedPath() || t.path + , t = t.target || t.srcElement; + if (null !== e && e !== undefined) + return e; + return [t].concat(function n(t, e) { + e = e || []; + t = t.parentNode; + return t ? n(t, e.concat([t])) : e + }(t)) + }(t); + e && e !== n && -1 === i.indexOf(e) && !function(t, e) { + for (var n = t.target || t.srcElement, i = 0; i < s.length; i++) { + var r = s[i]; + if ("string" == typeof r) + for (var o = h.querySelectorAll(r), c = 0; c < o.length; c++) { + var a = o[i]; + if (a === n || -1 !== e.indexOf(a)) + return 1 + } + else if (r && (r === n || -1 !== e.indexOf(r))) + return 1 + } + }(t, i) && o(t) + } + , + c = p.passiveSupported ? { + passive: !0, + capture: t + } : t, + e.addEventListener ? e.addEventListener(n, i, c) : e.attachEvent("on" + n, i), + function() { + e.removeEventListener ? e.removeEventListener(n, i, c) : e.detachEvent("on" + n, i) + } + } + , + Object.prototype.hasOwnProperty); + p.hasOwn = function(t, e) { + return n.call(t, e) + } + , + r.addStr = function(n, t) { + return n = n.replace(/\s+/, " "), + t = t.replace(/\s+/, " ").split(" "), + p.each(t, function(t, e) { + new RegExp("\\b" + e + "\\b").test(n) || (n = n + " " + e) + }), + n.replace(/^\s|\s$/, "") + } + , + r.removeStr = function(n, t) { + return n = n.replace(/\s+/, " "), + t = t.replace(/\s+/, " ").split(" "), + p.each(t, function(t, e) { + e = new RegExp("\\b" + e + "\\b"); + e.test(n) && (n = n.replace(e, "")) + }), + n.replace(/\s+/, " ").replace(/^\s|\s$/, "") + } + , + r.fn.find = function(n) { + var i = [] + , r = "object" == typeof n; + return this.each(function(t, e) { + e = r && e.contains(n) ? n : e.querySelectorAll(n || null); + p.each(e, function(t, e) { + i.push(e) + }) + }), + p(i) + } + , + r.fn.each = function(t) { + return p.each.call(this, this, t) + } + , + r.fn.addClass = function(n, i) { + return this.each(function(t, e) { + e.className = r[i ? "removeStr" : "addStr"](e.className, n) + }) + } + , + r.fn.removeClass = function(t) { + return this.addClass(t, !0) + } + , + r.fn.hasClass = function(n) { + var i = !1; + return this.each(function(t, e) { + new RegExp("\\b" + n + "\\b").test(e.className) && (i = !0) + }), + i + } + , + r.fn.css = function(e, i) { + var t = this + , r = function(t) { + return isNaN(t) ? t : t + "px" + }; + return "string" != typeof e || i !== undefined ? t.each(function(t, n) { + "object" == typeof e ? p.each(e, function(t, e) { + n.style[t] = r(e) + }) : n.style[e] = r(i) + }) : 0 < t.length ? t[0].style[e] : void 0 + } + , + r.fn.width = function(n) { + var i = this; + return n !== undefined ? i.each(function(t, e) { + i.css("width", n) + }) : 0 < i.length ? i[0].offsetWidth : void 0 + } + , + r.fn.height = function(n) { + var i = this; + return n !== undefined ? i.each(function(t, e) { + i.css("height", n) + }) : 0 < i.length ? i[0].offsetHeight : void 0 + } + , + r.fn.attr = function(n, i) { + var t = this; + return i !== undefined ? t.each(function(t, e) { + e.setAttribute(n, i) + }) : 0 < t.length ? t[0].getAttribute(n) : void 0 + } + , + r.fn.removeAttr = function(n) { + return this.each(function(t, e) { + e.removeAttribute(n) + }) + } + , + r.fn.html = function(n) { + var t = this; + return n !== undefined ? this.each(function(t, e) { + e.innerHTML = n + }) : 0 < t.length ? t[0].innerHTML : void 0 + } + , + r.fn.val = function(n) { + var t = this; + return n !== undefined ? this.each(function(t, e) { + e.value = n + }) : 0 < t.length ? t[0].value : void 0 + } + , + r.fn.append = function(n) { + return this.each(function(t, e) { + "object" == typeof n ? e.appendChild(n) : e.innerHTML = e.innerHTML + n + }) + } + , + r.fn.remove = function(n) { + return this.each(function(t, e) { + n ? e.removeChild(n) : e.parentNode.removeChild(e) + }) + } + , + r.fn.on = function(n, i, r) { + return this.each(function(t, e) { + p.addEvent(e, n, i, r) + }) + } + , + r.fn.off = function(n, i, r) { + return this.each(function(t, e) { + p.removeEvent(e, n, i, r) + }) + } + , + d.lay = p, + d.layui && layui.define && layui.define(function(t) { + t("lay", p) + }) +}(window, window.document); +layui.define(function(e) { + "use strict"; + var r = { + open: "{{", + close: "}}" + } + , c = { + exp: function(e) { + return new RegExp(e,"g") + }, + query: function(e, c, t) { + var o = ["#([\\s\\S])+?", "([^{#}])*?"][e || 0]; + return n((c || "") + r.open + o + r.close + (t || "")) + }, + escape: function(e) { + return String(e || "").replace(/&(?!#?[a-zA-Z0-9]+;)/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/"/g, """) + }, + error: function(e, r) { + var c = "Laytpl Error: "; + return "object" == typeof console && console.error(c + e + "\n" + (r || "")), + c + e + } + } + , n = c.exp + , t = function(e) { + this.tpl = e + }; + t.pt = t.prototype, + window.errors = 0, + t.pt.parse = function(e, t) { + var o = this + , p = e + , a = n("^" + r.open + "#", "") + , l = n(r.close + "$", ""); + e = e.replace(/\s+|\r|\t|\n/g, " ").replace(n(r.open + "#"), r.open + "# ").replace(n(r.close + "}"), "} " + r.close).replace(/\\/g, "\\\\").replace(n(r.open + "!(.+?)!" + r.close), function(e) { + return e = e.replace(n("^" + r.open + "!"), "").replace(n("!" + r.close), "").replace(n(r.open + "|" + r.close), function(e) { + return e.replace(/(.)/g, "\\$1") + }) + }).replace(/(?="|')/g, "\\").replace(c.query(), function(e) { + return e = e.replace(a, "").replace(l, ""), + '";' + e.replace(/\\/g, "") + ';view+="' + }).replace(c.query(1), function(e) { + var c = '"+('; + return e.replace(/\s/g, "") === r.open + r.close ? "" : (e = e.replace(n(r.open + "|" + r.close), ""), + /^=/.test(e) && (e = e.replace(/^=/, ""), + c = '"+_escape_('), + c + e.replace(/\\/g, "") + ')+"') + }), + e = '"use strict";var view = "' + e + '";return view;'; + try { + return o.cache = e = new Function("d, _escape_",e), + e(t, c.escape) + } catch (u) { + return delete o.cache, + c.error(u, p) + } + } + , + t.pt.render = function(e, r) { + var n, t = this; + return e ? (n = t.cache ? t.cache(e, c.escape) : t.parse(t.tpl, e), + r ? void r(n) : n) : c.error("no data") + } + ; + var o = function(e) { + return "string" != typeof e ? c.error("Template not found") : new t(e) + }; + o.config = function(e) { + e = e || {}; + for (var c in e) + r[c] = e[c] + } + , + o.v = "1.2.0", + e("laytpl", o) +}); +layui.define(function(e) { + "use strict"; + var r = document + , u = "getElementById" + , c = "getElementsByTagName" + , a = "layui-disabled" + , t = function(e) { + var a = this; + a.config = e || {}, + a.config.index = ++o.index, + a.render(!0) + } + , o = (t.prototype.type = function() { + var e = this.config; + if ("object" == typeof e.elem) + return e.elem.length === undefined ? 2 : 3 + } + , + t.prototype.view = function() { + var i, e, t, n = this.config, r = n.groups = "groups"in n ? Number(n.groups) || 0 : 5, u = (n.layout = "object" == typeof n.layout ? n.layout : ["prev", "page", "next"], + n.count = Number(n.count) || 0, + n.curr = Number(n.curr) || 1, + n.limits = "object" == typeof n.limits ? n.limits : [10, 20, 30, 40, 50], + n.limit = Number(n.limit) || 10, + n.pages = Math.ceil(n.count / n.limit) || 1, + n.curr > n.pages ? n.curr = n.pages : n.curr < 1 && (n.curr = 1), + r < 0 ? r = 1 : r > n.pages && (r = n.pages), + n.prev = "prev"in n ? n.prev : "\u4e0a\u4e00\u9875", + n.next = "next"in n ? n.next : "\u4e0b\u4e00\u9875", + n.pages > r ? Math.ceil((n.curr + (1 < r ? 1 : 0)) / (0 < r ? r : 1)) : 1), l = { + prev: n.prev ? '' + n.prev + "" : "", + page: function() { + var e = []; + if (n.count < 1) + return ""; + 1 < u && !1 !== n.first && 0 !== r && e.push('' + (n.first || 1) + ""); + var a = Math.floor((r - 1) / 2) + , t = 1 < u ? n.curr - a : 1 + , i = 1 < u ? (a = n.curr + (r - a - 1)) > n.pages ? n.pages : a : r; + for (i - t < r - 1 && (t = i - r + 1), + !1 !== n.first && 2 < t && e.push('...'); t <= i; t++) + t === n.curr ? e.push('" + t + "") : e.push('' + t + ""); + return n.pages > r && n.pages > i && !1 !== n.last && (i + 1 < n.pages && e.push('...'), + 0 !== r) && e.push('' + (n.last || n.pages) + ""), + e.join("") + }(), + next: n.next ? '' + n.next + "" : "", + count: '' + (e = "object" == typeof n.countText ? n.countText : ["\u5171 ", " \u6761"])[0] + n.count + e[1] + "", + limit: (i = ['"), + refresh: ['', '', ""].join(""), + skip: ['' + (e = "object" == typeof n.skipText ? n.skipText : ["\u5230\u7b2c", "\u9875", "\u786e\u5b9a"])[0], '', e[1] + '", ""].join("") + }; + return ['
            ', (t = [], + layui.each(n.layout, function(e, a) { + l[a] && t.push(l[a]) + }), + t.join("")), "
            "].join("") + } + , + t.prototype.jump = function(e, a) { + if (e) { + var t = this + , i = t.config + , n = e.children + , r = e[c]("button")[0] + , u = e[c]("input")[0] + , e = e[c]("select")[0] + , l = function() { + var e = Number(u.value.replace(/\s|\D/g, "")); + e && (i.curr = e, + t.render()) + }; + if (a) + return l(); + for (var s = 0, p = n.length; s < p; s++) + "a" === n[s].nodeName.toLowerCase() && o.on(n[s], "click", function() { + var e = Number(this.getAttribute("data-page")); + e < 1 || e > i.pages || (i.curr = e, + t.render()) + }); + e && o.on(e, "change", function() { + var e = this.value; + i.curr * e > i.count && (i.curr = Math.ceil(i.count / e)), + i.limit = e, + t.render() + }), + r && o.on(r, "click", function() { + l() + }) + } + } + , + t.prototype.skip = function(t) { + var i, e; + t && (i = this, + e = t[c]("input")[0]) && o.on(e, "keyup", function(e) { + var a = this.value + , e = e.keyCode; + /^(37|38|39|40)$/.test(e) || (/\D/.test(a) && (this.value = a.replace(/\D/, "")), + 13 === e && i.jump(t, !0)) + }) + } + , + t.prototype.render = function(e) { + var a = this + , t = a.config + , i = a.type() + , n = a.view() + , i = (2 === i ? t.elem && (t.elem.innerHTML = n) : 3 === i ? t.elem.html(n) : r[u](t.elem) && (r[u](t.elem).innerHTML = n), + t.jump && t.jump(t, e), + r[u]("layui-laypage-" + t.index)); + a.jump(i), + t.hash && !e && (location.hash = "!" + t.hash + "=" + t.curr), + a.skip(i) + } + , + { + render: function(e) { + return new t(e).index + }, + index: layui.laypage ? layui.laypage.index + 1e4 : 0, + on: function(a, e, t) { + return a.attachEvent ? a.attachEvent("on" + e, function(e) { + e.target = e.srcElement, + t.call(a, e) + }) : a.addEventListener(e, t, !1), + this + } + }); + e("laypage", o) +}); +!function(i, D) { + "use strict"; + var n = i.layui && layui.define + , l = { + getPath: i.lay && lay.getPath ? lay.getPath : "", + link: function(e, t, a) { + T.path && i.lay && lay.layui && lay.layui.link(T.path + e, t, a) + } + } + , e = i.LAYUI_GLOBAL || {} + , a = "laydate" + , d = "lay-" + a + "-id" + , T = { + v: "5.6.0", + config: { + weekStart: 0 + }, + index: i.laydate && i.laydate.v ? 1e5 : 0, + path: e.laydate_dir || l.getPath, + set: function(e) { + var t = this; + return t.config = lay.extend({}, t.config, e), + t + }, + ready: function(e) { + var t = "laydate" + , a = (n ? "modules/" : "") + "laydate.css?v=" + T.v; + return n ? layui["layui.all"] ? "function" == typeof e && e() : layui.addcss(a, e, t) : l.link(a, e, t), + this + } + } + , s = function() { + var t = this + , e = t.config.id; + return (s.that[e] = t).inst = { + hint: function(e) { + t.hint.call(t, e) + }, + reload: function(e) { + t.reload.call(t, e) + }, + config: t.config + } + } + , M = "layui-this" + , C = "laydate-disabled" + , h = [100, 2e5] + , v = "layui-laydate-static" + , b = "layui-laydate-list" + , o = "laydate-selected" + , r = "layui-laydate-hint" + , y = "laydate-day-prev" + , m = "laydate-day-next" + , E = ".laydate-btns-confirm" + , L = "laydate-time-text" + , I = "laydate-btns-time" + , x = "layui-laydate-preview" + , w = "layui-laydate-shade" + , k = function(e) { + var t, a = this, n = (a.index = ++T.index, + a.config = lay.extend({}, a.config, T.config, e), + lay(e.elem || a.config.elem)); + return 1 < n.length ? (lay.each(n, function() { + T.render(lay.extend({}, a.config, { + elem: this + })) + }), + a) : (e = lay.extend(a.config, lay.options(n[0])), + n[0] && n.attr(d) ? (t = s.getThis(n.attr(d))) ? t.reload(e) : void 0 : (e.id = "id"in e ? e.id : n.attr("id") || a.index, + e.index = a.index, + void T.ready(function() { + a.init() + }))) + } + , u = "yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s"; + s.formatArr = function(e) { + return (e || "").match(new RegExp(u + "|.","g")) || [] + } + , + k.isLeapYear = function(e) { + return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 + } + , + k.prototype.config = { + type: "date", + range: !1, + format: "yyyy-MM-dd", + value: null, + isInitValue: !0, + min: "1900-1-1", + max: "2099-12-31", + trigger: "click", + show: !1, + showBottom: !0, + isPreview: !0, + btns: ["clear", "now", "confirm"], + lang: "cn", + theme: "default", + position: null, + calendar: !1, + mark: {}, + holidays: null, + zIndex: null, + done: null, + change: null, + autoConfirm: !0, + shade: 0 + }, + k.prototype.lang = function() { + var e = { + cn: { + weeks: ["\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"], + time: ["\u65f6", "\u5206", "\u79d2"], + timeTips: "\u9009\u62e9\u65f6\u95f4", + startTime: "\u5f00\u59cb\u65f6\u95f4", + endTime: "\u7ed3\u675f\u65f6\u95f4", + dateTips: "\u8fd4\u56de\u65e5\u671f", + month: ["\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d", "\u4e03", "\u516b", "\u4e5d", "\u5341", "\u5341\u4e00", "\u5341\u4e8c"], + tools: { + confirm: "\u786e\u5b9a", + clear: "\u6e05\u7a7a", + now: "\u73b0\u5728" + }, + timeout: "\u7ed3\u675f\u65f6\u95f4\u4e0d\u80fd\u65e9\u4e8e\u5f00\u59cb\u65f6\u95f4
            \u8bf7\u91cd\u65b0\u9009\u62e9", + invalidDate: "\u4e0d\u5728\u6709\u6548\u65e5\u671f\u6216\u65f6\u95f4\u8303\u56f4\u5185", + formatError: ["\u65e5\u671f\u683c\u5f0f\u4e0d\u5408\u6cd5
            \u5fc5\u987b\u9075\u5faa\u4e0b\u8ff0\u683c\u5f0f\uff1a
            ", "
            \u5df2\u4e3a\u4f60\u91cd\u7f6e"], + preview: "\u5f53\u524d\u9009\u4e2d\u7684\u7ed3\u679c" + }, + en: { + weeks: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], + time: ["Hours", "Minutes", "Seconds"], + timeTips: "Select Time", + startTime: "Start Time", + endTime: "End Time", + dateTips: "Select Date", + month: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], + tools: { + confirm: "Confirm", + clear: "Clear", + now: "Now" + }, + timeout: "End time cannot be less than start Time
            Please re-select", + invalidDate: "Invalid date", + formatError: ["The date format error
            Must be followed\uff1a
            ", "
            It has been reset"], + preview: "The selected result" + } + }; + return e[this.config.lang] || e.cn + } + , + k.prototype.markerOfChineseFestivals = { + "0-1-1": "\u5143\u65e6", + "0-2-14": "\u60c5\u4eba", + "0-3-8": "\u5987\u5973", + "0-3-12": "\u690d\u6811", + "0-4-1": "\u611a\u4eba", + "0-5-1": "\u52b3\u52a8", + "0-5-4": "\u9752\u5e74", + "0-6-1": "\u513f\u7ae5", + "0-9-10": "\u6559\u5e08", + "0-10-1": "\u56fd\u5e86", + "0-12-25": "\u5723\u8bde" + }, + k.prototype.reload = function(e) { + this.config = lay.extend({}, this.config, e), + this.init() + } + , + k.prototype.init = function() { + var r = this + , o = r.config + , e = "static" === o.position + , t = { + year: "yyyy", + month: "yyyy-MM", + date: "yyyy-MM-dd", + time: "HH:mm:ss", + datetime: "yyyy-MM-dd HH:mm:ss" + }; + o.elem = lay(o.elem), + o.eventElem = lay(o.eventElem), + o.elem[0] && ("array" !== layui.type(o.theme) && (o.theme = [o.theme]), + o.fullPanel && ("datetime" !== o.type || o.range) && delete o.fullPanel, + r.rangeStr = o.range ? "string" == typeof o.range ? o.range : "-" : "", + r.rangeLinked = !(!o.range || !o.rangeLinked || "date" !== o.type && "datetime" !== o.type), + r.autoCalendarModel = function() { + var e = r.rangeLinked; + return r.rangeLinked = o.range && ("date" === o.type || "datetime" === o.type) && (!r.startDate || !r.endDate || r.startDate && r.endDate && r.startDate.year === r.endDate.year && r.startDate.month === r.endDate.month), + lay(r.elem)[r.rangeLinked ? "addClass" : "removeClass"]("layui-laydate-linkage"), + r.rangeLinked != e + } + , + r.autoCalendarModel.auto = r.rangeLinked && "auto" === o.rangeLinked, + "array" === layui.type(o.range) && (r.rangeElem = [lay(o.range[0]), lay(o.range[1])]), + t[o.type] || (i.console && console.error && console.error("laydate type error:'" + o.type + "' is not supported"), + o.type = "date"), + o.format === t.date && (o.format = t[o.type] || t.date), + r.format = s.formatArr(o.format), + o.weekStart && !/^[0-6]$/.test(o.weekStart) && (t = r.lang(), + o.weekStart = t.weeks.indexOf(o.weekStart), + -1 === o.weekStart) && (o.weekStart = 0), + r.EXP_IF = "", + r.EXP_SPLIT = "", + lay.each(r.format, function(e, t) { + e = new RegExp(u).test(t) ? "\\d{" + (new RegExp(u).test(r.format[0 === e ? e + 1 : e - 1] || "") ? /^yyyy|y$/.test(t) ? 4 : t.length : /^yyyy$/.test(t) ? "1,4" : /^y$/.test(t) ? "1,308" : "1,2") + "}" : "\\" + t; + r.EXP_IF = r.EXP_IF + e, + r.EXP_SPLIT = r.EXP_SPLIT + "(" + e + ")" + }), + r.EXP_IF_ONE = new RegExp("^" + r.EXP_IF + "$"), + r.EXP_IF = new RegExp("^" + (o.range ? r.EXP_IF + "\\s\\" + r.rangeStr + "\\s" + r.EXP_IF : r.EXP_IF) + "$"), + r.EXP_SPLIT = new RegExp("^" + r.EXP_SPLIT + "$",""), + r.isInput(o.elem[0]) || "focus" === o.trigger && (o.trigger = "click"), + o.elem.attr("lay-key", r.index), + o.eventElem.attr("lay-key", r.index), + o.elem.attr(d, o.id), + lay.each(["min", "max"], function(e, t) { + var a = [] + , n = []; + if ("number" == typeof o[t]) + var i = o[t] + , l = new Date + , l = r.newDate({ + year: l.getFullYear(), + month: l.getMonth(), + date: l.getDate(), + hours: e ? 23 : 0, + minutes: e ? 59 : 0, + seconds: e ? 59 : 0 + }).getTime() + , e = new Date(i ? i < 864e5 ? l + 864e5 * i : i : l) + , a = [e.getFullYear(), e.getMonth() + 1, e.getDate()] + , n = [e.getHours(), e.getMinutes(), e.getSeconds()]; + else if ("string" == typeof o[t]) + a = (o[t].match(/\d+-\d+-\d+/) || [""])[0].split("-"), + n = (o[t].match(/\d+:\d+:\d+/) || [""])[0].split(":"); + else if ("object" == typeof o[t]) + return o[t]; + o[t] = { + year: 0 | a[0] || (new Date).getFullYear(), + month: a[1] ? (0 | a[1]) - 1 : (new Date).getMonth(), + date: 0 | a[2] || (new Date).getDate(), + hours: 0 | n[0], + minutes: 0 | n[1], + seconds: 0 | n[2] + } + }), + r.elemID = "layui-laydate" + o.elem.attr("lay-key"), + (o.show || e) && r.render(), + e || r.events(), + "function" == typeof o.formatToDisplay && (r.isInput(o.elem[0]) ? r.formatToDisplay(o.elem[0], o.formatToDisplay) : (t = r.rangeElem) && (r.formatToDisplay(t[0][0], o.formatToDisplay), + r.formatToDisplay(t[1][0], o.formatToDisplay))), + o.value) && o.isInitValue && ("date" === layui.type(o.value) ? r.setValue(r.parse(0, r.systemDate(o.value))) : r.setValue(o.value)) + } + , + k.prototype.render = function() { + var a, n, i, l, r = this, o = r.config, d = r.lang(), s = "static" === o.position, y = r.elem = lay.elem("div", { + id: r.elemID, + "class": ["layui-laydate", o.range ? " layui-laydate-range" : "", r.rangeLinked ? " layui-laydate-linkage" : "", s ? " " + v : "", o.fullPanel ? " laydate-theme-fullpanel" : "", (a = "", + lay.each(o.theme, function(e, t) { + "default" === t || /^#/.test(t) || (a += " laydate-theme-" + t) + }), + a)].join("") + }), m = r.elemMain = [], u = r.elemHeader = [], c = r.elemCont = [], h = r.table = [], e = r.footer = lay.elem("div", { + "class": "layui-laydate-footer" + }), t = r.shortcut = lay.elem("ul", { + "class": "layui-laydate-shortcut" + }), p = (o.zIndex && (y.style.zIndex = o.zIndex), + lay.each(new Array(2), function(e) { + if (!o.range && 0 < e) + return !0; + var a = lay.elem("div", { + "class": "layui-laydate-header" + }) + , t = [((t = lay.elem("i", { + "class": "layui-icon laydate-icon laydate-prev-y" + })).innerHTML = "", + t), ((t = lay.elem("i", { + "class": "layui-icon laydate-icon laydate-prev-m" + })).innerHTML = "", + t), ((t = lay.elem("div", { + "class": "laydate-set-ym" + })).appendChild(lay.elem("span")), + t.appendChild(lay.elem("span")), + t), ((t = lay.elem("i", { + "class": "layui-icon laydate-icon laydate-next-m" + })).innerHTML = "", + t), ((t = lay.elem("i", { + "class": "layui-icon laydate-icon laydate-next-y" + })).innerHTML = "", + t)] + , n = lay.elem("div", { + "class": "layui-laydate-content" + }) + , i = lay.elem("table") + , l = lay.elem("thead") + , r = lay.elem("tr"); + lay.each(t, function(e, t) { + a.appendChild(t) + }), + l.appendChild(r), + lay.each(new Array(6), function(a) { + var n = i.insertRow(0); + lay.each(new Array(7), function(e) { + var t; + 0 === a && ((t = lay.elem("th")).innerHTML = d.weeks[(e + o.weekStart) % 7], + r.appendChild(t)), + n.insertCell(e) + }) + }), + i.insertBefore(l, i.children[0]), + n.appendChild(i), + m[e] = lay.elem("div", { + "class": "layui-laydate-main laydate-main-list-" + e + }), + m[e].appendChild(a), + m[e].appendChild(n), + u.push(t), + c.push(n), + h.push(i) + }), + lay(e).html((p = [], + n = [], + "datetime" === o.type && p.push('' + d.timeTips + ""), + (o.range || "datetime" !== o.type || o.fullPanel) && p.push(''), + lay.each(o.btns, function(e, t) { + var a = d.tools[t] || "btn"; + o.range && "now" === t || (s && "clear" === t && (a = "cn" === o.lang ? "\u91cd\u7f6e" : "Reset"), + n.push('' + a + "")) + }), + p.push('"), + p.join(""))), + o.shortcuts && (y.appendChild(t), + lay(t).html((i = [], + lay.each(o.shortcuts, function(e, t) { + i.push('
          • ' + t.text + "
          • ") + }), + i.join(""))).find("li").on("click", function(e) { + var t = o.shortcuts[this.dataset.index] || {} + , t = ("function" == typeof t.value ? t.value() : t.value) || [] + , n = (layui.isArray(t) || (t = [t]), + o.type) + , t = (lay.each(t, function(e, t) { + var a = [o.dateTime, r.endDate][e]; + "time" === n && "date" !== layui.type(t) ? r.EXP_IF.test(t) && (t = (t.match(r.EXP_SPLIT) || []).slice(1), + lay.extend(a, { + hours: 0 | t[0], + minutes: 0 | t[2], + seconds: 0 | t[4] + })) : lay.extend(a, r.systemDate("date" === layui.type(t) ? t : new Date(t))), + "time" !== n && "datetime" !== n || (r[["startTime", "endTime"][e]] = { + hours: a.hours, + minutes: a.minutes, + seconds: a.seconds + }), + 0 === e ? r.startDate = lay.extend({}, a) : r.endState = !0, + "year" === n || "month" === n || "time" === n ? r.listYM[e] = [a.year, a.month + 1] : e && r.autoCalendarModel.auto && r.autoCalendarModel() + }), + r.checkDate("limit").calendar(null, null, "init"), + lay(r.footer).find("." + I).removeClass(C)); + t && "date" === t.attr("lay-type") && t[0].click(), + r.done(null, "change"), + lay(this).addClass(M), + "static" !== o.position && r.setValue(r.parse()).done().remove() + })), + lay.each(m, function(e, t) { + y.appendChild(t) + }), + o.showBottom && y.appendChild(e), + lay.elem("style")), f = [], g = !0, t = (lay.each(o.theme, function(e, t) { + g && /^#/.test(t) ? (g = !(l = !0), + f.push(["#{{id}} .layui-laydate-header{background-color:{{theme}};}", "#{{id}} li.layui-this,#{{id}} td.layui-this>div{background-color:{{theme}} !important;}", -1 !== o.theme.indexOf("circle") ? "" : "#{{id}} .layui-this{background-color:{{theme}} !important;}", "#{{id}} .laydate-day-now{color:{{theme}} !important;}", "#{{id}} .laydate-day-now:after{border-color:{{theme}} !important;}"].join("").replace(/{{id}}/g, r.elemID).replace(/{{theme}}/g, t))) : !g && /^#/.test(t) && f.push(["#{{id}} .laydate-selected>div{background-color:{{theme}} !important;}", "#{{id}} .laydate-selected:hover>div{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g, r.elemID).replace(/{{theme}}/g, t)) + }), + o.shortcuts && o.range && f.push("#{{id}}.layui-laydate-range{width: 628px;}".replace(/{{id}}/g, r.elemID)), + f.length && (f = f.join(""), + "styleSheet"in p ? (p.setAttribute("type", "text/css"), + p.styleSheet.cssText = f) : p.innerHTML = f, + l && lay(y).addClass("laydate-theme-molv"), + y.appendChild(p)), + r.remove(k.thisElemDate), + T.thisId = o.id, + s ? o.elem.append(y) : (D.body.appendChild(y), + r.position()), + o.shade ? '
            ' : ""); + y.insertAdjacentHTML("beforebegin", t), + r.checkDate().calendar(null, 0, "init"), + r.changeEvent(), + k.thisElemDate = r.elemID, + r.renderAdditional(), + "function" == typeof o.ready && o.ready(lay.extend({}, o.dateTime, { + month: o.dateTime.month + 1 + })), + r.preview() + } + , + k.prototype.remove = function(e) { + var t = this + , a = t.config + , n = lay("#" + (e || t.elemID)); + return n[0] && (n.hasClass(v) || t.checkDate(function() { + n.remove(), + delete t.startDate, + delete t.endDate, + delete t.endState, + delete t.startTime, + delete t.endTime, + delete T.thisId, + "function" == typeof a.close && a.close(t) + }), + lay("." + w).remove()), + t + } + , + k.prototype.position = function() { + var e = this.config; + return lay.position(e.elem[0], this.elem, { + position: e.position + }), + this + } + , + k.prototype.hint = function(e) { + var t = this + , a = (t.config, + lay.elem("div", { + "class": r + })); + t.elem && (a.innerHTML = (e = "object" == typeof e ? e || {} : { + content: e + }).content || "", + lay(t.elem).find("." + r).remove(), + t.elem.appendChild(a), + clearTimeout(t.hinTimer), + t.hinTimer = setTimeout(function() { + lay(t.elem).find("." + r).remove() + }, "ms"in e ? e.ms : 3e3)) + } + , + k.prototype.getAsYM = function(e, t, a) { + return a ? t-- : t++, + t < 0 && (t = 11, + e--), + 11 < t && (t = 0, + e++), + [e, t] + } + , + k.prototype.systemDate = function(e) { + var t = e || new Date; + return { + year: t.getFullYear(), + month: t.getMonth(), + date: t.getDate(), + hours: e ? e.getHours() : 0, + minutes: e ? e.getMinutes() : 0, + seconds: e ? e.getSeconds() : 0 + } + } + , + k.prototype.checkDate = function(e) { + var t, o, a, n, i, d = this, s = (new Date, + d.config), l = d.lang(), r = s.dateTime = s.dateTime || d.systemDate(), y = s.elem[0], m = (d.isInput(y), + function() { + if (d.rangeElem) { + var e = [d.rangeElem[0].val(), d.rangeElem[1].val()]; + if (e[0] && e[1]) + return e.join(" " + d.rangeStr + " ") + } + return d.isInput(y) ? y.value : "static" === s.position ? "" : lay(y).attr("lay-date") + }()), u = function(e) { + e && (e.year > h[1] && (e.year = h[1], + o = !0), + 11 < e.month && (e.month = 11, + o = !0), + 59 < e.seconds && (e.seconds = 0, + e.minutes++, + o = !0), + 59 < e.minutes && (e.minutes = 0, + e.hours++, + o = !0), + 23 < e.hours && (e.hours = 0, + o = !0), + t = T.getEndDate(e.month + 1, e.year), + e.date > t) && (e.date = t, + o = !0) + }, c = function(n, i, l) { + var r = ["startTime", "endTime"]; + i = (i.match(d.EXP_SPLIT) || []).slice(1), + l = l || 0, + s.range && (d[r[l]] = d[r[l]] || {}), + lay.each(d.format, function(e, t) { + var a = parseFloat(i[e]); + i[e].length < t.length && (o = !0), + /yyyy|y/.test(t) ? (a < h[0] && (a = h[0], + o = !0), + n.year = a) : /MM|M/.test(t) ? (a < 1 && (a = 1, + o = !0), + n.month = a - 1) : /dd|d/.test(t) ? (a < 1 && (a = 1, + o = !0), + n.date = a) : /HH|H/.test(t) ? (a < 0 && (o = !(a = 0)), + 23 < a && (a = 23, + o = !0), + n.hours = a, + s.range && (d[r[l]].hours = a)) : /mm|m/.test(t) ? (a < 0 && (o = !(a = 0)), + 59 < a && (a = 59, + o = !0), + n.minutes = a, + s.range && (d[r[l]].minutes = a)) : /ss|s/.test(t) && (a < 0 && (o = !(a = 0)), + 59 < a && (a = 59, + o = !0), + n.seconds = a, + s.range) && (d[r[l]].seconds = a) + }), + u(n) + }; + return "limit" === e ? s.range ? (u(d.rangeLinked ? d.startDate : r), + d.endDate && u(d.endDate)) : u(r) : ("string" == typeof (m = m || s.value) && (m = m.replace(/\s+/g, " ").replace(/^\s|\s$/g, "")), + (a = function() { + var e, t, a; + s.range && (d.endDate = d.endDate || lay.extend({}, s.dateTime, (e = {}, + t = s.dateTime, + a = d.getAsYM(t.year, t.month), + "year" === s.type ? e.year = t.year + 1 : "time" !== s.type && (e.year = a[0], + e.month = a[1]), + "datetime" !== s.type && "time" !== s.type || (e.hours = 23, + e.minutes = e.seconds = 59), + e))) + } + )(), + "string" == typeof m && m ? d.EXP_IF.test(m) ? s.range ? (m = m.split(" " + d.rangeStr + " "), + lay.each([s.dateTime, d.endDate], function(e, t) { + c(t, m[e], e) + })) : c(r, m) : (d.hint(l.formatError[0] + (s.range ? s.format + " " + d.rangeStr + " " + s.format : s.format) + l.formatError[1]), + o = !0) : m && "date" === layui.type(m) ? s.dateTime = d.systemDate(m) : (s.dateTime = d.systemDate(), + delete d.startTime, + delete d.endDate, + a(), + delete d.endTime), + d.rangeElem && (a = [d.rangeElem[0].val(), d.rangeElem[1].val()], + n = [s.dateTime, d.endDate], + lay.each(a, function(e, t) { + d.EXP_IF_ONE.test(t) && c(n[e], t, e) + })), + u(r), + s.range && u(d.endDate), + o && m && d.setValue(!s.range || d.endDate ? d.parse() : ""), + d.getDateTime(r) > d.getDateTime(s.max) ? (r = s.dateTime = lay.extend({}, s.max), + i = !0) : d.getDateTime(r) < d.getDateTime(s.min) && (r = s.dateTime = lay.extend({}, s.min), + i = !0), + s.range && ((d.getDateTime(d.endDate) < d.getDateTime(s.min) || d.getDateTime(d.endDate) > d.getDateTime(s.max)) && (d.endDate = lay.extend({}, s.max), + i = !0), + d.startTime = { + hours: s.dateTime.hours, + minutes: s.dateTime.minutes, + seconds: s.dateTime.seconds + }, + d.endTime = { + hours: d.endDate.hours, + minutes: d.endDate.minutes, + seconds: d.endDate.seconds + }, + "month" === s.type) && (s.dateTime.date = 1, + d.endDate.date = 1), + i && m && (d.setValue(d.parse()), + d.hint("value " + l.invalidDate + l.formatError[1])), + d.startDate = d.startDate || m && lay.extend({}, s.dateTime), + d.autoCalendarModel.auto && d.autoCalendarModel(), + d.endState = !s.range || !d.rangeLinked || !(!d.startDate || !d.endDate), + e && e()), + d + } + , + k.prototype.markRender = function(e, a, t) { + var n; + "object" == typeof t ? lay.each(t || {}, function(e, t) { + e = e.split("-"); + e[0] != a[0] && 0 != e[0] || e[1] != a[1] && 0 != e[1] || e[2] != a[2] || (n = t || a[2]) + }) : "string" == typeof t && (n = t || a[2]), + n && e.find("div").html('' + n + "") + } + , + k.prototype.mark = function(t, a) { + var n = this + , e = n.config + , i = function(e) { + n.markRender(t, a, e) + }; + return e.calendar && "cn" === e.lang && i(n.markerOfChineseFestivals), + "function" == typeof e.mark ? e.mark({ + year: a[0], + month: a[1], + date: a[2] + }, i) : "object" == typeof e.mark && i(e.mark), + n + } + , + k.prototype.holidaysRender = function(r, o, e) { + var d = ["holidays", "workdays"] + , s = function(e, t, a) { + e.find("div").html(["", a, ""].join("")) + }; + "array" === layui.type(e) ? lay.each(e, function(l, e) { + lay.each(e, function(e, t) { + var a, n, i; + t = t, + a = r.attr("lay-ymd"), + n = t.split("-"), + i = a.split("-"), + lay.each(n, function(e, t) { + n[e] = parseInt(t, 10) + }), + lay.each(i, function(e, t) { + i[e] = parseInt(t, 10) + }), + n.join("-") === i.join("-") && s(r, d[l], o[2]) + }) + }) : "string" == typeof e && -1 !== d.indexOf(e) && s(r, e, o[2]) + } + , + k.prototype.holidays = function(t, a) { + var n = this + , e = n.config + , i = function(e) { + n.holidaysRender(t, a, e) + }; + return "function" == typeof e.holidays ? e.holidays({ + year: a[0], + month: a[1], + date: a[2] + }, i) : "array" === layui.type(e.holidays) && i(e.holidays), + n + } + , + k.prototype.cellRender = function(t, e, a) { + var n = this.config; + return "function" == typeof n.cellRender && n.cellRender(e, function(e) { + "string" == typeof e ? lay(t).html(e) : "object" == typeof e && lay(t).html("").append(lay(e)[0]) + }, { + originElem: t, + type: a + }), + this + } + , + k.prototype.startOfYear = function(e) { + e = new Date(e); + return e.setFullYear(e.getFullYear(), 0, 1), + e.setHours(0, 0, 0, 0), + e + } + , + k.prototype.endOfYear = function(e) { + var e = new Date(e) + , t = e.getFullYear(); + return e.setFullYear(t + 1, 0, 0), + e.setHours(23, 59, 59, 999), + e + } + , + k.prototype.startOfMonth = function(e) { + e = new Date(e); + return e.setDate(1), + e.setHours(0, 0, 0, 0), + e + } + , + k.prototype.endOfMonth = function(e) { + var e = new Date(e) + , t = e.getMonth(); + return e.setFullYear(e.getFullYear(), t + 1, 0), + e.setHours(23, 59, 59, 999), + e + } + , + k.prototype.addDays = function(e, t) { + e = new Date(e); + return t && e.setDate(e.getDate() + t), + e + } + , + k.prototype.isDisabledYearOrMonth = function(e, t, a) { + for (var n = this, i = n.config, l = "year" === t ? n.startOfYear(e) : n.startOfMonth(e), t = "year" === t ? n.endOfYear(e) : n.endOfMonth(e), r = Math.floor((t.getTime() - l.getTime()) / 864e5) + 1, o = 0, d = 0; d < r; d++) { + var s = n.addDays(l, d); + i.disabledDate.call(i, s, a) && o++ + } + return o === r + } + , + k.prototype.isDisabledDate = function(e, t) { + t = t || {}; + var a = this.config + , n = !a.range || 0 === t.rangeType ? "start" : "end"; + return !!a.disabledDate && "time" !== a.type && ("date" === t.disabledType || "datetime" === t.disabledType) && ((e = new Date(e)).setHours(0, 0, 0, 0), + "year" === t.type || "month" === t.type ? this.isDisabledYearOrMonth(e, t.type, n) : a.disabledDate.call(a, e, n)) + } + , + k.prototype.isDisabledTime = function(e, t) { + t = t || {}; + var a, n = this.config, i = !n.range || 0 === t.rangeType ? "start" : "end"; + return !!n.disabledTime && !("time" !== n.type && "datetime" !== n.type || "time" !== t.disabledType && "datetime" !== t.disabledType) && (a = function(e, t, a) { + return function() { + return -1 !== ("function" == typeof t && t.apply(n, a) || []).indexOf(e) + } + } + , + e = this.systemDate(new Date(e)), + i = n.disabledTime.call(n, this.newDate(e), i) || {}, + "datetime" === t.disabledType ? a(e.hours, i.hours)() || a(e.minutes, i.minutes, [e.hours])() || a(e.seconds, i.seconds, [e.hours, e.minutes])() : [a(e.hours, i.hours), a(e.minutes, i.minutes, [e.hours]), a(e.seconds, i.seconds, [e.hours, e.minutes])][t.time.length - 1]()) + } + , + k.prototype.isDisabledDateTime = function(e, t) { + this.config; + return this.isDisabledDate(e, t = t || {}) || this.isDisabledTime(e, t) + } + , + k.prototype.limit = function(t) { + t = t || {}; + var i = this + , e = i.config + , l = {} + , a = t.index > (t.time ? 0 : 41) ? i.endDate : e.dateTime; + return lay.each({ + now: lay.extend({}, a, t.date || {}), + min: e.min, + max: e.max + }, function(e, a) { + var n; + l[e] = i.newDate(lay.extend({ + year: a.year, + month: "year" === t.type ? 0 : a.month, + date: "year" === t.type || "month" === t.type ? 1 : a.date + }, (n = {}, + lay.each(t.time, function(e, t) { + n[t] = a[t] + }), + n))).getTime() + }), + a = l.now < l.min || l.max < l.now || i.isDisabledDateTime(l.now, t), + t.elem && t.elem[a ? "addClass" : "removeClass"](C), + a + } + , + k.prototype.thisDateTime = function(e) { + var t = this.config; + return e ? this.endDate : t.dateTime + } + , + k.prototype.calendar = function(e, i, t) { + i = i ? 1 : 0; + var l, r, o, d = this, a = d.config, s = e || d.thisDateTime(i), n = new Date, y = d.lang(), m = "date" !== a.type && "datetime" !== a.type, u = lay(d.table[i]).find("td"), c = lay(d.elemHeader[i][2]).find("span"); + return s.year < h[0] && (s.year = h[0], + d.hint(y.invalidDate)), + s.year > h[1] && (s.year = h[1], + d.hint(y.invalidDate)), + d.firstDate || (d.firstDate = lay.extend({}, s)), + n.setFullYear(s.year, s.month, 1), + l = (n.getDay() + (7 - a.weekStart)) % 7, + r = T.getEndDate(s.month || 12, s.year), + o = T.getEndDate(s.month + 1, s.year), + lay.each(u, function(e, t) { + var a, n = [s.year, s.month]; + (t = lay(t)).removeAttr("class"), + e < l ? (a = r - l + e, + t.addClass("laydate-day-prev"), + n = d.getAsYM(s.year, s.month, "sub")) : l <= e && e < o + l ? (a = e - l, + d.rangeLinked || a + 1 === s.date && t.addClass(M)) : (a = e - o - l, + t.addClass("laydate-day-next"), + n = d.getAsYM(s.year, s.month)), + n[1]++, + n[2] = a + 1, + t.attr("lay-ymd", n.join("-")).html("
            " + n[2] + "
            "), + d.mark(t, n).holidays(t, n).limit({ + elem: t, + date: { + year: n[0], + month: n[1] - 1, + date: n[2] + }, + index: e, + rangeType: i, + disabledType: "date" + }), + d.cellRender(t, { + year: n[0], + month: n[1], + date: n[2] + }, "date") + }), + lay(c[0]).attr("lay-ym", s.year + "-" + (s.month + 1)), + lay(c[1]).attr("lay-ym", s.year + "-" + (s.month + 1)), + d.panelYM || (d.panelYM = {}), + d.panelYM[i] = { + year: s.year, + month: s.month + }, + "cn" === a.lang ? (lay(c[0]).attr("lay-type", "year").html(s.year + " \u5e74"), + lay(c[1]).attr("lay-type", "month").html(s.month + 1 + " \u6708")) : (lay(c[0]).attr("lay-type", "month").html(y.month[s.month]), + lay(c[1]).attr("lay-type", "year").html(s.year)), + m && (a.range ? !e && "init" === t || (d.listYM = [[(d.startDate || a.dateTime).year, (d.startDate || a.dateTime).month + 1], [d.endDate.year, d.endDate.month + 1]], + d.list(a.type, 0).list(a.type, 1), + "time" === a.type ? d.setBtnStatus("\u65f6\u95f4", lay.extend({}, d.systemDate(), d.startTime), lay.extend({}, d.systemDate(), d.endTime)) : d.setBtnStatus(!0)) : (d.listYM = [[s.year, s.month + 1]], + d.list(a.type, 0))), + a.range && "init" === t && (d.rangeLinked ? (n = d.getAsYM(s.year, s.month, i ? "sub" : null), + d.calendar(lay.extend({}, s, { + year: n[0], + month: n[1] + }), 1 - i)) : d.calendar(null, 1 - i)), + a.range || (u = ["hours", "minutes", "seconds"], + d.limit({ + elem: lay(d.footer).find(".laydate-btns-now"), + date: d.systemDate(/^(datetime|time)$/.test(a.type) ? new Date : null), + index: 0, + time: u, + disabledType: "datetime" + }), + d.limit({ + elem: lay(d.footer).find(E), + index: 0, + time: u, + disabledType: "datetime" + })), + d.setBtnStatus(), + lay(d.shortcut).find("li." + M).removeClass(M), + a.range && !m && "init" !== t && d.stampRange(), + d + } + , + k.prototype.list = function(n, i) { + var l, r, e, a, o, d, t, s = this, y = s.config, m = s.rangeLinked ? y.dateTime : [y.dateTime, s.endDate][i], u = s.lang(), c = y.range && "date" !== y.type && "datetime" !== y.type, h = lay.elem("ul", { + "class": b + " " + { + year: "laydate-year-list", + month: "laydate-month-list", + time: "laydate-time-list" + }[n] + }), p = s.elemHeader[i], f = lay(p[2]).find("span"), g = s.elemCont[i || 0], D = lay(g).find("." + b)[0], T = "cn" === y.lang, v = T ? "\u5e74" : "", x = s.listYM[i] || {}, w = ["hours", "minutes", "seconds"], k = ["startTime", "endTime"][i]; + return x[0] < 1 && (x[0] = 1), + "year" === n ? (e = l = x[0] - 7, + l < 1 && (e = l = 1), + lay.each(new Array(15), function(e) { + var t = lay.elem("li", { + "lay-ym": l + }) + , a = { + year: l, + month: 0, + date: 1 + }; + l == x[0] && lay(t).addClass(M), + t.innerHTML = l + v, + h.appendChild(t), + s.limit({ + elem: lay(t), + date: a, + index: i, + type: n, + rangeType: i, + disabledType: "date" + }), + s.cellRender(t, { + year: l, + month: 1, + date: 1 + }, "year"), + l++ + }), + lay(f[T ? 0 : 1]).attr("lay-ym", l - 8 + "-" + x[1]).html(e + v + " - " + (l - 1) + v)) : "month" === n ? (lay.each(new Array(12), function(e) { + var t = lay.elem("li", { + "lay-ym": e + }) + , a = { + year: x[0], + month: e, + date: 1 + }; + e + 1 == x[1] && lay(t).addClass(M), + t.innerHTML = u.month[e] + (T ? "\u6708" : ""), + h.appendChild(t), + s.limit({ + elem: lay(t), + date: a, + index: i, + type: n, + rangeType: i, + disabledType: "date" + }), + s.cellRender(t, { + year: x[0], + month: e + 1, + date: 1 + }, "month") + }), + lay(f[T ? 0 : 1]).attr("lay-ym", x[0] + "-" + x[1]).html(x[0] + v)) : "time" === n && (r = function() { + lay(h).find("ol").each(function(a, e) { + lay(e).find("li").each(function(e, t) { + s.limit({ + elem: lay(t), + date: [{ + hours: e + }, { + hours: s[k].hours, + minutes: e + }, { + hours: s[k].hours, + minutes: s[k].minutes, + seconds: e + }][a], + index: i, + rangeType: i, + disabledType: "time", + time: [["hours"], ["hours", "minutes"], ["hours", "minutes", "seconds"]][a] + }) + }) + }), + y.range || s.limit({ + elem: lay(s.footer).find(E), + date: s[k], + index: 0, + time: ["hours", "minutes", "seconds"], + disabledType: "datetime" + }) + } + , + y.range ? s[k] || (s[k] = "startTime" === k ? m : s.endDate) : s[k] = m, + lay.each([24, 60, 60], function(t, e) { + var a = lay.elem("li") + , n = ["

            " + u.time[t] + "

              "]; + lay.each(new Array(e), function(e) { + n.push("" + lay.digit(e, 2) + "") + }), + a.innerHTML = n.join("") + "
            ", + h.appendChild(a) + }), + r(), + e = -1 !== y.format.indexOf("H"), + f = -1 !== y.format.indexOf("m"), + t = -1 !== y.format.indexOf("s"), + a = h.children, + o = 0, + lay.each([e, f, t], function(e, t) { + t || (a[e].className += " layui-hide", + o++) + }), + h.className += " laydate-time-list-hide-" + o), + D && g.removeChild(D), + g.appendChild(h), + "year" === n || "month" === n ? (lay(s.elemMain[i]).addClass("laydate-ym-show"), + lay(h).find("li").on("click", function() { + var e, t, a = 0 | lay(this).attr("lay-ym"); + lay(this).hasClass(C) || (s.rangeLinked ? lay.extend(m, { + year: "year" === n ? a : x[0], + month: "year" === n ? x[1] - 1 : a + }) : m[n] = a, + e = -1 !== ["year", "month"].indexOf(y.type), + t = "year" === n && -1 !== ["date", "datetime"].indexOf(y.type), + e || t ? (lay(h).find("." + M).removeClass(M), + lay(this).addClass(M), + ("month" === y.type && "year" === n || t) && (s.listYM[i][0] = a, + c && ((i ? s.endDate : m).year = a), + s.list("month", i))) : (s.checkDate("limit").calendar(m, i, "init"), + s.closeList()), + s.setBtnStatus(), + !y.range && y.autoConfirm && ("month" === y.type && "month" === n || "year" === y.type && "year" === n) && s.setValue(s.parse()).done().remove(), + s.autoCalendarModel.auto && !s.rangeLinked ? s.choose(lay(g).find("td.layui-this"), i) : s.endState && s.done(null, "change"), + lay(s.footer).find("." + I).removeClass(C)) + })) : (f = lay.elem("span", { + "class": L + }), + d = function() { + lay(h).find("ol").each(function(e) { + var a = this + , t = lay(a).find("li"); + a.scrollTop = 30 * (s[k][w[e]] - 2), + a.scrollTop <= 0 && t.each(function(e, t) { + if (!lay(this).hasClass(C)) + return a.scrollTop = 30 * (e - 2), + !0 + }) + }) + } + , + t = lay(p[2]).find("." + L), + d(), + f.innerHTML = y.range ? [u.startTime, u.endTime][i] : u.timeTips, + lay(s.elemMain[i]).addClass("laydate-time-show"), + t[0] && t.remove(), + p[2].appendChild(f), + (D = lay(h).find("ol")).each(function(t) { + var a = this; + lay(a).find("li").on("click", function() { + var e = 0 | this.innerHTML; + lay(this).hasClass(C) || (y.range ? s[k][w[t]] = e : m[w[t]] = e, + lay(a).find("." + M).removeClass(M), + lay(this).addClass(M), + r(), + d(), + !s.endDate && "time" !== y.type && "datetime" !== y.type || s.done(null, "change"), + s.setBtnStatus()) + }) + }), + layui.device().mobile && D.css({ + overflowY: "auto", + touchAction: "pan-y" + })), + s + } + , + k.prototype.listYM = [], + k.prototype.closeList = function() { + var a = this; + a.config; + lay.each(a.elemCont, function(e, t) { + lay(this).find("." + b).remove(), + lay(a.elemMain[e]).removeClass("laydate-ym-show laydate-time-show") + }), + lay(a.elem).find("." + L).remove() + } + , + k.prototype.setBtnStatus = function(e, t, a) { + var n = this + , i = n.config + , l = n.lang() + , r = lay(n.footer).find(E) + , o = "datetime" === i.type || "time" === i.type ? ["hours", "minutes", "seconds"] : undefined; + i.range && (t = t || (n.rangeLinked ? n.startDate : i.dateTime), + a = a || n.endDate, + i = !n.endState || n.newDate(t).getTime() > n.newDate(a).getTime(), + n.limit({ + date: t, + disabledType: "datetime", + time: o, + rangeType: 0 + }) || n.limit({ + date: a, + disabledType: "datetime", + time: o, + rangeType: 1 + }) ? r.addClass(C) : r[i ? "addClass" : "removeClass"](C), + e) && i && n.hint("string" == typeof e ? l.timeout.replace(/\u65e5\u671f/g, e) : l.timeout) + } + , + k.prototype.parse = function(e, t) { + var a = this + , n = a.config + , i = a.rangeLinked ? a.startDate : n.dateTime + , t = t || ("end" == e ? lay.extend({}, a.endDate, a.endTime) : n.range ? lay.extend({}, i || n.dateTime, a.startTime) : n.dateTime) + , i = T.parse(t, a.format, 1); + return n.range && e === undefined ? i + " " + a.rangeStr + " " + a.parse("end") : i + } + , + k.prototype.newDate = function(e) { + return e = e || {}, + new Date(e.year || 1,e.month || 0,e.date || 1,e.hours || 0,e.minutes || 0,e.seconds || 0) + } + , + k.prototype.getDateTime = function(e) { + return this.newDate(e).getTime() + } + , + k.prototype.formatToDisplay = function(e, t) { + var a = this + , n = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, "value"); + Object.defineProperty(e, "value", lay.extend({}, n, { + get: function() { + return this.getAttribute("lay-date") + }, + set: function(e) { + n.set.call(this, t.call(a, e)), + this.setAttribute("lay-date", e) + } + })) + } + , + k.prototype.setValue = function(e) { + var t, a = this, n = a.config, i = n.elem[0]; + return "static" !== n.position && (e = e || "", + a.isInput(i) ? lay(i).val(e) : (t = a.rangeElem) ? ("array" !== layui.type(e) && (e = e.split(" " + a.rangeStr + " ")), + t[0].val(e[0] || ""), + t[1].val(e[1] || "")) : (0 === lay(i).find("*").length && (t = "function" == typeof n.formatToDisplay ? n.formatToDisplay(e) : e, + lay(i).html(t)), + lay(i).attr("lay-date", e))), + a + } + , + k.prototype.preview = function() { + var e, t = this, a = t.config; + a.isPreview && (e = lay(t.elem).find("." + x), + a = !a.range || (t.rangeLinked ? t.endState : t.endDate) ? t.parse() : "", + e.html(a), + e.html()) && (e.css({ + color: "#16b777" + }), + setTimeout(function() { + e.css({ + color: "#777" + }) + }, 300)) + } + , + k.prototype.renderAdditional = function() { + this.config.fullPanel && this.list("time", 0) + } + , + k.prototype.stampRange = function() { + var n, i = this, l = i.config, r = i.rangeLinked ? i.startDate : l.dateTime, e = lay(i.elem).find("td"); + l.range && !i.endState && lay(i.footer).find(E).addClass(C), + r = r && i.newDate({ + year: r.year, + month: r.month, + date: r.date + }).getTime(), + n = i.endState && i.endDate && i.newDate({ + year: i.endDate.year, + month: i.endDate.month, + date: i.endDate.date + }).getTime(), + lay.each(e, function(e, t) { + var a = lay(t).attr("lay-ymd").split("-") + , a = i.newDate({ + year: a[0], + month: a[1] - 1, + date: a[2] + }).getTime(); + l.rangeLinked && !i.startDate && a === i.newDate(i.systemDate()).getTime() && lay(t).addClass(lay(t).hasClass(y) || lay(t).hasClass(m) ? "" : "laydate-day-now"), + lay(t).removeClass(o + " " + M), + a !== r && a !== n || (i.rangeLinked || !i.rangeLinked && (e < 42 ? a === r : a === n)) && lay(t).addClass(lay(t).hasClass(y) || lay(t).hasClass(m) ? o : M), + r < a && a < n && lay(t).addClass(o) + }) + } + , + k.prototype.done = function(e, t) { + var a = this + , n = a.config + , i = lay.extend({}, lay.extend(a.rangeLinked ? a.startDate : n.dateTime, a.startTime)) + , l = lay.extend({}, lay.extend(a.endDate, a.endTime)); + return lay.each([i, l], function(e, t) { + "month"in t && lay.extend(t, { + month: t.month + 1 + }) + }), + a.preview(), + e = e || [a.parse(), i, l], + "change" === t && a.renderAdditional(), + "function" == typeof n[t || "done"] && n[t || "done"].apply(n, e), + a + } + , + k.prototype.checkPanelDate = function(e, t) { + var a, n = this.config; + if ("date" === n.type || "datetime" === n.type) + return n = 0 === t, + e = e.month + 1, + a = this.panelYM[t].month + 1, + n = this.endState && (n && a < e || !n && e < a) ? 1 - t : t, + { + needFullRender: e !== a, + index: n + } + } + , + k.prototype.choose = function(e, a) { + var n, i, t, l, r, o, d; + e.hasClass(C) || (i = (n = this).config, + t = a, + n.rangeLinked && (n.endState || !n.startDate ? (a = 0, + n.endState = !1) : (a = 1, + n.endState = !0)), + l = n.thisDateTime(a), + lay(n.elem).find("td"), + e = { + year: 0 | (e = e.attr("lay-ymd").split("-"))[0], + month: (0 | e[1]) - 1, + date: 0 | e[2] + }, + lay.extend(l, e), + i.range ? (lay.each(["startTime", "endTime"], function(e, t) { + n[t] = n[t] || { + hours: e ? 23 : 0, + minutes: e ? 59 : 0, + seconds: e ? 59 : 0 + }, + a === e && (n.getDateTime(lay.extend({}, l, n[t])) < n.getDateTime(i.min) ? (n[t] = { + hours: i.min.hours, + minutes: i.min.minutes, + seconds: i.min.seconds + }, + lay.extend(l, n[t])) : n.getDateTime(lay.extend({}, l, n[t])) > n.getDateTime(i.max) && (n[t] = { + hours: i.max.hours, + minutes: i.max.minutes, + seconds: i.max.seconds + }, + lay.extend(l, n[t]))) + }), + a || (n.startDate = lay.extend({}, l)), + n.endState && !n.limit({ + date: n.rangeLinked ? n.startDate : n.thisDateTime(1 - a), + disabledType: "date" + }) && (((r = n.endState && n.autoCalendarModel.auto ? n.autoCalendarModel() : r) || n.rangeLinked && n.endState) && n.newDate(n.startDate) > n.newDate(n.endDate) && (n.startDate.year === n.endDate.year && n.startDate.month === n.endDate.month && n.startDate.date === n.endDate.date && (o = n.startTime, + n.startTime = n.endTime, + n.endTime = o), + o = n.startDate, + n.startDate = lay.extend({}, n.endDate, n.startTime), + i.dateTime = lay.extend({}, n.startDate), + n.endDate = lay.extend({}, o, n.endTime)), + r) && (i.dateTime = lay.extend({}, n.startDate)), + n.rangeLinked ? (e = n.checkPanelDate(l, t), + o = lay.extend({}, l), + d = r || e && e.needFullRender ? "init" : null, + e = e ? e.index : t, + n.calendar(o, e, d)) : n.calendar(null, a, r ? "init" : null), + n.endState && n.done(null, "change")) : "static" === i.position ? n.calendar().done().done(null, "change") : "date" === i.type ? i.autoConfirm ? n.setValue(n.parse()).done().remove() : n.calendar().done(null, "change") : "datetime" === i.type && n.calendar().done(null, "change")) + } + , + k.prototype.tool = function(t, e) { + var a = this + , n = a.config + , i = a.lang() + , l = n.dateTime + , r = "static" === n.position + , o = { + datetime: function() { + lay(t).hasClass(C) || (a.list("time", 0), + n.range && a.list("time", 1), + lay(t).attr("lay-type", "date").html(a.lang().dateTips)) + }, + date: function() { + a.closeList(), + lay(t).attr("lay-type", "datetime").html(a.lang().timeTips) + }, + clear: function() { + r && (lay.extend(l, a.firstDate), + a.calendar()), + n.range && (delete n.dateTime, + delete a.endDate, + delete a.startTime, + delete a.endTime), + a.setValue(""), + a.done(null, "onClear").done(["", {}, {}]).remove() + }, + now: function() { + var e = new Date; + if (lay(t).hasClass(C)) + return a.hint(i.tools.now + ", " + i.invalidDate); + lay.extend(l, a.systemDate(), { + hours: e.getHours(), + minutes: e.getMinutes(), + seconds: e.getSeconds() + }), + a.setValue(a.parse()), + r && a.calendar(), + a.done(null, "onNow").done().remove() + }, + confirm: function() { + if (n.range) { + if (lay(t).hasClass(C)) + return ("time" === n.type ? a.startTime && a.endTime && a.newDate(a.startTime) > a.newDate(a.endTime) : a.startDate && a.endDate && a.newDate(lay.extend({}, a.startDate, a.startTime || {})) > a.newDate(lay.extend({}, a.endDate, a.endTime || {}))) ? a.hint("time" === n.type ? i.timeout.replace(/\u65e5\u671f/g, "\u65f6\u95f4") : i.timeout) : a.hint(i.invalidDate) + } else if (lay(t).hasClass(C)) + return a.hint(i.invalidDate); + a.setValue(a.parse()), + a.done(null, "onConfirm").done().remove() + } + }; + o[e] && o[e]() + } + , + k.prototype.change = function(n) { + var i = this + , l = i.config + , r = i.thisDateTime(n) + , o = l.range && ("year" === l.type || "month" === l.type) + , d = i.elemCont[n || 0] + , s = i.listYM[n] + , e = function(e) { + var t = lay(d).find(".laydate-year-list")[0] + , a = lay(d).find(".laydate-month-list")[0]; + return t && (s[0] = e ? s[0] - 15 : s[0] + 15, + i.list("year", n)), + a && (e ? s[0]-- : s[0]++, + i.list("month", n)), + (t || a) && (lay.extend(r, { + year: s[0] + }), + o && (r.year = s[0]), + l.range || i.done(null, "change"), + l.range || i.limit({ + elem: lay(i.footer).find(E), + date: { + year: s[0] + }, + disabledType: "datetime" + })), + i.setBtnStatus(), + t || a + }; + return { + prevYear: function() { + e("sub") || (i.rangeLinked ? (l.dateTime.year--, + i.checkDate("limit").calendar(null, null, "init")) : (r.year--, + i.checkDate("limit").calendar(null, n), + i.autoCalendarModel.auto ? i.choose(lay(d).find("td.layui-this"), n) : i.done(null, "change"))) + }, + prevMonth: function() { + var e, t; + i.rangeLinked ? (t = i.panelYM[0], + t = i.getAsYM(t.year, t.month, "sub"), + e = lay.extend({}, l.dateTime, i.panelYM[0], { + year: t[0], + month: t[1] + }), + i.checkDate("limit").calendar(e, null, "init")) : (t = i.getAsYM(r.year, r.month, "sub"), + lay.extend(r, { + year: t[0], + month: t[1] + }), + i.checkDate("limit").calendar(null, null, "init"), + i.autoCalendarModel.auto ? i.choose(lay(d).find("td.layui-this"), n) : i.done(null, "change")) + }, + nextMonth: function() { + var e, t; + i.rangeLinked ? (t = i.panelYM[0], + t = i.getAsYM(t.year, t.month), + e = lay.extend({}, l.dateTime, i.panelYM[0], { + year: t[0], + month: t[1] + }), + i.checkDate("limit").calendar(e, null, "init")) : (t = i.getAsYM(r.year, r.month), + lay.extend(r, { + year: t[0], + month: t[1] + }), + i.checkDate("limit").calendar(null, null, "init"), + i.autoCalendarModel.auto ? i.choose(lay(d).find("td.layui-this"), n) : i.done(null, "change")) + }, + nextYear: function() { + e() || (i.rangeLinked ? (l.dateTime.year++, + i.checkDate("limit").calendar(null, 0, "init")) : (r.year++, + i.checkDate("limit").calendar(null, n), + i.autoCalendarModel.auto ? i.choose(lay(d).find("td.layui-this"), n) : i.done(null, "change"))) + } + } + } + , + k.prototype.changeEvent = function() { + var i = this; + i.config; + lay(i.elem).on("click", function(e) { + lay.stope(e) + }).on("mousedown", function(e) { + lay.stope(e) + }), + lay.each(i.elemHeader, function(n, e) { + lay(e[0]).on("click", function(e) { + i.change(n).prevYear() + }), + lay(e[1]).on("click", function(e) { + i.change(n).prevMonth() + }), + lay(e[2]).find("span").on("click", function(e) { + var t = lay(this) + , a = t.attr("lay-ym") + , t = t.attr("lay-type"); + a && (a = a.split("-"), + i.listYM[n] = [0 | a[0], 0 | a[1]], + i.list(t, n), + lay(i.footer).find("." + I).addClass(C)) + }), + lay(e[3]).on("click", function(e) { + i.change(n).nextMonth() + }), + lay(e[4]).on("click", function(e) { + i.change(n).nextYear() + }) + }), + lay.each(i.table, function(e, t) { + lay(t).find("td").on("click", function() { + i.choose(lay(this), e) + }) + }), + lay(i.footer).find("span").on("click", function() { + var e = lay(this).attr("lay-type"); + i.tool(this, e) + }) + } + , + k.prototype.isInput = function(e) { + return /input|textarea/.test(e.tagName.toLocaleLowerCase()) || /INPUT|TEXTAREA/.test(e.tagName) + } + , + k.prototype.events = function() { + var e, t = this, a = t.config; + a.elem[0] && !a.elem[0].eventHandler && (a.elem.on(a.trigger, e = function() { + T.thisId !== a.id && t.render() + } + ), + a.elem[0].eventHandler = !0, + a.eventElem.on(a.trigger, e), + t.unbind = function() { + t.remove(), + a.elem.off(a.trigger, e), + a.elem.removeAttr("lay-key"), + a.elem.removeAttr(d), + a.elem[0].eventHandler = !1, + a.eventElem.off(a.trigger, e), + a.eventElem.removeAttr("lay-key"), + delete s.that[a.id] + } + ) + } + , + s.that = {}, + s.getThis = function(e) { + var t = s.that[e]; + return !t && n && layui.hint().error(e ? a + " instance with ID '" + e + "' not found" : "ID argument required"), + t + } + , + l.run = function(n) { + n(D).on("mousedown", function(e) { + var t, a; + T.thisId && (t = s.getThis(T.thisId)) && (a = t.config, + e.target === a.elem[0] || e.target === a.eventElem[0] || e.target === n(a.closeStop)[0] || a.elem[0] && a.elem[0].contains(e.target) || t.remove()) + }).on("keydown", function(e) { + var t; + T.thisId && (t = s.getThis(T.thisId)) && "static" !== t.config.position && 13 === e.keyCode && n("#" + t.elemID)[0] && t.elemID === k.thisElemDate && (e.preventDefault(), + n(t.footer).find(E)[0].click()) + }), + n(i).on("resize", function() { + if (T.thisId) { + var e = s.getThis(T.thisId); + if (e) + return !(!e.elem || !n(".layui-laydate")[0]) && void e.position() + } + }) + } + , + T.render = function(e) { + e = new k(e); + return s.call(e) + } + , + T.reload = function(e, t) { + e = s.getThis(e); + if (e) + return e.reload(t) + } + , + T.getInst = function(e) { + e = s.getThis(e); + if (e) + return e.inst + } + , + T.hint = function(e, t) { + e = s.getThis(e); + if (e) + return e.hint(t) + } + , + T.unbind = function(e) { + e = s.getThis(e); + if (e) + return e.unbind() + } + , + T.close = function(e) { + e = s.getThis(e || T.thisId); + if (e) + return e.remove() + } + , + T.parse = function(a, n, i) { + return a = a || {}, + n = ((n = "string" == typeof n ? s.formatArr(n) : n) || []).concat(), + lay.each(n, function(e, t) { + /yyyy|y/.test(t) ? n[e] = lay.digit(a.year, t.length) : /MM|M/.test(t) ? n[e] = lay.digit(a.month + (i || 0), t.length) : /dd|d/.test(t) ? n[e] = lay.digit(a.date, t.length) : /HH|H/.test(t) ? n[e] = lay.digit(a.hours, t.length) : /mm|m/.test(t) ? n[e] = lay.digit(a.minutes, t.length) : /ss|s/.test(t) && (n[e] = lay.digit(a.seconds, t.length)) + }), + n.join("") + } + , + T.getEndDate = function(e, t) { + var a = new Date; + return a.setFullYear(t || a.getFullYear(), e || a.getMonth() + 1, 1), + new Date(a.getTime() - 864e5).getDate() + } + , + n ? (T.ready(), + layui.define("lay", function(e) { + T.path = layui.cache.dir, + l.run(lay), + e(a, T) + })) : "function" == typeof define && define.amd ? define(function() { + return l.run(lay), + T + }) : (T.ready(), + l.run(i.lay), + i.laydate = T) +}(window, window.document); +!function(e, t) { + "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e) : function(e) { + if (e.document) + return t(e); + throw new Error("jQuery requires a window with a document") + } + : t(e) +}("undefined" != typeof window ? window : this, function(T, M) { + var f = [] + , g = T.document + , c = f.slice + , O = f.concat + , R = f.push + , P = f.indexOf + , B = {} + , W = B.toString + , m = B.hasOwnProperty + , y = {} + , e = "1.12.4" + , C = function(e, t) { + return new C.fn.init(e,t) + } + , I = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g + , $ = /^-ms-/ + , z = /-([\da-z])/gi + , X = function(e, t) { + return t.toUpperCase() + }; + function U(e) { + var t = !!e && "length"in e && e.length + , n = C.type(e); + return "function" !== n && !C.isWindow(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e) + } + C.fn = C.prototype = { + jquery: e, + constructor: C, + selector: "", + length: 0, + toArray: function() { + return c.call(this) + }, + get: function(e) { + return null != e ? e < 0 ? this[e + this.length] : this[e] : c.call(this) + }, + pushStack: function(e) { + e = C.merge(this.constructor(), e); + return e.prevObject = this, + e.context = this.context, + e + }, + each: function(e) { + return C.each(this, e) + }, + map: function(n) { + return this.pushStack(C.map(this, function(e, t) { + return n.call(e, t, e) + })) + }, + slice: function() { + return this.pushStack(c.apply(this, arguments)) + }, + first: function() { + return this.eq(0) + }, + last: function() { + return this.eq(-1) + }, + eq: function(e) { + var t = this.length + , e = +e + (e < 0 ? t : 0); + return this.pushStack(0 <= e && e < t ? [this[e]] : []) + }, + end: function() { + return this.prevObject || this.constructor() + }, + push: R, + sort: f.sort, + splice: f.splice + }, + C.extend = C.fn.extend = function() { + var e, t, n, r, i, o = arguments[0] || {}, a = 1, s = arguments.length, u = !1; + for ("boolean" == typeof o && (u = o, + o = arguments[a] || {}, + a++), + "object" == typeof o || C.isFunction(o) || (o = {}), + a === s && (o = this, + a--); a < s; a++) + if (null != (r = arguments[a])) + for (n in r) + i = o[n], + o !== (t = r[n]) && (u && t && (C.isPlainObject(t) || (e = C.isArray(t))) ? (i = e ? (e = !1, + i && C.isArray(i) ? i : []) : i && C.isPlainObject(i) ? i : {}, + o[n] = C.extend(u, i, t)) : t !== undefined && (o[n] = t)); + return o + } + , + C.extend({ + expando: "jQuery" + (e + Math.random()).replace(/\D/g, ""), + isReady: !0, + error: function(e) { + throw new Error(e) + }, + noop: function() {}, + isFunction: function(e) { + return "function" === C.type(e) + }, + isArray: Array.isArray || function(e) { + return "array" === C.type(e) + } + , + isWindow: function(e) { + return null != e && e == e.window + }, + isNumeric: function(e) { + var t = e && e.toString(); + return !C.isArray(e) && 0 <= t - parseFloat(t) + 1 + }, + isEmptyObject: function(e) { + for (var t in e) + return !1; + return !0 + }, + isPlainObject: function(e) { + if (!e || "object" !== C.type(e) || e.nodeType || C.isWindow(e)) + return !1; + try { + if (e.constructor && !m.call(e, "constructor") && !m.call(e.constructor.prototype, "isPrototypeOf")) + return !1 + } catch (n) { + return !1 + } + if (!y.ownFirst) + for (var t in e) + return m.call(e, t); + for (t in e) + ; + return t === undefined || m.call(e, t) + }, + type: function(e) { + return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? B[W.call(e)] || "object" : typeof e + }, + globalEval: function(e) { + e && C.trim(e) && (T.execScript || function(e) { + T.eval.call(T, e) + } + )(e) + }, + camelCase: function(e) { + return e.replace($, "ms-").replace(z, X) + }, + nodeName: function(e, t) { + return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() + }, + each: function(e, t) { + var n, r = 0; + if (U(e)) + for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++) + ; + else + for (r in e) + if (!1 === t.call(e[r], r, e[r])) + break; + return e + }, + trim: function(e) { + return null == e ? "" : (e + "").replace(I, "") + }, + makeArray: function(e, t) { + t = t || []; + return null != e && (U(Object(e)) ? C.merge(t, "string" == typeof e ? [e] : e) : R.call(t, e)), + t + }, + inArray: function(e, t, n) { + var r; + if (t) { + if (P) + return P.call(t, e, n); + for (r = t.length, + n = n ? n < 0 ? Math.max(0, r + n) : n : 0; n < r; n++) + if (n in t && t[n] === e) + return n + } + return -1 + }, + merge: function(e, t) { + for (var n = +t.length, r = 0, i = e.length; r < n; ) + e[i++] = t[r++]; + if (n != n) + for (; t[r] !== undefined; ) + e[i++] = t[r++]; + return e.length = i, + e + }, + grep: function(e, t, n) { + for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) + !t(e[i], i) != a && r.push(e[i]); + return r + }, + map: function(e, t, n) { + var r, i, o = 0, a = []; + if (U(e)) + for (r = e.length; o < r; o++) + null != (i = t(e[o], o, n)) && a.push(i); + else + for (o in e) + null != (i = t(e[o], o, n)) && a.push(i); + return O.apply([], a) + }, + guid: 1, + proxy: function(e, t) { + var n, r; + return "string" == typeof t && (r = e[t], + t = e, + e = r), + C.isFunction(e) ? (n = c.call(arguments, 2), + (r = function() { + return e.apply(t || this, n.concat(c.call(arguments))) + } + ).guid = e.guid = e.guid || C.guid++, + r) : undefined + }, + now: function() { + return +new Date + }, + support: y + }), + "function" == typeof Symbol && (C.fn[Symbol.iterator] = f[Symbol.iterator]), + C.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) { + B["[object " + t + "]"] = t.toLowerCase() + }); + var e = function(M) { + var e, g, b, o, O, w, R, P, T, u, l, C, E, t, N, m, r, i, y, k = "sizzle" + +new Date, v = M.document, S = 0, B = 0, W = le(), I = le(), A = le(), $ = function(e, t) { + return e === t && (l = !0), + 0 + }, z = {}.hasOwnProperty, n = [], X = n.pop, U = n.push, D = n.push, V = n.slice, j = function(e, t) { + for (var n = 0, r = e.length; n < r; n++) + if (e[n] === t) + return n; + return -1 + }, Y = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", a = "[\\x20\\t\\r\\n\\f]", s = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", J = "\\[" + a + "*(" + s + ")(?:" + a + "*([*^$|!~]?=)" + a + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + s + "))|)" + a + "*\\]", G = ":(" + s + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + J + ")*)|.*)\\)|)", K = new RegExp(a + "+","g"), L = new RegExp("^" + a + "+|((?:^|[^\\\\])(?:\\\\.)*)" + a + "+$","g"), Q = new RegExp("^" + a + "*," + a + "*"), Z = new RegExp("^" + a + "*([>+~]|" + a + ")" + a + "*"), ee = new RegExp("=" + a + "*([^\\]'\"]*?)" + a + "*\\]","g"), te = new RegExp(G), ne = new RegExp("^" + s + "$"), f = { + ID: new RegExp("^#(" + s + ")"), + CLASS: new RegExp("^\\.(" + s + ")"), + TAG: new RegExp("^(" + s + "|[*])"), + ATTR: new RegExp("^" + J), + PSEUDO: new RegExp("^" + G), + CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + a + "*(even|odd|(([+-]|)(\\d*)n|)" + a + "*(?:([+-]|)" + a + "*(\\d+)|))" + a + "*\\)|)","i"), + bool: new RegExp("^(?:" + Y + ")$","i"), + needsContext: new RegExp("^" + a + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + a + "*((?:-\\d)?\\d*)" + a + "*\\)|)(?=[^-]|$)","i") + }, re = /^(?:input|select|textarea|button)$/i, ie = /^h\d$/i, c = /^[^{]+\{\s*\[native \w/, oe = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, ae = /[+~]/, se = /'|\\/g, d = new RegExp("\\\\([\\da-f]{1,6}" + a + "?|(" + a + ")|.)","ig"), p = function(e, t, n) { + var r = "0x" + t - 65536; + return r != r || n ? t : r < 0 ? String.fromCharCode(65536 + r) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320) + }, ue = function() { + C() + }; + try { + D.apply(n = V.call(v.childNodes), v.childNodes), + n[v.childNodes.length].nodeType + } catch (F) { + D = { + apply: n.length ? function(e, t) { + U.apply(e, V.call(t)) + } + : function(e, t) { + for (var n = e.length, r = 0; e[n++] = t[r++]; ) + ; + e.length = n - 1 + } + } + } + function H(e, t, n, r) { + var i, o, a, s, u, l, c, f, d = t && t.ownerDocument, p = t ? t.nodeType : 9; + if (n = n || [], + "string" != typeof e || !e || 1 !== p && 9 !== p && 11 !== p) + return n; + if (!r && ((t ? t.ownerDocument || t : v) !== E && C(t), + t = t || E, + N)) { + if (11 !== p && (l = oe.exec(e))) + if (i = l[1]) { + if (9 === p) { + if (!(a = t.getElementById(i))) + return n; + if (a.id === i) + return n.push(a), + n + } else if (d && (a = d.getElementById(i)) && y(t, a) && a.id === i) + return n.push(a), + n + } else { + if (l[2]) + return D.apply(n, t.getElementsByTagName(e)), + n; + if ((i = l[3]) && g.getElementsByClassName && t.getElementsByClassName) + return D.apply(n, t.getElementsByClassName(i)), + n + } + if (g.qsa && !A[e + " "] && (!m || !m.test(e))) { + if (1 !== p) + d = t, + f = e; + else if ("object" !== t.nodeName.toLowerCase()) { + for ((s = t.getAttribute("id")) ? s = s.replace(se, "\\$&") : t.setAttribute("id", s = k), + o = (c = w(e)).length, + u = ne.test(s) ? "#" + s : "[id='" + s + "']"; o--; ) + c[o] = u + " " + _(c[o]); + f = c.join(","), + d = ae.test(e) && de(t.parentNode) || t + } + if (f) + try { + return D.apply(n, d.querySelectorAll(f)), + n + } catch (h) {} finally { + s === k && t.removeAttribute("id") + } + } + } + return P(e.replace(L, "$1"), t, n, r) + } + function le() { + var n = []; + function r(e, t) { + return n.push(e + " ") > b.cacheLength && delete r[n.shift()], + r[e + " "] = t + } + return r + } + function q(e) { + return e[k] = !0, + e + } + function h(e) { + var t = E.createElement("div"); + try { + return !!e(t) + } catch (F) { + return !1 + } finally { + t.parentNode && t.parentNode.removeChild(t) + } + } + function ce(e, t) { + for (var n = e.split("|"), r = n.length; r--; ) + b.attrHandle[n[r]] = t + } + function fe(e, t) { + var n = t && e + , r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || 1 << 31) - (~e.sourceIndex || 1 << 31); + if (r) + return r; + if (n) + for (; n = n.nextSibling; ) + if (n === t) + return -1; + return e ? 1 : -1 + } + function x(a) { + return q(function(o) { + return o = +o, + q(function(e, t) { + for (var n, r = a([], e.length, o), i = r.length; i--; ) + e[n = r[i]] && (e[n] = !(t[n] = e[n])) + }) + }) + } + function de(e) { + return e && "undefined" != typeof e.getElementsByTagName && e + } + for (e in g = H.support = {}, + O = H.isXML = function(e) { + e = e && (e.ownerDocument || e).documentElement; + return !!e && "HTML" !== e.nodeName + } + , + C = H.setDocument = function(e) { + var e = e ? e.ownerDocument || e : v; + return e !== E && 9 === e.nodeType && e.documentElement && (t = (E = e).documentElement, + N = !O(E), + (e = E.defaultView) && e.top !== e && (e.addEventListener ? e.addEventListener("unload", ue, !1) : e.attachEvent && e.attachEvent("onunload", ue)), + g.attributes = h(function(e) { + return e.className = "i", + !e.getAttribute("className") + }), + g.getElementsByTagName = h(function(e) { + return e.appendChild(E.createComment("")), + !e.getElementsByTagName("*").length + }), + g.getElementsByClassName = c.test(E.getElementsByClassName), + g.getById = h(function(e) { + return t.appendChild(e).id = k, + !E.getElementsByName || !E.getElementsByName(k).length + }), + g.getById ? (b.find.ID = function(e, t) { + if ("undefined" != typeof t.getElementById && N) + return (e = t.getElementById(e)) ? [e] : [] + } + , + b.filter.ID = function(e) { + var t = e.replace(d, p); + return function(e) { + return e.getAttribute("id") === t + } + } + ) : (delete b.find.ID, + b.filter.ID = function(e) { + var t = e.replace(d, p); + return function(e) { + e = "undefined" != typeof e.getAttributeNode && e.getAttributeNode("id"); + return e && e.value === t + } + } + ), + b.find.TAG = g.getElementsByTagName ? function(e, t) { + return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : g.qsa ? t.querySelectorAll(e) : void 0 + } + : function(e, t) { + var n, r = [], i = 0, o = t.getElementsByTagName(e); + if ("*" !== e) + return o; + for (; n = o[i++]; ) + 1 === n.nodeType && r.push(n); + return r + } + , + b.find.CLASS = g.getElementsByClassName && function(e, t) { + if ("undefined" != typeof t.getElementsByClassName && N) + return t.getElementsByClassName(e) + } + , + r = [], + m = [], + (g.qsa = c.test(E.querySelectorAll)) && (h(function(e) { + t.appendChild(e).innerHTML = "", + e.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=" + a + "*(?:''|\"\")"), + e.querySelectorAll("[selected]").length || m.push("\\[" + a + "*(?:value|" + Y + ")"), + e.querySelectorAll("[id~=" + k + "-]").length || m.push("~="), + e.querySelectorAll(":checked").length || m.push(":checked"), + e.querySelectorAll("a#" + k + "+*").length || m.push(".#.+[+~]") + }), + h(function(e) { + var t = E.createElement("input"); + t.setAttribute("type", "hidden"), + e.appendChild(t).setAttribute("name", "D"), + e.querySelectorAll("[name=d]").length && m.push("name" + a + "*[*^$|!~]?="), + e.querySelectorAll(":enabled").length || m.push(":enabled", ":disabled"), + e.querySelectorAll("*,:x"), + m.push(",.*:") + })), + (g.matchesSelector = c.test(i = t.matches || t.webkitMatchesSelector || t.mozMatchesSelector || t.oMatchesSelector || t.msMatchesSelector)) && h(function(e) { + g.disconnectedMatch = i.call(e, "div"), + i.call(e, "[s!='']:x"), + r.push("!=", G) + }), + m = m.length && new RegExp(m.join("|")), + r = r.length && new RegExp(r.join("|")), + e = c.test(t.compareDocumentPosition), + y = e || c.test(t.contains) ? function(e, t) { + var n = 9 === e.nodeType ? e.documentElement : e + , t = t && t.parentNode; + return e === t || !(!t || 1 !== t.nodeType || !(n.contains ? n.contains(t) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(t))) + } + : function(e, t) { + if (t) + for (; t = t.parentNode; ) + if (t === e) + return !0; + return !1 + } + , + $ = e ? function(e, t) { + var n; + return e === t ? (l = !0, + 0) : (n = !e.compareDocumentPosition - !t.compareDocumentPosition) || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !g.sortDetached && t.compareDocumentPosition(e) === n ? e === E || e.ownerDocument === v && y(v, e) ? -1 : t === E || t.ownerDocument === v && y(v, t) ? 1 : u ? j(u, e) - j(u, t) : 0 : 4 & n ? -1 : 1) + } + : function(e, t) { + if (e === t) + return l = !0, + 0; + var n, r = 0, i = e.parentNode, o = t.parentNode, a = [e], s = [t]; + if (!i || !o) + return e === E ? -1 : t === E ? 1 : i ? -1 : o ? 1 : u ? j(u, e) - j(u, t) : 0; + if (i === o) + return fe(e, t); + for (n = e; n = n.parentNode; ) + a.unshift(n); + for (n = t; n = n.parentNode; ) + s.unshift(n); + for (; a[r] === s[r]; ) + r++; + return r ? fe(a[r], s[r]) : a[r] === v ? -1 : s[r] === v ? 1 : 0 + } + ), + E + } + , + H.matches = function(e, t) { + return H(e, null, null, t) + } + , + H.matchesSelector = function(e, t) { + if ((e.ownerDocument || e) !== E && C(e), + t = t.replace(ee, "='$1']"), + g.matchesSelector && N && !A[t + " "] && (!r || !r.test(t)) && (!m || !m.test(t))) + try { + var n = i.call(e, t); + if (n || g.disconnectedMatch || e.document && 11 !== e.document.nodeType) + return n + } catch (F) {} + return 0 < H(t, E, null, [e]).length + } + , + H.contains = function(e, t) { + return (e.ownerDocument || e) !== E && C(e), + y(e, t) + } + , + H.attr = function(e, t) { + (e.ownerDocument || e) !== E && C(e); + var n = b.attrHandle[t.toLowerCase()] + , n = n && z.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !N) : undefined; + return n !== undefined ? n : g.attributes || !N ? e.getAttribute(t) : (n = e.getAttributeNode(t)) && n.specified ? n.value : null + } + , + H.error = function(e) { + throw new Error("Syntax error, unrecognized expression: " + e) + } + , + H.uniqueSort = function(e) { + var t, n = [], r = 0, i = 0; + if (l = !g.detectDuplicates, + u = !g.sortStable && e.slice(0), + e.sort($), + l) { + for (; t = e[i++]; ) + t === e[i] && (r = n.push(i)); + for (; r--; ) + e.splice(n[r], 1) + } + return u = null, + e + } + , + o = H.getText = function(e) { + var t, n = "", r = 0, i = e.nodeType; + if (i) { + if (1 === i || 9 === i || 11 === i) { + if ("string" == typeof e.textContent) + return e.textContent; + for (e = e.firstChild; e; e = e.nextSibling) + n += o(e) + } else if (3 === i || 4 === i) + return e.nodeValue + } else + for (; t = e[r++]; ) + n += o(t); + return n + } + , + (b = H.selectors = { + cacheLength: 50, + createPseudo: q, + match: f, + attrHandle: {}, + find: {}, + relative: { + ">": { + dir: "parentNode", + first: !0 + }, + " ": { + dir: "parentNode" + }, + "+": { + dir: "previousSibling", + first: !0 + }, + "~": { + dir: "previousSibling" + } + }, + preFilter: { + ATTR: function(e) { + return e[1] = e[1].replace(d, p), + e[3] = (e[3] || e[4] || e[5] || "").replace(d, p), + "~=" === e[2] && (e[3] = " " + e[3] + " "), + e.slice(0, 4) + }, + CHILD: function(e) { + return e[1] = e[1].toLowerCase(), + "nth" === e[1].slice(0, 3) ? (e[3] || H.error(e[0]), + e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), + e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && H.error(e[0]), + e + }, + PSEUDO: function(e) { + var t, n = !e[6] && e[2]; + return f.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && te.test(n) && (t = (t = w(n, !0)) && n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), + e[2] = n.slice(0, t)), + e.slice(0, 3)) + } + }, + filter: { + TAG: function(e) { + var t = e.replace(d, p).toLowerCase(); + return "*" === e ? function() { + return !0 + } + : function(e) { + return e.nodeName && e.nodeName.toLowerCase() === t + } + }, + CLASS: function(e) { + var t = W[e + " "]; + return t || (t = new RegExp("(^|" + a + ")" + e + "(" + a + "|$)")) && W(e, function(e) { + return t.test("string" == typeof e.className && e.className || "undefined" != typeof e.getAttribute && e.getAttribute("class") || "") + }) + }, + ATTR: function(t, n, r) { + return function(e) { + e = H.attr(e, t); + return null == e ? "!=" === n : !n || (e += "", + "=" === n ? e === r : "!=" === n ? e !== r : "^=" === n ? r && 0 === e.indexOf(r) : "*=" === n ? r && -1 < e.indexOf(r) : "$=" === n ? r && e.slice(-r.length) === r : "~=" === n ? -1 < (" " + e.replace(K, " ") + " ").indexOf(r) : "|=" === n && (e === r || e.slice(0, r.length + 1) === r + "-")) + } + }, + CHILD: function(h, e, t, g, m) { + var y = "nth" !== h.slice(0, 3) + , v = "last" !== h.slice(-4) + , x = "of-type" === e; + return 1 === g && 0 === m ? function(e) { + return !!e.parentNode + } + : function(e, t, n) { + var r, i, o, a, s, u, l = y != v ? "nextSibling" : "previousSibling", c = e.parentNode, f = x && e.nodeName.toLowerCase(), d = !n && !x, p = !1; + if (c) { + if (y) { + for (; l; ) { + for (a = e; a = a[l]; ) + if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) + return !1; + u = l = "only" === h && !u && "nextSibling" + } + return !0 + } + if (u = [v ? c.firstChild : c.lastChild], + v && d) { + for (p = (s = (r = (i = (o = (a = c)[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === S && r[1]) && r[2], + a = s && c.childNodes[s]; a = ++s && a && a[l] || (p = s = 0, + u.pop()); ) + if (1 === a.nodeType && ++p && a === e) { + i[h] = [S, s, p]; + break + } + } else if (!1 === (p = d ? s = (r = (i = (o = (a = e)[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] || [])[0] === S && r[1] : p)) + for (; (a = ++s && a && a[l] || (p = s = 0, + u.pop())) && ((x ? a.nodeName.toLowerCase() !== f : 1 !== a.nodeType) || !++p || (d && ((i = (o = a[k] || (a[k] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[h] = [S, p]), + a !== e)); ) + ; + return (p -= m) === g || p % g == 0 && 0 <= p / g + } + } + }, + PSEUDO: function(e, o) { + var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || H.error("unsupported pseudo: " + e); + return a[k] ? a(o) : 1 < a.length ? (t = [e, e, "", o], + b.setFilters.hasOwnProperty(e.toLowerCase()) ? q(function(e, t) { + for (var n, r = a(e, o), i = r.length; i--; ) + e[n = j(e, r[i])] = !(t[n] = r[i]) + }) : function(e) { + return a(e, 0, t) + } + ) : a + } + }, + pseudos: { + not: q(function(e) { + var r = [] + , i = [] + , s = R(e.replace(L, "$1")); + return s[k] ? q(function(e, t, n, r) { + for (var i, o = s(e, null, r, []), a = e.length; a--; ) + (i = o[a]) && (e[a] = !(t[a] = i)) + }) : function(e, t, n) { + return r[0] = e, + s(r, null, n, i), + r[0] = null, + !i.pop() + } + }), + has: q(function(t) { + return function(e) { + return 0 < H(t, e).length + } + }), + contains: q(function(t) { + return t = t.replace(d, p), + function(e) { + return -1 < (e.textContent || e.innerText || o(e)).indexOf(t) + } + }), + lang: q(function(n) { + return ne.test(n || "") || H.error("unsupported lang: " + n), + n = n.replace(d, p).toLowerCase(), + function(e) { + var t; + do { + if (t = N ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) + return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-") + } while ((e = e.parentNode) && 1 === e.nodeType); + return !1 + } + }), + target: function(e) { + var t = M.location && M.location.hash; + return t && t.slice(1) === e.id + }, + root: function(e) { + return e === t + }, + focus: function(e) { + return e === E.activeElement && (!E.hasFocus || E.hasFocus()) && !!(e.type || e.href || ~e.tabIndex) + }, + enabled: function(e) { + return !1 === e.disabled + }, + disabled: function(e) { + return !0 === e.disabled + }, + checked: function(e) { + var t = e.nodeName.toLowerCase(); + return "input" === t && !!e.checked || "option" === t && !!e.selected + }, + selected: function(e) { + return e.parentNode && e.parentNode.selectedIndex, + !0 === e.selected + }, + empty: function(e) { + for (e = e.firstChild; e; e = e.nextSibling) + if (e.nodeType < 6) + return !1; + return !0 + }, + parent: function(e) { + return !b.pseudos.empty(e) + }, + header: function(e) { + return ie.test(e.nodeName) + }, + input: function(e) { + return re.test(e.nodeName) + }, + button: function(e) { + var t = e.nodeName.toLowerCase(); + return "input" === t && "button" === e.type || "button" === t + }, + text: function(e) { + return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (e = e.getAttribute("type")) || "text" === e.toLowerCase()) + }, + first: x(function() { + return [0] + }), + last: x(function(e, t) { + return [t - 1] + }), + eq: x(function(e, t, n) { + return [n < 0 ? n + t : n] + }), + even: x(function(e, t) { + for (var n = 0; n < t; n += 2) + e.push(n); + return e + }), + odd: x(function(e, t) { + for (var n = 1; n < t; n += 2) + e.push(n); + return e + }), + lt: x(function(e, t, n) { + for (var r = n < 0 ? n + t : n; 0 <= --r; ) + e.push(r); + return e + }), + gt: x(function(e, t, n) { + for (var r = n < 0 ? n + t : n; ++r < t; ) + e.push(r); + return e + }) + } + }).pseudos.nth = b.pseudos.eq, + { + radio: !0, + checkbox: !0, + file: !0, + password: !0, + image: !0 + }) + b.pseudos[e] = function(t) { + return function(e) { + return "input" === e.nodeName.toLowerCase() && e.type === t + } + }(e); + for (e in { + submit: !0, + reset: !0 + }) + b.pseudos[e] = function(n) { + return function(e) { + var t = e.nodeName.toLowerCase(); + return ("input" === t || "button" === t) && e.type === n + } + }(e); + function pe() {} + function _(e) { + for (var t = 0, n = e.length, r = ""; t < n; t++) + r += e[t].value; + return r + } + function he(a, e, t) { + var s = e.dir + , u = t && "parentNode" === s + , l = B++; + return e.first ? function(e, t, n) { + for (; e = e[s]; ) + if (1 === e.nodeType || u) + return a(e, t, n) + } + : function(e, t, n) { + var r, i, o = [S, l]; + if (n) { + for (; e = e[s]; ) + if ((1 === e.nodeType || u) && a(e, t, n)) + return !0 + } else + for (; e = e[s]; ) + if (1 === e.nodeType || u) { + if ((r = (i = (i = e[k] || (e[k] = {}))[e.uniqueID] || (i[e.uniqueID] = {}))[s]) && r[0] === S && r[1] === l) + return o[2] = r[2]; + if ((i[s] = o)[2] = a(e, t, n)) + return !0 + } + } + } + function ge(i) { + return 1 < i.length ? function(e, t, n) { + for (var r = i.length; r--; ) + if (!i[r](e, t, n)) + return !1; + return !0 + } + : i[0] + } + function me(e, t, n, r, i) { + for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) + !(o = e[s]) || n && !n(o, r, i) || (a.push(o), + l && t.push(s)); + return a + } + function ye(p, h, g, m, y, e) { + return m && !m[k] && (m = ye(m)), + y && !y[k] && (y = ye(y, e)), + q(function(e, t, n, r) { + var i, o, a, s = [], u = [], l = t.length, c = e || function(e, t, n) { + for (var r = 0, i = t.length; r < i; r++) + H(e, t[r], n); + return n + }(h || "*", n.nodeType ? [n] : n, []), f = !p || !e && h ? c : me(c, s, p, n, r), d = g ? y || (e ? p : l || m) ? [] : t : f; + if (g && g(f, d, n, r), + m) + for (i = me(d, u), + m(i, [], n, r), + o = i.length; o--; ) + (a = i[o]) && (d[u[o]] = !(f[u[o]] = a)); + if (e) { + if (y || p) { + if (y) { + for (i = [], + o = d.length; o--; ) + (a = d[o]) && i.push(f[o] = a); + y(null, d = [], i, r) + } + for (o = d.length; o--; ) + (a = d[o]) && -1 < (i = y ? j(e, a) : s[o]) && (e[i] = !(t[i] = a)) + } + } else + d = me(d === t ? d.splice(l, d.length) : d), + y ? y(null, t, d, r) : D.apply(t, d) + }) + } + return pe.prototype = b.filters = b.pseudos, + b.setFilters = new pe, + w = H.tokenize = function(e, t) { + var n, r, i, o, a, s, u, l = I[e + " "]; + if (l) + return t ? 0 : l.slice(0); + for (a = e, + s = [], + u = b.preFilter; a; ) { + for (o in n && !(r = Q.exec(a)) || (r && (a = a.slice(r[0].length) || a), + s.push(i = [])), + n = !1, + (r = Z.exec(a)) && (n = r.shift(), + i.push({ + value: n, + type: r[0].replace(L, " ") + }), + a = a.slice(n.length)), + b.filter) + !(r = f[o].exec(a)) || u[o] && !(r = u[o](r)) || (n = r.shift(), + i.push({ + value: n, + type: o, + matches: r + }), + a = a.slice(n.length)); + if (!n) + break + } + return t ? a.length : a ? H.error(e) : I(e, s).slice(0) + } + , + R = H.compile = function(e, t) { + var n, m, y, v, x, r, i = [], o = [], a = A[e + " "]; + if (!a) { + for (n = (t = t || w(e)).length; n--; ) + ((a = function f(e) { + for (var r, t, n, i = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = he(function(e) { + return e === r + }, a, !0), l = he(function(e) { + return -1 < j(r, e) + }, a, !0), c = [function(e, t, n) { + return e = !o && (n || t !== T) || ((r = t).nodeType ? u : l)(e, t, n), + r = null, + e + } + ]; s < i; s++) + if (t = b.relative[e[s].type]) + c = [he(ge(c), t)]; + else { + if ((t = b.filter[e[s].type].apply(null, e[s].matches))[k]) { + for (n = ++s; n < i && !b.relative[e[n].type]; n++) + ; + return ye(1 < s && ge(c), 1 < s && _(e.slice(0, s - 1).concat({ + value: " " === e[s - 2].type ? "*" : "" + })).replace(L, "$1"), t, s < n && f(e.slice(s, n)), n < i && f(e = e.slice(n)), n < i && _(e)) + } + c.push(t) + } + return ge(c) + }(t[n]))[k] ? i : o).push(a); + (a = A(e, (m = o, + v = 0 < (y = i).length, + x = 0 < m.length, + r = function(e, t, n, r, i) { + var o, a, s, u = 0, l = "0", c = e && [], f = [], d = T, p = e || x && b.find.TAG("*", i), h = S += null == d ? 1 : Math.random() || .1, g = p.length; + for (i && (T = t === E || t || i); l !== g && null != (o = p[l]); l++) { + if (x && o) { + for (a = 0, + t || o.ownerDocument === E || (C(o), + n = !N); s = m[a++]; ) + if (s(o, t || E, n)) { + r.push(o); + break + } + i && (S = h) + } + v && ((o = !s && o) && u--, + e) && c.push(o) + } + if (u += l, + v && l !== u) { + for (a = 0; s = y[a++]; ) + s(c, f, t, n); + if (e) { + if (0 < u) + for (; l--; ) + c[l] || f[l] || (f[l] = X.call(r)); + f = me(f) + } + D.apply(r, f), + i && !e && 0 < f.length && 1 < u + y.length && H.uniqueSort(r) + } + return i && (S = h, + T = d), + c + } + , + v ? q(r) : r))).selector = e + } + return a + } + , + P = H.select = function(e, t, n, r) { + var i, o, a, s, u, l = "function" == typeof e && e, c = !r && w(e = l.selector || e); + if (n = n || [], + 1 === c.length) { + if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && g.getById && 9 === t.nodeType && N && b.relative[o[1].type]) { + if (!(t = (b.find.ID(a.matches[0].replace(d, p), t) || [])[0])) + return n; + l && (t = t.parentNode), + e = e.slice(o.shift().value.length) + } + for (i = f.needsContext.test(e) ? 0 : o.length; i-- && (a = o[i], + !b.relative[s = a.type]); ) + if ((u = b.find[s]) && (r = u(a.matches[0].replace(d, p), ae.test(o[0].type) && de(t.parentNode) || t))) { + if (o.splice(i, 1), + e = r.length && _(o)) + break; + return D.apply(n, r), + n + } + } + return (l || R(e, c))(r, t, !N, n, !t || ae.test(e) && de(t.parentNode) || t), + n + } + , + g.sortStable = k.split("").sort($).join("") === k, + g.detectDuplicates = !!l, + C(), + g.sortDetached = h(function(e) { + return 1 & e.compareDocumentPosition(E.createElement("div")) + }), + h(function(e) { + return e.innerHTML = "", + "#" === e.firstChild.getAttribute("href") + }) || ce("type|href|height|width", function(e, t, n) { + if (!n) + return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2) + }), + g.attributes && h(function(e) { + return e.innerHTML = "", + e.firstChild.setAttribute("value", ""), + "" === e.firstChild.getAttribute("value") + }) || ce("value", function(e, t, n) { + if (!n && "input" === e.nodeName.toLowerCase()) + return e.defaultValue + }), + h(function(e) { + return null == e.getAttribute("disabled") + }) || ce(Y, function(e, t, n) { + if (!n) + return !0 === e[t] ? t.toLowerCase() : (n = e.getAttributeNode(t)) && n.specified ? n.value : null + }), + H + }(T) + , r = (C.find = e, + C.expr = e.selectors, + C.expr[":"] = C.expr.pseudos, + C.uniqueSort = C.unique = e.uniqueSort, + C.text = e.getText, + C.isXMLDoc = e.isXML, + C.contains = e.contains, + function(e, t, n) { + for (var r = [], i = n !== undefined; (e = e[t]) && 9 !== e.nodeType; ) + if (1 === e.nodeType) { + if (i && C(e).is(n)) + break; + r.push(e) + } + return r + } + ) + , V = function(e, t) { + for (var n = []; e; e = e.nextSibling) + 1 === e.nodeType && e !== t && n.push(e); + return n + } + , Y = C.expr.match.needsContext + , J = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ + , G = /^.[^:#\[\.,]*$/; + function K(e, n, r) { + if (C.isFunction(n)) + return C.grep(e, function(e, t) { + return !!n.call(e, t, e) !== r + }); + if (n.nodeType) + return C.grep(e, function(e) { + return e === n !== r + }); + if ("string" == typeof n) { + if (G.test(n)) + return C.filter(n, e, r); + n = C.filter(n, e) + } + return C.grep(e, function(e) { + return -1 < C.inArray(e, n) !== r + }) + } + C.filter = function(e, t, n) { + var r = t[0]; + return n && (e = ":not(" + e + ")"), + 1 === t.length && 1 === r.nodeType ? C.find.matchesSelector(r, e) ? [r] : [] : C.find.matches(e, C.grep(t, function(e) { + return 1 === e.nodeType + })) + } + , + C.fn.extend({ + find: function(e) { + var t, n = [], r = this, i = r.length; + if ("string" != typeof e) + return this.pushStack(C(e).filter(function() { + for (t = 0; t < i; t++) + if (C.contains(r[t], this)) + return !0 + })); + for (t = 0; t < i; t++) + C.find(e, r[t], n); + return (n = this.pushStack(1 < i ? C.unique(n) : n)).selector = this.selector ? this.selector + " " + e : e, + n + }, + filter: function(e) { + return this.pushStack(K(this, e || [], !1)) + }, + not: function(e) { + return this.pushStack(K(this, e || [], !0)) + }, + is: function(e) { + return !!K(this, "string" == typeof e && Y.test(e) ? C(e) : e || [], !1).length + } + }); + var Q, Z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, ee = ((C.fn.init = function(e, t, n) { + if (e) { + if (n = n || Q, + "string" != typeof e) + return e.nodeType ? (this.context = this[0] = e, + this.length = 1, + this) : C.isFunction(e) ? "undefined" != typeof n.ready ? n.ready(e) : e(C) : (e.selector !== undefined && (this.selector = e.selector, + this.context = e.context), + C.makeArray(e, this)); + if (!(r = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && 3 <= e.length ? [null, e, null] : Z.exec(e)) || !r[1] && t) + return (!t || t.jquery ? t || n : this.constructor(t)).find(e); + if (r[1]) { + if (t = t instanceof C ? t[0] : t, + C.merge(this, C.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : g, !0)), + J.test(r[1]) && C.isPlainObject(t)) + for (var r in t) + C.isFunction(this[r]) ? this[r](t[r]) : this.attr(r, t[r]) + } else { + if ((n = g.getElementById(r[2])) && n.parentNode) { + if (n.id !== r[2]) + return Q.find(e); + this.length = 1, + this[0] = n + } + this.context = g, + this.selector = e + } + } + return this + } + ).prototype = C.fn, + Q = C(g), + /^(?:parents|prev(?:Until|All))/), te = { + children: !0, + contents: !0, + next: !0, + prev: !0 + }; + function ne(e, t) { + for (; (e = e[t]) && 1 !== e.nodeType; ) + ; + return e + } + C.fn.extend({ + has: function(e) { + var t, n = C(e, this), r = n.length; + return this.filter(function() { + for (t = 0; t < r; t++) + if (C.contains(this, n[t])) + return !0 + }) + }, + closest: function(e, t) { + for (var n, r = 0, i = this.length, o = [], a = Y.test(e) || "string" != typeof e ? C(e, t || this.context) : 0; r < i; r++) + for (n = this[r]; n && n !== t; n = n.parentNode) + if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && C.find.matchesSelector(n, e))) { + o.push(n); + break + } + return this.pushStack(1 < o.length ? C.uniqueSort(o) : o) + }, + index: function(e) { + return e ? "string" == typeof e ? C.inArray(this[0], C(e)) : C.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 + }, + add: function(e, t) { + return this.pushStack(C.uniqueSort(C.merge(this.get(), C(e, t)))) + }, + addBack: function(e) { + return this.add(null == e ? this.prevObject : this.prevObject.filter(e)) + } + }), + C.each({ + parent: function(e) { + e = e.parentNode; + return e && 11 !== e.nodeType ? e : null + }, + parents: function(e) { + return r(e, "parentNode") + }, + parentsUntil: function(e, t, n) { + return r(e, "parentNode", n) + }, + next: function(e) { + return ne(e, "nextSibling") + }, + prev: function(e) { + return ne(e, "previousSibling") + }, + nextAll: function(e) { + return r(e, "nextSibling") + }, + prevAll: function(e) { + return r(e, "previousSibling") + }, + nextUntil: function(e, t, n) { + return r(e, "nextSibling", n) + }, + prevUntil: function(e, t, n) { + return r(e, "previousSibling", n) + }, + siblings: function(e) { + return V((e.parentNode || {}).firstChild, e) + }, + children: function(e) { + return V(e.firstChild) + }, + contents: function(e) { + return C.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : C.merge([], e.childNodes) + } + }, function(r, i) { + C.fn[r] = function(e, t) { + var n = C.map(this, i, e); + return (t = "Until" !== r.slice(-5) ? e : t) && "string" == typeof t && (n = C.filter(t, n)), + 1 < this.length && (te[r] || (n = C.uniqueSort(n)), + ee.test(r)) && (n = n.reverse()), + this.pushStack(n) + } + }); + var re, ie, E = /\S+/g; + function oe() { + g.addEventListener ? (g.removeEventListener("DOMContentLoaded", i), + T.removeEventListener("load", i)) : (g.detachEvent("onreadystatechange", i), + T.detachEvent("onload", i)) + } + function i() { + !g.addEventListener && "load" !== T.event.type && "complete" !== g.readyState || (oe(), + C.ready()) + } + for (ie in C.Callbacks = function(r) { + var e, n; + r = "string" == typeof r ? (e = r, + n = {}, + C.each(e.match(E) || [], function(e, t) { + n[t] = !0 + }), + n) : C.extend({}, r); + var i, t, o, a, s = [], u = [], l = -1, c = function() { + for (a = r.once, + o = i = !0; u.length; l = -1) + for (t = u.shift(); ++l < s.length; ) + !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && (l = s.length, + t = !1); + r.memory || (t = !1), + i = !1, + a && (s = t ? [] : "") + }, f = { + add: function() { + return s && (t && !i && (l = s.length - 1, + u.push(t)), + function n(e) { + C.each(e, function(e, t) { + C.isFunction(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== C.type(t) && n(t) + }) + }(arguments), + t) && !i && c(), + this + }, + remove: function() { + return C.each(arguments, function(e, t) { + for (var n; -1 < (n = C.inArray(t, s, n)); ) + s.splice(n, 1), + n <= l && l-- + }), + this + }, + has: function(e) { + return e ? -1 < C.inArray(e, s) : 0 < s.length + }, + empty: function() { + return s = s && [], + this + }, + disable: function() { + return a = u = [], + s = t = "", + this + }, + disabled: function() { + return !s + }, + lock: function() { + return a = !0, + t || f.disable(), + this + }, + locked: function() { + return !!a + }, + fireWith: function(e, t) { + return a || (t = [e, (t = t || []).slice ? t.slice() : t], + u.push(t), + i) || c(), + this + }, + fire: function() { + return f.fireWith(this, arguments), + this + }, + fired: function() { + return !!o + } + }; + return f + } + , + C.extend({ + Deferred: function(e) { + var o = [["resolve", "done", C.Callbacks("once memory"), "resolved"], ["reject", "fail", C.Callbacks("once memory"), "rejected"], ["notify", "progress", C.Callbacks("memory")]] + , i = "pending" + , a = { + state: function() { + return i + }, + always: function() { + return s.done(arguments).fail(arguments), + this + }, + then: function() { + var i = arguments; + return C.Deferred(function(r) { + C.each(o, function(e, t) { + var n = C.isFunction(i[e]) && i[e]; + s[t[1]](function() { + var e = n && n.apply(this, arguments); + e && C.isFunction(e.promise) ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) : r[t[0] + "With"](this === a ? r.promise() : this, n ? [e] : arguments) + }) + }), + i = null + }).promise() + }, + promise: function(e) { + return null != e ? C.extend(e, a) : a + } + } + , s = {}; + return a.pipe = a.then, + C.each(o, function(e, t) { + var n = t[2] + , r = t[3]; + a[t[1]] = n.add, + r && n.add(function() { + i = r + }, o[1 ^ e][2].disable, o[2][2].lock), + s[t[0]] = function() { + return s[t[0] + "With"](this === s ? a : this, arguments), + this + } + , + s[t[0] + "With"] = n.fireWith + }), + a.promise(s), + e && e.call(s, s), + s + }, + when: function(e) { + var i, t, n, r = 0, o = c.call(arguments), a = o.length, s = 1 !== a || e && C.isFunction(e.promise) ? a : 0, u = 1 === s ? e : C.Deferred(), l = function(t, n, r) { + return function(e) { + n[t] = this, + r[t] = 1 < arguments.length ? c.call(arguments) : e, + r === i ? u.notifyWith(n, r) : --s || u.resolveWith(n, r) + } + }; + if (1 < a) + for (i = new Array(a), + t = new Array(a), + n = new Array(a); r < a; r++) + o[r] && C.isFunction(o[r].promise) ? o[r].promise().progress(l(r, t, i)).done(l(r, n, o)).fail(u.reject) : --s; + return s || u.resolveWith(n, o), + u.promise() + } + }), + C.fn.ready = function(e) { + return C.ready.promise().done(e), + this + } + , + C.extend({ + isReady: !1, + readyWait: 1, + holdReady: function(e) { + e ? C.readyWait++ : C.ready(!0) + }, + ready: function(e) { + (!0 === e ? --C.readyWait : C.isReady) || (C.isReady = !0) !== e && 0 < --C.readyWait || (re.resolveWith(g, [C]), + C.fn.triggerHandler && (C(g).triggerHandler("ready"), + C(g).off("ready"))) + } + }), + C.ready.promise = function(e) { + if (!re) + if (re = C.Deferred(), + "complete" === g.readyState || "loading" !== g.readyState && !g.documentElement.doScroll) + T.setTimeout(C.ready); + else if (g.addEventListener) + g.addEventListener("DOMContentLoaded", i), + T.addEventListener("load", i); + else { + g.attachEvent("onreadystatechange", i), + T.attachEvent("onload", i); + var t = !1; + try { + t = null == T.frameElement && g.documentElement + } catch (n) {} + t && t.doScroll && !function r() { + if (!C.isReady) { + try { + t.doScroll("left") + } catch (n) { + return T.setTimeout(r, 50) + } + oe(), + C.ready() + } + }() + } + return re.promise(e) + } + , + C.ready.promise(), + C(y)) + break; + y.ownFirst = "0" === ie, + y.inlineBlockNeedsLayout = !1, + C(function() { + var e, t, n = g.getElementsByTagName("body")[0]; + n && n.style && (e = g.createElement("div"), + (t = g.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", + n.appendChild(t).appendChild(e), + "undefined" != typeof e.style.zoom && (e.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", + y.inlineBlockNeedsLayout = e = 3 === e.offsetWidth, + e) && (n.style.zoom = 1), + n.removeChild(t)) + }); + e = g.createElement("div"); + y.deleteExpando = !0; + try { + delete e.test + } catch (yn) { + y.deleteExpando = !1 + } + var o, v = function(e) { + var t = C.noData[(e.nodeName + " ").toLowerCase()] + , n = +e.nodeType || 1; + return (1 === n || 9 === n) && (!t || !0 !== t && e.getAttribute("classid") === t) + }, ae = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, se = /([A-Z])/g; + function ue(e, t, n) { + if (n === undefined && 1 === e.nodeType) { + var r = "data-" + t.replace(se, "-$1").toLowerCase(); + if ("string" == typeof (n = e.getAttribute(r))) { + try { + n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : ae.test(n) ? C.parseJSON(n) : n) + } catch (i) {} + C.data(e, t, n) + } else + n = undefined + } + return n + } + function le(e) { + for (var t in e) + if (("data" !== t || !C.isEmptyObject(e[t])) && "toJSON" !== t) + return; + return 1 + } + function ce(e, t, n, r) { + if (v(e)) { + var i, o = C.expando, a = e.nodeType, s = a ? C.cache : e, u = a ? e[o] : e[o] && o; + if (u && s[u] && (r || s[u].data) || n !== undefined || "string" != typeof t) + return s[u = u || (a ? e[o] = f.pop() || C.guid++ : o)] || (s[u] = a ? {} : { + toJSON: C.noop + }), + "object" != typeof t && "function" != typeof t || (r ? s[u] = C.extend(s[u], t) : s[u].data = C.extend(s[u].data, t)), + e = s[u], + r || (e.data || (e.data = {}), + e = e.data), + n !== undefined && (e[C.camelCase(t)] = n), + "string" == typeof t ? null == (i = e[t]) && (i = e[C.camelCase(t)]) : i = e, + i + } + } + function fe(e, t, n) { + if (v(e)) { + var r, i, o = e.nodeType, a = o ? C.cache : e, s = o ? e[C.expando] : C.expando; + if (a[s]) { + if (t && (r = n ? a[s] : a[s].data)) { + i = (t = C.isArray(t) ? t.concat(C.map(t, C.camelCase)) : t in r || (t = C.camelCase(t))in r ? [t] : t.split(" ")).length; + for (; i--; ) + delete r[t[i]]; + if (n ? !le(r) : !C.isEmptyObject(r)) + return + } + (n || (delete a[s].data, + le(a[s]))) && (o ? C.cleanData([e], !0) : y.deleteExpando || a != a.window ? delete a[s] : a[s] = undefined) + } + } + } + C.extend({ + cache: {}, + noData: { + "applet ": !0, + "embed ": !0, + "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + hasData: function(e) { + return !!(e = e.nodeType ? C.cache[e[C.expando]] : e[C.expando]) && !le(e) + }, + data: function(e, t, n) { + return ce(e, t, n) + }, + removeData: function(e, t) { + return fe(e, t) + }, + _data: function(e, t, n) { + return ce(e, t, n, !0) + }, + _removeData: function(e, t) { + return fe(e, t, !0) + } + }), + C.fn.extend({ + data: function(e, t) { + var n, r, i, o = this[0], a = o && o.attributes; + if (e !== undefined) + return "object" == typeof e ? this.each(function() { + C.data(this, e) + }) : 1 < arguments.length ? this.each(function() { + C.data(this, e, t) + }) : o ? ue(o, e, C.data(o, e)) : undefined; + if (this.length && (i = C.data(o), + 1 === o.nodeType) && !C._data(o, "parsedAttrs")) { + for (n = a.length; n--; ) + a[n] && 0 === (r = a[n].name).indexOf("data-") && ue(o, r = C.camelCase(r.slice(5)), i[r]); + C._data(o, "parsedAttrs", !0) + } + return i + }, + removeData: function(e) { + return this.each(function() { + C.removeData(this, e) + }) + } + }), + C.extend({ + queue: function(e, t, n) { + var r; + if (e) + return r = C._data(e, t = (t || "fx") + "queue"), + n && (!r || C.isArray(n) ? r = C._data(e, t, C.makeArray(n)) : r.push(n)), + r || [] + }, + dequeue: function(e, t) { + t = t || "fx"; + var n = C.queue(e, t) + , r = n.length + , i = n.shift() + , o = C._queueHooks(e, t); + "inprogress" === i && (i = n.shift(), + r--), + i && ("fx" === t && n.unshift("inprogress"), + delete o.stop, + i.call(e, function() { + C.dequeue(e, t) + }, o)), + !r && o && o.empty.fire() + }, + _queueHooks: function(e, t) { + var n = t + "queueHooks"; + return C._data(e, n) || C._data(e, n, { + empty: C.Callbacks("once memory").add(function() { + C._removeData(e, t + "queue"), + C._removeData(e, n) + }) + }) + } + }), + C.fn.extend({ + queue: function(t, n) { + var e = 2; + return "string" != typeof t && (n = t, + t = "fx", + e--), + arguments.length < e ? C.queue(this[0], t) : n === undefined ? this : this.each(function() { + var e = C.queue(this, t, n); + C._queueHooks(this, t), + "fx" === t && "inprogress" !== e[0] && C.dequeue(this, t) + }) + }, + dequeue: function(e) { + return this.each(function() { + C.dequeue(this, e) + }) + }, + clearQueue: function(e) { + return this.queue(e || "fx", []) + }, + promise: function(e, t) { + var n, r = 1, i = C.Deferred(), o = this, a = this.length, s = function() { + --r || i.resolveWith(o, [o]) + }; + for ("string" != typeof e && (t = e, + e = undefined), + e = e || "fx"; a--; ) + (n = C._data(o[a], e + "queueHooks")) && n.empty && (r++, + n.empty.add(s)); + return s(), + i.promise(t) + } + }), + y.shrinkWrapBlocks = function() { + var e, t, n; + return null != o ? o : (o = !1, + (t = g.getElementsByTagName("body")[0]) && t.style ? (e = g.createElement("div"), + (n = g.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", + t.appendChild(n).appendChild(e), + "undefined" != typeof e.style.zoom && (e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", + e.appendChild(g.createElement("div")).style.width = "5px", + o = 3 !== e.offsetWidth), + t.removeChild(n), + o) : void 0) + } + ; + var e = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source + , de = new RegExp("^(?:([+-])=|)(" + e + ")([a-z%]*)$","i") + , s = ["Top", "Right", "Bottom", "Left"] + , pe = function(e, t) { + return "none" === C.css(e = t || e, "display") || !C.contains(e.ownerDocument, e) + }; + function he(e, t, n, r) { + var i, o = 1, a = 20, s = r ? function() { + return r.cur() + } + : function() { + return C.css(e, t, "") + } + , u = s(), l = n && n[3] || (C.cssNumber[t] ? "" : "px"), c = (C.cssNumber[t] || "px" !== l && +u) && de.exec(C.css(e, t)); + if (c && c[3] !== l) + for (l = l || c[3], + n = n || [], + c = +u || 1; c /= o = o || ".5", + C.style(e, t, c + l), + o !== (o = s() / u) && 1 !== o && --a; ) + ; + return n && (c = +c || +u || 0, + i = n[1] ? c + (n[1] + 1) * n[2] : +n[2], + r) && (r.unit = l, + r.start = c, + r.end = i), + i + } + var d = function(e, t, n, r, i, o, a) { + var s = 0 + , u = e.length + , l = null == n; + if ("object" === C.type(n)) + for (s in i = !0, + n) + d(e, t, s, n[s], !0, o, a); + else if (r !== undefined && (i = !0, + C.isFunction(r) || (a = !0), + t = l ? a ? (t.call(e, r), + null) : (l = t, + function(e, t, n) { + return l.call(C(e), n) + } + ) : t)) + for (; s < u; s++) + t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); + return i ? e : l ? t.call(e) : u ? t(e[0], n) : o + } + , ge = /^(?:checkbox|radio)$/i + , me = /<([\w:-]+)/ + , ye = /^$|\/(?:java|ecma)script/i + , ve = /^\s+/ + , xe = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video"; + function be(e) { + var t = xe.split("|") + , n = e.createDocumentFragment(); + if (n.createElement) + for (; t.length; ) + n.createElement(t.pop()); + return n + } + S = g.createElement("div"), + k = g.createDocumentFragment(), + q = g.createElement("input"), + S.innerHTML = "
            a", + y.leadingWhitespace = 3 === S.firstChild.nodeType, + y.tbody = !S.getElementsByTagName("tbody").length, + y.htmlSerialize = !!S.getElementsByTagName("link").length, + y.html5Clone = "<:nav>" !== g.createElement("nav").cloneNode(!0).outerHTML, + q.type = "checkbox", + q.checked = !0, + k.appendChild(q), + y.appendChecked = q.checked, + S.innerHTML = "", + y.noCloneChecked = !!S.cloneNode(!0).lastChild.defaultValue, + k.appendChild(S), + (q = g.createElement("input")).setAttribute("type", "radio"), + q.setAttribute("checked", "checked"), + q.setAttribute("name", "t"), + S.appendChild(q), + y.checkClone = S.cloneNode(!0).cloneNode(!0).lastChild.checked, + y.noCloneEvent = !!S.addEventListener, + S[C.expando] = 1, + y.attributes = !S.getAttribute(C.expando); + var x = { + option: [1, ""], + legend: [1, "
            ", "
            "], + area: [1, "", ""], + param: [1, "", ""], + thead: [1, "", "
            "], + tr: [2, "", "
            "], + col: [2, "", "
            "], + td: [3, "", "
            "], + _default: y.htmlSerialize ? [0, "", ""] : [1, "X
            ", "
            "] + }; + function b(e, t) { + var n, r, i = 0, o = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : undefined; + if (!o) + for (o = [], + n = e.childNodes || e; null != (r = n[i]); i++) + !t || C.nodeName(r, t) ? o.push(r) : C.merge(o, b(r, t)); + return t === undefined || t && C.nodeName(e, t) ? C.merge([e], o) : o + } + function we(e, t) { + for (var n, r = 0; null != (n = e[r]); r++) + C._data(n, "globalEval", !t || C._data(t[r], "globalEval")) + } + x.optgroup = x.option, + x.tbody = x.tfoot = x.colgroup = x.caption = x.thead, + x.th = x.td; + var Te = /<|&#?\w+;/ + , Ce = /" !== f[1] || Ce.test(a) ? 0 : u : u.firstChild) && a.childNodes.length; o--; ) + C.nodeName(c = a.childNodes[o], "tbody") && !c.childNodes.length && a.removeChild(c); + for (C.merge(h, u.childNodes), + u.textContent = ""; u.firstChild; ) + u.removeChild(u.firstChild); + u = p.lastChild + } else + h.push(t.createTextNode(a)); + for (u && p.removeChild(u), + y.appendChecked || C.grep(b(h, "input"), Ee), + g = 0; a = h[g++]; ) + if (r && -1 < C.inArray(a, r)) + i && i.push(a); + else if (s = C.contains(a.ownerDocument, a), + u = b(p.appendChild(a), "script"), + s && we(u), + n) + for (o = 0; a = u[o++]; ) + ye.test(a.type || "") && n.push(a); + return u = null, + p + } + var ke, Se, Ae = g.createElement("div"); + for (ke in { + submit: !0, + change: !0, + focusin: !0 + }) + (y[ke] = (Se = "on" + ke)in T) || (Ae.setAttribute(Se, "t"), + y[ke] = !1 === Ae.attributes[Se].expando); + var De = /^(?:input|select|textarea)$/i + , je = /^key/ + , Le = /^(?:mouse|pointer|contextmenu|drag|drop)|click/ + , He = /^(?:focusinfocus|focusoutblur)$/ + , qe = /^([^.]*)(?:\.(.+)|)/; + function _e() { + return !0 + } + function u() { + return !1 + } + function Fe() { + try { + return g.activeElement + } catch (e) {} + } + function Me(e, t, n, r, i, o) { + var a, s; + if ("object" == typeof t) { + for (s in "string" != typeof n && (r = r || n, + n = undefined), + t) + Me(e, s, n, r, t[s], o); + return e + } + if (null == r && null == i ? (i = n, + r = n = undefined) : null == i && ("string" == typeof n ? (i = r, + r = undefined) : (i = r, + r = n, + n = undefined)), + !1 === i) + i = u; + else if (!i) + return e; + return 1 === o && (a = i, + (i = function(e) { + return C().off(e), + a.apply(this, arguments) + } + ).guid = a.guid || (a.guid = C.guid++)), + e.each(function() { + C.event.add(this, t, i, r, n) + }) + } + C.event = { + global: {}, + add: function(e, t, n, r, i) { + var o, a, s, u, l, c, f, d, p, h = C._data(e); + if (h) + for (n.handler && (n = (s = n).handler, + i = s.selector), + n.guid || (n.guid = C.guid++), + o = (o = h.events) || (h.events = {}), + (l = h.handle) || ((l = h.handle = function(e) { + return void 0 === C || e && C.event.triggered === e.type ? undefined : C.event.dispatch.apply(l.elem, arguments) + } + ).elem = e), + a = (t = (t || "").match(E) || [""]).length; a--; ) + f = p = (d = qe.exec(t[a]) || [])[1], + d = (d[2] || "").split(".").sort(), + f && (u = C.event.special[f] || {}, + f = (i ? u.delegateType : u.bindType) || f, + u = C.event.special[f] || {}, + p = C.extend({ + type: f, + origType: p, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && C.expr.match.needsContext.test(i), + namespace: d.join(".") + }, s), + (c = o[f]) || ((c = o[f] = []).delegateCount = 0, + u.setup && !1 !== u.setup.call(e, r, d, l)) || (e.addEventListener ? e.addEventListener(f, l, !1) : e.attachEvent && e.attachEvent("on" + f, l)), + u.add && (u.add.call(e, p), + p.handler.guid || (p.handler.guid = n.guid)), + i ? c.splice(c.delegateCount++, 0, p) : c.push(p), + C.event.global[f] = !0) + }, + remove: function(e, t, n, r, i) { + var o, a, s, u, l, c, f, d, p, h, g, m = C.hasData(e) && C._data(e); + if (m && (c = m.events)) { + for (l = (t = (t || "").match(E) || [""]).length; l--; ) + if (p = g = (s = qe.exec(t[l]) || [])[1], + h = (s[2] || "").split(".").sort(), + p) { + for (f = C.event.special[p] || {}, + d = c[p = (r ? f.delegateType : f.bindType) || p] || [], + s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), + u = o = d.length; o--; ) + a = d[o], + !i && g !== a.origType || n && n.guid !== a.guid || s && !s.test(a.namespace) || r && r !== a.selector && ("**" !== r || !a.selector) || (d.splice(o, 1), + a.selector && d.delegateCount--, + f.remove && f.remove.call(e, a)); + u && !d.length && (f.teardown && !1 !== f.teardown.call(e, h, m.handle) || C.removeEvent(e, p, m.handle), + delete c[p]) + } else + for (p in c) + C.event.remove(e, p + t[l], n, r, !0); + C.isEmptyObject(c) && (delete m.handle, + C._removeData(e, "events")) + } + }, + trigger: function(e, t, n, r) { + var i, o, a, s, u, l, c = [n || g], f = m.call(e, "type") ? e.type : e, d = m.call(e, "namespace") ? e.namespace.split(".") : [], p = u = n = n || g; + if (3 !== n.nodeType && 8 !== n.nodeType && !He.test(f + C.event.triggered) && (-1 < f.indexOf(".") && (f = (d = f.split(".")).shift(), + d.sort()), + o = f.indexOf(":") < 0 && "on" + f, + (e = e[C.expando] ? e : new C.Event(f,"object" == typeof e && e)).isTrigger = r ? 2 : 3, + e.namespace = d.join("."), + e.rnamespace = e.namespace ? new RegExp("(^|\\.)" + d.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, + e.result = undefined, + e.target || (e.target = n), + t = null == t ? [e] : C.makeArray(t, [e]), + s = C.event.special[f] || {}, + r || !s.trigger || !1 !== s.trigger.apply(n, t))) { + if (!r && !s.noBubble && !C.isWindow(n)) { + for (a = s.delegateType || f, + He.test(a + f) || (p = p.parentNode); p; p = p.parentNode) + c.push(p), + u = p; + u === (n.ownerDocument || g) && c.push(u.defaultView || u.parentWindow || T) + } + for (l = 0; (p = c[l++]) && !e.isPropagationStopped(); ) + e.type = 1 < l ? a : s.bindType || f, + (i = (C._data(p, "events") || {})[e.type] && C._data(p, "handle")) && i.apply(p, t), + (i = o && p[o]) && i.apply && v(p) && (e.result = i.apply(p, t), + !1 === e.result) && e.preventDefault(); + if (e.type = f, + !r && !e.isDefaultPrevented() && (!s._default || !1 === s._default.apply(c.pop(), t)) && v(n) && o && n[f] && !C.isWindow(n)) { + (u = n[o]) && (n[o] = null), + C.event.triggered = f; + try { + n[f]() + } catch (h) {} + C.event.triggered = undefined, + u && (n[o] = u) + } + return e.result + } + }, + dispatch: function(e) { + e = C.event.fix(e); + var t, n, r, i, o, a = c.call(arguments), s = (C._data(this, "events") || {})[e.type] || [], u = C.event.special[e.type] || {}; + if ((a[0] = e).delegateTarget = this, + !u.preDispatch || !1 !== u.preDispatch.call(this, e)) { + for (o = C.event.handlers.call(this, e, s), + t = 0; (r = o[t++]) && !e.isPropagationStopped(); ) + for (e.currentTarget = r.elem, + n = 0; (i = r.handlers[n++]) && !e.isImmediatePropagationStopped(); ) + e.rnamespace && !e.rnamespace.test(i.namespace) || (e.handleObj = i, + e.data = i.data, + (i = ((C.event.special[i.origType] || {}).handle || i.handler).apply(r.elem, a)) !== undefined && !1 === (e.result = i) && (e.preventDefault(), + e.stopPropagation())); + return u.postDispatch && u.postDispatch.call(this, e), + e.result + } + }, + handlers: function(e, t) { + var n, r, i, o, a = [], s = t.delegateCount, u = e.target; + if (s && u.nodeType && ("click" !== e.type || isNaN(e.button) || e.button < 1)) + for (; u != this; u = u.parentNode || this) + if (1 === u.nodeType && (!0 !== u.disabled || "click" !== e.type)) { + for (r = [], + n = 0; n < s; n++) + r[i = (o = t[n]).selector + " "] === undefined && (r[i] = o.needsContext ? -1 < C(i, this).index(u) : C.find(i, this, null, [u]).length), + r[i] && r.push(o); + r.length && a.push({ + elem: u, + handlers: r + }) + } + return s < t.length && a.push({ + elem: this, + handlers: t.slice(s) + }), + a + }, + fix: function(e) { + if (e[C.expando]) + return e; + var t, n, r, i = e.type, o = e, a = this.fixHooks[i]; + for (a || (this.fixHooks[i] = a = Le.test(i) ? this.mouseHooks : je.test(i) ? this.keyHooks : {}), + r = a.props ? this.props.concat(a.props) : this.props, + e = new C.Event(o), + t = r.length; t--; ) + e[n = r[t]] = o[n]; + return e.target || (e.target = o.srcElement || g), + 3 === e.target.nodeType && (e.target = e.target.parentNode), + e.metaKey = !!e.metaKey, + a.filter ? a.filter(e, o) : e + }, + props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + fixHooks: {}, + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function(e, t) { + return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), + e + } + }, + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function(e, t) { + var n, r, i = t.button, o = t.fromElement; + return null == e.pageX && null != t.clientX && (r = (n = e.target.ownerDocument || g).documentElement, + n = n.body, + e.pageX = t.clientX + (r && r.scrollLeft || n && n.scrollLeft || 0) - (r && r.clientLeft || n && n.clientLeft || 0), + e.pageY = t.clientY + (r && r.scrollTop || n && n.scrollTop || 0) - (r && r.clientTop || n && n.clientTop || 0)), + !e.relatedTarget && o && (e.relatedTarget = o === e.target ? t.toElement : o), + e.which || i === undefined || (e.which = 1 & i ? 1 : 2 & i ? 3 : 4 & i ? 2 : 0), + e + } + }, + special: { + load: { + noBubble: !0 + }, + focus: { + trigger: function() { + if (this !== Fe() && this.focus) + try { + return this.focus(), + !1 + } catch (e) {} + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if (this === Fe() && this.blur) + return this.blur(), + !1 + }, + delegateType: "focusout" + }, + click: { + trigger: function() { + if (C.nodeName(this, "input") && "checkbox" === this.type && this.click) + return this.click(), + !1 + }, + _default: function(e) { + return C.nodeName(e.target, "a") + } + }, + beforeunload: { + postDispatch: function(e) { + e.result !== undefined && e.originalEvent && (e.originalEvent.returnValue = e.result) + } + } + }, + simulate: function(e, t, n) { + e = C.extend(new C.Event, n, { + type: e, + isSimulated: !0 + }); + C.event.trigger(e, null, t), + e.isDefaultPrevented() && n.preventDefault() + } + }, + C.removeEvent = g.removeEventListener ? function(e, t, n) { + e.removeEventListener && e.removeEventListener(t, n) + } + : function(e, t, n) { + t = "on" + t; + e.detachEvent && ("undefined" == typeof e[t] && (e[t] = null), + e.detachEvent(t, n)) + } + , + C.Event = function(e, t) { + if (!(this instanceof C.Event)) + return new C.Event(e,t); + e && e.type ? (this.originalEvent = e, + this.type = e.type, + this.isDefaultPrevented = e.defaultPrevented || e.defaultPrevented === undefined && !1 === e.returnValue ? _e : u) : this.type = e, + t && C.extend(this, t), + this.timeStamp = e && e.timeStamp || C.now(), + this[C.expando] = !0 + } + , + C.Event.prototype = { + constructor: C.Event, + isDefaultPrevented: u, + isPropagationStopped: u, + isImmediatePropagationStopped: u, + preventDefault: function() { + var e = this.originalEvent; + this.isDefaultPrevented = _e, + e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1) + }, + stopPropagation: function() { + var e = this.originalEvent; + this.isPropagationStopped = _e, + e && !this.isSimulated && (e.stopPropagation && e.stopPropagation(), + e.cancelBubble = !0) + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + this.isImmediatePropagationStopped = _e, + e && e.stopImmediatePropagation && e.stopImmediatePropagation(), + this.stopPropagation() + } + }, + C.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, function(e, i) { + C.event.special[e] = { + delegateType: i, + bindType: i, + handle: function(e) { + var t, n = e.relatedTarget, r = e.handleObj; + return n && (n === this || C.contains(this, n)) || (e.type = r.origType, + t = r.handler.apply(this, arguments), + e.type = i), + t + } + } + }), + y.submit || (C.event.special.submit = { + setup: function() { + if (C.nodeName(this, "form")) + return !1; + C.event.add(this, "click._submit keypress._submit", function(e) { + e = e.target, + e = C.nodeName(e, "input") || C.nodeName(e, "button") ? C.prop(e, "form") : undefined; + e && !C._data(e, "submit") && (C.event.add(e, "submit._submit", function(e) { + e._submitBubble = !0 + }), + C._data(e, "submit", !0)) + }) + }, + postDispatch: function(e) { + e._submitBubble && (delete e._submitBubble, + this.parentNode) && !e.isTrigger && C.event.simulate("submit", this.parentNode, e) + }, + teardown: function() { + if (C.nodeName(this, "form")) + return !1; + C.event.remove(this, "._submit") + } + }), + y.change || (C.event.special.change = { + setup: function() { + if (De.test(this.nodeName)) + return "checkbox" !== this.type && "radio" !== this.type || (C.event.add(this, "propertychange._change", function(e) { + "checked" === e.originalEvent.propertyName && (this._justChanged = !0) + }), + C.event.add(this, "click._change", function(e) { + this._justChanged && !e.isTrigger && (this._justChanged = !1), + C.event.simulate("change", this, e) + })), + !1; + C.event.add(this, "beforeactivate._change", function(e) { + e = e.target; + De.test(e.nodeName) && !C._data(e, "change") && (C.event.add(e, "change._change", function(e) { + !this.parentNode || e.isSimulated || e.isTrigger || C.event.simulate("change", this.parentNode, e) + }), + C._data(e, "change", !0)) + }) + }, + handle: function(e) { + var t = e.target; + if (this !== t || e.isSimulated || e.isTrigger || "radio" !== t.type && "checkbox" !== t.type) + return e.handleObj.handler.apply(this, arguments) + }, + teardown: function() { + return C.event.remove(this, "._change"), + !De.test(this.nodeName) + } + }), + y.focusin || C.each({ + focus: "focusin", + blur: "focusout" + }, function(n, r) { + var i = function(e) { + C.event.simulate(r, e.target, C.event.fix(e)) + }; + C.event.special[r] = { + setup: function() { + var e = this.ownerDocument || this + , t = C._data(e, r); + t || e.addEventListener(n, i, !0), + C._data(e, r, (t || 0) + 1) + }, + teardown: function() { + var e = this.ownerDocument || this + , t = C._data(e, r) - 1; + t ? C._data(e, r, t) : (e.removeEventListener(n, i, !0), + C._removeData(e, r)) + } + } + }), + C.fn.extend({ + on: function(e, t, n, r) { + return Me(this, e, t, n, r) + }, + one: function(e, t, n, r) { + return Me(this, e, t, n, r, 1) + }, + off: function(e, t, n) { + var r, i; + if (e && e.preventDefault && e.handleObj) + r = e.handleObj, + C(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler); + else { + if ("object" != typeof e) + return !1 !== t && "function" != typeof t || (n = t, + t = undefined), + !1 === n && (n = u), + this.each(function() { + C.event.remove(this, e, n, t) + }); + for (i in e) + this.off(i, t, e[i]) + } + return this + }, + trigger: function(e, t) { + return this.each(function() { + C.event.trigger(e, t, this) + }) + }, + triggerHandler: function(e, t) { + var n = this[0]; + if (n) + return C.event.trigger(e, t, n, !0) + } + }); + var Oe = / jQuery\d+="(?:null|\d+)"/g + , Re = new RegExp("<(?:" + xe + ")[\\s/>]","i") + , Pe = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi + , Be = /\s*$/g + , ze = be(g).appendChild(g.createElement("div")); + function Xe(e, t) { + return C.nodeName(e, "table") && C.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e + } + function Ue(e) { + return e.type = (null !== C.find.attr(e, "type")) + "/" + e.type, + e + } + function Ve(e) { + var t = Ie.exec(e.type); + return t ? e.type = t[1] : e.removeAttribute("type"), + e + } + function Ye(e, t) { + if (1 === t.nodeType && C.hasData(e)) { + var n, r, i, e = C._data(e), o = C._data(t, e), a = e.events; + if (a) + for (n in delete o.handle, + o.events = {}, + a) + for (r = 0, + i = a[n].length; r < i; r++) + C.event.add(t, n, a[n][r]); + o.data && (o.data = C.extend({}, o.data)) + } + } + function w(n, r, i, o) { + r = O.apply([], r); + var e, t, a, s, u, l, c = 0, f = n.length, d = f - 1, p = r[0], h = C.isFunction(p); + if (h || 1 < f && "string" == typeof p && !y.checkClone && We.test(p)) + return n.each(function(e) { + var t = n.eq(e); + h && (r[0] = p.call(this, e, t.html())), + w(t, r, i, o) + }); + if (f && (e = (l = Ne(r, n[0].ownerDocument, !1, n, o)).firstChild, + 1 === l.childNodes.length && (l = e), + e || o)) { + for (a = (s = C.map(b(l, "script"), Ue)).length; c < f; c++) + t = l, + c !== d && (t = C.clone(t, !0, !0), + a) && C.merge(s, b(t, "script")), + i.call(n[c], t, c); + if (a) + for (u = s[s.length - 1].ownerDocument, + C.map(s, Ve), + c = 0; c < a; c++) + t = s[c], + ye.test(t.type || "") && !C._data(t, "globalEval") && C.contains(u, t) && (t.src ? C._evalUrl && C._evalUrl(t.src) : C.globalEval((t.text || t.textContent || t.innerHTML || "").replace($e, ""))); + l = null + } + return n + } + function Je(e, t, n) { + for (var r, i = t ? C.filter(t, e) : e, o = 0; null != (r = i[o]); o++) + n || 1 !== r.nodeType || C.cleanData(b(r)), + r.parentNode && (n && C.contains(r.ownerDocument, r) && we(b(r, "script")), + r.parentNode.removeChild(r)); + return e + } + C.extend({ + htmlPrefilter: function(e) { + return e.replace(Pe, "<$1>") + }, + clone: function(e, t, n) { + var r, i, o, a, s, u = C.contains(e.ownerDocument, e); + if (y.html5Clone || C.isXMLDoc(e) || !Re.test("<" + e.nodeName + ">") ? o = e.cloneNode(!0) : (ze.innerHTML = e.outerHTML, + ze.removeChild(o = ze.firstChild)), + !(y.noCloneEvent && y.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || C.isXMLDoc(e))) + for (r = b(o), + s = b(e), + a = 0; null != (i = s[a]); ++a) + if (r[a]) { + f = c = l = p = d = void 0; + var l, c, f, d = i, p = r[a]; + if (1 === p.nodeType) { + if (l = p.nodeName.toLowerCase(), + !y.noCloneEvent && p[C.expando]) { + for (c in (f = C._data(p)).events) + C.removeEvent(p, c, f.handle); + p.removeAttribute(C.expando) + } + "script" === l && p.text !== d.text ? (Ue(p).text = d.text, + Ve(p)) : "object" === l ? (p.parentNode && (p.outerHTML = d.outerHTML), + y.html5Clone && d.innerHTML && !C.trim(p.innerHTML) && (p.innerHTML = d.innerHTML)) : "input" === l && ge.test(d.type) ? (p.defaultChecked = p.checked = d.checked, + p.value !== d.value && (p.value = d.value)) : "option" === l ? p.defaultSelected = p.selected = d.defaultSelected : "input" !== l && "textarea" !== l || (p.defaultValue = d.defaultValue) + } + } + if (t) + if (n) + for (s = s || b(e), + r = r || b(o), + a = 0; null != (i = s[a]); a++) + Ye(i, r[a]); + else + Ye(e, o); + return 0 < (r = b(o, "script")).length && we(r, !u && b(e, "script")), + r = s = i = null, + o + }, + cleanData: function(e, t) { + for (var n, r, i, o, a = 0, s = C.expando, u = C.cache, l = y.attributes, c = C.event.special; null != (n = e[a]); a++) + if ((t || v(n)) && (o = (i = n[s]) && u[i])) { + if (o.events) + for (r in o.events) + c[r] ? C.event.remove(n, r) : C.removeEvent(n, r, o.handle); + u[i] && (delete u[i], + l || "undefined" == typeof n.removeAttribute ? n[s] = undefined : n.removeAttribute(s), + f.push(i)) + } + } + }), + C.fn.extend({ + domManip: w, + detach: function(e) { + return Je(this, e, !0) + }, + remove: function(e) { + return Je(this, e) + }, + text: function(e) { + return d(this, function(e) { + return e === undefined ? C.text(this) : this.empty().append((this[0] && this[0].ownerDocument || g).createTextNode(e)) + }, null, e, arguments.length) + }, + append: function() { + return w(this, arguments, function(e) { + 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Xe(this, e).appendChild(e) + }) + }, + prepend: function() { + return w(this, arguments, function(e) { + var t; + 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (t = Xe(this, e)).insertBefore(e, t.firstChild) + }) + }, + before: function() { + return w(this, arguments, function(e) { + this.parentNode && this.parentNode.insertBefore(e, this) + }) + }, + after: function() { + return w(this, arguments, function(e) { + this.parentNode && this.parentNode.insertBefore(e, this.nextSibling) + }) + }, + empty: function() { + for (var e, t = 0; null != (e = this[t]); t++) { + for (1 === e.nodeType && C.cleanData(b(e, !1)); e.firstChild; ) + e.removeChild(e.firstChild); + e.options && C.nodeName(e, "select") && (e.options.length = 0) + } + return this + }, + clone: function(e, t) { + return e = null != e && e, + t = null == t ? e : t, + this.map(function() { + return C.clone(this, e, t) + }) + }, + html: function(e) { + return d(this, function(e) { + var t = this[0] || {} + , n = 0 + , r = this.length; + if (e === undefined) + return 1 === t.nodeType ? t.innerHTML.replace(Oe, "") : undefined; + if ("string" == typeof e && !Be.test(e) && (y.htmlSerialize || !Re.test(e)) && (y.leadingWhitespace || !ve.test(e)) && !x[(me.exec(e) || ["", ""])[1].toLowerCase()]) { + e = C.htmlPrefilter(e); + try { + for (; n < r; n++) + 1 === (t = this[n] || {}).nodeType && (C.cleanData(b(t, !1)), + t.innerHTML = e); + t = 0 + } catch (i) {} + } + t && this.empty().append(e) + }, null, e, arguments.length) + }, + replaceWith: function() { + var n = []; + return w(this, arguments, function(e) { + var t = this.parentNode; + C.inArray(this, n) < 0 && (C.cleanData(b(this)), + t) && t.replaceChild(e, this) + }, n) + } + }), + C.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function(e, a) { + C.fn[e] = function(e) { + for (var t, n = 0, r = [], i = C(e), o = i.length - 1; n <= o; n++) + t = n === o ? this : this.clone(!0), + C(i[n])[a](t), + R.apply(r, t.get()); + return this.pushStack(r) + } + }); + var Ge, Ke = { + HTML: "block", + BODY: "block" + }; + function Qe(e, t) { + e = C(t.createElement(e)).appendTo(t.body), + t = C.css(e[0], "display"); + return e.detach(), + t + } + function Ze(e) { + var t = g + , n = Ke[e]; + return n || ("none" !== (n = Qe(e, t)) && n || ((t = ((Ge = (Ge || C("'; + break; + case 3: + delete o.title, + delete o.closeBtn, + -1 === o.icon && o.icon, + v.closeAll("loading"); + break; + case 4: + r || (o.content = [o.content, "body"]), + o.follow = o.content[1], + o.content = o.content[0] + '', + delete o.title, + o.tips = "object" == typeof o.tips ? o.tips : [o.tips, !0], + o.tipsMore || v.closeAll("tips") + } + a.vessel(r, function(e, t, i) { + l.append(e[0]), + r ? 2 == o.type || 4 == o.type ? h("body").append(e[1]) : d.parents("." + u[0])[0] || (d.data("display", d.css("display")).show().addClass("layui-layer-wrap").wrap(e[1]), + h("#" + u[0] + s).find("." + u[5]).before(t)) : l.append(e[1]), + h("#" + u.MOVE)[0] || l.append(f.moveElem = i), + a.layero = h("#" + u[0] + s), + a.shadeo = h("#" + u.SHADE + s), + o.scrollbar || f.setScrollbar(s) + }).auto(s), + a.shadeo.css({ + "background-color": o.shade[1] || "#000", + opacity: o.shade[0] || o.shade, + transition: o.shade[2] || "" + }), + a.shadeo.data(y, o.shade[0] || o.shade), + 2 == o.type && 6 == v.ie && a.layero.find("iframe").attr("src", d[0]), + 4 == o.type ? a.tips() : (a.offset(), + parseInt(f.getStyle(document.getElementById(u.MOVE), "z-index")) || (a.layero.css("visibility", "hidden"), + v.ready(function() { + a.offset(), + a.layero.css("visibility", "visible") + }))), + !o.fixed || f.events.resize[a.index] || (f.events.resize[a.index] = function() { + a.resize() + } + , + g.on("resize", f.events.resize[a.index])), + o.time <= 0 || setTimeout(function() { + v.close(a.index) + }, o.time), + a.move().callback(), + c(a.layero), + a.layero.data("config", o) + } + } + , + t.pt.resize = function() { + var e = this + , t = e.config; + e.offset(), + (/^\d+%$/.test(t.area[0]) || /^\d+%$/.test(t.area[1])) && e.auto(e.index), + 4 == t.type && e.tips() + } + , + t.pt.auto = function(e) { + var t = this.config + , i = h("#" + u[0] + e) + , n = (("" === t.area[0] || "auto" === t.area[0]) && 0 < t.maxWidth && (v.ie && v.ie < 8 && t.btn && i.width(i.innerWidth()), + i.outerWidth() > t.maxWidth) && i.width(t.maxWidth), + [i.innerWidth(), i.innerHeight()]) + , a = i.find(u[1]).outerHeight() || 0 + , o = i.find("." + u[6]).outerHeight() || 0 + , e = function(e) { + (e = i.find(e)).height(n[1] - a - o - 2 * (0 | parseFloat(e.css("padding-top")))) + }; + return 2 === t.type ? e("iframe") : "" === t.area[1] || "auto" === t.area[1] ? 0 < t.maxHeight && i.outerHeight() > t.maxHeight ? (n[1] = t.maxHeight, + e("." + u[5])) : t.fixed && n[1] >= g.height() && (n[1] = g.height(), + e("." + u[5])) : e("." + u[5]), + this + } + , + t.pt.offset = function() { + var e = this + , t = e.config + , i = e.layero + , n = [i.outerWidth(), i.outerHeight()] + , a = "object" == typeof t.offset; + e.offsetTop = (g.height() - n[1]) / 2, + e.offsetLeft = (g.width() - n[0]) / 2, + a ? (e.offsetTop = t.offset[0], + e.offsetLeft = t.offset[1] || e.offsetLeft) : "auto" !== t.offset && ("t" === t.offset ? e.offsetTop = 0 : "r" === t.offset ? e.offsetLeft = g.width() - n[0] : "b" === t.offset ? e.offsetTop = g.height() - n[1] : "l" === t.offset ? e.offsetLeft = 0 : "lt" === t.offset ? (e.offsetTop = 0, + e.offsetLeft = 0) : "lb" === t.offset ? (e.offsetTop = g.height() - n[1], + e.offsetLeft = 0) : "rt" === t.offset ? (e.offsetTop = 0, + e.offsetLeft = g.width() - n[0]) : "rb" === t.offset ? (e.offsetTop = g.height() - n[1], + e.offsetLeft = g.width() - n[0]) : e.offsetTop = t.offset), + t.fixed || (e.offsetTop = /%$/.test(e.offsetTop) ? g.height() * parseFloat(e.offsetTop) / 100 : parseFloat(e.offsetTop), + e.offsetLeft = /%$/.test(e.offsetLeft) ? g.width() * parseFloat(e.offsetLeft) / 100 : parseFloat(e.offsetLeft), + e.offsetTop += g.scrollTop(), + e.offsetLeft += g.scrollLeft()), + "min" === i.data("maxminStatus") && (e.offsetTop = g.height() - (i.find(u[1]).outerHeight() || 0), + e.offsetLeft = i.css("left")), + i.css({ + top: e.offsetTop, + left: e.offsetLeft + }) + } + , + t.pt.tips = function() { + var e = this.config + , t = this.layero + , i = [t.outerWidth(), t.outerHeight()] + , n = h(e.follow) + , a = { + width: (n = n[0] ? n : h("body")).outerWidth(), + height: n.outerHeight(), + top: n.offset().top, + left: n.offset().left + } + , o = t.find(".layui-layer-TipsG") + , n = e.tips[0]; + e.tips[1] || o.remove(), + a.autoLeft = function() { + 0 < a.left + i[0] - g.width() ? (a.tipLeft = a.left + a.width - i[0], + o.css({ + right: 12, + left: "auto" + })) : a.tipLeft = a.left + } + , + a.where = [function() { + a.autoLeft(), + a.tipTop = a.top - i[1] - 10, + o.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color", e.tips[1]) + } + , function() { + a.tipLeft = a.left + a.width + 10, + a.tipTop = a.top - (.75 * a.height < 21 ? 21 - .5 * a.height : 0), + a.tipTop = Math.max(a.tipTop, 0), + o.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color", e.tips[1]) + } + , function() { + a.autoLeft(), + a.tipTop = a.top + a.height + 10, + o.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color", e.tips[1]) + } + , function() { + a.tipLeft = a.left - i[0] - 10, + a.tipTop = a.top - (.75 * a.height < 21 ? 21 - .5 * a.height : 0), + a.tipTop = Math.max(a.tipTop, 0), + o.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color", e.tips[1]) + } + ], + a.where[n - 1](), + 1 === n ? a.top - (g.scrollTop() + i[1] + 16) < 0 && a.where[2]() : 2 === n ? 0 < g.width() - (a.left + a.width + i[0] + 16) || a.where[3]() : 3 === n ? 0 < a.top - g.scrollTop() + a.height + i[1] + 16 - g.height() && a.where[0]() : 4 === n && 0 < i[0] + 16 - a.left && a.where[1](), + t.find("." + u[5]).css({ + "background-color": e.tips[1], + "padding-right": e.closeBtn ? "30px" : "" + }), + t.css({ + left: a.tipLeft - (e.fixed ? g.scrollLeft() : 0), + top: a.tipTop - (e.fixed ? g.scrollTop() : 0) + }) + } + , + t.pt.move = function() { + var n = this + , a = n.config + , e = h(document) + , o = n.layero + , l = ["LAY_MOVE_DICT", "LAY_RESIZE_DICT"] + , t = o.find(a.move) + , i = o.find(".layui-layer-resize"); + return a.move && t.css("cursor", "move"), + t.on("mousedown", function(e) { + var t, i; + e.button || (t = h(this), + i = {}, + a.move && (i.layero = o, + i.config = a, + i.offset = [e.clientX - parseFloat(o.css("left")), e.clientY - parseFloat(o.css("top"))], + t.data(l[0], i), + f.eventMoveElem = t, + f.moveElem.css("cursor", "move").show()), + e.preventDefault()) + }), + i.on("mousedown", function(e) { + var t = h(this) + , i = {}; + a.resize && (i.layero = o, + i.config = a, + i.offset = [e.clientX, e.clientY], + i.index = n.index, + i.area = [o.outerWidth(), o.outerHeight()], + t.data(l[1], i), + f.eventResizeElem = t, + f.moveElem.css("cursor", "se-resize").show()), + e.preventDefault() + }), + f.docEvent || (e.on("mousemove", function(e) { + var t, i, n, a, o, s, r; + f.eventMoveElem && (t = (a = f.eventMoveElem.data(l[0]) || {}).layero, + o = a.config, + s = e.clientX - a.offset[0], + r = e.clientY - a.offset[1], + i = "fixed" === t.css("position"), + e.preventDefault(), + a.stX = i ? 0 : g.scrollLeft(), + a.stY = i ? 0 : g.scrollTop(), + o.moveOut || (i = g.width() - t.outerWidth() + a.stX, + n = g.height() - t.outerHeight() + a.stY, + i < (s = s < a.stX ? a.stX : s) && (s = i), + n < (r = r < a.stY ? a.stY : r) && (r = n)), + t.css({ + left: s, + top: r + })), + f.eventResizeElem && (o = (a = f.eventResizeElem.data(l[1]) || {}).config, + s = e.clientX - a.offset[0], + r = e.clientY - a.offset[1], + e.preventDefault(), + v.style(a.index, { + width: a.area[0] + s, + height: a.area[1] + r + }), + o.resizing) && o.resizing(a.layero) + }).on("mouseup", function(e) { + var t, i; + f.eventMoveElem && (i = (t = f.eventMoveElem.data(l[0]) || {}).config, + f.eventMoveElem.removeData(l[0]), + delete f.eventMoveElem, + f.moveElem.hide(), + i.moveEnd) && i.moveEnd(t.layero), + f.eventResizeElem && (f.eventResizeElem.removeData(l[1]), + delete f.eventResizeElem, + f.moveElem.hide()) + }), + f.docEvent = !0), + n + } + , + t.pt.btnLoading = function(e, t) { + t ? e.find(".layui-layer-btn-loading-icon")[0] || e.addClass("layui-layer-btn-is-loading").attr({ + disabled: "" + }).prepend('') : e.removeClass("layui-layer-btn-is-loading").removeAttr("disabled").find(".layui-layer-btn-loading-icon").remove() + } + , + t.pt.callback = function() { + var n = this + , a = n.layero + , o = n.config; + n.openLayer(), + o.success && (2 == o.type ? a.find("iframe").on("load", function() { + o.success(a, n.index, n) + }) : o.success(a, n.index, n)), + 6 == v.ie && n.IE6(a), + a.find("." + u[6]).children("a").on("click", function() { + var e, t = h(this), i = t.index(); + t.attr("disabled") || (o.btnAsync ? (e = 0 === i ? o.yes || o.btn1 : o["btn" + (i + 1)], + n.loading = function(e) { + n.btnLoading(t, e) + } + , + e ? f.promiseLikeResolve(e.call(o, n.index, a, n)).then(function(e) { + !1 !== e && v.close(n.index) + }, function(e) { + e !== m && p.console && p.console.error("layer error hint: " + e) + }) : v.close(n.index)) : 0 === i ? o.yes ? o.yes(n.index, a, n) : o.btn1 ? o.btn1(n.index, a, n) : v.close(n.index) : !1 !== (o["btn" + (i + 1)] && o["btn" + (i + 1)](n.index, a, n)) && v.close(n.index)) + }), + a.find("." + u[7]).on("click", function() { + !1 !== (o.cancel && o.cancel(n.index, a, n)) && v.close(n.index) + }), + o.shadeClose && n.shadeo.on("click", function() { + v.close(n.index) + }), + a.find(".layui-layer-min").on("click", function() { + !1 !== (o.min && o.min(a, n.index, n)) && v.min(n.index, o) + }), + a.find(".layui-layer-max").on("click", function() { + h(this).hasClass("layui-layer-maxmin") ? (v.restore(n.index), + o.restore && o.restore(a, n.index, n)) : (v.full(n.index, o), + setTimeout(function() { + o.full && o.full(a, n.index, n) + }, 100)) + }), + o.end && (f.end[n.index] = o.end), + o.beforeEnd && (f.beforeEnd[n.index] = h.proxy(o.beforeEnd, o, a, n.index, n)) + } + , + f.reselect = function() { + h.each(h("select"), function(e, t) { + var i = h(this); + i.parents("." + u[0])[0] || 1 == i.attr("layer") && h("." + u[0]).length < 1 && i.removeAttr("layer").show() + }) + } + , + t.pt.IE6 = function(e) { + h("select").each(function(e, t) { + var i = h(this); + i.parents("." + u[0])[0] || "none" !== i.css("display") && i.attr({ + layer: "1" + }).hide() + }) + } + , + t.pt.openLayer = function() { + v.zIndex = this.config.zIndex, + v.setTop = function(e) { + return v.zIndex = parseInt(e[0].style.zIndex), + e.on("mousedown", function() { + v.zIndex++, + e.css("z-index", v.zIndex + 1) + }), + v.zIndex + } + } + , + f.record = function(e) { + if (!e[0]) + return p.console && console.error("index error"); + var t = e.attr("type") + , i = e.find(".layui-layer-content") + , t = t === f.type[2] ? i.children("iframe") : i + , n = [e[0].style.width || f.getStyle(e[0], "width"), e[0].style.height || f.getStyle(e[0], "height"), e.position().top, e.position().left + parseFloat(e.css("margin-left"))]; + e.find(".layui-layer-max").addClass("layui-layer-maxmin"), + e.attr({ + area: n + }), + i.data(l, f.getStyle(t[0], "height")) + } + , + f.setScrollbar = function(e) { + u.html.css("overflow", "hidden").attr("layer-full", e) + } + , + f.restScrollbar = function(e) { + u.html.attr("layer-full") == e && (u.html[0].style[u.html[0].style.removeProperty ? "removeProperty" : "removeAttribute"]("overflow"), + u.html.removeAttr("layer-full")) + } + , + f.promiseLikeResolve = function(e) { + var t = h.Deferred(); + return e && "function" == typeof e.then ? e.then(t.resolve, t.reject) : t.resolve(e), + t.promise() + } + , + (p.layer = v).getChildFrame = function(e, t) { + return t = t || h("." + u[4]).attr("times"), + h("#" + u[0] + t).find("iframe").contents().find(e) + } + , + v.getFrameIndex = function(e) { + return h("#" + e).parents("." + u[4]).attr("times") + } + , + v.iframeAuto = function(e) { + var t, i, n; + e && (t = v.getChildFrame("html", e).outerHeight(), + i = (e = h("#" + u[0] + e)).find(u[1]).outerHeight() || 0, + n = e.find("." + u[6]).outerHeight() || 0, + e.css({ + height: t + i + n + }), + e.find("iframe").css({ + height: t + })) + } + , + v.iframeSrc = function(e, t) { + h("#" + u[0] + e).find("iframe").attr("src", t) + } + , + v.style = function(e, t, i) { + var e = h("#" + u[0] + e) + , n = e.find(".layui-layer-content") + , a = e.attr("type") + , o = e.find(u[1]).outerHeight() || 0 + , s = e.find("." + u[6]).outerHeight() || 0; + e.attr("minLeft"); + a !== f.type[3] && a !== f.type[4] && (i || (parseFloat(t.width) <= 260 && (t.width = 260), + parseFloat(t.height) - o - s <= 64 && (t.height = 64 + o + s)), + e.css(t), + s = e.find("." + u[6]).outerHeight() || 0, + a === f.type[2] ? e.find("iframe").css({ + height: ("number" == typeof t.height ? t.height : e.height()) - o - s + }) : n.css({ + height: ("number" == typeof t.height ? t.height : e.height()) - o - s - parseFloat(n.css("padding-top")) - parseFloat(n.css("padding-bottom")) + })) + } + , + v.min = function(e, t) { + var i, n, a, o, s, r, l = h("#" + u[0] + e), c = l.data("maxminStatus"); + "min" !== c && ("max" === c && v.restore(e), + l.data("maxminStatus", "min"), + t = t || l.data("config") || {}, + c = h("#" + u.SHADE + e), + i = l.find(".layui-layer-min"), + n = l.find(u[1]).outerHeight() || 0, + o = (a = "string" == typeof (o = l.attr("minLeft"))) ? o : 181 * f.minStackIndex + "px", + s = l.css("position"), + r = { + width: 180, + height: n, + position: "fixed", + overflow: "hidden" + }, + f.record(l), + 0 < f.minStackArr.length && (o = f.minStackArr[0], + f.minStackArr.shift()), + parseFloat(o) + 180 > g.width() && (o = g.width() - 180 - (f.minStackArr.edgeIndex = f.minStackArr.edgeIndex || 0, + f.minStackArr.edgeIndex += 3)) < 0 && (o = 0), + t.minStack && (r.left = o, + r.top = g.height() - n, + a || f.minStackIndex++, + l.attr("minLeft", o)), + l.attr("position", s), + v.style(e, r, !0), + i.hide(), + "page" === l.attr("type") && l.find(u[4]).hide(), + f.restScrollbar(e), + c.hide()) + } + , + v.restore = function(e) { + var t = h("#" + u[0] + e) + , i = h("#" + u.SHADE + e) + , n = t.find(".layui-layer-content") + , a = t.attr("area").split(",") + , o = t.attr("type") + , s = t.data("config") || {} + , r = n.data(l); + t.removeData("maxminStatus"), + v.style(e, { + width: a[0], + height: a[1], + top: parseFloat(a[2]), + left: parseFloat(a[3]), + position: t.attr("position"), + overflow: "visible" + }, !0), + t.find(".layui-layer-max").removeClass("layui-layer-maxmin"), + t.find(".layui-layer-min").show(), + "page" === o && t.find(u[4]).show(), + s.scrollbar ? f.restScrollbar(e) : f.setScrollbar(e), + r !== m && (n.removeData(l), + (o === f.type[2] ? n.children("iframe") : n).css({ + height: r + })), + i.show() + } + , + v.full = function(t) { + var i = h("#" + u[0] + t) + , e = i.data("maxminStatus"); + "max" !== e && ("min" === e && v.restore(t), + i.data("maxminStatus", "max"), + f.record(i), + u.html.attr("layer-full") || f.setScrollbar(t), + setTimeout(function() { + var e = "fixed" === i.css("position"); + v.style(t, { + top: e ? 0 : g.scrollTop(), + left: e ? 0 : g.scrollLeft(), + width: "100%", + height: "100%" + }, !0), + i.find(".layui-layer-min").hide() + }, 100)) + } + , + v.title = function(e, t) { + h("#" + u[0] + (t || v.index)).find(u[1]).html(e) + } + , + v.close = function(s, r) { + var e, t, l = (e = h("." + u[0]).children("#" + s).closest("." + u[0]))[0] ? (s = e.attr("times"), + e) : h("#" + u[0] + s), c = l.attr("type"), i = l.data("config") || {}, d = i.id && i.hideOnClose; + l[0] && (t = function() { + var o = { + slideDown: "layer-anim-slide-down-out", + slideLeft: "layer-anim-slide-left-out", + slideUp: "layer-anim-slide-up-out", + slideRight: "layer-anim-slide-right-out" + }[i.anim] || "layer-anim-close" + , e = function() { + var e = "layui-layer-wrap"; + if (d) + return l.removeClass("layer-anim " + o), + l.hide(); + if (c === f.type[1] && "object" === l.attr("conType")) { + l.children(":not(." + u[5] + ")").remove(); + for (var t = l.find("." + e), i = 0; i < 2; i++) + t.unwrap(); + t.css("display", t.data("display")).removeClass(e) + } else { + if (c === f.type[2]) + try { + var n = h("#" + u[4] + s)[0]; + n.contentWindow.document.write(""), + n.contentWindow.close(), + l.find("." + u[5])[0].removeChild(n) + } catch (a) {} + l[0].innerHTML = "", + l.remove() + } + "function" == typeof f.end[s] && f.end[s](), + delete f.end[s], + "function" == typeof r && r(), + f.events.resize[s] && (g.off("resize", f.events.resize[s]), + delete f.events.resize[s]) + } + , t = h("#" + u.SHADE + s); + v.ie && v.ie < 10 || !i.isOutAnim ? t[d ? "hide" : "remove"]() : (t.css({ + opacity: 0 + }), + setTimeout(function() { + t[d ? "hide" : "remove"]() + }, 350)), + i.isOutAnim && l.addClass("layer-anim " + o), + 6 == v.ie && f.reselect(), + f.restScrollbar(s), + "string" == typeof l.attr("minLeft") && (f.minStackIndex--, + f.minStackArr.push(l.attr("minLeft"))), + v.ie && v.ie < 10 || !i.isOutAnim ? e() : setTimeout(function() { + e() + }, 200) + } + , + d || "function" != typeof f.beforeEnd[s] ? (delete f.beforeEnd[s], + t()) : f.promiseLikeResolve(f.beforeEnd[s]()).then(function(e) { + !1 !== e && (delete f.beforeEnd[s], + t()) + }, function(e) { + e !== m && p.console && p.console.error("layer error hint: " + e) + })) + } + , + v.closeAll = function(n, a) { + "function" == typeof n && (a = n, + n = null); + var o = h("." + u[0]); + h.each(o, function(e) { + var t = h(this) + , i = n ? t.attr("type") === n : 1; + i && v.close(t.attr("times"), e === o.length - 1 ? a : null) + }), + 0 === o.length && "function" == typeof a && a() + } + , + v.closeLast = function(i, e) { + var t, n = [], a = h.isArray(i); + h("string" == typeof i ? ".layui-layer-" + i : ".layui-layer").each(function(e, t) { + t = h(t); + if (a && -1 === i.indexOf(t.attr("type")) || "none" === t.css("display")) + return !0; + n.push(Number(t.attr("times"))) + }), + 0 < n.length && (t = Math.max.apply(null, n), + v.close(t, e)) + } + , + v.cache || {}), x = function(e) { + return i.skin ? " " + i.skin + " " + i.skin + "-" + e : "" + }; + v.prompt = function(i, n) { + var e = "" + , t = ""; + "function" == typeof (i = i || {}) && (n = i), + i.area && (e = 'style="width: ' + (o = i.area)[0] + "; height: " + o[1] + ';"', + delete i.area), + i.placeholder && (t = ' placeholder="' + i.placeholder + '"'); + var a, o = 2 == i.formType ? '" : '", s = i.success; + return delete i.success, + v.open(h.extend({ + type: 1, + btn: ["\u786e\u5b9a", "\u53d6\u6d88"], + content: o, + skin: "layui-layer-prompt" + x("prompt"), + maxWidth: g.width(), + success: function(e) { + (a = e.find(".layui-layer-input")).val(i.value || "").focus(), + "function" == typeof s && s(e) + }, + resize: !1, + yes: function(e) { + var t = a.val(); + t.length > (i.maxlength || 500) ? v.tips("\u6700\u591a\u8f93\u5165" + (i.maxlength || 500) + "\u4e2a\u5b57\u7b26", a, { + tips: 1 + }) : n && n(t, e, a) + } + }, i)) + } + , + v.tab = function(n) { + var a = (n = n || {}).tab || {} + , o = "layui-this" + , s = n.success; + return delete n.success, + v.open(h.extend({ + type: 1, + skin: "layui-layer-tab" + x("tab"), + resize: !1, + title: function() { + var e = a.length + , t = 1 + , i = ""; + if (0 < e) + for (i = '' + a[0].title + ""; t < e; t++) + i += "" + a[t].title + ""; + return i + }(), + content: '
              ' + function() { + var e = a.length + , t = 1 + , i = ""; + if (0 < e) + for (i = '
            • ' + (a[0].content || "no content") + "
            • "; t < e; t++) + i += '
            • ' + (a[t].content || "no content") + "
            • "; + return i + }() + "
            ", + success: function(e) { + var t = e.find(".layui-layer-title").children() + , i = e.find(".layui-layer-tabmain").children(); + t.on("mousedown", function(e) { + e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0; + var e = h(this) + , t = e.index(); + e.addClass(o).siblings().removeClass(o), + i.eq(t).show().siblings().hide(), + "function" == typeof n.change && n.change(t) + }), + "function" == typeof s && s(e) + } + }, n)) + } + , + v.photos = function(n, e, a) { + var s = {}; + if ((n = h.extend(!0, { + toolbar: !0, + footer: !0 + }, n)).photos) { + var t = !("string" == typeof n.photos || n.photos instanceof h) + , i = t ? n.photos : {} + , o = i.data || [] + , r = i.start || 0 + , l = n.success; + if (s.imgIndex = 1 + (0 | r), + n.img = n.img || "img", + delete n.success, + t) { + if (0 === o.length) + return v.msg("\u6ca1\u6709\u56fe\u7247") + } else { + var c = h(n.photos) + , d = function() { + o = [], + c.find(n.img).each(function(e) { + var t = h(this); + t.attr("layer-index", e), + o.push({ + alt: t.attr("alt"), + pid: t.attr("layer-pid"), + src: t.attr("lay-src") || t.attr("layer-src") || t.attr("src"), + thumb: t.attr("src") + }) + }) + }; + if (d(), + 0 === o.length) + return; + if (e || c.on("click", n.img, function() { + d(); + var e = h(this).attr("layer-index"); + v.photos(h.extend(n, { + photos: { + start: e, + data: o, + tab: n.tab + }, + full: n.full + }), !0) + }), + !e) + return + } + s.imgprev = function(e) { + s.imgIndex--, + s.imgIndex < 1 && (s.imgIndex = o.length), + s.tabimg(e) + } + , + s.imgnext = function(e, t) { + s.imgIndex++, + s.imgIndex > o.length && (s.imgIndex = 1, + t) || s.tabimg(e) + } + , + s.keyup = function(e) { + var t; + s.end || (t = e.keyCode, + e.preventDefault(), + 37 === t ? s.imgprev(!0) : 39 === t ? s.imgnext(!0) : 27 === t && v.close(s.index)) + } + , + s.tabimg = function(e) { + if (!(o.length <= 1)) + return i.start = s.imgIndex - 1, + v.close(s.index), + v.photos(n, !0, e) + } + , + s.isNumber = function(e) { + return "number" == typeof e && !isNaN(e) + } + , + s.image = {}, + s.getTransform = function(e) { + var t = [] + , i = e.rotate + , n = e.scaleX + , e = e.scale; + return s.isNumber(i) && 0 !== i && t.push("rotate(" + i + "deg)"), + s.isNumber(n) && 1 !== n && t.push("scaleX(" + n + ")"), + s.isNumber(e) && t.push("scale(" + e + ")"), + t.length ? t.join(" ") : "none" + } + , + s.event = function(e, i, n) { + var a, o; + s.main.find(".layui-layer-photos-prev").on("click", function(e) { + e.preventDefault(), + s.imgprev(!0) + }), + s.main.find(".layui-layer-photos-next").on("click", function(e) { + e.preventDefault(), + s.imgnext(!0) + }), + h(document).on("keyup", s.keyup), + e.off("click").on("click", "*[toolbar-event]", function() { + var e = h(this); + switch (e.attr("toolbar-event")) { + case "rotate": + s.image.rotate = ((s.image.rotate || 0) + Number(e.attr("data-option"))) % 360, + s.imgElem.css({ + transform: s.getTransform(s.image) + }); + break; + case "scalex": + s.image.scaleX = -1 === s.image.scaleX ? 1 : -1, + s.imgElem.css({ + transform: s.getTransform(s.image) + }); + break; + case "zoom": + var t = Number(e.attr("data-option")); + s.image.scale = (s.image.scale || 1) + t, + t < 0 && s.image.scale < 0 - t && (s.image.scale = 0 - t), + s.imgElem.css({ + transform: s.getTransform(s.image) + }); + break; + case "reset": + s.image.scaleX = 1, + s.image.scale = 1, + s.image.rotate = 0, + s.imgElem.css({ + transform: "none" + }); + break; + case "close": + v.close(i) + } + n.offset(), + n.auto(i) + }), + s.main.on("mousewheel DOMMouseScroll", function(e) { + var t = e.originalEvent.wheelDelta || -e.originalEvent.detail + , i = s.main.find('[toolbar-event="zoom"]'); + (0 < t ? i.eq(0) : i.eq(1)).trigger("click"), + e.preventDefault() + }), + (p.layui || p.lay) && (a = p.layui.lay || p.lay, + o = function(e, t) { + var i = Date.now() - t.timeStart + , i = t.distanceX / i + , n = g.width() / 3; + (.25 < Math.abs(i) || Math.abs(t.distanceX) > n) && ("left" === t.direction ? s.imgnext(!0) : "right" === t.direction && s.imgprev(!0)) + } + , + h.each([n.shadeo, s.main], function(e, t) { + a.touchSwipe(t, { + onTouchEnd: o + }) + })) + } + , + s.loadi = v.load(1, { + shade: !("shade"in n) && [.9, m, "unset"], + scrollbar: !1 + }); + var t = o[r].src + , f = function(e) { + v.close(s.loadi); + var t, i = o[r].alt || ""; + a && (n.anim = -1), + s.index = v.open(h.extend({ + type: 1, + id: "layui-layer-photos", + area: (e = [e.width, e.height], + t = [h(p).width() - 100, h(p).height() - 100], + !n.full && (t[0] < e[0] || t[1] < e[1]) && ((t = [e[0] / t[0], e[1] / t[1]])[1] < t[0] ? (e[0] = e[0] / t[0], + e[1] = e[1] / t[0]) : t[0] < t[1] && (e[0] = e[0] / t[1], + e[1] = e[1] / t[1])), + [e[0] + "px", e[1] + "px"]), + title: !1, + shade: [.9, m, "unset"], + shadeClose: !0, + closeBtn: !1, + move: ".layer-layer-photos-main img", + moveType: 1, + scrollbar: !1, + moveOut: !0, + anim: 5, + isOutAnim: !1, + skin: "layui-layer-photos" + x("photos"), + content: '
            ' + i + '' + (t = ['
            '], + 1 < o.length && t.push(['
            ', '', '', "
            "].join("")), + n.toolbar && t.push(['
            ', '', '', '', '', '', '', "
            "].join("")), + n.footer && t.push(['"].join("")), + t.push("
            "), + t.join("")) + "
            ", + success: function(e, t, i) { + s.main = e.find(".layer-layer-photos-main"), + s.footer = e.find(".layui-layer-photos-footer"), + s.imgElem = s.main.children("img"), + s.event(e, t, i), + n.tab && n.tab(o[r], e), + "function" == typeof l && l(e) + }, + end: function() { + s.end = !0, + h(document).off("keyup", s.keyup) + } + }, n)) + } + , u = function() { + v.close(s.loadi), + v.msg("\u5f53\u524d\u56fe\u7247\u5730\u5740\u5f02\u5e38\uff0c
            \u662f\u5426\u7ee7\u7eed\u67e5\u770b\u4e0b\u4e00\u5f20\uff1f", { + time: 3e4, + btn: ["\u4e0b\u4e00\u5f20", "\u4e0d\u770b\u4e86"], + yes: function() { + 1 < o.length && s.imgnext(!0, !0) + } + }) + } + , y = new Image; + (y.src = t, + y.complete) ? f(y) : (y.onload = function() { + y.onload = null, + f(y) + } + , + y.onerror = function(e) { + y.onerror = null, + u(e) + } + ) + } + } + , + f.run = function(e) { + g = (h = e)(p); + var e = navigator.userAgent.toLowerCase() + , e = /android|iphone|ipod|ipad|ios/.test(e) + , n = h(p); + e && h.each({ + Height: "height", + Width: "width" + }, function(e, t) { + var i = "inner" + e; + g[t] = function() { + return i in p ? p[i] : n[t]() + } + }), + u.html = h("html"), + v.open = function(e) { + return new t(e).index + } + } + , + p.layui && layui.define ? (v.ready(), + layui.define(["jquery", "lay"], function(e) { + v.path = layui.cache.dir, + f.run(layui.$), + e("layer", p.layer = v) + })) : "function" == typeof define && define.amd ? define(["jquery"], function() { + return f.run(p.jQuery), + v + }) : (v.ready(), + f.run(p.jQuery)) +}(window); +layui.define("jquery", function(t) { + "use strict"; + var s = layui.$ + , p = layui.hint() + , e = { + fixbar: function(i) { + var o, t, e, n, r = "layui-fixbar", a = s(document), c = (i = s.extend(!0, { + target: "body", + bars: [], + "default": !0, + margin: 160, + duration: 320 + }, i), + s(i.target)), u = i.scroll ? s(i.scroll) : s("body" === i.target ? a : c), l = (i["default"] && (i.bar1 && i.bars.push({ + type: "bar1", + icon: "layui-icon-chat" + }), + i.bar2 && i.bars.push({ + type: "bar2", + icon: "layui-icon-help" + }), + i.bars.push({ + type: "top", + icon: "layui-icon-top" + })), + s("
              ").addClass(r)); + layui.each(i.bars, function(t, e) { + var n = s('
            • '); + n.addClass(e.icon).attr({ + "lay-type": e.type, + style: e.style || (i.bgcolor ? "background-color: " + i.bgcolor : "") + }).html(e.content), + n.on("click", function() { + var t = s(this).attr("lay-type"); + "top" === t && ("body" === i.target ? s("html,body") : u).animate({ + scrollTop: 0 + }, i.duration), + "function" == typeof i.click && i.click.call(this, t) + }), + "object" === layui.type(i.on) && layui.each(i.on, function(t, e) { + n.on(t, function() { + var t = s(this).attr("lay-type"); + "function" == typeof e && e.call(this, t) + }) + }), + "top" === e.type && (n.addClass("layui-fixbar-top"), + o = n), + l.append(n) + }), + c.find("." + r).remove(), + "object" == typeof i.css && l.css(i.css), + c.append(l), + o && (e = function e() { + return u.scrollTop() >= i.margin ? t || (o.show(), + t = 1) : t && (o.hide(), + t = 0), + e + }()), + u.on("scroll", function() { + e && (clearTimeout(n), + n = setTimeout(function() { + e() + }, 100)) + }) + }, + countdown: function(i) { + i = s.extend(!0, { + date: new Date, + now: new Date + }, i); + var o = arguments + , r = (1 < o.length && (i.date = new Date(o[0]), + i.now = new Date(o[1]), + i.clock = o[2]), + { + options: i, + clear: function() { + clearTimeout(r.timer) + }, + reload: function(t) { + this.clear(), + s.extend(!0, this.options, { + now: new Date + }, t), + a() + } + }) + , a = ("function" == typeof i.ready && i.ready(), + function c() { + var t = new Date(i.date) + , e = new Date(i.now) + , t = 0 < (t = t.getTime() - e.getTime()) ? t : 0 + , n = { + d: Math.floor(t / 864e5), + h: Math.floor(t / 36e5) % 24, + m: Math.floor(t / 6e4) % 60, + s: Math.floor(t / 1e3) % 60 + }; + return 1 < o.length && (n = [n.d, n.h, n.m, n.s]), + r.timer = setTimeout(function() { + e.setTime(e.getTime() + 1e3), + i.now = e, + a() + }, 1e3), + "function" == typeof i.clock && i.clock(n, r), + t <= 0 && (clearTimeout(r.timer), + "function" == typeof i.done) && i.done(n, r), + c + }()); + return r + }, + timeAgo: function(t, e) { + var n = this + , i = [[], []] + , o = (new Date).getTime() - new Date(t).getTime(); + return 26784e5 < o ? (o = new Date(t), + i[0][0] = n.digit(o.getFullYear(), 4), + i[0][1] = n.digit(o.getMonth() + 1), + i[0][2] = n.digit(o.getDate()), + e || (i[1][0] = n.digit(o.getHours()), + i[1][1] = n.digit(o.getMinutes()), + i[1][2] = n.digit(o.getSeconds())), + i[0].join("-") + " " + i[1].join(":")) : 864e5 <= o ? (o / 1e3 / 60 / 60 / 24 | 0) + " \u5929\u524d" : 36e5 <= o ? (o / 1e3 / 60 / 60 | 0) + " \u5c0f\u65f6\u524d" : 18e4 <= o ? (o / 1e3 / 60 | 0) + " \u5206\u949f\u524d" : o < 0 ? "\u672a\u6765" : "\u521a\u521a" + }, + digit: function(t, e) { + var n = ""; + e = e || 2; + for (var i = (t = String(t)).length; i < e; i++) + n += "0"; + return t < Math.pow(10, e) ? n + (0 | t) : t + }, + toDateString: function(t, e, n) { + var i, o, r, a, c, u, l, s, g, f, d; + return null === t || "" === t ? "" : (i = this, + (o = new Date(function() { + if (t) + return !isNaN(t) && "string" == typeof t ? parseInt(t) : t + }() || new Date)).getDate() ? (r = o.getFullYear(), + a = o.getMonth(), + c = o.getDate(), + u = o.getHours(), + l = o.getMinutes(), + s = o.getSeconds(), + g = o.getMilliseconds(), + f = n && n.customMeridiem || function(t, e) { + t = 100 * t + e; + return t < 600 ? "\u51cc\u6668" : t < 900 ? "\u65e9\u4e0a" : t < 1100 ? "\u4e0a\u5348" : t < 1300 ? "\u4e2d\u5348" : t < 1800 ? "\u4e0b\u5348" : "\u665a\u4e0a" + } + , + d = { + yy: function() { + return String(r).slice(-2) + }, + yyyy: function() { + return i.digit(r, 4) + }, + M: function() { + return String(a + 1) + }, + MM: function() { + return i.digit(a + 1) + }, + d: function() { + return String(c) + }, + dd: function() { + return i.digit(c) + }, + H: function() { + return String(u) + }, + HH: function() { + return i.digit(u) + }, + h: function() { + return String(u % 12 || 12) + }, + hh: function() { + return i.digit(u % 12 || 12) + }, + A: function() { + return f(u, l) + }, + m: function() { + return String(l) + }, + mm: function() { + return i.digit(l) + }, + s: function() { + return String(s) + }, + ss: function() { + return i.digit(s) + }, + SSS: function() { + return i.digit(g, 3) + } + }, + (e = e || "yyyy-MM-dd HH:mm:ss").replace(/\[([^\]]+)]|y{1,4}|M{1,2}|d{1,2}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|SSS/g, function(t, e) { + return e || d[t] && d[t]() || t + })) : (p.error('Invalid millisecond for "util.toDateString(millisecond)"'), + "")) + }, + escape: function(t) { + return t === undefined || null === t ? "" : /[<"'>]|&(?=#[a-zA-Z0-9]+)/g.test(t += "") ? t.replace(/&(?!#?[a-zA-Z0-9]+;)/g, "&").replace(//g, ">").replace(/'/g, "'").replace(/"/g, """) : t + }, + unescape: function(t) { + return t !== undefined && null !== t || (t = ""), + (t += "").replace(/\&/g, "&").replace(/\</g, "<").replace(/\>/g, ">").replace(/\'/g, "'").replace(/\"/g, '"') + }, + openWin: function(t) { + var e = (t = t || {}).window || window.open(t.url || "", t.target, t.specs); + t.url || (e.document.open("text/html", "replace"), + e.document.write(t.content || ""), + e.document.close()) + }, + toVisibleArea: function(t) { + var e, n, i, o, r, a, c, u; + (t = s.extend({ + margin: 160, + duration: 200, + type: "y" + }, t)).scrollElem[0] && t.thisElem[0] && (e = t.scrollElem, + c = t.thisElem, + i = (r = "y" === t.type) ? "top" : "left", + o = e[n = r ? "scrollTop" : "scrollLeft"](), + r = e[r ? "height" : "width"](), + a = e.offset()[i], + u = {}, + (c = c.offset()[i] - a) > r - t.margin || c < t.margin) && (u[n] = c - r / 2 + o, + e.animate(u, t.duration)) + }, + on: function(i, o, t) { + "object" == typeof i && (t = o || {}, + o = i, + i = t.attr || "lay-on"); + var e, n = (t = s.extend({ + elem: "body", + trigger: "click" + }, "object" == typeof t ? t : { + trigger: t + })).elem = s(t.elem), r = "[" + i + "]", a = "UTIL_ON_DATA"; + if (n[0]) + return n.data(a) || n.data(a, { + events: {} + }), + a = n.data(a), + e = i + "_" + t.trigger, + o = a.events[e] = s.extend(!0, a.events[e], o), + e = t.trigger + ".lay_util_on", + n.off(e, r), + n.on(e, r, function(t) { + var e = s(this) + , n = e.attr(i); + "function" == typeof o[n] && o[n].call(this, e, t) + }), + o + } + }; + e.event = e.on, + t("util", e) +}); +layui.define(["jquery", "laytpl", "lay", "util"], function(e) { + "use strict"; + var n, i, t, c = layui.$, m = layui.laytpl, p = layui.util, o = (layui.hint(), + layui.device().mobile ? "touchstart" : "mousedown"), r = "dropdown", f = "layui_dropdown_index_opened", y = "lay-" + r + "-id", h = { + config: { + customName: { + id: "id", + title: "title", + children: "child" + } + }, + index: layui[r] ? layui[r].index + 1e4 : 0, + set: function(e) { + var i = this; + return i.config = c.extend({}, i.config, e), + i + }, + on: function(e, i) { + return layui.onevent.call(this, r, e, i) + } + }, g = function() { + var i = this + , e = i.config + , t = e.id; + return { + config: e, + reload: function(e) { + i.reload.call(i, e) + }, + reloadData: function(e) { + h.reloadData(t, e) + }, + close: function() { + i.remove() + }, + open: function() { + i.render() + } + } + }, a = "layui-dropdown", l = "layui-menu-item-up", d = "layui-menu-item-down", v = "layui-menu-body-title", s = "layui-menu-item-group", w = "layui-menu-item-parent", u = "layui-menu-item-checked", C = "layui-menu-item-checked2", E = "layui-menu-body-panel", x = "layui-menu-body-panel-left", k = "layui-dropdown-shade", b = "." + s + ">." + v, T = function(e) { + var i = this; + i.index = ++h.index, + i.config = c.extend({}, i.config, h.config, e), + i.init() + }; + T.prototype.config = { + trigger: "click", + content: "", + className: "", + style: "", + show: !1, + isAllowSpread: !0, + isSpreadItem: !0, + data: [], + delay: [200, 300], + shade: 0, + accordion: !1, + closeOnClick: !0 + }, + T.prototype.reload = function(e, i) { + var t = this; + t.config = c.extend({}, t.config, e), + t.init(!0, i) + } + , + T.prototype.init = function(e, i) { + var t = this + , n = t.config + , a = c(n.elem); + return 1 < a.length ? (layui.each(a, function() { + h.render(c.extend({}, n, { + elem: this + })) + }), + t) : (c.extend(n, lay.options(a[0])), + !e && a.attr(y) ? (e = g.getThis(a.attr(y))) ? e.reload(n, i) : void 0 : (n.elem = c(n.elem), + n.target = c("body"), + n.id = "id"in n ? n.id : a.attr("id") || t.index, + g.that[n.id] = t, + a.attr(y, n.id), + n.customName = c.extend({}, h.config.customName, n.customName), + "hover" === n.trigger && (n.trigger = "mouseenter"), + (n.show || "reloadData" === i && t.mainElem && n.target.find(t.mainElem.get(0)).length) && t.render(i), + void t.events())) + } + , + T.prototype.render = function(e) { + var i, l = this, d = l.config, s = d.customName, u = function(r, e) { + return layui.each(e, function(e, i) { + var t, n = i[s.children] && 0 < i[s.children].length, a = ("isSpreadItem"in i ? i : d).isSpreadItem, l = (o = p.escape(i[s.title]), + l = i.templet || d.templet, + o = l ? "function" == typeof l ? l(i) : m(l).render(i) : o), o = (n && (i.type = i.type || "parent"), + i.type ? { + group: "group", + parent: "parent", + "-": "-" + }[i.type] || "parent" : ""); + ("-" === o || i[s.title] || i[s.id] || n) && ((l = c(["", (t = "href"in i ? '' + l + "" : l, + n ? '
              ' + t + ("parent" === o ? '' : "group" === o && d.isAllowSpread ? '' : "") + "
              " : '
              ' + t + "
              "), "
            • "].join(""))).data("item", i), + n && (a = c('
              '), + t = c("
                "), + "parent" === o ? (a.append(u(t, i[s.children])), + l.append(a)) : l.append(u(t, i[s.children]))), + r.append(l)) + }), + r + }, t = ['
                ', "
                "].join(""), n = d.content || (n = c('
                  '), + 0 < d.data.length ? u(n, d.data) : n.html('
                • \u6682\u65e0\u6570\u636e
                • '), + n), a = g.findMainElem(d.id); + "reloadData" === e && a.length ? (i = l.mainElem = a).html(n) : ((i = l.mainElem = c(t)).append(n), + i.addClass(d.className), + i.attr("style", d.style), + l.remove(h.thisId), + d.target.append(i), + d.elem.data(f, !0), + e = d.shade ? '
                  ' : "", + i.before(e), + "mouseenter" === d.trigger && i.on("mouseenter", function() { + clearTimeout(g.timer) + }).on("mouseleave", function() { + l.delayRemove() + })), + l.position(), + h.thisId = d.id, + i.find(".layui-menu").on(o, function(e) { + layui.stope(e) + }), + i.find(".layui-menu li").on("click", function(e) { + var i = c(this) + , t = i.data("item") || {} + , n = t[s.children] && 0 < t[s.children].length + , a = "all" === d.clickScope; + t.disabled || n && !a || "-" === t.type || (!1 === ("function" == typeof d.click ? d.click(t, i, e) : null) || n || l.remove(), + layui.stope(e)) + }), + i.find(b).on("click", function(e) { + var i = c(this).parent(); + "group" === (i.data("item") || {}).type && d.isAllowSpread && g.spread(i, d.accordion) + }), + "function" == typeof d.ready && d.ready(i, d.elem) + } + , + T.prototype.position = function(e) { + var i = this.config; + lay.position(i.elem[0], this.mainElem[0], { + position: i.position, + e: this.e, + clickType: "contextmenu" === i.trigger ? "right" : null, + align: i.align || null + }) + } + , + T.prototype.remove = function(e) { + e = e || this.config.id; + var i = g.getThis(e); + i && (i = i.config, + (e = g.findMainElem(e))[0]) && (e.prev("." + k).remove(), + e.remove(), + i.elem.removeData(f), + delete h.thisId, + "function" == typeof i.close) && i.close(i.elem) + } + , + T.prototype.normalizedDelay = function() { + var e = this.config + , e = [].concat(e.delay); + return { + show: e[0], + hide: e[1] !== undefined ? e[1] : e[0] + } + } + , + T.prototype.delayRemove = function() { + var e = this; + e.config; + clearTimeout(g.timer), + g.timer = setTimeout(function() { + e.remove() + }, e.normalizedDelay().hide) + } + , + T.prototype.events = function() { + var t = this + , n = t.config + , a = "mouseenter" === n.trigger + , e = n.trigger + ".lay_dropdown_render"; + t.thisEventElem && t.thisEventElem.off(e), + t.thisEventElem = n.elem, + n.elem.off(e).on(e, function(e) { + clearTimeout(g.timer), + t.e = e; + var i = n.elem.data(f); + a ? i || (g.timer = setTimeout(function() { + t.render() + }, t.normalizedDelay().show)) : n.closeOnClick && i && "click" === n.trigger ? t.remove() : t.render(), + e.preventDefault() + }), + a && n.elem.on("mouseleave", function() { + t.delayRemove() + }) + } + , + g.that = {}, + g.getThis = function(e) { + if (e === undefined) + throw new Error("ID argument required"); + return g.that[e] + } + , + g.findMainElem = function(e) { + return c("." + a + "[" + y + '="' + e + '"]') + } + , + g.spread = function(e, i) { + var t = e.children("ul") + , n = e.hasClass(l) + , a = function() { + c(this).css({ + display: "" + }) + }; + t.is(":animated") || (n ? (e.removeClass(l).addClass(d), + t.hide().stop().slideDown(200, a)) : (t.stop().slideUp(200, a), + e.removeClass(d).addClass(l)), + n && i && ((t = e.siblings("." + d)).children("ul").stop().slideUp(200, a), + t.removeClass(d).addClass(l))) + } + , + n = c(window), + i = c(document), + n.on("resize", function() { + if (h.thisId) { + var e = g.getThis(h.thisId); + if (e) + return !(e.mainElem && !e.mainElem[0] || !c("." + a)[0]) && void ("contextmenu" === e.config.trigger ? e.remove() : e.position()) + } + }), + lay(i).on(o, function(e) { + if (h.thisId) { + var i = g.getThis(h.thisId); + if (i) { + var t = i.config + , n = lay.isTopElem(t.elem[0]) + , a = "contextmenu" === t.trigger + , n = !(n || a) && (t.elem[0] === e.target || t.elem.find(e.target)[0]) + , a = i.mainElem && (e.target === i.mainElem[0] || i.mainElem.find(e.target)[0]); + if (!n && !a) { + if ("touchstart" === e.type && t.elem.data(f) && c(e.target).hasClass(k) && e.preventDefault(), + "function" == typeof t.onClickOutside) + if (!1 === t.onClickOutside(e)) + return; + i.remove() + } + } + } + }, { + passive: !1 + }), + t = ".layui-menu:not(.layui-dropdown-menu) li", + i.on("click", t, function(e) { + var i = c(this) + , t = i.parents(".layui-menu").eq(0) + , n = i.hasClass(s) || i.hasClass(w) + , a = t.attr("lay-filter") || t.attr("id") + , l = lay.options(this); + i.hasClass("layui-menu-item-divider") || n || (t.find("." + u).removeClass(u), + t.find("." + C).removeClass(C), + i.addClass(u), + i.parents("." + w).addClass(C), + l.title = l.title || c.trim(i.children("." + v).text()), + layui.event.call(this, r, "click(" + a + ")", l)) + }), + i.on("click", t + b, function(e) { + var i = c(this) + , t = i.parents("." + s + ":eq(0)") + , n = lay.options(t[0]) + , i = "string" == typeof i.parents(".layui-menu").eq(0).attr("lay-accordion"); + "isAllowSpread"in n && !n.isAllowSpread || g.spread(t, i) + }), + t = ".layui-menu ." + w, + i.on("mouseenter", t, function(e) { + var i, t = c(this).find("." + E); + t[0] && ((i = t[0].getBoundingClientRect()).right > n.width() && (t.addClass(x), + (i = t[0].getBoundingClientRect()).left < 0) && t.removeClass(x), + i.bottom > n.height()) && t.eq(0).css("margin-top", -(i.bottom - n.height() + 5)) + }).on("mouseleave", t, function(e) { + var i = c(this).children("." + E); + i.removeClass(x), + i.css("margin-top", 0) + }), + h.close = function(e) { + e = g.getThis(e); + return e ? (e.remove(), + g.call(e)) : this + } + , + h.open = function(e) { + e = g.getThis(e); + return e ? (e.render(), + g.call(e)) : this + } + , + h.reload = function(e, i, t) { + e = g.getThis(e); + return e ? (e.reload(i, t), + g.call(e)) : this + } + , + h.reloadData = function() { + var t = c.extend([], arguments) + , n = (t[2] = "reloadData", + new RegExp("^(" + ["data", "templet", "content"].join("|") + ")$")); + return layui.each(t[1], function(e, i) { + n.test(e) || delete t[1][e] + }), + h.reload.apply(null, t) + } + , + h.render = function(e) { + e = new T(e); + return g.call(e) + } + , + e(r, h) +}); +layui.define(["jquery", "lay"], function(e) { + "use strict"; + var x = layui.$ + , b = layui.lay + , m = { + config: {}, + index: layui.slider ? layui.slider.index + 1e4 : 0, + set: function(e) { + var t = this; + return t.config = x.extend({}, t.config, e), + t + }, + on: function(e, t) { + return layui.onevent.call(this, i, e, t) + } + } + , i = "slider" + , f = "layui-disabled" + , T = "layui-slider-bar" + , w = "layui-slider-wrap" + , M = "layui-slider-wrap-btn" + , L = "layui-slider-tips" + , E = "layui-slider-input-txt" + , Y = "layui-slider-hover" + , t = function(e) { + var t = this; + t.index = ++m.index, + t.config = x.extend({}, t.config, m.config, e), + t.render() + }; + t.prototype.config = { + type: "default", + min: 0, + max: 100, + value: 0, + step: 1, + showstep: !1, + tips: !0, + tipsAlways: !1, + input: !1, + range: !1, + height: 200, + disabled: !1, + theme: "#16baaa" + }, + t.prototype.precision = function() { + var e = this.config + , e = x.map([e.min, e.max, e.step], function(e, t) { + e = String(e).split("."); + return e[1] ? e[1].length : 0 + }); + return Math.max.apply(null, e) + } + , + t.prototype.render = function() { + var n = this + , a = n.config + , e = x(a.elem); + if (1 < e.length) + return layui.each(e, function() { + m.render(x.extend({}, a, { + elem: this + })) + }), + n; + x.extend(a, b.options(e[0])), + a.step <= 0 && (a.step = 1), + a.max < a.min && (a.max = a.min + a.step), + a.range ? (a.value = "object" == typeof a.value ? a.value : [a.min, a.value], + e = Math.min(a.value[0], a.value[1]), + i = Math.max(a.value[0], a.value[1]), + a.value[0] = Math.max(e, a.min), + a.value[1] = Math.max(i, a.min), + a.value[0] = Math.min(a.value[0], a.max), + a.value[1] = Math.min(a.value[1], a.max), + i = (a.value[0] - a.min) / (a.max - a.min) * 100, + l = (s = (a.value[1] - a.min) / (a.max - a.min) * 100) - i + "%", + i += "%", + s += "%") : ("object" == typeof a.value && (a.value = Math.min.apply(null, a.value)), + a.value < a.min && (a.value = a.min), + a.value > a.max && (a.value = a.max), + l = (a.value - a.min) / (a.max - a.min) * 100 + "%"); + var t, e = a.disabled ? "#c2c2c2" : a.theme, i = '
                  ' + (a.tips ? '
                  " : "") + '
                  ' + (a.range ? '
                  ' : "") + "
                  ", l = x(a.elem), s = l.next(".layui-slider"); + if (s[0] && s.remove(), + n.elemTemp = x(i), + a.range ? (n.elemTemp.find("." + w).eq(0).data("value", a.value[0]), + n.elemTemp.find("." + w).eq(1).data("value", a.value[1])) : n.elemTemp.find("." + w).data("value", a.value), + l.html(n.elemTemp), + "vertical" === a.type && n.elemTemp.height(a.height + "px"), + a.showstep) { + for (var o = (a.max - a.min) / a.step, r = "", u = 1; u < 1 + o; u++) { + var c = 100 * u / o; + c < 100 && (r += '
                  ') + } + n.elemTemp.append(r) + } + function d(e) { + e = e.parent().data("value"), + e = a.setTips ? a.setTips(e) : e; + n.elemTemp.find("." + L).html(e) + } + function p(e) { + var t = "vertical" === a.type ? a.height : n.elemTemp[0].offsetWidth + , i = n.elemTemp.find("." + w); + return ("vertical" === a.type ? t - e.parent()[0].offsetTop - i.height() : e.parent()[0].offsetLeft) / t * 100 + } + function v(e) { + "vertical" === a.type ? n.elemTemp.find("." + L).css({ + bottom: e + "%", + "margin-bottom": "20px", + display: "inline-block" + }) : n.elemTemp.find("." + L).css({ + left: e + "%", + display: "inline-block" + }) + } + a.input && !a.range && (e = x('
                  '), + l.css("position", "relative"), + l.append(e), + l.find("." + E).children("input").val(a.value), + "vertical" === a.type ? e.css({ + left: 0, + top: -48 + }) : n.elemTemp.css("margin-right", e.outerWidth() + 15)), + a.disabled ? (n.elemTemp.addClass(f), + n.elemTemp.find("." + M).addClass(f)) : n.slide(), + a.tips && (a.tipsAlways ? (d(s = n.elemTemp.find("." + M)), + v(p(s))) : n.elemTemp.find("." + M).on("mouseover", function() { + d(x(this)); + var e = p(x(this)); + clearTimeout(t), + t = setTimeout(function() { + v(e) + }, 300) + }).on("mouseout", function() { + clearTimeout(t), + a.tipsAlways || n.elemTemp.find("." + L).css("display", "none") + })) + } + , + t.prototype.slide = function(e, t, i) { + var u = this + , c = u.config + , d = u.elemTemp + , p = function() { + return "vertical" === c.type ? c.height : d[0].offsetWidth + } + , v = d.find("." + w) + , o = d.next(".layui-slider-input") + , r = o.children("." + E).children("input").val() + , m = 100 / ((c.max - c.min) / c.step) + , f = u.precision() + , h = function(e, t, i) { + e = (e = 100 < (e = 100 < Math.ceil(e) * m ? Math.ceil(e) * m : Math.round(e) * m) ? 100 : e) < 0 ? 0 : e, + v.eq(t).css("vertical" === c.type ? "bottom" : "left", e + "%"); + var n, a = y(v[0].offsetLeft), l = c.range ? y(v[1].offsetLeft) : 0, s = ("vertical" === c.type ? (d.find("." + L).css({ + bottom: e + "%", + "margin-bottom": "20px" + }), + a = y(p() - v[0].offsetTop - v.height()), + l = c.range ? y(p() - v[1].offsetTop - v.height()) : 0) : d.find("." + L).css("left", e + "%"), + a = 100 < a ? 100 : a, + l = 100 < l ? 100 : l, + Math.min(a, l)), a = Math.abs(a - l), l = ("vertical" === c.type ? d.find("." + T).css({ + height: a + "%", + bottom: s + "%" + }) : d.find("." + T).css({ + width: a + "%", + left: s + "%" + }), + c.min + (c.max - c.min) * e / 100), l = Number(parseFloat(l).toFixed(f)); + r = l, + o.children("." + E).children("input").val(r), + v.eq(t).data("value", l), + d.find("." + L).html(c.setTips ? c.setTips(l) : l), + c.range && (n = [v.eq(0).data("value"), v.eq(1).data("value")])[0] > n[1] && n.reverse(), + u.value = c.range ? n : l, + c.change && c.change(u.value), + "done" === i && c.done && c.done(u.value) + } + , y = function(e) { + var t = e / p() * 100 / m + , i = Math.round(t) * m; + return i = e == p() ? Math.ceil(t) * m : i + } + , g = x(['
                  p() ? p() : t) / p() * 100 / m; + h(t, o), + r.addClass(Y), + d.find("." + L).show(), + e.preventDefault() + } + , + n = function(e) { + r.removeClass(Y), + c.tipsAlways || setTimeout(function() { + d.find("." + L).hide() + }, e) + } + , + a = function() { + n && n(b.touchEventsSupported() ? 1e3 : 0), + g.remove(), + c.done && c.done(u.value), + b.touchEventsSupported() && (t[0].removeEventListener("touchmove", i, !!b.passiveSupported && { + passive: !1 + }), + t[0].removeEventListener("touchend", a), + t[0].removeEventListener("touchcancel", a)) + } + , + x("#LAY-slider-moving")[0] || x("body").append(g), + g.on("mousemove", i), + g.on("mouseup", a).on("mouseleave", a), + b.touchEventsSupported() && (t[0].addEventListener("touchmove", i, !!b.passiveSupported && { + passive: !1 + }), + t[0].addEventListener("touchend", a), + t[0].addEventListener("touchcancel", a)) + }) + }), + d.on("click", function(e) { + var t = x("." + M) + , i = x(this); + !t.is(event.target) && 0 === t.has(event.target).length && t.length && (i = (t = (t = (t = "vertical" === c.type ? p() - e.clientY + i.offset().top - x(window).scrollTop() : e.clientX - i.offset().left - x(window).scrollLeft()) < 0 ? 0 : t) > p() ? p() : t) / p() * 100 / m, + t = c.range ? "vertical" === c.type ? Math.abs(t - parseInt(x(v[0]).css("bottom"))) > Math.abs(t - parseInt(x(v[1]).css("bottom"))) ? 1 : 0 : Math.abs(t - v[0].offsetLeft) > Math.abs(t - v[1].offsetLeft) ? 1 : 0 : 0, + h(i, t, "done"), + e.preventDefault()) + }), + o.children(".layui-slider-input-btn").children("i").each(function(t) { + x(this).on("click", function() { + r = o.children("." + E).children("input").val(); + var e = ((r = 1 == t ? r - c.step < c.min ? c.min : Number(r) - c.step : Number(r) + c.step > c.max ? c.max : Number(r) + c.step) - c.min) / (c.max - c.min) * 100 / m; + h(e, 0, "done") + }) + }); + var n = function() { + var e = this.value + , e = (e = (e = (e = isNaN(e) ? 0 : e) < c.min ? c.min : e) > c.max ? c.max : e, + ((this.value = e) - c.min) / (c.max - c.min) * 100 / m); + h(e, 0, "done") + }; + o.children("." + E).children("input").on("keydown", function(e) { + 13 === e.keyCode && (e.preventDefault(), + n.call(this)) + }).on("change", n) + } + , + t.prototype.events = function() { + this.config + } + , + m.render = function(e) { + e = new t(e); + return function() { + var i = this + , n = i.config; + return { + setValue: function(e, t) { + return e = (e = e > n.max ? n.max : e) < n.min ? n.min : e, + n.value = e, + i.slide("set", e, t || 0) + }, + config: n + } + } + .call(e) + } + , + e(i, m) +}); +layui.define(["jquery", "lay"], function(e) { + "use strict"; + var x = layui.$ + , P = layui.lay + , o = layui.hint() + , i = layui.device().mobile ? "click" : "mousedown" + , r = { + config: {}, + index: layui.colorpicker ? layui.colorpicker.index + 1e4 : 0, + set: function(e) { + var i = this; + return i.config = x.extend({}, i.config, e), + i + }, + on: function(e, i) { + return layui.onevent.call(this, "colorpicker", e, i) + } + } + , n = function() { + var e = this.config + , i = e.id; + return n.that[i] = this, + { + config: e + } + } + , t = "colorpicker" + , l = "layui-colorpicker" + , c = ".layui-colorpicker-main" + , C = "layui-icon-down" + , w = "layui-icon-close" + , T = "layui-colorpicker-trigger-span" + , B = "layui-colorpicker-trigger-i" + , I = "layui-colorpicker-side-slider" + , E = "layui-colorpicker-basis" + , D = "layui-colorpicker-alpha-bgcolor" + , Y = "layui-colorpicker-alpha-slider" + , M = "layui-colorpicker-basis-cursor" + , X = "layui-colorpicker-main-input" + , j = function(e) { + var i = { + h: 0, + s: 0, + b: 0 + } + , o = Math.min(e.r, e.g, e.b) + , t = Math.max(e.r, e.g, e.b) + , n = t - o; + return i.b = t, + i.s = 0 !== t ? 255 * n / t : 0, + 0 !== i.s ? e.r == t ? i.h = (e.g - e.b) / n : e.g == t ? i.h = 2 + (e.b - e.r) / n : i.h = 4 + (e.r - e.g) / n : i.h = -1, + t === o && (i.h = 0), + i.h *= 60, + i.h < 0 && (i.h += 360), + i.s *= 100 / 255, + i.b *= 100 / 255, + i + } + , F = function(e) { + var i, o = {}, t = e.h, n = 255 * e.s / 100, e = 255 * e.b / 100; + return 0 == n ? o.r = o.g = o.b = e : (e = t % 60 * ((i = e) - (n = (255 - n) * e / 255)) / 60, + (t = 360 === t ? 0 : t) < 60 ? (o.r = i, + o.b = n, + o.g = n + e) : t < 120 ? (o.g = i, + o.b = n, + o.r = i - e) : t < 180 ? (o.g = i, + o.r = n, + o.b = n + e) : t < 240 ? (o.b = i, + o.r = n, + o.g = i - e) : t < 300 ? (o.b = i, + o.g = n, + o.r = n + e) : t < 360 ? (o.r = i, + o.g = n, + o.b = i - e) : (o.r = 0, + o.g = 0, + o.b = 0)), + { + r: Math.round(o.r), + g: Math.round(o.g), + b: Math.round(o.b) + } + } + , H = function(e) { + var e = F(e) + , o = [e.r.toString(16), e.g.toString(16), e.b.toString(16)]; + return x.each(o, function(e, i) { + 1 === i.length && (o[e] = "0" + i) + }), + o.join("") + } + , L = function(e) { + e = e.match(/[0-9]{1,3}/g) || []; + return { + r: e[0], + g: e[1], + b: e[2] + } + } + , W = x(window) + , a = x(document) + , s = function(e) { + this.index = ++r.index, + this.config = x.extend({}, this.config, r.config, e), + this.render() + }; + s.prototype.config = { + color: "", + size: null, + alpha: !1, + format: "hex", + predefine: !1, + colors: ["#16baaa", "#16b777", "#1E9FFF", "#FF5722", "#FFB800", "#01AAED", "#999", "#c00", "#ff8c00", "#ffd700", "#90ee90", "#00ced1", "#1e90ff", "#c71585", "rgb(0, 186, 189)", "rgb(255, 120, 0)", "rgb(250, 212, 0)", "#393D49", "rgba(0,0,0,.5)", "rgba(255, 69, 0, 0.68)", "rgba(144, 240, 144, 0.5)", "rgba(31, 147, 255, 0.73)"] + }, + s.prototype.render = function() { + var e = this + , i = e.config; + if (1 < (t = x(i.elem)).length) + return layui.each(t, function() { + r.render(x.extend({}, i, { + elem: this + })) + }), + e; + x.extend(i, P.options(t[0])); + var o = x(['
                  ', "", '', '', "", "", "
                  "].join("")) + , t = i.elem = x(i.elem); + i.size && o.addClass("layui-colorpicker-" + i.size), + t.addClass("layui-inline").html(e.elemColorBox = o), + i.id = "id"in i ? i.id : t.attr("id") || e.index, + e.color = e.elemColorBox.find("." + T)[0].style.background, + e.events() + } + , + s.prototype.renderPicker = function() { + var o, e = this, i = e.config, t = e.elemColorBox[0], n = e.elemPicker = x(['
                  ', '
                  ', '
                  ', '
                  ', '
                  ', '
                  ', "
                  ", '
                  ', '
                  ', "
                  ", "
                  ", '
                  ', '
                  ', '
                  ', "
                  ", "
                  ", i.predefine ? (o = ['
                  '], + layui.each(i.colors, function(e, i) { + o.push(['
                  ', '
                  ', "
                  "].join("")) + }), + o.push("
                  "), + o.join("")) : "", '
                  ', '
                  ', '', "
                  ", '
                  ', '', '', "", "
                  "].join("")); + e.elemColorBox.find("." + T)[0]; + x(c)[0] && x(c).data("index") == e.index ? e.removePicker(s.thisElemInd) : (e.removePicker(s.thisElemInd), + x("body").append(n)), + r.thisId = i.id, + s.thisElemInd = e.index, + s.thisColor = t.style.background, + e.position(), + e.pickerEvents() + } + , + s.prototype.removePicker = function(e) { + var i = this.config + , e = x("#layui-colorpicker" + (e || this.index)); + return e[0] && (e.remove(), + delete r.thisId, + "function" == typeof i.close) && i.close(this.color), + this + } + , + s.prototype.position = function() { + var e = this + , i = e.config; + return P.position(e.bindElem || e.elemColorBox[0], e.elemPicker[0], { + position: i.position, + align: "center" + }), + e + } + , + s.prototype.val = function() { + var e, i = this, o = (i.config, + i.elemColorBox.find("." + T)), t = i.elemPicker.find("." + X), n = o[0].style.backgroundColor; + n ? (e = j(L(n)), + o = o.attr("lay-type"), + i.select(e.h, e.s, e.b), + "torgb" === o ? t.find("input").val(n) : "rgba" === o ? (o = L(n), + 3 === (n.match(/[0-9]{1,3}/g) || []).length ? (t.find("input").val("rgba(" + o.r + ", " + o.g + ", " + o.b + ", 1)"), + i.elemPicker.find("." + Y).css("left", 280)) : (t.find("input").val(n), + n = 280 * n.slice(n.lastIndexOf(",") + 1, n.length - 1), + i.elemPicker.find("." + Y).css("left", n)), + i.elemPicker.find("." + D)[0].style.background = "linear-gradient(to right, rgba(" + o.r + ", " + o.g + ", " + o.b + ", 0), rgb(" + o.r + ", " + o.g + ", " + o.b + "))") : t.find("input").val("#" + H(e))) : (i.select(0, 100, 100), + t.find("input").val(""), + i.elemPicker.find("." + D)[0].style.background = "", + i.elemPicker.find("." + Y).css("left", 280)) + } + , + s.prototype.side = function() { + var r = this + , l = r.config + , c = r.elemColorBox.find("." + T) + , a = c.attr("lay-type") + , s = r.elemPicker.find(".layui-colorpicker-side") + , o = r.elemPicker.find("." + I) + , d = r.elemPicker.find("." + E) + , t = r.elemPicker.find("." + M) + , u = r.elemPicker.find("." + D) + , f = r.elemPicker.find("." + Y) + , p = o[0].offsetTop / 180 * 360 + , h = 100 - t[0].offsetTop / 180 * 100 + , g = t[0].offsetLeft / 260 * 100 + , v = Math.round(f[0].offsetLeft / 280 * 100) / 100 + , m = r.elemColorBox.find("." + B) + , e = r.elemPicker.find(".layui-colorpicker-pre").children("div") + , y = function(e, i, o, t) { + r.select(e, i, o); + var n = F({ + h: e, + s: i, + b: o + }) + , e = H({ + h: e, + s: i, + b: o + }) + , i = r.elemPicker.find("." + X).find("input"); + m.addClass(C).removeClass(w), + c[0].style.background = "rgb(" + n.r + ", " + n.g + ", " + n.b + ")", + "torgb" === a ? i.val("rgb(" + n.r + ", " + n.g + ", " + n.b + ")") : "rgba" === a ? (f.css("left", 280 * t), + i.val("rgba(" + n.r + ", " + n.g + ", " + n.b + ", " + t + ")"), + c[0].style.background = "rgba(" + n.r + ", " + n.g + ", " + n.b + ", " + t + ")", + u[0].style.background = "linear-gradient(to right, rgba(" + n.r + ", " + n.g + ", " + n.b + ", 0), rgb(" + n.r + ", " + n.g + ", " + n.b + "))") : i.val("#" + e), + l.change && l.change(x.trim(r.elemPicker.find("." + X).find("input").val())) + } + , i = x(['
                  '].join("")) + , b = function(e) { + x("#LAY-colorpicker-moving")[0] || x("body").append(i), + i.on("mousemove", e), + i.on("mouseup", function() { + i.remove() + }).on("mouseleave", function() { + i.remove() + }) + } + , n = !0 + , k = !0; + o.on("mousedown", function(e, i) { + var t = this.offsetTop + , n = (e.clientY === undefined ? i : e).clientY; + k && layui.stope(e), + b(function(e) { + var i = t + (e.clientY - n) + , o = s[0].offsetHeight + , o = (i = o < (i = i < 0 ? 0 : i) ? o : i) / 180 * 360; + y(p = o, g, h, v), + e.preventDefault() + }), + e.preventDefault() + }), + s.on("mousedown", function(e) { + var i = e.clientY - x(this).offset().top + W.scrollTop() + , i = (i = (i = i < 0 ? 0 : i) > this.offsetHeight ? this.offsetHeight : i) / 180 * 360; + y(p = i, g, h, v), + e.preventDefault(), + n && o.trigger("mousedown", e) + }), + t.on("mousedown", function(e, i) { + var r = this.offsetTop + , l = this.offsetLeft + , c = (e.clientY === undefined ? i : e).clientY + , a = (e.clientX === undefined ? i : e).clientX; + k && layui.stope(e), + b(function(e) { + var i = r + (e.clientY - c) + , o = l + (e.clientX - a) + , t = d[0].offsetHeight + , n = d[0].offsetWidth + , n = (o = n < (o = o < 0 ? 0 : o) ? n : o) / 260 * 100 + , o = 100 - (i = t < (i = i < 0 ? 0 : i) ? t : i) / 180 * 100; + y(p, g = n, h = o, v), + e.preventDefault() + }), + e.preventDefault() + }), + d.on("mousedown", function(e) { + var i = e.clientY - x(this).offset().top + W.scrollTop() + , o = e.clientX - x(this).offset().left + W.scrollLeft() + , o = ((i = i < 0 ? 0 : i) > this.offsetHeight && (i = this.offsetHeight), + (o = (o = o < 0 ? 0 : o) > this.offsetWidth ? this.offsetWidth : o) / 260 * 100) + , i = 100 - i / 180 * 100; + y(p, g = o, h = i, v), + layui.stope(e), + e.preventDefault(), + n && t.trigger("mousedown", e) + }), + f.on("mousedown", function(e, i) { + var t = this.offsetLeft + , n = (e.clientX === undefined ? i : e).clientX; + k && layui.stope(e), + b(function(e) { + var i = t + (e.clientX - n) + , o = u[0].offsetWidth + , o = (o < (i = i < 0 ? 0 : i) && (i = o), + Math.round(i / 280 * 100) / 100); + y(p, g, h, v = o), + e.preventDefault() + }), + e.preventDefault() + }), + u.on("mousedown", function(e) { + var i = e.clientX - x(this).offset().left + , i = ((i = i < 0 ? 0 : i) > this.offsetWidth && (i = this.offsetWidth), + Math.round(i / 280 * 100) / 100); + y(p, g, h, v = i), + e.preventDefault(), + n && f.trigger("mousedown", e) + }), + e.each(function() { + x(this).on("click", function() { + x(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected"); + var e = this.style.backgroundColor + , i = j(L(e)) + , o = e.slice(e.lastIndexOf(",") + 1, e.length - 1); + p = i.h, + g = i.s, + h = i.b, + 3 === (e.match(/[0-9]{1,3}/g) || []).length && (o = 1), + v = o, + y(i.h, i.s, i.b, o) + }) + }), + P.touchEventsSupported() && layui.each([{ + elem: s, + eventType: "mousedown" + }, { + elem: u, + eventType: "mousedown" + }, { + elem: d, + eventType: "mousedown" + }], function(e, t) { + P.touchSwipe(t.elem, { + onTouchStart: function() { + k = n = !1 + }, + onTouchMove: function(e) { + var i, o; + e = e, + i = t.eventType, + e = e.touches[0], + (o = document.createEvent("MouseEvent")).initMouseEvent(i, !0, !0, window, 1, e.screenX, e.screenY, e.clientX, e.clientY, !1, !1, !1, !1, 0, null), + e.target.dispatchEvent(o) + }, + onTouchEnd: function() { + i.remove(), + k = n = !0 + } + }) + }) + } + , + s.prototype.select = function(e, i, o, t) { + this.config; + var n = H({ + h: e, + s: 100, + b: 100 + }) + , e = (H({ + h: e, + s: i, + b: o + }), + e / 360 * 180) + , o = 180 - o / 100 * 180 + , i = i / 100 * 260 + , r = this.elemPicker.find("." + E)[0]; + this.elemPicker.find("." + I).css("top", e), + r.style.background = "#" + n, + this.elemPicker.find("." + M).css({ + top: o / r.offsetHeight * 100 + "%", + left: i / r.offsetWidth * 100 + "%" + }) + } + , + s.prototype.pickerEvents = function() { + var c = this + , a = c.config + , s = c.elemColorBox.find("." + T) + , d = c.elemPicker.find("." + X + " input") + , o = { + clear: function(e) { + s[0].style.background = "", + c.elemColorBox.find("." + B).removeClass(C).addClass(w), + c.color = "", + a.done && a.done(""), + c.removePicker() + }, + confirm: function(e, i) { + var o, t, n, r, l = x.trim(d.val()); + -1 < l.indexOf(",") ? (t = j(L(l)), + c.select(t.h, t.s, t.b), + s[0].style.background = o = "#" + H(t), + 3 < (l.match(/[0-9]{1,3}/g) || []).length && "rgba" === s.attr("lay-type") && (n = 280 * l.slice(l.lastIndexOf(",") + 1, l.length - 1), + c.elemPicker.find("." + Y).css("left", n), + o = s[0].style.background = l)) : (3 === (n = -1 < (n = l).indexOf("#") ? n.substring(1) : n).length && (n = (r = n.split(""))[0] + r[0] + r[1] + r[1] + r[2] + r[2]), + r = { + r: (n = parseInt(n, 16)) >> 16, + g: (65280 & n) >> 8, + b: 255 & n + }, + t = j(r), + s[0].style.background = o = "#" + H(t), + c.elemColorBox.find("." + B).removeClass(w).addClass(C)), + "change" === i ? (c.select(t.h, t.s, t.b, i), + a.change && a.change(o)) : (c.color = l, + a.done && a.done(l), + c.removePicker()) + } + }; + c.elemPicker.on("click", "*[colorpicker-events]", function() { + var e = x(this) + , i = e.attr("colorpicker-events"); + o[i] && o[i].call(this, e) + }), + d.on("keyup", function(e) { + var i = x(this); + o.confirm.call(this, i, 13 === e.keyCode ? null : "change") + }) + } + , + s.prototype.events = function() { + var e = this; + e.config; + e.elemColorBox.on("click", function() { + e.renderPicker(), + x(c)[0] && (e.val(), + e.side()) + }) + } + , + a.on(i, function(e) { + var i, o, t; + r.thisId && (i = n.getThis(r.thisId)) && (o = i.config, + t = i.elemColorBox.find("." + T), + x(e.target).hasClass(l) || x(e.target).parents("." + l)[0] || x(e.target).hasClass(c.replace(/\./g, "")) || x(e.target).parents(c)[0] || i.elemPicker && (i.color ? (e = j(L(i.color)), + i.select(e.h, e.s, e.b)) : i.elemColorBox.find("." + B).removeClass(C).addClass(w), + t[0].style.background = i.color || "", + "function" == typeof o.cancel && o.cancel(i.color), + i.removePicker())) + }), + W.on("resize", function() { + if (r.thisId) { + var e = n.getThis(r.thisId); + if (e) + return !(!e.elemPicker || !x(c)[0]) && void e.position() + } + }), + n.that = {}, + n.getThis = function(e) { + var i = n.that[e]; + return i || o.error(e ? t + " instance with ID '" + e + "' not found" : "ID argument required"), + i + } + , + r.render = function(e) { + e = new s(e); + return n.call(e) + } + , + e(t, r) +}); +layui.define("jquery", function(t) { + "use strict"; + var u = layui.$ + , d = (layui.hint(), + layui.device()) + , r = "element" + , y = "layui-this" + , f = "layui-show" + , c = ".layui-tab-title" + , i = function() { + this.config = {} + } + , h = (i.prototype.set = function(t) { + return u.extend(!0, this.config, t), + this + } + , + i.prototype.on = function(t, i) { + return layui.onevent.call(this, r, t, i) + } + , + i.prototype.tabAdd = function(t, i) { + var a, e = u(".layui-tab[lay-filter=" + t + "]"), l = e.children(c), n = l.children(".layui-tab-bar"), s = e.children(".layui-tab-content"), o = "" + (i.title || "unnaming") + ""; + return n[0] ? n.before(o) : l.append(o), + s.append('
                  " + (i.content || "") + "
                  "), + i.change && this.tabChange(t, i.id), + l.data("LAY_TAB_CHANGE", i.change), + w.tabAuto(i.change ? "change" : null, e), + this + } + , + i.prototype.tabDelete = function(t, i, a) { + t = u(".layui-tab[lay-filter=" + t + "]").children(c).find('>li[lay-id="' + i + '"]'); + return w.tabDelete.call(t[0], { + liElem: t, + force: a + }), + this + } + , + i.prototype.tabChange = function(t, i, a) { + t = u(".layui-tab[lay-filter=" + t + "]").children(c).find('>li[lay-id="' + i + '"]'); + return w.tabClick.call(t[0], { + liElem: t, + force: a + }), + this + } + , + i.prototype.tab = function(a) { + a = a || {}, + e.on("click", a.headerElem, function(t) { + var i = u(a.headerElem).index(u(this)); + w.tabClick.call(this, { + index: i, + options: a + }) + }) + } + , + i.prototype.progress = function(t, i) { + var a = "layui-progress" + , t = u("." + a + "[lay-filter=" + t + "]").find("." + a + "-bar") + , a = t.find("." + a + "-text"); + return t.css("width", function() { + return /^.+\/.+$/.test(i) ? 100 * new Function("return " + i)() + "%" : i + }).attr("lay-percent", i), + a.text(i), + this + } + , + ".layui-nav") + , p = "layui-nav-item" + , b = "layui-nav-bar" + , v = "layui-nav-tree" + , m = "layui-nav-child" + , g = "layui-nav-more" + , C = "layui-anim layui-anim-upbit" + , w = { + tabClick: function(t) { + var i = (t = t || {}).options || {} + , a = t.liElem || u(this) + , e = i.headerElem ? a.parent() : a.parents(".layui-tab").eq(0) + , i = i.bodyElem ? u(i.bodyElem) : e.children(".layui-tab-content").children(".layui-tab-item") + , l = a.find("a") + , l = "javascript:;" !== l.attr("href") && "_blank" === l.attr("target") + , n = "string" == typeof a.attr("lay-unselect") + , s = e.attr("lay-filter") + , o = a.attr("lay-id") + , c = "index"in t ? t.index : a.parent().children("li").index(a); + if (!t.force) { + var t = a.siblings("." + y); + if (!1 === layui.event.call(this, r, "tabBeforeChange(" + s + ")", { + elem: e, + from: { + index: a.parent().children("li").index(t), + id: t.attr("lay-id") + }, + to: { + index: c, + id: o + } + })) + return + } + l || n || (a.addClass(y).siblings().removeClass(y), + (o ? t = (t = i.filter('[lay-id="' + o + '"]')).length ? t : i.eq(c) : i.eq(c)).addClass(f).siblings().removeClass(f)), + layui.event.call(this, r, "tab(" + s + ")", { + elem: e, + index: c, + id: o + }) + }, + tabDelete: function(t) { + var i = (t = t || {}).liElem || u(this).parent() + , a = i.parent().children("li").index(i) + , e = i.closest(".layui-tab") + , l = e.children(".layui-tab-content").children(".layui-tab-item") + , n = e.attr("lay-filter") + , s = i.attr("lay-id"); + if (!t.force && !1 === layui.event.call(i[0], r, "tabBeforeDelete(" + n + ")", { + elem: e, + index: a, + id: s + })) + return; + i.hasClass(y) && (i.next()[0] && i.next().is("li") ? w.tabClick.call(i.next()[0], { + index: a + 1 + }) : i.prev()[0] && i.prev().is("li") && w.tabClick.call(i.prev()[0], null, a - 1)), + i.remove(), + (s ? t = (t = l.filter('[lay-id="' + s + '"]')).length ? t : l.eq(a) : l.eq(a)).remove(), + setTimeout(function() { + w.tabAuto(null, e) + }, 50), + layui.event.call(this, r, "tabDelete(" + n + ")", { + elem: e, + index: a, + id: s + }) + }, + tabAuto: function(l, t) { + var n = "layui-tab-more" + , s = "layui-tab-bar" + , o = "layui-tab-close" + , c = this; + (t || u(".layui-tab")).each(function() { + var t = u(this) + , a = t.children(".layui-tab-title") + , i = (t.children(".layui-tab-content").children(".layui-tab-item"), + 'lay-stope="tabmore"') + , i = u('') + , e = (c === window && d.ie, + t.attr("lay-allowclose")); + e && "false" !== e && a.find("li").each(function() { + var t, i = u(this); + i.find("." + o)[0] || "false" === i.attr("lay-allowclose") || ((t = u('')).on("click", function(t) { + w.tabDelete.call(this, { + e: t + }) + }), + i.append(t)) + }), + "string" != typeof t.attr("lay-unauto") && (a.prop("scrollWidth") > a.outerWidth() + 1 || a.find("li").length && a.height() > (e = a.find("li").eq(0).height()) + e / 2 ? ("change" === l && a.data("LAY_TAB_CHANGE") && a.addClass(n), + a.find("." + s)[0] || (a.append(i), + t.attr("overflow", ""), + i.on("click", function(t) { + var i = a.hasClass(n); + a[i ? "removeClass" : "addClass"](n) + }))) : (a.find("." + s).remove(), + t.removeAttr("overflow"))) + }) + }, + hideTabMore: function(t) { + var i = u(".layui-tab-title"); + !0 !== t && "tabmore" === u(t.target).attr("lay-stope") || (i.removeClass("layui-tab-more"), + i.find(".layui-tab-bar").attr("title", "")) + }, + clickThis: function() { + var t = u(this) + , i = t.closest(h) + , a = i.attr("lay-filter") + , e = t.parent() + , l = t.siblings("." + m) + , n = "string" == typeof e.attr("lay-unselect"); + if ("javascript:;" !== t.attr("href") && "_blank" === t.attr("target") || n || l[0] || (i.find("." + y).removeClass(y), + e.addClass(y)), + i.hasClass(v)) { + var n = p + "ed" + , s = !e.hasClass(n) + , o = function() { + u(this).css({ + display: "" + }), + i.children("." + b).css({ + opacity: 0 + }) + }; + if (l.is(":animated")) + return; + l.removeClass(C), + l[0] && (s ? (l.slideDown(200, o), + e.addClass(n)) : (e.removeClass(n), + l.show().slideUp(200, o)), + "string" != typeof i.attr("lay-accordion") && "all" !== i.attr("lay-shrink") || ((s = e.siblings("." + n)).removeClass(n), + s.children("." + m).show().stop().slideUp(200, o))) + } + layui.event.call(this, r, "nav(" + a + ")", t) + }, + collapse: function() { + var t = u(this) + , i = t.find(".layui-colla-icon") + , a = t.siblings(".layui-colla-content") + , e = t.parents(".layui-collapse").eq(0) + , l = e.attr("lay-filter") + , n = "none" === a.css("display"); + "string" == typeof e.attr("lay-accordion") && ((e = e.children(".layui-colla-item").children("." + f)).siblings(".layui-colla-title").children(".layui-colla-icon").html(""), + e.removeClass(f)), + a[n ? "addClass" : "removeClass"](f), + i.html(n ? "" : ""), + layui.event.call(this, r, "collapse(" + l + ")", { + title: t, + content: a, + show: n + }) + } + } + , a = (i.prototype.render = i.prototype.init = function(t, i) { + var a = "string" == typeof i && i ? '[lay-filter="' + i + '"]' : "" + , e = { + tab: function(t) { + t = t || u(".layui-tab" + a); + w.tabAuto.call({}, null, t) + }, + nav: function(t) { + var s = {} + , o = {} + , c = {} + , r = "layui-nav-title"; + (t || u(h + a)).each(function(t) { + var i = u(this) + , a = u('') + , e = i.find("." + p) + , l = i.find("." + b); + l[0] && l.remove(), + i.append(a), + (i.hasClass(v) ? e.find("dd,>." + r) : e).off("mouseenter.lay_nav").on("mouseenter.lay_nav", function() { + !function(t, i, a) { + var e, l = u(this), n = l.find("." + m); + i.hasClass(v) ? n[0] || (e = l.children("." + r), + t.css({ + top: l.offset().top - i.offset().top, + height: (e[0] ? e : l).outerHeight(), + opacity: 1 + })) : (n.addClass(C), + n.hasClass("layui-nav-child-c") && n.css({ + left: -(n.outerWidth() - l.width()) / 2 + }), + n[0] ? t.css({ + left: t.position().left + t.width() / 2, + width: 0, + opacity: 0 + }) : t.css({ + left: l.position().left + parseFloat(l.css("marginLeft")), + top: l.position().top + l.height() - t.height() + }), + s[a] = setTimeout(function() { + t.css({ + width: n[0] ? 0 : l.width(), + opacity: n[0] ? 0 : 1 + }) + }, d.ie && d.ie < 10 ? 0 : 200), + clearTimeout(c[a]), + "block" === n.css("display") && clearTimeout(o[a]), + o[a] = setTimeout(function() { + n.addClass(f), + l.find("." + g).addClass(g + "d") + }, 300)) + } + .call(this, a, i, t) + }).off("mouseleave.lay_nav").on("mouseleave.lay_nav", function() { + i.hasClass(v) ? a.css({ + height: 0, + opacity: 0 + }) : (clearTimeout(o[t]), + o[t] = setTimeout(function() { + i.find("." + m).removeClass(f), + i.find("." + g).removeClass(g + "d") + }, 300)) + }), + i.off("mouseleave.lay_nav").on("mouseleave.lay_nav", function() { + clearTimeout(s[t]), + c[t] = setTimeout(function() { + i.hasClass(v) || a.css({ + width: 0, + left: a.position().left + a.width() / 2, + opacity: 0 + }) + }, 200) + }), + e.find("a").each(function() { + var t = u(this); + t.parent(); + t.siblings("." + m)[0] && !t.children("." + g)[0] && t.append(''), + t.off("click", w.clickThis).on("click", w.clickThis) + }) + }) + }, + breadcrumb: function(t) { + (t || u(".layui-breadcrumb" + a)).each(function() { + var t = u(this) + , i = "lay-separator" + , a = t.attr(i) || "/" + , e = t.find("a"); + e.next("span[" + i + "]")[0] || (e.each(function(t) { + t !== e.length - 1 && u(this).after("" + a + "") + }), + t.css("visibility", "visible")) + }) + }, + progress: function(t) { + var e = "layui-progress"; + (t || u("." + e + a)).each(function() { + var t = u(this) + , i = t.find(".layui-progress-bar") + , a = i.attr("lay-percent"); + i.css("width", function() { + return /^.+\/.+$/.test(a) ? 100 * new Function("return " + a)() + "%" : a + }), + t.attr("lay-showpercent") && setTimeout(function() { + i.html('' + a + "") + }, 350) + }) + }, + collapse: function(t) { + (t || u(".layui-collapse" + a)).each(function() { + u(this).find(".layui-colla-item").each(function() { + var t = u(this) + , i = t.find(".layui-colla-title") + , t = "none" === t.find(".layui-colla-content").css("display"); + i.find(".layui-colla-icon").remove(), + i.append('' + (t ? "" : "") + ""), + i.off("click", w.collapse).on("click", w.collapse) + }) + }) + } + }; + return t && "object" == typeof i && i instanceof u ? e[t](i) : e[t] ? e[t]() : layui.each(e, function(t, i) { + i() + }) + } + , + new i) + , e = u(document); + u(function() { + a.render() + }), + e.on("click", ".layui-tab-title li", w.tabClick), + u(window).on("resize", w.tabAuto), + t(r, a) +}); +layui.define(["lay", "layer"], function(e) { + "use strict"; + var F = layui.$ + , a = layui.lay + , t = layui.layer + , R = layui.device() + , i = "upload" + , s = "layui_" + i + "_index" + , w = { + config: {}, + index: layui[i] ? layui[i].index + 1e4 : 0, + set: function(e) { + var t = this; + return t.config = F.extend({}, t.config, e), + t + }, + on: function(e, t) { + return layui.onevent.call(this, i, e, t) + } + } + , o = function() { + var t = this + , e = t.config.id; + return { + upload: function(e) { + t.upload.call(t, e) + }, + reload: function(e) { + t.reload.call(t, e) + }, + config: (o.that[e] = t).config + } + } + , r = "layui-upload-file" + , l = "layui-upload-form" + , E = "layui-upload-iframe" + , L = "layui-upload-choose" + , T = "UPLOADING" + , D = function(e) { + var t = this; + t.index = ++w.index, + t.config = F.extend({}, t.config, w.config, e), + t.render() + }; + D.prototype.config = { + accept: "images", + exts: "", + auto: !0, + bindAction: "", + url: "", + force: "", + field: "file", + acceptMime: "", + method: "post", + data: {}, + drag: !0, + size: 0, + number: 0, + multiple: !1, + text: { + "cross-domain": "Cross-domain requests are not supported", + "data-format-error": "Please return JSON data format", + "check-error": "", + error: "", + "limit-number": null, + "limit-size": null + } + }, + D.prototype.reload = function(e) { + var t = this; + t.config = F.extend({}, t.config, e), + t.render(!0) + } + , + D.prototype.render = function(e) { + var t = this + , i = t.config + , n = F(i.elem); + return 1 < n.length ? (layui.each(n, function() { + w.render(F.extend({}, i, { + elem: this + })) + }), + t) : (F.extend(i, a.options(n[0], { + attr: n.attr("lay-data") ? "lay-data" : null + })), + !e && n[0] && n.data(s) ? (e = o.getThis(n.data(s))) ? e.reload(i) : void 0 : (i.elem = F(i.elem), + i.bindAction = F(i.bindAction), + i.id = "id"in i ? i.id : n.attr("id") || t.index, + t.file(), + void t.events())) + } + , + D.prototype.file = function() { + var e = this + , t = e.config + , i = e.elemFile = F(['"].join("")) + , n = t.elem.next(); + (n.hasClass(r) || n.hasClass(l)) && n.remove(), + R.ie && R.ie < 10 && t.elem.wrap('
                  '), + e.isFile() ? (e.elemFile = t.elem, + t.field = t.elem[0].name) : t.elem.after(i), + R.ie && R.ie < 10 && e.initIE() + } + , + D.prototype.initIE = function() { + var i, e = this.config, t = F(''), n = F(['
                  ', "
                  "].join("")); + F("#" + E)[0] || F("body").append(t), + e.elem.next().hasClass(l) || (this.elemFile.wrap(n), + e.elem.next("." + l).append((i = [], + layui.each(e.data, function(e, t) { + t = "function" == typeof t ? t() : t, + i.push('') + }), + i.join("")))) + } + , + D.prototype.msg = function(e) { + return t.msg(e, { + icon: 2, + shift: 6 + }) + } + , + D.prototype.isFile = function() { + var e = this.config.elem[0]; + if (e) + return "input" === e.tagName.toLocaleLowerCase() && "file" === e.type + } + , + D.prototype.preview = function(n) { + window.FileReader && layui.each(this.chooseFiles, function(e, t) { + var i = new FileReader; + i.readAsDataURL(t), + i.onload = function() { + n && n(e, t, this.result) + } + }) + } + , + D.prototype.upload = function(e, t) { + var i, n, a, o, r, u = this, f = u.config, s = f.text || {}, l = u.elemFile[0], c = function() { + return e || u.files || u.chooseFiles || l.files + }, d = function() { + var a = 0 + , o = 0 + , r = c() + , l = function() { + f.multiple && a + o === u.fileLength && "function" == typeof f.allDone && f.allDone({ + total: u.fileLength, + successful: a, + failed: o + }) + } + , i = function(i) { + var n = new FormData + , t = function(e) { + i.unified ? layui.each(r, function(e, t) { + delete t[T] + }) : delete e[T] + }; + if (layui.each(f.data, function(e, t) { + t = "function" == typeof t ? i.unified ? t() : t(i.index, i.file) : t, + n.append(e, t) + }), + i.unified) + layui.each(r, function(e, t) { + t[T] || (t[T] = !0, + n.append(f.field, t)) + }); + else { + if (i.file[T]) + return; + n.append(f.field, i.file), + i.file[T] = !0 + } + var e = { + url: f.url, + type: "post", + data: n, + dataType: f.dataType || "json", + contentType: !1, + processData: !1, + headers: f.headers || {}, + success: function(e) { + f.unified ? a += u.fileLength : a++, + m(i.index, e), + l(i.index), + t(i.file) + }, + error: function(e) { + f.unified ? o += u.fileLength : o++, + u.msg(s.error || ["Upload failed, please try again.", "status: " + (e.status || "") + " - " + (e.statusText || "error")].join("
                  ")), + g(i.index, e.responseText, e), + l(i.index), + t(i.file) + } + }; + "function" == typeof f.progress && (e.xhr = function() { + var e = F.ajaxSettings.xhr(); + return e.upload.addEventListener("progress", function(e) { + var t; + e.lengthComputable && (t = Math.floor(e.loaded / e.total * 100), + f.progress(t, (f.item || f.elem)[0], e, i.index)) + }), + e + } + ), + F.ajax(e) + }; + f.unified ? i({ + unified: !0, + index: 0 + }) : layui.each(r, function(e, t) { + i({ + index: e, + file: t + }) + }) + }, p = function() { + var n = F("#" + E); + u.elemFile.parent().submit(), + clearInterval(D.timer), + D.timer = setInterval(function() { + var e, t = n.contents().find("body"); + try { + e = t.text() + } catch (i) { + u.msg(s["cross-domain"]), + clearInterval(D.timer), + g() + } + e && (clearInterval(D.timer), + t.html(""), + m(0, e)) + }, 30) + }, h = function(e) { + if ("json" === f.force && "object" != typeof e) + try { + return { + status: "CONVERTED", + data: JSON.parse(e) + } + } catch (t) { + return u.msg(s["data-format-error"]), + { + status: "FORMAT_ERROR", + data: {} + } + } + return { + status: "DO_NOTHING", + data: {} + } + }, m = function(e, t) { + u.elemFile.next("." + L).remove(), + l.value = ""; + var i = h(t); + switch (i.status) { + case "CONVERTED": + t = i.data; + break; + case "FORMAT_ERROR": + return + } + "function" == typeof f.done && f.done(t, e || 0, function(e) { + u.upload(e) + }) + }, g = function(e, t, i) { + f.auto && (l.value = ""); + var n = h(t); + switch (n.status) { + case "CONVERTED": + t = n.data; + break; + case "FORMAT_ERROR": + return + } + "function" == typeof f.error && f.error(e || 0, function(e) { + u.upload(e) + }, t, i) + }, v = f.exts, y = (n = [], + layui.each(e || u.chooseFiles, function(e, t) { + n.push(t.name) + }), + n), x = { + preview: function(e) { + u.preview(e) + }, + upload: function(e, t) { + var i = {}; + i[e] = t, + u.upload(i) + }, + pushFile: function() { + return u.files = u.files || {}, + layui.each(u.chooseFiles, function(e, t) { + u.files[e] = t + }), + u.files + }, + resetFile: function(e, t, i) { + t = new File([t],i); + u.files = u.files || {}, + u.files[e] = t + }, + getChooseFiles: function() { + return u.chooseFiles + } + }, b = { + file: "\u6587\u4ef6", + images: "\u56fe\u7247", + video: "\u89c6\u9891", + audio: "\u97f3\u9891" + }[f.accept] || "\u6587\u4ef6", y = 0 === y.length ? l.value.match(/[^\/\\]+\..+/g) || [] : y; + if (0 !== y.length) { + switch (f.accept) { + case "file": + layui.each(y, function(e, t) { + if (v && !RegExp(".\\.(" + v + ")$", "i").test(escape(t))) + return i = !0 + }); + break; + case "video": + layui.each(y, function(e, t) { + if (!RegExp(".\\.(" + (v || "avi|mp4|wma|rmvb|rm|flash|3gp|flv") + ")$", "i").test(escape(t))) + return i = !0 + }); + break; + case "audio": + layui.each(y, function(e, t) { + if (!RegExp(".\\.(" + (v || "mp3|wav|mid") + ")$", "i").test(escape(t))) + return i = !0 + }); + break; + default: + layui.each(y, function(e, t) { + if (!RegExp(".\\.(" + (v || "jpg|png|gif|bmp|jpeg|svg|webp") + ")$", "i").test(escape(t))) + return i = !0 + }) + } + if (i) + return u.msg(s["check-error"] || "\u9009\u62e9\u7684" + b + "\u4e2d\u5305\u542b\u4e0d\u652f\u6301\u7684\u683c\u5f0f"), + l.value = ""; + if ("choose" !== t && !f.auto || (f.choose && f.choose(x), + "choose" !== t)) { + if (u.fileLength = (a = 0, + b = c(), + layui.each(b, function() { + a++ + }), + a), + f.number && u.fileLength > f.number) + return u.msg("function" == typeof s["limit-number"] ? s["limit-number"](f, u.fileLength) : "\u540c\u65f6\u6700\u591a\u53ea\u80fd\u4e0a\u4f20: " + f.number + " \u4e2a\u6587\u4ef6
                  \u60a8\u5f53\u524d\u5df2\u7ecf\u9009\u62e9\u4e86: " + u.fileLength + " \u4e2a\u6587\u4ef6"); + if (0 < f.size && !(R.ie && R.ie < 10)) + if (layui.each(c(), function(e, t) { + t.size > 1024 * f.size && (t = 1 <= (t = f.size / 1024) ? t.toFixed(2) + "MB" : f.size + "KB", + l.value = "", + o = t) + }), + o) + return u.msg("function" == typeof s["limit-size"] ? s["limit-size"](f, o) : "\u6587\u4ef6\u5927\u5c0f\u4e0d\u80fd\u8d85\u8fc7 " + o); + r = function() { + if (R.ie) + return (9 < R.ie ? d : p)(); + d() + } + , + "function" == typeof f.before ? w.util.promiseLikeResolve(f.before(x)).then(function(e) { + !1 !== e ? r() : f.auto && (l.value = "") + }, function(e) { + f.auto && (l.value = ""), + e !== undefined && layui.hint().error(e) + }) : r() + } + } + } + , + D.prototype.events = function() { + var a = this + , n = a.config + , o = function(e) { + a.chooseFiles = {}, + layui.each(e, function(e, t) { + var i = (new Date).getTime(); + a.chooseFiles[i + "-" + e] = t + }) + } + , r = function(e, t) { + var i = a.elemFile + , e = (n.item || n.elem, + 1 < e.length ? e.length + "\u4e2a\u6587\u4ef6" : (e[0] || {}).name || i[0].value.match(/[^\/\\]+\..+/g) || []); + i.next().hasClass(L) && i.next().remove(), + a.upload(null, "choose"), + a.isFile() || n.choose || i.after('' + e + "") + } + , l = function(i) { + var n = !0; + return layui.each(a.files, function(e, t) { + if (!(n = !(t.name === i.name))) + return !0 + }), + n + } + , u = function(e) { + var i = function(e) { + e.ext = e.name.substr(e.name.lastIndexOf(".") + 1).toLowerCase(), + e.sizes = w.util.parseSize(e.size) + }; + return e instanceof FileList ? layui.each(e, function(e, t) { + i(t) + }) : i(e), + e + } + , f = function(e) { + var i; + return (e = e || []).length ? a.files ? (i = [], + layui.each(e, function(e, t) { + l(t) && i.push(u(t)) + }), + i) : u(e) : [] + }; + n.elem.off("upload.start").on("upload.start", function() { + var e = F(this); + a.config.item = e, + a.elemFile[0].click() + }), + R.ie && R.ie < 10 || n.elem.off("upload.over").on("upload.over", function() { + F(this).attr("lay-over", "") + }).off("upload.leave").on("upload.leave", function() { + F(this).removeAttr("lay-over") + }).off("upload.drop").on("upload.drop", function(e, t) { + var i = F(this) + , t = f(t.originalEvent.dataTransfer.files); + i.removeAttr("lay-over"), + o(t), + n.auto ? a.upload() : r(t) + }), + a.elemFile.on("change", function() { + var e = f(this.files); + 0 !== e.length && (o(e), + n.auto ? a.upload() : r(e)) + }), + n.bindAction.off("upload.action").on("upload.action", function() { + a.upload() + }), + n.elem.data(s) || (n.elem.on("click", function() { + a.isFile() || F(this).trigger("upload.start") + }), + n.drag && n.elem.on("dragover", function(e) { + e.preventDefault(), + F(this).trigger("upload.over") + }).on("dragleave", function(e) { + F(this).trigger("upload.leave") + }).on("drop", function(e) { + e.preventDefault(), + F(this).trigger("upload.drop", e) + }), + n.bindAction.on("click", function() { + F(this).trigger("upload.action") + }), + n.elem.data(s, n.id)) + } + , + w.util = { + parseSize: function(e, t) { + var i, n; + return t = t || 2, + null != e && e ? (i = "string" == typeof e ? parseFloat(e) : e, + n = Math.floor(Math.log(i) / Math.log(1024)), + (e = (e = i / Math.pow(1024, n)) % 1 == 0 ? e : parseFloat(e.toFixed(t))) + ["Bytes", "Kb", "Mb", "Gb", "Tb", "Pb", "Eb", "Zb", "Yb"][n]) : "0" + }, + promiseLikeResolve: function(e) { + var t = F.Deferred(); + return e && "function" == typeof e.then ? e.then(t.resolve, t.reject) : t.resolve(e), + t.promise() + } + }, + o.that = {}, + o.getThis = function(e) { + var t = o.that[e]; + return t || hint.error(e ? i + " instance with ID '" + e + "' not found" : "ID argument required"), + t + } + , + w.render = function(e) { + e = new D(e); + return o.call(e) + } + , + e(i, w) +}); +layui.define(["lay", "layer", "util"], function(e) { + "use strict"; + var _ = layui.$ + , f = layui.layer + , A = layui.util + , l = layui.hint() + , d = (layui.device(), + lay.ie && 8 === parseFloat(lay.ie)) + , N = "form" + , h = ".layui-form" + , $ = "layui-this" + , j = "layui-hide" + , O = "layui-disabled" + , t = function() { + this.config = { + verify: { + required: function(e) { + if (!/[\S]+/.test(e) || e === undefined || null === e) + return "\u5fc5\u586b\u9879\u4e0d\u80fd\u4e3a\u7a7a" + }, + phone: function(e) { + if (e && !/^1\d{10}$/.test(e)) + return "\u624b\u673a\u53f7\u683c\u5f0f\u4e0d\u6b63\u786e" + }, + email: function(e) { + if (e && !/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(e)) + return "\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e" + }, + url: function(e) { + if (e && !/^(#|(http(s?)):\/\/|\/\/)[^\s]+\.[^\s]+$/.test(e)) + return "\u94fe\u63a5\u683c\u5f0f\u4e0d\u6b63\u786e" + }, + number: function(e) { + if (e && isNaN(e)) + return "\u53ea\u80fd\u586b\u5199\u6570\u5b57" + }, + date: function(e) { + if (e && !/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/.test(e)) + return "\u65e5\u671f\u683c\u5f0f\u4e0d\u6b63\u786e" + }, + identity: function(e) { + if (e && !/(^\d{15}$)|(^\d{17}(x|X|\d)$)/.test(e)) + return "\u8eab\u4efd\u8bc1\u53f7\u683c\u5f0f\u4e0d\u6b63\u786e" + } + }, + autocomplete: null + } + } + , i = (t.prototype.set = function(e) { + return _.extend(!0, this.config, e), + this + } + , + t.prototype.verify = function(e) { + return _.extend(!0, this.config.verify, e), + this + } + , + t.prototype.getFormElem = function(e) { + return _(h + (e ? '[lay-filter="' + e + '"]' : "")) + } + , + t.prototype.on = function(e, t) { + return layui.onevent.call(this, N, e, t) + } + , + t.prototype.val = function(e, s) { + return this.getFormElem(e).each(function(e, t) { + var i, a, n, l, r = _(this); + for (i in s) + lay.hasOwn(s, i) && (n = s[i], + (l = r.find('[name="' + i + '"]'))[0]) && ("checkbox" === (a = l[0].type) ? l[0].checked = n : "radio" === a ? l.each(function() { + this.checked = this.value == n + "" + }) : l.val(n)) + }), + r.render(null, e), + this.getValue(e) + } + , + t.prototype.getValue = function(e, t) { + t = t || this.getFormElem(e); + var n = {} + , l = {} + , e = t.find("input,select,textarea"); + return layui.each(e, function(e, t) { + var i, a = _(this); + t.name = (t.name || "").replace(/^\s*|\s*&/, ""), + t.name && (/^.*\[\]$/.test(t.name) && (i = t.name.match(/^(.*)\[\]$/g)[0], + n[i] = 0 | n[i], + i = t.name.replace(/^(.*)\[\]$/, "$1[" + n[i]++ + "]")), + /^(checkbox|radio)$/.test(t.type) && !t.checked || (l[i || t.name] = "SELECT" === this.tagName && "string" == typeof this.getAttribute("multiple") ? a.val() || [] : this.value)) + }), + l + } + , + t.prototype.render = function(e, t) { + var u = this + , i = u.config + , a = _(h + (t ? '[lay-filter="' + t + '"]' : "")) + , n = { + input: function(e) { + var e = e || a.find("input,textarea") + , t = (i.autocomplete && e.attr("autocomplete", i.autocomplete), + function(e, t) { + var i = e.val() + , a = Number(i) + , n = Number(e.attr("step")) || 1 + , l = Number(e.attr("min")) + , r = Number(e.attr("max")) + , s = Number(e.attr("lay-precision")) + , o = "click" !== t && "" === i + , c = "init" === t; + isNaN(a) || ("click" === t && (a = !!_(this).index() ? a - n : a + n), + t = function(e) { + return ((e.toString().match(/\.(\d+$)/) || [])[1] || "").length + } + , + s = 0 <= s ? s : Math.max(t(n), t(i)), + o || (c || r <= (a = a <= l ? l : a) && (a = r), + 0 === s ? a = parseInt(a) : 0 < s && (a = a.toFixed(s)), + e.val(a)), + e[(a < l || r < a) && !o ? "addClass" : "removeClass"]("layui-input-number-out-of-range"), + c) || ((n = { + increment: e.next().find(".layui-icon-up"), + decrement: e.next().find(".layui-icon-down") + }).increment[r <= a && !o ? "addClass" : "removeClass"](O), + n.decrement[a <= l && !o ? "addClass" : "removeClass"](O)) + } + ); + a.find("input[lay-affix],textarea[lay-affix]").each(function() { + var r = _(this) + , s = r.attr("lay-affix") + , o = "layui-input-wrap" + , c = "layui-input-suffix" + , u = "layui-input-affix" + , e = r.is("[disabled]") || r.is("[readonly]") + , d = function(e, t) { + (e = _(e))[0] && e[_.trim(t) ? "removeClass" : "addClass"](j) + } + , n = function(i) { + i = _.extend({}, h[s] || { + value: s + }, i, lay.options(r[0])); + var a, t = _('
                  '), e = layui.isArray(i.value) ? i.value : [i.value], e = _((a = [], + layui.each(e, function(e, t) { + a.push('') + }), + a.join(""))), n = (t.append(e), + i.split && t.addClass("layui-input-split"), + i.className && t.addClass(i.className), + r.next("." + u)), l = (n[0] && n.remove(), + r.parent().hasClass(o) || r.wrap('
                  '), + r.next("." + c)); + l[0] ? ((n = l.find("." + u))[0] && n.remove(), + l.prepend(t), + r.css("padding-right", function() { + return (r.closest(".layui-input-group")[0] ? 0 : l.outerWidth()) + t.outerWidth() + })) : (t.addClass(c), + r.after(t)), + "auto" === i.show && d(t, r.val()), + "function" == typeof i.init && i.init.call(this, r, i), + r.on("input propertychange", function() { + var e = this.value; + "auto" === i.show && d(t, e) + }), + r.on("blur", function() { + "function" == typeof i.blur && i.blur.call(this, r, i) + }), + e.on("click", function() { + var e = r.attr("lay-filter"); + _(this).hasClass(O) || ("function" == typeof i.click && i.click.call(this, r, i), + layui.event.call(this, N, "input-affix(" + e + ")", { + elem: r[0], + affix: s, + options: i + })) + }) + } + , h = { + eye: { + value: "eye-invisible", + click: function(e, t) { + var i = "LAY_FORM_INPUT_AFFIX_SHOW" + , a = e.data(i); + e.attr("type", a ? "password" : "text").data(i, !a), + n({ + value: a ? "eye-invisible" : "eye" + }) + } + }, + clear: { + value: "clear", + click: function(e) { + e.val("").focus(), + d(_(this).parent(), null) + }, + show: "auto", + disabled: e + }, + number: { + value: ["up", "down"], + split: !0, + className: "layui-input-number", + disabled: r.is("[disabled]"), + init: function(e) { + t.call(this, e, "init") + }, + click: function(e) { + t.call(this, e, "click") + }, + blur: function(e) { + t.call(this, e, "blur") + } + } + }; + n() + }) + }, + select: function(e) { + var f = "\u8bf7\u9009\u62e9" + , C = "layui-form-select" + , w = "layui-select-none" + , T = "layui-select-create-option" + , p = "layui-select-panel-elem-data" + , e = e || a.find("select") + , y = function(n, e, t, i, u, a) { + var l, d, r, s, o, c, h, f, p, y = _(this), v = e, m = v.find("input"), g = n.find("dl"), b = (g.children("dd"), + g.children("dt")), k = this.selectedIndex, x = ""; + t || (d = "cs" === y.attr("lay-search") ? { + caseSensitive: !0 + } : lay.options(y, { + attr: "lay-search" + }), + r = y.attr("lay-append-to") || "body", + s = y.attr("lay-append-position"), + o = !(!lay.ie || "10" !== lay.ie && "11" !== lay.ie || !m.attr("placeholder")), + c = function() { + a && (n.appendTo(r).css({ + width: v.width() + "px" + }), + (e = function() { + lay.position(v[0], n[0], { + position: s, + allowBottomOut: !0, + offset: [0, 5] + }) + } + )(), + _(window).on("resize.lay_select_resize", e)); + var e = n.offset().top + n.outerHeight() + 5 - S.scrollTop() + , t = g.outerHeight() + , i = g.children("dd"); + k = y[0].selectedIndex, + v.parent().addClass(C + "ed"), + i.removeClass(j), + b.removeClass(j), + i.removeClass($), + 0 <= k && i.eq(k).addClass($), + e + t > S.height() && t <= e && n.addClass(C + "up"), + f(), + o && g.off("mousedown.lay_select_ieph").on("mousedown.lay_select_ieph", function() { + m[0].__ieph = !0, + setTimeout(function() { + m[0].__ieph = !1 + }, 60) + }), + l = lay.onClickOutside((a ? n : g)[0], function() { + h(), + x && m.val(x) + }, { + ignore: v + }) + } + , + h = function(e) { + v.parent().removeClass(C + "ed " + C + "up"), + m.blur(), + u && g.children("." + T).remove(), + l && l(), + a && (n.detach(), + _(window).off("resize.lay_select_resize")), + e || p(m.val(), function(e) { + var t = y[0].selectedIndex; + e && (x = _(y[0].options[t]).html(), + 0 === t && x === m.attr("placeholder") && (x = ""), + m.val(x || "")) + }) + } + , + f = function() { + var e, t, i = g.children("dd." + $); + i[0] && (e = i.position().top, + t = g.height(), + i = i.height(), + t < e && g.scrollTop(e + g.scrollTop() - t + i - 5), + e < 0) && g.scrollTop(e + g.scrollTop() - 5) + } + , + v.on("click", function(e) { + (v.parent().hasClass(C + "ed") ? h : c)(), + g.find("." + w).remove() + }), + v.find(".layui-edge").on("click", function() { + m.focus() + }), + m.on("keyup", function(e) { + 9 === e.keyCode && c() + }).on("keydown", function(n) { + var e = n.keyCode + , t = (9 === e && h(), + function(e) { + n.preventDefault(); + var t, i, a = g.children("dd:not(." + j + ",." + O + ")"); + a.length && (t = a.length - 1, + i = -1, + layui.each(a, function(e, t) { + if (_(t).hasClass($)) + return i = e, + !0 + }), + e = "prev" === e ? i - 1 < 0 ? t : i - 1 : t < i + 1 ? 0 : i + 1, + a.eq(e).addClass($).siblings().removeClass($), + f()) + } + ); + 38 === e && t("prev"), + 40 === e && t("next"), + 13 === e && (n.preventDefault(), + g.children("dd." + $).trigger("click")) + }).on("paste", function() { + c() + }), + p = function(n, e, l) { + var r, s = 0, t = g.children("dd"), o = !1, c = n, t = (d.caseSensitive || (n = n.toLowerCase()), + d.fuzzy && (r = function(e, t) { + var i = {} + , a = ["^"]; + t || (e = e.toLowerCase()); + for (var n = e.trim().split(""), l = 0; l < n.length; l++) { + var r = n[l]; + i[r] = (i[r] || 0) + 1 + } + for (r in i) { + a.push("(?=.*"); + for (l = 0; l < i[r]; l++) + a.push(r.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")), + l !== i[r] - 1 && a.push(".*"); + a.push(")") + } + return a.push(".*"), + new RegExp(a.join(""),t ? undefined : "i") + }(n, d.caseSensitive)), + layui.each(t, function() { + var e = _(this) + , t = e.text() + , i = u && e.hasClass(T) + , a = (u && !i && t === c && (o = !0), + d.caseSensitive || (t = t.toLowerCase()), + d.fuzzy ? !r.test(t) : -1 === t.indexOf(n)); + ("" === n || "blur" === l ? n !== t : a) && s++, + "keyup" === l && e[(u ? a && !i : a) ? "addClass" : "removeClass"](j) + }), + "keyup" === l && layui.each(b, function() { + var e = _(this) + , t = e.nextUntil("dt").filter("dd"); + e[(t = u ? t.not("." + T) : t).length == t.filter("." + j).length ? "addClass" : "removeClass"](j) + }), + s === t.length); + return e(t, o), + t + } + , + i && m.on("input propertychange", layui.debounce(function(e) { + var n = this.value + , t = e.keyCode; + return 9 !== t && 13 !== t && 37 !== t && 38 !== t && 39 !== t && 40 !== t && (o && e.target.__ieph ? e.target.__ieph = !1 : (p(n, function(e, t) { + var i, a; + u ? t ? g.children("." + T).remove() : (t = g.children("." + T))[0] ? t.attr("lay-value", n).html(A.escape(n)) : (t = _("
                  ").addClass(T).attr("lay-value", n).html(A.escape(n)), + a = (i = g.children().eq(0)).hasClass("layui-select-tips"), + i[a ? "after" : "before"](t)) : e ? g.find("." + w)[0] || g.append('

                  \u65e0\u5339\u914d\u9879

                  ') : g.find("." + w).remove() + }, "keyup"), + "" === n && (y.val(""), + g.find("." + $).removeClass($), + (y[0].options[0] || {}).value || g.children("dd:eq(0)").addClass($), + g.find("." + w).remove(), + u) && g.children("." + T).remove(), + void f())) + }, 50)).on("blur", function(e) { + var t = y[0].selectedIndex; + x = _(y[0].options[t]).text(), + 0 === t && x === m.attr("placeholder") && (x = ""), + setTimeout(function() { + p(m.val(), function(e) { + x || m.val("") + }, "blur") + }, 200) + }), + g.on("click", "dd", function() { + var e, t = _(this), i = t.attr("lay-value"), a = y.attr("lay-filter"); + return t.hasClass(O) || (t.hasClass("layui-select-tips") ? m.val("") : (m.val(t.text()), + t.addClass($)), + u && t.hasClass(T) && (g.append(t.removeClass(T)), + e = _("
                  ").text()) + '" lay-filter="LAY_TABLE_TOOL_COLS">') + }), + a.join("")), + done: function() { + i.on("checkbox(LAY_TABLE_TOOL_COLS)", function(e) { + var e = f(e.elem) + , t = this.checked + , a = e.data("key") + , i = o.col(a) + , l = i.hide + , e = e.data("parentkey"); + i.key && (i.hide = !t, + o.elem.find('*[data-key="' + a + '"]')[t ? "removeClass" : "addClass"](W), + l != i.hide && o.setParentCol(!t, e), + o.resize(), + layui.event.call(this, R, "colToggled(" + d + ")", { + col: i, + config: n + })) + }) + } + }) + } + }, + exports: { + title: "\u5bfc\u51fa", + layEvent: "LAYTABLE_EXPORT", + icon: "layui-icon-export", + onClick: function(e) { + var t = e.data + , a = e.config + , i = e.openPanel + , e = e.elem; + if (!t.length) + return g.tips("\u5f53\u524d\u8868\u683c\u65e0\u6570\u636e", e, { + tips: 3 + }); + x.ie ? g.tips("\u5bfc\u51fa\u529f\u80fd\u4e0d\u652f\u6301 IE\uff0c\u8bf7\u7528 Chrome \u7b49\u9ad8\u7ea7\u6d4f\u89c8\u5668\u5bfc\u51fa", e, { + tips: 3 + }) : i({ + list: ['
                • \u5bfc\u51fa CSV \u6587\u4ef6
                • '].join(""), + done: function(e, t) { + t.on("click", function() { + var e = f(this).data("type"); + k.exportFile.call(o, a.id, null, e) + }) + } + }) + } + }, + print: { + title: "\u6253\u5370", + layEvent: "LAYTABLE_PRINT", + icon: "layui-icon-print", + onClick: function(e) { + var t = e.data + , e = (e.config, + e.elem); + if (!t.length) + return g.tips("\u5f53\u524d\u8868\u683c\u65e0\u6570\u636e", e, { + tips: 3 + }); + var t = window.open("about:blank", "_blank") + , e = [""].join("") + , a = f(o.layHeader.html()); + a.append(o.layMain.find("table").html()), + a.append(o.layTotal.find("table").html()), + a.find("th.layui-table-patch").remove(), + a.find("thead>tr>th." + F).filter(function(e, t) { + return !f(t).children("." + u).length + }).remove(), + a.find("tbody>tr>td." + F).remove(), + t.document.write(e + a.prop("outerHTML")), + t.document.close(), + layui.device("edg").edg ? (t.onafterprint = t.close, + t.print()) : (t.print(), + t.close()) + } + } + }); + "object" == typeof e.defaultToolbar && (l = [], + e.defaultToolbar = f.map(e.defaultToolbar, function(e, t) { + var a = "string" == typeof e + , i = a ? n[e] : e; + return i && (!(i = i.name && n[i.name] ? f.extend({}, n[i.name], i) : i).name && a && (i.name = e), + l.push('
                  ')), + i + }), + o.layTool.find(".layui-table-tool-self").html(l.join(""))) + } + , + n.prototype.renderPagebar = function() { + var e, t = this.config, a = this.layPagebar = f('
                  '); + t.pagebar && ((e = f(t.pagebar).html() || "") && a.append(m(e).render(t)), + this.layPage.append(a)) + } + , + n.prototype.setParentCol = function(e, t) { + var a = this.config + , i = this.layHeader.find('th[data-key="' + t + '"]') + , l = parseInt(i.attr("colspan")) || 0; + i[0] && (t = t.split("-"), + t = a.cols[t[1]][t[2]], + e ? l-- : l++, + i.attr("colspan", l), + i[l ? "removeClass" : "addClass"](W), + t.colspan2 = l, + t.hide = l < 1, + a = i.data("parentkey")) && this.setParentCol(e, a) + } + , + n.prototype.setColsPatch = function() { + var a = this + , e = a.config; + layui.each(e.cols, function(e, t) { + layui.each(t, function(e, t) { + t.hide && a.setParentCol(t.hide, t.parentKey) + }) + }) + } + , + n.prototype.setGroupWidth = function(i) { + var e, l = this; + l.config.cols.length <= 1 || ((e = l.layHeader.find((i ? "th[data-key=" + i.data("parentkey") + "]>" : "") + "." + u)).css("width", 0), + layui.each(e.get().reverse(), function() { + var e = f(this) + , t = e.parent().data("key") + , a = 0; + l.layHeader.eq(0).find("th[data-parentkey=" + t + "]").width(function(e, t) { + f(this).hasClass(W) || 0 < t && (a += t) + }), + a && e.css("max-width", a - 1), + i && e.parent().data("parentkey") && l.setGroupWidth(e.parent()) + }), + e.css("width", "auto")) + } + , + n.prototype.setColsWidth = function(e) { + var n, o = this, d = o.config, a = 0, r = 0, c = 0, s = 0, u = o.setInit("width"), i = parseFloat(layui.getStyle(o.elem[0], "border-left-width")), l = o.layHeader.first().children("table"), y = o.layMain.find("table"), h = o.layMain.find("tbody").is(":empty"), p = e && e.isInit, e = (o.eachCols(function(e, t) { + t.hide || (a++, + t.width) || "normal" !== t.type || (n = t) + }), + u = u - ("line" === d.skin || "nob" === d.skin ? 2 : a + 1) * i - o.getScrollWidth(o.layMain[0]), + function(o) { + layui.each(d.cols, function(e, n) { + layui.each(n, function(e, t) { + var a = 0 + , i = t.minWidth || d.cellMinWidth + , l = t.maxWidth || d.cellMaxWidth; + t ? t.colGroup || t.hide || (o ? c && c < i ? (r--, + a = i) : c && l < c && (r--, + a = l) : (a = t.width || 0, + /\d+%$/.test(a) ? l < (a = (a = parseFloat(a) / 100 * u) < i ? i : a) && (a = l) : a ? "normal" === t.type && (a < i && (t.width = a = i), + l < a) && (t.width = a = l) : (t.width = a = 0, + r++)), + t.hide && (a = 0), + s += a) : n.splice(e, 1) + }) + }), + s < u && 0 < r && (c = (u - s) / r) + } + ), f = (e(), + e(!0), + o.autoColNums = r = 0 < r ? r : 0, + u); + o.eachCols(function(e, a) { + var i = a.minWidth || d.cellMinWidth + , l = a.maxWidth || d.cellMaxWidth; + a.colGroup || a.hide || n && n.key === a.key || (0 === a.width ? o.cssRules(a.key, function(e) { + var t = Math.round(c < i ? i : l < c ? l : c); + e.style.width = t + "px", + f -= t + }) : /\d+%$/.test(a.width) ? o.cssRules(a.key, function(e) { + var t = Math.round(parseFloat(a.width) / 100 * u); + e.style.width = (t = l < (t = t < i ? i : t) ? l : t) + "px", + f -= t + }) : o.cssRules(a.key, function(e) { + e.style.width = a.width + "px", + f -= a.width + })) + }), + n && o.cssRules(n.key, function(e) { + var t = n.minWidth || d.cellMinWidth + , a = n.maxWidth || d.cellMaxWidth + , a = Math.max(Math.min(f, a), t); + e.style.width = a + "px", + !p && h && y.width(o.getContentWidth(l)), + o.layMain.prop("offsetHeight") > o.layMain.prop("clientHeight") && (e.style.width = parseFloat(e.style.width) - i + "px") + }), + !p && h ? y.width(o.getContentWidth(l)) : y.width("auto"), + o.setGroupWidth() + } + , + n.prototype.resize = function() { + var e = this; + e.layMain && ("isConnected"in e.layMain[0] ? e.layMain[0].isConnected : f.contains(document.body, e.layMain[0])) && (e.fullSize(), + e.setColsWidth(), + e.scrollPatch()) + } + , + n.prototype.reload = function(e, t, a) { + var i = this; + e = e || {}, + delete i.haveInit, + layui.each(e, function(e, t) { + "array" === layui.type(t) && delete i.config[e] + }), + i.config = f.extend(t, {}, i.config, e), + "reloadData" !== a && (layui.each(i.config.cols, function(e, t) { + layui.each(t, function(e, t) { + delete t.colspan2 + }) + }), + delete i.config.HAS_SET_COLS_PATCH), + i.render(a) + } + , + n.prototype.errorView = function(e) { + var t = this + , a = t.layMain.find("." + h) + , e = f('
                  ' + (e || "Error") + "
                  "); + a[0] && (t.layNone.remove(), + a.remove()), + t.layFixed.addClass(W), + t.layMain.find("tbody").html(""), + t.layMain.append(t.layNone = e), + t.layTotal.addClass(y), + t.layPage.find(P).addClass(y), + k.cache[t.key] = [], + t.syncCheckAll(), + t.renderForm(), + t.setColsWidth(), + t.loading(!1) + } + , + n.prototype.page = 1, + n.prototype.pullData = function(i, l) { + var e, t, n = this, o = n.config, a = (o.HAS_SET_COLS_PATCH || n.setColsPatch(), + o.HAS_SET_COLS_PATCH = !0, + o.request), d = o.response, r = function() { + "object" == typeof o.initSort && n.sort({ + field: o.initSort.field, + type: o.initSort.type, + reloadType: l.type + }) + }, c = function(e, t) { + n.setColsWidth(), + n.loading(!1), + "function" == typeof o.done && o.done(e, i, e[d.countName], t) + }; + l = l || {}, + "function" == typeof o.before && o.before(o), + n.startTime = (new Date).getTime(), + l.renderData ? ((e = {})[d.dataName] = k.cache[n.key], + e[d.countName] = o.url ? "object" === layui.type(o.page) ? o.page.count : e[d.dataName].length : o.data.length, + "object" == typeof o.totalRow && (e[d.totalRowName] = f.extend({}, n.totalRow)), + n.renderData({ + res: e, + curr: i, + count: e[d.countName], + type: l.type, + sort: !0 + }), + c(e, "renderData")) : o.url ? (t = {}, + o.page && (t[a.pageName] = i, + t[a.limitName] = o.limit), + a = f.extend(t, o.where), + o.contentType && 0 == o.contentType.indexOf("application/json") && (a = JSON.stringify(a)), + n.loading(!0), + f.ajax({ + type: o.method || "get", + url: o.url, + contentType: o.contentType, + data: a, + dataType: o.dataType || "json", + jsonpCallback: o.jsonpCallback, + headers: o.headers || {}, + complete: "function" == typeof o.complete ? o.complete : undefined, + success: function(e) { + var t, a; + (e = "function" == typeof o.parseData ? o.parseData(e) || e : e)[d.statusName] != d.statusCode ? n.errorView(e[d.msgName] || '\u8fd4\u56de\u7684\u6570\u636e\u4e0d\u7b26\u5408\u89c4\u8303\uff0c\u6b63\u786e\u7684\u6210\u529f\u72b6\u6001\u7801\u5e94\u4e3a\uff1a"' + d.statusName + '": ' + d.statusCode) : (t = e[d.countName], + (a = Math.ceil(t / o.limit) || 1) < i && (i = a), + n.totalRow = e[d.totalRowName], + n.renderData({ + res: e, + curr: i, + count: t, + type: l.type + }), + r(), + o.time = (new Date).getTime() - n.startTime + " ms"), + c(e, l.type) + }, + error: function(e, t) { + n.errorView("\u8bf7\u6c42\u5f02\u5e38\uff0c\u9519\u8bef\u63d0\u793a\uff1a" + t), + "function" == typeof o.error && o.error(e, t) + } + })) : "array" === layui.type(o.data) && (e = {}, + t = i * o.limit - o.limit, + a = o.data.concat(), + e[d.dataName] = o.page ? a.splice(t, o.limit) : a, + e[d.countName] = o.data.length, + "object" == typeof o.totalRow && (e[d.totalRowName] = f.extend({}, o.totalRow)), + n.totalRow = e[d.totalRowName], + n.renderData({ + res: e, + curr: i, + count: e[d.countName], + type: l.type + }), + r(), + c(e, l.type)) + } + , + n.prototype.eachCols = function(e) { + return k.eachCols(null, e, this.config.cols), + this + } + , + n.prototype.col = function(e) { + try { + return e = e.split("-"), + this.config.cols[e[1]][e[2]] || {} + } catch (t) { + return b.error(t), + {} + } + } + , + n.prototype.getTrHtml = function(a, l, n, e) { + var s = this + , u = s.config + , y = e && e.trs || [] + , h = e && e.trs_fixed || [] + , p = e && e.trs_fixed_r || []; + return n = n || 1, + layui.each(a, function(e, o) { + var i = [] + , d = [] + , r = [] + , c = e + u.limit * (n - 1) + 1; + if ("object" != typeof o) { + a[e] = o = { + LAY_KEY: o + }; + try { + k.cache[s.key][e] = o + } catch (t) {} + } + "array" === layui.type(o) && 0 === o.length || (o[k.config.numbersName] = c, + o[k.config.indexName] = e, + l || (o[k.config.initIndexName] = e), + s.eachCols(function(e, l) { + var t, e = l.field || e, a = l.key, n = o[e]; + n !== undefined && null !== n || (n = ""), + l.colGroup || (e = ['', '
                  " + function() { + var e, t = f.extend(!0, { + LAY_COL: l + }, o), a = k.config.checkName, i = k.config.disabledName; + switch (l.type) { + case "checkbox": + return ''; + case "radio": + return ''; + case "numbers": + return c + } + return l.toolbar ? m(f(l.toolbar).html() || "").render(t) : T.call(s, { + item3: l, + content: n, + tplData: t + }) + }(), "
                  "].join(""), + i.push(e), + l.fixed && "right" !== l.fixed && d.push(e), + "right" === l.fixed && r.push(e)) + }), + e = ['data-index="' + e + '"'], + o[k.config.checkName] && e.push('class="' + A + '"'), + e = e.join(" "), + y.push("" + i.join("") + ""), + h.push("" + d.join("") + ""), + p.push("" + r.join("") + "")) + }), + { + trs: y, + trs_fixed: h, + trs_fixed_r: p + } + } + , + k.getTrHtml = function(e, t) { + e = C(e); + return e.getTrHtml(t, null, e.page) + } + , + n.prototype.renderData = function(e) { + var a = this + , i = a.config + , t = e.res + , l = e.curr + , n = a.count = e.count + , o = e.sort + , d = t[i.response.dataName] || [] + , t = t[i.response.totalRowName] + , r = [] + , c = [] + , s = [] + , u = function() { + if (!o && a.sortKey) + return a.sort({ + field: a.sortKey.field, + type: a.sortKey.sort, + pull: !0, + reloadType: e.type + }); + a.getTrHtml(d, o, l, { + trs: r, + trs_fixed: c, + trs_fixed_r: s + }), + "fixed" === i.scrollPos && "reloadData" === e.type || a.layBody.scrollTop(0), + "reset" === i.scrollPos && a.layBody.scrollLeft(0), + a.layMain.find("." + h).remove(), + a.layMain.find("tbody").html(r.join("")), + a.layFixLeft.find("tbody").html(c.join("")), + a.layFixRight.find("tbody").html(s.join("")), + a.syncCheckAll(), + a.renderForm(), + a.fullSize(), + a.haveInit ? a.scrollPatch() : setTimeout(function() { + a.scrollPatch() + }, 50), + a.haveInit = !0, + g.close(a.tipsIndex) + }; + return k.cache[a.key] = d, + a.layTotal[0 == d.length ? "addClass" : "removeClass"](y), + a.layPage[i.page || i.pagebar ? "removeClass" : "addClass"](W), + a.layPage.find(P)[!i.page || 0 == n || 0 === d.length && 1 == l ? "addClass" : "removeClass"](y), + 0 === d.length ? a.errorView(i.text.none) : (a.layFixLeft.removeClass(W), + o ? u() : (u(), + a.renderTotal(d, t), + a.layTotal && a.layTotal.removeClass(W), + void (i.page && (i.page = f.extend({ + elem: "layui-table-page" + i.index, + count: n, + limit: i.limit, + limits: i.limits || [10, 20, 30, 40, 50, 60, 70, 80, 90], + groups: 3, + layout: ["prev", "page", "next", "skip", "count", "limit"], + prev: '', + next: '', + jump: function(e, t) { + t || (a.page = e.curr, + i.limit = e.limit, + a.pullData(e.curr)) + } + }, i.page), + i.page.count = n, + p.render(i.page))))) + } + , + k.renderData = function(e) { + e = C(e); + e && e.pullData(e.page, { + renderData: !0, + type: "reloadData" + }) + } + , + n.prototype.renderTotal = function(e, o) { + var d, r = this, c = r.config, s = {}; + c.totalRow && (layui.each(e, function(e, i) { + "array" === layui.type(i) && 0 === i.length || r.eachCols(function(e, t) { + var e = t.field || e + , a = i[e]; + t.totalRow && (s[e] = (s[e] || 0) + (parseFloat(a) || 0)) + }) + }), + r.dataTotal = [], + d = [], + r.eachCols(function(e, t) { + var e = t.field || e + , a = o && o[t.field] + , i = "totalRowDecimals"in t ? t.totalRowDecimals : 2 + , i = s[e] ? parseFloat(s[e] || 0).toFixed(i) : "" + , i = (n = t.totalRowText || "", + (l = { + LAY_COL: t + })[e] = i, + l = t.totalRow && T.call(r, { + item3: t, + content: i, + tplData: l + }) || n, + a || l) + , l = "string" == typeof (n = t.totalRow || c.totalRow) ? m(n).render(f.extend({ + TOTAL_NUMS: a || s[e], + TOTAL_ROW: o || {}, + LAY_COL: t + }, t)) : i + , n = (t.field && r.dataTotal.push({ + field: t.field, + total: f("
                  " + l + "
                  ").text() + }), + ['', '
                  " + l, "
                  "].join("")); + d.push(n) + }), + e = r.layTotal.find(".layui-table-patch"), + r.layTotal.find("tbody").html("" + d.join("") + (e.length ? e.get(0).outerHTML : "") + "")) + } + , + n.prototype.getColElem = function(e, t) { + return e.eq(0).find(".laytable-cell-" + t + ":eq(0)") + } + , + n.prototype.renderForm = function(e) { + this.config; + var t = this.elem.attr("lay-filter"); + i.render(e, t) + } + , + n.prototype.renderFormByElem = function(a) { + layui.each(["input", "select"], function(e, t) { + i.render(a.find(t)) + }) + } + , + n.prototype.syncCheckAll = function() { + var a, e = this, i = e.config, t = e.layHeader.find('input[name="layTableCheckbox"]'), l = k.checkStatus(e.key); + t[0] && (a = l.isAll, + e.eachCols(function(e, t) { + "checkbox" === t.type && (t[i.checkName] = a) + }), + t.prop({ + checked: l.isAll, + indeterminate: !l.isAll && l.data.length + })) + } + , + n.prototype.setRowActive = function(e, t, a) { + this.config; + e = this.layBody.find('tr[data-index="' + e + '"]'); + if (t = t || "layui-table-click", + a) + return e.removeClass(t); + e.addClass(t), + e.siblings("tr").removeClass(t) + } + , + n.prototype.setRowChecked = function(i) { + var a, e, l, t, n, o, d, r = this, c = r.config, s = "all" === i.index, u = "array" === layui.type(i.index), y = s || u; + y && (r.layBox.addClass(O), + "radio" === i.type) || (u && (a = {}, + layui.each(i.index, function(e, t) { + a[t] = !0 + }), + i.index = a), + e = r.layBody.children(".layui-table").children("tbody"), + d = y ? "tr" : 'tr[data-index="' + i.index + '"]', + d = e.children(d), + e = s ? d : d.filter(u ? function() { + var e = f(this).data("index"); + return i.index[e] + } + : '[data-index="' + i.index + '"]'), + i = f.extend({ + type: "checkbox" + }, i), + l = k.cache[r.key], + t = "checked"in i, + n = function(e) { + return "radio" === i.type || (t ? i.checked : !e) + } + , + e.each(function() { + var e = f(this) + , t = e.attr("data-index") + , a = l[t]; + t && "array" !== layui.type(a) && !a[c.disabledName] && (a = a[c.checkName] = n(e.hasClass(A)), + e.toggleClass(A, !!a), + "radio" === i.type) && (o = t, + e.siblings().removeClass(A)) + }), + o && layui.each(l, function(e, t) { + Number(o) !== Number(e) && delete t[c.checkName] + }), + d = (u = (s = e.children("td").children(".layui-table-cell").children('input[lay-type="' + ({ + radio: "layTableRadio", + checkbox: "layTableCheckbox" + }[i.type] || "checkbox") + '"]:not(:disabled)')).last()).closest(I), + ("radio" === i.type && d.hasClass(W) ? s.first() : s).prop("checked", n(u.prop("checked"))), + r.syncCheckAll(), + y && setTimeout(function() { + r.layBox.removeClass(O) + }, 100)) + } + , + n.prototype.sort = function(l) { + var e, t = this, a = {}, i = t.config, n = i.elem.attr("lay-filter"), o = k.cache[t.key]; + "string" == typeof (l = l || {}).field && (d = l.field, + t.layHeader.find("th").each(function(e, t) { + var a = f(this) + , i = a.data("field"); + if (i === l.field) + return l.field = a, + d = i, + !1 + })); + try { + var d = d || l.field.data("field") + , r = l.field.data("key"); + if (t.sortKey && !l.pull && d === t.sortKey.field && l.type === t.sortKey.sort) + return; + var c = t.layHeader.find("th .laytable-cell-" + r).find(E); + t.layHeader.find("th").find(E).removeAttr("lay-sort"), + c.attr("lay-sort", l.type || null), + t.layFixed.find("th") + } catch (s) { + b.error("Table modules: sort field '" + d + "' not matched") + } + t.sortKey = { + field: d, + sort: l.type + }, + i.autoSort && ("asc" === l.type ? e = layui.sort(o, d, null, !0) : "desc" === l.type ? e = layui.sort(o, d, !0, !0) : (e = layui.sort(o, k.config.initIndexName, null, !0), + delete t.sortKey, + delete i.initSort)), + a[i.response.dataName] = e || o, + t.renderData({ + res: a, + curr: t.page, + count: t.count, + sort: !0, + type: l.reloadType + }), + l.fromEvent && (i.initSort = { + field: d, + type: l.type + }, + layui.event.call(l.field, R, "sort(" + n + ")", f.extend({ + config: i + }, i.initSort))) + } + , + n.prototype.loading = function(e) { + this.config.loading && this.layBox.find(".layui-table-init").toggleClass(W, !e) + } + , + n.prototype.cssRules = function(t, a) { + var e = this.elem.children("style")[0]; + r.getStyleRules(e, function(e) { + if (e.selectorText === ".laytable-cell-" + t) + return a(e), + !0 + }) + } + , + n.prototype.fullSize = function() { + var e, a, i = this, t = i.config, l = t.height; + i.fullHeightGap ? (l = d.height() - i.fullHeightGap) < 135 && (l = 135) : i.parentDiv && i.parentHeightGap ? (l = f(i.parentDiv).height() - i.parentHeightGap) < 135 && (l = 135) : i.customHeightFunc && (l = i.customHeightFunc()) < 135 && (l = 135), + 1 < t.cols.length && (e = i.layFixed.find(o).find("th"), + a = i.layHeader.first(), + layui.each(e, function(e, t) { + (t = f(t)).height(a.find('th[data-key="' + t.attr("data-key") + '"]').height() + "px") + })), + l && (e = parseFloat(l) - (i.layHeader.outerHeight() || 39), + t.toolbar && (e -= i.layTool.outerHeight() || 51), + t.totalRow && (e -= i.layTotal.outerHeight() || 40), + (t.page || t.pagebar) && (e -= i.layPage.outerHeight() || 43), + t.maxHeight ? layui.each({ + elem: l, + layMain: e + }, function(e, t) { + i[e].css({ + height: "auto", + maxHeight: t + "px" + }) + }) : i.layMain.outerHeight(e)) + } + , + n.prototype.getScrollWidth = function(e) { + var t; + return e ? t = e.offsetWidth - e.clientWidth : ((e = document.createElement("div")).style.width = "100px", + e.style.height = "100px", + e.style.overflowY = "scroll", + document.body.appendChild(e), + t = e.offsetWidth - e.clientWidth, + document.body.removeChild(e)), + t + } + , + n.prototype.scrollPatch = function() { + var e = this + , t = e.layMain.children("table") + , a = e.layMain.width() - e.layMain.prop("clientWidth") + , i = e.layMain.height() - e.layMain.prop("clientHeight") + , l = (e.getScrollWidth(e.layMain[0]), + t.outerWidth() - e.layMain.width()) + , n = function(e) { + var t; + a && i ? (e = e.eq(0)).find(".layui-table-patch")[0] || ((t = f('
                  ')).find("div").css({ + width: a + }), + e.find("tr").append(t)) : e.find(".layui-table-patch").remove() + }; + n(e.layHeader), + n(e.layTotal); + n = e.layMain.height() - i; + e.layFixed.find(L).css("height", t.height() >= n ? n : "auto").scrollTop(e.layMain.scrollTop()), + e.layFixRight[k.cache[e.key] && k.cache[e.key].length && 0 < l ? "removeClass" : "addClass"](W), + e.layFixRight.css("right", a) + } + , + n.prototype.updateRow = function(e, i) { + var r = this + , c = ".layui-table-cell" + , e = "array" === layui.type(e) ? e : [e] + , s = k.cache[r.key] || []; + layui.each(e, function(e, t) { + var a, l, n, o, d; + a = t.index, + l = t.data, + n = t.related, + o = s[a] || {}, + d = r.layBody.find('tr[data-index="' + a + '"]'), + layui.each(l, function(e, t) { + o[e] = t, + i && i(e, t) + }), + r.eachCols(function(e, t) { + var a, i = String(t.field || e); + (i in l || ("function" == typeof n ? n(i, e) : n) && (t.templet || t.toolbar)) && (i = (e = d.children('td[data-field="' + i + '"]')).children(c), + a = o[t.field], + i.html(T.call(r, { + item3: t, + content: a, + tplData: f.extend({ + LAY_COL: t + }, o) + })), + e.data("content", a), + r.renderFormByElem(i)) + }) + }) + } + , + k.updateRow = function(e, t) { + return C(e).updateRow(t) + } + , + n.prototype.events = function() { + var c = this + , s = c.config + , o = s.elem.attr("lay-filter") + , e = c.layHeader.find("th") + , u = ".layui-table-cell" + , d = f("body") + , r = {} + , y = (c.layTool.on("click", "*[lay-event]", function(e) { + var i = f(this) + , a = i.attr("lay-event") + , l = k.cache[s.id] + , n = function(e) { + var t = f(e.list) + , a = f('
                    '); + a.html(t), + s.height && a.css("max-height", s.height - (c.layTool.outerHeight() || 50)), + i.find("." + S)[0] || i.append(a), + c.renderForm(), + a.on("click", function(e) { + layui.stope(e) + }), + e.done && e.done(a, t) + }; + layui.stope(e), + z.trigger("table.tool.panel.remove"), + g.close(c.tipsIndex), + layui.each(s.defaultToolbar, function(e, t) { + if (t.layEvent === a) + return "function" == typeof t.onClick && t.onClick({ + data: l, + config: s, + openPanel: n, + elem: i + }), + !0 + }), + layui.event.call(this, R, "toolbar(" + o + ")", f.extend({ + event: a, + config: s + }, {})) + }), + c.layHeader.on("click", "*[lay-event]", function(e) { + var t = f(this) + , a = t.attr("lay-event") + , t = t.closest("th").data("key") + , t = c.col(t); + layui.event.call(this, R, "colTool(" + o + ")", f.extend({ + event: a, + config: s, + col: t + }, {})) + }), + c.layPagebar.on("click", "*[lay-event]", function(e) { + var t = f(this).attr("lay-event"); + layui.event.call(this, R, "pagebar(" + o + ")", f.extend({ + event: t, + config: s + }, {})) + }), + e.on("mousemove", function(e) { + var t = f(this) + , a = t.offset().left + , e = e.clientX - a; + t.data("unresize") || w.eventMoveElem || (r.allowResize = t.width() - e <= 10, + d.css("cursor", r.allowResize ? "col-resize" : "")) + }).on("mouseleave", function() { + f(this); + w.eventMoveElem || (r.allowResize = !1, + d.css("cursor", "")) + }).on("mousedown", function(e) { + var t, a = f(this); + r.allowResize && (t = a.data("key"), + e.preventDefault(), + r.offset = [e.clientX, e.clientY], + c.cssRules(t, function(e) { + var t = e.style.width || a.outerWidth(); + r.rule = e, + r.ruleWidth = parseFloat(t), + r.minWidth = a.data("minwidth") || s.cellMinWidth, + r.maxWidth = a.data("maxwidth") || s.cellMaxWidth + }), + a.data(j, r), + w.eventMoveElem = a) + }), + w.docEvent || z.on("mousemove", function(e) { + var t, a; + w.eventMoveElem && (t = w.eventMoveElem.data(j) || {}, + w.eventMoveElem.data("resizing", 1), + e.preventDefault(), + t.rule) && (e = t.ruleWidth + e.clientX - t.offset[0], + a = w.eventMoveElem.closest("." + D).attr(N), + a = C(a)) && ((e = e < t.minWidth ? t.minWidth : e) > t.maxWidth && (e = t.maxWidth), + t.rule.style.width = e + "px", + a.setGroupWidth(w.eventMoveElem), + g.close(c.tipsIndex)) + }).on("mouseup", function(e) { + var t, a, i, l, n; + w.eventMoveElem && (i = (t = w.eventMoveElem).closest("." + D).attr(N), + a = C(i)) && (i = t.data("key"), + l = a.col(i), + n = a.config.elem.attr("lay-filter"), + r = {}, + d.css("cursor", ""), + a.scrollPatch(), + t.removeData(j), + delete w.eventMoveElem, + a.cssRules(i, function(e) { + l.width = parseFloat(e.style.width), + layui.event.call(t[0], R, "colResized(" + n + ")", { + col: l, + config: a.config + }) + })) + }), + w.docEvent = !0, + e.on("click", function(e) { + var t = f(this) + , a = t.find(E) + , i = a.attr("lay-sort"); + if (!a[0] || 1 === t.data("resizing")) + return t.removeData("resizing"); + c.sort({ + field: t, + type: "asc" === i ? "desc" : "desc" === i ? null : "asc", + fromEvent: !0 + }) + }).find(E + " .layui-edge ").on("click", function(e) { + var t = f(this) + , a = t.index() + , t = t.parents("th").eq(0).data("field"); + layui.stope(e), + 0 === a ? c.sort({ + field: t, + type: "asc", + fromEvent: !0 + }) : c.sort({ + field: t, + type: "desc", + fromEvent: !0 + }) + }), + c.commonMember = function(e) { + var a = f(this).parents("tr").eq(0).data("index") + , t = c.layBody.find('tr[data-index="' + a + '"]') + , i = (k.cache[c.key] || [])[a] || {} + , l = { + tr: t, + config: s, + data: k.clearCacheKey(i), + dataCache: i, + index: a, + del: function() { + k.cache[c.key][a] = [], + t.remove(), + c.scrollPatch() + }, + update: function(e, t) { + c.updateRow({ + index: a, + data: e = e || {}, + related: t + }, function(e, t) { + l.data[e] = t + }) + }, + setRowChecked: function(e) { + c.setRowChecked(f.extend({ + index: a + }, e)) + } + }; + return f.extend(l, e) + } + ) + , t = (c.elem.on("click", 'input[name="layTableCheckbox"]+', function(e) { + var t = f(this) + , a = t.closest("td") + , t = t.prev() + , i = (c.layBody.find('input[name="layTableCheckbox"]'), + t.parents("tr").eq(0).data("index")) + , l = t[0].checked + , n = "layTableAllChoose" === t.attr("lay-filter"); + t[0].disabled || (n ? c.setRowChecked({ + index: "all", + checked: l + }) : c.setRowChecked({ + index: i, + checked: l + }), + layui.stope(e), + layui.event.call(t[0], R, "checkbox(" + o + ")", y.call(t[0], { + checked: l, + type: n ? "all" : "one", + getCol: function() { + return c.col(a.data("key")) + } + }))) + }), + c.elem.on("click", 'input[lay-type="layTableRadio"]+', function(e) { + var t = f(this) + , a = t.closest("td") + , t = t.prev() + , i = t[0].checked + , l = t.parents("tr").eq(0).data("index"); + if (layui.stope(e), + t[0].disabled) + return !1; + c.setRowChecked({ + type: "radio", + index: l + }), + layui.event.call(t[0], R, "radio(" + o + ")", y.call(t[0], { + checked: i, + getCol: function() { + return c.col(a.data("key")) + } + })) + }), + c.layBody.on("mouseenter", "tr", function() { + var e = f(this) + , t = e.index(); + e.data("off") || c.layBody.find("tr:eq(" + t + ")").addClass(_) + }).on("mouseleave", "tr", function() { + var e = f(this) + , t = e.index(); + e.data("off") || c.layBody.find("tr:eq(" + t + ")").removeClass(_) + }).on("click", "tr", function(e) { + t.call(this, "row", e) + }).on("dblclick", "tr", function(e) { + t.call(this, "rowDouble", e) + }).on("contextmenu", "tr", function(e) { + s.defaultContextmenu || e.preventDefault(), + t.call(this, "rowContextmenu", e) + }), + function(e, t) { + var a = f(this); + if (!a.data("off")) { + if ("rowContextmenu" !== e) { + var i = [".layui-form-checkbox", ".layui-form-switch", ".layui-form-radio", "[lay-unrow]"].join(","); + if (f(t.target).is(i) || f(t.target).closest(i)[0]) + return + } + layui.event.call(this, R, e + "(" + o + ")", y.call(a.children("td")[0], { + e: t + })) + } + } + ) + , n = function(e, t) { + var a, i, l; + (e = f(e)).data("off") || (l = e.data("field"), + i = e.data("key"), + i = c.col(i), + a = e.closest("tr").data("index"), + a = k.cache[c.key][a], + e.children(u), + (i = "function" == typeof i.edit ? i.edit(a) : i.edit) && ((i = f("textarea" === i ? '' : ''))[0].value = (l = e.data("content") || a[l]) === undefined || null === l ? "" : l, + e.find("." + M)[0] || e.append(i), + i.focus(), + t) && layui.stope(t)) + } + , i = (c.layBody.on("change", "." + M, function() { + var e = f(this) + , t = e.parent() + , a = this.value + , i = e.parent().data("field") + , e = e.closest("tr").data("index") + , e = k.cache[c.key][e] + , l = y.call(t[0], { + value: a, + field: i, + oldValue: e[i], + td: t, + reedit: function() { + setTimeout(function() { + n(l.td); + var e = {}; + e[i] = l.oldValue, + l.update(e) + }) + }, + getCol: function() { + return c.col(t.data("key")) + } + }) + , e = {}; + e[i] = a, + l.update(e), + layui.event.call(t[0], R, "edit(" + o + ")", l) + }).on("blur", "." + M, function() { + f(this).remove() + }), + c.layBody.on(s.editTrigger, "td", function(e) { + n(this, e) + }).on("mouseenter", "td", function() { + a.call(this) + }).on("mouseleave", "td", function() { + a.call(this, "hide") + }), + c.layTotal.on("mouseenter", "td", function() { + a.call(this) + }).on("mouseleave", "td", function() { + a.call(this, "hide") + }), + "layui-table-grid-down") + , a = function(e) { + var t = f(this) + , a = t.children(u); + t.data("off") || t.parent().hasClass(H) || (e ? t.find(".layui-table-grid-down").remove() : !(a.prop("scrollWidth") > a.prop("clientWidth") || 0 < a.find("br").length) || s.lineStyle || a.find("." + i)[0] || t.append('
                    ')) + } + , l = function(e, t) { + var a = f(this) + , i = a.parent() + , l = i.data("key") + , n = c.col(l) + , o = i.parent().data("index") + , d = i.children(u) + , i = "layui-table-cell-c" + , r = f(''); + "tips" === (t = t || n.expandedMode || s.cellExpandedMode) ? c.tipsIndex = g.tips(['
                    ', d.html(), "
                    ", ''].join(""), d[0], { + tips: [3, ""], + time: -1, + anim: -1, + maxWidth: x.ios || x.android ? 300 : c.elem.width() / 2, + isOutAnim: !1, + skin: "layui-table-tips", + success: function(e, t) { + e.find(".layui-table-tips-c").on("click", function() { + g.close(t) + }) + } + }) : (c.elem.find("." + i).trigger("click"), + c.cssRules(l, function(e) { + var t = e.style.width + , a = n.expandedWidth || s.cellExpandedWidth; + a < parseFloat(t) && (a = parseFloat(t)), + r.data("cell-width", t), + e.style.width = a + "px", + setTimeout(function() { + c.scrollPatch() + }) + }), + c.setRowActive(o, H), + d.next("." + i)[0] || d.after(r), + r.on("click", function() { + var t = f(this); + c.setRowActive(o, [H, _].join(" "), !0), + c.cssRules(l, function(e) { + e.style.width = t.data("cell-width"), + setTimeout(function() { + c.resize() + }) + }), + t.remove(), + d.scrollTop(0), + d.scrollLeft(0) + })), + a.remove(), + layui.stope(e) + } + , h = (c.layBody.on("click", "." + i, function(e) { + l.call(this, e) + }), + c.layTotal.on("click", "." + i, function(e) { + l.call(this, e, "tips") + }), + function(e) { + var t = f(this) + , a = t.closest("td") + , i = t.parents("tr").eq(0).data("index"); + c.setRowActive(i), + layui.event.call(this, R, (e || "tool") + "(" + o + ")", y.call(this, { + event: t.attr("lay-event"), + getCol: function() { + return c.col(a.data("key")) + } + })) + } + ) + , p = (c.layBody.on("click", "*[lay-event]", function(e) { + h.call(this), + layui.stope(e) + }).on("dblclick", "*[lay-event]", function(e) { + h.call(this, "toolDouble"), + layui.stope(e) + }), + c.layMain.on("scroll", function() { + var e = f(this) + , t = e.scrollLeft() + , e = e.scrollTop(); + c.layHeader.scrollLeft(t), + c.layTotal.scrollLeft(t), + c.layFixed.find(L).scrollTop(e), + g.close(c.tipsIndex) + }), + window.requestAnimationFrame || function(e) { + return setTimeout(e, 1e3 / 60) + } + ); + c.layFixed.find(L).on("mousewheel DOMMouseScroll", function(e) { + var t = e.originalEvent.wheelDelta || -e.originalEvent.detail + , a = c.layMain.scrollTop() + , i = 100 + , l = (e.preventDefault(), + function() { + 0 < i && (i -= 10, + a += 0 < t ? -10 : 10, + c.layMain.scrollTop(a), + p(l)) + } + ); + p(l) + }) + } + , + n.prototype.getElementSize = function(e) { + if (window.getComputedStyle) + return e = window.getComputedStyle(e, null), + { + height: parseFloat(e.height || "0"), + width: parseFloat(e.width || "0"), + borderTopWidth: parseFloat(e.borderTopWidth || "0"), + borderRightWidth: parseFloat(e.borderRightWidth || "0"), + borderBottomWidth: parseFloat(e.borderBottomWidth || "0"), + borderLeftWidth: parseFloat(e.borderLeftWidth || "0"), + paddingTop: parseFloat(e.paddingTop || "0"), + paddingRight: parseFloat(e.paddingRight || "0"), + paddingBottom: parseFloat(e.paddingBottom || "0"), + paddingLeft: parseFloat(e.paddingLeft || "0"), + marginTop: parseFloat(e.marginTop || "0"), + marginRight: parseFloat(e.marginRight || "0"), + marginBottom: parseFloat(e.marginBottom || "0"), + marginLeft: parseFloat(e.marginLeft || "0"), + boxSizing: e.boxSizing + } + } + , + n.prototype.getContentWidth = function(e) { + var t; + return !(9 === e[0].nodeType || r.ie && "border-box" === e.css("box-sizing") || "none" === e.css("display")) && void 0 !== (t = this.getElementSize(e[0])) && t.width ? "border-box" === t.boxSizing ? t.width - t.paddingLeft - t.paddingRight - t.borderLeftWidth - t.borderRightWidth : t.width : e.width() + } + , + d.on("resize", function() { + layui.each(w.that, function() { + this.resize() + }) + }), + z.on("click", function() { + z.trigger("table.remove.tool.panel") + }), + z.on("table.remove.tool.panel", function() { + f("." + S).remove() + }), + k.init = function(i, o) { + o = o || {}; + var e = "object" == typeof i ? i : f("string" == typeof i ? 'table[lay-filter="' + i + '"]' : t + "[lay-data], " + t + "[lay-options]") + , d = "Table element property lay-data configuration item has a syntax error: "; + return e.each(function() { + var l, e = f(this), t = e.attr("lay-data"), t = r.options(this, { + attr: t ? "lay-data" : null, + errorText: d + (t || e.attr("lay-options")) + }), n = f.extend({ + elem: this, + cols: [], + data: [], + skin: e.attr("lay-skin"), + size: e.attr("lay-size"), + even: "string" == typeof e.attr("lay-even") + }, k.config, o, t), a = (i && e.hide(), + e.find("thead>tr").each(function(i) { + n.cols[i] = [], + f(this).children().each(function(e) { + var t = f(this) + , a = t.attr("lay-data") + , a = r.options(this, { + attr: a ? "lay-data" : null, + errorText: d + (a || t.attr("lay-options")) + }) + , t = f.extend({ + title: t.text(), + colspan: parseInt(t.attr("colspan")) || 1, + rowspan: parseInt(t.attr("rowspan")) || 1 + }, a); + n.cols[i].push(t) + }) + }), + e.find("tbody>tr")), t = k.render(n); + !a.length || o.data || t.config.url || (l = 0, + k.eachCols(t.config.id, function(e, i) { + a.each(function(e) { + n.data[e] = n.data[e] || {}; + var t = f(this) + , a = i.field; + n.data[e][a] = t.children("td").eq(l).html() + }), + l++ + }), + t.reloadData({ + data: n.data + })) + }), + this + } + , + w.that = {}, + w.config = {}, + function(a, i, e, l) { + var n, o; + l.colGroup && (n = 0, + a++, + l.CHILD_COLS = [], + o = e + (parseInt(l.rowspan) || 1), + layui.each(i[o], function(e, t) { + t.parentKey ? t.parentKey === l.key && (t.PARENT_COL_INDEX = a, + l.CHILD_COLS.push(t), + c(a, i, o, t)) : t.PARENT_COL_INDEX || 1 <= n && n == (l.colspan || 1) || (t.PARENT_COL_INDEX = a, + l.CHILD_COLS.push(t), + n += parseInt(1 < t.colspan ? t.colspan : 1), + c(a, i, o, t)) + })) + } + ); + k.eachCols = function(e, a, i) { + var e = w.config[e] || {} + , l = [] + , n = (i = f.extend(!0, [], i || e.cols), + layui.each(i, function(a, e) { + if (a) + return !0; + layui.each(e, function(e, t) { + c(0, i, a, t), + t.PARENT_COL_INDEX || l.push(t) + }) + }), + function(e) { + layui.each(e || l, function(e, t) { + if (t.CHILD_COLS) + return n(t.CHILD_COLS); + "function" == typeof a && a(e, t) + }) + } + ); + n() + } + , + k.checkStatus = function(e) { + var a = 0 + , i = [] + , l = [] + , e = k.cache[e] || []; + return layui.each(e, function(e, t) { + "array" === layui.type(t) || t[k.config.disabledName] ? a++ : t[k.config.checkName] && (i.push(k.clearCacheKey(t)), + l.push(t)) + }), + { + data: i, + dataCache: l, + isAll: !(!e.length || !i.length) && i.length === e.length - a + } + } + , + k.setRowChecked = function(e, t) { + e = C(e); + e && e.setRowChecked(t) + } + , + k.getData = function(e) { + var a = [] + , e = k.cache[e] || []; + return layui.each(e, function(e, t) { + "array" !== layui.type(t) && a.push(k.clearCacheKey(t)) + }), + a + } + , + k.resize = function(e) { + e ? l(e) && C(e).resize() : layui.each(w.that, function() { + this.resize() + }) + } + , + k.exportFile = function(e, t, a) { + t = t || k.clearCacheKey(k.cache[e]); + var i = (a = "object" == typeof a ? a : (i = {}, + a && (i.type = a), + i)).type || "csv" + , o = w.that[e] + , l = w.config[e] || {} + , n = { + csv: "text/csv", + xls: "application/vnd.ms-excel" + }[i] + , d = document.createElement("a"); + if (x.ie) + return b.error("IE_NOT_SUPPORT_EXPORTS"); + var r, c, s, u, y = l.tree && l.tree.view; + if (y) + try { + t = f.extend(!0, [], k.cache[e]), + t = function h(e) { + return e.reduce(function(e, t) { + var a = t.children || []; + return delete t.children, + e.concat(t, h(a)) + }, []) + }(Array.from(t)) + } catch (p) {} + d.href = "data:" + n + ";charset=utf-8,\ufeff" + encodeURIComponent((r = [], + c = [], + s = [], + u = {}, + layui.each(t, function(i, l) { + var n = []; + "object" == typeof e ? (layui.each(e, function(e, t) { + 0 == i && r.push(t || "") + }), + layui.each(layui.isArray(l) ? f.extend([], l) : k.clearCacheKey(l), function(e, t) { + n.push('"' + (t || "") + '"') + })) : k.eachCols(e, function(e, t) { + var a; + !1 === t.ignoreExport || t.field && "normal" == t.type ? t.hide && !1 !== t.ignoreExport || !0 === t.ignoreExport ? 0 == i && (u[t.field] = !0) : ((a = l[t.field]) !== undefined && null !== a || (a = ""), + 0 == i && r.push(t.fieldTitle || t.title || t.field || ""), + a = (a = T.call(o, { + item3: t, + content: a, + tplData: l, + text: "text", + obj: { + td: function(e) { + return y && (i = l.LAY_DATA_INDEX), + o.layBody.find('tr[data-index="' + i + '"]>td').filter('[data-field="' + e + '"]') + } + } + })).replace(/"/g, '""'), + n.push(a = '"' + a + '"')) : t.field && "normal" !== t.type && 0 == i && (u[t.field] = !0) + }), + c.push(n.join(",")) + }), + o && layui.each(o.dataTotal, function(e, t) { + u[t.field] || s.push('"' + (t.total || "") + '"') + }), + r.join(",") + "\r\n" + c.join("\r\n") + "\r\n" + s.join(","))), + d.download = (a.title || l.title || "table_" + (l.index || "")) + "." + i, + document.body.appendChild(d), + d.click(), + document.body.removeChild(d) + } + , + k.getOptions = l, + k.hideCol = function(e, l) { + var n = C(e); + n && ("boolean" === layui.type(l) ? n.eachCols(function(e, t) { + var a = t.key + , i = n.col(a) + , t = t.parentKey; + i.hide != l && (i = i.hide = l, + n.elem.find('*[data-key="' + a + '"]')[i ? "addClass" : "removeClass"](W), + n.setParentCol(i, t)) + }) : (l = layui.isArray(l) ? l : [l], + layui.each(l, function(e, l) { + n.eachCols(function(e, t) { + var a, i; + l.field === t.field && (a = t.key, + i = n.col(a), + t = t.parentKey, + "hide"in l) && i.hide != l.hide && (i = i.hide = !!l.hide, + n.elem.find('*[data-key="' + a + '"]')[i ? "addClass" : "removeClass"](W), + n.setParentCol(i, t)) + }) + })), + f("." + S).remove(), + n.resize()) + } + , + k.reload = function(e, t, a, i) { + if (l(e)) + return (e = C(e)).reload(t, a, i), + w.call(e) + } + , + k.reloadData = function() { + var a = f.extend([], arguments) + , i = (a[3] = "reloadData", + new RegExp("^(" + ["elem", "id", "cols", "width", "height", "maxHeight", "toolbar", "defaultToolbar", "className", "css", "pagebar"].join("|") + ")$")); + return layui.each(a[1], function(e, t) { + i.test(e) && delete a[1][e] + }), + k.reload.apply(null, a) + } + , + k.render = function(e) { + e = new n(e); + return w.call(e) + } + , + k.clearCacheKey = function(e) { + return delete (e = f.extend({}, e))[k.config.checkName], + delete e[k.config.indexName], + delete e[k.config.initIndexName], + delete e[k.config.numbersName], + delete e[k.config.disabledName], + e + } + , + f(function() { + k.init() + }), + s(R, k) +}); +layui.define(["table"], function(e) { + "use strict"; + var A = layui.$ + , h = layui.form + , P = layui.table + , y = layui.hint() + , B = { + config: {}, + on: P.on, + eachCols: P.eachCols, + index: P.index, + set: function(e) { + var t = this; + return t.config = A.extend({}, t.config, e), + t + }, + resize: P.resize, + getOptions: P.getOptions, + hideCol: P.hideCol, + renderData: P.renderData + } + , i = function() { + var a = this + , e = a.config + , n = e.id || e.index; + return { + config: e, + reload: function(e, t) { + a.reload.call(a, e, t) + }, + reloadData: function(e, t) { + B.reloadData(n, e, t) + } + } + } + , j = function(e) { + var t = i.that[e]; + return t || y.error(e ? "The treeTable instance with ID '" + e + "' not found" : "ID argument required"), + t || null + } + , F = "lay-table-id" + , L = "layui-hide" + , s = ".layui-table-body" + , q = ".layui-table-main" + , R = ".layui-table-fixed-l" + , Y = ".layui-table-fixed-r" + , l = "layui-table-checked" + , m = "layui-table-tree" + , z = "LAY_DATA_INDEX" + , b = "LAY_DATA_INDEX_HISTORY" + , p = "LAY_PARENT_INDEX" + , g = "LAY_CHECKBOX_HALF" + , H = "LAY_EXPAND" + , X = "LAY_HAS_EXPANDED" + , V = "LAY_ASYNC_STATUS" + , n = ["all", "parent", "children", "none"] + , t = /<[^>]+?>/ + , f = ["flexIconClose", "flexIconOpen", "iconClose", "iconOpen", "iconLeaf", "icon"] + , a = function(e) { + var t = this; + t.index = ++B.index, + t.config = A.extend(!0, {}, t.config, B.config, e), + t.init(), + t.render() + } + , x = function(n, i, e) { + var l = P.cache[n]; + layui.each(e || l, function(e, t) { + var a = t[z] || ""; + -1 !== a.indexOf("-") && (l[a] = t), + t[i] && x(n, i, t[i]) + }) + } + , d = function(d, a, e) { + var r = j(d) + , o = ("reloadData" !== e && (r.status = { + expand: {} + }), + A.extend(!0, {}, r.getOptions(), a)) + , n = o.tree + , c = n.customName.children + , i = n.customName.id + , l = (delete a.hasNumberCol, + delete a.hasChecboxCol, + delete a.hasRadioCol, + P.eachCols(null, function(e, t) { + "numbers" === t.type ? a.hasNumberCol = !0 : "checkbox" === t.type ? a.hasChecboxCol = !0 : "radio" === t.type && (a.hasRadioCol = !0) + }, o.cols), + a.parseData) + , u = a.done; + "reloadData" === e && "fixed" === o.scrollPos && (r.scrollTopCache = r.config.elem.next().find(s).scrollTop()), + o.url ? e && (!l || l.mod) || (a.parseData = function() { + var e = this + , t = arguments + , a = t[0] + , t = ("function" === layui.type(l) && (a = l.apply(e, t) || t[0]), + e.response.dataName); + return n.data.isSimpleData && !n["async"].enable && (a[t] = r.flatToTree(a[t])), + N(a[t], function(e) { + e[H] = H in e ? e[H] : e[i] !== undefined && r.status.expand[e[i]] + }, c), + e.autoSort && e.initSort && e.initSort.type && layui.sort(a[t], e.initSort.field, "desc" === e.initSort.type, !0), + r.initData(a[t]), + a + } + , + a.parseData.mod = !0) : a.data !== undefined && (a.data = a.data || [], + n.data.isSimpleData && (a.data = r.flatToTree(a.data)), + r.initData(a.data)), + e && (!u || u.mod) || (a.done = function() { + var e, t = arguments, a = t[3], n = "renderData" === a, i = (n || delete r.isExpandAll, + this.elem.next()), l = (r.updateStatus(null, { + LAY_HAS_EXPANDED: !1 + }), + x(d, c), + i.find('[name="layTableCheckbox"][lay-filter="layTableAllChoose"]')); + if (l.length && (e = B.checkStatus(d), + l.prop({ + checked: e.isAll && e.data.length, + indeterminate: !e.isAll && e.data.length + })), + !n && o.autoSort && o.initSort && o.initSort.type && B.sort(d), + r.renderTreeTable(i), + "reloadData" === a && "fixed" === this.scrollPos && i.find(s).scrollTop(r.scrollTopCache), + "function" === layui.type(u)) + return u.apply(this, t) + } + , + a.done.mod = !0), + a && a.tree && a.tree.view && layui.each(f, function(e, t) { + a.tree.view[t] !== undefined && (a.tree.view[t] = r.normalizedIcon(a.tree.view[t])) + }) + }; + a.prototype.init = function() { + var e = this.config + , t = e.tree.data.cascade + , t = (-1 === n.indexOf(t) && (e.tree.data.cascade = "all"), + P.render(A.extend({}, e, { + data: [], + url: "", + done: null + }))) + , a = t.config.id; + (i.that[a] = this).tableIns = t, + d(a, e) + } + , + a.prototype.config = { + tree: { + customName: { + children: "children", + isParent: "isParent", + name: "name", + id: "id", + pid: "parentId", + icon: "icon" + }, + view: { + indent: 14, + flexIconClose: '', + flexIconOpen: '', + showIcon: !0, + icon: "", + iconClose: '', + iconOpen: '', + iconLeaf: '', + showFlexIconIfNotParent: !1, + dblClickExpand: !0, + expandAllDefault: !1 + }, + data: { + isSimpleData: !1, + rootPid: null, + cascade: "all" + }, + "async": { + enable: !1, + url: "", + type: null, + contentType: null, + headers: null, + where: null, + autoParam: [] + }, + callback: { + beforeExpand: null, + onExpand: null + } + } + }, + a.prototype.normalizedIcon = function(e) { + return e ? t.test(e) ? e : '' : "" + } + , + a.prototype.getOptions = function() { + return this.tableIns ? P.getOptions(this.tableIns.config.id) : this.config + } + , + a.prototype.flatToTree = function(e) { + var n, i, l, d, r, o, c, u, t = this.getOptions(), a = t.tree, s = a.customName, t = t.id; + return e = e || P.cache[t], + t = e, + n = s.id, + i = s.pid, + l = s.children, + d = a.data.rootPid, + n = n || "id", + i = i || "parentId", + l = l || "children", + c = {}, + u = [], + layui.each(t, function(e, t) { + r = n + t[n], + o = n + t[i], + c[r] || (c[r] = {}, + c[r][l] = []); + var a = {}; + a[l] = c[r][l], + c[r] = A.extend({}, t, a), + ((d ? c[r][i] === d : !c[r][i]) ? u : (c[o] || (c[o] = {}, + c[o][l] = []), + c[o][l])).push(c[r]) + }), + u + } + , + a.prototype.treeToFlat = function(e, n, i) { + var l = this + , d = l.getOptions().tree.customName + , r = d.children + , o = d.pid + , c = []; + return layui.each(e, function(e, t) { + var e = (i ? i + "-" : "") + e + , a = A.extend({}, t); + a[o] = t[o] || n, + c.push(a), + c = c.concat(l.treeToFlat(t[r], t[d.id], e)) + }), + c + } + , + a.prototype.getTreeNode = function(e) { + var t, a, n = this; + return e ? (a = (t = n.getOptions()).tree, + t.id, + a.customName, + { + data: e, + dataIndex: e[z], + getParentNode: function() { + return n.getNodeByIndex(e[p]) + } + }) : y.error("\u627e\u4e0d\u5230\u8282\u70b9\u6570\u636e") + } + , + a.prototype.getNodeByIndex = function(t) { + var a, e, n = this, i = n.getNodeDataByIndex(t); + return i ? ((e = n.getOptions()).tree.customName.parent, + a = e.id, + (e = { + data: i, + dataIndex: i[z], + getParentNode: function() { + return n.getNodeByIndex(i[p]) + }, + update: function(e) { + return B.updateNode(a, t, e) + }, + remove: function() { + return B.removeNode(a, t) + }, + expand: function(e) { + return B.expandNode(a, A.extend({}, e, { + index: t + })) + }, + setChecked: function(e) { + return B.setRowChecked(a, A.extend({}, e, { + index: t + })) + } + }).dataIndex = t, + e) : y.error("\u627e\u4e0d\u5230\u8282\u70b9\u6570\u636e") + } + , + a.prototype.getNodeById = function(a) { + var e = this.getOptions() + , n = e.tree.customName.id + , i = "" + , e = B.getData(e.id, !0); + if (layui.each(e, function(e, t) { + if (t[n] === a) + return i = t[z], + !0 + }), + i) + return this.getNodeByIndex(i) + } + , + a.prototype.getNodeDataByIndex = function(e, t, a) { + var n = this.getOptions() + , i = n.tree + , n = n.id + , n = P.cache[n] + , l = n[e]; + if ("delete" !== a && l) + return A.extend(l, a), + t ? A.extend({}, l) : l; + for (var d = n, r = String(e).split("-"), o = 0, c = i.customName.children; o < r.length; o++) { + if (a && o === r.length - 1) { + if ("delete" === a) + return (o ? d[c] : d).splice(r[o], 1)[0]; + A.extend((o ? d[c] : d)[r[o]], a) + } + d = (o ? d[c] : d)[r[o]] + } + return t ? A.extend({}, d) : d + } + , + B.getNodeDataByIndex = function(e, t) { + e = j(e); + if (e) + return e.getNodeDataByIndex(t, !0) + } + ; + a.prototype.initData = function(e, t) { + var a = this.getOptions() + , n = a.tree + , a = a.id + , n = (e = e || this.getTableData(), + n.customName) + , i = n.isParent + , l = n.children + , d = function(e, a) { + layui.each(e, function(e, t) { + i in t || (t[i] = !(!t[l] || !t[l].length)), + t[b] = t[z], + t[p] = a = a || ""; + e = t[z] = (a ? a + "-" : "") + e; + d(t[l] || [], e) + }) + }; + return d(e, t), + x(a, l, e), + e + } + , + r = {}; + var r, U = function(e, t, a) { + return r[e] || (r[e] = layui.debounce(t, a)), + r[e] + }, J = function(t, a, n, i, l) { + var e = t.trElem + , d = t.tableViewElem || e.closest(".layui-table-view") + , r = t.tableId || d.attr(F) + , o = t.options || P.getOptions(r) + , e = t.dataIndex || e.attr("lay-data-index") + , c = j(r) + , u = o.tree || {} + , s = u.customName || {} + , f = s.isParent + , y = c.getNodeDataByIndex(e) + , p = "boolean" !== layui.type(a) + , x = p ? !y[H] : a + , h = y[f] ? x : null; + if (l && x != y[H] && (!y[V] || "local" === y[V])) { + var m = u.callback.beforeExpand; + if ("function" === layui.type(m) && !1 === m(r, y, a)) + return h + } + var m = y[X] + , b = d.find('tr[lay-data-index="' + e + '"]') + , g = b.find(".layui-table-tree-flexIcon") + , v = (c.updateNodeIcon({ + scopeEl: b, + isExpand: x, + isParent: y[f] + }), + y[H] = x, + y[s.id]); + if (v !== undefined && (c.status.expand[v] = x), + null !== h) { + v = y[s.children] || []; + if (x) + if (m) { + if (!v.length) + return; + b.nextAll(v.map(function(e, t, a) { + return 'tr[lay-data-index="' + e[z] + '"]' + }).join(",")).removeClass(L), + layui.each(v, function(e, t) { + t[f] && (!n || p || t[H] ? t[H] && J({ + dataIndex: t[z], + trElem: d.find('tr[lay-data-index="' + t[z] + '"]').first(), + tableViewElem: d, + tableId: r, + options: o + }, !0) : J({ + dataIndex: t[z], + trElem: d.find('tr[lay-data-index="' + t[z] + '"]').first(), + tableViewElem: d, + tableId: r, + options: o + }, a, n, i, l)) + }) + } else { + var N, I, C, D, T, _, k, w, O, S, E, m = u["async"] || {}, b = m.url || o.url; + if (m.enable && y[f] && (!y[V] || "error" === y[V])) + return y[V] = "loading", + g.html(''), + N = function(e) { + y[V] = "success", + y[s.children] = e, + c.initData(y[s.children], y[z]), + J(t, !0, !p && n, i, l) + } + , + C = m.format, + "function" === layui.type(C) ? C(y, o, N) : (I = A.extend({}, m.where || o.where), + C = m.autoParam, + layui.each(C, function(e, t) { + t = t.split("="); + I[t[0].trim()] = y[(t[1] || t[0]).trim()] + }), + (C = m.contentType || o.contentType) && 0 == C.indexOf("application/json") && (I = JSON.stringify(I)), + O = m.method || o.method, + D = m.dataType || o.dataType, + T = m.jsonpCallback || o.jsonpCallback, + _ = m.headers || o.headers, + k = m.parseData || o.parseData, + w = m.response || o.response, + A.ajax({ + type: O || "get", + url: b, + contentType: C, + data: I, + dataType: D || "json", + jsonpCallback: T, + headers: _ || {}, + success: function(e) { + (e = "function" == typeof k ? k.call(o, e) || e : e)[w.statusName] != w.statusCode ? (y[V] = "error", + y[H] = !1, + g.html('')) : N(e[w.dataName]) + }, + error: function(e, t) { + y[V] = "error", + y[H] = !1, + "function" == typeof o.error && o.error(e, t) + } + })), + h; + y[X] = !0, + v.length && (!o.initSort || o.url && !o.autoSort || ((m = o.initSort).type ? layui.sort(v, m.field, "desc" === m.type, !0) : layui.sort(v, P.config.indexName, null, !0)), + c.initData(y[s.children], y[z]), + O = P.getTrHtml(r, v, null, null, e), + S = { + trs: A(O.trs.join("")), + trs_fixed: A(O.trs_fixed.join("")), + trs_fixed_r: A(O.trs_fixed_r.join("")) + }, + E = (e.split("-").length - 1 || 0) + 1, + layui.each(v, function(e, t) { + S.trs.eq(e).attr({ + "data-index": t[z], + "lay-data-index": t[z], + "data-level": E + }).data("index", t[z]), + S.trs_fixed.eq(e).attr({ + "data-index": t[z], + "lay-data-index": t[z], + "data-level": E + }).data("index", t[z]), + S.trs_fixed_r.eq(e).attr({ + "data-index": t[z], + "lay-data-index": t[z], + "data-level": E + }).data("index", t[z]) + }), + d.find(q).find('tbody tr[lay-data-index="' + e + '"]').after(S.trs), + d.find(R).find('tbody tr[lay-data-index="' + e + '"]').after(S.trs_fixed), + d.find(Y).find('tbody tr[lay-data-index="' + e + '"]').after(S.trs_fixed_r), + c.renderTreeTable(S.trs, E), + n) && !p && layui.each(v, function(e, t) { + J({ + dataIndex: t[z], + trElem: d.find('tr[lay-data-index="' + t[z] + '"]').first(), + tableViewElem: d, + tableId: r, + options: o + }, a, n, i, l) + }) + } + else + c.isExpandAll = !1, + (n && !p ? (layui.each(v, function(e, t) { + J({ + dataIndex: t[z], + trElem: d.find('tr[lay-data-index="' + t[z] + '"]').first(), + tableViewElem: d, + tableId: r, + options: o + }, a, n, i, l) + }), + d.find(v.map(function(e, t, a) { + return 'tr[lay-data-index="' + e[z] + '"]' + }).join(","))) : (b = c.treeToFlat(v, y[s.id], e), + d.find(b.map(function(e, t, a) { + return 'tr[lay-data-index="' + e[z] + '"]' + }).join(",")))).addClass(L); + U("resize-" + r, function() { + B.resize(r) + }, 0)(), + l && "loading" !== y[V] && (C = u.callback.onExpand, + "function" === layui.type(C)) && C(r, y, x) + } + return h + }, v = (B.expandNode = function(e, t) { + var a, n, i, e = j(e); + if (e) + return a = (t = t || {}).index, + n = t.expandFlag, + i = t.inherit, + t = t.callbackFlag, + e = e.getOptions().elem.next(), + J({ + trElem: e.find('tr[lay-data-index="' + a + '"]').first() + }, n, i, null, t) + } + , + B.expandAll = function(a, e) { + if ("boolean" !== layui.type(e)) + return y.error("expandAll \u7684\u5c55\u5f00\u72b6\u6001\u53c2\u6570\u53ea\u63a5\u6536true/false"); + var t = j(a); + if (t) { + t.isExpandAll = e; + var n = t.getOptions() + , i = n.tree + , l = n.elem.next() + , d = i.customName.isParent + , r = i.customName.id + , o = i.view.showFlexIconIfNotParent; + if (e) { + e = B.getData(a, !0); + if (i["async"].enable) { + var c = !0; + if (layui.each(e, function(e, t) { + if (t[d] && !t[V]) + return !(c = !1) + }), + !c) + return void layui.each(B.getData(a), function(e, t) { + B.expandNode(a, { + index: t[z], + expandFlag: !0, + inherit: !0 + }) + }) + } + var u = !0; + if (layui.each(e, function(e, t) { + if (t[d] && !t[X]) + return !(u = !1) + }), + u) + t.updateStatus(null, function(e) { + (e[d] || o) && (e[H] = !0, + e[r] !== undefined) && (t.status.expand[e[r]] = !0) + }), + l.find('tbody tr[data-level!="0"]').removeClass(L), + l.find(".layui-table-tree-flexIcon").html(i.view.flexIconOpen), + i.view.showIcon && l.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)").html(i.view.iconOpen); + else { + if (t.updateStatus(null, function(e) { + (e[d] || o) && (e[H] = !0, + e[X] = !0, + e[r] !== undefined) && (t.status.expand[e[r]] = !0) + }), + n.initSort && n.initSort.type && n.autoSort) + return B.sort(a); + var s, n = P.getTrHtml(a, e), f = { + trs: A(n.trs.join("")), + trs_fixed: A(n.trs_fixed.join("")), + trs_fixed_r: A(n.trs_fixed_r.join("")) + }; + layui.each(e, function(e, t) { + var a = t[z].split("-").length - 1; + s = { + "data-index": t[z], + "lay-data-index": t[z], + "data-level": a + }, + f.trs.eq(e).attr(s).data("index", t[z]), + f.trs_fixed.eq(e).attr(s).data("index", t[z]), + f.trs_fixed_r.eq(e).attr(s).data("index", t[z]) + }), + layui.each(["main", "fixed-l", "fixed-r"], function(e, t) { + l.find(".layui-table-" + t + " tbody").html(f[["trs", "trs_fixed", "trs_fixed_r"][e]]) + }), + t.renderTreeTable(l, 0, !1) + } + } else + t.updateStatus(null, function(e) { + (e[d] || o) && (e[H] = !1, + e[r] !== undefined) && (t.status.expand[e[r]] = !1) + }), + l.find('.layui-table-box tbody tr[data-level!="0"]').addClass(L), + l.find(".layui-table-tree-flexIcon").html(i.view.flexIconClose), + i.view.showIcon && l.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom,.layui-table-tree-iconLeaf)").html(i.view.iconClose); + B.resize(a) + } + } + , + a.prototype.updateNodeIcon = function(e) { + var t = this.getOptions().tree || {} + , a = e.scopeEl + , n = e.isExpand + , e = e.isParent; + a.find(".layui-table-tree-flexIcon").css("visibility", e || t.view.showFlexIconIfNotParent ? "visible" : "hidden").html(n ? t.view.flexIconOpen : t.view.flexIconClose), + t.view.showIcon && (a = a.find(".layui-table-tree-nodeIcon:not(.layui-table-tree-iconCustom)"), + n = e ? n ? t.view.iconOpen : t.view.iconClose : t.view.iconLeaf, + a.toggleClass("layui-table-tree-iconLeaf", !e).html(n)) + } + , + a.prototype.renderTreeTable = function(e, t, a) { + var l = this + , n = l.getOptions() + , d = n.elem.next() + , i = (d.hasClass(m) || d.addClass(m), + n.id) + , r = n.tree || {} + , o = (r.data, + r.view || {}) + , c = r.customName || {} + , u = c.isParent + , s = (d.attr("lay-filter"), + l) + , f = n.data.length + , y = ((t = t || 0) || (d.find(".layui-table-body tr:not([data-level])").attr("data-level", t), + layui.each(P.cache[i], function(e, t) { + f && (t[z] = String(e)); + t = t[z]; + d.find('.layui-table-main tbody tr[data-level="0"]:eq(' + e + ")").attr("lay-data-index", t), + d.find('.layui-table-fixed-l tbody tr[data-level="0"]:eq(' + e + ")").attr("lay-data-index", t), + d.find('.layui-table-fixed-r tbody tr[data-level="0"]:eq(' + e + ")").attr("lay-data-index", t) + })), + null) + , p = c.name + , x = o.indent || 14; + if (layui.each(e.find('td[data-field="' + p + '"]'), function(e, t) { + var a, n, i = (t = A(t)).closest("tr"), t = t.children(".layui-table-cell"); + t.hasClass("layui-table-tree-item") || (n = i.attr("lay-data-index")) && (i = d.find('tr[lay-data-index="' + n + '"]'), + (a = s.getNodeDataByIndex(n))[H] && a[u] && ((y = y || {})[n] = !0), + a[g] && i.find('input[type="checkbox"][name="layTableCheckbox"]').prop("indeterminate", !0), + n = t.html(), + (t = i.find('td[data-field="' + p + '"]>div.layui-table-cell')).addClass("layui-table-tree-item"), + t.html(['
                    ', a[H] ? o.flexIconOpen : o.flexIconClose, "
                    ", o.showIcon ? '
                    ' + (l.normalizedIcon(a[c.icon]) || o.icon || (a[u] ? a[H] ? o.iconOpen : o.iconClose : o.iconLeaf) || "") + "
                    " : "", n].join("")).find(".layui-table-tree-flexIcon").on("click", function(e) { + layui.stope(e), + J({ + trElem: i + }, null, null, null, !0) + })) + }), + !t && r.view.expandAllDefault && l.isExpandAll === undefined) + return B.expandAll(i, !0); + (!1 !== a && y ? (layui.each(y, function(e, t) { + e = d.find('tr[lay-data-index="' + e + '"]'); + e.find(".layui-table-tree-flexIcon").html(o.flexIconOpen), + J({ + trElem: e.first() + }, !0) + }), + U("renderTreeTable2-" + i, function() { + h.render(A(".layui-table-tree[" + F + '="' + i + '"]')) + }, 0)) : U("renderTreeTable-" + i, function() { + n.hasNumberCol && v(l), + h.render(A(".layui-table-tree[" + F + '="' + i + '"]')) + }, 0))() + } + , + function(a) { + var e = a.getOptions() + , t = e.elem.next() + , n = 0 + , i = t.find(".layui-table-main tbody tr") + , l = t.find(".layui-table-fixed-l tbody tr") + , d = t.find(".layui-table-fixed-r tbody tr"); + layui.each(a.treeToFlat(P.cache[e.id]), function(e, t) { + t.LAY_HIDE || (a.getNodeDataByIndex(t[z]).LAY_NUM = ++n, + i.eq(e).find(".laytable-cell-numbers").html(n), + l.eq(e).find(".laytable-cell-numbers").html(n), + d.eq(e).find(".laytable-cell-numbers").html(n)) + }) + } + ), N = (a.prototype.render = function(e) { + var t = this; + t.tableIns = P["reloadData" === e ? "reloadData" : "reload"](t.tableIns.config.id, A.extend(!0, {}, t.config)), + t.config = t.tableIns.config + } + , + a.prototype.reload = function(e, t, a) { + var n = this; + e = e || {}, + delete n.haveInit, + layui.each(e, function(e, t) { + "array" === layui.type(t) && delete n.config[e] + }), + d(n.getOptions().id, e, a || !0), + n.config = A.extend(t, {}, n.config, e), + n.render(a) + } + , + B.reloadData = function() { + var e = A.extend(!0, [], arguments); + return e[3] = "reloadData", + B.reload.apply(null, e) + } + , + function(e, a, n, i) { + var l = []; + return layui.each(e, function(e, t) { + "function" === layui.type(a) ? a(t) : A.extend(t, a), + l.push(A.extend({}, t)), + i || (l = l.concat(N(t[n], a, n, i))) + }), + l + } + ), o = (a.prototype.updateStatus = function(e, t, a) { + var n = this.getOptions() + , i = n.tree; + return e = e || P.cache[n.id], + N(e, t, i.customName.children, a) + } + , + a.prototype.getTableData = function() { + var e = this.getOptions(); + return P.cache[e.id] + } + , + B.updateStatus = function(e, t, a) { + var e = j(e) + , n = e.getOptions(); + return a = a || (n.url ? P.cache[n.id] : n.data), + e.updateStatus(a, t) + } + , + B.sort = function(e) { + var t, a, i, l, n, d = j(e); + d && (n = (t = d.getOptions()).tree, + a = B.getData(e), + i = n.customName.children, + l = function(e, a, n) { + layui.sort(e, a, n, !0), + layui.each(e, function(e, t) { + l(t[i] || [], a, n) + }) + } + , + t.autoSort) && ((n = t.initSort).type ? l(a, n.field, "desc" === n.type) : l(a, P.config.indexName, null), + P.cache[e] = a, + d.initData(a), + B.renderData(e)) + } + , + function(n) { + var t = n.config.id + , i = j(t) + , a = n.data = B.getNodeDataByIndex(t, n.index) + , l = a[z] + , d = (n.dataIndex = l, + n.update); + n.update = function() { + var e = arguments + , t = (A.extend(i.getNodeDataByIndex(l), e[0]), + d.apply(this, e)) + , a = n.config.tree.customName.name; + return a in e[0] && n.tr.find('td[data-field="' + a + '"]').children("div.layui-table-cell").removeClass("layui-table-tree-item"), + i.renderTreeTable(n.tr, n.tr.attr("data-level"), !1), + t + } + , + n.del = function() { + B.removeNode(t, a) + } + , + n.setRowChecked = function(e) { + B.setRowChecked(t, { + index: a, + checked: e + }) + } + } + ), u = (B.updateNode = function(e, a, t) { + var n, i, l, d, r, o = j(e); + o && ((d = o.getOptions()).tree, + d = (n = d.elem.next()).find('tr[lay-data-index="' + a + '"]'), + i = d.attr("data-index"), + l = d.attr("data-level"), + t) && (d = o.getNodeDataByIndex(a, !1, t), + r = P.getTrHtml(e, [d]), + layui.each(["main", "fixed-l", "fixed-r"], function(e, t) { + n.find(".layui-table-" + t + ' tbody tr[lay-data-index="' + a + '"]').replaceWith(A(r[["trs", "trs_fixed", "trs_fixed_r"][e]].join("")).attr({ + "data-index": i, + "lay-data-index": a, + "data-level": l + }).data("index", i)) + }), + o.renderTreeTable(n.find('tr[lay-data-index="' + a + '"]'), l)) + } + , + B.removeNode = function(e, t, a) { + var n = j(e); + if (n) { + var i, l = n.getOptions(), d = l.tree, r = d.customName.isParent, o = d.customName.children, c = l.elem.next(), u = [], s = P.cache[e], t = n.getNodeDataByIndex("string" === layui.type(t) ? t : t[z], !1, "delete"), f = n.getNodeDataByIndex(t[p]), d = (n.updateCheckStatus(f), + n.treeToFlat([t], t[d.customName.pid], t[p])), t = (layui.each(d, function(e, t) { + t = t[z]; + u.push('tr[lay-data-index="' + t + '"]'), + -1 !== t.indexOf("-") && delete s[t] + }), + c.find(u.join(",")).remove(), + n.initData()); + for (i in s) + -1 !== i.indexOf("-") && i !== s[i][z] && delete s[i]; + layui.each(n.treeToFlat(t), function(e, t) { + t[b] && t[b] !== t[z] && c.find('tr[lay-data-index="' + t[b] + '"]').attr({ + "data-index": t[z], + "lay-data-index": t[z] + }).data("index", t[z]) + }), + layui.each(s, function(e, t) { + c.find('tr[data-level="0"][lay-data-index="' + t[z] + '"]').attr("data-index", e).data("index", e) + }), + l.hasNumberCol && v(n), + f && (d = c.find('tr[lay-data-index="' + f[z] + '"]'), + a || (f[r] = !(!f[o] || !f[o].length)), + n.updateNodeIcon({ + scopeEl: d, + isExpand: f[H], + isParent: f[r] + })), + B.resize(e) + } + } + , + B.addNodes = function(e, t) { + var a = j(e); + if (a) { + var n = a.getOptions() + , i = n.tree + , l = n.elem.next() + , d = P.config.checkName + , r = (t = t || {}).parentIndex + , o = t.index + , c = t.data + , t = t.focus + , u = (r = "number" === layui.type(r) ? r.toString() : r) ? a.getNodeDataByIndex(r) : null + , o = "number" === layui.type(o) ? o : -1 + , c = A.extend(!0, [], layui.isArray(c) ? c : [c]); + layui.each(c, function(e, t) { + d in t || !u || (t[d] = u[d]) + }), + a.getTableData(); + if (u) { + var s = i.customName.isParent + , f = i.customName.children; + u[s] = !0; + var y = (y = u[f]) ? (p = y.splice(-1 === o ? y.length : o), + u[f] = y.concat(c, p)) : u[f] = c + , f = (a.updateStatus(y, function(e) { + (e[s] || i.view.showFlexIconIfNotParent) && (e[X] = !1) + }), + a.treeToFlat(y)); + l.find(f.map(function(e) { + return 'tr[lay-data-index="' + e[z] + '"]' + }).join(",")).remove(), + a.initData(), + u[X] = !1, + u[V] = "local", + J({ + trElem: l.find('tr[lay-data-index="' + r + '"]') + }, !0) + } else { + var p = P.cache[e].splice(-1 === o ? P.cache[e].length : o); + if (P.cache[e] = P.cache[e].concat(c, p), + n.url || (n.page ? (y = n.page, + n.data.splice.apply(n.data, [y.limit * (y.curr - 1), y.limit].concat(P.cache[e]))) : n.data = P.cache[e]), + a.initData(), + l.find(".layui-none").length) + return P.renderData(e), + c; + var x, f = P.getTrHtml(e, c), h = { + trs: A(f.trs.join("")), + trs_fixed: A(f.trs_fixed.join("")), + trs_fixed_r: A(f.trs_fixed_r.join("")) + }, r = (layui.each(c, function(e, t) { + x = { + "data-index": t[z], + "lay-data-index": t[z], + "data-level": "0" + }, + h.trs.eq(e).attr(x).data("index", t[z]), + h.trs_fixed.eq(e).attr(x).data("index", t[z]), + h.trs_fixed_r.eq(e).attr(x).data("index", t[z]) + }), + parseInt(c[0][z]) - 1), y = l.find(q), n = l.find(R), f = l.find(Y); + -1 == r ? y.find('tr[data-level="0"][data-index="0"]')[0] ? (y.find('tr[data-level="0"][data-index="0"]').before(h.trs), + n.find('tr[data-level="0"][data-index="0"]').before(h.trs_fixed), + f.find('tr[data-level="0"][data-index="0"]').before(h.trs_fixed_r)) : (y.find("tbody").prepend(h.trs), + n.find("tbody").prepend(h.trs_fixed), + f.find("tbody").prepend(h.trs_fixed_r)) : -1 === o ? (y.find("tbody").append(h.trs), + n.find("tbody").append(h.trs_fixed), + f.find("tbody").append(h.trs_fixed_r)) : (r = p[0][b], + y.find('tr[data-level="0"][data-index="' + r + '"]').before(h.trs), + n.find('tr[data-level="0"][data-index="' + r + '"]').before(h.trs_fixed), + f.find('tr[data-level="0"][data-index="' + r + '"]').before(h.trs_fixed_r)), + layui.each(P.cache[e], function(e, t) { + l.find('tr[data-level="0"][lay-data-index="' + t[z] + '"]').attr("data-index", e).data("index", e) + }), + a.renderTreeTable(l.find(c.map(function(e, t, a) { + return 'tr[lay-data-index="' + e[z] + '"]' + }).join(","))) + } + return a.updateCheckStatus(u), + u && (o = l.find('tr[lay-data-index="' + u[z] + '"]'), + a.updateNodeIcon({ + scopeEl: o, + isExpand: u[H], + isParent: u[s] + })), + B.resize(e), + t && l.find(q).find('tr[lay-data-index="' + c[0][z] + '"]').get(0).scrollIntoViewIfNeeded(), + c + } + } + , + B.checkStatus = function(e, n) { + var i, t, a, l = j(e); + if (l) + return l = l.getOptions().tree, + i = P.config.checkName, + t = B.getData(e, !0).filter(function(e, t, a) { + return e[i] || n && e[g] + }), + a = !0, + layui.each("all" === l.data.cascade ? P.cache[e] : B.getData(e, !0), function(e, t) { + if (!t[i]) + return !(a = !1) + }), + { + data: t, + isAll: a + } + } + , + B.on("sort", function(e) { + var e = e.config + , t = e.elem.next() + , e = e.id; + t.hasClass(m) && B.sort(e) + }), + B.on("row", function(e) { + e.config.elem.next().hasClass(m) && o(e) + }), + B.on("rowDouble", function(e) { + var t = e.config + , a = t.elem.next(); + t.id; + a.hasClass(m) && (o(e), + (t.tree || {}).view.dblClickExpand) && J({ + trElem: e.tr.first() + }, null, null, null, !0) + }), + B.on("rowContextmenu", function(e) { + var t = e.config + , a = t.elem.next(); + t.id; + a.hasClass(m) && o(e) + }), + B.on("tool", function(e) { + var t = e.config + , a = t.elem.next(); + t.id; + a.hasClass(m) && o(e) + }), + B.on("edit", function(e) { + var t = e.config + , a = t.elem.next(); + t.id; + a.hasClass(m) && (o(e), + e.field === t.tree.customName.name) && ((a = {})[e.field] = e.value, + e.update(a)) + }), + B.on("radio", function(e) { + var t = e.config + , a = t.elem.next() + , t = t.id; + a.hasClass(m) && (a = j(t), + o(e), + u.call(a, e.tr, e.checked)) + }), + a.prototype.setRowCheckedClass = function(e, t) { + var a = this.getOptions() + , n = (e.data("index"), + a.elem.next()); + e[t ? "addClass" : "removeClass"](l), + e.each(function() { + var e = A(this).data("index"); + n.find('.layui-table-fixed-r tbody tr[data-index="' + e + '"]')[t ? "addClass" : "removeClass"](l) + }) + } + , + a.prototype.updateCheckStatus = function(e, t) { + var a, n, i, l, d, r, o, c = this, u = c.getOptions(); + return !!u.hasChecboxCol && (a = u.tree, + n = u.id, + i = u.elem.next(), + l = P.config.checkName, + "all" !== (d = a.data.cascade) && "parent" !== d || !e || (d = c.updateParentCheckStatus(e, "boolean" === layui.type(t) ? t : null), + layui.each(d, function(e, t) { + var a = i.find('tr[lay-data-index="' + t[z] + '"] input[name="layTableCheckbox"]:not(:disabled)') + , n = t[l]; + c.setRowCheckedClass(a.closest("tr"), n), + h.render(a.prop({ + checked: n, + indeterminate: t[g] + })) + })), + o = !(r = !0), + 0 < (e = (e = "all" === a.data.cascade ? P.cache[n] : B.getData(n, !0)).filter(function(e) { + return !e[u.disabledName] + })).length ? layui.each(e, function(e, t) { + if ((t[l] || t[g]) && (o = !0), + t[l] || (r = !1), + o && !r) + return !0 + }) : r = !1, + o = o && !r, + h.render(i.find('input[name="layTableCheckbox"][lay-filter="layTableAllChoose"]').prop({ + checked: r, + indeterminate: o + })), + r) + } + , + a.prototype.updateParentCheckStatus = function(a, n) { + var i, e = this.getOptions(), t = e.tree, e = e.id, l = P.config.checkName, t = t.customName.children, d = []; + return !(a[g] = !1) === n ? a[t].length ? layui.each(a[t], function(e, t) { + if (!t[l]) + return n = !1, + a[g] = !0 + }) : n = !1 : !1 === n ? layui.each(a[t], function(e, t) { + if (t[l] || t[g]) + return a[g] = !0 + }) : (n = !1, + i = 0, + layui.each(a[t], function(e, t) { + t[l] && i++ + }), + n = a[t].length ? a[t].length === i : a[l], + a[g] = !n && 0 < i), + a[l] = n, + d.push(A.extend({}, a)), + d = a[p] ? d.concat(this.updateParentCheckStatus(P.cache[e][a[p]], n)) : d + } + , + function(e, t, a) { + var n = this + , i = n.getOptions() + , l = i.tree + , d = i.id + , r = i.elem.next() + , o = (e.length ? e : r).find(".laytable-cell-radio, .laytable-cell-checkbox").children("input").last() + , i = "radio" === o.attr("type"); + if (a) { + a = function() { + var e = function(e) { + layui.stope(e) + }; + o.parent().on("click", e), + o.next().click(), + o.parent().off("click", e) + } + ; + i ? t && !o.prop("checked") && a() : "boolean" === layui.type(t) && o.prop("checked") === t || a() + } else { + var c, a = n.getNodeDataByIndex(e.attr("data-index")), u = P.config.checkName; + if (!i) + return t = "boolean" === layui.type(t) ? t : !a[u], + i = n.updateStatus(a ? [a] : P.cache[d], function(e) { + e[P.config.disabledName] || (e[u] = t, + e[g] = !1) + }, a && -1 !== ["parent", "none"].indexOf(l.data.cascade)), + d = r.find(i.map(function(e) { + return 'tr[lay-data-index="' + e[z] + '"] input[name="layTableCheckbox"]:not(:disabled)' + }).join(",")), + n.setRowCheckedClass(d.closest("tr"), t), + h.render(d.prop({ + checked: t, + indeterminate: !1 + })), + a && a[p] && (c = n.getNodeDataByIndex(a[p])), + n.updateCheckStatus(c, t); + a && (n.updateStatus(null, function(e) { + var t; + e[u] && (t = r.find('tr[lay-data-index="' + e[z] + '"] input[type="radio"][lay-type="layTableRadio"]'), + e[u] = !1, + n.setRowCheckedClass(t.closest("tr"), !1), + h.render(t.prop("checked", !1))) + }), + a[u] = t, + n.setRowCheckedClass(e, t), + n.setRowCheckedClass(e.siblings(), !1), + h.render(e.find('input[type="radio"][lay-type="layTableRadio"]').prop("checked", t))) + } + } + ); + B.on("checkbox", function(e) { + var t = e.config + , a = t.elem.next() + , t = t.id; + a.hasClass(m) && (a = j(t), + t = e.checked, + o(e), + e.isAll = u.call(a, e.tr, t)) + }), + B.setRowChecked = function(a, e) { + var t, n, i, l, d, r, o, c = j(a); + c && (t = c.getOptions().elem.next(), + i = (e = e || {}).index, + n = e.checked, + e = e.callbackFlag, + i = "string" === layui.type(i) ? i : i[z], + r = c.getNodeDataByIndex(i)) && (l = function(e) { + o.push(e), + t.find('tr[lay-data-index="' + e + '"]').length || (e = c.getNodeDataByIndex(e)[p]) && l(e) + } + , + (d = t.find('tr[lay-data-index="' + i + '"]')).length || (r = r[p], + o = [], + l(r), + layui.each(o.reverse(), function(e, t) { + B.expandNode(a, { + index: t, + expandFlag: !0 + }) + }), + d = t.find('tr[lay-data-index="' + i + '"]')), + u.call(c, d, n, e)) + } + , + B.checkAllNodes = function(e, t) { + var a, e = j(e); + e && (a = e.getOptions().elem.next(), + u.call(e, a.find('tr[data-index="NONE"]'), !!t)) + } + , + B.getData = function(e, t) { + var a, n = j(e); + if (n) + return a = [], + layui.each(A.extend(!0, [], P.cache[e] || []), function(e, t) { + a.push(t) + }), + t ? n.treeToFlat(a) : a + } + , + B.reloadAsyncNode = function(a, e) { + var t, n, i = j(a); + i && (t = i.getOptions().tree)["async"] && t["async"].enable && (n = i.getNodeDataByIndex(e)) && (n[X] = !1, + n[H] = !1, + n[V] = !1, + layui.each(i.treeToFlat(n[t.customName.children]).reverse(), function(e, t) { + B.removeNode(a, t[z], !0) + }), + B.expandNode(a, { + index: e, + expandFlag: !0, + callbackFlag: !0 + })) + } + , + B.getNodeById = function(e, t) { + e = j(e); + if (e) + return e.getNodeById(t) + } + , + B.getNodesByFilter = function(e, t, a) { + var n, i, l, d = j(e); + if (d) + return i = d.getOptions(), + n = (a = a || {}).isSingle, + a = (a = a.parentNode) && a.data, + i = d.treeToFlat(a ? a[i.tree.customName.children] || [] : P.cache[e]).filter(t), + l = [], + layui.each(i, function(e, t) { + if (l.push(d.getNodeByIndex(t[z])), + n) + return !0 + }), + l + } + , + i.that = {}, + B.reload = function(e, t, a, n) { + e = j(e); + if (e) + return e.reload(t, a, n), + i.call(e) + } + , + B.render = function(e) { + e = new a(e); + return i.call(e) + } + , + e("treeTable", B) +}); +layui.define(["form", "util"], function(e) { + "use strict"; + var p = layui.$ + , i = layui.form + , y = layui.layer + , f = layui.util + , a = "tree" + , t = { + config: { + customName: { + id: "id", + title: "title", + children: "children" + } + }, + index: layui[a] ? layui[a].index + 1e4 : 0, + set: function(e) { + var i = this; + return i.config = p.extend({}, i.config, e), + i + }, + on: function(e, i) { + return layui.onevent.call(this, a, e, i) + } + } + , n = function() { + var i = this + , e = i.config + , a = e.id || i.index; + return n.that[a] = i, + { + config: n.config[a] = e, + reload: function(e) { + i.reload.call(i, e) + }, + getChecked: function() { + return i.getChecked.call(i) + }, + setChecked: function(e) { + return i.setChecked.call(i, e) + } + } + } + , m = "layui-hide" + , u = "layui-disabled" + , k = "layui-tree-set" + , C = "layui-tree-iconClick" + , v = "layui-icon-addition" + , x = "layui-icon-subtraction" + , b = "layui-tree-entry" + , g = "layui-tree-main" + , w = "layui-tree-txt" + , N = "layui-tree-pack" + , F = "layui-tree-spread" + , T = "layui-tree-setLineShort" + , L = "layui-tree-showLine" + , S = "layui-tree-lineExtend" + , l = function(e) { + var i = this; + i.index = ++t.index, + i.config = p.extend({}, i.config, t.config, e), + i.render() + }; + l.prototype.config = { + data: [], + showCheckbox: !1, + showLine: !0, + accordion: !1, + onlyIconControl: !1, + isJump: !1, + edit: !1, + text: { + defaultNodeName: "\u672a\u547d\u540d", + none: "\u65e0\u6570\u636e" + } + }, + l.prototype.reload = function(e) { + var a = this; + layui.each(e, function(e, i) { + "array" === layui.type(i) && delete a.config[e] + }), + a.config = p.extend(!0, {}, a.config, e), + a.render() + } + , + l.prototype.render = function() { + var e = this + , i = e.config + , a = (i.customName = p.extend({}, t.config.customName, i.customName), + e.checkids = [], + p('
                    ')) + , n = (e.tree(a), + i.elem = p(i.elem)); + if (n[0]) { + if (e.key = i.id || e.index, + e.elem = a, + e.elemNone = p('
                    ' + i.text.none + "
                    "), + n.html(e.elem), + 0 == e.elem.find(".layui-tree-set").length) + return e.elem.append(e.elemNone); + i.showCheckbox && e.renderForm("checkbox"), + e.elem.find(".layui-tree-set").each(function() { + var e = p(this); + e.parent(".layui-tree-pack")[0] || e.addClass("layui-tree-setHide"), + !e.next()[0] && e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend") && e.addClass(T), + e.next()[0] || e.parents(".layui-tree-set").eq(0).next()[0] || e.addClass(T) + }), + e.events() + } + } + , + l.prototype.renderForm = function(e) { + i.render(e, "LAY-tree-" + this.index) + } + , + l.prototype.tree = function(r, e) { + var d = this + , s = d.config + , o = s.customName + , e = e || s.data; + layui.each(e, function(e, i) { + var a, n, t = i[o.children] && 0 < i[o.children].length, l = p('
                    "), c = p(['
                    ', '
                    ', '
                    ', s.showLine ? t ? '' : '' : '', s.showCheckbox ? '' : "", s.isJump && i.href ? '' + (i[o.title] || i.label || s.text.defaultNodeName) + "" : '' + (i[o.title] || i.label || s.text.defaultNodeName) + "", "
                    ", s.edit ? (a = { + add: '', + update: '', + del: '' + }, + n = ['
                    '], + !0 === s.edit && (s.edit = ["update", "del"]), + "object" == typeof s.edit ? (layui.each(s.edit, function(e, i) { + n.push(a[i] || "") + }), + n.join("") + "
                    ") : void 0) : "", "
                    "].join("")); + t && (c.append(l), + d.tree(l, i[o.children])), + r.append(c), + c.prev("." + k)[0] && c.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"), + t || c.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"), + d.spread(c, i), + s.showCheckbox && (i.checked && d.checkids.push(i[o.id]), + d.checkClick(c, i)), + s.edit && d.operate(c, i) + }) + } + , + l.prototype.spread = function(n, t) { + var l = this + , c = l.config + , e = n.children("." + b) + , i = e.children("." + g) + , a = i.find('input[same="layuiTreeCheck"]') + , r = e.find("." + C) + , e = e.find("." + w) + , d = c.onlyIconControl ? r : i + , s = ""; + d.on("click", function(e) { + var i = n.children("." + N) + , a = (d.children(".layui-icon")[0] ? d : d.find(".layui-tree-icon")).children(".layui-icon"); + i[0] ? n.hasClass(F) ? (n.removeClass(F), + i.slideUp(200), + a.removeClass(x).addClass(v), + l.updateFieldValue(t, "spread", !1)) : (n.addClass(F), + i.slideDown(200), + a.addClass(x).removeClass(v), + l.updateFieldValue(t, "spread", !0), + c.accordion && ((i = n.siblings("." + k)).removeClass(F), + i.children("." + N).slideUp(200), + i.find(".layui-tree-icon").children(".layui-icon").removeClass(x).addClass(v))) : s = "normal" + }), + e.on("click", function() { + p(this).hasClass(u) || (s = n.hasClass(F) ? c.onlyIconControl ? "open" : "close" : c.onlyIconControl ? "close" : "open", + a[0] && l.updateFieldValue(t, "checked", a.prop("checked")), + c.click && c.click({ + elem: n, + state: s, + data: t + })) + }) + } + , + l.prototype.updateFieldValue = function(e, i, a) { + i in e && (e[i] = a) + } + , + l.prototype.setCheckbox = function(e, i, a) { + var t, n = this, l = n.config.customName, c = a.prop("checked"); + a.prop("disabled") || ("object" != typeof i[l.children] && !e.find("." + N)[0] || e.find("." + N).find('input[same="layuiTreeCheck"]').each(function(e) { + this.disabled || ((e = i[l.children][e]) && n.updateFieldValue(e, "checked", c), + n.updateFieldValue(this, "checked", c)) + }), + (t = function(e) { + var i, a, n; + e.parents("." + k)[0] && (a = (e = e.parent("." + N)).parent(), + n = e.prev().find('input[same="layuiTreeCheck"]'), + c ? n.prop("checked", c) : (e.find('input[same="layuiTreeCheck"]').each(function() { + this.checked && (i = !0) + }), + i || n.prop("checked", !1)), + t(a)) + } + )(e), + n.renderForm("checkbox")) + } + , + l.prototype.checkClick = function(a, n) { + var t = this + , l = t.config; + a.children("." + b).children("." + g).on("click", 'input[same="layuiTreeCheck"]+', function(e) { + layui.stope(e); + var e = p(this).prev() + , i = e.prop("checked"); + e.prop("disabled") || (t.setCheckbox(a, n, e), + t.updateFieldValue(n, "checked", i), + l.oncheck && l.oncheck({ + elem: a, + checked: i, + data: n + })) + }) + } + , + l.prototype.operate = function(r, d) { + var s = this + , o = s.config + , u = o.customName + , e = r.children("." + b) + , h = e.children("." + g); + e.children(".layui-tree-btnGroup").on("click", ".layui-icon", function(e) { + layui.stope(e); + var i, e = p(this).data("type"), n = r.children("." + N), t = { + data: d, + type: e, + elem: r + }; + if ("add" == e) { + n[0] || (o.showLine ? (h.find("." + C).addClass("layui-tree-icon"), + h.find("." + C).children(".layui-icon").addClass(v).removeClass("layui-icon-file")) : h.find(".layui-tree-iconArrow").removeClass(m), + r.append('
                    ')); + var a, l = o.operate && o.operate(t), c = {}; + if (c[u.title] = o.text.defaultNodeName, + c[u.id] = l, + s.tree(r.children("." + N), [c]), + o.showLine && (n[0] ? (n.hasClass(S) || n.addClass(S), + r.find("." + N).each(function() { + p(this).children("." + k).last().addClass(T) + }), + (n.children("." + k).last().prev().hasClass(T) ? n.children("." + k).last().prev() : n.children("." + k).last()).removeClass(T), + !r.parent("." + N)[0] && r.next()[0] && n.children("." + k).last().removeClass(T)) : (l = r.siblings("." + k), + a = 1, + c = r.parent("." + N), + layui.each(l, function(e, i) { + p(i).children("." + N)[0] || (a = 0) + }), + (1 == a ? (l.children("." + N).addClass(L), + l.children("." + N).children("." + k).removeClass(T), + r.children("." + N).addClass(L), + c.removeClass(S), + c.children("." + k).last().children("." + N).children("." + k).last()) : r.children("." + N).children("." + k)).addClass(T))), + !o.showCheckbox) + return; + h.find('input[same="layuiTreeCheck"]')[0].checked && (r.children("." + N).children("." + k).last().find('input[same="layuiTreeCheck"]')[0].checked = !0), + s.renderForm("checkbox") + } else + "update" == e ? (l = h.children("." + w).html(), + h.children("." + w).html(""), + h.append(''), + h.children(".layui-tree-editInput").val(f.unescape(l)).focus(), + i = function(e) { + var i = f.escape(e.val().trim()) || o.text.defaultNodeName; + e.remove(), + h.children("." + w).html(i), + t.data[u.title] = i, + o.operate && o.operate(t) + } + , + h.children(".layui-tree-editInput").blur(function() { + i(p(this)) + }), + h.children(".layui-tree-editInput").on("keydown", function(e) { + 13 === e.keyCode && (e.preventDefault(), + i(p(this))) + })) : y.confirm('\u786e\u8ba4\u5220\u9664\u8be5\u8282\u70b9 "' + (d[u.title] || "") + '" \u5417\uff1f', function(e) { + var l, a, i; + o.operate && o.operate(t), + t.status = "remove", + y.close(e), + r.prev("." + k)[0] || r.next("." + k)[0] || r.parent("." + N)[0] ? (r.siblings("." + k).children("." + b)[0] ? (o.showCheckbox && (l = function(e) { + var i, a, n, t; + e.parents("." + k)[0] && (i = e.siblings("." + k).children("." + b), + a = (e = e.parent("." + N).prev()).find('input[same="layuiTreeCheck"]')[0], + n = 1, + (t = 0) == a.checked) && (i.each(function(e, i) { + i = p(i).find('input[same="layuiTreeCheck"]')[0]; + 0 != i.checked || i.disabled || (n = 0), + i.disabled || (t = 1) + }), + 1 == n) && 1 == t && (a.checked = !0, + s.renderForm("checkbox"), + l(e.parent("." + k))) + } + )(r), + o.showLine && (e = r.siblings("." + k), + a = 1, + i = r.parent("." + N), + layui.each(e, function(e, i) { + p(i).children("." + N)[0] || (a = 0) + }), + 1 == a ? (n[0] || (i.removeClass(S), + e.children("." + N).addClass(L), + e.children("." + N).children("." + k).removeClass(T)), + (r.next()[0] ? i.children("." + k).last() : r.prev()).children("." + N).children("." + k).last().addClass(T), + r.next()[0] || r.parents("." + k)[1] || r.parents("." + k).eq(0).next()[0] || r.prev("." + k).addClass(T)) : !r.next()[0] && r.hasClass(T) && r.prev().addClass(T))) : (e = r.parent("." + N).prev(), + o.showLine ? (e.find("." + C).removeClass("layui-tree-icon"), + e.find("." + C).children(".layui-icon").removeClass(x).addClass("layui-icon-file"), + (i = e.parents("." + N).eq(0)).addClass(S), + i.children("." + k).each(function() { + p(this).children("." + N).children("." + k).last().addClass(T) + })) : e.find(".layui-tree-iconArrow").addClass(m), + r.parents("." + k).eq(0).removeClass(F), + r.parent("." + N).remove()), + r.remove()) : (r.remove(), + s.elem.append(s.elemNone)) + }) + }) + } + , + l.prototype.events = function() { + var i = this + , t = i.config; + i.elem.find(".layui-tree-checkedFirst"); + i.setChecked(i.checkids), + i.elem.find(".layui-tree-search").on("keyup", function() { + var e = p(this) + , a = e.val() + , e = e.nextAll() + , n = []; + e.find("." + w).each(function() { + var i, e = p(this).parents("." + b); + -1 != p(this).html().indexOf(a) && (n.push(p(this).parent()), + (i = function(e) { + e.addClass("layui-tree-searchShow"), + e.parent("." + N)[0] && i(e.parent("." + N).parent("." + k)) + } + )(e.parent("." + k))) + }), + e.find("." + b).each(function() { + var e = p(this).parent("." + k); + e.hasClass("layui-tree-searchShow") || e.addClass(m) + }), + 0 == e.find(".layui-tree-searchShow").length && i.elem.append(i.elemNone), + t.onsearch && t.onsearch({ + elem: n + }) + }), + i.elem.find(".layui-tree-search").on("keydown", function() { + p(this).nextAll().find("." + b).each(function() { + p(this).parent("." + k).removeClass("layui-tree-searchShow " + m) + }), + p(".layui-tree-emptyText")[0] && p(".layui-tree-emptyText").remove() + }) + } + , + l.prototype.getChecked = function() { + var t = this + , e = t.config + , l = e.customName + , i = [] + , a = [] + , c = (t.elem.find(".layui-form-checked").each(function() { + i.push(p(this).prev()[0].value) + }), + function(e, n) { + layui.each(e, function(e, a) { + layui.each(i, function(e, i) { + if (a[l.id] == i) + return t.updateFieldValue(a, "checked", !0), + delete (i = p.extend({}, a))[l.children], + n.push(i), + a[l.children] && (i[l.children] = [], + c(a[l.children], i[l.children])), + !0 + }) + }) + } + ); + return c(p.extend({}, e.data), a), + a + } + , + l.prototype.setChecked = function(l) { + this.config; + this.elem.find("." + k).each(function(e, i) { + var a = p(this).data("id") + , n = p(i).children("." + b).find('input[same="layuiTreeCheck"]') + , t = n.next(); + if ("number" == typeof l) { + if (a.toString() == l.toString()) + return n[0].checked || t.click(), + !1 + } else + "object" == typeof l && layui.each(l, function(e, i) { + if (i.toString() == a.toString() && !n[0].checked) + return t.click(), + !0 + }) + }) + } + , + n.that = {}, + n.config = {}, + t.reload = function(e, i) { + e = n.that[e]; + return e.reload(i), + n.call(e) + } + , + t.getChecked = function(e) { + return n.that[e].getChecked() + } + , + t.setChecked = function(e, i) { + return n.that[e].setChecked(i) + } + , + t.render = function(e) { + e = new l(e); + return n.call(e) + } + , + e(a, t) +}); +layui.define(["laytpl", "form"], function(e) { + "use strict"; + var d = layui.$ + , n = layui.laytpl + , t = layui.form + , a = "transfer" + , i = { + config: {}, + index: layui[a] ? layui[a].index + 1e4 : 0, + set: function(e) { + var t = this; + return t.config = d.extend({}, t.config, e), + t + }, + on: function(e, t) { + return layui.onevent.call(this, a, e, t) + } + } + , l = function() { + var t = this + , e = t.config + , a = e.id || t.index; + return l.that[a] = t, + { + config: l.config[a] = e, + reload: function(e) { + t.reload.call(t, e) + }, + getData: function() { + return t.getData.call(t) + } + } + } + , s = "layui-hide" + , u = "layui-btn-disabled" + , c = "layui-none" + , r = "layui-transfer-box" + , h = "layui-transfer-header" + , o = "layui-transfer-search" + , f = "layui-transfer-data" + , y = function(e) { + return ['
                    ', '
                    ', '", "
                    ", "{{# if(d.data.showSearch){ }}", '", "{{# } }}", '
                      ', "
                      "].join("") + } + , p = ['
                      ', y({ + index: 0, + checkAllName: "layTransferLeftCheckAll" + }), '
                      ', '", '", "
                      ", y({ + index: 1, + checkAllName: "layTransferRightCheckAll" + }), "
                      "].join("") + , v = function(e) { + var t = this; + t.index = ++i.index, + t.config = d.extend({}, t.config, i.config, e), + t.render() + }; + v.prototype.config = { + title: ["\u5217\u8868\u4e00", "\u5217\u8868\u4e8c"], + width: 200, + height: 360, + data: [], + value: [], + showSearch: !1, + id: "", + text: { + none: "\u65e0\u6570\u636e", + searchNone: "\u65e0\u5339\u914d\u6570\u636e" + } + }, + v.prototype.reload = function(e) { + var t = this; + t.config = d.extend({}, t.config, e), + t.render() + } + , + v.prototype.render = function() { + var e = this + , t = e.config + , a = e.elem = d(n(p, { + open: "{{", + close: "}}" + }).render({ + data: t, + index: e.index + })) + , i = t.elem = d(t.elem); + i[0] && (t.data = t.data || [], + t.value = t.value || [], + t.id = "id"in t ? t.id : elem.attr("id") || e.index, + e.key = t.id, + i.html(e.elem), + e.layBox = e.elem.find("." + r), + e.layHeader = e.elem.find("." + h), + e.laySearch = e.elem.find("." + o), + e.layData = a.find("." + f), + e.layBtn = a.find(".layui-transfer-active .layui-btn"), + e.layBox.css({ + width: t.width, + height: t.height + }), + e.layData.css({ + height: (i = t.height - e.layHeader.outerHeight(), + t.showSearch && (i -= e.laySearch.outerHeight()), + i - 2) + }), + e.renderData(), + e.events()) + } + , + v.prototype.renderData = function() { + var e = this + , t = e.config + , l = [{ + checkName: "layTransferLeftCheck", + views: [] + }, { + checkName: "layTransferRightCheck", + views: [] + }]; + e.parseData(function(a) { + var i = a.selected ? 1 : 0 + , n = ["
                    • ", '', "
                    • "].join(""); + i ? layui.each(t.value, function(e, t) { + t == a.value && a.selected && (l[i].views[e] = n) + }) : l[i].views.push(n), + delete a.selected + }), + e.layData.eq(0).html(l[0].views.join("")), + e.layData.eq(1).html(l[1].views.join("")), + e.renderCheckBtn() + } + , + v.prototype.renderForm = function(e) { + t.render(e, "LAY-transfer-" + this.index) + } + , + v.prototype.renderCheckBtn = function(c) { + var r = this + , o = r.config; + c = c || {}, + r.layBox.each(function(e) { + var t = d(this) + , a = t.find("." + f) + , t = t.find("." + h).find('input[type="checkbox"]') + , i = a.find('input[type="checkbox"]') + , n = 0 + , l = !1; + i.each(function() { + var e = d(this).data("hide"); + (this.checked || this.disabled || e) && n++, + this.checked && !e && (l = !0) + }), + t.prop("checked", l && n === i.length), + r.layBtn.eq(e)[l ? "removeClass" : "addClass"](u), + c.stopNone || (i = a.children("li:not(." + s + ")").length, + r.noneView(a, i ? "" : o.text.none)) + }), + r.renderForm("checkbox") + } + , + v.prototype.noneView = function(e, t) { + var a = d('

                      ' + (t || "") + "

                      "); + e.find("." + c)[0] && e.find("." + c).remove(), + t.replace(/\s/g, "") && e.append(a) + } + , + v.prototype.setValue = function() { + var e = this.config + , t = []; + return this.layBox.eq(1).find("." + f + ' input[type="checkbox"]').each(function() { + d(this).data("hide") || t.push(this.value) + }), + e.value = t, + this + } + , + v.prototype.parseData = function(t) { + var i = this.config + , n = []; + return layui.each(i.data, function(e, a) { + a = ("function" == typeof i.parseData ? i.parseData(a) : a) || a, + n.push(a = d.extend({}, a)), + layui.each(i.value, function(e, t) { + t == a.value && (a.selected = !0) + }), + t && t(a) + }), + i.data = n, + this + } + , + v.prototype.getData = function(e) { + var t = this.config + , i = []; + return this.setValue(), + layui.each(e || t.value, function(e, a) { + layui.each(t.data, function(e, t) { + delete t.selected, + a == t.value && i.push(t) + }) + }), + i + } + , + v.prototype.transfer = function(e, t) { + var a, i = this, n = i.config, l = i.layBox.eq(e), c = [], t = (t ? ((a = (t = t).find('input[type="checkbox"]'))[0].checked = !1, + l.siblings("." + r).find("." + f).append(t.clone()), + t.remove(), + c.push(a[0].value), + i.setValue()) : l.each(function(e) { + d(this).find("." + f).children("li").each(function() { + var e = d(this) + , t = e.find('input[type="checkbox"]') + , a = t.data("hide"); + t[0].checked && !a && (t[0].checked = !1, + l.siblings("." + r).find("." + f).append(e.clone()), + e.remove(), + c.push(t[0].value)), + i.setValue() + }) + }), + i.renderCheckBtn(), + l.siblings("." + r).find("." + o + " input")); + "" !== t.val() && t.trigger("keyup"), + n.onchange && n.onchange(i.getData(c), e) + } + , + v.prototype.events = function() { + var n = this + , l = n.config; + n.elem.on("click", 'input[lay-filter="layTransferCheckbox"]+', function() { + var e = d(this).prev() + , t = e[0].checked + , a = e.parents("." + r).eq(0).find("." + f); + e[0].disabled || ("all" === e.attr("lay-type") && a.find('input[type="checkbox"]').each(function() { + this.disabled || (this.checked = t) + }), + setTimeout(function() { + n.renderCheckBtn({ + stopNone: !0 + }) + }, 0)) + }), + n.elem.on("dblclick", "." + f + ">li", function(e) { + var t = d(this) + , a = t.children('input[type="checkbox"]') + , i = t.parent().parent().data("index"); + a[0].disabled || !1 !== ("function" == typeof l.dblclick ? l.dblclick({ + elem: t, + data: n.getData([a[0].value])[0], + index: i + }) : null) && n.transfer(i, t) + }), + n.layBtn.on("click", function() { + var e = d(this) + , t = e.data("index"); + e.hasClass(u) || n.transfer(t) + }), + n.laySearch.find("input").on("keyup", function() { + var i = this.value + , e = d(this).parents("." + o).eq(0).siblings("." + f) + , t = e.children("li") + , t = (t.each(function() { + var e = d(this) + , t = e.find('input[type="checkbox"]') + , a = t[0].title + , a = ("cs" !== l.showSearch && (a = a.toLowerCase(), + i = i.toLowerCase()), + -1 !== a.indexOf(i)); + e[a ? "removeClass" : "addClass"](s), + t.data("hide", !a) + }), + n.renderCheckBtn(), + t.length === e.children("li." + s).length); + n.noneView(e, t ? l.text.searchNone : "") + }) + } + , + l.that = {}, + l.config = {}, + i.reload = function(e, t) { + e = l.that[e]; + return e.reload(t), + l.call(e) + } + , + i.getData = function(e) { + return l.that[e].getData() + } + , + i.render = function(e) { + e = new v(e); + return l.call(e) + } + , + e(a, i) +}); +layui.define(["jquery", "lay"], function(e) { + "use strict"; + var o = layui.$ + , l = layui.lay + , t = (layui.hint(), + layui.device(), + { + config: {}, + set: function(e) { + var n = this; + return n.config = o.extend({}, n.config, e), + n + }, + on: function(e, n) { + return layui.onevent.call(this, r, e, n) + } + }) + , r = "carousel" + , s = "layui-this" + , u = "layui-carousel-left" + , c = "layui-carousel-right" + , m = "layui-carousel-prev" + , h = "layui-carousel-next" + , a = "layui-carousel-arrow" + , d = "layui-carousel-ind" + , n = function(e) { + var n = this; + n.config = o.extend({}, n.config, t.config, e), + n.render() + }; + n.prototype.config = { + width: "600px", + height: "280px", + full: !1, + arrow: "hover", + indicator: "inside", + autoplay: !0, + interval: 3e3, + anim: "", + trigger: "click", + index: 0 + }, + n.prototype.render = function() { + var e = this + , n = e.config + , i = o(n.elem); + if (1 < i.length) + return layui.each(i, function() { + t.render(o.extend({}, n, { + elem: this + })) + }), + e; + o.extend(n, l.options(i[0])), + n.elem = o(n.elem), + n.elem[0] && (e.elemItem = n.elem.find(">*[carousel-item]>*"), + n.index < 0 && (n.index = 0), + n.index >= e.elemItem.length && (n.index = e.elemItem.length - 1), + n.interval < 800 && (n.interval = 800), + n.full ? n.elem.css({ + position: "fixed", + width: "100%", + height: "100%", + zIndex: 9999 + }) : n.elem.css({ + width: n.width, + height: n.height + }), + n.elem.attr("lay-anim", n.anim), + e.elemItem.eq(n.index).addClass(s), + e.indicator(), + e.arrow(), + e.autoplay(), + 1 < e.elemItem.length) && e.events() + } + , + n.prototype.reload = function(e) { + var n = this; + clearInterval(n.timer), + n.config = o.extend({}, n.config, e), + n.render() + } + , + n.prototype.prevIndex = function() { + var e = this.config.index - 1; + return e = e < 0 ? this.elemItem.length - 1 : e + } + , + n.prototype.nextIndex = function() { + var e = this.config.index + 1; + return e = e >= this.elemItem.length ? 0 : e + } + , + n.prototype.addIndex = function(e) { + var n = this.config; + n.index = n.index + (e = e || 1), + n.index >= this.elemItem.length && (n.index = 0) + } + , + n.prototype.subIndex = function(e) { + var n = this.config; + n.index = n.index - (e = e || 1), + n.index < 0 && (n.index = this.elemItem.length - 1) + } + , + n.prototype.autoplay = function() { + var e = this + , n = e.config + , i = e.elemItem.length; + n.autoplay && (clearInterval(e.timer), + 1 < i) && (e.timer = setInterval(function() { + e.slide() + }, n.interval)) + } + , + n.prototype.arrow = function() { + var n = this + , e = n.config + , i = n.elemItem.length + , t = o(['', ''].join("")); + e.elem.attr("lay-arrow", e.arrow), + e.elem.find("." + a)[0] && e.elem.find("." + a).remove(), + 1 < i ? e.elem.append(t) : t.remove(), + t.on("click", function() { + var e = o(this).attr("lay-type"); + n.slide(e) + }) + } + , + n.prototype["goto"] = function(e) { + var n = this + , i = n.config; + e > i.index ? n.slide("add", e - i.index) : e < i.index && n.slide("sub", i.index - e) + } + , + n.prototype.indicator = function() { + var n, e = this, i = e.config, t = e.elemItem.length, a = e.elemInd = o(['
                        ', (n = [], + layui.each(e.elemItem, function(e) { + n.push("") + }), + n.join("")), "
                      "].join("")); + i.elem.attr("lay-indicator", i.indicator), + i.elem.find("." + d)[0] && i.elem.find("." + d).remove(), + 1 < t ? i.elem.append(a) : a.remove(), + "updown" === i.anim && a.css("margin-top", -a.height() / 2), + a.find("li").on("hover" === i.trigger ? "mouseover" : i.trigger, function() { + e["goto"](o(this).index()) + }) + } + , + n.prototype.slide = function(e, n) { + var i = this + , t = i.elemItem + , a = t.length + , o = i.config + , l = o.index + , d = o.elem.attr("lay-filter"); + i.haveSlide || a <= 1 || ("sub" === e ? (i.subIndex(n), + t.eq(o.index).addClass(m), + setTimeout(function() { + t.eq(l).addClass(c), + t.eq(o.index).addClass(c) + }, 50)) : (i.addIndex(n), + t.eq(o.index).addClass(h), + setTimeout(function() { + t.eq(l).addClass(u), + t.eq(o.index).addClass(u) + }, 50)), + setTimeout(function() { + t.removeClass(s + " " + m + " " + h + " " + u + " " + c), + t.eq(o.index).addClass(s), + i.haveSlide = !1 + }, 350), + i.elemInd.find("li").eq(o.index).addClass(s).siblings().removeClass(s), + i.haveSlide = !0, + a = { + index: o.index, + prevIndex: l, + item: t.eq(o.index) + }, + "function" == typeof o.change && o.change(a), + layui.event.call(this, r, "change(" + d + ")", a)) + } + , + n.prototype.events = function() { + var t, a, o = this, e = o.config; + e.elem.data("haveEvents") || (e.elem.on("mouseenter touchstart", function() { + "always" !== o.config.autoplay && clearInterval(o.timer) + }).on("mouseleave touchend", function() { + "always" !== o.config.autoplay && o.autoplay() + }), + t = e.elem, + a = "updown" === e.anim, + l.touchSwipe(t, { + onTouchEnd: function(e, n) { + var i = Date.now() - n.timeStart + , n = a ? n.distanceY : n.distanceX; + (.25 < Math.abs(n / i) || Math.abs(n) > t[a ? "height" : "width"]() / 3) && o.slide(0 < n ? "" : "sub") + } + }), + e.elem.data("haveEvents", !0)) + } + , + t.render = function(e) { + return new n(e) + } + , + e(r, t) +}); +layui.define(["jquery", "lay"], function(e) { + "use strict"; + var u = layui.jquery + , r = layui.lay + , c = { + config: {}, + index: layui.rate ? layui.rate.index + 1e4 : 0, + set: function(e) { + var a = this; + return a.config = u.extend({}, a.config, e), + a + }, + on: function(e, a) { + return layui.onevent.call(this, l, e, a) + } + } + , l = "rate" + , h = "layui-icon-rate" + , f = "layui-icon-rate-solid" + , o = "layui-icon-rate-half" + , s = "layui-icon-rate-solid layui-icon-rate-half" + , v = "layui-icon-rate layui-icon-rate-half" + , a = function(e) { + var a = this; + a.index = ++c.index, + a.config = u.extend({}, a.config, c.config, e), + a.render() + }; + a.prototype.config = { + length: 5, + text: !1, + readonly: !1, + half: !1, + value: 0, + theme: "" + }, + a.prototype.render = function() { + var e = this + , a = e.config + , l = u(a.elem); + if (1 < l.length) + return layui.each(l, function() { + c.render(u.extend({}, a, { + elem: this + })) + }), + e; + u.extend(a, r.options(l[0])); + for (var t = a.theme ? 'style="color: ' + a.theme + ';"' : "", i = (a.elem = u(a.elem), + a.value > a.length && (a.value = a.length), + parseInt(a.value) === a.value || a.half || (a.value = Math.ceil(a.value) - a.value < .5 ? Math.ceil(a.value) : Math.floor(a.value)), + '
                        "), n = 1; n <= a.length; n++) { + var o = '
                      • "; + a.half && parseInt(a.value) !== a.value && n == Math.ceil(a.value) ? i = i + '
                      • " : i += o + } + i += "
                      " + (a.text ? '' + a.value + "\u661f" : "") + ""; + var l = a.elem + , s = l.next(".layui-rate"); + s[0] && s.remove(), + e.elemTemp = u(i), + a.span = e.elemTemp.next("span"), + a.setText && a.setText(a.value), + l.html(e.elemTemp), + l.addClass("layui-inline"), + a.readonly || e.action() + } + , + a.prototype.setvalue = function(e) { + this.config.value = e, + this.render() + } + , + a.prototype.action = function() { + var n = this.config + , t = this.elemTemp + , i = t.find("i").width() + , l = t.children("li"); + l.each(function(e) { + var a = e + 1 + , l = u(this); + l.on("click", function(e) { + n.value = a, + n.half && e.pageX - u(this).offset().left <= i / 2 && (n.value = n.value - .5), + n.text && t.next("span").text(n.value + "\u661f"), + n.choose && n.choose(n.value), + n.setText && n.setText(n.value) + }), + l.on("mousemove", function(e) { + t.find("i").each(function() { + u(this).addClass(h).removeClass(s) + }), + t.find("i:lt(" + a + ")").each(function() { + u(this).addClass(f).removeClass(v) + }), + n.half && e.pageX - u(this).offset().left <= i / 2 && l.children("i").addClass(o).removeClass(f) + }), + l.on("mouseleave", function() { + t.find("i").each(function() { + u(this).addClass(h).removeClass(s) + }), + t.find("i:lt(" + Math.floor(n.value) + ")").each(function() { + u(this).addClass(f).removeClass(v) + }), + n.half && parseInt(n.value) !== n.value && t.children("li:eq(" + Math.floor(n.value) + ")").children("i").addClass(o).removeClass("layui-icon-rate-solid layui-icon-rate") + }) + }), + r.touchSwipe(t, { + onTouchMove: function(e, a) { + var i; + Date.now() - a.timeStart <= 200 || (a = e.touches[0].pageX, + e = t.width() / n.length, + a = (a - t.offset().left) / e, + (i = (i = (e = a % 1) <= .5 && n.half ? .5 + (a - e) : Math.ceil(a)) > n.length ? n.length : i) < 0 && (i = 0), + l.each(function(e) { + var a = u(this).children("i") + , l = Math.ceil(i) - e == 1 + , t = Math.ceil(i) > e + , e = i - e == .5; + t ? (a.addClass(f).removeClass(v), + n.half && e && a.addClass(o).removeClass(f)) : a.addClass(h).removeClass(s), + a.toggleClass("layui-rate-hover", l) + }), + n.value = i, + n.text && t.next("span").text(n.value + "\u661f"), + n.setText && n.setText(n.value)) + }, + onTouchEnd: function(e, a) { + Date.now() - a.timeStart <= 200 || (t.find("i").removeClass("layui-rate-hover"), + n.choose && n.choose(n.value), + n.setText && n.setText(n.value)) + } + }) + } + , + a.prototype.events = function() {} + , + c.render = function(e) { + e = new a(e); + return function() { + var a = this; + return { + setvalue: function(e) { + a.setvalue.call(a, e) + }, + config: a.config + } + } + .call(e) + } + , + e(l, c) +}); +layui.define("jquery", function(o) { + "use strict"; + var w = layui.$ + , l = function(o) {}; + l.prototype.load = function(o) { + var i, n, r, l, c, m, e, t, a, f, s, u, p, d, y, g = this, h = 0, v = w((o = o || {}).elem); + if (v[0]) + return c = w(o.scrollElem || document), + m = "mb"in o ? o.mb : 50, + e = !("isAuto"in o) || o.isAuto, + t = o.moreText || "\u52a0\u8f7d\u66f4\u591a", + a = o.end || "\u6ca1\u6709\u66f4\u591a\u4e86", + f = "top" === (o.direction || "bottom"), + g._cleanup(v, c), + s = o.scrollElem && o.scrollElem !== document, + p = w('"), + v.find(".layui-flow-more")[0] || v[f ? "prepend" : "append"](p), + d = function(o, l) { + var e = s ? c.prop("scrollHeight") : document.documentElement.scrollHeight + , t = c.scrollTop(); + o = w(o), + p[f ? "after" : "before"](o), + (l = 0 == l || null) ? p.html(a) : p.find("a").html(u), + n = l, + i = null, + r && r(), + f && (o = s ? c.prop("scrollHeight") : document.documentElement.scrollHeight, + 1 === h ? c.scrollTop(o) : 1 < h && c.scrollTop(t + (o - e))) + } + , + (y = function() { + i = !0, + p.find("a").html(''), + "function" == typeof o.done && o.done(++h, d) + } + )(), + p.find("a").on("click.flow", function() { + w(this); + n || i || y() + }), + o.isLazyimg && (r = g.lazyimg({ + elem: o.elem + " img", + scrollElem: o.scrollElem, + direction: o.direction + })), + e && c.on("scroll.flow", function() { + var e = w(this) + , t = e.scrollTop(); + l && clearTimeout(l), + !n && v.width() && (l = setTimeout(function() { + var o = (s ? e : w(window)).height() + , l = s ? e.prop("scrollHeight") : document.documentElement.scrollHeight; + (f ? t <= m : l - t - o <= m) && !i && y() + }, 100)) + }), + g + } + , + l.prototype.lazyimg = function(o) { + var l, m = this, a = 0, f = w((o = o || {}).scrollElem || document), s = o.elem || "img", n = "top" === (o.direction || "bottom"), u = o.scrollElem && o.scrollElem !== document, p = function(l, o) { + var e, t = f.scrollTop(), o = t + o, i = u ? l.offset().top - f.offset().top + t : l.offset().top; + (n ? i + l.height() : i) >= t && i <= o && l.attr("lay-src") && (e = l.attr("lay-src"), + layui.img(e, function() { + var o = m.lazyimg.elem.eq(a); + l.attr("src", e).removeAttr("lay-src"), + o[0] && r(o), + a++ + }, function() { + m.lazyimg.elem.eq(a); + l.removeAttr("lay-src") + })) + }, r = function(o, l) { + var e = (u ? l || f : w(window)).height() + , t = f.scrollTop() + , i = t + e; + if (m.lazyimg.elem = w(s), + o) + p(o, e); + else + for (var n = 0; n < m.lazyimg.elem.length; n++) { + var r = m.lazyimg.elem.eq(n) + , c = u ? r.offset().top - f.offset().top + t : r.offset().top; + if (p(r, e), + a = n, + i < c) + break + } + }; + return r(), + f.on("scroll.lazyimg", function() { + var o = w(this); + l && clearTimeout(l), + l = setTimeout(function() { + r(null, o) + }, 50) + }), + r + } + , + l.prototype._cleanup = function(o, l) { + l.off("scroll.flow").off("scroll.lazyimg"), + o.find(".layui-flow-more").find("a").off("click.flow") + } + , + o("flow", new l) +}); +layui.define(["lay", "util", "element", "form"], function(e) { + "use strict"; + var x = layui.$ + , D = layui.util + , S = layui.element + , I = layui.form + , N = layui.layer + , A = (layui.hint(), + { + ELEM_VIEW: "layui-code-view", + ELEM_TAB: "layui-tab", + ELEM_HEADER: "layui-code-header", + ELEM_FULL: "layui-code-full", + ELEM_PREVIEW: "layui-code-preview", + ELEM_ITEM: "layui-code-item", + ELEM_SHOW: "layui-show", + ELEM_LINE: "layui-code-line", + ELEM_LINE_NUM: "layui-code-line-number", + ELEM_LN_MODE: "layui-code-ln-mode", + CDDE_DATA_CLASS: "LayuiCodeDataClass", + LINE_RAW_WIDTH: 45 + }) + , T = { + elem: "", + about: "", + ln: !0, + header: !1, + encode: !0, + copy: !0, + text: { + code: D.escape(""), + preview: "Preview" + }, + wordWrap: !0, + lang: "text", + highlighter: !1, + langMarker: !1 + } + , W = layui.code ? layui.code.index + 1e4 : 0 + , R = function(e) { + return String(e).replace(/\s+$/, "").replace(/^\n|\n$/, "") + }; + e("code", function(l, e) { + var o, i, t, a, n, d, c, s, r, u, y, p, E, f, h, v, m, L, _, M, C, g = { + config: l = x.extend(!0, {}, T, l), + reload: function(e) { + layui.code(this.updateOptions(e)) + }, + updateOptions: function(e) { + return delete (e = e || {}).elem, + x.extend(!0, l, e) + }, + reloadCode: function(e) { + layui.code(this.updateOptions(e), "reloadCode") + } + }, w = x(l.elem); + return 1 < w.length ? layui.each(l.obverse ? w : w.get().reverse(), function() { + layui.code(x.extend({}, l, { + elem: this + }), e) + }) : (o = l.elem = x(l.elem))[0] && (x.extend(!0, l, lay.options(o[0]), (i = {}, + layui.each(["title", "height", "encode", "skin", "about"], function(e, t) { + var a = o.attr("lay-" + t); + "string" == typeof a && (i[t] = a) + }), + i)), + l.encode = (l.encode || l.preview) && !l.codeRender, + l.code = l.code || (t = [], + o.children("textarea").each(function() { + t.push(R(this.value)) + }), + 0 === t.length && t.push(R(o.html())), + t.join("")), + w = function(e) { + "function" == typeof l.codeRender && (e = l.codeRender(String(e), l)); + var t = String(e).split(/\r?\n/g); + return { + lines: t, + html: e = x.map(t, function(e, t) { + return ['
                      ', l.ln ? ['
                      ', D.digit(t + 1) + ".", "
                      "].join("") : "", '
                      ', e || " ", "
                      ", "
                      "].join("") + }) + } + } + , + a = l.code, + n = function(e) { + return "function" == typeof l.codeParse ? l.codeParse(e, l) : e + } + , + "reloadCode" === e ? o.children(".layui-code-wrap").html(w(n(a)).html) : (d = layui.code.index = ++W, + o.attr("lay-code-index", d), + (M = A.CDDE_DATA_CLASS in o.data()) && o.attr("class", o.data(A.CDDE_DATA_CLASS) || ""), + M || o.data(A.CDDE_DATA_CLASS, o.attr("class")), + c = { + copy: { + className: "file-b", + title: ["\u590d\u5236\u4ee3\u7801"], + event: function(e) { + var t = D.unescape(n(l.code)) + , a = "function" == typeof l.onCopy; + lay.clipboard.writeText({ + text: t, + done: function() { + if (a && !1 === l.onCopy(t, !0)) + return; + N.msg("\u5df2\u590d\u5236", { + icon: 1 + }) + }, + error: function() { + if (a && !1 === l.onCopy(t, !1)) + return; + N.msg("\u590d\u5236\u5931\u8d25", { + icon: 2 + }) + } + }) + } + } + }, + function b() { + var e = o.parent("." + A.ELEM_PREVIEW) + , t = e.children("." + A.ELEM_TAB) + , a = e.children("." + A.ELEM_ITEM + "-preview"); + return t.remove(), + a.remove(), + e[0] && o.unwrap(), + b + }(), + l.preview && (M = "LAY-CODE-DF-" + d, + f = l.layout || ["code", "preview"], + s = "iframe" === l.preview, + E = x('
                      '), + C = x('
                      '), + r = x('
                      '), + _ = x('
                      '), + u = x('
                      '), + l.id && E.attr("id", l.id), + E.addClass(l.className), + C.attr("lay-filter", M), + layui.each(f, function(e, t) { + var a = x('
                    • '); + 0 === e && a.addClass("layui-this"), + a.html(l.text[t]), + r.append(a) + }), + x.extend(c, { + full: { + className: "screen-full", + title: ["\u6700\u5927\u5316\u663e\u793a", "\u8fd8\u539f\u663e\u793a"], + event: function(e) { + var e = e.elem + , t = e.closest("." + A.ELEM_PREVIEW) + , a = "layui-icon-" + this.className + , i = "layui-icon-screen-restore" + , l = this.title + , o = x("html,body") + , n = "layui-scrollbar-hide"; + e.hasClass(a) ? (t.addClass(A.ELEM_FULL), + e.removeClass(a).addClass(i), + e.attr("title", l[1]), + o.addClass(n)) : (t.removeClass(A.ELEM_FULL), + e.removeClass(i).addClass(a), + e.attr("title", l[0]), + o.removeClass(n)) + } + }, + window: { + className: "release", + title: ["\u5728\u65b0\u7a97\u53e3\u9884\u89c8"], + event: function(e) { + D.openWin({ + content: n(l.code) + }) + } + } + }), + l.copy && ("array" === layui.type(l.tools) ? -1 === l.tools.indexOf("copy") && l.tools.unshift("copy") : l.tools = ["copy"]), + u.on("click", ">i", function() { + var e = x(this) + , t = e.data("type") + , e = { + elem: e, + type: t, + options: l, + rawCode: l.code, + finalCode: D.unescape(n(l.code)) + }; + c[t] && "function" == typeof c[t].event && c[t].event(e), + "function" == typeof l.toolsEvent && l.toolsEvent(e) + }), + l.addTools && l.tools && (l.tools = [].concat(l.tools, l.addTools)), + layui.each(l.tools, function(e, t) { + var a = "object" == typeof t + , i = a ? t : c[t] || { + className: t, + title: [t] + } + , l = i.className || i.type + , o = i.title || [""] + , a = a ? i.type || l : t; + a && (c[a] || ((t = {})[a] = i, + x.extend(c, t)), + u.append('')) + }), + o.addClass(A.ELEM_ITEM).wrap(E), + C.append(r), + l.tools && C.append(u), + o.before(C), + s && _.html(''), + y = function(e) { + var t = e.children("iframe")[0]; + s && t ? t.srcdoc = n(l.code) : e.html(l.code), + setTimeout(function() { + "function" == typeof l.done && l.done({ + container: e, + options: l, + render: function() { + I.render(e.find(".layui-form")), + S.render() + } + }) + }, 3) + } + , + "preview" === f[0] ? (_.addClass(A.ELEM_SHOW), + o.before(_), + y(_)) : o.addClass(A.ELEM_SHOW).after(_), + l.previewStyle = [l.style, l.previewStyle].join(""), + _.attr("style", l.previewStyle), + S.on("tab(" + M + ")", function(e) { + var t = x(this) + , a = x(e.elem).closest("." + A.ELEM_PREVIEW).find("." + A.ELEM_ITEM) + , e = a.eq(e.index); + a.removeClass(A.ELEM_SHOW), + e.addClass(A.ELEM_SHOW), + "preview" === t.attr("lay-id") && y(e), + L() + })), + p = x(''), + o.addClass((E = ["layui-code-view layui-border-box"], + l.wordWrap || E.push("layui-code-nowrap"), + E.join(" "))), + (C = l.theme || l.skin) && (o.removeClass("layui-code-theme-dark layui-code-theme-light"), + o.addClass("layui-code-theme-" + C)), + l.highlighter && o.addClass([l.highlighter, "language-" + l.lang, "layui-code-hl"].join(" ")), + f = w(l.encode ? D.escape(n(a)) : a), + h = f.lines, + o.html(p.html(f.html)), + l.ln && o.append('
                      '), + l.height && p.css("max-height", l.height), + l.codeStyle = [l.style, l.codeStyle].join(""), + l.codeStyle && p.attr("style", function(e, t) { + return (t || "") + l.codeStyle + }), + v = [{ + selector: ">.layui-code-wrap>.layui-code-line{}", + setValue: function(e, t) { + e.style["padding-left"] = t + "px" + } + }, { + selector: ">.layui-code-wrap>.layui-code-line>.layui-code-line-number{}", + setValue: function(e, t) { + e.style.width = t + "px" + } + }, { + selector: ">.layui-code-ln-side{}", + setValue: function(e, t) { + e.style.width = t + "px" + } + }], + m = lay.style({ + target: o[0], + id: "DF-code-" + d, + text: x.map(x.map(v, function(e) { + return e.selector + }), function(e, t) { + return ['.layui-code-view[lay-code-index="' + d + '"]', e].join(" ") + }).join("") + }), + L = function b() { + var e, i; + return l.ln && (e = Math.floor(h.length / 100), + i = p.children("." + A.ELEM_LINE).last().children("." + A.ELEM_LINE_NUM).outerWidth(), + o.addClass(A.ELEM_LN_MODE), + e) && A.LINE_RAW_WIDTH < i && lay.getStyleRules(m, function(e, t) { + try { + v[t].setValue(e, i) + } catch (a) {} + }), + b + }(), + l.header && ((_ = x('
                      ')).html(l.title || l.text.code), + o.prepend(_)), + M = x('
                      '), + l.copy && !l.preview && ((C = x(['', '', ""].join(""))).on("click", function() { + c.copy.event() + }), + M.append(C)), + l.langMarker && M.append('' + l.lang + ""), + l.about && M.append(l.about), + o.append(M), + l.preview || setTimeout(function() { + "function" == typeof l.done && l.done({}) + }, 3), + l.elem.length === 1 + d && "function" == typeof l.allDone && l.allDone())), + g + }) +}), +layui["layui.all"] || layui.addcss("modules/code.css?v=6", "skincodecss"); diff --git a/old06-04.zip b/old06-04.zip new file mode 100644 index 0000000..e930f77 Binary files /dev/null and b/old06-04.zip differ diff --git a/page/404.html b/page/404.html new file mode 100755 index 0000000..7f9c7d3 --- /dev/null +++ b/page/404.html @@ -0,0 +1,110 @@ + + + + + 404 + + + + + + + + + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      OH! + +
                      +
                      +

                      很抱歉,你访问的页面找不到了

                      +
                      +
                      +
                      + + + + \ No newline at end of file diff --git a/page/agreement.html b/page/agreement.html new file mode 100755 index 0000000..359abba --- /dev/null +++ b/page/agreement.html @@ -0,0 +1,82 @@ + + + + + USED CAR + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + + + +
                      + + + +
                      +
                      + + + + + + + + + + \ No newline at end of file diff --git a/page/audit.html b/page/audit.html new file mode 100755 index 0000000..ec224d9 --- /dev/null +++ b/page/audit.html @@ -0,0 +1,80 @@ + + + + + USED CAR + + + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + + +
                      +
                      +
                      +
                      + +
                      + + + +
                      + + + +
                      +
                      + + + + + + + + + + + + \ No newline at end of file diff --git a/page/brand.html b/page/brand.html new file mode 100755 index 0000000..3d0816f --- /dev/null +++ b/page/brand.html @@ -0,0 +1,73 @@ + + + + + USED CAR + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + + + +
                      + + + +
                      +
                      + + + + + + + + + + + \ No newline at end of file diff --git a/page/carlist.html b/page/carlist.html new file mode 100755 index 0000000..7cdd5e1 --- /dev/null +++ b/page/carlist.html @@ -0,0 +1,126 @@ + + + + + USED CAR + + + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      + +
                      + +
                      +
                      +
                      + + +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + + + +
                      + + + +
                      +
                      + + + + + + + + + + + + \ No newline at end of file diff --git a/page/dict.html b/page/dict.html new file mode 100755 index 0000000..307823c --- /dev/null +++ b/page/dict.html @@ -0,0 +1,70 @@ + + + + + USED CAR + + + + + + + +
                      +
                      + +
                      + 搜索信息 +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + + + +
                      + + + +
                      +
                      + + + + + + + + \ No newline at end of file diff --git a/page/email.html b/page/email.html new file mode 100755 index 0000000..2a70fc2 --- /dev/null +++ b/page/email.html @@ -0,0 +1,50 @@ + + + + + USED CAR + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      + + + + + + + + + + \ No newline at end of file diff --git a/page/energy.html b/page/energy.html new file mode 100755 index 0000000..3c9db32 --- /dev/null +++ b/page/energy.html @@ -0,0 +1,72 @@ + + + + + USED CAR + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + + + +
                      + + + +
                      +
                      + + + + + + + + + + \ No newline at end of file diff --git a/page/model.html b/page/model.html new file mode 100755 index 0000000..8ae04bc --- /dev/null +++ b/page/model.html @@ -0,0 +1,72 @@ + + + + + USED CAR + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + + + +
                      + + + +
                      +
                      + + + + + + + + + + \ No newline at end of file diff --git a/page/newcarlist.html b/page/newcarlist.html new file mode 100755 index 0000000..f24832f --- /dev/null +++ b/page/newcarlist.html @@ -0,0 +1,99 @@ + + + + + USED CAR + + + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + + +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + + + +
                      + + + +
                      +
                      + + + + + + + + + + + + \ No newline at end of file diff --git a/page/seo.html b/page/seo.html new file mode 100755 index 0000000..719eb1c --- /dev/null +++ b/page/seo.html @@ -0,0 +1,72 @@ + + + + + USED CAR + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + + + +
                      + + + +
                      +
                      + + + + + + + + + + \ No newline at end of file diff --git a/page/table/agreementadd.html b/page/table/agreementadd.html new file mode 100755 index 0000000..d41ceea --- /dev/null +++ b/page/table/agreementadd.html @@ -0,0 +1,103 @@ + + + + + layui + + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      + + + + + + + + + \ No newline at end of file diff --git a/page/table/agreementedit.html b/page/table/agreementedit.html new file mode 100755 index 0000000..b87c938 --- /dev/null +++ b/page/table/agreementedit.html @@ -0,0 +1,126 @@ + + + + + layui + + + + + + + + +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                    • + + + + + + + + + \ No newline at end of file diff --git a/page/table/auditcheck.html b/page/table/auditcheck.html new file mode 100755 index 0000000..0255762 --- /dev/null +++ b/page/table/auditcheck.html @@ -0,0 +1,323 @@ + + + + + layui + + + + + + + + +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                        +
                      • +
                      • +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + + + + + + + + + + \ No newline at end of file diff --git a/page/table/auditshow.html b/page/table/auditshow.html new file mode 100755 index 0000000..99fe5b9 --- /dev/null +++ b/page/table/auditshow.html @@ -0,0 +1,138 @@ + + + + + layui + + + + + + + + +
                      +
                      +
                      +
                      + + + + + + + + \ No newline at end of file diff --git a/page/table/brandadd - 副本.html b/page/table/brandadd - 副本.html new file mode 100755 index 0000000..e7e46e7 --- /dev/null +++ b/page/table/brandadd - 副本.html @@ -0,0 +1,260 @@ + + + + + layui + + + + + + + + +
                      +
                      +
                        +
                      • +
                      • +
                      • +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      + +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + + + + + + + + \ No newline at end of file diff --git a/page/table/brandadd.html b/page/table/brandadd.html new file mode 100755 index 0000000..fefc46c --- /dev/null +++ b/page/table/brandadd.html @@ -0,0 +1,243 @@ + + + + + layui + + + + + + + + +
                      +
                      +
                        +
                      • +
                      • +
                      • +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + + + + + + + + \ No newline at end of file diff --git a/page/table/brandedit.html b/page/table/brandedit.html new file mode 100755 index 0000000..d1b3c95 --- /dev/null +++ b/page/table/brandedit.html @@ -0,0 +1,333 @@ + + + + + layui + + + + + + + + +
                      +
                      +
                        +
                      • +
                      • +
                      • +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + + + + + + + + \ No newline at end of file diff --git a/page/table/carlistadd.html b/page/table/carlistadd.html new file mode 100755 index 0000000..623cafb --- /dev/null +++ b/page/table/carlistadd.html @@ -0,0 +1,394 @@ + + + + + layui + + + + + + + + +
                      +
                      +
                        +
                      • +
                      • +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + + + + ( 4:3) +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + + +
                      +
                      +
                      +
                      + + + +
                      + +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + + + + + + + + + + \ No newline at end of file diff --git a/page/table/carlistcheck.html b/page/table/carlistcheck.html new file mode 100755 index 0000000..44ec298 --- /dev/null +++ b/page/table/carlistcheck.html @@ -0,0 +1,86 @@ + + + + + layui + + + + + + + + +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + + + + \ No newline at end of file diff --git a/page/table/carlistedit.html b/page/table/carlistedit.html new file mode 100755 index 0000000..278c344 --- /dev/null +++ b/page/table/carlistedit.html @@ -0,0 +1,469 @@ + + + + + layui + + + + + + + + +
                      +
                      +
                        +
                      • +
                      • +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      +
                      +
                      + +
                      + + + + ( 4:3) +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + + +
                      +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      + + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + + + + + + + + + + \ No newline at end of file diff --git a/page/table/carlistshow.html b/page/table/carlistshow.html new file mode 100755 index 0000000..bdd48d4 --- /dev/null +++ b/page/table/carlistshow.html @@ -0,0 +1,259 @@ + + + + + layui + + + + + + + + +
                      +
                      +
                        +
                      • +
                      • +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + + +
                      + + + + + + + + + + + + \ No newline at end of file diff --git a/page/table/dictadd.html b/page/table/dictadd.html new file mode 100755 index 0000000..757f165 --- /dev/null +++ b/page/table/dictadd.html @@ -0,0 +1,180 @@ + + + + + layui + + + + + + + + +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      + + +
                      + + + + + + + +
                      +
                      + + + + + + \ No newline at end of file diff --git a/page/table/dictedit.html b/page/table/dictedit.html new file mode 100755 index 0000000..853a3e1 --- /dev/null +++ b/page/table/dictedit.html @@ -0,0 +1,202 @@ + + + + + layui + + + + + + + + +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      + + +
                      + + + + + + + +
                      +
                      + + + + + + \ No newline at end of file diff --git a/page/table/energyadd.html b/page/table/energyadd.html new file mode 100755 index 0000000..ca1932d --- /dev/null +++ b/page/table/energyadd.html @@ -0,0 +1,80 @@ + + + + + layui + + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + + + + + + + + \ No newline at end of file diff --git a/page/table/energyedit.html b/page/table/energyedit.html new file mode 100755 index 0000000..7db1376 --- /dev/null +++ b/page/table/energyedit.html @@ -0,0 +1,106 @@ + + + + + layui + + + + + + + + +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      + + + + + + + + \ No newline at end of file diff --git a/page/table/modeladd.html b/page/table/modeladd.html new file mode 100755 index 0000000..5c9ec41 --- /dev/null +++ b/page/table/modeladd.html @@ -0,0 +1,91 @@ + + + + + layui + + + + + + + + +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + + + + + + + + \ No newline at end of file diff --git a/page/table/modeledit.html b/page/table/modeledit.html new file mode 100755 index 0000000..8281aa5 --- /dev/null +++ b/page/table/modeledit.html @@ -0,0 +1,115 @@ + + + + + layui + + + + + + + + +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      + + + + + + + + \ No newline at end of file diff --git a/page/table/newcarlistadd.html b/page/table/newcarlistadd.html new file mode 100755 index 0000000..23e3041 --- /dev/null +++ b/page/table/newcarlistadd.html @@ -0,0 +1,334 @@ + + + + + layui + + + + + + + + +
                      +
                      +
                        +
                      • +
                      • +
                      • +
                      • +
                      • +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + + + + + + + + + + \ No newline at end of file diff --git a/page/table/newcarlistedit.html b/page/table/newcarlistedit.html new file mode 100755 index 0000000..fac1d04 --- /dev/null +++ b/page/table/newcarlistedit.html @@ -0,0 +1,429 @@ + + + + + layui + + + + + + + + +
                      +
                      +
                        +
                      • +
                      • +
                      • +
                      • +
                      • +
                      +
                      +
                      +
                      +
                      + +
                      + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + + + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      + +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      + +
                      +
                      + +
                      +
                      + +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      +
                      + +
                      +
                      +
                      +
                    + + + + + + + + + + \ No newline at end of file diff --git a/page/table/newcarlistshow.html b/page/table/newcarlistshow.html new file mode 100755 index 0000000..ef10592 --- /dev/null +++ b/page/table/newcarlistshow.html @@ -0,0 +1,280 @@ + + + + + layui + + + + + + + + +
                    +
                    +
                      +
                    • +
                    • +
                    • +
                    • +
                    • +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    +
                    +
                    + + +
                    + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/page/table/seoadd.html b/page/table/seoadd.html new file mode 100755 index 0000000..a73c9a7 --- /dev/null +++ b/page/table/seoadd.html @@ -0,0 +1,140 @@ + + + + + layui + + + + + + + + +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    + +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + + + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    +
                    + +
                    +
                    +
                    + + + + + + + + \ No newline at end of file diff --git a/page/table/seoedit.html b/page/table/seoedit.html new file mode 100755 index 0000000..f59c604 --- /dev/null +++ b/page/table/seoedit.html @@ -0,0 +1,142 @@ + + + + + layui + + + + + + + + +
                    +
                    + +
                    + + +
                    +
                    +
                    + +
                    + +
                    +
                    + +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + + + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    + +
                    +
                    + +
                    +
                    +
                    +
                    + + + + + + + + \ No newline at end of file diff --git a/page/table/typeadd.html b/page/table/typeadd.html new file mode 100755 index 0000000..88dfb23 --- /dev/null +++ b/page/table/typeadd.html @@ -0,0 +1,106 @@ + + + + + layui + + + + + + + + +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + + + +
                    +
                    +
                    + +
                    + + +
                    +
                    +
                    + +
                    + +
                    +
                    + +
                    +
                    + +
                    +
                    +
                    + + + + + + + + \ No newline at end of file diff --git a/page/table/typeedit - 副本.html b/page/table/typeedit - 副本.html new file mode 100755 index 0000000..8cbd7ca --- /dev/null +++ b/page/table/typeedit - 副本.html @@ -0,0 +1,134 @@ + + + + + layui + + + + + + + + +
                    +
                    + +
                    + + +
                    +
                    +
                    + +
                    + + + +
                    +
                    +
                    + +
                    + + +
                    +
                    +
                    + +
                    + +
                    +
                    + +
                    +
                    + +
                    +
                    +
                    +
                    + + + + + + + + \ No newline at end of file diff --git a/page/table/typeedit.html b/page/table/typeedit.html new file mode 100755 index 0000000..fdf0990 --- /dev/null +++ b/page/table/typeedit.html @@ -0,0 +1,133 @@ + + + + + layui + + + + + + + + +
                    +
                    + +
                    + + +
                    +
                    +
                    + +
                    + + + +
                    +
                    +
                    + +
                    + + +
                    +
                    +
                    + +
                    + +
                    +
                    + +
                    +
                    + +
                    +
                    +
                    +
                    + + + + + + + + \ No newline at end of file diff --git a/page/table/userlistadd.html b/page/table/userlistadd.html new file mode 100755 index 0000000..c15ed0d --- /dev/null +++ b/page/table/userlistadd.html @@ -0,0 +1,113 @@ + + + + + layui + + + + + + + + +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + + + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + + +
                    +
                    + +
                    +
                    + +
                    +
                    +
                    + + + + + + + + \ No newline at end of file diff --git a/page/table/userlistedit.html b/page/table/userlistedit.html new file mode 100755 index 0000000..1ae60e8 --- /dev/null +++ b/page/table/userlistedit.html @@ -0,0 +1,168 @@ + + + + + layui + + + + + + + + +
                    +
                    + +
                    + + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + + + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + + +
                    +
                    + +
                    +
                    + +
                    +
                    +
                    +
                    + + + + + + + + \ No newline at end of file diff --git a/page/type.html b/page/type.html new file mode 100755 index 0000000..ff68876 --- /dev/null +++ b/page/type.html @@ -0,0 +1,72 @@ + + + + + USED CAR + + + + + + + +
                    +
                    + +
                    + +
                    +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    +
                    +
                    +
                    +
                    + + + +
                    + + + +
                    +
                    + + + + + + + + + + \ No newline at end of file diff --git a/page/user-password.html b/page/user-password.html new file mode 100755 index 0000000..8a0c793 --- /dev/null +++ b/page/user-password.html @@ -0,0 +1,71 @@ + + + + + 修改密码 + + + + + + + + +
                    +
                    + +
                    +
                    + +
                    + + 填写自己账号的旧的密码。 +
                    +
                    + +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    + + + + + \ No newline at end of file diff --git a/page/user-setting.html b/page/user-setting.html new file mode 100755 index 0000000..44e69f0 --- /dev/null +++ b/page/user-setting.html @@ -0,0 +1,76 @@ + + + + + 基本资料 + + + + + + + + +
                    +
                    + +
                    +
                    + +
                    + + 填写自己管理账号的名称。 +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    + +
                    +
                    + +
                    +
                    +
                    +
                    +
                    + + + + + \ No newline at end of file diff --git a/page/userList.html b/page/userList.html new file mode 100755 index 0000000..e563329 --- /dev/null +++ b/page/userList.html @@ -0,0 +1,237 @@ + + + + + USED CAR + + + + + + + + + +
                    +
                    +
                    + +
                    +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + + +
                    +
                    +
                    +
                    +
                    + + +
                    +
                    + + + +
                    +
                    +
                    +
                    +
                    +
                    +
                    + + + + +
                    +
                    + + + + + + + + + + + + \ No newline at end of file diff --git a/page/userList1.html b/page/userList1.html new file mode 100755 index 0000000..0ced599 --- /dev/null +++ b/page/userList1.html @@ -0,0 +1,88 @@ + + + + + USED CAR + + + + + + + + +
                    +
                    + +
                    + +
                    +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + +
                    + +
                    +
                    +
                    + + +
                    +
                    +
                    +
                    +
                    + + +
                    + + + +
                    +
                    + + + + + + + + + + + + \ No newline at end of file diff --git a/page/welcome-1 - 副本.html b/page/welcome-1 - 副本.html new file mode 100755 index 0000000..da03e0b --- /dev/null +++ b/page/welcome-1 - 副本.html @@ -0,0 +1,395 @@ + + + + + 首页二 + + + + + + + + + +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    数据统计
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + 实时 +
                    用户统计
                    +
                    +
                    +

                    1234

                    + 当前分类总记录数 +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + 实时 +
                    商品统计
                    +
                    +
                    +

                    1234

                    + 当前分类总记录数 +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + 实时 +
                    浏览统计
                    +
                    +
                    +

                    1234

                    + 当前分类总记录数 +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + 实时 +
                    订单统计
                    +
                    +
                    +

                    1234

                    + 当前分类总记录数 +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    +
                    报表统计
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + +
                    + +
                    +
                    系统公告
                    +
                    +
                    +
                    修改选项卡样式
                    +
                    2019-07-11 23:06
                    +
                    + 界面足够简洁清爽。
                    + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                    + 支持多tab,可以打开多窗口。
                    + 支持无限级菜单和对font-awesome图标库的完美支持。
                    + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                    + url地址hash定位,可以清楚看到当前tab的地址信息。
                    + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                    + 移动端的友好支持。
                    +
                    +
                    +
                    +
                    新增系统404模板
                    +
                    2019-07-11 12:57
                    +
                    + 界面足够简洁清爽。
                    + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                    + 支持多tab,可以打开多窗口。
                    + 支持无限级菜单和对font-awesome图标库的完美支持。
                    + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                    + url地址hash定位,可以清楚看到当前tab的地址信息。
                    + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                    + 移动端的友好支持。
                    +
                    +
                    +
                    +
                    新增treetable插件和菜单管理样式
                    +
                    2019-07-05 14:28
                    +
                    + 界面足够简洁清爽。
                    + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                    + 支持多tab,可以打开多窗口。
                    + 支持无限级菜单和对font-awesome图标库的完美支持。
                    + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                    + url地址hash定位,可以清楚看到当前tab的地址信息。
                    + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                    + 移动端的友好支持。
                    +
                    +
                    +
                    +
                    修改logo缩放问题
                    +
                    2019-07-04 11:02
                    +
                    + 界面足够简洁清爽。
                    + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                    + 支持多tab,可以打开多窗口。
                    + 支持无限级菜单和对font-awesome图标库的完美支持。
                    + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                    + url地址hash定位,可以清楚看到当前tab的地址信息。
                    + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                    + 移动端的友好支持。
                    +
                    +
                    +
                    +
                    修复左侧菜单缩放tab无法移动
                    +
                    2019-06-17 11:55
                    +
                    + 界面足够简洁清爽。
                    + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                    + 支持多tab,可以打开多窗口。
                    + 支持无限级菜单和对font-awesome图标库的完美支持。
                    + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                    + url地址hash定位,可以清楚看到当前tab的地址信息。
                    + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                    + 移动端的友好支持。
                    +
                    +
                    +
                    +
                    修复多模块菜单栏展开有问题
                    +
                    2019-06-13 14:53
                    +
                    + 界面足够简洁清爽。
                    + 一个接口几行代码而已直接初始化整个框架,无需复杂操作。
                    + 支持多tab,可以打开多窗口。
                    + 支持无限级菜单和对font-awesome图标库的完美支持。
                    + 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。
                    + url地址hash定位,可以清楚看到当前tab的地址信息。
                    + 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。
                    + 移动端的友好支持。
                    +
                    +
                    +
                    +
                    +
                    +
                    作者心语
                    +
                    +

                    本模板基于layui2.5.4以及font-awesome-4.7.0进行实现。layui开发文档地址:layui文档

                    +

                    技术交流QQ群(716235988):layuimini(加群请备注来源:如gitee、github、官网等)

                    +

                    喜欢此后台模板的可以给我的GitHub和Gitee加个Star支持一下

                    +
                    +
                    + +
                    +
                    +
                    +
                    + + + + + diff --git a/page/welcome-1.html b/page/welcome-1.html new file mode 100755 index 0000000..4e75fbf --- /dev/null +++ b/page/welcome-1.html @@ -0,0 +1,213 @@ + + + + + 首页二 + + + + + + + + + +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    +
                    +

                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    +
                    +

                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    +
                    +

                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    +
                    +

                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    +
                    + +
                    +
                    +
                    + + + + + + + +