diff --git a/static/api/clear.json b/static/api/clear.json new file mode 100644 index 0000000..e0f5ed7 --- /dev/null +++ b/static/api/clear.json @@ -0,0 +1,4 @@ +{ + "code": 1, + "msg": "服务端清理缓存成功" +} \ No newline at end of file diff --git a/static/api/init.json b/static/api/init.json new file mode 100644 index 0000000..72138b0 --- /dev/null +++ b/static/api/init.json @@ -0,0 +1,48 @@ +{ + "homeInfo": { + "title": "首页", + "href": "../log" + }, + "logoInfo": { + "title": "在线运维工具", + "image": "static/images/logo.png", + "href": "" + }, + "menuInfo": [ + { + "title": "常规管理", + "icon": "fa fa-address-book", + "href": "", + "target": "_self", + "child": [ + + { + "title": "运维日志", + "href": "../log", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "用户管理", + "href": "../user", + "icon": "fa fa-file-text", + "target": "_self" + }, + { + "title": "数据图表", + "href": "../index_echarts", + "icon": "fa fa-file-text", + "target": "_blank" + } +, + { + "title": "警告信息", + "href": "../warings", + "icon": "fa fa-file-text", + "target": "_self" + } + ] + } + + ] +} \ No newline at end of file diff --git a/static/api/menus.json b/static/api/menus.json new file mode 100644 index 0000000..e14d00e --- /dev/null +++ b/static/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/static/api/table.json b/static/api/table.json new file mode 100644 index 0000000..7bda61b --- /dev/null +++ b/static/api/table.json @@ -0,0 +1,127 @@ +{ + "code": 0, + "msg": "", + "count": 1000, + "data": [ + { + "id": 10000, + "username": "user-0", + "sex": "女", + "city": "城市-0", + "sign": "签名-0", + "experience": 255, + "logins": 24, + "wealth": 82830700, + "classify": "作家", + "score": 57 + }, + { + "id": 10001, + "username": "user-1", + "sex": "男", + "city": "城市-1", + "sign": "签名-1", + "experience": 884, + "logins": 58, + "wealth": 64928690, + "classify": "词人", + "score": 27 + }, + { + "id": 10002, + "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/static/api/tableSelect.json b/static/api/tableSelect.json new file mode 100644 index 0000000..37fb0ed --- /dev/null +++ b/static/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/static/api/upload.json b/static/api/upload.json new file mode 100644 index 0000000..691902d --- /dev/null +++ b/static/api/upload.json @@ -0,0 +1,10 @@ +{ + "code": 1, + "msg": "上传成功", + "data": { + "url": [ + "../images/logo.png", + "../images/captcha.jpg" + ] + } +} diff --git a/static/css/ProgressBarWars.css b/static/css/ProgressBarWars.css new file mode 100644 index 0000000..819e7c8 --- /dev/null +++ b/static/css/ProgressBarWars.css @@ -0,0 +1,149 @@ +.barControl { + margin: 0 auto; +} + +.barContro_space { + padding: 1px; + border-radius: 5px; + border: 1px #ffaa00 solid; +} + +.barContro_space1 { + padding: 1px; + border-radius: 5px; + border: 1px #00d8ff solid; +} + +.barContro_space2 { + padding: 1px; + border-radius: 5px; + border: 1px #56a4ff solid; +} + +.barContro_space3 { + padding: 1px; + border-radius: 5px; + border: 1px #56ff6a solid; +} + +.barContro_space4 { + padding: 1px; + border-radius: 13px; + border: 1px #ffea00 solid; +} + +.barContro_space5 { + padding: 1px; + border-radius: 5px; + border: 1px #40e315 solid; +} + +.barContro_space6 { + padding: 1px; + border-radius: 5px; + border: 1px #15e3ac solid; +} + +.barContro_space7 { + padding: 1px; + border-radius: 5px; + border: 1px #1f9cff solid; +} + +.barContro_space8 { + padding: 1px; + border-radius: 5px; + border: 1px #c97802 solid; +} + +.barContro_space9 { + padding: 1px; + border-radius: 5px; + border: 1px #72ff00 solid; +} + +.barContro_space10 { + padding: 1px; + border-radius: 5px; + border: 1px #ef4503 solid; +} + +.vader { + border-radius: 4px; + display: block; + width: 0%; + background-color: #ffaa00; +} + +.vader1 { + border-radius: 4px; + display: block; + width: 0%; + background-color: #00d8ff; +} + +.vader2 { + border-radius: 4px; + display: block; + width: 0%; + background-color: #56a4ff; +} + +.vader3 { + border-radius: 4px; + display: block; + width: 0%; + background-color: #56ff6a; +} + +.vader4 { + border-radius: 13px; + display: block; + width: 0%; + background-color: #ffea00; +} + +.vader5 { + border-radius: 4px; + display: block; + width: 0%; + background-color: #40e315; +} + +.vader6 { + border-radius: 4px; + display: block; + width: 0%; + background-color: #15e3ac; +} + +.vader7 { + border-radius: 4px; + display: block; + width: 0%; + background-color: #1f9cff; +} + +.vader8 { + border-radius: 4px; + display: block; + width: 0%; + background-color: #c97802; +} + +.vader9 { + border-radius: 4px; + display: block; + width: 0%; + background-color: #72ff00; +} + +.vader10 { + border-radius: 4px; + display: block; + width: 0%; + background-color: #ef4503; +} + +/*.vader1{border-radius: 2px;display: block;width: 0%;box-shadow:0px 0px 10px 1px #aeff00, 0 0 1px #aeff00, 0 0 1px #aeff00, 0 0 1px #aeff00, 0 0 1px #aeff00, 0 0 1px #FD4275, 0 0 1px #FD4275;background-color: #aeff00;}*/ +/*.vader2{border-radius: 2px;display: block;width: 0%;box-shadow:0px 0px 10px 1px #aeff00, 0 0 1px #aeff00, 0 0 1px #aeff00, 0 0 1px #aeff00, 0 0 1px #aeff00, 0 0 1px #FD4275, 0 0 1px #FD4275;background-color: #aeff00;}*/ \ No newline at end of file diff --git a/static/css/layuimini.css b/static/css/layuimini.css new file mode 100644 index 0000000..09428a5 --- /dev/null +++ b/static/css/layuimini.css @@ -0,0 +1,927 @@ +/** +配色方案(如有需要,请自行配置) + */ +/**头部-配色*/ +.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 { + 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/static/css/public.css b/static/css/public.css new file mode 100644 index 0000000..243917d --- /dev/null +++ b/static/css/public.css @@ -0,0 +1,70 @@ +body { + margin: 15px 15px 15px 15px; + background: #f2f2f2; +} + +.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 +} diff --git a/static/css/themes/default.css b/static/css/themes/default.css new file mode 100644 index 0000000..4f3cefb --- /dev/null +++ b/static/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/static/images/bg.jpg b/static/images/bg.jpg new file mode 100644 index 0000000..d5870f5 Binary files /dev/null and b/static/images/bg.jpg differ diff --git a/static/images/captcha.jpg b/static/images/captcha.jpg new file mode 100644 index 0000000..92b2a33 Binary files /dev/null and b/static/images/captcha.jpg differ diff --git a/static/images/donate_qrcode.png b/static/images/donate_qrcode.png new file mode 100644 index 0000000..079ac3d Binary files /dev/null and b/static/images/donate_qrcode.png differ diff --git a/static/images/favicon.ico b/static/images/favicon.ico new file mode 100644 index 0000000..950f726 Binary files /dev/null and b/static/images/favicon.ico differ diff --git a/static/images/home.png b/static/images/home.png new file mode 100644 index 0000000..348ff27 Binary files /dev/null and b/static/images/home.png differ diff --git a/static/images/icon-login.png b/static/images/icon-login.png new file mode 100644 index 0000000..1db2f96 Binary files /dev/null and b/static/images/icon-login.png differ diff --git a/static/images/loginbg.png b/static/images/loginbg.png new file mode 100644 index 0000000..675c74b Binary files /dev/null and b/static/images/loginbg.png differ diff --git a/static/images/logo.png b/static/images/logo.png new file mode 100644 index 0000000..c3e107d Binary files /dev/null and b/static/images/logo.png differ diff --git a/static/img/12319rexian.png b/static/img/12319rexian.png new file mode 100644 index 0000000..d0966e9 Binary files /dev/null and b/static/img/12319rexian.png differ diff --git a/static/img/Homebodybg.png b/static/img/Homebodybg.png new file mode 100644 index 0000000..65fec99 Binary files /dev/null and b/static/img/Homebodybg.png differ diff --git a/static/img/Hometitlebg.png b/static/img/Hometitlebg.png new file mode 100644 index 0000000..6fefe97 Binary files /dev/null and b/static/img/Hometitlebg.png differ diff --git a/static/img/aroundeffect.png b/static/img/aroundeffect.png new file mode 100644 index 0000000..ba95601 Binary files /dev/null and b/static/img/aroundeffect.png differ diff --git a/static/img/baixingpaiAPP.png b/static/img/baixingpaiAPP.png new file mode 100644 index 0000000..ddd3675 Binary files /dev/null and b/static/img/baixingpaiAPP.png differ diff --git a/static/img/chain_bg.png b/static/img/chain_bg.png new file mode 100644 index 0000000..5c60628 Binary files /dev/null and b/static/img/chain_bg.png differ diff --git a/static/img/fltleftbg.png b/static/img/fltleftbg.png new file mode 100644 index 0000000..1d6814e Binary files /dev/null and b/static/img/fltleftbg.png differ diff --git a/static/img/fltrightbg.png b/static/img/fltrightbg.png new file mode 100644 index 0000000..33372b6 Binary files /dev/null and b/static/img/fltrightbg.png differ diff --git a/static/img/linght_ef.png b/static/img/linght_ef.png new file mode 100644 index 0000000..b497001 Binary files /dev/null and b/static/img/linght_ef.png differ diff --git a/static/img/maindataeffect.png b/static/img/maindataeffect.png new file mode 100644 index 0000000..968f1b3 Binary files /dev/null and b/static/img/maindataeffect.png differ diff --git a/static/img/maindataicon.png b/static/img/maindataicon.png new file mode 100644 index 0000000..f914054 Binary files /dev/null and b/static/img/maindataicon.png differ diff --git a/static/img/maindataspecialeffect.png b/static/img/maindataspecialeffect.png new file mode 100644 index 0000000..4eae3f5 Binary files /dev/null and b/static/img/maindataspecialeffect.png differ diff --git a/static/img/popupboxclosebtn01.png b/static/img/popupboxclosebtn01.png new file mode 100644 index 0000000..8576867 Binary files /dev/null and b/static/img/popupboxclosebtn01.png differ diff --git a/static/img/popupboxclosebtn02.png b/static/img/popupboxclosebtn02.png new file mode 100644 index 0000000..8a471e9 Binary files /dev/null and b/static/img/popupboxclosebtn02.png differ diff --git a/static/img/xingzhengshenpi.png b/static/img/xingzhengshenpi.png new file mode 100644 index 0000000..70363f4 Binary files /dev/null and b/static/img/xingzhengshenpi.png differ diff --git a/static/img/zhatuyunshu.png b/static/img/zhatuyunshu.png new file mode 100644 index 0000000..39b1106 Binary files /dev/null and b/static/img/zhatuyunshu.png differ diff --git a/static/img/zonghezhifa.png b/static/img/zonghezhifa.png new file mode 100644 index 0000000..22366b4 Binary files /dev/null and b/static/img/zonghezhifa.png differ diff --git a/static/js/ProgressBarWars.js b/static/js/ProgressBarWars.js new file mode 100644 index 0000000..bd5f0b2 --- /dev/null +++ b/static/js/ProgressBarWars.js @@ -0,0 +1,422 @@ +$.fn.extend({ + ProgressBarWars: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars1: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars2: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars3: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars4: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars5: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars6: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars7: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars8: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars9: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +$.fn.extend({ + ProgressBarWars10: function(a) { + var b = this; + var e = $(b).attr("id"); + var d = Date.now(); + var c = ""; + defaults = { + porcentaje: "100", + tiempo: 1000, + color: "", + estilo: "yoda", + tamanio: "30%", + alto: "6px" + }; + var a = $.extend({}, defaults, a); + if (a.color != "") { + c = ""; + a.estilo = "color" + d + } + $(b).before(c); + if (a.flag) { + $(b).append('
') + } + $("#bar" + e).animate({ + width: a.porcentaje + "%" + }, a.tiempo); + this.mover = function(f) { + $("#bar" + $(this).attr("id")).animate({ + width: f + "%" + }, a.tiempo) + }; + return this + } +}); +(function(a) { + a.fn.extend({ + Scroll: function(k, g) { + if (!k) { + var k = {} + } + var c = a("#" + k.up); + var b = a("#" + k.down); + var n; + var d = this.eq(0).find("ul:first"); + var j = d.find("li:first").height(), + h = k.line ? parseInt(k.line, 10) : parseInt(this.height() / j, 10), + m = k.speed ? parseInt(k.speed, 10) : 500; + timer = k.timer; + if (h == 0) { + h = 1 + } + var o = 0 - h * j; + var l = function() { + c.unbind("click", l); + d.animate({ + marginTop: o + }, m, function() { + for (i = 1; i <= h; i++) { + d.find("li:first").appendTo(d) + } + d.css({ + marginTop: 0 + }); + c.bind("click", l) + }) + }; + var e = function() { + if (timer) { + n = window.setInterval(l, timer) + } + }; + var f = function() { + if (timer) { + window.clearInterval(n) + } + }; + d.hover(f, e).mouseout(); + c.css("cursor", "pointer").click(l).hover(f, e); + b.css("cursor", "pointer").click(scrollDown).hover(f, e) + } + }) +})(jQuery); \ No newline at end of file diff --git a/static/js/echarts-all.js b/static/js/echarts-all.js new file mode 100644 index 0000000..3d76fee --- /dev/null +++ b/static/js/echarts-all.js @@ -0,0 +1,32548 @@ +! function(c) { + var h, d; + ! function() { + function j(u, B) { + if (!B) { + return u + } + if (0 === u.indexOf(".")) { + var v = B.split("/"), + x = u.split("/"), + q = v.length - 1, + y = x.length, + z = 0, + A = 0; + u: for (var w = 0; y > w; w++) { + switch (x[w]) { + case "..": + if (!(q > z)) { + break u + } + z++, A++; + break; + case ".": + A++; + break; + default: + break u + } + } + return v.length = q - z, x = x.slice(A), v.concat(x).join("/") + } + return u + } + + function l(o) { + function a(n, q) { + if ("string" == typeof n) { + var t = e[n]; + return t || (t = m(j(n, o)), e[n] = t), t + } + n instanceof Array && (q = q || function() {}, q.apply(this, i(n, q, o))) + } + var e = {}; + return a + } + + function i(q, u, e) { + for (var v = [], r = p[e], o = 0, t = Math.min(q.length, u.length); t > o; o++) { + var x, w = j(q[o], e); + switch (w) { + case "require": + x = r && r.require || h; + break; + case "exports": + x = r.exports; + break; + case "module": + x = r; + break; + default: + x = m(w) + } + v.push(x) + } + return v + } + + function m(a) { + var r = p[a]; + if (!r) { + throw new Error("No " + a) + } + if (!r.defined) { + var o = r.factory, + q = o.apply(this, i(r.deps || [], o, a)); + "undefined" != typeof q && (r.exports = q), r.defined = 1 + } + return r.exports + } + var p = {}; + d = function(a, o, n) { + p[a] = { + id: a, + deps: o, + factory: n, + defined: 0, + exports: {}, + require: l(a) + } + }, h = l("") + }(), d("echarts", ["echarts/echarts"], function(a) { + return a + }), d("echarts/echarts", ["require", "./config", "zrender/tool/util", "zrender/tool/event", "zrender/tool/env", "zrender", "zrender/config", "./chart/island", "./component/toolbox", "./component", "./component/title", "./component/tooltip", "./component/legend", "./util/ecData", "./chart", "zrender/tool/color", "./component/timeline", "zrender/shape/Image", "zrender/loadingEffect/Bar", "zrender/loadingEffect/Bubble", "zrender/loadingEffect/DynamicLine", "zrender/loadingEffect/Ring", "zrender/loadingEffect/Spin", "zrender/loadingEffect/Whirling", "./theme/macarons", "./theme/infographic"], function(q) { + function C() { + A.Dispatcher.call(this) + } + + function v(a) { + a.innerHTML = "", this._themeConfig = {}, this.dom = a, this._connected = !1, this._status = { + dragIn: !1, + dragOut: !1, + needRefresh: !1 + }, this._curEventType = !1, this._chartList = [], this._messageCenter = new C, this._messageCenterOutSide = new C, this.resize = this.resize(), this._init() + } + + function y(m, K, F, G, l) { + for (var H = m._chartList, I = H.length; I--;) { + var J = H[I]; + "function" == typeof J[K] && J[K](F, G, l) + } + } + var j = q("./config"), + z = q("zrender/tool/util"), + A = q("zrender/tool/event"), + B = {}, + w = q("zrender/tool/env").canvasSupported, + u = new Date - 0, + x = {}, + E = "_echarts_instance_"; + B.version = "2.2.7", B.dependencies = { + zrender: "2.1.1" + }, B.init = function(m, i) { + var e = q("zrender"); + e.version.replace(".", "") - 0 < B.dependencies.zrender.replace(".", "") - 0 && console.error("ZRender " + e.version + " is too old for ECharts " + B.version + ". Current version need ZRender " + B.dependencies.zrender + "+"), m = m instanceof Array ? m[0] : m; + var l = m.getAttribute(E); + return l || (l = u++, m.setAttribute(E, l)), x[l] && x[l].dispose(), x[l] = new v(m), x[l].id = l, x[l].canvasSupported = w, x[l].setTheme(i), x[l] + }, B.getInstanceById = function(a) { + return x[a] + }, z.merge(C.prototype, A.Dispatcher.prototype, !0); + var D = q("zrender/config").EVENT, + p = ["CLICK", "DBLCLICK", "MOUSEOVER", "MOUSEOUT", "DRAGSTART", "DRAGEND", "DRAGENTER", "DRAGOVER", "DRAGLEAVE", "DROP"]; + return v.prototype = { + _init: function() { + var M = this, + e = q("zrender").init(this.dom); + this._zr = e, this._messageCenter.dispatch = function(m, o, r, l) { + r = r || {}, r.type = m, r.event = o, M._messageCenter.dispatchWithContext(m, r, l), M._messageCenterOutSide.dispatchWithContext(m, r, l) + }, this._onevent = function(i) { + return M.__onevent(i) + }; + for (var H in j.EVENT) { + "CLICK" != H && "DBLCLICK" != H && "HOVER" != H && "MOUSEOUT" != H && "MAP_ROAM" != H && this._messageCenter.bind(j.EVENT[H], this._onevent, this) + } + var I = {}; + this._onzrevent = function(i) { + return M[I[i.type]](i) + }; + for (var K = 0, L = p.length; L > K; K++) { + var F = p[K], + a = D[F]; + I[a] = "_on" + F.toLowerCase(), e.on(a, this._onzrevent) + } + this.chart = {}, this.component = {}; + var G = q("./chart/island"); + this._island = new G(this._themeConfig, this._messageCenter, e, {}, this), this.chart.island = this._island; + var N = q("./component/toolbox"); + this._toolbox = new N(this._themeConfig, this._messageCenter, e, {}, this), this.component.toolbox = this._toolbox; + var J = q("./component"); + J.define("title", q("./component/title")), J.define("tooltip", q("./component/tooltip")), J.define("legend", q("./component/legend")), (0 === e.getWidth() || 0 === e.getHeight()) && console.error("Dom’s width & height should be ready before init.") + }, + __onevent: function(a) { + a.__echartsId = a.__echartsId || this.id; + var G = a.__echartsId === this.id; + switch (this._curEventType || (this._curEventType = a.type), a.type) { + case j.EVENT.LEGEND_SELECTED: + this._onlegendSelected(a); + break; + case j.EVENT.DATA_ZOOM: + if (!G) { + var l = this.component.dataZoom; + l && (l.silence(!0), l.absoluteZoom(a.zoom), l.silence(!1)) + } + this._ondataZoom(a); + break; + case j.EVENT.DATA_RANGE: + G && this._ondataRange(a); + break; + case j.EVENT.MAGIC_TYPE_CHANGED: + if (!G) { + var m = this.component.toolbox; + m && (m.silence(!0), m.setMagicType(a.magicType), m.silence(!1)) + } + this._onmagicTypeChanged(a); + break; + case j.EVENT.DATA_VIEW_CHANGED: + G && this._ondataViewChanged(a); + break; + case j.EVENT.TOOLTIP_HOVER: + G && this._tooltipHover(a); + break; + case j.EVENT.RESTORE: + this._onrestore(); + break; + case j.EVENT.REFRESH: + G && this._onrefresh(a); + break; + case j.EVENT.TOOLTIP_IN_GRID: + case j.EVENT.TOOLTIP_OUT_GRID: + if (G) { + if (this._connected) { + var s = this.component.grid; + s && (a.x = (a.event.zrenderX - s.getX()) / s.getWidth(), a.y = (a.event.zrenderY - s.getY()) / s.getHeight()) + } + } else { + var s = this.component.grid; + s && this._zr.trigger("mousemove", { + connectTrigger: !0, + zrenderX: s.getX() + a.x * s.getWidth(), + zrenderY: s.getY() + a.y * s.getHeight() + }) + } + } + if (this._connected && G && this._curEventType === a.type) { + for (var F in this._connected) { + this._connected[F].connectedEventHandler(a) + } + this._curEventType = null + }(!G || !this._connected && G) && (this._curEventType = null) + }, + _onclick: function(a) { + if (y(this, "onclick", a), a.target) { + var i = this._eventPackage(a.target); + i && null != i.seriesIndex && this._messageCenter.dispatch(j.EVENT.CLICK, a.event, i, this) + } + }, + _ondblclick: function(a) { + if (y(this, "ondblclick", a), a.target) { + var i = this._eventPackage(a.target); + i && null != i.seriesIndex && this._messageCenter.dispatch(j.EVENT.DBLCLICK, a.event, i, this) + } + }, + _onmouseover: function(a) { + if (a.target) { + var i = this._eventPackage(a.target); + i && null != i.seriesIndex && this._messageCenter.dispatch(j.EVENT.HOVER, a.event, i, this) + } + }, + _onmouseout: function(a) { + if (a.target) { + var i = this._eventPackage(a.target); + i && null != i.seriesIndex && this._messageCenter.dispatch(j.EVENT.MOUSEOUT, a.event, i, this) + } + }, + _ondragstart: function(a) { + this._status = { + dragIn: !1, + dragOut: !1, + needRefresh: !1 + }, y(this, "ondragstart", a) + }, + _ondragenter: function(a) { + y(this, "ondragenter", a) + }, + _ondragover: function(a) { + y(this, "ondragover", a) + }, + _ondragleave: function(a) { + y(this, "ondragleave", a) + }, + _ondrop: function(a) { + y(this, "ondrop", a, this._status), this._island.ondrop(a, this._status) + }, + _ondragend: function(a) { + if (y(this, "ondragend", a, this._status), this._timeline && this._timeline.ondragend(a, this._status), this._island.ondragend(a, this._status), this._status.needRefresh) { + this._syncBackupData(this._option); + var i = this._messageCenter; + i.dispatch(j.EVENT.DATA_CHANGED, a.event, this._eventPackage(a.target), this), i.dispatch(j.EVENT.REFRESH, null, null, this) + } + }, + _onlegendSelected: function(a) { + this._status.needRefresh = !1, y(this, "onlegendSelected", a, this._status), this._status.needRefresh && this._messageCenter.dispatch(j.EVENT.REFRESH, null, null, this) + }, + _ondataZoom: function(a) { + this._status.needRefresh = !1, y(this, "ondataZoom", a, this._status), this._status.needRefresh && this._messageCenter.dispatch(j.EVENT.REFRESH, null, null, this) + }, + _ondataRange: function(a) { + this._clearEffect(), this._status.needRefresh = !1, y(this, "ondataRange", a, this._status), this._status.needRefresh && this._zr.refreshNextFrame() + }, + _onmagicTypeChanged: function() { + this._clearEffect(), this._render(this._toolbox.getMagicOption()) + }, + _ondataViewChanged: function(a) { + this._syncBackupData(a.option), this._messageCenter.dispatch(j.EVENT.DATA_CHANGED, null, a, this), this._messageCenter.dispatch(j.EVENT.REFRESH, null, null, this) + }, + _tooltipHover: function(a) { + var i = []; + y(this, "ontooltipHover", a, i) + }, + _onrestore: function() { + this.restore() + }, + _onrefresh: function(a) { + this._refreshInside = !0, this.refresh(a), this._refreshInside = !1 + }, + _syncBackupData: function(a) { + this.component.dataZoom && this.component.dataZoom.syncBackupData(a) + }, + _eventPackage: function(o) { + if (o) { + var l = q("./util/ecData"), + m = l.get(o, "seriesIndex"), + e = l.get(o, "dataIndex"); + return e = -1 != m && this.component.dataZoom ? this.component.dataZoom.getRealDataIndex(m, e) : e, { + seriesIndex: m, + seriesName: (l.get(o, "series") || {}).name, + dataIndex: e, + data: l.get(o, "data"), + name: l.get(o, "name"), + value: l.get(o, "value"), + special: l.get(o, "special") + } + } + }, + _noDataCheck: function(a) { + for (var s = a.series, l = 0, m = s.length; m > l; l++) { + if (s[l].type == j.CHART_TYPE_MAP || s[l].data && s[l].data.length > 0 || s[l].markPoint && s[l].markPoint.data && s[l].markPoint.data.length > 0 || s[l].markLine && s[l].markLine.data && s[l].markLine.data.length > 0 || s[l].nodes && s[l].nodes.length > 0 || s[l].links && s[l].links.length > 0 || s[l].matrix && s[l].matrix.length > 0 || s[l].eventList && s[l].eventList.length > 0) { + return !1 + } + } + var r = this._option && this._option.noDataLoadingOption || this._themeConfig.noDataLoadingOption || j.noDataLoadingOption || { + text: this._option && this._option.noDataText || this._themeConfig.noDataText || j.noDataText, + effect: this._option && this._option.noDataEffect || this._themeConfig.noDataEffect || j.noDataEffect + }; + return this.clear(), this.showLoading(r), !0 + }, + _render: function(O) { + if (this._mergeGlobalConifg(O), !this._noDataCheck(O)) { + var H = O.backgroundColor; + if (H) { + if (w || -1 == H.indexOf("rgba")) { + this.dom.style.backgroundColor = H + } else { + var J = H.split(","); + this.dom.style.filter = "alpha(opacity=" + 100 * J[3].substring(0, J[3].lastIndexOf(")")) + ")", J.length = 3, J[0] = J[0].replace("a", ""), this.dom.style.backgroundColor = J.join(",") + ")" + } + } + this._zr.clearAnimation(), this._chartList = []; + var K = q("./chart"), + M = q("./component"); + (O.xAxis || O.yAxis) && (O.grid = O.grid || {}, O.dataZoom = O.dataZoom || {}); + for (var N, G, I, R = ["title", "legend", "tooltip", "dataRange", "roamController", "grid", "dataZoom", "xAxis", "yAxis", "polar"], Q = 0, l = R.length; l > Q; Q++) { + G = R[Q], I = this.component[G], O[G] ? (I ? I.refresh && I.refresh(O) : (N = M.get(/^[xy]Axis$/.test(G) ? "axis" : G), I = new N(this._themeConfig, this._messageCenter, this._zr, O, this, G), this.component[G] = I), this._chartList.push(I)) : I && (I.dispose(), this.component[G] = null, delete this.component[G]) + } + for (var L, e, P, S = {}, Q = 0, l = O.series.length; l > Q; Q++) { + e = O.series[Q].type, e ? S[e] || (S[e] = !0, L = K.get(e), L ? (this.chart[e] ? (P = this.chart[e], P.refresh(O)) : P = new L(this._themeConfig, this._messageCenter, this._zr, O, this), this._chartList.push(P), this.chart[e] = P) : console.error(e + " has not been required.")) : console.error("series[" + Q + "] chart type has not been defined.") + } + for (e in this.chart) { + e == j.CHART_TYPE_ISLAND || S[e] || (this.chart[e].dispose(), this.chart[e] = null, delete this.chart[e]) + } + this.component.grid && this.component.grid.refixAxisShape(this.component), this._island.refresh(O), this._toolbox.refresh(O), O.animation && !O.renderAsImage ? this._zr.refresh() : this._zr.render(); + var F = "IMG" + this.id, + a = document.getElementById(F); + O.renderAsImage && w ? (a ? a.src = this.getDataURL(O.renderAsImage) : (a = this.getImage(O.renderAsImage), a.id = F, a.style.position = "absolute", a.style.left = 0, a.style.top = 0, this.dom.firstChild.appendChild(a)), this.un(), this._zr.un(), this._disposeChartList(), this._zr.clear()) : a && a.parentNode.removeChild(a), a = null, this._option = O + } + }, + restore: function() { + this._clearEffect(), this._option = z.clone(this._optionRestore), this._disposeChartList(), this._island.clear(), this._toolbox.reset(this._option, !0), this._render(this._option) + }, + refresh: function(a) { + this._clearEffect(), a = a || {}; + var o = a.option; + !this._refreshInside && o && (o = this.getOption(), z.merge(o, a.option, !0), z.merge(this._optionRestore, a.option, !0), this._toolbox.reset(o)), this._island.refresh(o), this._toolbox.refresh(o), this._zr.clearAnimation(); + for (var l = 0, m = this._chartList.length; m > l; l++) { + this._chartList[l].refresh && this._chartList[l].refresh(o) + } + this.component.grid && this.component.grid.refixAxisShape(this.component), this._zr.refresh() + }, + _disposeChartList: function() { + this._clearEffect(), this._zr.clearAnimation(); + for (var a = this._chartList.length; a--;) { + var m = this._chartList[a]; + if (m) { + var l = m.type; + this.chart[l] && delete this.chart[l], this.component[l] && delete this.component[l], m.dispose && m.dispose() + } + } + this._chartList = [] + }, + _mergeGlobalConifg: function(s) { + for (var a = ["backgroundColor", "calculable", "calculableColor", "calculableHolderColor", "nameConnector", "valueConnector", "animation", "animationThreshold", "animationDuration", "animationDurationUpdate", "animationEasing", "addDataAnimation", "symbolList", "DRAG_ENABLE_TIME"], e = a.length; e--;) { + var l = a[e]; + null == s[l] && (s[l] = null != this._themeConfig[l] ? this._themeConfig[l] : j[l]) + } + var m = s.color; + m && m.length || (m = this._themeConfig.color || j.color), this._zr.getColor = function(o) { + var n = q("zrender/tool/color"); + return n.getColor(o, m) + }, w || (s.animation = !1, s.addDataAnimation = !1) + }, + setOption: function(a, i) { + return a.timeline ? this._setTimelineOption(a) : this._setOption(a, i) + }, + _setOption: function(a, m, l) { + return !m && this._option ? this._option = z.merge(this.getOption(), z.clone(a), !0) : (this._option = z.clone(a), !l && this._timeline && this._timeline.dispose()), this._optionRestore = z.clone(this._option), this._option.series && 0 !== this._option.series.length ? (this.component.dataZoom && (this._option.dataZoom || this._option.toolbox && this._option.toolbox.feature && this._option.toolbox.feature.dataZoom && this._option.toolbox.feature.dataZoom.show) && this.component.dataZoom.syncOption(this._option), this._toolbox.reset(this._option), this._render(this._option), this) : void this._zr.clear() + }, + getOption: function() { + function a(o) { + var r = l._optionRestore[o]; + if (r) { + if (r instanceof Array) { + for (var i = r.length; i--;) { + m[o][i].data = z.clone(r[i].data) + } + } else { + m[o].data = z.clone(r.data) + } + } + } + var m = z.clone(this._option), + l = this; + return a("xAxis"), a("yAxis"), a("series"), m + }, + setSeries: function(a, i) { + return i ? (this._option.series = a, this.setOption(this._option, i)) : this.setOption({ + series: a + }), this + }, + getSeries: function() { + return this.getOption().series + }, + _setTimelineOption: function(l) { + this._timeline && this._timeline.dispose(); + var a = q("./component/timeline"), + e = new a(this._themeConfig, this._messageCenter, this._zr, l, this); + return this._timeline = e, this.component.timeline = this._timeline, this + }, + addData: function(H, Z, M, R, T) { + function Y() { + if (ad._zr) { + ad._zr.clearAnimation(); + for (var i = 0, l = ah.length; l > i; i++) { + ah[i].motionlessOnce = K.addDataAnimation && ah[i].addDataAnimation + } + ad._messageCenter.dispatch(j.EVENT.REFRESH, null, { + option: K + }, ad) + } + } + for (var O = H instanceof Array ? H : [ + [H, Z, M, R, T] + ], K = this.getOption(), Q = this._optionRestore, ad = this, ab = 0, G = O.length; G > ab; ab++) { + H = O[ab][0], Z = O[ab][1], M = O[ab][2], R = O[ab][3], T = O[ab][4]; + var S = Q.series[H], + F = M ? "unshift" : "push", + aa = M ? "pop" : "shift"; + if (S) { + var ai = S.data, + J = K.series[H].data; + if (ai[F](Z), J[F](Z), R || (ai[aa](), Z = J[aa]()), null != T) { + var o, I; + if (S.type === j.CHART_TYPE_PIE && (o = Q.legend) && (I = o.data)) { + var N = K.legend.data; + if (I[F](T), N[F](T), !R) { + var ag = z.indexOf(I, Z.name); - 1 != ag && I.splice(ag, 1), ag = z.indexOf(N, Z.name), -1 != ag && N.splice(ag, 1) + } + } else { + if (null != Q.xAxis && null != Q.yAxis) { + var a, P, af = S.xAxisIndex || 0; + (null == Q.xAxis[af].type || "category" === Q.xAxis[af].type) && (a = Q.xAxis[af].data, P = K.xAxis[af].data, a[F](T), P[F](T), R || (a[aa](), P[aa]())), af = S.yAxisIndex || 0, "category" === Q.yAxis[af].type && (a = Q.yAxis[af].data, P = K.yAxis[af].data, a[F](T), P[F](T), R || (a[aa](), P[aa]())) + } + } + } + this._option.series[H].data = K.series[H].data + } + } + this._zr.clearAnimation(); + for (var ah = this._chartList, ac = 0, ae = function() { + ac--, 0 === ac && Y() + }, ab = 0, G = ah.length; G > ab; ab++) { + K.addDataAnimation && ah[ab].addDataAnimation && (ac++, ah[ab].addDataAnimation(O, ae)) + } + return this.component.dataZoom && this.component.dataZoom.syncOption(K), this._option = K, K.addDataAnimation || setTimeout(Y, 0), this + }, + addMarkPoint: function(a, i) { + return this._addMark(a, i, "markPoint") + }, + addMarkLine: function(a, i) { + return this._addMark(a, i, "markLine") + }, + _addMark: function(F, N, H) { + var K, o = this._option.series; + if (o && (K = o[F])) { + var L = this._optionRestore.series, + M = L[F], + I = K[H], + G = M[H]; + I = K[H] = I || { + data: [] + }, G = M[H] = G || { + data: [] + }; + for (var J in N) { + "data" === J ? (I.data = I.data.concat(N.data), G.data = G.data.concat(N.data)) : "object" != typeof N[J] || null == I[J] ? I[J] = G[J] = N[J] : (z.merge(I[J], N[J], !0), z.merge(G[J], N[J], !0)) + } + var O = this.chart[K.type]; + O && O.addMark(F, N, H) + } + return this + }, + delMarkPoint: function(a, i) { + return this._delMark(a, i, "markPoint") + }, + delMarkLine: function(a, i) { + return this._delMark(a, i, "markLine") + }, + _delMark: function(G, P, I) { + var L, F, M, N = this._option.series; + if (!(N && (L = N[G]) && (F = L[I]) && (M = F.data))) { + return this + } + P = P.split(" > "); + for (var O = -1, J = 0, H = M.length; H > J; J++) { + var K = M[J]; + if (K instanceof Array) { + if (K[0].name === P[0] && K[1].name === P[1]) { + O = J; + break + } + } else { + if (K.name === P[0]) { + O = J; + break + } + } + } + if (O > -1) { + M.splice(O, 1), this._optionRestore.series[G][I].data.splice(O, 1); + var Q = this.chart[L.type]; + Q && Q.delMark(G, P.join(" > "), I) + } + return this + }, + getDom: function() { + return this.dom + }, + getZrender: function() { + return this._zr + }, + getDataURL: function(m) { + if (!w) { + return "" + } + if (0 === this._chartList.length) { + var s = "IMG" + this.id, + o = document.getElementById(s); + if (o) { + return o.src + } + } + var r = this.component.tooltip; + switch (r && r.hideTip(), m) { + case "jpeg": + break; + default: + m = "png" + } + var l = this._option.backgroundColor; + return l && "rgba(0,0,0,0)" === l.replace(" ", "") && (l = "#fff"), this._zr.toDataURL("image/" + m, l) + }, + getImage: function(a) { + var m = this._optionRestore.title, + l = document.createElement("img"); + return l.src = this.getDataURL(a), l.title = m && m.text || "ECharts", l + }, + getConnectedDataURL: function(O) { + if (!this.isConnected()) { + return this.getDataURL(O) + } + var H = this.dom, + K = { + self: { + img: this.getDataURL(O), + left: H.offsetLeft, + top: H.offsetTop, + right: H.offsetLeft + H.offsetWidth, + bottom: H.offsetTop + H.offsetHeight + } + }, + e = K.self.left, + L = K.self.top, + M = K.self.right, + N = K.self.bottom; + for (var I in this._connected) { + H = this._connected[I].getDom(), K[I] = { + img: this._connected[I].getDataURL(O), + left: H.offsetLeft, + top: H.offsetTop, + right: H.offsetLeft + H.offsetWidth, + bottom: H.offsetTop + H.offsetHeight + }, e = Math.min(e, K[I].left), L = Math.min(L, K[I].top), M = Math.max(M, K[I].right), N = Math.max(N, K[I].bottom) + } + var G = document.createElement("div"); + G.style.position = "absolute", G.style.left = "-4000px", G.style.width = M - e + "px", G.style.height = N - L + "px", document.body.appendChild(G); + var J = q("zrender").init(G), + Q = q("zrender/shape/Image"); + for (var I in K) { + J.addShape(new Q({ + style: { + x: K[I].left - e, + y: K[I].top - L, + image: K[I].img + } + })) + } + J.render(); + var P = this._option.backgroundColor; + P && "rgba(0,0,0,0)" === P.replace(/ /g, "") && (P = "#fff"); + var F = J.toDataURL("image/png", P); + return setTimeout(function() { + J.dispose(), G.parentNode.removeChild(G), G = null + }, 100), F + }, + getConnectedImage: function(a) { + var m = this._optionRestore.title, + l = document.createElement("img"); + return l.src = this.getConnectedDataURL(a), l.title = m && m.text || "ECharts", l + }, + on: function(a, i) { + return this._messageCenterOutSide.bind(a, i, this), this + }, + un: function(a, i) { + return this._messageCenterOutSide.unbind(a, i), this + }, + connect: function(a) { + if (!a) { + return this + } + if (this._connected || (this._connected = {}), a instanceof Array) { + for (var m = 0, l = a.length; l > m; m++) { + this._connected[a[m].id] = a[m] + } + } else { + this._connected[a.id] = a + } + return this + }, + disConnect: function(a) { + if (!a || !this._connected) { + return this + } + if (a instanceof Array) { + for (var o = 0, l = a.length; l > o; o++) { + delete this._connected[a[o].id] + } + } else { + delete this._connected[a.id] + } + for (var m in this._connected) { + return this + } + return this._connected = !1, this + }, + connectedEventHandler: function(a) { + a.__echartsId != this.id && this._onevent(a) + }, + isConnected: function() { + return !!this._connected + }, + showLoading: function(o) { + var a = { + bar: q("zrender/loadingEffect/Bar"), + bubble: q("zrender/loadingEffect/Bubble"), + dynamicLine: q("zrender/loadingEffect/DynamicLine"), + ring: q("zrender/loadingEffect/Ring"), + spin: q("zrender/loadingEffect/Spin"), + whirling: q("zrender/loadingEffect/Whirling") + }; + this._toolbox.hideDataView(), o = o || {}; + var e = o.textStyle || {}; + o.textStyle = e; + var l = z.merge(z.merge(z.clone(e), this._themeConfig.textStyle), j.textStyle); + e.textFont = l.fontStyle + " " + l.fontWeight + " " + l.fontSize + "px " + l.fontFamily, e.text = o.text || this._option && this._option.loadingText || this._themeConfig.loadingText || j.loadingText, null != o.x && (e.x = o.x), null != o.y && (e.y = o.y), o.effectOption = o.effectOption || {}, o.effectOption.textStyle = e; + var m = o.effect; + return ("string" == typeof m || null == m) && (m = a[o.effect || this._option && this._option.loadingEffect || this._themeConfig.loadingEffect || j.loadingEffect] || a.spin), this._zr.showLoading(new m(o.effectOption)), this + }, + hideLoading: function() { + return this._zr.hideLoading(), this + }, + setTheme: function(e) { + if (e) { + if ("string" == typeof e) { + switch (e) { + case "macarons": + e = q("./theme/macarons"); + break; + case "infographic": + e = q("./theme/infographic"); + break; + default: + e = {} + } + } else { + e = e || {} + } + this._themeConfig = e + } + if (!w) { + var a = this._themeConfig.textStyle; + a && a.fontFamily && a.fontFamily2 && (a.fontFamily = a.fontFamily2), a = j.textStyle, a.fontFamily = a.fontFamily2 + } + this._timeline && this._timeline.setTheme(!0), this._optionRestore && this.restore() + }, + resize: function() { + var a = this; + return function() { + if (a._clearEffect(), a._zr.resize(), a._option && a._option.renderAsImage && w) { + return a._render(a._option), a + } + a._zr.clearAnimation(), a._island.resize(), a._toolbox.resize(), a._timeline && a._timeline.resize(); + for (var l = 0, e = a._chartList.length; e > l; l++) { + a._chartList[l].resize && a._chartList[l].resize() + } + return a.component.grid && a.component.grid.refixAxisShape(a.component), a._zr.refresh(), a._messageCenter.dispatch(j.EVENT.RESIZE, null, null, a), a + } + }, + _clearEffect: function() { + this._zr.modLayer(j.EFFECT_ZLEVEL, { + motionBlur: !1 + }), this._zr.painter.clearLayer(j.EFFECT_ZLEVEL) + }, + clear: function() { + return this._disposeChartList(), this._zr.clear(), this._option = {}, this._optionRestore = {}, this.dom.style.backgroundColor = null, this + }, + dispose: function() { + var a = this.dom.getAttribute(E); + a && delete x[a], this._island.dispose(), this._toolbox.dispose(), this._timeline && this._timeline.dispose(), this._messageCenter.unbind(), this.clear(), this._zr.dispose(), this._zr = null + } + }, B + }), d("echarts/config", [], function() { + var a = { + CHART_TYPE_LINE: "line", + CHART_TYPE_BAR: "bar", + CHART_TYPE_SCATTER: "scatter", + CHART_TYPE_PIE: "pie", + CHART_TYPE_RADAR: "radar", + CHART_TYPE_VENN: "venn", + CHART_TYPE_TREEMAP: "treemap", + CHART_TYPE_TREE: "tree", + CHART_TYPE_MAP: "map", + CHART_TYPE_K: "k", + CHART_TYPE_ISLAND: "island", + CHART_TYPE_FORCE: "force", + CHART_TYPE_CHORD: "chord", + CHART_TYPE_GAUGE: "gauge", + CHART_TYPE_FUNNEL: "funnel", + CHART_TYPE_EVENTRIVER: "eventRiver", + CHART_TYPE_WORDCLOUD: "wordCloud", + CHART_TYPE_HEATMAP: "heatmap", + COMPONENT_TYPE_TITLE: "title", + COMPONENT_TYPE_LEGEND: "legend", + COMPONENT_TYPE_DATARANGE: "dataRange", + COMPONENT_TYPE_DATAVIEW: "dataView", + COMPONENT_TYPE_DATAZOOM: "dataZoom", + COMPONENT_TYPE_TOOLBOX: "toolbox", + COMPONENT_TYPE_TOOLTIP: "tooltip", + COMPONENT_TYPE_GRID: "grid", + COMPONENT_TYPE_AXIS: "axis", + COMPONENT_TYPE_POLAR: "polar", + COMPONENT_TYPE_X_AXIS: "xAxis", + COMPONENT_TYPE_Y_AXIS: "yAxis", + COMPONENT_TYPE_AXIS_CATEGORY: "categoryAxis", + COMPONENT_TYPE_AXIS_VALUE: "valueAxis", + COMPONENT_TYPE_TIMELINE: "timeline", + COMPONENT_TYPE_ROAMCONTROLLER: "roamController", + backgroundColor: "rgba(0,0,0,0)", + color: ["#ff7f50", "#87cefa", "#da70d6", "#32cd32", "#6495ed", "#ff69b4", "#ba55d3", "#cd5c5c", "#ffa500", "#40e0d0", "#1e90ff", "#ff6347", "#7b68ee", "#00fa9a", "#ffd700", "#6699FF", "#ff6666", "#3cb371", "#b8860b", "#30e0e0"], + markPoint: { + clickable: !0, + symbol: "pin", + symbolSize: 10, + large: !1, + effect: { + show: !1, + loop: !0, + period: 15, + type: "scale", + scaleSize: 2, + bounceDistance: 10 + }, + itemStyle: { + normal: { + borderWidth: 2, + label: { + show: !0, + position: "inside" + } + }, + emphasis: { + label: { + show: !0 + } + } + } + }, + markLine: { + clickable: !0, + symbol: ["circle", "arrow"], + symbolSize: [2, 4], + smoothness: 0.2, + precision: 2, + effect: { + show: !1, + loop: !0, + period: 15, + scaleSize: 2 + }, + bundling: { + enable: !1, + maxTurningAngle: 45 + }, + itemStyle: { + normal: { + borderWidth: 1.5, + label: { + show: !0, + position: "end" + }, + lineStyle: { + type: "dashed" + } + }, + emphasis: { + label: { + show: !1 + }, + lineStyle: {} + } + } + }, + textStyle: { + decoration: "none", + fontFamily: "Arial, Verdana, sans-serif", + fontFamily2: "微软雅黑", + fontSize: 12, + fontStyle: "normal", + fontWeight: "normal" + }, + EVENT: { + REFRESH: "refresh", + RESTORE: "restore", + RESIZE: "resize", + CLICK: "click", + DBLCLICK: "dblclick", + HOVER: "hover", + MOUSEOUT: "mouseout", + DATA_CHANGED: "dataChanged", + DATA_ZOOM: "dataZoom", + DATA_RANGE: "dataRange", + DATA_RANGE_SELECTED: "dataRangeSelected", + DATA_RANGE_HOVERLINK: "dataRangeHoverLink", + LEGEND_SELECTED: "legendSelected", + LEGEND_HOVERLINK: "legendHoverLink", + MAP_SELECTED: "mapSelected", + PIE_SELECTED: "pieSelected", + MAGIC_TYPE_CHANGED: "magicTypeChanged", + DATA_VIEW_CHANGED: "dataViewChanged", + TIMELINE_CHANGED: "timelineChanged", + MAP_ROAM: "mapRoam", + FORCE_LAYOUT_END: "forceLayoutEnd", + TOOLTIP_HOVER: "tooltipHover", + TOOLTIP_IN_GRID: "tooltipInGrid", + TOOLTIP_OUT_GRID: "tooltipOutGrid", + ROAMCONTROLLER: "roamController" + }, + DRAG_ENABLE_TIME: 120, + EFFECT_ZLEVEL: 10, + effectBlendAlpha: 0.95, + symbolList: ["circle", "rectangle", "triangle", "diamond", "emptyCircle", "emptyRectangle", "emptyTriangle", "emptyDiamond"], + loadingEffect: "spin", + loadingText: "数据读取中...", + noDataEffect: "bubble", + noDataText: "暂无数据", + calculable: !1, + calculableColor: "rgba(255,165,0,0.6)", + calculableHolderColor: "#ccc", + nameConnector: " & ", + valueConnector: ": ", + animation: !0, + addDataAnimation: !0, + animationThreshold: 2000, + animationDuration: 2000, + animationDurationUpdate: 500, + animationEasing: "ExponentialOut" + }; + return a + }), d("zrender/tool/util", ["require", "../dep/excanvas"], function(w) { + function I(a) { + return a && 1 === a.nodeType && "string" == typeof a.nodeName + } + + function A(l) { + if ("object" == typeof l && null !== l) { + var m = l; + if (l instanceof Array) { + m = []; + for (var i = 0, p = l.length; p > i; i++) { + m[i] = A(l[i]) + } + } else { + if (!M[x.call(l)] && !I(l)) { + m = {}; + for (var s in l) { + l.hasOwnProperty(s) && (m[s] = A(l[s])) + } + } + } + return m + } + return l + } + + function D(a, l, m, p) { + if (l.hasOwnProperty(m)) { + var s = a[m]; + "object" != typeof s || M[x.call(s)] || I(s) ? !p && m in a || (a[m] = l[m]) : j(a[m], l[m], p) + } + } + + function j(m, o, n) { + for (var l in o) { + D(m, o, l, n) + } + return m + } + + function E() { + if (!K) { + if (w("../dep/excanvas"), window.G_vmlCanvasManager) { + var a = document.createElement("div"); + a.style.position = "absolute", a.style.top = "-1000px", document.body.appendChild(a), K = G_vmlCanvasManager.initElement(a).getContext("2d") + } else { + K = document.createElement("canvas").getContext("2d") + } + } + return K + } + + function G(a, o) { + if (a.indexOf) { + return a.indexOf(o) + } + for (var l = 0, m = a.length; m > l; l++) { + if (a[l] === o) { + return l + } + } + return -1 + } + + function H(m, r) { + function o() {} + var p = m.prototype; + o.prototype = r.prototype, m.prototype = new o; + for (var l in p) { + m.prototype[l] = p[l] + } + m.constructor = m + } + + function B(m, u, p) { + if (m && u) { + if (m.forEach && m.forEach === F) { + m.forEach(u, p) + } else { + if (m.length === +m.length) { + for (var r = 0, l = m.length; l > r; r++) { + u.call(p, m[r], r, m) + } + } else { + for (var s in m) { + m.hasOwnProperty(s) && u.call(p, m[s], s, m) + } + } + } + } + } + + function z(m, u, p) { + if (m && u) { + if (m.map && m.map === q) { + return m.map(u, p) + } + for (var r = [], l = 0, s = m.length; s > l; l++) { + r.push(u.call(p, m[l], l, m)) + } + return r + } + } + + function C(m, u, p) { + if (m && u) { + if (m.filter && m.filter === J) { + return m.filter(u, p) + } + for (var r = [], l = 0, s = m.length; s > l; l++) { + u.call(p, m[l], l, m) && r.push(m[l]) + } + return r + } + } + + function L(a, i) { + return function() { + a.apply(i, arguments) + } + } + var K, v = Array.prototype, + F = v.forEach, + q = v.map, + J = v.filter, + M = { + "[object Function]": 1, + "[object RegExp]": 1, + "[object Date]": 1, + "[object Error]": 1, + "[object CanvasGradient]": 1 + }, + x = Object.prototype.toString; + return { + inherits: H, + clone: A, + merge: j, + getContext: E, + indexOf: G, + each: B, + map: z, + filter: C, + bind: L + } + }), d("zrender/tool/event", ["require", "../mixin/Eventful"], function(l) { + function r(a) { + return "undefined" != typeof a.zrenderX && a.zrenderX || "undefined" != typeof a.offsetX && a.offsetX || "undefined" != typeof a.layerX && a.layerX || "undefined" != typeof a.clientX && a.clientX + } + + function m(a) { + return "undefined" != typeof a.zrenderY && a.zrenderY || "undefined" != typeof a.offsetY && a.offsetY || "undefined" != typeof a.layerY && a.layerY || "undefined" != typeof a.clientY && a.clientY + } + + function p(a) { + return "undefined" != typeof a.zrenderDelta && a.zrenderDelta || "undefined" != typeof a.wheelDelta && a.wheelDelta || "undefined" != typeof a.detail && -a.detail + } + var j = l("../mixin/Eventful"), + q = "function" == typeof window.addEventListener ? function(a) { + a.preventDefault(), a.stopPropagation(), a.cancelBubble = !0 + } : function(a) { + a.returnValue = !1, a.cancelBubble = !0 + }; + return { + getX: r, + getY: m, + getDelta: p, + stop: q, + Dispatcher: j + } + }), d("zrender/tool/env", [], function() { + function a(x) { + var K = this.os = {}, + C = this.browser = {}, + F = x.match(/Web[kK]it[\/]{0,1}([\d.]+)/), + j = x.match(/(Android);?[\s\/]+([\d.]+)?/), + G = x.match(/(iPad).*OS\s([\d_]+)/), + I = x.match(/(iPod)(.*OS\s([\d_]+))?/), + J = !G && x.match(/(iPhone\sOS)\s([\d_]+)/), + D = x.match(/(webOS|hpwOS)[\s\/]([\d.]+)/), + B = D && x.match(/TouchPad/), + E = x.match(/Kindle\/([\d.]+)/), + N = x.match(/Silk\/([\d._]+)/), + M = x.match(/(BlackBerry).*Version\/([\d.]+)/), + w = x.match(/(BB10).*Version\/([\d.]+)/), + H = x.match(/(RIM\sTablet\sOS)\s([\d.]+)/), + v = x.match(/PlayBook/), + L = x.match(/Chrome\/([\d.]+)/) || x.match(/CriOS\/([\d.]+)/), + O = x.match(/Firefox\/([\d.]+)/), + A = x.match(/MSIE ([\d.]+)/), + q = F && x.match(/Mobile\//) && !L, + z = x.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !L, + A = x.match(/MSIE\s([\d.]+)/); + return (C.webkit = !!F) && (C.version = F[1]), j && (K.android = !0, K.version = j[2]), J && !I && (K.ios = K.iphone = !0, K.version = J[2].replace(/_/g, ".")), G && (K.ios = K.ipad = !0, K.version = G[2].replace(/_/g, ".")), I && (K.ios = K.ipod = !0, K.version = I[3] ? I[3].replace(/_/g, ".") : null), D && (K.webos = !0, K.version = D[2]), B && (K.touchpad = !0), M && (K.blackberry = !0, K.version = M[2]), w && (K.bb10 = !0, K.version = w[2]), H && (K.rimtabletos = !0, K.version = H[2]), v && (C.playbook = !0), E && (K.kindle = !0, K.version = E[1]), N && (C.silk = !0, C.version = N[1]), !N && K.android && x.match(/Kindle Fire/) && (C.silk = !0), L && (C.chrome = !0, C.version = L[1]), O && (C.firefox = !0, C.version = O[1]), A && (C.ie = !0, C.version = A[1]), q && (x.match(/Safari/) || K.ios) && (C.safari = !0), z && (C.webview = !0), A && (C.ie = !0, C.version = A[1]), K.tablet = !!(G || v || j && !x.match(/Mobile/) || O && x.match(/Tablet/) || A && !x.match(/Phone/) && x.match(/Touch/)), K.phone = !(K.tablet || K.ipod || !(j || J || D || M || w || L && x.match(/Android/) || L && x.match(/CriOS\/([\d.]+)/) || O && x.match(/Mobile/) || A && x.match(/Touch/))), { + browser: C, + os: K, + canvasSupported: document.createElement("canvas").getContext ? !0 : !1 + } + } + return a(navigator.userAgent) + }), d("zrender", ["zrender/zrender"], function(a) { + return a + }), d("zrender/zrender", ["require", "./dep/excanvas", "./tool/util", "./tool/log", "./tool/guid", "./Handler", "./Painter", "./Storage", "./animation/Animation", "./tool/env"], function(p) { + function B(a) { + return function() { + a._needsRefreshNextFrame && a.refresh() + } + } + p("./dep/excanvas"); + var u = p("./tool/util"), + x = p("./tool/log"), + j = p("./tool/guid"), + y = p("./Handler"), + z = p("./Painter"), + A = p("./Storage"), + v = p("./animation/Animation"), + q = {}, + w = {}; + w.version = "2.1.1", w.init = function(a) { + var i = new C(j(), a); + return q[i.id] = i, i + }, w.dispose = function(a) { + if (a) { + a.dispose() + } else { + for (var i in q) { + q[i].dispose() + } + q = {} + } + return w + }, w.getInstance = function(a) { + return q[a] + }, w.delInstance = function(a) { + return delete q[a], w + }; + var C = function(o, s) { + this.id = o, this.env = p("./tool/env"), this.storage = new A, this.painter = new z(s, this.storage), this.handler = new y(s, this.storage, this.painter), this.animation = new v({ + stage: { + update: B(this) + } + }), this.animation.start(); + var e = this; + this.painter.refreshNextFrame = function() { + e.refreshNextFrame() + }, this._needsRefreshNextFrame = !1; + var e = this, + l = this.storage, + r = l.delFromMap; + l.delFromMap = function(a) { + var i = l.get(a); + e.stopAnimation(i), r.call(l, a) + } + }; + return C.prototype.getId = function() { + return this.id + }, C.prototype.addShape = function(a) { + return this.addElement(a), this + }, C.prototype.addGroup = function(a) { + return this.addElement(a), this + }, C.prototype.delShape = function(a) { + return this.delElement(a), this + }, C.prototype.delGroup = function(a) { + return this.delElement(a), this + }, C.prototype.modShape = function(a, i) { + return this.modElement(a, i), this + }, C.prototype.modGroup = function(a, i) { + return this.modElement(a, i), this + }, C.prototype.addElement = function(a) { + return this.storage.addRoot(a), this._needsRefreshNextFrame = !0, this + }, C.prototype.delElement = function(a) { + return this.storage.delRoot(a), this._needsRefreshNextFrame = !0, this + }, C.prototype.modElement = function(a, i) { + return this.storage.mod(a, i), this._needsRefreshNextFrame = !0, this + }, C.prototype.modLayer = function(a, i) { + return this.painter.modLayer(a, i), this._needsRefreshNextFrame = !0, this + }, C.prototype.addHoverShape = function(a) { + return this.storage.addHover(a), this + }, C.prototype.render = function(a) { + return this.painter.render(a), this._needsRefreshNextFrame = !1, this + }, C.prototype.refresh = function(a) { + return this.painter.refresh(a), this._needsRefreshNextFrame = !1, this + }, C.prototype.refreshNextFrame = function() { + return this._needsRefreshNextFrame = !0, this + }, C.prototype.refreshHover = function(a) { + return this.painter.refreshHover(a), this + }, C.prototype.refreshShapes = function(a, i) { + return this.painter.refreshShapes(a, i), this + }, C.prototype.resize = function() { + return this.painter.resize(), this + }, C.prototype.animate = function(n, J, i) { + var G = this; + if ("string" == typeof n && (n = this.storage.get(n)), n) { + var H; + if (J) { + for (var I = J.split("."), E = n, D = 0, F = I.length; F > D; D++) { + E && (E = E[I[D]]) + } + E && (H = E) + } else { + H = n + } + if (!H) { + return void x('Property "' + J + '" is not existed in element ' + n.id) + } + null == n.__animators && (n.__animators = []); + var L = n.__animators, + K = this.animation.animate(H, { + loop: i + }).during(function() { + G.modShape(n) + }).done(function() { + var a = u.indexOf(n.__animators, K); + a >= 0 && L.splice(a, 1) + }); + return L.push(K), K + } + x("Element not existed") + }, C.prototype.stopAnimation = function(a) { + if (a.__animators) { + for (var o = a.__animators, l = o.length, m = 0; l > m; m++) { + o[m].stop() + } + o.length = 0 + } + return this + }, C.prototype.clearAnimation = function() { + return this.animation.clear(), this + }, C.prototype.showLoading = function(a) { + return this.painter.showLoading(a), this + }, C.prototype.hideLoading = function() { + return this.painter.hideLoading(), this + }, C.prototype.getWidth = function() { + return this.painter.getWidth() + }, C.prototype.getHeight = function() { + return this.painter.getHeight() + }, C.prototype.toDataURL = function(a, m, l) { + return this.painter.toDataURL(a, m, l) + }, C.prototype.shapeToImage = function(a, o, l) { + var m = j(); + return this.painter.shapeToImage(m, a, o, l) + }, C.prototype.on = function(a, m, l) { + return this.handler.on(a, m, l), this + }, C.prototype.un = function(a, i) { + return this.handler.un(a, i), this + }, C.prototype.trigger = function(a, i) { + return this.handler.trigger(a, i), this + }, C.prototype.clear = function() { + return this.storage.delRoot(), this.painter.clear(), this + }, C.prototype.dispose = function() { + this.animation.stop(), this.clear(), this.storage.dispose(), this.painter.dispose(), this.handler.dispose(), this.animation = this.storage = this.painter = this.handler = null, w.delInstance(this.id) + }, w + }), d("zrender/config", [], function() { + var a = { + EVENT: { + RESIZE: "resize", + CLICK: "click", + DBLCLICK: "dblclick", + MOUSEWHEEL: "mousewheel", + MOUSEMOVE: "mousemove", + MOUSEOVER: "mouseover", + MOUSEOUT: "mouseout", + MOUSEDOWN: "mousedown", + MOUSEUP: "mouseup", + GLOBALOUT: "globalout", + DRAGSTART: "dragstart", + DRAGEND: "dragend", + DRAGENTER: "dragenter", + DRAGOVER: "dragover", + DRAGLEAVE: "dragleave", + DROP: "drop", + touchClickDelay: 300 + }, + elementClassName: "zr-element", + catchBrushException: !1, + debugMode: 0, + devicePixelRatio: Math.max(window.devicePixelRatio || 1, 1) + }; + return a + }), d("echarts/chart/island", ["require", "./base", "zrender/shape/Circle", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/event", "zrender/tool/color", "../util/accMath", "../chart"], function(l) { + function w(o, z, x, i, y) { + m.call(this, o, z, x, i, y), this._nameConnector, this._valueConnector, this._zrHeight = this.zr.getHeight(), this._zrWidth = this.zr.getWidth(); + var s = this; + s.shapeHandler.onmousewheel = function(B) { + var G = B.target, + D = B.event, + E = v.getDelta(D); + E = E > 0 ? -1 : 1, G.style.r -= E, G.style.r = G.style.r < 5 ? 5 : G.style.r; + var A = q.get(G, "value"), + F = A * s.option.island.calculateStep; + A = F > 1 ? Math.round(A - F * E) : +(A - F * E).toFixed(2); + var C = q.get(G, "name"); + G.style.text = C + ":" + A, q.set(G, "value", A), q.set(G, "name", C), s.zr.modShape(G.id), s.zr.refreshNextFrame(), v.stop(D) + } + } + var m = l("./base"), + p = l("zrender/shape/Circle"), + j = l("../config"); + j.island = { + zlevel: 0, + z: 5, + r: 15, + calculateStep: 0.1 + }; + var q = l("../util/ecData"), + u = l("zrender/tool/util"), + v = l("zrender/tool/event"); + return w.prototype = { + type: j.CHART_TYPE_ISLAND, + _combine: function(A, o) { + var x = l("zrender/tool/color"), + e = l("../util/accMath"), + y = e.accAdd(q.get(A, "value"), q.get(o, "value")), + z = q.get(A, "name") + this._nameConnector + q.get(o, "name"); + A.style.text = z + this._valueConnector + y, q.set(A, "value", y), q.set(A, "name", z), A.style.r = this.option.island.r, A.style.color = x.mix(A.style.color, o.style.color) + }, + refresh: function(a) { + a && (a.island = this.reformOption(a.island), this.option = a, this._nameConnector = this.option.nameConnector, this._valueConnector = this.option.valueConnector) + }, + getOption: function() { + return this.option + }, + resize: function() { + var s = this.zr.getWidth(), + A = this.zr.getHeight(), + x = s / (this._zrWidth || s), + y = A / (this._zrHeight || A); + if (1 !== x || 1 !== y) { + this._zrWidth = s, this._zrHeight = A; + for (var r = 0, z = this.shapeList.length; z > r; r++) { + this.zr.modShape(this.shapeList[r].id, { + style: { + x: Math.round(this.shapeList[r].style.x * x), + y: Math.round(this.shapeList[r].style.y * y) + } + }) + } + } + }, + add: function(o) { + var B = q.get(o, "name"), + x = q.get(o, "value"), + n = null != q.get(o, "series") ? q.get(o, "series").name : "", + z = this.getFont(this.option.island.textStyle), + A = this.option.island, + y = { + zlevel: A.zlevel, + z: A.z, + style: { + x: o.style.x, + y: o.style.y, + r: this.option.island.r, + color: o.style.color || o.style.strokeColor, + text: B + this._valueConnector + x, + textFont: z + }, + draggable: !0, + hoverable: !0, + onmousewheel: this.shapeHandler.onmousewheel, + _type: "island" + }; + "#fff" === y.style.color && (y.style.color = o.style.strokeColor), this.setCalculable(y), y.dragEnableTime = 0, q.pack(y, { + name: n + }, -1, x, -1, B), y = new p(y), this.shapeList.push(y), this.zr.addShape(y) + }, + del: function(a) { + this.zr.delShape(a.id); + for (var s = [], o = 0, r = this.shapeList.length; r > o; o++) { + this.shapeList[o].id != a.id && s.push(this.shapeList[o]) + } + this.shapeList = s + }, + ondrop: function(a, s) { + if (this.isDrop && a.target) { + var o = a.target, + r = a.dragged; + this._combine(o, r), this.zr.modShape(o.id), s.dragIn = !0, this.isDrop = !1 + } + }, + ondragend: function(a, o) { + var n = a.target; + this.isDragend ? o.dragIn && (this.del(n), o.needRefresh = !0) : o.dragIn || (n.style.x = v.getX(a.event), n.style.y = v.getY(a.event), this.add(n), o.needRefresh = !0), this.isDragend = !1 + } + }, u.inherits(w, m), l("../chart").define("island", w), w + }), d("echarts/component/toolbox", ["require", "./base", "zrender/shape/Line", "zrender/shape/Image", "zrender/shape/Rectangle", "../util/shape/Icon", "../config", "zrender/tool/util", "zrender/config", "zrender/tool/event", "./dataView", "../component"], function(p) { + function B(l, F, m, i, s) { + u.call(this, l, F, m, i, s), this.dom = s.dom, this._magicType = {}, this._magicMap = {}, this._isSilence = !1, this._iconList, this._iconShapeMap = {}, this._featureTitle = {}, this._featureIcon = {}, this._featureColor = {}, this._featureOption = {}, this._enableColor = "red", this._disableColor = "#ccc", this._markShapeList = []; + var E = this; + E._onMark = function(a) { + E.__onMark(a) + }, E._onMarkUndo = function(a) { + E.__onMarkUndo(a) + }, E._onMarkClear = function(a) { + E.__onMarkClear(a) + }, E._onDataZoom = function(a) { + E.__onDataZoom(a) + }, E._onDataZoomReset = function(a) { + E.__onDataZoomReset(a) + }, E._onDataView = function(a) { + E.__onDataView(a) + }, E._onRestore = function(a) { + E.__onRestore(a) + }, E._onSaveAsImage = function(a) { + E.__onSaveAsImage(a) + }, E._onMagicType = function(a) { + E.__onMagicType(a) + }, E._onCustomHandler = function(a) { + E.__onCustomHandler(a) + }, E._onmousemove = function(a) { + return E.__onmousemove(a) + }, E._onmousedown = function(a) { + return E.__onmousedown(a) + }, E._onmouseup = function(a) { + return E.__onmouseup(a) + }, E._onclick = function(a) { + return E.__onclick(a) + } + } + var u = p("./base"), + x = p("zrender/shape/Line"), + j = p("zrender/shape/Image"), + y = p("zrender/shape/Rectangle"), + z = p("../util/shape/Icon"), + A = p("../config"); + A.toolbox = { + zlevel: 0, + z: 6, + show: !1, + orient: "horizontal", + x: "right", + y: "top", + color: ["#1e90ff", "#22bb22", "#4b0082", "#d2691e"], + disableColor: "#ddd", + effectiveColor: "red", + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderWidth: 0, + padding: 5, + itemGap: 10, + itemSize: 16, + showTitle: !0, + feature: { + mark: { + show: !1, + title: { + mark: "辅助线开关", + markUndo: "删除辅助线", + markClear: "清空辅助线" + }, + lineStyle: { + width: 1, + color: "#1e90ff", + type: "dashed" + } + }, + dataZoom: { + show: !1, + title: { + dataZoom: "区域缩放", + dataZoomReset: "区域缩放后退" + } + }, + dataView: { + show: !1, + title: "数据视图", + readOnly: !1, + lang: ["数据视图", "关闭", "刷新"] + }, + magicType: { + show: !1, + title: { + line: "折线图切换", + bar: "柱形图切换", + stack: "堆积", + tiled: "平铺", + force: "力导向布局图切换", + chord: "和弦图切换", + pie: "饼图切换", + funnel: "漏斗图切换" + }, + type: [] + }, + restore: { + show: !1, + title: "还原" + }, + saveAsImage: { + show: !1, + title: "保存为图片", + type: "png", + lang: ["点击保存"] + } + } + }; + var v = p("zrender/tool/util"), + q = p("zrender/config"), + w = p("zrender/tool/event"), + D = "stack", + C = "tiled"; + return B.prototype = { + type: A.COMPONENT_TYPE_TOOLBOX, + _buildShape: function() { + this._iconList = []; + var m = this.option.toolbox; + this._enableColor = m.effectiveColor, this._disableColor = m.disableColor; + var H = m.feature, + s = []; + for (var E in H) { + if (H[E].show) { + switch (E) { + case "mark": + s.push({ + key: E, + name: "mark" + }), s.push({ + key: E, + name: "markUndo" + }), s.push({ + key: E, + name: "markClear" + }); + break; + case "magicType": + for (var l = 0, F = H[E].type.length; F > l; l++) { + H[E].title[H[E].type[l] + "Chart"] = H[E].title[H[E].type[l]], H[E].option && (H[E].option[H[E].type[l] + "Chart"] = H[E].option[H[E].type[l]]), s.push({ + key: E, + name: H[E].type[l] + "Chart" + }) + } + break; + case "dataZoom": + s.push({ + key: E, + name: "dataZoom" + }), s.push({ + key: E, + name: "dataZoomReset" + }); + break; + case "saveAsImage": + this.canvasSupported && s.push({ + key: E, + name: "saveAsImage" + }); + break; + default: + s.push({ + key: E, + name: E + }) + } + } + } + if (s.length > 0) { + for (var G, E, l = 0, F = s.length; F > l; l++) { + G = s[l].name, E = s[l].key, this._iconList.push(G), this._featureTitle[G] = H[E].title[G] || H[E].title, H[E].icon && (this._featureIcon[G] = H[E].icon[G] || H[E].icon), H[E].color && (this._featureColor[G] = H[E].color[G] || H[E].color), H[E].option && (this._featureOption[G] = H[E].option[G] || H[E].option) + } + this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._buildItem(); + for (var l = 0, F = this.shapeList.length; F > l; l++) { + this.zr.addShape(this.shapeList[l]) + } + this._iconShapeMap.mark && (this._iconDisable(this._iconShapeMap.markUndo), this._iconDisable(this._iconShapeMap.markClear)), this._iconShapeMap.dataZoomReset && 0 === this._zoomQueue.length && this._iconDisable(this._iconShapeMap.dataZoomReset) + } + }, + _buildItem: function() { + var L, E, H, I, K = this.option.toolbox, + F = this._iconList.length, + r = this._itemGroupLocation.x, + G = this._itemGroupLocation.y, + O = K.itemSize, + N = K.itemGap, + e = K.color instanceof Array ? K.color : [K.color], + J = this.getFont(K.textStyle); + "horizontal" === K.orient ? (E = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? "bottom" : "top", H = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? "left" : "right", I = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? "top" : "bottom") : E = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? "right" : "left", this._iconShapeMap = {}; + for (var a = this, M = 0; F > M; M++) { + switch (L = { + type: "icon", + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: r, + y: G, + width: O, + height: O, + iconType: this._iconList[M], + lineWidth: 1, + strokeColor: this._featureColor[this._iconList[M]] || e[M % e.length], + brushType: "stroke" + }, + highlightStyle: { + lineWidth: 1, + text: K.showTitle ? this._featureTitle[this._iconList[M]] : void 0, + textFont: J, + textPosition: E, + strokeColor: this._featureColor[this._iconList[M]] || e[M % e.length] + }, + hoverable: !0, + clickable: !0 + }, this._featureIcon[this._iconList[M]] && (L.style.image = this._featureIcon[this._iconList[M]].replace(new RegExp("^image:\\/\\/"), ""), L.style.opacity = 0.8, L.highlightStyle.opacity = 1, L.type = "image"), "horizontal" === K.orient && (0 === M && "left" === H && (L.highlightStyle.textPosition = "specific", L.highlightStyle.textAlign = H, L.highlightStyle.textBaseline = I, L.highlightStyle.textX = r, L.highlightStyle.textY = "top" === I ? G + O + 10 : G - 10), M === F - 1 && "right" === H && (L.highlightStyle.textPosition = "specific", L.highlightStyle.textAlign = H, L.highlightStyle.textBaseline = I, L.highlightStyle.textX = r + O, L.highlightStyle.textY = "top" === I ? G + O + 10 : G - 10)), this._iconList[M]) { + case "mark": + L.onclick = a._onMark; + break; + case "markUndo": + L.onclick = a._onMarkUndo; + break; + case "markClear": + L.onclick = a._onMarkClear; + break; + case "dataZoom": + L.onclick = a._onDataZoom; + break; + case "dataZoomReset": + L.onclick = a._onDataZoomReset; + break; + case "dataView": + if (!this._dataView) { + var P = p("./dataView"); + this._dataView = new P(this.ecTheme, this.messageCenter, this.zr, this.option, this.myChart) + } + L.onclick = a._onDataView; + break; + case "restore": + L.onclick = a._onRestore; + break; + case "saveAsImage": + L.onclick = a._onSaveAsImage; + break; + default: + this._iconList[M].match("Chart") ? (L._name = this._iconList[M].replace("Chart", ""), L.onclick = a._onMagicType) : L.onclick = a._onCustomHandler + } + "icon" === L.type ? L = new z(L) : "image" === L.type && (L = new j(L)), this.shapeList.push(L), this._iconShapeMap[this._iconList[M]] = L, "horizontal" === K.orient ? r += O + N : G += O + N + } + }, + _buildBackground: function() { + var a = this.option.toolbox, + i = this.reformCssArray(this.option.toolbox.padding); + this.shapeList.push(new y({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this._itemGroupLocation.x - i[3], + y: this._itemGroupLocation.y - i[0], + width: this._itemGroupLocation.width + i[3] + i[1], + height: this._itemGroupLocation.height + i[0] + i[2], + brushType: 0 === a.borderWidth ? "fill" : "both", + color: a.backgroundColor, + strokeColor: a.borderColor, + lineWidth: a.borderWidth + } + })) + }, + _getItemGroupLocation: function() { + var F = this.option.toolbox, + O = this.reformCssArray(this.option.toolbox.padding), + H = this._iconList.length, + K = F.itemGap, + E = F.itemSize, + L = 0, + M = 0; + "horizontal" === F.orient ? (L = (E + K) * H - K, M = E) : (M = (E + K) * H - K, L = E); + var N, I = this.zr.getWidth(); + switch (F.x) { + case "center": + N = Math.floor((I - L) / 2); + break; + case "left": + N = O[3] + F.borderWidth; + break; + case "right": + N = I - L - O[1] - F.borderWidth; + break; + default: + N = F.x - 0, N = isNaN(N) ? 0 : N + } + var G, J = this.zr.getHeight(); + switch (F.y) { + case "top": + G = O[0] + F.borderWidth; + break; + case "bottom": + G = J - M - O[2] - F.borderWidth; + break; + case "center": + G = Math.floor((J - M) / 2); + break; + default: + G = F.y - 0, G = isNaN(G) ? 0 : G + } + return { + x: N, + y: G, + width: L, + height: M + } + }, + __onmousemove: function(a) { + this._marking && (this._markShape.style.xEnd = w.getX(a.event), this._markShape.style.yEnd = w.getY(a.event), this.zr.addHoverShape(this._markShape)), this._zooming && (this._zoomShape.style.width = w.getX(a.event) - this._zoomShape.style.x, this._zoomShape.style.height = w.getY(a.event) - this._zoomShape.style.y, this.zr.addHoverShape(this._zoomShape), this.dom.style.cursor = "crosshair", w.stop(a.event)), this._zoomStart && "pointer" != this.dom.style.cursor && "move" != this.dom.style.cursor && (this.dom.style.cursor = "crosshair") + }, + __onmousedown: function(a) { + if (!a.target) { + this._zooming = !0; + var o = w.getX(a.event), + l = w.getY(a.event), + m = this.option.dataZoom || {}; + return this._zoomShape = new y({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: o, + y: l, + width: 1, + height: 1, + brushType: "both" + }, + highlightStyle: { + lineWidth: 2, + color: m.fillerColor || A.dataZoom.fillerColor, + strokeColor: m.handleColor || A.dataZoom.handleColor, + brushType: "both" + } + }), this.zr.addHoverShape(this._zoomShape), !0 + } + }, + __onmouseup: function() { + if (!this._zoomShape || Math.abs(this._zoomShape.style.width) < 10 || Math.abs(this._zoomShape.style.height) < 10) { + return this._zooming = !1, !0 + } + if (this._zooming && this.component.dataZoom) { + this._zooming = !1; + var a = this.component.dataZoom.rectZoom(this._zoomShape.style); + a && (this._zoomQueue.push({ + start: a.start, + end: a.end, + start2: a.start2, + end2: a.end2 + }), this._iconEnable(this._iconShapeMap.dataZoomReset), this.zr.refreshNextFrame()) + } + return !0 + }, + __onclick: function(a) { + if (!a.target) { + if (this._marking) { + this._marking = !1, this._markShapeList.push(this._markShape), this._iconEnable(this._iconShapeMap.markUndo), this._iconEnable(this._iconShapeMap.markClear), this.zr.addShape(this._markShape), this.zr.refreshNextFrame() + } else { + if (this._markStart) { + this._marking = !0; + var m = w.getX(a.event), + l = w.getY(a.event); + this._markShape = new x({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + xStart: m, + yStart: l, + xEnd: m, + yEnd: l, + lineWidth: this.query(this.option, "toolbox.feature.mark.lineStyle.width"), + strokeColor: this.query(this.option, "toolbox.feature.mark.lineStyle.color"), + lineType: this.query(this.option, "toolbox.feature.mark.lineStyle.type") + } + }), this.zr.addHoverShape(this._markShape) + } + } + } + }, + __onMark: function(a) { + var m = a.target; + if (this._marking || this._markStart) { + this._resetMark(), this.zr.refreshNextFrame() + } else { + this._resetZoom(), this.zr.modShape(m.id, { + style: { + strokeColor: this._enableColor + } + }), this.zr.refreshNextFrame(), this._markStart = !0; + var l = this; + setTimeout(function() { + l.zr && l.zr.on(q.EVENT.CLICK, l._onclick) && l.zr.on(q.EVENT.MOUSEMOVE, l._onmousemove) + }, 10) + } + return !0 + }, + __onMarkUndo: function() { + if (this._marking) { + this._marking = !1 + } else { + var a = this._markShapeList.length; + if (a >= 1) { + var i = this._markShapeList[a - 1]; + this.zr.delShape(i.id), this.zr.refreshNextFrame(), this._markShapeList.pop(), 1 === a && (this._iconDisable(this._iconShapeMap.markUndo), this._iconDisable(this._iconShapeMap.markClear)) + } + } + return !0 + }, + __onMarkClear: function() { + this._marking && (this._marking = !1); + var a = this._markShapeList.length; + if (a > 0) { + for (; a--;) { + this.zr.delShape(this._markShapeList.pop().id) + } + this._iconDisable(this._iconShapeMap.markUndo), this._iconDisable(this._iconShapeMap.markClear), this.zr.refreshNextFrame() + } + return !0 + }, + __onDataZoom: function(a) { + var m = a.target; + if (this._zooming || this._zoomStart) { + this._resetZoom(), this.zr.refreshNextFrame(), this.dom.style.cursor = "default" + } else { + this._resetMark(), this.zr.modShape(m.id, { + style: { + strokeColor: this._enableColor + } + }), this.zr.refreshNextFrame(), this._zoomStart = !0; + var l = this; + setTimeout(function() { + l.zr && l.zr.on(q.EVENT.MOUSEDOWN, l._onmousedown) && l.zr.on(q.EVENT.MOUSEUP, l._onmouseup) && l.zr.on(q.EVENT.MOUSEMOVE, l._onmousemove) + }, 10), this.dom.style.cursor = "crosshair" + } + return !0 + }, + __onDataZoomReset: function() { + return this._zooming && (this._zooming = !1), this._zoomQueue.pop(), this._zoomQueue.length > 0 ? this.component.dataZoom.absoluteZoom(this._zoomQueue[this._zoomQueue.length - 1]) : (this.component.dataZoom.rectZoom(), this._iconDisable(this._iconShapeMap.dataZoomReset), this.zr.refreshNextFrame()), !0 + }, + _resetMark: function() { + this._marking = !1, this._markStart && (this._markStart = !1, this._iconShapeMap.mark && this.zr.modShape(this._iconShapeMap.mark.id, { + style: { + strokeColor: this._iconShapeMap.mark.highlightStyle.strokeColor + } + }), this.zr.un(q.EVENT.CLICK, this._onclick), this.zr.un(q.EVENT.MOUSEMOVE, this._onmousemove)) + }, + _resetZoom: function() { + this._zooming = !1, this._zoomStart && (this._zoomStart = !1, this._iconShapeMap.dataZoom && this.zr.modShape(this._iconShapeMap.dataZoom.id, { + style: { + strokeColor: this._iconShapeMap.dataZoom.highlightStyle.strokeColor + } + }), this.zr.un(q.EVENT.MOUSEDOWN, this._onmousedown), this.zr.un(q.EVENT.MOUSEUP, this._onmouseup), this.zr.un(q.EVENT.MOUSEMOVE, this._onmousemove)) + }, + _iconDisable: function(a) { + "image" != a.type ? this.zr.modShape(a.id, { + hoverable: !1, + clickable: !1, + style: { + strokeColor: this._disableColor + } + }) : this.zr.modShape(a.id, { + hoverable: !1, + clickable: !1, + style: { + opacity: 0.3 + } + }) + }, + _iconEnable: function(a) { + "image" != a.type ? this.zr.modShape(a.id, { + hoverable: !0, + clickable: !0, + style: { + strokeColor: a.highlightStyle.strokeColor + } + }) : this.zr.modShape(a.id, { + hoverable: !0, + clickable: !0, + style: { + opacity: 0.8 + } + }) + }, + __onDataView: function() { + return this._dataView.show(this.option), !0 + }, + __onRestore: function() { + return this._resetMark(), this._resetZoom(), this.messageCenter.dispatch(A.EVENT.RESTORE, null, null, this.myChart), !0 + }, + __onSaveAsImage: function() { + var m = this.option.toolbox.feature.saveAsImage, + s = m.type || "png"; + "png" != s && "jpeg" != s && (s = "png"); + var o; + o = this.myChart.isConnected() ? this.myChart.getConnectedDataURL(s) : this.zr.toDataURL("image/" + s, this.option.backgroundColor && "rgba(0,0,0,0)" === this.option.backgroundColor.replace(" ", "") ? "#fff" : this.option.backgroundColor); + var r = document.createElement("div"); + r.id = "__echarts_download_wrap__", r.style.cssText = "position:fixed;z-index:99999;display:block;top:0;left:0;background-color:rgba(33,33,33,0.5);text-align:center;width:100%;height:100%;line-height:" + document.documentElement.clientHeight + "px;"; + var l = document.createElement("a"); + l.href = o, l.setAttribute("download", (m.name ? m.name : this.option.title && (this.option.title.text || this.option.title.subtext) ? this.option.title.text || this.option.title.subtext : "ECharts") + "." + s), l.innerHTML = '图片另存为" : m.lang ? m.lang[0] : "点击保存") + '"/>', r.appendChild(l), document.body.appendChild(r), l = null, r = null, setTimeout(function() { + var a = document.getElementById("__echarts_download_wrap__"); + a && (a.onclick = function() { + var i = document.getElementById("__echarts_download_wrap__"); + i.onclick = null, i.innerHTML = "", document.body.removeChild(i), i = null + }, a = null) + }, 500) + }, + __onMagicType: function(a) { + this._resetMark(); + var i = a.target._name; + return this._magicType[i] || (this._magicType[i] = !0, i === A.CHART_TYPE_LINE ? this._magicType[A.CHART_TYPE_BAR] = !1 : i === A.CHART_TYPE_BAR && (this._magicType[A.CHART_TYPE_LINE] = !1), i === A.CHART_TYPE_PIE ? this._magicType[A.CHART_TYPE_FUNNEL] = !1 : i === A.CHART_TYPE_FUNNEL && (this._magicType[A.CHART_TYPE_PIE] = !1), i === A.CHART_TYPE_FORCE ? this._magicType[A.CHART_TYPE_CHORD] = !1 : i === A.CHART_TYPE_CHORD && (this._magicType[A.CHART_TYPE_FORCE] = !1), i === D ? this._magicType[C] = !1 : i === C && (this._magicType[D] = !1), this.messageCenter.dispatch(A.EVENT.MAGIC_TYPE_CHANGED, a.event, { + magicType: this._magicType + }, this.myChart)), !0 + }, + setMagicType: function(a) { + this._resetMark(), this._magicType = a, !this._isSilence && this.messageCenter.dispatch(A.EVENT.MAGIC_TYPE_CHANGED, null, { + magicType: this._magicType + }, this.myChart) + }, + __onCustomHandler: function(a) { + var m = a.target.style.iconType, + l = this.option.toolbox.feature[m].onclick; + "function" == typeof l && l.call(this, this.option) + }, + reset: function(E, M) { + if (M && this.clear(), this.query(E, "toolbox.show") && this.query(E, "toolbox.feature.magicType.show")) { + var G = E.toolbox.feature.magicType.type, + I = G.length; + for (this._magicMap = {}; I--;) { + this._magicMap[G[I]] = !0 + } + I = E.series.length; + for (var l, J; I--;) { + l = E.series[I].type, this._magicMap[l] && (J = E.xAxis instanceof Array ? E.xAxis[E.series[I].xAxisIndex || 0] : E.xAxis, J && "category" === (J.type || "category") && (J.__boundaryGap = null != J.boundaryGap ? J.boundaryGap : !0), J = E.yAxis instanceof Array ? E.yAxis[E.series[I].yAxisIndex || 0] : E.yAxis, J && "category" === J.type && (J.__boundaryGap = null != J.boundaryGap ? J.boundaryGap : !0), E.series[I].__type = l, E.series[I].__itemStyle = v.clone(E.series[I].itemStyle || {})), (this._magicMap[D] || this._magicMap[C]) && (E.series[I].__stack = E.series[I].stack) + } + } + this._magicType = M ? {} : this._magicType || {}; + for (var K in this._magicType) { + if (this._magicType[K]) { + this.option = E, this.getMagicOption(); + break + } + } + var L = E.dataZoom; + if (L && L.show) { + var F = null != L.start && L.start >= 0 && L.start <= 100 ? L.start : 0, + H = null != L.end && L.end >= 0 && L.end <= 100 ? L.end : 100; + F > H && (F += H, H = F - H, F -= H), this._zoomQueue = [{ + start: F, + end: H, + start2: 0, + end2: 100 + }] + } else { + this._zoomQueue = [] + } + }, + getMagicOption: function() { + var m, s; + if (this._magicType[A.CHART_TYPE_LINE] || this._magicType[A.CHART_TYPE_BAR]) { + for (var o = this._magicType[A.CHART_TYPE_LINE] ? !1 : !0, r = 0, l = this.option.series.length; l > r; r++) { + s = this.option.series[r].type, (s == A.CHART_TYPE_LINE || s == A.CHART_TYPE_BAR) && (m = this.option.xAxis instanceof Array ? this.option.xAxis[this.option.series[r].xAxisIndex || 0] : this.option.xAxis, m && "category" === (m.type || "category") && (m.boundaryGap = o ? !0 : m.__boundaryGap), m = this.option.yAxis instanceof Array ? this.option.yAxis[this.option.series[r].yAxisIndex || 0] : this.option.yAxis, m && "category" === m.type && (m.boundaryGap = o ? !0 : m.__boundaryGap)) + } + this._defaultMagic(A.CHART_TYPE_LINE, A.CHART_TYPE_BAR) + } + if (this._defaultMagic(A.CHART_TYPE_CHORD, A.CHART_TYPE_FORCE), this._defaultMagic(A.CHART_TYPE_PIE, A.CHART_TYPE_FUNNEL), this._magicType[D] || this._magicType[C]) { + for (var r = 0, l = this.option.series.length; l > r; r++) { + this._magicType[D] ? (this.option.series[r].stack = "_ECHARTS_STACK_KENER_2014_", s = D) : this._magicType[C] && (this.option.series[r].stack = null, s = C), this._featureOption[s + "Chart"] && v.merge(this.option.series[r], this._featureOption[s + "Chart"] || {}, !0) + } + } + return this.option + }, + _defaultMagic: function(m, s) { + if (this._magicType[m] || this._magicType[s]) { + for (var o = 0, r = this.option.series.length; r > o; o++) { + var l = this.option.series[o].type; + (l == m || l == s) && (this.option.series[o].type = this._magicType[m] ? m : s, this.option.series[o].itemStyle = v.clone(this.option.series[o].__itemStyle), l = this.option.series[o].type, this._featureOption[l + "Chart"] && v.merge(this.option.series[o], this._featureOption[l + "Chart"] || {}, !0)) + } + } + }, + silence: function(a) { + this._isSilence = a + }, + resize: function() { + this._resetMark(), this.clear(), this.option && this.option.toolbox && this.option.toolbox.show && this._buildShape(), this._dataView && this._dataView.resize() + }, + hideDataView: function() { + this._dataView && this._dataView.hide() + }, + clear: function(a) { + this.zr && (this.zr.delShape(this.shapeList), this.shapeList = [], a || (this.zr.delShape(this._markShapeList), this._markShapeList = [])) + }, + onbeforDispose: function() { + this._dataView && (this._dataView.dispose(), this._dataView = null), this._markShapeList = null + }, + refresh: function(a) { + a && (this._resetMark(), this._resetZoom(), a.toolbox = this.reformOption(a.toolbox), this.option = a, this.clear(!0), a.toolbox.show && this._buildShape(), this.hideDataView()) + } + }, v.inherits(B, u), p("../component").define("toolbox", B), B + }), d("echarts/component", [], function() { + var a = {}, + i = {}; + return a.define = function(e, j) { + return i[e] = j, a + }, a.get = function(j) { + return i[j] + }, a + }), d("echarts/component/title", ["require", "./base", "zrender/shape/Text", "zrender/shape/Rectangle", "../config", "zrender/tool/util", "zrender/tool/area", "zrender/tool/color", "../component"], function(m) { + function y(l, z, r, i, s) { + p.call(this, l, z, r, i, s), this.refresh(i) + } + var p = m("./base"), + u = m("zrender/shape/Text"), + j = m("zrender/shape/Rectangle"), + v = m("../config"); + v.title = { + zlevel: 0, + z: 6, + show: !0, + text: "", + subtext: "", + x: "left", + y: "top", + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderWidth: 0, + padding: 5, + itemGap: 5, + textStyle: { + fontSize: 18, + fontWeight: "bolder", + color: "#333" + }, + subtextStyle: { + color: "#aaa" + } + }; + var w = m("zrender/tool/util"), + x = m("zrender/tool/area"), + q = m("zrender/tool/color"); + return y.prototype = { + type: v.COMPONENT_TYPE_TITLE, + _buildShape: function() { + if (this.titleOption.show) { + this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._buildItem(); + for (var a = 0, i = this.shapeList.length; i > a; a++) { + this.zr.addShape(this.shapeList[a]) + } + } + }, + _buildItem: function() { + var A = this.titleOption.text, + I = this.titleOption.link, + C = this.titleOption.target, + l = this.titleOption.subtext, + E = this.titleOption.sublink, + G = this.titleOption.subtarget, + H = this.getFont(this.titleOption.textStyle), + B = this.getFont(this.titleOption.subtextStyle), + D = this._itemGroupLocation.x, + K = this._itemGroupLocation.y, + J = this._itemGroupLocation.width, + z = this._itemGroupLocation.height, + F = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + y: K, + color: this.titleOption.textStyle.color, + text: A, + textFont: H, + textBaseline: "top" + }, + highlightStyle: { + color: q.lift(this.titleOption.textStyle.color, 1), + brushType: "fill" + }, + hoverable: !1 + }; + I && (F.hoverable = !0, F.clickable = !0, F.onclick = function() { + C && "self" == C ? window.location = I : window.open(I) + }); + var n = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + y: K + z, + color: this.titleOption.subtextStyle.color, + text: l, + textFont: B, + textBaseline: "bottom" + }, + highlightStyle: { + color: q.lift(this.titleOption.subtextStyle.color, 1), + brushType: "fill" + }, + hoverable: !1 + }; + switch (E && (n.hoverable = !0, n.clickable = !0, n.onclick = function() { + G && "self" == G ? window.location = E : window.open(E) + }), this.titleOption.x) { + case "center": + F.style.x = n.style.x = D + J / 2, F.style.textAlign = n.style.textAlign = "center"; + break; + case "left": + F.style.x = n.style.x = D, F.style.textAlign = n.style.textAlign = "left"; + break; + case "right": + F.style.x = n.style.x = D + J, F.style.textAlign = n.style.textAlign = "right"; + break; + default: + D = this.titleOption.x - 0, D = isNaN(D) ? 0 : D, F.style.x = n.style.x = D + } + this.titleOption.textAlign && (F.style.textAlign = n.style.textAlign = this.titleOption.textAlign), this.shapeList.push(new u(F)), "" !== l && this.shapeList.push(new u(n)) + }, + _buildBackground: function() { + var a = this.reformCssArray(this.titleOption.padding); + this.shapeList.push(new j({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this._itemGroupLocation.x - a[3], + y: this._itemGroupLocation.y - a[0], + width: this._itemGroupLocation.width + a[3] + a[1], + height: this._itemGroupLocation.height + a[0] + a[2], + brushType: 0 === this.titleOption.borderWidth ? "fill" : "both", + color: this.titleOption.backgroundColor, + strokeColor: this.titleOption.borderColor, + lineWidth: this.titleOption.borderWidth + } + })) + }, + _getItemGroupLocation: function() { + var z, H = this.reformCssArray(this.titleOption.padding), + B = this.titleOption.text, + E = this.titleOption.subtext, + s = this.getFont(this.titleOption.textStyle), + F = this.getFont(this.titleOption.subtextStyle), + G = Math.max(x.getTextWidth(B, s), x.getTextWidth(E, F)), + C = x.getTextHeight(B, s) + ("" === E ? 0 : this.titleOption.itemGap + x.getTextHeight(E, F)), + A = this.zr.getWidth(); + switch (this.titleOption.x) { + case "center": + z = Math.floor((A - G) / 2); + break; + case "left": + z = H[3] + this.titleOption.borderWidth; + break; + case "right": + z = A - G - H[1] - this.titleOption.borderWidth; + break; + default: + z = this.titleOption.x - 0, z = isNaN(z) ? 0 : z + } + var D, I = this.zr.getHeight(); + switch (this.titleOption.y) { + case "top": + D = H[0] + this.titleOption.borderWidth; + break; + case "bottom": + D = I - C - H[2] - this.titleOption.borderWidth; + break; + case "center": + D = Math.floor((I - C) / 2); + break; + default: + D = this.titleOption.y - 0, D = isNaN(D) ? 0 : D + } + return { + x: z, + y: D, + width: G, + height: C + } + }, + refresh: function(a) { + a && (this.option = a, this.option.title = this.reformOption(this.option.title), this.titleOption = this.option.title, this.titleOption.textStyle = this.getTextStyle(this.titleOption.textStyle), this.titleOption.subtextStyle = this.getTextStyle(this.titleOption.subtextStyle)), this.clear(), this._buildShape() + } + }, w.inherits(y, p), m("../component").define("title", y), y + }), d("echarts/component/tooltip", ["require", "./base", "../util/shape/Cross", "zrender/shape/Line", "zrender/shape/Rectangle", "../config", "../util/ecData", "zrender/config", "zrender/tool/event", "zrender/tool/area", "zrender/tool/color", "zrender/tool/util", "zrender/shape/Base", "../component"], function(u) { + function E(a, H, m, n, p) { + w.call(this, a, H, m, n, p), this.dom = p.dom; + var i = this; + i._onmousemove = function(l) { + return i.__onmousemove(l) + }, i._onglobalout = function(l) { + return i.__onglobalout(l) + }, this.zr.on(v.EVENT.MOUSEMOVE, i._onmousemove), this.zr.on(v.EVENT.GLOBALOUT, i._onglobalout), i._hide = function(l) { + return i.__hide(l) + }, i._tryShow = function(l) { + return i.__tryShow(l) + }, i._refixed = function(l) { + return i.__refixed(l) + }, i._setContent = function(l, o) { + return i.__setContent(l, o) + }, this._tDom = this._tDom || document.createElement("div"), this._tDom.onselectstart = function() { + return !1 + }, this._tDom.onmouseover = function() { + i._mousein = !0 + }, this._tDom.onmouseout = function() { + i._mousein = !1 + }, this._tDom.className = "echarts-tooltip", this._tDom.style.position = "absolute", this.hasAppend = !1, this._axisLineShape && this.zr.delShape(this._axisLineShape.id), this._axisLineShape = new j({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + invisible: !0, + hoverable: !1 + }), this.shapeList.push(this._axisLineShape), this.zr.addShape(this._axisLineShape), this._axisShadowShape && this.zr.delShape(this._axisShadowShape.id), this._axisShadowShape = new j({ + zlevel: this.getZlevelBase(), + z: 1, + invisible: !0, + hoverable: !1 + }), this.shapeList.push(this._axisShadowShape), this.zr.addShape(this._axisShadowShape), this._axisCrossShape && this.zr.delShape(this._axisCrossShape.id), this._axisCrossShape = new z({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + invisible: !0, + hoverable: !1 + }), this.shapeList.push(this._axisCrossShape), this.zr.addShape(this._axisCrossShape), this.showing = !1, this.refresh(n) + } + var w = u("./base"), + z = u("../util/shape/Cross"), + j = u("zrender/shape/Line"), + A = u("zrender/shape/Rectangle"), + C = new A({}), + D = u("../config"); + D.tooltip = { + zlevel: 1, + z: 8, + show: !0, + showContent: !0, + trigger: "item", + islandFormatter: "{a}
{b} : {c}", + showDelay: 20, + hideDelay: 100, + transitionDuration: 0.4, + enterable: !1, + backgroundColor: "rgba(0,0,0,0.7)", + borderColor: "#333", + borderRadius: 4, + borderWidth: 0, + padding: 5, + axisPointer: { + type: "line", + lineStyle: { + color: "#48b", + width: 2, + type: "solid" + }, + crossStyle: { + color: "#1e90ff", + width: 1, + type: "dashed" + }, + shadowStyle: { + color: "rgba(150,150,150,0.3)", + width: "auto", + type: "default" + } + }, + textStyle: { + color: "#fff" + } + }; + var x = u("../util/ecData"), + v = u("zrender/config"), + y = u("zrender/tool/event"), + G = u("zrender/tool/area"), + F = u("zrender/tool/color"), + q = u("zrender/tool/util"), + B = u("zrender/shape/Base"); + return E.prototype = { + type: D.COMPONENT_TYPE_TOOLTIP, + _gCssText: "position:absolute;display:block;border-style:solid;white-space:nowrap;", + _style: function(m) { + if (!m) { + return "" + } + var r = []; + if (m.transitionDuration) { + var o = "left " + m.transitionDuration + "s,top " + m.transitionDuration + "s"; + r.push("transition:" + o), r.push("-moz-transition:" + o), r.push("-webkit-transition:" + o), r.push("-o-transition:" + o) + } + m.backgroundColor && (r.push("background-Color:" + F.toHex(m.backgroundColor)), r.push("filter:alpha(opacity=70)"), r.push("background-Color:" + m.backgroundColor)), null != m.borderWidth && r.push("border-width:" + m.borderWidth + "px"), null != m.borderColor && r.push("border-color:" + m.borderColor), null != m.borderRadius && (r.push("border-radius:" + m.borderRadius + "px"), r.push("-moz-border-radius:" + m.borderRadius + "px"), r.push("-webkit-border-radius:" + m.borderRadius + "px"), r.push("-o-border-radius:" + m.borderRadius + "px")); + var p = m.textStyle; + p && (p.color && r.push("color:" + p.color), p.decoration && r.push("text-decoration:" + p.decoration), p.align && r.push("text-align:" + p.align), p.fontFamily && r.push("font-family:" + p.fontFamily), p.fontSize && r.push("font-size:" + p.fontSize + "px"), p.fontSize && r.push("line-height:" + Math.round(3 * p.fontSize / 2) + "px"), p.fontStyle && r.push("font-style:" + p.fontStyle), p.fontWeight && r.push("font-weight:" + p.fontWeight)); + var l = m.padding; + return null != l && (l = this.reformCssArray(l), r.push("padding:" + l[0] + "px " + l[1] + "px " + l[2] + "px " + l[3] + "px")), r = r.join(";") + ";" + }, + __hide: function() { + this._lastDataIndex = -1, this._lastSeriesIndex = -1, this._lastItemTriggerId = -1, this._tDom && (this._tDom.style.display = "none"); + var a = !1; + this._axisLineShape.invisible || (this._axisLineShape.invisible = !0, this.zr.modShape(this._axisLineShape.id), a = !0), this._axisShadowShape.invisible || (this._axisShadowShape.invisible = !0, this.zr.modShape(this._axisShadowShape.id), a = !0), this._axisCrossShape.invisible || (this._axisCrossShape.invisible = !0, this.zr.modShape(this._axisCrossShape.id), a = !0), this._lastTipShape && this._lastTipShape.tipShape.length > 0 && (this.zr.delShape(this._lastTipShape.tipShape), this._lastTipShape = !1, this.shapeList.length = 2), a && this.zr.refreshNextFrame(), this.showing = !1 + }, + _show: function(m, H, p, r) { + var l = this._tDom.offsetHeight, + s = this._tDom.offsetWidth; + m && ("function" == typeof m && (m = m([H, p])), m instanceof Array && (H = m[0], p = m[1])), H + s > this._zrWidth && (H -= s + 40), p + l > this._zrHeight && (p -= l - 20), 20 > p && (p = 0), this._tDom.style.cssText = this._gCssText + this._defaultCssText + (r ? r : "") + "left:" + H + "px;top:" + p + "px;", (10 > l || 10 > s) && setTimeout(this._refixed, 20), this.showing = !0 + }, + __refixed: function() { + if (this._tDom) { + var a = "", + m = this._tDom.offsetHeight, + l = this._tDom.offsetWidth; + this._tDom.offsetLeft + l > this._zrWidth && (a += "left:" + (this._zrWidth - l - 20) + "px;"), this._tDom.offsetTop + m > this._zrHeight && (a += "top:" + (this._zrHeight - m - 10) + "px;"), "" !== a && (this._tDom.style.cssText += a) + } + }, + __tryShow: function() { + var a, o; + if (this._curTarget) { + if ("island" === this._curTarget._type && this.option.tooltip.show) { + return void this._showItemTrigger() + } + var l = x.get(this._curTarget, "series"), + m = x.get(this._curTarget, "data"); + a = this.deepQuery([m, l, this.option], "tooltip.show"), null != l && null != m && a ? (o = this.deepQuery([m, l, this.option], "tooltip.trigger"), "axis" === o ? this._showAxisTrigger(l.xAxisIndex, l.yAxisIndex, x.get(this._curTarget, "dataIndex")) : this._showItemTrigger()) : (clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), this._hidingTicket = setTimeout(this._hide, this._hideDelay)) + } else { + this._findPolarTrigger() || this._findAxisTrigger() + } + }, + _findAxisTrigger: function() { + if (!this.component.xAxis || !this.component.yAxis) { + return void(this._hidingTicket = setTimeout(this._hide, this._hideDelay)) + } + for (var m, r, o = this.option.series, p = 0, l = o.length; l > p; p++) { + if ("axis" === this.deepQuery([o[p], this.option], "tooltip.trigger")) { + return m = o[p].xAxisIndex || 0, r = o[p].yAxisIndex || 0, this.component.xAxis.getAxis(m) && this.component.xAxis.getAxis(m).type === D.COMPONENT_TYPE_AXIS_CATEGORY ? void this._showAxisTrigger(m, r, this._getNearestDataIndex("x", this.component.xAxis.getAxis(m))) : this.component.yAxis.getAxis(r) && this.component.yAxis.getAxis(r).type === D.COMPONENT_TYPE_AXIS_CATEGORY ? void this._showAxisTrigger(m, r, this._getNearestDataIndex("y", this.component.yAxis.getAxis(r))) : void this._showAxisTrigger(m, r, -1) + } + } + "cross" === this.option.tooltip.axisPointer.type && this._showAxisTrigger(-1, -1, -1) + }, + _findPolarTrigger: function() { + if (!this.component.polar) { + return !1 + } + var a, o = y.getX(this._event), + l = y.getY(this._event), + m = this.component.polar.getNearestIndex([o, l]); + return m ? (a = m.valueIndex, m = m.polarIndex) : m = -1, -1 != m ? this._showPolarTrigger(m, a) : !1 + }, + _getNearestDataIndex: function(p, O) { + var I = -1, + K = y.getX(this._event), + m = y.getY(this._event); + if ("x" === p) { + for (var L, M, N = this.component.grid.getXend(), J = O.getCoordByIndex(I); N > J && (M = J, K >= J);) { + L = J, J = O.getCoordByIndex(++I) + } + return 0 >= I ? I = 0 : M - K >= K - L ? I -= 1 : null == O.getNameByIndex(I) && (I -= 1), I + } + for (var H, Q, P = this.component.grid.getY(), J = O.getCoordByIndex(I); J > P && (H = J, J >= m);) { + Q = J, J = O.getCoordByIndex(++I) + } + return 0 >= I ? I = 0 : m - H >= Q - m ? I -= 1 : null == O.getNameByIndex(I) && (I -= 1), I + }, + _showAxisTrigger: function(J, W, N) { + if (!this._event.connectTrigger && this.messageCenter.dispatch(D.EVENT.TOOLTIP_IN_GRID, this._event, null, this.myChart), null == this.component.xAxis || null == this.component.yAxis || null == J || null == W) { + return clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), void(this._hidingTicket = setTimeout(this._hide, this._hideDelay)) + } + var Q, m, R, T, P = this.option.series, + M = [], + Z = [], + Y = ""; + if ("axis" === this.option.tooltip.trigger) { + if (!this.option.tooltip.show) { + return + } + m = this.option.tooltip.formatter, R = this.option.tooltip.position + } + var I, S, H = -1 != J && this.component.xAxis.getAxis(J).type === D.COMPONENT_TYPE_AXIS_CATEGORY ? "xAxis" : -1 != W && this.component.yAxis.getAxis(W).type === D.COMPONENT_TYPE_AXIS_CATEGORY ? "yAxis" : !1; + if (H) { + var X = "xAxis" == H ? J : W; + Q = this.component[H].getAxis(X); + for (var ab = 0, L = P.length; L > ab; ab++) { + this._isSelected(P[ab].name) && P[ab][H + "Index"] === X && "axis" === this.deepQuery([P[ab], this.option], "tooltip.trigger") && (T = this.query(P[ab], "tooltip.showContent") || T, m = this.query(P[ab], "tooltip.formatter") || m, R = this.query(P[ab], "tooltip.position") || R, Y += this._style(this.query(P[ab], "tooltip")), null != P[ab].stack && "xAxis" == H ? (M.unshift(P[ab]), Z.unshift(ab)) : (M.push(P[ab]), Z.push(ab))) + } + this.messageCenter.dispatch(D.EVENT.TOOLTIP_HOVER, this._event, { + seriesIndex: Z, + dataIndex: N + }, this.myChart); + var s; + "xAxis" == H ? (I = this.subPixelOptimize(Q.getCoordByIndex(N), this._axisLineWidth), S = y.getY(this._event), s = [I, this.component.grid.getY(), I, this.component.grid.getYend()]) : (I = y.getX(this._event), S = this.subPixelOptimize(Q.getCoordByIndex(N), this._axisLineWidth), s = [this.component.grid.getX(), S, this.component.grid.getXend(), S]), this._styleAxisPointer(M, s[0], s[1], s[2], s[3], Q.getGap(), I, S) + } else { + I = y.getX(this._event), S = y.getY(this._event), this._styleAxisPointer(P, this.component.grid.getX(), S, this.component.grid.getXend(), S, 0, I, S), N >= 0 ? this._showItemTrigger(!0) : (clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), this._tDom.style.display = "none") + } + if (M.length > 0) { + if (this._lastItemTriggerId = -1, this._lastDataIndex != N || this._lastSeriesIndex != Z[0]) { + this._lastDataIndex = N, this._lastSeriesIndex = Z[0]; + var K, O; + if ("function" == typeof m) { + for (var aa = [], ab = 0, L = M.length; L > ab; ab++) { + K = M[ab].data[N], O = this.getDataFromOption(K, "-"), aa.push({ + seriesIndex: Z[ab], + seriesName: M[ab].name || "", + series: M[ab], + dataIndex: N, + data: K, + name: Q.getNameByIndex(N), + value: O, + 0: M[ab].name || "", + 1: Q.getNameByIndex(N), + 2: O, + 3: K + }) + } + this._curTicket = "axis:" + N, this._tDom.innerHTML = m.call(this.myChart, aa, this._curTicket, this._setContent) + } else { + if ("string" == typeof m) { + this._curTicket = 0 / 0, m = m.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}"); + for (var ab = 0, L = M.length; L > ab; ab++) { + m = m.replace("{a" + ab + "}", this._encodeHTML(M[ab].name || "")), m = m.replace("{b" + ab + "}", this._encodeHTML(Q.getNameByIndex(N))), K = M[ab].data[N], K = this.getDataFromOption(K, "-"), m = m.replace("{c" + ab + "}", K instanceof Array ? K : this.numAddCommas(K)) + } + this._tDom.innerHTML = m + } else { + this._curTicket = 0 / 0, m = this._encodeHTML(Q.getNameByIndex(N)); + for (var ab = 0, L = M.length; L > ab; ab++) { + m += "
" + this._encodeHTML(M[ab].name || "") + " : ", K = M[ab].data[N], K = this.getDataFromOption(K, "-"), m += K instanceof Array ? K : this.numAddCommas(K) + } + this._tDom.innerHTML = m + } + } + } + if (T === !1 || !this.option.tooltip.showContent) { + return + } + this.hasAppend || (this._tDom.style.left = this._zrWidth / 2 + "px", this._tDom.style.top = this._zrHeight / 2 + "px", this.dom.firstChild.appendChild(this._tDom), this.hasAppend = !0), this._show(R, I + 10, S + 10, Y) + } + }, + _showPolarTrigger: function(J, T) { + if (null == this.component.polar || null == J || null == T || 0 > T) { + return !1 + } + var M, O, m, P = this.option.series, + R = [], + S = [], + N = ""; + if ("axis" === this.option.tooltip.trigger) { + if (!this.option.tooltip.show) { + return !1 + } + M = this.option.tooltip.formatter, O = this.option.tooltip.position + } + for (var L = this.option.polar[J].indicator[T].text, Y = 0, X = P.length; X > Y; Y++) { + this._isSelected(P[Y].name) && P[Y].polarIndex === J && "axis" === this.deepQuery([P[Y], this.option], "tooltip.trigger") && (m = this.query(P[Y], "tooltip.showContent") || m, M = this.query(P[Y], "tooltip.formatter") || M, O = this.query(P[Y], "tooltip.position") || O, N += this._style(this.query(P[Y], "tooltip")), R.push(P[Y]), S.push(Y)) + } + if (R.length > 0) { + for (var I, Q, H, W = [], Y = 0, X = R.length; X > Y; Y++) { + I = R[Y].data; + for (var Z = 0, K = I.length; K > Z; Z++) { + Q = I[Z], this._isSelected(Q.name) && (Q = null != Q ? Q : { + name: "", + value: { + dataIndex: "-" + } + }, H = this.getDataFromOption(Q.value[T]), W.push({ + seriesIndex: S[Y], + seriesName: R[Y].name || "", + series: R[Y], + dataIndex: T, + data: Q, + name: Q.name, + indicator: L, + value: H, + 0: R[Y].name || "", + 1: Q.name, + 2: H, + 3: L + })) + } + } + if (W.length <= 0) { + return + } + if (this._lastItemTriggerId = -1, this._lastDataIndex != T || this._lastSeriesIndex != S[0]) { + if (this._lastDataIndex = T, this._lastSeriesIndex = S[0], "function" == typeof M) { + this._curTicket = "axis:" + T, this._tDom.innerHTML = M.call(this.myChart, W, this._curTicket, this._setContent) + } else { + if ("string" == typeof M) { + M = M.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}").replace("{d}", "{d0}"); + for (var Y = 0, X = W.length; X > Y; Y++) { + M = M.replace("{a" + Y + "}", this._encodeHTML(W[Y].seriesName)), M = M.replace("{b" + Y + "}", this._encodeHTML(W[Y].name)), M = M.replace("{c" + Y + "}", this.numAddCommas(W[Y].value)), M = M.replace("{d" + Y + "}", this._encodeHTML(W[Y].indicator)) + } + this._tDom.innerHTML = M + } else { + M = this._encodeHTML(W[0].name) + "
" + this._encodeHTML(W[0].indicator) + " : " + this.numAddCommas(W[0].value); + for (var Y = 1, X = W.length; X > Y; Y++) { + M += "
" + this._encodeHTML(W[Y].name) + "
", M += this._encodeHTML(W[Y].indicator) + " : " + this.numAddCommas(W[Y].value) + } + this._tDom.innerHTML = M + } + } + } + if (m === !1 || !this.option.tooltip.showContent) { + return + } + return this.hasAppend || (this._tDom.style.left = this._zrWidth / 2 + "px", this._tDom.style.top = this._zrHeight / 2 + "px", this.dom.firstChild.appendChild(this._tDom), this.hasAppend = !0), this._show(O, y.getX(this._event), y.getY(this._event), N), !0 + } + }, + _showItemTrigger: function(I) { + if (this._curTarget) { + var Q, L, M, l = x.get(this._curTarget, "series"), + N = x.get(this._curTarget, "seriesIndex"), + P = x.get(this._curTarget, "data"), + K = x.get(this._curTarget, "dataIndex"), + T = x.get(this._curTarget, "name"), + S = x.get(this._curTarget, "value"), + H = x.get(this._curTarget, "special"), + O = x.get(this._curTarget, "special2"), + s = [P, l, this.option], + R = ""; + if ("island" != this._curTarget._type) { + var W = I ? "axis" : "item"; + this.option.tooltip.trigger === W && (Q = this.option.tooltip.formatter, L = this.option.tooltip.position), this.query(l, "tooltip.trigger") === W && (M = this.query(l, "tooltip.showContent") || M, Q = this.query(l, "tooltip.formatter") || Q, L = this.query(l, "tooltip.position") || L, R += this._style(this.query(l, "tooltip"))), M = this.query(P, "tooltip.showContent") || M, Q = this.query(P, "tooltip.formatter") || Q, L = this.query(P, "tooltip.position") || L, R += this._style(this.query(P, "tooltip")) + } else { + this._lastItemTriggerId = 0 / 0, M = this.deepQuery(s, "tooltip.showContent"), Q = this.deepQuery(s, "tooltip.islandFormatter"), L = this.deepQuery(s, "tooltip.islandPosition") + } + this._lastDataIndex = -1, this._lastSeriesIndex = -1, this._lastItemTriggerId !== this._curTarget.id && (this._lastItemTriggerId = this._curTarget.id, "function" == typeof Q ? (this._curTicket = (l.name || "") + ":" + K, this._tDom.innerHTML = Q.call(this.myChart, { + seriesIndex: N, + seriesName: l.name || "", + series: l, + dataIndex: K, + data: P, + name: T, + value: S, + percent: H, + indicator: H, + value2: O, + indicator2: O, + 0: l.name || "", + 1: T, + 2: S, + 3: H, + 4: O, + 5: P, + 6: N, + 7: K + }, this._curTicket, this._setContent)) : "string" == typeof Q ? (this._curTicket = 0 / 0, Q = Q.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}"), Q = Q.replace("{a0}", this._encodeHTML(l.name || "")).replace("{b0}", this._encodeHTML(T)).replace("{c0}", S instanceof Array ? S : this.numAddCommas(S)), Q = Q.replace("{d}", "{d0}").replace("{d0}", H || ""), Q = Q.replace("{e}", "{e0}").replace("{e0}", x.get(this._curTarget, "special2") || ""), this._tDom.innerHTML = Q) : (this._curTicket = 0 / 0, this._tDom.innerHTML = l.type === D.CHART_TYPE_RADAR && H ? this._itemFormatter.radar.call(this, l, T, S, H) : l.type === D.CHART_TYPE_EVENTRIVER ? this._itemFormatter.eventRiver.call(this, l, T, S, P) : "" + (null != l.name ? this._encodeHTML(l.name) + "
" : "") + ("" === T ? "" : this._encodeHTML(T) + " : ") + (S instanceof Array ? S : this.numAddCommas(S)))); + var J = y.getX(this._event), + m = y.getY(this._event); + this.deepQuery(s, "tooltip.axisPointer.show") && this.component.grid ? this._styleAxisPointer([l], this.component.grid.getX(), m, this.component.grid.getXend(), m, 0, J, m) : this._hide(), M !== !1 && this.option.tooltip.showContent && (this.hasAppend || (this._tDom.style.left = this._zrWidth / 2 + "px", this._tDom.style.top = this._zrHeight / 2 + "px", this.dom.firstChild.appendChild(this._tDom), this.hasAppend = !0), this._show(L, J + 20, m - 20, R)) + } + }, + _itemFormatter: { + radar: function(m, H, p, r) { + var l = ""; + l += this._encodeHTML("" === H ? m.name || "" : H), l += "" === l ? "" : "
"; + for (var s = 0; s < r.length; s++) { + l += this._encodeHTML(r[s].text) + " : " + this.numAddCommas(p[s]) + "
" + } + return l + }, + chord: function(m, J, p, s, l) { + if (null == l) { + return this._encodeHTML(J) + " (" + this.numAddCommas(p) + ")" + } + var H = this._encodeHTML(J), + I = this._encodeHTML(s); + return "" + (null != m.name ? this._encodeHTML(m.name) + "
" : "") + H + " -> " + I + " (" + this.numAddCommas(p) + ")
" + I + " -> " + H + " (" + this.numAddCommas(l) + ")" + }, + eventRiver: function(m, J, p, s) { + var l = ""; + l += this._encodeHTML("" === m.name ? "" : m.name + " : "), l += this._encodeHTML(J), l += "" === l ? "" : "
", s = s.evolution; + for (var H = 0, I = s.length; I > H; H++) { + l += '
', s[H].detail && (s[H].detail.img && (l += ''), l += '
' + s[H].time + "
", l += '', l += s[H].detail.text + "
", l += "
") + } + return l + } + }, + _styleAxisPointer: function(K, X, N, Q, H, R, T, W) { + if (K.length > 0) { + var O, M, P = this.option.tooltip.axisPointer, + aa = P.type, + Z = { + line: {}, + cross: {}, + shadow: {} + }; + for (var J in Z) { + Z[J].color = P[J + "Style"].color, Z[J].width = P[J + "Style"].width, Z[J].type = P[J + "Style"].type + } + for (var S = 0, I = K.length; I > S; S++) { + O = K[S], M = this.query(O, "tooltip.axisPointer.type"), aa = M || aa, M && (Z[M].color = this.query(O, "tooltip.axisPointer." + M + "Style.color") || Z[M].color, Z[M].width = this.query(O, "tooltip.axisPointer." + M + "Style.width") || Z[M].width, Z[M].type = this.query(O, "tooltip.axisPointer." + M + "Style.type") || Z[M].type) + } + if ("line" === aa) { + var Y = Z.line.width, + ab = X == Q; + this._axisLineShape.style = { + xStart: ab ? this.subPixelOptimize(X, Y) : X, + yStart: ab ? N : this.subPixelOptimize(N, Y), + xEnd: ab ? this.subPixelOptimize(Q, Y) : Q, + yEnd: ab ? H : this.subPixelOptimize(H, Y), + strokeColor: Z.line.color, + lineWidth: Y, + lineType: Z.line.type + }, this._axisLineShape.invisible = !1, this.zr.modShape(this._axisLineShape.id) + } else { + if ("cross" === aa) { + var L = Z.cross.width; + this._axisCrossShape.style = { + brushType: "stroke", + rect: this.component.grid.getArea(), + x: this.subPixelOptimize(T, L), + y: this.subPixelOptimize(W, L), + text: ("( " + this.component.xAxis.getAxis(0).getValueFromCoord(T) + " , " + this.component.yAxis.getAxis(0).getValueFromCoord(W) + " )").replace(" , ", " ").replace(" , ", " "), + textPosition: "specific", + strokeColor: Z.cross.color, + lineWidth: L, + lineType: Z.cross.type + }, this.component.grid.getXend() - T > 100 ? (this._axisCrossShape.style.textAlign = "left", this._axisCrossShape.style.textX = T + 10) : (this._axisCrossShape.style.textAlign = "right", this._axisCrossShape.style.textX = T - 10), W - this.component.grid.getY() > 50 ? (this._axisCrossShape.style.textBaseline = "bottom", this._axisCrossShape.style.textY = W - 10) : (this._axisCrossShape.style.textBaseline = "top", this._axisCrossShape.style.textY = W + 10), this._axisCrossShape.invisible = !1, this.zr.modShape(this._axisCrossShape.id) + } else { + "shadow" === aa && ((null == Z.shadow.width || "auto" === Z.shadow.width || isNaN(Z.shadow.width)) && (Z.shadow.width = R), X === Q ? Math.abs(this.component.grid.getX() - X) < 2 ? (Z.shadow.width /= 2, X = Q += Z.shadow.width / 2) : Math.abs(this.component.grid.getXend() - X) < 2 && (Z.shadow.width /= 2, X = Q -= Z.shadow.width / 2) : N === H && (Math.abs(this.component.grid.getY() - N) < 2 ? (Z.shadow.width /= 2, N = H += Z.shadow.width / 2) : Math.abs(this.component.grid.getYend() - N) < 2 && (Z.shadow.width /= 2, N = H -= Z.shadow.width / 2)), this._axisShadowShape.style = { + xStart: X, + yStart: N, + xEnd: Q, + yEnd: H, + strokeColor: Z.shadow.color, + lineWidth: Z.shadow.width + }, this._axisShadowShape.invisible = !1, this.zr.modShape(this._axisShadowShape.id)) + } + } + this.zr.refreshNextFrame() + } + }, + __onmousemove: function(p) { + if (clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), !this._mousein || !this._enterable) { + var K = p.target, + s = y.getX(p.event), + I = y.getY(p.event); + if (K) { + this._curTarget = K, this._event = p.event, this._event.zrenderX = s, this._event.zrenderY = I; + var m; + if (this._needAxisTrigger && this.component.polar && -1 != (m = this.component.polar.isInside([s, I]))) { + for (var J = this.option.series, H = 0, r = J.length; r > H; H++) { + if (J[H].polarIndex === m && "axis" === this.deepQuery([J[H], this.option], "tooltip.trigger")) { + this._curTarget = null; + break + } + } + } + this._showingTicket = setTimeout(this._tryShow, this._showDelay) + } else { + this._curTarget = !1, this._event = p.event, this._event.zrenderX = s, this._event.zrenderY = I, this._needAxisTrigger && this.component.grid && G.isInside(C, this.component.grid.getArea(), s, I) ? this._showingTicket = setTimeout(this._tryShow, this._showDelay) : this._needAxisTrigger && this.component.polar && -1 != this.component.polar.isInside([s, I]) ? this._showingTicket = setTimeout(this._tryShow, this._showDelay) : (!this._event.connectTrigger && this.messageCenter.dispatch(D.EVENT.TOOLTIP_OUT_GRID, this._event, null, this.myChart), this._hidingTicket = setTimeout(this._hide, this._hideDelay)) + } + } + }, + __onglobalout: function() { + clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), this._hidingTicket = setTimeout(this._hide, this._hideDelay) + }, + __setContent: function(a, i) { + this._tDom && (a === this._curTicket && (this._tDom.innerHTML = i), setTimeout(this._refixed, 20)) + }, + ontooltipHover: function(a, o) { + if (!this._lastTipShape || this._lastTipShape && this._lastTipShape.dataIndex != a.dataIndex) { + this._lastTipShape && this._lastTipShape.tipShape.length > 0 && (this.zr.delShape(this._lastTipShape.tipShape), this.shapeList.length = 2); + for (var l = 0, m = o.length; m > l; l++) { + o[l].zlevel = this.getZlevelBase(), o[l].z = this.getZBase(), o[l].style = B.prototype.getHighlightStyle(o[l].style, o[l].highlightStyle), o[l].draggable = !1, o[l].hoverable = !1, o[l].clickable = !1, o[l].ondragend = null, o[l].ondragover = null, o[l].ondrop = null, this.shapeList.push(o[l]), this.zr.addShape(o[l]) + } + this._lastTipShape = { + dataIndex: a.dataIndex, + tipShape: o + } + } + }, + ondragend: function() { + this._hide() + }, + onlegendSelected: function(a) { + this._selectedMap = a.selected + }, + _setSelectedMap: function() { + this._selectedMap = this.component.legend ? q.clone(this.component.legend.getSelectedMap()) : {} + }, + _isSelected: function(a) { + return null != this._selectedMap[a] ? this._selectedMap[a] : !0 + }, + showTip: function(J) { + if (J) { + var T, M = this.option.series; + if (null != J.seriesIndex) { + T = J.seriesIndex + } else { + for (var P = J.seriesName, l = 0, Q = M.length; Q > l; l++) { + if (M[l].name === P) { + T = l; + break + } + } + } + var S = M[T]; + if (null != S) { + var O = this.myChart.chart[S.type], + Y = "axis" === this.deepQuery([S, this.option], "tooltip.trigger"); + if (O) { + if (Y) { + var X = J.dataIndex; + switch (O.type) { + case D.CHART_TYPE_LINE: + case D.CHART_TYPE_BAR: + case D.CHART_TYPE_K: + case D.CHART_TYPE_RADAR: + if (null == this.component.polar || S.data[0].value.length <= X) { + return + } + var I = S.polarIndex || 0, + R = this.component.polar.getVector(I, X, "max"); + this._event = { + zrenderX: R[0], + zrenderY: R[1] + }, this._showPolarTrigger(I, X) + } + } else { + var H, W, Z = O.shapeList; + switch (O.type) { + case D.CHART_TYPE_LINE: + case D.CHART_TYPE_BAR: + case D.CHART_TYPE_K: + case D.CHART_TYPE_TREEMAP: + case D.CHART_TYPE_SCATTER: + for (var X = J.dataIndex, l = 0, Q = Z.length; Q > l; l++) { + if (null == Z[l]._mark && x.get(Z[l], "seriesIndex") == T && x.get(Z[l], "dataIndex") == X) { + this._curTarget = Z[l], H = Z[l].style.x, W = O.type != D.CHART_TYPE_K ? Z[l].style.y : Z[l].style.y[0]; + break + } + } + break; + case D.CHART_TYPE_RADAR: + for (var X = J.dataIndex, l = 0, Q = Z.length; Q > l; l++) { + if ("polygon" === Z[l].type && x.get(Z[l], "seriesIndex") == T && x.get(Z[l], "dataIndex") == X) { + this._curTarget = Z[l]; + var R = this.component.polar.getCenter(S.polarIndex || 0); + H = R[0], W = R[1]; + break + } + } + break; + case D.CHART_TYPE_PIE: + for (var L = J.name, l = 0, Q = Z.length; Q > l; l++) { + if ("sector" === Z[l].type && x.get(Z[l], "seriesIndex") == T && x.get(Z[l], "name") == L) { + this._curTarget = Z[l]; + var s = this._curTarget.style, + K = (s.startAngle + s.endAngle) / 2 * Math.PI / 180; + H = this._curTarget.style.x + Math.cos(K) * s.r / 1.5, W = this._curTarget.style.y - Math.sin(K) * s.r / 1.5; + break + } + } + break; + case D.CHART_TYPE_MAP: + for (var L = J.name, N = S.mapType, l = 0, Q = Z.length; Q > l; l++) { + if ("text" === Z[l].type && Z[l]._mapType === N && Z[l].style._name === L) { + this._curTarget = Z[l], H = this._curTarget.style.x + this._curTarget.position[0], W = this._curTarget.style.y + this._curTarget.position[1]; + break + } + } + break; + case D.CHART_TYPE_CHORD: + for (var L = J.name, l = 0, Q = Z.length; Q > l; l++) { + if ("sector" === Z[l].type && x.get(Z[l], "name") == L) { + this._curTarget = Z[l]; + var s = this._curTarget.style, + K = (s.startAngle + s.endAngle) / 2 * Math.PI / 180; + return H = this._curTarget.style.x + Math.cos(K) * (s.r - 2), W = this._curTarget.style.y - Math.sin(K) * (s.r - 2), void this.zr.trigger(v.EVENT.MOUSEMOVE, { + zrenderX: H, + zrenderY: W + }) + } + } + break; + case D.CHART_TYPE_FORCE: + for (var L = J.name, l = 0, Q = Z.length; Q > l; l++) { + if ("circle" === Z[l].type && x.get(Z[l], "name") == L) { + this._curTarget = Z[l], H = this._curTarget.position[0], W = this._curTarget.position[1]; + break + } + } + } + null != H && null != W && (this._event = { + zrenderX: H, + zrenderY: W + }, this.zr.addHoverShape(this._curTarget), this.zr.refreshHover(), this._showItemTrigger()) + } + } + } + } + }, + hideTip: function() { + this._hide() + }, + refresh: function(m) { + if (this._zrHeight = this.zr.getHeight(), this._zrWidth = this.zr.getWidth(), this._lastTipShape && this._lastTipShape.tipShape.length > 0 && this.zr.delShape(this._lastTipShape.tipShape), this._lastTipShape = !1, this.shapeList.length = 2, this._lastDataIndex = -1, this._lastSeriesIndex = -1, this._lastItemTriggerId = -1, m) { + this.option = m, this.option.tooltip = this.reformOption(this.option.tooltip), this.option.tooltip.textStyle = q.merge(this.option.tooltip.textStyle, this.ecTheme.textStyle), this._needAxisTrigger = !1, "axis" === this.option.tooltip.trigger && (this._needAxisTrigger = !0); + for (var r = this.option.series, o = 0, p = r.length; p > o; o++) { + if ("axis" === this.query(r[o], "tooltip.trigger")) { + this._needAxisTrigger = !0; + break + } + } + this._showDelay = this.option.tooltip.showDelay, this._hideDelay = this.option.tooltip.hideDelay, this._defaultCssText = this._style(this.option.tooltip), this._setSelectedMap(), this._axisLineWidth = this.option.tooltip.axisPointer.lineStyle.width, this._enterable = this.option.tooltip.enterable, !this._enterable && this._tDom.className.indexOf(v.elementClassName) < 0 && (this._tDom.className += " " + v.elementClassName) + } + if (this.showing) { + var l = this; + setTimeout(function() { + l.zr.trigger(v.EVENT.MOUSEMOVE, l.zr.handler._event) + }, 50) + } + }, + onbeforDispose: function() { + this._lastTipShape && this._lastTipShape.tipShape.length > 0 && this.zr.delShape(this._lastTipShape.tipShape), clearTimeout(this._hidingTicket), clearTimeout(this._showingTicket), this.zr.un(v.EVENT.MOUSEMOVE, this._onmousemove), this.zr.un(v.EVENT.GLOBALOUT, this._onglobalout), this.hasAppend && this.dom.firstChild && this.dom.firstChild.removeChild(this._tDom), this._tDom = null + }, + _encodeHTML: function(a) { + return String(a).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'") + } + }, q.inherits(E, w), u("../component").define("tooltip", E), E + }), d("echarts/component/legend", ["require", "./base", "zrender/shape/Text", "zrender/shape/Rectangle", "zrender/shape/Sector", "../util/shape/Icon", "../util/shape/Candle", "../config", "zrender/tool/util", "zrender/tool/area", "../component"], function(p) { + function B(l, F, m, i, s) { + if (!this.query(i, "legend.data")) { + return void console.error("option.legend.data has not been defined.") + } + u.call(this, l, F, m, i, s); + var E = this; + E._legendSelected = function(a) { + E.__legendSelected(a) + }, E._dispatchHoverLink = function(a) { + return E.__dispatchHoverLink(a) + }, this._colorIndex = 0, this._colorMap = {}, this._selectedMap = {}, this._hasDataMap = {}, this.refresh(i) + } + var u = p("./base"), + x = p("zrender/shape/Text"), + j = p("zrender/shape/Rectangle"), + y = p("zrender/shape/Sector"), + z = p("../util/shape/Icon"), + A = p("../util/shape/Candle"), + v = p("../config"); + v.legend = { + zlevel: 0, + z: 4, + show: !0, + orient: "horizontal", + x: "center", + y: "top", + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderWidth: 0, + padding: 5, + itemGap: 10, + itemWidth: 20, + itemHeight: 14, + textStyle: { + color: "#333" + }, + selectedMode: !0 + }; + var q = p("zrender/tool/util"), + w = p("zrender/tool/area"); + B.prototype = { + type: v.COMPONENT_TYPE_LEGEND, + _buildShape: function() { + if (this.legendOption.show) { + this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._buildItem(); + for (var a = 0, i = this.shapeList.length; i > a; a++) { + this.zr.addShape(this.shapeList[a]) + } + } + }, + _buildItem: function() { + var F, O, I, m, L, N, K, R, Q = this.legendOption.data, + E = Q.length, + M = this.legendOption.textStyle, + r = this.zr.getWidth(), + P = this.zr.getHeight(), + T = this._itemGroupLocation.x, + H = this._itemGroupLocation.y, + n = this.legendOption.itemWidth, + G = this.legendOption.itemHeight, + J = this.legendOption.itemGap; + "vertical" === this.legendOption.orient && "right" === this.legendOption.x && (T = this._itemGroupLocation.x + this._itemGroupLocation.width - n); + for (var S = 0; E > S; S++) { + L = q.merge(Q[S].textStyle || {}, M), N = this.getFont(L), F = this._getName(Q[S]), K = this._getFormatterName(F), "" !== F ? (O = Q[S].icon || this._getSomethingByName(F).type, R = this.getColor(F), "horizontal" === this.legendOption.orient ? 200 > r - T && n + 5 + w.getTextWidth(K, N) + (S === E - 1 || "" === Q[S + 1] ? 0 : J) >= r - T && (T = this._itemGroupLocation.x, H += G + J) : 200 > P - H && G + (S === E - 1 || "" === Q[S + 1] ? 0 : J) >= P - H && ("right" === this.legendOption.x ? T -= this._itemGroupLocation.maxWidth + J : T += this._itemGroupLocation.maxWidth + J, H = this._itemGroupLocation.y), I = this._getItemShapeByType(T, H, n, G, this._selectedMap[F] && this._hasDataMap[F] ? R : "#ccc", O, R), I._name = F, I = new z(I), m = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: T + n + 5, + y: H + G / 2, + color: this._selectedMap[F] ? "auto" === L.color ? R : L.color : "#ccc", + text: K, + textFont: N, + textBaseline: "middle" + }, + highlightStyle: { + color: R, + brushType: "fill" + }, + hoverable: !!this.legendOption.selectedMode, + clickable: !!this.legendOption.selectedMode + }, "vertical" === this.legendOption.orient && "right" === this.legendOption.x && (m.style.x -= n + 10, m.style.textAlign = "right"), m._name = F, m = new x(m), this.legendOption.selectedMode && (I.onclick = m.onclick = this._legendSelected, I.onmouseover = m.onmouseover = this._dispatchHoverLink, I.hoverConnect = m.id, m.hoverConnect = I.id), this.shapeList.push(I), this.shapeList.push(m), "horizontal" === this.legendOption.orient ? T += n + 5 + w.getTextWidth(K, N) + J : H += G + J) : "horizontal" === this.legendOption.orient ? (T = this._itemGroupLocation.x, H += G + J) : ("right" === this.legendOption.x ? T -= this._itemGroupLocation.maxWidth + J : T += this._itemGroupLocation.maxWidth + J, H = this._itemGroupLocation.y) + } + "horizontal" === this.legendOption.orient && "center" === this.legendOption.x && H != this._itemGroupLocation.y && this._mLineOptimize() + }, + _getName: function(a) { + return "undefined" != typeof a.name ? a.name : a + }, + _getFormatterName: function(a) { + var m, l = this.legendOption.formatter; + return m = "function" == typeof l ? l.call(this.myChart, a) : "string" == typeof l ? l.replace("{name}", a) : a + }, + _getFormatterNameFromData: function(a) { + var i = this._getName(a); + return this._getFormatterName(i) + }, + _mLineOptimize: function() { + for (var m = [], s = this._itemGroupLocation.x, o = 2, r = this.shapeList.length; r > o; o++) { + this.shapeList[o].style.x === s ? m.push((this._itemGroupLocation.width - (this.shapeList[o - 1].style.x + w.getTextWidth(this.shapeList[o - 1].style.text, this.shapeList[o - 1].style.textFont) - s)) / 2) : o === r - 1 && m.push((this._itemGroupLocation.width - (this.shapeList[o].style.x + w.getTextWidth(this.shapeList[o].style.text, this.shapeList[o].style.textFont) - s)) / 2) + } + for (var l = -1, o = 1, r = this.shapeList.length; r > o; o++) { + this.shapeList[o].style.x === s && l++, 0 !== m[l] && (this.shapeList[o].style.x += m[l]) + } + }, + _buildBackground: function() { + var a = this.reformCssArray(this.legendOption.padding); + this.shapeList.push(new j({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this._itemGroupLocation.x - a[3], + y: this._itemGroupLocation.y - a[0], + width: this._itemGroupLocation.width + a[3] + a[1], + height: this._itemGroupLocation.height + a[0] + a[2], + brushType: 0 === this.legendOption.borderWidth ? "fill" : "both", + color: this.legendOption.backgroundColor, + strokeColor: this.legendOption.borderColor, + lineWidth: this.legendOption.borderWidth + } + })) + }, + _getItemGroupLocation: function() { + var H = this.legendOption.data, + Q = H.length, + J = this.legendOption.itemGap, + L = this.legendOption.itemWidth + 5, + m = this.legendOption.itemHeight, + M = this.legendOption.textStyle, + O = this.getFont(M), + P = 0, + K = 0, + T = this.reformCssArray(this.legendOption.padding), + S = this.zr.getWidth() - T[1] - T[3], + G = this.zr.getHeight() - T[0] - T[2], + N = 0, + F = 0; + if ("horizontal" === this.legendOption.orient) { + K = m; + for (var R = 0; Q > R; R++) { + if ("" !== this._getName(H[R])) { + var W = w.getTextWidth(this._getFormatterNameFromData(H[R]), H[R].textStyle ? this.getFont(q.merge(H[R].textStyle || {}, M)) : O); + N + L + W + J > S ? (N -= J, P = Math.max(P, N), K += m + J, N = 0) : (N += L + W + J, P = Math.max(P, N - J)) + } else { + N -= J, P = Math.max(P, N), K += m + J, N = 0 + } + } + } else { + for (var R = 0; Q > R; R++) { + F = Math.max(F, w.getTextWidth(this._getFormatterNameFromData(H[R]), H[R].textStyle ? this.getFont(q.merge(H[R].textStyle || {}, M)) : O)) + } + F += L, P = F; + for (var R = 0; Q > R; R++) { + "" !== this._getName(H[R]) ? N + m + J > G ? (P += F + J, N -= J, K = Math.max(K, N), N = 0) : (N += m + J, K = Math.max(K, N - J)) : (P += F + J, N -= J, K = Math.max(K, N), N = 0) + } + } + S = this.zr.getWidth(), G = this.zr.getHeight(); + var I; + switch (this.legendOption.x) { + case "center": + I = Math.floor((S - P) / 2); + break; + case "left": + I = T[3] + this.legendOption.borderWidth; + break; + case "right": + I = S - P - T[1] - T[3] - 2 * this.legendOption.borderWidth; + break; + default: + I = this.parsePercent(this.legendOption.x, S) + } + var E; + switch (this.legendOption.y) { + case "top": + E = T[0] + this.legendOption.borderWidth; + break; + case "bottom": + E = G - K - T[0] - T[2] - 2 * this.legendOption.borderWidth; + break; + case "center": + E = Math.floor((G - K) / 2); + break; + default: + E = this.parsePercent(this.legendOption.y, G) + } + return { + x: I, + y: E, + width: P, + height: K, + maxWidth: F + } + }, + _getSomethingByName: function(m) { + for (var H, s = this.option.series, E = 0, l = s.length; l > E; E++) { + if (s[E].name === m) { + return { + type: s[E].type, + series: s[E], + seriesIndex: E, + data: null, + dataIndex: -1 + } + } + if (s[E].type === v.CHART_TYPE_PIE || s[E].type === v.CHART_TYPE_RADAR || s[E].type === v.CHART_TYPE_CHORD || s[E].type === v.CHART_TYPE_FORCE || s[E].type === v.CHART_TYPE_FUNNEL || s[E].type === v.CHART_TYPE_TREEMAP) { + H = s[E].categories || s[E].data || s[E].nodes; + for (var F = 0, G = H.length; G > F; F++) { + if (H[F].name === m) { + return { + type: s[E].type, + series: s[E], + seriesIndex: E, + data: H[F], + dataIndex: F + } + } + } + } + } + return { + type: "bar", + series: null, + seriesIndex: -1, + data: null, + dataIndex: -1 + } + }, + _getItemShapeByType: function(E, M, G, I, l, J, K) { + var L, F = "#ccc" === l ? K : l, + H = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + iconType: "legendicon" + J, + x: E, + y: M, + width: G, + height: I, + color: l, + strokeColor: l, + lineWidth: 2 + }, + highlightStyle: { + color: F, + strokeColor: F, + lineWidth: 1 + }, + hoverable: this.legendOption.selectedMode, + clickable: this.legendOption.selectedMode + }; + if (J.match("image")) { + var L = J.replace(new RegExp("^image:\\/\\/"), ""); + J = "image" + } + switch (J) { + case "line": + H.style.brushType = "stroke", H.highlightStyle.lineWidth = 3; + break; + case "radar": + case "venn": + case "tree": + case "treemap": + case "scatter": + H.highlightStyle.lineWidth = 3; + break; + case "k": + H.style.brushType = "both", H.highlightStyle.lineWidth = 3, H.highlightStyle.color = H.style.color = this.deepQuery([this.ecTheme, v], "k.itemStyle.normal.color") || "#fff", H.style.strokeColor = "#ccc" != l ? this.deepQuery([this.ecTheme, v], "k.itemStyle.normal.lineStyle.color") || "#ff3200" : l; + break; + case "image": + H.style.iconType = "image", H.style.image = L, "#ccc" === l && (H.style.opacity = 0.5) + } + return H + }, + __legendSelected: function(a) { + var m = a.target._name; + if ("single" === this.legendOption.selectedMode) { + for (var l in this._selectedMap) { + this._selectedMap[l] = !1 + } + } + this._selectedMap[m] = !this._selectedMap[m], this.messageCenter.dispatch(v.EVENT.LEGEND_SELECTED, a.event, { + selected: this._selectedMap, + target: m + }, this.myChart) + }, + __dispatchHoverLink: function(a) { + this.messageCenter.dispatch(v.EVENT.LEGEND_HOVERLINK, a.event, { + target: a.target._name + }, this.myChart) + }, + refresh: function(m) { + if (m) { + this.option = m || this.option, this.option.legend = this.reformOption(this.option.legend), this.legendOption = this.option.legend; + var K, F, G, l, H = this.legendOption.data || []; + if (this.legendOption.selected) { + for (var I in this.legendOption.selected) { + this._selectedMap[I] = "undefined" != typeof this._selectedMap[I] ? this._selectedMap[I] : this.legendOption.selected[I] + } + } + for (var J = 0, E = H.length; E > J; J++) { + K = this._getName(H[J]), "" !== K && (F = this._getSomethingByName(K), F.series ? (this._hasDataMap[K] = !0, l = !F.data || F.type !== v.CHART_TYPE_PIE && F.type !== v.CHART_TYPE_FORCE && F.type !== v.CHART_TYPE_FUNNEL ? [F.series] : [F.data, F.series], G = this.getItemStyleColor(this.deepQuery(l, "itemStyle.normal.color"), F.seriesIndex, F.dataIndex, F.data), G && F.type != v.CHART_TYPE_K && this.setColor(K, G), this._selectedMap[K] = null != this._selectedMap[K] ? this._selectedMap[K] : !0) : this._hasDataMap[K] = !1) + } + } + this.clear(), this._buildShape() + }, + getRelatedAmount: function(m) { + for (var J, E = 0, F = this.option.series, l = 0, G = F.length; G > l; l++) { + if (F[l].name === m && E++, F[l].type === v.CHART_TYPE_PIE || F[l].type === v.CHART_TYPE_RADAR || F[l].type === v.CHART_TYPE_CHORD || F[l].type === v.CHART_TYPE_FORCE || F[l].type === v.CHART_TYPE_FUNNEL) { + J = F[l].type != v.CHART_TYPE_FORCE ? F[l].data : F[l].categories; + for (var H = 0, I = J.length; I > H; H++) { + J[H].name === m && "-" != J[H].value && E++ + } + } + } + return E + }, + setColor: function(a, i) { + this._colorMap[a] = i + }, + getColor: function(a) { + return this._colorMap[a] || (this._colorMap[a] = this.zr.getColor(this._colorIndex++)), this._colorMap[a] + }, + hasColor: function(a) { + return this._colorMap[a] ? this._colorMap[a] : !1 + }, + add: function(m, s) { + for (var o = this.legendOption.data, r = 0, l = o.length; l > r; r++) { + if (this._getName(o[r]) === m) { + return + } + } + this.legendOption.data.push(m), this.setColor(m, s), this._selectedMap[m] = !0, this._hasDataMap[m] = !0 + }, + del: function(a) { + for (var o = this.legendOption.data, l = 0, m = o.length; m > l; l++) { + if (this._getName(o[l]) === a) { + return this.legendOption.data.splice(l, 1) + } + } + }, + getItemShape: function(a) { + if (null != a) { + for (var o, l = 0, m = this.shapeList.length; m > l; l++) { + if (o = this.shapeList[l], o._name === a && "text" != o.type) { + return o + } + } + } + }, + setItemShape: function(m, s) { + for (var o, r = 0, l = this.shapeList.length; l > r; r++) { + o = this.shapeList[r], o._name === m && "text" != o.type && (this._selectedMap[m] || (s.style.color = "#ccc", s.style.strokeColor = "#ccc"), this.zr.modShape(o.id, s)) + } + }, + isSelected: function(a) { + return "undefined" != typeof this._selectedMap[a] ? this._selectedMap[a] : !0 + }, + getSelectedMap: function() { + return this._selectedMap + }, + setSelected: function(a, m) { + if ("single" === this.legendOption.selectedMode) { + for (var l in this._selectedMap) { + this._selectedMap[l] = !1 + } + } + this._selectedMap[a] = m, this.messageCenter.dispatch(v.EVENT.LEGEND_SELECTED, null, { + selected: this._selectedMap, + target: a + }, this.myChart) + }, + onlegendSelected: function(a, o) { + var l = a.selected; + for (var m in l) { + this._selectedMap[m] != l[m] && (o.needRefresh = !0), this._selectedMap[m] = l[m] + } + } + }; + var D = { + line: function(a, m) { + var l = m.height / 2; + a.moveTo(m.x, m.y + l), a.lineTo(m.x + m.width, m.y + l) + }, + pie: function(m, F) { + var o = F.x, + s = F.y, + l = F.width, + E = F.height; + y.prototype.buildPath(m, { + x: o + l / 2, + y: s + E + 2, + r: E, + r0: 6, + startAngle: 45, + endAngle: 135 + }) + }, + eventRiver: function(m, F) { + var r = F.x, + s = F.y, + l = F.width, + E = F.height; + m.moveTo(r, s + E), m.bezierCurveTo(r + l, s + E, r, s + 4, r + l, s + 4), m.lineTo(r + l, s), m.bezierCurveTo(r, s, r + l, s + E - 4, r, s + E - 4), m.lineTo(r, s + E) + }, + k: function(m, F) { + var r = F.x, + s = F.y, + l = F.width, + E = F.height; + A.prototype.buildPath(m, { + x: r + l / 2, + y: [s + 1, s + 1, s + E - 6, s + E], + width: l - 6 + }) + }, + bar: function(m, H) { + var s = H.x, + E = H.y + 1, + l = H.width, + F = H.height - 2, + G = 3; + m.moveTo(s + G, E), m.lineTo(s + l - G, E), m.quadraticCurveTo(s + l, E, s + l, E + G), m.lineTo(s + l, E + F - G), m.quadraticCurveTo(s + l, E + F, s + l - G, E + F), m.lineTo(s + G, E + F), m.quadraticCurveTo(s, E + F, s, E + F - G), m.lineTo(s, E + G), m.quadraticCurveTo(s, E, s + G, E) + }, + force: function(a, i) { + z.prototype.iconLibrary.circle(a, i) + }, + radar: function(F, O) { + var H = 6, + K = O.x + O.width / 2, + E = O.y + O.height / 2, + L = O.height / 2, + M = 2 * Math.PI / H, + N = -Math.PI / 2, + I = K + L * Math.cos(N), + G = E + L * Math.sin(N); + F.moveTo(I, G), N += M; + for (var J = 0, P = H - 1; P > J; J++) { + F.lineTo(K + L * Math.cos(N), E + L * Math.sin(N)), N += M + } + F.lineTo(I, G) + } + }; + D.chord = D.pie, D.map = D.bar; + for (var C in D) { + z.prototype.iconLibrary["legendicon" + C] = D[C] + } + return q.inherits(B, u), p("../component").define("legend", B), B + }), d("echarts/util/ecData", [], function() { + function a(q, A, u, w, p, x, y, z) { + var v; + return "undefined" != typeof w && (v = null == w.value ? w : w.value), q._echartsData = { + _series: A, + _seriesIndex: u, + _data: w, + _dataIndex: p, + _name: x, + _value: v, + _special: y, + _special2: z + }, q._echartsData + } + + function m(n, p) { + var o = n._echartsData; + if (!p) { + return o + } + switch (p) { + case "series": + case "seriesIndex": + case "data": + case "dataIndex": + case "name": + case "value": + case "special": + case "special2": + return o && o["_" + p] + } + return null + } + + function j(n, p, o) { + switch (n._echartsData = n._echartsData || {}, p) { + case "series": + case "seriesIndex": + case "data": + case "dataIndex": + case "name": + case "value": + case "special": + case "special2": + n._echartsData["_" + p] = o + } + } + + function l(i, n) { + n._echartsData = { + _series: i._echartsData._series, + _seriesIndex: i._echartsData._seriesIndex, + _data: i._echartsData._data, + _dataIndex: i._echartsData._dataIndex, + _name: i._echartsData._name, + _value: i._echartsData._value, + _special: i._echartsData._special, + _special2: i._echartsData._special2 + } + } + return { + pack: a, + set: j, + get: m, + clone: l + } + }), d("echarts/chart", [], function() { + var a = {}, + i = {}; + return a.define = function(e, j) { + return i[e] = j, a + }, a.get = function(j) { + return i[j] + }, a + }), d("zrender/tool/color", ["require", "../tool/util"], function(ae) { + function aG(a) { + ad = a + } + + function am() { + ad = ax + } + + function aw(a, i) { + return a = 0 | a, i = i || ad, i[a % i.length] + } + + function q(a) { + Z = a + } + + function ay() { + al = Z + } + + function aC() { + return Z + } + + function aE(p, B, v, x, m, y, z) { + az || (az = aB.getContext()); + for (var A = az.createRadialGradient(p, B, v, x, m, y), w = 0, u = z.length; u > w; w++) { + A.addColorStop(z[w][0], z[w][1]) + } + return A.__nonRecursion = !0, A + } + + function ar(m, y, p, u, l) { + az || (az = aB.getContext()); + for (var v = az.createLinearGradient(m, y, p, u), w = 0, x = l.length; x > w; w++) { + v.addColorStop(l[w][0], l[w][1]) + } + return v.__nonRecursion = !0, v + } + + function ak(v, E, x) { + v = aA(v), E = aA(E), v = an(v), E = an(E); + for (var A = [], p = (E[0] - v[0]) / x, B = (E[1] - v[1]) / x, C = (E[2] - v[2]) / x, D = (E[3] - v[3]) / x, y = 0, w = v[0], z = v[1], F = v[2], u = v[3]; x > y; y++) { + A[y] = aL([aF(Math.floor(w), [0, 255]), aF(Math.floor(z), [0, 255]), aF(Math.floor(F), [0, 255]), u.toFixed(4) - 0], "rgba"), w += p, z += B, F += C, u += D + } + return w = E[0], z = E[1], F = E[2], u = E[3], A[y] = aL([w, z, F, u], "rgba"), A + } + + function au(m, w) { + var p = [], + s = m.length; + if (void 0 === w && (w = 20), 1 === s) { + p = ak(m[0], m[0], w) + } else { + if (s > 1) { + for (var l = 0, u = s - 1; u > l; l++) { + var v = ak(m[l], m[l + 1], w); + u - 1 > l && v.pop(), p = p.concat(v) + } + } + } + return p + } + + function aL(a, m) { + if (m = m || "rgb", a && (3 === a.length || 4 === a.length)) { + if (a = ab(a, function(i) { + return i > 1 ? Math.ceil(i) : i + }), m.indexOf("hex") > -1) { + return "#" + ((1 << 24) + (a[0] << 16) + (a[1] << 8) + +a[2]).toString(16).slice(1) + } + if (m.indexOf("hs") > -1) { + var l = ab(a.slice(1, 3), function(i) { + return i + "%" + }); + a[1] = l[0], a[2] = l[1] + } + return m.indexOf("a") > -1 ? (3 === a.length && a.push(1), a[3] = aF(a[3], [0, 1]), m + "(" + a.slice(0, 4).join(",") + ")") : m + "(" + a.slice(0, 3).join(",") + ")" + } + } + + function aJ(a) { + a = at(a), a.indexOf("rgba") < 0 && (a = aA(a)); + var m = [], + l = 0; + return a.replace(/[\d.]+/g, function(i) { + i = 3 > l ? 0 | i : +i, m[l++] = i + }), m + } + + function ac(a, o) { + if (!af(a)) { + return a + } + var l = an(a), + m = l[3]; + return "undefined" == typeof m && (m = 1), a.indexOf("hsb") > -1 ? l = ah(l) : a.indexOf("hsl") > -1 && (l = aH(l)), o.indexOf("hsb") > -1 || o.indexOf("hsv") > -1 ? l = Q(l) : o.indexOf("hsl") > -1 && (l = av(l)), l[3] = m, aL(l, o) + } + + function aA(a) { + return ac(a, "rgba") + } + + function aa(a) { + return ac(a, "rgb") + } + + function aI(a) { + return ac(a, "hex") + } + + function aQ(a) { + return ac(a, "hsva") + } + + function ai(a) { + return ac(a, "hsv") + } + + function Y(a) { + return ac(a, "hsba") + } + + function ag(a) { + return ac(a, "hsb") + } + + function ap(a) { + return ac(a, "hsla") + } + + function aO(a) { + return ac(a, "hsl") + } + + function j(a) { + for (var i in aj) { + if (aI(aj[i]) === aI(a)) { + return i + } + } + return null + } + + function at(a) { + return String(a).replace(/\s+/g, "") + } + + function aN(a) { + if (aj[a] && (a = aj[a]), a = at(a), a = a.replace(/hsv/i, "hsb"), /^#[\da-f]{3}$/i.test(a)) { + a = parseInt(a.slice(1), 16); + var o = (3840 & a) << 8, + l = (240 & a) << 4, + m = 15 & a; + a = "#" + ((1 << 24) + (o << 4) + o + (l << 4) + l + (m << 4) + m).toString(16).slice(1) + } + return a + } + + function aP(m, r) { + if (!af(m)) { + return m + } + var o = r > 0 ? 1 : -1; + "undefined" == typeof r && (r = 0), r = Math.abs(r) > 1 ? 1 : Math.abs(r), m = aa(m); + for (var p = an(m), l = 0; 3 > l; l++) { + p[l] = 1 === o ? p[l] * (1 - r) | 0 : (255 - p[l]) * r + p[l] | 0 + } + return "rgb(" + p.join(",") + ")" + } + + function aK(a) { + if (!af(a)) { + return a + } + var i = an(aA(a)); + return i = ab(i, function(l) { + return 255 - l + }), aL(i, "rgb") + } + + function aM(u, D, w) { + if (!af(u) || !af(D)) { + return u + } + "undefined" == typeof w && (w = 0.5), w = 1 - aF(w, [0, 1]); + for (var z = 2 * w - 1, p = an(aA(u)), A = an(aA(D)), B = p[3] - A[3], C = ((z * B === -1 ? z : (z + B) / (1 + z * B)) + 1) / 2, x = 1 - C, v = [], y = 0; 3 > y; y++) { + v[y] = p[y] * C + A[y] * x + } + var E = p[3] * w + A[3] * (1 - w); + return E = Math.max(0, Math.min(1, E)), 1 === p[3] && 1 === A[3] ? aL(v, "rgb") : (v[3] = E, aL(v, "rgba")) + } + + function aq() { + return "#" + (Math.random().toString(16) + "0000").slice(2, 8) + } + + function an(u) { + u = aN(u); + var D = u.match(aD); + if (null === D) { + throw new Error("The color format error") + } + var w, z, p, A = []; + if (D[2]) { + w = D[2].replace("#", "").split(""), p = [w[0] + w[1], w[2] + w[3], w[4] + w[5]], A = ab(p, function(a) { + return aF(parseInt(a, 16), [0, 255]) + }) + } else { + if (D[4]) { + var B = D[4].split(","); + z = B[3], p = B.slice(0, 3), A = ab(p, function(a) { + return a = Math.floor(a.indexOf("%") > 0 ? 2.55 * parseInt(a, 0) : a), aF(a, [0, 255]) + }), "undefined" != typeof z && A.push(aF(parseFloat(z), [0, 1])) + } else { + if (D[5] || D[6]) { + var C = (D[5] || D[6]).split(","), + x = parseInt(C[0], 0) / 360, + v = C[1], + y = C[2]; + z = C[3], A = ab([v, y], function(a) { + return aF(parseFloat(a) / 100, [0, 1]) + }), A.unshift(x), "undefined" != typeof z && A.push(aF(parseFloat(z), [0, 1])) + } + } + } + return A + } + + function ao(a, m) { + if (!af(a)) { + return a + } + null === m && (m = 1); + var l = an(aA(a)); + return l[3] = aF(Number(m).toFixed(4), [0, 1]), aL(l, "rgba") + } + + function ab(a, o) { + if ("function" != typeof o) { + throw new TypeError + } + for (var l = a ? a.length : 0, m = 0; l > m; m++) { + a[m] = o(a[m]) + } + return a + } + + function aF(a, i) { + return a <= i[0] ? a = i[0] : a >= i[1] && (a = i[1]), a + } + + function af(a) { + return a instanceof Array || "string" == typeof a + } + + function ah(w) { + var G, y, B, u = w[0], + C = w[1], + E = w[2]; + if (0 === C) { + G = 255 * E, y = 255 * E, B = 255 * E + } else { + var F = 6 * u; + 6 === F && (F = 0); + var z = 0 | F, + x = E * (1 - C), + A = E * (1 - C * (F - z)), + I = E * (1 - C * (1 - (F - z))), + H = 0, + v = 0, + D = 0; + 0 === z ? (H = E, v = I, D = x) : 1 === z ? (H = A, v = E, D = x) : 2 === z ? (H = x, v = E, D = I) : 3 === z ? (H = x, v = A, D = E) : 4 === z ? (H = I, v = x, D = E) : (H = E, v = x, D = A), G = 255 * H, y = 255 * v, B = 255 * D + } + return [G, y, B] + } + + function aH(p) { + var A, u, w, m = p[0], + x = p[1], + y = p[2]; + if (0 === x) { + A = 255 * y, u = 255 * y, w = 255 * y + } else { + var z; + z = 0.5 > y ? y * (1 + x) : y + x - x * y; + var v = 2 * y - z; + A = 255 * aR(v, z, m + 1 / 3), u = 255 * aR(v, z, m), w = 255 * aR(v, z, m - 1 / 3) + } + return [A, u, w] + } + + function aR(a, m, l) { + return 0 > l && (l += 1), l > 1 && (l -= 1), 1 > 6 * l ? a + 6 * (m - a) * l : 1 > 2 * l ? m : 2 > 3 * l ? a + (m - a) * (2 / 3 - l) * 6 : a + } + + function Q(u) { + var D, w, z = u[0] / 255, + p = u[1] / 255, + A = u[2] / 255, + B = Math.min(z, p, A), + C = Math.max(z, p, A), + x = C - B, + v = C; + if (0 === x) { + D = 0, w = 0 + } else { + w = x / C; + var y = ((C - z) / 6 + x / 2) / x, + F = ((C - p) / 6 + x / 2) / x, + E = ((C - A) / 6 + x / 2) / x; + z === C ? D = E - F : p === C ? D = 1 / 3 + y - E : A === C && (D = 2 / 3 + F - y), 0 > D && (D += 1), D > 1 && (D -= 1) + } + return D = 360 * D, w = 100 * w, v = 100 * v, [D, w, v] + } + + function av(u) { + var D, w, z = u[0] / 255, + p = u[1] / 255, + A = u[2] / 255, + B = Math.min(z, p, A), + C = Math.max(z, p, A), + x = C - B, + v = (C + B) / 2; + if (0 === x) { + D = 0, w = 0 + } else { + w = 0.5 > v ? x / (C + B) : x / (2 - C - B); + var y = ((C - z) / 6 + x / 2) / x, + F = ((C - p) / 6 + x / 2) / x, + E = ((C - A) / 6 + x / 2) / x; + z === C ? D = E - F : p === C ? D = 1 / 3 + y - E : A === C && (D = 2 / 3 + F - y), 0 > D && (D += 1), D > 1 && (D -= 1) + } + return D = 360 * D, w = 100 * w, v = 100 * v, [D, w, v] + } + var az, aB = ae("../tool/util"), + ad = ["#ff9277", " #dddd00", " #ffc877", " #bbe3ff", " #d5ffbb", "#bbbbff", " #ddb000", " #b0dd00", " #e2bbff", " #ffbbe3", "#ff7777", " #ff9900", " #83dd00", " #77e3ff", " #778fff", "#c877ff", " #ff77ab", " #ff6600", " #aa8800", " #77c7ff", "#ad77ff", " #ff77ff", " #dd0083", " #777700", " #00aa00", "#0088aa", " #8400dd", " #aa0088", " #dd0000", " #772e00"], + ax = ad, + Z = "rgba(255,255,0,0.5)", + al = Z, + aD = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i, + aj = { + aliceblue: "#f0f8ff", + antiquewhite: "#faebd7", + aqua: "#0ff", + aquamarine: "#7fffd4", + azure: "#f0ffff", + beige: "#f5f5dc", + bisque: "#ffe4c4", + black: "#000", + blanchedalmond: "#ffebcd", + blue: "#00f", + blueviolet: "#8a2be2", + brown: "#a52a2a", + burlywood: "#deb887", + cadetblue: "#5f9ea0", + chartreuse: "#7fff00", + chocolate: "#d2691e", + coral: "#ff7f50", + cornflowerblue: "#6495ed", + cornsilk: "#fff8dc", + crimson: "#dc143c", + cyan: "#0ff", + darkblue: "#00008b", + darkcyan: "#008b8b", + darkgoldenrod: "#b8860b", + darkgray: "#a9a9a9", + darkgrey: "#a9a9a9", + darkgreen: "#006400", + darkkhaki: "#bdb76b", + darkmagenta: "#8b008b", + darkolivegreen: "#556b2f", + darkorange: "#ff8c00", + darkorchid: "#9932cc", + darkred: "#8b0000", + darksalmon: "#e9967a", + darkseagreen: "#8fbc8f", + darkslateblue: "#483d8b", + darkslategray: "#2f4f4f", + darkslategrey: "#2f4f4f", + darkturquoise: "#00ced1", + darkviolet: "#9400d3", + deeppink: "#ff1493", + deepskyblue: "#00bfff", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1e90ff", + firebrick: "#b22222", + floralwhite: "#fffaf0", + forestgreen: "#228b22", + fuchsia: "#f0f", + gainsboro: "#dcdcdc", + ghostwhite: "#f8f8ff", + gold: "#ffd700", + goldenrod: "#daa520", + gray: "#808080", + grey: "#808080", + green: "#008000", + greenyellow: "#adff2f", + honeydew: "#f0fff0", + hotpink: "#ff69b4", + indianred: "#cd5c5c", + indigo: "#4b0082", + ivory: "#fffff0", + khaki: "#f0e68c", + lavender: "#e6e6fa", + lavenderblush: "#fff0f5", + lawngreen: "#7cfc00", + lemonchiffon: "#fffacd", + lightblue: "#add8e6", + lightcoral: "#f08080", + lightcyan: "#e0ffff", + lightgoldenrodyellow: "#fafad2", + lightgray: "#d3d3d3", + lightgrey: "#d3d3d3", + lightgreen: "#90ee90", + lightpink: "#ffb6c1", + lightsalmon: "#ffa07a", + lightseagreen: "#20b2aa", + lightskyblue: "#87cefa", + lightslategray: "#789", + lightslategrey: "#789", + lightsteelblue: "#b0c4de", + lightyellow: "#ffffe0", + lime: "#0f0", + limegreen: "#32cd32", + linen: "#faf0e6", + magenta: "#f0f", + maroon: "#800000", + mediumaquamarine: "#66cdaa", + mediumblue: "#0000cd", + mediumorchid: "#ba55d3", + mediumpurple: "#9370d8", + mediumseagreen: "#3cb371", + mediumslateblue: "#7b68ee", + mediumspringgreen: "#00fa9a", + mediumturquoise: "#48d1cc", + mediumvioletred: "#c71585", + midnightblue: "#191970", + mintcream: "#f5fffa", + mistyrose: "#ffe4e1", + moccasin: "#ffe4b5", + navajowhite: "#ffdead", + navy: "#000080", + oldlace: "#fdf5e6", + olive: "#808000", + olivedrab: "#6b8e23", + orange: "#ffa500", + orangered: "#ff4500", + orchid: "#da70d6", + palegoldenrod: "#eee8aa", + palegreen: "#98fb98", + paleturquoise: "#afeeee", + palevioletred: "#d87093", + papayawhip: "#ffefd5", + peachpuff: "#ffdab9", + peru: "#cd853f", + pink: "#ffc0cb", + plum: "#dda0dd", + powderblue: "#b0e0e6", + purple: "#800080", + red: "#f00", + rosybrown: "#bc8f8f", + royalblue: "#4169e1", + saddlebrown: "#8b4513", + salmon: "#fa8072", + sandybrown: "#f4a460", + seagreen: "#2e8b57", + seashell: "#fff5ee", + sienna: "#a0522d", + silver: "#c0c0c0", + skyblue: "#87ceeb", + slateblue: "#6a5acd", + slategray: "#708090", + slategrey: "#708090", + snow: "#fffafa", + springgreen: "#00ff7f", + steelblue: "#4682b4", + tan: "#d2b48c", + teal: "#008080", + thistle: "#d8bfd8", + tomato: "#ff6347", + turquoise: "#40e0d0", + violet: "#ee82ee", + wheat: "#f5deb3", + white: "#fff", + whitesmoke: "#f5f5f5", + yellow: "#ff0", + yellowgreen: "#9acd32" + }; + return { + customPalette: aG, + resetPalette: am, + getColor: aw, + getHighlightColor: aC, + customHighlight: q, + resetHighlight: ay, + getRadialGradient: aE, + getLinearGradient: ar, + getGradientColors: au, + getStepColors: ak, + reverse: aK, + mix: aM, + lift: aP, + trim: at, + random: aq, + toRGB: aa, + toRGBA: aA, + toHex: aI, + toHSL: aO, + toHSLA: ap, + toHSB: ag, + toHSBA: Y, + toHSV: ai, + toHSVA: aQ, + toName: j, + toColor: aL, + toArray: aJ, + alpha: ao, + getData: an + } + }), d("echarts/component/timeline", ["require", "./base", "zrender/shape/Rectangle", "../util/shape/Icon", "../util/shape/Chain", "../config", "zrender/tool/util", "zrender/tool/area", "zrender/tool/event", "../component"], function(p) { + function B(m, D, n, l, s) { + x.call(this, m, D, n, l, s); + var C = this; + if (C._onclick = function(a) { + return C.__onclick(a) + }, C._ondrift = function(a, i) { + return C.__ondrift(this, a, i) + }, C._ondragend = function() { + return C.__ondragend() + }, C._setCurrentOption = function() { + var a = C.timelineOption; + C.currentIndex %= a.data.length; + var i = C.options[C.currentIndex] || {}; + C.myChart._setOption(i, a.notMerge, !0), C.messageCenter.dispatch(A.EVENT.TIMELINE_CHANGED, null, { + currentIndex: C.currentIndex, + data: null != a.data[C.currentIndex].name ? a.data[C.currentIndex].name : a.data[C.currentIndex] + }, C.myChart) + }, C._onFrame = function() { + C._setCurrentOption(), C._syncHandleShape(), C.timelineOption.autoPlay && (C.playTicket = setTimeout(function() { + return C.currentIndex += 1, !C.timelineOption.loop && C.currentIndex >= C.timelineOption.data.length ? (C.currentIndex = C.timelineOption.data.length - 1, void C.stop()) : void C._onFrame() + }, C.timelineOption.playInterval)) + }, this.setTheme(!1), this.options = this.option.options, this.currentIndex = this.timelineOption.currentIndex % this.timelineOption.data.length, this.timelineOption.notMerge || 0 === this.currentIndex || (this.options[this.currentIndex] = v.merge(this.options[this.currentIndex], this.options[0])), this.timelineOption.show && (this._buildShape(), this._syncHandleShape()), this._setCurrentOption(), this.timelineOption.autoPlay) { + var C = this; + this.playTicket = setTimeout(function() { + C.play() + }, null != this.ecTheme.animationDuration ? this.ecTheme.animationDuration : A.animationDuration) + } + } + + function u(C, K) { + var E = 2, + H = K.x + E, + o = K.y + E + 2, + I = K.width - E, + J = K.height - E, + F = K.symbol; + if ("last" === F) { + C.moveTo(H + I - 2, o + J / 3), C.lineTo(H + I - 2, o), C.lineTo(H + 2, o + J / 2), C.lineTo(H + I - 2, o + J), C.lineTo(H + I - 2, o + J / 3 * 2), C.moveTo(H, o), C.lineTo(H, o) + } else { + if ("next" === F) { + C.moveTo(H + 2, o + J / 3), C.lineTo(H + 2, o), C.lineTo(H + I - 2, o + J / 2), C.lineTo(H + 2, o + J), C.lineTo(H + 2, o + J / 3 * 2), C.moveTo(H, o), C.lineTo(H, o) + } else { + if ("play" === F) { + if ("stop" === K.status) { + C.moveTo(H + 2, o), C.lineTo(H + I - 2, o + J / 2), C.lineTo(H + 2, o + J), C.lineTo(H + 2, o) + } else { + var D = "both" === K.brushType ? 2 : 3; + C.rect(H + 2, o, D, J), C.rect(H + I - D - 2, o, D, J) + } + } else { + if (F.match("image")) { + var G = ""; + G = F.replace(new RegExp("^image:\\/\\/"), ""), F = y.prototype.iconLibrary.image, F(C, { + x: H, + y: o, + width: I, + height: J, + image: G + }) + } + } + } + } + } + var x = p("./base"), + j = p("zrender/shape/Rectangle"), + y = p("../util/shape/Icon"), + z = p("../util/shape/Chain"), + A = p("../config"); + A.timeline = { + zlevel: 0, + z: 4, + show: !0, + type: "time", + notMerge: !1, + realtime: !0, + x: 80, + x2: 80, + y2: 0, + height: 50, + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderWidth: 0, + padding: 5, + controlPosition: "left", + autoPlay: !1, + loop: !0, + playInterval: 2000, + lineStyle: { + width: 1, + color: "#666", + type: "dashed" + }, + label: { + show: !0, + interval: "auto", + rotate: 0, + textStyle: { + color: "#333" + } + }, + checkpointStyle: { + symbol: "auto", + symbolSize: "auto", + color: "auto", + borderColor: "auto", + borderWidth: "auto", + label: { + show: !1, + textStyle: { + color: "auto" + } + } + }, + controlStyle: { + itemSize: 15, + itemGap: 5, + normal: { + color: "#333" + }, + emphasis: { + color: "#1e90ff" + } + }, + symbol: "emptyDiamond", + symbolSize: 4, + currentIndex: 0 + }; + var v = p("zrender/tool/util"), + q = p("zrender/tool/area"), + w = p("zrender/tool/event"); + return B.prototype = { + type: A.COMPONENT_TYPE_TIMELINE, + _buildShape: function() { + if (this._location = this._getLocation(), this._buildBackground(), this._buildControl(), this._chainPoint = this._getChainPoint(), this.timelineOption.label.show) { + for (var a = this._getInterval(), o = 0, l = this._chainPoint.length; l > o; o += a) { + this._chainPoint[o].showLabel = !0 + } + } + this._buildChain(), this._buildHandle(); + for (var o = 0, m = this.shapeList.length; m > o; o++) { + this.zr.addShape(this.shapeList[o]) + } + }, + _getLocation: function() { + var C, K = this.timelineOption, + E = this.reformCssArray(this.timelineOption.padding), + G = this.zr.getWidth(), + m = this.parsePercent(K.x, G), + H = this.parsePercent(K.x2, G); + null == K.width ? (C = G - m - H, H = G - H) : (C = this.parsePercent(K.width, G), H = m + C); + var I, J, F = this.zr.getHeight(), + D = this.parsePercent(K.height, F); + return null != K.y ? (I = this.parsePercent(K.y, F), J = I + D) : (J = F - this.parsePercent(K.y2, F), I = J - D), { + x: m + E[3], + y: I + E[0], + x2: H - E[1], + y2: J - E[2], + width: C - E[1] - E[3], + height: D - E[0] - E[2] + } + }, + _getReformedLabel: function(a) { + var o = this.timelineOption, + l = null != o.data[a].name ? o.data[a].name : o.data[a], + m = o.data[a].formatter || o.label.formatter; + return m && ("function" == typeof m ? l = m.call(this.myChart, l) : "string" == typeof m && (l = m.replace("{value}", l))), l + }, + _getInterval: function() { + var E = this._chainPoint, + M = this.timelineOption, + F = M.label.interval; + if ("auto" === F) { + var I = M.label.textStyle.fontSize, + C = M.data, + J = M.data.length; + if (J > 3) { + var K, L, G = !1; + for (F = 0; !G && J > F;) { + F++, G = !0; + for (var H = F; J > H; H += F) { + if (K = E[H].x - E[H - F].x, 0 !== M.label.rotate) { + L = I + } else { + if (C[H].textStyle) { + L = q.getTextWidth(E[H].name, E[H].textFont) + } else { + var O = E[H].name + "", + N = (O.match(/\w/g) || "").length, + D = O.length - N; + L = N * I * 2 / 3 + D * I + } + } + if (L > K) { + G = !1; + break + } + } + } + } else { + F = 1 + } + } else { + F = F - 0 + 1 + } + return F + }, + _getChainPoint: function() { + function F(a) { + return null != I[a].name ? I[a].name : I[a] + "" + } + var R, J = this.timelineOption, + M = J.symbol.toLowerCase(), + l = J.symbolSize, + N = J.label.rotate, + P = J.label.textStyle, + Q = this.getFont(P), + I = J.data, + L = this._location.x, + W = this._location.y + this._location.height / 4 * 3, + T = this._location.x2 - this._location.x, + E = I.length, + O = []; + if (E > 1) { + var D = T / E; + if (D = D > 50 ? 50 : 20 > D ? 5 : D, T -= 2 * D, "number" === J.type) { + for (var S = 0; E > S; S++) { + O.push(L + D + T / (E - 1) * S) + } + } else { + O[0] = new Date(F(0).replace(/-/g, "/")), O[E - 1] = new Date(F(E - 1).replace(/-/g, "/")) - O[0]; + for (var S = 1; E > S; S++) { + O[S] = L + D + T * (new Date(F(S).replace(/-/g, "/")) - O[0]) / O[E - 1] + } + O[0] = L + D + } + } else { + O.push(L + T / 2) + } + for (var Y, H, C, G, K, X = [], S = 0; E > S; S++) { + L = O[S], Y = I[S].symbol && I[S].symbol.toLowerCase() || M, Y.match("empty") ? (Y = Y.replace("empty", ""), C = !0) : C = !1, Y.match("star") && (H = Y.replace("star", "") - 0 || 5, Y = "star"), R = I[S].textStyle ? v.merge(I[S].textStyle || {}, P) : P, G = R.align || "center", N ? (G = N > 0 ? "right" : "left", K = [N * Math.PI / 180, L, W - 5]) : K = !1, X.push({ + x: L, + n: H, + isEmpty: C, + symbol: Y, + symbolSize: I[S].symbolSize || l, + color: I[S].color, + borderColor: I[S].borderColor, + borderWidth: I[S].borderWidth, + name: this._getReformedLabel(S), + textColor: R.color, + textAlign: G, + textBaseline: R.baseline || "middle", + textX: L, + textY: W - (N ? 5 : 0), + textFont: I[S].textStyle ? this.getFont(R) : Q, + rotation: K, + showLabel: !1 + }) + } + return X + }, + _buildBackground: function() { + var a = this.timelineOption, + o = this.reformCssArray(this.timelineOption.padding), + l = this._location.width, + m = this._location.height; + (0 !== a.borderWidth || "rgba(0,0,0,0)" != a.backgroundColor.replace(/\s/g, "")) && this.shapeList.push(new j({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this._location.x - o[3], + y: this._location.y - o[0], + width: l + o[1] + o[3], + height: m + o[0] + o[2], + brushType: 0 === a.borderWidth ? "fill" : "both", + color: a.backgroundColor, + strokeColor: a.borderColor, + lineWidth: a.borderWidth + } + })) + }, + _buildControl: function() { + var o = this, + I = this.timelineOption, + D = I.lineStyle, + F = I.controlStyle; + if ("none" !== I.controlPosition) { + var l, G = F.itemSize, + H = F.itemGap; + "left" === I.controlPosition ? (l = this._location.x, this._location.x += 3 * (G + H)) : (l = this._location.x2 - (3 * (G + H) - H), this._location.x2 -= 3 * (G + H)); + var C = this._location.y, + E = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + style: { + iconType: "timelineControl", + symbol: "last", + x: l, + y: C, + width: G, + height: G, + brushType: "stroke", + color: F.normal.color, + strokeColor: F.normal.color, + lineWidth: D.width + }, + highlightStyle: { + color: F.emphasis.color, + strokeColor: F.emphasis.color, + lineWidth: D.width + 1 + }, + clickable: !0 + }; + this._ctrLastShape = new y(E), this._ctrLastShape.onclick = function() { + o.last() + }, this.shapeList.push(this._ctrLastShape), l += G + H, this._ctrPlayShape = new y(v.clone(E)), this._ctrPlayShape.style.brushType = "fill", this._ctrPlayShape.style.symbol = "play", this._ctrPlayShape.style.status = this.timelineOption.autoPlay ? "playing" : "stop", this._ctrPlayShape.style.x = l, this._ctrPlayShape.onclick = function() { + "stop" === o._ctrPlayShape.style.status ? o.play() : o.stop() + }, this.shapeList.push(this._ctrPlayShape), l += G + H, this._ctrNextShape = new y(v.clone(E)), this._ctrNextShape.style.symbol = "next", this._ctrNextShape.style.x = l, this._ctrNextShape.onclick = function() { + o.next() + }, this.shapeList.push(this._ctrNextShape) + } + }, + _buildChain: function() { + var a = this.timelineOption, + i = a.lineStyle; + this._timelineShae = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: this._location.x, + y: this.subPixelOptimize(this._location.y, i.width), + width: this._location.x2 - this._location.x, + height: this._location.height, + chainPoint: this._chainPoint, + brushType: "both", + strokeColor: i.color, + lineWidth: i.width, + lineType: i.type + }, + hoverable: !1, + clickable: !0, + onclick: this._onclick + }, this._timelineShae = new z(this._timelineShae), this.shapeList.push(this._timelineShae) + }, + _buildHandle: function() { + var a = this._chainPoint[this.currentIndex], + i = a.symbolSize + 1; + i = 5 > i ? 5 : i, this._handleShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + hoverable: !1, + draggable: !0, + style: { + iconType: "diamond", + n: a.n, + x: a.x - i, + y: this._location.y + this._location.height / 4 - i, + width: 2 * i, + height: 2 * i, + brushType: "both", + textPosition: "specific", + textX: a.x, + textY: this._location.y - this._location.height / 4, + textAlign: "center", + textBaseline: "middle" + }, + highlightStyle: {}, + ondrift: this._ondrift, + ondragend: this._ondragend + }, this._handleShape = new y(this._handleShape), this.shapeList.push(this._handleShape) + }, + _syncHandleShape: function() { + if (this.timelineOption.show) { + var a = this.timelineOption, + o = a.checkpointStyle, + l = this._chainPoint[this.currentIndex]; + this._handleShape.style.text = o.label.show ? l.name : "", this._handleShape.style.textFont = l.textFont, this._handleShape.style.n = l.n, "auto" === o.symbol ? this._handleShape.style.iconType = "none" != l.symbol ? l.symbol : "diamond" : (this._handleShape.style.iconType = o.symbol, o.symbol.match("star") && (this._handleShape.style.n = o.symbol.replace("star", "") - 0 || 5, this._handleShape.style.iconType = "star")); + var m; + "auto" === o.symbolSize ? (m = l.symbolSize + 2, m = 5 > m ? 5 : m) : m = o.symbolSize - 0, this._handleShape.style.color = "auto" === o.color ? l.color ? l.color : a.controlStyle.emphasis.color : o.color, this._handleShape.style.textColor = "auto" === o.label.textStyle.color ? this._handleShape.style.color : o.label.textStyle.color, this._handleShape.highlightStyle.strokeColor = this._handleShape.style.strokeColor = "auto" === o.borderColor ? l.borderColor ? l.borderColor : "#fff" : o.borderColor, this._handleShape.style.lineWidth = "auto" === o.borderWidth ? l.borderWidth ? l.borderWidth : 0 : o.borderWidth - 0, this._handleShape.highlightStyle.lineWidth = this._handleShape.style.lineWidth + 1, this.zr.animate(this._handleShape.id, "style").when(500, { + x: l.x - m, + textX: l.x, + y: this._location.y + this._location.height / 4 - m, + width: 2 * m, + height: 2 * m + }).start("ExponentialOut") + } + }, + _findChainIndex: function(a) { + var o = this._chainPoint, + l = o.length; + if (a <= o[0].x) { + return 0 + } + if (a >= o[l - 1].x) { + return l - 1 + } + for (var m = 0; l - 1 > m; m++) { + if (a >= o[m].x && a <= o[m + 1].x) { + return Math.abs(a - o[m].x) < Math.abs(a - o[m + 1].x) ? m : m + 1 + } + } + }, + __onclick: function(a) { + var m = w.getX(a.event), + l = this._findChainIndex(m); + return l === this.currentIndex ? !0 : (this.currentIndex = l, this.timelineOption.autoPlay && this.stop(), clearTimeout(this.playTicket), void this._onFrame()) + }, + __ondrift: function(m, H) { + this.timelineOption.autoPlay && this.stop(); + var C, D = this._chainPoint, + l = D.length; + m.style.x + H <= D[0].x - D[0].symbolSize ? (m.style.x = D[0].x - D[0].symbolSize, C = 0) : m.style.x + H >= D[l - 1].x - D[l - 1].symbolSize ? (m.style.x = D[l - 1].x - D[l - 1].symbolSize, C = l - 1) : (m.style.x += H, C = this._findChainIndex(m.style.x)); + var E = D[C], + F = E.symbolSize + 2; + if (m.style.iconType = E.symbol, m.style.n = E.n, m.style.textX = m.style.x + F / 2, m.style.y = this._location.y + this._location.height / 4 - F, m.style.width = 2 * F, m.style.height = 2 * F, m.style.text = E.name, C === this.currentIndex) { + return !0 + } + if (this.currentIndex = C, this.timelineOption.realtime) { + clearTimeout(this.playTicket); + var G = this; + this.playTicket = setTimeout(function() { + G._setCurrentOption() + }, 200) + } + return !0 + }, + __ondragend: function() { + this.isDragend = !0 + }, + ondragend: function(a, i) { + this.isDragend && a.target && (!this.timelineOption.realtime && this._setCurrentOption(), i.dragOut = !0, i.dragIn = !0, i.needRefresh = !1, this.isDragend = !1, this._syncHandleShape()) + }, + last: function() { + return this.timelineOption.autoPlay && this.stop(), this.currentIndex -= 1, this.currentIndex < 0 && (this.currentIndex = this.timelineOption.data.length - 1), this._onFrame(), this.currentIndex + }, + next: function() { + return this.timelineOption.autoPlay && this.stop(), this.currentIndex += 1, this.currentIndex >= this.timelineOption.data.length && (this.currentIndex = 0), this._onFrame(), this.currentIndex + }, + play: function(a, i) { + return this._ctrPlayShape && "playing" != this._ctrPlayShape.style.status && (this._ctrPlayShape.style.status = "playing", this.zr.modShape(this._ctrPlayShape.id), this.zr.refreshNextFrame()), this.timelineOption.autoPlay = null != i ? i : !0, this.timelineOption.autoPlay || clearTimeout(this.playTicket), this.currentIndex = null != a ? a : this.currentIndex + 1, this.currentIndex >= this.timelineOption.data.length && (this.currentIndex = 0), this._onFrame(), this.currentIndex + }, + stop: function() { + return this._ctrPlayShape && "stop" != this._ctrPlayShape.style.status && (this._ctrPlayShape.style.status = "stop", this.zr.modShape(this._ctrPlayShape.id), this.zr.refreshNextFrame()), this.timelineOption.autoPlay = !1, clearTimeout(this.playTicket), this.currentIndex + }, + resize: function() { + this.timelineOption.show && (this.clear(), this._buildShape(), this._syncHandleShape()) + }, + setTheme: function(a) { + this.timelineOption = this.reformOption(v.clone(this.option.timeline)), this.timelineOption.label.textStyle = this.getTextStyle(this.timelineOption.label.textStyle), this.timelineOption.checkpointStyle.label.textStyle = this.getTextStyle(this.timelineOption.checkpointStyle.label.textStyle), this.myChart.canvasSupported || (this.timelineOption.realtime = !1), this.timelineOption.show && a && (this.clear(), this._buildShape(), this._syncHandleShape()) + }, + onbeforDispose: function() { + clearTimeout(this.playTicket) + } + }, y.prototype.iconLibrary.timelineControl = u, v.inherits(B, x), p("../component").define("timeline", B), B + }), d("zrender/shape/Image", ["require", "./Base", "../tool/util"], function(a) { + var l = a("./Base"), + j = function(i) { + l.call(this, i) + }; + return j.prototype = { + type: "image", + brush: function(v, F, x) { + var A = this.style || {}; + F && (A = this.getHighlightStyle(A, this.highlightStyle || {})); + var q = A.image, + B = this; + if (this._imageCache || (this._imageCache = {}), "string" == typeof q) { + var D = q; + this._imageCache[D] ? q = this._imageCache[D] : (q = new Image, q.onload = function() { + q.onload = null, B.modSelf(), x() + }, q.src = D, this._imageCache[D] = q) + } + if (q) { + if ("IMG" == q.nodeName.toUpperCase()) { + if (window.ActiveXObject) { + if ("complete" != q.readyState) { + return + } + } else { + if (!q.complete) { + return + } + } + } + var E = A.width || q.width, + y = A.height || q.height, + w = A.x, + z = A.y; + if (!q.width || !q.height) { + return + } + if (v.save(), this.doClip(v), this.setContext(v, A), this.setTransform(v), A.sWidth && A.sHeight) { + var H = A.sx || 0, + G = A.sy || 0; + v.drawImage(q, H, G, A.sWidth, A.sHeight, w, z, E, y) + } else { + if (A.sx && A.sy) { + var H = A.sx, + G = A.sy, + u = E - H, + C = y - G; + v.drawImage(q, H, G, u, C, w, z, E, y) + } else { + v.drawImage(q, w, z, E, y) + } + } + A.width || (A.width = E), A.height || (A.height = y), this.style.width || (this.style.width = E), this.style.height || (this.style.height = y), this.drawText(v, A, this.style), v.restore() + } + }, + getRect: function(i) { + return { + x: i.x, + y: i.y, + width: i.width, + height: i.height + } + }, + clearCache: function() { + this._imageCache = {} + } + }, a("../tool/util").inherits(j, l), j + }), d("zrender/loadingEffect/Bar", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Rectangle"], function(l) { + function r(a) { + m.call(this, a) + } + var m = l("./Base"), + p = l("../tool/util"), + j = l("../tool/color"), + q = l("../shape/Rectangle"); + return p.inherits(r, m), r.prototype._start = function(a, x) { + var o = p.merge(this.options, { + textStyle: { + color: "#888" + }, + backgroundColor: "rgba(250, 250, 250, 0.8)", + effectOption: { + x: 0, + y: this.canvasHeight / 2 - 30, + width: this.canvasWidth, + height: 5, + brushType: "fill", + timeInterval: 100 + } + }), + v = this.createTextShape(o.textStyle), + w = this.createBackgroundShape(o.backgroundColor), + u = o.effectOption, + n = new q({ + highlightStyle: p.clone(u) + }); + return n.highlightStyle.color = u.color || j.getLinearGradient(u.x, u.y, u.x + u.width, u.y + u.height, [ + [0, "#ff6400"], + [0.5, "#ffe100"], + [1, "#b1ff00"] + ]), null != o.progress ? (a(w), n.highlightStyle.width = this.adjust(o.progress, [0, 1]) * o.effectOption.width, a(n), a(v), void x()) : (n.highlightStyle.width = 0, setInterval(function() { + a(w), n.highlightStyle.width < u.width ? n.highlightStyle.width += 8 : n.highlightStyle.width = 0, a(n), a(v), x() + }, u.timeInterval)) + }, r + }), d("zrender/loadingEffect/Bubble", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Circle"], function(l) { + function r(a) { + m.call(this, a) + } + var m = l("./Base"), + p = l("../tool/util"), + j = l("../tool/color"), + q = l("../shape/Circle"); + return p.inherits(r, m), r.prototype._start = function(o, C) { + for (var w = p.merge(this.options, { + textStyle: { + color: "#888" + }, + backgroundColor: "rgba(250, 250, 250, 0.8)", + effect: { + n: 50, + lineWidth: 2, + brushType: "stroke", + color: "random", + timeInterval: 100 + } + }), A = this.createTextShape(w.textStyle), B = this.createBackgroundShape(w.backgroundColor), x = w.effect, v = x.n, y = x.brushType, F = x.lineWidth, E = [], n = this.canvasWidth, z = this.canvasHeight, a = 0; v > a; a++) { + var D = "random" == x.color ? j.alpha(j.random(), 0.3) : x.color; + E[a] = new q({ + highlightStyle: { + x: Math.ceil(Math.random() * n), + y: Math.ceil(Math.random() * z), + r: Math.ceil(40 * Math.random()), + brushType: y, + color: D, + strokeColor: D, + lineWidth: F + }, + animationY: Math.ceil(20 * Math.random()) + }) + } + return setInterval(function() { + o(B); + for (var e = 0; v > e; e++) { + var s = E[e].highlightStyle; + s.y - E[e].animationY + s.r <= 0 && (E[e].highlightStyle.y = z + s.r, E[e].highlightStyle.x = Math.ceil(Math.random() * n)), E[e].highlightStyle.y -= E[e].animationY, o(E[e]) + } + o(A), C() + }, x.timeInterval) + }, r + }), d("zrender/loadingEffect/DynamicLine", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Line"], function(l) { + function r(a) { + m.call(this, a) + } + var m = l("./Base"), + p = l("../tool/util"), + j = l("../tool/color"), + q = l("../shape/Line"); + return p.inherits(r, m), r.prototype._start = function(o, E) { + for (var x = p.merge(this.options, { + textStyle: { + color: "#fff" + }, + backgroundColor: "rgba(0, 0, 0, 0.8)", + effectOption: { + n: 30, + lineWidth: 1, + color: "random", + timeInterval: 100 + } + }), C = this.createTextShape(x.textStyle), D = this.createBackgroundShape(x.backgroundColor), z = x.effectOption, w = z.n, A = z.lineWidth, H = [], G = this.canvasWidth, n = this.canvasHeight, B = 0; w > B; B++) { + var a = -Math.ceil(1000 * Math.random()), + F = Math.ceil(400 * Math.random()), + I = Math.ceil(Math.random() * n), + v = "random" == z.color ? j.random() : z.color; + H[B] = new q({ + highlightStyle: { + xStart: a, + yStart: I, + xEnd: a + F, + yEnd: I, + strokeColor: v, + lineWidth: A + }, + animationX: Math.ceil(100 * Math.random()), + len: F + }) + } + return setInterval(function() { + o(D); + for (var e = 0; w > e; e++) { + var s = H[e].highlightStyle; + s.xStart >= G && (H[e].len = Math.ceil(400 * Math.random()), s.xStart = -400, s.xEnd = -400 + H[e].len, s.yStart = Math.ceil(Math.random() * n), s.yEnd = s.yStart), s.xStart += H[e].animationX, s.xEnd += H[e].animationX, o(H[e]) + } + o(C), E() + }, z.timeInterval) + }, r + }), d("zrender/loadingEffect/Ring", ["require", "./Base", "../tool/util", "../tool/color", "../shape/Ring", "../shape/Sector"], function(l) { + function u(a) { + m.call(this, a) + } + var m = l("./Base"), + p = l("../tool/util"), + j = l("../tool/color"), + q = l("../shape/Ring"), + s = l("../shape/Sector"); + return p.inherits(u, m), u.prototype._start = function(v, H) { + var B = p.merge(this.options, { + textStyle: { + color: "#07a" + }, + backgroundColor: "rgba(250, 250, 250, 0.8)", + effect: { + x: this.canvasWidth / 2, + y: this.canvasHeight / 2, + r0: 60, + r: 100, + color: "#bbdcff", + brushType: "fill", + textPosition: "inside", + textFont: "normal 30px verdana", + textColor: "rgba(30, 144, 255, 0.6)", + timeInterval: 100 + } + }), + G = B.effect, + D = B.textStyle; + null == D.x && (D.x = G.x), null == D.y && (D.y = G.y + (G.r0 + G.r) / 2 - 5); + for (var A = this.createTextShape(B.textStyle), E = this.createBackgroundShape(B.backgroundColor), K = G.x, J = G.y, r = G.r0 + 6, F = G.r - 6, o = G.color, I = j.lift(o, 0.1), M = new q({ + highlightStyle: p.clone(G) + }), z = [], n = j.getGradientColors(["#ff6400", "#ffe100", "#97ff00"], 25), w = 15, C = 240, L = 0; 16 > L; L++) { + z.push(new s({ + highlightStyle: { + x: K, + y: J, + r0: r, + r: F, + startAngle: C - w, + endAngle: C, + brushType: "fill", + color: I + }, + _color: j.getLinearGradient(K + r * Math.cos(C, !0), J - r * Math.sin(C, !0), K + r * Math.cos(C - w, !0), J - r * Math.sin(C - w, !0), [ + [0, n[2 * L]], + [1, n[2 * L + 1]] + ]) + })), C -= w + } + C = 360; + for (var L = 0; 4 > L; L++) { + z.push(new s({ + highlightStyle: { + x: K, + y: J, + r0: r, + r: F, + startAngle: C - w, + endAngle: C, + brushType: "fill", + color: I + }, + _color: j.getLinearGradient(K + r * Math.cos(C, !0), J - r * Math.sin(C, !0), K + r * Math.cos(C - w, !0), J - r * Math.sin(C - w, !0), [ + [0, n[2 * L + 32]], + [1, n[2 * L + 33]] + ]) + })), C -= w + } + var a = 0; + if (null != B.progress) { + v(E), a = 100 * this.adjust(B.progress, [0, 1]).toFixed(2) / 5, M.highlightStyle.text = 5 * a + "%", v(M); + for (var L = 0; 20 > L; L++) { + z[L].highlightStyle.color = a > L ? z[L]._color : I, v(z[L]) + } + return v(A), void H() + } + return setInterval(function() { + v(E), a += a >= 20 ? -20 : 1, v(M); + for (var e = 0; 20 > e; e++) { + z[e].highlightStyle.color = a > e ? z[e]._color : I, v(z[e]) + } + v(A), H() + }, G.timeInterval) + }, u + }), d("zrender/loadingEffect/Spin", ["require", "./Base", "../tool/util", "../tool/color", "../tool/area", "../shape/Sector"], function(l) { + function u(a) { + m.call(this, a) + } + var m = l("./Base"), + p = l("../tool/util"), + j = l("../tool/color"), + q = l("../tool/area"), + s = l("../shape/Sector"); + return p.inherits(u, m), u.prototype._start = function(v, H) { + var B = p.merge(this.options, { + textStyle: { + color: "#fff", + textAlign: "start" + }, + backgroundColor: "rgba(0, 0, 0, 0.8)" + }), + G = this.createTextShape(B.textStyle), + D = 10, + A = q.getTextWidth(G.highlightStyle.text, G.highlightStyle.textFont), + E = q.getTextHeight(G.highlightStyle.text, G.highlightStyle.textFont), + K = p.merge(this.options.effect || {}, { + r0: 9, + r: 15, + n: 18, + color: "#fff", + timeInterval: 100 + }), + J = this.getLocation(this.options.textStyle, A + D + 2 * K.r, Math.max(2 * K.r, E)); + K.x = J.x + K.r, K.y = G.highlightStyle.y = J.y + J.height / 2, G.highlightStyle.x = K.x + K.r + D; + for (var r = this.createBackgroundShape(B.backgroundColor), F = K.n, o = K.x, I = K.y, M = K.r0, z = K.r, n = K.color, w = [], C = Math.round(180 / F), L = 0; F > L; L++) { + w[L] = new s({ + highlightStyle: { + x: o, + y: I, + r0: M, + r: z, + startAngle: C * L * 2, + endAngle: C * L * 2 + C, + color: j.alpha(n, (L + 1) / F), + brushType: "fill" + } + }) + } + var a = [0, o, I]; + return setInterval(function() { + v(r), a[0] -= 0.3; + for (var e = 0; F > e; e++) { + w[e].rotation = a, v(w[e]) + } + v(G), H() + }, K.timeInterval) + }, u + }), d("zrender/loadingEffect/Whirling", ["require", "./Base", "../tool/util", "../tool/area", "../shape/Ring", "../shape/Droplet", "../shape/Circle"], function(l) { + function w(a) { + m.call(this, a) + } + var m = l("./Base"), + p = l("../tool/util"), + j = l("../tool/area"), + q = l("../shape/Ring"), + u = l("../shape/Droplet"), + v = l("../shape/Circle"); + return p.inherits(w, m), w.prototype._start = function(o, C) { + var x = p.merge(this.options, { + textStyle: { + color: "#888", + textAlign: "start" + }, + backgroundColor: "rgba(250, 250, 250, 0.8)" + }), + z = this.createTextShape(x.textStyle), + s = 10, + A = j.getTextWidth(z.highlightStyle.text, z.highlightStyle.textFont), + F = j.getTextHeight(z.highlightStyle.text, z.highlightStyle.textFont), + E = p.merge(this.options.effect || {}, { + r: 18, + colorIn: "#fff", + colorOut: "#555", + colorWhirl: "#6cf", + timeInterval: 50 + }), + n = this.getLocation(this.options.textStyle, A + s + 2 * E.r, Math.max(2 * E.r, F)); + E.x = n.x + E.r, E.y = z.highlightStyle.y = n.y + n.height / 2, z.highlightStyle.x = E.x + E.r + s; + var B = this.createBackgroundShape(x.backgroundColor), + a = new u({ + highlightStyle: { + a: Math.round(E.r / 2), + b: Math.round(E.r - E.r / 6), + brushType: "fill", + color: E.colorWhirl + } + }), + D = new v({ + highlightStyle: { + r: Math.round(E.r / 6), + brushType: "fill", + color: E.colorIn + } + }), + G = new q({ + highlightStyle: { + r0: Math.round(E.r - E.r / 3), + r: E.r, + brushType: "fill", + color: E.colorOut + } + }), + r = [0, E.x, E.y]; + return a.highlightStyle.x = D.highlightStyle.x = G.highlightStyle.x = r[1], a.highlightStyle.y = D.highlightStyle.y = G.highlightStyle.y = r[2], setInterval(function() { + o(B), o(G), r[0] -= 0.3, a.rotation = r, o(a), o(D), o(z), C() + }, E.timeInterval) + }, w + }), d("echarts/theme/macarons", [], function() { + var a = { + color: ["#2ec7c9", "#b6a2de", "#5ab1ef", "#ffb980", "#d87a80", "#8d98b3", "#e5cf0d", "#97b552", "#95706d", "#dc69aa", "#07a2a4", "#9a7fd1", "#588dd5", "#f5994e", "#c05050", "#59678c", "#c9ab00", "#7eb00a", "#6f5553", "#c14089"], + title: { + textStyle: { + fontWeight: "normal", + color: "#008acd" + } + }, + dataRange: { + itemWidth: 15, + color: ["#5ab1ef", "#e0ffff"] + }, + toolbox: { + color: ["#1e90ff", "#1e90ff", "#1e90ff", "#1e90ff"], + effectiveColor: "#ff4500" + }, + tooltip: { + backgroundColor: "rgba(50,50,50,0.5)", + axisPointer: { + type: "line", + lineStyle: { + color: "#008acd" + }, + crossStyle: { + color: "#008acd" + }, + shadowStyle: { + color: "rgba(200,200,200,0.2)" + } + } + }, + dataZoom: { + dataBackgroundColor: "#efefff", + fillerColor: "rgba(182,162,222,0.2)", + handleColor: "#008acd" + }, + grid: { + borderColor: "#eee" + }, + categoryAxis: { + axisLine: { + lineStyle: { + color: "#008acd" + } + }, + splitLine: { + lineStyle: { + color: ["#eee"] + } + } + }, + valueAxis: { + axisLine: { + lineStyle: { + color: "#008acd" + } + }, + splitArea: { + show: !0, + areaStyle: { + color: ["rgba(250,250,250,0.1)", "rgba(200,200,200,0.1)"] + } + }, + splitLine: { + lineStyle: { + color: ["#eee"] + } + } + }, + polar: { + axisLine: { + lineStyle: { + color: "#ddd" + } + }, + splitArea: { + show: !0, + areaStyle: { + color: ["rgba(250,250,250,0.2)", "rgba(200,200,200,0.2)"] + } + }, + splitLine: { + lineStyle: { + color: "#ddd" + } + } + }, + timeline: { + lineStyle: { + color: "#008acd" + }, + controlStyle: { + normal: { + color: "#008acd" + }, + emphasis: { + color: "#008acd" + } + }, + symbol: "emptyCircle", + symbolSize: 3 + }, + bar: { + itemStyle: { + normal: { + barBorderRadius: 5 + }, + emphasis: { + barBorderRadius: 5 + } + } + }, + line: { + smooth: !0, + symbol: "emptyCircle", + symbolSize: 3 + }, + k: { + itemStyle: { + normal: { + color: "#d87a80", + color0: "#2ec7c9", + lineStyle: { + color: "#d87a80", + color0: "#2ec7c9" + } + } + } + }, + scatter: { + symbol: "circle", + symbolSize: 4 + }, + radar: { + symbol: "emptyCircle", + symbolSize: 3 + }, + map: { + itemStyle: { + normal: { + areaStyle: { + color: "#ddd" + }, + label: { + textStyle: { + color: "#d87a80" + } + } + }, + emphasis: { + areaStyle: { + color: "#fe994e" + } + } + } + }, + force: { + itemStyle: { + normal: { + linkStyle: { + color: "#1e90ff" + } + } + } + }, + chord: { + itemStyle: { + normal: { + borderWidth: 1, + borderColor: "rgba(128, 128, 128, 0.5)", + chordStyle: { + lineStyle: { + color: "rgba(128, 128, 128, 0.5)" + } + } + }, + emphasis: { + borderWidth: 1, + borderColor: "rgba(128, 128, 128, 0.5)", + chordStyle: { + lineStyle: { + color: "rgba(128, 128, 128, 0.5)" + } + } + } + } + }, + gauge: { + axisLine: { + lineStyle: { + color: [ + [0.2, "#2ec7c9"], + [0.8, "#5ab1ef"], + [1, "#d87a80"] + ], + width: 10 + } + }, + axisTick: { + splitNumber: 10, + length: 15, + lineStyle: { + color: "auto" + } + }, + splitLine: { + length: 22, + lineStyle: { + color: "auto" + } + }, + pointer: { + width: 5 + } + }, + textStyle: { + fontFamily: "微软雅黑, Arial, Verdana, sans-serif" + } + }; + return a + }), d("echarts/theme/infographic", [], function() { + var a = { + color: ["#C1232B", "#B5C334", "#FCCE10", "#E87C25", "#27727B", "#FE8463", "#9BCA63", "#FAD860", "#F3A43B", "#60C0DD", "#D7504B", "#C6E579", "#F4E001", "#F0805A", "#26C0C0"], + title: { + textStyle: { + fontWeight: "normal", + color: "#27727B" + } + }, + dataRange: { + x: "right", + y: "center", + itemWidth: 5, + itemHeight: 25, + color: ["#C1232B", "#FCCE10"] + }, + toolbox: { + color: ["#C1232B", "#B5C334", "#FCCE10", "#E87C25", "#27727B", "#FE8463", "#9BCA63", "#FAD860", "#F3A43B", "#60C0DD"], + effectiveColor: "#ff4500" + }, + tooltip: { + backgroundColor: "rgba(50,50,50,0.5)", + axisPointer: { + type: "line", + lineStyle: { + color: "#27727B", + type: "dashed" + }, + crossStyle: { + color: "#27727B" + }, + shadowStyle: { + color: "rgba(200,200,200,0.3)" + } + } + }, + dataZoom: { + dataBackgroundColor: "rgba(181,195,52,0.3)", + fillerColor: "rgba(181,195,52,0.2)", + handleColor: "#27727B" + }, + grid: { + borderWidth: 0 + }, + categoryAxis: { + axisLine: { + lineStyle: { + color: "#27727B" + } + }, + splitLine: { + show: !1 + } + }, + valueAxis: { + axisLine: { + show: !1 + }, + splitArea: { + show: !1 + }, + splitLine: { + lineStyle: { + color: ["#ccc"], + type: "dashed" + } + } + }, + polar: { + axisLine: { + lineStyle: { + color: "#ddd" + } + }, + splitArea: { + show: !0, + areaStyle: { + color: ["rgba(250,250,250,0.2)", "rgba(200,200,200,0.2)"] + } + }, + splitLine: { + lineStyle: { + color: "#ddd" + } + } + }, + timeline: { + lineStyle: { + color: "#27727B" + }, + controlStyle: { + normal: { + color: "#27727B" + }, + emphasis: { + color: "#27727B" + } + }, + symbol: "emptyCircle", + symbolSize: 3 + }, + line: { + itemStyle: { + normal: { + borderWidth: 2, + borderColor: "#fff", + lineStyle: { + width: 3 + } + }, + emphasis: { + borderWidth: 0 + } + }, + symbol: "circle", + symbolSize: 3.5 + }, + k: { + itemStyle: { + normal: { + color: "#C1232B", + color0: "#B5C334", + lineStyle: { + width: 1, + color: "#C1232B", + color0: "#B5C334" + } + } + } + }, + scatter: { + itemStyle: { + normal: { + borderWidth: 1, + borderColor: "rgba(200,200,200,0.5)" + }, + emphasis: { + borderWidth: 0 + } + }, + symbol: "star4", + symbolSize: 4 + }, + radar: { + symbol: "emptyCircle", + symbolSize: 3 + }, + map: { + itemStyle: { + normal: { + areaStyle: { + color: "#ddd" + }, + label: { + textStyle: { + color: "#C1232B" + } + } + }, + emphasis: { + areaStyle: { + color: "#fe994e" + }, + label: { + textStyle: { + color: "rgb(100,0,0)" + } + } + } + } + }, + force: { + itemStyle: { + normal: { + linkStyle: { + color: "#27727B" + } + } + } + }, + chord: { + itemStyle: { + normal: { + borderWidth: 1, + borderColor: "rgba(128, 128, 128, 0.5)", + chordStyle: { + lineStyle: { + color: "rgba(128, 128, 128, 0.5)" + } + } + }, + emphasis: { + borderWidth: 1, + borderColor: "rgba(128, 128, 128, 0.5)", + chordStyle: { + lineStyle: { + color: "rgba(128, 128, 128, 0.5)" + } + } + } + } + }, + gauge: { + center: ["50%", "80%"], + radius: "100%", + startAngle: 180, + endAngle: 0, + axisLine: { + show: !0, + lineStyle: { + color: [ + [0.2, "#B5C334"], + [0.8, "#27727B"], + [1, "#C1232B"] + ], + width: "40%" + } + }, + axisTick: { + splitNumber: 2, + length: 5, + lineStyle: { + color: "#fff" + } + }, + axisLabel: { + textStyle: { + color: "#fff", + fontWeight: "bolder" + } + }, + splitLine: { + length: "5%", + lineStyle: { + color: "#fff" + } + }, + pointer: { + width: "40%", + length: "80%", + color: "#fff" + }, + title: { + offsetCenter: [0, -20], + textStyle: { + color: "auto", + fontSize: 20 + } + }, + detail: { + offsetCenter: [0, 0], + textStyle: { + color: "auto", + fontSize: 40 + } + } + }, + textStyle: { + fontFamily: "微软雅黑, Arial, Verdana, sans-serif" + } + }; + return a + }), d("zrender/dep/excanvas", ["require"], function() { + return document.createElement("canvas").getContext ? G_vmlCanvasManager = !1 : ! function() { + function ai() { + return this.context_ || (this.context_ = new ak(this)) + } + + function aM(a, m) { + var l = aD.call(arguments, 2); + return function() { + return a.apply(m, l.concat(aD.call(arguments))) + } + } + + function aq(a) { + return String(a).replace(/&/g, "&").replace(/"/g, """) + } + + function aA(a, m, l) { + a.namespaces[m] || a.namespaces.add(m, l, "#default#VML") + } + + function aa(a) { + if (aA(a, "g_vml_", "urn:schemas-microsoft-com:vml"), aA(a, "g_o_", "urn:schemas-microsoft-com:office:office"), !a.styleSheets.ex_canvas_) { + var i = a.createStyleSheet(); + i.owningElement.id = "ex_canvas_", i.cssText = "canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}" + } + } + + function aC(a) { + var i = a.srcElement; + switch (a.propertyName) { + case "width": + i.getContext().clearRect(), i.style.width = i.attributes.width.nodeValue + "px", i.firstChild.style.width = i.clientWidth + "px"; + break; + case "height": + i.getContext().clearRect(), i.style.height = i.attributes.height.nodeValue + "px", i.firstChild.style.height = i.clientHeight + "px" + } + } + + function aI(a) { + var i = a.srcElement; + i.firstChild && (i.firstChild.style.width = i.clientWidth + "px", i.firstChild.style.height = i.clientHeight + "px") + } + + function aK() { + return [ + [1, 0, 0], + [0, 1, 0], + [0, 0, 1] + ] + } + + function aw(m, v) { + for (var p = aK(), q = 0; 3 > q; q++) { + for (var l = 0; 3 > l; l++) { + for (var s = 0, u = 0; 3 > u; u++) { + s += m[q][u] * v[u][l] + } + p[q][l] = s + } + } + return p + } + + function ao(a, i) { + i.fillStyle = a.fillStyle, i.lineCap = a.lineCap, i.lineJoin = a.lineJoin, i.lineWidth = a.lineWidth, i.miterLimit = a.miterLimit, i.shadowBlur = a.shadowBlur, i.shadowColor = a.shadowColor, i.shadowOffsetX = a.shadowOffsetX, i.shadowOffsetY = a.shadowOffsetY, i.strokeStyle = a.strokeStyle, i.globalAlpha = a.globalAlpha, i.font = a.font, i.textAlign = a.textAlign, i.textBaseline = a.textBaseline, i.scaleX_ = a.scaleX_, i.scaleY_ = a.scaleY_, i.lineScale_ = a.lineScale_ + } + + function ay(a) { + var o = a.indexOf("(", 3), + l = a.indexOf(")", o + 1), + m = a.substring(o + 1, l).split(","); + return (4 != m.length || "a" != a.charAt(3)) && (m[3] = 1), m + } + + function aR(a) { + return parseFloat(a) / 100 + } + + function aP(a, m, l) { + return Math.min(l, Math.max(m, a)) + } + + function ag(p) { + var z, q, v, m, w, x; + if (m = parseFloat(p[0]) / 360 % 360, 0 > m && m++, w = aP(aR(p[1]), 0, 1), x = aP(aR(p[2]), 0, 1), 0 == w) { + z = q = v = x + } else { + var y = 0.5 > x ? x * (1 + w) : x + w - x * w, + u = 2 * x - y; + z = aE(u, y, m + 1 / 3), q = aE(u, y, m), v = aE(u, y, m - 1 / 3) + } + return "#" + ah[Math.floor(255 * z)] + ah[Math.floor(255 * q)] + ah[Math.floor(255 * v)] + } + + function aE(a, m, l) { + return 0 > l && l++, l > 1 && l--, 1 > 6 * l ? a + 6 * (m - a) * l : 1 > 2 * l ? m : 2 > 3 * l ? a + (m - a) * (2 / 3 - l) * 6 : a + } + + function ae(m) { + if (m in aJ) { + return aJ[m] + } + var s, p = 1; + if (m = String(m), "#" == m.charAt(0)) { + s = m + } else { + if (/^rgb/.test(m)) { + for (var q, l = ay(m), s = "#", r = 0; 3 > r; r++) { + q = -1 != l[r].indexOf("%") ? Math.floor(255 * aR(l[r])) : +l[r], s += ah[aP(q, 0, 255)] + } + p = +l[3] + } else { + if (/^hsl/.test(m)) { + var l = ay(m); + s = ag(l), p = l[3] + } else { + s = ap[m] || m + } + } + } + return aJ[m] = { + color: s, + alpha: p + } + } + + function aO(m) { + if (aX[m]) { + return aX[m] + } + var q, o = document.createElement("div"), + p = o.style; + try { + p.font = m, q = p.fontFamily.split(",")[0] + } catch (l) {} + return aX[m] = { + style: p.fontStyle || an.style, + variant: p.fontVariant || an.variant, + weight: p.fontWeight || an.weight, + size: p.fontSize || an.size, + family: q || an.family + } + } + + function aW(m, s) { + var p = {}; + for (var q in m) { + p[q] = m[q] + } + var l = parseFloat(s.currentStyle.fontSize), + r = parseFloat(m.size); + return p.size = "number" == typeof m.size ? m.size : -1 != m.size.indexOf("px") ? r : -1 != m.size.indexOf("em") ? l * r : -1 != m.size.indexOf("%") ? l / 100 * r : -1 != m.size.indexOf("pt") ? r / 0.75 : l, p + } + + function am(a) { + return a.style + " " + a.variant + " " + a.weight + " " + a.size + "px '" + a.family + "'" + } + + function ac(a) { + return aH[a] || "square" + } + + function ak(a) { + this.m_ = aK(), this.mStack_ = [], this.aStack_ = [], this.currentPath_ = [], this.strokeStyle = "#000", this.fillStyle = "#000", this.lineWidth = 1, this.lineJoin = "miter", this.lineCap = "butt", this.miterLimit = 1 * ab, this.globalAlpha = 1, this.font = "12px 微软雅黑", this.textAlign = "left", this.textBaseline = "alphabetic", this.canvas = a; + var o = "width:" + a.clientWidth + "px;height:" + a.clientHeight + "px;overflow:hidden;position:absolute", + l = a.ownerDocument.createElement("div"); + l.style.cssText = o, a.appendChild(l); + var m = l.cloneNode(!1); + m.style.backgroundColor = "#fff", m.style.filter = "alpha(opacity=0)", a.appendChild(m), this.element_ = l, this.scaleX_ = 1, this.scaleY_ = 1, this.lineScale_ = 1 + } + + function au(a, o, l, m) { + a.currentPath_.push({ + type: "bezierCurveTo", + cp1x: o.x, + cp1y: o.y, + cp2x: l.x, + cp2y: l.y, + x: m.x, + y: m.y + }), a.currentX_ = m.x, a.currentY_ = m.y + } + + function aU(m, s) { + var p = ae(m.strokeStyle), + q = p.color, + l = p.alpha * m.globalAlpha, + r = m.lineScale_ * m.lineWidth; + 1 > r && (l *= r), s.push("') + } + + function j(B, bb, N, a3) { + var v = B.fillStyle, + a4 = B.scaleX_, + a8 = B.scaleY_, + a9 = a3.x - N.x, + a0 = a3.y - N.y; + if (v instanceof aQ) { + var L = 0, + a1 = { + x: 0, + y: 0 + }, + bf = 0, + be = 1; + if ("gradient" == v.type_) { + var A = v.x0_ / a4, + a6 = v.y0_ / a8, + bd = v.x1_ / a4, + bj = v.y1_ / a8, + H = ax(B, A, a6), + w = ax(B, bd, bj), + D = w.x - H.x, + Y = w.y - H.y; + L = 180 * Math.atan2(D, Y) / Math.PI, 0 > L && (L += 360), 1e-06 > L && (L = 0) + } else { + var H = ax(B, v.x0_, v.y0_); + a1 = { + x: (H.x - N.x) / a9, + y: (H.y - N.y) / a0 + }, a9 /= a4 * ab, a0 /= a8 * ab; + var bh = af.max(a9, a0); + bf = 2 * v.r0_ / bh, be = 2 * v.r1_ / bh - bf + } + var q = v.colors_; + q.sort(function(a, i) { + return a.offset - i.offset + }); + for (var bg = q.length, bi = q[0].color, Z = q[bg - 1].color, Q = q[0].alpha * B.globalAlpha, R = q[bg - 1].alpha * B.globalAlpha, ba = [], C = 0; bg > C; C++) { + var G = q[C]; + ba.push(G.offset * be + bf + " " + G.color) + } + bb.push('') + } else { + if (v instanceof aS) { + if (a9 && a0) { + var bc = -N.x, + bk = -N.y; + bb.push("') + } + } else { + var a2 = ae(B.fillStyle), + a5 = a2.color, + a7 = a2.alpha * B.globalAlpha; + bb.push('') + } + } + } + + function ax(a, o, l) { + var m = a.m_; + return { + x: ab * (o * m[0][0] + l * m[1][0] + m[2][0]) - az, + y: ab * (o * m[0][1] + l * m[1][1] + m[2][1]) - az + } + } + + function aT(a) { + return isFinite(a[0][0]) && isFinite(a[0][1]) && isFinite(a[1][0]) && isFinite(a[1][1]) && isFinite(a[2][0]) && isFinite(a[2][1]) + } + + function aV(a, o, l) { + if (aT(o) && (a.m_ = o, a.scaleX_ = Math.sqrt(o[0][0] * o[0][0] + o[0][1] * o[0][1]), a.scaleY_ = Math.sqrt(o[1][0] * o[1][0] + o[1][1] * o[1][1]), l)) { + var m = o[0][0] * o[1][1] - o[0][1] * o[1][0]; + a.lineScale_ = aY(aN(m)) + } + } + + function aQ(a) { + this.type_ = a, this.x0_ = 0, this.y0_ = 0, this.r0_ = 0, this.x1_ = 0, this.y1_ = 0, this.r1_ = 0, this.colors_ = [] + } + + function aS(a, i) { + switch (ar(a), i) { + case "repeat": + case null: + case "": + this.repetition_ = "repeat"; + break; + case "repeat-x": + case "repeat-y": + case "no-repeat": + this.repetition_ = i; + break; + default: + av("SYNTAX_ERR") + } + this.src_ = a.src, this.width_ = a.width, this.height_ = a.height + } + + function av(a) { + throw new at(a) + } + + function ar(a) { + a && 1 == a.nodeType && "IMG" == a.tagName || av("TYPE_MISMATCH_ERR"), "complete" != a.readyState && av("INVALID_STATE_ERR") + } + + function at(a) { + this.code = this[a], this.message = a + ": DOM Exception " + this.code + } + var af = Math, + aL = af.round, + aj = af.sin, + al = af.cos, + aN = af.abs, + aY = af.sqrt, + ab = 10, + az = ab / 2, + aD = (+navigator.userAgent.match(/MSIE ([\d.]+)?/)[1], Array.prototype.slice); + aa(document); + var aF = { + init: function(a) { + var l = a || document; + l.createElement("canvas"), l.attachEvent("onreadystatechange", aM(this.init_, this, l)) + }, + init_: function(a) { + for (var m = a.getElementsByTagName("canvas"), l = 0; l < m.length; l++) { + this.initElement(m[l]) + } + }, + initElement: function(e) { + if (!e.getContext) { + e.getContext = ai, aa(e.ownerDocument), e.innerHTML = "", e.attachEvent("onpropertychange", aC), e.attachEvent("onresize", aI); + var a = e.attributes; + a.width && a.width.specified ? e.style.width = a.width.nodeValue + "px" : e.width = e.clientWidth, a.height && a.height.specified ? e.style.height = a.height.nodeValue + "px" : e.height = e.clientHeight + } + return e + } + }; + aF.init(); + for (var ah = [], aB = 0; 16 > aB; aB++) { + for (var ad = 0; 16 > ad; ad++) { + ah[16 * aB + ad] = aB.toString(16) + ad.toString(16) + } + } + var ap = { + aliceblue: "#F0F8FF", + antiquewhite: "#FAEBD7", + aquamarine: "#7FFFD4", + azure: "#F0FFFF", + beige: "#F5F5DC", + bisque: "#FFE4C4", + black: "#000000", + blanchedalmond: "#FFEBCD", + blueviolet: "#8A2BE2", + brown: "#A52A2A", + burlywood: "#DEB887", + cadetblue: "#5F9EA0", + chartreuse: "#7FFF00", + chocolate: "#D2691E", + coral: "#FF7F50", + cornflowerblue: "#6495ED", + cornsilk: "#FFF8DC", + crimson: "#DC143C", + cyan: "#00FFFF", + darkblue: "#00008B", + darkcyan: "#008B8B", + darkgoldenrod: "#B8860B", + darkgray: "#A9A9A9", + darkgreen: "#006400", + darkgrey: "#A9A9A9", + darkkhaki: "#BDB76B", + darkmagenta: "#8B008B", + darkolivegreen: "#556B2F", + darkorange: "#FF8C00", + darkorchid: "#9932CC", + darkred: "#8B0000", + darksalmon: "#E9967A", + darkseagreen: "#8FBC8F", + darkslateblue: "#483D8B", + darkslategray: "#2F4F4F", + darkslategrey: "#2F4F4F", + darkturquoise: "#00CED1", + darkviolet: "#9400D3", + deeppink: "#FF1493", + deepskyblue: "#00BFFF", + dimgray: "#696969", + dimgrey: "#696969", + dodgerblue: "#1E90FF", + firebrick: "#B22222", + floralwhite: "#FFFAF0", + forestgreen: "#228B22", + gainsboro: "#DCDCDC", + ghostwhite: "#F8F8FF", + gold: "#FFD700", + goldenrod: "#DAA520", + grey: "#808080", + greenyellow: "#ADFF2F", + honeydew: "#F0FFF0", + hotpink: "#FF69B4", + indianred: "#CD5C5C", + indigo: "#4B0082", + ivory: "#FFFFF0", + khaki: "#F0E68C", + lavender: "#E6E6FA", + lavenderblush: "#FFF0F5", + lawngreen: "#7CFC00", + lemonchiffon: "#FFFACD", + lightblue: "#ADD8E6", + lightcoral: "#F08080", + lightcyan: "#E0FFFF", + lightgoldenrodyellow: "#FAFAD2", + lightgreen: "#90EE90", + lightgrey: "#D3D3D3", + lightpink: "#FFB6C1", + lightsalmon: "#FFA07A", + lightseagreen: "#20B2AA", + lightskyblue: "#87CEFA", + lightslategray: "#778899", + lightslategrey: "#778899", + lightsteelblue: "#B0C4DE", + lightyellow: "#FFFFE0", + limegreen: "#32CD32", + linen: "#FAF0E6", + magenta: "#FF00FF", + mediumaquamarine: "#66CDAA", + mediumblue: "#0000CD", + mediumorchid: "#BA55D3", + mediumpurple: "#9370DB", + mediumseagreen: "#3CB371", + mediumslateblue: "#7B68EE", + mediumspringgreen: "#00FA9A", + mediumturquoise: "#48D1CC", + mediumvioletred: "#C71585", + midnightblue: "#191970", + mintcream: "#F5FFFA", + mistyrose: "#FFE4E1", + moccasin: "#FFE4B5", + navajowhite: "#FFDEAD", + oldlace: "#FDF5E6", + olivedrab: "#6B8E23", + orange: "#FFA500", + orangered: "#FF4500", + orchid: "#DA70D6", + palegoldenrod: "#EEE8AA", + palegreen: "#98FB98", + paleturquoise: "#AFEEEE", + palevioletred: "#DB7093", + papayawhip: "#FFEFD5", + peachpuff: "#FFDAB9", + peru: "#CD853F", + pink: "#FFC0CB", + plum: "#DDA0DD", + powderblue: "#B0E0E6", + rosybrown: "#BC8F8F", + royalblue: "#4169E1", + saddlebrown: "#8B4513", + salmon: "#FA8072", + sandybrown: "#F4A460", + seagreen: "#2E8B57", + seashell: "#FFF5EE", + sienna: "#A0522D", + skyblue: "#87CEEB", + slateblue: "#6A5ACD", + slategray: "#708090", + slategrey: "#708090", + snow: "#FFFAFA", + springgreen: "#00FF7F", + steelblue: "#4682B4", + tan: "#D2B48C", + thistle: "#D8BFD8", + tomato: "#FF6347", + turquoise: "#40E0D0", + violet: "#EE82EE", + wheat: "#F5DEB3", + whitesmoke: "#F5F5F5", + yellowgreen: "#9ACD32" + }, + aJ = {}, + an = { + style: "normal", + variant: "normal", + weight: "normal", + size: 12, + family: "微软雅黑" + }, + aX = {}, + aH = { + butt: "flat", + round: "round" + }, + aZ = ak.prototype; + aZ.clearRect = function() { + this.textMeasureEl_ && (this.textMeasureEl_.removeNode(!0), this.textMeasureEl_ = null), this.element_.innerHTML = "" + }, aZ.beginPath = function() { + this.currentPath_ = [] + }, aZ.moveTo = function(a, m) { + var l = ax(this, a, m); + this.currentPath_.push({ + type: "moveTo", + x: l.x, + y: l.y + }), this.currentX_ = l.x, this.currentY_ = l.y + }, aZ.lineTo = function(a, m) { + var l = ax(this, a, m); + this.currentPath_.push({ + type: "lineTo", + x: l.x, + y: l.y + }), this.currentX_ = l.x, this.currentY_ = l.y + }, aZ.bezierCurveTo = function(p, z, q, v, m, w) { + var x = ax(this, m, w), + y = ax(this, p, z), + u = ax(this, q, v); + au(this, y, u, x) + }, aZ.quadraticCurveTo = function(m, x, p, q) { + var l = ax(this, m, x), + u = ax(this, p, q), + v = { + x: this.currentX_ + 2 / 3 * (l.x - this.currentX_), + y: this.currentY_ + 2 / 3 * (l.y - this.currentY_) + }, + w = { + x: v.x + (u.x - this.currentX_) / 3, + y: v.y + (u.y - this.currentY_) / 3 + }; + au(this, v, w, u) + }, aZ.arc = function(u, D, w, z, p, A) { + w *= ab; + var B = A ? "at" : "wa", + C = u + al(z) * w - az, + x = D + aj(z) * w - az, + v = u + al(p) * w - az, + y = D + aj(p) * w - az; + C != v || A || (C += 0.125); + var F = ax(this, u, D), + E = ax(this, C, x), + q = ax(this, v, y); + this.currentPath_.push({ + type: B, + x: F.x, + y: F.y, + radius: w, + xStart: E.x, + yStart: E.y, + xEnd: q.x, + yEnd: q.y + }) + }, aZ.rect = function(a, o, l, m) { + this.moveTo(a, o), this.lineTo(a + l, o), this.lineTo(a + l, o + m), this.lineTo(a, o + m), this.closePath() + }, aZ.strokeRect = function(m, q, o, p) { + var l = this.currentPath_; + this.beginPath(), this.moveTo(m, q), this.lineTo(m + o, q), this.lineTo(m + o, q + p), this.lineTo(m, q + p), this.closePath(), this.stroke(), this.currentPath_ = l + }, aZ.fillRect = function(m, q, o, p) { + var l = this.currentPath_; + this.beginPath(), this.moveTo(m, q), this.lineTo(m + o, q), this.lineTo(m + o, q + p), this.lineTo(m, q + p), this.closePath(), this.fill(), this.currentPath_ = l + }, aZ.createLinearGradient = function(m, q, o, p) { + var l = new aQ("gradient"); + return l.x0_ = m, l.y0_ = q, l.x1_ = o, l.y1_ = p, l + }, aZ.createRadialGradient = function(m, v, p, q, l, s) { + var u = new aQ("gradientradial"); + return u.x0_ = m, u.y0_ = v, u.r0_ = p, u.x1_ = q, u.y1_ = l, u.r1_ = s, u + }, aZ.drawImage = function(B) { + var O, F, J, v, K, M, N, H, E = B.runtimeStyle.width, + I = B.runtimeStyle.height; + B.runtimeStyle.width = "auto", B.runtimeStyle.height = "auto"; + var R = B.width, + Q = B.height; + if (B.runtimeStyle.width = E, B.runtimeStyle.height = I, 3 == arguments.length) { + O = arguments[1], F = arguments[2], K = M = 0, N = J = R, H = v = Q + } else { + if (5 == arguments.length) { + O = arguments[1], F = arguments[2], J = arguments[3], v = arguments[4], K = M = 0, N = R, H = Q + } else { + if (9 != arguments.length) { + throw Error("Invalid number of arguments") + } + K = arguments[1], M = arguments[2], N = arguments[3], H = arguments[4], O = arguments[5], F = arguments[6], J = arguments[7], v = arguments[8] + } + } + var A = ax(this, O, F), + L = [], + z = 10, + P = 10, + T = w = 1; + if (L.push(" '), (K || M) && L.push('
'), L.push('
'), (K || M) && L.push("
"), L.push("
"), this.element_.insertAdjacentHTML("BeforeEnd", L.join("")) + }, aZ.stroke = function(p) { + var z = [], + q = 10, + v = 10; + z.push(" w.x) && (w.x = u.x), (null == m.y || u.y < m.y) && (m.y = u.y), (null == w.y || u.y > w.y) && (w.y = u.y)) + } + z.push(' ">'), p ? j(this, z, m, w) : aU(this, z), z.push(""), this.element_.insertAdjacentHTML("beforeEnd", z.join("")) + }, aZ.fill = function() { + this.stroke(!0) + }, aZ.closePath = function() { + this.currentPath_.push({ + type: "close" + }) + }, aZ.save = function() { + var a = {}; + ao(this, a), this.aStack_.push(a), this.mStack_.push(this.m_), this.m_ = aw(aK(), this.m_) + }, aZ.restore = function() { + this.aStack_.length && (ao(this.aStack_.pop(), this), this.m_ = this.mStack_.pop()) + }, aZ.translate = function(a, m) { + var l = [ + [1, 0, 0], + [0, 1, 0], + [a, m, 1] + ]; + aV(this, aw(l, this.m_), !1) + }, aZ.rotate = function(a) { + var o = al(a), + l = aj(a), + m = [ + [o, l, 0], + [-l, o, 0], + [0, 0, 1] + ]; + aV(this, aw(m, this.m_), !1) + }, aZ.scale = function(a, m) { + var l = [ + [a, 0, 0], + [0, m, 0], + [0, 0, 1] + ]; + aV(this, aw(l, this.m_), !0) + }, aZ.transform = function(m, v, p, q, l, s) { + var u = [ + [m, v, 0], + [p, q, 0], + [l, s, 1] + ]; + aV(this, aw(u, this.m_), !0) + }, aZ.setTransform = function(m, v, p, q, l, s) { + var u = [ + [m, v, 0], + [p, q, 0], + [l, s, 1] + ]; + aV(this, u, !0) + }, aZ.drawText_ = function(w, H, C, i, D) { + var F = this.m_, + G = 1000, + A = 0, + y = G, + B = { + x: 0, + y: 0 + }, + J = [], + I = aW(aO(this.font), this.element_), + v = am(I), + E = this.element_.currentStyle, + u = this.textAlign.toLowerCase(); + switch (u) { + case "left": + case "center": + case "right": + break; + case "end": + u = "ltr" == E.direction ? "right" : "left"; + break; + case "start": + u = "rtl" == E.direction ? "right" : "left"; + break; + default: + u = "left" + } + switch (this.textBaseline) { + case "hanging": + case "top": + B.y = I.size / 1.75; + break; + case "middle": + break; + default: + case null: + case "alphabetic": + case "ideographic": + case "bottom": + B.y = -I.size / 2.25 + } + switch (u) { + case "right": + A = G, y = 0.05; + break; + case "center": + A = y = G / 2 + } + var q = ax(this, H + B.x, C + B.y); + J.push(''), D ? aU(this, J) : j(this, J, { + x: -A, + y: 0 + }, { + x: y, + y: I.size + }); + var x = F[0][0].toFixed(3) + "," + F[1][0].toFixed(3) + "," + F[0][1].toFixed(3) + "," + F[1][1].toFixed(3) + ",0,0", + z = aL(q.x / ab) + "," + aL(q.y / ab); + J.push('', '', ''), this.element_.insertAdjacentHTML("beforeEnd", J.join("")) + }, aZ.fillText = function(a, o, l, m) { + this.drawText_(a, o, l, m, !1) + }, aZ.strokeText = function(a, o, l, m) { + this.drawText_(a, o, l, m, !0) + }, aZ.measureText = function(a) { + if (!this.textMeasureEl_) { + var o = ''; + this.element_.insertAdjacentHTML("beforeEnd", o), this.textMeasureEl_ = this.element_.lastChild + } + var l = this.element_.ownerDocument; + this.textMeasureEl_.innerHTML = ""; + try { + this.textMeasureEl_.style.font = this.font + } catch (m) {} + return this.textMeasureEl_.appendChild(l.createTextNode(a)), { + width: this.textMeasureEl_.offsetWidth + } + }, aZ.clip = function() {}, aZ.arcTo = function() {}, aZ.createPattern = function(a, i) { + return new aS(a, i) + }, aQ.prototype.addColorStop = function(a, i) { + i = ae(i), this.colors_.push({ + offset: a, + color: i.color, + alpha: i.alpha + }) + }; + var aG = at.prototype = new Error; + aG.INDEX_SIZE_ERR = 1, aG.DOMSTRING_SIZE_ERR = 2, aG.HIERARCHY_REQUEST_ERR = 3, aG.WRONG_DOCUMENT_ERR = 4, aG.INVALID_CHARACTER_ERR = 5, aG.NO_DATA_ALLOWED_ERR = 6, aG.NO_MODIFICATION_ALLOWED_ERR = 7, aG.NOT_FOUND_ERR = 8, aG.NOT_SUPPORTED_ERR = 9, aG.INUSE_ATTRIBUTE_ERR = 10, aG.INVALID_STATE_ERR = 11, aG.SYNTAX_ERR = 12, aG.INVALID_MODIFICATION_ERR = 13, aG.NAMESPACE_ERR = 14, aG.INVALID_ACCESS_ERR = 15, aG.VALIDATION_ERR = 16, aG.TYPE_MISMATCH_ERR = 17, G_vmlCanvasManager = aF, CanvasRenderingContext2D = ak, CanvasGradient = aQ, CanvasPattern = aS, DOMException = at + }(), G_vmlCanvasManager + }), d("zrender/mixin/Eventful", ["require"], function() { + var a = function() { + this._handlers = {} + }; + return a.prototype.one = function(j, o, l) { + var m = this._handlers; + return o && j ? (m[j] || (m[j] = []), m[j].push({ + h: o, + one: !0, + ctx: l || this + }), this) : this + }, a.prototype.bind = function(j, o, l) { + var m = this._handlers; + return o && j ? (m[j] || (m[j] = []), m[j].push({ + h: o, + one: !1, + ctx: l || this + }), this) : this + }, a.prototype.unbind = function(l, r) { + var m = this._handlers; + if (!l) { + return this._handlers = {}, this + } + if (r) { + if (m[l]) { + for (var p = [], j = 0, q = m[l].length; q > j; j++) { + m[l][j].h != r && p.push(m[l][j]) + } + m[l] = p + } + m[l] && 0 === m[l].length && delete m[l] + } else { + delete m[l] + } + return this + }, a.prototype.dispatch = function(l) { + if (this._handlers[l]) { + var r = arguments, + m = r.length; + m > 3 && (r = Array.prototype.slice.call(r, 1)); + for (var p = this._handlers[l], j = p.length, q = 0; j > q;) { + switch (m) { + case 1: + p[q].h.call(p[q].ctx); + break; + case 2: + p[q].h.call(p[q].ctx, r[1]); + break; + case 3: + p[q].h.call(p[q].ctx, r[1], r[2]); + break; + default: + p[q].h.apply(p[q].ctx, r) + } + p[q].one ? (p.splice(q, 1), j--) : q++ + } + } + return this + }, a.prototype.dispatchWithContext = function(l) { + if (this._handlers[l]) { + var u = arguments, + m = u.length; + m > 4 && (u = Array.prototype.slice.call(u, 1, u.length - 1)); + for (var p = u[u.length - 1], j = this._handlers[l], q = j.length, s = 0; q > s;) { + switch (m) { + case 1: + j[s].h.call(p); + break; + case 2: + j[s].h.call(p, u[1]); + break; + case 3: + j[s].h.call(p, u[1], u[2]); + break; + default: + j[s].h.apply(p, u) + } + j[s].one ? (j.splice(s, 1), q--) : s++ + } + } + return this + }, a + }), d("zrender/tool/log", ["require", "../config"], function(a) { + var i = a("../config"); + return function() { + if (0 !== i.debugMode) { + if (1 == i.debugMode) { + for (var j in arguments) { + throw new Error(arguments[j]) + } + } else { + if (i.debugMode > 1) { + for (var j in arguments) { + console.log(arguments[j]) + } + } + } + } + } + }), d("zrender/tool/guid", [], function() { + var a = 2311; + return function() { + return "zrender__" + a++ + } + }), d("zrender/Handler", ["require", "./config", "./tool/env", "./tool/event", "./tool/util", "./tool/vector", "./tool/matrix", "./mixin/Eventful"], function(w) { + function H(a, i) { + return function(e, l) { + return a.call(i, e, l) + } + } + + function z(a, i) { + return function(l, m, e) { + return a.call(i, l, m, e) + } + } + + function C(a) { + for (var l = v.length; l--;) { + var m = v[l]; + a["_" + m + "Handler"] = H(q[m], a) + } + } + + function j(m, r, o) { + if (this._draggingTarget && this._draggingTarget.id == m.id || m.isSilent()) { + return !1 + } + var p = this._event; + if (m.isCover(r, o)) { + m.hoverable && this.storage.addHover(m); + for (var l = m.parent; l;) { + if (l.clipShape && !l.clipShape.isCover(this._mouseX, this._mouseY)) { + return !1 + } + l = l.parent + } + return this._lastHover != m && (this._processOutShape(p), this._processDragLeave(p), this._lastHover = m, this._processDragEnter(p)), this._processOverShape(p), this._processDragOver(p), this._hasfound = 1, !0 + } + return !1 + } + var D = w("./config"), + F = w("./tool/env"), + G = w("./tool/event"), + A = w("./tool/util"), + x = w("./tool/vector"), + B = w("./tool/matrix"), + K = D.EVENT, + J = w("./mixin/Eventful"), + v = ["resize", "click", "dblclick", "mousewheel", "mousemove", "mouseout", "mouseup", "mousedown", "touchstart", "touchend", "touchmove"], + E = function(a) { + if (window.G_vmlCanvasManager) { + return !0 + } + a = a || window.event; + var i = a.toElement || a.relatedTarget || a.srcElement || a.target; + return i && i.className.match(D.elementClassName) + }, + q = { + resize: function(a) { + a = a || window.event, this._lastHover = null, this._isMouseDown = 0, this.dispatch(K.RESIZE, a) + }, + click: function(a, m) { + if (E(a) || m) { + a = this._zrenderEventFixed(a); + var l = this._lastHover; + (l && l.clickable || !l) && this._clickThreshold < 5 && this._dispatchAgency(l, K.CLICK, a), this._mousemoveHandler(a) + } + }, + dblclick: function(a, m) { + if (E(a) || m) { + a = a || window.event, a = this._zrenderEventFixed(a); + var l = this._lastHover; + (l && l.clickable || !l) && this._clickThreshold < 5 && this._dispatchAgency(l, K.DBLCLICK, a), this._mousemoveHandler(a) + } + }, + mousewheel: function(m, M) { + if (E(m) || M) { + m = this._zrenderEventFixed(m); + var p = m.wheelDelta || -m.detail, + s = p > 0 ? 1.1 : 1 / 1.1, + l = !1, + u = this._mouseX, + y = this._mouseY; + this.painter.eachBuildinLayer(function(n) { + var a = n.position; + if (n.zoomable) { + n.__zoom = n.__zoom || 1; + var e = n.__zoom; + e *= s, e = Math.max(Math.min(n.maxZoom, e), n.minZoom), s = e / n.__zoom, n.__zoom = e, a[0] -= (u - a[0]) * (s - 1), a[1] -= (y - a[1]) * (s - 1), n.scale[0] *= s, n.scale[1] *= s, n.dirty = !0, l = !0, G.stop(m) + } + }), l && this.painter.refresh(), this._dispatchAgency(this._lastHover, K.MOUSEWHEEL, m), this._mousemoveHandler(m) + } + }, + mousemove: function(m, u) { + if ((E(m) || u) && !this.painter.isLoading()) { + m = this._zrenderEventFixed(m), this._lastX = this._mouseX, this._lastY = this._mouseY, this._mouseX = G.getX(m), this._mouseY = G.getY(m); + var p = this._mouseX - this._lastX, + r = this._mouseY - this._lastY; + this._processDragStart(m), this._hasfound = 0, this._event = m, this._iterateAndFindHover(), this._hasfound || ((!this._draggingTarget || this._lastHover && this._lastHover != this._draggingTarget) && (this._processOutShape(m), this._processDragLeave(m)), this._lastHover = null, this.storage.delHover(), this.painter.clearHover()); + var l = "default"; + if (this._draggingTarget) { + this.storage.drift(this._draggingTarget.id, p, r), this._draggingTarget.modSelf(), this.storage.addHover(this._draggingTarget), this._clickThreshold++ + } else { + if (this._isMouseDown) { + var s = !1; + this.painter.eachBuildinLayer(function(a) { + a.panable && (l = "move", a.position[0] += p, a.position[1] += r, s = !0, a.dirty = !0) + }), s && this.painter.refresh() + } + } + this._draggingTarget || this._hasfound && this._lastHover.draggable ? l = "move" : this._hasfound && this._lastHover.clickable && (l = "pointer"), this.root.style.cursor = l, this._dispatchAgency(this._lastHover, K.MOUSEMOVE, m), (this._draggingTarget || this._hasfound || this.storage.hasHoverShape()) && this.painter.refreshHover() + } + }, + mouseout: function(a, m) { + if (E(a) || m) { + a = this._zrenderEventFixed(a); + var l = a.toElement || a.relatedTarget; + if (l != this.root) { + for (; l && 9 != l.nodeType;) { + if (l == this.root) { + return void this._mousemoveHandler(a) + } + l = l.parentNode + } + } + a.zrenderX = this._lastX, a.zrenderY = this._lastY, this.root.style.cursor = "default", this._isMouseDown = 0, this._processOutShape(a), this._processDrop(a), this._processDragEnd(a), this.painter.isLoading() || this.painter.refreshHover(), this.dispatch(K.GLOBALOUT, a) + } + }, + mousedown: function(a, i) { + if (E(a) || i) { + if (this._clickThreshold = 0, 2 == this._lastDownButton) { + return this._lastDownButton = a.button, void(this._mouseDownTarget = null) + } + this._lastMouseDownMoment = new Date, a = this._zrenderEventFixed(a), this._isMouseDown = 1, this._mouseDownTarget = this._lastHover, this._dispatchAgency(this._lastHover, K.MOUSEDOWN, a), this._lastDownButton = a.button + } + }, + mouseup: function(a, i) { + (E(a) || i) && (a = this._zrenderEventFixed(a), this.root.style.cursor = "default", this._isMouseDown = 0, this._mouseDownTarget = null, this._dispatchAgency(this._lastHover, K.MOUSEUP, a), this._processDrop(a), this._processDragEnd(a)) + }, + touchstart: function(a, i) { + (E(a) || i) && (a = this._zrenderEventFixed(a, !0), this._lastTouchMoment = new Date, this._mobileFindFixed(a), this._mousedownHandler(a)) + }, + touchmove: function(a, i) { + (E(a) || i) && (a = this._zrenderEventFixed(a, !0), this._mousemoveHandler(a), this._isDragging && G.stop(a)) + }, + touchend: function(a, m) { + if (E(a) || m) { + a = this._zrenderEventFixed(a, !0), this._mouseupHandler(a); + var l = new Date; + l - this._lastTouchMoment < K.touchClickDelay && (this._mobileFindFixed(a), this._clickHandler(a), l - this._lastClickMoment < K.touchClickDelay / 2 && (this._dblclickHandler(a), this._lastHover && this._lastHover.clickable && G.stop(a)), this._lastClickMoment = l), this.painter.clearHover() + } + } + }, + I = function(a, l, i) { + J.call(this), this.root = a, this.storage = l, this.painter = i, this._lastX = this._lastY = this._mouseX = this._mouseY = 0, this._findHover = z(j, this), this._domHover = i.getDomHover(), C(this), window.addEventListener ? (window.addEventListener("resize", this._resizeHandler), F.os.tablet || F.os.phone ? (a.addEventListener("touchstart", this._touchstartHandler), a.addEventListener("touchmove", this._touchmoveHandler), a.addEventListener("touchend", this._touchendHandler)) : (a.addEventListener("click", this._clickHandler), a.addEventListener("dblclick", this._dblclickHandler), a.addEventListener("mousewheel", this._mousewheelHandler), a.addEventListener("mousemove", this._mousemoveHandler), a.addEventListener("mousedown", this._mousedownHandler), a.addEventListener("mouseup", this._mouseupHandler)), a.addEventListener("DOMMouseScroll", this._mousewheelHandler), a.addEventListener("mouseout", this._mouseoutHandler)) : (window.attachEvent("onresize", this._resizeHandler), a.attachEvent("onclick", this._clickHandler), a.ondblclick = this._dblclickHandler, a.attachEvent("onmousewheel", this._mousewheelHandler), a.attachEvent("onmousemove", this._mousemoveHandler), a.attachEvent("onmouseout", this._mouseoutHandler), a.attachEvent("onmousedown", this._mousedownHandler), a.attachEvent("onmouseup", this._mouseupHandler)) + }; + I.prototype.on = function(a, m, l) { + return this.bind(a, m, l), this + }, I.prototype.un = function(a, i) { + return this.unbind(a, i), this + }, I.prototype.trigger = function(a, i) { + switch (a) { + case K.RESIZE: + case K.CLICK: + case K.DBLCLICK: + case K.MOUSEWHEEL: + case K.MOUSEMOVE: + case K.MOUSEDOWN: + case K.MOUSEUP: + case K.MOUSEOUT: + this["_" + a + "Handler"](i, !0) + } + }, I.prototype.dispose = function() { + var a = this.root; + window.removeEventListener ? (window.removeEventListener("resize", this._resizeHandler), F.os.tablet || F.os.phone ? (a.removeEventListener("touchstart", this._touchstartHandler), a.removeEventListener("touchmove", this._touchmoveHandler), a.removeEventListener("touchend", this._touchendHandler)) : (a.removeEventListener("click", this._clickHandler), a.removeEventListener("dblclick", this._dblclickHandler), a.removeEventListener("mousewheel", this._mousewheelHandler), a.removeEventListener("mousemove", this._mousemoveHandler), a.removeEventListener("mousedown", this._mousedownHandler), a.removeEventListener("mouseup", this._mouseupHandler)), a.removeEventListener("DOMMouseScroll", this._mousewheelHandler), a.removeEventListener("mouseout", this._mouseoutHandler)) : (window.detachEvent("onresize", this._resizeHandler), a.detachEvent("onclick", this._clickHandler), a.detachEvent("dblclick", this._dblclickHandler), a.detachEvent("onmousewheel", this._mousewheelHandler), a.detachEvent("onmousemove", this._mousemoveHandler), a.detachEvent("onmouseout", this._mouseoutHandler), a.detachEvent("onmousedown", this._mousedownHandler), a.detachEvent("onmouseup", this._mouseupHandler)), this.root = this._domHover = this.storage = this.painter = null, this.un() + }, I.prototype._processDragStart = function(a) { + var m = this._lastHover; + if (this._isMouseDown && m && m.draggable && !this._draggingTarget && this._mouseDownTarget == m) { + if (m.dragEnableTime && new Date - this._lastMouseDownMoment < m.dragEnableTime) { + return + } + var l = m; + this._draggingTarget = l, this._isDragging = 1, l.invisible = !0, this.storage.mod(l.id), this._dispatchAgency(l, K.DRAGSTART, a), this.painter.refresh() + } + }, I.prototype._processDragEnter = function(a) { + this._draggingTarget && this._dispatchAgency(this._lastHover, K.DRAGENTER, a, this._draggingTarget) + }, I.prototype._processDragOver = function(a) { + this._draggingTarget && this._dispatchAgency(this._lastHover, K.DRAGOVER, a, this._draggingTarget) + }, I.prototype._processDragLeave = function(a) { + this._draggingTarget && this._dispatchAgency(this._lastHover, K.DRAGLEAVE, a, this._draggingTarget) + }, I.prototype._processDrop = function(a) { + this._draggingTarget && (this._draggingTarget.invisible = !1, this.storage.mod(this._draggingTarget.id), this.painter.refresh(), this._dispatchAgency(this._lastHover, K.DROP, a, this._draggingTarget)) + }, I.prototype._processDragEnd = function(a) { + this._draggingTarget && (this._dispatchAgency(this._draggingTarget, K.DRAGEND, a), this._lastHover = null), this._isDragging = 0, this._draggingTarget = null + }, I.prototype._processOverShape = function(a) { + this._dispatchAgency(this._lastHover, K.MOUSEOVER, a) + }, I.prototype._processOutShape = function(a) { + this._dispatchAgency(this._lastHover, K.MOUSEOUT, a) + }, I.prototype._dispatchAgency = function(m, O, p, u) { + var l = "on" + O, + y = { + type: O, + event: p, + target: m, + cancelBubble: !1 + }, + M = m; + for (u && (y.dragged = u); M && (M[l] && (y.cancelBubble = M[l](y)), M.dispatch(O, y), M = M.parent, !y.cancelBubble);) {} + if (m) { + y.cancelBubble || this.dispatch(O, y) + } else { + if (!u) { + var N = { + type: O, + event: p + }; + this.dispatch(O, N), this.painter.eachOtherLayer(function(a) { + "function" == typeof a[l] && a[l](N), a.dispatch && a.dispatch(O, N) + }) + } + } + }, I.prototype._iterateAndFindHover = function() { + var a = B.create(); + return function() { + for (var u, l, m = this.storage.getShapeList(), e = [0, 0], p = m.length - 1; p >= 0; p--) { + var s = m[p]; + if (u !== s.zlevel && (l = this.painter.getLayer(s.zlevel, l), e[0] = this._mouseX, e[1] = this._mouseY, l.needTransform && (B.invert(a, l.transform), x.applyTransform(e, e, a))), this._findHover(s, e[0], e[1])) { + break + } + } + } + }(); + var L = [{ + x: 10 + }, { + x: -20 + }, { + x: 10, + y: 10 + }, { + y: -20 + }]; + return I.prototype._mobileFindFixed = function(a) { + this._lastHover = null, this._mouseX = a.zrenderX, this._mouseY = a.zrenderY, this._event = a, this._iterateAndFindHover(); + for (var m = 0; !this._lastHover && m < L.length; m++) { + var l = L[m]; + l.x && (this._mouseX += l.x), l.y && (this._mouseY += l.y), this._iterateAndFindHover() + } + this._lastHover && (a.zrenderX = this._mouseX, a.zrenderY = this._mouseY) + }, I.prototype._zrenderEventFixed = function(m, r) { + if (m.zrenderFixed) { + return m + } + if (r) { + var o = "touchend" != m.type ? m.targetTouches[0] : m.changedTouches[0]; + if (o) { + var p = this.painter._domRoot.getBoundingClientRect(); + m.zrenderX = o.clientX - p.left, m.zrenderY = o.clientY - p.top + } + } else { + m = m || window.event; + var l = m.toElement || m.relatedTarget || m.srcElement || m.target; + l && l != this._domHover && (m.zrenderX = ("undefined" != typeof m.offsetX ? m.offsetX : m.layerX) + l.offsetLeft, m.zrenderY = ("undefined" != typeof m.offsetY ? m.offsetY : m.layerY) + l.offsetTop) + } + return m.zrenderFixed = 1, m + }, A.merge(I.prototype, J.prototype, !0), I + }), d("zrender/Painter", ["require", "./config", "./tool/util", "./tool/log", "./loadingEffect/Base", "./Layer", "./shape/Image"], function(m) { + function z() { + return !1 + } + + function q() {} + + function v(a) { + return a ? a.isBuildin ? !0 : "function" != typeof a.resize || "function" != typeof a.refresh ? !1 : !0 : !1 + } + var j = m("./config"), + w = m("./tool/util"), + x = m("./tool/log"), + y = m("./loadingEffect/Base"), + u = m("./Layer"), + p = function(a, l) { + this.root = a, a.style["-webkit-tap-highlight-color"] = "transparent", a.style["-webkit-user-select"] = "none", a.style["user-select"] = "none", a.style["-webkit-touch-callout"] = "none", this.storage = l, a.innerHTML = "", this._width = this._getWidth(), this._height = this._getHeight(); + var r = document.createElement("div"); + this._domRoot = r, r.style.position = "relative", r.style.overflow = "hidden", r.style.width = this._width + "px", r.style.height = this._height + "px", a.appendChild(r), this._layers = {}, this._zlevelList = [], this._layerConfig = {}, this._loadingEffect = new y({}), this.shapeToImage = this._createShapeToImageProcessor(), this._bgDom = document.createElement("div"), this._bgDom.style.cssText = ["position:absolute;left:0px;top:0px;width:", this._width, "px;height:", this._height + "px;", "-webkit-user-select:none;user-select;none;", "-webkit-touch-callout:none;"].join(""), this._bgDom.setAttribute("data-zr-dom-id", "bg"), this._bgDom.className = j.elementClassName, r.appendChild(this._bgDom), this._bgDom.onselectstart = z; + var s = new u("_zrender_hover_", this); + this._layers.hover = s, r.appendChild(s.dom), s.initContext(), s.dom.onselectstart = z, s.dom.style["-webkit-user-select"] = "none", s.dom.style["user-select"] = "none", s.dom.style["-webkit-touch-callout"] = "none", this.refreshNextFrame = null + }; + return p.prototype.render = function(a) { + return this.isLoading() && this.hideLoading(), this.refresh(a, !0), this + }, p.prototype.refresh = function(r, C) { + var s = this.storage.getShapeList(!0); + this._paintList(s, C); + for (var A = 0; A < this._zlevelList.length; A++) { + var l = this._zlevelList[A], + B = this._layers[l]; + !B.isBuildin && B.refresh && B.refresh() + } + return "function" == typeof r && r(), this + }, p.prototype._preProcessLayer = function(a) { + a.unusedCount++, a.updateTransform() + }, p.prototype._postProcessLayer = function(a) { + a.dirty = !1, 1 == a.unusedCount && a.clear() + }, p.prototype._paintList = function(a, G) { + "undefined" == typeof G && (G = !1), this._updateLayerStatus(a); + var A, D, E; + this.eachBuildinLayer(this._preProcessLayer); + for (var F = 0, B = a.length; B > F; F++) { + var r = a[F]; + if (D !== r.zlevel && (A && (A.needTransform && E.restore(), E.flush && E.flush()), D = r.zlevel, A = this.getLayer(D), A.isBuildin || x("ZLevel " + D + " has been used by unkown layer " + A.id), E = A.ctx, A.unusedCount = 0, (A.dirty || G) && A.clear(), A.needTransform && (E.save(), A.setTransform(E))), (A.dirty || G) && !r.invisible && (!r.onbrush || r.onbrush && !r.onbrush(E, !1))) { + if (j.catchBrushException) { + try { + r.brush(E, !1, this.refreshNextFrame) + } catch (C) { + x(C, "brush error of " + r.type, r) + } + } else { + r.brush(E, !1, this.refreshNextFrame) + } + } + r.__dirty = !1 + } + A && (A.needTransform && E.restore(), E.flush && E.flush()), this.eachBuildinLayer(this._postProcessLayer) + }, p.prototype.getLayer = function(a) { + var i = this._layers[a]; + return i || (i = new u(a, this), i.isBuildin = !0, this._layerConfig[a] && w.merge(i, this._layerConfig[a], !0), i.updateTransform(), this.insertLayer(a, i), i.initContext()), i + }, p.prototype.insertLayer = function(n, C) { + if (this._layers[n]) { + return void x("ZLevel " + n + " has been used already") + } + if (!v(C)) { + return void x("Layer of zlevel " + n + " is not valid") + } + var r = this._zlevelList.length, + l = null, + A = -1; + if (r > 0 && n > this._zlevelList[0]) { + for (A = 0; r - 1 > A && !(this._zlevelList[A] < n && this._zlevelList[A + 1] > n); A++) {} + l = this._layers[this._zlevelList[A]] + } + this._zlevelList.splice(A + 1, 0, n); + var B = l ? l.dom : this._bgDom; + B.nextSibling ? B.parentNode.insertBefore(C.dom, B.nextSibling) : B.parentNode.appendChild(C.dom), this._layers[n] = C + }, p.prototype.eachLayer = function(a, r) { + for (var l = 0; l < this._zlevelList.length; l++) { + var o = this._zlevelList[l]; + a.call(r, this._layers[o], o) + } + }, p.prototype.eachBuildinLayer = function(o, A) { + for (var r = 0; r < this._zlevelList.length; r++) { + var s = this._zlevelList[r], + l = this._layers[s]; + l.isBuildin && o.call(A, l, s) + } + }, p.prototype.eachOtherLayer = function(o, A) { + for (var r = 0; r < this._zlevelList.length; r++) { + var s = this._zlevelList[r], + l = this._layers[s]; + l.isBuildin || o.call(A, l, s) + } + }, p.prototype.getLayers = function() { + return this._layers + }, p.prototype._updateLayerStatus = function(A) { + var G = this._layers, + B = {}; + this.eachBuildinLayer(function(a, i) { + B[i] = a.elCount, a.elCount = 0 + }); + for (var C = 0, l = A.length; l > C; C++) { + var D = A[C], + E = D.zlevel, + F = G[E]; + if (F) { + if (F.elCount++, F.dirty) { + continue + } + F.dirty = D.__dirty + } + } + this.eachBuildinLayer(function(a, i) { + B[i] !== a.elCount && (a.dirty = !0) + }) + }, p.prototype.refreshShapes = function(o, A) { + for (var r = 0, s = o.length; s > r; r++) { + var l = o[r]; + l.modSelf() + } + return this.refresh(A), this + }, p.prototype.setLoadingEffect = function(a) { + return this._loadingEffect = a, this + }, p.prototype.clear = function() { + return this.eachBuildinLayer(this._clearLayer), this + }, p.prototype._clearLayer = function(a) { + a.clear() + }, p.prototype.modLayer = function(a, n) { + if (n) { + this._layerConfig[a] ? w.merge(this._layerConfig[a], n, !0) : this._layerConfig[a] = n; + var l = this._layers[a]; + l && w.merge(l, this._layerConfig[a], !0) + } + }, p.prototype.delLayer = function(a) { + var i = this._layers[a]; + i && (this.modLayer(a, { + position: i.position, + rotation: i.rotation, + scale: i.scale + }), i.dom.parentNode.removeChild(i.dom), delete this._layers[a], this._zlevelList.splice(w.indexOf(this._zlevelList, a), 1)) + }, p.prototype.refreshHover = function() { + this.clearHover(); + for (var a = this.storage.getHoverShapes(!0), r = 0, l = a.length; l > r; r++) { + this._brushHover(a[r]) + } + var o = this._layers.hover.ctx; + return o.flush && o.flush(), this.storage.delHover(), this + }, p.prototype.clearHover = function() { + var a = this._layers.hover; + return a && a.clear(), this + }, p.prototype.showLoading = function(a) { + return this._loadingEffect && this._loadingEffect.stop(), a && this.setLoadingEffect(a), this._loadingEffect.start(this), this.loading = !0, this + }, p.prototype.hideLoading = function() { + return this._loadingEffect.stop(), this.clearHover(), this.loading = !1, this + }, p.prototype.isLoading = function() { + return this.loading + }, p.prototype.resize = function() { + var a = this._domRoot; + a.style.display = "none"; + var r = this._getWidth(), + l = this._getHeight(); + if (a.style.display = "", this._width != r || l != this._height) { + this._width = r, this._height = l, a.style.width = r + "px", a.style.height = l + "px"; + for (var o in this._layers) { + this._layers[o].resize(r, l) + } + this.refresh(null, !0) + } + return this + }, p.prototype.clearLayer = function(a) { + var i = this._layers[a]; + i && i.clear() + }, p.prototype.dispose = function() { + this.isLoading() && this.hideLoading(), this.root.innerHTML = "", this.root = this.storage = this._domRoot = this._layers = null + }, p.prototype.getDomHover = function() { + return this._layers.hover.dom + }, p.prototype.toDataURL = function(a, D, r) { + if (window.G_vmlCanvasManager) { + return null + } + var A = new u("image", this); + this._bgDom.appendChild(A.dom), A.initContext(); + var B = A.ctx; + A.clearColor = D || "#fff", A.clear(); + var C = this; + this.storage.iterShape(function(i) { + if (!i.invisible && (!i.onbrush || i.onbrush && !i.onbrush(B, !1))) { + if (j.catchBrushException) { + try { + i.brush(B, !1, C.refreshNextFrame) + } catch (n) { + x(n, "brush error of " + i.type, i) + } + } else { + i.brush(B, !1, C.refreshNextFrame) + } + } + }, { + normal: "up", + update: !0 + }); + var l = A.dom.toDataURL(a, r); + return B = null, this._bgDom.removeChild(A.dom), l + }, p.prototype.getWidth = function() { + return this._width + }, p.prototype.getHeight = function() { + return this._height + }, p.prototype._getWidth = function() { + var a = this.root, + i = a.currentStyle || document.defaultView.getComputedStyle(a); + return ((a.clientWidth || parseInt(i.width, 10)) - parseInt(i.paddingLeft, 10) - parseInt(i.paddingRight, 10)).toFixed(0) - 0 + }, p.prototype._getHeight = function() { + var a = this.root, + i = a.currentStyle || document.defaultView.getComputedStyle(a); + return ((a.clientHeight || parseInt(i.height, 10)) - parseInt(i.paddingTop, 10) - parseInt(i.paddingBottom, 10)).toFixed(0) - 0 + }, p.prototype._brushHover = function(a) { + var r = this._layers.hover.ctx; + if (!a.onbrush || a.onbrush && !a.onbrush(r, !0)) { + var l = this.getLayer(a.zlevel); + if (l.needTransform && (r.save(), l.setTransform(r)), j.catchBrushException) { + try { + a.brush(r, !0, this.refreshNextFrame) + } catch (o) { + x(o, "hoverBrush error of " + a.type, a) + } + } else { + a.brush(r, !0, this.refreshNextFrame) + } + l.needTransform && r.restore() + } + }, p.prototype._shapeToImage = function(I, B, E, e, F) { + var G = document.createElement("canvas"), + H = G.getContext("2d"); + G.style.width = E + "px", G.style.height = e + "px", G.setAttribute("width", E * F), G.setAttribute("height", e * F), H.clearRect(0, 0, E * F, e * F); + var C = { + position: B.position, + rotation: B.rotation, + scale: B.scale + }; + B.position = [0, 0, 0], B.rotation = 0, B.scale = [1, 1], B && B.brush(H, !1); + var A = m("./shape/Image"), + D = new A({ + id: I, + style: { + x: 0, + y: 0, + image: G + } + }); + return null != C.position && (D.position = B.position = C.position), null != C.rotation && (D.rotation = B.rotation = C.rotation), null != C.scale && (D.scale = B.scale = C.scale), D + }, p.prototype._createShapeToImageProcessor = function() { + if (window.G_vmlCanvasManager) { + return q + } + var a = this; + return function(s, e, l, r) { + return a._shapeToImage(s, e, l, r, j.devicePixelRatio) + } + }, p + }), d("zrender/Storage", ["require", "./tool/util", "./Group"], function(l) { + function r(a, i) { + return a.zlevel == i.zlevel ? a.z == i.z ? a.__renderidx - i.__renderidx : a.z - i.z : a.zlevel - i.zlevel + } + var m = l("./tool/util"), + p = l("./Group"), + j = { + hover: !1, + normal: "down", + update: !1 + }, + q = function() { + this._elements = {}, this._hoverElements = [], this._roots = [], this._shapeList = [], this._shapeListOffset = 0 + }; + return q.prototype.iterShape = function(a, w) { + if (w || (w = j), w.hover) { + for (var s = 0, u = this._hoverElements.length; u > s; s++) { + var v = this._hoverElements[s]; + if (v.updateTransform(), a(v)) { + return this + } + } + } + switch (w.update && this.updateShapeList(), w.normal) { + case "down": + for (var u = this._shapeList.length; u--;) { + if (a(this._shapeList[u])) { + return this + } + } + break; + default: + for (var s = 0, u = this._shapeList.length; u > s; s++) { + if (a(this._shapeList[s])) { + return this + } + } + } + return this + }, q.prototype.getHoverShapes = function(u) { + for (var v = [], x = 0, t = this._hoverElements.length; t > x; x++) { + v.push(this._hoverElements[x]); + var y = this._hoverElements[x].hoverConnect; + if (y) { + var z; + y = y instanceof Array ? y : [y]; + for (var A = 0, w = y.length; w > A; A++) { + z = y[A].id ? y[A] : this.get(y[A]), z && v.push(z) + } + } + } + if (v.sort(r), u) { + for (var x = 0, t = v.length; t > x; x++) { + v[x].updateTransform() + } + } + return v + }, q.prototype.getShapeList = function(a) { + return a && this.updateShapeList(), this._shapeList + }, q.prototype.updateShapeList = function() { + this._shapeListOffset = 0; + for (var a = 0, o = this._roots.length; o > a; a++) { + var s = this._roots[a]; + this._updateAndAddShape(s) + } + this._shapeList.length = this._shapeListOffset; + for (var a = 0, o = this._shapeList.length; o > a; a++) { + this._shapeList[a].__renderidx = a + } + this._shapeList.sort(r) + }, q.prototype._updateAndAddShape = function(a, u) { + if (!a.ignore) { + if (a.updateTransform(), a.clipShape && (a.clipShape.parent = a, a.clipShape.updateTransform(), u ? (u = u.slice(), u.push(a.clipShape)) : u = [a.clipShape]), "group" == a.type) { + for (var o = 0; o < a._children.length; o++) { + var s = a._children[o]; + s.__dirty = a.__dirty || s.__dirty, this._updateAndAddShape(s, u) + } + a.__dirty = !1 + } else { + a.__clipShapes = u, this._shapeList[this._shapeListOffset++] = a + } + } + }, q.prototype.mod = function(o, u) { + if ("string" == typeof o && (o = this._elements[o]), o && (o.modSelf(), u)) { + if (u.parent || u._storage || u.__clipShapes) { + var s = {}; + for (var i in u) { + "parent" !== i && "_storage" !== i && "__clipShapes" !== i && u.hasOwnProperty(i) && (s[i] = u[i]) + } + m.merge(o, s, !0) + } else { + m.merge(o, u, !0) + } + } + return this + }, q.prototype.drift = function(a, u, o) { + var s = this._elements[a]; + return s && (s.needTransform = !0, "horizontal" === s.draggable ? o = 0 : "vertical" === s.draggable && (u = 0), (!s.ondrift || s.ondrift && !s.ondrift(u, o)) && s.drift(u, o)), this + }, q.prototype.addHover = function(a) { + return a.updateNeedTransform(), this._hoverElements.push(a), this + }, q.prototype.delHover = function() { + return this._hoverElements = [], this + }, q.prototype.hasHoverShape = function() { + return this._hoverElements.length > 0 + }, q.prototype.addRoot = function(a) { + this._elements[a.id] || (a instanceof p && a.addChildrenToStorage(this), this.addToMap(a), this._roots.push(a)) + }, q.prototype.delRoot = function(n) { + if ("undefined" == typeof n) { + for (var x = 0; x < this._roots.length; x++) { + var i = this._roots[x]; + i instanceof p && i.delChildrenFromStorage(this) + } + return this._elements = {}, this._hoverElements = [], this._roots = [], this._shapeList = [], void(this._shapeListOffset = 0) + } + if (n instanceof Array) { + for (var x = 0, u = n.length; u > x; x++) { + this.delRoot(n[x]) + } + } else { + var v; + v = "string" == typeof n ? this._elements[n] : n; + var w = m.indexOf(this._roots, v); + w >= 0 && (this.delFromMap(v.id), this._roots.splice(w, 1), v instanceof p && v.delChildrenFromStorage(this)) + } + }, q.prototype.addToMap = function(a) { + return a instanceof p && (a._storage = this), a.modSelf(), this._elements[a.id] = a, this + }, q.prototype.get = function(a) { + return this._elements[a] + }, q.prototype.delFromMap = function(a) { + var i = this._elements[a]; + return i && (delete this._elements[a], i instanceof p && (i._storage = null)), this + }, q.prototype.dispose = function() { + this._elements = this._renderList = this._roots = this._hoverElements = null + }, q + }), d("zrender/animation/Animation", ["require", "./Clip", "../tool/color", "../tool/util", "../tool/event"], function(w) { + function H(a, i) { + return a[i] + } + + function z(a, m, l) { + a[m] = l + } + + function C(a, m, l) { + return (m - a) * l + a + } + + function j(n, P, u, m, M) { + var N = n.length; + if (1 == M) { + for (var O = 0; N > O; O++) { + m[O] = C(n[O], P[O], u) + } + } else { + for (var y = n[0].length, O = 0; N > O; O++) { + for (var p = 0; y > p; p++) { + m[O][p] = C(n[O][p], P[O][p], u) + } + } + } + } + + function D(a) { + switch (typeof a) { + case "undefined": + case "string": + return !1 + } + return "undefined" != typeof a.length + } + + function F(u, S, M, P, p, Q, R, N, y) { + var O = u.length; + if (1 == y) { + for (var W = 0; O > W; W++) { + N[W] = G(u[W], S[W], M[W], P[W], p, Q, R) + } + } else { + for (var T = u[0].length, W = 0; O > W; W++) { + for (var s = 0; T > s; s++) { + N[W][s] = G(u[W][s], S[W][s], M[W][s], P[W][s], p, Q, R) + } + } + } + } + + function G(p, Q, u, M, m, N, O) { + var P = 0.5 * (u - p), + y = 0.5 * (M - Q); + return (2 * (Q - u) + P + y) * O + (-3 * (Q - u) - 2 * P - y) * N + P * m + Q + } + + function A(a) { + if (D(a)) { + var o = a.length; + if (D(a[0])) { + for (var l = [], m = 0; o > m; m++) { + l.push(q.call(a[m])) + } + return l + } + return q.call(a) + } + return a + } + + function x(a) { + return a[0] = Math.floor(a[0]), a[1] = Math.floor(a[1]), a[2] = Math.floor(a[2]), "rgba(" + a.join(",") + ")" + } + var B = w("./Clip"), + K = w("../tool/color"), + J = w("../tool/util"), + v = w("../tool/event").Dispatcher, + E = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(a) { + setTimeout(a, 16) + }, + q = Array.prototype.slice, + I = function(a) { + a = a || {}, this.stage = a.stage || {}, this.onframe = a.onframe || function() {}, this._clips = [], this._running = !1, this._time = 0, v.call(this) + }; + I.prototype = { + add: function(a) { + this._clips.push(a) + }, + remove: function(a) { + if (a.__inStep) { + a.__needsRemove = !0 + } else { + var i = J.indexOf(this._clips, a); + i >= 0 && this._clips.splice(i, 1) + } + }, + _update: function() { + for (var p = (new Date).getTime(), Q = p - this._time, u = this._clips, M = u.length, m = [], N = [], O = 0; M > O; O++) { + var P = u[O]; + P.__inStep = !0; + var y = P.step(p); + P.__inStep = !1, y && (m.push(y), N.push(P)) + } + for (var O = 0; M > O;) { + u[O].__needsRemove ? (u[O] = u[M - 1], u.pop(), M--) : O++ + } + M = m.length; + for (var O = 0; M > O; O++) { + N[O].fire(m[O]) + } + this._time = p, this.onframe(Q), this.dispatch("frame", Q), this.stage.update && this.stage.update() + }, + start: function() { + function a() { + i._running && (E(a), i._update()) + } + var i = this; + this._running = !0, this._time = (new Date).getTime(), E(a) + }, + stop: function() { + this._running = !1 + }, + clear: function() { + this._clips = [] + }, + animate: function(a, m) { + m = m || {}; + var l = new L(a, m.loop, m.getter, m.setter); + return l.animation = this, l + }, + constructor: I + }, J.merge(I.prototype, v.prototype, !0); + var L = function(l, m, i, p) { + this._tracks = {}, this._target = l, this._loop = m || !1, this._getter = i || H, this._setter = p || z, this._clipCount = 0, this._delay = 0, this._doneList = [], this._onframeList = [], this._clipList = [] + }; + return L.prototype = { + when: function(a, m) { + for (var l in m) { + this._tracks[l] || (this._tracks[l] = [], 0 !== a && this._tracks[l].push({ + time: 0, + value: A(this._getter(this._target, l)) + })), this._tracks[l].push({ + time: parseInt(a, 10), + value: m[l] + }) + } + return this + }, + during: function(a) { + return this._onframeList.push(a), this + }, + start: function(n) { + var u = this, + o = this._setter, + r = this._getter, + y = "spline" === n, + m = function() { + if (u._clipCount--, 0 === u._clipCount) { + u._tracks = {}; + for (var l = u._doneList.length, p = 0; l > p; p++) { + u._doneList[p].call(u) + } + } + }, + s = function(Z, l) { + var ac = Z.length; + if (ac) { + var ai = Z[0].value, + P = D(ai), + i = !1, + N = P && D(ai[0]) ? 2 : 1; + Z.sort(function(p, S) { + return p.time - S.time + }); + var U; + if (ac) { + U = Z[ac - 1].time; + for (var ag = [], e = [], Y = 0; ac > Y; Y++) { + ag.push(Z[Y].time / U); + var af = Z[Y].value; + "string" == typeof af && (af = K.toArray(af), 0 === af.length && (af[0] = af[1] = af[2] = 0, af[3] = 1), i = !0), e.push(af) + } + var ah, Y, ad, ae, V, Q, R, t = 0, + aa = 0; + if (i) { + var M = [0, 0, 0, 0] + } + var O = function(p, T) { + if (aa > T) { + for (ah = Math.min(t + 1, ac - 1), Y = ah; Y >= 0 && !(ag[Y] <= T); Y--) {} + Y = Math.min(Y, ac - 2) + } else { + for (Y = t; ac > Y && !(ag[Y] > T); Y++) {} + Y = Math.min(Y - 1, ac - 2) + } + t = Y, aa = T; + var S = ag[Y + 1] - ag[Y]; + if (0 !== S) { + if (ad = (T - ag[Y]) / S, y) { + if (V = e[Y], ae = e[0 === Y ? Y : Y - 1], Q = e[Y > ac - 2 ? ac - 1 : Y + 1], R = e[Y > ac - 3 ? ac - 1 : Y + 2], P) { + F(ae, V, Q, R, ad, ad * ad, ad * ad * ad, r(p, l), N) + } else { + var W; + i ? (W = F(ae, V, Q, R, ad, ad * ad, ad * ad * ad, M, 1), W = x(M)) : W = G(ae, V, Q, R, ad, ad * ad, ad * ad * ad), o(p, l, W) + } + } else { + if (P) { + j(e[Y], e[Y + 1], ad, r(p, l), N) + } else { + var W; + i ? (j(e[Y], e[Y + 1], ad, M, 1), W = x(M)) : W = C(e[Y], e[Y + 1], ad), o(p, l, W) + } + } + for (Y = 0; Y < u._onframeList.length; Y++) { + u._onframeList[Y](p, T) + } + } + }, + ab = new B({ + target: u._target, + life: U, + loop: u._loop, + delay: u._delay, + onframe: O, + ondestroy: m + }); + n && "spline" !== n && (ab.easing = n), u._clipList.push(ab), u._clipCount++, u.animation.add(ab) + } + } + }; + for (var a in this._tracks) { + s(this._tracks[a], a) + } + return this + }, + stop: function() { + for (var a = 0; a < this._clipList.length; a++) { + var i = this._clipList[a]; + this.animation.remove(i) + } + this._clipList = [] + }, + delay: function(a) { + return this._delay = a, this + }, + done: function(a) { + return a && this._doneList.push(a), this + } + }, I + }), d("zrender/tool/vector", [], function() { + var a = "undefined" == typeof Float32Array ? Array : Float32Array, + i = { + create: function(l, e) { + var j = new a(2); + return j[0] = l || 0, j[1] = e || 0, j + }, + copy: function(j, l) { + return j[0] = l[0], j[1] = l[1], j + }, + clone: function(j) { + var e = new a(2); + return e[0] = j[0], e[1] = j[1], e + }, + set: function(j, m, l) { + return j[0] = m, j[1] = l, j + }, + add: function(j, m, l) { + return j[0] = m[0] + l[0], j[1] = m[1] + l[1], j + }, + scaleAndAdd: function(j, o, l, m) { + return j[0] = o[0] + l[0] * m, j[1] = o[1] + l[1] * m, j + }, + sub: function(j, m, l) { + return j[0] = m[0] - l[0], j[1] = m[1] - l[1], j + }, + len: function(j) { + return Math.sqrt(this.lenSquare(j)) + }, + lenSquare: function(j) { + return j[0] * j[0] + j[1] * j[1] + }, + mul: function(j, m, l) { + return j[0] = m[0] * l[0], j[1] = m[1] * l[1], j + }, + div: function(j, m, l) { + return j[0] = m[0] / l[0], j[1] = m[1] / l[1], j + }, + dot: function(j, l) { + return j[0] * l[0] + j[1] * l[1] + }, + scale: function(j, m, l) { + return j[0] = m[0] * l, j[1] = m[1] * l, j + }, + normalize: function(j, l) { + var m = i.len(l); + return 0 === m ? (j[0] = 0, j[1] = 0) : (j[0] = l[0] / m, j[1] = l[1] / m), j + }, + distance: function(j, l) { + return Math.sqrt((j[0] - l[0]) * (j[0] - l[0]) + (j[1] - l[1]) * (j[1] - l[1])) + }, + distanceSquare: function(j, l) { + return (j[0] - l[0]) * (j[0] - l[0]) + (j[1] - l[1]) * (j[1] - l[1]) + }, + negate: function(j, l) { + return j[0] = -l[0], j[1] = -l[1], j + }, + lerp: function(j, o, l, m) { + return j[0] = o[0] + m * (l[0] - o[0]), j[1] = o[1] + m * (l[1] - o[1]), j + }, + applyTransform: function(l, p, m) { + var o = p[0], + j = p[1]; + return l[0] = m[0] * o + m[2] * j + m[4], l[1] = m[1] * o + m[3] * j + m[5], l + }, + min: function(j, m, l) { + return j[0] = Math.min(m[0], l[0]), j[1] = Math.min(m[1], l[1]), j + }, + max: function(j, m, l) { + return j[0] = Math.max(m[0], l[0]), j[1] = Math.max(m[1], l[1]), j + } + }; + return i.length = i.len, i.lengthSquare = i.lenSquare, i.dist = i.distance, i.distSquare = i.distanceSquare, i + }), d("zrender/tool/matrix", [], function() { + var a = "undefined" == typeof Float32Array ? Array : Float32Array, + i = { + create: function() { + var e = new a(6); + return i.identity(e), e + }, + identity: function(j) { + return j[0] = 1, j[1] = 0, j[2] = 0, j[3] = 1, j[4] = 0, j[5] = 0, j + }, + copy: function(j, l) { + return j[0] = l[0], j[1] = l[1], j[2] = l[2], j[3] = l[3], j[4] = l[4], j[5] = l[5], j + }, + mul: function(j, m, l) { + return j[0] = m[0] * l[0] + m[2] * l[1], j[1] = m[1] * l[0] + m[3] * l[1], j[2] = m[0] * l[2] + m[2] * l[3], j[3] = m[1] * l[2] + m[3] * l[3], j[4] = m[0] * l[4] + m[2] * l[5] + m[4], j[5] = m[1] * l[4] + m[3] * l[5] + m[5], j + }, + translate: function(j, m, l) { + return j[0] = m[0], j[1] = m[1], j[2] = m[2], j[3] = m[3], j[4] = m[4] + l[0], j[5] = m[5] + l[1], j + }, + rotate: function(p, B, u) { + var x = B[0], + j = B[2], + y = B[4], + z = B[1], + A = B[3], + v = B[5], + q = Math.sin(u), + w = Math.cos(u); + return p[0] = x * w + z * q, p[1] = -x * q + z * w, p[2] = j * w + A * q, p[3] = -j * q + w * A, p[4] = w * y + q * v, p[5] = w * v - q * y, p + }, + scale: function(l, p, m) { + var o = m[0], + j = m[1]; + return l[0] = p[0] * o, l[1] = p[1] * j, l[2] = p[2] * o, l[3] = p[3] * j, l[4] = p[4] * o, l[5] = p[5] * j, l + }, + invert: function(m, y) { + var p = y[0], + u = y[2], + j = y[4], + v = y[1], + w = y[3], + x = y[5], + q = p * w - v * u; + return q ? (q = 1 / q, m[0] = w * q, m[1] = -v * q, m[2] = -u * q, m[3] = p * q, m[4] = (u * x - w * j) * q, m[5] = (v * j - p * x) * q, m) : null + } + }; + return i + }), d("zrender/loadingEffect/Base", ["require", "../tool/util", "../shape/Text", "../shape/Rectangle"], function(l) { + function u(a) { + this.setOptions(a) + } + var m = l("../tool/util"), + p = l("../shape/Text"), + j = l("../shape/Rectangle"), + q = "Loading...", + s = "normal 16px Arial"; + return u.prototype.createTextShape = function(a) { + return new p({ + highlightStyle: m.merge({ + x: this.canvasWidth / 2, + y: this.canvasHeight / 2, + text: q, + textAlign: "center", + textBaseline: "middle", + textFont: s, + color: "#333", + brushType: "fill" + }, a, !0) + }) + }, u.prototype.createBackgroundShape = function(a) { + return new j({ + highlightStyle: { + x: 0, + y: 0, + width: this.canvasWidth, + height: this.canvasHeight, + brushType: "fill", + color: a + } + }) + }, u.prototype.start = function(a) { + function o(e) { + a.storage.addHover(e) + } + + function n() { + a.refreshHover() + } + this.canvasWidth = a._width, this.canvasHeight = a._height, this.loadingTimer = this._start(o, n) + }, u.prototype._start = function() { + return setInterval(function() {}, 10000) + }, u.prototype.stop = function() { + clearInterval(this.loadingTimer) + }, u.prototype.setOptions = function(a) { + this.options = a || {} + }, u.prototype.adjust = function(a, i) { + return a <= i[0] ? a = i[0] : a >= i[1] && (a = i[1]), a + }, u.prototype.getLocation = function(r, x, v) { + var w = null != r.x ? r.x : "center"; + switch (w) { + case "center": + w = Math.floor((this.canvasWidth - x) / 2); + break; + case "left": + w = 0; + break; + case "right": + w = this.canvasWidth - x + } + var o = null != r.y ? r.y : "center"; + switch (o) { + case "center": + o = Math.floor((this.canvasHeight - v) / 2); + break; + case "top": + o = 0; + break; + case "bottom": + o = this.canvasHeight - v + } + return { + x: w, + y: o, + width: x, + height: v + } + }, u + }), d("zrender/Layer", ["require", "./mixin/Transformable", "./tool/util", "./config"], function(l) { + function w() { + return !1 + } + + function m(s, A, x) { + var y = document.createElement(A), + r = x.getWidth(), + z = x.getHeight(); + return y.style.position = "absolute", y.style.left = 0, y.style.top = 0, y.style.width = r + "px", y.style.height = z + "px", y.width = r * u.devicePixelRatio, y.height = z * u.devicePixelRatio, y.setAttribute("data-zr-dom-id", s), y + } + var p = l("./mixin/Transformable"), + j = l("./tool/util"), + q = window.G_vmlCanvasManager, + u = l("./config"), + v = function(n, i) { + this.id = n, this.dom = m(n, "canvas", i), this.dom.onselectstart = w, this.dom.style["-webkit-user-select"] = "none", this.dom.style["user-select"] = "none", this.dom.style["-webkit-touch-callout"] = "none", this.dom.style["-webkit-tap-highlight-color"] = "rgba(0,0,0,0)", this.dom.className = u.elementClassName, q && q.initElement(this.dom), this.domBack = null, this.ctxBack = null, this.painter = i, this.unusedCount = 0, this.config = null, this.dirty = !0, this.elCount = 0, this.clearColor = 0, this.motionBlur = !1, this.lastFrameAlpha = 0.7, this.zoomable = !1, this.panable = !1, this.maxZoom = 1 / 0, this.minZoom = 0, p.call(this) + }; + return v.prototype.initContext = function() { + this.ctx = this.dom.getContext("2d"); + var a = u.devicePixelRatio; + 1 != a && this.ctx.scale(a, a) + }, v.prototype.createBackBuffer = function() { + if (!q) { + this.domBack = m("back-" + this.id, "canvas", this.painter), this.ctxBack = this.domBack.getContext("2d"); + var a = u.devicePixelRatio; + 1 != a && this.ctxBack.scale(a, a) + } + }, v.prototype.resize = function(a, o) { + var n = u.devicePixelRatio; + this.dom.style.width = a + "px", this.dom.style.height = o + "px", this.dom.setAttribute("width", a * n), this.dom.setAttribute("height", o * n), 1 != n && this.ctx.scale(n, n), this.domBack && (this.domBack.setAttribute("width", a * n), this.domBack.setAttribute("height", o * n), 1 != n && this.ctxBack.scale(n, n)) + }, v.prototype.clear = function() { + var r = this.dom, + D = this.ctx, + y = r.width, + B = r.height, + o = this.clearColor && !q, + C = this.motionBlur && !q, + z = this.lastFrameAlpha, + x = u.devicePixelRatio; + if (C && (this.domBack || this.createBackBuffer(), this.ctxBack.globalCompositeOperation = "copy", this.ctxBack.drawImage(r, 0, 0, y / x, B / x)), D.clearRect(0, 0, y / x, B / x), o && (D.save(), D.fillStyle = this.clearColor, D.fillRect(0, 0, y / x, B / x), D.restore()), C) { + var A = this.domBack; + D.save(), D.globalAlpha = z, D.drawImage(A, 0, 0, y / x, B / x), D.restore() + } + }, j.merge(v.prototype, p.prototype), v + }), d("zrender/shape/Text", ["require", "../tool/area", "./Base", "../tool/util"], function(a) { + var m = a("../tool/area"), + j = a("./Base"), + l = function(i) { + j.call(this, i) + }; + return l.prototype = { + type: "text", + brush: function(q, u) { + var x = this.style; + if (u && (x = this.getHighlightStyle(x, this.highlightStyle || {})), "undefined" != typeof x.text && x.text !== !1) { + q.save(), this.doClip(q), this.setContext(q, x), this.setTransform(q), x.textFont && (q.font = x.textFont), q.textAlign = x.textAlign || "start", q.textBaseline = x.textBaseline || "middle"; + var p, y = (x.text + "").split("\n"), + z = m.getTextHeight("国", x.textFont), + A = this.getRect(x), + v = x.x; + p = "top" == x.textBaseline ? A.y : "bottom" == x.textBaseline ? A.y + z : A.y + z / 2; + for (var t = 0, w = y.length; w > t; t++) { + if (x.maxWidth) { + switch (x.brushType) { + case "fill": + q.fillText(y[t], v, p, x.maxWidth); + break; + case "stroke": + q.strokeText(y[t], v, p, x.maxWidth); + break; + case "both": + q.fillText(y[t], v, p, x.maxWidth), q.strokeText(y[t], v, p, x.maxWidth); + break; + default: + q.fillText(y[t], v, p, x.maxWidth) + } + } else { + switch (x.brushType) { + case "fill": + q.fillText(y[t], v, p); + break; + case "stroke": + q.strokeText(y[t], v, p); + break; + case "both": + q.fillText(y[t], v, p), q.strokeText(y[t], v, p); + break; + default: + q.fillText(y[t], v, p) + } + } + p += z + } + q.restore() + } + }, + getRect: function(q) { + if (q.__rect) { + return q.__rect + } + var r = m.getTextWidth(q.text, q.textFont), + s = m.getTextHeight(q.text, q.textFont), + p = q.x; + "end" == q.textAlign || "right" == q.textAlign ? p -= r : "center" == q.textAlign && (p -= r / 2); + var t; + return t = "top" == q.textBaseline ? q.y : "bottom" == q.textBaseline ? q.y - s : q.y - s / 2, q.__rect = { + x: p, + y: t, + width: r, + height: s + }, q.__rect + } + }, a("../tool/util").inherits(l, j), l + }), d("zrender/shape/Rectangle", ["require", "./Base", "../tool/util"], function(a) { + var l = a("./Base"), + j = function(i) { + l.call(this, i) + }; + return j.prototype = { + type: "rectangle", + _buildRadiusPath: function(q, C) { + var v, y, p, z, A = C.x, + B = C.y, + w = C.width, + u = C.height, + x = C.radius; + "number" == typeof x ? v = y = p = z = x : x instanceof Array ? 1 === x.length ? v = y = p = z = x[0] : 2 === x.length ? (v = p = x[0], y = z = x[1]) : 3 === x.length ? (v = x[0], y = z = x[1], p = x[2]) : (v = x[0], y = x[1], p = x[2], z = x[3]) : v = y = p = z = 0; + var D; + v + y > w && (D = v + y, v *= w / D, y *= w / D), p + z > w && (D = p + z, p *= w / D, z *= w / D), y + p > u && (D = y + p, y *= u / D, p *= u / D), v + z > u && (D = v + z, v *= u / D, z *= u / D), q.moveTo(A + v, B), q.lineTo(A + w - y, B), 0 !== y && q.quadraticCurveTo(A + w, B, A + w, B + y), q.lineTo(A + w, B + u - p), 0 !== p && q.quadraticCurveTo(A + w, B + u, A + w - p, B + u), q.lineTo(A + z, B + u), 0 !== z && q.quadraticCurveTo(A, B + u, A, B + u - z), q.lineTo(A, B + v), 0 !== v && q.quadraticCurveTo(A, B, A + v, B) + }, + buildPath: function(i, m) { + m.radius ? this._buildRadiusPath(i, m) : (i.moveTo(m.x, m.y), i.lineTo(m.x + m.width, m.y), i.lineTo(m.x + m.width, m.y + m.height), i.lineTo(m.x, m.y + m.height), i.lineTo(m.x, m.y)), i.closePath() + }, + getRect: function(i) { + if (i.__rect) { + return i.__rect + } + var m; + return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = { + x: Math.round(i.x - m / 2), + y: Math.round(i.y - m / 2), + width: i.width + m, + height: i.height + m + }, i.__rect + } + }, a("../tool/util").inherits(j, l), j + }), d("zrender/tool/area", ["require", "./util", "./curve"], function(F) { + function ah(a) { + return a %= B, 0 > a && (a += B), a + } + + function O(a, w, m, p) { + if (!w || !a) { + return !1 + } + var u = a.type; + Z = Z || an.getContext(); + var v = ab(a, w, m, p); + if ("undefined" != typeof v) { + return v + } + if (a.buildPath && Z.isPointInPath) { + return q(a, Z, w, m, p) + } + switch (u) { + case "ellipse": + return !0; + case "trochoid": + var n = "out" == w.location ? w.r1 + w.r2 + w.d : w.r1 - w.r2 + w.d; + return D(w, m, p, n); + case "rose": + return D(w, m, p, w.maxr); + default: + return !1 + } + } + + function ab(m, w, r, s) { + var l = m.type; + switch (l) { + case "bezier-curve": + return "undefined" == typeof w.cpX2 ? Y(w.xStart, w.yStart, w.cpX1, w.cpY1, w.xEnd, w.yEnd, w.lineWidth, r, s) : af(w.xStart, w.yStart, w.cpX1, w.cpY1, w.cpX2, w.cpY2, w.xEnd, w.yEnd, w.lineWidth, r, s); + case "line": + return ae(w.xStart, w.yStart, w.xEnd, w.yEnd, w.lineWidth, r, s); + case "polyline": + return aa(w.pointList, w.lineWidth, r, s); + case "ring": + return al(w.x, w.y, w.r0, w.r, r, s); + case "circle": + return D(w.x, w.y, w.r, r, s); + case "sector": + var v = w.startAngle * Math.PI / 180, + p = w.endAngle * Math.PI / 180; + return w.clockWise || (v = -v, p = -p), ad(w.x, w.y, w.r0, w.r, v, p, !w.clockWise, r, s); + case "path": + return w.pathArray && R(w.pathArray, Math.max(w.lineWidth, 5), w.brushType, r, s); + case "polygon": + case "star": + case "isogon": + return A(w.pointList, r, s); + case "text": + var x = w.__rect || m.getRect(w); + return aj(x.x, x.y, x.width, x.height, r, s); + case "rectangle": + case "image": + return aj(w.x, w.y, w.width, w.height, r, s) + } + } + + function q(m, r, o, p, l) { + return r.beginPath(), m.buildPath(r, o), r.closePath(), r.isPointInPath(p, l) + } + + function ac(l, o, m, i) { + return !O(l, o, m, i) + } + + function ae(u, K, w, C, p, E, I) { + if (0 === p) { + return !1 + } + var J = Math.max(p, 5), + x = 0, + v = u; + if (I > K + J && I > C + J || K - J > I && C - J > I || E > u + J && E > w + J || u - J > E && w - J > E) { + return !1 + } + if (u === w) { + return Math.abs(E - u) <= J / 2 + } + x = (K - C) / (u - w), v = (u * C - w * K) / (u - w); + var y = x * E - I + v, + L = y * y / (x * x + 1); + return J / 2 * J / 2 >= L + } + + function af(u, K, w, C, p, E, I, J, x, v, y) { + if (0 === x) { + return !1 + } + var S = Math.max(x, 5); + if (y > K + S && y > C + S && y > E + S && y > J + S || K - S > y && C - S > y && E - S > y && J - S > y || v > u + S && v > w + S && v > p + S && v > I + S || u - S > v && w - S > v && p - S > v && I - S > v) { + return !1 + } + var L = ap.cubicProjectPoint(u, K, w, C, p, E, I, J, v, y, null); + return S / 2 >= L + } + + function Y(u, K, w, C, p, E, I, J, x) { + if (0 === I) { + return !1 + } + var v = Math.max(I, 5); + if (x > K + v && x > C + v && x > E + v || K - v > x && C - v > x && E - v > x || J > u + v && J > w + v && J > p + v || u - v > J && w - v > J && p - v > J) { + return !1 + } + var y = ap.quadraticProjectPoint(u, K, w, C, p, E, J, x, null); + return v / 2 >= y + } + + function N(u, w, C, p, E, I, J, x, v) { + if (0 === J) { + return !1 + } + var y = Math.max(J, 5); + x -= u, v -= w; + var L = Math.sqrt(x * x + v * v); + if (L - y > C || C > L + y) { + return !1 + } + if (Math.abs(p - E) >= B) { + return !0 + } + if (I) { + var K = p; + p = ah(E), E = ah(K) + } else { + p = ah(p), E = ah(E) + } + p > E && (E += B); + var t = Math.atan2(v, x); + return 0 > t && (t += B), t >= p && E >= t || t + B >= p && E >= t + B + } + + function aa(r, I, v, y) { + for (var I = Math.max(I, 10), p = 0, C = r.length - 1; C > p; p++) { + var E = r[p][0], + w = r[p][1], + u = r[p + 1][0], + x = r[p + 1][1]; + if (ae(E, w, u, x, I, v, y)) { + return !0 + } + } + return !1 + } + + function al(m, w, p, s, l, u) { + var v = (l - m) * (l - m) + (u - w) * (u - w); + return s * s > v && v > p * p + } + + function aj(m, u, p, r, l, s) { + return l >= m && m + p >= l && s >= u && u + r >= s + } + + function D(m, r, o, p, l) { + return o * o > (p - m) * (p - m) + (l - r) * (l - r) + } + + function ad(p, E, u, w, m, x, y, C, v) { + return N(p, E, (u + w) / 2, m, x, y, w - u, C, v) + } + + function A(u, K, w) { + for (var C = u.length, p = 0, E = 0, I = C - 1; C > E; E++) { + var J = u[I][0], + x = u[I][1], + v = u[E][0], + y = u[E][1]; + p += ai(J, x, v, y, K, w), I = E + } + return 0 !== p + } + + function ai(p, E, u, w, m, x) { + if (x > E && x > w || E > x && w > x) { + return 0 + } + if (w == E) { + return 0 + } + var y = E > w ? 1 : -1, + C = (x - E) / (w - E), + v = C * (u - p) + p; + return v > m ? y : 0 + } + + function aq() { + var a = G[0]; + G[0] = G[1], G[1] = a + } + + function M(y, at, I, L, v, S, X, ar, J, E) { + if (E > at && E > L && E > S && E > ar || at > E && L > E && S > E && ar > E) { + return 0 + } + var K = ap.cubicRootAt(at, L, S, ar, E, ag); + if (0 === K) { + return 0 + } + for (var aw, av, x = 0, W = -1, w = 0; K > w; w++) { + var au = ag[w], + C = ap.cubicAt(y, I, v, X, au); + J > C || (0 > W && (W = ap.cubicExtrema(at, L, S, ar, G), G[1] < G[0] && W > 1 && aq(), aw = ap.cubicAt(at, L, S, ar, G[0]), W > 1 && (av = ap.cubicAt(at, L, S, ar, G[1]))), x += 2 == W ? au < G[0] ? at > aw ? 1 : -1 : au < G[1] ? aw > av ? 1 : -1 : av > ar ? 1 : -1 : au < G[0] ? at > aw ? 1 : -1 : aw > ar ? 1 : -1) + } + return x + } + + function z(v, L, x, E, p, I, J, K) { + if (K > L && K > E && K > I || L > K && E > K && I > K) { + return 0 + } + var y = ap.quadraticRootAt(L, E, I, K, ag); + if (0 === y) { + return 0 + } + var w = ap.quadraticExtremum(L, E, I); + if (w >= 0 && 1 >= w) { + for (var C = 0, W = ap.quadraticAt(L, E, I, w), S = 0; y > S; S++) { + var u = ap.quadraticAt(v, x, p, ag[S]); + J > u || (C += ag[S] < w ? L > W ? 1 : -1 : W > I ? 1 : -1) + } + return C + } + var u = ap.quadraticAt(v, x, p, ag[0]); + return J > u ? 0 : L > I ? 1 : -1 + } + + function H(v, x, E, t, I, K, L, y) { + if (y -= x, y > E || -E > y) { + return 0 + } + var w = Math.sqrt(E * E - y * y); + if (ag[0] = -w, ag[1] = w, Math.abs(t - I) >= B) { + t = 0, I = B; + var C = K ? 1 : -1; + return L >= ag[0] + v && L <= ag[1] + v ? C : 0 + } + if (K) { + var w = t; + t = ah(I), I = ah(w) + } else { + t = ah(t), I = ah(I) + } + t > I && (I += B); + for (var W = 0, S = 0; 2 > S; S++) { + var u = ag[S]; + if (u + v > L) { + var J = Math.atan2(y, u), + C = K ? 1 : -1; + 0 > J && (J = B + J), (J >= t && I >= J || J + B >= t && I >= J + B) && (J > Math.PI / 2 && J < 1.5 * Math.PI && (C = -C), W += C) + } + } + return W + } + + function R(ar, aE, at, aA, r) { + var aB = 0, + az = 0, + aH = 0, + aF = 0, + E = 0, + aC = !0, + s = !0; + at = at || "fill"; + for (var aM = "stroke" === at || "both" === at, aw = "fill" === at || "both" === at, aK = 0; aK < ar.length; aK++) { + var l = ar[aK], + ay = l.points; + if (aC || "M" === l.command) { + if (aK > 0 && (aw && (aB += ai(az, aH, aF, E, aA, r)), 0 !== aB)) { + return !0 + } + aF = ay[ay.length - 2], E = ay[ay.length - 1], aC = !1, s && "A" !== l.command && (s = !1, az = aF, aH = E) + } + switch (l.command) { + case "M": + az = ay[0], aH = ay[1]; + break; + case "L": + if (aM && ae(az, aH, ay[0], ay[1], aE, aA, r)) { + return !0 + } + aw && (aB += ai(az, aH, ay[0], ay[1], aA, r)), az = ay[0], aH = ay[1]; + break; + case "C": + if (aM && af(az, aH, ay[0], ay[1], ay[2], ay[3], ay[4], ay[5], aE, aA, r)) { + return !0 + } + aw && (aB += M(az, aH, ay[0], ay[1], ay[2], ay[3], ay[4], ay[5], aA, r)), az = ay[4], aH = ay[5]; + break; + case "Q": + if (aM && Y(az, aH, ay[0], ay[1], ay[2], ay[3], aE, aA, r)) { + return !0 + } + aw && (aB += z(az, aH, ay[0], ay[1], ay[2], ay[3], aA, r)), az = ay[2], aH = ay[3]; + break; + case "A": + var aJ = ay[0], + aL = ay[1], + aG = ay[2], + aI = ay[3], + ax = ay[4], + au = ay[5], + av = Math.cos(ax) * aG + aJ, + u = Math.sin(ax) * aI + aL; + s ? (s = !1, aF = av, E = u) : aB += ai(az, aH, av, u); + var aD = (aA - aJ) * aI / aG + aJ; + if (aM && N(aJ, aL, aI, ax, ax + au, 1 - ay[7], aE, aD, r)) { + return !0 + } + aw && (aB += H(aJ, aL, aI, ax, ax + au, 1 - ay[7], aD, r)), az = Math.cos(ax + au) * aG + aJ, aH = Math.sin(ax + au) * aI + aL; + break; + case "z": + if (aM && ae(az, aH, aF, E, aE, aA, r)) { + return !0 + } + aC = !0 + } + } + return aw && (aB += ai(az, aH, aF, E, aA, r)), 0 !== aB + } + + function ao(m, u) { + var p = m + ":" + u; + if (ak[p]) { + return ak[p] + } + Z = Z || an.getContext(), Z.save(), u && (Z.font = u), m = (m + "").split("\n"); + for (var r = 0, l = 0, s = m.length; s > l; l++) { + r = Math.max(Z.measureText(m[l]).width, r) + } + return Z.restore(), ak[p] = r, ++T > Q && (T = 0, ak = {}), r + } + + function j(a, o) { + var l = a + ":" + o; + if (am[l]) { + return am[l] + } + Z = Z || an.getContext(), Z.save(), o && (Z.font = o), a = (a + "").split("\n"); + var m = (Z.measureText("国").width + 2) * a.length; + return Z.restore(), am[l] = m, ++P > Q && (P = 0, am = {}), m + } + var Z, an = F("./util"), + ap = F("./curve"), + ak = {}, + am = {}, + T = 0, + P = 0, + Q = 5000, + B = 2 * Math.PI, + ag = [-1, -1, -1], + G = [-1, -1]; + return { + isInside: O, + isOutside: ac, + getTextWidth: ao, + getTextHeight: j, + isInsidePath: R, + isInsidePolygon: A, + isInsideSector: ad, + isInsideCircle: D, + isInsideLine: ae, + isInsideRect: aj, + isInsidePolyline: aa, + isInsideCubicStroke: af, + isInsideQuadraticStroke: Y + } + }), d("zrender/shape/Base", ["require", "../tool/matrix", "../tool/guid", "../tool/util", "../tool/log", "../mixin/Transformable", "../mixin/Eventful", "../tool/area", "../tool/color"], function(p) { + function B(K, G, e, H, I, J, E) { + I && (K.font = I), K.textAlign = J, K.textBaseline = E; + var i = u(G, e, H, I, J, E); + G = (G + "").split("\n"); + var F = p("../tool/area").getTextHeight("国", I); + switch (E) { + case "top": + H = i.y; + break; + case "bottom": + H = i.y + F; + break; + default: + H = i.y + F / 2 + } + for (var M = 0, L = G.length; L > M; M++) { + K.fillText(G[M], e, H), H += F + } + } + + function u(K, E, G, e, H, I) { + var J = p("../tool/area"), + F = J.getTextWidth(K, e), + m = J.getTextHeight("国", e); + switch (K = (K + "").split("\n"), H) { + case "end": + case "right": + E -= F; + break; + case "center": + E -= F / 2 + } + switch (I) { + case "top": + break; + case "bottom": + G -= m * K.length; + break; + default: + G -= m * K.length / 2 + } + return { + x: E, + y: G, + width: F, + height: m * K.length + } + } + var x = window.G_vmlCanvasManager, + j = p("../tool/matrix"), + y = p("../tool/guid"), + z = p("../tool/util"), + A = p("../tool/log"), + v = p("../mixin/Transformable"), + q = p("../mixin/Eventful"), + w = function(a) { + a = a || {}, this.id = a.id || y(); + for (var i in a) { + this[i] = a[i] + } + this.style = this.style || {}, this.highlightStyle = this.highlightStyle || null, this.parent = null, this.__dirty = !0, this.__clipShapes = [], v.call(this), q.call(this) + }; + w.prototype.invisible = !1, w.prototype.ignore = !1, w.prototype.zlevel = 0, w.prototype.draggable = !1, w.prototype.clickable = !1, w.prototype.hoverable = !0, w.prototype.z = 0, w.prototype.brush = function(a, m) { + var l = this.beforeBrush(a, m); + switch (a.beginPath(), this.buildPath(a, l), l.brushType) { + case "both": + a.fill(); + case "stroke": + l.lineWidth > 0 && a.stroke(); + break; + default: + a.fill() + } + this.drawText(a, l, this.style), this.afterBrush(a) + }, w.prototype.beforeBrush = function(a, m) { + var l = this.style; + return this.brushTypeOnly && (l.brushType = this.brushTypeOnly), m && (l = this.getHighlightStyle(l, this.highlightStyle || {}, this.brushTypeOnly)), "stroke" == this.brushTypeOnly && (l.strokeColor = l.strokeColor || l.color), a.save(), this.doClip(a), this.setContext(a, l), this.setTransform(a), l + }, w.prototype.afterBrush = function(a) { + a.restore() + }; + var D = [ + ["color", "fillStyle"], + ["strokeColor", "strokeStyle"], + ["opacity", "globalAlpha"], + ["lineCap", "lineCap"], + ["lineJoin", "lineJoin"], + ["miterLimit", "miterLimit"], + ["lineWidth", "lineWidth"], + ["shadowBlur", "shadowBlur"], + ["shadowColor", "shadowColor"], + ["shadowOffsetX", "shadowOffsetX"], + ["shadowOffsetY", "shadowOffsetY"] + ]; + w.prototype.setContext = function(m, H) { + for (var s = 0, E = D.length; E > s; s++) { + var l = D[s][0], + F = H[l], + G = D[s][1]; + "undefined" != typeof F && (m[G] = F) + } + }; + var C = j.create(); + return w.prototype.doClip = function(a) { + if (this.__clipShapes && !x) { + for (var n = 0; n < this.__clipShapes.length; n++) { + var l = this.__clipShapes[n]; + if (l.needTransform) { + var m = l.transform; + j.invert(C, m), a.transform(m[0], m[1], m[2], m[3], m[4], m[5]) + } + if (a.beginPath(), l.buildPath(a, l.style), a.clip(), l.needTransform) { + var m = C; + a.transform(m[0], m[1], m[2], m[3], m[4], m[5]) + } + } + } + }, w.prototype.getHighlightStyle = function(H, l, m) { + var e = {}; + for (var E in H) { + e[E] = H[E] + } + var F = p("../tool/color"), + G = F.getHighlightColor(); + "stroke" != H.brushType ? (e.strokeColor = G, e.lineWidth = (H.lineWidth || 1) + this.getHighlightZoom(), e.brushType = "both") : "stroke" != m ? (e.strokeColor = G, e.lineWidth = (H.lineWidth || 1) + this.getHighlightZoom()) : e.strokeColor = l.strokeColor || F.mix(H.strokeColor, F.toRGB(G)); + for (var E in l) { + "undefined" != typeof l[E] && (e[E] = l[E]) + } + return e + }, w.prototype.getHighlightZoom = function() { + return "text" != this.type ? 6 : 2 + }, w.prototype.drift = function(a, i) { + this.position[0] += a, this.position[1] += i + }, w.prototype.buildPath = function() { + A("buildPath not implemented in " + this.type) + }, w.prototype.getRect = function() { + A("getRect not implemented in " + this.type) + }, w.prototype.isCover = function(l, a) { + var e = this.transformCoordToLocal(l, a); + return l = e[0], a = e[1], this.isCoverRect(l, a) ? p("../tool/area").isInside(this, this.style, l, a) : !1 + }, w.prototype.isCoverRect = function(a, m) { + var l = this.style.__rect; + return l || (l = this.style.__rect = this.getRect(this.style)), a >= l.x && a <= l.x + l.width && m >= l.y && m <= l.y + l.height + }, w.prototype.drawText = function(G, J, M) { + if ("undefined" != typeof J.text && J.text !== !1) { + var t = J.textColor || J.color || J.strokeColor; + G.fillStyle = t; + var N, P, Q, K, I = 10, + L = J.textPosition || this.textPosition || "top"; + switch (L) { + case "inside": + case "top": + case "bottom": + case "left": + case "right": + if (this.getRect) { + var T = (M || J).__rect || this.getRect(M || J); + switch (L) { + case "inside": + Q = T.x + T.width / 2, K = T.y + T.height / 2, N = "center", P = "middle", "stroke" != J.brushType && t == J.color && (G.fillStyle = "#fff"); + break; + case "left": + Q = T.x - I, K = T.y + T.height / 2, N = "end", P = "middle"; + break; + case "right": + Q = T.x + T.width + I, K = T.y + T.height / 2, N = "start", P = "middle"; + break; + case "top": + Q = T.x + T.width / 2, K = T.y - I, N = "center", P = "bottom"; + break; + case "bottom": + Q = T.x + T.width / 2, K = T.y + T.height + I, N = "center", P = "top" + } + } + break; + case "start": + case "end": + var S = J.pointList || [ + [J.xStart || 0, J.yStart || 0], + [J.xEnd || 0, J.yEnd || 0] + ], + F = S.length; + if (2 > F) { + return + } + var O, E, R, W; + switch (L) { + case "start": + O = S[1][0], E = S[0][0], R = S[1][1], W = S[0][1]; + break; + case "end": + O = S[F - 2][0], E = S[F - 1][0], R = S[F - 2][1], W = S[F - 1][1] + } + Q = E, K = W; + var H = Math.atan((R - W) / (E - O)) / Math.PI * 180; + 0 > E - O ? H += 180 : 0 > R - W && (H += 360), I = 5, H >= 30 && 150 >= H ? (N = "center", P = "bottom", K -= I) : H > 150 && 210 > H ? (N = "right", P = "middle", Q -= I) : H >= 210 && 330 >= H ? (N = "center", P = "top", K += I) : (N = "left", P = "middle", Q += I); + break; + case "specific": + Q = J.textX || 0, K = J.textY || 0, N = "start", P = "middle" + } + null != Q && null != K && B(G, J.text, Q, K, J.textFont, J.textAlign || N, J.textBaseline || P) + } + }, w.prototype.modSelf = function() { + this.__dirty = !0, this.style && (this.style.__rect = null), this.highlightStyle && (this.highlightStyle.__rect = null) + }, w.prototype.isSilent = function() { + return !(this.hoverable || this.draggable || this.clickable || this.onmousemove || this.onmouseover || this.onmouseout || this.onmousedown || this.onmouseup || this.onclick || this.ondragenter || this.ondragover || this.ondragleave || this.ondrop) + }, z.merge(w.prototype, v.prototype, !0), z.merge(w.prototype, q.prototype, !0), w + }), d("zrender/tool/curve", ["require", "./vector"], function(x) { + function L(a) { + return a > -M && M > a + } + + function C(a) { + return a > M || -M > a + } + + function G(m, u, p, r, l) { + var s = 1 - l; + return s * s * (s * m + 3 * l * u) + l * l * (l * r + 3 * s * p) + } + + function j(m, u, p, r, l) { + var s = 1 - l; + return 3 * (((u - m) * s + 2 * (p - u) * l) * s + (r - p) * l * l) + } + + function H(T, aa, af, y, ag, ai) { + var aj = y + 3 * (aa - af) - T, + ac = 3 * (af - 2 * aa + T), + Z = 3 * (aa - T), + ae = T - ag, + an = ac * ac - 3 * aj * Z, + al = ac * Z - 9 * aj * ae, + S = Z * Z - 3 * ac * ae, + ah = 0; + if (L(an) && L(al)) { + if (L(ac)) { + ai[0] = 0 + } else { + var R = -Z / ac; + R >= 0 && 1 >= R && (ai[ah++] = R) + } + } else { + var ak = al * al - 4 * an * S; + if (L(ak)) { + var Q = al / an, + R = -ac / aj + Q, + Y = -Q / 2; + R >= 0 && 1 >= R && (ai[ah++] = R), Y >= 0 && 1 >= Y && (ai[ah++] = Y) + } else { + if (ak > 0) { + var ab = Math.sqrt(ak), + aq = an * ac + 1.5 * aj * (-al + ab), + t = an * ac + 1.5 * aj * (-al - ab); + aq = 0 > aq ? -Math.pow(-aq, A) : Math.pow(aq, A), t = 0 > t ? -Math.pow(-t, A) : Math.pow(t, A); + var R = (-ac - (aq + t)) / (3 * aj); + R >= 0 && 1 >= R && (ai[ah++] = R) + } else { + var ad = (2 * an * ac - 3 * aj * al) / (2 * Math.sqrt(an * an * an)), + ap = Math.acos(ad) / 3, + ar = Math.sqrt(an), + am = Math.cos(ap), + R = (-ac - 2 * ar * am) / (3 * aj), + Y = (-ac + ar * (am + P * Math.sin(ap))) / (3 * aj), + ao = (-ac + ar * (am - P * Math.sin(ap))) / (3 * aj); + R >= 0 && 1 >= R && (ai[ah++] = R), Y >= 0 && 1 >= Y && (ai[ah++] = Y), ao >= 0 && 1 >= ao && (ai[ah++] = ao) + } + } + } + return ah + } + + function J(u, S, i, T, X) { + var Y = 6 * i - 12 * S + 6 * u, + Q = 9 * S + 3 * T - 3 * u - 9 * i, + y = 3 * S - 3 * u, + R = 0; + if (L(Q)) { + if (C(Y)) { + var aa = -y / Y; + aa >= 0 && 1 >= aa && (X[R++] = aa) + } + } else { + var Z = Y * Y - 4 * Q * y; + if (L(Z)) { + X[0] = -Y / (2 * Q) + } else { + if (Z > 0) { + var t = Math.sqrt(Z), + aa = (-Y + t) / (2 * Q), + W = (-Y - t) / (2 * Q); + aa >= 0 && 1 >= aa && (X[R++] = aa), W >= 0 && 1 >= W && (X[R++] = W) + } + } + } + return R + } + + function K(u, Y, Q, T, p, U) { + var W = (Y - u) * p + u, + X = (Q - Y) * p + Y, + R = (T - Q) * p + Q, + y = (X - W) * p + W, + S = (R - X) * p + X, + Z = (S - y) * p + y; + U[0] = u, U[1] = W, U[2] = y, U[3] = Z, U[4] = Z, U[5] = S, U[6] = R, U[7] = T + } + + function E(R, af, X, u, ab, ad, ae, Y, T, aa, ah) { + var ag, Q = 0.005, + ac = 1 / 0; + q[0] = T, q[1] = aa; + for (var ak = 0; 1 > ak; ak += 0.05) { + z[0] = G(R, X, ab, ae, ak), z[1] = G(af, u, ad, Y, ak); + var S = v.distSquare(q, z); + ac > S && (ag = ak, ac = S) + } + ac = 1 / 0; + for (var aj = 0; 32 > aj && !(M > Q); aj++) { + var n = ag - Q, + Z = ag + Q; + z[0] = G(R, X, ab, ae, n), z[1] = G(af, u, ad, Y, n); + var S = v.distSquare(z, q); + if (n >= 0 && ac > S) { + ag = n, ac = S + } else { + D[0] = G(R, X, ab, ae, Z), D[1] = G(af, u, ad, Y, Z); + var ai = v.distSquare(D, q); + 1 >= Z && ac > ai ? (ag = Z, ac = ai) : Q *= 0.5 + } + } + return ah && (ah[0] = G(R, X, ab, ae, ag), ah[1] = G(af, u, ad, Y, ag)), Math.sqrt(ac) + } + + function B(m, r, o, p) { + var l = 1 - p; + return l * (l * m + 2 * p * r) + p * p * o + } + + function F(a, o, l, m) { + return 2 * ((1 - m) * (o - a) + m * (l - o)) + } + + function O(u, S, i, T, X) { + var Y = u - 2 * S + i, + Q = 2 * (S - u), + y = u - T, + R = 0; + if (L(Y)) { + if (C(Q)) { + var aa = -y / Q; + aa >= 0 && 1 >= aa && (X[R++] = aa) + } + } else { + var Z = Q * Q - 4 * Y * y; + if (L(Z)) { + var aa = -Q / (2 * Y); + aa >= 0 && 1 >= aa && (X[R++] = aa) + } else { + if (Z > 0) { + var t = Math.sqrt(Z), + aa = (-Q + t) / (2 * Y), + W = (-Q - t) / (2 * Y); + aa >= 0 && 1 >= aa && (X[R++] = aa), W >= 0 && 1 >= W && (X[R++] = W) + } + } + } + return R + } + + function N(a, o, l) { + var m = a + l - 2 * o; + return 0 === m ? 0.5 : (a - o) / m + } + + function w(m, S, p, u, l) { + var y = (S - m) * u + m, + Q = (p - S) * u + S, + R = (Q - y) * u + y; + l[0] = m, l[1] = y, l[2] = R, l[3] = R, l[4] = Q, l[5] = p + } + + function I(S, ae, W, Z, Q, aa, ac, ad, X) { + var Y, ag = 0.005, + af = 1 / 0; + q[0] = ac, q[1] = ad; + for (var R = 0; 1 > R; R += 0.05) { + z[0] = B(S, W, Q, R), z[1] = B(ae, Z, aa, R); + var ab = v.distSquare(q, z); + af > ab && (Y = R, af = ab) + } + af = 1 / 0; + for (var ai = 0; 32 > ai && !(M > ag); ai++) { + var T = Y - ag, + ah = Y + ag; + z[0] = B(S, W, Q, T), z[1] = B(ae, Z, aa, T); + var ab = v.distSquare(z, q); + if (T >= 0 && af > ab) { + Y = T, af = ab + } else { + D[0] = B(S, W, Q, ah), D[1] = B(ae, Z, aa, ah); + var u = v.distSquare(D, q); + 1 >= ah && af > u ? (Y = ah, af = u) : ag *= 0.5 + } + } + return X && (X[0] = B(S, W, Q, Y), X[1] = B(ae, Z, aa, Y)), Math.sqrt(af) + } + var v = x("./vector"), + M = 0.0001, + P = Math.sqrt(3), + A = 1 / 3, + q = v.create(), + z = v.create(), + D = v.create(); + return { + cubicAt: G, + cubicDerivativeAt: j, + cubicRootAt: H, + cubicExtrema: J, + cubicSubdivide: K, + cubicProjectPoint: E, + quadraticAt: B, + quadraticDerivativeAt: F, + quadraticRootAt: O, + quadraticExtremum: N, + quadraticSubdivide: w, + quadraticProjectPoint: I + } + }), d("zrender/mixin/Transformable", ["require", "../tool/matrix", "../tool/vector"], function(m) { + function y(a) { + return a > -x && x > a + } + + function p(a) { + return a > x || -x > a + } + var u = m("../tool/matrix"), + j = m("../tool/vector"), + v = [0, 0], + w = u.translate, + x = 5e-05, + q = function() { + this.position || (this.position = [0, 0]), "undefined" == typeof this.rotation && (this.rotation = [0, 0, 0]), this.scale || (this.scale = [1, 1, 0, 0]), this.needLocalTransform = !1, this.needTransform = !1 + }; + return q.prototype = { + constructor: q, + updateNeedTransform: function() { + this.needLocalTransform = p(this.rotation[0]) || p(this.position[0]) || p(this.position[1]) || p(this.scale[0] - 1) || p(this.scale[1] - 1) + }, + updateTransform: function() { + this.updateNeedTransform(); + var l = this.parent && this.parent.needTransform; + if (this.needTransform = this.needLocalTransform || l, this.needTransform) { + var o = this.transform || u.create(); + if (u.identity(o), this.needLocalTransform) { + var i = this.scale; + if (p(i[0]) || p(i[1])) { + v[0] = -i[2] || 0, v[1] = -i[3] || 0; + var n = p(v[0]) || p(v[1]); + n && w(o, o, v), u.scale(o, o, i), n && (v[0] = -v[0], v[1] = -v[1], w(o, o, v)) + } + if (this.rotation instanceof Array) { + if (0 !== this.rotation[0]) { + v[0] = -this.rotation[1] || 0, v[1] = -this.rotation[2] || 0; + var n = p(v[0]) || p(v[1]); + n && w(o, o, v), u.rotate(o, o, this.rotation[0]), n && (v[0] = -v[0], v[1] = -v[1], w(o, o, v)) + } + } else { + 0 !== this.rotation && u.rotate(o, o, this.rotation) + }(p(this.position[0]) || p(this.position[1])) && w(o, o, this.position) + } + l && (this.needLocalTransform ? u.mul(o, this.parent.transform, o) : u.copy(o, this.parent.transform)), this.transform = o, this.invTransform = this.invTransform || u.create(), u.invert(this.invTransform, o) + } + }, + setTransform: function(a) { + if (this.needTransform) { + var i = this.transform; + a.transform(i[0], i[1], i[2], i[3], i[4], i[5]) + } + }, + lookAt: function() { + var a = j.create(); + return function(e) { + this.transform || (this.transform = u.create()); + var l = this.transform; + if (j.sub(a, e, this.position), !y(a[0]) || !y(a[1])) { + j.normalize(a, a); + var n = this.scale; + l[2] = a[0] * n[1], l[3] = a[1] * n[1], l[0] = a[1] * n[0], l[1] = -a[0] * n[0], l[4] = this.position[0], l[5] = this.position[1], this.decomposeTransform() + } + } + }(), + decomposeTransform: function() { + if (this.transform) { + var l = this.transform, + B = l[0] * l[0] + l[1] * l[1], + s = this.position, + i = this.scale, + z = this.rotation; + p(B - 1) && (B = Math.sqrt(B)); + var A = l[2] * l[2] + l[3] * l[3]; + p(A - 1) && (A = Math.sqrt(A)), s[0] = l[4], s[1] = l[5], i[0] = B, i[1] = A, i[2] = i[3] = 0, z[0] = Math.atan2(-l[1] / A, l[0] / B), z[1] = z[2] = 0 + } + }, + transformCoordToLocal: function(a, n) { + var l = [a, n]; + return this.needTransform && this.invTransform && j.applyTransform(l, l, this.invTransform), l + } + }, q + }), d("zrender/Group", ["require", "./tool/guid", "./tool/util", "./mixin/Transformable", "./mixin/Eventful"], function(l) { + var r = l("./tool/guid"), + m = l("./tool/util"), + p = l("./mixin/Transformable"), + j = l("./mixin/Eventful"), + q = function(a) { + a = a || {}, this.id = a.id || r(); + for (var n in a) { + this[n] = a[n] + } + this.type = "group", this.clipShape = null, this._children = [], this._storage = null, this.__dirty = !0, p.call(this), j.call(this) + }; + return q.prototype.ignore = !1, q.prototype.children = function() { + return this._children.slice() + }, q.prototype.childAt = function(a) { + return this._children[a] + }, q.prototype.addChild = function(a) { + a != this && a.parent != this && (a.parent && a.parent.removeChild(a), this._children.push(a), a.parent = this, this._storage && this._storage !== a._storage && (this._storage.addToMap(a), a instanceof q && a.addChildrenToStorage(this._storage))) + }, q.prototype.removeChild = function(a) { + var i = m.indexOf(this._children, a); + i >= 0 && this._children.splice(i, 1), a.parent = null, this._storage && (this._storage.delFromMap(a.id), a instanceof q && a.delChildrenFromStorage(this._storage)) + }, q.prototype.clearChildren = function() { + for (var a = 0; a < this._children.length; a++) { + var i = this._children[a]; + this._storage && (this._storage.delFromMap(i.id), i instanceof q && i.delChildrenFromStorage(this._storage)) + } + this._children.length = 0 + }, q.prototype.eachChild = function(s, w) { + for (var u = !!w, v = 0; v < this._children.length; v++) { + var o = this._children[v]; + u ? s.call(w, o) : s(o) + } + }, q.prototype.traverse = function(s, w) { + for (var u = !!w, v = 0; v < this._children.length; v++) { + var o = this._children[v]; + u ? s.call(w, o) : s(o), "group" === o.type && o.traverse(s, w) + } + }, q.prototype.addChildrenToStorage = function(a) { + for (var o = 0; o < this._children.length; o++) { + var n = this._children[o]; + a.addToMap(n), n instanceof q && n.addChildrenToStorage(a) + } + }, q.prototype.delChildrenFromStorage = function(a) { + for (var o = 0; o < this._children.length; o++) { + var n = this._children[o]; + a.delFromMap(n.id), n instanceof q && n.delChildrenFromStorage(a) + } + }, q.prototype.modSelf = function() { + this.__dirty = !0 + }, m.merge(q.prototype, p.prototype, !0), m.merge(q.prototype, j.prototype, !0), q + }), d("zrender/animation/Clip", ["require", "./easing"], function(a) { + function l(i) { + this._targetPool = i.target || {}, this._targetPool instanceof Array || (this._targetPool = [this._targetPool]), this._life = i.life || 1000, this._delay = i.delay || 0, this._startTime = (new Date).getTime() + this._delay, this._endTime = this._startTime + 1000 * this._life, this.loop = "undefined" == typeof i.loop ? !1 : i.loop, this.gap = i.gap || 0, this.easing = i.easing || "Linear", this.onframe = i.onframe, this.ondestroy = i.ondestroy, this.onrestart = i.onrestart + } + var j = a("./easing"); + return l.prototype = { + step: function(m) { + var p = (m - this._startTime) / this._life; + if (!(0 > p)) { + p = Math.min(p, 1); + var o = "string" == typeof this.easing ? j[this.easing] : this.easing, + i = "function" == typeof o ? o(p) : p; + return this.fire("frame", i), 1 == p ? this.loop ? (this.restart(), "restart") : (this.__needsRemove = !0, "destroy") : null + } + }, + restart: function() { + var i = (new Date).getTime(), + m = (i - this._startTime) % this._life; + this._startTime = (new Date).getTime() - m + this.gap, this.__needsRemove = !1 + }, + fire: function(m, q) { + for (var o = 0, p = this._targetPool.length; p > o; o++) { + this["on" + m] && this["on" + m](this._targetPool[o], q) + } + }, + constructor: l + }, l + }), d("zrender/animation/easing", [], function() { + var a = { + Linear: function(i) { + return i + }, + QuadraticIn: function(i) { + return i * i + }, + QuadraticOut: function(i) { + return i * (2 - i) + }, + QuadraticInOut: function(i) { + return (i *= 2) < 1 ? 0.5 * i * i : -0.5 * (--i * (i - 2) - 1) + }, + CubicIn: function(i) { + return i * i * i + }, + CubicOut: function(i) { + return --i * i * i + 1 + }, + CubicInOut: function(i) { + return (i *= 2) < 1 ? 0.5 * i * i * i : 0.5 * ((i -= 2) * i * i + 2) + }, + QuarticIn: function(i) { + return i * i * i * i + }, + QuarticOut: function(i) { + return 1 - --i * i * i * i + }, + QuarticInOut: function(i) { + return (i *= 2) < 1 ? 0.5 * i * i * i * i : -0.5 * ((i -= 2) * i * i * i - 2) + }, + QuinticIn: function(i) { + return i * i * i * i * i + }, + QuinticOut: function(i) { + return --i * i * i * i * i + 1 + }, + QuinticInOut: function(i) { + return (i *= 2) < 1 ? 0.5 * i * i * i * i * i : 0.5 * ((i -= 2) * i * i * i * i + 2) + }, + SinusoidalIn: function(i) { + return 1 - Math.cos(i * Math.PI / 2) + }, + SinusoidalOut: function(i) { + return Math.sin(i * Math.PI / 2) + }, + SinusoidalInOut: function(i) { + return 0.5 * (1 - Math.cos(Math.PI * i)) + }, + ExponentialIn: function(i) { + return 0 === i ? 0 : Math.pow(1024, i - 1) + }, + ExponentialOut: function(i) { + return 1 === i ? 1 : 1 - Math.pow(2, -10 * i) + }, + ExponentialInOut: function(i) { + return 0 === i ? 0 : 1 === i ? 1 : (i *= 2) < 1 ? 0.5 * Math.pow(1024, i - 1) : 0.5 * (-Math.pow(2, -10 * (i - 1)) + 2) + }, + CircularIn: function(i) { + return 1 - Math.sqrt(1 - i * i) + }, + CircularOut: function(i) { + return Math.sqrt(1 - --i * i) + }, + CircularInOut: function(i) { + return (i *= 2) < 1 ? -0.5 * (Math.sqrt(1 - i * i) - 1) : 0.5 * (Math.sqrt(1 - (i -= 2) * i) + 1) + }, + ElasticIn: function(j) { + var o, l = 0.1, + m = 0.4; + return 0 === j ? 0 : 1 === j ? 1 : (!l || 1 > l ? (l = 1, o = m / 4) : o = m * Math.asin(1 / l) / (2 * Math.PI), -(l * Math.pow(2, 10 * (j -= 1)) * Math.sin(2 * (j - o) * Math.PI / m))) + }, + ElasticOut: function(j) { + var o, l = 0.1, + m = 0.4; + return 0 === j ? 0 : 1 === j ? 1 : (!l || 1 > l ? (l = 1, o = m / 4) : o = m * Math.asin(1 / l) / (2 * Math.PI), l * Math.pow(2, -10 * j) * Math.sin(2 * (j - o) * Math.PI / m) + 1) + }, + ElasticInOut: function(j) { + var o, l = 0.1, + m = 0.4; + return 0 === j ? 0 : 1 === j ? 1 : (!l || 1 > l ? (l = 1, o = m / 4) : o = m * Math.asin(1 / l) / (2 * Math.PI), (j *= 2) < 1 ? -0.5 * l * Math.pow(2, 10 * (j -= 1)) * Math.sin(2 * (j - o) * Math.PI / m) : l * Math.pow(2, -10 * (j -= 1)) * Math.sin(2 * (j - o) * Math.PI / m) * 0.5 + 1) + }, + BackIn: function(i) { + var j = 1.70158; + return i * i * ((j + 1) * i - j) + }, + BackOut: function(i) { + var j = 1.70158; + return --i * i * ((j + 1) * i + j) + 1 + }, + BackInOut: function(i) { + var j = 2.5949095; + return (i *= 2) < 1 ? 0.5 * i * i * ((j + 1) * i - j) : 0.5 * ((i -= 2) * i * ((j + 1) * i + j) + 2) + }, + BounceIn: function(e) { + return 1 - a.BounceOut(1 - e) + }, + BounceOut: function(i) { + return 1 / 2.75 > i ? 7.5625 * i * i : 2 / 2.75 > i ? 7.5625 * (i -= 1.5 / 2.75) * i + 0.75 : 2.5 / 2.75 > i ? 7.5625 * (i -= 2.25 / 2.75) * i + 0.9375 : 7.5625 * (i -= 2.625 / 2.75) * i + 0.984375 + }, + BounceInOut: function(e) { + return 0.5 > e ? 0.5 * a.BounceIn(2 * e) : 0.5 * a.BounceOut(2 * e - 1) + 0.5 + } + }; + return a + }), d("echarts/chart/base", ["require", "zrender/shape/Image", "../util/shape/Icon", "../util/shape/MarkLine", "../util/shape/Symbol", "zrender/shape/Polyline", "zrender/shape/ShapeBundle", "../config", "../util/ecData", "../util/ecAnimation", "../util/ecEffect", "../util/accMath", "../component/base", "../layout/EdgeBundling", "zrender/tool/util", "zrender/tool/area"], function(w) { + function H(a) { + return null != a.x && null != a.y + } + + function z(m, u, p, r, l) { + E.call(this, m, u, p, r, l); + var s = this; + this.selectedMap = {}, this.lastShapeList = [], this.shapeHandler = { + onclick: function() { + s.isClick = !0 + }, + ondragover: function(y) { + var P = y.target; + P.highlightStyle = P.highlightStyle || {}; + var M = P.highlightStyle, + N = M.brushTyep, + o = M.strokeColor, + O = M.lineWidth; + M.brushType = "stroke", M.strokeColor = s.ecTheme.calculableColor || x.calculableColor, M.lineWidth = "icon" === P.type ? 30 : 10, s.zr.addHoverShape(P), setTimeout(function() { + M && (M.brushType = N, M.strokeColor = o, M.lineWidth = O) + }, 20) + }, + ondrop: function(a) { + null != B.get(a.dragged, "data") && (s.isDrop = !0) + }, + ondragend: function() { + s.isDragend = !0 + } + } + } + var C = w("zrender/shape/Image"), + j = w("../util/shape/Icon"), + D = w("../util/shape/MarkLine"), + F = w("../util/shape/Symbol"), + G = w("zrender/shape/Polyline"), + A = w("zrender/shape/ShapeBundle"), + x = w("../config"), + B = w("../util/ecData"), + K = w("../util/ecAnimation"), + J = w("../util/ecEffect"), + v = w("../util/accMath"), + E = w("../component/base"), + q = w("../layout/EdgeBundling"), + I = w("zrender/tool/util"), + L = w("zrender/tool/area"); + return z.prototype = { + setCalculable: function(a) { + return a.dragEnableTime = this.ecTheme.DRAG_ENABLE_TIME || x.DRAG_ENABLE_TIME, a.ondragover = this.shapeHandler.ondragover, a.ondragend = this.shapeHandler.ondragend, a.ondrop = this.shapeHandler.ondrop, a + }, + ondrop: function(M, W) { + if (this.isDrop && M.target && !W.dragIn) { + var N, P = M.target, + m = M.dragged, + Q = B.get(P, "seriesIndex"), + S = B.get(P, "dataIndex"), + T = this.series, + O = this.component.legend; + if (-1 === S) { + if (B.get(m, "seriesIndex") == Q) { + return W.dragOut = W.dragIn = W.needRefresh = !0, void(this.isDrop = !1) + } + N = { + value: B.get(m, "value"), + name: B.get(m, "name") + }, this.type === x.CHART_TYPE_PIE && N.value < 0 && (N.value = 0); + for (var Z = !1, Y = T[Q].data, R = 0, y = Y.length; y > R; R++) { + Y[R].name === N.name && "-" === Y[R].value && (T[Q].data[R].value = N.value, Z = !0) + }!Z && T[Q].data.push(N), O && O.add(N.name, m.style.color || m.style.strokeColor) + } else { + N = T[Q].data[S] || "-", null != N.value ? (T[Q].data[S].value = "-" != N.value ? v.accAdd(T[Q].data[S].value, B.get(m, "value")) : B.get(m, "value"), (this.type === x.CHART_TYPE_FUNNEL || this.type === x.CHART_TYPE_PIE) && (O && 1 === O.getRelatedAmount(N.name) && this.component.legend.del(N.name), N.name += this.option.nameConnector + B.get(m, "name"), O && O.add(N.name, m.style.color || m.style.strokeColor))) : T[Q].data[S] = "-" != N ? v.accAdd(T[Q].data[S], B.get(m, "value")) : B.get(m, "value") + } + W.dragIn = W.dragIn || !0, this.isDrop = !1; + var X = this; + setTimeout(function() { + X.zr.trigger("mousemove", M.event) + }, 300) + } + }, + ondragend: function(m, O) { + if (this.isDragend && m.target && !O.dragOut) { + var p = m.target, + u = B.get(p, "seriesIndex"), + l = B.get(p, "dataIndex"), + y = this.series; + if (null != y[u].data[l].value) { + y[u].data[l].value = "-"; + var M = y[u].data[l].name, + N = this.component.legend; + N && 0 === N.getRelatedAmount(M) && N.del(M) + } else { + y[u].data[l] = "-" + } + O.dragOut = !0, O.needRefresh = !0, this.isDragend = !1 + } + }, + onlegendSelected: function(a, o) { + var l = a.selected; + for (var m in this.selectedMap) { + this.selectedMap[m] != l[m] && (o.needRefresh = !0), this.selectedMap[m] = l[m] + } + }, + _buildPosition: function() { + this._symbol = this.option.symbolList, this._sIndex2ShapeMap = {}, this._sIndex2ColorMap = {}, this.selectedMap = {}, this.xMarkMap = {}; + for (var p, Q, u, M, m = this.series, N = { + top: [], + bottom: [], + left: [], + right: [], + other: [] + }, O = 0, P = m.length; P > O; O++) { + m[O].type === this.type && (m[O] = this.reformOption(m[O]), this.legendHoverLink = m[O].legendHoverLink || this.legendHoverLink, p = m[O].xAxisIndex, Q = m[O].yAxisIndex, u = this.component.xAxis.getAxis(p), M = this.component.yAxis.getAxis(Q), u.type === x.COMPONENT_TYPE_AXIS_CATEGORY ? N[u.getPosition()].push(O) : M.type === x.COMPONENT_TYPE_AXIS_CATEGORY ? N[M.getPosition()].push(O) : N.other.push(O)) + } + for (var y in N) { + N[y].length > 0 && this._buildSinglePosition(y, N[y]) + } + this.addShapeList() + }, + _buildSinglePosition: function(m, M) { + var p = this._mapData(M), + s = p.locationMap, + l = p.maxDataLength; + if (0 !== l && 0 !== s.length) { + switch (m) { + case "bottom": + case "top": + this._buildHorizontal(M, l, s, this.xMarkMap); + break; + case "left": + case "right": + this._buildVertical(M, l, s, this.xMarkMap); + break; + case "other": + this._buildOther(M, l, s, this.xMarkMap) + } + for (var u = 0, y = M.length; y > u; u++) { + this.buildMark(M[u]) + } + } + }, + _mapData: function(O) { + for (var Z, P, S, y, T = this.series, X = 0, Y = {}, Q = "__kener__stack__", R = this.component.legend, ac = [], ab = 0, N = 0, W = O.length; W > N; N++) { + if (Z = T[O[N]], S = Z.name, this._sIndex2ShapeMap[O[N]] = this._sIndex2ShapeMap[O[N]] || this.query(Z, "symbol") || this._symbol[N % this._symbol.length], R) { + if (this.selectedMap[S] = R.isSelected(S), this._sIndex2ColorMap[O[N]] = R.getColor(S), y = R.getItemShape(S)) { + var M = y.style; + if (this.type == x.CHART_TYPE_LINE) { + M.iconType = "legendLineIcon", M.symbol = this._sIndex2ShapeMap[O[N]] + } else { + if (Z.itemStyle.normal.barBorderWidth > 0) { + var aa = y.highlightStyle; + M.brushType = "both", M.x += 1, M.y += 1, M.width -= 2, M.height -= 2, M.strokeColor = aa.strokeColor = Z.itemStyle.normal.barBorderColor, aa.lineWidth = 3 + } + } + R.setItemShape(S, y) + } + } else { + this.selectedMap[S] = !0, this._sIndex2ColorMap[O[N]] = this.zr.getColor(O[N]) + } + this.selectedMap[S] && (P = Z.stack || Q + O[N], null == Y[P] ? (Y[P] = X, ac[X] = [O[N]], X++) : ac[Y[P]].push(O[N])), ab = Math.max(ab, Z.data.length) + } + return { + locationMap: ac, + maxDataLength: ab + } + }, + _calculMarkMapXY: function(y, W, N) { + for (var Q = this.series, p = 0, R = W.length; R > p; p++) { + for (var S = 0, T = W[p].length; T > S; S++) { + var O = W[p][S], + M = "xy" == N ? 0 : "", + P = this.component.grid, + Y = y[O]; + if ("-1" != N.indexOf("x")) { + Y["counter" + M] > 0 && (Y["average" + M] = Y["sum" + M] / Y["counter" + M]); + var X = this.component.xAxis.getAxis(Q[O].xAxisIndex || 0).getCoord(Y["average" + M]); + Y["averageLine" + M] = [ + [X, P.getYend()], + [X, P.getY()] + ], Y["minLine" + M] = [ + [Y["minX" + M], P.getYend()], + [Y["minX" + M], P.getY()] + ], Y["maxLine" + M] = [ + [Y["maxX" + M], P.getYend()], + [Y["maxX" + M], P.getY()] + ], Y.isHorizontal = !1 + } + if (M = "xy" == N ? 1 : "", "-1" != N.indexOf("y")) { + Y["counter" + M] > 0 && (Y["average" + M] = Y["sum" + M] / Y["counter" + M]); + var u = this.component.yAxis.getAxis(Q[O].yAxisIndex || 0).getCoord(Y["average" + M]); + Y["averageLine" + M] = [ + [P.getX(), u], + [P.getXend(), u] + ], Y["minLine" + M] = [ + [P.getX(), Y["minY" + M]], + [P.getXend(), Y["minY" + M]] + ], Y["maxLine" + M] = [ + [P.getX(), Y["maxY" + M]], + [P.getXend(), Y["maxY" + M]] + ], Y.isHorizontal = !0 + } + } + } + }, + addLabel: function(u, T, M, P, p) { + var Q = [M, T], + R = this.deepMerge(Q, "itemStyle.normal.label"), + S = this.deepMerge(Q, "itemStyle.emphasis.label"), + N = R.textStyle || {}, + y = S.textStyle || {}; + if (R.show) { + var O = u.style; + O.text = this._getLabelText(T, M, P, "normal"), O.textPosition = null == R.position ? "horizontal" === p ? "right" : "top" : R.position, O.textColor = N.color, O.textFont = this.getFont(N), O.textAlign = N.align, O.textBaseline = N.baseline + } + if (S.show) { + var U = u.highlightStyle; + U.text = this._getLabelText(T, M, P, "emphasis"), U.textPosition = R.show ? u.style.textPosition : null == S.position ? "horizontal" === p ? "right" : "top" : S.position, U.textColor = y.color, U.textFont = this.getFont(y), U.textAlign = y.align, U.textBaseline = y.baseline + } + return u + }, + _getLabelText: function(m, u, p, r) { + var l = this.deepQuery([u, m], "itemStyle." + r + ".label.formatter"); + l || "emphasis" !== r || (l = this.deepQuery([u, m], "itemStyle.normal.label.formatter")); + var s = this.getDataFromOption(u, "-"); + return l ? "function" == typeof l ? l.call(this.myChart, { + seriesName: m.name, + series: m, + name: p, + value: s, + data: u, + status: r + }) : "string" == typeof l ? l = l.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}").replace("{a0}", m.name).replace("{b0}", p).replace("{c0}", this.numAddCommas(s)) : void 0 : s instanceof Array ? null != s[2] ? this.numAddCommas(s[2]) : s[0] + " , " + s[1] : this.numAddCommas(s) + }, + buildMark: function(a) { + var i = this.series[a]; + this.selectedMap[i.name] && (i.markLine && this._buildMarkLine(a), i.markPoint && this._buildMarkPoint(a)) + }, + _buildMarkPoint: function(u) { + for (var S, y, O = (this.markAttachStyle || {})[u], p = this.series[u], P = I.clone(p.markPoint), Q = 0, R = P.data.length; R > Q; Q++) { + S = P.data[Q], y = this.getMarkCoord(u, S), S.x = null != S.x ? S.x : y[0], S.y = null != S.y ? S.y : y[1], !S.type || "max" !== S.type && "min" !== S.type || (S.value = y[3], S.name = S.name || S.type, S.symbolSize = S.symbolSize || L.getTextWidth(y[3], this.getFont()) / 2 + 5) + } + for (var M = this._markPoint(u, P), Q = 0, R = M.length; R > Q; Q++) { + var N = M[Q]; + N.zlevel = p.zlevel, N.z = p.z + 1; + for (var T in O) { + N[T] = I.clone(O[T]) + } + this.shapeList.push(N) + } + if (this.type === x.CHART_TYPE_FORCE || this.type === x.CHART_TYPE_CHORD) { + for (var Q = 0, R = M.length; R > Q; Q++) { + this.zr.addShape(M[Q]) + } + } + }, + _buildMarkLine: function(N) { + for (var X, O = (this.markAttachStyle || {})[N], Q = this.series[N], l = I.clone(Q.markLine), R = 0, T = l.data.length; T > R; R++) { + var W = l.data[R]; + !W.type || "max" !== W.type && "min" !== W.type && "average" !== W.type ? X = [this.getMarkCoord(N, W[0]), this.getMarkCoord(N, W[1])] : (X = this.getMarkCoord(N, W), l.data[R] = [I.clone(W), {}], l.data[R][0].name = W.name || W.type, l.data[R][0].value = "average" !== W.type ? X[3] : +X[3].toFixed(null != l.precision ? l.precision : this.deepQuery([this.ecTheme, x], "markLine.precision")), X = X[2], W = [{}, {}]), null != X && null != X[0] && null != X[1] && (l.data[R][0].x = null != W[0].x ? W[0].x : X[0][0], l.data[R][0].y = null != W[0].y ? W[0].y : X[0][1], l.data[R][1].x = null != W[1].x ? W[1].x : X[1][0], l.data[R][1].y = null != W[1].y ? W[1].y : X[1][1]) + } + var P = this._markLine(N, l), + Z = l.large; + if (Z) { + var Y = new A({ + style: { + shapeList: P + } + }), + M = P[0]; + if (M) { + I.merge(Y.style, M.style), I.merge(Y.highlightStyle = {}, M.highlightStyle), Y.style.brushType = "stroke", Y.zlevel = Q.zlevel, Y.z = Q.z + 1, Y.hoverable = !1; + for (var S in O) { + Y[S] = I.clone(O[S]) + } + } + this.shapeList.push(Y), this.zr.addShape(Y), Y._mark = "largeLine"; + var u = l.effect; + u.show && (Y.effect = u) + } else { + for (var R = 0, T = P.length; T > R; R++) { + var aa = P[R]; + aa.zlevel = Q.zlevel, aa.z = Q.z + 1; + for (var S in O) { + aa[S] = I.clone(O[S]) + } + this.shapeList.push(aa) + } + if (this.type === x.CHART_TYPE_FORCE || this.type === x.CHART_TYPE_CHORD) { + for (var R = 0, T = P.length; T > R; R++) { + this.zr.addShape(P[R]) + } + } + } + }, + _markPoint: function(O, ab) { + var R = this.series[O], + W = this.component; + I.merge(I.merge(ab, I.clone(this.ecTheme.markPoint || {})), I.clone(x.markPoint)), ab.name = R.name; + var m, X, Z, aa, T, ad, ac, N = [], + Y = ab.data, + M = W.dataRange, + ae = W.legend, + Q = this.zr.getWidth(), + u = this.zr.getHeight(); + if (ab.large) { + m = this.getLargeMarkPointShape(O, ab), m._mark = "largePoint", m && N.push(m) + } else { + for (var P = 0, S = Y.length; S > P; P++) { + null != Y[P].x && null != Y[P].y && (Z = null != Y[P].value ? Y[P].value : "", ae && (X = ae.getColor(R.name)), M && (X = isNaN(Z) ? X : M.getColor(Z), aa = [Y[P], ab], T = this.deepQuery(aa, "itemStyle.normal.color") || X, ad = this.deepQuery(aa, "itemStyle.emphasis.color") || T, null == T && null == ad) || (X = null == X ? this.zr.getColor(O) : X, Y[P].tooltip = Y[P].tooltip || ab.tooltip || { + trigger: "item" + }, Y[P].name = null != Y[P].name ? Y[P].name : "", Y[P].value = Z, m = this.getSymbolShape(ab, O, Y[P], P, Y[P].name, this.parsePercent(Y[P].x, Q), this.parsePercent(Y[P].y, u), "pin", X, "rgba(0,0,0,0)", "horizontal"), m._mark = "point", ac = this.deepMerge([Y[P], ab], "effect"), ac.show && (m.effect = ac), R.type === x.CHART_TYPE_MAP && (m._geo = this.getMarkGeo(Y[P])), B.pack(m, R, O, Y[P], P, Y[P].name, Z), N.push(m))) + } + } + return N + }, + _markLine: function() { + function a(i, l) { + i[l] = i[l] instanceof Array ? i[l].length > 1 ? i[l] : [i[l][0], i[l][0]] : [i[l], i[l]] + } + return function(P, aa) { + var m = this.series[P], + ab = this.component, + ad = ab.dataRange, + ae = ab.legend; + I.merge(I.merge(aa, I.clone(this.ecTheme.markLine || {})), I.clone(x.markLine)); + var Y = ae ? ae.getColor(m.name) : this.zr.getColor(P); + a(aa, "symbol"), a(aa, "symbolSize"), a(aa, "symbolRotate"); + for (var ah = aa.data, af = [], M = this.zr.getWidth(), ac = this.zr.getHeight(), am = 0; am < ah.length; am++) { + var O = ah[am]; + if (H(O[0]) && H(O[1])) { + var t = this.deepMerge(O), + N = [t, aa], + S = Y, + ak = null != t.value ? t.value : ""; + if (ad) { + S = isNaN(ak) ? S : ad.getColor(ak); + var e = this.deepQuery(N, "itemStyle.normal.color") || S, + Z = this.deepQuery(N, "itemStyle.emphasis.color") || e; + if (null == e && null == Z) { + continue + } + } + O[0].tooltip = t.tooltip || aa.tooltip || { + trigger: "item" + }, O[0].name = O[0].name || "", O[1].name = O[1].name || "", O[0].value = ak, af.push({ + points: [ + [this.parsePercent(O[0].x, M), this.parsePercent(O[0].y, ac)], + [this.parsePercent(O[1].x, M), this.parsePercent(O[1].y, ac)] + ], + rawData: O, + color: S + }) + } + } + var aj = this.query(aa, "bundling.enable"); + if (aj) { + var al = new q; + al.maxTurningAngle = this.query(aa, "bundling.maxTurningAngle") / 180 * Math.PI, af = al.run(af) + } + aa.name = m.name; + for (var ag = [], am = 0, ai = af.length; ai > am; am++) { + var T = af[am], + Q = T.rawEdge || T, + O = Q.rawData, + ak = null != O.value ? O.value : "", + R = this.getMarkLineShape(aa, P, O, am, T.points, aj, Q.color); + R._mark = "line"; + var u = this.deepMerge([O[0], O[1], aa], "effect"); + u.show && (R.effect = u, R.effect.large = aa.large), m.type === x.CHART_TYPE_MAP && (R._geo = [this.getMarkGeo(O[0]), this.getMarkGeo(O[1])]), B.pack(R, m, P, O[0], am, O[0].name + ("" !== O[1].name ? " > " + O[1].name : ""), ak), ag.push(R) + } + return ag + } + }(), + getMarkCoord: function() { + return [0, 0] + }, + getSymbolShape: function(N, ad, R, Z, ab, ac, T, Q, ag, af, M) { + var aa = [R, N], + n = this.getDataFromOption(R, "-"); + Q = this.deepQuery(aa, "symbol") || Q; + var ae = this.deepQuery(aa, "symbolSize"); + ae = "function" == typeof ae ? ae(n) : ae, "number" == typeof ae && (ae = [ae, ae]); + var ak = this.deepQuery(aa, "symbolRotate"), + P = this.deepMerge(aa, "itemStyle.normal"), + m = this.deepMerge(aa, "itemStyle.emphasis"), + O = null != P.borderWidth ? P.borderWidth : P.lineStyle && P.lineStyle.width; + null == O && (O = Q.match("empty") ? 2 : 0); + var S = null != m.borderWidth ? m.borderWidth : m.lineStyle && m.lineStyle.width; + null == S && (S = O + 2); + var ai = this.getItemStyleColor(P.color, ad, Z, R), + a = this.getItemStyleColor(m.color, ad, Z, R), + Y = ae[0], + ah = ae[1], + aj = new j({ + style: { + iconType: Q.replace("empty", "").toLowerCase(), + x: ac - Y, + y: T - ah, + width: 2 * Y, + height: 2 * ah, + brushType: "both", + color: Q.match("empty") ? af : ai || ag, + strokeColor: P.borderColor || ai || ag, + lineWidth: O + }, + highlightStyle: { + color: Q.match("empty") ? af : a || ai || ag, + strokeColor: m.borderColor || P.borderColor || a || ai || ag, + lineWidth: S + }, + clickable: this.deepQuery(aa, "clickable") + }); + return Q.match("image") && (aj.style.image = Q.replace(new RegExp("^image:\\/\\/"), ""), aj = new C({ + style: aj.style, + highlightStyle: aj.highlightStyle, + clickable: this.deepQuery(aa, "clickable") + })), null != ak && (aj.rotation = [ak * Math.PI / 180, ac, T]), Q.match("star") && (aj.style.iconType = "star", aj.style.n = Q.replace("empty", "").replace("star", "") - 0 || 5), "none" === Q && (aj.invisible = !0, aj.hoverable = !1), aj = this.addLabel(aj, N, R, ab, M), Q.match("empty") && (null == aj.style.textColor && (aj.style.textColor = aj.style.strokeColor), null == aj.highlightStyle.textColor && (aj.highlightStyle.textColor = aj.highlightStyle.strokeColor)), B.pack(aj, N, ad, R, Z, ab), aj._x = ac, aj._y = T, aj._dataIndex = Z, aj._seriesIndex = ad, aj + }, + getMarkLineShape: function(P, ad, T, aa, s, ac, X) { + var S = null != T[0].value ? T[0].value : "-", + Z = null != T[1].value ? T[1].value : "-", + ag = [T[0].symbol || P.symbol[0], T[1].symbol || P.symbol[1]], + af = [T[0].symbolSize || P.symbolSize[0], T[1].symbolSize || P.symbolSize[1]]; + af[0] = "function" == typeof af[0] ? af[0](S) : af[0], af[1] = "function" == typeof af[1] ? af[1](Z) : af[1]; + var O = [this.query(T[0], "symbolRotate") || P.symbolRotate[0], this.query(T[1], "symbolRotate") || P.symbolRotate[1]], + ab = [T[0], T[1], P], + N = this.deepMerge(ab, "itemStyle.normal"); + N.color = this.getItemStyleColor(N.color, ad, aa, T); + var ae = this.deepMerge(ab, "itemStyle.emphasis"); + ae.color = this.getItemStyleColor(ae.color, ad, aa, T); + var ai = N.lineStyle, + R = ae.lineStyle, + M = ai.width; + null == M && (M = N.borderWidth); + var Q = R.width; + null == Q && (Q = null != ae.borderWidth ? ae.borderWidth : M + 2); + var W = this.deepQuery(ab, "smoothness"); + this.deepQuery(ab, "smooth") || (W = 0); + var ah = ac ? G : D, + o = new ah({ + style: { + symbol: ag, + symbolSize: af, + symbolRotate: O, + brushType: "both", + lineType: ai.type, + shadowColor: ai.shadowColor || ai.color || N.borderColor || N.color || X, + shadowBlur: ai.shadowBlur, + shadowOffsetX: ai.shadowOffsetX, + shadowOffsetY: ai.shadowOffsetY, + color: N.color || X, + strokeColor: ai.color || N.borderColor || N.color || X, + lineWidth: M, + symbolBorderColor: N.borderColor || N.color || X, + symbolBorder: N.borderWidth + }, + highlightStyle: { + shadowColor: R.shadowColor, + shadowBlur: R.shadowBlur, + shadowOffsetX: R.shadowOffsetX, + shadowOffsetY: R.shadowOffsetY, + color: ae.color || N.color || X, + strokeColor: R.color || ai.color || ae.borderColor || N.borderColor || ae.color || N.color || X, + lineWidth: Q, + symbolBorderColor: ae.borderColor || N.borderColor || ae.color || N.color || X, + symbolBorder: null == ae.borderWidth ? N.borderWidth + 2 : ae.borderWidth + }, + clickable: this.deepQuery(ab, "clickable") + }), + Y = o.style; + return ac ? (Y.pointList = s, Y.smooth = W) : (Y.xStart = s[0][0], Y.yStart = s[0][1], Y.xEnd = s[1][0], Y.yEnd = s[1][1], Y.curveness = W, o.updatePoints(o.style)), o = this.addLabel(o, P, T[0], T[0].name + " : " + T[1].name) + }, + getLargeMarkPointShape: function(N, Y) { + var P, S, r, T, X, Q, O = this.series[N], + R = this.component, + ab = Y.data, + aa = R.dataRange, + M = R.legend, + W = [ab[0], Y]; + if (M && (S = M.getColor(O.name)), !aa || (r = null != ab[0].value ? ab[0].value : "", S = isNaN(r) ? S : aa.getColor(r), T = this.deepQuery(W, "itemStyle.normal.color") || S, X = this.deepQuery(W, "itemStyle.emphasis.color") || T, null != T || null != X)) { + S = this.deepMerge(W, "itemStyle.normal").color || S; + var y = this.deepQuery(W, "symbol") || "circle"; + y = y.replace("empty", "").replace(/\d/g, ""), Q = this.deepMerge([ab[0], Y], "effect"); + var Z = window.devicePixelRatio || 1; + return P = new F({ + style: { + pointList: ab, + color: S, + strokeColor: S, + shadowColor: Q.shadowColor || S, + shadowBlur: (null != Q.shadowBlur ? Q.shadowBlur : 8) * Z, + size: this.deepQuery(W, "symbolSize"), + iconType: y, + brushType: "fill", + lineWidth: 1 + }, + draggable: !1, + hoverable: !1 + }), Q.show && (P.effect = Q), P + } + }, + backupShapeList: function() { + this.shapeList && this.shapeList.length > 0 ? (this.lastShapeList = this.shapeList, this.shapeList = []) : this.lastShapeList = [] + }, + addShapeList: function() { + var u, S, y = this.option.animationThreshold / (this.canvasSupported ? 2 : 4), + O = this.lastShapeList, + p = this.shapeList, + P = O.length > 0, + Q = P ? this.query(this.option, "animationDurationUpdate") : this.query(this.option, "animationDuration"), + R = this.query(this.option, "animationEasing"), + M = {}, + N = {}; + if (this.option.animation && !this.option.renderAsImage && p.length < y && !this.motionlessOnce) { + for (var W = 0, T = O.length; T > W; W++) { + S = this._getAnimationKey(O[W]), S.match("undefined") ? this.zr.delShape(O[W].id) : (S += O[W].type, M[S] ? this.zr.delShape(O[W].id) : M[S] = O[W]) + } + for (var W = 0, T = p.length; T > W; W++) { + S = this._getAnimationKey(p[W]), S.match("undefined") ? this.zr.addShape(p[W]) : (S += p[W].type, N[S] = p[W]) + } + for (S in M) { + N[S] || this.zr.delShape(M[S].id) + } + for (S in N) { + M[S] ? (this.zr.delShape(M[S].id), this._animateMod(M[S], N[S], Q, R, 0, P)) : (u = this.type != x.CHART_TYPE_LINE && this.type != x.CHART_TYPE_RADAR || 0 === S.indexOf("icon") ? 0 : Q / 2, this._animateMod(!1, N[S], Q, R, u, P)) + } + this.zr.refresh(), this.animationEffect() + } else { + this.motionlessOnce = !1, this.zr.delShape(O); + for (var W = 0, T = p.length; T > W; W++) { + this.zr.addShape(p[W]) + } + } + }, + _getAnimationKey: function(a) { + return this.type != x.CHART_TYPE_MAP && this.type != x.CHART_TYPE_TREEMAP && this.type != x.CHART_TYPE_VENN && this.type != x.CHART_TYPE_TREE ? B.get(a, "seriesIndex") + "_" + B.get(a, "dataIndex") + (a._mark ? a._mark : "") + (this.type === x.CHART_TYPE_RADAR ? B.get(a, "special") : "") : B.get(a, "seriesIndex") + "_" + B.get(a, "dataIndex") + (a._mark ? a._mark : "undefined") + }, + _animateMod: function(m, u, p, r, l, s) { + switch (u.type) { + case "polyline": + case "half-smooth-polygon": + K.pointList(this.zr, m, u, p, r); + break; + case "rectangle": + K.rectangle(this.zr, m, u, p, r); + break; + case "image": + case "icon": + K.icon(this.zr, m, u, p, r, l); + break; + case "candle": + s ? this.zr.addShape(u) : K.candle(this.zr, m, u, p, r); + break; + case "ring": + case "sector": + case "circle": + s ? "sector" === u.type ? K.sector(this.zr, m, u, p, r) : this.zr.addShape(u) : K.ring(this.zr, m, u, p + (B.get(u, "dataIndex") || 0) % 20 * 100, r); + break; + case "text": + K.text(this.zr, m, u, p, r); + break; + case "polygon": + s ? K.pointList(this.zr, m, u, p, r) : K.polygon(this.zr, m, u, p, r); + break; + case "ribbon": + K.ribbon(this.zr, m, u, p, r); + break; + case "gauge-pointer": + K.gaugePointer(this.zr, m, u, p, r); + break; + case "mark-line": + K.markline(this.zr, m, u, p, r); + break; + case "bezier-curve": + case "line": + K.line(this.zr, m, u, p, r); + break; + default: + this.zr.addShape(u) + } + }, + animationMark: function(m, r, o) { + for (var o = o || this.shapeList, p = 0, l = o.length; l > p; p++) { + o[p]._mark && this._animateMod(!1, o[p], m, r, 0, !0) + } + this.animationEffect(o) + }, + animationEffect: function(m) { + if (!m && this.clearEffectShape(), m = m || this.shapeList, null != m) { + var r = x.EFFECT_ZLEVEL; + this.canvasSupported && this.zr.modLayer(r, { + motionBlur: !0, + lastFrameAlpha: this.option.effectBlendAlpha || x.effectBlendAlpha + }); + for (var o, p = 0, l = m.length; l > p; p++) { + o = m[p], o._mark && o.effect && o.effect.show && J[o._mark] && (J[o._mark](this.zr, this.effectList, o, r), this.effectList[this.effectList.length - 1]._mark = o._mark) + } + } + }, + clearEffectShape: function(a) { + var m = this.effectList; + if (this.zr && m && m.length > 0) { + a && this.zr.modLayer(x.EFFECT_ZLEVEL, { + motionBlur: !1 + }), this.zr.delShape(m); + for (var l = 0; l < m.length; l++) { + m[l].effectAnimator && m[l].effectAnimator.stop() + } + } + this.effectList = [] + }, + addMark: function(p, R, y) { + var N = this.series[p]; + if (this.selectedMap[N.name]) { + var m = this.query(this.option, "animationDurationUpdate"), + O = this.query(this.option, "animationEasing"), + P = N[y].data, + Q = this.shapeList.length; + if (N[y].data = R.data, this["_build" + y.replace("m", "M")](p), this.option.animation && !this.option.renderAsImage) { + this.animationMark(m, O, this.shapeList.slice(Q)) + } else { + for (var M = Q, u = this.shapeList.length; u > M; M++) { + this.zr.addShape(this.shapeList[M]) + } + this.zr.refreshNextFrame() + } + N[y].data = P + } + }, + delMark: function(p, Q, u) { + u = u.replace("mark", "").replace("large", "").toLowerCase(); + var M = this.series[p]; + if (this.selectedMap[M.name]) { + for (var m = !1, N = [this.shapeList, this.effectList], O = 2; O--;) { + for (var P = 0, y = N[O].length; y > P; P++) { + if (N[O][P]._mark == u && B.get(N[O][P], "seriesIndex") == p && B.get(N[O][P], "name") == Q) { + this.zr.delShape(N[O][P].id), N[O].splice(P, 1), m = !0; + break + } + } + } + m && this.zr.refreshNextFrame() + } + } + }, I.inherits(z, E), z + }), d("zrender/shape/Circle", ["require", "./Base", "../tool/util"], function(a) { + var l = a("./Base"), + j = function(i) { + l.call(this, i) + }; + return j.prototype = { + type: "circle", + buildPath: function(i, m) { + i.moveTo(m.x + m.r, m.y), i.arc(m.x, m.y, m.r, 0, 2 * Math.PI, !0) + }, + getRect: function(i) { + if (i.__rect) { + return i.__rect + } + var m; + return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = { + x: Math.round(i.x - i.r - m / 2), + y: Math.round(i.y - i.r - m / 2), + width: 2 * i.r + m, + height: 2 * i.r + m + }, i.__rect + } + }, a("../tool/util").inherits(j, l), j + }), d("echarts/util/accMath", [], function() { + function a(q, v) { + var r = q.toString(), + s = v.toString(), + p = 0; + try { + p = s.split(".")[1].length + } catch (u) {} + try { + p -= r.split(".")[1].length + } catch (u) {} + return (r.replace(".", "") - 0) / (s.replace(".", "") - 0) * Math.pow(10, p) + } + + function m(q, v) { + var r = q.toString(), + s = v.toString(), + p = 0; + try { + p += r.split(".")[1].length + } catch (u) {} + try { + p += s.split(".")[1].length + } catch (u) {} + return (r.replace(".", "") - 0) * (s.replace(".", "") - 0) / Math.pow(10, p) + } + + function j(q, v) { + var r = 0, + s = 0; + try { + r = q.toString().split(".")[1].length + } catch (p) {} + try { + s = v.toString().split(".")[1].length + } catch (p) {} + var u = Math.pow(10, Math.max(r, s)); + return (Math.round(q * u) + Math.round(v * u)) / u + } + + function l(i, n) { + return j(i, -n) + } + return { + accDiv: a, + accMul: m, + accAdd: j, + accSub: l + } + }), d("echarts/util/shape/Icon", ["require", "zrender/tool/util", "zrender/shape/Star", "zrender/shape/Heart", "zrender/shape/Droplet", "zrender/shape/Image", "zrender/shape/Base"], function(C) { + function Z(m, u) { + var p = u.x, + r = u.y, + l = u.width / 16, + s = u.height / 16; + m.moveTo(p, r + u.height), m.lineTo(p + 5 * l, r + 14 * s), m.lineTo(p + u.width, r + 3 * s), m.lineTo(p + 13 * l, r), m.lineTo(p + 2 * l, r + 11 * s), m.lineTo(p, r + u.height), m.moveTo(p + 6 * l, r + 10 * s), m.lineTo(p + 14 * l, r + 2 * s), m.moveTo(p + 10 * l, r + 13 * s), m.lineTo(p + u.width, r + 13 * s), m.moveTo(p + 13 * l, r + 10 * s), m.lineTo(p + 13 * l, r + u.height) + } + + function G(m, u) { + var p = u.x, + r = u.y, + l = u.width / 16, + s = u.height / 16; + m.moveTo(p, r + u.height), m.lineTo(p + 5 * l, r + 14 * s), m.lineTo(p + u.width, r + 3 * s), m.lineTo(p + 13 * l, r), m.lineTo(p + 2 * l, r + 11 * s), m.lineTo(p, r + u.height), m.moveTo(p + 6 * l, r + 10 * s), m.lineTo(p + 14 * l, r + 2 * s), m.moveTo(p + 10 * l, r + 13 * s), m.lineTo(p + u.width, r + 13 * s) + } + + function Q(m, u) { + var p = u.x, + r = u.y, + l = u.width / 16, + s = u.height / 16; + m.moveTo(p + 4 * l, r + 15 * s), m.lineTo(p + 9 * l, r + 13 * s), m.lineTo(p + 14 * l, r + 8 * s), m.lineTo(p + 11 * l, r + 5 * s), m.lineTo(p + 6 * l, r + 10 * s), m.lineTo(p + 4 * l, r + 15 * s), m.moveTo(p + 5 * l, r), m.lineTo(p + 11 * l, r), m.moveTo(p + 5 * l, r + s), m.lineTo(p + 11 * l, r + s), m.moveTo(p, r + 2 * s), m.lineTo(p + u.width, r + 2 * s), m.moveTo(p, r + 5 * s), m.lineTo(p + 3 * l, r + u.height), m.lineTo(p + 13 * l, r + u.height), m.lineTo(p + u.width, r + 5 * s) + } + + function q(m, u) { + var p = u.x, + r = u.y, + l = u.width / 16, + s = u.height / 16; + m.moveTo(p, r + 3 * s), m.lineTo(p + 6 * l, r + 3 * s), m.moveTo(p + 3 * l, r), m.lineTo(p + 3 * l, r + 6 * s), m.moveTo(p + 3 * l, r + 8 * s), m.lineTo(p + 3 * l, r + u.height), m.lineTo(p + u.width, r + u.height), m.lineTo(p + u.width, r + 3 * s), m.lineTo(p + 8 * l, r + 3 * s) + } + + function R(m, u) { + var p = u.x, + r = u.y, + l = u.width / 16, + s = u.height / 16; + m.moveTo(p + 6 * l, r), m.lineTo(p + 2 * l, r + 3 * s), m.lineTo(p + 6 * l, r + 6 * s), m.moveTo(p + 2 * l, r + 3 * s), m.lineTo(p + 14 * l, r + 3 * s), m.lineTo(p + 14 * l, r + 11 * s), m.moveTo(p + 2 * l, r + 5 * s), m.lineTo(p + 2 * l, r + 13 * s), m.lineTo(p + 14 * l, r + 13 * s), m.moveTo(p + 10 * l, r + 10 * s), m.lineTo(p + 14 * l, r + 13 * s), m.lineTo(p + 10 * l, r + u.height) + } + + function T(m, w) { + var p = w.x, + s = w.y, + l = w.width / 16, + u = w.height / 16, + v = w.width / 2; + m.lineWidth = 1.5, m.arc(p + v, s + v, v - l, 0, 2 * Math.PI / 3), m.moveTo(p + 3 * l, s + w.height), m.lineTo(p + 0 * l, s + 12 * u), m.lineTo(p + 5 * l, s + 11 * u), m.moveTo(p, s + 8 * u), m.arc(p + v, s + v, v - l, Math.PI, 5 * Math.PI / 3), m.moveTo(p + 13 * l, s), m.lineTo(p + w.width, s + 4 * u), m.lineTo(p + 11 * l, s + 5 * u) + } + + function Y(m, u) { + var p = u.x, + r = u.y, + l = u.width / 16, + s = u.height / 16; + m.moveTo(p, r), m.lineTo(p, r + u.height), m.lineTo(p + u.width, r + u.height), m.moveTo(p + 2 * l, r + 14 * s), m.lineTo(p + 7 * l, r + 6 * s), m.lineTo(p + 11 * l, r + 11 * s), m.lineTo(p + 15 * l, r + 2 * s) + } + + function N(m, u) { + var p = u.x, + r = u.y, + l = u.width / 16, + s = u.height / 16; + m.moveTo(p, r), m.lineTo(p, r + u.height), m.lineTo(p + u.width, r + u.height), m.moveTo(p + 3 * l, r + 14 * s), m.lineTo(p + 3 * l, r + 6 * s), m.lineTo(p + 4 * l, r + 6 * s), m.lineTo(p + 4 * l, r + 14 * s), m.moveTo(p + 7 * l, r + 14 * s), m.lineTo(p + 7 * l, r + 2 * s), m.lineTo(p + 8 * l, r + 2 * s), m.lineTo(p + 8 * l, r + 14 * s), m.moveTo(p + 11 * l, r + 14 * s), m.lineTo(p + 11 * l, r + 9 * s), m.lineTo(p + 12 * l, r + 9 * s), m.lineTo(p + 12 * l, r + 14 * s) + } + + function F(m, w) { + var p = w.x, + s = w.y, + l = w.width - 2, + u = w.height - 2, + v = Math.min(l, u) / 2; + s += 2, m.moveTo(p + v + 3, s + v - 3), m.arc(p + v + 3, s + v - 3, v - 1, 0, -Math.PI / 2, !0), m.lineTo(p + v + 3, s + v - 3), m.moveTo(p + v, s), m.lineTo(p + v, s + v), m.arc(p + v, s + v, v, -Math.PI / 2, 2 * Math.PI, !0), m.lineTo(p + v, s + v), m.lineWidth = 1.5 + } + + function P(m, u) { + var p = u.x, + r = u.y, + l = u.width / 16, + s = u.height / 16; + r -= s, m.moveTo(p + 1 * l, r + 2 * s), m.lineTo(p + 15 * l, r + 2 * s), m.lineTo(p + 14 * l, r + 3 * s), m.lineTo(p + 2 * l, r + 3 * s), m.moveTo(p + 3 * l, r + 6 * s), m.lineTo(p + 13 * l, r + 6 * s), m.lineTo(p + 12 * l, r + 7 * s), m.lineTo(p + 4 * l, r + 7 * s), m.moveTo(p + 5 * l, r + 10 * s), m.lineTo(p + 11 * l, r + 10 * s), m.lineTo(p + 10 * l, r + 11 * s), m.lineTo(p + 6 * l, r + 11 * s), m.moveTo(p + 7 * l, r + 14 * s), m.lineTo(p + 9 * l, r + 14 * s), m.lineTo(p + 8 * l, r + 15 * s), m.lineTo(p + 7 * l, r + 15 * s) + } + + function ad(p, K) { + var u = K.x, + w = K.y, + m = K.width, + x = K.height, + y = m / 16, + I = x / 16, + v = 2 * Math.min(y, I); + p.moveTo(u + y + v, w + I + v), p.arc(u + y, w + I, v, Math.PI / 4, 3 * Math.PI), p.lineTo(u + 7 * y - v, w + 6 * I - v), p.arc(u + 7 * y, w + 6 * I, v, Math.PI / 4 * 5, 4 * Math.PI), p.arc(u + 7 * y, w + 6 * I, v / 2, Math.PI / 4 * 5, 4 * Math.PI), p.moveTo(u + 7 * y - v / 2, w + 6 * I + v), p.lineTo(u + y + v, w + 14 * I - v), p.arc(u + y, w + 14 * I, v, -Math.PI / 4, 2 * Math.PI), p.moveTo(u + 7 * y + v / 2, w + 6 * I), p.lineTo(u + 14 * y - v, w + 10 * I - v / 2), p.moveTo(u + 16 * y, w + 10 * I), p.arc(u + 14 * y, w + 10 * I, v, 0, 3 * Math.PI), p.lineWidth = 1.5 + } + + function ab(m, w) { + var p = w.x, + s = w.y, + l = w.width, + u = w.height, + v = Math.min(l, u) / 2; + m.moveTo(p + l, s + u / 2), m.arc(p + v, s + v, v, 0, 2 * Math.PI), m.arc(p + v, s, v, Math.PI / 4, Math.PI / 5 * 4), m.arc(p, s + v, v, -Math.PI / 3, Math.PI / 3), m.arc(p + l, s + u, v, Math.PI, Math.PI / 2 * 3), m.lineWidth = 1.5 + } + + function B(p, K) { + for (var u = K.x, w = K.y, m = K.width, x = K.height, y = Math.round(x / 3), I = Math.round((y - 2) / 2), v = 3; v--;) { + p.rect(u, w + y * v + I, m, 2) + } + } + + function S(p, K) { + for (var u = K.x, w = K.y, m = K.width, x = K.height, y = Math.round(m / 3), I = Math.round((y - 2) / 2), v = 3; v--;) { + p.rect(u + y * v + I, w, 2, x) + } + } + + function A(m, r) { + var o = r.x, + p = r.y, + l = r.width / 16; + m.moveTo(o + l, p), m.lineTo(o + l, p + r.height), m.lineTo(o + 15 * l, p + r.height), m.lineTo(o + 15 * l, p), m.lineTo(o + l, p), m.moveTo(o + 3 * l, p + 3 * l), m.lineTo(o + 13 * l, p + 3 * l), m.moveTo(o + 3 * l, p + 6 * l), m.lineTo(o + 13 * l, p + 6 * l), m.moveTo(o + 3 * l, p + 9 * l), m.lineTo(o + 13 * l, p + 9 * l), m.moveTo(o + 3 * l, p + 12 * l), m.lineTo(o + 9 * l, p + 12 * l) + } + + function aa(m, u) { + var p = u.x, + r = u.y, + l = u.width / 16, + s = u.height / 16; + m.moveTo(p, r), m.lineTo(p, r + u.height), m.lineTo(p + u.width, r + u.height), m.lineTo(p + u.width, r), m.lineTo(p, r), m.moveTo(p + 4 * l, r), m.lineTo(p + 4 * l, r + 8 * s), m.lineTo(p + 12 * l, r + 8 * s), m.lineTo(p + 12 * l, r), m.moveTo(p + 6 * l, r + 11 * s), m.lineTo(p + 6 * l, r + 13 * s), m.lineTo(p + 10 * l, r + 13 * s), m.lineTo(p + 10 * l, r + 11 * s), m.lineTo(p + 6 * l, r + 11 * s) + } + + function ai(m, u) { + var p = u.x, + r = u.y, + l = u.width, + s = u.height; + m.moveTo(p, r + s / 2), m.lineTo(p + l, r + s / 2), m.moveTo(p + l / 2, r), m.lineTo(p + l / 2, r + s) + } + + function E(m, r) { + var o = r.width / 2, + p = r.height / 2, + l = Math.min(o, p); + m.moveTo(r.x + o + l, r.y + p), m.arc(r.x + o, r.y + p, l, 0, 2 * Math.PI), m.closePath() + } + + function z(a, i) { + a.rect(i.x, i.y, i.width, i.height), a.closePath() + } + + function D(m, w) { + var p = w.width / 2, + s = w.height / 2, + l = w.x + p, + u = w.y + s, + v = Math.min(p, s); + m.moveTo(l, u - v), m.lineTo(l + v, u + v), m.lineTo(l - v, u + v), m.lineTo(l, u - v), m.closePath() + } + + function J(m, w) { + var p = w.width / 2, + s = w.height / 2, + l = w.x + p, + u = w.y + s, + v = Math.min(p, s); + m.moveTo(l, u - v), m.lineTo(l + v, u), m.lineTo(l, u + v), m.lineTo(l - v, u), m.lineTo(l, u - v), m.closePath() + } + + function ag(m, r) { + var o = r.x, + p = r.y, + l = r.width / 16; + m.moveTo(o + 8 * l, p), m.lineTo(o + l, p + r.height), m.lineTo(o + 8 * l, p + r.height / 4 * 3), m.lineTo(o + 15 * l, p + r.height), m.lineTo(o + 8 * l, p), m.closePath() + } + + function j(r, l) { + var m = C("zrender/shape/Star"), + e = l.width / 2, + p = l.height / 2; + m.prototype.buildPath(r, { + x: l.x + e, + y: l.y + p, + r: Math.min(e, p), + n: l.n || 5 + }) + } + + function O(l, a) { + var e = C("zrender/shape/Heart"); + e.prototype.buildPath(l, { + x: a.x + a.width / 2, + y: a.y + 0.2 * a.height, + a: a.width / 2, + b: 0.8 * a.height + }) + } + + function af(l, a) { + var e = C("zrender/shape/Droplet"); + e.prototype.buildPath(l, { + x: a.x + 0.5 * a.width, + y: a.y + 0.5 * a.height, + a: 0.5 * a.width, + b: 0.8 * a.height + }) + } + + function ah(m, w) { + var p = w.x, + s = w.y - w.height / 2 * 1.5, + l = w.width / 2, + u = w.height / 2, + v = Math.min(l, u); + m.arc(p + l, s + u, v, Math.PI / 5 * 4, Math.PI / 5), m.lineTo(p + l, s + u + 1.5 * v), m.closePath() + } + + function ac(r, l, m) { + var e = C("zrender/shape/Image"); + this._imageShape = this._imageShape || new e({ + style: {} + }); + for (var p in l) { + this._imageShape.style[p] = l[p] + } + this._imageShape.brush(r, !1, m) + } + + function ae(a) { + H.call(this, a) + } + var M = C("zrender/tool/util"), + H = C("zrender/shape/Base"); + return ae.prototype = { + type: "icon", + iconLibrary: { + mark: Z, + markUndo: G, + markClear: Q, + dataZoom: q, + dataZoomReset: R, + restore: T, + lineChart: Y, + barChart: N, + pieChart: F, + funnelChart: P, + forceChart: ad, + chordChart: ab, + stackChart: B, + tiledChart: S, + dataView: A, + saveAsImage: aa, + cross: ai, + circle: E, + rectangle: z, + triangle: D, + diamond: J, + arrow: ag, + star: j, + heart: O, + droplet: af, + pin: ah, + image: ac + }, + brush: function(u, l, m) { + var e = l ? this.highlightStyle : this.style; + e = e || {}; + var p = e.iconType || this.style.iconType; + if ("image" === p) { + var s = C("zrender/shape/Image"); + s.prototype.brush.call(this, u, l, m) + } else { + var e = this.beforeBrush(u, l); + switch (u.beginPath(), this.buildPath(u, e, m), e.brushType) { + case "both": + u.fill(); + case "stroke": + e.lineWidth > 0 && u.stroke(); + break; + default: + u.fill() + } + this.drawText(u, e, this.style), this.afterBrush(u) + } + }, + buildPath: function(a, m, l) { + this.iconLibrary[m.iconType] ? this.iconLibrary[m.iconType].call(this, a, m, l) : (a.moveTo(m.x, m.y), a.lineTo(m.x + m.width, m.y), a.lineTo(m.x + m.width, m.y + m.height), a.lineTo(m.x, m.y + m.height), a.lineTo(m.x, m.y), a.closePath()) + }, + getRect: function(a) { + return a.__rect ? a.__rect : (a.__rect = { + x: Math.round(a.x), + y: Math.round(a.y - ("pin" == a.iconType ? a.height / 2 * 1.5 : 0)), + width: a.width, + height: a.height * ("pin" === a.iconType ? 1.25 : 1) + }, a.__rect) + }, + isCover: function(m, r) { + var o = this.transformCoordToLocal(m, r); + m = o[0], r = o[1]; + var p = this.style.__rect; + p || (p = this.style.__rect = this.getRect(this.style)); + var l = p.height < 8 || p.width < 8 ? 4 : 0; + return m >= p.x - l && m <= p.x + p.width + l && r >= p.y - l && r <= p.y + p.height + l + } + }, M.inherits(ae, H), ae + }), d("echarts/util/shape/MarkLine", ["require", "zrender/shape/Base", "./Icon", "zrender/shape/Line", "zrender/shape/BezierCurve", "zrender/tool/area", "zrender/shape/util/dashedLineTo", "zrender/tool/util", "zrender/tool/curve"], function(p) { + function B(a) { + u.call(this, a), this.style.curveness > 0 && this.updatePoints(this.style), this.highlightStyle.curveness > 0 && this.updatePoints(this.highlightStyle) + } + var u = p("zrender/shape/Base"), + x = p("./Icon"), + j = p("zrender/shape/Line"), + y = new j({}), + z = p("zrender/shape/BezierCurve"), + A = new z({}), + v = p("zrender/tool/area"), + q = p("zrender/shape/util/dashedLineTo"), + w = p("zrender/tool/util"), + C = p("zrender/tool/curve"); + return B.prototype = { + type: "mark-line", + brush: function(a, m) { + var l = this.style; + m && (l = this.getHighlightStyle(l, this.highlightStyle || {})), a.save(), this.setContext(a, l), this.setTransform(a), a.save(), a.beginPath(), this.buildPath(a, l), a.stroke(), a.restore(), this.brushSymbol(a, l, 0), this.brushSymbol(a, l, 1), this.drawText(a, l, this.style), a.restore() + }, + buildPath: function(m, s) { + var o = s.lineType || "solid"; + if (m.moveTo(s.xStart, s.yStart), s.curveness > 0) { + var r = null; + switch (o) { + case "dashed": + r = [5, 5]; + break; + case "dotted": + r = [1, 1] + } + r && m.setLineDash && m.setLineDash(r), m.quadraticCurveTo(s.cpX1, s.cpY1, s.xEnd, s.yEnd) + } else { + if ("solid" == o) { + m.lineTo(s.xEnd, s.yEnd) + } else { + var l = (s.lineWidth || 1) * ("dashed" == s.lineType ? 5 : 1); + q(m, s.xStart, s.yStart, s.xEnd, s.yEnd, l) + } + } + }, + updatePoints: function(D) { + var K = D.curveness || 0, + E = 1, + G = D.xStart, + m = D.yStart, + H = D.xEnd, + I = D.yEnd, + J = (G + H) / 2 - E * (m - I) * K, + F = (m + I) / 2 - E * (H - G) * K; + D.cpX1 = J, D.cpY1 = F + }, + brushSymbol: function(G, R, K) { + if ("none" != R.symbol[K]) { + G.save(), G.beginPath(), G.lineWidth = R.symbolBorder, G.strokeStyle = R.symbolBorderColor; + var n = R.symbol[K].replace("empty", "").toLowerCase(); + R.symbol[K].match("empty") && (G.fillStyle = "#fff"); + var N = R.xStart, + P = R.yStart, + Q = R.xEnd, + L = R.yEnd, + J = 0 === K ? N : Q, + M = 0 === K ? P : L, + T = R.curveness || 0, + F = null != R.symbolRotate[K] ? R.symbolRotate[K] - 0 : 0; + if (F = F / 180 * Math.PI, "arrow" == n && 0 === F) { + if (0 === T) { + var O = 0 === K ? -1 : 1; + F = Math.PI / 2 + Math.atan2(O * (L - P), O * (Q - N)) + } else { + var E = R.cpX1, + S = R.cpY1, + V = C.quadraticDerivativeAt, + I = V(N, E, Q, K), + D = V(P, S, L, K); + F = Math.PI / 2 + Math.atan2(D, I) + } + } + G.translate(J, M), 0 !== F && G.rotate(F); + var H = R.symbolSize[K]; + x.prototype.buildPath(G, { + x: -H, + y: -H, + width: 2 * H, + height: 2 * H, + iconType: n + }), G.closePath(), G.fill(), G.stroke(), G.restore() + } + }, + getRect: function(a) { + return a.curveness > 0 ? A.getRect(a) : y.getRect(a), a.__rect + }, + isCover: function(a, m) { + var l = this.transformCoordToLocal(a, m); + return a = l[0], m = l[1], this.isCoverRect(a, m) ? this.style.curveness > 0 ? v.isInside(A, this.style, a, m) : v.isInside(y, this.style, a, m) : !1 + } + }, w.inherits(B, u), B + }), d("echarts/util/shape/Symbol", ["require", "zrender/shape/Base", "zrender/shape/Polygon", "zrender/tool/util", "./normalIsCover"], function(l) { + function r(a) { + m.call(this, a) + } + var m = l("zrender/shape/Base"), + p = l("zrender/shape/Polygon"), + j = new p({}), + q = l("zrender/tool/util"); + return r.prototype = { + type: "symbol", + buildPath: function(z, J) { + var B = J.pointList, + E = B.length; + if (0 !== E) { + for (var v, F, H, I, C, A = 10000, D = Math.ceil(E / A), M = B[0] instanceof Array, L = J.size ? J.size : 2, x = L, G = L / 2, w = 2 * Math.PI, K = 0; D > K; K++) { + z.beginPath(), v = K * A, F = v + A, F = F > E ? E : F; + for (var N = v; F > N; N++) { + if (J.random && (H = J["randomMap" + N % 20] / 100, x = L * H * H, G = x / 2), M ? (I = B[N][0], C = B[N][1]) : (I = B[N].x, C = B[N].y), 3 > x) { + z.rect(I - G, C - G, x, x) + } else { + switch (J.iconType) { + case "circle": + z.moveTo(I, C), z.arc(I, C, G, 0, w, !0); + break; + case "diamond": + z.moveTo(I, C - G), z.lineTo(I + G / 3, C - G / 3), z.lineTo(I + G, C), z.lineTo(I + G / 3, C + G / 3), z.lineTo(I, C + G), z.lineTo(I - G / 3, C + G / 3), z.lineTo(I - G, C), z.lineTo(I - G / 3, C - G / 3), z.lineTo(I, C - G); + break; + default: + z.rect(I - G, C - G, x, x) + } + } + } + if (z.closePath(), D - 1 > K) { + switch (J.brushType) { + case "both": + z.fill(), J.lineWidth > 0 && z.stroke(); + break; + case "stroke": + J.lineWidth > 0 && z.stroke(); + break; + default: + z.fill() + } + } + } + } + }, + getRect: function(a) { + return a.__rect || j.getRect(a) + }, + isCover: l("./normalIsCover") + }, q.inherits(r, m), r + }), d("zrender/shape/Polyline", ["require", "./Base", "./util/smoothSpline", "./util/smoothBezier", "./util/dashedLineTo", "./Polygon", "../tool/util"], function(l) { + var r = l("./Base"), + m = l("./util/smoothSpline"), + p = l("./util/smoothBezier"), + j = l("./util/dashedLineTo"), + q = function(a) { + this.brushTypeOnly = "stroke", this.textPosition = "end", r.call(this, a) + }; + return q.prototype = { + type: "polyline", + buildPath: function(a, A) { + var w = A.pointList; + if (!(w.length < 2)) { + var x = Math.min(A.pointList.length, Math.round(A.pointListLength || A.pointList.length)); + if (A.smooth && "spline" !== A.smooth) { + A.controlPointList || this.updateControlPoints(A); + var y = A.controlPointList; + a.moveTo(w[0][0], w[0][1]); + for (var z, u, i, v = 0; x - 1 > v; v++) { + z = y[2 * v], u = y[2 * v + 1], i = w[v + 1], a.bezierCurveTo(z[0], z[1], u[0], u[1], i[0], i[1]) + } + } else { + if ("spline" === A.smooth && (w = m(w), x = w.length), A.lineType && "solid" != A.lineType) { + if ("dashed" == A.lineType || "dotted" == A.lineType) { + var B = (A.lineWidth || 1) * ("dashed" == A.lineType ? 5 : 1); + a.moveTo(w[0][0], w[0][1]); + for (var v = 1; x > v; v++) { + j(a, w[v - 1][0], w[v - 1][1], w[v][0], w[v][1], B) + } + } + } else { + a.moveTo(w[0][0], w[0][1]); + for (var v = 1; x > v; v++) { + a.lineTo(w[v][0], w[v][1]) + } + } + } + } + }, + updateControlPoints: function(a) { + a.controlPointList = p(a.pointList, a.smooth, !1, a.smoothConstraint) + }, + getRect: function(a) { + return l("./Polygon").prototype.getRect(a) + } + }, l("../tool/util").inherits(q, r), q + }), d("zrender/shape/ShapeBundle", ["require", "./Base", "../tool/util"], function(a) { + var l = a("./Base"), + j = function(i) { + l.call(this, i) + }; + return j.prototype = { + constructor: j, + type: "shape-bundle", + brush: function(p, u) { + var q = this.beforeBrush(p, u); + p.beginPath(); + for (var r = 0; r < q.shapeList.length; r++) { + var m = q.shapeList[r], + s = m.style; + u && (s = m.getHighlightStyle(s, m.highlightStyle || {}, m.brushTypeOnly)), m.buildPath(p, s) + } + switch (q.brushType) { + case "both": + p.fill(); + case "stroke": + q.lineWidth > 0 && p.stroke(); + break; + default: + p.fill() + } + this.drawText(p, q, this.style), this.afterBrush(p) + }, + getRect: function(p) { + if (p.__rect) { + return p.__rect + } + for (var y = 1 / 0, q = -(1 / 0), u = 1 / 0, m = -(1 / 0), v = 0; v < p.shapeList.length; v++) { + var w = p.shapeList[v], + x = w.getRect(w.style), + y = Math.min(x.x, y), + u = Math.min(x.y, u), + q = Math.max(x.x + x.width, q), + m = Math.max(x.y + x.height, m) + } + return p.__rect = { + x: y, + y: u, + width: q - y, + height: m - u + }, p.__rect + }, + isCover: function(o, r) { + var p = this.transformCoordToLocal(o, r); + if (o = p[0], r = p[1], this.isCoverRect(o, r)) { + for (var q = 0; q < this.style.shapeList.length; q++) { + var m = this.style.shapeList[q]; + if (m.isCover(o, r)) { + return !0 + } + } + } + return !1 + } + }, a("../tool/util").inherits(j, l), j + }), d("echarts/util/ecAnimation", ["require", "zrender/tool/util", "zrender/tool/curve", "zrender/shape/Polygon"], function(v) { + function F(I, R, K, N, p) { + var O, P = K.style.pointList, + Q = P.length; + if (!R) { + if (O = [], "vertical" != K._orient) { + for (var L = P[0][1], J = 0; Q > J; J++) { + O[J] = [P[J][0], L] + } + } else { + for (var M = P[0][0], J = 0; Q > J; J++) { + O[J] = [M, P[J][1]] + } + } + "half-smooth-polygon" == K.type && (O[Q - 1] = C.clone(P[Q - 1]), O[Q - 2] = C.clone(P[Q - 2])), R = { + style: { + pointList: O + } + } + } + O = R.style.pointList; + var S = O.length; + K.style.pointList = S == Q ? O : Q > S ? O.concat(P.slice(S)) : O.slice(0, Q), I.addShape(K), K.__animating = !0, I.animate(K.id, "style").when(N, { + pointList: P + }).during(function() { + K.updateControlPoints && K.updateControlPoints(K.style) + }).done(function() { + K.__animating = !1 + }).start(p) + } + + function x(m, r) { + for (var o = arguments.length, p = 2; o > p; p++) { + var l = arguments[p]; + m.style[l] = r.style[l] + } + } + + function A(p, P, L, i, M) { + var N = L.style; + P || (P = { + position: L.position, + style: { + x: N.x, + y: "vertical" == L._orient ? N.y + N.height : N.y, + width: "vertical" == L._orient ? N.width : 0, + height: "vertical" != L._orient ? N.height : 0 + } + }); + var O = N.x, + J = N.y, + I = N.width, + K = N.height, + Q = [L.position[0], L.position[1]]; + x(L, P, "x", "y", "width", "height"), L.position = P.position, p.addShape(L), (Q[0] != P.position[0] || Q[1] != P.position[1]) && p.animate(L.id, "").when(i, { + position: Q + }).start(M), L.__animating = !0, p.animate(L.id, "style").when(i, { + x: O, + y: J, + width: I, + height: K + }).done(function() { + L.__animating = !1 + }).start(M) + } + + function j(m, K, p, s, l) { + if (!K) { + var I = p.style.y; + K = { + style: { + y: [I[0], I[0], I[0], I[0]] + } + } + } + var J = p.style.y; + p.style.y = K.style.y, m.addShape(p), p.__animating = !0, m.animate(p.id, "style").when(s, { + y: J + }).done(function() { + p.__animating = !1 + }).start(l) + } + + function B(p, O, I, K, m) { + var L = I.style.x, + M = I.style.y, + N = I.style.r0, + J = I.style.r; + I.__animating = !0, "r" != I._animationAdd ? (I.style.r0 = 0, I.style.r = 0, I.rotation = [2 * Math.PI, L, M], p.addShape(I), p.animate(I.id, "style").when(K, { + r0: N, + r: J + }).done(function() { + I.__animating = !1 + }).start(m), p.animate(I.id, "").when(K, { + rotation: [0, L, M] + }).start(m)) : (I.style.r0 = I.style.r, p.addShape(I), p.animate(I.id, "style").when(K, { + r0: N + }).done(function() { + I.__animating = !1 + }).start(m)) + } + + function D(l, K, m, i, p) { + K || (K = "r" != m._animationAdd ? { + style: { + startAngle: m.style.startAngle, + endAngle: m.style.startAngle + } + } : { + style: { + r0: m.style.r + } + }); + var I = m.style.startAngle, + J = m.style.endAngle; + x(m, K, "startAngle", "endAngle"), l.addShape(m), m.__animating = !0, l.animate(m.id, "style").when(i, { + startAngle: I, + endAngle: J + }).done(function() { + m.__animating = !1 + }).start(p) + } + + function E(l, K, m, i, p) { + K || (K = { + style: { + x: "left" == m.style.textAlign ? m.style.x + 100 : m.style.x - 100, + y: m.style.y + } + }); + var I = m.style.x, + J = m.style.y; + x(m, K, "x", "y"), l.addShape(m), m.__animating = !0, l.animate(m.id, "style").when(i, { + x: I, + y: J + }).done(function() { + m.__animating = !1 + }).start(p) + } + + function y(M, m, I, e, J) { + var K = v("zrender/shape/Polygon").prototype.getRect(I.style), + L = K.x + K.width / 2, + p = K.y + K.height / 2; + I.scale = [0.1, 0.1, L, p], M.addShape(I), I.__animating = !0, M.animate(I.id, "").when(e, { + scale: [1, 1, L, p] + }).done(function() { + I.__animating = !1 + }).start(J) + } + + function w(m, N, J, i, K) { + N || (N = { + style: { + source0: 0, + source1: J.style.source1 > 0 ? 360 : -360, + target0: 0, + target1: J.style.target1 > 0 ? 360 : -360 + } + }); + var L = J.style.source0, + M = J.style.source1, + I = J.style.target0, + p = J.style.target1; + N.style && x(J, N, "source0", "source1", "target0", "target1"), m.addShape(J), J.__animating = !0, m.animate(J.id, "style").when(i, { + source0: L, + source1: M, + target0: I, + target1: p + }).done(function() { + J.__animating = !1 + }).start(K) + } + + function z(m, I, p, r, l) { + I || (I = { + style: { + angle: p.style.startAngle + } + }); + var s = p.style.angle; + p.style.angle = I.style.angle, m.addShape(p), p.__animating = !0, m.animate(p.id, "style").when(r, { + angle: s + }).done(function() { + p.__animating = !1 + }).start(l) + } + + function H(n, M, p, m, J, K) { + if (p.style._x = p.style.x, p.style._y = p.style.y, p.style._width = p.style.width, p.style._height = p.style.height, M) { + A(n, M, p, m, J) + } else { + var L = p._x || 0, + I = p._y || 0; + p.scale = [0.01, 0.01, L, I], n.addShape(p), p.__animating = !0, n.animate(p.id, "").delay(K).when(m, { + scale: [1, 1, L, I] + }).done(function() { + p.__animating = !1 + }).start(J || "QuinticOut") + } + } + + function G(m, N, J, i, K) { + N || (N = { + style: { + xStart: J.style.xStart, + yStart: J.style.yStart, + xEnd: J.style.xStart, + yEnd: J.style.yStart + } + }); + var L = J.style.xStart, + M = J.style.xEnd, + I = J.style.yStart, + p = J.style.yEnd; + x(J, N, "xStart", "xEnd", "yStart", "yEnd"), m.addShape(J), J.__animating = !0, m.animate(J.id, "style").when(i, { + xStart: L, + xEnd: M, + yStart: I, + yEnd: p + }).done(function() { + J.__animating = !1 + }).start(K) + } + + function u(K, W, M, P, I) { + I = I || "QuinticOut", M.__animating = !0, K.addShape(M); + var Q = M.style, + S = function() { + M.__animating = !1 + }, + T = Q.xStart, + N = Q.yStart, + L = Q.xEnd, + O = Q.yEnd; + if (Q.curveness > 0) { + M.updatePoints(Q); + var Z = { + p: 0 + }, + Y = Q.cpX1, + J = Q.cpY1, + R = [], + X = [], + aa = q.quadraticSubdivide; + K.animation.animate(Z).when(P, { + p: 1 + }).during(function() { + aa(T, Y, L, Z.p, R), aa(N, J, O, Z.p, X), Q.cpX1 = R[1], Q.cpY1 = X[1], Q.xEnd = R[2], Q.yEnd = X[2], K.modShape(M) + }).done(S).start(I) + } else { + K.animate(M.id, "style").when(0, { + xEnd: T, + yEnd: N + }).when(P, { + xEnd: L, + yEnd: O + }).done(S).start(I) + } + } + var C = v("zrender/tool/util"), + q = v("zrender/tool/curve"); + return { + pointList: F, + rectangle: A, + candle: j, + ring: B, + sector: D, + text: E, + polygon: y, + ribbon: w, + gaugePointer: z, + icon: H, + line: G, + markline: u + } + }), d("echarts/util/ecEffect", ["require", "../util/ecData", "zrender/shape/Circle", "zrender/shape/Image", "zrender/tool/curve", "../util/shape/Icon", "../util/shape/Symbol", "zrender/shape/ShapeBundle", "zrender/shape/Polyline", "zrender/tool/vector", "zrender/tool/env"], function(u) { + function E(I, P, K, N) { + var o, O = K.effect, + L = O.color || K.style.strokeColor || K.style.color, + M = O.shadowColor || L, + S = O.scaleSize, + R = O.bounceDistance, + H = "undefined" != typeof O.shadowBlur ? O.shadowBlur : S; + "image" !== K.type ? (o = new v({ + zlevel: N, + style: { + brushType: "stroke", + iconType: "droplet" != K.style.iconType ? K.style.iconType : "circle", + x: H + 1, + y: H + 1, + n: K.style.n, + width: K.style._width * S, + height: K.style._height * S, + lineWidth: 1, + strokeColor: L, + shadowColor: M, + shadowBlur: H + }, + draggable: !1, + hoverable: !1 + }), "pin" == K.style.iconType && (o.style.y += o.style.height / 2 * 1.5), B && (o.style.image = I.shapeToImage(o, o.style.width + 2 * H + 2, o.style.height + 2 * H + 2).style.image, o = new D({ + zlevel: o.zlevel, + style: o.style, + draggable: !1, + hoverable: !1 + }))) : o = new D({ + zlevel: N, + style: K.style, + draggable: !1, + hoverable: !1 + }), A.clone(K, o), o.position = K.position, P.push(o), I.addShape(o); + var s = "image" !== K.type ? window.devicePixelRatio || 1 : 1, + Q = (o.style.width / s - K.style._width) / 2; + o.style.x = K.style._x - Q, o.style.y = K.style._y - Q, "pin" == K.style.iconType && (o.style.y -= K.style.height / 2 * 1.5); + var T = 100 * (O.period + 10 * Math.random()); + I.modShape(K.id, { + invisible: !0 + }); + var J = o.style.x + o.style.width / 2 / s, + p = o.style.y + o.style.height / 2 / s; + "scale" === O.type ? (I.modShape(o.id, { + scale: [0.1, 0.1, J, p] + }), I.animate(o.id, "", O.loop).when(T, { + scale: [1, 1, J, p] + }).done(function() { + K.effect.show = !1, I.delShape(o.id) + }).start()) : I.animate(o.id, "style", O.loop).when(T, { + y: o.style.y - R + }).when(2 * T, { + y: o.style.y + }).done(function() { + K.effect.show = !1, I.delShape(o.id) + }).start() + } + + function w(J, S, L, N) { + var m = L.effect, + O = m.color || L.style.strokeColor || L.style.color, + Q = m.scaleSize, + R = m.shadowColor || O, + M = "undefined" != typeof m.shadowBlur ? m.shadowBlur : 2 * Q, + K = window.devicePixelRatio || 1, + W = new y({ + zlevel: N, + position: L.position, + scale: L.scale, + style: { + pointList: L.style.pointList, + iconType: L.style.iconType, + color: O, + strokeColor: O, + shadowColor: R, + shadowBlur: M * K, + random: !0, + brushType: "fill", + lineWidth: 1, + size: L.style.size + }, + draggable: !1, + hoverable: !1 + }); + S.push(W), J.addShape(W), J.modShape(L.id, { + invisible: !0 + }); + for (var T = Math.round(100 * m.period), I = {}, P = {}, H = 0; 20 > H; H++) { + W.style["randomMap" + H] = 0, I = {}, I["randomMap" + H] = 100, P = {}, P["randomMap" + H] = 0, W.style["randomMap" + H] = 100 * Math.random(), J.animate(W.id, "style", !0).when(T, I).when(2 * T, P).when(3 * T, I).when(4 * T, I).delay(Math.random() * T * H).start() + } + } + + function z(M, ah, U, ae, o) { + var af = U.effect, + R = U.style, + ad = af.color || R.strokeColor || R.color, + al = af.shadowColor || R.strokeColor || ad, + r = R.lineWidth * af.scaleSize, + aj = "undefined" != typeof af.shadowBlur ? af.shadowBlur : r, + aq = new C({ + zlevel: ae, + style: { + x: aj, + y: aj, + r: r, + color: ad, + shadowColor: al, + shadowBlur: aj + }, + hoverable: !1 + }), + Q = 0; + if (B && !o) { + var ae = aq.zlevel; + aq = M.shapeToImage(aq, 2 * (r + aj), 2 * (r + aj)), aq.zlevel = ae, aq.hoverable = !1, Q = aj + } + o || (A.clone(U, aq), aq.position = U.position, ah.push(aq), M.addShape(aq)); + var p = function() { + o || (U.effect.show = !1, M.delShape(aq.id)), aq.effectAnimator = null + }; + if (U instanceof F) { + for (var O = [0], aa = 0, ao = R.pointList, l = R.controlPointList, ac = 1; ac < ao.length; ac++) { + if (l) { + var an = l[2 * (ac - 1)], + ap = l[2 * (ac - 1) + 1]; + aa += q.dist(ao[ac - 1], an) + q.dist(an, ap) + q.dist(ap, ao[ac]) + } else { + aa += q.dist(ao[ac - 1], ao[ac]) + } + O.push(aa) + } + for (var ak = { + p: 0 + }, am = M.animation.animate(ak, { + loop: af.loop + }), ac = 0; ac < O.length; ac++) { + am.when(O[ac] * af.period, { + p: ac + }) + } + am.during(function() { + var T, e, J = Math.floor(ak.p); + if (J == ao.length - 1) { + T = ao[J][0], e = ao[J][1] + } else { + var K = ak.p - J, + L = ao[J], + S = ao[J + 1]; + if (l) { + var a = l[2 * J], + I = l[2 * J + 1]; + T = x.cubicAt(L[0], a[0], I[0], S[0], K), e = x.cubicAt(L[1], a[1], I[1], S[1], K) + } else { + T = (S[0] - L[0]) * K + L[0], e = (S[1] - L[1]) * K + L[1] + } + } + aq.style.x = T, aq.style.y = e, o || M.modShape(aq) + }).done(p).start(), am.duration = aa * af.period, aq.effectAnimator = am + } else { + var ab = R.xStart - Q, + Y = R.yStart - Q, + Z = R.xEnd - Q, + H = R.yEnd - Q; + aq.style.x = ab, aq.style.y = Y; + var ag = (Z - ab) * (Z - ab) + (H - Y) * (H - Y), + N = Math.round(Math.sqrt(Math.round(ag * af.period * af.period))); + if (U.style.curveness > 0) { + var P = R.cpX1 - Q, + ai = R.cpY1 - Q; + aq.effectAnimator = M.animation.animate(aq, { + loop: af.loop + }).when(N, { + p: 1 + }).during(function(e, a) { + aq.style.x = x.quadraticAt(ab, P, Z, a), aq.style.y = x.quadraticAt(Y, ai, H, a), o || M.modShape(aq) + }).done(p).start() + } else { + aq.effectAnimator = M.animation.animate(aq.style, { + loop: af.loop + }).when(N, { + x: Z, + y: H + }).during(function() { + o || M.modShape(aq) + }).done(p).start() + } + aq.effectAnimator.duration = N + } + return aq + } + + function j(J, S, L, n) { + var O = new G({ + style: { + shapeList: [] + }, + zlevel: n, + hoverable: !1 + }), + Q = L.style.shapeList, + R = L.effect; + O.position = L.position; + for (var M = 0, K = [], N = 0; N < Q.length; N++) { + Q[N].effect = R; + var V = z(J, null, Q[N], n, !0), + I = V.effectAnimator; + O.style.shapeList.push(V), I.duration > M && (M = I.duration), 0 === N && (O.style.color = V.style.color, O.style.shadowBlur = V.style.shadowBlur, O.style.shadowColor = V.style.shadowColor), K.push(I) + } + S.push(O), J.addShape(O); + var P = function() { + for (var a = 0; a < K.length; a++) { + K[a].stop() + } + }; + if (M) { + O.__dummy = 0; + var H = J.animate(O.id, "", R.loop).when(M, { + __dummy: 1 + }).during(function() { + J.modShape(O) + }).done(function() { + L.effect.show = !1, J.delShape(O.id) + }).start(), + T = H.stop; + H.stop = function() { + P(), T.call(this) + } + } + } + var A = u("../util/ecData"), + C = u("zrender/shape/Circle"), + D = u("zrender/shape/Image"), + x = u("zrender/tool/curve"), + v = u("../util/shape/Icon"), + y = u("../util/shape/Symbol"), + G = u("zrender/shape/ShapeBundle"), + F = u("zrender/shape/Polyline"), + q = u("zrender/tool/vector"), + B = u("zrender/tool/env").canvasSupported; + return { + point: E, + largePoint: w, + line: z, + largeLine: j + } + }), d("echarts/component/base", ["require", "../config", "../util/ecData", "../util/ecQuery", "../util/number", "zrender/tool/util", "zrender/tool/env"], function(l) { + function u(n, y, i, v, w) { + this.ecTheme = n, this.messageCenter = y, this.zr = i, this.option = v, this.series = v.series, this.myChart = w, this.component = w.component, this.shapeList = [], this.effectList = []; + var x = this; + x._onlegendhoverlink = function(z) { + if (x.legendHoverLink) { + for (var B, r = z.target, A = x.shapeList.length - 1; A >= 0; A--) { + B = x.type == m.CHART_TYPE_PIE || x.type == m.CHART_TYPE_FUNNEL ? p.get(x.shapeList[A], "name") : (p.get(x.shapeList[A], "series") || {}).name, B != r || x.shapeList[A].invisible || x.shapeList[A].__animating || x.zr.addHoverShape(x.shapeList[A]) + } + } + }, y && y.bind(m.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink) + } + var m = l("../config"), + p = l("../util/ecData"), + j = l("../util/ecQuery"), + q = l("../util/number"), + s = l("zrender/tool/util"); + return u.prototype = { + canvasSupported: l("zrender/tool/env").canvasSupported, + _getZ: function(a) { + if (null != this[a]) { + return this[a] + } + var i = this.ecTheme[this.type]; + return i && null != i[a] ? i[a] : (i = m[this.type], i && null != i[a] ? i[a] : 0) + }, + getZlevelBase: function() { + return this._getZ("zlevel") + }, + getZBase: function() { + return this._getZ("z") + }, + reformOption: function(a) { + return a = s.merge(s.merge(a || {}, s.clone(this.ecTheme[this.type] || {})), s.clone(m[this.type] || {})), this.z = a.z, this.zlevel = a.zlevel, a + }, + reformCssArray: function(a) { + if (!(a instanceof Array)) { + return [a, a, a, a] + } + switch (a.length + "") { + case "4": + return a; + case "3": + return [a[0], a[1], a[2], a[1]]; + case "2": + return [a[0], a[1], a[0], a[1]]; + case "1": + return [a[0], a[0], a[0], a[0]]; + case "0": + return [0, 0, 0, 0] + } + }, + getShapeById: function(a) { + for (var o = 0, n = this.shapeList.length; n > o; o++) { + if (this.shapeList[o].id === a) { + return this.shapeList[o] + } + } + return null + }, + getFont: function(a) { + var i = this.getTextStyle(s.clone(a)); + return i.fontStyle + " " + i.fontWeight + " " + i.fontSize + "px " + i.fontFamily + }, + getTextStyle: function(a) { + return s.merge(s.merge(a || {}, this.ecTheme.textStyle), m.textStyle) + }, + getItemStyleColor: function(a, v, o, r) { + return "function" == typeof a ? a.call(this.myChart, { + seriesIndex: v, + series: this.series[v], + dataIndex: o, + data: r + }) : a + }, + getDataFromOption: function(a, i) { + return null != a ? null != a.value ? a.value : a : i + }, + subPixelOptimize: function(a, i) { + return a = i % 2 === 1 ? Math.floor(a) + 0.5 : Math.round(a) + }, + resize: function() { + this.refresh && this.refresh(), this.clearEffectShape && this.clearEffectShape(!0); + var a = this; + setTimeout(function() { + a.animationEffect && a.animationEffect() + }, 200) + }, + clear: function() { + this.clearEffectShape && this.clearEffectShape(), this.zr && this.zr.delShape(this.shapeList), this.shapeList = [] + }, + dispose: function() { + this.onbeforDispose && this.onbeforDispose(), this.clear(), this.shapeList = null, this.effectList = null, this.messageCenter && this.messageCenter.unbind(m.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink), this.onafterDispose && this.onafterDispose() + }, + query: j.query, + deepQuery: j.deepQuery, + deepMerge: j.deepMerge, + parsePercent: q.parsePercent, + parseCenter: q.parseCenter, + parseRadius: q.parseRadius, + numAddCommas: q.addCommas, + getPrecision: q.getPrecision + }, u + }), d("echarts/layout/EdgeBundling", ["require", "../data/KDTree", "zrender/tool/vector"], function(p) { + function B(m, F) { + m = m.array, F = F.array; + var r = F[0] - m[0], + s = F[1] - m[1], + l = F[2] - m[2], + E = F[3] - m[3]; + return r * r + s * s + l * l + E * E + } + + function u(a) { + this.points = [a.mp0, a.mp1], this.group = a + } + + function x(a) { + var i = a.points; + i[0][1] < i[1][1] || a instanceof u ? (this.array = [i[0][0], i[0][1], i[1][0], i[1][1]], this._startPoint = i[0], this._endPoint = i[1]) : (this.array = [i[1][0], i[1][1], i[0][0], i[0][1]], this._startPoint = i[1], this._endPoint = i[0]), this.ink = w(i[0], i[1]), this.edge = a, this.group = null + } + + function j() { + this.edgeList = [], this.mp0 = v(), this.mp1 = v(), this.ink = 0 + } + + function y() { + this.maxNearestEdge = 6, this.maxTurningAngle = Math.PI / 4, this.maxIteration = 20 + } + var z = p("../data/KDTree"), + A = p("zrender/tool/vector"), + v = A.create, + q = A.distSquare, + w = A.dist, + D = A.copy, + C = A.clone; + return x.prototype.getStartPoint = function() { + return this._startPoint + }, x.prototype.getEndPoint = function() { + return this._endPoint + }, j.prototype.addEdge = function(a) { + a.group = this, this.edgeList.push(a) + }, j.prototype.removeEdge = function(a) { + a.group = null, this.edgeList.splice(this.edgeList.indexOf(a), 1) + }, y.prototype = { + constructor: y, + run: function(E) { + function L(a, l) { + return q(a, l) < 1e-10 + } + + function H(m, r) { + for (var s = [], l = 0, t = 0; t < m.length; t++) { + l > 0 && L(m[t], s[l - 1]) || (s[l++] = C(m[t])) + } + return r[0] && !L(s[0], r[0]) && (s = s.reverse()), s + } + for (var i = this._iterate(E), I = 0; I++ < this.maxIteration;) { + for (var J = [], K = 0; K < i.groups.length; K++) { + J.push(new u(i.groups[K])) + } + var F = this._iterate(J); + if (F.savedInk <= 0) { + break + } + i = F + } + var G = [], + M = function(n, S) { + for (var m, P = 0; P < n.length; P++) { + var Q = n[P]; + if (Q.edgeList[0] && Q.edgeList[0].edge instanceof u) { + for (var R = [], O = 0; O < Q.edgeList.length; O++) { + R.push(Q.edgeList[O].edge.group) + } + m = S ? S.slice() : [], m.unshift(Q.mp0), m.push(Q.mp1), M(R, m) + } else { + for (var O = 0; O < Q.edgeList.length; O++) { + var N = Q.edgeList[O]; + m = S ? S.slice() : [], m.unshift(Q.mp0), m.push(Q.mp1), m.unshift(N.getStartPoint()), m.push(N.getEndPoint()), G.push({ + points: H(m, N.edge.points), + rawEdge: N.edge + }) + } + } + } + }; + return M(i.groups), G + }, + _iterate: function(t) { + for (var H = [], M = [], O = 0, G = 0; G < t.length; G++) { + var K = new x(t[G]); + H.push(K) + } + for (var Q = new z(H, 4), r = [], N = v(), n = v(), P = 0, V = v(), F = v(), l = 0, G = 0; G < H.length; G++) { + var K = H[G]; + if (!K.group) { + Q.nearestN(K, this.maxNearestEdge, B, r); + for (var E = 0, I = null, S = null, a = 0; a < r.length; a++) { + var J = r[a], + R = 0; + J.group ? J.group !== S && (S = J.group, P = this._calculateGroupEdgeInk(J.group, K, N, n), R = J.group.ink + K.ink - P) : (P = this._calculateEdgeEdgeInk(K, J, N, n), R = J.ink + K.ink - P), R > E && (E = R, I = J, D(F, n), D(V, N), l = P) + } + if (I) { + O += E; + var T; + I.group || (T = new j, M.push(T), T.addEdge(I)), T = I.group, D(T.mp0, V), D(T.mp1, F), T.ink = l, I.group.addEdge(K) + } else { + var T = new j; + M.push(T), D(T.mp0, K.getStartPoint()), D(T.mp1, K.getEndPoint()), T.ink = K.ink, T.addEdge(K) + } + } + } + return { + groups: M, + edges: H, + savedInk: O + } + }, + _calculateEdgeEdgeInk: function() { + var a = [], + i = []; + return function(l, m, e, s) { + a[0] = l.getStartPoint(), a[1] = m.getStartPoint(), i[0] = l.getEndPoint(), i[1] = m.getEndPoint(), this._calculateMeetPoints(a, i, e, s); + var t = w(a[0], e) + w(e, s) + w(s, i[0]) + w(a[1], e) + w(s, i[1]); + return t + } + }(), + _calculateGroupEdgeInk: function(E, L, F, H) { + for (var m = [], I = [], J = 0; J < E.edgeList.length; J++) { + var K = E.edgeList[J]; + m.push(K.getStartPoint()), I.push(K.getEndPoint()) + } + m.push(L.getStartPoint()), I.push(L.getEndPoint()), this._calculateMeetPoints(m, I, F, H); + for (var G = w(F, H), J = 0; J < m.length; J++) { + G += w(m[J], F) + w(I[J], H) + } + return G + }, + _calculateMeetPoints: function() { + var a = v(), + i = v(); + return function(m, t, e, E) { + A.set(a, 0, 0), A.set(i, 0, 0); + for (var F = m.length, s = 0; F > s; s++) { + A.add(a, a, m[s]) + } + A.scale(a, a, 1 / F), F = t.length; + for (var s = 0; F > s; s++) { + A.add(i, i, t[s]) + } + A.scale(i, i, 1 / F), this._limitTurningAngle(m, a, i, e), this._limitTurningAngle(t, i, a, E) + } + }(), + _limitTurningAngle: function() { + var a = v(), + o = v(), + l = v(), + m = v(); + return function(e, G, I, F) { + var L = Math.cos(this.maxTurningAngle), + K = Math.tan(this.maxTurningAngle); + A.sub(a, G, I), A.normalize(a, a), A.copy(F, G); + for (var s = 0, H = 0; H < e.length; H++) { + var n = e[H]; + A.sub(o, n, G); + var J = A.len(o); + A.scale(o, o, 1 / J); + var M = A.dot(o, a); + if (L > M) { + A.scaleAndAdd(l, G, a, J * M); + var E = w(l, n), + i = E / K; + A.scaleAndAdd(m, l, a, -i); + var t = q(m, G); + t > s && (s = t, A.copy(F, m)) + } + } + } + }() + }, y + }), d("zrender/shape/Star", ["require", "../tool/math", "./Base", "../tool/util"], function(l) { + var u = l("../tool/math"), + m = u.sin, + p = u.cos, + j = Math.PI, + q = l("./Base"), + s = function(a) { + q.call(this, a) + }; + return s.prototype = { + type: "star", + buildPath: function(n, D) { + var z = D.n; + if (z && !(2 > z)) { + var B = D.x, + C = D.y, + w = D.r, + v = D.r0; + null == v && (v = z > 4 ? w * p(2 * j / z) / p(j / z) : w / 3); + var x = j / z, + G = -j / 2, + F = B + w * p(G), + i = C + w * m(G); + G += x; + var A = D.pointList = []; + A.push([F, i]); + for (var a, E = 0, H = 2 * z - 1; H > E; E++) { + a = E % 2 === 0 ? v : w, A.push([B + a * p(G), C + a * m(G)]), G += x + } + A.push([F, i]), n.moveTo(A[0][0], A[0][1]); + for (var E = 0; E < A.length; E++) { + n.lineTo(A[E][0], A[E][1]) + } + n.closePath() + } + }, + getRect: function(a) { + if (a.__rect) { + return a.__rect + } + var i; + return i = "stroke" == a.brushType || "fill" == a.brushType ? a.lineWidth || 1 : 0, a.__rect = { + x: Math.round(a.x - a.r - i / 2), + y: Math.round(a.y - a.r - i / 2), + width: 2 * a.r + i, + height: 2 * a.r + i + }, a.__rect + } + }, l("../tool/util").inherits(s, q), s + }), d("zrender/shape/Heart", ["require", "./Base", "./util/PathProxy", "../tool/area", "../tool/util"], function(l) { + var p = l("./Base"), + m = l("./util/PathProxy"), + o = l("../tool/area"), + j = function(a) { + p.call(this, a), this._pathProxy = new m + }; + return j.prototype = { + type: "heart", + buildPath: function(a, q) { + var i = this._pathProxy || new m; + i.begin(a), i.moveTo(q.x, q.y), i.bezierCurveTo(q.x + q.a / 2, q.y - 2 * q.b / 3, q.x + 2 * q.a, q.y + q.b / 3, q.x, q.y + q.b), i.bezierCurveTo(q.x - 2 * q.a, q.y + q.b / 3, q.x - q.a / 2, q.y - 2 * q.b / 3, q.x, q.y), i.closePath() + }, + getRect: function(a) { + return a.__rect ? a.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, a), this._pathProxy.fastBoundingRect()) + }, + isCover: function(a, q) { + var n = this.transformCoordToLocal(a, q); + return a = n[0], q = n[1], this.isCoverRect(a, q) ? o.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, a, q) : void 0 + } + }, l("../tool/util").inherits(j, p), j + }), d("zrender/shape/Droplet", ["require", "./Base", "./util/PathProxy", "../tool/area", "../tool/util"], function(l) { + var p = l("./Base"), + m = l("./util/PathProxy"), + o = l("../tool/area"), + j = function(a) { + p.call(this, a), this._pathProxy = new m + }; + return j.prototype = { + type: "droplet", + buildPath: function(a, q) { + var i = this._pathProxy || new m; + i.begin(a), i.moveTo(q.x, q.y + q.a), i.bezierCurveTo(q.x + q.a, q.y + q.a, q.x + 3 * q.a / 2, q.y - q.a / 3, q.x, q.y - q.b), i.bezierCurveTo(q.x - 3 * q.a / 2, q.y - q.a / 3, q.x - q.a, q.y + q.a, q.x, q.y + q.a), i.closePath() + }, + getRect: function(a) { + return a.__rect ? a.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, a), this._pathProxy.fastBoundingRect()) + }, + isCover: function(a, q) { + var n = this.transformCoordToLocal(a, q); + return a = n[0], q = n[1], this.isCoverRect(a, q) ? o.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, a, q) : void 0 + } + }, l("../tool/util").inherits(j, p), j + }), d("zrender/tool/math", [], function() { + function l(a, i) { + return Math.sin(i ? a * j : a) + } + + function p(a, i) { + return Math.cos(i ? a * j : a) + } + + function m(a) { + return a * j + } + + function o(a) { + return a / j + } + var j = Math.PI / 180; + return { + sin: l, + cos: p, + degreeToRadian: m, + radianToDegree: o + } + }), d("zrender/shape/util/PathProxy", ["require", "../../tool/vector"], function(a) { + var m = a("../../tool/vector"), + j = function(i, n) { + this.command = i, this.points = n || null + }, + l = function() { + this.pathCommands = [], this._ctx = null, this._min = [], this._max = [] + }; + return l.prototype.fastBoundingRect = function() { + var q = this._min, + u = this._max; + q[0] = q[1] = 1 / 0, u[0] = u[1] = -(1 / 0); + for (var x = 0; x < this.pathCommands.length; x++) { + var p = this.pathCommands[x], + y = p.points; + switch (p.command) { + case "M": + m.min(q, q, y), m.max(u, u, y); + break; + case "L": + m.min(q, q, y), m.max(u, u, y); + break; + case "C": + for (var z = 0; 6 > z; z += 2) { + q[0] = Math.min(q[0], q[0], y[z]), q[1] = Math.min(q[1], q[1], y[z + 1]), u[0] = Math.max(u[0], u[0], y[z]), u[1] = Math.max(u[1], u[1], y[z + 1]) + } + break; + case "Q": + for (var z = 0; 4 > z; z += 2) { + q[0] = Math.min(q[0], q[0], y[z]), q[1] = Math.min(q[1], q[1], y[z + 1]), u[0] = Math.max(u[0], u[0], y[z]), u[1] = Math.max(u[1], u[1], y[z + 1]) + } + break; + case "A": + var A = y[0], + v = y[1], + t = y[2], + w = y[3]; + q[0] = Math.min(q[0], q[0], A - t), q[1] = Math.min(q[1], q[1], v - w), u[0] = Math.max(u[0], u[0], A + t), u[1] = Math.max(u[1], u[1], v + w) + } + } + return { + x: q[0], + y: q[1], + width: u[0] - q[0], + height: u[1] - q[1] + } + }, l.prototype.begin = function(i) { + return this._ctx = i || null, this.pathCommands.length = 0, this + }, l.prototype.moveTo = function(i, n) { + return this.pathCommands.push(new j("M", [i, n])), this._ctx && this._ctx.moveTo(i, n), this + }, l.prototype.lineTo = function(i, n) { + return this.pathCommands.push(new j("L", [i, n])), this._ctx && this._ctx.lineTo(i, n), this + }, l.prototype.bezierCurveTo = function(p, v, q, i, s, u) { + return this.pathCommands.push(new j("C", [p, v, q, i, s, u])), this._ctx && this._ctx.bezierCurveTo(p, v, q, i, s, u), this + }, l.prototype.quadraticCurveTo = function(o, q, p, i) { + return this.pathCommands.push(new j("Q", [o, q, p, i])), this._ctx && this._ctx.quadraticCurveTo(o, q, p, i), this + }, l.prototype.arc = function(p, v, q, i, s, u) { + return this.pathCommands.push(new j("A", [p, v, q, q, i, s - i, 0, u ? 0 : 1])), this._ctx && this._ctx.arc(p, v, q, i, s, u), this + }, l.prototype.arcTo = function(p, s, q, r, o) { + return this._ctx && this._ctx.arcTo(p, s, q, r, o), this + }, l.prototype.rect = function(o, r, p, q) { + return this._ctx && this._ctx.rect(o, r, p, q), this + }, l.prototype.closePath = function() { + return this.pathCommands.push(new j("z")), this._ctx && this._ctx.closePath(), this + }, l.prototype.isEmpty = function() { + return 0 === this.pathCommands.length + }, l.PathSegment = j, l + }), d("zrender/shape/Line", ["require", "./Base", "./util/dashedLineTo", "../tool/util"], function(a) { + var m = a("./Base"), + j = a("./util/dashedLineTo"), + l = function(i) { + this.brushTypeOnly = "stroke", this.textPosition = "end", m.call(this, i) + }; + return l.prototype = { + type: "line", + buildPath: function(i, p) { + if (p.lineType && "solid" != p.lineType) { + if ("dashed" == p.lineType || "dotted" == p.lineType) { + var o = (p.lineWidth || 1) * ("dashed" == p.lineType ? 5 : 1); + j(i, p.xStart, p.yStart, p.xEnd, p.yEnd, o) + } + } else { + i.moveTo(p.xStart, p.yStart), i.lineTo(p.xEnd, p.yEnd) + } + }, + getRect: function(i) { + if (i.__rect) { + return i.__rect + } + var n = i.lineWidth || 1; + return i.__rect = { + x: Math.min(i.xStart, i.xEnd) - n, + y: Math.min(i.yStart, i.yEnd) - n, + width: Math.abs(i.xStart - i.xEnd) + n, + height: Math.abs(i.yStart - i.yEnd) + n + }, i.__rect + } + }, a("../tool/util").inherits(l, m), l + }), d("zrender/shape/BezierCurve", ["require", "./Base", "../tool/util"], function(a) { + var l = a("./Base"), + j = function(i) { + this.brushTypeOnly = "stroke", this.textPosition = "end", l.call(this, i) + }; + return j.prototype = { + type: "bezier-curve", + buildPath: function(i, m) { + i.moveTo(m.xStart, m.yStart), "undefined" != typeof m.cpX2 && "undefined" != typeof m.cpY2 ? i.bezierCurveTo(m.cpX1, m.cpY1, m.cpX2, m.cpY2, m.xEnd, m.yEnd) : i.quadraticCurveTo(m.cpX1, m.cpY1, m.xEnd, m.yEnd) + }, + getRect: function(p) { + if (p.__rect) { + return p.__rect + } + var y = Math.min(p.xStart, p.xEnd, p.cpX1), + q = Math.min(p.yStart, p.yEnd, p.cpY1), + u = Math.max(p.xStart, p.xEnd, p.cpX1), + m = Math.max(p.yStart, p.yEnd, p.cpY1), + v = p.cpX2, + w = p.cpY2; + "undefined" != typeof v && "undefined" != typeof w && (y = Math.min(y, v), q = Math.min(q, w), u = Math.max(u, v), m = Math.max(m, w)); + var x = p.lineWidth || 1; + return p.__rect = { + x: y - x, + y: q - x, + width: u - y + x, + height: m - q + x + }, p.__rect + } + }, a("../tool/util").inherits(j, l), j + }), d("zrender/shape/util/dashedLineTo", [], function() { + var a = [5, 5]; + return function(z, p, v, e, w, x) { + if (z.setLineDash) { + return a[0] = a[1] = x, z.setLineDash(a), z.moveTo(p, v), void z.lineTo(e, w) + } + x = "number" != typeof x ? 5 : x; + var y = e - p, + q = w - v, + j = Math.floor(Math.sqrt(y * y + q * q) / x); + y /= j, q /= j; + for (var u = !0, A = 0; j > A; ++A) { + u ? z.moveTo(p, v) : z.lineTo(p, v), u = !u, p += y, v += q + } + z.lineTo(e, w) + } + }), d("zrender/shape/Polygon", ["require", "./Base", "./util/smoothSpline", "./util/smoothBezier", "./util/dashedLineTo", "../tool/util"], function(l) { + var r = l("./Base"), + m = l("./util/smoothSpline"), + p = l("./util/smoothBezier"), + j = l("./util/dashedLineTo"), + q = function(a) { + r.call(this, a) + }; + return q.prototype = { + type: "polygon", + buildPath: function(i, z) { + var w = z.pointList; + if (!(w.length < 2)) { + if (z.smooth && "spline" !== z.smooth) { + var x = p(w, z.smooth, !0, z.smoothConstraint); + i.moveTo(w[0][0], w[0][1]); + for (var y, u, n, v = w.length, B = 0; v > B; B++) { + y = x[2 * B], u = x[2 * B + 1], n = w[(B + 1) % v], i.bezierCurveTo(y[0], y[1], u[0], u[1], n[0], n[1]) + } + } else { + if ("spline" === z.smooth && (w = m(w, !0)), z.lineType && "solid" != z.lineType) { + if ("dashed" == z.lineType || "dotted" == z.lineType) { + var A = z._dashLength || (z.lineWidth || 1) * ("dashed" == z.lineType ? 5 : 1); + z._dashLength = A, i.moveTo(w[0][0], w[0][1]); + for (var B = 1, a = w.length; a > B; B++) { + j(i, w[B - 1][0], w[B - 1][1], w[B][0], w[B][1], A) + } + j(i, w[w.length - 1][0], w[w.length - 1][1], w[0][0], w[0][1], A) + } + } else { + i.moveTo(w[0][0], w[0][1]); + for (var B = 1, a = w.length; a > B; B++) { + i.lineTo(w[B][0], w[B][1]) + } + i.lineTo(w[0][0], w[0][1]) + } + } + i.closePath() + } + }, + getRect: function(v) { + if (v.__rect) { + return v.__rect + } + for (var C = Number.MAX_VALUE, w = Number.MIN_VALUE, y = Number.MAX_VALUE, u = Number.MIN_VALUE, z = v.pointList, A = 0, B = z.length; B > A; A++) { + z[A][0] < C && (C = z[A][0]), z[A][0] > w && (w = z[A][0]), z[A][1] < y && (y = z[A][1]), z[A][1] > u && (u = z[A][1]) + } + var x; + return x = "stroke" == v.brushType || "fill" == v.brushType ? v.lineWidth || 1 : 0, v.__rect = { + x: Math.round(C - x / 2), + y: Math.round(y - x / 2), + width: w - C + x, + height: u - y + x + }, v.__rect + } + }, l("../tool/util").inherits(q, r), q + }), d("echarts/util/shape/normalIsCover", [], function() { + return function(a, l) { + var j = this.transformCoordToLocal(a, l); + return a = j[0], l = j[1], this.isCoverRect(a, l) + } + }), d("zrender/shape/util/smoothSpline", ["require", "../../tool/vector"], function(a) { + function l(p, z, q, v, m, w, x) { + var y = 0.5 * (q - p), + u = 0.5 * (v - z); + return (2 * (z - q) + y + u) * x + (-3 * (z - q) - 2 * y - u) * w + y * m + z + } + var j = a("../../tool/vector"); + return function(v, A) { + for (var i = v.length, B = [], D = 0, E = 1; i > E; E++) { + D += j.distance(v[E - 1], v[E]) + } + var x = D / 5; + x = i > x ? i : x; + for (var E = 0; x > E; E++) { + var w, z, H, G = E / (x - 1) * (A ? i : i - 1), + t = Math.floor(G), + C = G - t, + q = v[t % i]; + A ? (w = v[(t - 1 + i) % i], z = v[(t + 1) % i], H = v[(t + 2) % i]) : (w = v[0 === t ? t : t - 1], z = v[t > i - 2 ? i - 1 : t + 1], H = v[t > i - 3 ? i - 1 : t + 2]); + var F = C * C, + I = C * F; + B.push([l(w[0], q[0], z[0], H[0], C, F, I), l(w[1], q[1], z[1], H[1], C, F, I)]) + } + return B + } + }), d("zrender/shape/util/smoothBezier", ["require", "../../tool/vector"], function(a) { + var i = a("../../tool/vector"); + return function(w, B, F, j) { + var G, I, J, D, A = [], + E = [], + M = [], + L = [], + v = !!j; + if (v) { + J = [1 / 0, 1 / 0], D = [-(1 / 0), -(1 / 0)]; + for (var H = 0, t = w.length; t > H; H++) { + i.min(J, J, w[H]), i.max(D, D, w[H]) + } + i.min(J, J, j[0]), i.max(D, D, j[1]) + } + for (var H = 0, t = w.length; t > H; H++) { + var G, I, K = w[H]; + if (F) { + G = w[H ? H - 1 : t - 1], I = w[(H + 1) % t] + } else { + if (0 === H || H === t - 1) { + A.push(i.clone(w[H])); + continue + } + G = w[H - 1], I = w[H + 1] + } + i.sub(E, I, G), i.scale(E, E, B); + var N = i.distance(K, G), + z = i.distance(K, I), + q = N + z; + 0 !== q && (N /= q, z /= q), i.scale(M, E, -N), i.scale(L, E, z); + var x = i.add([], K, M), + C = i.add([], K, L); + v && (i.max(x, x, J), i.min(x, x, D), i.max(C, C, J), i.min(C, C, D)), A.push(x), A.push(C) + } + return F && A.push(i.clone(A.shift())), A + } + }), d("echarts/util/ecQuery", ["require", "zrender/tool/util"], function(l) { + function p(a, s) { + if ("undefined" != typeof a) { + if (!s) { + return a + } + s = s.split("."); + for (var q = s.length, r = 0; q > r;) { + if (a = a[s[r]], "undefined" == typeof a) { + return + } + r++ + } + return a + } + } + + function m(r, s) { + for (var t, q = 0, u = r.length; u > q; q++) { + if (t = p(r[q], s), "undefined" != typeof t) { + return t + } + } + } + + function o(a, q) { + for (var s, t = a.length; t--;) { + var u = p(a[t], q); + "undefined" != typeof u && ("undefined" == typeof s ? s = j.clone(u) : j.merge(s, u, !0)) + } + return s + } + var j = l("zrender/tool/util"); + return { + query: p, + deepQuery: m, + deepMerge: o + } + }), d("echarts/util/number", [], function() { + function l(a) { + return a.replace(/^\s+/, "").replace(/\s+$/, "") + } + + function r(e, a) { + return "string" == typeof e ? l(e).match(/%$/) ? parseFloat(e) / 100 * a : parseFloat(e) : e + } + + function m(a, n) { + return [r(n[0], a.getWidth()), r(n[1], a.getHeight())] + } + + function p(a, o) { + o instanceof Array || (o = [0, o]); + var s = Math.min(a.getWidth(), a.getHeight()) / 2; + return [r(o[0], s), r(o[1], s)] + } + + function j(a) { + return isNaN(a) ? "-" : (a = (a + "").split("."), a[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (a.length > 1 ? "." + a[1] : "")) + } + + function q(a) { + for (var o = 1, n = 0; Math.round(a * o) / o !== a;) { + o *= 10, n++ + } + return n + } + return { + parsePercent: r, + parseCenter: m, + parseRadius: p, + addCommas: j, + getPrecision: q + } + }), d("echarts/data/KDTree", ["require", "./quickSelect"], function(a) { + function m(i, n) { + this.left = null, this.right = null, this.axis = i, this.data = n + } + var j = a("./quickSelect"), + l = function(i, n) { + i.length && (n || (n = i[0].array.length), this.dimension = n, this.root = this._buildTree(i, 0, i.length - 1, 0), this._stack = [], this._nearstNList = []) + }; + return l.prototype._buildTree = function(p, t, i, u) { + if (t > i) { + return null + } + var v = Math.floor((t + i) / 2); + v = j(p, t, i, v, function(n, o) { + return n.array[u] - o.array[u] + }); + var w = p[v], + q = new m(u, w); + return u = (u + 1) % this.dimension, i > t && (q.left = this._buildTree(p, t, v - 1, u), q.right = this._buildTree(p, v + 1, i, u)), q + }, l.prototype.nearest = function(q, B) { + var v = this.root, + x = this._stack, + p = 0, + y = 1 / 0, + z = null; + for (v.data !== q && (y = B(v.data, q), z = v), q.array[v.axis] < v.data.array[v.axis] ? (v.right && (x[p++] = v.right), v.left && (x[p++] = v.left)) : (v.left && (x[p++] = v.left), v.right && (x[p++] = v.right)); p--;) { + v = x[p]; + var A = q.array[v.axis] - v.data.array[v.axis], + w = 0 > A, + u = !1; + A *= A, y > A && (A = B(v.data, q), y > A && v.data !== q && (y = A, z = v), u = !0), w ? (u && v.right && (x[p++] = v.right), v.left && (x[p++] = v.left)) : (u && v.left && (x[p++] = v.left), v.right && (x[p++] = v.right)) + } + return z.data + }, l.prototype._addNearest = function(p, s, q) { + for (var r = this._nearstNList, o = p - 1; o > 0 && !(s >= r[o - 1].dist); o--) { + r[o].dist = r[o - 1].dist, r[o].node = r[o - 1].node + } + r[o].dist = s, r[o].node = q + }, l.prototype.nearestN = function(q, C, v, y) { + if (0 >= C) { + return y.length = 0, y + } + for (var p = this.root, z = this._stack, A = 0, B = this._nearstNList, w = 0; C > w; w++) { + B[w] || (B[w] = {}), B[w].dist = 0, B[w].node = null + } + var u = v(p.data, q), + x = 0; + for (p.data !== q && (x++, this._addNearest(x, u, p)), q.array[p.axis] < p.data.array[p.axis] ? (p.right && (z[A++] = p.right), p.left && (z[A++] = p.left)) : (p.left && (z[A++] = p.left), p.right && (z[A++] = p.right)); A--;) { + p = z[A]; + var u = q.array[p.axis] - p.data.array[p.axis], + E = 0 > u, + D = !1; + u *= u, (C > x || u < B[x - 1].dist) && (u = v(p.data, q), (C > x || u < B[x - 1].dist) && p.data !== q && (C > x && x++, this._addNearest(x, u, p)), D = !0), E ? (D && p.right && (z[A++] = p.right), p.left && (z[A++] = p.left)) : (D && p.left && (z[A++] = p.left), p.right && (z[A++] = p.right)) + } + for (var w = 0; x > w; w++) { + y[w] = B[w].node.data + } + return y.length = x, y + }, l + }), d("echarts/data/quickSelect", ["require"], function() { + function a(i, n) { + return i - n + } + + function m(o, r, p) { + var q = o[r]; + o[r] = o[p], o[p] = q + } + + function j(q, t, v, p, w) { + for (var x = t; v > t;) { + var x = Math.round((v + t) / 2), + y = q[x]; + m(q, x, v), x = t; + for (var u = t; v - 1 >= u; u++) { + w(y, q[u]) >= 0 && (m(q, u, x), x++) + } + if (m(q, v, x), x === p) { + return x + } + p > x ? t = x + 1 : v = x - 1 + } + return t + } + + function l(s, i, e, p, q) { + return arguments.length <= 3 && (p = i, q = 2 == arguments.length ? a : e, i = 0, e = s.length - 1), j(s, i, e, p, q) + } + return l + }), d("echarts/component/dataView", ["require", "./base", "../config", "zrender/tool/util", "../component"], function(l) { + function p(q, u, r, i, s) { + m.call(this, q, u, r, i, s), this.dom = s.dom, this._tDom = document.createElement("div"), this._textArea = document.createElement("textArea"), this._buttonRefresh = document.createElement("button"), this._buttonRefresh.setAttribute("type", "button"), this._buttonClose = document.createElement("button"), this._buttonClose.setAttribute("type", "button"), this._hasShow = !1, this._zrHeight = r.getHeight(), this._zrWidth = r.getWidth(), this._tDom.className = "echarts-dataview", this.hide(), this.dom.firstChild.appendChild(this._tDom), window.addEventListener ? (this._tDom.addEventListener("click", this._stop), this._tDom.addEventListener("mousewheel", this._stop), this._tDom.addEventListener("mousemove", this._stop), this._tDom.addEventListener("mousedown", this._stop), this._tDom.addEventListener("mouseup", this._stop), this._tDom.addEventListener("touchstart", this._stop), this._tDom.addEventListener("touchmove", this._stop), this._tDom.addEventListener("touchend", this._stop)) : (this._tDom.attachEvent("onclick", this._stop), this._tDom.attachEvent("onmousewheel", this._stop), this._tDom.attachEvent("onmousemove", this._stop), this._tDom.attachEvent("onmousedown", this._stop), this._tDom.attachEvent("onmouseup", this._stop)) + } + var m = l("./base"), + o = l("../config"), + j = l("zrender/tool/util"); + return p.prototype = { + type: o.COMPONENT_TYPE_DATAVIEW, + _lang: ["Data View", "close", "refresh"], + _gCssText: "position:absolute;display:block;overflow:hidden;transition:height 0.8s,background-color 1s;-moz-transition:height 0.8s,background-color 1s;-webkit-transition:height 0.8s,background-color 1s;-o-transition:height 0.8s,background-color 1s;z-index:1;left:0;top:0;", + hide: function() { + this._sizeCssText = "width:" + this._zrWidth + "px;height:0px;background-color:#f0ffff;", this._tDom.style.cssText = this._gCssText + this._sizeCssText + }, + show: function(a) { + this._hasShow = !0; + var s = this.query(this.option, "toolbox.feature.dataView.lang") || this._lang; + this.option = a, this._tDom.innerHTML = '

' + (s[0] || this._lang[0]) + "

"; + var q = this.query(this.option, "toolbox.feature.dataView.optionToContent"); + "function" != typeof q ? this._textArea.value = this._optionToContent() : (this._textArea = document.createElement("div"), this._textArea.innerHTML = q(this.option)), this._textArea.style.cssText = "display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:" + (this._zrHeight - 100) + "px;", this._tDom.appendChild(this._textArea), this._buttonClose.style.cssText = "float:right;padding:1px 6px;", this._buttonClose.innerHTML = s[1] || this._lang[1]; + var r = this; + this._buttonClose.onclick = function() { + r.hide() + }, this._tDom.appendChild(this._buttonClose), this.query(this.option, "toolbox.feature.dataView.readOnly") === !1 ? (this._buttonRefresh.style.cssText = "float:right;margin-right:10px;padding:1px 6px;", this._buttonRefresh.innerHTML = s[2] || this._lang[2], this._buttonRefresh.onclick = function() { + r._save() + }, this._textArea.readOnly = !1, this._textArea.style.cursor = "default") : (this._buttonRefresh.style.cssText = "display:none", this._textArea.readOnly = !0, this._textArea.style.cursor = "text"), this._tDom.appendChild(this._buttonRefresh), this._sizeCssText = "width:" + this._zrWidth + "px;height:" + this._zrHeight + "px;background-color:#fff;", this._tDom.style.cssText = this._gCssText + this._sizeCssText + }, + _optionToContent: function() { + var q, B, v, n, y, z, A = [], + w = ""; + if (this.option.xAxis) { + for (A = this.option.xAxis instanceof Array ? this.option.xAxis : [this.option.xAxis], q = 0, n = A.length; n > q; q++) { + if ("category" == (A[q].type || "category")) { + for (z = [], B = 0, v = A[q].data.length; v > B; B++) { + z.push(this.getDataFromOption(A[q].data[B])) + } + w += z.join(", ") + "\n\n" + } + } + } + if (this.option.yAxis) { + for (A = this.option.yAxis instanceof Array ? this.option.yAxis : [this.option.yAxis], q = 0, n = A.length; n > q; q++) { + if ("category" == A[q].type) { + for (z = [], B = 0, v = A[q].data.length; v > B; B++) { + z.push(this.getDataFromOption(A[q].data[B])) + } + w += z.join(", ") + "\n\n" + } + } + } + var u, x = this.option.series; + for (q = 0, n = x.length; n > q; q++) { + for (z = [], B = 0, v = x[q].data.length; v > B; B++) { + y = x[q].data[B], u = x[q].type == o.CHART_TYPE_PIE || x[q].type == o.CHART_TYPE_MAP ? (y.name || "-") + ":" : "", x[q].type == o.CHART_TYPE_SCATTER && (y = this.getDataFromOption(y).join(", ")), z.push(u + this.getDataFromOption(y)) + } + w += (x[q].name || "-") + " : \n", w += z.join(x[q].type == o.CHART_TYPE_SCATTER ? "\n" : ", "), w += "\n\n" + } + return w + }, + _save: function() { + var q = this.query(this.option, "toolbox.feature.dataView.contentToOption"); + if ("function" != typeof q) { + for (var w = this._textArea.value.split("\n"), s = [], n = 0, u = w.length; u > n; n++) { + w[n] = this._trim(w[n]), "" !== w[n] && s.push(w[n]) + } + this._contentToOption(s) + } else { + q(this._textArea, this.option) + } + this.hide(); + var v = this; + setTimeout(function() { + v.messageCenter && v.messageCenter.dispatch(o.EVENT.DATA_VIEW_CHANGED, null, { + option: v.option + }, v.myChart) + }, v.canvasSupported ? 800 : 100) + }, + _contentToOption: function(q) { + var B, v, n, y, z, A, w, u = [], + x = 0; + if (this.option.xAxis) { + for (u = this.option.xAxis instanceof Array ? this.option.xAxis : [this.option.xAxis], B = 0, y = u.length; y > B; B++) { + if ("category" == (u[B].type || "category")) { + for (A = q[x].split(","), v = 0, n = u[B].data.length; n > v; v++) { + w = this._trim(A[v] || ""), z = u[B].data[v], "undefined" != typeof u[B].data[v].value ? u[B].data[v].value = w : u[B].data[v] = w + } + x++ + } + } + } + if (this.option.yAxis) { + for (u = this.option.yAxis instanceof Array ? this.option.yAxis : [this.option.yAxis], B = 0, y = u.length; y > B; B++) { + if ("category" == u[B].type) { + for (A = q[x].split(","), v = 0, n = u[B].data.length; n > v; v++) { + w = this._trim(A[v] || ""), z = u[B].data[v], "undefined" != typeof u[B].data[v].value ? u[B].data[v].value = w : u[B].data[v] = w + } + x++ + } + } + } + var C = this.option.series; + for (B = 0, y = C.length; y > B; B++) { + if (x++, C[B].type == o.CHART_TYPE_SCATTER) { + for (var v = 0, n = C[B].data.length; n > v; v++) { + A = q[x], w = A.replace(" ", "").split(","), "undefined" != typeof C[B].data[v].value ? C[B].data[v].value = w : C[B].data[v] = w, x++ + } + } else { + A = q[x].split(","); + for (var v = 0, n = C[B].data.length; n > v; v++) { + w = (A[v] || "").replace(/.*:/, ""), w = this._trim(w), w = "-" != w && "" !== w ? w - 0 : "-", "undefined" != typeof C[B].data[v].value ? C[B].data[v].value = w : C[B].data[v] = w + } + x++ + } + } + }, + _trim: function(a) { + var i = new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)", "g"); + return a.replace(i, "") + }, + _stop: function(a) { + a = a || window.event, a.stopPropagation ? a.stopPropagation() : a.cancelBubble = !0 + }, + resize: function() { + this._zrHeight = this.zr.getHeight(), this._zrWidth = this.zr.getWidth(), this._tDom.offsetHeight > 10 && (this._sizeCssText = "width:" + this._zrWidth + "px;height:" + this._zrHeight + "px;background-color:#fff;", this._tDom.style.cssText = this._gCssText + this._sizeCssText, this._textArea.style.cssText = "display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;width:100%;height:" + (this._zrHeight - 100) + "px;") + }, + dispose: function() { + window.removeEventListener ? (this._tDom.removeEventListener("click", this._stop), this._tDom.removeEventListener("mousewheel", this._stop), this._tDom.removeEventListener("mousemove", this._stop), this._tDom.removeEventListener("mousedown", this._stop), this._tDom.removeEventListener("mouseup", this._stop), this._tDom.removeEventListener("touchstart", this._stop), this._tDom.removeEventListener("touchmove", this._stop), this._tDom.removeEventListener("touchend", this._stop)) : (this._tDom.detachEvent("onclick", this._stop), this._tDom.detachEvent("onmousewheel", this._stop), this._tDom.detachEvent("onmousemove", this._stop), this._tDom.detachEvent("onmousedown", this._stop), this._tDom.detachEvent("onmouseup", this._stop)), this._buttonRefresh.onclick = null, this._buttonClose.onclick = null, this._hasShow && (this._tDom.removeChild(this._textArea), this._tDom.removeChild(this._buttonRefresh), this._tDom.removeChild(this._buttonClose)), this._textArea = null, this._buttonRefresh = null, this._buttonClose = null, this.dom.firstChild.removeChild(this._tDom), this._tDom = null + } + }, j.inherits(p, m), l("../component").define("dataView", p), p + }), d("echarts/util/shape/Cross", ["require", "zrender/shape/Base", "zrender/shape/Line", "zrender/tool/util", "./normalIsCover"], function(l) { + function p(a) { + m.call(this, a) + } + var m = l("zrender/shape/Base"), + o = l("zrender/shape/Line"), + j = l("zrender/tool/util"); + return p.prototype = { + type: "cross", + buildPath: function(a, q) { + var n = q.rect; + q.xStart = n.x, q.xEnd = n.x + n.width, q.yStart = q.yEnd = q.y, o.prototype.buildPath(a, q), q.xStart = q.xEnd = q.x, q.yStart = n.y, q.yEnd = n.y + n.height, o.prototype.buildPath(a, q) + }, + getRect: function(a) { + return a.rect + }, + isCover: l("./normalIsCover") + }, j.inherits(p, m), p + }), d("zrender/shape/Sector", ["require", "../tool/math", "../tool/computeBoundingBox", "../tool/vector", "./Base", "../tool/util"], function(m) { + var z = m("../tool/math"), + q = m("../tool/computeBoundingBox"), + v = m("../tool/vector"), + j = m("./Base"), + w = v.create(), + x = v.create(), + y = v.create(), + u = v.create(), + p = function(a) { + j.call(this, a) + }; + return p.prototype = { + type: "sector", + buildPath: function(A, C) { + var F = C.x, + t = C.y, + G = C.r0 || 0, + H = C.r, + I = C.startAngle, + D = C.endAngle, + B = C.clockWise || !1; + I = z.degreeToRadian(I), D = z.degreeToRadian(D), B || (I = -I, D = -D); + var E = z.cos(I), + J = z.sin(I); + A.moveTo(E * G + F, J * G + t), A.lineTo(E * H + F, J * H + t), A.arc(F, t, H, I, D, !B), A.lineTo(z.cos(D) * G + F, z.sin(D) * G + t), 0 !== G && A.arc(F, t, G, D, I, B), A.closePath() + }, + getRect: function(n) { + if (n.__rect) { + return n.__rect + } + var i = n.x, + o = n.y, + r = n.r0 || 0, + A = n.r, + t = z.degreeToRadian(n.startAngle), + l = z.degreeToRadian(n.endAngle), + s = n.clockWise; + return s || (t = -t, l = -l), r > 1 ? q.arc(i, o, r, t, l, !s, w, y) : (w[0] = y[0] = i, w[1] = y[1] = o), q.arc(i, o, A, t, l, !s, x, u), v.min(w, w, x), v.max(y, y, u), n.__rect = { + x: w[0], + y: w[1], + width: y[0] - w[0], + height: y[1] - w[1] + }, n.__rect + } + }, m("../tool/util").inherits(p, j), p + }), d("echarts/util/shape/Candle", ["require", "zrender/shape/Base", "zrender/tool/util", "./normalIsCover"], function(a) { + function m(i) { + j.call(this, i) + } + var j = a("zrender/shape/Base"), + l = a("zrender/tool/util"); + return m.prototype = { + type: "candle", + _numberOrder: function(i, n) { + return n - i + }, + buildPath: function(n, p) { + var o = l.clone(p.y).sort(this._numberOrder); + n.moveTo(p.x, o[3]), n.lineTo(p.x, o[2]), n.moveTo(p.x - p.width / 2, o[2]), n.rect(p.x - p.width / 2, o[2], p.width, o[1] - o[2]), n.moveTo(p.x, o[1]), n.lineTo(p.x, o[0]) + }, + getRect: function(n) { + if (!n.__rect) { + var p = 0; + ("stroke" == n.brushType || "fill" == n.brushType) && (p = n.lineWidth || 1); + var o = l.clone(n.y).sort(this._numberOrder); + n.__rect = { + x: Math.round(n.x - n.width / 2 - p / 2), + y: Math.round(o[3] - p / 2), + width: n.width + p, + height: o[0] - o[3] + p + } + } + return n.__rect + }, + isCover: a("./normalIsCover") + }, l.inherits(m, j), m + }), d("zrender/tool/computeBoundingBox", ["require", "./vector", "./curve"], function(m) { + function z(B, I, C) { + if (0 !== B.length) { + for (var E = B[0][0], A = B[0][0], F = B[0][1], G = B[0][1], H = 1; H < B.length; H++) { + var D = B[H]; + D[0] < E && (E = D[0]), D[0] > A && (A = D[0]), D[1] < F && (F = D[1]), D[1] > G && (G = D[1]) + } + I[0] = E, I[1] = F, C[0] = A, C[1] = G + } + } + + function q(B, J, D, G, o, H) { + var I = []; + w.cubicExtrema(B[0], J[0], D[0], G[0], I); + for (var E = 0; E < I.length; E++) { + I[E] = w.cubicAt(B[0], J[0], D[0], G[0], I[E]) + } + var C = []; + w.cubicExtrema(B[1], J[1], D[1], G[1], C); + for (var E = 0; E < C.length; E++) { + C[E] = w.cubicAt(B[1], J[1], D[1], G[1], C[E]) + } + I.push(B[0], G[0]), C.push(B[1], G[1]); + var F = Math.min.apply(null, I), + L = Math.max.apply(null, I), + K = Math.min.apply(null, C), + A = Math.max.apply(null, C); + o[0] = F, o[1] = K, H[0] = L, H[1] = A + } + + function v(B, J, D, G, o) { + var H = w.quadraticExtremum(B[0], J[0], D[0]), + I = w.quadraticExtremum(B[1], J[1], D[1]); + H = Math.max(Math.min(H, 1), 0), I = Math.max(Math.min(I, 1), 0); + var E = 1 - H, + C = 1 - I, + F = E * E * B[0] + 2 * E * H * J[0] + H * H * D[0], + L = E * E * B[1] + 2 * E * H * J[1] + H * H * D[1], + K = C * C * B[0] + 2 * C * I * J[0] + I * I * D[0], + A = C * C * B[1] + 2 * C * I * J[1] + I * I * D[1]; + G[0] = Math.min(B[0], D[0], F, K), G[1] = Math.min(B[1], D[1], L, A), o[0] = Math.max(B[0], D[0], F, K), o[1] = Math.max(B[1], D[1], L, A) + } + var j = m("./vector"), + w = m("./curve"), + x = j.create(), + y = j.create(), + u = j.create(), + p = function(l, D, s, B, C, r, A, F) { + if (Math.abs(B - C) >= 2 * Math.PI) { + return A[0] = l - s, A[1] = D - s, F[0] = l + s, void(F[1] = D + s) + } + if (x[0] = Math.cos(B) * s + l, x[1] = Math.sin(B) * s + D, y[0] = Math.cos(C) * s + l, y[1] = Math.sin(C) * s + D, j.min(A, x, y), j.max(F, x, y), B %= 2 * Math.PI, 0 > B && (B += 2 * Math.PI), C %= 2 * Math.PI, 0 > C && (C += 2 * Math.PI), B > C && !r ? C += 2 * Math.PI : C > B && r && (B += 2 * Math.PI), r) { + var E = C; + C = B, B = E + } + for (var a = 0; C > a; a += Math.PI / 2) { + a > B && (u[0] = Math.cos(a) * s + l, u[1] = Math.sin(a) * s + D, j.min(A, u, A), j.max(F, u, F)) + } + }; + return z.cubeBezier = q, z.quadraticBezier = v, z.arc = p, z + }), d("echarts/util/shape/Chain", ["require", "zrender/shape/Base", "./Icon", "zrender/shape/util/dashedLineTo", "zrender/tool/util", "zrender/tool/matrix"], function(l) { + function u(a) { + m.call(this, a) + } + var m = l("zrender/shape/Base"), + p = l("./Icon"), + j = l("zrender/shape/util/dashedLineTo"), + q = l("zrender/tool/util"), + s = l("zrender/tool/matrix"); + return u.prototype = { + type: "chain", + brush: function(a, o) { + var n = this.style; + o && (n = this.getHighlightStyle(n, this.highlightStyle || {})), a.save(), this.setContext(a, n), this.setTransform(a), a.save(), a.beginPath(), this.buildLinePath(a, n), a.stroke(), a.restore(), this.brushSymbol(a, n), a.restore() + }, + buildLinePath: function(a, A) { + var v = A.x, + w = A.y + 5, + x = A.width, + y = A.height / 2 - 10; + if (a.moveTo(v, w), a.lineTo(v, w + y), a.moveTo(v + x, w), a.lineTo(v + x, w + y), a.moveTo(v, w + y / 2), A.lineType && "solid" != A.lineType) { + if ("dashed" == A.lineType || "dotted" == A.lineType) { + var z = (A.lineWidth || 1) * ("dashed" == A.lineType ? 5 : 1); + j(a, v, w + y / 2, v + x, w + y / 2, z) + } + } else { + a.lineTo(v + x, w + y / 2) + } + }, + brushSymbol: function(v, B) { + var w = B.y + B.height / 4; + v.save(); + for (var n, y = B.chainPoint, z = 0, A = y.length; A > z; z++) { + if (n = y[z], "none" != n.symbol) { + v.beginPath(); + var x = n.symbolSize; + p.prototype.buildPath(v, { + iconType: n.symbol, + x: n.x - x, + y: w - x, + width: 2 * x, + height: 2 * x, + n: n.n + }), v.fillStyle = n.isEmpty ? "#fff" : B.strokeColor, v.closePath(), v.fill(), v.stroke() + } + n.showLabel && (v.font = n.textFont, v.fillStyle = n.textColor, v.textAlign = n.textAlign, v.textBaseline = n.textBaseline, n.rotation ? (v.save(), this._updateTextTransform(v, n.rotation), v.fillText(n.name, n.textX, n.textY), v.restore()) : v.fillText(n.name, n.textX, n.textY)) + } + v.restore() + }, + _updateTextTransform: function(r, x) { + var v = s.create(); + if (s.identity(v), 0 !== x[0]) { + var w = x[1] || 0, + o = x[2] || 0; + (w || o) && s.translate(v, v, [-w, -o]), s.rotate(v, v, x[0]), (w || o) && s.translate(v, v, [w, o]) + } + r.transform.apply(r, v) + }, + isCover: function(a, o) { + var n = this.style; + return a >= n.x && a <= n.x + n.width && o >= n.y && o <= n.y + n.height ? !0 : !1 + } + }, q.inherits(u, m), u + }), d("zrender/shape/Ring", ["require", "./Base", "../tool/util"], function(a) { + var l = a("./Base"), + j = function(i) { + l.call(this, i) + }; + return j.prototype = { + type: "ring", + buildPath: function(i, m) { + i.arc(m.x, m.y, m.r, 0, 2 * Math.PI, !1), i.moveTo(m.x + m.r0, m.y), i.arc(m.x, m.y, m.r0, 0, 2 * Math.PI, !0) + }, + getRect: function(i) { + if (i.__rect) { + return i.__rect + } + var m; + return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = { + x: Math.round(i.x - i.r - m / 2), + y: Math.round(i.y - i.r - m / 2), + width: 2 * i.r + m, + height: 2 * i.r + m + }, i.__rect + } + }, a("../tool/util").inherits(j, l), j + }), d("echarts/component/axis", ["require", "./base", "zrender/shape/Line", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/color", "./categoryAxis", "./valueAxis", "../component"], function(l) { + function w(s, A, x, i, y, z) { + m.call(this, s, A, x, i, y), this.axisType = z, this._axisList = [], this.refresh(i) + } + var m = l("./base"), + p = l("zrender/shape/Line"), + j = l("../config"), + q = l("../util/ecData"), + u = l("zrender/tool/util"), + v = l("zrender/tool/color"); + return w.prototype = { + type: j.COMPONENT_TYPE_AXIS, + axisBase: { + _buildAxisLine: function() { + var r = this.option.axisLine.lineStyle.width, + y = r / 2, + s = { + _axisShape: "axisLine", + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: !1 + }, + n = this.grid; + switch (this.option.position) { + case "left": + s.style = { + xStart: n.getX() - y, + yStart: n.getYend(), + xEnd: n.getX() - y, + yEnd: n.getY(), + lineCap: "round" + }; + break; + case "right": + s.style = { + xStart: n.getXend() + y, + yStart: n.getYend(), + xEnd: n.getXend() + y, + yEnd: n.getY(), + lineCap: "round" + }; + break; + case "bottom": + s.style = { + xStart: n.getX(), + yStart: n.getYend() + y, + xEnd: n.getXend(), + yEnd: n.getYend() + y, + lineCap: "round" + }; + break; + case "top": + s.style = { + xStart: n.getX(), + yStart: n.getY() - y, + xEnd: n.getXend(), + yEnd: n.getY() - y, + lineCap: "round" + } + } + var x = s.style; + "" !== this.option.name && (x.text = this.option.name, x.textPosition = this.option.nameLocation, x.textFont = this.getFont(this.option.nameTextStyle), this.option.nameTextStyle.align && (x.textAlign = this.option.nameTextStyle.align), this.option.nameTextStyle.baseline && (x.textBaseline = this.option.nameTextStyle.baseline), this.option.nameTextStyle.color && (x.textColor = this.option.nameTextStyle.color)), x.strokeColor = this.option.axisLine.lineStyle.color, x.lineWidth = r, this.isHorizontal() ? x.yStart = x.yEnd = this.subPixelOptimize(x.yEnd, r) : x.xStart = x.xEnd = this.subPixelOptimize(x.xEnd, r), x.lineType = this.option.axisLine.lineStyle.type, s = new p(s), this.shapeList.push(s) + }, + _axisLabelClickable: function(a, i) { + return a ? (q.pack(i, void 0, -1, void 0, -1, i.style.text), i.hoverable = !0, i.clickable = !0, i.highlightStyle = { + color: v.lift(i.style.color, 1), + brushType: "fill" + }, i) : i + }, + refixAxisShape: function(r, y) { + if (this.option.axisLine.onZero) { + var s; + if (this.isHorizontal() && null != y) { + for (var x = 0, o = this.shapeList.length; o > x; x++) { + "axisLine" === this.shapeList[x]._axisShape ? (this.shapeList[x].style.yStart = this.shapeList[x].style.yEnd = this.subPixelOptimize(y, this.shapeList[x].stylelineWidth), this.zr.modShape(this.shapeList[x].id)) : "axisTick" === this.shapeList[x]._axisShape && (s = this.shapeList[x].style.yEnd - this.shapeList[x].style.yStart, this.shapeList[x].style.yStart = y - s, this.shapeList[x].style.yEnd = y, this.zr.modShape(this.shapeList[x].id)) + } + } + if (!this.isHorizontal() && null != r) { + for (var x = 0, o = this.shapeList.length; o > x; x++) { + "axisLine" === this.shapeList[x]._axisShape ? (this.shapeList[x].style.xStart = this.shapeList[x].style.xEnd = this.subPixelOptimize(r, this.shapeList[x].stylelineWidth), this.zr.modShape(this.shapeList[x].id)) : "axisTick" === this.shapeList[x]._axisShape && (s = this.shapeList[x].style.xEnd - this.shapeList[x].style.xStart, this.shapeList[x].style.xStart = r, this.shapeList[x].style.xEnd = r + s, this.zr.modShape(this.shapeList[x].id)) + } + } + } + }, + getPosition: function() { + return this.option.position + }, + isHorizontal: function() { + return "bottom" === this.option.position || "top" === this.option.position + } + }, + reformOption: function(a) { + if (!a || a instanceof Array && 0 === a.length ? a = [{ + type: j.COMPONENT_TYPE_AXIS_VALUE + }] : a instanceof Array || (a = [a]), a.length > 2 && (a = [a[0], a[1]]), "xAxis" === this.axisType) { + (!a[0].position || "bottom" != a[0].position && "top" != a[0].position) && (a[0].position = "bottom"), a.length > 1 && (a[1].position = "bottom" === a[0].position ? "top" : "bottom"); + for (var o = 0, n = a.length; n > o; o++) { + a[o].type = a[o].type || "category", a[o].xAxisIndex = o, a[o].yAxisIndex = -1 + } + } else { + (!a[0].position || "left" != a[0].position && "right" != a[0].position) && (a[0].position = "left"), a.length > 1 && (a[1].position = "left" === a[0].position ? "right" : "left"); + for (var o = 0, n = a.length; n > o; o++) { + a[o].type = a[o].type || "value", a[o].xAxisIndex = -1, a[o].yAxisIndex = o + } + } + return a + }, + refresh: function(A) { + var s; + A && (this.option = A, "xAxis" === this.axisType ? (this.option.xAxis = this.reformOption(A.xAxis), s = this.option.xAxis) : (this.option.yAxis = this.reformOption(A.yAxis), s = this.option.yAxis), this.series = A.series); + for (var x = l("./categoryAxis"), e = l("./valueAxis"), y = Math.max(s && s.length || 0, this._axisList.length), z = 0; y > z; z++) { + !this._axisList[z] || !A || s[z] && this._axisList[z].type == s[z].type || (this._axisList[z].dispose && this._axisList[z].dispose(), this._axisList[z] = !1), this._axisList[z] ? this._axisList[z].refresh && this._axisList[z].refresh(s ? s[z] : !1, this.series) : s && s[z] && (this._axisList[z] = "category" === s[z].type ? new x(this.ecTheme, this.messageCenter, this.zr, s[z], this.myChart, this.axisBase) : new e(this.ecTheme, this.messageCenter, this.zr, s[z], this.myChart, this.axisBase, this.series)) + } + }, + getAxis: function(a) { + return this._axisList[a] + }, + getAxisCount: function() { + return this._axisList.length + }, + clear: function() { + for (var a = 0, i = this._axisList.length; i > a; a++) { + this._axisList[a].dispose && this._axisList[a].dispose() + } + this._axisList = [] + } + }, u.inherits(w, m), l("../component").define("axis", w), w + }), d("echarts/component/grid", ["require", "./base", "zrender/shape/Rectangle", "../config", "zrender/tool/util", "../component"], function(l) { + function r(s, w, u, i, v) { + m.call(this, s, w, u, i, v), this.refresh(i) + } + var m = l("./base"), + p = l("zrender/shape/Rectangle"), + j = l("../config"); + j.grid = { + zlevel: 0, + z: 0, + x: 80, + y: 60, + x2: 80, + y2: 60, + backgroundColor: "rgba(0,0,0,0)", + borderWidth: 1, + borderColor: "#ccc" + }; + var q = l("zrender/tool/util"); + return r.prototype = { + type: j.COMPONENT_TYPE_GRID, + getX: function() { + return this._x + }, + getY: function() { + return this._y + }, + getWidth: function() { + return this._width + }, + getHeight: function() { + return this._height + }, + getXend: function() { + return this._x + this._width + }, + getYend: function() { + return this._y + this._height + }, + getArea: function() { + return { + x: this._x, + y: this._y, + width: this._width, + height: this._height + } + }, + getBbox: function() { + return [ + [this._x, this._y], + [this.getXend(), this.getYend()] + ] + }, + refixAxisShape: function(a) { + for (var x, s, u, v = a.xAxis._axisList.concat(a.yAxis ? a.yAxis._axisList : []), w = v.length; w--;) { + u = v[w], u.type == j.COMPONENT_TYPE_AXIS_VALUE && u._min < 0 && u._max >= 0 && (u.isHorizontal() ? x = u.getCoord(0) : s = u.getCoord(0)) + } + if ("undefined" != typeof x || "undefined" != typeof s) { + for (w = v.length; w--;) { + v[w].refixAxisShape(x, s) + } + } + }, + refresh: function(o) { + if (o || this._zrWidth != this.zr.getWidth() || this._zrHeight != this.zr.getHeight()) { + this.clear(), this.option = o || this.option, this.option.grid = this.reformOption(this.option.grid); + var u = this.option.grid; + this._zrWidth = this.zr.getWidth(), this._zrHeight = this.zr.getHeight(), this._x = this.parsePercent(u.x, this._zrWidth), this._y = this.parsePercent(u.y, this._zrHeight); + var s = this.parsePercent(u.x2, this._zrWidth), + n = this.parsePercent(u.y2, this._zrHeight); + this._width = "undefined" == typeof u.width ? this._zrWidth - this._x - s : this.parsePercent(u.width, this._zrWidth), this._width = this._width <= 0 ? 10 : this._width, this._height = "undefined" == typeof u.height ? this._zrHeight - this._y - n : this.parsePercent(u.height, this._zrHeight), this._height = this._height <= 0 ? 10 : this._height, this._x = this.subPixelOptimize(this._x, u.borderWidth), this._y = this.subPixelOptimize(this._y, u.borderWidth), this.shapeList.push(new p({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this._x, + y: this._y, + width: this._width, + height: this._height, + brushType: u.borderWidth > 0 ? "both" : "fill", + color: u.backgroundColor, + strokeColor: u.borderColor, + lineWidth: u.borderWidth + } + })), this.zr.addShape(this.shapeList[0]) + } + } + }, q.inherits(r, m), l("../component").define("grid", r), r + }), d("echarts/component/dataZoom", ["require", "./base", "zrender/shape/Rectangle", "zrender/shape/Polygon", "../util/shape/Icon", "../config", "../util/date", "zrender/tool/util", "../component"], function(m) { + function y(l, B, s, i, z) { + p.call(this, l, B, s, i, z); + var A = this; + A._ondrift = function(a, n) { + return A.__ondrift(this, a, n) + }, A._ondragend = function() { + return A.__ondragend() + }, this._fillerSize = 30, this._isSilence = !1, this._zoom = {}, this.option.dataZoom = this.reformOption(this.option.dataZoom), this.zoomOption = this.option.dataZoom, this._handleSize = this.zoomOption.handleSize, this.myChart.canvasSupported || (this.zoomOption.realtime = !1), this._location = this._getLocation(), this._zoom = this._getZoom(), this._backupData(), this.option.dataZoom.show && this._buildShape(), this._syncData() + } + var p = m("./base"), + u = m("zrender/shape/Rectangle"), + j = m("zrender/shape/Polygon"), + v = m("../util/shape/Icon"), + w = m("../config"); + w.dataZoom = { + zlevel: 0, + z: 4, + show: !1, + orient: "horizontal", + backgroundColor: "rgba(0,0,0,0)", + dataBackgroundColor: "#eee", + fillerColor: "rgba(144,197,237,0.2)", + handleColor: "rgba(70,130,180,0.8)", + handleSize: 8, + showDetail: !0, + realtime: !0 + }; + var x = m("../util/date"), + q = m("zrender/tool/util"); + return y.prototype = { + type: w.COMPONENT_TYPE_DATAZOOM, + _buildShape: function() { + this._buildBackground(), this._buildFiller(), this._buildHandle(), this._buildFrame(); + for (var a = 0, i = this.shapeList.length; i > a; a++) { + this.zr.addShape(this.shapeList[a]) + } + this._syncFrameShape() + }, + _getLocation: function() { + var o, z, r, s, l = this.component.grid; + return "horizontal" == this.zoomOption.orient ? (r = this.zoomOption.width || l.getWidth(), s = this.zoomOption.height || this._fillerSize, o = null != this.zoomOption.x ? this.zoomOption.x : l.getX(), z = null != this.zoomOption.y ? this.zoomOption.y : this.zr.getHeight() - s - 2) : (r = this.zoomOption.width || this._fillerSize, s = this.zoomOption.height || l.getHeight(), o = null != this.zoomOption.x ? this.zoomOption.x : 2, z = null != this.zoomOption.y ? this.zoomOption.y : l.getY()), { + x: o, + y: z, + width: r, + height: s + } + }, + _getZoom: function() { + var B = this.option.series, + K = this.option.xAxis; + !K || K instanceof Array || (K = [K], this.option.xAxis = K); + var D = this.option.yAxis; + !D || D instanceof Array || (D = [D], this.option.yAxis = D); + var G, r, H = [], + J = this.zoomOption.xAxisIndex; + if (K && null == J) { + G = []; + for (var E = 0, C = K.length; C > E; E++) { + ("category" == K[E].type || null == K[E].type) && G.push(E) + } + } else { + G = J instanceof Array ? J : null != J ? [J] : [] + } + if (J = this.zoomOption.yAxisIndex, D && null == J) { + r = []; + for (var E = 0, C = D.length; C > E; E++) { + "category" == D[E].type && r.push(E) + } + } else { + r = J instanceof Array ? J : null != J ? [J] : [] + } + for (var F, E = 0, C = B.length; C > E; E++) { + if (F = B[E], F.type == w.CHART_TYPE_LINE || F.type == w.CHART_TYPE_BAR || F.type == w.CHART_TYPE_SCATTER || F.type == w.CHART_TYPE_K) { + for (var M = 0, L = G.length; L > M; M++) { + if (G[M] == (F.xAxisIndex || 0)) { + H.push(E); + break + } + } + for (var M = 0, L = r.length; L > M; M++) { + if (r[M] == (F.yAxisIndex || 0)) { + H.push(E); + break + } + } + null == this.zoomOption.xAxisIndex && null == this.zoomOption.yAxisIndex && F.data && this.getDataFromOption(F.data[0]) instanceof Array && (F.type == w.CHART_TYPE_SCATTER || F.type == w.CHART_TYPE_LINE || F.type == w.CHART_TYPE_BAR) && H.push(E) + } + } + var A = null != this._zoom.start ? this._zoom.start : null != this.zoomOption.start ? this.zoomOption.start : 0, + I = null != this._zoom.end ? this._zoom.end : null != this.zoomOption.end ? this.zoomOption.end : 100; + A > I && (A += I, I = A - I, A -= I); + var z = Math.round((I - A) / 100 * ("horizontal" == this.zoomOption.orient ? this._location.width : this._location.height)); + return { + start: A, + end: I, + start2: 0, + end2: 100, + size: z, + xAxisIndex: G, + yAxisIndex: r, + seriesIndex: H, + scatterMap: this._zoom.scatterMap || {} + } + }, + _backupData: function() { + this._originalData = { + xAxis: {}, + yAxis: {}, + series: {} + }; + for (var z = this.option.xAxis, G = this._zoom.xAxisIndex, B = 0, D = G.length; D > B; B++) { + this._originalData.xAxis[G[B]] = z[G[B]].data + } + for (var r = this.option.yAxis, E = this._zoom.yAxisIndex, B = 0, D = E.length; D > B; B++) { + this._originalData.yAxis[E[B]] = r[E[B]].data + } + for (var F, C = this.option.series, A = this._zoom.seriesIndex, B = 0, D = A.length; D > B; B++) { + F = C[A[B]], this._originalData.series[A[B]] = F.data, F.data && this.getDataFromOption(F.data[0]) instanceof Array && (F.type == w.CHART_TYPE_SCATTER || F.type == w.CHART_TYPE_LINE || F.type == w.CHART_TYPE_BAR) && (this._backupScale(), this._calculScatterMap(A[B])) + } + }, + _calculScatterMap: function(B) { + this._zoom.scatterMap = this._zoom.scatterMap || {}, this._zoom.scatterMap[B] = this._zoom.scatterMap[B] || {}; + var l = m("../component"), + s = l.get("axis"), + e = q.clone(this.option.xAxis); + "category" == e[0].type && (e[0].type = "value"), e[1] && "category" == e[1].type && (e[1].type = "value"); + var z = new s(this.ecTheme, null, !1, { + xAxis: e, + series: this.option.series + }, this, "xAxis"), + A = this.option.series[B].xAxisIndex || 0; + this._zoom.scatterMap[B].x = z.getAxis(A).getExtremum(), z.dispose(), e = q.clone(this.option.yAxis), "category" == e[0].type && (e[0].type = "value"), e[1] && "category" == e[1].type && (e[1].type = "value"), z = new s(this.ecTheme, null, !1, { + yAxis: e, + series: this.option.series + }, this, "yAxis"), A = this.option.series[B].yAxisIndex || 0, this._zoom.scatterMap[B].y = z.getAxis(A).getExtremum(), z.dispose() + }, + _buildBackground: function() { + var z = this._location.width, + K = this._location.height; + this.shapeList.push(new u({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this._location.x, + y: this._location.y, + width: z, + height: K, + color: this.zoomOption.backgroundColor + } + })); + for (var D = 0, H = this._originalData.xAxis, J = this._zoom.xAxisIndex, F = 0, C = J.length; C > F; F++) { + D = Math.max(D, H[J[F]].length) + } + for (var G = this._originalData.yAxis, N = this._zoom.yAxisIndex, F = 0, C = N.length; C > F; F++) { + D = Math.max(D, G[N[F]].length) + } + for (var M, r = this._zoom.seriesIndex[0], I = this._originalData.series[r], n = Number.MIN_VALUE, L = Number.MAX_VALUE, F = 0, C = I.length; C > F; F++) { + M = this.getDataFromOption(I[F], 0), this.option.series[r].type == w.CHART_TYPE_K && (M = M[1]), isNaN(M) && (M = 0), n = Math.max(n, M), L = Math.min(L, M) + } + var O = n - L, + B = [], + a = z / (D - (D > 1 ? 1 : 0)), + A = K / (D - (D > 1 ? 1 : 0)), + E = 1; + "horizontal" == this.zoomOption.orient && 1 > a ? E = Math.floor(3 * D / z) : "vertical" == this.zoomOption.orient && 1 > A && (E = Math.floor(3 * D / K)); + for (var F = 0, C = D; C > F; F += E) { + M = this.getDataFromOption(I[F], 0), this.option.series[r].type == w.CHART_TYPE_K && (M = M[1]), isNaN(M) && (M = 0), B.push("horizontal" == this.zoomOption.orient ? [this._location.x + a * F, this._location.y + K - 1 - Math.round((M - L) / O * (K - 10))] : [this._location.x + 1 + Math.round((M - L) / O * (z - 10)), this._location.y + A * (C - F - 1)]) + } + "horizontal" == this.zoomOption.orient ? (B.push([this._location.x + z, this._location.y + K]), B.push([this._location.x, this._location.y + K])) : (B.push([this._location.x, this._location.y]), B.push([this._location.x, this._location.y + K])), this.shapeList.push(new j({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + pointList: B, + color: this.zoomOption.dataBackgroundColor + }, + hoverable: !1 + })) + }, + _buildFiller: function() { + this._fillerShae = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + draggable: !0, + ondrift: this._ondrift, + ondragend: this._ondragend, + _type: "filler" + }, this._fillerShae.style = "horizontal" == this.zoomOption.orient ? { + x: this._location.x + Math.round(this._zoom.start / 100 * this._location.width) + this._handleSize, + y: this._location.y, + width: this._zoom.size - 2 * this._handleSize, + height: this._location.height, + color: this.zoomOption.fillerColor, + text: ":::", + textPosition: "inside" + } : { + x: this._location.x, + y: this._location.y + Math.round(this._zoom.start / 100 * this._location.height) + this._handleSize, + width: this._location.width, + height: this._zoom.size - 2 * this._handleSize, + color: this.zoomOption.fillerColor, + text: "::", + textPosition: "inside" + }, this._fillerShae.highlightStyle = { + brushType: "fill", + color: "rgba(0,0,0,0)" + }, this._fillerShae = new u(this._fillerShae), this.shapeList.push(this._fillerShae) + }, + _buildHandle: function() { + var a = this.zoomOption.showDetail ? this._getDetail() : { + start: "", + end: "" + }; + this._startShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + draggable: !0, + style: { + iconType: "rectangle", + x: this._location.x, + y: this._location.y, + width: this._handleSize, + height: this._handleSize, + color: this.zoomOption.handleColor, + text: "=", + textPosition: "inside" + }, + highlightStyle: { + text: a.start, + brushType: "fill", + textPosition: "left" + }, + ondrift: this._ondrift, + ondragend: this._ondragend + }, "horizontal" == this.zoomOption.orient ? (this._startShape.style.height = this._location.height, this._endShape = q.clone(this._startShape), this._startShape.style.x = this._fillerShae.style.x - this._handleSize, this._endShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width, this._endShape.highlightStyle.text = a.end, this._endShape.highlightStyle.textPosition = "right") : (this._startShape.style.width = this._location.width, this._endShape = q.clone(this._startShape), this._startShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height, this._startShape.highlightStyle.textPosition = "bottom", this._endShape.style.y = this._fillerShae.style.y - this._handleSize, this._endShape.highlightStyle.text = a.end, this._endShape.highlightStyle.textPosition = "top"), this._startShape = new v(this._startShape), this._endShape = new v(this._endShape), this.shapeList.push(this._startShape), this.shapeList.push(this._endShape) + }, + _buildFrame: function() { + var a = this.subPixelOptimize(this._location.x, 1), + i = this.subPixelOptimize(this._location.y, 1); + this._startFrameShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: a, + y: i, + width: this._location.width - (a > this._location.x ? 1 : 0), + height: this._location.height - (i > this._location.y ? 1 : 0), + lineWidth: 1, + brushType: "stroke", + strokeColor: this.zoomOption.handleColor + } + }, this._endFrameShape = q.clone(this._startFrameShape), this._startFrameShape = new u(this._startFrameShape), this._endFrameShape = new u(this._endFrameShape), this.shapeList.push(this._startFrameShape), this.shapeList.push(this._endFrameShape) + }, + _syncHandleShape: function() { + "horizontal" == this.zoomOption.orient ? (this._startShape.style.x = this._fillerShae.style.x - this._handleSize, this._endShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width, this._zoom.start = (this._startShape.style.x - this._location.x) / this._location.width * 100, this._zoom.end = (this._endShape.style.x + this._handleSize - this._location.x) / this._location.width * 100) : (this._startShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height, this._endShape.style.y = this._fillerShae.style.y - this._handleSize, this._zoom.start = (this._location.y + this._location.height - this._startShape.style.y) / this._location.height * 100, this._zoom.end = (this._location.y + this._location.height - this._endShape.style.y - this._handleSize) / this._location.height * 100), this.zr.modShape(this._startShape.id), this.zr.modShape(this._endShape.id), this._syncFrameShape(), this.zr.refreshNextFrame() + }, + _syncFillerShape: function() { + var a, i; + "horizontal" == this.zoomOption.orient ? (a = this._startShape.style.x, i = this._endShape.style.x, this._fillerShae.style.x = Math.min(a, i) + this._handleSize, this._fillerShae.style.width = Math.abs(a - i) - this._handleSize, this._zoom.start = (Math.min(a, i) - this._location.x) / this._location.width * 100, this._zoom.end = (Math.max(a, i) + this._handleSize - this._location.x) / this._location.width * 100) : (a = this._startShape.style.y, i = this._endShape.style.y, this._fillerShae.style.y = Math.min(a, i) + this._handleSize, this._fillerShae.style.height = Math.abs(a - i) - this._handleSize, this._zoom.start = (this._location.y + this._location.height - Math.max(a, i)) / this._location.height * 100, this._zoom.end = (this._location.y + this._location.height - Math.min(a, i) - this._handleSize) / this._location.height * 100), this.zr.modShape(this._fillerShae.id), this._syncFrameShape(), this.zr.refreshNextFrame() + }, + _syncFrameShape: function() { + "horizontal" == this.zoomOption.orient ? (this._startFrameShape.style.width = this._fillerShae.style.x - this._location.x, this._endFrameShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width, this._endFrameShape.style.width = this._location.x + this._location.width - this._endFrameShape.style.x) : (this._startFrameShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height, this._startFrameShape.style.height = this._location.y + this._location.height - this._startFrameShape.style.y, this._endFrameShape.style.height = this._fillerShae.style.y - this._location.y), this.zr.modShape(this._startFrameShape.id), this.zr.modShape(this._endFrameShape.id) + }, + _syncShape: function() { + this.zoomOption.show && ("horizontal" == this.zoomOption.orient ? (this._startShape.style.x = this._location.x + this._zoom.start / 100 * this._location.width, this._endShape.style.x = this._location.x + this._zoom.end / 100 * this._location.width - this._handleSize, this._fillerShae.style.x = this._startShape.style.x + this._handleSize, this._fillerShae.style.width = this._endShape.style.x - this._startShape.style.x - this._handleSize) : (this._startShape.style.y = this._location.y + this._location.height - this._zoom.start / 100 * this._location.height, this._endShape.style.y = this._location.y + this._location.height - this._zoom.end / 100 * this._location.height - this._handleSize, this._fillerShae.style.y = this._endShape.style.y + this._handleSize, this._fillerShae.style.height = this._startShape.style.y - this._endShape.style.y - this._handleSize), this.zr.modShape(this._startShape.id), this.zr.modShape(this._endShape.id), this.zr.modShape(this._fillerShae.id), this._syncFrameShape(), this.zr.refresh()) + }, + _syncData: function(z) { + var F, A, C, r, D; + for (var E in this._originalData) { + F = this._originalData[E]; + for (var B in F) { + D = F[B], null != D && (r = D.length, A = Math.floor(this._zoom.start / 100 * r), C = Math.ceil(this._zoom.end / 100 * r), this.getDataFromOption(D[0]) instanceof Array && this.option[E][B].type != w.CHART_TYPE_K ? (this._setScale(), this.option[E][B].data = this._synScatterData(B, D)) : this.option[E][B].data = D.slice(A, C)) + } + } + this._isSilence || !this.zoomOption.realtime && !z || this.messageCenter.dispatch(w.EVENT.DATA_ZOOM, null, { + zoom: this._zoom + }, this.myChart) + }, + _synScatterData: function(A, J) { + if (0 === this._zoom.start && 100 == this._zoom.end && 0 === this._zoom.start2 && 100 == this._zoom.end2) { + return J + } + var C, F, z, G, H, I = [], + D = this._zoom.scatterMap[A]; + "horizontal" == this.zoomOption.orient ? (C = D.x.max - D.x.min, F = this._zoom.start / 100 * C + D.x.min, z = this._zoom.end / 100 * C + D.x.min, C = D.y.max - D.y.min, G = this._zoom.start2 / 100 * C + D.y.min, H = this._zoom.end2 / 100 * C + D.y.min) : (C = D.x.max - D.x.min, F = this._zoom.start2 / 100 * C + D.x.min, z = this._zoom.end2 / 100 * C + D.x.min, C = D.y.max - D.y.min, G = this._zoom.start / 100 * C + D.y.min, H = this._zoom.end / 100 * C + D.y.min); + var B; + (B = D.x.dataMappingMethods) && (F = B.coord2Value(F), z = B.coord2Value(z)), (B = D.y.dataMappingMethods) && (G = B.coord2Value(G), H = B.coord2Value(H)); + for (var E, L = 0, K = J.length; K > L; L++) { + E = J[L].value || J[L], E[0] >= F && E[0] <= z && E[1] >= G && E[1] <= H && I.push(J[L]) + } + return I + }, + _setScale: function() { + var o = 0 !== this._zoom.start || 100 !== this._zoom.end || 0 !== this._zoom.start2 || 100 !== this._zoom.end2, + z = { + xAxis: this.option.xAxis, + yAxis: this.option.yAxis + }; + for (var r in z) { + for (var s = 0, l = z[r].length; l > s; s++) { + z[r][s].scale = o || z[r][s]._scale + } + } + }, + _backupScale: function() { + var a = { + xAxis: this.option.xAxis, + yAxis: this.option.yAxis + }; + for (var r in a) { + for (var l = 0, o = a[r].length; o > l; l++) { + a[r][l]._scale = a[r][l].scale + } + } + }, + _getDetail: function() { + for (var B = ["xAxis", "yAxis"], K = 0, D = B.length; D > K; K++) { + var G = this._originalData[B[K]]; + for (var s in G) { + var H = G[s]; + if (null != H) { + var J = H.length, + E = Math.floor(this._zoom.start / 100 * J), + C = Math.ceil(this._zoom.end / 100 * J); + return C -= C > 0 ? 1 : 0, { + start: this.getDataFromOption(H[E]), + end: this.getDataFromOption(H[C]) + } + } + } + } + B = "horizontal" == this.zoomOption.orient ? "xAxis" : "yAxis"; + var F = this._zoom.seriesIndex[0], + N = this.option.series[F][B + "Index"] || 0, + M = this.option[B][N].type, + A = this._zoom.scatterMap[F][B.charAt(0)].min, + I = this._zoom.scatterMap[F][B.charAt(0)].max, + z = I - A; + if ("value" == M) { + return { + start: A + z * this._zoom.start / 100, + end: A + z * this._zoom.end / 100 + } + } + if ("time" == M) { + I = A + z * this._zoom.end / 100, A += z * this._zoom.start / 100; + var L = x.getAutoFormatter(A, I).formatter; + return { + start: x.format(L, A), + end: x.format(L, I) + } + } + return { + start: "", + end: "" + } + }, + __ondrift: function(o, z, r) { + this.zoomOption.zoomLock && (o = this._fillerShae); + var s = "filler" == o._type ? this._handleSize : 0; + if ("horizontal" == this.zoomOption.orient ? o.style.x + z - s <= this._location.x ? o.style.x = this._location.x + s : o.style.x + z + o.style.width + s >= this._location.x + this._location.width ? o.style.x = this._location.x + this._location.width - o.style.width - s : o.style.x += z : o.style.y + r - s <= this._location.y ? o.style.y = this._location.y + s : o.style.y + r + o.style.height + s >= this._location.y + this._location.height ? o.style.y = this._location.y + this._location.height - o.style.height - s : o.style.y += r, "filler" == o._type ? this._syncHandleShape() : this._syncFillerShape(), this.zoomOption.realtime && this._syncData(), this.zoomOption.showDetail) { + var l = this._getDetail(); + this._startShape.style.text = this._startShape.highlightStyle.text = l.start, this._endShape.style.text = this._endShape.highlightStyle.text = l.end, this._startShape.style.textPosition = this._startShape.highlightStyle.textPosition, this._endShape.style.textPosition = this._endShape.highlightStyle.textPosition + } + return !0 + }, + __ondragend: function() { + this.zoomOption.showDetail && (this._startShape.style.text = this._endShape.style.text = "=", this._startShape.style.textPosition = this._endShape.style.textPosition = "inside", this.zr.modShape(this._startShape.id), this.zr.modShape(this._endShape.id), this.zr.refreshNextFrame()), this.isDragend = !0 + }, + ondragend: function(a, i) { + this.isDragend && a.target && (!this.zoomOption.realtime && this._syncData(), i.dragOut = !0, i.dragIn = !0, this._isSilence || this.zoomOption.realtime || this.messageCenter.dispatch(w.EVENT.DATA_ZOOM, null, { + zoom: this._zoom + }, this.myChart), i.needRefresh = !1, this.isDragend = !1) + }, + ondataZoom: function(a, i) { + i.needRefresh = !0 + }, + absoluteZoom: function(a) { + this._zoom.start = a.start, this._zoom.end = a.end, this._zoom.start2 = a.start2, this._zoom.end2 = a.end2, this._syncShape(), this._syncData(!0) + }, + rectZoom: function(z) { + if (!z) { + return this._zoom.start = this._zoom.start2 = 0, this._zoom.end = this._zoom.end2 = 100, this._syncShape(), this._syncData(!0), this._zoom + } + var F = this.component.grid.getArea(), + A = { + x: z.x, + y: z.y, + width: z.width, + height: z.height + }; + if (A.width < 0 && (A.x += A.width, A.width = -A.width), A.height < 0 && (A.y += A.height, A.height = -A.height), A.x > F.x + F.width || A.y > F.y + F.height) { + return !1 + } + A.x < F.x && (A.x = F.x), A.x + A.width > F.x + F.width && (A.width = F.x + F.width - A.x), A.y + A.height > F.y + F.height && (A.height = F.y + F.height - A.y); + var B, l = (A.x - F.x) / F.width, + C = 1 - (A.x + A.width - F.x) / F.width, + D = 1 - (A.y + A.height - F.y) / F.height, + E = (A.y - F.y) / F.height; + return "horizontal" == this.zoomOption.orient ? (B = this._zoom.end - this._zoom.start, this._zoom.start += B * l, this._zoom.end -= B * C, B = this._zoom.end2 - this._zoom.start2, this._zoom.start2 += B * D, this._zoom.end2 -= B * E) : (B = this._zoom.end - this._zoom.start, this._zoom.start += B * D, this._zoom.end -= B * E, B = this._zoom.end2 - this._zoom.start2, this._zoom.start2 += B * l, this._zoom.end2 -= B * C), this._syncShape(), this._syncData(!0), this._zoom + }, + syncBackupData: function(A) { + for (var H, B, D = this._originalData.series, z = A.series, E = 0, F = z.length; F > E; E++) { + B = z[E].data || z[E].eventList, H = D[E] ? Math.floor(this._zoom.start / 100 * D[E].length) : 0; + for (var G = 0, C = B.length; C > G; G++) { + D[E] && (D[E][G + H] = B[G]) + } + } + }, + syncOption: function(a) { + this.silence(!0), this.option = a, this.option.dataZoom = this.reformOption(this.option.dataZoom), this.zoomOption = this.option.dataZoom, this.myChart.canvasSupported || (this.zoomOption.realtime = !1), this.clear(), this._location = this._getLocation(), this._zoom = this._getZoom(), this._backupData(), this.option.dataZoom && this.option.dataZoom.show && this._buildShape(), this._syncData(), this.silence(!1) + }, + silence: function(a) { + this._isSilence = a + }, + getRealDataIndex: function(a, n) { + if (!this._originalData || 0 === this._zoom.start && 100 == this._zoom.end) { + return n + } + var l = this._originalData.series; + return l[a] ? Math.floor(this._zoom.start / 100 * l[a].length) + n : -1 + }, + resize: function() { + this.clear(), this._location = this._getLocation(), this._zoom = this._getZoom(), this.option.dataZoom.show && this._buildShape() + } + }, q.inherits(y, p), m("../component").define("dataZoom", y), y + }), d("echarts/component/categoryAxis", ["require", "./base", "zrender/shape/Text", "zrender/shape/Line", "zrender/shape/Rectangle", "../config", "zrender/tool/util", "zrender/tool/area", "../component"], function(m) { + function y(l, D, z, i, A, B) { + if (i.data.length < 1) { + return void console.error("option.data.length < 1.") + } + p.call(this, l, D, z, i, A), this.grid = this.component.grid; + for (var C in B) { + this[C] = B[C] + } + this.refresh(i) + } + var p = m("./base"), + u = m("zrender/shape/Text"), + j = m("zrender/shape/Line"), + v = m("zrender/shape/Rectangle"), + w = m("../config"); + w.categoryAxis = { + zlevel: 0, + z: 0, + show: !0, + position: "bottom", + name: "", + nameLocation: "end", + nameTextStyle: {}, + boundaryGap: !0, + axisLine: { + show: !0, + onZero: !0, + lineStyle: { + color: "#48b", + width: 2, + type: "solid" + } + }, + axisTick: { + show: !0, + interval: "auto", + inside: !1, + length: 5, + lineStyle: { + color: "#333", + width: 1 + } + }, + axisLabel: { + show: !0, + interval: "auto", + rotate: 0, + margin: 8, + textStyle: { + color: "#333" + } + }, + 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)"] + } + } + }; + var x = m("zrender/tool/util"), + q = m("zrender/tool/area"); + return y.prototype = { + type: w.COMPONENT_TYPE_AXIS_CATEGORY, + _getReformedLabel: function(a) { + var n = this.getDataFromOption(this.option.data[a]), + l = this.option.data[a].formatter || this.option.axisLabel.formatter; + return l && ("function" == typeof l ? n = l.call(this.myChart, n) : "string" == typeof l && (n = l.replace("{value}", n))), n + }, + _getInterval: function() { + var z = this.option.axisLabel.interval; + if ("auto" == z) { + var H = this.option.axisLabel.textStyle.fontSize, + B = this.option.data, + D = this.option.data.length; + if (this.isHorizontal()) { + if (D > 3) { + var l, E, G = this.getGap(), + A = !1, + C = Math.floor(0.5 / G); + for (C = 1 > C ? 1 : C, z = Math.floor(15 / G); !A && D > z;) { + z += C, A = !0, l = Math.floor(G * z); + for (var J = Math.floor((D - 1) / z) * z; J >= 0; J -= z) { + if (0 !== this.option.axisLabel.rotate) { + E = H + } else { + if (B[J].textStyle) { + E = q.getTextWidth(this._getReformedLabel(J), this.getFont(x.merge(B[J].textStyle, this.option.axisLabel.textStyle))) + } else { + var I = this._getReformedLabel(J) + "", + s = (I.match(/\w/g) || "").length, + F = I.length - s; + E = s * H * 2 / 3 + F * H + } + } + if (E > l) { + A = !1; + break + } + } + } + } else { + z = 1 + } + } else { + if (D > 3) { + var G = this.getGap(); + for (z = Math.floor(11 / G); H > G * z - 6 && D > z;) { + z++ + } + } else { + z = 1 + } + } + } else { + z = "function" == typeof z ? 1 : z - 0 + 1 + } + return z + }, + _buildShape: function() { + if (this._interval = this._getInterval(), this.option.show) { + this.option.splitArea.show && this._buildSplitArea(), this.option.splitLine.show && this._buildSplitLine(), this.option.axisLine.show && this._buildAxisLine(), this.option.axisTick.show && this._buildAxisTick(), this.option.axisLabel.show && this._buildAxisLabel(); + for (var a = 0, i = this.shapeList.length; i > a; a++) { + this.zr.addShape(this.shapeList[a]) + } + } + }, + _buildAxisTick: function() { + var A, K = this.option.data, + C = this.option.data.length, + F = this.option.axisTick, + G = F.length, + I = F.lineStyle.color, + J = F.lineStyle.width, + D = "function" == typeof F.interval ? F.interval : "auto" == F.interval && "function" == typeof this.option.axisLabel.interval ? this.option.axisLabel.interval : !1, + B = D ? 1 : "auto" == F.interval ? this._interval : F.interval - 0 + 1, + E = F.onGap, + N = E ? this.getGap() / 2 : "undefined" == typeof E && this.option.boundaryGap ? this.getGap() / 2 : 0, + M = N > 0 ? -B : 0; + if (this.isHorizontal()) { + for (var z, H = "bottom" == this.option.position ? F.inside ? this.grid.getYend() - G - 1 : this.grid.getYend() + 1 : F.inside ? this.grid.getY() + 1 : this.grid.getY() - G - 1, a = M; C > a; a += B) { + (!D || D(a, K[a])) && (z = this.subPixelOptimize(this.getCoordByIndex(a) + (a >= 0 ? N : 0), J), A = { + _axisShape: "axisTick", + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + xStart: z, + yStart: H, + xEnd: z, + yEnd: H + G, + strokeColor: I, + lineWidth: J + } + }, this.shapeList.push(new j(A))) + } + } else { + for (var L, O = "left" == this.option.position ? F.inside ? this.grid.getX() + 1 : this.grid.getX() - G - 1 : F.inside ? this.grid.getXend() - G - 1 : this.grid.getXend() + 1, a = M; C > a; a += B) { + (!D || D(a, K[a])) && (L = this.subPixelOptimize(this.getCoordByIndex(a) - (a >= 0 ? N : 0), J), A = { + _axisShape: "axisTick", + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + xStart: O, + yStart: L, + xEnd: O + G, + yEnd: L, + strokeColor: I, + lineWidth: J + } + }, this.shapeList.push(new j(A))) + } + } + }, + _buildAxisLabel: function() { + var A, I, C = this.option.data, + n = this.option.data.length, + F = this.option.axisLabel, + H = F.rotate, + D = F.margin, + B = F.clickable, + E = F.textStyle, + L = "function" == typeof F.interval ? F.interval : !1; + if (this.isHorizontal()) { + var K, z; + "bottom" == this.option.position ? (K = this.grid.getYend() + D, z = "top") : (K = this.grid.getY() - D, z = "bottom"); + for (var G = 0; n > G; G += this._interval) { + L && !L(G, C[G]) || "" === this._getReformedLabel(G) || (I = x.merge(C[G].textStyle || {}, E), A = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: !1, + style: { + x: this.getCoordByIndex(G), + y: K, + color: I.color, + text: this._getReformedLabel(G), + textFont: this.getFont(I), + textAlign: I.align || "center", + textBaseline: I.baseline || z + } + }, H && (A.style.textAlign = H > 0 ? "bottom" == this.option.position ? "right" : "left" : "bottom" == this.option.position ? "left" : "right", A.rotation = [H * Math.PI / 180, A.style.x, A.style.y]), this.shapeList.push(new u(this._axisLabelClickable(B, A)))) + } + } else { + var s, J; + "left" == this.option.position ? (s = this.grid.getX() - D, J = "right") : (s = this.grid.getXend() + D, J = "left"); + for (var G = 0; n > G; G += this._interval) { + L && !L(G, C[G]) || "" === this._getReformedLabel(G) || (I = x.merge(C[G].textStyle || {}, E), A = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: !1, + style: { + x: s, + y: this.getCoordByIndex(G), + color: I.color, + text: this._getReformedLabel(G), + textFont: this.getFont(I), + textAlign: I.align || J, + textBaseline: I.baseline || 0 === G && "" !== this.option.name ? "bottom" : G == n - 1 && "" !== this.option.name ? "top" : "middle" + } + }, H && (A.rotation = [H * Math.PI / 180, A.style.x, A.style.y]), this.shapeList.push(new u(this._axisLabelClickable(B, A)))) + } + } + }, + _buildSplitLine: function() { + var A, L = this.option.data, + D = this.option.data.length, + G = this.option.splitLine, + H = G.lineStyle.type, + J = G.lineStyle.width, + K = G.lineStyle.color; + K = K instanceof Array ? K : [K]; + var E = K.length, + C = "function" == typeof this.option.axisLabel.interval ? this.option.axisLabel.interval : !1, + F = G.onGap, + O = F ? this.getGap() / 2 : "undefined" == typeof F && this.option.boundaryGap ? this.getGap() / 2 : 0; + if (D -= F || "undefined" == typeof F && this.option.boundaryGap ? 1 : 0, this.isHorizontal()) { + for (var N, z = this.grid.getY(), I = this.grid.getYend(), a = 0; D > a; a += this._interval) { + (!C || C(a, L[a])) && (N = this.subPixelOptimize(this.getCoordByIndex(a) + O, J), A = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + xStart: N, + yStart: z, + xEnd: N, + yEnd: I, + strokeColor: K[a / this._interval % E], + lineType: H, + lineWidth: J + } + }, this.shapeList.push(new j(A))) + } + } else { + for (var M, P = this.grid.getX(), B = this.grid.getXend(), a = 0; D > a; a += this._interval) { + (!C || C(a, L[a])) && (M = this.subPixelOptimize(this.getCoordByIndex(a) - O, J), A = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + xStart: P, + yStart: M, + xEnd: B, + yEnd: M, + strokeColor: K[a / this._interval % E], + lineType: H, + lineWidth: J + } + }, this.shapeList.push(new j(A))) + } + } + }, + _buildSplitArea: function() { + var B, L = this.option.data, + E = this.option.splitArea, + H = E.areaStyle.color; + if (H instanceof Array) { + var o = H.length, + J = this.option.data.length, + K = "function" == typeof this.option.axisLabel.interval ? this.option.axisLabel.interval : !1, + F = E.onGap, + D = F ? this.getGap() / 2 : "undefined" == typeof F && this.option.boundaryGap ? this.getGap() / 2 : 0; + if (this.isHorizontal()) { + for (var G, O = this.grid.getY(), N = this.grid.getHeight(), A = this.grid.getX(), I = 0; J >= I; I += this._interval) { + K && !K(I, L[I]) && J > I || (G = J > I ? this.getCoordByIndex(I) + D : this.grid.getXend(), B = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: A, + y: O, + width: G - A, + height: N, + color: H[I / this._interval % o] + } + }, this.shapeList.push(new v(B)), A = G) + } + } else { + for (var z, M = this.grid.getX(), P = this.grid.getWidth(), C = this.grid.getYend(), I = 0; J >= I; I += this._interval) { + K && !K(I, L[I]) && J > I || (z = J > I ? this.getCoordByIndex(I) - D : this.grid.getY(), B = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: M, + y: z, + width: P, + height: C - z, + color: H[I / this._interval % o] + } + }, this.shapeList.push(new v(B)), C = z) + } + } + } else { + B = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this.grid.getX(), + y: this.grid.getY(), + width: this.grid.getWidth(), + height: this.grid.getHeight(), + color: H + } + }, this.shapeList.push(new v(B)) + } + }, + refresh: function(a) { + a && (this.option = this.reformOption(a), this.option.axisLabel.textStyle = this.getTextStyle(this.option.axisLabel.textStyle)), this.clear(), this._buildShape() + }, + getGap: function() { + var a = this.option.data.length, + i = this.isHorizontal() ? this.grid.getWidth() : this.grid.getHeight(); + return this.option.boundaryGap ? i / a : i / (a > 1 ? a - 1 : 1) + }, + getCoord: function(r) { + for (var B = this.option.data, s = B.length, z = this.getGap(), l = this.option.boundaryGap ? z / 2 : 0, A = 0; s > A; A++) { + if (this.getDataFromOption(B[A]) == r) { + return l = this.isHorizontal() ? this.grid.getX() + l : this.grid.getYend() - l + } + l += z + } + }, + getCoordByIndex: function(a) { + if (0 > a) { + return this.isHorizontal() ? this.grid.getX() : this.grid.getYend() + } + if (a > this.option.data.length - 1) { + return this.isHorizontal() ? this.grid.getXend() : this.grid.getY() + } + var n = this.getGap(), + l = this.option.boundaryGap ? n / 2 : 0; + return l += a * n, l = this.isHorizontal() ? this.grid.getX() + l : this.grid.getYend() - l + }, + getNameByIndex: function(a) { + return this.getDataFromOption(this.option.data[a]) + }, + getIndexByName: function(a) { + for (var r = this.option.data, l = r.length, o = 0; l > o; o++) { + if (this.getDataFromOption(r[o]) == a) { + return o + } + } + return -1 + }, + getValueFromCoord: function() { + return "" + }, + isMainAxis: function(a) { + return a % this._interval === 0 + } + }, x.inherits(y, p), m("../component").define("categoryAxis", y), y + }), d("echarts/component/valueAxis", ["require", "./base", "zrender/shape/Text", "zrender/shape/Line", "zrender/shape/Rectangle", "../config", "../util/date", "zrender/tool/util", "../util/smartSteps", "../util/accMath", "../util/smartLogSteps", "../component"], function(m) { + function y(z, F, B, i, C, D, E) { + if (!E || 0 === E.length) { + return void console.err("option.series.length == 0.") + } + p.call(this, z, F, B, i, C), this.series = E, this.grid = this.component.grid; + for (var A in D) { + this[A] = D[A] + } + this.refresh(i, E) + } + var p = m("./base"), + u = m("zrender/shape/Text"), + j = m("zrender/shape/Line"), + v = m("zrender/shape/Rectangle"), + w = m("../config"); + w.valueAxis = { + zlevel: 0, + z: 0, + show: !0, + position: "left", + name: "", + nameLocation: "end", + nameTextStyle: {}, + boundaryGap: [0, 0], + axisLine: { + show: !0, + onZero: !0, + lineStyle: { + color: "#48b", + width: 2, + type: "solid" + } + }, + axisTick: { + show: !1, + inside: !1, + length: 5, + lineStyle: { + color: "#333", + width: 1 + } + }, + axisLabel: { + show: !0, + rotate: 0, + margin: 8, + textStyle: { + color: "#333" + } + }, + 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)"] + } + } + }; + var x = m("../util/date"), + q = m("zrender/tool/util"); + return y.prototype = { + type: w.COMPONENT_TYPE_AXIS_VALUE, + _buildShape: function() { + if (this._hasData = !1, this._calculateValue(), this._hasData && this.option.show) { + this.option.splitArea.show && this._buildSplitArea(), this.option.splitLine.show && this._buildSplitLine(), this.option.axisLine.show && this._buildAxisLine(), this.option.axisTick.show && this._buildAxisTick(), this.option.axisLabel.show && this._buildAxisLabel(); + for (var a = 0, i = this.shapeList.length; i > a; a++) { + this.zr.addShape(this.shapeList[a]) + } + } + }, + _buildAxisTick: function() { + var a, H = this._valueList, + A = this._valueList.length, + D = this.option.axisTick, + E = D.length, + F = D.lineStyle.color, + G = D.lineStyle.width; + if (this.isHorizontal()) { + for (var B, z = "bottom" === this.option.position ? D.inside ? this.grid.getYend() - E - 1 : this.grid.getYend() + 1 : D.inside ? this.grid.getY() + 1 : this.grid.getY() - E - 1, C = 0; A > C; C++) { + B = this.subPixelOptimize(this.getCoord(H[C]), G), a = { + _axisShape: "axisTick", + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + xStart: B, + yStart: z, + xEnd: B, + yEnd: z + E, + strokeColor: F, + lineWidth: G + } + }, this.shapeList.push(new j(a)) + } + } else { + for (var J, I = "left" === this.option.position ? D.inside ? this.grid.getX() + 1 : this.grid.getX() - E - 1 : D.inside ? this.grid.getXend() - E - 1 : this.grid.getXend() + 1, C = 0; A > C; C++) { + J = this.subPixelOptimize(this.getCoord(H[C]), G), a = { + _axisShape: "axisTick", + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + xStart: I, + yStart: J, + xEnd: I + E, + yEnd: J, + strokeColor: F, + lineWidth: G + } + }, this.shapeList.push(new j(a)) + } + } + }, + _buildAxisLabel: function() { + var z, H = this._valueList, + B = this._valueList.length, + n = this.option.axisLabel.rotate, + E = this.option.axisLabel.margin, + F = this.option.axisLabel.clickable, + G = this.option.axisLabel.textStyle; + if (this.isHorizontal()) { + var C, A; + "bottom" === this.option.position ? (C = this.grid.getYend() + E, A = "top") : (C = this.grid.getY() - E, A = "bottom"); + for (var D = 0; B > D; D++) { + z = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: !1, + style: { + x: this.getCoord(H[D]), + y: C, + color: "function" == typeof G.color ? G.color(H[D]) : G.color, + text: this._valueLabel[D], + textFont: this.getFont(G), + textAlign: G.align || "center", + textBaseline: G.baseline || A + } + }, n && (z.style.textAlign = n > 0 ? "bottom" === this.option.position ? "right" : "left" : "bottom" === this.option.position ? "left" : "right", z.rotation = [n * Math.PI / 180, z.style.x, z.style.y]), this.shapeList.push(new u(this._axisLabelClickable(F, z))) + } + } else { + var J, I; + "left" === this.option.position ? (J = this.grid.getX() - E, I = "right") : (J = this.grid.getXend() + E, I = "left"); + for (var D = 0; B > D; D++) { + z = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 3, + hoverable: !1, + style: { + x: J, + y: this.getCoord(H[D]), + color: "function" == typeof G.color ? G.color(H[D]) : G.color, + text: this._valueLabel[D], + textFont: this.getFont(G), + textAlign: G.align || I, + textBaseline: G.baseline || (0 === D && "" !== this.option.name ? "bottom" : D === B - 1 && "" !== this.option.name ? "top" : "middle") + } + }, n && (z.rotation = [n * Math.PI / 180, z.style.x, z.style.y]), this.shapeList.push(new u(this._axisLabelClickable(F, z))) + } + } + }, + _buildSplitLine: function() { + var A, K = this._valueList, + C = this._valueList.length, + F = this.option.splitLine, + G = F.lineStyle.type, + I = F.lineStyle.width, + J = F.lineStyle.color; + J = J instanceof Array ? J : [J]; + var D = J.length; + if (this.isHorizontal()) { + for (var B, E = this.grid.getY(), M = this.grid.getYend(), L = 0; C > L; L++) { + B = this.subPixelOptimize(this.getCoord(K[L]), I), A = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + xStart: B, + yStart: E, + xEnd: B, + yEnd: M, + strokeColor: J[L % D], + lineType: G, + lineWidth: I + } + }, this.shapeList.push(new j(A)) + } + } else { + for (var z, H = this.grid.getX(), a = this.grid.getXend(), L = 0; C > L; L++) { + z = this.subPixelOptimize(this.getCoord(K[L]), I), A = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + xStart: H, + yStart: z, + xEnd: a, + yEnd: z, + strokeColor: J[L % D], + lineType: G, + lineWidth: I + } + }, this.shapeList.push(new j(A)) + } + } + }, + _buildSplitArea: function() { + var A, J = this.option.splitArea.areaStyle.color; + if (J instanceof Array) { + var C = J.length, + F = this._valueList, + o = this._valueList.length; + if (this.isHorizontal()) { + for (var H, I = this.grid.getY(), D = this.grid.getHeight(), B = this.grid.getX(), E = 0; o >= E; E++) { + H = o > E ? this.getCoord(F[E]) : this.grid.getXend(), A = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: B, + y: I, + width: H - B, + height: D, + color: J[E % C] + } + }, this.shapeList.push(new v(A)), B = H + } + } else { + for (var L, K = this.grid.getX(), z = this.grid.getWidth(), G = this.grid.getYend(), E = 0; o >= E; E++) { + L = o > E ? this.getCoord(F[E]) : this.grid.getY(), A = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: K, + y: L, + width: z, + height: G - L, + color: J[E % C] + } + }, this.shapeList.push(new v(A)), G = L + } + } + } else { + A = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this.grid.getX(), + y: this.grid.getY(), + width: this.grid.getWidth(), + height: this.grid.getHeight(), + color: J + } + }, this.shapeList.push(new v(A)) + } + }, + _calculateValue: function() { + if (isNaN(this.option.min - 0) || isNaN(this.option.max - 0)) { + for (var z, H, B = {}, E = this.component.legend, r = 0, F = this.series.length; F > r; r++) { + !(this.series[r].type != w.CHART_TYPE_LINE && this.series[r].type != w.CHART_TYPE_BAR && this.series[r].type != w.CHART_TYPE_SCATTER && this.series[r].type != w.CHART_TYPE_K && this.series[r].type != w.CHART_TYPE_EVENTRIVER || E && !E.isSelected(this.series[r].name) || (z = this.series[r].xAxisIndex || 0, H = this.series[r].yAxisIndex || 0, this.option.xAxisIndex != z && this.option.yAxisIndex != H || !this._calculSum(B, r))) + } + var G; + for (var r in B) { + G = B[r]; + for (var C = 0, A = G.length; A > C; C++) { + if (!isNaN(G[C])) { + this._hasData = !0, this._min = G[C], this._max = G[C]; + break + } + } + if (this._hasData) { + break + } + } + for (var r in B) { + G = B[r]; + for (var C = 0, A = G.length; A > C; C++) { + isNaN(G[C]) || (this._min = Math.min(this._min, G[C]), this._max = Math.max(this._max, G[C])) + } + } + var D = "log" !== this.option.type ? this.option.boundaryGap : [0, 0], + I = Math.abs(this._max - this._min); + this._min = isNaN(this.option.min - 0) ? this._min - Math.abs(I * D[0]) : this.option.min - 0, this._max = isNaN(this.option.max - 0) ? this._max + Math.abs(I * D[1]) : this.option.max - 0, this._min === this._max && (0 === this._max ? this._max = 1 : this._max > 0 ? this._min = this._max / this.option.splitNumber != null ? this.option.splitNumber : 5 : this._max = this._max / this.option.splitNumber != null ? this.option.splitNumber : 5), "time" === this.option.type ? this._reformTimeValue() : "log" === this.option.type ? this._reformLogValue() : this._reformValue(this.option.scale) + } else { + this._hasData = !0, this._min = this.option.min - 0, this._max = this.option.max - 0, "time" === this.option.type ? this._reformTimeValue() : "log" === this.option.type ? this._reformLogValue() : this._customerValue() + } + }, + _calculSum: function(z, G) { + var B, E, r = this.series[G].name || "kener"; + if (this.series[G].stack) { + var F = "__Magic_Key_Positive__" + this.series[G].stack, + C = "__Magic_Key_Negative__" + this.series[G].stack; + z[F] = z[F] || [], z[C] = z[C] || [], z[r] = z[r] || [], E = this.series[G].data; + for (var A = 0, D = E.length; D > A; A++) { + B = this.getDataFromOption(E[A]), "-" !== B && (B -= 0, B >= 0 ? null != z[F][A] ? z[F][A] += B : z[F][A] = B : null != z[C][A] ? z[C][A] += B : z[C][A] = B, this.option.scale && z[r].push(B)) + } + } else { + if (z[r] = z[r] || [], this.series[G].type != w.CHART_TYPE_EVENTRIVER) { + E = this.series[G].data; + for (var A = 0, D = E.length; D > A; A++) { + B = this.getDataFromOption(E[A]), this.series[G].type === w.CHART_TYPE_K ? (z[r].push(B[0]), z[r].push(B[1]), z[r].push(B[2]), z[r].push(B[3])) : B instanceof Array ? (-1 != this.option.xAxisIndex && z[r].push("time" != this.option.type ? B[0] : x.getNewDate(B[0])), -1 != this.option.yAxisIndex && z[r].push("time" != this.option.type ? B[1] : x.getNewDate(B[1]))) : z[r].push(B) + } + } else { + E = this.series[G].data; + for (var A = 0, D = E.length; D > A; A++) { + for (var I = E[A].evolution, H = 0, s = I.length; s > H; H++) { + z[r].push(x.getNewDate(I[H].time)) + } + } + } + } + }, + _reformValue: function(r) { + var l = m("../util/smartSteps"), + o = this.option.splitNumber; + !r && this._min >= 0 && this._max >= 0 && (this._min = 0), !r && this._min <= 0 && this._max <= 0 && (this._max = 0); + var e = l(this._min, this._max, o); + o = null != o ? o : e.secs, this._min = e.min, this._max = e.max, this._valueList = e.pnts, this._reformLabelData() + }, + _reformTimeValue: function() { + var o = null != this.option.splitNumber ? this.option.splitNumber : 5, + z = x.getAutoFormatter(this._min, this._max, o), + r = z.formatter, + s = z.gapValue; + this._valueList = [x.getNewDate(this._min)]; + var l; + switch (r) { + case "week": + l = x.nextMonday(this._min); + break; + case "month": + l = x.nextNthOnMonth(this._min, 1); + break; + case "quarter": + l = x.nextNthOnQuarterYear(this._min, 1); + break; + case "half-year": + l = x.nextNthOnHalfYear(this._min, 1); + break; + case "year": + l = x.nextNthOnYear(this._min, 1); + break; + default: + 7200000 >= s ? l = (Math.floor(this._min / s) + 1) * s : (l = x.getNewDate(this._min - -s), l.setHours(6 * Math.round(l.getHours() / 6)), l.setMinutes(0), l.setSeconds(0)) + } + for (l - this._min < s / 2 && (l -= -s), z = x.getNewDate(l), o *= 1.5; o-- >= 0 && (("month" == r || "quarter" == r || "half-year" == r || "year" == r) && z.setDate(1), !(this._max - z < s / 2));) { + this._valueList.push(z), z = x.getNewDate(z - -s) + } + this._valueList.push(x.getNewDate(this._max)), this._reformLabelData(function(a) { + return function(e) { + return x.format(a, e) + } + }(r)) + }, + _customerValue: function() { + var r = m("../util/accMath"), + l = null != this.option.splitNumber ? this.option.splitNumber : 5, + o = (this._max - this._min) / l; + this._valueList = []; + for (var e = 0; l >= e; e++) { + this._valueList.push(r.accAdd(this._min, r.accMul(o, e))) + } + this._reformLabelData() + }, + _reformLogValue: function() { + var e = this.option, + a = m("../util/smartLogSteps")({ + dataMin: this._min, + dataMax: this._max, + logPositive: e.logPositive, + logLabelBase: e.logLabelBase, + splitNumber: e.splitNumber + }); + this._min = a.dataMin, this._max = a.dataMax, this._valueList = a.tickList, this._dataMappingMethods = a.dataMappingMethods, this._reformLabelData(a.labelFormatter) + }, + _reformLabelData: function(a) { + this._valueLabel = []; + var r = this.option.axisLabel.formatter; + if (r) { + for (var l = 0, o = this._valueList.length; o > l; l++) { + "function" == typeof r ? this._valueLabel.push(a ? r.call(this.myChart, this._valueList[l], a) : r.call(this.myChart, this._valueList[l])) : "string" == typeof r && this._valueLabel.push(a ? x.format(r, this._valueList[l]) : r.replace("{value}", this._valueList[l])) + } + } else { + for (var l = 0, o = this._valueList.length; o > l; l++) { + this._valueLabel.push(a ? a(this._valueList[l]) : this.numAddCommas(this._valueList[l])) + } + } + }, + getExtremum: function() { + this._calculateValue(); + var a = this._dataMappingMethods; + return { + min: this._min, + max: this._max, + dataMappingMethods: a ? q.merge({}, a) : null + } + }, + refresh: function(a, i) { + a && (this.option = this.reformOption(a), this.option.axisLabel.textStyle = q.merge(this.option.axisLabel.textStyle || {}, this.ecTheme.textStyle), this.series = i), this.zr && (this.clear(), this._buildShape()) + }, + getCoord: function(a) { + this._dataMappingMethods && (a = this._dataMappingMethods.value2Coord(a)), a = a < this._min ? this._min : a, a = a > this._max ? this._max : a; + var i; + return i = this.isHorizontal() ? this.grid.getX() + (a - this._min) / (this._max - this._min) * this.grid.getWidth() : this.grid.getYend() - (a - this._min) / (this._max - this._min) * this.grid.getHeight() + }, + getCoordSize: function(a) { + return Math.abs(this.isHorizontal() ? a / (this._max - this._min) * this.grid.getWidth() : a / (this._max - this._min) * this.grid.getHeight()) + }, + getValueFromCoord: function(a) { + var i; + return this.isHorizontal() ? (a = a < this.grid.getX() ? this.grid.getX() : a, a = a > this.grid.getXend() ? this.grid.getXend() : a, i = this._min + (a - this.grid.getX()) / this.grid.getWidth() * (this._max - this._min)) : (a = a < this.grid.getY() ? this.grid.getY() : a, a = a > this.grid.getYend() ? this.grid.getYend() : a, i = this._max - (a - this.grid.getY()) / this.grid.getHeight() * (this._max - this._min)), this._dataMappingMethods && (i = this._dataMappingMethods.coord2Value(i)), i.toFixed(2) - 0 + }, + isMaindAxis: function(a) { + for (var n = 0, l = this._valueList.length; l > n; n++) { + if (this._valueList[n] === a) { + return !0 + } + } + return !1 + } + }, q.inherits(y, p), m("../component").define("valueAxis", y), y + }), d("echarts/util/date", [], function() { + function p(C, J, D) { + D = D > 1 ? D : 2; + for (var F, m, G, H, I = 0, E = w.length; E > I; I++) { + if (F = w[I].value, m = Math.ceil(J / F) * F - Math.floor(C / F) * F, Math.round(m / F) <= 1.2 * D) { + G = w[I].formatter, H = w[I].value; + break + } + } + return null == G && (G = "year", F = 31708800000, m = Math.ceil(J / F) * F - Math.floor(C / F) * F, H = Math.round(m / (D - 1) / F) * F), { + formatter: G, + gapValue: H + } + } + + function B(a) { + return 10 > a ? "0" + a : a + } + + function u(C, D) { + ("week" == C || "month" == C || "quarter" == C || "half-year" == C || "year" == C) && (C = "MM - dd\nyyyy"); + var G = q(D), + t = G.getFullYear(), + H = G.getMonth() + 1, + I = G.getDate(), + J = G.getHours(), + E = G.getMinutes(), + F = G.getSeconds(); + return C = C.replace("MM", B(H)), C = C.toLowerCase(), C = C.replace("yyyy", t), C = C.replace("yy", t % 100), C = C.replace("dd", B(I)), C = C.replace("d", I), C = C.replace("hh", B(J)), C = C.replace("h", J), C = C.replace("mm", B(E)), C = C.replace("m", E), C = C.replace("ss", B(F)), C = C.replace("s", F) + } + + function x(a) { + return a = q(a), a.setDate(a.getDate() + 8 - a.getDay()), a + } + + function j(a, m, l) { + return a = q(a), a.setMonth(Math.ceil((a.getMonth() + 1) / l) * l), a.setDate(m), a + } + + function y(a, i) { + return j(a, i, 1) + } + + function z(a, i) { + return j(a, i, 3) + } + + function A(a, i) { + return j(a, i, 6) + } + + function v(a, i) { + return j(a, i, 12) + } + + function q(a) { + return a instanceof Date ? a : new Date("string" == typeof a ? a.replace(/-/g, "/") : a) + } + var w = [{ + formatter: "hh : mm : ss", + value: 1000 + }, { + formatter: "hh : mm : ss", + value: 5000 + }, { + formatter: "hh : mm : ss", + value: 10000 + }, { + formatter: "hh : mm : ss", + value: 15000 + }, { + formatter: "hh : mm : ss", + value: 30000 + }, { + formatter: "hh : mm\nMM - dd", + value: 60000 + }, { + formatter: "hh : mm\nMM - dd", + value: 300000 + }, { + formatter: "hh : mm\nMM - dd", + value: 600000 + }, { + formatter: "hh : mm\nMM - dd", + value: 900000 + }, { + formatter: "hh : mm\nMM - dd", + value: 1800000 + }, { + formatter: "hh : mm\nMM - dd", + value: 3600000 + }, { + formatter: "hh : mm\nMM - dd", + value: 7200000 + }, { + formatter: "hh : mm\nMM - dd", + value: 21600000 + }, { + formatter: "hh : mm\nMM - dd", + value: 43200000 + }, { + formatter: "MM - dd\nyyyy", + value: 86400000 + }, { + formatter: "week", + value: 604800000 + }, { + formatter: "month", + value: 2678400000 + }, { + formatter: "quarter", + value: 8208000000 + }, { + formatter: "half-year", + value: 16416000000 + }, { + formatter: "year", + value: 32832000000 + }]; + return { + getAutoFormatter: p, + getNewDate: q, + format: u, + nextMonday: x, + nextNthPerNmonth: j, + nextNthOnMonth: y, + nextNthOnQuarterYear: z, + nextNthOnHalfYear: A, + nextNthOnYear: v + } + }), d("echarts/util/smartSteps", [], function() { + function C(a) { + return ah.log(H(a)) / ah.LN10 + } + + function Z(a) { + return ah.pow(10, a) + } + + function G(a) { + return a === ae(a) + } + + function Q(l, r, m, i) { + z = i || {}, D = z.steps || O, J = z.secs || af, m = ac(+m || 0) % 99, l = +l || 0, r = +r || 0, ag = j = 0, "min" in z && (l = +z.min || 0, ag = 1), "max" in z && (r = +z.max || 0, j = 1), l > r && (r = [l, l = r][0]); + var p = r - l; + if (ag && j) { + return E(l, r, m) + } + if ((m || 5) > p) { + if (G(l) && G(r)) { + return B(l, r, m) + } + if (0 === p) { + return S(l, r, m) + } + } + return F(l, r, m) + } + + function q(u, w, I, o) { + o = o || 0; + var L = R((w - u) / I, -1), + x = R(u, -1, 1), + v = R(w, -1), + y = ah.min(L.e, x.e, v.e); + 0 === x.c ? y = ah.min(L.e, v.e) : 0 === v.c && (y = ah.min(L.e, x.e)), T(L, { + c: 0, + e: y + }), T(x, L, 1), T(v, L), o += y, u = x.c, w = v.c; + for (var X = (w - u) / I, W = Z(o), t = 0, K = [], r = I + 1; r--;) { + K[r] = (u + X * r) * W + } + if (0 > o) { + t = aa(W), X = +(X * W).toFixed(t), u = +(u * W).toFixed(t), w = +(w * W).toFixed(t); + for (var r = K.length; r--;) { + K[r] = K[r].toFixed(t), 0 === +K[r] && (K[r] = "0") + } + } else { + u *= W, w *= W, X *= W + } + return J = 0, D = 0, z = 0, { + min: u, + max: w, + secs: I, + step: X, + fix: t, + exp: o, + pnts: K + } + } + + function R(i, e, l) { + e = ac(e % 10) || 2, 0 > e && (G(i) ? e = ("" + H(i)).replace(/0+$/, "").length || 1 : (i = i.toFixed(15).replace(/0+$/, ""), e = i.replace(".", "").replace(/^[-0]+/, "").length, i = +i)); + var m = ae(C(i)) - e + 1, + p = +(i * Z(-m)).toFixed(15) || 0; + return p = l ? ae(p) : M(p), !p && (m = 0), ("" + H(p)).length > e && (m += 1, p /= 10), { + c: p, + e: m + } + } + + function T(m, o, p) { + var l = o.e - m.e; + l && (m.e += l, m.c *= Z(-l), m.c = p ? ae(m.c) : M(m.c)) + } + + function Y(a, m, l) { + a.e < m.e ? T(m, a, l) : T(a, m, l) + } + + function N(a, o) { + o = o || O, a = R(a); + for (var l = a.c, m = 0; l > o[m];) { + m++ + } + if (!o[m]) { + for (l /= 10, a.e += 1, m = 0; l > o[m];) { + m++ + } + } + return a.c = o[m], a + } + + function F(i, x, r) { + var w, m = r || +J.slice(-1), + v = N((x - i) / m, D), + y = R(x - i), + l = R(i, -1, 1), + a = R(x, -1); + if (T(y, v), T(l, v, 1), T(a, v), r ? w = ad(l, a, m) : m = P(l, a), G(i) && G(x) && i * x >= 0) { + if (m > x - i) { + return B(i, x, m) + } + m = ab(i, x, r, l, a, m) + } + var o = A(i, x, l.c, a.c); + return l.c = o[0], a.c = o[1], (ag || j) && ai(i, x, l, a), q(l.c, a.c, m, a.e) + } + + function P(m, t) { + for (var u, l, v, w, x = [], p = J.length; p--;) { + u = J[p], l = N((t.c - m.c) / u, D), l = l.c * Z(l.e), v = ae(m.c / l) * l, w = M(t.c / l) * l, x[p] = { + min: v, + max: w, + step: l, + span: w - v + } + } + return x.sort(function(a, o) { + var n = a.span - o.span; + return 0 === n && (n = a.step - o.step), n + }), x = x[0], u = x.span / x.step, m.c = x.min, t.c = x.max, 3 > u ? 2 * u : u + } + + function ad(p, u, w) { + for (var l, x, y = u.c, I = (u.c - p.c) / w - 1; y > p.c;) { + I = N(I + 1, D), I = I.c * Z(I.e), l = I * w, x = M(u.c / I) * I, y = x - l + } + var t = p.c - y, + v = x - u.c, + K = t - v; + return K > 1.1 * I && (K = ac(K / I / 2) * I, y += K, x += K), p.c = y, u.c = x, I + } + + function ab(p, w, i, x, y, I) { + var u = y.c - x.c, + t = u / I * Z(y.e); + if (!G(t) && (t = ae(t), u = t * I, w - p > u && (t += 1, u = t * I, !i && t * (I - 1) >= w - p && (I -= 1, u = t * I)), u >= w - p)) { + var v = u - (w - p); + x.c = ac(p - v / 2), y.c = ac(w + v / 2), x.e = 0, y.e = 0 + } + return I + } + + function B(a, w, l) { + if (l = l || 5, ag) { + w = a + l + } else { + if (j) { + a = w - l + } else { + var m = l - (w - a), + p = ac(a - m / 2), + u = ac(w + m / 2), + v = A(a, w, p, u); + a = v[0], w = v[1] + } + } + return q(a, w, l) + } + + function S(a, o, l) { + l = l || 5; + var m = ah.min(H(o / l), l) / 2.1; + return ag ? o = a + m : j ? a = o - m : (a -= m, o += m), F(a, o, l) + } + + function A(a, o, l, m) { + return a >= 0 && 0 > l ? (m -= l, l = 0) : 0 >= o && m > 0 && (l -= m, m = 0), [l, m] + } + + function aa(a) { + return a = (+a).toFixed(15).split("."), a.pop().replace(/0+$/, "").length + } + + function ai(m, u, o, p) { + if (ag) { + var l = R(m, 4, 1); + o.e - l.e > 6 && (l = { + c: 0, + e: o.e + }), Y(o, l), Y(p, l), p.c += l.c - o.c, o.c = l.c + } else { + if (j) { + var s = R(u, 4); + p.e - s.e > 6 && (s = { + c: 0, + e: p.e + }), Y(o, s), Y(p, s), o.c += s.c - p.c, p.c = s.c + } + } + } + + function E(r, aj, x) { + var L = x ? [x] : J, + X = aj - r; + if (0 === X) { + return aj = R(aj, 3), x = L[0], aj.c = ac(aj.c + x / 2), q(aj.c - x, aj.c, x, aj.e) + } + H(aj / X) < 1e-06 && (aj = 0), H(r / X) < 1e-06 && (r = 0); + var I, w, K, am = [ + [5, 10], + [10, 2], + [50, 10], + [100, 2] + ], + al = [], + o = [], + W = R(aj - r, 3), + a = R(r, -1, 1), + ak = R(aj, -1); + T(a, W, 1), T(ak, W), X = ak.c - a.c, W.c = X; + for (var an = L.length; an--;) { + x = L[an], I = M(X / x), w = I * x - X, K = 3 * (w + 3), K += 2 * (x - L[0] + 2), x % 5 === 0 && (K -= 10); + for (var v = am.length; v--;) { + I % am[v][0] === 0 && (K /= am[v][1]) + } + o[an] = [x, I, w, K].join(), al[an] = { + secs: x, + step: I, + delta: w, + score: K + } + } + return al.sort(function(i, l) { + return i.score - l.score + }), al = al[0], a.c = ac(a.c - al.delta / 2), ak.c = ac(ak.c + al.delta / 2), q(a.c, ak.c, al.secs, W.e) + } + var z, D, J, ag, j, O = [10, 20, 25, 50], + af = [4, 5, 6], + ah = Math, + ac = ah.round, + ae = ah.floor, + M = ah.ceil, + H = ah.abs; + return Q + }), d("echarts/util/smartLogSteps", ["require", "./number"], function(G) { + function ak(a) { + return Q(), am = a || {}, ae(), q(), [af(), Q()][0] + } + + function Q() { + an = am = O = A = z = M = av = Z = D = ag = null + } + + function ae() { + D = am.logLabelBase, null == D ? (ag = "plain", D = 10, A = R) : (D = +D, 1 > D && (D = 10), ag = "exponent", A = ac(D)), av = am.splitNumber, null == av && (av = H); + var a = parseFloat(am.dataMin), + i = parseFloat(am.dataMax); + isFinite(a) || isFinite(i) ? isFinite(a) ? isFinite(i) ? a > i && (i = [a, a = i][0]) : i = a : a = i : a = i = 1, an = am.logPositive, null == an && (an = i > 0 || 0 === a), z = an ? a : -i, M = an ? i : -a, aj > z && (z = aj), aj > M && (M = aj) + } + + function q() { + function p() { + av > w && (av = w); + var o = aq(ab(w / av)), + L = ao(ab(w / o)), + r = o * L, + J = (r - I) / 2, + m = aq(ab(C - J)); + ap(m - C) && (m -= 1), O = -m * A; + for (var K = m; y >= K - o; K += o) { + Z.push(ar(D, K)) + } + } + + function F() { + for (var a = v(u, 0), o = a + 2; o > a && l(a + 1) + x(a + 1) * B < C;) { + a++ + } + for (var i = v(E, 0), o = i - 2; i > o && l(i - 1) + x(i - 1) * B > y;) { + i-- + } + O = -(l(a) * R + x(a) * Y); + for (var n = a; i >= n; n++) { + var s = l(n), + r = x(n); + Z.push(ar(10, s) * ar(2, r)) + } + } + + function v(a, i) { + return 3 * a + i + } + + function x(a) { + return a - 3 * l(a) + } + + function l(a) { + return aq(ab(a / 3)) + } + Z = []; + var y = ab(ac(M) / A), + C = ab(ac(z) / A), + E = ao(y), + u = aq(C), + w = E - u, + I = y - C; + "exponent" === ag ? p() : N >= w && av > N ? F() : p() + } + + function af() { + for (var p = [], w = 0, r = Z.length; r > w; w++) { + p[w] = (an ? 1 : -1) * Z[w] + }!an && p.reverse(); + var u = ai(), + m = u.value2Coord, + v = m(p[0]), + s = m(p[p.length - 1]); + return v === s && (v -= 1, s += 1), { + dataMin: v, + dataMax: s, + tickList: p, + logPositive: an, + labelFormatter: ah(), + dataMappingMethods: u + } + } + + function ah() { + if ("exponent" === ag) { + var a = D, + i = A; + return function(e) { + if (!isFinite(parseFloat(e))) { + return "" + } + var l = ""; + return 0 > e && (e = -e, l = "-"), l + a + ad(ac(e) / i) + } + } + return function(l) { + return isFinite(parseFloat(l)) ? at.addCommas(P(l)) : "" + } + } + + function ai() { + var a = an, + i = O; + return { + value2Coord: function(e) { + return null == e || isNaN(e) || !isFinite(e) ? e : (e = parseFloat(e), isFinite(e) ? a && aj > e ? e = aj : !a && e > -aj && (e = -aj) : e = aj, e = au(e), (a ? 1 : -1) * (ac(e) + i)) + }, + coord2Value: function(e) { + return null == e || isNaN(e) || !isFinite(e) ? e : (e = parseFloat(e), isFinite(e) || (e = aj), a ? ar(aa, e - i) : -ar(aa, -e + i)) + } + } + } + + function ab(a) { + return +Number(+a).toFixed(14) + } + + function P(a) { + return Number(a).toFixed(15).replace(/\.?0*$/, "") + } + + function ad(m) { + m = P(Math.round(m)); + for (var r = [], o = 0, p = m.length; p > o; o++) { + var l = m.charAt(o); + r.push(al[l] || "") + } + return r.join("") + } + + function ap(a) { + return a > -aj && aj > a + } + var an, D, ag, A, am, av, O, z, M, Z, at = G("./number"), + j = Math, + ac = j.log, + ar = j.pow, + au = j.abs, + ao = j.ceil, + aq = j.floor, + aa = j.E, + R = j.LN10, + Y = j.LN2, + B = Y / R, + aj = 1e-09, + H = 5, + N = 2, + al = { + 0: "⁰", + 1: "¹", + 2: "²", + 3: "³", + 4: "⁴", + 5: "⁵", + 6: "⁶", + 7: "⁷", + 8: "⁸", + 9: "⁹", + "-": "⁻" + }; + return ak + }), d("echarts/chart/line", ["require", "./base", "zrender/shape/Polyline", "../util/shape/Icon", "../util/shape/HalfSmoothPolygon", "../component/axis", "../component/grid", "../component/dataZoom", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/color", "../chart"], function(p) { + function B(m, s, n, l, r) { + x.call(this, m, s, n, l, r), this.refresh(l) + } + + function u(D, L, F) { + var I = L.x, + o = L.y, + J = L.width, + K = L.height, + G = K / 2; + L.symbol.match("empty") && (D.fillStyle = "#fff"), L.brushType = "both"; + var E = L.symbol.replace("empty", "").toLowerCase(); + E.match("star") ? (G = E.replace("star", "") - 0 || 5, o -= 1, E = "star") : ("rectangle" === E || "arrow" === E) && (I += (J - K) / 2, J = K); + var H = ""; + if (E.match("image") && (H = E.replace(new RegExp("^image:\\/\\/"), ""), E = "image", I += Math.round((J - K) / 2) - 1, J = K += 2), E = y.prototype.iconLibrary[E]) { + var N = L.x, + M = L.y; + D.moveTo(N, M + G), D.lineTo(N + 5, M + G), D.moveTo(N + L.width - 5, M + G), D.lineTo(N + L.width, M + G); + var C = this; + E(D, { + x: I + 4, + y: o + 4, + width: J - 8, + height: K - 8, + n: G, + image: H + }, function() { + C.modSelf(), F() + }) + } else { + D.moveTo(I, o + G), D.lineTo(I + J, o + G) + } + } + var x = p("./base"), + j = p("zrender/shape/Polyline"), + y = p("../util/shape/Icon"), + z = p("../util/shape/HalfSmoothPolygon"); + p("../component/axis"), p("../component/grid"), p("../component/dataZoom"); + var A = p("../config"); + A.line = { + zlevel: 0, + z: 2, + clickable: !0, + legendHoverLink: !0, + xAxisIndex: 0, + yAxisIndex: 0, + dataFilter: "nearest", + itemStyle: { + normal: { + label: { + show: !1 + }, + lineStyle: { + width: 2, + type: "solid", + shadowColor: "rgba(0,0,0,0)", + shadowBlur: 0, + shadowOffsetX: 0, + shadowOffsetY: 0 + } + }, + emphasis: { + label: { + show: !1 + } + } + }, + symbolSize: 2, + showAllSymbol: !1 + }; + var v = p("../util/ecData"), + q = p("zrender/tool/util"), + w = p("zrender/tool/color"); + return B.prototype = { + type: A.CHART_TYPE_LINE, + _buildShape: function() { + this.finalPLMap = {}, this._buildPosition() + }, + _buildHorizontal: function(H, Z, M, R) { + for (var D, S, X, Y, O, K, Q, ac, ab, G = this.series, T = M[0][0], F = G[T], aa = this.component.xAxis.getAxis(F.xAxisIndex || 0), af = {}, J = 0, E = Z; E > J && null != aa.getNameByIndex(J); J++) { + S = aa.getCoordByIndex(J); + for (var I = 0, N = M.length; N > I; I++) { + D = this.component.yAxis.getAxis(G[M[I][0]].yAxisIndex || 0), O = Y = Q = K = D.getCoord(0); + for (var ae = 0, C = M[I].length; C > ae; ae++) { + T = M[I][ae], F = G[T], ac = F.data[J], ab = this.getDataFromOption(ac, "-"), af[T] = af[T] || [], R[T] = R[T] || { + min: Number.POSITIVE_INFINITY, + max: Number.NEGATIVE_INFINITY, + sum: 0, + counter: 0, + average: 0 + }, "-" !== ab ? (ab >= 0 ? (Y -= ae > 0 ? D.getCoordSize(ab) : O - D.getCoord(ab), X = Y) : 0 > ab && (K += ae > 0 ? D.getCoordSize(ab) : D.getCoord(ab) - Q, X = K), af[T].push([S, X, J, aa.getNameByIndex(J), S, O]), R[T].min > ab && (R[T].min = ab, R[T].minY = X, R[T].minX = S), R[T].max < ab && (R[T].max = ab, R[T].maxY = X, R[T].maxX = S), R[T].sum += ab, R[T].counter++) : af[T].length > 0 && (this.finalPLMap[T] = this.finalPLMap[T] || [], this.finalPLMap[T].push(af[T]), af[T] = []) + } + } + Y = this.component.grid.getY(); + for (var P, I = 0, N = M.length; N > I; I++) { + for (var ae = 0, C = M[I].length; C > ae; ae++) { + T = M[I][ae], F = G[T], ac = F.data[J], ab = this.getDataFromOption(ac, "-"), "-" == ab && this.deepQuery([ac, F, this.option], "calculable") && (P = this.deepQuery([ac, F], "symbolSize"), Y += 2 * P + 5, X = Y, this.shapeList.push(this._getCalculableItem(T, J, aa.getNameByIndex(J), S, X, "horizontal"))) + } + } + } + for (var ad in af) { + af[ad].length > 0 && (this.finalPLMap[ad] = this.finalPLMap[ad] || [], this.finalPLMap[ad].push(af[ad]), af[ad] = []) + } + this._calculMarkMapXY(R, M, "y"), this._buildBorkenLine(H, this.finalPLMap, aa, "horizontal") + }, + _buildVertical: function(H, Z, M, R) { + for (var D, S, X, Y, O, K, Q, ac, ab, G = this.series, T = M[0][0], F = G[T], aa = this.component.yAxis.getAxis(F.yAxisIndex || 0), af = {}, J = 0, E = Z; E > J && null != aa.getNameByIndex(J); J++) { + X = aa.getCoordByIndex(J); + for (var I = 0, N = M.length; N > I; I++) { + D = this.component.xAxis.getAxis(G[M[I][0]].xAxisIndex || 0), O = Y = Q = K = D.getCoord(0); + for (var ae = 0, C = M[I].length; C > ae; ae++) { + T = M[I][ae], F = G[T], ac = F.data[J], ab = this.getDataFromOption(ac, "-"), af[T] = af[T] || [], R[T] = R[T] || { + min: Number.POSITIVE_INFINITY, + max: Number.NEGATIVE_INFINITY, + sum: 0, + counter: 0, + average: 0 + }, "-" !== ab ? (ab >= 0 ? (Y += ae > 0 ? D.getCoordSize(ab) : D.getCoord(ab) - O, S = Y) : 0 > ab && (K -= ae > 0 ? D.getCoordSize(ab) : Q - D.getCoord(ab), S = K), af[T].push([S, X, J, aa.getNameByIndex(J), O, X]), R[T].min > ab && (R[T].min = ab, R[T].minX = S, R[T].minY = X), R[T].max < ab && (R[T].max = ab, R[T].maxX = S, R[T].maxY = X), R[T].sum += ab, R[T].counter++) : af[T].length > 0 && (this.finalPLMap[T] = this.finalPLMap[T] || [], this.finalPLMap[T].push(af[T]), af[T] = []) + } + } + Y = this.component.grid.getXend(); + for (var P, I = 0, N = M.length; N > I; I++) { + for (var ae = 0, C = M[I].length; C > ae; ae++) { + T = M[I][ae], F = G[T], ac = F.data[J], ab = this.getDataFromOption(ac, "-"), "-" == ab && this.deepQuery([ac, F, this.option], "calculable") && (P = this.deepQuery([ac, F], "symbolSize"), Y -= 2 * P + 5, S = Y, this.shapeList.push(this._getCalculableItem(T, J, aa.getNameByIndex(J), S, X, "vertical"))) + } + } + } + for (var ad in af) { + af[ad].length > 0 && (this.finalPLMap[ad] = this.finalPLMap[ad] || [], this.finalPLMap[ad].push(af[ad]), af[ad] = []) + } + this._calculMarkMapXY(R, M, "x"), this._buildBorkenLine(H, this.finalPLMap, aa, "vertical") + }, + _buildOther: function(G, T, K, O) { + for (var C, P = this.series, R = {}, S = 0, M = K.length; M > S; S++) { + for (var J = 0, N = K[S].length; N > J; J++) { + var Y = K[S][J], + X = P[Y]; + C = this.component.xAxis.getAxis(X.xAxisIndex || 0); + var F = this.component.yAxis.getAxis(X.yAxisIndex || 0), + Q = F.getCoord(0); + R[Y] = R[Y] || [], O[Y] = O[Y] || { + min0: Number.POSITIVE_INFINITY, + min1: Number.POSITIVE_INFINITY, + max0: Number.NEGATIVE_INFINITY, + max1: Number.NEGATIVE_INFINITY, + sum0: 0, + sum1: 0, + counter0: 0, + counter1: 0, + average0: 0, + average1: 0 + }; + for (var E = 0, W = X.data.length; W > E; E++) { + var Z = X.data[E], + I = this.getDataFromOption(Z, "-"); + if (I instanceof Array) { + var D = C.getCoord(I[0]), + H = F.getCoord(I[1]); + R[Y].push([D, H, E, I[0], D, Q]), O[Y].min0 > I[0] && (O[Y].min0 = I[0], O[Y].minY0 = H, O[Y].minX0 = D), O[Y].max0 < I[0] && (O[Y].max0 = I[0], O[Y].maxY0 = H, O[Y].maxX0 = D), O[Y].sum0 += I[0], O[Y].counter0++, O[Y].min1 > I[1] && (O[Y].min1 = I[1], O[Y].minY1 = H, O[Y].minX1 = D), O[Y].max1 < I[1] && (O[Y].max1 = I[1], O[Y].maxY1 = H, O[Y].maxX1 = D), O[Y].sum1 += I[1], O[Y].counter1++ + } + } + } + } + for (var L in R) { + R[L].length > 0 && (this.finalPLMap[L] = this.finalPLMap[L] || [], this.finalPLMap[L].push(R[L]), R[L] = []) + } + this._calculMarkMapXY(O, K, "xy"), this._buildBorkenLine(G, this.finalPLMap, C, "other") + }, + _buildBorkenLine: function(C, T, F, P) { + for (var Q, S = "other" == P ? "horizontal" : P, ab = this.series, Z = C.length - 1; Z >= 0; Z--) { + var r = C[Z], + R = ab[r], + m = T[r]; + if (R.type === this.type && null != m) { + for (var Y = this._getBbox(r, S), ag = this._sIndex2ColorMap[r], E = this.query(R, "itemStyle.normal.lineStyle.width"), l = this.query(R, "itemStyle.normal.lineStyle.type"), D = this.query(R, "itemStyle.normal.lineStyle.color"), M = this.getItemStyleColor(this.query(R, "itemStyle.normal.color"), r, -1), ae = null != this.query(R, "itemStyle.normal.areaStyle"), a = this.query(R, "itemStyle.normal.areaStyle.color"), O = 0, ad = m.length; ad > O; O++) { + var af = m[O], + aa = "other" != P && this._isLarge(S, af); + if (aa) { + af = this._getLargePointList(S, af, R.dataFilter) + } else { + for (var ac = 0, N = af.length; N > ac; ac++) { + Q = R.data[af[ac][2]], (this.deepQuery([Q, R, this.option], "calculable") || this.deepQuery([Q, R], "showAllSymbol") || "categoryAxis" === F.type && F.isMainAxis(af[ac][2]) && "none" != this.deepQuery([Q, R], "symbol")) && this.shapeList.push(this._getSymbol(r, af[ac][2], af[ac][3], af[ac][0], af[ac][1], S)) + } + } + var G = new j({ + zlevel: R.zlevel, + z: R.z, + style: { + miterLimit: E, + pointList: af, + strokeColor: D || M || ag, + lineWidth: E, + lineType: l, + smooth: this._getSmooth(R.smooth), + smoothConstraint: Y, + shadowColor: this.query(R, "itemStyle.normal.lineStyle.shadowColor"), + shadowBlur: this.query(R, "itemStyle.normal.lineStyle.shadowBlur"), + shadowOffsetX: this.query(R, "itemStyle.normal.lineStyle.shadowOffsetX"), + shadowOffsetY: this.query(R, "itemStyle.normal.lineStyle.shadowOffsetY") + }, + hoverable: !1, + _main: !0, + _seriesIndex: r, + _orient: S + }); + if (v.pack(G, ab[r], r, 0, O, ab[r].name), this.shapeList.push(G), ae) { + var H = new z({ + zlevel: R.zlevel, + z: R.z, + style: { + miterLimit: E, + pointList: q.clone(af).concat([ + [af[af.length - 1][4], af[af.length - 1][5]], + [af[0][4], af[0][5]] + ]), + brushType: "fill", + smooth: this._getSmooth(R.smooth), + smoothConstraint: Y, + color: a ? a : w.alpha(ag, 0.5) + }, + highlightStyle: { + brushType: "fill" + }, + hoverable: !1, + _main: !0, + _seriesIndex: r, + _orient: S + }); + v.pack(H, ab[r], r, 0, O, ab[r].name), this.shapeList.push(H) + } + } + } + } + }, + _getBbox: function(a, o) { + var l = this.component.grid.getBbox(), + m = this.xMarkMap[a]; + return null != m.minX0 ? [ + [Math.min(m.minX0, m.maxX0, m.minX1, m.maxX1), Math.min(m.minY0, m.maxY0, m.minY1, m.maxY1)], + [Math.max(m.minX0, m.maxX0, m.minX1, m.maxX1), Math.max(m.minY0, m.maxY0, m.minY1, m.maxY1)] + ] : ("horizontal" === o ? (l[0][1] = Math.min(m.minY, m.maxY), l[1][1] = Math.max(m.minY, m.maxY)) : (l[0][0] = Math.min(m.minX, m.maxX), l[1][0] = Math.max(m.minX, m.maxX)), l) + }, + _isLarge: function(a, i) { + return i.length < 2 ? !1 : "horizontal" === a ? Math.abs(i[0][0] - i[1][0]) < 0.5 : Math.abs(i[0][1] - i[1][1]) < 0.5 + }, + _getLargePointList: function(F, P, H) { + var K; + K = "horizontal" === F ? this.component.grid.getWidth() : this.component.grid.getHeight(); + var C = P.length, + L = []; + if ("function" != typeof H) { + switch (H) { + case "min": + H = function(a) { + return Math.max.apply(null, a) + }; + break; + case "max": + H = function(a) { + return Math.min.apply(null, a) + }; + break; + case "average": + H = function(a) { + for (var m = 0, l = 0; l < a.length; l++) { + m += a[l] + } + return m / a.length + }; + break; + default: + H = function(a) { + return a[0] + } + } + } + for (var N = [], O = 0; K > O; O++) { + var I = Math.floor(C / K * O), + G = Math.min(Math.floor(C / K * (O + 1)), C); + if (!(I >= G)) { + for (var J = I; G > J; J++) { + N[J - I] = "horizontal" === F ? P[J][1] : P[J][0] + } + N.length = G - I; + for (var S = H(N), R = -1, E = 1 / 0, J = I; G > J; J++) { + var M = "horizontal" === F ? P[J][1] : P[J][0], + D = Math.abs(M - S); + E > D && (R = J, E = D) + } + var Q = P[R].slice(); + "horizontal" === F ? Q[1] = S : Q[0] = S, L.push(Q) + } + } + return L + }, + _getSmooth: function(a) { + return a ? 0.3 : 0 + }, + _getCalculableItem: function(s, I, D, F, m, G) { + var H = this.series, + E = H[s].calculableHolderColor || this.ecTheme.calculableHolderColor || A.calculableHolderColor, + C = this._getSymbol(s, I, D, F, m, G); + return C.style.color = E, C.style.strokeColor = E, C.rotation = [0, 0], C.hoverable = !1, C.draggable = !1, C.style.text = void 0, C + }, + _getSymbol: function(C, K, E, G, m, H) { + var I = this.series, + J = I[C], + F = J.data[K], + D = this.getSymbolShape(J, C, F, K, E, G, m, this._sIndex2ShapeMap[C], this._sIndex2ColorMap[C], "#fff", "vertical" === H ? "horizontal" : "vertical"); + return D.zlevel = J.zlevel, D.z = J.z + 1, this.deepQuery([F, J, this.option], "calculable") && (this.setCalculable(D), D.draggable = !0), D + }, + getMarkCoord: function(m, F) { + var s = this.series[m], + C = this.xMarkMap[m], + l = this.component.xAxis.getAxis(s.xAxisIndex), + D = this.component.yAxis.getAxis(s.yAxisIndex); + if (F.type && ("max" === F.type || "min" === F.type || "average" === F.type)) { + var E = null != F.valueIndex ? F.valueIndex : null != C.maxX0 ? "1" : ""; + return [C[F.type + "X" + E], C[F.type + "Y" + E], C[F.type + "Line" + E], C[F.type + E]] + } + return ["string" != typeof F.xAxis && l.getCoordByIndex ? l.getCoordByIndex(F.xAxis || 0) : l.getCoord(F.xAxis || 0), "string" != typeof F.yAxis && D.getCoordByIndex ? D.getCoordByIndex(F.yAxis || 0) : D.getCoord(F.yAxis || 0)] + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() + }, + ontooltipHover: function(D, M) { + for (var F, I, C = D.seriesIndex, J = D.dataIndex, K = C.length; K--;) { + if (F = this.finalPLMap[C[K]]) { + for (var L = 0, G = F.length; G > L; L++) { + I = F[L]; + for (var E = 0, H = I.length; H > E; E++) { + J === I[E][2] && M.push(this._getSymbol(C[K], I[E][2], I[E][3], I[E][0], I[E][1], "horizontal")) + } + } + } + } + }, + addDataAnimation: function(F, P) { + function H() { + D--, 0 === D && P && P() + } + + function K(a) { + a.style.controlPointList = null + } + for (var C = this.series, L = {}, N = 0, O = F.length; O > N; N++) { + L[F[N][0]] = F[N] + } + for (var I, G, J, S, R, E, M, D = 0, N = this.shapeList.length - 1; N >= 0; N--) { + if (R = this.shapeList[N]._seriesIndex, L[R] && !L[R][3]) { + if (this.shapeList[N]._main && this.shapeList[N].style.pointList.length > 1) { + if (E = this.shapeList[N].style.pointList, G = Math.abs(E[0][0] - E[1][0]), S = Math.abs(E[0][1] - E[1][1]), M = "horizontal" === this.shapeList[N]._orient, L[R][2]) { + if ("half-smooth-polygon" === this.shapeList[N].type) { + var Q = E.length; + this.shapeList[N].style.pointList[Q - 3] = E[Q - 2], this.shapeList[N].style.pointList[Q - 3][M ? 0 : 1] = E[Q - 4][M ? 0 : 1], this.shapeList[N].style.pointList[Q - 2] = E[Q - 1] + } + this.shapeList[N].style.pointList.pop(), M ? (I = G, J = 0) : (I = 0, J = -S) + } else { + if (this.shapeList[N].style.pointList.shift(), "half-smooth-polygon" === this.shapeList[N].type) { + var T = this.shapeList[N].style.pointList.pop(); + M ? T[0] = E[0][0] : T[1] = E[0][1], this.shapeList[N].style.pointList.push(T) + } + M ? (I = -G, J = 0) : (I = 0, J = S) + } + this.shapeList[N].style.controlPointList = null, this.zr.modShape(this.shapeList[N]) + } else { + if (L[R][2] && this.shapeList[N]._dataIndex === C[R].data.length - 1) { + this.zr.delShape(this.shapeList[N].id); + continue + } + if (!L[R][2] && 0 === this.shapeList[N]._dataIndex) { + this.zr.delShape(this.shapeList[N].id); + continue + } + } + this.shapeList[N].position = [0, 0], D++, this.zr.animate(this.shapeList[N].id, "").when(this.query(this.option, "animationDurationUpdate"), { + position: [I, J] + }).during(K).done(H).start() + } + } + D || P && P() + } + }, y.prototype.iconLibrary.legendLineIcon = u, q.inherits(B, x), p("../chart").define("line", B), B + }), d("echarts/util/shape/HalfSmoothPolygon", ["require", "zrender/shape/Base", "zrender/shape/util/smoothBezier", "zrender/tool/util", "zrender/shape/Polygon"], function(l) { + function p(a) { + m.call(this, a) + } + var m = l("zrender/shape/Base"), + o = l("zrender/shape/util/smoothBezier"), + j = l("zrender/tool/util"); + return p.prototype = { + type: "half-smooth-polygon", + buildPath: function(z, q) { + var e = q.pointList; + if (!(e.length < 2)) { + if (q.smooth) { + var w = o(e.slice(0, -2), q.smooth, !1, q.smoothConstraint); + z.moveTo(e[0][0], e[0][1]); + for (var x, y, u, n = e.length, v = 0; n - 3 > v; v++) { + x = w[2 * v], y = w[2 * v + 1], u = e[v + 1], z.bezierCurveTo(x[0], x[1], y[0], y[1], u[0], u[1]) + } + z.lineTo(e[n - 2][0], e[n - 2][1]), z.lineTo(e[n - 1][0], e[n - 1][1]), z.lineTo(e[0][0], e[0][1]) + } else { + l("zrender/shape/Polygon").prototype.buildPath(z, q) + } + } + } + }, j.inherits(p, m), p + }), d("echarts/chart/bar", ["require", "./base", "zrender/shape/Rectangle", "../component/axis", "../component/grid", "../component/dataZoom", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/color", "../chart"], function(l) { + function w(r, y, s, i, x) { + m.call(this, r, y, s, i, x), this.refresh(i) + } + var m = l("./base"), + p = l("zrender/shape/Rectangle"); + l("../component/axis"), l("../component/grid"), l("../component/dataZoom"); + var j = l("../config"); + j.bar = { + zlevel: 0, + z: 2, + clickable: !0, + legendHoverLink: !0, + xAxisIndex: 0, + yAxisIndex: 0, + barMinHeight: 0, + barGap: "30%", + barCategoryGap: "20%", + itemStyle: { + normal: { + barBorderColor: "#fff", + barBorderRadius: 0, + barBorderWidth: 0, + label: { + show: !1 + } + }, + emphasis: { + barBorderColor: "#fff", + barBorderRadius: 0, + barBorderWidth: 0, + label: { + show: !1 + } + } + } + }; + var q = l("../util/ecData"), + u = l("zrender/tool/util"), + v = l("zrender/tool/color"); + return w.prototype = { + type: j.CHART_TYPE_BAR, + _buildShape: function() { + this._buildPosition() + }, + _buildNormal: function(R, au, ad, am, aq) { + for (var ar, ai, ac, ak, az, ax, N, ao, G, aw, aE, ab, B = this.series, Z = ad[0][0], ag = B[Z], aC = "horizontal" == aq, a = this.component.xAxis, aj = this.component.yAxis, aB = aC ? a.getAxis(ag.xAxisIndex) : aj.getAxis(ag.yAxisIndex), aD = this._mapSize(aB, ad), ay = aD.gap, aA = aD.barGap, ah = aD.barWidthMap, ae = aD.barMaxWidthMap, af = aD.barWidth, H = aD.barMinHeightMap, at = aD.interval, Y = this.deepQuery([this.ecTheme, j], "island.r"), aa = 0, av = au; av > aa && null != aB.getNameByIndex(aa); aa++) { + aC ? ak = aB.getCoordByIndex(aa) - ay / 2 : az = aB.getCoordByIndex(aa) + ay / 2; + for (var aF = 0, n = ad.length; n > aF; aF++) { + var al = B[ad[aF][0]].yAxisIndex || 0, + an = B[ad[aF][0]].xAxisIndex || 0; + ar = aC ? aj.getAxis(al) : a.getAxis(an), N = ax = G = ao = ar.getCoord(0); + for (var ap = 0, Q = ad[aF].length; Q > ap; ap++) { + Z = ad[aF][ap], ag = B[Z], aE = ag.data[aa], ab = this.getDataFromOption(aE, "-"), am[Z] = am[Z] || { + min: Number.POSITIVE_INFINITY, + max: Number.NEGATIVE_INFINITY, + sum: 0, + counter: 0, + average: 0 + }, ac = Math.min(ae[Z] || Number.MAX_VALUE, ah[Z] || af), "-" !== ab && (ab > 0 ? (ai = ap > 0 ? ar.getCoordSize(ab) : aC ? N - ar.getCoord(ab) : ar.getCoord(ab) - N, 1 === Q && H[Z] > ai && (ai = H[Z]), aC ? (ax -= ai, az = ax) : (ak = ax, ax += ai)) : 0 > ab ? (ai = ap > 0 ? ar.getCoordSize(ab) : aC ? ar.getCoord(ab) - G : G - ar.getCoord(ab), 1 === Q && H[Z] > ai && (ai = H[Z]), aC ? (az = ao, ao += ai) : (ao -= ai, ak = ao)) : (ai = 0, aC ? (ax -= ai, az = ax) : (ak = ax, ax += ai)), am[Z][aa] = aC ? ak + ac / 2 : az - ac / 2, am[Z].min > ab && (am[Z].min = ab, aC ? (am[Z].minY = az, am[Z].minX = am[Z][aa]) : (am[Z].minX = ak + ai, am[Z].minY = am[Z][aa])), am[Z].max < ab && (am[Z].max = ab, aC ? (am[Z].maxY = az, am[Z].maxX = am[Z][aa]) : (am[Z].maxX = ak + ai, am[Z].maxY = am[Z][aa])), am[Z].sum += ab, am[Z].counter++, aa % at === 0 && (aw = this._getBarItem(Z, aa, aB.getNameByIndex(aa), ak, az - (aC ? 0 : ac), aC ? ac : ai, aC ? ai : ac, aC ? "vertical" : "horizontal"), this.shapeList.push(new p(aw)))) + } + for (var ap = 0, Q = ad[aF].length; Q > ap; ap++) { + Z = ad[aF][ap], ag = B[Z], aE = ag.data[aa], ab = this.getDataFromOption(aE, "-"), ac = Math.min(ae[Z] || Number.MAX_VALUE, ah[Z] || af), "-" == ab && this.deepQuery([aE, ag, this.option], "calculable") && (aC ? (ax -= Y, az = ax) : (ak = ax, ax += Y), aw = this._getBarItem(Z, aa, aB.getNameByIndex(aa), ak, az - (aC ? 0 : ac), aC ? ac : Y, aC ? Y : ac, aC ? "vertical" : "horizontal"), aw.hoverable = !1, aw.draggable = !1, aw.style.lineWidth = 1, aw.style.brushType = "stroke", aw.style.strokeColor = ag.calculableHolderColor || this.ecTheme.calculableHolderColor || j.calculableHolderColor, this.shapeList.push(new p(aw))) + } + aC ? ak += ac + aA : az -= ac + aA + } + } + this._calculMarkMapXY(am, ad, aC ? "y" : "x") + }, + _buildHorizontal: function(a, s, o, r) { + return this._buildNormal(a, s, o, r, "horizontal") + }, + _buildVertical: function(a, s, o, r) { + return this._buildNormal(a, s, o, r, "vertical") + }, + _buildOther: function(D, R, H, z) { + for (var N = this.series, P = 0, Q = H.length; Q > P; P++) { + for (var J = 0, G = H[P].length; G > J; J++) { + var M = H[P][J], + Z = N[M], + T = Z.xAxisIndex || 0, + C = this.component.xAxis.getAxis(T), + O = C.getCoord(0), + B = Z.yAxisIndex || 0, + S = this.component.yAxis.getAxis(B), + ae = S.getCoord(0); + z[M] = z[M] || { + min0: Number.POSITIVE_INFINITY, + min1: Number.POSITIVE_INFINITY, + max0: Number.NEGATIVE_INFINITY, + max1: Number.NEGATIVE_INFINITY, + sum0: 0, + sum1: 0, + counter0: 0, + counter1: 0, + average0: 0, + average1: 0 + }; + for (var F = 0, A = Z.data.length; A > F; F++) { + var E = Z.data[F], + I = this.getDataFromOption(E, "-"); + if (I instanceof Array) { + var ac, n, K = C.getCoord(I[0]), + ab = S.getCoord(I[1]), + ad = [E, Z], + Y = this.deepQuery(ad, "barWidth") || 10, + aa = this.deepQuery(ad, "barHeight"); + null != aa ? (ac = "horizontal", I[0] > 0 ? (Y = K - O, K -= Y) : Y = I[0] < 0 ? O - K : 0, n = this._getBarItem(M, F, I[0], K, ab - aa / 2, Y, aa, ac)) : (ac = "vertical", I[1] > 0 ? aa = ae - ab : I[1] < 0 ? (aa = ab - ae, ab -= aa) : aa = 0, n = this._getBarItem(M, F, I[0], K - Y / 2, ab, Y, aa, ac)), this.shapeList.push(new p(n)), K = C.getCoord(I[0]), ab = S.getCoord(I[1]), z[M].min0 > I[0] && (z[M].min0 = I[0], z[M].minY0 = ab, z[M].minX0 = K), z[M].max0 < I[0] && (z[M].max0 = I[0], z[M].maxY0 = ab, z[M].maxX0 = K), z[M].sum0 += I[0], z[M].counter0++, z[M].min1 > I[1] && (z[M].min1 = I[1], z[M].minY1 = ab, z[M].minX1 = K), z[M].max1 < I[1] && (z[M].max1 = I[1], z[M].maxY1 = ab, z[M].maxX1 = K), z[M].sum1 += I[1], z[M].counter1++ + } + } + } + } + this._calculMarkMapXY(z, H, "xy") + }, + _mapSize: function(z, I, B) { + var E, x, F = this._findSpecialBarSzie(I, B), + G = F.barWidthMap, + H = F.barMaxWidthMap, + C = F.barMinHeightMap, + A = F.sBarWidthCounter, + D = F.sBarWidthTotal, + K = F.barGap, + J = F.barCategoryGap, + y = 1; + if (I.length != A) { + if (B) { + E = z.getGap(), K = 0, x = +(E / I.length).toFixed(2), 0 >= x && (y = Math.floor(I.length / E), x = 1) + } else { + if (E = "string" == typeof J && J.match(/%$/) ? (z.getGap() * (100 - parseFloat(J)) / 100).toFixed(2) - 0 : z.getGap() - J, "string" == typeof K && K.match(/%$/) ? (K = parseFloat(K) / 100, x = +((E - D) / ((I.length - 1) * K + I.length - A)).toFixed(2), K = x * K) : (K = parseFloat(K), x = +((E - D - K * (I.length - 1)) / (I.length - A)).toFixed(2)), 0 >= x) { + return this._mapSize(z, I, !0) + } + } + } else { + if (E = A > 1 ? "string" == typeof J && J.match(/%$/) ? +(z.getGap() * (100 - parseFloat(J)) / 100).toFixed(2) : z.getGap() - J : D, x = 0, K = A > 1 ? +((E - D) / (A - 1)).toFixed(2) : 0, 0 > K) { + return this._mapSize(z, I, !0) + } + } + return this._recheckBarMaxWidth(I, G, H, C, E, x, K, y) + }, + _findSpecialBarSzie: function(C, P) { + for (var G, K, x, L, N = this.series, O = {}, I = {}, F = {}, J = 0, S = 0, R = 0, B = C.length; B > R; R++) { + for (var M = { + barWidth: !1, + barMaxWidth: !1 + }, A = 0, Q = C[R].length; Q > A; A++) { + var T = C[R][A], + E = N[T]; + if (!P) { + if (M.barWidth) { + O[T] = G + } else { + if (G = this.query(E, "barWidth"), null != G) { + O[T] = G, S += G, J++, M.barWidth = !0; + for (var z = 0, D = A; D > z; z++) { + var H = C[R][z]; + O[H] = G + } + } + } + if (M.barMaxWidth) { + I[T] = K + } else { + if (K = this.query(E, "barMaxWidth"), null != K) { + I[T] = K, M.barMaxWidth = !0; + for (var z = 0, D = A; D > z; z++) { + var H = C[R][z]; + I[H] = K + } + } + } + } + F[T] = this.query(E, "barMinHeight"), x = null != x ? x : this.query(E, "barGap"), L = null != L ? L : this.query(E, "barCategoryGap") + } + } + return { + barWidthMap: O, + barMaxWidthMap: I, + barMinHeightMap: F, + sBarWidth: G, + sBarMaxWidth: K, + sBarWidthCounter: J, + sBarWidthTotal: S, + barGap: x, + barCategoryGap: L + } + }, + _recheckBarMaxWidth: function(y, H, A, D, x, E, F, G) { + for (var B = 0, z = y.length; z > B; B++) { + var C = y[B][0]; + A[C] && A[C] < E && (x -= E - A[C]) + } + return { + barWidthMap: H, + barMaxWidthMap: A, + barMinHeightMap: D, + gap: x, + barWidth: E, + barGap: F, + interval: G + } + }, + _getBarItem: function(C, P, G, M, s, O, I, F) { + var K, S = this.series, + R = S[C], + B = R.data[P], + N = this._sIndex2ColorMap[C], + A = [B, R], + Q = this.deepMerge(A, "itemStyle.normal"), + W = this.deepMerge(A, "itemStyle.emphasis"), + E = Q.barBorderWidth; + K = { + zlevel: R.zlevel, + z: R.z, + clickable: this.deepQuery(A, "clickable"), + style: { + x: M, + y: s, + width: O, + height: I, + brushType: "both", + color: this.getItemStyleColor(this.deepQuery(A, "itemStyle.normal.color") || N, C, P, B), + radius: Q.barBorderRadius, + lineWidth: E, + strokeColor: Q.barBorderColor + }, + highlightStyle: { + color: this.getItemStyleColor(this.deepQuery(A, "itemStyle.emphasis.color"), C, P, B), + radius: W.barBorderRadius, + lineWidth: W.barBorderWidth, + strokeColor: W.barBorderColor + }, + _orient: F + }; + var z = K.style; + K.highlightStyle.color = K.highlightStyle.color || ("string" == typeof z.color ? v.lift(z.color, -0.3) : z.color), z.x = Math.floor(z.x), z.y = Math.floor(z.y), z.height = Math.ceil(z.height), z.width = Math.ceil(z.width), E > 0 && z.height > E && z.width > E ? (z.y += E / 2, z.height -= E, z.x += E / 2, z.width -= E) : z.brushType = "fill", K.highlightStyle.textColor = K.highlightStyle.color, K = this.addLabel(K, R, B, G, F); + for (var D = [z, K.highlightStyle], H = 0, T = D.length; T > H; H++) { + var o = D[H].textPosition; + if ("insideLeft" === o || "insideRight" === o || "insideTop" === o || "insideBottom" === o) { + var J = 5; + switch (o) { + case "insideLeft": + D[H].textX = z.x + J, D[H].textY = z.y + z.height / 2, D[H].textAlign = "left", D[H].textBaseline = "middle"; + break; + case "insideRight": + D[H].textX = z.x + z.width - J, D[H].textY = z.y + z.height / 2, D[H].textAlign = "right", D[H].textBaseline = "middle"; + break; + case "insideTop": + D[H].textX = z.x + z.width / 2, D[H].textY = z.y + J / 2, D[H].textAlign = "center", D[H].textBaseline = "top"; + break; + case "insideBottom": + D[H].textX = z.x + z.width / 2, D[H].textY = z.y + z.height - J / 2, D[H].textAlign = "center", D[H].textBaseline = "bottom" + } + D[H].textPosition = "specific", D[H].textColor = D[H].textColor || "#fff" + } + } + return this.deepQuery([B, R, this.option], "calculable") && (this.setCalculable(K), K.draggable = !0), q.pack(K, S[C], C, S[C].data[P], P, G), K + }, + getMarkCoord: function(y, H) { + var A, D, x = this.series[y], + E = this.xMarkMap[y], + F = this.component.xAxis.getAxis(x.xAxisIndex), + G = this.component.yAxis.getAxis(x.yAxisIndex); + if (!H.type || "max" !== H.type && "min" !== H.type && "average" !== H.type) { + if (E.isHorizontal) { + A = "string" == typeof H.xAxis && F.getIndexByName ? F.getIndexByName(H.xAxis) : H.xAxis || 0; + var B = E[A]; + B = null != B ? B : "string" != typeof H.xAxis && F.getCoordByIndex ? F.getCoordByIndex(H.xAxis || 0) : F.getCoord(H.xAxis || 0), D = [B, G.getCoord(H.yAxis || 0)] + } else { + A = "string" == typeof H.yAxis && G.getIndexByName ? G.getIndexByName(H.yAxis) : H.yAxis || 0; + var z = E[A]; + z = null != z ? z : "string" != typeof H.yAxis && G.getCoordByIndex ? G.getCoordByIndex(H.yAxis || 0) : G.getCoord(H.yAxis || 0), D = [F.getCoord(H.xAxis || 0), z] + } + } else { + var C = null != H.valueIndex ? H.valueIndex : null != E.maxX0 ? "1" : ""; + D = [E[H.type + "X" + C], E[H.type + "Y" + C], E[H.type + "Line" + C], E[H.type + C]] + } + return D + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() + }, + addDataAnimation: function(z, I) { + function B() { + x--, 0 === x && I && I() + } + for (var E = this.series, o = {}, G = 0, H = z.length; H > G; G++) { + o[z[G][0]] = z[G] + } + for (var C, A, D, K, J, y, F, x = 0, G = this.shapeList.length - 1; G >= 0; G--) { + if (y = q.get(this.shapeList[G], "seriesIndex"), o[y] && !o[y][3] && "rectangle" === this.shapeList[G].type) { + if (F = q.get(this.shapeList[G], "dataIndex"), J = E[y], o[y][2] && F === J.data.length - 1) { + this.zr.delShape(this.shapeList[G].id); + continue + } + if (!o[y][2] && 0 === F) { + this.zr.delShape(this.shapeList[G].id); + continue + } + "horizontal" === this.shapeList[G]._orient ? (K = this.component.yAxis.getAxis(J.yAxisIndex || 0).getGap(), D = o[y][2] ? -K : K, C = 0) : (A = this.component.xAxis.getAxis(J.xAxisIndex || 0).getGap(), C = o[y][2] ? A : -A, D = 0), this.shapeList[G].position = [0, 0], x++, this.zr.animate(this.shapeList[G].id, "").when(this.query(this.option, "animationDurationUpdate"), { + position: [C, D] + }).done(B).start() + } + } + x || I && I() + } + }, u.inherits(w, m), l("../chart").define("bar", w), w + }), d("echarts/chart/scatter", ["require", "./base", "../util/shape/Symbol", "../component/axis", "../component/grid", "../component/dataZoom", "../component/dataRange", "../config", "zrender/tool/util", "zrender/tool/color", "../chart"], function(l) { + function u(r, x, v, i, w) { + m.call(this, r, x, v, i, w), this.refresh(i) + } + var m = l("./base"), + p = l("../util/shape/Symbol"); + l("../component/axis"), l("../component/grid"), l("../component/dataZoom"), l("../component/dataRange"); + var j = l("../config"); + j.scatter = { + zlevel: 0, + z: 2, + clickable: !0, + legendHoverLink: !0, + xAxisIndex: 0, + yAxisIndex: 0, + symbolSize: 4, + large: !1, + largeThreshold: 2000, + itemStyle: { + normal: { + label: { + show: !1 + } + }, + emphasis: { + label: { + show: !1 + } + } + } + }; + var q = l("zrender/tool/util"), + s = l("zrender/tool/color"); + return u.prototype = { + type: j.CHART_TYPE_SCATTER, + _buildShape: function() { + var a = this.series; + this._sIndex2ColorMap = {}, this._symbol = this.option.symbolList, this._sIndex2ShapeMap = {}, this.selectedMap = {}, this.xMarkMap = {}; + for (var B, v, y, z, A = this.component.legend, w = [], r = 0, x = a.length; x > r; r++) { + if (B = a[r], v = B.name, B.type === j.CHART_TYPE_SCATTER) { + if (a[r] = this.reformOption(a[r]), this.legendHoverLink = a[r].legendHoverLink || this.legendHoverLink, this._sIndex2ShapeMap[r] = this.query(B, "symbol") || this._symbol[r % this._symbol.length], A) { + if (this.selectedMap[v] = A.isSelected(v), this._sIndex2ColorMap[r] = s.alpha(A.getColor(v), 0.5), y = A.getItemShape(v)) { + var z = this._sIndex2ShapeMap[r]; + y.style.brushType = z.match("empty") ? "stroke" : "both", z = z.replace("empty", "").toLowerCase(), z.match("rectangle") && (y.style.x += Math.round((y.style.width - y.style.height) / 2), y.style.width = y.style.height), z.match("star") && (y.style.n = z.replace("star", "") - 0 || 5, z = "star"), z.match("image") && (y.style.image = z.replace(new RegExp("^image:\\/\\/"), ""), y.style.x += Math.round((y.style.width - y.style.height) / 2), y.style.width = y.style.height, z = "image"), y.style.iconType = z, A.setItemShape(v, y) + } + } else { + this.selectedMap[v] = !0, this._sIndex2ColorMap[r] = s.alpha(this.zr.getColor(r), 0.5) + } + this.selectedMap[v] && w.push(r) + } + } + this._buildSeries(w), this.addShapeList() + }, + _buildSeries: function(x) { + if (0 !== x.length) { + for (var H, z, C, v, D, F, G, A, y = this.series, B = {}, J = 0, I = x.length; I > J; J++) { + if (H = x[J], z = y[H], 0 !== z.data.length) { + D = this.component.xAxis.getAxis(z.xAxisIndex || 0), F = this.component.yAxis.getAxis(z.yAxisIndex || 0), B[H] = []; + for (var w = 0, E = z.data.length; E > w; w++) { + C = z.data[w], v = this.getDataFromOption(C, "-"), "-" === v || v.length < 2 || (G = D.getCoord(v[0]), A = F.getCoord(v[1]), B[H].push([G, A, w, C.name || ""])) + } + this.xMarkMap[H] = this._markMap(D, F, z.data, B[H]), this.buildMark(H) + } + } + this._buildPointList(B) + } + }, + _markMap: function(x, G, z, C) { + for (var v, D = { + min0: Number.POSITIVE_INFINITY, + max0: Number.NEGATIVE_INFINITY, + sum0: 0, + counter0: 0, + average0: 0, + min1: Number.POSITIVE_INFINITY, + max1: Number.NEGATIVE_INFINITY, + sum1: 0, + counter1: 0, + average1: 0 + }, E = 0, F = C.length; F > E; E++) { + v = z[C[E][2]].value || z[C[E][2]], D.min0 > v[0] && (D.min0 = v[0], D.minY0 = C[E][1], D.minX0 = C[E][0]), D.max0 < v[0] && (D.max0 = v[0], D.maxY0 = C[E][1], D.maxX0 = C[E][0]), D.sum0 += v[0], D.counter0++, D.min1 > v[1] && (D.min1 = v[1], D.minY1 = C[E][1], D.minX1 = C[E][0]), D.max1 < v[1] && (D.max1 = v[1], D.maxY1 = C[E][1], D.maxX1 = C[E][0]), D.sum1 += v[1], D.counter1++ + } + var A = this.component.grid.getX(), + y = this.component.grid.getXend(), + B = this.component.grid.getY(), + I = this.component.grid.getYend(); + D.average0 = D.sum0 / D.counter0; + var H = x.getCoord(D.average0); + D.averageLine0 = [ + [H, I], + [H, B] + ], D.minLine0 = [ + [D.minX0, I], + [D.minX0, B] + ], D.maxLine0 = [ + [D.maxX0, I], + [D.maxX0, B] + ], D.average1 = D.sum1 / D.counter1; + var w = G.getCoord(D.average1); + return D.averageLine1 = [ + [A, w], + [y, w] + ], D.minLine1 = [ + [A, D.minY1], + [y, D.minY1] + ], D.maxLine1 = [ + [A, D.maxY1], + [y, D.maxY1] + ], D + }, + _buildPointList: function(w) { + var D, x, z, v, A = this.series; + for (var B in w) { + if (D = A[B], x = w[B], D.large && D.data.length > D.largeThreshold) { + this.shapeList.push(this._getLargeSymbol(D, x, this.getItemStyleColor(this.query(D, "itemStyle.normal.color"), B, -1) || this._sIndex2ColorMap[B])) + } else { + for (var C = 0, y = x.length; y > C; C++) { + z = x[C], v = this._getSymbol(B, z[2], z[3], z[0], z[1]), v && this.shapeList.push(v) + } + } + } + }, + _getSymbol: function(w, F, y, B, v) { + var C, D = this.series, + E = D[w], + z = E.data[F], + x = this.component.dataRange; + if (x) { + if (C = isNaN(z[2]) ? this._sIndex2ColorMap[w] : x.getColor(z[2]), !C) { + return null + } + } else { + C = this._sIndex2ColorMap[w] + } + var A = this.getSymbolShape(E, w, z, F, y, B, v, this._sIndex2ShapeMap[w], C, "rgba(0,0,0,0)", "vertical"); + return A.zlevel = E.zlevel, A.z = E.z, A._main = !0, A + }, + _getLargeSymbol: function(a, o, n) { + return new p({ + zlevel: a.zlevel, + z: a.z, + _main: !0, + hoverable: !1, + style: { + pointList: o, + color: n, + strokeColor: n + }, + highlightStyle: { + pointList: [] + } + }) + }, + getMarkCoord: function(w, C) { + var x, y = this.series[w], + v = this.xMarkMap[w], + z = this.component.xAxis.getAxis(y.xAxisIndex), + A = this.component.yAxis.getAxis(y.yAxisIndex); + if (!C.type || "max" !== C.type && "min" !== C.type && "average" !== C.type) { + x = ["string" != typeof C.xAxis && z.getCoordByIndex ? z.getCoordByIndex(C.xAxis || 0) : z.getCoord(C.xAxis || 0), "string" != typeof C.yAxis && A.getCoordByIndex ? A.getCoordByIndex(C.yAxis || 0) : A.getCoord(C.yAxis || 0)] + } else { + var B = null != C.valueIndex ? C.valueIndex : 1; + x = [v[C.type + "X" + B], v[C.type + "Y" + B], v[C.type + "Line" + B], v[C.type + B]] + } + return x + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() + }, + ondataRange: function(a, i) { + this.component.dataRange && (this.refresh(), i.needRefresh = !0) + } + }, q.inherits(u, m), l("../chart").define("scatter", u), u + }), d("echarts/component/dataRange", ["require", "./base", "zrender/shape/Text", "zrender/shape/Rectangle", "../util/shape/HandlePolygon", "../config", "zrender/tool/util", "zrender/tool/event", "zrender/tool/area", "zrender/tool/color", "../component"], function(p) { + function B(l, D, m, i, r) { + u.call(this, l, D, m, i, r); + var C = this; + C._ondrift = function(a, n) { + return C.__ondrift(this, a, n) + }, C._ondragend = function() { + return C.__ondragend() + }, C._dataRangeSelected = function(a) { + return C.__dataRangeSelected(a) + }, C._dispatchHoverLink = function(a) { + return C.__dispatchHoverLink(a) + }, C._onhoverlink = function(a) { + return C.__onhoverlink(a) + }, this._selectedMap = {}, this._range = {}, this.refresh(i), D.bind(z.EVENT.HOVER, this._onhoverlink) + } + var u = p("./base"), + x = p("zrender/shape/Text"), + j = p("zrender/shape/Rectangle"), + y = p("../util/shape/HandlePolygon"), + z = p("../config"); + z.dataRange = { + zlevel: 0, + z: 4, + show: !0, + orient: "vertical", + x: "left", + y: "bottom", + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderWidth: 0, + padding: 5, + itemGap: 10, + itemWidth: 20, + itemHeight: 14, + precision: 0, + splitNumber: 5, + splitList: null, + calculable: !1, + selectedMode: !0, + hoverLink: !0, + realtime: !0, + color: ["#006edd", "#e0ffff"], + textStyle: { + color: "#333" + } + }; + var A = p("zrender/tool/util"), + v = p("zrender/tool/event"), + q = p("zrender/tool/area"), + w = p("zrender/tool/color"); + return B.prototype = { + type: z.COMPONENT_TYPE_DATARANGE, + _textGap: 10, + _buildShape: function() { + if (this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._isContinuity() ? this._buildGradient() : this._buildItem(), this.dataRangeOption.show) { + for (var a = 0, i = this.shapeList.length; i > a; a++) { + this.zr.addShape(this.shapeList[a]) + } + } + this._syncShapeFromRange() + }, + _buildItem: function() { + var C, K, D, G, I = this._valueTextList, + J = I.length, + E = this.getFont(this.dataRangeOption.textStyle), + F = this._itemGroupLocation.x, + N = this._itemGroupLocation.y, + M = this.dataRangeOption.itemWidth, + n = this.dataRangeOption.itemHeight, + H = this.dataRangeOption.itemGap, + a = q.getTextHeight("国", E); + "vertical" == this.dataRangeOption.orient && "right" == this.dataRangeOption.x && (F = this._itemGroupLocation.x + this._itemGroupLocation.width - M); + var L = !0; + this.dataRangeOption.text && (L = !1, this.dataRangeOption.text[0] && (D = this._getTextShape(F, N, this.dataRangeOption.text[0]), "horizontal" == this.dataRangeOption.orient ? F += q.getTextWidth(this.dataRangeOption.text[0], E) + this._textGap : (N += a + this._textGap, D.style.y += a / 2 + this._textGap, D.style.textBaseline = "bottom"), this.shapeList.push(new x(D)))); + for (var O = 0; J > O; O++) { + C = I[O], G = this.getColorByIndex(O), K = this._getItemShape(F, N, M, n, this._selectedMap[O] ? G : "#ccc"), K._idx = O, K.onmousemove = this._dispatchHoverLink, this.dataRangeOption.selectedMode && (K.clickable = !0, K.onclick = this._dataRangeSelected), this.shapeList.push(new j(K)), L && (D = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: F + M + 5, + y: N, + color: this._selectedMap[O] ? this.dataRangeOption.textStyle.color : "#ccc", + text: I[O], + textFont: E, + textBaseline: "top" + }, + highlightStyle: { + brushType: "fill" + } + }, "vertical" == this.dataRangeOption.orient && "right" == this.dataRangeOption.x && (D.style.x -= M + 10, D.style.textAlign = "right"), D._idx = O, D.onmousemove = this._dispatchHoverLink, this.dataRangeOption.selectedMode && (D.clickable = !0, D.onclick = this._dataRangeSelected), this.shapeList.push(new x(D))), "horizontal" == this.dataRangeOption.orient ? F += M + (L ? 5 : 0) + (L ? q.getTextWidth(C, E) : 0) + H : N += n + H + }!L && this.dataRangeOption.text[1] && ("horizontal" == this.dataRangeOption.orient ? F = F - H + this._textGap : N = N - H + this._textGap, D = this._getTextShape(F, N, this.dataRangeOption.text[1]), "horizontal" != this.dataRangeOption.orient && (D.style.y -= 5, D.style.textBaseline = "top"), this.shapeList.push(new x(D))) + }, + _buildGradient: function() { + var J, C, F = this.getFont(this.dataRangeOption.textStyle), + H = this._itemGroupLocation.x, + I = this._itemGroupLocation.y, + D = this.dataRangeOption.itemWidth, + E = this.dataRangeOption.itemHeight, + M = q.getTextHeight("国", F), + L = 10, + e = !0; + this.dataRangeOption.text && (e = !1, this.dataRangeOption.text[0] && (C = this._getTextShape(H, I, this.dataRangeOption.text[0]), "horizontal" == this.dataRangeOption.orient ? H += q.getTextWidth(this.dataRangeOption.text[0], F) + this._textGap : (I += M + this._textGap, C.style.y += M / 2 + this._textGap, C.style.textBaseline = "bottom"), this.shapeList.push(new x(C)))); + for (var G = p("zrender/tool/color"), a = 1 / (this.dataRangeOption.color.length - 1), K = [], N = 0, n = this.dataRangeOption.color.length; n > N; N++) { + K.push([N * a, this.dataRangeOption.color[N]]) + } + "horizontal" == this.dataRangeOption.orient ? (J = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: H, + y: I, + width: D * L, + height: E, + color: G.getLinearGradient(H, I, H + D * L, I, K) + }, + hoverable: !1 + }, H += D * L + this._textGap) : (J = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: H, + y: I, + width: D, + height: E * L, + color: G.getLinearGradient(H, I, H, I + E * L, K) + }, + hoverable: !1 + }, I += E * L + this._textGap), this.shapeList.push(new j(J)), this._calculableLocation = J.style, this.dataRangeOption.calculable && (this._buildFiller(), this._bulidMask(), this._bulidHandle()), this._buildIndicator(), !e && this.dataRangeOption.text[1] && (C = this._getTextShape(H, I, this.dataRangeOption.text[1]), this.shapeList.push(new x(C))) + }, + _buildIndicator: function() { + var m, F, o = this._calculableLocation.x, + C = this._calculableLocation.y, + l = this._calculableLocation.width, + D = this._calculableLocation.height, + E = 5; + "horizontal" == this.dataRangeOption.orient ? "bottom" != this.dataRangeOption.y ? (m = [ + [o, C + D], + [o - E, C + D + E], + [o + E, C + D + E] + ], F = "bottom") : (m = [ + [o, C], + [o - E, C - E], + [o + E, C - E] + ], F = "top") : "right" != this.dataRangeOption.x ? (m = [ + [o + l, C], + [o + l + E, C - E], + [o + l + E, C + E] + ], F = "right") : (m = [ + [o, C], + [o - E, C - E], + [o - E, C + E] + ], F = "left"), this._indicatorShape = { + style: { + pointList: m, + color: "#fff", + __rect: { + x: Math.min(m[0][0], m[1][0]), + y: Math.min(m[0][1], m[1][1]), + width: E * ("horizontal" == this.dataRangeOption.orient ? 2 : 1), + height: E * ("horizontal" == this.dataRangeOption.orient ? 1 : 2) + } + }, + highlightStyle: { + brushType: "fill", + textPosition: F, + textColor: this.dataRangeOption.textStyle.color + }, + hoverable: !1 + }, this._indicatorShape = new y(this._indicatorShape) + }, + _buildFiller: function() { + this._fillerShape = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + style: { + x: this._calculableLocation.x, + y: this._calculableLocation.y, + width: this._calculableLocation.width, + height: this._calculableLocation.height, + color: "rgba(255,255,255,0)" + }, + highlightStyle: { + strokeColor: "rgba(255,255,255,0.5)", + lineWidth: 1 + }, + draggable: !0, + ondrift: this._ondrift, + ondragend: this._ondragend, + onmousemove: this._dispatchHoverLink, + _type: "filler" + }, this._fillerShape = new j(this._fillerShape), this.shapeList.push(this._fillerShape) + }, + _bulidHandle: function() { + var E, M, F, I, o, K, L, G, H = this._calculableLocation.x, + P = this._calculableLocation.y, + O = this._calculableLocation.width, + D = this._calculableLocation.height, + J = this.getFont(this.dataRangeOption.textStyle), + C = q.getTextHeight("国", J), + N = Math.max(q.getTextWidth(this._textFormat(this.dataRangeOption.max), J), q.getTextWidth(this._textFormat(this.dataRangeOption.min), J)) + 2; + "horizontal" == this.dataRangeOption.orient ? "bottom" != this.dataRangeOption.y ? (E = [ + [H, P], + [H, P + D + C], + [H - C, P + D + C], + [H - 1, P + D], + [H - 1, P] + ], M = H - N / 2 - C, F = P + D + C / 2 + 2, I = { + x: H - N - C, + y: P + D, + width: N + C, + height: C + }, o = [ + [H + O, P], + [H + O, P + D + C], + [H + O + C, P + D + C], + [H + O + 1, P + D], + [H + O + 1, P] + ], K = H + O + N / 2 + C, L = F, G = { + x: H + O, + y: P + D, + width: N + C, + height: C + }) : (E = [ + [H, P + D], + [H, P - C], + [H - C, P - C], + [H - 1, P], + [H - 1, P + D] + ], M = H - N / 2 - C, F = P - C / 2 - 2, I = { + x: H - N - C, + y: P - C, + width: N + C, + height: C + }, o = [ + [H + O, P + D], + [H + O, P - C], + [H + O + C, P - C], + [H + O + 1, P], + [H + O + 1, P + D] + ], K = H + O + N / 2 + C, L = F, G = { + x: H + O, + y: P - C, + width: N + C, + height: C + }) : (N += C, "right" != this.dataRangeOption.x ? (E = [ + [H, P], + [H + O + C, P], + [H + O + C, P - C], + [H + O, P - 1], + [H, P - 1] + ], M = H + O + N / 2 + C / 2, F = P - C / 2, I = { + x: H + O, + y: P - C, + width: N + C, + height: C + }, o = [ + [H, P + D], + [H + O + C, P + D], + [H + O + C, P + C + D], + [H + O, P + 1 + D], + [H, P + D + 1] + ], K = M, L = P + D + C / 2, G = { + x: H + O, + y: P + D, + width: N + C, + height: C + }) : (E = [ + [H + O, P], + [H - C, P], + [H - C, P - C], + [H, P - 1], + [H + O, P - 1] + ], M = H - N / 2 - C / 2, F = P - C / 2, I = { + x: H - N - C, + y: P - C, + width: N + C, + height: C + }, o = [ + [H + O, P + D], + [H - C, P + D], + [H - C, P + C + D], + [H, P + 1 + D], + [H + O, P + D + 1] + ], K = M, L = P + D + C / 2, G = { + x: H - N - C, + y: P + D, + width: N + C, + height: C + })), this._startShape = { + style: { + pointList: E, + text: this._textFormat(this.dataRangeOption.max), + textX: M, + textY: F, + textFont: J, + color: this.getColor(this.dataRangeOption.max), + rect: I, + x: E[0][0], + y: E[0][1], + _x: E[0][0], + _y: E[0][1] + } + }, this._startShape.highlightStyle = { + strokeColor: this._startShape.style.color, + lineWidth: 1 + }, this._endShape = { + style: { + pointList: o, + text: this._textFormat(this.dataRangeOption.min), + textX: K, + textY: L, + textFont: J, + color: this.getColor(this.dataRangeOption.min), + rect: G, + x: o[0][0], + y: o[0][1], + _x: o[0][0], + _y: o[0][1] + } + }, this._endShape.highlightStyle = { + strokeColor: this._endShape.style.color, + lineWidth: 1 + }, this._startShape.zlevel = this._endShape.zlevel = this.getZlevelBase(), this._startShape.z = this._endShape.z = this.getZBase() + 1, this._startShape.draggable = this._endShape.draggable = !0, this._startShape.ondrift = this._endShape.ondrift = this._ondrift, this._startShape.ondragend = this._endShape.ondragend = this._ondragend, this._startShape.style.textColor = this._endShape.style.textColor = this.dataRangeOption.textStyle.color, this._startShape.style.textAlign = this._endShape.style.textAlign = "center", this._startShape.style.textPosition = this._endShape.style.textPosition = "specific", this._startShape.style.textBaseline = this._endShape.style.textBaseline = "middle", this._startShape.style.width = this._endShape.style.width = 0, this._startShape.style.height = this._endShape.style.height = 0, this._startShape.style.textPosition = this._endShape.style.textPosition = "specific", this._startShape = new y(this._startShape), this._endShape = new y(this._endShape), this.shapeList.push(this._startShape), this.shapeList.push(this._endShape) + }, + _bulidMask: function() { + var a = this._calculableLocation.x, + o = this._calculableLocation.y, + l = this._calculableLocation.width, + m = this._calculableLocation.height; + this._startMask = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + style: { + x: a, + y: o, + width: "horizontal" == this.dataRangeOption.orient ? 0 : l, + height: "horizontal" == this.dataRangeOption.orient ? m : 0, + color: "#ccc" + }, + hoverable: !1 + }, this._endMask = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + style: { + x: "horizontal" == this.dataRangeOption.orient ? a + l : a, + y: "horizontal" == this.dataRangeOption.orient ? o : o + m, + width: "horizontal" == this.dataRangeOption.orient ? 0 : l, + height: "horizontal" == this.dataRangeOption.orient ? m : 0, + color: "#ccc" + }, + hoverable: !1 + }, this._startMask = new j(this._startMask), this._endMask = new j(this._endMask), this.shapeList.push(this._startMask), this.shapeList.push(this._endMask) + }, + _buildBackground: function() { + var a = this.reformCssArray(this.dataRangeOption.padding); + this.shapeList.push(new j({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this._itemGroupLocation.x - a[3], + y: this._itemGroupLocation.y - a[0], + width: this._itemGroupLocation.width + a[3] + a[1], + height: this._itemGroupLocation.height + a[0] + a[2], + brushType: 0 === this.dataRangeOption.borderWidth ? "fill" : "both", + color: this.dataRangeOption.backgroundColor, + strokeColor: this.dataRangeOption.borderColor, + lineWidth: this.dataRangeOption.borderWidth + } + })) + }, + _getItemGroupLocation: function() { + var F = this._valueTextList, + P = F.length, + H = this.dataRangeOption.itemGap, + K = this.dataRangeOption.itemWidth, + C = this.dataRangeOption.itemHeight, + L = 0, + N = 0, + O = this.getFont(this.dataRangeOption.textStyle), + I = q.getTextHeight("国", O), + J = 10; + if ("horizontal" == this.dataRangeOption.orient) { + if (this.dataRangeOption.text || this._isContinuity()) { + L = (this._isContinuity() ? K * J + H : P * (K + H)) + (this.dataRangeOption.text && "undefined" != typeof this.dataRangeOption.text[0] ? q.getTextWidth(this.dataRangeOption.text[0], O) + this._textGap : 0) + (this.dataRangeOption.text && "undefined" != typeof this.dataRangeOption.text[1] ? q.getTextWidth(this.dataRangeOption.text[1], O) + this._textGap : 0) + } else { + K += 5; + for (var S = 0; P > S; S++) { + L += K + q.getTextWidth(F[S], O) + H + } + } + L -= H, N = Math.max(I, C) + } else { + var R; + if (this.dataRangeOption.text || this._isContinuity()) { + N = (this._isContinuity() ? C * J + H : P * (C + H)) + (this.dataRangeOption.text && "undefined" != typeof this.dataRangeOption.text[0] ? this._textGap + I : 0) + (this.dataRangeOption.text && "undefined" != typeof this.dataRangeOption.text[1] ? this._textGap + I : 0), R = Math.max(q.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[0] || "", O), q.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[1] || "", O)), L = Math.max(K, R) + } else { + N = (C + H) * P, K += 5, R = 0; + for (var S = 0; P > S; S++) { + R = Math.max(R, q.getTextWidth(F[S], O)) + } + L = K + R + } + N -= H + } + var E, M = this.reformCssArray(this.dataRangeOption.padding), + D = this.zr.getWidth(); + switch (this.dataRangeOption.x) { + case "center": + E = Math.floor((D - L) / 2); + break; + case "left": + E = M[3] + this.dataRangeOption.borderWidth; + break; + case "right": + E = D - L - M[1] - this.dataRangeOption.borderWidth; + break; + default: + E = this.parsePercent(this.dataRangeOption.x, D), E = isNaN(E) ? 0 : E + } + var Q, T = this.zr.getHeight(); + switch (this.dataRangeOption.y) { + case "top": + Q = M[0] + this.dataRangeOption.borderWidth; + break; + case "bottom": + Q = T - N - M[2] - this.dataRangeOption.borderWidth; + break; + case "center": + Q = Math.floor((T - N) / 2); + break; + default: + Q = this.parsePercent(this.dataRangeOption.y, T), Q = isNaN(Q) ? 0 : Q + } + if (this.dataRangeOption.calculable) { + var G = Math.max(q.getTextWidth(this.dataRangeOption.max, O), q.getTextWidth(this.dataRangeOption.min, O)) + I; + "horizontal" == this.dataRangeOption.orient ? (G > E && (E = G), E + L + G > D && (E -= G)) : (I > Q && (Q = I), Q + N + I > T && (Q -= I)) + } + return { + x: E, + y: Q, + width: L, + height: N + } + }, + _getTextShape: function(a, m, l) { + return { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: "horizontal" == this.dataRangeOption.orient ? a : this._itemGroupLocation.x + this._itemGroupLocation.width / 2, + y: "horizontal" == this.dataRangeOption.orient ? this._itemGroupLocation.y + this._itemGroupLocation.height / 2 : m, + color: this.dataRangeOption.textStyle.color, + text: l, + textFont: this.getFont(this.dataRangeOption.textStyle), + textBaseline: "horizontal" == this.dataRangeOption.orient ? "middle" : "top", + textAlign: "horizontal" == this.dataRangeOption.orient ? "left" : "center" + }, + hoverable: !1 + } + }, + _getItemShape: function(m, s, o, r, l) { + return { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: m, + y: s + 1, + width: o, + height: r - 2, + color: l + }, + highlightStyle: { + strokeColor: l, + lineWidth: 1 + } + } + }, + __ondrift: function(m, F, s) { + var C = this._calculableLocation.x, + l = this._calculableLocation.y, + D = this._calculableLocation.width, + E = this._calculableLocation.height; + return "horizontal" == this.dataRangeOption.orient ? m.style.x + F <= C ? m.style.x = C : m.style.x + F + m.style.width >= C + D ? m.style.x = C + D - m.style.width : m.style.x += F : m.style.y + s <= l ? m.style.y = l : m.style.y + s + m.style.height >= l + E ? m.style.y = l + E - m.style.height : m.style.y += s, "filler" == m._type ? this._syncHandleShape() : this._syncFillerShape(m), this.dataRangeOption.realtime && this._dispatchDataRange(), !0 + }, + __ondragend: function() { + this.isDragend = !0 + }, + ondragend: function(a, i) { + this.isDragend && a.target && (i.dragOut = !0, i.dragIn = !0, this.dataRangeOption.realtime || this._dispatchDataRange(), i.needRefresh = !1, this.isDragend = !1) + }, + _syncShapeFromRange: function() { + var m = this.dataRangeOption.range || {}, + s = m.start, + o = m.end; + if (s > o && (s = [o, o = s][0]), this._range.end = null != s ? s : null != this._range.end ? this._range.end : 0, this._range.start = null != o ? o : null != this._range.start ? this._range.start : 100, 100 != this._range.start || 0 !== this._range.end) { + if ("horizontal" == this.dataRangeOption.orient) { + var r = this._fillerShape.style.width; + this._fillerShape.style.x += r * (100 - this._range.start) / 100, this._fillerShape.style.width = r * (this._range.start - this._range.end) / 100 + } else { + var l = this._fillerShape.style.height; + this._fillerShape.style.y += l * (100 - this._range.start) / 100, this._fillerShape.style.height = l * (this._range.start - this._range.end) / 100 + } + this.zr.modShape(this._fillerShape.id), this._syncHandleShape() + } + }, + _syncHandleShape: function() { + var a = this._calculableLocation.x, + o = this._calculableLocation.y, + l = this._calculableLocation.width, + m = this._calculableLocation.height; + "horizontal" == this.dataRangeOption.orient ? (this._startShape.style.x = this._fillerShape.style.x, this._startMask.style.width = this._startShape.style.x - a, this._endShape.style.x = this._fillerShape.style.x + this._fillerShape.style.width, this._endMask.style.x = this._endShape.style.x, this._endMask.style.width = a + l - this._endShape.style.x, this._range.start = Math.ceil(100 - (this._startShape.style.x - a) / l * 100), this._range.end = Math.floor(100 - (this._endShape.style.x - a) / l * 100)) : (this._startShape.style.y = this._fillerShape.style.y, this._startMask.style.height = this._startShape.style.y - o, this._endShape.style.y = this._fillerShape.style.y + this._fillerShape.style.height, this._endMask.style.y = this._endShape.style.y, this._endMask.style.height = o + m - this._endShape.style.y, this._range.start = Math.ceil(100 - (this._startShape.style.y - o) / m * 100), this._range.end = Math.floor(100 - (this._endShape.style.y - o) / m * 100)), this._syncShape() + }, + _syncFillerShape: function(m) { + var F, s, C = this._calculableLocation.x, + l = this._calculableLocation.y, + D = this._calculableLocation.width, + E = this._calculableLocation.height; + "horizontal" == this.dataRangeOption.orient ? (F = this._startShape.style.x, s = this._endShape.style.x, m.id == this._startShape.id && F >= s ? (s = F, this._endShape.style.x = F) : m.id == this._endShape.id && F >= s && (F = s, this._startShape.style.x = F), this._fillerShape.style.x = F, this._fillerShape.style.width = s - F, this._startMask.style.width = F - C, this._endMask.style.x = s, this._endMask.style.width = C + D - s, this._range.start = Math.ceil(100 - (F - C) / D * 100), this._range.end = Math.floor(100 - (s - C) / D * 100)) : (F = this._startShape.style.y, s = this._endShape.style.y, m.id == this._startShape.id && F >= s ? (s = F, this._endShape.style.y = F) : m.id == this._endShape.id && F >= s && (F = s, this._startShape.style.y = F), this._fillerShape.style.y = F, this._fillerShape.style.height = s - F, this._startMask.style.height = F - l, this._endMask.style.y = s, this._endMask.style.height = l + E - s, this._range.start = Math.ceil(100 - (F - l) / E * 100), this._range.end = Math.floor(100 - (s - l) / E * 100)), this._syncShape() + }, + _syncShape: function() { + this._startShape.position = [this._startShape.style.x - this._startShape.style._x, this._startShape.style.y - this._startShape.style._y], this._startShape.style.text = this._textFormat(this._gap * this._range.start + this.dataRangeOption.min), this._startShape.style.color = this._startShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.start + this.dataRangeOption.min), this._endShape.position = [this._endShape.style.x - this._endShape.style._x, this._endShape.style.y - this._endShape.style._y], this._endShape.style.text = this._textFormat(this._gap * this._range.end + this.dataRangeOption.min), this._endShape.style.color = this._endShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.end + this.dataRangeOption.min), this.zr.modShape(this._startShape.id), this.zr.modShape(this._endShape.id), this.zr.modShape(this._startMask.id), this.zr.modShape(this._endMask.id), this.zr.modShape(this._fillerShape.id), this.zr.refreshNextFrame() + }, + _dispatchDataRange: function() { + this.messageCenter.dispatch(z.EVENT.DATA_RANGE, null, { + range: { + start: this._range.end, + end: this._range.start + } + }, this.myChart) + }, + __dataRangeSelected: function(m) { + if ("single" === this.dataRangeOption.selectedMode) { + for (var s in this._selectedMap) { + this._selectedMap[s] = !1 + } + } + var o = m.target._idx; + this._selectedMap[o] = !this._selectedMap[o]; + var r, l; + this._useCustomizedSplit() ? (r = this._splitList[o].max, l = this._splitList[o].min) : (r = (this._colorList.length - o) * this._gap + this.dataRangeOption.min, l = r - this._gap), this.messageCenter.dispatch(z.EVENT.DATA_RANGE_SELECTED, m.event, { + selected: this._selectedMap, + target: o, + valueMax: r, + valueMin: l + }, this.myChart), this.messageCenter.dispatch(z.EVENT.REFRESH, null, null, this.myChart) + }, + __dispatchHoverLink: function(m) { + var D, r; + if (this.dataRangeOption.calculable) { + var s, l = this.dataRangeOption.max - this.dataRangeOption.min; + s = "horizontal" == this.dataRangeOption.orient ? (1 - (v.getX(m.event) - this._calculableLocation.x) / this._calculableLocation.width) * l : (1 - (v.getY(m.event) - this._calculableLocation.y) / this._calculableLocation.height) * l, D = s - 0.05 * l, r = s + 0.05 * l + } else { + if (this._useCustomizedSplit()) { + var C = m.target._idx; + r = this._splitList[C].max, D = this._splitList[C].min + } else { + var C = m.target._idx; + r = (this._colorList.length - C) * this._gap + this.dataRangeOption.min, D = r - this._gap + } + } + this.messageCenter.dispatch(z.EVENT.DATA_RANGE_HOVERLINK, m.event, { + valueMin: D, + valueMax: r + }, this.myChart) + }, + __onhoverlink: function(a) { + if (this.dataRangeOption.show && this.dataRangeOption.hoverLink && this._indicatorShape && a && null != a.seriesIndex && null != a.dataIndex) { + var i = a.value; + if ("" === i || isNaN(i)) { + return + } + i < this.dataRangeOption.min ? i = this.dataRangeOption.min : i > this.dataRangeOption.max && (i = this.dataRangeOption.max), this._indicatorShape.position = "horizontal" == this.dataRangeOption.orient ? [(this.dataRangeOption.max - i) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.width, 0] : [0, (this.dataRangeOption.max - i) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.height], this._indicatorShape.style.text = this._textFormat(a.value), this._indicatorShape.style.color = this.getColor(i), this.zr.addHoverShape(this._indicatorShape) + } + }, + _textFormat: function(a, m) { + var l = this.dataRangeOption; + if (a !== -Number.MAX_VALUE && (a = (+a).toFixed(l.precision)), null != m && m !== Number.MAX_VALUE && (m = (+m).toFixed(l.precision)), l.formatter) { + if ("string" == typeof l.formatter) { + return l.formatter.replace("{value}", a === -Number.MAX_VALUE ? "min" : a).replace("{value2}", m === Number.MAX_VALUE ? "max" : m) + } + if ("function" == typeof l.formatter) { + return l.formatter.call(this.myChart, a, m) + } + } + return null == m ? a : a === -Number.MAX_VALUE ? "< " + m : m === Number.MAX_VALUE ? "> " + a : a + " - " + m + }, + _isContinuity: function() { + var a = this.dataRangeOption; + return !(a.splitList ? a.splitList.length > 0 : a.splitNumber > 0) || a.calculable + }, + _useCustomizedSplit: function() { + var a = this.dataRangeOption; + return a.splitList && a.splitList.length > 0 + }, + _buildColorList: function(m) { + if (this._colorList = w.getGradientColors(this.dataRangeOption.color, Math.max((m - this.dataRangeOption.color.length) / (this.dataRangeOption.color.length - 1), 0) + 1), this._colorList.length > m) { + for (var D = this._colorList.length, r = [this._colorList[0]], s = D / (m - 1), l = 1; m - 1 > l; l++) { + r.push(this._colorList[Math.floor(l * s)]) + } + r.push(this._colorList[D - 1]), this._colorList = r + } + if (this._useCustomizedSplit()) { + for (var C = this._splitList, l = 0, D = C.length; D > l; l++) { + C[l].color && (this._colorList[l] = C[l].color) + } + } + }, + _buildGap: function(a) { + if (!this._useCustomizedSplit()) { + var i = this.dataRangeOption.precision; + for (this._gap = (this.dataRangeOption.max - this.dataRangeOption.min) / a; this._gap.toFixed(i) - 0 != this._gap && 5 > i;) { + i++ + } + this.dataRangeOption.precision = i, this._gap = ((this.dataRangeOption.max - this.dataRangeOption.min) / a).toFixed(i) - 0 + } + }, + _buildDataList: function(m) { + for (var F = this._valueTextList = [], s = this.dataRangeOption, C = this._useCustomizedSplit(), l = 0; m > l; l++) { + this._selectedMap[l] = !0; + var D = ""; + if (C) { + var E = this._splitList[m - 1 - l]; + D = null != E.label ? E.label : null != E.single ? this._textFormat(E.single) : this._textFormat(E.min, E.max) + } else { + D = this._textFormat(l * this._gap + s.min, (l + 1) * this._gap + s.min) + } + F.unshift(D) + } + }, + _buildSplitList: function() { + if (this._useCustomizedSplit()) { + for (var m = this.dataRangeOption.splitList, D = this._splitList = [], r = 0, s = m.length; s > r; r++) { + var l = m[r]; + if (!l || null == l.start && null == l.end) { + throw new Error("Empty item exists in splitList!") + } + var C = { + label: l.label, + color: l.color + }; + C.min = l.start, C.max = l.end, C.min > C.max && (C.min = [C.max, C.max = C.min][0]), C.min === C.max && (C.single = C.max), null == C.min && (C.min = -Number.MAX_VALUE), null == C.max && (C.max = Number.MAX_VALUE), D.push(C) + } + } + }, + refresh: function(a) { + if (a) { + this.option = a, this.option.dataRange = this.reformOption(this.option.dataRange); + var m = this.dataRangeOption = this.option.dataRange; + if (!this._useCustomizedSplit() && (null == m.min || null == m.max)) { + throw new Error("option.dataRange.min or option.dataRange.max has not been defined.") + } + this.myChart.canvasSupported || (m.realtime = !1); + var l = this._isContinuity() ? 100 : this._useCustomizedSplit() ? m.splitList.length : m.splitNumber; + this._buildSplitList(), this._buildColorList(l), this._buildGap(l), this._buildDataList(l) + } + this.clear(), this._buildShape() + }, + getColor: function(m) { + if (isNaN(m)) { + return null + } + var s; + if (this._useCustomizedSplit()) { + for (var o = this._splitList, r = 0, l = o.length; l > r; r++) { + if (o[r].min <= m && o[r].max >= m) { + s = r; + break + } + } + } else { + if (this.dataRangeOption.min == this.dataRangeOption.max) { + return this._colorList[0] + } + if (m < this.dataRangeOption.min ? m = this.dataRangeOption.min : m > this.dataRangeOption.max && (m = this.dataRangeOption.max), this.dataRangeOption.calculable && (m - (this._gap * this._range.start + this.dataRangeOption.min) > 5e-05 || m - (this._gap * this._range.end + this.dataRangeOption.min) < -5e-05)) { + return null + } + s = this._colorList.length - Math.ceil((m - this.dataRangeOption.min) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._colorList.length), s == this._colorList.length && s-- + } + return this._selectedMap[s] ? this._colorList[s] : null + }, + getColorByIndex: function(a) { + return a >= this._colorList.length ? a = this._colorList.length - 1 : 0 > a && (a = 0), this._colorList[a] + }, + onbeforDispose: function() { + this.messageCenter.unbind(z.EVENT.HOVER, this._onhoverlink) + } + }, A.inherits(B, u), p("../component").define("dataRange", B), B + }), d("echarts/util/shape/HandlePolygon", ["require", "zrender/shape/Base", "zrender/shape/Polygon", "zrender/tool/util"], function(l) { + function p(a) { + m.call(this, a) + } + var m = l("zrender/shape/Base"), + o = l("zrender/shape/Polygon"), + j = l("zrender/tool/util"); + return p.prototype = { + type: "handle-polygon", + buildPath: function(a, i) { + o.prototype.buildPath(a, i) + }, + isCover: function(a, s) { + var q = this.transformCoordToLocal(a, s); + a = q[0], s = q[1]; + var r = this.style.rect; + return a >= r.x && a <= r.x + r.width && s >= r.y && s <= r.y + r.height ? !0 : !1 + } + }, j.inherits(p, m), p + }), d("echarts/chart/k", ["require", "./base", "../util/shape/Candle", "../component/axis", "../component/grid", "../component/dataZoom", "../config", "../util/ecData", "zrender/tool/util", "../chart"], function(l) { + function u(r, x, v, i, w) { + m.call(this, r, x, v, i, w), this.refresh(i) + } + var m = l("./base"), + p = l("../util/shape/Candle"); + l("../component/axis"), l("../component/grid"), l("../component/dataZoom"); + var j = l("../config"); + j.k = { + zlevel: 0, + z: 2, + clickable: !0, + hoverable: !0, + legendHoverLink: !1, + xAxisIndex: 0, + yAxisIndex: 0, + itemStyle: { + normal: { + color: "#fff", + color0: "#00aa11", + lineStyle: { + width: 1, + color: "#ff3200", + color0: "#00aa11" + }, + label: { + show: !1 + } + }, + emphasis: { + label: { + show: !1 + } + } + } + }; + var q = l("../util/ecData"), + s = l("zrender/tool/util"); + return u.prototype = { + type: j.CHART_TYPE_K, + _buildShape: function() { + var a = this.series; + this.selectedMap = {}; + for (var z, v = { + top: [], + bottom: [] + }, w = 0, x = a.length; x > w; w++) { + a[w].type === j.CHART_TYPE_K && (a[w] = this.reformOption(a[w]), this.legendHoverLink = a[w].legendHoverLink || this.legendHoverLink, z = this.component.xAxis.getAxis(a[w].xAxisIndex), z.type === j.COMPONENT_TYPE_AXIS_CATEGORY && v[z.getPosition()].push(w)) + } + for (var y in v) { + v[y].length > 0 && this._buildSinglePosition(y, v[y]) + } + this.addShapeList() + }, + _buildSinglePosition: function(w, B) { + var x = this._mapData(B), + y = x.locationMap, + v = x.maxDataLength; + if (0 !== v && 0 !== y.length) { + this._buildHorizontal(B, v, y); + for (var z = 0, A = B.length; A > z; z++) { + this.buildMark(B[z]) + } + } + }, + _mapData: function(w) { + for (var D, x, z = this.series, v = this.component.legend, A = [], B = 0, C = 0, y = w.length; y > C; C++) { + D = z[w[C]], x = D.name, this.selectedMap[x] = v ? v.isSelected(x) : !0, this.selectedMap[x] && A.push(w[C]), B = Math.max(B, D.data.length) + } + return { + locationMap: A, + maxDataLength: B + } + }, + _buildHorizontal: function(z, K, C) { + for (var F, v, G, I, J, D, B, E, N, M, x = this.series, H = {}, w = 0, L = C.length; L > w; w++) { + F = C[w], v = x[F], G = v.xAxisIndex || 0, I = this.component.xAxis.getAxis(G), B = v.barWidth || Math.floor(I.getGap() / 2), M = v.barMaxWidth, M && B > M && (B = M), J = v.yAxisIndex || 0, D = this.component.yAxis.getAxis(J), H[F] = []; + for (var O = 0, A = K; A > O && null != I.getNameByIndex(O); O++) { + E = v.data[O], N = this.getDataFromOption(E, "-"), "-" !== N && 4 == N.length && H[F].push([I.getCoordByIndex(O), B, D.getCoord(N[0]), D.getCoord(N[1]), D.getCoord(N[2]), D.getCoord(N[3]), O, I.getNameByIndex(O)]) + } + } + this._buildKLine(z, H) + }, + _buildKLine: function(A, P) { + for (var E, J, K, N, O, G, D, I, S, R, z, M, w, Q, W, C, v, B = this.series, F = 0, T = A.length; T > F; F++) { + if (v = A[F], z = B[v], Q = P[v], this._isLarge(Q) && (Q = this._getLargePointList(Q)), z.type === j.CHART_TYPE_K && null != Q) { + M = z, E = this.query(M, "itemStyle.normal.lineStyle.width"), J = this.query(M, "itemStyle.normal.lineStyle.color"), K = this.query(M, "itemStyle.normal.lineStyle.color0"), N = this.query(M, "itemStyle.normal.color"), O = this.query(M, "itemStyle.normal.color0"), G = this.query(M, "itemStyle.emphasis.lineStyle.width"), D = this.query(M, "itemStyle.emphasis.lineStyle.color"), I = this.query(M, "itemStyle.emphasis.lineStyle.color0"), S = this.query(M, "itemStyle.emphasis.color"), R = this.query(M, "itemStyle.emphasis.color0"); + for (var a = 0, H = Q.length; H > a; a++) { + W = Q[a], w = z.data[W[6]], M = w, C = W[3] < W[2], this.shapeList.push(this._getCandle(v, W[6], W[7], W[0], W[1], W[2], W[3], W[4], W[5], C ? this.query(M, "itemStyle.normal.color") || N : this.query(M, "itemStyle.normal.color0") || O, this.query(M, "itemStyle.normal.lineStyle.width") || E, C ? this.query(M, "itemStyle.normal.lineStyle.color") || J : this.query(M, "itemStyle.normal.lineStyle.color0") || K, C ? this.query(M, "itemStyle.emphasis.color") || S || N : this.query(M, "itemStyle.emphasis.color0") || R || O, this.query(M, "itemStyle.emphasis.lineStyle.width") || G || E, C ? this.query(M, "itemStyle.emphasis.lineStyle.color") || D || J : this.query(M, "itemStyle.emphasis.lineStyle.color0") || I || K)) + } + } + } + }, + _isLarge: function(a) { + return a[0][1] < 0.5 + }, + _getLargePointList: function(r) { + for (var x = this.component.grid.getWidth(), v = r.length, w = [], o = 0; x > o; o++) { + w[o] = r[Math.floor(v / x * o)] + } + return w + }, + _getCandle: function(x, J, C, n, H, I, E, B, F, M, L, w, G, v, K) { + var N = this.series, + A = N[x], + o = A.data[J], + z = [o, A], + D = { + zlevel: A.zlevel, + z: A.z, + clickable: this.deepQuery(z, "clickable"), + hoverable: this.deepQuery(z, "hoverable"), + style: { + x: n, + y: [I, E, B, F], + width: H, + color: M, + strokeColor: w, + lineWidth: L, + brushType: "both" + }, + highlightStyle: { + color: G, + strokeColor: K, + lineWidth: v + }, + _seriesIndex: x + }; + return D = this.addLabel(D, A, o, C), q.pack(D, A, x, o, J, C), D = new p(D) + }, + getMarkCoord: function(r, x) { + var v = this.series[r], + w = this.component.xAxis.getAxis(v.xAxisIndex), + o = this.component.yAxis.getAxis(v.yAxisIndex); + return ["string" != typeof x.xAxis && w.getCoordByIndex ? w.getCoordByIndex(x.xAxis || 0) : w.getCoord(x.xAxis || 0), "string" != typeof x.yAxis && o.getCoordByIndex ? o.getCoordByIndex(x.yAxis || 0) : o.getCoord(x.yAxis || 0)] + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() + }, + addDataAnimation: function(w, F) { + function y() { + C--, 0 === C && F && F() + } + for (var B = this.series, o = {}, D = 0, E = w.length; E > D; D++) { + o[w[D][0]] = w[D] + } + for (var z, x, A, H, G, v, C = 0, D = 0, E = this.shapeList.length; E > D; D++) { + if (G = this.shapeList[D]._seriesIndex, o[G] && !o[G][3] && "candle" === this.shapeList[D].type) { + if (v = q.get(this.shapeList[D], "dataIndex"), H = B[G], o[G][2] && v === H.data.length - 1) { + this.zr.delShape(this.shapeList[D].id); + continue + } + if (!o[G][2] && 0 === v) { + this.zr.delShape(this.shapeList[D].id); + continue + } + x = this.component.xAxis.getAxis(H.xAxisIndex || 0).getGap(), z = o[G][2] ? x : -x, A = 0, C++, this.zr.animate(this.shapeList[D].id, "").when(this.query(this.option, "animationDurationUpdate"), { + position: [z, A] + }).done(y).start() + } + } + C || F && F() + } + }, s.inherits(u, m), l("../chart").define("k", u), u + }), d("echarts/chart/pie", ["require", "./base", "zrender/shape/Text", "zrender/shape/Ring", "zrender/shape/Circle", "zrender/shape/Sector", "zrender/shape/Polyline", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/math", "zrender/tool/color", "../chart"], function(p) { + function B(l, F, m, i, s) { + u.call(this, l, F, m, i, s); + var E = this; + E.shapeHandler.onmouseover = function(H) { + var O = H.target, + I = q.get(O, "seriesIndex"), + L = q.get(O, "dataIndex"), + r = q.get(O, "special"), + M = [O.style.x, O.style.y], + N = O.style.startAngle, + J = O.style.endAngle, + K = ((J + N) / 2 + 360) % 360, + Q = O.highlightStyle.color, + P = E.getLabel(I, L, r, M, K, Q, !0); + P && E.zr.addHoverShape(P); + var G = E.getLabelLine(I, L, M, O.style.r0, O.style.r, K, Q, !0); + G && E.zr.addHoverShape(G) + }, this.refresh(i) + } + var u = p("./base"), + x = p("zrender/shape/Text"), + j = p("zrender/shape/Ring"), + y = p("zrender/shape/Circle"), + z = p("zrender/shape/Sector"), + A = p("zrender/shape/Polyline"), + v = p("../config"); + v.pie = { + zlevel: 0, + z: 2, + clickable: !0, + legendHoverLink: !0, + center: ["50%", "50%"], + radius: [0, "75%"], + clockWise: !0, + startAngle: 90, + minAngle: 0, + selectedOffset: 10, + itemStyle: { + normal: { + borderColor: "rgba(0,0,0,0)", + borderWidth: 1, + label: { + show: !0, + position: "outer" + }, + labelLine: { + show: !0, + length: 20, + lineStyle: { + width: 1, + type: "solid" + } + } + }, + emphasis: { + borderColor: "rgba(0,0,0,0)", + borderWidth: 1, + label: { + show: !1 + }, + labelLine: { + show: !1, + length: 20, + lineStyle: { + width: 1, + type: "solid" + } + } + } + } + }; + var q = p("../util/ecData"), + w = p("zrender/tool/util"), + D = p("zrender/tool/math"), + C = p("zrender/tool/color"); + return B.prototype = { + type: v.CHART_TYPE_PIE, + _buildShape: function() { + var a = this.series, + H = this.component.legend; + this.selectedMap = {}, this._selected = {}; + var l, E, F; + this._selectedMode = !1; + for (var G, o = 0, I = a.length; I > o; o++) { + if (a[o].type === v.CHART_TYPE_PIE) { + if (a[o] = this.reformOption(a[o]), this.legendHoverLink = a[o].legendHoverLink || this.legendHoverLink, G = a[o].name || "", this.selectedMap[G] = H ? H.isSelected(G) : !0, !this.selectedMap[G]) { + continue + } + l = this.parseCenter(this.zr, a[o].center), E = this.parseRadius(this.zr, a[o].radius), this._selectedMode = this._selectedMode || a[o].selectedMode, this._selected[o] = [], this.deepQuery([a[o], this.option], "calculable") && (F = { + zlevel: a[o].zlevel, + z: a[o].z, + hoverable: !1, + style: { + x: l[0], + y: l[1], + r0: E[0] <= 10 ? 0 : E[0] - 10, + r: E[1] + 10, + brushType: "stroke", + lineWidth: 1, + strokeColor: a[o].calculableHolderColor || this.ecTheme.calculableHolderColor || v.calculableHolderColor + } + }, q.pack(F, a[o], o, void 0, -1), this.setCalculable(F), F = E[0] <= 10 ? new y(F) : new j(F), this.shapeList.push(F)), this._buildSinglePie(o), this.buildMark(o) + } + } + this.addShapeList() + }, + _buildSinglePie: function(J) { + for (var ab, O = this.series, T = O[J], F = T.data, X = this.component.legend, Z = 0, aa = 0, Q = 0, N = Number.NEGATIVE_INFINITY, S = [], ae = 0, ad = F.length; ad > ae; ae++) { + ab = F[ae].name, this.selectedMap[ab] = X ? X.isSelected(ab) : !0, this.selectedMap[ab] && !isNaN(F[ae].value) && (0 !== +F[ae].value ? Z++ : aa++, Q += +F[ae].value, N = Math.max(N, +F[ae].value)) + } + if (0 !== Q) { + for (var I, Y, H, ac, ah, M, G = 100, K = T.clockWise, P = (T.startAngle.toFixed(2) - 0 + 360) % 360, ag = T.minAngle || 0.01, E = 360 - ag * Z - 0.01 * aa, R = T.roseType, ae = 0, ad = F.length; ad > ae; ae++) { + if (ab = F[ae].name, this.selectedMap[ab] && !isNaN(F[ae].value)) { + if (Y = X ? X.getColor(ab) : this.zr.getColor(ae), G = F[ae].value / Q, I = "area" != R ? K ? P - G * E - (0 !== G ? ag : 0.01) : G * E + P + (0 !== G ? ag : 0.01) : K ? P - 360 / ad : 360 / ad + P, I = I.toFixed(2) - 0, G = (100 * G).toFixed(2), H = this.parseCenter(this.zr, T.center), ac = this.parseRadius(this.zr, T.radius), ah = +ac[0], M = +ac[1], "radius" === R ? M = F[ae].value / N * (M - ah) * 0.8 + 0.2 * (M - ah) + ah : "area" === R && (M = Math.sqrt(F[ae].value / N) * (M - ah) + ah), K) { + var af; + af = P, P = I, I = af + } + this._buildItem(S, J, ae, G, F[ae].selected, H, ah, M, P, I, Y), K || (P = I) + } + } + this._autoLabelLayout(S, H, M); + for (var ae = 0, ad = S.length; ad > ae; ae++) { + this.shapeList.push(S[ae]) + } + S = null + } + }, + _buildItem: function(H, Q, I, L, E, M, O, P, J, K, T) { + var S = this.series, + G = ((K + J) / 2 + 360) % 360, + N = this.getSector(Q, I, L, E, M, O, P, J, K, T); + q.pack(N, S[Q], Q, S[Q].data[I], I, S[Q].data[I].name, L), H.push(N); + var F = this.getLabel(Q, I, L, M, G, T, !1), + R = this.getLabelLine(Q, I, M, O, P, G, T, !1); + R && (q.pack(R, S[Q], Q, S[Q].data[I], I, S[Q].data[I].name, L), H.push(R)), F && (q.pack(F, S[Q], Q, S[Q].data[I], I, S[Q].data[I].name, L), F._labelLine = R, H.push(F)) + }, + getSector: function(I, U, M, Q, E, R, T, O, L, P) { + var H = this.series, + S = H[I], + G = S.data[U], + V = [G, S], + X = this.deepMerge(V, "itemStyle.normal") || {}, + K = this.deepMerge(V, "itemStyle.emphasis") || {}, + F = this.getItemStyleColor(X.color, I, U, G) || P, + J = this.getItemStyleColor(K.color, I, U, G) || ("string" == typeof F ? C.lift(F, -0.2) : F), + N = { + zlevel: S.zlevel, + z: S.z, + clickable: this.deepQuery(V, "clickable"), + style: { + x: E[0], + y: E[1], + r0: R, + r: T, + startAngle: O, + endAngle: L, + brushType: "both", + color: F, + lineWidth: X.borderWidth, + strokeColor: X.borderColor, + lineJoin: "round" + }, + highlightStyle: { + color: J, + lineWidth: K.borderWidth, + strokeColor: K.borderColor, + lineJoin: "round" + }, + _seriesIndex: I, + _dataIndex: U + }; + if (Q) { + var W = ((N.style.startAngle + N.style.endAngle) / 2).toFixed(2) - 0; + N.style._hasSelected = !0, N.style._x = N.style.x, N.style._y = N.style.y; + var r = this.query(S, "selectedOffset"); + N.style.x += D.cos(W, !0) * r, N.style.y -= D.sin(W, !0) * r, this._selected[I][U] = !0 + } else { + this._selected[I][U] = !1 + } + return this._selectedMode && (N.onclick = this.shapeHandler.onclick), this.deepQuery([G, S, this.option], "calculable") && (this.setCalculable(N), N.draggable = !0), (this._needLabel(S, G, !0) || this._needLabelLine(S, G, !0)) && (N.onmouseover = this.shapeHandler.onmouseover), N = new z(N) + }, + getLabel: function(H, V, M, n, Q, S, T) { + var O = this.series, + K = O[H], + X = K.data[V]; + if (this._needLabel(K, X, T)) { + var G, R, F, W = T ? "emphasis" : "normal", + Z = w.merge(w.clone(X.itemStyle) || {}, K.itemStyle), + J = Z[W].label, + E = J.textStyle || {}, + I = n[0], + N = n[1], + Y = this.parseRadius(this.zr, K.radius), + m = "middle"; + J.position = J.position || Z.normal.label.position, "center" === J.position ? (G = I, R = N, F = "center") : "inner" === J.position || "inside" === J.position ? (Y = (Y[0] + Y[1]) * (J.distance || 0.5), G = Math.round(I + Y * D.cos(Q, !0)), R = Math.round(N - Y * D.sin(Q, !0)), S = "#fff", F = "center") : (Y = Y[1] - -Z[W].labelLine.length, G = Math.round(I + Y * D.cos(Q, !0)), R = Math.round(N - Y * D.sin(Q, !0)), F = Q >= 90 && 270 >= Q ? "right" : "left"), "center" != J.position && "inner" != J.position && "inside" != J.position && (G += "left" === F ? 20 : -20), X.__labelX = G - ("left" === F ? 5 : -5), X.__labelY = R; + var P = new x({ + zlevel: K.zlevel, + z: K.z + 1, + hoverable: !1, + style: { + x: G, + y: R, + color: E.color || S, + text: this.getLabelText(H, V, M, W), + textAlign: E.align || F, + textBaseline: E.baseline || m, + textFont: this.getFont(E) + }, + highlightStyle: { + brushType: "fill" + } + }); + return P._radius = Y, P._labelPosition = J.position || "outer", P._rect = P.getRect(P.style), P._seriesIndex = H, P._dataIndex = V, P + } + }, + getLabelText: function(m, J, E, F) { + var l = this.series, + G = l[m], + H = G.data[J], + I = this.deepQuery([H, G], "itemStyle." + F + ".label.formatter"); + return I ? "function" == typeof I ? I.call(this.myChart, { + seriesIndex: m, + seriesName: G.name || "", + series: G, + dataIndex: J, + data: H, + name: H.name, + value: H.value, + percent: E + }) : "string" == typeof I ? (I = I.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}").replace("{d}", "{d0}"), I = I.replace("{a0}", G.name).replace("{b0}", H.name).replace("{c0}", H.value).replace("{d0}", E)) : void 0 : H.name + }, + getLabelLine: function(H, S, L, O, s, P, R, N) { + var K = this.series, + V = K[H], + G = V.data[S]; + if (this._needLabelLine(V, G, N)) { + var Q = N ? "emphasis" : "normal", + F = w.merge(w.clone(G.itemStyle) || {}, V.itemStyle), + T = F[Q].labelLine, + X = T.lineStyle || {}, + J = L[0], + E = L[1], + I = s, + M = this.parseRadius(this.zr, V.radius)[1] - -T.length, + W = D.cos(P, !0), + m = D.sin(P, !0); + return new A({ + zlevel: V.zlevel, + z: V.z + 1, + hoverable: !1, + style: { + pointList: [ + [J + I * W, E - I * m], + [J + M * W, E - M * m], + [G.__labelX, G.__labelY] + ], + strokeColor: X.color || R, + lineType: X.type, + lineWidth: X.width + }, + _seriesIndex: H, + _dataIndex: S + }) + } + }, + _needLabel: function(a, m, l) { + return this.deepQuery([m, a], "itemStyle." + (l ? "emphasis" : "normal") + ".label.show") + }, + _needLabelLine: function(a, m, l) { + return this.deepQuery([m, a], "itemStyle." + (l ? "emphasis" : "normal") + ".labelLine.show") + }, + _autoLabelLayout: function(m, H, s) { + for (var E = [], l = [], F = 0, G = m.length; G > F; F++) { + ("outer" === m[F]._labelPosition || "outside" === m[F]._labelPosition) && (m[F]._rect._y = m[F]._rect.y, m[F]._rect.x < H[0] ? E.push(m[F]) : l.push(m[F])) + } + this._layoutCalculate(E, H, s, -1), this._layoutCalculate(l, H, s, 1) + }, + _layoutCalculate: function(F, O, H, K) { + function E(o, l, m) { + for (var e = o; l > e; e++) { + if (F[e]._rect.y += m, F[e].style.y += m, F[e]._labelLine && (F[e]._labelLine.style.pointList[1][1] += m, F[e]._labelLine.style.pointList[2][1] += m), e > o && l > e + 1 && F[e + 1]._rect.y > F[e]._rect.y + F[e]._rect.height) { + return void L(e, m / 2) + } + } + L(l - 1, m / 2) + } + + function L(l, a) { + for (var e = l; e >= 0 && (F[e]._rect.y -= a, F[e].style.y -= a, F[e]._labelLine && (F[e]._labelLine.style.pointList[1][1] -= a, F[e]._labelLine.style.pointList[2][1] -= a), !(e > 0 && F[e]._rect.y > F[e - 1]._rect.y + F[e - 1]._rect.height)); e--) {} + } + + function M(S, ad, W, Z, R) { + for (var aa, ab, ac, X = W[0], T = W[1], Y = R > 0 ? ad ? Number.MAX_VALUE : 0 : ad ? Number.MAX_VALUE : 0, af = 0, ae = S.length; ae > af; af++) { + ab = Math.abs(S[af]._rect.y - T), ac = S[af]._radius - Z, aa = Z + ac > ab ? Math.sqrt((Z + ac + 20) * (Z + ac + 20) - Math.pow(S[af]._rect.y - T, 2)) : Math.abs(S[af]._rect.x + (R > 0 ? 0 : S[af]._rect.width) - X), ad && aa >= Y && (aa = Y - 10), !ad && Y >= aa && (aa = Y + 10), S[af]._rect.x = S[af].style.x = X + aa * R, S[af]._labelLine && (S[af]._labelLine.style.pointList[2][0] = X + (aa - 5) * R, S[af]._labelLine.style.pointList[1][0] = X + (aa - 20) * R), Y = aa + } + } + F.sort(function(a, i) { + return a._rect.y - i._rect.y + }); + for (var N, I = 0, G = F.length, J = [], Q = [], P = 0; G > P; P++) { + N = F[P]._rect.y - I, 0 > N && E(P, G, -N, K), I = F[P]._rect.y + F[P]._rect.height + } + this.zr.getHeight() - I < 0 && L(G - 1, I - this.zr.getHeight()); + for (var P = 0; G > P; P++) { + F[P]._rect.y >= O[1] ? Q.push(F[P]) : J.push(F[P]) + } + M(Q, !0, O, H, K), M(J, !1, O, H, K) + }, + reformOption: function(a) { + var i = w.merge; + return a = i(i(a || {}, w.clone(this.ecTheme.pie || {})), w.clone(v.pie)), a.itemStyle.normal.label.textStyle = this.getTextStyle(a.itemStyle.normal.label.textStyle), a.itemStyle.emphasis.label.textStyle = this.getTextStyle(a.itemStyle.emphasis.label.textStyle), this.z = a.z, this.zlevel = a.zlevel, a + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() + }, + addDataAnimation: function(H, R) { + function K() { + Q--, 0 === Q && R && R() + } + for (var M = this.series, l = {}, N = 0, P = H.length; P > N; N++) { + l[H[N][0]] = H[N] + } + var Q = 0, + J = {}, + L = {}, + W = {}, + T = this.shapeList; + this.shapeList = []; + for (var G, O, F, S = {}, N = 0, P = H.length; P > N; N++) { + G = H[N][0], O = H[N][2], F = H[N][3], M[G] && M[G].type === v.CHART_TYPE_PIE && (O ? (F || (J[G + "_" + M[G].data.length] = "delete"), S[G] = 1) : F ? S[G] = 0 : (J[G + "_-1"] = "delete", S[G] = -1), this._buildSinglePie(G)) + } + for (var X, I, N = 0, P = this.shapeList.length; P > N; N++) { + switch (G = this.shapeList[N]._seriesIndex, X = this.shapeList[N]._dataIndex, I = G + "_" + X, this.shapeList[N].type) { + case "sector": + J[I] = this.shapeList[N]; + break; + case "text": + L[I] = this.shapeList[N]; + break; + case "polyline": + W[I] = this.shapeList[N] + } + } + this.shapeList = []; + for (var E, N = 0, P = T.length; P > N; N++) { + if (G = T[N]._seriesIndex, l[G]) { + if (X = T[N]._dataIndex + S[G], I = G + "_" + X, E = J[I], !E) { + continue + } + if ("sector" === T[N].type) { + "delete" != E ? (Q++, this.zr.animate(T[N].id, "style").when(400, { + startAngle: E.style.startAngle, + endAngle: E.style.endAngle + }).done(K).start()) : (Q++, this.zr.animate(T[N].id, "style").when(400, S[G] < 0 ? { + startAngle: T[N].style.startAngle + } : { + endAngle: T[N].style.endAngle + }).done(K).start()) + } else { + if ("text" === T[N].type || "polyline" === T[N].type) { + if ("delete" === E) { + this.zr.delShape(T[N].id) + } else { + switch (T[N].type) { + case "text": + Q++, E = L[I], this.zr.animate(T[N].id, "style").when(400, { + x: E.style.x, + y: E.style.y + }).done(K).start(); + break; + case "polyline": + Q++, E = W[I], this.zr.animate(T[N].id, "style").when(400, { + pointList: E.style.pointList + }).done(K).start() + } + } + } + } + } + } + this.shapeList = T, Q || R && R() + }, + onclick: function(E) { + var L = this.series; + if (this.isClick && E.target) { + this.isClick = !1; + for (var F, H = E.target, l = H.style, I = q.get(H, "seriesIndex"), J = q.get(H, "dataIndex"), K = 0, G = this.shapeList.length; G > K; K++) { + if (this.shapeList[K].id === H.id) { + if (I = q.get(H, "seriesIndex"), J = q.get(H, "dataIndex"), l._hasSelected) { + H.style.x = H.style._x, H.style.y = H.style._y, H.style._hasSelected = !1, this._selected[I][J] = !1 + } else { + var M = ((l.startAngle + l.endAngle) / 2).toFixed(2) - 0; + H.style._hasSelected = !0, this._selected[I][J] = !0, H.style._x = H.style.x, H.style._y = H.style.y, F = this.query(L[I], "selectedOffset"), H.style.x += D.cos(M, !0) * F, H.style.y -= D.sin(M, !0) * F + } + this.zr.modShape(H.id) + } else { + this.shapeList[K].style._hasSelected && "single" === this._selectedMode && (I = q.get(this.shapeList[K], "seriesIndex"), J = q.get(this.shapeList[K], "dataIndex"), this.shapeList[K].style.x = this.shapeList[K].style._x, this.shapeList[K].style.y = this.shapeList[K].style._y, this.shapeList[K].style._hasSelected = !1, this._selected[I][J] = !1, this.zr.modShape(this.shapeList[K].id)) + } + } + this.messageCenter.dispatch(v.EVENT.PIE_SELECTED, E.event, { + selected: this._selected, + target: q.get(H, "name") + }, this.myChart), this.zr.refreshNextFrame() + } + } + }, w.inherits(B, u), p("../chart").define("pie", B), B + }), d("echarts/chart/radar", ["require", "./base", "zrender/shape/Polygon", "../component/polar", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/color", "../util/accMath", "../chart"], function(l) { + function w(r, y, s, i, x) { + m.call(this, r, y, s, i, x), this.refresh(i) + } + var m = l("./base"), + p = l("zrender/shape/Polygon"); + l("../component/polar"); + var j = l("../config"); + j.radar = { + zlevel: 0, + z: 2, + clickable: !0, + legendHoverLink: !0, + polarIndex: 0, + itemStyle: { + normal: { + label: { + show: !1 + }, + lineStyle: { + width: 2, + type: "solid" + } + }, + emphasis: { + label: { + show: !1 + } + } + }, + symbolSize: 2 + }; + var q = l("../util/ecData"), + u = l("zrender/tool/util"), + v = l("zrender/tool/color"); + return w.prototype = { + type: j.CHART_TYPE_RADAR, + _buildShape: function() { + this.selectedMap = {}, this._symbol = this.option.symbolList, this._queryTarget, this._dropBoxList = [], this._radarDataCounter = 0; + for (var a, y = this.series, r = this.component.legend, s = 0, x = y.length; x > s; s++) { + y[s].type === j.CHART_TYPE_RADAR && (this.serie = this.reformOption(y[s]), this.legendHoverLink = y[s].legendHoverLink || this.legendHoverLink, a = this.serie.name || "", this.selectedMap[a] = r ? r.isSelected(a) : !0, this.selectedMap[a] && (this._queryTarget = [this.serie, this.option], this.deepQuery(this._queryTarget, "calculable") && this._addDropBox(s), this._buildSingleRadar(s), this.buildMark(s))) + } + this.addShapeList() + }, + _buildSingleRadar: function(y) { + for (var F, z, B, x, C = this.component.legend, D = this.serie.data, E = this.deepQuery(this._queryTarget, "calculable"), A = 0; A < D.length; A++) { + B = D[A].name || "", this.selectedMap[B] = C ? C.isSelected(B) : !0, this.selectedMap[B] && (C ? (z = C.getColor(B), F = C.getItemShape(B), F && (F.style.brushType = this.deepQuery([D[A], this.serie], "itemStyle.normal.areaStyle") ? "both" : "stroke", C.setItemShape(B, F))) : z = this.zr.getColor(A), x = this._getPointList(this.serie.polarIndex, D[A]), this._addSymbol(x, z, A, y, this.serie.polarIndex), this._addDataShape(x, z, D[A], y, A, E), this._radarDataCounter++) + } + }, + _getPointList: function(y, E) { + for (var z, A, x = [], B = this.component.polar, C = 0, D = E.value.length; D > C; C++) { + A = this.getDataFromOption(E.value[C]), z = "-" != A ? B.getVector(y, C, A) : !1, z && x.push(z) + } + return x + }, + _addSymbol: function(x, F, z, C, o) { + for (var D, E = this.series, A = this.component.polar, y = 0, B = x.length; B > y; y++) { + D = this.getSymbolShape(this.deepMerge([E[C].data[z], E[C]]), C, E[C].data[z].value[y], y, A.getIndicatorText(o, y), x[y][0], x[y][1], this._symbol[this._radarDataCounter % this._symbol.length], F, "#fff", "vertical"), D.zlevel = this.getZlevelBase(), D.z = this.getZBase() + 1, q.set(D, "data", E[C].data[z]), q.set(D, "value", E[C].data[z].value), q.set(D, "dataIndex", z), q.set(D, "special", y), this.shapeList.push(D) + } + }, + _addDataShape: function(x, E, z, n, D, A) { + var y = this.series, + B = [z, this.serie], + H = this.getItemStyleColor(this.deepQuery(B, "itemStyle.normal.color"), n, D, z), + G = this.deepQuery(B, "itemStyle.normal.lineStyle.width"), + s = this.deepQuery(B, "itemStyle.normal.lineStyle.type"), + C = this.deepQuery(B, "itemStyle.normal.areaStyle.color"), + o = this.deepQuery(B, "itemStyle.normal.areaStyle"), + F = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + pointList: x, + brushType: o ? "both" : "stroke", + color: C || H || ("string" == typeof E ? v.alpha(E, 0.5) : E), + strokeColor: H || E, + lineWidth: G, + lineType: s + }, + highlightStyle: { + brushType: this.deepQuery(B, "itemStyle.emphasis.areaStyle") || o ? "both" : "stroke", + color: this.deepQuery(B, "itemStyle.emphasis.areaStyle.color") || C || H || ("string" == typeof E ? v.alpha(E, 0.5) : E), + strokeColor: this.getItemStyleColor(this.deepQuery(B, "itemStyle.emphasis.color"), n, D, z) || H || E, + lineWidth: this.deepQuery(B, "itemStyle.emphasis.lineStyle.width") || G, + lineType: this.deepQuery(B, "itemStyle.emphasis.lineStyle.type") || s + } + }; + q.pack(F, y[n], n, z, D, z.name, this.component.polar.getIndicator(y[n].polarIndex)), A && (F.draggable = !0, this.setCalculable(F)), F = new p(F), this.shapeList.push(F) + }, + _addDropBox: function(a) { + var s = this.series, + o = this.deepQuery(this._queryTarget, "polarIndex"); + if (!this._dropBoxList[o]) { + var r = this.component.polar.getDropBox(o); + r.zlevel = this.getZlevelBase(), r.z = this.getZBase(), this.setCalculable(r), q.pack(r, s, a, void 0, -1), this.shapeList.push(r), this._dropBoxList[o] = !0 + } + }, + ondragend: function(s, A) { + var x = this.series; + if (this.isDragend && s.target) { + var y = s.target, + o = q.get(y, "seriesIndex"), + z = q.get(y, "dataIndex"); + this.component.legend && this.component.legend.del(x[o].data[z].name), x[o].data.splice(z, 1), A.dragOut = !0, A.needRefresh = !0, this.isDragend = !1 + } + }, + ondrop: function(E, y) { + var B = this.series; + if (this.isDrop && E.target) { + var e, C, D = E.target, + z = E.dragged, + x = q.get(D, "seriesIndex"), + A = q.get(D, "dataIndex"), + G = this.component.legend; + if (-1 === A) { + e = { + value: q.get(z, "value"), + name: q.get(z, "name") + }, B[x].data.push(e), G && G.add(e.name, z.style.color || z.style.strokeColor) + } else { + var F = l("../util/accMath"); + e = B[x].data[A], G && G.del(e.name), e.name += this.option.nameConnector + q.get(z, "name"), C = q.get(z, "value"); + for (var o = 0; o < C.length; o++) { + e.value[o] = F.accAdd(e.value[o], C[o]) + } + G && G.add(e.name, z.style.color || z.style.strokeColor) + } + y.dragIn = y.dragIn || !0, this.isDrop = !1 + } + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() + } + }, u.inherits(w, m), l("../chart").define("radar", w), w + }), d("echarts/component/polar", ["require", "./base", "zrender/shape/Text", "zrender/shape/Line", "zrender/shape/Polygon", "zrender/shape/Circle", "zrender/shape/Ring", "../config", "zrender/tool/util", "../util/coordinates", "../util/accMath", "../util/smartSteps", "../component"], function(p) { + function B(l, s, m, i, r) { + u.call(this, l, s, m, i, r), this.refresh(i) + } + var u = p("./base"), + x = p("zrender/shape/Text"), + j = p("zrender/shape/Line"), + y = p("zrender/shape/Polygon"), + z = p("zrender/shape/Circle"), + A = p("zrender/shape/Ring"), + v = p("../config"); + v.polar = { + zlevel: 0, + z: 0, + center: ["50%", "50%"], + radius: "75%", + startAngle: 90, + boundaryGap: [0, 0], + splitNumber: 5, + name: { + show: !0, + textStyle: { + color: "#333" + } + }, + axisLine: { + show: !0, + lineStyle: { + color: "#ccc", + width: 1, + type: "solid" + } + }, + axisLabel: { + show: !1, + textStyle: { + color: "#333" + } + }, + splitArea: { + show: !0, + areaStyle: { + color: ["rgba(250,250,250,0.3)", "rgba(200,200,200,0.3)"] + } + }, + splitLine: { + show: !0, + lineStyle: { + width: 1, + color: "#ccc" + } + }, + type: "polygon" + }; + var q = p("zrender/tool/util"), + w = p("../util/coordinates"); + return B.prototype = { + type: v.COMPONENT_TYPE_POLAR, + _buildShape: function() { + for (var a = 0; a < this.polar.length; a++) { + this._index = a, this.reformOption(this.polar[a]), this._queryTarget = [this.polar[a], this.option], this._createVector(a), this._buildSpiderWeb(a), this._buildText(a), this._adjustIndicatorValue(a), this._addAxisLabel(a) + } + for (var a = 0; a < this.shapeList.length; a++) { + this.zr.addShape(this.shapeList[a]) + } + }, + _createVector: function(C) { + for (var K, E = this.polar[C], G = this.deepQuery(this._queryTarget, "indicator"), m = G.length, H = E.startAngle, I = 2 * Math.PI / m, J = this._getRadius(), F = E.__ecIndicator = [], D = 0; m > D; D++) { + K = w.polar2cartesian(J, H * Math.PI / 180 + I * D), F.push({ + vector: [K[1], -K[0]] + }) + } + }, + _getRadius: function() { + var a = this.polar[this._index]; + return this.parsePercent(a.radius, Math.min(this.zr.getWidth(), this.zr.getHeight()) / 2) + }, + _buildSpiderWeb: function(D) { + var M = this.polar[D], + F = M.__ecIndicator, + I = M.splitArea, + C = M.splitLine, + J = this.getCenter(D), + K = M.splitNumber, + L = C.lineStyle.color, + G = C.lineStyle.width, + E = C.show, + H = this.deepQuery(this._queryTarget, "axisLine"); + this._addArea(F, K, J, I, L, G, E), H.show && this._addLine(F, J, H) + }, + _addAxisLabel: function(O) { + for (var G, e, K, M, e, N, I, J, R, Q, D = p("../util/accMath"), L = this.polar[O], C = this.deepQuery(this._queryTarget, "indicator"), P = L.__ecIndicator, T = this.deepQuery(this._queryTarget, "splitNumber"), F = this.getCenter(O), n = 0; n < C.length; n++) { + if (G = this.deepQuery([C[n], L, this.option], "axisLabel"), G.show) { + var E = this.deepQuery([G, L, this.option], "textStyle"), + H = this.deepQuery([G, L], "formatter"); + if (K = {}, K.textFont = this.getFont(E), K.color = E.color, K = q.merge(K, G), K.lineWidth = K.width, e = P[n].vector, N = P[n].value, J = n / C.length * 2 * Math.PI, R = G.offset || 10, Q = G.interval || 0, !N) { + return + } + for (var S = 1; T >= S; S += Q + 1) { + M = q.merge({}, K), I = D.accAdd(N.min, D.accMul(N.step, S)), I = "function" == typeof H ? H(I) : "string" == typeof H ? H.replace("{a}", "{a0}").replace("{a0}", I) : this.numAddCommas(I), M.text = I, M.x = S * e[0] / T + Math.cos(J) * R + F[0], M.y = S * e[1] / T + Math.sin(J) * R + F[1], this.shapeList.push(new x({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: M, + draggable: !1, + hoverable: !1 + })) + } + } + } + }, + _buildText: function(E) { + for (var N, G, n, J, L, M, H, F = this.polar[E], I = F.__ecIndicator, P = this.deepQuery(this._queryTarget, "indicator"), O = this.getCenter(E), D = 0, K = 0, C = 0; C < P.length; C++) { + J = this.deepQuery([P[C], F, this.option], "name"), J.show && (H = this.deepQuery([J, F, this.option], "textStyle"), G = {}, G.textFont = this.getFont(H), G.color = H.color, G.text = "function" == typeof J.formatter ? J.formatter.call(this.myChart, P[C].text, C) : "string" == typeof J.formatter ? J.formatter.replace("{value}", P[C].text) : P[C].text, I[C].text = G.text, N = I[C].vector, n = Math.round(N[0]) > 0 ? "left" : Math.round(N[0]) < 0 ? "right" : "center", null == J.margin ? N = this._mapVector(N, O, 1.1) : (M = J.margin, D = N[0] > 0 ? M : -M, K = N[1] > 0 ? M : -M, D = 0 === N[0] ? 0 : D, K = 0 === N[1] ? 0 : K, N = this._mapVector(N, O, 1)), G.textAlign = n, G.x = N[0] + D, G.y = N[1] + K, L = J.rotate ? [J.rotate / 180 * Math.PI, N[0], N[1]] : [0, 0, 0], this.shapeList.push(new x({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: G, + draggable: !1, + hoverable: !1, + rotation: L + }))) + } + }, + getIndicatorText: function(a, i) { + return this.polar[a] && this.polar[a].__ecIndicator[i] && this.polar[a].__ecIndicator[i].text + }, + getDropBox: function(C) { + var K, E, C = C || 0, + G = this.polar[C], + m = this.getCenter(C), + H = G.__ecIndicator, + I = H.length, + J = [], + F = G.type; + if ("polygon" == F) { + for (var D = 0; I > D; D++) { + K = H[D].vector, J.push(this._mapVector(K, m, 1.2)) + } + E = this._getShape(J, "fill", "rgba(0,0,0,0)", "", 1) + } else { + "circle" == F && (E = this._getCircle("", 1, 1.2, m, "fill", "rgba(0,0,0,0)")) + } + return E + }, + _addArea: function(D, M, F, I, C, J, K) { + for (var L, G, E, H, O = this.deepQuery(this._queryTarget, "type"), N = 0; M > N; N++) { + G = (M - N) / M, K && ("polygon" == O ? (H = this._getPointList(D, G, F), L = this._getShape(H, "stroke", "", C, J)) : "circle" == O && (L = this._getCircle(C, J, G, F, "stroke")), this.shapeList.push(L)), I.show && (E = (M - N - 1) / M, this._addSplitArea(D, I, G, E, F, N)) + } + }, + _getCircle: function(m, F, r, C, l, D) { + var E = this._getRadius(); + return new z({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: C[0], + y: C[1], + r: E * r, + brushType: l, + strokeColor: m, + lineWidth: F, + color: D + }, + hoverable: !1, + draggable: !1 + }) + }, + _getRing: function(m, s, o, r) { + var l = this._getRadius(); + return new A({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: r[0], + y: r[1], + r: s * l, + r0: o * l, + color: m, + brushType: "fill" + }, + hoverable: !1, + draggable: !1 + }) + }, + _getPointList: function(m, F, s) { + for (var C, l = [], D = m.length, E = 0; D > E; E++) { + C = m[E].vector, l.push(this._mapVector(C, s, F)) + } + return l + }, + _getShape: function(m, s, o, r, l) { + return new y({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + pointList: m, + brushType: s, + color: o, + strokeColor: r, + lineWidth: l + }, + hoverable: !1, + draggable: !1 + }) + }, + _addSplitArea: function(F, P, H, K, C, L) { + var N, O, I, G, J, R = F.length, + Q = P.areaStyle.color, + E = [], + R = F.length, + M = this.deepQuery(this._queryTarget, "type"); + if ("string" == typeof Q && (Q = [Q]), O = Q.length, N = Q[L % O], "polygon" == M) { + for (var D = 0; R > D; D++) { + E = [], I = F[D].vector, G = F[(D + 1) % R].vector, E.push(this._mapVector(I, C, H)), E.push(this._mapVector(I, C, K)), E.push(this._mapVector(G, C, K)), E.push(this._mapVector(G, C, H)), J = this._getShape(E, "fill", N, "", 1), this.shapeList.push(J) + } + } else { + "circle" == M && (J = this._getRing(N, H, K, C), this.shapeList.push(J)) + } + }, + _mapVector: function(a, m, l) { + return [a[0] * l + m[0], a[1] * l + m[1]] + }, + getCenter: function(a) { + var a = a || 0; + return this.parseCenter(this.zr, this.polar[a].center) + }, + _addLine: function(D, M, F) { + for (var I, C, J = D.length, K = F.lineStyle, L = K.color, G = K.width, E = K.type, H = 0; J > H; H++) { + C = D[H].vector, I = this._getLine(M[0], M[1], C[0] + M[0], C[1] + M[1], L, G, E), this.shapeList.push(I) + } + }, + _getLine: function(a, F, l, m, C, D, E) { + return new j({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + xStart: a, + yStart: F, + xEnd: l, + yEnd: m, + strokeColor: C, + lineWidth: D, + lineType: E + }, + hoverable: !1 + }) + }, + _adjustIndicatorValue: function(N) { + for (var F, I, e, J = this.polar[N], L = this.deepQuery(this._queryTarget, "indicator"), M = L.length, G = J.__ecIndicator, E = this._getSeriesData(N), H = J.boundaryGap, Q = J.splitNumber, P = J.scale, D = p("../util/smartSteps"), K = 0; M > K; K++) { + if ("number" == typeof L[K].max) { + F = L[K].max, I = L[K].min || 0, e = { + max: F, + min: I + } + } else { + var C = this._findValue(E, K, Q, H); + I = C.min, F = C.max + }!P && I >= 0 && F >= 0 && (I = 0), !P && 0 >= I && 0 >= F && (F = 0); + var O = D(I, F, Q, e); + G[K].value = { + min: O.min, + max: O.max, + step: O.step + } + } + }, + _getSeriesData: function(m) { + for (var H, C, D, l = [], E = this.component.legend, F = 0; F < this.series.length; F++) { + if (H = this.series[F], H.type == v.CHART_TYPE_RADAR) { + C = H.data || []; + for (var G = 0; G < C.length; G++) { + D = this.deepQuery([C[G], H, this.option], "polarIndex") || 0, D != m || E && !E.isSelected(C[G].name) || l.push(C[G]) + } + } + } + return l + }, + _findValue: function(C, K, E, G) { + function m(a) { + (a > H || void 0 === H) && (H = a), (I > a || void 0 === I) && (I = a) + } + var H, I, J; + if (C && 0 !== C.length) { + if (1 == C.length && (I = 0), 1 != C.length) { + for (var F = 0; F < C.length; F++) { + m(this.getDataFromOption(C[F].value[K])) + } + } else { + J = C[0]; + for (var F = 0; F < J.value.length; F++) { + m(this.getDataFromOption(J.value[F])) + } + } + var D = Math.abs(H - I); + return I -= Math.abs(D * G[0]), H += Math.abs(D * G[1]), I === H && (0 === H ? H = 1 : H > 0 ? I = H / E : H /= E), { + max: H, + min: I + } + } + }, + getVector: function(C, K, E) { + C = C || 0, K = K || 0; + var G = this.polar[C].__ecIndicator; + if (!(K >= G.length)) { + var m, H = this.polar[C].__ecIndicator[K], + I = this.getCenter(C), + J = H.vector, + F = H.value.max, + D = H.value.min; + if ("undefined" == typeof E) { + return I + } + switch (E) { + case "min": + E = D; + break; + case "max": + E = F; + break; + case "center": + E = (F + D) / 2 + } + return m = F != D ? (E - D) / (F - D) : 0.5, this._mapVector(J, I, m) + } + }, + isInside: function(a) { + var i = this.getNearestIndex(a); + return i ? i.polarIndex : -1 + }, + getNearestIndex: function(C) { + for (var K, E, G, m, H, I, J, F, D, L = 0; L < this.polar.length; L++) { + if (K = this.polar[L], E = this.getCenter(L), C[0] == E[0] && C[1] == E[1]) { + return { + polarIndex: L, + valueIndex: 0 + } + } + if (G = this._getRadius(), H = K.startAngle, I = K.indicator, J = I.length, F = 2 * Math.PI / J, m = w.cartesian2polar(C[0] - E[0], E[1] - C[1]), C[0] - E[0] < 0 && (m[1] += Math.PI), m[1] < 0 && (m[1] += 2 * Math.PI), D = m[1] - H / 180 * Math.PI + 2 * Math.PI, Math.abs(Math.cos(D % (F / 2))) * G > m[0]) { + return { + polarIndex: L, + valueIndex: Math.floor((D + F / 2) / F) % J + } + } + } + }, + getIndicator: function(a) { + var a = a || 0; + return this.polar[a].indicator + }, + refresh: function(a) { + a && (this.option = a, this.polar = this.option.polar, this.series = this.option.series), this.clear(), this._buildShape() + } + }, q.inherits(B, u), p("../component").define("polar", B), B + }), d("echarts/util/coordinates", ["require", "zrender/tool/math"], function(a) { + function m(i, n) { + return [i * l.sin(n), i * l.cos(n)] + } + + function j(i, n) { + return [Math.sqrt(i * i + n * n), Math.atan(n / i)] + } + var l = a("zrender/tool/math"); + return { + polar2cartesian: m, + cartesian2polar: j + } + }), d("echarts/chart/chord", ["require", "./base", "zrender/shape/Text", "zrender/shape/Line", "zrender/shape/Sector", "../util/shape/Ribbon", "../util/shape/Icon", "zrender/shape/BezierCurve", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/vector", "../data/Graph", "../layout/Chord", "../chart"], function(u) { + function E(l, r, m, i, p) { + w.call(this, l, r, m, i, p), this.scaleLineLength = 4, this.scaleUnitAngle = 4, this.refresh(i) + } + var w = u("./base"), + z = u("zrender/shape/Text"), + j = u("zrender/shape/Line"), + A = u("zrender/shape/Sector"), + C = u("../util/shape/Ribbon"), + D = u("../util/shape/Icon"), + x = u("zrender/shape/BezierCurve"), + v = u("../config"); + v.chord = { + zlevel: 0, + z: 2, + clickable: !0, + radius: ["65%", "75%"], + center: ["50%", "50%"], + padding: 2, + sort: "none", + sortSub: "none", + startAngle: 90, + clockWise: !0, + ribbonType: !0, + minRadius: 10, + maxRadius: 20, + symbol: "circle", + showScale: !1, + showScaleText: !1, + itemStyle: { + normal: { + borderWidth: 0, + borderColor: "#000", + label: { + show: !0, + rotate: !1, + distance: 5 + }, + chordStyle: { + width: 1, + color: "black", + borderWidth: 1, + borderColor: "#999", + opacity: 0.5 + } + }, + emphasis: { + borderWidth: 0, + borderColor: "#000", + chordStyle: { + width: 1, + color: "black", + borderWidth: 1, + borderColor: "#999" + } + } + } + }; + var y = u("../util/ecData"), + G = u("zrender/tool/util"), + F = u("zrender/tool/vector"), + q = u("../data/Graph"), + B = u("../layout/Chord"); + return E.prototype = { + type: v.CHART_TYPE_CHORD, + _init: function() { + var p = this.series; + this.selectedMap = {}; + for (var N = {}, H = {}, J = 0, m = p.length; m > J; J++) { + if (p[J].type === this.type) { + var K = this.isSelected(p[J].name); + this.selectedMap[p[J].name] = K, K && this.buildMark(J), this.reformOption(p[J]), N[p[J].name] = p[J] + } + } + for (var J = 0, m = p.length; m > J; J++) { + if (p[J].type === this.type) { + if (p[J].insertToSerie) { + var L = N[p[J].insertToSerie]; + p[J]._referenceSerie = L + } else { + H[p[J].name] = [p[J]] + } + } + } + for (var J = 0, m = p.length; m > J; J++) { + if (p[J].type === this.type && p[J].insertToSerie) { + for (var M = p[J]._referenceSerie; M && M._referenceSerie;) { + M = M._referenceSerie + } + H[M.name] && this.selectedMap[p[J].name] && H[M.name].push(p[J]) + } + } + for (var I in H) { + this._buildChords(H[I]) + } + this.addShapeList() + }, + _getNodeCategory: function(a, i) { + return a.categories && a.categories[i.category || 0] + }, + _getNodeQueryTarget: function(a, m) { + var l = this._getNodeCategory(a, m); + return [m, l, a] + }, + _getEdgeQueryTarget: function(a, m, l) { + return l = l || "normal", [m.itemStyle && m.itemStyle[l], a.itemStyle[l].chordStyle] + }, + _buildChords: function(J) { + for (var S = [], L = J[0], O = function(a) { + return a.layout.size > 0 + }, p = function(a) { + return function(e) { + return a.getEdge(e.node2, e.node1) + } + }, P = 0; P < J.length; P++) { + var Q = J[P]; + if (this.selectedMap[Q.name]) { + var R; + Q.matrix ? R = this._getSerieGraphFromDataMatrix(Q, L) : Q.links && (R = this._getSerieGraphFromNodeLinks(Q, L)), R.filterNode(O, this), Q.ribbonType && R.filterEdge(p(R)), S.push(R), R.__serie = Q + } + } + if (S.length) { + var M = S[0]; + if (!L.ribbonType) { + var K = L.minRadius, + N = L.maxRadius, + X = 1 / 0, + W = -(1 / 0); + M.eachNode(function(a) { + W = Math.max(a.layout.size, W), X = Math.min(a.layout.size, X) + }); + var I = (N - K) / (W - X); + M.eachNode(function(a) { + var l = this._getNodeQueryTarget(L, a), + i = this.query(l, "symbolSize"); + a.layout.size = W === X ? i || X : i || (a.layout.size - X) * I + K + }, this) + } + var H = new B; + H.clockWise = L.clockWise, H.startAngle = L.startAngle * Math.PI / 180, H.clockWise || (H.startAngle = -H.startAngle), H.padding = L.padding * Math.PI / 180, H.sort = L.sort, H.sortSub = L.sortSub, H.directed = L.ribbonType, H.run(S); + var T = this.query(L, "itemStyle.normal.label.show"); + if (L.ribbonType) { + this._buildSectors(L, 0, M, L, S), T && this._buildLabels(L, 0, M, L, S); + for (var P = 0, Y = 0; P < J.length; P++) { + this.selectedMap[J[P].name] && this._buildRibbons(J, P, S[Y++], L) + } + L.showScale && this._buildScales(L, 0, M) + } else { + this._buildNodeIcons(L, 0, M, L, S), T && this._buildLabels(L, 0, M, L, S); + for (var P = 0, Y = 0; P < J.length; P++) { + this.selectedMap[J[P].name] && this._buildEdgeCurves(J, P, S[Y++], L, M) + } + } + this._initHoverHandler(J, S) + } + }, + _getSerieGraphFromDataMatrix: function(I, S) { + for (var K = [], N = 0, H = [], O = 0; O < I.matrix.length; O++) { + H[O] = I.matrix[O].slice() + } + for (var Q = I.data || I.nodes, O = 0; O < Q.length; O++) { + var R = {}, + L = Q[O]; + L.rawIndex = O; + for (var J in L) { + "name" === J ? R.id = L.name : R[J] = L[J] + } + var M = this._getNodeCategory(S, L), + W = M ? M.name : L.name; + if (this.selectedMap[W] = this.isSelected(W), this.selectedMap[W]) { + K.push(R), N++ + } else { + H.splice(N, 1); + for (var T = 0; T < H.length; T++) { + H[T].splice(N, 1) + } + } + } + var P = q.fromMatrix(K, H, !0); + return P.eachNode(function(a) { + a.layout = { + size: a.data.outValue + }, a.rawIndex = a.data.rawIndex + }), P.eachEdge(function(a) { + a.layout = { + weight: a.data.weight + } + }), P + }, + _getSerieGraphFromNodeLinks: function(I, S) { + for (var K = new q(!0), N = I.data || I.nodes, H = 0, O = N.length; O > H; H++) { + var Q = N[H]; + if (Q && !Q.ignore) { + var R = this._getNodeCategory(S, Q), + L = R ? R.name : Q.name; + if (this.selectedMap[L] = this.isSelected(L), this.selectedMap[L]) { + var J = K.addNode(Q.name, Q); + J.rawIndex = H + } + } + } + for (var H = 0, O = I.links.length; O > H; H++) { + var M = I.links[H], + W = M.source, + T = M.target; + "number" == typeof W && (W = N[W], W && (W = W.name)), "number" == typeof T && (T = N[T], T && (T = T.name)); + var P = K.addEdge(W, T, M); + P && (P.rawIndex = H) + } + return K.eachNode(function(a) { + var l = a.data.value; + if (null == l) { + if (l = 0, S.ribbonType) { + for (var m = 0; m < a.outEdges.length; m++) { + l += a.outEdges[m].data.weight || 0 + } + } else { + for (var m = 0; m < a.edges.length; m++) { + l += a.edges[m].data.weight || 0 + } + } + } + a.layout = { + size: l + } + }), K.eachEdge(function(a) { + a.layout = { + weight: null == a.data.weight ? 1 : a.data.weight + } + }), K + }, + _initHoverHandler: function(m, r) { + var o = m[0], + p = r[0], + l = this; + p.eachNode(function(a) { + a.shape.onmouseover = function() { + p.eachNode(function(i) { + i.shape.style.opacity = 0.1, i.labelShape && (i.labelShape.style.opacity = 0.1, i.labelShape.modSelf()), i.shape.modSelf() + }); + for (var n = 0; n < r.length; n++) { + for (var H = 0; H < r[n].edges.length; H++) { + var I = r[n].edges[H], + J = l._getEdgeQueryTarget(r[n].__serie, I.data); + I.shape.style.opacity = 0.1 * l.deepQuery(J, "opacity"), I.shape.modSelf() + } + } + a.shape.style.opacity = 1, a.labelShape && (a.labelShape.style.opacity = 1); + for (var n = 0; n < r.length; n++) { + var t = r[n].getNodeById(a.id); + if (t) { + for (var H = 0; H < t.outEdges.length; H++) { + var I = t.outEdges[H], + J = l._getEdgeQueryTarget(r[n].__serie, I.data); + I.shape.style.opacity = l.deepQuery(J, "opacity"); + var e = r[0].getNodeById(I.node2.id); + e && (e.shape && (e.shape.style.opacity = 1), e.labelShape && (e.labelShape.style.opacity = 1)) + } + } + } + l.zr.refreshNextFrame() + }, a.shape.onmouseout = function() { + p.eachNode(function(s) { + s.shape.style.opacity = 1, s.labelShape && (s.labelShape.style.opacity = 1, s.labelShape.modSelf()), s.shape.modSelf() + }); + for (var i = 0; i < r.length; i++) { + for (var n = 0; n < r[i].edges.length; n++) { + var t = r[i].edges[n], + H = [t.data, o]; + t.shape.style.opacity = l.deepQuery(H, "itemStyle.normal.chordStyle.opacity"), t.shape.modSelf() + } + } + l.zr.refreshNextFrame() + } + }) + }, + _buildSectors: function(o, L, p, I) { + var m = this.parseCenter(this.zr, I.center), + J = this.parseRadius(this.zr, I.radius), + K = I.clockWise, + H = K ? 1 : -1; + p.eachNode(function(l) { + var e = this._getNodeCategory(I, l.data), + s = this.getColor(e ? e.name : l.id), + r = l.layout.startAngle / Math.PI * 180 * H, + a = l.layout.endAngle / Math.PI * 180 * H, + n = new A({ + zlevel: o.zlevel, + z: o.z, + style: { + x: m[0], + y: m[1], + r0: J[0], + r: J[1], + startAngle: r, + endAngle: a, + brushType: "fill", + opacity: 1, + color: s, + clockWise: K + }, + clickable: I.clickable, + highlightStyle: { + brushType: "fill" + } + }); + n.style.lineWidth = this.deepQuery([l.data, I], "itemStyle.normal.borderWidth"), n.highlightStyle.lineWidth = this.deepQuery([l.data, I], "itemStyle.emphasis.borderWidth"), n.style.strokeColor = this.deepQuery([l.data, I], "itemStyle.normal.borderColor"), n.highlightStyle.strokeColor = this.deepQuery([l.data, I], "itemStyle.emphasis.borderColor"), n.style.lineWidth > 0 && (n.style.brushType = "both"), n.highlightStyle.lineWidth > 0 && (n.highlightStyle.brushType = "both"), y.pack(n, o, L, l.data, l.rawIndex, l.id, l.category), this.shapeList.push(n), l.shape = n + }, this) + }, + _buildNodeIcons: function(m, J, p, s) { + var l = this.parseCenter(this.zr, s.center), + H = this.parseRadius(this.zr, s.radius), + I = H[1]; + p.eachNode(function(r) { + var K = r.layout.startAngle, + t = r.layout.endAngle, + n = (K + t) / 2, + O = I * Math.cos(n), + N = I * Math.sin(n), + e = this._getNodeQueryTarget(s, r.data), + L = this._getNodeCategory(s, r.data), + a = this.deepQuery(e, "itemStyle.normal.color"); + a || (a = this.getColor(L ? L.name : r.id)); + var M = new D({ + zlevel: m.zlevel, + z: m.z + 1, + style: { + x: -r.layout.size, + y: -r.layout.size, + width: 2 * r.layout.size, + height: 2 * r.layout.size, + iconType: this.deepQuery(e, "symbol"), + color: a, + brushType: "both", + lineWidth: this.deepQuery(e, "itemStyle.normal.borderWidth"), + strokeColor: this.deepQuery(e, "itemStyle.normal.borderColor") + }, + highlightStyle: { + color: this.deepQuery(e, "itemStyle.emphasis.color"), + lineWidth: this.deepQuery(e, "itemStyle.emphasis.borderWidth"), + strokeColor: this.deepQuery(e, "itemStyle.emphasis.borderColor") + }, + clickable: s.clickable, + position: [O + l[0], N + l[1]] + }); + y.pack(M, m, J, r.data, r.rawIndex, r.id, r.category), this.shapeList.push(M), r.shape = M + }, this) + }, + _buildLabels: function(p, O, I, n) { + var L = this.query(n, "itemStyle.normal.label.rotate"), + M = this.query(n, "itemStyle.normal.label.distance"), + N = this.parseCenter(this.zr, n.center), + J = this.parseRadius(this.zr, n.radius), + H = n.clockWise, + K = H ? 1 : -1; + I.eachNode(function(r) { + var m = r.layout.startAngle / Math.PI * 180 * K, + l = r.layout.endAngle / Math.PI * 180 * K, + P = (m * -K + l * -K) / 2; + P %= 360, 0 > P && (P += 360); + var e = 90 >= P || P >= 270; + P = P * Math.PI / 180; + var o = [Math.cos(P), -Math.sin(P)], + a = 0; + a = n.ribbonType ? n.showScaleText ? 35 + M : M : M + r.layout.size; + var s = F.scale([], o, J[1] + a); + F.add(s, s, N); + var Q = { + zlevel: p.zlevel, + z: p.z + 1, + hoverable: !1, + style: { + text: null == r.data.label ? r.id : r.data.label, + textAlign: e ? "left" : "right" + } + }; + L ? (Q.rotation = e ? P : Math.PI + P, Q.style.x = e ? J[1] + a : -J[1] - a, Q.style.y = 0, Q.position = N.slice()) : (Q.style.x = s[0], Q.style.y = s[1]), Q.style.color = this.deepQuery([r.data, n], "itemStyle.normal.label.textStyle.color") || "#000000", Q.style.textFont = this.getFont(this.deepQuery([r.data, n], "itemStyle.normal.label.textStyle")), Q = new z(Q), this.shapeList.push(Q), r.labelShape = Q + }, this) + }, + _buildRibbons: function(m, J, p, r) { + var l = m[J], + H = this.parseCenter(this.zr, r.center), + I = this.parseRadius(this.zr, r.radius); + p.eachEdge(function(K, s) { + var O, N = p.getEdge(K.node2, K.node1); + if (N && !K.shape) { + if (N.shape) { + return void(K.shape = N.shape) + } + var i = K.layout.startAngle / Math.PI * 180, + L = K.layout.endAngle / Math.PI * 180, + e = N.layout.startAngle / Math.PI * 180, + M = N.layout.endAngle / Math.PI * 180; + O = this.getColor(1 === m.length ? K.layout.weight <= N.layout.weight ? K.node1.id : K.node2.id : l.name); + var P, o, a = this._getEdgeQueryTarget(l, K.data), + n = this._getEdgeQueryTarget(l, K.data, "emphasis"), + t = new C({ + zlevel: l.zlevel, + z: l.z, + style: { + x: H[0], + y: H[1], + r: I[0], + source0: i, + source1: L, + target0: e, + target1: M, + brushType: "both", + opacity: this.deepQuery(a, "opacity"), + color: O, + lineWidth: this.deepQuery(a, "borderWidth"), + strokeColor: this.deepQuery(a, "borderColor"), + clockWise: r.clockWise + }, + clickable: r.clickable, + highlightStyle: { + brushType: "both", + opacity: this.deepQuery(n, "opacity"), + lineWidth: this.deepQuery(n, "borderWidth"), + strokeColor: this.deepQuery(n, "borderColor") + } + }); + K.layout.weight <= N.layout.weight ? (P = N.node1, o = N.node2) : (P = K.node1, o = K.node2), y.pack(t, l, J, K.data, null == K.rawIndex ? s : K.rawIndex, K.data.name || P.id + "-" + o.id, P.id, o.id), this.shapeList.push(t), K.shape = t + } + }, this) + }, + _buildEdgeCurves: function(m, J, p, s, l) { + var H = m[J], + I = this.parseCenter(this.zr, s.center); + p.eachEdge(function(o, t) { + var K = l.getNodeById(o.node1.id), + M = l.getNodeById(o.node2.id), + r = K.shape, + O = M.shape, + N = this._getEdgeQueryTarget(H, o.data), + a = this._getEdgeQueryTarget(H, o.data, "emphasis"), + L = new x({ + zlevel: H.zlevel, + z: H.z, + style: { + xStart: r.position[0], + yStart: r.position[1], + xEnd: O.position[0], + yEnd: O.position[1], + cpX1: I[0], + cpY1: I[1], + lineWidth: this.deepQuery(N, "width"), + strokeColor: this.deepQuery(N, "color"), + opacity: this.deepQuery(N, "opacity") + }, + highlightStyle: { + lineWidth: this.deepQuery(a, "width"), + strokeColor: this.deepQuery(a, "color"), + opacity: this.deepQuery(a, "opacity") + } + }); + y.pack(L, H, J, o.data, null == o.rawIndex ? t : o.rawIndex, o.data.name || o.node1.id + "-" + o.node2.id, o.node1.id, o.node2.id), this.shapeList.push(L), o.shape = L + }, this) + }, + _buildScales: function(n, P, I) { + var L, N, O = n.clockWise, + J = this.parseCenter(this.zr, n.center), + H = this.parseRadius(this.zr, n.radius), + K = O ? 1 : -1, + Q = 0, + a = -(1 / 0); + n.showScaleText && (I.eachNode(function(i) { + var l = i.data.value; + l > a && (a = l), Q += l + }), a > 10000000000 ? (L = "b", N = 1e-09) : a > 10000000 ? (L = "m", N = 1e-06) : a > 10000 ? (L = "k", N = 0.001) : (L = "", N = 1)); + var M = Q / (360 - n.padding); + I.eachNode(function(T) { + for (var s = T.layout.startAngle / Math.PI * 180, W = T.layout.endAngle / Math.PI * 180, o = s;;) { + if (O && o > W || !O && W > o) { + break + } + var m = o / 180 * Math.PI, + U = [Math.cos(m), Math.sin(m)], + Y = F.scale([], U, H[1] + 1); + F.add(Y, Y, J); + var r = F.scale([], U, H[1] + this.scaleLineLength); + F.add(r, r, J); + var l = new j({ + zlevel: n.zlevel, + z: n.z - 1, + hoverable: !1, + style: { + xStart: Y[0], + yStart: Y[1], + xEnd: r[0], + yEnd: r[1], + lineCap: "round", + brushType: "stroke", + strokeColor: "#666", + lineWidth: 1 + } + }); + this.shapeList.push(l), o += K * this.scaleUnitAngle + } + if (n.showScaleText) { + for (var p = s, R = 5 * M * this.scaleUnitAngle, X = 0;;) { + if (O && p > W || !O && W > p) { + break + } + var m = p; + m %= 360, 0 > m && (m += 360); + var e = 90 >= m || m >= 270, + S = new z({ + zlevel: n.zlevel, + z: n.z - 1, + hoverable: !1, + style: { + x: e ? H[1] + this.scaleLineLength + 4 : -H[1] - this.scaleLineLength - 4, + y: 0, + text: Math.round(10 * X) / 10 + L, + textAlign: e ? "left" : "right" + }, + position: J.slice(), + rotation: e ? [-m / 180 * Math.PI, 0, 0] : [-(m + 180) / 180 * Math.PI, 0, 0] + }); + this.shapeList.push(S), X += R * N, p += K * this.scaleUnitAngle * 5 + } + } + }, this) + }, + refresh: function(a) { + if (a && (this.option = a, this.series = a.series), this.legend = this.component.legend, this.legend) { + this.getColor = function(i) { + return this.legend.getColor(i) + }, this.isSelected = function(i) { + return this.legend.isSelected(i) + } + } else { + var m = {}, + l = 0; + this.getColor = function(i) { + return m[i] ? m[i] : (m[i] || (m[i] = this.zr.getColor(l++)), m[i]) + }, this.isSelected = function() { + return !0 + } + } + this.backupShapeList(), this._init() + }, + reformOption: function(a) { + var i = G.merge; + a = i(i(a || {}, this.ecTheme.chord), v.chord), a.itemStyle.normal.label.textStyle = this.getTextStyle(a.itemStyle.normal.label.textStyle), this.z = a.z, this.zlevel = a.zlevel + } + }, G.inherits(E, w), u("../chart").define("chord", E), E + }), d("echarts/util/shape/Ribbon", ["require", "zrender/shape/Base", "zrender/shape/util/PathProxy", "zrender/tool/util", "zrender/tool/area"], function(l) { + function r(a) { + m.call(this, a), this._pathProxy = new p + } + var m = l("zrender/shape/Base"), + p = l("zrender/shape/util/PathProxy"), + j = l("zrender/tool/util"), + q = l("zrender/tool/area"); + return r.prototype = { + type: "ribbon", + buildPath: function(z, K) { + var C = K.clockWise || !1, + F = this._pathProxy; + F.begin(z); + var v = K.x, + G = K.y, + I = K.r, + J = K.source0 / 180 * Math.PI, + D = K.source1 / 180 * Math.PI, + B = K.target0 / 180 * Math.PI, + E = K.target1 / 180 * Math.PI, + N = v + Math.cos(J) * I, + M = G + Math.sin(J) * I, + x = v + Math.cos(D) * I, + H = G + Math.sin(D) * I, + w = v + Math.cos(B) * I, + L = G + Math.sin(B) * I, + O = v + Math.cos(E) * I, + A = G + Math.sin(E) * I; + F.moveTo(N, M), F.arc(v, G, K.r, J, D, !C), F.bezierCurveTo(0.7 * (v - x) + x, 0.7 * (G - H) + H, 0.7 * (v - w) + w, 0.7 * (G - L) + L, w, L), (K.source0 !== K.target0 || K.source1 !== K.target1) && (F.arc(v, G, K.r, B, E, !C), F.bezierCurveTo(0.7 * (v - O) + O, 0.7 * (G - A) + A, 0.7 * (v - N) + N, 0.7 * (G - M) + M, N, M)) + }, + getRect: function(a) { + return a.__rect ? a.__rect : (this._pathProxy.isEmpty() || this.buildPath(null, a), this._pathProxy.fastBoundingRect()) + }, + isCover: function(a, o) { + var n = this.getRect(this.style); + return a >= n.x && a <= n.x + n.width && o >= n.y && o <= n.y + n.height ? q.isInsidePath(this._pathProxy.pathCommands, 0, "fill", a, o) : void 0 + } + }, j.inherits(r, m), r + }), d("echarts/data/Graph", ["require", "zrender/tool/util"], function(l) { + var p = l("zrender/tool/util"), + m = function(a) { + this._directed = a || !1, this.nodes = [], this.edges = [], this._nodesMap = {}, this._edgesMap = {} + }; + m.prototype.isDirected = function() { + return this._directed + }, m.prototype.addNode = function(a, q) { + if (this._nodesMap[a]) { + return this._nodesMap[a] + } + var i = new m.Node(a, q); + return this.nodes.push(i), this._nodesMap[a] = i, i + }, m.prototype.getNodeById = function(a) { + return this._nodesMap[a] + }, m.prototype.addEdge = function(q, u, r) { + if ("string" == typeof q && (q = this._nodesMap[q]), "string" == typeof u && (u = this._nodesMap[u]), q && u) { + var i = q.id + "-" + u.id; + if (this._edgesMap[i]) { + return this._edgesMap[i] + } + var s = new m.Edge(q, u, r); + return this._directed && (q.outEdges.push(s), u.inEdges.push(s)), q.edges.push(s), q !== u && u.edges.push(s), this.edges.push(s), this._edgesMap[i] = s, s + } + }, m.prototype.removeEdge = function(r) { + var s = r.node1, + t = r.node2, + q = s.id + "-" + t.id; + this._directed && (s.outEdges.splice(p.indexOf(s.outEdges, r), 1), t.inEdges.splice(p.indexOf(t.inEdges, r), 1)), s.edges.splice(p.indexOf(s.edges, r), 1), s !== t && t.edges.splice(p.indexOf(t.edges, r), 1), delete this._edgesMap[q], this.edges.splice(p.indexOf(this.edges, r), 1) + }, m.prototype.getEdge = function(a, i) { + return "string" != typeof a && (a = a.id), "string" != typeof i && (i = i.id), this._directed ? this._edgesMap[a + "-" + i] : this._edgesMap[a + "-" + i] || this._edgesMap[i + "-" + a] + }, m.prototype.removeNode = function(a) { + if ("string" != typeof a || (a = this._nodesMap[a])) { + delete this._nodesMap[a.id], this.nodes.splice(p.indexOf(this.nodes, a), 1); + for (var q = 0; q < this.edges.length;) { + var r = this.edges[q]; + r.node1 === a || r.node2 === a ? this.removeEdge(r) : q++ + } + } + }, m.prototype.filterNode = function(a, s) { + for (var q = this.nodes.length, r = 0; q > r;) { + a.call(s, this.nodes[r], r) ? r++ : (this.removeNode(this.nodes[r]), q--) + } + }, m.prototype.filterEdge = function(a, s) { + for (var q = this.edges.length, r = 0; q > r;) { + a.call(s, this.edges[r], r) ? r++ : (this.removeEdge(this.edges[r]), q--) + } + }, m.prototype.eachNode = function(a, s) { + for (var q = this.nodes.length, r = 0; q > r; r++) { + this.nodes[r] && a.call(s, this.nodes[r], r) + } + }, m.prototype.eachEdge = function(a, s) { + for (var q = this.edges.length, r = 0; q > r; r++) { + this.edges[r] && a.call(s, this.edges[r], r) + } + }, m.prototype.clear = function() { + this.nodes.length = 0, this.edges.length = 0, this._nodesMap = {}, this._edgesMap = {} + }, m.prototype.breadthFirstTraverse = function(u, D, w, z) { + if ("string" == typeof D && (D = this._nodesMap[D]), D) { + var q = "edges"; + "out" === w ? q = "outEdges" : "in" === w && (q = "inEdges"); + for (var A = 0; A < this.nodes.length; A++) { + this.nodes[A].__visited = !1 + } + if (!u.call(z, D, null)) { + for (var B = [D]; B.length;) { + for (var C = B.shift(), x = C[q], A = 0; A < x.length; A++) { + var v = x[A], + y = v.node1 === C ? v.node2 : v.node1; + if (!y.__visited) { + if (u.call(y, y, C)) { + return + } + B.push(y), y.__visited = !0 + } + } + } + } + } + }, m.prototype.clone = function() { + for (var a = new m(this._directed), q = 0; q < this.nodes.length; q++) { + a.addNode(this.nodes[q].id, this.nodes[q].data) + } + for (var q = 0; q < this.edges.length; q++) { + var i = this.edges[q]; + a.addEdge(i.node1.id, i.node2.id, i.data) + } + return a + }; + var o = function(a, i) { + this.id = a, this.data = i || null, this.inEdges = [], this.outEdges = [], this.edges = [] + }; + o.prototype.degree = function() { + return this.edges.length + }, o.prototype.inDegree = function() { + return this.inEdges.length + }, o.prototype.outDegree = function() { + return this.outEdges.length + }; + var j = function(a, q, n) { + this.node1 = a, this.node2 = q, this.data = n || null + }; + return m.Node = o, m.Edge = j, m.fromMatrix = function(u, C, y) { + if (C && C.length && C[0].length === C.length && u.length === C.length) { + for (var i = C.length, z = new m(y), A = 0; i > A; A++) { + var B = z.addNode(u[A].id, u[A]); + B.data.value = 0, y && (B.data.outValue = B.data.inValue = 0) + } + for (var A = 0; i > A; A++) { + for (var w = 0; i > w; w++) { + var v = C[A][w]; + y && (z.nodes[A].data.outValue += v, z.nodes[w].data.inValue += v), z.nodes[A].data.value += v, z.nodes[w].data.value += v + } + } + for (var A = 0; i > A; A++) { + for (var w = A; i > w; w++) { + var v = C[A][w]; + if (0 !== v) { + var x = z.nodes[A], + E = z.nodes[w], + D = z.addEdge(x, E, {}); + if (D.data.weight = v, A !== w && y && C[w][A]) { + var q = z.addEdge(E, x, {}); + q.data.weight = C[w][A] + } + } + } + } + return z + } + }, m + }), d("echarts/layout/Chord", ["require"], function() { + var a = function(i) { + i = i || {}, this.sort = i.sort || null, this.sortSub = i.sortSub || null, this.padding = 0.05, this.startAngle = i.startAngle || 0, this.clockWise = null == i.clockWise ? !1 : i.clockWise, this.center = i.center || [0, 0], this.directed = !0 + }; + a.prototype.run = function(w) { + w instanceof Array || (w = [w]); + var F = w.length; + if (F) { + for (var i = w[0], G = i.nodes.length, I = [], J = 0, D = 0; G > D; D++) { + var B = i.nodes[D], + E = { + size: 0, + subGroups: [], + node: B + }; + I.push(E); + for (var M = 0, L = 0; L < w.length; L++) { + var v = w[L], + H = v.getNodeById(B.id); + if (H) { + E.size += H.layout.size; + for (var t = this.directed ? H.outEdges : H.edges, K = 0; K < t.length; K++) { + var O = t[K], + A = O.layout.weight; + E.subGroups.push({ + weight: A, + edge: O, + graph: v + }), M += A + } + } + } + J += E.size; + for (var q = E.size / M, K = 0; K < E.subGroups.length; K++) { + E.subGroups[K].weight *= q + } + "ascending" === this.sortSub ? E.subGroups.sort(l) : "descending" === this.sort && (E.subGroups.sort(l), E.subGroups.reverse()) + } + "ascending" === this.sort ? I.sort(j) : "descending" === this.sort && (I.sort(j), I.reverse()); + for (var q = (2 * Math.PI - this.padding * G) / J, z = this.startAngle, C = this.clockWise ? 1 : -1, D = 0; G > D; D++) { + var E = I[D]; + E.node.layout.startAngle = z, E.node.layout.endAngle = z + C * E.size * q, E.node.layout.subGroups = []; + for (var K = 0; K < E.subGroups.length; K++) { + var N = E.subGroups[K]; + N.edge.layout.startAngle = z, z += C * N.weight * q, N.edge.layout.endAngle = z + } + z = E.node.layout.endAngle + C * this.padding + } + } + }; + var l = function(i, m) { + return i.weight - m.weight + }, + j = function(i, m) { + return i.size - m.size + }; + return a + }), d("echarts/chart/force", ["require", "./base", "../data/Graph", "../layout/Force", "zrender/shape/Line", "zrender/shape/BezierCurve", "zrender/shape/Image", "../util/shape/Icon", "../config", "../util/ecData", "zrender/tool/util", "zrender/config", "zrender/tool/vector", "../chart"], function(w) { + function H(a, p, n, i, l) { + var r = this; + F.call(this, a, p, n, i, l), this.__nodePositionMap = {}, this._graph = new G(!0), this._layout = new A, this._layout.onupdate = function() { + r._step() + }, this._steps = 1, this.ondragstart = function() { + z.apply(r, arguments) + }, this.ondragend = function() { + j.apply(r, arguments) + }, this.ondrop = function() {}, this.shapeHandler.ondragstart = function() { + r.isDragstart = !0 + }, this.onmousemove = function() { + C.apply(r, arguments) + }, this.refresh(i) + } + + function z(a) { + if (this.isDragstart && a.target) { + var i = a.target; + i.fixed = !0, this.isDragstart = !1, this.zr.on(I.EVENT.MOUSEMOVE, this.onmousemove) + } + } + + function C() { + this._layout.temperature = 0.8, this._step() + } + + function j(a, m) { + if (this.isDragend && a.target) { + var l = a.target; + l.fixed = !1, m.dragIn = !0, m.needRefresh = !1, this.isDragend = !1, this.zr.un(I.EVENT.MOUSEMOVE, this.onmousemove) + } + } + + function D(a, o, l) { + var m = L.create(); + return m[0] = (Math.random() - 0.5) * l + a, m[1] = (Math.random() - 0.5) * l + o, m + } + var F = w("./base"), + G = w("../data/Graph"), + A = w("../layout/Force"), + x = w("zrender/shape/Line"), + B = w("zrender/shape/BezierCurve"), + K = w("zrender/shape/Image"), + J = w("../util/shape/Icon"), + v = w("../config"); + v.force = { + zlevel: 1, + z: 2, + center: ["50%", "50%"], + size: "100%", + preventOverlap: !1, + coolDown: 0.99, + minRadius: 10, + maxRadius: 20, + ratioScaling: !1, + large: !1, + useWorker: !1, + steps: 1, + scaling: 1, + gravity: 1, + symbol: "circle", + symbolSize: 0, + linkSymbol: null, + linkSymbolSize: [10, 15], + draggable: !0, + clickable: !0, + roam: !1, + itemStyle: { + normal: { + label: { + show: !1, + position: "inside" + }, + nodeStyle: { + brushType: "both", + borderColor: "#5182ab", + borderWidth: 1 + }, + linkStyle: { + color: "#5182ab", + width: 1, + type: "line" + } + }, + emphasis: { + label: { + show: !1 + }, + nodeStyle: {}, + linkStyle: { + opacity: 0 + } + } + } + }; + var E = w("../util/ecData"), + q = w("zrender/tool/util"), + I = w("zrender/config"), + L = w("zrender/tool/vector"); + return H.prototype = { + constructor: H, + type: v.CHART_TYPE_FORCE, + _init: function() { + this.selectedMap = {}; + var m, u = this.component.legend, + p = this.series; + this.clear(); + for (var r = 0, l = p.length; l > r; r++) { + var s = p[r]; + if (s.type === v.CHART_TYPE_FORCE) { + if (p[r] = this.reformOption(p[r]), m = p[r].name || "", this.selectedMap[m] = u ? u.isSelected(m) : !0, !this.selectedMap[m]) { + continue + } + this.buildMark(r), this._initSerie(s, r); + break + } + } + this.animationEffect() + }, + _getNodeCategory: function(a, i) { + return a.categories && a.categories[i.category || 0] + }, + _getNodeQueryTarget: function(a, o, l) { + l = l || "normal"; + var m = this._getNodeCategory(a, o) || {}; + return [o.itemStyle && o.itemStyle[l], m && m.itemStyle && m.itemStyle[l], a.itemStyle[l].nodeStyle] + }, + _getEdgeQueryTarget: function(a, m, l) { + return l = l || "normal", [m.itemStyle && m.itemStyle[l], a.itemStyle[l].linkStyle] + }, + _initSerie: function(a, o) { + this._temperature = 1, a.matrix ? this._graph = this._getSerieGraphFromDataMatrix(a) : a.links && (this._graph = this._getSerieGraphFromNodeLinks(a)), this._buildLinkShapes(a, o), this._buildNodeShapes(a, o); + var l = a.roam === !0 || "move" === a.roam, + m = a.roam === !0 || "scale" === a.roam; + this.zr.modLayer(this.getZlevelBase(), { + panable: l, + zoomable: m + }), (this.query("markPoint.effect.show") || this.query("markLine.effect.show")) && this.zr.modLayer(v.EFFECT_ZLEVEL, { + panable: l, + zoomable: m + }), this._initLayout(a), this._step() + }, + _getSerieGraphFromDataMatrix: function(u) { + for (var S = [], M = 0, P = [], p = 0; p < u.matrix.length; p++) { + P[p] = u.matrix[p].slice() + } + for (var Q = u.data || u.nodes, p = 0; p < Q.length; p++) { + var R = {}, + N = Q[p]; + for (var y in N) { + "name" === y ? R.id = N.name : R[y] = N[y] + } + var O = this._getNodeCategory(u, N), + W = O ? O.name : N.name; + if (this.selectedMap[W] = this.isSelected(W), this.selectedMap[W]) { + S.push(R), M++ + } else { + P.splice(M, 1); + for (var T = 0; T < P.length; T++) { + P[T].splice(M, 1) + } + } + } + var s = G.fromMatrix(S, P, !0); + return s.eachNode(function(a, i) { + a.layout = { + size: a.data.value, + mass: 0 + }, a.rawIndex = i + }), s.eachEdge(function(a) { + a.layout = { + weight: a.data.weight + } + }), s + }, + _getSerieGraphFromNodeLinks: function(u) { + for (var S = new G(!0), M = u.data || u.nodes, P = 0, p = M.length; p > P; P++) { + var Q = M[P]; + if (Q && !Q.ignore) { + var R = this._getNodeCategory(u, Q), + N = R ? R.name : Q.name; + if (this.selectedMap[N] = this.isSelected(N), this.selectedMap[N]) { + var y = S.addNode(Q.name, Q); + y.rawIndex = P + } + } + } + for (var P = 0, p = u.links.length; p > P; P++) { + var O = u.links[P], + W = O.source, + T = O.target; + "number" == typeof W && (W = M[W], W && (W = W.name)), "number" == typeof T && (T = M[T], T && (T = T.name)); + var s = S.addEdge(W, T, O); + s && (s.rawIndex = P) + } + return S.eachNode(function(a) { + var m = a.data.value; + if (null == m) { + m = 0; + for (var l = 0; l < a.edges.length; l++) { + m += a.edges[l].data.weight || 0 + } + } + a.layout = { + size: m, + mass: 0 + } + }), S.eachEdge(function(a) { + a.layout = { + weight: null == a.data.weight ? 1 : a.data.weight + } + }), S + }, + _initLayout: function(N) { + var Y = this._graph, + P = Y.nodes.length, + S = this.query(N, "minRadius"), + o = this.query(N, "maxRadius"); + this._steps = N.steps || 1; + var W = this._layout; + W.center = this.parseCenter(this.zr, N.center), W.width = this.parsePercent(N.size, this.zr.getWidth()), W.height = this.parsePercent(N.size, this.zr.getHeight()), W.large = N.large, W.scaling = N.scaling, W.ratioScaling = N.ratioScaling, W.gravity = N.gravity, W.temperature = 1, W.coolDown = N.coolDown, W.preventNodeEdgeOverlap = N.preventOverlap, W.preventNodeOverlap = N.preventOverlap; + for (var X = 1 / 0, Q = -(1 / 0), O = 0; P > O; O++) { + var R = Y.nodes[O]; + Q = Math.max(R.layout.size, Q), X = Math.min(R.layout.size, X) + } + for (var ab = Q - X, O = 0; P > O; O++) { + var R = Y.nodes[O]; + ab > 0 ? (R.layout.size = (R.layout.size - X) * (o - S) / ab + S, R.layout.mass = R.layout.size / o) : (R.layout.size = (o - S) / 2, R.layout.mass = 0.5) + } + for (var O = 0; P > O; O++) { + var R = Y.nodes[O]; + if ("undefined" != typeof this.__nodePositionMap[R.id]) { + R.layout.position = L.create(), L.copy(R.layout.position, this.__nodePositionMap[R.id]) + } else { + if ("undefined" != typeof R.data.initial) { + R.layout.position = L.create(), L.copy(R.layout.position, R.data.initial) + } else { + var aa = this._layout.center, + M = Math.min(this._layout.width, this._layout.height); + R.layout.position = D(aa[0], aa[1], 0.8 * M) + } + } + var T = R.shape.style, + y = R.layout.size; + T.width = T.width || 2 * y, T.height = T.height || 2 * y, T.x = -T.width / 2, T.y = -T.height / 2, L.copy(R.shape.position, R.layout.position) + } + P = Y.edges.length, Q = -(1 / 0); + for (var O = 0; P > O; O++) { + var Z = Y.edges[O]; + Z.layout.weight > Q && (Q = Z.layout.weight) + } + for (var O = 0; P > O; O++) { + var Z = Y.edges[O]; + Z.layout.weight /= Q + } + this._layout.init(Y, N.useWorker) + }, + _buildNodeShapes: function(a, o) { + var l = this._graph, + m = this.query(a, "categories"); + l.eachNode(function(p) { + var e = this._getNodeCategory(a, p.data), + y = [p.data, e, a], + M = this._getNodeQueryTarget(a, p.data), + N = this._getNodeQueryTarget(a, p.data, "emphasis"), + t = new J({ + style: { + x: 0, + y: 0, + color: this.deepQuery(M, "color"), + brushType: "both", + strokeColor: this.deepQuery(M, "strokeColor") || this.deepQuery(M, "borderColor"), + lineWidth: this.deepQuery(M, "lineWidth") || this.deepQuery(M, "borderWidth") + }, + highlightStyle: { + color: this.deepQuery(N, "color"), + strokeColor: this.deepQuery(N, "strokeColor") || this.deepQuery(N, "borderColor"), + lineWidth: this.deepQuery(N, "lineWidth") || this.deepQuery(N, "borderWidth") + }, + clickable: a.clickable, + zlevel: this.getZlevelBase(), + z: this.getZBase() + }); + t.style.color || (t.style.color = this.getColor(e ? e.name : p.id)), t.style.iconType = this.deepQuery(y, "symbol"); + var n = this.deepQuery(y, "symbolSize") || 0; + "number" == typeof n && (n = [n, n]), t.style.width = 2 * n[0], t.style.height = 2 * n[1], t.style.iconType.match("image") && (t.style.image = t.style.iconType.replace(new RegExp("^image:\\/\\/"), ""), t = new K({ + style: t.style, + highlightStyle: t.highlightStyle, + clickable: t.clickable, + zlevel: this.getZlevelBase(), + z: this.getZBase() + })), this.deepQuery(y, "itemStyle.normal.label.show") && (t.style.text = null == p.data.label ? p.id : p.data.label, t.style.textPosition = this.deepQuery(y, "itemStyle.normal.label.position"), t.style.textColor = this.deepQuery(y, "itemStyle.normal.label.textStyle.color"), t.style.textFont = this.getFont(this.deepQuery(y, "itemStyle.normal.label.textStyle") || {})), this.deepQuery(y, "itemStyle.emphasis.label.show") && (t.highlightStyle.textPosition = this.deepQuery(y, "itemStyle.emphasis.label.position"), t.highlightStyle.textColor = this.deepQuery(y, "itemStyle.emphasis.label.textStyle.color"), t.highlightStyle.textFont = this.getFont(this.deepQuery(y, "itemStyle.emphasis.label.textStyle") || {})), this.deepQuery(y, "draggable") && (this.setCalculable(t), t.dragEnableTime = 0, t.draggable = !0, t.ondragstart = this.shapeHandler.ondragstart, t.ondragover = null); + var u = ""; + if ("undefined" != typeof p.category) { + var e = m[p.category]; + u = e && e.name || "" + } + E.pack(t, a, o, p.data, p.rawIndex, p.data.name || "", p.category), this.shapeList.push(t), this.zr.addShape(t), p.shape = t + }, this) + }, + _buildLinkShapes: function(N, W) { + for (var P = this._graph, R = P.edges.length, m = 0; R > m; m++) { + var S = P.edges[m], + T = S.data, + U = S.node1, + Q = S.node2, + Y = P.getEdge(Q, U), + M = this._getEdgeQueryTarget(N, T), + X = this.deepQuery(M, "type"); + N.linkSymbol && "none" !== N.linkSymbol && (X = "line"); + var Z = "line" === X ? x : B, + O = new Z({ + style: { + xStart: 0, + yStart: 0, + xEnd: 0, + yEnd: 0 + }, + clickable: this.query(N, "clickable"), + highlightStyle: {}, + zlevel: this.getZlevelBase(), + z: this.getZBase() + }); + if (Y && Y.shape && (O.style.offset = 4, Y.shape.style.offset = 4), q.merge(O.style, this.query(N, "itemStyle.normal.linkStyle"), !0), q.merge(O.highlightStyle, this.query(N, "itemStyle.emphasis.linkStyle"), !0), "undefined" != typeof T.itemStyle && (T.itemStyle.normal && q.merge(O.style, T.itemStyle.normal, !0), T.itemStyle.emphasis && q.merge(O.highlightStyle, T.itemStyle.emphasis, !0)), O.style.lineWidth = O.style.lineWidth || O.style.width, O.style.strokeColor = O.style.strokeColor || O.style.color, O.highlightStyle.lineWidth = O.highlightStyle.lineWidth || O.highlightStyle.width, O.highlightStyle.strokeColor = O.highlightStyle.strokeColor || O.highlightStyle.color, E.pack(O, N, W, S.data, null == S.rawIndex ? m : S.rawIndex, S.data.name || U.id + " - " + Q.id, U.id, Q.id), this.shapeList.push(O), this.zr.addShape(O), S.shape = O, N.linkSymbol && "none" !== N.linkSymbol) { + var p = new J({ + style: { + x: -5, + y: 0, + width: N.linkSymbolSize[0], + height: N.linkSymbolSize[1], + iconType: N.linkSymbol, + brushType: "fill", + color: O.style.strokeColor + }, + highlightStyle: { + brushType: "fill" + }, + position: [0, 0], + rotation: 0, + zlevel: this.getZlevelBase(), + z: this.getZBase() + }); + O._symbolShape = p, this.shapeList.push(p), this.zr.addShape(p) + } + } + }, + _updateLinkShapes: function() { + for (var u = L.create(), T = L.create(), M = L.create(), P = L.create(), p = this._graph.edges, Q = 0, R = p.length; R > Q; Q++) { + var S = p[Q], + N = S.node1.shape, + y = S.node2.shape; + L.copy(M, N.position), L.copy(P, y.position); + var O = S.shape.style; + if (L.sub(u, M, P), L.normalize(u, u), O.offset ? (T[0] = u[1], T[1] = -u[0], L.scaleAndAdd(M, M, T, O.offset), L.scaleAndAdd(P, P, T, O.offset)) : "bezier-curve" === S.shape.type && (O.cpX1 = (M[0] + P[0]) / 2 - (P[1] - M[1]) / 4, O.cpY1 = (M[1] + P[1]) / 2 - (M[0] - P[0]) / 4), O.xStart = M[0], O.yStart = M[1], O.xEnd = P[0], O.yEnd = P[1], S.shape.modSelf(), S.shape._symbolShape) { + var X = S.shape._symbolShape; + L.copy(X.position, P), L.scaleAndAdd(X.position, X.position, u, y.style.width / 2 + 2); + var W = Math.atan2(u[1], u[0]); + X.rotation = Math.PI / 2 - W, X.modSelf() + } + } + }, + _syncNodePositions: function() { + for (var p = this._graph, R = 0; R < p.nodes.length; R++) { + var y = p.nodes[R], + N = y.layout.position, + m = y.data, + O = y.shape, + P = O.fixed || m.fixX, + Q = O.fixed || m.fixY; + P === !0 ? P = 1 : isNaN(P) && (P = 0), Q === !0 ? Q = 1 : isNaN(Q) && (Q = 0), O.position[0] += (N[0] - O.position[0]) * (1 - P), O.position[1] += (N[1] - O.position[1]) * (1 - Q), L.copy(N, O.position); + var M = m.name; + if (M) { + var u = this.__nodePositionMap[M]; + u || (u = this.__nodePositionMap[M] = L.create()), L.copy(u, N) + } + O.modSelf() + } + }, + _step: function() { + this._syncNodePositions(), this._updateLinkShapes(), this.zr.refreshNextFrame(), this._layout.temperature > 0.01 ? this._layout.step(this._steps) : this.messageCenter.dispatch(v.EVENT.FORCE_LAYOUT_END, {}, {}, this.myChart) + }, + refresh: function(a) { + if (a && (this.option = a, this.series = this.option.series), this.legend = this.component.legend, this.legend) { + this.getColor = function(i) { + return this.legend.getColor(i) + }, this.isSelected = function(i) { + return this.legend.isSelected(i) + } + } else { + var m = {}, + l = 0; + this.getColor = function(i) { + return m[i] ? m[i] : (m[i] || (m[i] = this.zr.getColor(l++)), m[i]) + }, this.isSelected = function() { + return !0 + } + } + this._init() + }, + dispose: function() { + this.clear(), this.shapeList = null, this.effectList = null, this._layout.dispose(), this._layout = null, this.__nodePositionMap = {} + }, + getPosition: function() { + var a = []; + return this._graph.eachNode(function(e) { + e.layout && a.push({ + name: e.data.name, + position: Array.prototype.slice.call(e.layout.position) + }) + }), a + } + }, q.inherits(H, F), w("../chart").define("force", H), H + }), d("echarts/layout/Force", ["require", "./forceLayoutWorker", "zrender/tool/vector"], function(l) { + function w() { + if ("undefined" != typeof Worker && "undefined" != typeof Blob) { + try { + var a = new Blob([p.getWorkerCode()]); + m = window.URL.createObjectURL(a) + } catch (i) { + m = "" + } + } + return m + } + var m, p = l("./forceLayoutWorker"), + j = l("zrender/tool/vector"), + q = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(a) { + setTimeout(a, 16) + }, + u = "undefined" == typeof Float32Array ? Array : Float32Array, + v = function(o) { + "undefined" == typeof m && w(), o = o || {}, this.width = o.width || 500, this.height = o.height || 500, this.center = o.center || [this.width / 2, this.height / 2], this.ratioScaling = o.ratioScaling || !1, this.scaling = o.scaling || 1, this.gravity = "undefined" != typeof o.gravity ? o.gravity : 1, this.large = o.large || !1, this.preventNodeOverlap = o.preventNodeOverlap || !1, this.preventNodeEdgeOverlap = o.preventNodeEdgeOverlap || !1, this.maxSpeedIncrease = o.maxSpeedIncrease || 1, this.onupdate = o.onupdate || function() {}, this.temperature = o.temperature || 1, this.coolDown = o.coolDown || 0.99, this._layout = null, this._layoutWorker = null; + var r = this, + i = this._$onupdate; + this._$onupdate = function(a) { + i.call(r, a) + } + }; + return v.prototype.updateConfig = function() { + var r = this.width, + y = this.height, + s = Math.min(r, y), + x = { + center: this.center, + width: this.ratioScaling ? r : s, + height: this.ratioScaling ? y : s, + scaling: this.scaling || 1, + gravity: this.gravity || 1, + barnesHutOptimize: this.large, + preventNodeOverlap: this.preventNodeOverlap, + preventNodeEdgeOverlap: this.preventNodeEdgeOverlap, + maxSpeedIncrease: this.maxSpeedIncrease + }; + if (this._layoutWorker) { + this._layoutWorker.postMessage({ + cmd: "updateConfig", + config: x + }) + } else { + for (var o in x) { + this._layout[o] = x[o] + } + } + }, v.prototype.init = function(r, D) { + if (this._layoutWorker && (this._layoutWorker.terminate(), this._layoutWorker = null), m && D) { + try { + this._layoutWorker || (this._layoutWorker = new Worker(m), this._layoutWorker.onmessage = this._$onupdate), this._layout = null + } catch (i) { + this._layoutWorker = null, this._layout || (this._layout = new p) + } + } else { + this._layout || (this._layout = new p) + } + this.temperature = 1, this.graph = r; + for (var A = r.nodes.length, C = new u(2 * A), y = new u(A), x = new u(A), z = 0; A > z; z++) { + var F = r.nodes[z]; + C[2 * z] = F.layout.position[0], C[2 * z + 1] = F.layout.position[1], y[z] = "undefined" == typeof F.layout.mass ? 1 : F.layout.mass, x[z] = "undefined" == typeof F.layout.size ? 1 : F.layout.size, F.layout.__index = z + } + A = r.edges.length; + for (var E = new u(2 * A), n = new u(A), z = 0; A > z; z++) { + var B = r.edges[z]; + E[2 * z] = B.node1.layout.__index, E[2 * z + 1] = B.node2.layout.__index, n[z] = B.layout.weight || 1 + } + this._layoutWorker ? this._layoutWorker.postMessage({ + cmd: "init", + nodesPosition: C, + nodesMass: y, + nodesSize: x, + edges: E, + edgesWeight: n + }) : (this._layout.initNodes(C, y, x), this._layout.initEdges(E, n)), this.updateConfig() + }, v.prototype.step = function(a) { + var y = this.graph.nodes; + if (this._layoutWorker) { + for (var o = new u(2 * y.length), r = 0; r < y.length; r++) { + var x = y[r]; + o[2 * r] = x.layout.position[0], o[2 * r + 1] = x.layout.position[1] + } + this._layoutWorker.postMessage(o.buffer, [o.buffer]), this._layoutWorker.postMessage({ + cmd: "update", + steps: a, + temperature: this.temperature, + coolDown: this.coolDown + }); + for (var r = 0; a > r; r++) { + this.temperature *= this.coolDown + } + } else { + q(this._$onupdate); + for (var r = 0; r < y.length; r++) { + var x = y[r]; + j.copy(this._layout.nodes[r].position, x.layout.position) + } + for (var r = 0; a > r; r++) { + this._layout.temperature = this.temperature, this._layout.update(), this.temperature *= this.coolDown + } + } + }, v.prototype._$onupdate = function(a) { + if (this._layoutWorker) { + for (var s = new Float32Array(a.data), o = 0; o < this.graph.nodes.length; o++) { + var r = this.graph.nodes[o]; + r.layout.position[0] = s[2 * o], r.layout.position[1] = s[2 * o + 1] + } + this.onupdate && this.onupdate() + } else { + if (this._layout) { + for (var o = 0; o < this.graph.nodes.length; o++) { + var r = this.graph.nodes[o]; + j.copy(r.layout.position, this._layout.nodes[o].position) + } + this.onupdate && this.onupdate() + } + } + }, v.prototype.dispose = function() { + this._layoutWorker && this._layoutWorker.terminate(), this._layoutWorker = null, this._layout = null + }, v + }), d("echarts/layout/forceLayoutWorker", ["require", "zrender/tool/vector"], function g(m) { + function x() { + this.subRegions = [], this.nSubRegions = 0, this.node = null, this.mass = 0, this.centerOfMass = null, this.bbox = new q(4), this.size = 0 + } + + function p() { + this.position = v.create(), this.force = v.create(), this.forcePrev = v.create(), this.speed = v.create(), this.speedPrev = v.create(), this.mass = 1, this.inDegree = 0, this.outDegree = 0 + } + + function u(a, i) { + this.node1 = a, this.node2 = i, this.weight = 1 + } + + function j() { + this.barnesHutOptimize = !1, this.barnesHutTheta = 1.5, this.repulsionByDegree = !1, this.preventNodeOverlap = !1, this.preventNodeEdgeOverlap = !1, this.strongGravity = !0, this.gravity = 1, this.scaling = 1, this.edgeWeightInfluence = 1, this.center = [0, 0], this.width = 500, this.height = 500, this.maxSpeedIncrease = 1, this.nodes = [], this.edges = [], this.bbox = new q(4), this._rootRegion = new x, this._rootRegion.centerOfMass = v.create(), this._massArr = null, this._k = 0 + } + var v, w = "undefined" == typeof window && "undefined" == typeof m; + v = w ? { + create: function(a, n) { + var l = new Float32Array(2); + return l[0] = a || 0, l[1] = n || 0, l + }, + dist: function(a, s) { + var l = s[0] - a[0], + r = s[1] - a[1]; + return Math.sqrt(l * l + r * r) + }, + len: function(a) { + var n = a[0], + l = a[1]; + return Math.sqrt(n * n + l * l) + }, + scaleAndAdd: function(a, s, l, r) { + return a[0] = s[0] + l[0] * r, a[1] = s[1] + l[1] * r, a + }, + scale: function(a, n, l) { + return a[0] = n[0] * l, a[1] = n[1] * l, a + }, + add: function(a, n, l) { + return a[0] = n[0] + l[0], a[1] = n[1] + l[1], a + }, + sub: function(a, n, l) { + return a[0] = n[0] - l[0], a[1] = n[1] - l[1], a + }, + dot: function(a, i) { + return a[0] * i[0] + a[1] * i[1] + }, + normalize: function(r, z) { + var s = z[0], + y = z[1], + l = s * s + y * y; + return l > 0 && (l = 1 / Math.sqrt(l), r[0] = z[0] * l, r[1] = z[1] * l), r + }, + negate: function(a, i) { + return a[0] = -i[0], a[1] = -i[1], a + }, + copy: function(a, i) { + return a[0] = i[0], a[1] = i[1], a + }, + set: function(a, n, l) { + return a[0] = n, a[1] = l, a + } + } : m("zrender/tool/vector"); + var q = "undefined" == typeof Float32Array ? Array : Float32Array; + if (x.prototype.beforeUpdate = function() { + for (var a = 0; a < this.nSubRegions; a++) { + this.subRegions[a].beforeUpdate() + } + this.mass = 0, this.centerOfMass && (this.centerOfMass[0] = 0, this.centerOfMass[1] = 0), this.nSubRegions = 0, this.node = null + }, x.prototype.afterUpdate = function() { + this.subRegions.length = this.nSubRegions; + for (var a = 0; a < this.nSubRegions; a++) { + this.subRegions[a].afterUpdate() + } + }, x.prototype.addNode = function(a) { + if (0 === this.nSubRegions) { + if (null == this.node) { + return void(this.node = a) + } + this._addNodeToSubRegion(this.node), this.node = null + } + this._addNodeToSubRegion(a), this._updateCenterOfMass(a) + }, x.prototype.findSubRegion = function(a, s) { + for (var l = 0; l < this.nSubRegions; l++) { + var r = this.subRegions[l]; + if (r.contain(a, s)) { + return r + } + } + }, x.prototype.contain = function(a, i) { + return this.bbox[0] <= a && this.bbox[2] >= a && this.bbox[1] <= i && this.bbox[3] >= i + }, x.prototype.setBBox = function(a, s, l, r) { + this.bbox[0] = a, this.bbox[1] = s, this.bbox[2] = l, this.bbox[3] = r, this.size = (l - a + r - s) / 2 + }, x.prototype._newSubRegion = function() { + var a = this.subRegions[this.nSubRegions]; + return a || (a = new x, this.subRegions[this.nSubRegions] = a), this.nSubRegions++, a + }, x.prototype._addNodeToSubRegion = function(z) { + var G = this.findSubRegion(z.position[0], z.position[1]), + A = this.bbox; + if (!G) { + var C = (A[0] + A[2]) / 2, + y = (A[1] + A[3]) / 2, + D = (A[2] - A[0]) / 2, + E = (A[3] - A[1]) / 2, + F = z.position[0] >= C ? 1 : 0, + B = z.position[1] >= y ? 1 : 0, + G = this._newSubRegion(); + G.setBBox(F * D + A[0], B * E + A[1], (F + 1) * D + A[0], (B + 1) * E + A[1]) + } + G.addNode(z) + }, x.prototype._updateCenterOfMass = function(a) { + null == this.centerOfMass && (this.centerOfMass = v.create()); + var n = this.centerOfMass[0] * this.mass, + l = this.centerOfMass[1] * this.mass; + n += a.position[0] * a.mass, l += a.position[1] * a.mass, this.mass += a.mass, this.centerOfMass[0] = n / this.mass, this.centerOfMass[1] = l / this.mass + }, j.prototype.nodeToNodeRepulsionFactor = function(a, n, l) { + return l * l * a / n + }, j.prototype.edgeToNodeRepulsionFactor = function(a, n, l) { + return l * a / n + }, j.prototype.attractionFactor = function(a, n, l) { + return a * n / l + }, j.prototype.initNodes = function(l, C, y) { + this.temperature = 1; + var i = l.length / 2; + this.nodes.length = 0; + for (var z = "undefined" != typeof y, A = 0; i > A; A++) { + var B = new p; + B.position[0] = l[2 * A], B.position[1] = l[2 * A + 1], B.mass = C[A], z && (B.size = y[A]), this.nodes.push(B) + } + this._massArr = C, z && (this._sizeArr = y) + }, j.prototype.initEdges = function(y, G) { + var A = y.length / 2; + this.edges.length = 0; + for (var n = "undefined" != typeof G, D = 0; A > D; D++) { + var E = y[2 * D], + F = y[2 * D + 1], + B = this.nodes[E], + z = this.nodes[F]; + if (B && z) { + B.outDegree++, z.inDegree++; + var C = new u(B, z); + n && (C.weight = G[D]), this.edges.push(C) + } + } + }, j.prototype.update = function() { + var r = this.nodes.length; + if (this.updateBBox(), this._k = 0.4 * this.scaling * Math.sqrt(this.width * this.height / r), this.barnesHutOptimize) { + this._rootRegion.setBBox(this.bbox[0], this.bbox[1], this.bbox[2], this.bbox[3]), this._rootRegion.beforeUpdate(); + for (var z = 0; r > z; z++) { + this._rootRegion.addNode(this.nodes[z]) + } + this._rootRegion.afterUpdate() + } else { + var s = 0, + y = this._rootRegion.centerOfMass; + v.set(y, 0, 0); + for (var z = 0; r > z; z++) { + var l = this.nodes[z]; + s += l.mass, v.scaleAndAdd(y, y, l.position, l.mass) + } + s > 0 && v.scale(y, y, 1 / s) + } + this.updateForce(), this.updatePosition() + }, j.prototype.updateForce = function() { + for (var a = this.nodes.length, n = 0; a > n; n++) { + var l = this.nodes[n]; + v.copy(l.forcePrev, l.force), v.copy(l.speedPrev, l.speed), v.set(l.force, 0, 0) + } + this.updateNodeNodeForce(), this.gravity > 0 && this.updateGravityForce(), this.updateEdgeForce(), this.preventNodeEdgeOverlap && this.updateNodeEdgeForce() + }, j.prototype.updatePosition = function() { + for (var y = this.nodes.length, G = v.create(), A = 0; y > A; A++) { + var D = this.nodes[A], + r = D.speed; + v.scale(D.force, D.force, 1 / 30); + var E = v.len(D.force) + 0.1, + F = Math.min(E, 500) / E; + v.scale(D.force, D.force, F), v.add(r, r, D.force), v.scale(r, r, this.temperature), v.sub(G, r, D.speedPrev); + var B = v.len(G); + if (B > 0) { + v.scale(G, G, 1 / B); + var z = v.len(D.speedPrev); + z > 0 && (B = Math.min(B / z, this.maxSpeedIncrease) * z, v.scaleAndAdd(r, D.speedPrev, G, B)) + } + var C = v.len(r), + F = Math.min(C, 100) / (C + 0.1); + v.scale(r, r, F), v.add(D.position, D.position, r) + } + }, j.prototype.updateNodeNodeForce = function() { + for (var r = this.nodes.length, z = 0; r > z; z++) { + var s = this.nodes[z]; + if (this.barnesHutOptimize) { + this.applyRegionToNodeRepulsion(this._rootRegion, s) + } else { + for (var y = z + 1; r > y; y++) { + var l = this.nodes[y]; + this.applyNodeToNodeRepulsion(s, l, !1) + } + } + } + }, j.prototype.updateGravityForce = function() { + for (var a = 0; a < this.nodes.length; a++) { + this.applyNodeGravity(this.nodes[a]) + } + }, j.prototype.updateEdgeForce = function() { + for (var a = 0; a < this.edges.length; a++) { + this.applyEdgeAttraction(this.edges[a]) + } + }, j.prototype.updateNodeEdgeForce = function() { + for (var a = 0; a < this.nodes.length; a++) { + for (var i = 0; i < this.edges.length; i++) { + this.applyEdgeToNodeRepulsion(this.edges[i], this.nodes[a]) + } + } + }, j.prototype.applyRegionToNodeRepulsion = function() { + var a = v.create(); + return function(y, l) { + if (y.node) { + this.applyNodeToNodeRepulsion(y.node, l, !0) + } else { + if (0 === y.mass && 0 === l.mass) { + return + } + v.sub(a, l.position, y.centerOfMass); + var r = a[0] * a[0] + a[1] * a[1]; + if (r > this.barnesHutTheta * y.size * y.size) { + var e = this._k * this._k * (l.mass + y.mass) / (r + 1); + v.scaleAndAdd(l.force, l.force, a, 2 * e) + } else { + for (var s = 0; s < y.nSubRegions; s++) { + this.applyRegionToNodeRepulsion(y.subRegions[s], l) + } + } + } + } + }(), j.prototype.applyNodeToNodeRepulsion = function() { + var a = v.create(); + return function(C, r, z) { + if (C !== r && (0 !== C.mass || 0 !== r.mass)) { + v.sub(a, C.position, r.position); + var e = a[0] * a[0] + a[1] * a[1]; + if (0 !== e) { + var A, B = C.mass + r.mass, + y = Math.sqrt(e); + v.scale(a, a, 1 / y), this.preventNodeOverlap ? (y = y - C.size - r.size, y > 0 ? A = this.nodeToNodeRepulsionFactor(B, y, this._k) : 0 >= y && (A = this._k * this._k * 10 * B)) : A = this.nodeToNodeRepulsionFactor(B, y, this._k), z || v.scaleAndAdd(C.force, C.force, a, 2 * A), v.scaleAndAdd(r.force, r.force, a, 2 * -A) + } + } + } + }(), j.prototype.applyEdgeAttraction = function() { + var a = v.create(); + return function(A) { + var l = A.node1, + r = A.node2; + v.sub(a, l.position, r.position); + var e, y = v.len(a); + e = 0 === this.edgeWeightInfluence ? 1 : 1 == this.edgeWeightInfluence ? A.weight : Math.pow(A.weight, this.edgeWeightInfluence); + var z; + if (!(this.preventOverlap && (y = y - l.size - r.size, 0 >= y))) { + var z = this.attractionFactor(e, y, this._k); + v.scaleAndAdd(l.force, l.force, a, -z), v.scaleAndAdd(r.force, r.force, a, z) + } + } + }(), j.prototype.applyNodeGravity = function() { + var a = v.create(); + return function(l) { + v.sub(a, this.center, l.position), this.width > this.height ? a[1] *= this.width / this.height : a[0] *= this.height / this.width; + var e = v.len(a) / 100; + this.strongGravity ? v.scaleAndAdd(l.force, l.force, a, e * this.gravity * l.mass) : v.scaleAndAdd(l.force, l.force, a, this.gravity * l.mass / (e + 1)) + } + }(), j.prototype.applyEdgeToNodeRepulsion = function() { + var a = v.create(), + n = v.create(), + l = v.create(); + return function(y, e) { + var z = y.node1, + A = y.node2; + if (z !== e && A !== e) { + v.sub(a, A.position, z.position), v.sub(n, e.position, z.position); + var r = v.len(a); + v.scale(a, a, 1 / r); + var i = v.dot(a, n); + if (!(0 > i || i > r)) { + v.scaleAndAdd(l, z.position, a, i); + var t = v.dist(l, e.position) - e.size, + B = this.edgeToNodeRepulsionFactor(e.mass, Math.max(t, 0.1), 100); + v.sub(a, e.position, l), v.normalize(a, a), v.scaleAndAdd(e.force, e.force, a, B), v.scaleAndAdd(z.force, z.force, a, -B), v.scaleAndAdd(A.force, A.force, a, -B) + } + } + } + }(), j.prototype.updateBBox = function() { + for (var r = 1 / 0, A = 1 / 0, s = -(1 / 0), y = -(1 / 0), l = 0; l < this.nodes.length; l++) { + var z = this.nodes[l].position; + r = Math.min(r, z[0]), A = Math.min(A, z[1]), s = Math.max(s, z[0]), y = Math.max(y, z[1]) + } + this.bbox[0] = r, this.bbox[1] = A, this.bbox[2] = s, this.bbox[3] = y + }, j.getWorkerCode = function() { + var a = g.toString(); + return a.slice(a.indexOf("{") + 1, a.lastIndexOf("return")) + }, w) { + var o = null; + self.onmessage = function(a) { + if (a.data instanceof ArrayBuffer) { + if (!o) { + return + } + for (var E = new Float32Array(a.data), y = E.length / 2, A = 0; y > A; A++) { + var B = o.nodes[A]; + B.position[0] = E[2 * A], B.position[1] = E[2 * A + 1] + } + } else { + switch (a.data.cmd) { + case "init": + o || (o = new j), o.initNodes(a.data.nodesPosition, a.data.nodesMass, a.data.nodesSize), o.initEdges(a.data.edges, a.data.edgesWeight); + break; + case "updateConfig": + if (o) { + for (var C in a.data.config) { + o[C] = a.data.config[C] + } + } + break; + case "update": + var D = a.data.steps; + if (o) { + var y = o.nodes.length, + E = new Float32Array(2 * y); + o.temperature = a.data.temperature; + for (var A = 0; D > A; A++) { + o.update(), o.temperature *= a.data.coolDown + } + for (var A = 0; y > A; A++) { + var B = o.nodes[A]; + E[2 * A] = B.position[0], E[2 * A + 1] = B.position[1] + } + self.postMessage(E.buffer, [E.buffer]) + } else { + var z = new Float32Array; + self.postMessage(z.buffer, [z.buffer]) + } + } + } + } + } + return j + }), d("echarts/chart/map", ["require", "./base", "zrender/shape/Text", "zrender/shape/Path", "zrender/shape/Circle", "zrender/shape/Rectangle", "zrender/shape/Line", "zrender/shape/Polygon", "zrender/shape/Ellipse", "zrender/shape/Image", "../component/dataRange", "../component/roamController", "../layer/heatmap", "../config", "../util/ecData", "zrender/tool/util", "zrender/config", "zrender/tool/event", "../util/mapData/params", "../util/mapData/textFixed", "../util/mapData/geoCoord", "../util/projection/svg", "../util/projection/normal", "../chart"], function(x) { + function J(l, u, m, i, p) { + B.call(this, l, u, m, i, p); + var s = this; + s._onmousewheel = function(a) { + return s.__onmousewheel(a) + }, s._onmousedown = function(a) { + return s.__onmousedown(a) + }, s._onmousemove = function(a) { + return s.__onmousemove(a) + }, s._onmouseup = function(a) { + return s.__onmouseup(a) + }, s._onroamcontroller = function(a) { + return s.__onroamcontroller(a) + }, s._ondrhoverlink = function(a) { + return s.__ondrhoverlink(a) + }, this._isAlive = !0, this._selectedMode = {}, this._activeMapType = {}, this._clickable = {}, this._hoverable = {}, this._showLegendSymbol = {}, this._selected = {}, this._mapTypeMap = {}, this._mapDataMap = {}, this._nameMap = {}, this._specialArea = {}, this._refreshDelayTicket, this._mapDataRequireCounter, this._markAnimation = !1, this._hoverLinkMap = {}, this._roamMap = {}, this._scaleLimitMap = {}, this._mx, this._my, this._mousedown, this._justMove, this._curMapType, this.refresh(i), this.zr.on(v.EVENT.MOUSEWHEEL, this._onmousewheel), this.zr.on(v.EVENT.MOUSEDOWN, this._onmousedown), u.bind(L.EVENT.ROAMCONTROLLER, this._onroamcontroller), u.bind(L.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink) + } + var B = x("./base"), + E = x("zrender/shape/Text"), + j = x("zrender/shape/Path"), + F = x("zrender/shape/Circle"), + H = x("zrender/shape/Rectangle"), + I = x("zrender/shape/Line"), + C = x("zrender/shape/Polygon"), + A = x("zrender/shape/Ellipse"), + D = x("zrender/shape/Image"); + x("../component/dataRange"), x("../component/roamController"); + var M = x("../layer/heatmap"), + L = x("../config"); + L.map = { + zlevel: 0, + z: 2, + mapType: "china", + showLegendSymbol: !0, + dataRangeHoverLink: !0, + hoverable: !0, + clickable: !0, + itemStyle: { + normal: { + borderColor: "rgba(0,0,0,0)", + borderWidth: 1, + areaStyle: { + color: "#ccc" + }, + label: { + show: !1, + textStyle: { + color: "rgb(139,69,19)" + } + } + }, + emphasis: { + borderColor: "rgba(0,0,0,0)", + borderWidth: 1, + areaStyle: { + color: "rgba(255,215,0,0.8)" + }, + label: { + show: !1, + textStyle: { + color: "rgb(100,0,0)" + } + } + } + } + }; + var w = x("../util/ecData"), + G = x("zrender/tool/util"), + v = x("zrender/config"), + K = x("zrender/tool/event"), + N = x("../util/mapData/params").params, + z = x("../util/mapData/textFixed"), + q = x("../util/mapData/geoCoord"); + return J.prototype = { + type: L.CHART_TYPE_MAP, + _buildShape: function() { + var P = this.series; + this.selectedMap = {}, this._activeMapType = {}; + for (var ab, S, X, p, Y = this.component.legend, Z = {}, aa = {}, U = {}, R = {}, W = 0, ad = P.length; ad > W; W++) { + if (P[W].type == L.CHART_TYPE_MAP && (P[W] = this.reformOption(P[W]), S = P[W].mapType, aa[S] = aa[S] || {}, aa[S][W] = !0, U[S] = U[S] || P[W].mapValuePrecision, this._scaleLimitMap[S] = this._scaleLimitMap[S] || {}, P[W].scaleLimit && G.merge(this._scaleLimitMap[S], P[W].scaleLimit, !0), this._roamMap[S] = P[W].roam || this._roamMap[S], (null == this._hoverLinkMap[S] || this._hoverLinkMap[S]) && (this._hoverLinkMap[S] = P[W].dataRangeHoverLink), this._nameMap[S] = this._nameMap[S] || {}, P[W].nameMap && G.merge(this._nameMap[S], P[W].nameMap, !0), this._activeMapType[S] = !0, P[W].textFixed && G.merge(z, P[W].textFixed, !0), P[W].geoCoord && G.merge(q, P[W].geoCoord, !0), this._selectedMode[S] = this._selectedMode[S] || P[W].selectedMode, (null == this._hoverable[S] || this._hoverable[S]) && (this._hoverable[S] = P[W].hoverable), (null == this._clickable[S] || this._clickable[S]) && (this._clickable[S] = P[W].clickable), (null == this._showLegendSymbol[S] || this._showLegendSymbol[S]) && (this._showLegendSymbol[S] = P[W].showLegendSymbol), R[S] = R[S] || P[W].mapValueCalculation, ab = P[W].name, this.selectedMap[ab] = Y ? Y.isSelected(ab) : !0, this.selectedMap[ab])) { + Z[S] = Z[S] || {}, X = P[W].data; + for (var O = 0, y = X.length; y > O; O++) { + p = this._nameChange(S, X[O].name), Z[S][p] = Z[S][p] || { + seriesIndex: [], + valueMap: {}, + precision: 0 + }; + for (var ac in X[O]) { + "value" != ac ? Z[S][p][ac] = X[O][ac] : isNaN(X[O].value) || (null == Z[S][p].value && (Z[S][p].value = 0), Z[S][p].precision = Math.max(this.getPrecision(+X[O].value), Z[S][p].precision), Z[S][p].value += +X[O].value, Z[S][p].valueMap[W] = +X[O].value) + } + Z[S][p].seriesIndex.push(W) + } + } + } + this._mapDataRequireCounter = 0; + for (var Q in Z) { + this._mapDataRequireCounter++ + } + this._clearSelected(), 0 === this._mapDataRequireCounter && (this.clear(), this.zr && this.zr.delShape(this.lastShapeList), this.lastShapeList = []); + for (var Q in Z) { + for (var y in Z[Q]) { + "average" == R[Q] && (Z[Q][y].value /= Z[Q][y].seriesIndex.length); + var T = Z[Q][y].value; + null != T && (Z[Q][y].value = T.toFixed(null == U[Q] ? Z[Q][y].precision : U[Q]) - 0) + } + this._mapDataMap[Q] = this._mapDataMap[Q] || {}, this._mapDataMap[Q].mapData ? this._mapDataCallback(Q, Z[Q], aa[Q])(this._mapDataMap[Q].mapData) : N[Q.replace(/\|.*/, "")].getGeoJson && (this._specialArea[Q] = N[Q.replace(/\|.*/, "")].specialArea || this._specialArea[Q], N[Q.replace(/\|.*/, "")].getGeoJson(this._mapDataCallback(Q, Z[Q], aa[Q]))) + } + }, + _mapDataCallback: function(o, l, m) { + var e = this; + return function(a) { + e._isAlive && null != e._activeMapType[o] && (-1 != o.indexOf("|") && (a = e._getSubMapData(o, a)), e._mapDataMap[o].mapData = a, a.firstChild ? (e._mapDataMap[o].rate = 1, e._mapDataMap[o].projection = x("../util/projection/svg")) : (e._mapDataMap[o].rate = 0.75, e._mapDataMap[o].projection = x("../util/projection/normal")), e._buildMap(o, e._getProjectionData(o, a, m), l, m), e._buildMark(o, m), --e._mapDataRequireCounter <= 0 && (e.addShapeList(), e.zr.refreshNextFrame()), e._buildHeatmap(o)) + } + }, + _clearSelected: function() { + for (var a in this._selected) { + this._activeMapType[this._mapTypeMap[a]] || (delete this._selected[a], delete this._mapTypeMap[a]) + } + }, + _getSubMapData: function(m, u) { + for (var p = m.replace(/^.*\|/, ""), r = u.features, l = 0, s = r.length; s > l; l++) { + if (r[l].properties && r[l].properties.name == p) { + r = r[l], "United States of America" == p && r.geometry.coordinates.length > 1 && (r = { + geometry: { + coordinates: r.geometry.coordinates.slice(5, 6), + type: r.geometry.type + }, + id: r.id, + properties: r.properties, + type: r.type + }); + break + } + } + return { + type: "FeatureCollection", + features: [r] + } + }, + _getProjectionData: function(P, aa, R) { + var W, p = this._mapDataMap[P].projection, + X = [], + Y = this._mapDataMap[P].bbox || p.getBbox(aa, this._specialArea[P]); + W = this._mapDataMap[P].hasRoam ? this._mapDataMap[P].transform : this._getTransform(Y, R, this._mapDataMap[P].rate); + var Z, S = this._mapDataMap[P].lastTransform || { + scale: {} + }; + W.left != S.left || W.top != S.top || W.scale.x != S.scale.x || W.scale.y != S.scale.y ? (Z = p.geoJson2Path(aa, W, this._specialArea[P]), S = G.clone(W)) : (W = this._mapDataMap[P].transform, Z = this._mapDataMap[P].pathArray), this._mapDataMap[P].bbox = Y, this._mapDataMap[P].transform = W, this._mapDataMap[P].lastTransform = S, this._mapDataMap[P].pathArray = Z; + for (var Q = [W.left, W.top], T = 0, ad = Z.length; ad > T; T++) { + X.push(this._getSingleProvince(P, Z[T], Q)) + } + if (this._specialArea[P]) { + for (var ac in this._specialArea[P]) { + X.push(this._getSpecialProjectionData(P, aa, ac, this._specialArea[P][ac], Q)) + } + } + if ("china" == P) { + var O = this.geo2pos(P, q["南海诸岛"] || N["南海诸岛"].textCoord), + y = W.scale.x / 10.5, + ab = [32 * y + O[0], 83 * y + O[1]]; + z["南海诸岛"] && (ab[0] += z["南海诸岛"][0], ab[1] += z["南海诸岛"][1]), X.push({ + name: this._nameChange(P, "南海诸岛"), + path: N["南海诸岛"].getPath(O, y), + position: Q, + textX: ab[0], + textY: ab[1] + }) + } + return X + }, + _getSpecialProjectionData: function(ab, R, W, e, X) { + R = this._getSubMapData("x|" + W, R); + var Z = x("../util/projection/normal"), + aa = Z.getBbox(R), + S = this.geo2pos(ab, [e.left, e.top]), + Q = this.geo2pos(ab, [e.left + e.width, e.top + e.height]), + T = Math.abs(Q[0] - S[0]), + ae = Math.abs(Q[1] - S[1]), + ad = aa.width, + P = aa.height, + Y = T / 0.75 / ad, + O = ae / P; + Y > O ? (Y = 0.75 * O, T = ad * Y) : (O = Y, Y = 0.75 * O, ae = P * O); + var ac = { + OffsetLeft: S[0], + OffsetTop: S[1], + scale: { + x: Y, + y: O + } + }, + af = Z.geoJson2Path(R, ac); + return this._getSingleProvince(ab, af[0], X) + }, + _getSingleProvince: function(m, O, p) { + var s, l = O.properties.name, + u = z[l] || [0, 0]; + if (q[l]) { + s = this.geo2pos(m, q[l]) + } else { + if (O.cp) { + s = [O.cp[0] + u[0], O.cp[1] + u[1]] + } else { + var y = this._mapDataMap[m].bbox; + s = this.geo2pos(m, [y.left + y.width / 2, y.top + y.height / 2]), s[0] += u[0], s[1] += u[1] + } + } + return O.name = this._nameChange(m, l), O.position = p, O.textX = s[0], O.textY = s[1], O + }, + _getTransform: function(R, ae, W) { + var Z, O, aa, ac, ad, X, T, Y = this.series, + ah = this.zr.getWidth(), + ag = this.zr.getHeight(), + Q = Math.round(0.02 * Math.min(ah, ag)); + for (var ab in ae) { + Z = Y[ab].mapLocation || {}, aa = Z.x || aa, ad = Z.y || ad, X = Z.width || X, T = Z.height || T + } + O = this.parsePercent(aa, ah), O = isNaN(O) ? Q : O, ac = this.parsePercent(ad, ag), ac = isNaN(ac) ? Q : ac, X = null == X ? ah - O - 2 * Q : this.parsePercent(X, ah), T = null == T ? ag - ac - 2 * Q : this.parsePercent(T, ag); + var P = R.width, + af = R.height, + ai = X / W / P, + S = T / af; + if (ai > S ? (ai = S * W, X = P * ai) : (S = ai, ai = S * W, T = af * S), isNaN(aa)) { + switch (aa = aa || "center", aa + "") { + case "center": + O = Math.floor((ah - X) / 2); + break; + case "right": + O = ah - X + } + } + if (isNaN(ad)) { + switch (ad = ad || "center", ad + "") { + case "center": + ac = Math.floor((ag - T) / 2); + break; + case "bottom": + ac = ag - T + } + } + return { + left: O, + top: ac, + width: X, + height: T, + baseScale: 1, + scale: { + x: ai, + y: S + } + } + }, + _buildMap: function(p, aa, O, Y) { + for (var ad, n, ab, ai, s, l, r, R, ag, a, U, af = this.series, ah = this.component.legend, ac = this.component.dataRange, ae = 0, T = aa.length; T > ae; ae++) { + if (R = G.clone(aa[ae]), ag = { + name: R.name, + path: R.path, + position: G.clone(R.position) + }, n = R.name, ab = O[n]) { + s = [ab], ad = ""; + for (var P = 0, Q = ab.seriesIndex.length; Q > P; P++) { + var o = af[ab.seriesIndex[P]]; + s.push(o), ad += o.name + " ", ah && this._showLegendSymbol[p] && ah.hasColor(o.name) && this.shapeList.push(new F({ + zlevel: o.zlevel, + z: o.z + 1, + position: G.clone(R.position), + _mapType: p, + style: { + x: R.textX + 3 + 7 * P, + y: R.textY - 10, + r: 3, + color: ah.getColor(o.name) + }, + hoverable: !1 + })) + } + ai = ab.value + } else { + ab = { + name: n, + value: "-" + }, ad = "", s = []; + for (var Z in Y) { + s.push(af[Z]) + } + ai = "-" + } + switch (this.ecTheme.map && s.push(this.ecTheme.map), s.push(L.map), l = ac && !isNaN(ai) ? ac.getColor(ai) : null, R.color = R.color || l || this.getItemStyleColor(this.deepQuery(s, "itemStyle.normal.color"), ab.seriesIndex, -1, ab) || this.deepQuery(s, "itemStyle.normal.areaStyle.color"), R.strokeColor = R.strokeColor || this.deepQuery(s, "itemStyle.normal.borderColor"), R.lineWidth = R.lineWidth || this.deepQuery(s, "itemStyle.normal.borderWidth"), ag.color = this.getItemStyleColor(this.deepQuery(s, "itemStyle.emphasis.color"), ab.seriesIndex, -1, ab) || this.deepQuery(s, "itemStyle.emphasis.areaStyle.color") || R.color, ag.strokeColor = this.deepQuery(s, "itemStyle.emphasis.borderColor") || R.strokeColor, ag.lineWidth = this.deepQuery(s, "itemStyle.emphasis.borderWidth") || R.lineWidth, R.brushType = ag.brushType = R.brushType || "both", R.lineJoin = ag.lineJoin = "round", R._name = ag._name = n, r = this.deepQuery(s, "itemStyle.normal.label.textStyle"), U = { + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + position: G.clone(R.position), + _mapType: p, + _geo: this.pos2geo(p, [R.textX, R.textY]), + style: { + brushType: "fill", + x: R.textX, + y: R.textY, + text: this.getLabelText(n, ai, s, "normal"), + _name: n, + textAlign: "center", + color: this.deepQuery(s, "itemStyle.normal.label.show") ? this.deepQuery(s, "itemStyle.normal.label.textStyle.color") : "rgba(0,0,0,0)", + textFont: this.getFont(r) + } + }, U._style = G.clone(U.style), U.highlightStyle = G.clone(U.style), this.deepQuery(s, "itemStyle.emphasis.label.show") ? (U.highlightStyle.text = this.getLabelText(n, ai, s, "emphasis"), U.highlightStyle.color = this.deepQuery(s, "itemStyle.emphasis.label.textStyle.color") || U.style.color, r = this.deepQuery(s, "itemStyle.emphasis.label.textStyle") || r, U.highlightStyle.textFont = this.getFont(r)) : U.highlightStyle.color = "rgba(0,0,0,0)", a = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + position: G.clone(R.position), + style: R, + highlightStyle: ag, + _style: G.clone(R), + _mapType: p + }, null != R.scale && (a.scale = G.clone(R.scale)), U = new E(U), a.style.shapeType) { + case "rectangle": + a = new H(a); + break; + case "line": + a = new I(a); + break; + case "circle": + a = new F(a); + break; + case "polygon": + a = new C(a); + break; + case "ellipse": + a = new A(a); + break; + default: + a = new j(a), a.buildPathArray && (a.style.pathArray = a.buildPathArray(a.style.path)) + }(this._selectedMode[p] && this._selected[n] && ab.selected !== !1 || ab.selected === !0) && (U.style = U.highlightStyle, a.style = a.highlightStyle), U.clickable = a.clickable = this._clickable[p] && (null == ab.clickable || ab.clickable), this._selectedMode[p] && (this._selected[n] = null != this._selected[n] ? this._selected[n] : ab.selected, this._mapTypeMap[n] = p, (null == ab.selectable || ab.selectable) && (a.clickable = U.clickable = !0, a.onclick = U.onclick = this.shapeHandler.onclick)), this._hoverable[p] && (null == ab.hoverable || ab.hoverable) ? (U.hoverable = a.hoverable = !0, a.hoverConnect = U.id, U.hoverConnect = a.id) : U.hoverable = a.hoverable = !1, w.pack(U, { + name: ad, + tooltip: this.deepQuery(s, "tooltip") + }, 0, ab, 0, n), this.shapeList.push(U), w.pack(a, { + name: ad, + tooltip: this.deepQuery(s, "tooltip") + }, 0, ab, 0, n), this.shapeList.push(a) + } + }, + _buildMark: function(a, o) { + this._seriesIndexToMapType = this._seriesIndexToMapType || {}, this.markAttachStyle = this.markAttachStyle || {}; + var l = [this._mapDataMap[a].transform.left, this._mapDataMap[a].transform.top]; + "none" == a && (l = [0, 0]); + for (var m in o) { + this._seriesIndexToMapType[m] = a, this.markAttachStyle[m] = { + position: l, + _mapType: a + }, this.buildMark(m) + } + }, + _buildHeatmap: function(O) { + for (var Y = this.series, Q = 0, S = Y.length; S > Q; Q++) { + if (Y[Q].heatmap) { + var m = Y[Q].heatmap.data; + if (Y[Q].heatmap.needsTransform === !1) { + for (var T = [], W = 0, X = m.length; X > W; ++W) { + T.push([m[W][3], m[W][4], m[W][2]]) + } + var R = [0, 0] + } else { + var P = Y[Q].heatmap._geoData; + if (void 0 === P) { + Y[Q].heatmap._geoData = []; + for (var W = 0, X = m.length; X > W; ++W) { + Y[Q].heatmap._geoData[W] = m[W] + } + P = Y[Q].heatmap._geoData + } + for (var X = m.length, Z = 0; X > Z; ++Z) { + m[Z] = this.geo2pos(O, [P[Z][0], P[Z][1]]) + } + var R = [this._mapDataMap[O].transform.left, this._mapDataMap[O].transform.top] + } + var y = new M(Y[Q].heatmap), + V = y.getCanvas(m[0][3] ? T : m, this.zr.getWidth(), this.zr.getHeight()), + u = new D({ + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + position: R, + scale: [1, 1], + hoverable: !1, + style: { + x: 0, + y: 0, + image: V, + width: V.width, + height: V.height + } + }); + u.type = "heatmap", u._mapType = O, this.shapeList.push(u), this.zr.addShape(u) + } + } + }, + getMarkCoord: function(a, i) { + return i.geoCoord || q[i.name] ? this.geo2pos(this._seriesIndexToMapType[a], i.geoCoord || q[i.name]) : [0, 0] + }, + getMarkGeo: function(a) { + return a.geoCoord || q[a.name] + }, + _nameChange: function(a, i) { + return this._nameMap[a][i] || i + }, + getLabelText: function(m, r, o, p) { + var l = this.deepQuery(o, "itemStyle." + p + ".label.formatter"); + return l ? "function" == typeof l ? l.call(this.myChart, m, r) : "string" == typeof l ? (l = l.replace("{a}", "{a0}").replace("{b}", "{b0}"), l = l.replace("{a0}", m).replace("{b0}", r)) : void 0 : m + }, + _findMapTypeByPos: function(m, Q) { + var p, u, l, y, O; + for (var P in this._mapDataMap) { + if (p = this._mapDataMap[P].transform, p && this._roamMap[P] && this._activeMapType[P] && (u = p.left, l = p.top, y = p.width, O = p.height, m >= u && u + y >= m && Q >= l && l + O >= Q)) { + return P + } + } + }, + __onmousewheel: function(S) { + function aj(m, r) { + for (var o = 0; o < m.pointList.length; o++) { + var p = m.pointList[o]; + p[0] *= r, p[1] *= r + } + var l = m.controlPointList; + if (l) { + for (var o = 0; o < l.length; o++) { + var p = l[o]; + p[0] *= r, p[1] *= r + } + } + } + + function Z(a, i) { + a.xStart *= i, a.yStart *= i, a.xEnd *= i, a.yEnd *= i, null != a.cpX1 && (a.cpX1 *= i, a.cpY1 *= i) + } + if (!(this.shapeList.length <= 0)) { + for (var ae = 0, O = this.shapeList.length; O > ae; ae++) { + var af = this.shapeList[ae]; + if (af.__animating) { + return + } + } + var ah, ai, ab = S.event, + Y = K.getX(ab), + ad = K.getY(ab), + ak = K.getDelta(ab), + R = S.mapTypeControl; + R || (R = {}, ai = this._findMapTypeByPos(Y, ad), ai && this._roamMap[ai] && "move" != this._roamMap[ai] && (R[ai] = !0)); + var ag = !1; + for (ai in R) { + if (R[ai]) { + ag = !0; + var Q = this._mapDataMap[ai].transform, + ao = Q.left, + U = Q.top, + P = Q.width, + T = Q.height, + aa = this.pos2geo(ai, [Y - ao, ad - U]); + if (ak > 0) { + if (ah = 1.2, null != this._scaleLimitMap[ai].max && Q.baseScale >= this._scaleLimitMap[ai].max) { + continue + } + } else { + if (ah = 1 / 1.2, null != this._scaleLimitMap[ai].min && Q.baseScale <= this._scaleLimitMap[ai].min) { + continue + } + } + Q.baseScale *= ah, Q.scale.x *= ah, Q.scale.y *= ah, Q.width = P * ah, Q.height = T * ah, this._mapDataMap[ai].hasRoam = !0, this._mapDataMap[ai].transform = Q, aa = this.geo2pos(ai, aa), Q.left -= aa[0] - (Y - ao), Q.top -= aa[1] - (ad - U), this._mapDataMap[ai].transform = Q, this.clearEffectShape(!0); + for (var ae = 0, O = this.shapeList.length; O > ae; ae++) { + var af = this.shapeList[ae]; + if (af._mapType == ai) { + var am = af.type, + u = af.style; + switch (af.position[0] = Q.left, af.position[1] = Q.top, am) { + case "path": + case "symbol": + case "circle": + case "rectangle": + case "polygon": + case "line": + case "ellipse": + case "heatmap": + af.scale[0] *= ah, af.scale[1] *= ah; + break; + case "mark-line": + Z(u, ah); + break; + case "polyline": + aj(u, ah); + break; + case "shape-bundle": + for (var ac = 0; ac < u.shapeList.length; ac++) { + var al = u.shapeList[ac]; + "mark-line" == al.type ? Z(al.style, ah) : "polyline" == al.type && aj(al.style, ah) + } + break; + case "icon": + case "image": + aa = this.geo2pos(ai, af._geo), u.x = u._x = aa[0] - u.width / 2, u.y = u._y = aa[1] - u.height / 2; + break; + default: + aa = this.geo2pos(ai, af._geo), u.x = aa[0], u.y = aa[1], "text" == am && (af._style.x = af.highlightStyle.x = aa[0], af._style.y = af.highlightStyle.y = aa[1]) + } + this.zr.modShape(af.id) + } + } + } + } + if (ag) { + K.stop(ab), this.zr.refreshNextFrame(); + var an = this; + clearTimeout(this._refreshDelayTicket), this._refreshDelayTicket = setTimeout(function() { + an && an.shapeList && an.animationEffect() + }, 100), this.messageCenter.dispatch(L.EVENT.MAP_ROAM, S.event, { + type: "scale" + }, this.myChart) + } + } + }, + __onmousedown: function(m) { + if (!(this.shapeList.length <= 0)) { + var O = m.target; + if (!O || !O.draggable) { + var p = m.event, + s = K.getX(p), + l = K.getY(p), + u = this._findMapTypeByPos(s, l); + if (u && this._roamMap[u] && "scale" != this._roamMap[u]) { + this._mousedown = !0, this._mx = s, this._my = l, this._curMapType = u, this.zr.on(v.EVENT.MOUSEUP, this._onmouseup); + var y = this; + setTimeout(function() { + y.zr.on(v.EVENT.MOUSEMOVE, y._onmousemove) + }, 100) + } + } + } + }, + __onmousemove: function(m) { + if (this._mousedown && this._isAlive) { + var O = m.event, + p = K.getX(O), + s = K.getY(O), + l = this._mapDataMap[this._curMapType].transform; + l.hasRoam = !0, l.left -= this._mx - p, l.top -= this._my - s, this._mx = p, this._my = s, this._mapDataMap[this._curMapType].transform = l; + for (var u = 0, y = this.shapeList.length; y > u; u++) { + this.shapeList[u]._mapType == this._curMapType && (this.shapeList[u].position[0] = l.left, this.shapeList[u].position[1] = l.top, this.zr.modShape(this.shapeList[u].id)) + } + this.messageCenter.dispatch(L.EVENT.MAP_ROAM, m.event, { + type: "move" + }, this.myChart), this.clearEffectShape(!0), this.zr.refreshNextFrame(), this._justMove = !0, K.stop(O) + } + }, + __onmouseup: function(a) { + var m = a.event; + this._mx = K.getX(m), this._my = K.getY(m), this._mousedown = !1; + var l = this; + setTimeout(function() { + l._justMove && l.animationEffect(), l._justMove = !1, l.zr.un(v.EVENT.MOUSEMOVE, l._onmousemove), l.zr.un(v.EVENT.MOUSEUP, l._onmouseup) + }, 120) + }, + __onroamcontroller: function(u) { + var V = u.event; + V.zrenderX = this.zr.getWidth() / 2, V.zrenderY = this.zr.getHeight() / 2; + var O = u.mapTypeControl, + R = 0, + p = 0, + S = u.step; + switch (u.roamType) { + case "scaleUp": + return V.zrenderDelta = 1, void this.__onmousewheel({ + event: V, + mapTypeControl: O + }); + case "scaleDown": + return V.zrenderDelta = -1, void this.__onmousewheel({ + event: V, + mapTypeControl: O + }); + case "up": + R = -S; + break; + case "down": + R = S; + break; + case "left": + p = -S; + break; + case "right": + p = S + } + var T, U; + for (U in O) { + this._mapDataMap[U] && this._activeMapType[U] && (T = this._mapDataMap[U].transform, T.hasRoam = !0, T.left -= p, T.top -= R, this._mapDataMap[U].transform = T) + } + for (var P = 0, y = this.shapeList.length; y > P; P++) { + U = this.shapeList[P]._mapType, O[U] && this._activeMapType[U] && (T = this._mapDataMap[U].transform, this.shapeList[P].position[0] = T.left, this.shapeList[P].position[1] = T.top, this.zr.modShape(this.shapeList[P].id)) + } + this.messageCenter.dispatch(L.EVENT.MAP_ROAM, u.event, { + type: "move" + }, this.myChart), this.clearEffectShape(!0), this.zr.refreshNextFrame(), clearTimeout(this.dircetionTimer); + var Q = this; + this.dircetionTimer = setTimeout(function() { + Q.animationEffect() + }, 150) + }, + __ondrhoverlink: function(m) { + for (var r, o, p = 0, l = this.shapeList.length; l > p; p++) { + r = this.shapeList[p]._mapType, this._hoverLinkMap[r] && this._activeMapType[r] && (o = w.get(this.shapeList[p], "value"), null != o && o >= m.valueMin && o <= m.valueMax && this.zr.addHoverShape(this.shapeList[p])) + } + }, + onclick: function(m) { + if (this.isClick && m.target && !this._justMove && "icon" != m.target.type) { + this.isClick = !1; + var Q = m.target, + p = Q.style._name, + u = this.shapeList.length, + l = Q._mapType || ""; + if ("single" == this._selectedMode[l]) { + for (var y in this._selected) { + if (this._selected[y] && this._mapTypeMap[y] == l) { + for (var O = 0; u > O; O++) { + this.shapeList[O].style._name == y && this.shapeList[O]._mapType == l && (this.shapeList[O].style = this.shapeList[O]._style, this.zr.modShape(this.shapeList[O].id)) + } + y != p && (this._selected[y] = !1) + } + } + } + this._selected[p] = !this._selected[p]; + for (var O = 0; u > O; O++) { + this.shapeList[O].style._name == p && this.shapeList[O]._mapType == l && (this.shapeList[O].style = this._selected[p] ? this.shapeList[O].highlightStyle : this.shapeList[O]._style, this.zr.modShape(this.shapeList[O].id)) + } + this.messageCenter.dispatch(L.EVENT.MAP_SELECTED, m.event, { + selected: this._selected, + target: p + }, this.myChart), this.zr.refreshNextFrame(); + var P = this; + setTimeout(function() { + P.zr.trigger(v.EVENT.MOUSEMOVE, m.event) + }, 100) + } + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this._mapDataRequireCounter > 0 ? this.clear() : this.backupShapeList(), this._buildShape(), this.zr.refreshHover() + }, + ondataRange: function(a, i) { + this.component.dataRange && (this.refresh(), i.needRefresh = !0) + }, + pos2geo: function(a, i) { + return this._mapDataMap[a].transform ? this._mapDataMap[a].projection.pos2geo(this._mapDataMap[a].transform, i) : null + }, + getGeoByPos: function(a, m) { + if (!this._mapDataMap[a].transform) { + return null + } + var l = [this._mapDataMap[a].transform.left, this._mapDataMap[a].transform.top]; + return m instanceof Array ? (m[0] -= l[0], m[1] -= l[1]) : (m.x -= l[0], m.y -= l[1]), this.pos2geo(a, m) + }, + geo2pos: function(a, i) { + return this._mapDataMap[a].transform ? this._mapDataMap[a].projection.geo2pos(this._mapDataMap[a].transform, i) : null + }, + getPosByGeo: function(a, m) { + if (!this._mapDataMap[a].transform) { + return null + } + var l = this.geo2pos(a, m); + return l[0] += this._mapDataMap[a].transform.left, l[1] += this._mapDataMap[a].transform.top, l + }, + getMapPosition: function(a) { + return this._mapDataMap[a].transform ? [this._mapDataMap[a].transform.left, this._mapDataMap[a].transform.top] : null + }, + onbeforDispose: function() { + this._isAlive = !1, this.zr.un(v.EVENT.MOUSEWHEEL, this._onmousewheel), this.zr.un(v.EVENT.MOUSEDOWN, this._onmousedown), this.messageCenter.unbind(L.EVENT.ROAMCONTROLLER, this._onroamcontroller), this.messageCenter.unbind(L.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink) + } + }, G.inherits(J, B), x("../chart").define("map", J), J + }), d("zrender/shape/Path", ["require", "./Base", "./util/PathProxy", "../tool/util"], function(l) { + var w = l("./Base"), + m = l("./util/PathProxy"), + p = m.PathSegment, + j = function(a) { + return Math.sqrt(a[0] * a[0] + a[1] * a[1]) + }, + q = function(a, i) { + return (a[0] * i[0] + a[1] * i[1]) / (j(a) * j(i)) + }, + u = function(a, i) { + return (a[0] * i[1] < a[1] * i[0] ? -1 : 1) * Math.acos(q(a, i)) + }, + v = function(a) { + w.call(this, a) + }; + return v.prototype = { + type: "path", + buildPathArray: function(D, R, H) { + if (!D) { + return [] + } + R = R || 0, H = H || 0; + var z = D, + N = ["m", "M", "l", "L", "v", "V", "h", "H", "z", "Z", "c", "C", "q", "Q", "t", "T", "s", "S", "a", "A"]; + z = z.replace(/-/g, " -"), z = z.replace(/ /g, " "), z = z.replace(/ /g, ","), z = z.replace(/,,/g, ","); + var P; + for (P = 0; P < N.length; P++) { + z = z.replace(new RegExp(N[P], "g"), "|" + N[P]) + } + var Q = z.split("|"), + J = [], + G = 0, + M = 0; + for (P = 1; P < Q.length; P++) { + var Z = Q[P], + T = Z.charAt(0); + Z = Z.slice(1), Z = Z.replace(new RegExp("e,-", "g"), "e-"); + var C = Z.split(","); + C.length > 0 && "" === C[0] && C.shift(); + for (var O = 0; O < C.length; O++) { + C[O] = parseFloat(C[O]) + } + for (; C.length > 0 && !isNaN(C[0]);) { + var B, S, ae, F, A, E, I, ac, n = null, + K = [], + ab = G, + ad = M; + switch (T) { + case "l": + G += C.shift(), M += C.shift(), n = "L", K.push(G, M); + break; + case "L": + G = C.shift(), M = C.shift(), K.push(G, M); + break; + case "m": + G += C.shift(), M += C.shift(), n = "M", K.push(G, M), T = "l"; + break; + case "M": + G = C.shift(), M = C.shift(), n = "M", K.push(G, M), T = "L"; + break; + case "h": + G += C.shift(), n = "L", K.push(G, M); + break; + case "H": + G = C.shift(), n = "L", K.push(G, M); + break; + case "v": + M += C.shift(), n = "L", K.push(G, M); + break; + case "V": + M = C.shift(), n = "L", K.push(G, M); + break; + case "C": + K.push(C.shift(), C.shift(), C.shift(), C.shift()), G = C.shift(), M = C.shift(), K.push(G, M); + break; + case "c": + K.push(G + C.shift(), M + C.shift(), G + C.shift(), M + C.shift()), G += C.shift(), M += C.shift(), n = "C", K.push(G, M); + break; + case "S": + B = G, S = M, ae = J[J.length - 1], "C" === ae.command && (B = G + (G - ae.points[2]), S = M + (M - ae.points[3])), K.push(B, S, C.shift(), C.shift()), G = C.shift(), M = C.shift(), n = "C", K.push(G, M); + break; + case "s": + B = G, S = M, ae = J[J.length - 1], "C" === ae.command && (B = G + (G - ae.points[2]), S = M + (M - ae.points[3])), K.push(B, S, G + C.shift(), M + C.shift()), G += C.shift(), M += C.shift(), n = "C", K.push(G, M); + break; + case "Q": + K.push(C.shift(), C.shift()), G = C.shift(), M = C.shift(), K.push(G, M); + break; + case "q": + K.push(G + C.shift(), M + C.shift()), G += C.shift(), M += C.shift(), n = "Q", K.push(G, M); + break; + case "T": + B = G, S = M, ae = J[J.length - 1], "Q" === ae.command && (B = G + (G - ae.points[0]), S = M + (M - ae.points[1])), G = C.shift(), M = C.shift(), n = "Q", K.push(B, S, G, M); + break; + case "t": + B = G, S = M, ae = J[J.length - 1], "Q" === ae.command && (B = G + (G - ae.points[0]), S = M + (M - ae.points[1])), G += C.shift(), M += C.shift(), n = "Q", K.push(B, S, G, M); + break; + case "A": + F = C.shift(), A = C.shift(), E = C.shift(), I = C.shift(), ac = C.shift(), ab = G, ad = M, G = C.shift(), M = C.shift(), n = "A", K = this._convertPoint(ab, ad, G, M, I, ac, F, A, E); + break; + case "a": + F = C.shift(), A = C.shift(), E = C.shift(), I = C.shift(), ac = C.shift(), ab = G, ad = M, G += C.shift(), M += C.shift(), n = "A", K = this._convertPoint(ab, ad, G, M, I, ac, F, A, E) + } + for (var Y = 0, aa = K.length; aa > Y; Y += 2) { + K[Y] += R, K[Y + 1] += H + } + J.push(new p(n || T, K)) + }("z" === T || "Z" === T) && J.push(new p("z", [])) + } + return J + }, + _convertPoint: function(C, N, G, K, r, M, I, F, J) { + var Q = J * (Math.PI / 180), + P = Math.cos(Q) * (C - G) / 2 + Math.sin(Q) * (N - K) / 2, + B = -1 * Math.sin(Q) * (C - G) / 2 + Math.cos(Q) * (N - K) / 2, + L = P * P / (I * I) + B * B / (F * F); + L > 1 && (I *= Math.sqrt(L), F *= Math.sqrt(L)); + var A = Math.sqrt((I * I * F * F - I * I * B * B - F * F * P * P) / (I * I * B * B + F * F * P * P)); + r === M && (A *= -1), isNaN(A) && (A = 0); + var O = A * I * B / F, + S = A * -F * P / I, + E = (C + G) / 2 + Math.cos(Q) * O - Math.sin(Q) * S, + z = (N + K) / 2 + Math.sin(Q) * O + Math.cos(Q) * S, + D = u([1, 0], [(P - O) / I, (B - S) / F]), + H = [(P - O) / I, (B - S) / F], + R = [(-1 * P - O) / I, (-1 * B - S) / F], + o = u(H, R); + return q(H, R) <= -1 && (o = Math.PI), q(H, R) >= 1 && (o = 0), 0 === M && o > 0 && (o -= 2 * Math.PI), 1 === M && 0 > o && (o += 2 * Math.PI), [E, z, I, F, D, o, Q, M] + }, + buildPath: function(E, T) { + var I = T.path, + O = T.x || 0, + A = T.y || 0; + T.pathArray = T.pathArray || this.buildPathArray(I, O, A); + for (var P = T.pathArray, R = T.pointList = [], S = [], K = 0, H = P.length; H > K; K++) { + "M" == P[K].command.toUpperCase() && (S.length > 0 && R.push(S), S = []); + for (var N = P[K].points, Y = 0, X = N.length; X > Y; Y += 2) { + S.push([N[Y], N[Y + 1]]) + } + } + S.length > 0 && R.push(S); + for (var K = 0, H = P.length; H > K; K++) { + var D = P[K].command, + N = P[K].points; + switch (D) { + case "L": + E.lineTo(N[0], N[1]); + break; + case "M": + E.moveTo(N[0], N[1]); + break; + case "C": + E.bezierCurveTo(N[0], N[1], N[2], N[3], N[4], N[5]); + break; + case "Q": + E.quadraticCurveTo(N[0], N[1], N[2], N[3]); + break; + case "A": + var Q = N[0], + C = N[1], + W = N[2], + aa = N[3], + G = N[4], + B = N[5], + F = N[6], + J = N[7], + Z = W > aa ? W : aa, + z = W > aa ? 1 : W / aa, + M = W > aa ? aa / W : 1; + E.translate(Q, C), E.rotate(F), E.scale(z, M), E.arc(0, 0, Z, G, G + B, 1 - J), E.scale(1 / z, 1 / M), E.rotate(-F), E.translate(-Q, -C); + break; + case "z": + E.closePath() + } + } + }, + getRect: function(y) { + if (y.__rect) { + return y.__rect + } + var H; + H = "stroke" == y.brushType || "fill" == y.brushType ? y.lineWidth || 1 : 0; + for (var A = Number.MAX_VALUE, D = Number.MIN_VALUE, x = Number.MAX_VALUE, E = Number.MIN_VALUE, F = y.x || 0, G = y.y || 0, B = y.pathArray || this.buildPathArray(y.path), z = 0; z < B.length; z++) { + for (var C = B[z].points, J = 0; J < C.length; J++) { + J % 2 === 0 ? (C[J] + F < A && (A = C[J]), C[J] + F > D && (D = C[J])) : (C[J] + G < x && (x = C[J]), C[J] + G > E && (E = C[J])) + } + } + var I; + return I = A === Number.MAX_VALUE || D === Number.MIN_VALUE || x === Number.MAX_VALUE || E === Number.MIN_VALUE ? { + x: 0, + y: 0, + width: 0, + height: 0 + } : { + x: Math.round(A - H / 2), + y: Math.round(x - H / 2), + width: D - A + H, + height: E - x + H + }, y.__rect = I, I + } + }, l("../tool/util").inherits(v, w), v + }), d("zrender/shape/Ellipse", ["require", "./Base", "../tool/util"], function(a) { + var l = a("./Base"), + j = function(i) { + l.call(this, i) + }; + return j.prototype = { + type: "ellipse", + buildPath: function(p, z) { + var q = 0.5522848, + v = z.x, + m = z.y, + w = z.a, + x = z.b, + y = w * q, + u = x * q; + p.moveTo(v - w, m), p.bezierCurveTo(v - w, m - u, v - y, m - x, v, m - x), p.bezierCurveTo(v + y, m - x, v + w, m - u, v + w, m), p.bezierCurveTo(v + w, m + u, v + y, m + x, v, m + x), p.bezierCurveTo(v - y, m + x, v - w, m + u, v - w, m), p.closePath() + }, + getRect: function(i) { + if (i.__rect) { + return i.__rect + } + var m; + return m = "stroke" == i.brushType || "fill" == i.brushType ? i.lineWidth || 1 : 0, i.__rect = { + x: Math.round(i.x - i.a - m / 2), + y: Math.round(i.y - i.b - m / 2), + width: 2 * i.a + m, + height: 2 * i.b + m + }, i.__rect + } + }, a("../tool/util").inherits(j, l), j + }), d("echarts/component/roamController", ["require", "./base", "zrender/shape/Rectangle", "zrender/shape/Sector", "zrender/shape/Circle", "../config", "zrender/tool/util", "zrender/tool/color", "zrender/tool/event", "../component"], function(m) { + function z(l, C, s, i, A) { + if (this.rcOption = {}, i.roamController && i.roamController.show) { + if (!i.roamController.mapTypeControl) { + return void console.error("option.roamController.mapTypeControl has not been defined.") + } + q.call(this, l, C, s, i, A), this.rcOption = i.roamController; + var B = this; + this._drictionMouseDown = function(a) { + return B.__drictionMouseDown(a) + }, this._drictionMouseUp = function(a) { + return B.__drictionMouseUp(a) + }, this._drictionMouseMove = function(a) { + return B.__drictionMouseMove(a) + }, this._drictionMouseOut = function(a) { + return B.__drictionMouseOut(a) + }, this._scaleHandler = function(a) { + return B.__scaleHandler(a) + }, this.refresh(i) + } + } + var q = m("./base"), + v = m("zrender/shape/Rectangle"), + j = m("zrender/shape/Sector"), + w = m("zrender/shape/Circle"), + x = m("../config"); + x.roamController = { + zlevel: 0, + z: 4, + show: !0, + x: "left", + y: "top", + width: 80, + height: 120, + backgroundColor: "rgba(0,0,0,0)", + borderColor: "#ccc", + borderWidth: 0, + padding: 5, + handleColor: "#6495ed", + fillerColor: "#fff", + step: 15, + mapTypeControl: null + }; + var y = m("zrender/tool/util"), + u = m("zrender/tool/color"), + p = m("zrender/tool/event"); + return z.prototype = { + type: x.COMPONENT_TYPE_ROAMCONTROLLER, + _buildShape: function() { + if (this.rcOption.show) { + this._itemGroupLocation = this._getItemGroupLocation(), this._buildBackground(), this._buildItem(); + for (var a = 0, i = this.shapeList.length; i > a; a++) { + this.zr.addShape(this.shapeList[a]) + } + } + }, + _buildItem: function() { + this.shapeList.push(this._getDirectionShape("up")), this.shapeList.push(this._getDirectionShape("down")), this.shapeList.push(this._getDirectionShape("left")), this.shapeList.push(this._getDirectionShape("right")), this.shapeList.push(this._getScaleShape("scaleUp")), this.shapeList.push(this._getScaleShape("scaleDown")) + }, + _getDirectionShape: function(a) { + var A = this._itemGroupLocation.r, + l = this._itemGroupLocation.x + A, + r = this._itemGroupLocation.y + A, + s = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: l, + y: r, + r: A, + startAngle: -45, + endAngle: 45, + color: this.rcOption.handleColor, + text: ">", + textX: l + A / 2 + 4, + textY: r - 0.5, + textAlign: "center", + textBaseline: "middle", + textPosition: "specific", + textColor: this.rcOption.fillerColor, + textFont: Math.floor(A / 2) + "px arial" + }, + highlightStyle: { + color: u.lift(this.rcOption.handleColor, -0.2), + brushType: "fill" + }, + clickable: !0 + }; + switch (a) { + case "up": + s.rotation = [Math.PI / 2, l, r]; + break; + case "left": + s.rotation = [Math.PI, l, r]; + break; + case "down": + s.rotation = [-Math.PI / 2, l, r] + } + return s = new j(s), s._roamType = a, s.onmousedown = this._drictionMouseDown, s.onmouseup = this._drictionMouseUp, s.onmousemove = this._drictionMouseMove, s.onmouseout = this._drictionMouseOut, s + }, + _getScaleShape: function(o) { + var E = this._itemGroupLocation.width, + A = this._itemGroupLocation.height - E; + A = 0 > A ? 20 : A; + var B = Math.min(E / 2 - 5, A) / 2, + l = this._itemGroupLocation.x + ("scaleDown" === o ? E - B : B), + C = this._itemGroupLocation.y + this._itemGroupLocation.height - B, + D = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: { + x: l, + y: C, + r: B, + color: this.rcOption.handleColor, + text: "scaleDown" === o ? "-" : "+", + textX: l, + textY: C - 2, + textAlign: "center", + textBaseline: "middle", + textPosition: "specific", + textColor: this.rcOption.fillerColor, + textFont: Math.floor(B) + "px verdana" + }, + highlightStyle: { + color: u.lift(this.rcOption.handleColor, -0.2), + brushType: "fill" + }, + clickable: !0 + }; + return D = new w(D), D._roamType = o, D.onmousedown = this._scaleHandler, D + }, + _buildBackground: function() { + var a = this.reformCssArray(this.rcOption.padding); + this.shapeList.push(new v({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + x: this._itemGroupLocation.x - a[3], + y: this._itemGroupLocation.y - a[0], + width: this._itemGroupLocation.width + a[3] + a[1], + height: this._itemGroupLocation.height + a[0] + a[2], + brushType: 0 === this.rcOption.borderWidth ? "fill" : "both", + color: this.rcOption.backgroundColor, + strokeColor: this.rcOption.borderColor, + lineWidth: this.rcOption.borderWidth + } + })) + }, + _getItemGroupLocation: function() { + var s, E = this.reformCssArray(this.rcOption.padding), + A = this.rcOption.width, + B = this.rcOption.height, + l = this.zr.getWidth(), + C = this.zr.getHeight(); + switch (this.rcOption.x) { + case "center": + s = Math.floor((l - A) / 2); + break; + case "left": + s = E[3] + this.rcOption.borderWidth; + break; + case "right": + s = l - A - E[1] - E[3] - 2 * this.rcOption.borderWidth; + break; + default: + s = this.parsePercent(this.rcOption.x, l) + } + var D; + switch (this.rcOption.y) { + case "top": + D = E[0] + this.rcOption.borderWidth; + break; + case "bottom": + D = C - B - E[0] - E[2] - 2 * this.rcOption.borderWidth; + break; + case "center": + D = Math.floor((C - B) / 2); + break; + default: + D = this.parsePercent(this.rcOption.y, C) + } + return { + x: s, + y: D, + r: A / 2, + width: A, + height: B + } + }, + __drictionMouseDown: function(a) { + this.mousedown = !0, this._drictionHandlerOn(a) + }, + __drictionMouseUp: function(a) { + this.mousedown = !1, this._drictionHandlerOff(a) + }, + __drictionMouseMove: function(a) { + this.mousedown && this._drictionHandlerOn(a) + }, + __drictionMouseOut: function(a) { + this._drictionHandlerOff(a) + }, + _drictionHandlerOn: function(a) { + this._dispatchEvent(a.event, a.target._roamType), clearInterval(this.dircetionTimer); + var i = this; + this.dircetionTimer = setInterval(function() { + i._dispatchEvent(a.event, a.target._roamType) + }, 100), p.stop(a.event) + }, + _drictionHandlerOff: function() { + clearInterval(this.dircetionTimer) + }, + __scaleHandler: function(a) { + this._dispatchEvent(a.event, a.target._roamType), p.stop(a.event) + }, + _dispatchEvent: function(a, i) { + this.messageCenter.dispatch(x.EVENT.ROAMCONTROLLER, a, { + roamType: i, + mapTypeControl: this.rcOption.mapTypeControl, + step: this.rcOption.step + }, this.myChart) + }, + refresh: function(a) { + a && (this.option = a || this.option, this.option.roamController = this.reformOption(this.option.roamController), this.rcOption = this.option.roamController), this.clear(), this._buildShape() + } + }, y.inherits(z, q), m("../component").define("roamController", z), z + }), d("echarts/layer/heatmap", ["require"], function() { + function a(n) { + if (this.option = n, n) { + for (var o in m) { + this.option[o] = void 0 !== n[o] ? n[o] : m[o] + } + } else { + this.option = m + } + } + var m = { + blurSize: 30, + gradientColors: ["blue", "cyan", "lime", "yellow", "red"], + minAlpha: 0.05, + valueScale: 1, + opacity: 1 + }, + j = 20, + l = 256; + return a.prototype = { + getCanvas: function(w, H, i) { + var D = this._getBrush(), + F = this._getGradient(), + G = j + this.option.blurSize, + B = document.createElement("canvas"); + B.width = H, B.height = i; + for (var A = B.getContext("2d"), C = w.length, K = 0; C > K; ++K) { + var J = w[K], + v = J[0], + E = J[1], + q = J[2], + I = Math.min(1, Math.max(q * this.option.valueScale || this.option.minAlpha, this.option.minAlpha)); + A.globalAlpha = I, A.drawImage(D, v - G, E - G) + } + for (var L = A.getImageData(0, 0, B.width, B.height), z = L.data, C = z.length / 4; C--;) { + var n = 4 * C + 3, + I = z[n] / 256, + x = Math.floor(I * (l - 1)); + z[n - 3] = F[4 * x], z[n - 2] = F[4 * x + 1], z[n - 1] = F[4 * x + 2], z[n] *= this.option.opacity + } + return A.putImageData(L, 0, 0), B + }, + _getBrush: function() { + if (!this._brushCanvas) { + this._brushCanvas = document.createElement("canvas"); + var i = j + this.option.blurSize, + p = 2 * i; + this._brushCanvas.width = p, this._brushCanvas.height = p; + var o = this._brushCanvas.getContext("2d"); + o.shadowOffsetX = p, o.shadowBlur = this.option.blurSize, o.shadowColor = "black", o.beginPath(), o.arc(-i, i, j, 0, 2 * Math.PI, !0), o.closePath(), o.fill() + } + return this._brushCanvas + }, + _getGradient: function() { + if (!this._gradientPixels) { + var p = l, + v = document.createElement("canvas"); + v.width = 1, v.height = p; + for (var q = v.getContext("2d"), n = q.createLinearGradient(0, 0, 0, p), s = this.option.gradientColors.length, u = 0; s > u; ++u) { + "string" == typeof this.option.gradientColors[u] ? n.addColorStop((u + 1) / s, this.option.gradientColors[u]) : n.addColorStop(this.option.gradientColors[u].offset, this.option.gradientColors[u].color) + } + q.fillStyle = n, q.fillRect(0, 0, 1, p), this._gradientPixels = q.getImageData(0, 0, 1, p).data + } + return this._gradientPixels + } + }, a + }), d("echarts/util/mapData/params", ["require"], function(a) { + function m(p) { + if (!p.UTF8Encoding) { + return p + } + for (var A = p.features, w = 0; w < A.length; w++) { + for (var i = A[w], x = i.geometry.coordinates, y = i.geometry.encodeOffsets, z = 0; z < x.length; z++) { + var u = x[z]; + if ("Polygon" === i.geometry.type) { + x[z] = j(u, y[z]) + } else { + if ("MultiPolygon" === i.geometry.type) { + for (var q = 0; q < u.length; q++) { + var v = u[q]; + u[q] = j(v, y[z][q]) + } + } + } + } + } + return p.UTF8Encoding = !1, p + } + + function j(q, z) { + for (var u = [], v = z[0], p = z[1], w = 0; w < q.length; w += 2) { + var x = q.charCodeAt(w) - 64, + y = q.charCodeAt(w + 1) - 64; + x = x >> 1 ^ -(1 & x), y = y >> 1 ^ -(1 & y), x += v, y += p, v = x, p = y, u.push([x / 1024, y / 1024]) + } + return u + } + var l = { + none: { + getGeoJson: function(i) { + i({ + type: "FeatureCollection", + features: [{ + type: "Feature", + geometry: { + coordinates: [], + encodeOffsets: [], + type: "Polygon" + }, + properties: {} + }] + }) + } + }, + world: { + getGeoJson: function(e) { + a(["./geoJson/world_geo"], function(i) { + e(m(i)) + }) + } + }, + china: { + getGeoJson: function(e) { + a(["./geoJson/china_geo"], function(i) { + e(m(i)) + }) + } + }, + "南海诸岛": { + textCoord: [126, 25], + getPath: function(q, B) { + for (var v = [ + [ + [0, 3.5], + [7, 11.2], + [15, 11.9], + [30, 7], + [42, 0.7], + [52, 0.7], + [56, 7.7], + [59, 0.7], + [64, 0.7], + [64, 0], + [5, 0], + [0, 3.5] + ], + [ + [13, 16.1], + [19, 14.7], + [16, 21.7], + [11, 23.1], + [13, 16.1] + ], + [ + [12, 32.2], + [14, 38.5], + [15, 38.5], + [13, 32.2], + [12, 32.2] + ], + [ + [16, 47.6], + [12, 53.2], + [13, 53.2], + [18, 47.6], + [16, 47.6] + ], + [ + [6, 64.40000000000001], + [8, 70], + [9, 70], + [8, 64.40000000000001], + [6, 64.40000000000001] + ], + [ + [23, 82.59999999999999], + [29, 79.8], + [30, 79.8], + [25, 82.59999999999999], + [23, 82.59999999999999] + ], + [ + [37, 70.7], + [43, 62.3], + [44, 62.3], + [39, 70.7], + [37, 70.7] + ], + [ + [48, 51.1], + [51, 45.5], + [53, 45.5], + [50, 51.1], + [48, 51.1] + ], + [ + [51, 35], + [51, 28.7], + [53, 28.7], + [53, 35], + [51, 35] + ], + [ + [52, 22.4], + [55, 17.5], + [56, 17.5], + [53, 22.4], + [52, 22.4] + ], + [ + [58, 12.6], + [62, 7], + [63, 7], + [60, 12.6], + [58, 12.6] + ], + [ + [0, 3.5], + [0, 93.09999999999999], + [64, 93.09999999999999], + [64, 0], + [63, 0], + [63, 92.40000000000001], + [1, 92.40000000000001], + [1, 3.5], + [0, 3.5] + ] + ], x = "", p = q[0], y = q[1], z = 0, A = v.length; A > z; z++) { + x += "M " + ((v[z][0][0] * B + p).toFixed(2) - 0) + " " + ((v[z][0][1] * B + y).toFixed(2) - 0) + " "; + for (var w = 1, u = v[z].length; u > w; w++) { + x += "L " + ((v[z][w][0] * B + p).toFixed(2) - 0) + " " + ((v[z][w][1] * B + y).toFixed(2) - 0) + " " + } + } + return x + " Z" + } + }, + "新疆": { + getGeoJson: function(e) { + a(["./geoJson/xin_jiang_geo"], function(i) { + e(m(i)) + }) + } + }, + "西藏": { + getGeoJson: function(e) { + a(["./geoJson/xi_zang_geo"], function(i) { + e(m(i)) + }) + } + }, + "内蒙古": { + getGeoJson: function(e) { + a(["./geoJson/nei_meng_gu_geo"], function(i) { + e(m(i)) + }) + } + }, + "青海": { + getGeoJson: function(e) { + a(["./geoJson/qing_hai_geo"], function(i) { + e(m(i)) + }) + } + }, + "四川": { + getGeoJson: function(e) { + a(["./geoJson/si_chuan_geo"], function(i) { + e(m(i)) + }) + } + }, + "黑龙江": { + getGeoJson: function(e) { + a(["./geoJson/hei_long_jiang_geo"], function(i) { + e(m(i)) + }) + } + }, + "甘肃": { + getGeoJson: function(e) { + a(["./geoJson/gan_su_geo"], function(i) { + e(m(i)) + }) + } + }, + "云南": { + getGeoJson: function(e) { + a(["./geoJson/yun_nan_geo"], function(i) { + e(m(i)) + }) + } + }, + "广西": { + getGeoJson: function(e) { + a(["./geoJson/guang_xi_geo"], function(i) { + e(m(i)) + }) + } + }, + "湖南": { + getGeoJson: function(e) { + a(["./geoJson/hu_nan_geo"], function(i) { + e(m(i)) + }) + } + }, + "陕西": { + getGeoJson: function(e) { + a(["./geoJson/shan_xi_1_geo"], function(i) { + e(m(i)) + }) + } + }, + "广东": { + getGeoJson: function(e) { + a(["./geoJson/guang_dong_geo"], function(i) { + e(m(i)) + }) + } + }, + "吉林": { + getGeoJson: function(e) { + a(["./geoJson/ji_lin_geo"], function(i) { + e(m(i)) + }) + } + }, + "河北": { + getGeoJson: function(e) { + a(["./geoJson/he_bei_geo"], function(i) { + e(m(i)) + }) + } + }, + "湖北": { + getGeoJson: function(e) { + a(["./geoJson/hu_bei_geo"], function(i) { + e(m(i)) + }) + } + }, + "贵州": { + getGeoJson: function(e) { + a(["./geoJson/gui_zhou_geo"], function(i) { + e(m(i)) + }) + } + }, + "山东": { + getGeoJson: function(e) { + a(["./geoJson/shan_dong_geo"], function(i) { + e(m(i)) + }) + } + }, + "江西": { + getGeoJson: function(e) { + a(["./geoJson/jiang_xi_geo"], function(i) { + e(m(i)) + }) + } + }, + "河南": { + getGeoJson: function(e) { + a(["./geoJson/he_nan_geo"], function(i) { + e(m(i)) + }) + } + }, + "辽宁": { + getGeoJson: function(e) { + a(["./geoJson/liao_ning_geo"], function(i) { + e(m(i)) + }) + } + }, + "山西": { + getGeoJson: function(e) { + a(["./geoJson/shan_xi_2_geo"], function(i) { + e(m(i)) + }) + } + }, + "安徽": { + getGeoJson: function(e) { + a(["./geoJson/an_hui_geo"], function(i) { + e(m(i)) + }) + } + }, + "福建": { + getGeoJson: function(e) { + a(["./geoJson/fu_jian_geo"], function(i) { + e(m(i)) + }) + } + }, + "浙江": { + getGeoJson: function(e) { + a(["./geoJson/zhe_jiang_geo"], function(i) { + e(m(i)) + }) + } + }, + "江苏": { + getGeoJson: function(e) { + a(["./geoJson/jiang_su_geo"], function(i) { + e(m(i)) + }) + } + }, + "重庆": { + getGeoJson: function(e) { + a(["./geoJson/chong_qing_geo"], function(i) { + e(m(i)) + }) + } + }, + "宁夏": { + getGeoJson: function(e) { + a(["./geoJson/ning_xia_geo"], function(i) { + e(m(i)) + }) + } + }, + "海南": { + getGeoJson: function(e) { + a(["./geoJson/hai_nan_geo"], function(i) { + e(m(i)) + }) + } + }, + "台湾": { + getGeoJson: function(e) { + a(["./geoJson/tai_wan_geo"], function(i) { + e(m(i)) + }) + } + }, + "北京": { + getGeoJson: function(e) { + a(["./geoJson/bei_jing_geo"], function(i) { + e(m(i)) + }) + } + }, + "天津": { + getGeoJson: function(e) { + a(["./geoJson/tian_jin_geo"], function(i) { + e(m(i)) + }) + } + }, + "上海": { + getGeoJson: function(e) { + a(["./geoJson/shang_hai_geo"], function(i) { + e(m(i)) + }) + } + }, + "香港": { + getGeoJson: function(e) { + a(["./geoJson/xiang_gang_geo"], function(i) { + e(m(i)) + }) + } + }, + "澳门": { + getGeoJson: function(e) { + a(["./geoJson/ao_men_geo"], function(i) { + e(m(i)) + }) + } + } + }; + return { + decode: m, + params: l + } + }), d("echarts/util/mapData/textFixed", [], function() { + return { + "广东": [0, -10], + "香港": [10, 10], + "澳门": [-10, 18], + "黑龙江": [0, 20], + "天津": [5, 5], + "深圳市": [-35, 0], + "红河哈尼族彝族自治州": [0, 20], + "楚雄彝族自治州": [-5, 15], + "石河子市": [-5, 5], + "五家渠市": [0, -10], + "昌吉回族自治州": [10, 10], + "昌江黎族自治县": [0, 20], + "陵水黎族自治县": [0, 20], + "东方市": [0, 20], + "渭南市": [0, 20] + } + }), d("echarts/util/mapData/geoCoord", [], function() { + return { + Russia: [100, 60], + "United States of America": [-99, 38] + } + }), d("echarts/util/projection/svg", ["require", "zrender/shape/Path"], function(p) { + function B(a) { + return parseFloat(a || 0) + } + + function u(m) { + for (var s = m.firstChild; + "svg" != s.nodeName.toLowerCase() || 1 != s.nodeType;) { + s = s.nextSibling + } + var t = B(s.getAttribute("x")), + l = B(s.getAttribute("y")), + C = B(s.getAttribute("width")), + D = B(s.getAttribute("height")); + return { + left: t, + top: l, + width: C, + height: D + } + } + + function x(m, s) { + function o(a) { + var E = a.tagName; + if (w[E]) { + var C = w[E](a, r); + C && (C.scale = r, C.properties = { + name: a.getAttribute("name") || "" + }, C.id = a.id, A(C, a), l.push(C)) + } + for (var D = a.childNodes, n = 0, i = D.length; i > n; n++) { + o(D[n]) + } + } + var r = [s.scale.x, s.scale.y], + l = []; + return o(m), l + } + + function j(a, m) { + var l = m instanceof Array ? [1 * m[0], 1 * m[1]] : [1 * m.x, 1 * m.y]; + return [l[0] / a.scale.x, l[1] / a.scale.y] + } + + function y(a, m) { + var l = m instanceof Array ? [1 * m[0], 1 * m[1]] : [1 * m.x, 1 * m.y]; + return [l[0] * a.scale.x, l[1] * a.scale.y] + } + + function z(a) { + return a.replace(/^\s\s*/, "").replace(/\s\s*$/, "") + } + + function A(m, D) { + var r = D.getAttribute("fill"), + s = D.getAttribute("stroke"), + l = D.getAttribute("stroke-width"), + C = D.getAttribute("opacity"); + r && "none" != r ? (m.color = r, s ? (m.brushType = "both", m.strokeColor = s) : m.brushType = "fill") : s && "none" != s && (m.strokeColor = s, m.brushType = "stroke"), l && "none" != l && (m.lineWidth = parseFloat(l)), C && "none" != C && (m.opacity = parseFloat(C)) + } + + function v(m) { + for (var D = z(m).replace(/,/g, " ").split(/\s+/), r = [], s = 0; s < D.length;) { + var l = parseFloat(D[s++]), + C = parseFloat(D[s++]); + r.push([l, C]) + } + return r + } + var q = p("zrender/shape/Path"), + w = { + path: function(a, o) { + var l = a.getAttribute("d"), + m = q.prototype.getRect({ + path: l + }); + return { + shapeType: "path", + path: l, + cp: [(m.x + m.width / 2) * o[0], (m.y + m.height / 2) * o[1]] + } + }, + rect: function(m, s) { + var t = B(m.getAttribute("x")), + l = B(m.getAttribute("y")), + C = B(m.getAttribute("width")), + D = B(m.getAttribute("height")); + return { + shapeType: "rectangle", + x: t, + y: l, + width: C, + height: D, + cp: [(t + C / 2) * s[0], (l + D / 2) * s[1]] + } + }, + line: function(m, s) { + var t = B(m.getAttribute("x1")), + l = B(m.getAttribute("y1")), + C = B(m.getAttribute("x2")), + D = B(m.getAttribute("y2")); + return { + shapeType: "line", + xStart: t, + yStart: l, + xEnd: C, + yEnd: D, + cp: [0.5 * (t + C) * s[0], 0.5 * (l + D) * s[1]] + } + }, + circle: function(m, r) { + var s = B(m.getAttribute("cx")), + l = B(m.getAttribute("cy")), + t = B(m.getAttribute("r")); + return { + shapeType: "circle", + x: s, + y: l, + r: t, + cp: [s * r[0], l * r[1]] + } + }, + ellipse: function(m, D) { + var r = parseFloat(m.getAttribute("cx") || 0), + s = parseFloat(m.getAttribute("cy") || 0), + l = parseFloat(m.getAttribute("rx") || 0), + C = parseFloat(m.getAttribute("ry") || 0); + return { + shapeType: "ellipse", + x: r, + y: s, + a: l, + b: C, + cp: [r * D[0], s * D[1]] + } + }, + polygon: function(m, F) { + var s = m.getAttribute("points"), + C = [1 / 0, 1 / 0], + l = [-(1 / 0), -(1 / 0)]; + if (s) { + s = v(s); + for (var D = 0; D < s.length; D++) { + var E = s[D]; + C[0] = Math.min(E[0], C[0]), C[1] = Math.min(E[1], C[1]), l[0] = Math.max(E[0], l[0]), l[1] = Math.max(E[1], l[1]) + } + return { + shapeType: "polygon", + pointList: s, + cp: [(C[0] + l[0]) / 2 * F[0], (C[1] + l[1]) / 2 * F[0]] + } + } + }, + polyline: function(a, m) { + var l = w.polygon(a, m); + return l + } + }; + return { + getBbox: u, + geoJson2Path: x, + pos2geo: j, + geo2pos: y + } + }), d("echarts/util/projection/normal", [], function() { + function l(a, n) { + return n = n || {}, a.srcSize || u(a, n), a.srcSize + } + + function u(v, C) { + C = C || {}, s.xmin = 360, s.xmax = -360, s.ymin = 180, s.ymax = -180; + for (var x, z, r = v.features, A = 0, B = r.length; B > A; A++) { + if (z = r[A], !z.properties.name || !C[z.properties.name]) { + switch (z.type) { + case "Feature": + s[z.geometry.type](z.geometry.coordinates); + break; + case "GeometryCollection": + x = z.geometries; + for (var y = 0, w = x.length; w > y; y++) { + s[x[y].type](x[y].coordinates) + } + } + } + } + return v.srcSize = { + left: 1 * s.xmin.toFixed(4), + top: 1 * s.ymin.toFixed(4), + width: 1 * (s.xmax - s.xmin).toFixed(4), + height: 1 * (s.ymax - s.ymin).toFixed(4) + }, v + } + + function m(w, z, C) { + function o(a, i) { + t = a.type, G = a.coordinates, q._bbox = { + xmin: 360, + xmax: -360, + ymin: 180, + ymax: -180 + }, J = q[t](G), B.push({ + path: J, + cp: q.makePoint(i.properties.cp ? i.properties.cp : [(q._bbox.xmin + q._bbox.xmax) / 2, (q._bbox.ymin + q._bbox.ymax) / 2]), + properties: i.properties, + id: i.id + }) + } + C = C || {}, q.scale = null, q.offset = null, w.srcSize || u(w, C), z.offset = { + x: w.srcSize.left, + y: w.srcSize.top, + left: z.OffsetLeft || 0, + top: z.OffsetTop || 0 + }, q.scale = z.scale, q.offset = z.offset; + for (var E, F, A, x = w.features, B = [], I = 0, H = x.length; H > I; I++) { + if (A = x[I], !A.properties.name || !C[A.properties.name]) { + if ("Feature" == A.type) { + o(A.geometry, A) + } else { + if ("GeometryCollection" == A.type) { + E = A.geometries; + for (var v = 0, D = E.length; D > v; v++) { + F = E[v], o(F, F) + } + } + } + } + } + var t, G, J; + return B + } + + function p(a, v) { + var o, r; + return v instanceof Array ? (o = 1 * v[0], r = 1 * v[1]) : (o = 1 * v.x, r = 1 * v.y), o = o / a.scale.x + a.offset.x - 168.5, o = o > 180 ? o - 360 : o, r = 90 - (r / a.scale.y + a.offset.y), [o, r] + } + + function j(a, i) { + return q.offset = a.offset, q.scale = a.scale, q.makePoint(i instanceof Array ? [1 * i[0], 1 * i[1]] : [1 * i.x, 1 * i.y]) + } + var q = { + formatPoint: function(a) { + return [(a[0] < -168.5 && a[1] > 63.8 ? a[0] + 360 : a[0]) + 168.5, 90 - a[1]] + }, + makePoint: function(r) { + var x = this, + v = x.formatPoint(r); + x._bbox.xmin > r[0] && (x._bbox.xmin = r[0]), x._bbox.xmax < r[0] && (x._bbox.xmax = r[0]), x._bbox.ymin > r[1] && (x._bbox.ymin = r[1]), x._bbox.ymax < r[1] && (x._bbox.ymax = r[1]); + var w = (v[0] - q.offset.x) * q.scale.x + q.offset.left, + o = (v[1] - q.offset.y) * q.scale.y + q.offset.top; + return [w, o] + }, + Point: function(a) { + return a = this.makePoint(a), a.join(",") + }, + LineString: function(r) { + for (var x, v = "", w = 0, o = r.length; o > w; w++) { + x = q.makePoint(r[w]), v = 0 === w ? "M" + x.join(",") : v + "L" + x.join(",") + } + return v + }, + Polygon: function(a) { + for (var v = "", o = 0, r = a.length; r > o; o++) { + v = v + q.LineString(a[o]) + "z" + } + return v + }, + MultiPoint: function(a) { + for (var v = [], o = 0, r = a.length; r > o; o++) { + v.push(q.Point(a[o])) + } + return v + }, + MultiLineString: function(a) { + for (var v = "", o = 0, r = a.length; r > o; o++) { + v += q.LineString(a[o]) + } + return v + }, + MultiPolygon: function(a) { + for (var v = "", o = 0, r = a.length; r > o; o++) { + v += q.Polygon(a[o]) + } + return v + } + }, + s = { + formatPoint: q.formatPoint, + makePoint: function(r) { + var x = this, + v = x.formatPoint(r), + w = v[0], + o = v[1]; + x.xmin > w && (x.xmin = w), x.xmax < w && (x.xmax = w), x.ymin > o && (x.ymin = o), x.ymax < o && (x.ymax = o) + }, + Point: function(a) { + this.makePoint(a) + }, + LineString: function(a) { + for (var o = 0, n = a.length; n > o; o++) { + this.makePoint(a[o]) + } + }, + Polygon: function(a) { + for (var o = 0, n = a.length; n > o; o++) { + this.LineString(a[o]) + } + }, + MultiPoint: function(a) { + for (var o = 0, n = a.length; n > o; o++) { + this.Point(a[o]) + } + }, + MultiLineString: function(a) { + for (var o = 0, n = a.length; n > o; o++) { + this.LineString(a[o]) + } + }, + MultiPolygon: function(a) { + for (var o = 0, n = a.length; n > o; o++) { + this.Polygon(a[o]) + } + } + }; + return { + getBbox: l, + geoJson2Path: m, + pos2geo: p, + geo2pos: j + } + }), d("echarts/util/mapData/geoJson/an_hui_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "3415", + properties: { + name: "六安市", + cp: [116.3123, 31.8329], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„„nJ‚UXUVƒ°U„ÑnU@mlLVaVln@@bn@VU@xlb@lšLnKlšƒVI„JšUVxnI@lVL@b„Ž°VX@˜b„x„nVVUnVVnU‚›@kX@VwV@„al¥UUnUWa@ƒ@wĸU„LU¥lKUa@aUI@alLVaUƒ¯anƒWkUKm@XV@VaXlW@aU_UWVUƒI¯@ma¯W¯™™I@UU@WWU@U@@UU@VkV@@WUUm@UaU@„lK@IUK„L@KWmXUWaXI@ƒ@a@a@U@U@KV¥lw„k°b²JVIVKlV@UX„la„Ul`œUVLVVVUšJ„U@Lnm@_VK@KUIW@™J@Xk@WW@U—ƒmm™XmWk@kK@aUUƒVmmkUwUmWL™@WmU@™UJmUULkKWakLWVkIƒlƒwULƒW@X°lUJ@°ULƒWV—wmJ@bmb¯Vkm@@WkWm¯wƒL@lkXƒWmXym¯UImJUbkV™@Vn¯„@V@lUbƒ@mk@maUxmlUbULWn@J—LmKUkWKkwUKƒbm„X„WxkVUKmLkVV@JUUWL@xkJUUƒV@X@VVlUbVX@xk¤šx‚¼œxWxn„‚nn@Þ¼„JVb°aVn„@šmlnXU„JlbVlkz@‚lUŽlXJmxVxXnWxXÈWlUŽ@šUxU@VX@xUL@šUÆmLnV@lWXk@@JlbXblnlJ"], + encodeOffsets: [ + [118710, 33351] + ] + } + }, { + type: "Feature", + id: "3408", + properties: { + name: "安庆市", + cp: [116.7517, 30.5255], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@n°‚znW„XlW@k„K°xXn‚l@Xn@l‚°Una@anI˜xXU„ŽVK@¯VIkW¯X@‚„VK„x„klJXUlKXblLVKnVVIšŽV@Xn‚@šŽXKVnVxlŽnn„UlmV@²óUkV™lW„b„lƒšƒn@VVVIn@lw@WVIXblV„@Èx‚aUaVIVVnKVLšK„ƒln@b²K@»U£ƒÑķƒġÝÅb™K™a@Im@ۍ„@kWÓkkmKÅnóJƒUÅ£›W@w„ĕ@wĉţ¯¯ƒUkK±l¯Uƒ¥UÑkÝUķ»Ý¥¯™JƒIUŽVbUl¯ÈV¼VJU¼Vb@bkLUl@„VJ@bUXǚ@lkVmXmKkLVxš‚Ž„VƒL@VkVVVlzW˜kbmLUUUbVbUV™šlÒnJlUnLllUL@bU„Vx„l‚LXVƦÈVU¦WJ"], + encodeOffsets: [ + [118834, 31759] + ] + } + }, { + type: "Feature", + id: "3411", + properties: { + name: "滁州市", + cp: [118.1909, 32.536], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@š„@`nnl@„xšK@X°KXV˜IXVlbXVWnX‚lL@šÈ»‚LVan@VJ„êVVn@‚X@laÞbVaƒyn@„_‚xnWVXnWl@VnUVkI@l‚nXKVLVV@V@kW@LlVô„@J@bVnnKnkVa@»lç@ƒnwšKma™UUUVњ@n™mWXalI@alVn@VwUaVU„@„nlaôJnU„VVXlJšaXXVK@UšV@VWx@nXVWšXVšUlLUbV‚ULVVnUVbUbVbš@@a„KÆnnKVK@U@UU@@a„@Vƒ°¯ÈJVIlķ@aa˜UaVKU_@mkxUI@aƒUlyU@@™wkKWmUbUnUVWbkJW_J@bƒn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXU›Jka@XƒVa@kšy@aVIUUW@@m„UlLœKWÑUKVan@UkVmmIXKƒaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaƒaU@kUUaǃUó»mKƒk¯@y@kWK@bkI¯`mn™l¯XWlkVUzUJlbUbVJl@nnm„@VULV`XnWƗbmUUn™JmUknƒJ¯km@ƒyk@kU›xL@VUbmnn¤lX@`™z@JmaULUVl@Xn@xllkXWa—aW@UVmUbƒ@mVXšWxXbWbUŽƒÒnVVnVVUL"], + encodeOffsets: [ + [120004, 33520] + ] + } + }, { + type: "Feature", + id: "3418", + properties: { + name: "宣城市", + cp: [118.8062, 30.6244], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Vb@„XL˜JXxlIXxlVlV@I²¤šnlUnVšU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJ‚UVkUUVWn@@anUVnVJVIV‚@@nUJVbUb‚„@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bš„UlkXW‚ƒxXz@‚„Ila„UlƒnUlJVInVÆJ„U„LVUnV„K°@VnlVnxV@XLlK@wVL@KnUlJXU˜bnKVLX„lUw@VWlLXKm@@a„@VLnmlIVVnKn@škVašVlwk@@a@k@ƒVIUa™@maUa@wna@kmWƒ™UUmVUIVǗ@aƒKm™aƒ™kU™J@InmUUaVa„k‚lX@Vk@m@VU@wnK@alKVUkUkKƒbmUkmƒ@U£WVk@@UÝbbƒaÇx@b@WVUa¯ƒ@wVwUUV@VwnK@KWaŁ@KšIUyUI@WmXó™UbWaKm™@km@IUyƒIUaWKƒx@zUKUL@llVUnkLVVkJWX@VUKUVƒIkVWakb@VWb@n@JkXUlmL@xkL@`VxšLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUw™KVÈ@J@LV±kkJUIƒl"], + encodeOffsets: [ + [120803, 31247] + ] + } + }, { + type: "Feature", + id: "3412", + properties: { + name: "阜阳市", + cp: [115.7629, 32.9919], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@V™nƒš@ša„k°aš±@‚¥@UUI@aUmlwUUx›b@¥XU@mmI@a@Kn@@_W@@W„I@mšUVVXUl@XaV@‚K@I@a„LX@aVI°K@KVL„UUw‚yXkšK@kšKÆbXnlK@k@a„JlU@w@U@»@aXKWƒn_‚JXkVKnƒ@°LlKXƒW@¯Uƒ@aUK@kmJUw™VƒIUJ™„kŽmL™K@kka@wUVm@@am@UkUbkK@nmVƒÒ¯VU„WVVmIƒƒULk@ƒƒma@kkKƒƒ@nUbUamU™`UUVUkKVkkƒW@@bkmƒnƒmUXVKXVƒL@VƒbU„m‚™bVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`‚Lkn@`@XVJ@X™Vm„k@UKmV¯LVVn±Wm@Ub@JlLUl„@VLk„@lmVVn@bnV@V°IV™šaVJXI°K°V@XXVlVVU„nšKVlUš„bWXnV@bV`U„„@@m@@‚ƒ@nxmn@bXVlL@¤nb„Ul¦šVVUnJVU„Vl@@bÞL"], + encodeOffsets: [ + [118418, 34392] + ] + } + }, { + type: "Feature", + id: "3413", + properties: { + name: "宿州市", + cp: [117.5208, 33.6841], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@UWU@bkW@aWU@aUIkWV™lLXb„lVIUVV@‚mn@V_n@VaUK@I‚@UašanJVU„@lV„UVnnKVVlaUa„I@wnK‚Lnll@nVlk@wVKXkl@@b„bUJ@V‚U@U„UUyVk@aVUXwlWXX‚WU¹@aU™@WUI@mlUšn„J@Il@šaXbV@VKl@XxVL@W„IšJlb„@„al@„IUUm@@aVK@¥¯—@mUķ¯bWƒk£Vm@akm@VaÅ@UVWaƒ@UJWkƒJ—UƒbWbU@UlƒXk@ƒamV@K¯nk@ƒlU@Uxmz@bU`ÇbUbÅVm£U@Ww™x@akLUK@UlakwUJWVkLmaUal@n_ƒmVUnKVUUmÅXWa™@kJmx@XUJ@bVLXxl@VVUVV„UbkLWbU@@lUVV„VVX„›K@XkJ@nU@@bV@VxUVlb„U@xXLWŽn@UxVbVĊ„V@b@XV`mnkJ@kUKmbƒaU@VbnbÆx@XU@@`k@@bl„™@@bkL@WƒakXWaU@Vmkx@XWW@@wUUUbƒJ™U¯V™@¯ÞU@WxXŽlL@bkb@ŽlVlnb™JW@kkU@mbkaWJ—IVlmz¯`UnU@mb™@@„ƒ`@bkVlœnV@b@šV@„aVxn@Vx‚KXnl@nbVK„bVK@a„_V@Vƒ„w@W„LlwnK@UmIU@VWš@šUÈ@lKnal„wš@@V°@šaUmlUUw@„ƒV@@UXK"], + encodeOffsets: [ + [119836, 35061] + ] + } + }, { + type: "Feature", + id: "3410", + properties: { + name: "黄山市", + cp: [118.0481, 29.9542], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lXnlWX@VUJVnUJVzXJVx„kVJlI²l‚U@K@IUǚLVxnLn@lmUaVU@UVKVknJ@an@@UVIVǙKUw@_lK@wnKVklW@I@mXa@UlaXblU„JVUVL@UXWlIUUlKVmkU@kVKVL@y„wXLVb„JVz@Jlnš@nŽ‚LXbVaôšnW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£ƒkK›ÅV™a™™ƒ_@±ƒakXWW—LƒƒƒnU@@a@¯mK@L™JUWwUV™VmbXX@lWLn`mzUJUb™Lƒ„k@makVWmkX™ambkKknƒaƒ@ƒaƒb@‚U@Unm@—ƒWVƒ@VbUbUJWIk@@lmL@°UVUVm„nš™@@kmWkb@xƒ_m@@aU@b@JlŽUz™lWxXn„@‚b²@l`„IVl„UlL@VšK„nVbUl@VlIn@@b„bVWUk‚@@bX@Valb@bnb°Vn@„xVKlbVnV@V‚x„L@ln@UXVV‚L˜"], + encodeOffsets: [ + [120747, 31095] + ] + } + }, { + type: "Feature", + id: "3414", + properties: { + name: "巢湖市", + cp: [117.7734, 31.4978], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VV@blL@ŽXlWnnšnŽ˜„@VXXl@@WšIX@VJ@LšxŎxlnšŽ@bXJVblX@VVbUVn@VbUVlb@LnJVbVLV‚XLšÒVL„ÒšV„bVIVylUXk°Wšknm°_lJ@aXL@l‚z°@„lnLô¼V‚È„VUUaVKU@WW@@UUa@knmVLlaV@„a@kšak±@UmwkKmk™lj™ÝUUkL@mlIVmnÝWkkUÝ@KƑĉ™a@»ƒmma@mX™¤¯Uƒw@ƒ@UU@bU±±L@akmƒ„™LUKmLUUUJVbbÇwƒ@kUWaUJ@Xkxm@UJUUm@™„k„ƒ‚ƒakXUšVl±ôU@kn"], + encodeOffsets: [ + [119847, 32007] + ] + } + }, { + type: "Feature", + id: "3416", + properties: { + name: "亳州市", + cp: [116.1914, 33.4698], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lU@Un@@anUlw@KVmUwlaX_lKna@KU@@kWKUU@ankW™XK˜@@V²VVIÈU@al@VaÈamK@wU™@klaUƒV@XƒVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯lƒ@kkLWmÅa™L@l™LWlzVxƒVUK@L¯LUJ@bWƒK@b@JLU@Wbk@WVUU™V@nƒJ@XX@@`m@@L@bnJ@nWV@¦œa‚wVVkxVn@bVJ@V¦@Ž™²¯bƒl™b™@m„UšUŽƒŽ@¼ƒ¦Xb‚UV`@nnxUxWLkUkVWKkV@XV@@VVL@VX„@lVV@L@blL@`šL@xXKVL‚@„VnUš@lwnU@ml@XnV@@UVW°LnalƒUI@aUK@a‚a@U„kXW@I@mWL@UXK@UVW@U‚@@k„Wn‚@@V„@XblaVxšL@bVKXb„IlJ"], + encodeOffsets: [ + [119183, 34594] + ] + } + }, { + type: "Feature", + id: "3417", + properties: { + name: "池州市", + cp: [117.3889, 30.2014], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„V°°ĊŤ@xƒĖ@xœXƤ„VôIÆmnLllXÔ@lƒÜŽn@@JšbšLÆaĢÞĸ„°VVUUKVanK@UV@VL„VVn„ln@‚xnklxXamk@WV@Xa˜@naVk„Klk™@mkUWwkJWw—IWK@ƒUaUwWIUyVIUmVI@UXWmkkW‚—KUUVWm@@kƒKw@U‚UUmkaULƒwm@¯Uma@akaUbW@@a@VlUXƒa@am@kJ@UVkUaƒm™L@UkKƒVUkƒJk_±@aƒ@WmXwÇkkaVaUa±ƒœwV@VkƒwnyUaW@UU¯amLk@m™@kmmU™™¯K@L@lUX¯ƒWlkXƒŽVb„bƒVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb˜¼@lXbWlkL™K@zUJmIUxUVUVmX", "@@llUL@VlxšL@a@UƒwXa¯@"], + encodeOffsets: [ + [119543, 30781], + [120061, 31152] + ] + } + }, { + type: "Feature", + id: "3401", + properties: { + name: "合肥市", + cp: [117.29, 32.0581], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„L„xV‚ĊLÞkšVlVVXaWaXwW™nU„@‚anVVUX@˜bXblWkk@wWmk@VUVKnb@Išy@_kWm£nmVa@U‚KœwlVl@„zn@°l„IlmnVšIVmnV˜aXÅWmU_VK@Unƒmmk@UIVakaƒa™UƒÑUK™ÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@a™kmōw™wUL@`mn@KƒV™IUVUUUK›Vk_ƒVkbWƒ@VkUULUJ±I¯aƒlkxU¦@L@V@V@b@b@„WJXbWVXn@LƒKVL@JkLƒŽV@Vbn@VV@XU@UlV@@VV@V@XXV@@VšJ°š°Xnb°@„JUVVXV`@bkXWŽUbU@WŽn@VLXlm„°bV„UbkK@bVJ@bVbkLV¦ƒKķV@x@„XbmVVVk¦"], + encodeOffsets: [ + [119678, 33323] + ] + } + }, { + type: "Feature", + id: "3403", + properties: { + name: "蚌埠市", + cp: [117.4109, 33.1073], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VÒXLlUlJ@UXV@nÇx@bnlUVllnVaXVV¼UVW„U@V„²wVV@Vl@„VnwlIš@XbÆWVnUVmLUV„nm`k@VbnblKXUVIlxkb@VVLlK@bšwXxV@n¤ÆUVaÈaV_@anyVwV@„kl@°m@LnU„bl@„WVkV@Xa„a˜V„IXl‚IV‚„@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@‚w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXwƒ`m@„zUbÝakbW@m@UUƒéUIm@UbKǼ@™kKWXmWUkaWU—JWU¯L@W™Lƒwk@mm@_™ƒÅl™UVkmWUnV@VWLUb™bƑĬ¯l"], + encodeOffsets: [ + [119543, 33722] + ] + } + }, { + type: "Feature", + id: "3402", + properties: { + name: "芜湖市", + cp: [118.3557, 31.0858], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„bVaV@XllLXU°ŽlL@V@VUnVl¯Ikš›VUVU@@b@lUXUWmb„n@¼šbƒĊ‚LÞ@lVXlmÞUnkJ@nlKVVšÞXklWVaVI@aUKn»lL@Kn@‚XXwlm@mn°@„V@Wy„wXlWVk™ƒ@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UƒVaUaVI@m‚@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@U™VmUkV™m±£@JkU@nlšk‚ƒLUlmb—@WbU@@XnlWb"], + encodeOffsets: [ + [120814, 31585] + ] + } + }, { + type: "Feature", + id: "3406", + properties: { + name: "淮北市", + cp: [116.6968, 33.6896], + childNum: 3 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@lnnK@¦n@@V‚V„@@VV@nIV„V@VW²a@b@bVnUVVV@V™z@lš@°UšV„IVaVV@x@ŽXX@WlwUnV@XblW„b@XlK@aš@kƒ@al@@_V@@WÅwmaUaV@„bnaVL@llInmU_@W@aƒUUĉUaVwm@XWK@wƒVkaVUUwU@@aV@@mlI@WœLWƒUUUƒVU@kV@XalKVaUƒVUUUk@WwUK@aVI@WƒUk@@UUU±xkb@lVš@xnLÇbUbk@@bÇVUJ±U@U—@WLXšml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV"], + ["@@VVVkV@¥@UV@U@VUUJƒkWakKUšlXVJ@bXV@blX@aXV@V"] + ], + encodeOffsets: [ + [ + [119183, 34594] + ], + [ + [119836, 35061] + ] + ] + } + }, { + type: "Feature", + id: "3404", + properties: { + name: "淮南市", + cp: [116.7847, 32.7722], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°kƒīšaVaXK@U‚UVmnXUlšVÆkVKUUUmmU„ÑkU™UÝlĉKUƒwƒKƒbU@UxW@@lœmVUUVmUUƒmƒw—aW„kL¯K@Žm„ULWlIm`X„WL@b@¼@V@xkVƒI@b@l@lk„V°Ȯ¹ĸW"], + encodeOffsets: [ + [119543, 33722] + ] + } + }, { + type: "Feature", + id: "3405", + properties: { + name: "马鞍山市", + cp: [118.6304, 31.5363], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šNJnllLnxV@laXLVKma„aXbVI„bVKVVVIVyn@n_ƒƒW@@ƒ„UnJlUVVXlLnaUWlV@VV„IXW@_W@XK@K@UVUUwVamÑXmmwƒw™KUnUK™çU@ƒJƒU¯@mŽ@nknWxWm@@LkKm¼VL@bUJUbkXWl"], + encodeOffsets: [ + [121219, 32288] + ] + } + }, { + type: "Feature", + id: "3407", + properties: { + name: "铜陵市", + cp: [117.9382, 30.9375], + childNum: 3 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@„ÒV¤@¼V²@aVV@Ž@„„x°Vš£nW‚@nbnaVXVW@k@aV@VUœUl™°JUkVm@U@UkK¯WVkKWkU@Ubƒakwmlwm@ƒkUmƒUUKU@@VmLUbVLUV¯U"], + ["@@LllUL@VlxšL@a@UƒwXamK"] + ], + encodeOffsets: [ + [ + [120522, 31529] + ], + [ + [120094, 31146] + ] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/ao_men_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "8200", + properties: { + name: "澳门", + cp: [113.5715, 22.1583], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@HQFMDIDGBI@E@EEKEGCEIGGEKEMGSEU@CBEDAJAP@F@LBT@JCHMPOdADCFADAB@LFLDFFP@DAB@@AF@D@B@@FBD@FADHBBHAD@FAJ@JEDCJI`gFIJW"], + encodeOffsets: [ + [116325, 22699] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/bei_jing_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "110228", + properties: { + name: "密云县", + cp: [117.0923, 40.5121], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@vIHZDZQtDLNMXIbHRCXXITbJ@H`LGPRDDJNCLHTOCWFGvGBUJMKGFO^IHWXITQCI’Y^AXGfRˆDXF`DJOLB~G\\DZIHHpErUVMhHb]\\M†BVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYL“mI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\XRCPVETCLBVKDFJINHRGPRV@\\CLJN@VbXbLVT"], + encodeOffsets: [ + [119561, 41684] + ] + } + }, { + type: "Feature", + id: "110116", + properties: { + name: "怀柔区", + cp: [116.6377, 40.6219], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@JHTVHXCHPfnDJGHNDJSB[JSBGVSAOH@PMPuDEHHXZN@PHF@ZLJ@LHVYJA\\OFWP]BMtMBSRGV[JeVAPQVIFENMD¡–@^NV\\JH@NNL@NM\\kTQ\\I^FNIpBHGTBFFAZQfKDIXQTLXFXNNVMVHRGpCFLlRLEVBBH`IVO\\G`RDPAXLXBXORHZEHTDLLN@VGTMrQNFPeASKG@GMOAKBYMK@GTUHUXSHMVDNMOUEOZMJML@^KRACMZEZMRQLUHE@OFENPR@DI\\ChMHIDG\\GJMDWHCKGMDCIQCHO_K@GaIJSWWQDaGWJMNCKRsCYGYuJUSaKaW@UIMDK@[QUHOGQJMEILCAUDKFSOUQD[WMC‚Q@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZˆB\\ICIHK@KŽHbIVFZ@BPnGTGbDXRDJaZKRiGEFSFEJhjFNZFjn"], + encodeOffsets: [ + [119314, 41552] + ] + } + }, { + type: "Feature", + id: "110111", + properties: { + name: "房山区", + cp: [115.8453, 39.7163], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@h@bl@HRJDZ``TA\\VVD^H`\\pF\\JŒ`JGv@ZO\\GPSTEjPTR`FnEbDTDHEhLFMTK@ETSPULKEI@OVISKSJACEQNQbV˜IXGDIN@dMB[IIBcN]ZHNLP@XOWCFWŠCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMW—FCF‹E{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJ€PRARPJDDR"], + encodeOffsets: [ + [118343, 40770] + ] + } + }, { + type: "Feature", + id: "110229", + properties: { + name: "延庆县", + cp: [116.1543, 40.5286], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@^AXOPEB[ZIGU@KKI@YGE@OYMGWFGvCNO@OPGTBHUTA\\ITACIGMIHmCOeDGGWSUIGimYEEMgiFITEFEjHLQbYCIWQaCSHmHAOY@UEaJG@LGLDJ[J‡AwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpƒNQXfŠNA~lNG`@PNLp¼RFLfbdKbATUh@FSNWjGFZVLFHVA~X¨PPROfFJbNJPLFbENJPrEFNPFRHDDJdENJLVEPBJTVTHGHFRFH@PXP\\ORQHW\\BjWFDERLPPBbB\\E`B\\D\\L`@F]FCnJ^AZL"], + encodeOffsets: [ + [119262, 41751] + ] + } + }, { + type: "Feature", + id: "110109", + properties: { + name: "门头沟区", + cp: [115.8, 39.9957], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@V@XMnGPY²‰JQNEhH\\AZMPDVTTDZCPiJkHSHCjIdFtEHITCNITQEKUAMCEIKCECABYESKFWAKBEIIHABGDCKCAIHMHALKEI\\CFIBILIJQZS]BBEECS@E@@C]COKI@CABAAEEDMGƒCH]A[M@CJWH—JaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH‹_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLFŽ@JT‚VnG^KXDXHNVGRLRXFJVdDHSNWLGfEzA"], + encodeOffsets: [ + [118635, 41113] + ] + } + }, { + type: "Feature", + id: "110114", + properties: { + name: "昌平区", + cp: [116.1777, 40.2134], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VNLJI\\JPPDYPFVQDCJZRNEVNhKXgR@^P@NLRbB\\Mh@XcVARJE`RTCNFV€XRCjPPLNA@GZKbJJHXB\\MNPjLdGbWnK\\]NGHSFEXATIdCJGPARUWUHCPWRELITAHKv_E@iYCaW_BQ\\Y@QIO@QDCIGZCEMWGFMFAFgHEDOCSqKCCFGAMKEAC@ODGCGs@WH@KQA@EE@CE@GEA@EH@GGUEEJEAYD@JM@@DAA@FHD@FTJEHUC@JUBKCKG@G[CIIQReAYhO@OXGDO@@FF@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOA‹HUKCIokSCUSOCYN[BgGMFIR±ŠOZmHWNU@ShbbXDHVXXGJ^lZ@PZ\\Nb@\\FHJAD"], + encodeOffsets: [ + [118750, 41232] + ] + } + }, { + type: "Feature", + id: "110115", + properties: { + name: "大兴区", + cp: [116.4716, 39.6352], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@F\\E~DFN@BDFEpHFCHBBEGCDCJBHUDSBB@ELCPbF@B\\J@BJVAFJ\\ADKTCBGECFMT@BMN@@FH@DaNBEnvB@FPBATK@FHEFIAKFBFL@@PKBFJHC@FXBRAFCDMPDTOL@JIVFDHH@DDH@BGRFCDLD@N^@@CNA@KNOAEBCECFEGCFGMGFIPMOEJOLBADBBHGG@GCHIECY@INC@DMGS\\AIOZAAEYA@GT@KKMBEETCGMVINFxA@MJADB@FlA@HJA@NND@DFA@DVAZBBOFKH_JA@K^GBC@EFE„G@gAENMXKJigC@IbSJMqGOP£RGSMGE@kbQFDPEFiBSGGSBK]I{CDWCIDOic[C_G@SuSO@EWKCO@MNY@\\uZOPENQD[LKESSKGBKEG@EJGAGHoH¥CqhifeJkX_XFFGHFNEDFPENKHM^IFIVL^S`DVEnNnG`RTCJHH@R^XFXGVPP"], + encodeOffsets: [ + [119042, 40704] + ] + } + }, { + type: "Feature", + id: "110113", + properties: { + name: "顺义区", + cp: [116.7242, 40.1619], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@EhEBENXHFNYDJHCD@RJP@R[ZARX`DbjZF@bHXT`Jb@dIFMTGDSfAJVbGnJVM@OKELYPERVXRflXTT@NIfC\\NJRhCVEHFJXNT^DTeZEHYCOhuAMJELOdAVPTMOWBWNMNEJgl]@WGUFIC[T{EEDEHGCIGMI@SECUQI[D{A{GQESPUH]CsiMCmHUeoHENcAaDGCMDGMQCACCBaCGLMAHB@DIEQLOAAEEJ@CW@CDINGAAGKQOCgV@LG@BEGDKNeREFBNCFIDOPKD[@YRW@GFWDAFE@EHDDrLDTCPGF", "@@KrJEH[\\B@FF@CHFBHUN‹AJKADGECBCMAG^E@EbI@BEGP"], + encodeOffsets: [ + [119283, 41084], + [119377, 41046] + ] + } + }, { + type: "Feature", + id: "110117", + properties: { + name: "平谷区", + cp: [117.1706, 40.2052], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ZJZRafFLjn€VGNJ@LLBdXX\\T^EDMJ@”nZKLBjPPJ@HbA\\H`DbERHLCFK^BZaFWXQLAGMHa\\OLO@SBIpBdCLƒVQfElO@GSAKEDQTC@GEBKG@ORIJBDAPDFA@CaOq@GGQAAEJK@KMUGAAGEAa@MGMBGCGSIIW@WSUCMDOJeWOM@IUF{WMWaDIMgIoRoCOKeEOEAG_I[cg@wLIFENQFDVTFJ@HNDJGHCFFFS|D\\EJHV@Xk^IhMFMNAXPX"], + encodeOffsets: [ + [119748, 41190] + ] + } + }, { + type: "Feature", + id: "110112", + properties: { + name: "通州区", + cp: [116.7297, 39.8131], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@FDAJTGDNDCTDDEDBBE@DT@@EHCDGJ@EIZ@@FDBR@ATFBBVFFE@@HNA\\VE@CLIFNJFNJBCP]A@LJFA@HJEDD\\C@DBCHLAEPF@@DH@APHAERDF\\GIxDTM@CFLBBFJ@CNUPMHECGDBF]BMFPDLRBHHBJMDCX@@DFIBFPBRKJF@CGANBHKbDDABDRDHNNCHDbCdBFMpGHiOYMefKJMC}HWAUNW\\NNBNA„kNU|]HMTMN@MZBLFFF@RIRUT‘BMFIEGaAGGAOIIUGTSFcYKS@MSLYPKRUBU]EWDOI]CKGASgW@MTWKIMCS@uMAKKADMECGAKVUTSDy@IjWLMNBF@hƒHEF@FAD]H@LIBG`ELAPYAUB@CEB@CMC@MIB@GkB@ECAIB@NwBMEUJHNSDFFNALLS@@HZBBFYBJP[BHTCND@JMZ@FDGJHDH@GHAABCKAIPPFONEJNHEHHDEFFDADBFMP@L"], + encodeOffsets: [ + [119329, 40782] + ] + } + }, { + type: "Feature", + id: "110105", + properties: { + name: "朝阳区", + cp: [116.4977, 39.949], + childNum: 2 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@bFGHBHFBFIVFHHG@@FFB@HDFF@@FRB@LXGt@DHCH@PBDLFBNF@BEXCHEX@ZQ\\@LCPOJCDEAMFEfQLMHCAFH@@KhUNE^AAEHCFDNGVODMI@AEKADEN@CSJw[HCEFQGBBOG@@CE@FOKBDGCAD@C[FCGIB@IE@K^BDOIAEMMIJEDKF@[UMB@GF@EEAUEABSQ@CA@EY@FJI@CHGD@FS@@CAFCACFSCCDCMSHBIECMB@D]@@MKCDCQEAHG@CCG@CGUEIJK@SPOCCNEDQBDNDB@DJCDLFCBBALJB@BVGPBKVO@KHCCCD@FE@BNA@FNCTDDJA@FGB@NBDW@CL@hT@@ZHHQDDDAFSAANBC@HG@EFS@@DE@@PCB@Ue@CADNJB@FCBWA@LI^ix@FIHrH"], + ["@@HUN‹AJKADGECBCMAG^E@EbI@BEGPKrJEH[\\B@FF@CHFB"] + ], + encodeOffsets: [ + [ + [119169, 40992] + ], + [ + [119398, 41063] + ] + ] + } + }, { + type: "Feature", + id: "110108", + properties: { + name: "海淀区", + cp: [116.2202, 40.0239], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@plDJVLŒGPBFHjDbHGL@X\\DBNHJREBLRBHaFGŽMGOBQAWPBLCBBAJBDFADOIEJGE@@EP@HCPWP@ZgfBRQJJ\\D@HLHLDVA@IVDFGSI@EGC@EBB@CN@@IZCAGHGaEqGJG@EjwJ]@K@GSA@e_I@NE@CA@Kg@KC@ENCFƒAKQAW@WIMK@V‹@I@@F@^EDFB@HcIaDYCBRRDCHD@EFLN@FE@CJUPEJOJMTBPEDIFCMIAKNOGMRFJNDVBFLSRMJSDGJsFcEiJGDGTIlOjYD"], + encodeOffsets: [ + [118834, 41050] + ] + } + }, { + type: "Feature", + id: "110106", + properties: { + name: "丰台区", + cp: [116.2683, 39.8309], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@hMN@NFTQCFRCBJFA@HJ@@HJ@HJ\\FTACDŒ@@UNLXJX@@MA@@IECAQlDFEHBDI~D@GXCFMVDFCH@@NF@ANJC@FnAB@AMF@@EDCDDLGP@LUOAUH@AIABKAAEDCKID@CCACMWA@EGDEILA@OK@AELEJBFEEGL@BSOA@EuAFmMACbG@@EM@ANS@ENFDAHSDCL[BEIUBAII@A[E@OaKD@FAACTGVIACDHDAFGAEDoGEFACM@i€g@@QFCMKMU@]SCoBGSMQ‰DEXXDWPO@MKYGM^AdJJA\\cNB\\G^„DNHFCBFABDBJ@PL^D@DF@T@FDAF^A"], + encodeOffsets: [ + [118958, 40846] + ] + } + }, { + type: "Feature", + id: "110107", + properties: { + name: "石景山区", + cp: [116.1887, 39.9346], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@NQPHLMJBDNJEFCAONSPIFIVODIF@@EKMFEC@DGQCAQZDbCdJ@GEAFC@]@EJ@DCSB[EGII@@GI@@GEBAIQDDESRMEM@gNYTIRKJAJEJ[DFJKLGBGNBJLDCDAHGBJJAFBLEXTLZFBAFDLD"], + encodeOffsets: [ + [118940, 40953] + ] + } + }, { + type: "Feature", + id: "110102", + properties: { + name: "西城区", + cp: [116.3631, 39.9353], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XBDA@EIACM@IJAD]BC@SFABISAD]H@@OAEDQEW@BLE„MD@FLDh@@LDBF@@M`J@fTB@H"], + encodeOffsets: [ + [119175, 40932] + ] + } + }, { + type: "Feature", + id: "110101", + properties: { + name: "东城区", + cp: [116.418, 39.9367], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@DBf@@VDA@OF@@CT@FEH@@GADBMTBBECCRCGG@YS@@gDK@A‘C@PG@C^TBAJEB@TADC^IB@J"], + encodeOffsets: [ + [119182, 40921] + ] + } + }, { + type: "Feature", + id: "110104", + properties: { + name: "宣武区", + cp: [116.3603, 39.8852], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@RBX@RFFCŽBFU@aK@WA}CCJGAEFkCBRFD@JB@@N"], + encodeOffsets: [ + [119118, 40855] + ] + } + }, { + type: "Feature", + id: "110103", + properties: { + name: "崇文区", + cp: [116.4166, 39.8811], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XBL@@bEV’D@BX@AC@MHA@EIBCCDSEMmB@EIDBME@@MG@EDUCENWD@H"], + encodeOffsets: [ + [119175, 40829] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/china_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "xin_jiang", + properties: { + name: "新疆", + cp: [84.9023, 41.748], + childNum: 18 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@›ρȁôƧƦóəʵסʵóƪԫʵѵͩƧͩړ›υࡓɛʵ@ȃ@óᇑѵƨɝɚôóНѺͩɜ̏ԭʵôƧɞñ@υƩ—݇ȂóƩƧ@ѵȂυœƥŌਗ—॥ɛóʵѵƧѹ˜݇̍ࢯ˜əɞυ˜ρͩ̏óਙƨƧŋôōóš̍ͩóʵן›óŋړͪƧѶ@ɜԭ—ԫƦɛȄ̍›ɝȄöςƩȂ̏œñȀ̏œƩóóŎə˜@Ő̎@ɞȀɝŎôƨóנѵȄƧ@óŏɝœóɜôŎ̍ͨςŎ@ƨóôƨɞ݈ʶóƨφó̎Ȁƨ̍ԮòѸԮמ@ѺȀ@ƪၬֆòȂñ̐òȂɜ˜óƨ̒Ŏ̑߼@φρȀ@Ő๐ς̎Ƨφ@ɝφڔ೦Ԯǿࢰ@ƦŏԮƨƨȄƧ۬ɜʶڔŐɚɚóŐôƨ߼˜ôƧƧó̐ƥóŏѺǿƦȁφƧς˜ƨƧ̒@ɜƥƦυ̐ɛƪͩƩəƪʷ̑ə@ȃƨʵנŋྸōਚԭԪ—@ɝƨŋ̒օςʵôƧ"], + encodeOffsets: [ + [98730, 43786] + ] + } + }, { + type: "Feature", + id: "xi_zang", + properties: { + name: "西藏", + cp: [88.76949999999999, 31.6846], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ôŌנœôʶ̎ͪô™óŎƨŌਚƧ̐ôςͪφ—ɚɝࢰ—݈̎Ѻ—Ѷƨôʶ०ɜਘ˜Ʀŋφ›Ѷȁ̍—ôŏɚŋ@̑ə—@ŏò̍ɜ›óƥôʷƧ̍φѹԪ̍ע@Ѹʷɜ@ôñנ@Ѷɛɞô̐ŏѶƨѸƧƥōƦœôŏô—@ƧôƩ̒ŋƨŌƦǿô̎ɜȁ̒—óʶѶôôО̒›ςƥɜНφσɛȁ̎υƨఱƧŏ@ʵƥœ@ŌóóóͩƨƧóŋ̑õóɞóɝԩͪɝρôƧ̍ƧѹͨڑŎ̑ōóƧࢭͩ̏ѵɝóఱóóԪυô@̒ƥŌ̏Ƨ̑Ȅ݇ŎƧ›ѵӏ@ɛõŏɛȄôӒƧŌѵǿɝ˜Ƨŋԫ@̏ʴƥ@óǿ̑Ȁóǿ̍ςóóυô@ʶɛñρƦƩŐó̎óœѵó̑ͪࢯОóɜן˜Ƨ̏ƥȄ߻̎̏̐ןŎɝɜöɞƩȀôöɛȀóͪ̐ƨƪ̍̎ȂƥԪυО@φɞ˜ôƪ"], + encodeOffsets: [ + [80911, 35146] + ] + } + }, { + type: "Feature", + id: "nei_meng_gu", + properties: { + name: "内蒙古", + cp: [117.5977, 44.3408], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ኊȁ૊ö߼ƩɜɛנñԮɛѶóԮô@ȁѸóמ̎ගѺၬ@߼ʶԮӒ߼̎@ŐѹӒ̒Ԫƨöග̑ѶȄ̒ς।œѶɚöɞɜʴڔôôȂ̎—ѺȀς—ƨ˜ƪóԪ—ɜôɛОਕڔԭ˜ѵ̍ѹȂԫ›ɛƥ̍Ȃóɜ̎ô@ʶ݊ੲࢮʵږͪנƨôȂƧ˜̐ͪ@ŐƦƨφԬѶɜôƦ@ŐƧôôƦəŐ̏›@ŐڒѶԬô̐ʳԩНςōôŏɞ@ƨȂѶəóƧ̒ػ̎ó̐Őנóƨô̒@ƨɚɚ@עԫɛɛ@ȁυͩƥʳòևρ—̑ࡗƧͪ༃ॣԮփ̎Ʀ@ôô@ôō@š@ȁѵóƨ̍υȃóʵɛƨƥóυȂóəƪ›̐ρƧͩɜԭڔȄ̎عƧȁ̐ŏó̍ɛ›ƥƧ̑óρŐ@Ƨ̏˜ɝəɛ˜߻ͩ̍ͩɝО̍ƪƧóóӓƨóƧʳ݇@ɝςƪœ@ʴƩ—ƧƦôƨɛȄə›Ƨŋυ›óͩѵ@ɝǿóŌן̍ɛ˜óО̍œ̑̏ôȁ̍ŏòȁñóƦͩ@ǿə@ɛƧ̑˜ρȁυô̍օѹœóȃə™@ȂσʵѷƪòƩ̍—ôó߻ۯôʳƧ™óšõʵѵóѹɜ̍ȂѹôɛŌφֈƩͨρóυӑóޟఱ̑݇ͪóƪƨŌóȄڔԬƩςםñ̑ȃѵŐԭŏƨȁɛǿρôõɚɛóƧОə@ѹ̐ѵöԪͨôͪɛ̒ןŏƧƥóôƥƧɛŌôóɝó@̒݇Ӓ̒Ō@Ŏԭࢰ"], + encodeOffsets: [ + [99540, 43830] + ] + } + }, { + type: "Feature", + id: "qing_hai", + properties: { + name: "青海", + cp: [96.2402, 35.4199], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƨ@ôƪ݈ȁƪ˜@φɝòóƨԮʶɛ̐ѹͪôОəóƧɞᇒѶ@ôږô@ǿѶ›ƪȁςœɜͩφ˜ςŋɞôѶɛƨŌɞ—@ɚςŐñԪॢͩƨȂɞóƨŐ̎ŏעӏ̎óƧƦôœ̒ȁɜ›ςͩ̒œɚɛƨôƨɝφɛóȁƨŋóóɚͩƨóóƩ@ƧəŋƦƩ̍@ƧƧôǿυ̑@ȁɞǿõŏρƥסɚƧóτԫɞœôƧƦ@ñȃòñƥóυôôѹѵ—@ŏ̏Ȅɝó@ȂəŌóəѹƦ@Ő̍Ōυ݈ԩŐƧóôƧ̑›ôʵɞƧ̑ѵôƩɞƧ̑œóНѵóôʵ̑˜ɛȂó̍ƥȀƧŋ̑Ōóƪ@ƨó˜óŐƥ›ƦŎѷƨѵƧ̏Őɝóѵɜן@óòɛ@ѷʸס@ԩ̎υѺƨ̎óʸôƦɛœñ̎@Őɚ˜@̒əŌóŐ̎˜"], + encodeOffsets: [ + [91890, 36945] + ] + } + }, { + type: "Feature", + id: "si_chuan", + properties: { + name: "四川", + cp: [102.9199, 30.1904], + childNum: 21 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ô˜ôŋó̑Ԯ̒ɛОמͪƨōöͫ߼ƥôȃƨóóñôƧóƧôōڔŏƨŐ@Ŏô˜òƥѺŎ@ōɜóנ˜ôǿô›ƦôԮ̍ɜôɚ›Ƨ—ñɛɚȁ̍Ƨɛևυ@óóôŋρԭɝ@Ƨʸ̍ŏυɜƧƧóƧƨȁρ̍ƨȃɚ—ôʵφóô̑̏Ȃ̑ʵɜʵɞ@ƨʳסƩóŎə—óɜƧôƩƧρ˜óôôô@ŎƧƨƨƪѹ˜ó̍̍Ʃ@̏ѹНôޟ̍Ʃóƪυɝɛ—əƨôŎɛȀ@Ȃ@ñɝʶ@Ōρנ̏—õóɛͨƨȂѵОɛʵ@̏ƩŐó߼Ƨల̍φɜȂυτɛОρƦɝƨóƪ̒Ѷɝƨóʶ̒œóƨƨôԪŏφ݇̎ŋ@ŏѺƥôɚɚŋ@ȁɞô̐ȃ@ŐѶ˜óѺφóƦôñòòȄ"], + encodeOffsets: [ + [104220, 34336] + ] + } + }, { + type: "Feature", + id: "hei_long_jiang", + properties: { + name: "黑龙江", + cp: [128.1445, 48.5156], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ᇔȂਚНƨŐѶŏöƥςŏñƧƦóƨȁ@óƨ—óȁφӑóóƨ˜óǿ̎̑ôНɞ—ó̑ɜə߼›̎ǿ̒ôڒӑφ@Ƨȁ̎̏ƥƩ̎ρశ˜ôȂςƨφ@נɞ݈˜̑ƥƧɛƨʵƧȃƥ@Ƨƥ@ŏ̑ԩôɝρρóɛƧ›ƩͩƧó߻ʸ̍ʷѹƥɞڕõ̍öɝυ—̍ȂƧ̐̑ŏóƨñŋѹóóȁ̍›̏Ԭõʸ̏ŏ@ǿ̍@ƧОυ@ñƨòȀƥŎ̑ŐѵóɛŌóȂԫōƧŎѹñ̍ʶóОן@Ƨ̎Ѷô@Ȃ@™óŎó@@ó̍ƥԭք༄।ƨͩ̒ࡘς˜ñֈƦʴφͪ@ȂɜɜסԬə@Ƨə̑@Ƨóןô̏ŏ̍ô̑ؼôƨѵɚƧȁɝ@óŐρŎԪО̏ʴ"], + encodeOffsets: [ + [124380, 54630] + ] + } + }, { + type: "Feature", + id: "gan_su", + properties: { + name: "甘肃", + cp: [95.71290000000001, 40.166], + childNum: 14 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ڔôԮࢯ@ō̑ŋ݈ӑ@̑ɞôóôɜŋƦƨôóƨƦנŐɜ̑óͩԩͧѶõѺ̏ɚ@ƨНɜôöəςóɜȀƧȂԮŐѶŏ̒ȄמòƪρړԫôȃƧŋôƩ݈ͩɚ@@ǿɜ@φͩóŏɜӑƧōôǿ̎›ôƥƪóõ›ö@ô—ƨ˜ôƧƦôó̒ɜ@ɞŌõʶ̏Ő@ȀóôƨȂ@ʶע@@ƥ୾ӑó̑óŋôʵóɛړ@@ƩöóƩóρ—ɛƨ̑@óʷƥƥ̎ɛƧ›ôōƧǿôͩѵôɝȃɞȁõƧρóó—@ōƧŏړŐóŎôƨóƨôòƧôóȄ߻ƦõͬƧŎםͩɜНԭ̑ô̒óŌó—ƥ@óƨɝ›σԬƨôעəςƦöŐɝȀ@Ȃφ̒óȀƨƨ̎@ƥƪɚŌ@ƨôƪƧôəͪôôƧŌôȂυɜƧɞƧóəɜ̑›ρͪɛœ̑Ȃó›ƨƥ̍ôסӐ̍ŐƧŏɝôƧȁॡͪòԩρŏ@əɝ˜ƧŋѵɜɝóρŌυ—ɛͪρ›ƩȂѵœ@Ȁڕó@ȄɜʶφࡔڔœƨͪѶͪԬʶôƩעʶɚʶƥôóƨςȂ"], + encodeOffsets: [ + [98730, 43740] + ] + } + }, { + type: "Feature", + id: "yun_nan", + properties: { + name: "云南", + cp: [101.8652, 25.1807], + childNum: 16 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ôɞôɝ̒öôŌƧƨôͪôô@ŋƦ›@ʶƨŐô߻ƪŏ@̐ɜʶѶНƧȁɜͧöô̐˜ςן@ŋɞʵ@ò@ȁɜǿóōɚƧɜ˜φɞôƩ̎ƪóޠѺО@̐̎ƪô̎Ѻ—ƧƩƨƧ@ōóóôóς—ƪƨƨóôɛó̑ԭ—ƥŌɛǿɝƨɛͩô›@ǿƨȁѺŌɚɛ̍ןѶНɛƧôóƥȁƦͩôŎɞ—ƨ̑ɜ—òôφ@ƨʵ@ɛѹōóȃəƨυǿóʵρƧƧŌƩɛ̏ȄñƧƧȀɝ̍ԩʶƧ̑υ—óŌƥʳɚӑóНƥô̑›óӒѵʵѹœƧӐןôƪφõŌƪ̒ԫŌƧؼƨƨס›ρȁƧœƨȂóʶó@@ʴƨôôφ̎Ŏ@Ȁƨ—ƪɚƨœóƨôôôςóޤƧŌƩŋƧԪ"], + encodeOffsets: [ + [100530, 28800] + ] + } + }, { + type: "Feature", + id: "guang_xi", + properties: { + name: "广西", + cp: [108.2813, 23.6426], + childNum: 14 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƦŋѺ̎ڔʵƨŐ@ƦמȄƪôóȂɜŌɚͩɜ@öóɜôôȂƦôɜȁ@ɞφ›óȄ̎›ƨʶɞŋƨʴɚǿ̐̎Ԭ@ôñ@̏ƨ›ρ۫ô›ɚƨƨНƪŐ̎›ƥóƦʵƥŋ@ȃóƥƧ@@ŏɝǿôυƧȁѵɛ@əóŏ̑@@ə̍›óƧó—@ȁƩ˜ρóòНƥô@Ӓ̑@óŎ̍ƥσŎυ@̍ƨ@Ō̑ôóͪƨ̒óŌړœ̏Ŏ@ŌôȄѺŎ@ɜƧʶυ@ñóɛ˜Ƨ̒ɝ˜óōƥͪ"], + encodeOffsets: [ + [107011, 25335] + ] + } + }, { + type: "Feature", + id: "hu_nan", + properties: { + name: "湖南", + cp: [111.5332, 27.3779], + childNum: 14 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@քɜОƨ@öŐמóƪôƩɚ̒Ő߼ȁςͩɜòƪ—ɜȀò—ñɝò—Ѻͪ@ŏƨŋóɝôǿƨ™ɚȃóəƨȃѵͩó̍@ȃƨóóƥƨƧ@ʵƦ›óͩɜ—ɛóñԭɛōυȂ̍ƧƦō@ɛƥ—ɛȀ̑œóʷóō̍œƩŏƧОəƧóœς۬Ƨœ@̐óòԫ@̏̍əȀƧʳɝŌóɞƧ˜ƨɜóŐƨò@ȄƧŌρŋóôԪОóʶ@̎óȄ"], + encodeOffsets: [ + [111870, 29161] + ] + } + }, { + type: "Feature", + id: "shan_xi_1", + properties: { + name: "陕西", + cp: [109.5996, 35.6396], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ςôöƨɝȂɞȄѶóóͪƨȀóŎƨœ̍ɜƦƦôʸ̒@ɜƧς˜ƪôõô@ƪڔ@ôɜóʶôŌô̒୽Ӓ@Ʀ@Ѻ̎ɜѺɛѶôöʶô™ƨšóʴ߼۰óô̎˜ñƪѸƩτʶ@ȁòŋəѹóǿ̑ʵ@ȁ̒ʷυփô݉ôН̏ط@ȁƨóô̏ƪõ@ʳ̐ʵ@ɝɛŋƩŌɛóןôƧŋ̒ó@ŏ̐ƥ@ŏυ@ƧƧôן̏@ƥȂѹɜəœɛóԭ̎ƥóóœóȀן—ɛô@ŎѹōñƦ"], + encodeOffsets: [ + [108001, 33705] + ] + } + }, { + type: "Feature", + id: "guang_dong", + properties: { + name: "广东", + cp: [113.4668, 22.8076], + childNum: 21 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@Ȃô˜ôƨ̎œ@ɚ̒@ôŐ@ɚѶɜƨȂóφɞȀ@Őƨ@ôƦ@ȄƦŌƥʶƦôôŎôʸ̒›ɜǿƦ˜@ɜƥŎ̎ƨφȁɜŎòƥԮŎƨōóŏɛƧɝəɞƧ߼ɜςȃñȄƦŎ̒ōôòƨəƨ˜ɚН@əƨ̏ƪʵυŌəɛóəԭŏəœóŏѹœρʵɝƦ̏™ƥʳѶ›öō̑óóŋρȀυƧƥɛѹōƧôן—ɛŏѵ@óŋôʵɝ›ƪԩõ@Ƨō̍@Ƨ@@ƦɝԮƪО@@", "@@X¯aWĀ„@l"], + encodeOffsets: [ + [112411, 21916], + [116325, 22697] + ] + } + }, { + type: "Feature", + id: "ji_lin", + properties: { + name: "吉林", + cp: [126.4746, 43.5938], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@נ@ôН̎ʵѺòƨōԬŎôȁɜŋѶô̒ŏƦōñǿòƧφ@ƨН̎@@Ȁ̐Őöʷ̐ԫ̎œôȂѺôòŌôƧ̒Őƨ̏̎ȁφ˜@ŋƩͩםȃƨ—@ȁ̑ʶ@Ōóôɛœƥѹ̑—συ݇@ɜρƧȃࢯƨôœəȂɛōƩɛ̏υρóõœƪʴυφ@ʶôŌóœρք@ɜƧ@ɝǿƧͪρȀƩó̏ŐƨȂ̍غړȃɛԮƨͪ̏ςƩœôɚφȁƦôɜƧôʶφȄ"], + encodeOffsets: [ + [126181, 47341] + ] + } + }, { + type: "Feature", + id: "he_bei", + properties: { + name: "河北", + cp: [115.4004, 37.9688], + childNum: 11 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@Ʃ̒̏ŌѺ̒Ʃ˜óȄƧŌƥͪòôñȂ̎ŐóȂ̒̐̎›ôНɜ—נ̎ôŋɞȀѶ@ôͪφœƨŌɚœɜȃóƧƨƥƪ˜@ʳƩ›ɞρ݈@υНφʵɜ˜ƦρƨƧ̍ɝóɛѹ̍ρŏ̑ôóƨ@œƧƦôƨɛ@ƥƨ@ȂƦ@@ôəŐƧʶƨŌυœ̍̎ɛŋôōɝ@óƧ̍›ƦʵѵʳôʵɜŏςôƪŋƨŌɚ@ôНƥƧ@ōѸɛ̐ô̎ʵѵНԭ@̍̍Ƨò@ȁɝ@əρυͩƪ̏ƩõƧŎƧōóšॡȄɛʶɜȀ@ɞςѶƧœƥςɛŐ@ɚɜɜ@Ŏôôςœƪς"], + ["@@õə@Ƨɛ˜@ŐóƦφô"] + ], + encodeOffsets: [ + [ + [117271, 40455] + ], + [ + [120061, 41040] + ] + ] + } + }, { + type: "Feature", + id: "hu_bei", + properties: { + name: "湖北", + cp: [112.2363, 31.1572], + childNum: 17 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ñȄυƦöŐƩ˜óנƨƨφ@@Ő̏Ʀ@Ő̑ôƨŌנóɜôƪŋɜŌѶօڔə݈òɞōɜŎôӏƦóƨô̒óôȃƨó̎ŐôƧƪ@ƨȁςƧə̑̎Н@̍Ƨŏρôԭͩԫ—̍ʵƧšóȀôɞƧŌ@Őѹͩñ˜òɞñ˜ɛǿƩ˜ɛñρͪ߻Ȃ̑ŏƪəƩóםôõŏƧ@ɛНƥȄó›̑ѺƧ›ôφóƨƨƦƪóɜŐôóòôƨóφ̐ƨóƦ̎"], + encodeOffsets: [ + [112860, 31905] + ] + } + }, { + type: "Feature", + id: "gui_zhou", + properties: { + name: "贵州", + cp: [106.6113, 26.9385], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɜȀƦŋԮ˜ô̒ɚ˜ôōעƪƧʴɝ@ɛʶ̒ʶ̐ȁƦœóȂô@ôŏ@ōô—ƨʶѸô@ʶƨ˜ɞó@ōτöòυƨ@@əƨô@ɛ̒@Ʀɜôȃ@̍ôʵԩНôóςŌƨŋ@ȃƧñôŏƧɛƨ—ôɝƧʵ̍œôȃυœ@ɝɛȂƥóóȁɛóõôɛ@əͪɛŋôȁƩóםȃ@ƥƧŏړʶѹ̍ƥŌƦȂóôɜƨѵО̎נəɜѹŋƧȂ@ȀóœɜͪɞƧ"], + encodeOffsets: [ + [106651, 27901] + ] + } + }, { + type: "Feature", + id: "shan_dong", + properties: { + name: "山东", + cp: [118.7402, 36.4307], + childNum: 17 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ʃ̐φͪɚςɞ@@Ȃƨñ̎̎Ԯ@ѶОƨƧڔ@φН̑ŋ@Ʃ̒ǿ̎@ƨɜԬςôʶ̐ʶöԫƨƧנƥɜŎôō̎@ôŏóρƧŏԫôóƧԩó@ƥɜƧԭóƨʵɛƨ߻ӑɜНԩ˜óô̑óƧʳə™óɛƧ@õȀƧœ̍ȃɛŐóŏυО̍—óɝƩ—ԩ@ƧɚԫȄɚʶƨ˜ɞʶԪ̐ړɛƪ̒"], + encodeOffsets: [ + [118261, 37036] + ] + } + }, { + type: "Feature", + id: "jiang_xi", + properties: { + name: "江西", + cp: [116.0156, 27.29], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƧȄôɚəȄ̎ʶԬ˜ԮͪςóƨŐƪ›τɞƦōƥƧ@ŏςôóŐôô̒ʷѶ—ƪƩƩǿ@ō̒ɛôυ@—Ƨȁѹɛəƨѹ̑ƨ̏óƥѵʷô̍ɛȁôŏɝǿƧԫƧ›ôʳƥōòȃρȄ߻ɛɝƨɞɚɜƨôŐƧŎԭōñƦòԮɜôɛ˜ôͪƥœ@ʶƧƨôƦƧô@Ȅô̎Ѷͪ"], + encodeOffsets: [ + [117000, 29025] + ] + } + }, { + type: "Feature", + id: "he_nan", + properties: { + name: "河南", + cp: [113.4668, 33.8818], + childNum: 17 + }, + geometry: { + type: "Polygon", + coordinates: ["@@φ˜̎ƪ̐˜ɞȄɚ@@Ȃעó̎ŌѺ̒ôֆॢȃô™ƨŎƨōƪöƩ̑ڔɜԩ̏ɝʵƧ—əʵԬȃƨəԪ@@Ƨ̒ŏô̍υȁƧɚ̍ôóŋ@ɝƧŋõ̑σ—@ŏɜŋôɝ̒ƧɚôôطρóóɛƩ@óƨ̍ŏƧôóȄ̑ôƧóƥôóӐɛōɝŎ݇ñړɚѵֆ@ɞ̏ʶ@ʴƩöó̐"], + encodeOffsets: [ + [113040, 35416] + ] + } + }, { + type: "Feature", + id: "liao_ning", + properties: { + name: "辽宁", + cp: [122.3438, 41.0889], + childNum: 14 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƨʴƧôôӔƨô̎ƩɞН̎ͪ߼ͪɜ—ɞɚ̐—@ƨςŏ̒ôƦƨɜœô̎ƪôςǿƨͩɞȀƨ@@ɛςփô›óŋ@ʵφυƩʳö›॥փρѹס@əɛ@ͩࢯ@ѹʵρ—ƩʶφȀƧ݈̒۬óʸɝŎѵ@ԭԫןɛƧƨƥςɛ—υʶφО"], + encodeOffsets: [ + [122131, 42301] + ] + } + }, { + type: "Feature", + id: "shan_xi_2", + properties: { + name: "山西", + cp: [112.4121, 37.6611], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɚѺñŌɚšôȄѺ›̎ֆφóςȂ̒—ɜƨɚ@@Ȁƨŋôȃƪ—ѹ̑̐ŋƪ̑Ʃρρ›óó@ōɛɛ@əɜŏƦρƨ›ρѵ@ɝɛǿɜʵóօѹ̑̍ŋסô@ȁə@ɝȃ̏—̍Ʃυ—Ƨô@Ȃ̐ظóОó݊φք̑ʸ@Ȃ̒ʶôȀ"], + encodeOffsets: [ + [113581, 39645] + ] + } + }, { + type: "Feature", + id: "an_hui", + properties: { + name: "安徽", + cp: [117.2461, 32.0361], + childNum: 17 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ó̎̑Ő@ƨƪ˜Ѷǿɜ̑φ—Ʀʵ̐˜Ƨѵôóƪôôυς—ƨȂɞŏ@̍ԫôò̑ƥ—óȃѶͩƧƥôŏѺœôŏƦ—@›ƥͩƧ—ôȁυó@̑ƧɛѵʵƩƪѵ˜̑ʸóóôŏρó@ŐƦƨƥŎσɝƩœ@̎̍Оɚ̒ρƨƧȂôɜςôóظəó̑ƨóɞɛŌ@Őτ˜ö̒ƨŌ@ɞôŌ̎óƨəφȂ"], + encodeOffsets: [ + [119431, 34741] + ] + } + }, { + type: "Feature", + id: "fu_jian", + properties: { + name: "福建", + cp: [118.3008, 25.9277], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@̎›óȁƨӑ̒—̎ɚƨͩφŐƨɝ̎ŋóŏρ—@ōƨ›òʳəóƨō̏˜õɛƧ@ƨѵƧōəŏóŋƧô̑ɝɛʳƥ@@óɛõ@Ƨ̑ƧóȁəƧ̑—Ƨ̐@ɚəОƧ—Ƨɚóñ̑ŎóʴƨœƨԬɞȀóŐɜȂó̎ѶʸôƦƧ̐Ѻ̒ɚƧѺɜƨȂ"], + encodeOffsets: [ + [121321, 28981] + ] + } + }, { + type: "Feature", + id: "zhe_jiang", + properties: { + name: "浙江", + cp: [120.498, 29.0918], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ѷʶƨɜ@̒φôóȂƨ˜Ʀͪ@œ̐˜Ѹ̍τȂ̒̑נŐמôƪƧôӑ̑›@ƥρͩƨօ̏@@υɝó@ŋɛ@ôƩəóƧѵυó@ƩɜŋƧ@̍ŌƧɞυŏƧͪ̍ə̑˜ƧӒôȂ̍œ@˜óφ̑ɜ@ŎƪȀ"], + encodeOffsets: [ + [121051, 30105] + ] + } + }, { + type: "Feature", + id: "jiang_su", + properties: { + name: "江苏", + cp: [120.0586, 32.915], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ôɞ̎˜φНôŐɜŏ̎Ȅƨ›öǿƨ@ôɜɚšƨʴ̒ôôó@Ƨ̎əԮȃԪૉöͩ̐ƧòʵφƧôʵ@óړɜóŏɜǿƧ›ɝρσȁѷ̎̏—ƥ˜óŐѹ›óŐƨƦѵͪôȄƦ˜ñ̒Ԭó@̎ɝŐƧȁρ˜óφƩóóôƨѶ̏—ƥʶυ˜ɛ̒ѵȀ"], + encodeOffsets: [ + [119161, 35460] + ] + } + }, { + type: "Feature", + id: "chong_qing", + properties: { + name: "重庆", + cp: [107.7539, 30.1904], + childNum: 40 + }, + geometry: { + type: "Polygon", + coordinates: ["@@əȂòɜƨ˜ѺɛƦȁ̐@ƪ—õŏφƥòȃƥ̍Ƨôυ̏ƧôñóóôɛŏƩôƧƥôƧóυƨœ̒ѹôœƦȃ@փƥɛ̑@@ɜƧó@ɚƧ@ñφσõ@ŎɝôƧ—@ʵѷóƧʵó˜@ŎóŐó@ôȁƥ›ó̒υôóʶə˜ƧȄς̎ƧȂôƨƨƨφɛ̎Őƨʷɞ@ςԮóŌôôφ@ɜֈ̎ƨ"], + encodeOffsets: [ + [111150, 32446] + ] + } + }, { + type: "Feature", + id: "ning_xia", + properties: { + name: "宁夏", + cp: [105.9961, 37.3096], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ల̒ôޠφӒςôƪͧυևɜŋѺó̎ȁ̍ɛ@ѹס@@ʵƧȁôó@ǿ̐ŏöʵɝŋɛ@ô̑ƥóóƨƧ—ó˜ôœó@ƩôóƦ̍œóȀƨŎɛӒôŐυͪɛ@@Ȁə@"], + encodeOffsets: [ + [106831, 38340] + ] + } + }, { + type: "Feature", + id: "hai_nan", + properties: { + name: "海南", + cp: [109.9512, 19.2041], + childNum: 18 + }, + geometry: { + type: "Polygon", + coordinates: ["@@φɜƦʶ̐ôφô̎@ƨŎö@τʵƦ˜ԩ۫õН̏óƥȃƧ@Ʃəםƨ̑Ʀ@ޤ"], + encodeOffsets: [ + [111240, 19846] + ] + } + }, { + type: "Feature", + id: "tai_wan", + properties: { + name: "台湾", + cp: [121.0254, 23.5986], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ô—ƩɝöƧɝѵəޣ̏ρƩԭóōóͪρɞƧОôԪ݈ଦѶɜ̒ɛ"], + encodeOffsets: [ + [124831, 25650] + ] + } + }, { + type: "Feature", + id: "bei_jing", + properties: { + name: "北京", + cp: [116.4551, 40.2539], + childNum: 19 + }, + geometry: { + type: "Polygon", + coordinates: ["@@óóó›υóôƥ@ŏóóə@ƧŋƩŌρóɛŐóʶѶʴƥʶ̎œôƨɞ@óŎɜŌ̎̍φ›Ƨŋƨʵ"], + encodeOffsets: [ + [120241, 41176] + ] + } + }, { + type: "Feature", + id: "tian_jin", + properties: { + name: "天津", + cp: [117.4219, 39.4189], + childNum: 18 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ôôɜ—@ƨöɚôœôôɚŏ@óƥ@@ȁƦƧɜ@óƧƨƥ@›ƧóəН̏óѷɜ@ŎƦƨóО"], + encodeOffsets: [ + [119610, 40545] + ] + } + }, { + type: "Feature", + id: "shang_hai", + properties: { + name: "上海", + cp: [121.4648, 31.2891], + childNum: 19 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɞςƨœɛȀôŐڔɛóυô̍ןŏ̑̒"], + encodeOffsets: [ + [123840, 31771] + ] + } + }, { + type: "Feature", + id: "xiang_gang", + properties: { + name: "香港", + cp: [114.2578, 22.3242], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@óɛƩ@ρ@óœôȀɚŎƨ@ö@@ōƨ@"], + encodeOffsets: [ + [117361, 22950] + ] + } + }, { + type: "Feature", + id: "ao_men", + properties: { + name: "澳门", + cp: [113.5547, 22.1484], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@X¯aWĀ„@l"], + encodeOffsets: [ + [116325, 22697] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/chong_qing_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "500242", + properties: { + name: "酉阳土家族苗族自治县", + cp: [108.8196, 28.8666], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XJ°œlJX@lbl@XbV@VLnJlxnbšƒUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLšmV@@xœÔ‚`nœ™xV‚ÈLlx„LVxVVšƒV_U»VWn_m¥XwVmnX°ƒlmUUVwÞaVƒk@a@mmIUa@™mwk@™ƒm@@U¯a@UV@@K™@ykkmwkV@kU@ƒÑƒVkKWLÅamaUm@kyU@WkU@Ua™IUašVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@V„LU¦‚x@b@JkIkJ@LmbUamJwm@óxƒnk@V„@x„ŽVnUVmVUVŽUbVlUbkXWŽ"], + encodeOffsets: [ + [110914, 29695] + ] + } + }, { + type: "Feature", + id: "500236", + properties: { + name: "奉节县", + cp: [109.3909, 30.9265], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@WVXb‚UnK@x@b‚²kxmKkl¯_ƒVV°™VU@bnKVVV@@nkŽ@n›bn‚@š°@VLČUš@°WV@V™nU@InKVl@nU„b˜KnX„WlknLlKUwnalLša„VlUXmWk@UU@UWWIUyķ¹XaWW@X™ƒKUIVm„U@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@ƒwUaƒKkkm¯ÑUL@bWVnx@VmxUI@„klmkkK@aƒK@IlJ@I¯ƒk@mak@mnkJVL@bV@Ub„„W`UUUV™I@VƒU@VVbUJVLUVVbUX„VVxk¦VJUnVxnVVUšJV@Ubl@@bXV@L"], + encodeOffsets: [ + [111781, 31658] + ] + } + }, { + type: "Feature", + id: "500238", + properties: { + name: "巫溪县", + cp: [109.3359, 31.4813], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nLWbX‚VLVU„V@KšIVl@b„@lbšU„VnU@JÆU@V@n°KĢUl@VbÞKšVš@„_„V‚KXU‚U@KXƒ@wlkkU@mWKUU@UôJ@XV@œaVmÞIVaVLƒƒ@»kmƒ@ƒUkL™U@aU@WWƒLUUU™™KkbƒwWa@KU@kaƒXmW—LƒamVk@UmL@JmVUšU@¯X™@ċVUK¯@ÅnWK™LkKULWK@UXK@wW@™LkV@bVLƒlXn›`¯xU„°LnŽlV@n°Lnl"], + encodeOffsets: [ + [111488, 32361] + ] + } + }, { + type: "Feature", + id: "500234", + properties: { + name: "开县", + cp: [108.4131, 31.2561], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@n@na‚I„wš@@VVK„LVbVxnVÆUnanKWXamKmk¯K@mkUm¯KVƒ°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KƒkUwWKXaWLUWkImaUUUƒƒKka±k@lƒ¯w™wmbUƒ™ƒkXm@UJkIW‚XXƒbƒmƒ„UJ™XUV@°šKlšlVXV@xmbnV@blV@VšœU`UL@V™a@bULlb°VXbܚ@V@bƒL@J„xnLVb@lVb@V@@z˜bXWšX„KVLV‚š@@bUVVL@b„„lVna@ll@„zl@@J"], + encodeOffsets: [ + [111150, 32434] + ] + } + }, { + type: "Feature", + id: "500243", + properties: { + name: "彭水苗族土家族自治县", + cp: [108.2043, 29.3994], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„Jlb@nVV@bXb@ÆlL„Ul`nVKU¼VxkbW„nlUxlXX‚@°°WnnJ@VUn@J„k°L@VlV@nUJ„x@bVVVz@VnLla„KnalVlIUŽ„¼@nV@@anKUwVal@UlJœƒlI@akU@UWXKVI‚¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯›WIk¦VŽƒUUƒmaUV@XkVUV±aUb¯b¯¥m@@ImJ—@mƒmL@kUKUkkJƒbV¦"], + encodeOffsets: [ + [110408, 29729] + ] + } + }, { + type: "Feature", + id: "500235", + properties: { + name: "云阳县", + cp: [108.8306, 31.0089], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lb„LV„VVnblJVXXKWbXLVx„l@LmVXVVl‚nLWbnVmxXb°L@bVVkLVVVJn@@X‚‚œ_Wm„kUK@alUšKX@@xWL@VXLVKlLšKXLÆm@™mœa@ml@mU@UUmL@aVšUU¯„U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@™IUVmUUwVmUIl¥UwƒUVWUaVUUKVIUa@UUUUJƒUUm™kƒ„nl@„@VWV@L¯aUb™Ulxƒ@@b@VULUx@VUxVV™U@bU@mxU„U@mUVŽklkkƒ@WxknlxK@amLƒKU„K"], + encodeOffsets: [ + [111016, 31742] + ] + } + }, { + type: "Feature", + id: "500101", + properties: { + name: "万州区", + cp: [108.3911, 30.6958], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ĸĊVI„ƒ„n„aWWXlJVIn@lWš„V„našx°xk„l@²Ž‚LVƒ„LnK@b‚LkwlmXw„@lllkUnVV@VƒnwV@@ašVUUVw@UVwVK@U@a„@kwšVVa°b@KXU@U@ƒmk„ƒÇсaml™kUVmn@VULU˜m@kUVkUaƒwUWm@Uw¯„mKUUmVUUULUKU„W@XbWVkaWwkUU™ƒ™k@maUbmbVlk¦ƒxUVUIWVU„kJVVkL@UmJ™UUVU@lLUVU„lx„@@VbƒJ™U™L¯¤@Vƒ„"], + encodeOffsets: [ + [110464, 31551] + ] + } + }, { + type: "Feature", + id: "500229", + properties: { + name: "城口县", + cp: [108.7756, 31.9098], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VK@w¯L@m@UÅV@ImVƒU™Vkaƒ@@aUk™J@LƒUUVUKmLmbÅVmUUwUaƒKUL@U™@ƒxJmbm@nVJ@X@VkV‚n™lƒLXx™@ƒb@bUVƒLU`UnƒbU@@ŽmVVX@JX@VLVVšklV—„‚`@bUL@V„LVKn@‚U@„UJkn@lmLmK@X@Jn@mb„nÞWVXnJ‚k„KČÑÆ@VK@knaÜmXlUČW°kôÇƁ@a@yÞ_VmƒUnU@K"], + encodeOffsets: [ + [111893, 32513] + ] + } + }, { + type: "Feature", + id: "500116", + properties: { + name: "江津区", + cp: [106.2158, 28.9874], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„InWUUlU@LVašlX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UƒUUVUwVIUKUa‚UUVwn@Üx@XUlnn‚bœJ@¥VklKUUlk@ynU@kVƒUUVWnI@¥V£VWVIUKU@UVƒa@n@Vm@@nlUaVkUwƒJ@blLkLW@XWmXkmmLn™@m@U@UVm@™„UVUUlakUVa„ƒVkV@@wnaWUk@VwkƒlmVIkUUxmJ@U„™@KƒIkx±V@IUm@K@IUKkbWKUbn„m„@bmVnbmb@xkxUJ@ULW`@bX@WVXL@Vƒš¯„mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@U‚ƒIkbWb„xXŽlLVbnV@bWlX@VxVLnl@nÆÞVÜ"], + encodeOffsets: [ + [108585, 30032] + ] + } + }, { + type: "Feature", + id: "500240", + properties: { + name: "石柱土家族自治县", + cp: [108.2813, 30.1025], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„š@kl@š¼UbmVXJ@bV@nxVIVJULVVk@@LWbnJVU@bVbUJ@blLXnWV—@mbnV‚@V„„bn@VJVLnaVanbl@„šVšlVXxlbXUWaX@VƒUUVwUUVm@I@WmI@a„mlLœ™lK@alwnUV@kóVaƒÝk@UlbVK@™VU»VUUVWUƒ@U`ULkwm@@KmU@knKƒ»VkJkUmbƒLkbmK@UUyUU@aƒwm@@XXJ@VVLVVUbVnUJVX@K„„k`WXXJWXUbmW@bkL™Um`Xnƒb@JVL@LU@™°VVXKVnUxVLUbmJ"], + encodeOffsets: [ + [110588, 30769] + ] + } + }, { + type: "Feature", + id: "500237", + properties: { + name: "巫山县", + cp: [109.8853, 31.1188], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@kVƒU™bkKmbVxkLmKkllbV@@LXb„xlašLVšVV„KXXV@@bšVlK„V„@ln@¼°KXa„U@Ulw°JXalIUa„ÝWXW@kVU@ƒVUVWUUUamUw@aVamwn@VUUƒlLXWm£@wÇĉkKklmLUÒ¯ƒWn™@ğ±kwmaWm¼U@@LUV@V@XƒVUnVJ„LWš@‚XXWbĸºVzXJVXV@@VXlWn"], + encodeOffsets: [ + [112399, 31917] + ] + } + }, { + type: "Feature", + id: "500102", + properties: { + name: "涪陵区", + cp: [107.3364, 29.6796], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nèVblĖVVnLšŽ„@šx‚V„n@nšJ@L„UVVX@lbUJV@@nn@VVVK@z„˜V@nzVJVUlmX@@_VVVbnaVal@@knW@wnaƒVK@aVI„J@£kUVW@‚wXUVJ„amƒ@Ikƒƒƒƒ_X¥ƒ@WwkKkwmŽ™šƒkUxƒnÅmm¥™WV@Um@UlVL@JU@@Xƒ@UVkKVk™KVk™Kkb@bmJVXU„VVUbU@@`W_UV¯b"], + encodeOffsets: [ + [109508, 30207] + ] + } + }, { + type: "Feature", + id: "500230", + properties: { + name: "丰都县", + cp: [107.8418, 29.9048], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Þè@XUK@LlV@blbUJ@„„V@bnV‚@VVVXU@ƒlbXal@VXnKV@maXUރ@amk@aVKXV‚anbš£°mnIVaUKVwUmWLUUš¯V@@KUK@I„aWmn_šVlK@anXVaXWWIXWl_ƒƒ@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kƒl@ImVÅLƒwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnƒaƒx@Jn„ƒbUIWVx@ŽUXlV@¤ƒIUJ@bUL„Žmb@xmX@lk@UbmbUaUU@`W@kn"], + encodeOffsets: [ + [110048, 30713] + ] + } + }, { + type: "Feature", + id: "500232", + properties: { + name: "武隆县", + cp: [107.655, 29.35], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l„„w„bVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£„xÆKnUVm@UmIXm¯¯@WkWVwmkXƒlaUwV»ULmk_ƒVkK@ÅWa@aUU@mkaƒIƒb@‚n¼ƒnm‚_@mmK@UƒLUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVšnlUVmI@VkVlx™bkIƒVmLUxkKUŽ‚Xš‚n¦Æn„mVw„lš™nlxlLXx„@W¦„`„„"], + encodeOffsets: [ + [110262, 30291] + ] + } + }, { + type: "Feature", + id: "500119", + properties: { + name: "南川区", + cp: [107.1716, 29.1302], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VšUbVJVUn@VLX@WVXVVI@VUVWxU@mš@ĊX@@¼V°aVUX`@_V@VaUUVƒUWnI@alašLUlšLUllLVU„@@WV@@IUKVkn@@VlLVwnK„UlJšakwlU@UnJVUmkU™VmXa@wVK@UUw™@VƒVI@akƒ@alInwlKXUmaUW@wWLk™™KVak_ÇaUƒƒV@šXbƒLVxUlWIk@UK@V™@ƒkU@VbUVUlVnƒLUV@lVXmxkV@L@V@Vk@WbUwmL@JUI@xVxkx"], + encodeOffsets: [ + [109463, 29830] + ] + } + }, { + type: "Feature", + id: "500241", + properties: { + name: "秀山土家族苗族自治县", + cp: [109.0173, 28.5205], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XlV@lzn@VŽnbÆbXKlL„U„ÒV@@llUnxll@zšŽ@LU@@V°b@Vn@š„l@VÑUƒnK@UšU@aUaƒkVm@K¯wƒklmnn„Ul`nI@almkIUwmWVkUaƒkkJmUUa@K@aU@@_m@@wUyVUUa@Umƒ@awl@Wka±„UkUykIWV™b@bUVk@›aU@UXU‚UIWakUWmUxUV@nUVWbšŽ@XXVVŽmXXŽ@VƒbVLkVWx"], + encodeOffsets: [ + [111330, 29183] + ] + } + }, { + type: "Feature", + id: "500114", + properties: { + name: "黔江区", + cp: [108.7207, 29.4708], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VX@V@LV@VJUL@lVnnxlb@VXV‚XV@@W„@UIVK@kUKna@£VWUaVUUalIVJVIUW„_lm@bXKV@mn@J„UUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lw„KlwUWV_Ua@aUa@KUšwm›_›Ó@wU@™nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVV™„lnklWnn`VzUVnlWbkb@WxXxlJXzWŽÛlWXnl@Ll@Vb°UJWLX@VlV@bkJ"], + encodeOffsets: [ + [111106, 30420] + ] + } + }, { + type: "Feature", + id: "500117", + properties: { + name: "合川区", + cp: [106.3257, 30.108], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XKVXlK„ƒVL@UnV@aValXXK„U@WVwUaVU@IV@@aVW„L@U@anVV@@bVK@UVL@bnJWL@VnUnb˜@@JnIlVl‚@@bXIWbn@UKVLVKXLlaV@VVnK@bVL„m„IVƒ@KmknUUWVI@aVJ@_„WU_VmUwƒU@K™ƒVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mƒbUzś™@„VK@nUKƒ„ƒb™akb@UWK@bkVVbV„Û@@`ƒXk@WŽ@n@lXL@bmb@VVJUn@JnUlnUlmX@`XLlbkJW@kzlb@`@b@b"], + encodeOffsets: [ + [108529, 31101] + ] + } + }, { + type: "Feature", + id: "500222", + properties: { + name: "綦江县", + cp: [106.6553, 28.8171], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@¦‚@X„lVX@@UVKl„VUX@lanVlUVbXWVXVƒ„VVUnKVUlwUwU@UJ@nmVkUV™lwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXa‚mUI„am@wI@K@amIm‚UUkI@m‚akUkKWUUanƒ@wƒamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@š@bn@@`Un„@WbUKULWVXbƒ@UVmbX„WVƒb@bVmxUKUƒV@šUn@V@V@nmšnKlnnWWXX@lKkK@a„IVxUlVb‚k@mn@@U@m„bVUV@VLUJUXU¤"], + encodeOffsets: [ + [109137, 29779] + ] + } + }, { + type: "Feature", + id: "500233", + properties: { + name: "忠县", + cp: [107.8967, 30.3223], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VLÞĊ„U@Wš@¼V‚„@lk@w²mlšVUœ„llšVnI@VlKUUlIVƒXUVJVU„wl¥UkUKUIm@ƒaUƒ@mUna˜@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa™»k@@lƒ™¯n™¤mabWUUL@bnl@b݄WVnbU@mLUWk@Wbka@„WVUU@UmUmVkUULV„lVUx„l@L@VƒbÈÒlb"], + encodeOffsets: [ + [110239, 31146] + ] + } + }, { + type: "Feature", + id: "500228", + properties: { + name: "梁平县", + cp: [107.7429, 30.6519], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XLV@VV@b°°nšƒnkb@bƒšnJWVXblIUVšxWnUJnVVLVU„JlUnLVK@UnUVJš²nKVbVKla@aXlJ„k„Klb„ƒ@U°£šKšV„IUa@ƒ@kwVƒVUkKV@VUkk›ƒUVk™±n@xklƒ@U@»™‚@XƒVÝĉUJnxWb@UX›KkVUbUKWUkVmkkLU`›b"], + encodeOffsets: [ + [109980, 31247] + ] + } + }, { + type: "Feature", + id: "500113", + properties: { + name: "巴南区", + cp: [106.7322, 29.4214], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nxnVlJlUXLƒ¦@x@Vl@nKVVX@V_V@@KlVXU„@lKlxXIl@ÈĊ@Vl@n_VJlŽnVlnb„²VVVJVVmUUkĕUamçU@»W@@ĉn™V@XwVU@UUJWUXUW@UKm@UVUIVaU™UVmLUVƒUU„UWWXUakVmUkbW@UVkƒUL@VW@kUWƒ@mJUXVVU„@lmV@zklVVkLUl@¦›I"], + encodeOffsets: [ + [108990, 30061] + ] + } + }, { + type: "Feature", + id: "500223", + properties: { + name: "潼南县", + cp: [105.7764, 30.1135], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@a@a@_kalyX@lIkaWK@_nWVkkmmV@IVmUI@Una@aWK@k@mkbWaknmJUk@mk@@kUal@Uaš@Wa@aXLlwUKlkkƒ@KmI@VUJ@Lk@@VUUmL@amJU£kKUaWakLmU@bVVUbnbWV@xkL@bUb‚xUxVbXJVbUVWIUVU@kLWxkKWV@n¯VUbU@@VVX@VmaUL@VUK@VVbn@lVnI‚@@lnLULm@Ub@Žl@na„@lK@XVVkJ@b@zl@@VnV@bVb@J@bnXV`lXXmVI@W@InbV@@aVKUblKVLUanLlmnLlK"], + encodeOffsets: [ + [108529, 31101] + ] + } + }, { + type: "Feature", + id: "500118", + properties: { + name: "永川区", + cp: [105.8643, 29.2566], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@b܄nWVLX„lxV„VxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVXš@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWƒwXaƒK@VVLklƒXVlkxV„UL@bm@Vxn`ƒIVxUVkLVšUšl@@lkXmmƒVUn@VV@Xb"], + encodeOffsets: [ + [108192, 30038] + ] + } + }, { + type: "Feature", + id: "500231", + properties: { + name: "垫江县", + cp: [107.4573, 30.2454], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šĊ°¤nҘ¼œaV_lKnllUXVVLValUœLVW‚@XamwVIUKkaÇфa@U@KƒkVwkUUƒVKlVnU@aƒU@ƒVIka@akU@KVL@WÝçUV@Vmbů@L™KƒnnJW„ƒVkxlL@VX@VxmnXVWxUb@bkn"], + encodeOffsets: [ + [109812, 30961] + ] + } + }, { + type: "Feature", + id: "500112", + properties: { + name: "渝北区", + cp: [106.7212, 29.8499], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@bVVXL‚a@lnbWn@L„@XVlK@VVLUVlbkLUKVVVL@VšnX‚VL@VV@UbVb@x@¦UxVb@bUJƒL@L„VVxlK@™nk@U@W„UVLlKXV„@VblU@UUKVU@wn@VJVanLlkX@VaVK™¯@a@U@U@ƒVaUK„kUUƒ±maUkm@UUkbm@@Vk@@JƒwU@Ub@I@JmwUL@aƒ@@KkVÇLkƒWkƒ@kUU@@xUVmKUnllUb"], + encodeOffsets: [ + [109013, 30381] + ] + } + }, { + type: "Feature", + id: "500115", + properties: { + name: "长寿区", + cp: [107.1606, 29.9762], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VVšU„bX‚lX„¥l@XnVmlxUx„@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlw„UXƒmI„mšL@KÆ°na@UUImyU@ƒ—@yULUUm@@mU@VIkaW@UUƒV@K™I@mƒmU™wƒ@™mKUnU‚UIƒlVLUb@„@V@V@bš°ULUbW@klmKUbUIm@@xUVVL"], + encodeOffsets: [ + [109429, 30747] + ] + } + }, { + type: "Feature", + id: "500225", + properties: { + name: "大足县", + cp: [105.7544, 29.6136], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XUmaVaUU@anVlKXbValU@aV@@IXKš@@bV@VxVK@UXLlUšJXa@_‚@@aVK—ÅWVkwWaƒƒwUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UƒkwWƒUKmXX`mIVl@bXLWVkbkkƒx@`VXm@@J@U@UUKUxk@WbUIVl@VXLW„ƒJUkUlUImxXlmb@X@VUJUnVbšW@UV@@VVX@bnW@LVxUnlJUV@n„@VxVIn@l`„UVVVL"], + encodeOffsets: [ + [108270, 30578] + ] + } + }, { + type: "Feature", + id: "500224", + properties: { + name: "铜梁县", + cp: [106.0291, 29.8059], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VblLV¤nI@bnKVV@Ul@@KVI@UnJ@Ll„klVLkxWK@bXb™@Vbk@Vb@ll@@nVlnIlmXblaXl@„W@_Ü@UƒUalU@aXL@Vlašb„a„ƒVL@mUL@ƒUUƒƒÇXUW›X_WaƒƒUƒ»m_™@UWULWb@UUVmK@VU@UImK@V@bkL„x‚„XblxXU˜ÆUL@b@@`Wb™IkVWK@VULUwU@@a™@WL@JU@@bkVUb"], + encodeOffsets: [ + [108316, 30527] + ] + } + }, { + type: "Feature", + id: "500226", + properties: { + name: "荣昌县", + cp: [105.5127, 29.4708], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VI@U@WnaWknwVJVkVl„IXƒWK@UUkVJXal@VwVL@V@V@In@UW@_„wlllaXUWK@aUknJW_ۃ@aWaU@@UVm„UUaUImJVnÅUmVUm`kUUVWLnVU@VVmXƒK@„nxmŽULkx™ImJ@nU`@X@Vkn@`@nlV@nVJVaX„VLnK@bVV@nV@lbXWš@"], + encodeOffsets: [ + [108012, 30392] + ] + } + }, { + type: "Feature", + id: "500227", + properties: { + name: "璧山县", + cp: [106.2048, 29.5807], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XzVlVVkbVL@JVĀXŽ‚¼V„„„XbW`XœWVȎ„„VVšŽVkV@@UXa@alK@IƒƒU@UKWUyUI@wVUUWVak@VUkƒW¹@WXI@yVIUK@kWwkѯ±W@™kUb@KkVVVmXƒJ"], + encodeOffsets: [ + [108585, 30032] + ] + } + }, { + type: "Feature", + id: "500109", + properties: { + name: "北碚区", + cp: [106.5674, 29.8883], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@X‚VLV@„„@JkL@bWb@VU@UlƜVy„a@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@b‚lUbš„„KVI@aUaVw@¥@wUaVaU@@UUKW™m@UUKUUVLlKkaVUUK@UkLWUƒ@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@U™KUVWI"], + encodeOffsets: [ + [108855, 30449] + ] + } + }, { + type: "Feature", + id: "500110", + properties: { + name: "万盛区", + cp: [106.908, 28.9325], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VIV@@wVJ@InKVxXal@@U@U@KlUnwUW@kVU„KUmVkUa@I@KW@@bk@@mƒU@m@k@a@aƒIUxmJk@ƒwULƒwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUšlVnU@m"], + encodeOffsets: [ + [109452, 29779] + ] + } + }, { + type: "Feature", + id: "500107", + properties: { + name: "九龙坡区", + cp: [106.3586, 29.4049], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XK‚L@Vš@XbV@lW@UV@@VXIV@U™VKlL@KnnJ@VV@VU@I„@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@ƒ@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVU„V@V@X@JUIVbm@@Vk@@VkL@lVLUJ@zWJ@X"], + encodeOffsets: [ + [108799, 30241] + ] + } + }, { + type: "Feature", + id: "500106", + properties: { + name: "沙坪坝区", + cp: [106.3696, 29.6191], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Xºl„UVl@UbVXUV@xVJVzXJVUšL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@k„ƒUK@UmIm@LkKULVšU@WJ@UU@@VkXU@Wa™@@UKWL"], + encodeOffsets: [ + [108799, 30241] + ] + } + }, { + type: "Feature", + id: "500108", + properties: { + name: "南岸区", + cp: [106.6663, 29.5367], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VV„JVL@bUVVnl`XIlwXJlw°nnl‚IXW@UÇĉk@WJkwkLƒ@WVkU@LU@U`W@UXUV@n"], + encodeOffsets: [ + [109092, 30241] + ] + } + }, { + type: "Feature", + id: "500105", + properties: { + name: "江北区", + cp: [106.8311, 29.6191], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nLVU@wV@lV„@Xll„ÈKlU@L„@@bVKnx@I@JVaV@„x@Il@@Un@laVVn@mkUIm`k@WXJmk¯mkxWIkxWJk_UmVUUKƒ@UU™@ƒ„@l"], + encodeOffsets: [ + [109013, 30319] + ] + } + }, { + type: "Feature", + id: "500104", + properties: { + name: "大渡口区", + cp: [106.4905, 29.4214], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@k@@U@w„¥WKkVkImUmwa@b@xWJ@b@„nKVU@L@WVLXKV@@z@V@bVVU@@VVL°K@U"], + encodeOffsets: [ + [109080, 30190] + ] + } + }, { + type: "Feature", + id: "500111", + properties: { + name: "双桥区", + cp: [105.7874, 29.4928], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@WwUwU@kK@KmbU@@V@XlJ@znWlXV@XK"], + encodeOffsets: [ + [108372, 30235] + ] + } + }, { + type: "Feature", + id: "500103", + properties: { + name: "渝中区", + cp: [106.5344, 29.5477], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VLš@VV„@VL@aUKƒIUUƒ@@JUVU@"], + encodeOffsets: [ + [109036, 30257] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/fu_jian_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "3507", + properties: { + name: "南平市", + cp: [118.136, 27.2845], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@knyƒk@ƒKU¥šwV@nkƒWƒzUmk@@lKUa@aVI@UƒKUamKUUVaUI‚@Xƒ@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkŃKUƒ™a@amUƒbkUkKWUnwUƒÇwV™UUƒÝUKV£U™@ƒnKWwXLVKm¥@wUXkmWk@ƒ@wX@lU„@šyVImaXwVƒƒ@kŽƒnU@mbk@mlUXƒmU@mV@n@bnW@bUIWJ—ImVUKWbUK@nkKƒaU@W_VUUmWmL@UU@™bUWUL@V@bmVUz@`mUUVVbXL@V™L@lmLUxmVamXkW@xWbU„VbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVV™ŽU„U@UbWŽkIWVUUUJkI@llbUxVL@V™VƒUU°ULUmWXUV@VULWb@™xm@UaVLVKUa@ƒw@V›bkmVambUUm@@VkK@„@b„xlxX@‚„n¤@Xƒ@@lkLWV@Žn„V„kb@bWJXLWx@nkxmm™bXn@VWVUn@VnJ@bVXl@„™VJXnWbX`lL„UlJVI@Žœ@VXV@Vl@bn@@Æmn@VšxXU@mVIlxšVššnI„l@nVJ‚aXI@mlU@aXkVm°klmnVV_naš°@V@xܦXK„V‚nnUlVXbVK‚LXKV@naV@@VVl@@lXblXšWnLlbVK²nš@@‚VLUnlV@lƒXxô°‚V@UnaUUlKXLVUVVUbVVlUnJVX„@VW@an@lb„@nl@VU@anƒšUVW@kƒaUm@InVVKVU@kUW@Uam@km@kVa@a@™nwšU@WlI@mVI@WXaW_nƒ@™nƒlkkW@U‚¥@kV@Uw@wUƒ@@IXK‚¥VIn@nU@`@Xl@VV„LnašW‚bVaUwnU„@VIšKlV"], + encodeOffsets: [ + [122119, 28086] + ] + } + }, { + type: "Feature", + id: "3504", + properties: { + name: "三明市", + cp: [117.5317, 26.3013], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lL@Un@VVna‚bnUlœa@U‚x@„VbULUKVbn@šw‚@XaVK@UVUXWVnVKV¯„VšU@UUKVwka@klJVIVVXUlJXVaV@VƒšUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVƒXa@wlXnW‚bnUVwnK@kšK@UWKUaVUnV@_VynU@a@UVKVXšaV@@VnKnXVV‚UX`V@„blL@mVLXaVLnU˜JXIVJ@amX@a@mnUV@„nVWnkl@naV@„ml„@@KmKUam@UU@ƒ@UlKU™Vk™U™K@aVaUwV™U¥UIkJ@wmI@‚mbkwkVW@UXƒKULU`™IVKUa@LƒkkVmUU@WlULUWÅU@I@ƒWW™nU@@w@a@ƒUam_XyVIVWkkƒ@mwVKXUV@nw˜VXkWƒÅ™U@ƒaƒU¯KUnƒK@ƒ¯šmUƒLXŽVLnWVbVbUVm@Ub¯¼W@amƒ`kb™amLUUUƒ™aUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIƒy@kkaVUUm™IWVXbWxU@k„mVkK@nWVX¦WxU@@bkx@VU@WŽk@™kUbmJUUmkUW@_kKWKƒ@knV¤kIUKWLUbV‚@Wbk@@VWL@VkI@lUXVxUVU@@mWIƒV@a¯nUaƒaUV@„ƒJ™b@bÞ°VbUš@X™aUVmL@‚VXblŽnV„°˜n@Vnx„@VUUUlK@InJVb@„Vlnn@V™L@VWJU„x@XlJUVVVl@LUUUJ@Lƒ„@lUL°¦k˜V„VnV@„xV„„l@blLnlšLVaXll@šnVUn@‚xn@nml°‚X@lb"], + encodeOffsets: [ + [119858, 27754] + ] + } + }, { + type: "Feature", + id: "3508", + properties: { + name: "龙岩市", + cp: [116.8066, 25.2026], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ša„I@ƒVU„bVb°m@b„UXJ@nV@VUUwVW@klJ@UXK@Ul@Xa‚@UVaXKVLlJU£lm„@XLlL@`VXnlVVnIVašll@XV@@Ulw@aV@XwW¥XU@mlLnUlƒV@XwWaXUšJVnUVlb@l„zlJUVk@UXVVVxlVn@nXV@@lVVlI@w@K@mnI@W@wU_VWšbV„VVnKšbla„_n‚bX@°»Van@VUUaUamXUKW„K@a@Ukƒ@wWkXƒWW@wUU™Kw@_lyƒwUkU@@Uƒ@kamVmƒXašUVUka@Wk@»UUUVƒKkbWU™VUbk@mkƒxkƒƒKnIVUmW@kUKmXUmVaU@kU@m@KUWVkIWJ@ŽU@UI@wUUUa@KW»nU@mVkUmm@XwWU@ƒUUmL@ƒw@mnƒVUU@aWak@@amxU@UxULWVXbVLU`mbUImVU„ƒbn‚V@@bVn@bnVWxLmyUbƒIUKƒ@aƒVm™akbV‚UXW„UlKWbkV@„WLUlk@@nšbƒb@lkKmU@ƒUIWJkw¯UUVVxm@@XkbWx—›XKƒlUzWJkUUL@bmKkVƒ@@VUIUlWV@X„K@VkbWx°xUb@LUbk@@VWb@LXJ@VWXU@@bUVV„VVn@VVlLn„@l„@‚xk¦Vx@bVJXbƒn@JlnXxV@@„nJ@X@V@lmx„bUn@xVL@VVKlL@l„„nLVaVL@xkl@LƒxVl°š„X„WVX„Vl„œJWnxlJ"], + encodeOffsets: [ + [119194, 26657] + ] + } + }, { + type: "Feature", + id: "3509", + properties: { + name: "宁德市", + cp: [119.6521, 26.9824], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@LVKVaVaUkVU²J@LVU„@@W‚VJUbVVnLVb„L@VUJ@bVbkL@Žl@Vn„y„XmlU@™xV¦„L@Ž„lmz@lnL@bVVšbVb@l„nšKVk„Vl¤@zXV@šl@XJVLVKnXVK‚VnU@wUm@šKUƒ@UlVlw@U@U@ƒUaUKlU@kXKlmXIWKXaVIVUVK@KU@@k„JVUnLVJUL@V‚IVa@VnLšKUnl`Vb„V„V@š‚Vbn@Vzn@lKnVlI„VVKUalkXJl@XXVWVLVUUmVU@Unm„£lK@Uk@WUXK@U@WVwVkšƒĠkĢÇ°aUÅUwmaţƒɱUÇa™w„±V¹XalKôx„@„UVaÜʓͿVóbÅLƒJm„¯Vk¦ƒŽk@mamXkKUƒUL›akbk@mV@LkJWb@Vk„mXk@UVmaUV@amLUKUamI@KUaU@WbU@UUUƒUIWJUkm@šƒw™Kk„VJm@kxǁVƒUK@mUVUkmlkkVm@amwƒLVWU@UbVLkšUbƒ@VƒmK@XaVWU_VJnwV@@kUmWakxƒ@kwWakIWxnbUJ™zƒ@kVW@@x@„XllnVW@xn¦ULWKXxmL@„VšU¤VL„ÞVVUšÈxV„mxXVlLlV„anV@bšbV„„LlÆnnlW@LXlWnXV"], + encodeOffsets: [ + [121816, 27816] + ] + } + }, { + type: "Feature", + id: "3501", + properties: { + name: "福州市", + cp: [119.4543, 25.9222], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lxna@nJ@xlIVJV¦UšVxUb@bšLšVUlVškL@V@„VVn@Vb‚Ln‚@LU„lJXblx„@lwXbVn@lU@mxUIV`UXWb@‚nLU„„@Val™UKVaV@UX„Knx‚bn@lUkllnUVnV‚@VLU„È‚lwn@UIlƒšL„x‚™n@VlXIVJV„VVV@XaV@Vb@LnJVbVLnK@bVUnbVUl@nWlƒ@UXalI@KnUl@laœbVKV„lLnWnbl@„l¥°Unƒ„IÆKôa΀U„a@UUwÇWǓIUWUÅVkƨm@ƒ@£@KmLU¤ULˣJ™kUƒVǟUUķ@ĉVƒKUk@Ñ°wôǚç@īšé@Åţ¥mīÛkm¼Å@ƒVķVó°ō¦U°ƒn@bVJXVVL@bUŽƒakLmx@xmxXzW`XbWnXV@bWLÛ@™aƒ@ƒaXbWVkaÝwU@mlWKkLWWkLUKULW@kVmVUU݁UamV—¤›n@xUVUzkJV¦lJU„"], + encodeOffsets: [ + [121253, 26511] + ] + } + }, { + type: "Feature", + id: "3506", + properties: { + name: "漳州市", + cp: [117.5757, 24.3732], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@bl@Xb@bVVUŽm„@n„x‚@nKVV@„XVWxn@VnUl@nmVX¼@LVbVV@xVJV@@XIlJXU‚V@Ln‚@lVV@UbVnnWVL@lnXUVmJ„Ll„„wnll@VašUXVla„LVUVV@¼Xl@lbUV™VWbn„nUlb„@@VV@„aVUšmlUašUny@kU@Wkk@WaUVk@@ammk@@U@UlU@aUa@wl@šmXLllnL‚U@anVnU@L@VVV@KlXnWVnVanUšw@w@wm›nÅ@wƒaUam@Uk„mUl@@a„a@U@¥škôK‚wȯ°w@ŻkwǕaK›ÑÛk@ĕōřċ£ĵƒUKW»kÅŻLU@Ulġw@¤Vz™VUbkKUbmLmlULU¼UxmbXl@bWVƒb@bUnV‚UšVbULU@@VkbVL@`U@WX@ŽXV@b°„@b¯š@¤@Xm@@b@`U„VVUL"], + encodeOffsets: [ + [119712, 24953] + ] + } + }, { + type: "Feature", + id: "3505", + properties: { + name: "泉州市", + cp: [118.3228, 25.1147], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Vl„xkz@`‚xšLVV@xXXW„Xl@xl„@V@bnV°™@„„LVm°L„V„bV@ƚX„Wl—UmxU@WVULnx„@llUXUJWzn`Vb@„@b@xV@šmXX@„@JÆVVXVKXkV@nVlU„l@KVbULšJV_VK„LVWX@lUVƒkIU¥lIVyVU@wœm˜£nUVWU@aƒm@UmWw@UX@@am™VUn@@aUUlUVanaWUXWmUnkšK@VšUlVVUUwš@XLWWX™ma@knm‚bVb„VXbVL‚@XJlInlšL„w˜mXóšw@çV»ÇçŋaķƧóƅóKġ°nÅUķƑUÇW@—¯xÇ°öÆlV„n@llšaš@„Lšbƒ`™@™„VšXVƒVx@V@bULVJUk‚Ç@ƒ¼ƒXUKk@mmULkaWbk@ƒx@UkL@a@K@U@UmKmbU@kV@UmVUbUmmXkW@LUU@U@KmVmU@bVmKkkWK™nk@@xVb@bkV@V@Vl@nn@bl@VUXbl@XlV@@lmz™VVbkŽ™nUVƒb"], + encodeOffsets: [ + [120398, 25797] + ] + } + }, { + type: "Feature", + id: "3503", + properties: { + name: "莆田市", + cp: [119.0918, 25.3455], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VbނVVnUlUX@VKVLlKXXlKXL‚‚nkV@ÞxlbXUWa„b„@šbÜ@XK@aWUXmWaX_Wynw@wnwlK„bV@aUKWUUI@a„mV¯Ŏ¥ô¯ĸU„UÆ@n»¯aƿé@ţ¯nĉĬÝK™óó@™ÑU¼@è™xWô—nƒx™KmkkJWI@UKWaƒUUaamn@lnbWšXXWK™@VxUVkU™V@U™LmlnVWXXVmbUbkVVV@bm@UVnš@bW@@VXx‚n@V„n@bV‚UX"], + encodeOffsets: [ + [121388, 26264] + ] + } + }, { + type: "Feature", + id: "3502", + properties: { + name: "厦门市", + cp: [118.1689, 24.6478], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@VlUV@nanL@V@V@L@blK@V„wl@XalbVKnnl@VL„W„»È@lVUIVK@a@UUw„WUU™šƒš@„_™aƒK™@™bkkm@UƒkõŁxóL™l@¦@Vƒb@bk@VŽƒnVln@Vb„b@xmÆnœ@x@x™x"], + encodeOffsets: [ + [120747, 25465] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/gan_su_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "6209", + properties: { + name: "酒泉市", + cp: [96.26220000000001, 40.4517], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÇnÅaĉ@ƒU¯¥›UŹ‚ƒ£™WUýUU±JkkUw‚yÞIČxĊĕĊ¯š¥ÆUkţ™UÅÓ±¼™IUx¯UƒÒƑ‚ݐŰƒKÝnğ°ÅU@Žƒ@Vn@þš¼¯šWnŎ°XLWlnVnbWnƒVXxmbƒa—bóUƒlǕUUa™IUmlU™ƒš¥™kƒ¥ĉwkkƒÝɛa@¯™™U¯°mVƒkVnKlƒōÑÇÑU@kl™UġŽkUŻnUW™@š¯ƒk»šmWV£UKnUƒmUw‚w@ƒUIVaX™šwm»Èmmwn¯ċ™¯LĉŽUƒJUalka±Va@U‚k@ƒÛф¯WmnUaɝ¤Ûmƒn¯m±x@wóxÛLġÒUx¯VƒÈ™JUbóz݃ÇKĉ¯ōlÝUŎWl¯nťbÝ@¯ǩLġmV@ƯĢkÆm™ĊkVťLɃmÝXó°@„ĢbVŽóVݦɱ@Ƨaġ„UV„ĠÇÈV¼UVţwmbJÇwˋa™XmǯKkkmŽƒbXšm¼V¼ǬŚ²¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊšxŎƞȘǔˎǬǪnƨŮǬö°»šġ„„ÞÜÆĸÒĊ„ǀbƾèôÈ@¼¯þŤĸƧ°VĀ¯b@lÈĊ‚šʠń̐„ȘKǀŽֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@΋ʈƆÅÈVVĊV„óĊÅ@ÞƒĬV@Þīš@°Ž„V@ĸĢƒ°XτƜĠ@ÈaÜ¥Őƅ‚™nğóĕVġUůƿŋ—ĕƒa±V—UťÇğÑ"], + encodeOffsets: [ + [101892, 40821] + ] + } + }, { + type: "Feature", + id: "6207", + properties: { + name: "张掖市", + cp: [99.79980000000001, 38.7433], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÈÒŎÒk„mLUŽlŽU„¯nV°šš@°ɜb„ÞĠaÈ»ĸl‚š„LVUÈ@Ċ@ýUm„@@ÆVĠ¯Þm„LƯޏƒ„Ñ°VVwšJ²»ÆԚVlŤÅV™¦ĉ°ĉĖċwÝJzVxll²IVVVþšX„¤źœV°¦„VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUƒlÇĸk°XyĊUǔV„ǩnmV»ƒa@ýnK°n@l¥@»ż„Ċ¤m皃@£ČU@mƒmVkÞUƐ±²¹°‚ĠwÅƑŃU¯™›V¯aÈŁšƒÇ»™ġn_°xŎKlxœklx„@Þw‚„„@Æm²b‚DzLlkšWXať¯ĊaœÑšK±w@wƒUÅçV±Uk™@@„¯š¯xƒU™±±UU°ōxVxÅÔō°ó¯UÝ¦óbÝþƒ@ĉÈóUV‚Ux„„@VŽUVÝwÅÈǎóVkk¯JǐkmmL@„™KÇx@bkš™@U°ķ²ó`ƒš™šmn¯°ƒUwlÅkUƒ`™¦ɛô™Žķz@ŽÅnÇ°U¼¯KmVk²ƒJƒ¼ƏÞķôš¤ULƒ@mnğ`™šÇnUxÇ@Ûÿ™U@ƒƒkŻŽ@x@móJkŃ¥VŹĉóÒĉlċ°ķ„Uƽ܃@›x"], + encodeOffsets: [ + [99720, 40090] + ] + } + }, { + type: "Feature", + id: "6230", + properties: { + name: "甘南藏族自治州", + cp: [102.9199, 34.6893], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ލš™nKlnšwX¥WÝXk˜xÞUnƒ°aĊVnUUKlÞĶWXnĠ¥ô»„™@nmVL@¤°™Vz„JšanU@aÆwna@k›ƒU¯šyX_›aĉb™ƒ„wƒéXkWwÅaš¯V¥mƒ¯UƒƒI@ƒš@„mšb°aÈçšUš¥@»‚knwɜƇ°I°ÑÈmVU™¯Xa@w‚W@wšV¯Č¥l¯Uwnm@k˜aUaóKkk@™Ça™b@ŽÒWa¯IÇxÛam¼™VUƒxÒl‚@zÝÒ¯bÝaĉVĉwDŽW›zJ™mJn²mܯUƒ¯ĉ@ġ¤Åb@²nšmlƒ@@Ž„„U„ƒLVxšV™„U¼Ålma™b@ƒ°™l@WIUƒ¯@mƒ™@™™ó„™„@U›zţyƒXÇU™ÇVUUVLkbWakVWmUbkkƒKUÆ»nƒ°Knk@aƒUVmšnk»l¯Ģ›lw@_kKVU@ƒnaƒ@lUk@¯¥mV@kmbW™b¯Åõa@mkU@kƒÇŽkU@›`@™óó—bl¼Uxƒn„¼šlVȄx@blVkVVnƒ`XÈġÈ@ǃK£ÝJmUUnUĖmlU„mKUn™VÅaUw›Uĉ`¯n¯wW¼nxVŽ™š@bĉnƒ‚kIċŘkXUŽ±Ò™xšÈ@ŽX°`l„œV˜IȯĊV„ƒšVVan@VašUVażVmšblkÈW„ƒWIXa„alL@wVb„„V„¦lL@lĠ™n҄U‚nk‚šL@ÆÞkšÞšK‚bñþW¦Û„ċVƒ„ULUºkÈlŎUxÆxÞUUxšÒ‚x„@XbšL@lÆ@„ÒlXVln@„bm¼ƒJ@„Ån„šƒx@bnšĠm„xVXmbÈè@ŽĊ£ČW˜w"], + encodeOffsets: [ + [105210, 36349] + ] + } + }, { + type: "Feature", + id: "6206", + properties: { + name: "武威市", + cp: [103.0188, 38.1061], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@±¯¥@klwU»ƒƒÞÝmwKm¯™™ç@™kVÇUL¯lVUKġ„ġm@a@U„@X£°l°LŎÇ@aōVÝw™ÔƒKUŽÅš„WJ¯lm@ÛVWa™@klĉUmaƒLUanaƒ™ƒk¯J„™™±KkXóÜÅxƒ²Ç‚@„„nUÒĊb°@™ÆkL™Ž™XÇÆ@xÝn—xWxţ„¯¤ƒI@Æn„ƒVV„VlU²Æè„V@x²x™L›ÒĉbŦ°Wb™Xklބš@l¤šXĊ`„wl@ĢÈŎm@bšnV‚Ubƒ„@șÆÛLƒèǚUÒŦlĸ™`°ĮʟÆǓbĉôϚĊƚĢnŤé΀ÑĸĀĊ¦„@@l°lœ¦Ȯ¦ɆÞĊKŤ™ĵĸů„»mŁyġ™ķŭ@Çɱȭ¯mƧUĊķnŁŻ»UaU™˜ƛɞÝƨů"], + encodeOffsets: [ + [106336, 38543] + ] + } + }, { + type: "Feature", + id: "6212", + properties: { + name: "陇南市", + cp: [105.304, 33.5632], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šÈÞ@l`UmVƒ¼œŽ‚@nnÆwVlnVVa„LVƒÈ_‚ÿރ@n„a„xÆ@„lš_š@VxnK@llLnxmÈŎJnbUxšI°Žl@n¦‚lÈIlmX¥„k°@šk‚J„k²é˜@klaUaVaU@@ÝnIWnmnx‚k„ºÞ„„aV™°„V@nw‚KšxôbÞ£šVšU„bšþšLn»mƒVw„IšJ°Ž@„nb@°°I„ġUkÇKVƒ™™@ů»lƒ„Lnmƒ£@anK@Ñ܍n@»mL@£™yk„UUmbUÞÝ@kyÇbó»™XUxƒWVzb±mÝbXaƒwUamL¯»@wUKVwm¯ĵJ°ÅUWVk„KVk°wÈVšVуlUšƒ¥škmVamknƒUw¯¯ƒbċ¥ÅKƒk™Kk„™VċVk£kKVw‚Ñ„a@kóyÛ¯ÇVk™ów›š—Xō¥Ç¼ów™Ž¯U±‚k„ƒ@x›IĉÒÅVmÈnšÜ@n°„bUbÝV‚ŽUnnJ¯Į@‚m¦nV܃@„„L°JXb‚Ñ@šaÈb@šllôLVb—b@lmnVxk°ċ¦U°™Ž@xX@xWbš°UVÇn¯Ò¯Jɛƈmxl@¼"], + encodeOffsets: [ + [106527, 34943] + ] + } + }, { + type: "Feature", + id: "6210", + properties: { + name: "庆阳市", + cp: [107.5342, 36.2], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@kw‚ĉ—»VamƒƒV¯wƒIóVkl¯™Km™Vō¯ÝWkL@bÝKō¦@Ž™„@š™Lx›@b@l™a@km@@l¯nm@UaÅ@ƒ„óWUXm¥™nƒw`@UUxķôÇ°ğ¦@„VJš_n‚‚IVŽnalxkX„JWn¯šnVƒLšxl¤nnVbklVX@xnxmV@bUK@nm@@xƒV—°±aÅnƒŽkUWnUaƒx@m™n@ƒ¯LƒššmUĀlU@lV@blLUblxklkIÇx¯°‚UXbšaVŽUnšV@°‚LUlnbšX@`°nVmbnÆmV‚kLmK™¦UŽ@X„y@kl@U„°K@¼XbW„ƒš@b„WnLVa„VšƒVz@xlVČ¥lbUxލlV„U@nÆWôn²™VJlU„Ƨ„LnmÜLXa˜n@mœw@wlUlV²mšblwšVȃlLލ„±@lVnUlxnkma@mškšJ@kXV‚U@mn@š¼VXUƒVƒlLnmVbôaVnWV»ÈUl°È¯ÆIn›ÆU@kk»mKkÆġk¯@»mƒk—¯@óÇlÇ@—Vykkl™Uml¯Þ™@w"], + encodeOffsets: [ + [111229, 36383] + ] + } + }, { + type: "Feature", + id: "6204", + properties: { + name: "白银市", + cp: [104.8645, 36.5076], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VKUȚl@šè°šnŽ‚LnxÝބ„V¼kx@l‚¦²°ĊóĠ„™Ċ»š@ÈxšaĊxlwÈVŤa@¯²aÇ£ƒJk£lƒnUÞ@°šô™@y„wl»lIX¥Ǫnw@ÑÞWla„ÅlL@ƒUwĉakƒl@ƒš¯mwna°J„V¯nUVÓÞÑm£²óWaUƒÇ@óÝUçV»ÈkkW@¯‚xV@XlK@wX@Vmm_@wÈݙKU¯ÇwVwÅK¯VƒkƒJ™™™XkWVaƒImŽ¯Uk„ÇlVšœĀV°mxóšk„@¼ó„WxĉÜU@Ub‚zÛJÇk@‚ÆnVlԙ@kŽ„x™ô@ĬWL¯ƒƒK@aÛImm™@ƒIUaƒ@™™UŽÇêU¤VÒÇx¯ÒV„šš™lk@Wbĉ¦UbkWV_‚y¯Lƒaó„kŽ@b@nmbkx„°"], + encodeOffsets: [ + [106077, 37885] + ] + } + }, { + type: "Feature", + id: "6211", + properties: { + name: "定西市", + cp: [104.5569, 35.0848], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„a‚V²wVJV_@„LlanÅllŦçÜӚ_šlnƒWaôk„xUš„bmV@È°lèšnk°l¦„`@nnL‚@ÈlÜIyVaV@ĊÛXwôƒ@»lƒô™nwU¯›ÿU™Èklƒ°Vn„JUblXšWšš„I„l°U„ƒVƒš—@aVVVmnL@„lƒ„UUw‚mkƒš£„bV¥VUVwۂƒlaÇÝރmk£ƒLUy¯L@WlkKW_XaWƒ—mƒ„ġU@a™k™‚ƒakXkmVwmŹVƒU™b™WƒónmwnWW£„KÈnV¥ƒ¥„ƒÆ_k™lW„bU¯„V°aôbnaVwmaōInÇmwkK@kmLUw™@™`ƒkÅ@ƒwƒb@m݄ĀÇ`U„ƒKUbmUUkÅxmm@›„»nUVk_Ý@™Ç™¦™VÇè¯b™aƒn™@@„„JV„°Žn„U¦™°ÆbXxWl„êƒxš„ĊaœbW`™zV°œ„@lmbÅx@bmV™bƒI™`™¦@ÒUVUI@ƃL@bš¼@ššŽ@„šlmxnL„°ULƒŽƒÞğޛ°kLUŽƒL™°™xVŽ„n„KVƒl@šzX@"], + encodeOffsets: [ + [106122, 36794] + ] + } + }, { + type: "Feature", + id: "6205", + properties: { + name: "天水市", + cp: [105.6445, 34.6289], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@UyȍVƒVUnn@ƒVU„`UblzšJnk‚@Vb„KU„°l„wš„„W°„nkVŽ‚UÈlš£°V@n¥šV„kl™kU˜±U„ƒn™ƒlw¯UkwmKUlmkUmnkym@ō@U„mWÈU°l°anlJškUKlU„¯Èm@kmWV»kkÝLUWUx±b™@¯ma@ƒ¯™IƒJUxn„m¼™K™ýƒa™V™Uݤóa™wLmxU@¯ƒUšƒb݃ƒ¹lmwmnXŽmJ@ÞV@UbVbkblŽ—@±êƒlI™l¯@ƒlW¦knÇJkm¥k@¯™Jmbóa¯bƒUV°ƒakXlšÅ`ƒ„„¦U¦ÇmƒLX¤mXnxm‚„ôšXša„VźUnŽUxlnlW„bššl@bĢV„ƒ˜nX„WbX`lLXk@Ž°KVz„Kl¤„nÞ݂Èkb„‚܁"], + encodeOffsets: [ + [108180, 35984] + ] + } + }, { + type: "Feature", + id: "6201", + properties: { + name: "兰州市", + cp: [103.5901, 36.3043], + childNum: 5 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@lW²LššƒŽ°I„l„šmbVb„KnbĊVlkš@XbÜU@Žkn°‚XIƒÆ™V„LšÓÞxŎUlôƒ„b°KzU`lXVaĊ¥Xal@šk™™Uƒ°ÑÈwUтV£ÈéVšš„@Vb„Jš@nnÜJ@b„L°„XK@īšóƒwlš@kÓmUÅmK@mƒ_k¥l¯™mkçǯ@nUƒaV™ƒwólXbm„™k™`ÛÔťèkkmÆkbƒK@U`UI±xUƒbWlX„mbVbÅÒólkƒƒIWJkšƒ@ƒz—KŻ¼™@™xUx󎃄¯LWb@ŽÅ҄„±¦U`nbťĀUšVb„LšŽ„U"], + ["@@ƒ¯lwna@mōȯK¯kW¤ƒ@@V@bĢnĢƒVLU‚°k"] + ], + encodeOffsets: [ + [ + [105188, 37649] + ], + [ + [106077, 37885] + ] + ] + } + }, { + type: "Feature", + id: "6208", + properties: { + name: "平凉市", + cp: [107.0728, 35.321], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÆLUxÈxV°šLÇÞ@xn`Ü@X@nĊŽÆwnJmwUx‚aUkšw@V@w„aVmlLXÝl@X‚VĢmV°@nl@UUUWK@w„ÿVI²Òlmš@nÝĊýVV@nšJ°„„šUłm@kV¼nK›ĢȤôK„blnKllVk²aĠ¥È¯ĸóVw@V‚_„xšmn¦VWôX„ƒÆ@Vbn@°m@kn@@lšb@k‚aœ@‚wšK@™šƒ@UlKVaƒWX™W²¹lӄw@_°›n@@_lKōķW™@ŽmLUWƒn™»Û@›l_Ç`ƒÛmm°ÅbWb@š—VWbƒUUKDŽÅaġlmkUġlƒ»—Lƒl™Um¦@Ž¯U™¤ÇkVUml¯ƒƒX™ƒƒx¯kVƒƒLUa@ml™IkyVaƒ_UV@„mmUVU„ÇŽVzUxUVU¦ƒa™¤l„nVxƒVk„@ƒmKUnUU@b™˜U„ƒ„", "@@@Žż@™mlkƒġk"], + encodeOffsets: [ + [107877, 36338], + [108439, 36265] + ] + } + }, { + type: "Feature", + id: "6229", + properties: { + name: "临夏回族自治州", + cp: [103.2715, 35.5737], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@š@ż»˜L„y„@l™XI„Jl„ôkÆÑUanaWƒXkW@™yk@U„ƒLƒmUšwš¯„KVlKœ¯Ġ݄݄VKƒ¯mKnw™k@ƒ™@™™»@a„K@ÅVJVU@њ¥š_Uy¯š@£UKmn@‚ƒšó¼ğ¦WmĵXݎkŽVLmVĉU¯bm„ÝV—wWlXÞW¦™xkmmL™šÝŽœ„±U@Vގ™š@„ÅÈW°X„ܼƨyUĮnŽWŽnXÝxUx°lVXJlôV"], + encodeOffsets: [ + [105548, 37075] + ] + } + }, { + type: "Feature", + id: "6203", + properties: { + name: "金昌市", + cp: [102.074, 38.5126], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šĢȼ™„Çł°bœU°šV‚ƒń‚ÆǖŰnšÆ„ōĬǔaʠůĭš_kķÆ¥VÑș„çÜKšÅ@DŽƒVaU™m@aōnġÇk@ƒxĉ_™Wk£™@݃±KÈ±aÅnƒ@ƒÝxƒ@kw›lkwōL¯wm`"], + encodeOffsets: [ + [103849, 38970] + ] + } + }, { + type: "Feature", + id: "6202", + properties: { + name: "嘉峪关市", + cp: [98.1738, 39.8035], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@llĊx„¦šl™¦š„kVVnšJVbǖV„kôV˜a„bnaWw„UXmmamUXkWKō¯Xm°™™»ĉÇ@UVƒK™ķkǼğb"], + encodeOffsets: [ + [100182, 40664] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/guang_dong_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "4418", + properties: { + name: "清远市", + cp: [112.9175, 24.3292], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lǯkÿƒaV¯™VaÈU„¥ÆDŽIlxšmnb‚Uœxl™„Uôl°kš„„Wl„š@ô™VwUanUl@„xVkšaX¥‚kU»„aš¯±@kka@ƒUwmUkwƒJk™˜„±k@ƒ™™L@ÝWUwV݃—xÇU¯ŽÇX@m™Åƒ@@yĉ£VmUwȗ»ÇšUn„lUnWU¯`Ukƒ@@„™x„Ž@bÇxX¼ƒVVš¯LšĀk‚ÝLƒ„¯@VŽƒĀ¯lnĊW¦kVÇôkUDŽUK@ţ™U@a™™ó܃UU»ƒ@™¦k@Vx„KVb„n‚š@„Æ™„l„@xšƒbWšnlU„lxÈlV„È°Æ„@¼™„@x„šWxœŎ‚V„šK°„š¥ššnƒÆkŎ@ÈÑm™„K@¥šk@™ô@„nôV"], + encodeOffsets: [ + [115707, 25527] + ] + } + }, { + type: "Feature", + id: "4402", + properties: { + name: "韶关市", + cp: [113.7964, 24.7028], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@W™Xk±Ñ@ƒUw™mUwĉwlmn@Æwn£mkIš¥ÇÅ@¥šaƒón£nWWwš£V`Þ@šnVml@xô¼„IV¥ƒkUmkamUkVWwÛ»móƒ£UVÅKmn@x™@kbmm¯a™Xka›VĉaUb݃ƒ²—‚lš„IlxnVVx@„lb@l²™°ƒbV¼lW¦™bUlƒwk@mVVbUxóš™@kƒƒX™ƒ¯lókƒVkš›wVma™nkwƒJÅȃ¦ÇVUbšŽU°„blĀ°ŽkÈ@x™¦Æܙ°@„°„¦óa™VUôlUlbXl@nÜV„„nKlŽnIVÞ°Wš„°U@bnm@¥šIVƒ²Ulƒ°VnalzXyl_Vyƒ¦lƒœLlxš„@ŽÞbšKm„knVWanwƒÑVwČº˜@n_ÞV„aVŽÜIœl@„˜KȚ„VJ@aš£È@˜™@km™„aV¯W@_ƒa¯KmbkÇkLmwƒ@Å¥"], + encodeOffsets: [ + [117147, 25549] + ] + } + }, { + type: "Feature", + id: "4408", + properties: { + name: "湛江市", + cp: [110.3577, 20.9894], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@ƒkXƒ™@a„UUċlk„Jƒk„™@wVJXUWk°W@nKnwlUlš²ƒ„blU@‚lI„l@„XbW„šxnm@lW@w„wU‚JX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmw™aĵV›xUہ»°™ĠǷnýmóX¥ɅĵҏÇ@°²ĊUĖ±ĮU¤Ç°™Ā¯ɐnżUĊĊĬV@脎@ԃÒU¼l¤nƒĠb„êVĠ°Èy„zVaV‚nUÆL„ašbVl„wÆ@"], + encodeOffsets: [ + [113040, 22416] + ] + } + }, { + type: "Feature", + id: "4414", + properties: { + name: "梅州市", + cp: [116.1255, 24.1534], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„‚nԚlW¼x‚¦@lœVl™lLkè„a@zš¤ƒĖ„¼UxlnUKUbÝlU¼lb@„Vx„V„klJÈwV¯š@ĠlÛĖšnƒbkšÆźÞƒUÈôklmšL„¥‚LœW˜„„™nKUkVa°V„x@IVV@x°bUk„a™a@mV@„@y„w‚L„ÑUwVUšV„‚„U‚bÞVVann‚@XwÇÿš¯²aVamkXaÆ»@»nw@¥›UXaƒkbWa¯KUw@¥m@kwmLU»UU™J@kmU@UUWUƒ@ƒyƒanwmçÛl¯ƒŽ¯UƒmKUmƒwVkmÝXbW@XWÝbƒk¯@±‚w@»U@W¯Å@ƒÇ¥UƒU@ƒƒ™IU™ƒakJƒĀ„ꃰšþƒXkamŽ@Žƒ_J°m‚@X"], + encodeOffsets: [ + [118125, 24419] + ] + } + }, { + type: "Feature", + id: "4416", + properties: { + name: "河源市", + cp: [114.917, 23.9722], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°VlmX¹laĢÒlm„@„„šVš£‚‚@¦Ģklynn¼lW°z„W„„°VbÈV@lÆbnn‚JškX„šVÆašÅ„W@™ƒUUw@ƒkaV»ÞkVaVLkmVwƒ»„ĕ™£@yƒblçkKkš›U@k¥‚wX»™kmӃ@Wn¯‚I„`@nlb„W™ý„¯ƒé„ÿlI@™XUmWUwƒ@@UJU„Ç„mKUV@x™„ţk¯¯LWƒƒnUxK@ű»Vwa¯š@¤WX@ŽÛ¦@¤ÇIȼWxXŽƒ@Wx—w›ŽUnVbÅèmVa±²UWl@Žk„lȄ¤nôܼXxlUnVlbVn„lU¦ƒJó»@wnkmU™‚Ý@U_™¤XxmXm¤„ô™b@¦Èƙ¦lJn"], + encodeOffsets: [ + [117057, 25167] + ] + } + }, { + type: "Feature", + id: "4412", + properties: { + name: "肇庆市", + cp: [112.1265, 23.5822], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l@š¥„@V¼„Vôۚš@bšV@ŤVLȃlVÈólUX¥mĉ°k„ÿU°@„ƒÞKl™ÿ°KU™„UW»Èw@aƒšw@ƒ„@nm@w›£kÓVUVn„Kš™k¥™£Vamƒ@nkKkbÆǫma—kmLU¥™UmƒÛwmVU™mUƒJ—ÇaUxÇIn`mb@Þ¯b@„nJ@nl„U‚V„lVU„L›W¯—Û`Ç_¯`mš¯I™bĉWċzx±J™xš¯ÆUƒƒ_k@™šƒJ@Umb„šXôlLš˜n¦@¼ĊxlUXŽ˜xUbL‚Ġ„UnVĊwlšUš„b@lW„X„‚m²˜@ÞWxXš‚Unb"], + encodeOffsets: [ + [114627, 24818] + ] + } + }, { + type: "Feature", + id: "4413", + properties: { + name: "惠州市", + cp: [114.6204, 23.1647], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lbšW°bnnlaš@@wnmÆLVUkÇlƒ@Xk‚V²±‚bnUÆçUaVmœ˜xXw„@WXwÇ»ÈJ@£Ü¥@XW@£°™‚bUx²¼@ƂLVw„mX„°K°Ťlšƒ@wVUnLȃVƒVIky±wkƒKU¯ƒÅkƒ™XġÑۃlwUwlm@m„nKWašÅm›¯óÇmğb¯alĉUwķbmb@lÞÒVn—šmĀŹ@VŽƒbVŽUnmakLm`@xĉkklVÔVJVn—lV„UnmJmaLUbl‚™zmŽkL™a™‚ō@@zš‚V¦UŽV²kJ„nÜU@˜VXUŽL@„lJƒL@bݤUnVŽ—b@xVnlK²„Vx°V„xlI„lkVl²k¤@n"], + encodeOffsets: [ + [116776, 24492] + ] + } + }, { + type: "Feature", + id: "4409", + properties: { + name: "茂名市", + cp: [111.0059, 22.0221], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@‚LnÇlk„KnkÆL„ƒUm™ÈxlUœJló°n@ššanŽš„„a@ƒ˜@X_@mÝóóU@a™aU¯mL¯ƒƒkV¯™ÇVwkw@V±Ŏ£@™™@šalw±Vk@m„Åm¯™ÿŃƧIÇ`ōô¯_UVW°IV‚ƒx@xkX@Žmn™wXƒWa@ƒƒkkJ@kVƒa±„k™kVmxmL@‚¯XXlWVUI@xƒš„lƒIklVȃV@b„šlW@„@nUxVblVxkôlx™n„‚y„šnIƻư„aXwlK„bVnƒŽXb‚L„¤„k‚L—èƒVV¼ƒŽ²IlĠVX„ynz°KVx°@VlœLlblKœš"], + encodeOffsets: [ + [113761, 23237] + ] + } + }, { + type: "Feature", + id: "4407", + properties: { + name: "江门市", + cp: [112.6318, 22.1484], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lUXx°JWnnƚXVš„W„X@„šºVLV¯nU‚Vnb™ô„x‚aXmW™XIšŽUb°xlK„l¯œK˜xXÞ°ŽšXÈ¥Ü@„ĉޏU™‚çš»nóƒVma—x‚¯UÅU¥Ý¯@ƒƒç@ș@çĉÅUmU籃ĉKÝxÝ_ÅJƒk¯»ó¯nmèkǀšŽWxœ¼mnUÜġ°@¦@ƒxƒLkŽÇaVnUxV„™šVlnIlbnÆÆKX¦"], + encodeOffsets: [ + [114852, 22928] + ] + } + }, { + type: "Feature", + id: "4417", + properties: { + name: "阳江市", + cp: [111.8298, 22.0715], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°„nKV°šb@bôVÞô@n„VlÒôÆUnlnn@lmkmVkƒaÈkÆƄ™k¥‚ÅÞ»ÆKXkW¥ÅLmÅkamJUkš™UƒVwUmÈbl„K„w‚@@¥Ģ¯VÛnm›»Xw™lƿ™@kbW™—aʵ@óL›l¯ƽ@™ƒƒLn°ƒÆ@nUl‚²kx™b@‚š@šō¤U²@ŽlxUxšÈU°lŽ„"], + encodeOffsets: [ + [114053, 22782] + ] + } + }, { + type: "Feature", + id: "4453", + properties: { + name: "云浮市", + cp: [111.7859, 22.8516], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@V„Iš™l@„`V„°Å™šw²I‚wČyĊXša°Jn™°_È`Ü_°˜œX‚KVƒkUUƒVkƒ@mmI@ƒ°a@Ýnam_ÈJVwlĉX@„šlUšómaUmVU°UK™¹@ƒƒWƒXU™™WmÅXm¯IWwkVWlÅLݼÆl¦ƒšÅÅÇl„bUllnknm@kmVmóÅkуUW`—@@„ƒb™ƒm™b@™¯mkô›IkVÇwnš„VƒÅKmlƒLklmȁKƒšVĊK°²„`n˜¤n„U„bWl„xVx™LUx@°nXm`VklVxmnnx"], + encodeOffsets: [ + [114053, 23873] + ] + } + }, { + type: "Feature", + id: "4401", + properties: { + name: "广州市", + cp: [113.5107, 23.2196], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ș¼VxUnĊ¤@z„@šÆ@nÈW°ÈV˜w„ŽUÞVxÞX@ŽšK„šl@ބVaĊbœU@ml£k±lUƒkkJƒw¯UUw±ƒkLUm@w˜aUVmÞ£@a„KkI@ƒ‚KVUW@—ÛVƒmlIU±VU¥™@yğzƧǃƒšƽĠřšÅnī±m@ƒ²¯lƒ°@nÝÆóUll@XnÝVU¦mVV°—„V¼™Jƒn„b@°mbn„ƒ‚@²¯‚¯wVwƒ@@nmxX¤¯L@ŽVLU„m@@l"], + encodeOffsets: [ + [115673, 24019] + ] + } + }, { + type: "Feature", + id: "4415", + properties: { + name: "汕尾市", + cp: [115.5762, 23.0438], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@‚„@VxnXWV@š„bVššJ„„V@ÞÅU¥Ċxš£UWU‚wÅUU¥WVUkĊÇnkV`°LV™„wƒƒnU@™„ƒlbĊ¯„Vnalšš@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆó„ȯw™ÆXbmLƒ‚@nknVxkx܄ĢҚW„Æl„V°„Ll‚²xlz"], + encodeOffsets: [ + [118193, 23806] + ] + } + }, { + type: "Feature", + id: "4452", + properties: { + name: "揭阳市", + cp: [116.1255, 23.313], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@V„Ȧ„Æ@X°V@@¼‚x²°@„lÞaWXX@‚aÞWlnUŽ„xVnnL„‚°V„@k‚mĢl@„ak™@mlk°aXƒ±„nwm±™²¯JV²@ƒwW˜—_mƒa„V»ƒU@m¯ĉUф™šJl™„ašbVn„lĸLlƅÛDZwÝ@ĉxó@è™@k™mbƒUĉ°kaƒ„@šmV„„ƒxUš¯KU_mlĉÈVlXUV¦ÆVxVŽVX™¤ĉwV¦ÝÆ"], + encodeOffsets: [ + [118384, 24036] + ] + } + }, { + type: "Feature", + id: "4404", + properties: { + name: "珠海市", + cp: [113.7305, 22.1155], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„è@„Þ°V¦VƁ°˜wnb„UÆ»nçƏ@nxܤ²llU°VnÈJސ°UôéšķUklƒô£VVˌKÞV°£n¥ƒ£ȗ™Ýy¯¯mÅkw¯bÇĔğ@Ýn¯ĊƒVğōŁŻƒķJ@Ț", "@@X¯kmèVbnJ‚™"], + encodeOffsets: [ + [115774, 22602], + [116325, 22697] + ] + } + }, { + type: "Feature", + id: "4406", + properties: { + name: "佛山市", + cp: [112.8955, 23.1097], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Èb˜Ž„InVVšnUÜxn„šVV¦nK˜lnbÅǬlalL@mn„Ubš¤l¦™šƒLUmUVlԜ¤@xmnVl°_XVVmƒkVmș@kn@VƒUK@°KW£nw@m„@Ux°x°@±„mƒna@¯ƒa„mšIU»˜ƒU¯nUV¥ÞUWmk@Vk¯™Ukn›ÑWݐƒĊÛ@Ǧ™W¯Wݗw›Lk°ƒkL¯wVa™WJXšWnbƒwkVƒ™W@kĊ"], + encodeOffsets: [ + [115088, 23316] + ] + } + }, { + type: "Feature", + id: "4451", + properties: { + name: "潮州市", + cp: [116.7847, 23.8293], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°ŽÜknèmx„b„z„@V‚VX@VnV@lšIVVV¼nKlxn@@¦Vx°LXbla„ŽWbœV°£¯™W@nW@™‚aUñVœwWš»@¥ŤÅUÝǓÝóV@ńǎkUVmƒIUwÅVWÇX¹›—@W„¯bkl@nlšƒb@‚kġŽn@l"], + encodeOffsets: [ + [119161, 24306] + ] + } + }, { + type: "Feature", + id: "4405", + properties: { + name: "汕头市", + cp: [117.1692, 23.3405], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@‚@U±°Iš±n²mx²ƒ˜@œWºXÈÆUVx„JUnlVȍ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóšÛÈķKċ¥X„¥Wwğk™ƒ¯@ƒwķKƒkUm™aƒbkš™IƒšVÒ°Ċ@n„VU¼ƒ‚„bn˜`X—„x"], + encodeOffsets: [ + [119251, 24059] + ] + } + }, { + type: "Feature", + id: "4403", + properties: { + name: "深圳市", + cp: [114.5435, 22.5439], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÞLš„@xšbV„šVšK°™X°Kô¥Vw@anU„胐š‚lkĊl@wn_lKnbVmU„aUź@nÿ˜™UmÝѯUƒbk„@ÆkxŻ@™aÇX—wƒJƒƒ¯LķÝUĕ™ó™ĸóêWº@b²nmĬ™Æ"], + encodeOffsets: [ + [116404, 23265] + ] + } + }, { + type: "Feature", + id: "4419", + properties: { + name: "东莞市", + cp: [113.8953, 22.901], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ŏ@ššblKnšykVa‚KnbnIVmUƒ˜kUmUIUә„ƒçmV@bUxó¦¯LW‚¯š™L™UUƒ™a@w™ƒÝKğŚ™ƾ„„ƨÈĠy"], + encodeOffsets: [ + [116573, 23670] + ] + } + }, { + type: "Feature", + id: "4420", + properties: { + name: "中山市", + cp: [113.4229, 22.478], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@‚XœÒlmšV°ôÞÅ@m„¯°k„±‚@@aX¹¯VݏÇIUmV¯kk‚±Û£mw@‚Őmèżmô™¼èVš"], + encodeOffsets: [ + [115887, 23209] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/guang_xi_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "4510", + properties: { + name: "百色市", + cp: [106.6003, 23.9227], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lklWXL@VšI‚l@XnJn@VUUalk@mK@kny@UlU@a°™„ƒUU@VmaU@Ua@UWw@ƒn@KmLm@alkšmnI‚m@an@VIUamWÅImwU@@a@K„X@JVL„UVmUaVkUa@m„@@Ulmkk°ƒUaVUlKXbVwVIkaVmUk@KVk@a„aW¯m@w„¥laœX@KmaškVmnUl@nxVKšInU@yVaVIV@na°KlxX@@_lmXšUV`VIV™V@„n@lšbn@@WUkValK@²yl@„„VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUa™LWa—w@m@K@UVVƒ@mVUUVKnL„mVL„K‚bVK@UUIk›mI@mUIVK@IUK@VkLƒ@WU@mU@WmUk@ƒI@VƒJk@WwX_@amK@UUWkIƒ„ƒK@LVb@mVmakL@J@bU@Ux@xƒbmI@`ƒIwm@UbmKUaUWa¯UkJWV@XƒJUU¯LUmV@ma@kkamKwƒLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@U™kUy@I@aUUmbƒ¤U@kUmL@bmJU@Ua@wkLWWkL@Uƒ@VaU@ƒLUakKWbkUWVkKkLVLUV@JVbƒz@Vƒ„@ƒVmUU@kVmK¯@VƒU_™VWakVmIUKUaU@@bml@XU@@V@LmKUV„mVUKƒƒKƒbkaUXƒKUL@x@V@l@„mxU¦„V@ŽlL@V@Ln@@VV@„nlKUaV@nLUbmJnL@VWLkbmV„@@L„W‚„XLlx„VVIVV@x@V²blUVm„LVUœK@kWWXUlV@Xl`„LX„l@@VšŽƒn@VnbVš@lVUVUÈVbš@@`UXU`l@@XUVm@kš@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVƒUVmU@VaUkUKƒVUwmLkUUVVlƒbka™XmwƒKUšVVU@@V±Uk@VWUUm»XamU™bƒKk™`ƒ„™U@UnWW_kKmbUVUVmnUV@„nJVUlšUbU@UV@n@JmI@VmbnVUXlx¯ŽkKmnVV@L@V™bkV™Umm™@Ub¯LmlUƒL@VWLkmkLmmn£WmnKU_mW™š™bnbmxƒ@U¦UJU„@Xmlk¦@‚mnUUm@@Jn@lV„ÔVJnIVW„I@a„ƒÆK@I@aVK„IlŽÞnnl@nl`nbÆX²l@xV„@llbVn²ŽVVl@nn„V@IlW@Un@@kVa°KšnÈmVaVXUlaVƒÈU„VlwôUlynIVašan@lVXb‚Iš@n¥la@Kš_n‚@bÆx@XnJV„nKVz@`VXVšU`@bƒ¦UV@VšIlx„UnV‚K„XÈbšVllšbVbnVn@"], + encodeOffsets: [ + [109126, 25684] + ] + } + }, { + type: "Feature", + id: "4512", + properties: { + name: "河池市", + cp: [107.8638, 24.5819], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lLVl„bVV@nXVlI@JVX„mšn„W°b„IVV@‚ln„@nalVUb„nW‚@kVkÒlbVKn²°bUŽlV²@˜X@`nb„aUI@ƒ°wlU@aXJVI@aVK@wUamIXm‚@XUV@@bV@Vm„ImnUUwVaVKXU‚nVK@akƒVwV@nL@UV`n@@X‚lnIUJl@X¦˜V@aUIVm@anƒV@UwnL@VlbVL@KVVXUWƒ„wUUVUka@UVJnUlbnalbVVn@°„„LV`Þ@šXVxV@@bVlUVVbXnWlXnmlš@XXWVXJmbUI@V„llUVkn@@VWV@Vnb„@VXUJVnn`lLVk„a„»lVšLnw@WV@lInw@WnU@U@m‚knUVó„K‚wUmUXUƒU@@wVJVIl@XKVVVbVI„J@Un@lŽVLnm„b@U@Ul@nUš°VUVJnnVJV@„@mVU@ƒ@wkUVwkKWk™yUUkU@alkÈ@lJ@x„Ilƒ@UUWVkUw@Kn@@kmaƒVUl™UUL™ÇƒUUKl@UUmL@aXU@mlUUwmKkUUVKVUƒaƒKUnK@U@Vl@XUWU„KlwX@šb@K‚@XkV@UwWJka@aUwmV@U™@@U@wUm@»kLWVkIWŽXnmV@VkbmKƒLUbk™Va@aƒa@@aVU@aVak£@ƒ±UkVU¯V™UUƒJVƒUIƒ@kxmUmWUbL›w@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULUš@KUnƒwVaUKƒxU@UmaƒL—m@kVmVa@UkƒmI@ƒ@KmIkxU@@K™U@mmakI@VƒLkmWkkJ™_U‚@V@L@n˜xXbšKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVƒƒk@±z@‚kLUbVl@Xm@™akm@ƒU@UšUJU_™VWŽkn@`W@kw¯LmbU@UJUb@zmV™JULmwk@mVUn™lnb@L›Wkbƒ¦@x°nXŽƒb@bUl@LVlUnlbUJUxWakLUVVb¯„llkn@Vƒ@@nVbUlVbUnƒVUK@IƒW@L@bV@nxÆJnXVbUJm@@bnmJ™nkl@b‚nnK@L„m‚@Xx@VVbV@nb@UVVƒ„¯š@bkV@Vmz@lnLl@kŽVbUVm@mI@Wk™J@UWKkXkl"], + encodeOffsets: [ + [109126, 25684] + ] + } + }, { + type: "Feature", + id: "4503", + properties: { + name: "桂林市", + cp: [110.5554, 25.318], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nU@J‚X@`XLm¦Vb`lšVXXWš@VblČnVšŽlanLnmVLšK@_Vaƒ¥@kUa„@VmVb„aV@XVVzlVVK@knKVmX£VKšLlbnš@b@llL@xĊôXaV@°È@¤„bn„V@@Wl_„V„U@W„nVamw„wVbn@„K‚VšLX@VmVUxlV@šnVV_nK@m‚I@Wn@@IšUĊ@@wVWX@@I°VVm@wmU@m@IUƒV™kƒlkUmmkÅV@@aV@@Wn_UKla@kšaV„šlVanb@k„@@KlVn@@aV@nIWW™UUaVU@™kKmwU@UImKk@UU@w@W@‚™k@™UkWƒ@mk_W@Ua@a™ƒƒ@—¯ƒmV£@mƒUUam@—kWakƒVama@UUm@nw@alaUmnUlVlIœV‚™šLVyk£Vm@k@UUJkƒK@kmKUw™KkWK@UXImyVwnI@m‚ƒkUlkUKkUVmƒw@kkJWUÈm@_k@@aƒaW@U„UJUwU@@IWKkƒmUUV@nVl@bVb@bU‚UXƒakw@ƒWUkbkKƒbm@™xUlkLm@@wmKUX@‚™UaVW™XVmU@@UUUƒxkmWXkKkUWaUaUb™L@`UL@LV`UXmK@VmakLVbkL‚xUJUIVbUVVb¯KƒV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIƒŽUamUUbm@U„kU@JUbW@X„WxUam@kbVVUnUJmUUV@bƒU@UUV™@ƒVk@ƒbƒmULV¦U@V„U`VLUL@xVbn@UJ@nWJXXVŽVV@bkxVbUx‚Lšš@x„¦@šU‚lXUVVlULV@@šnŽU„ƒb@xl„nJVnlVknUlVUbmŽU@ƒbVš„x"], + encodeOffsets: [ + [112399, 26500] + ] + } + }, { + type: "Feature", + id: "4501", + properties: { + name: "南宁市", + cp: [108.479, 23.1152], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lKnbnU‚@Ua@K„L„ƒlJVX@VnL@bW`Xxl@„I@U„Jl@nV@X‚V@nXV„@lK@UVL@JULVJ@nnJlœVJ@VULaƒLUKƒnmKULVVUŽ@nU„š`lIXlln„K@UlJnb@nšV@LV@lwnJ@L@„nJl„@VUbUn@l˜n„KnbVŽV@„wVLUb„xVm@LV™VKXLVKVLXU@VllUX@`lb@bnb‚L@ŽUV@bV@@b@Lœx‚KVanXVƒUUmVUUUaVUky‚UUa„ImK@mUUVUkKU_@W@UVVVIUW„UVaVU@UUKnƒ@k@al@ll@bnL@b„VUV˜X@Vœ@@b‚Knblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@Va„alńK@LVJnalL@LnK„wlVUw‚mX@VXšƒlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@w™mšk„»‚UVW²a@_mW@U@I„y„LVUUKW@@™„LX@VUV@@yVU@UV@nwUUmJka@IU@ƒmƒVkaW@UwUX@`ƒ@kLWUk@mƒkUUm@k‚UUWkUƒkWxk@@VƒK@nV@UVaƒUUJmIkVƒ@UamLUbkVmamLka™@ƒ‚kmL¯WI@wJmwƒx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmƒk@ƒbkb›w@mKUkkU@J@bW@kVWz@bVUa›VUx@„ULkJWbXVVXƒ`@œmJUVU@@Lk@WbU@UJlnXlm„Vx@Ln@‚b@K„LX„WJUUW@kƒaUVUbmV@nnV@n@lVLƒVmLX‚mXkV±@kxÅL›šUbJWIÅJ@I‚mXalkUamKkškL±aVwKƒUU@mÞnbWJX„m„@lbmKULWUUVkaƒbnn@Vl@VVV@VƒbVbnLWLXJWxXLV@@VV"], + encodeOffsets: [ + [109958, 23806] + ] + } + }, { + type: "Feature", + id: "4502", + properties: { + name: "柳州市", + cp: [109.3799, 24.9774], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƒwU™„aV@nVaUVklmkUUmmIkƒ@w„aVƒm@™U@VKUkVUkWV@™ƒ¥@w™™KVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UƒV@U¥VK„n„al@„Uš@VU@V„V@aVUnVVIVmUUlan@VbXwWƒX@Va@IlVVƒn@VanVVb„lJXIVJlUXL@U@KmUnÑWakU@mkƒJUI@mk™@wUmmUV@JXaWIXWmaUIƒJƒkk@W„nJ@„ƒaUak@›kkJ@kUKU_ƒ@myUóWUkm¥kUmL@KUKm@k_UmVa@ƒk@@UmU@mm_—JWIUVUŽWLUlbVUJÇVUIVwƒKUVk@mU@n@lUL@Km@@l@L™VƒzJmUU¤m@UbV²U`U@@¼Vn@x@Vš@@VnUVx@blbXIVxU@Wl@@L™aW@kxƒLXVWVk@@U@VmLVŽ„L„bUVULVV‚lnLVxkV@nWV@bnKVVk@VL„VšÈVKšVVk„Unb@lm@@LVxUlVX@Vk„ƒJ@wkIÇ@kl@blVVVšzXllLUxlV@x@„UV@nƒ‚U@UImmUIUV™¯mVk@@V@VƒamnUKkm@@VƒIUJUaUUWLk@UJUI@xV@V„VWVnxƒLUômVV„@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn„`nU@bƒb@bVL@VnJ@„l@šV„aU@@_lW@UUU@Unƒlll@XLl@@UX@°bVWVanLlknVV@VVX@VVƒnUŽVLmbXJ@nllXX@`VXƒlmaXVWk@Wkƒw—J@„VL@J‚bnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmš„UL@VUL@V‚a@mXl@nK@UlK„L@Vl@@nkllb@š„Vnn@‚šnV„™V°l„šVInwlKXxlU°Žn@@ƒ‚I@UnVlakUJWkUK@anUWK@_ÞJ@U"], + encodeOffsets: [ + [112399, 26500] + ] + } + }, { + type: "Feature", + id: "4514", + properties: { + name: "崇左市", + cp: [107.3364, 22.4725], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@JVzšl@V@Xn@ll@VlnX@@VWLnŽUVmUULVlUV@blnUlnXVV„K‚xnLlb@lnbU@Vn°KVV„I@WXUlI°VXb‚VVbnLVan@‚x„J@_nJ„a@wVwV@@a@IU@UU@WKXwWIXKmKUa„a@U‚UUUk@@Umm„albVUXVVKnL‚a@knƒWƒXImanÝV@„V‚LUx²blKl™nLVbklWbn@JÆIXJ‚IVaœ™ÆKlw²@lUnWWnK„UUK@k@mmU@mnUVaVU„b@lVXVXIWƒƒK@Lam@@KUwnƒWkkmVIV@Xal@@KV@VUnI@›„_UWWUkam@kkm@ka@mƒk@wkJWIUU@WXkW™XkWWLUUƒ@UakLƒW™XV±VIVWUU@anUWaUK@IU@Vak@@UUKWaƒ@m@ak@@wUkla@mUaUklakwVƒ¯¯@WWUkLkKmaƒ™kLUnV`UxWX@Jkn@bmlƒakkk@ƒb@l¯bm„ƒbJ›b@VXn„bVV@„ƒbƒJUkkKWVU@mœÛVUUW@UVUJWXkVkKmUL@WW@U„Vl@XXKW„XJ@XVlmbUxnnm@UlVnV@XVm¦VJb@šmLkKÇbXblVkn@l@bWnX`V@@IVV@ŽV„V°n@@_naÆVVbUVVbUJnzlVUl‚XkV@Vlx@X„VnxƒbƒKUK@b¯VVUV™L"], + encodeOffsets: [ + [109227, 23440] + ] + } + }, { + type: "Feature", + id: "4513", + properties: { + name: "来宾市", + cp: [109.7095, 23.8403], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nVlw„@VJU„„IVVUšV°lU²V@„l¤Ub@bUV@b‚@„b@bUblšVa„KnLla@UnUWmXlJXUlKV@V_U±Van@V£nV‚I„yšU@K@kn@@LVK@k@mnVl@VU„LUxVJÈUVIU‚aVkXKVVUXJ˜In`@nnV@Vl@@„UbVnl`n@VL@LnKlVn¦VlôXV‚nz„@V`VL@llIœll@Vb„b@ƒmIXƒl@„l„IVJnbWXXJWb@IU‚nVVn@xlš@nVJ„I@W„U°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_šKVa„@VKU¯VLVKn@la„aUkU@maVU„J@k™@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@ƒaW™UUVw@aXKmƒVaUUkšmIƒlUU@wUa™xUmmU™¯™U@WƒLUmVIUym@UVmUa@wmw@çm@aWLU„™JUIUamKmL@™aƒx¯¥ƒkU¥U@±„k„UVmKU_mJUbkKm„ƒLÅǙ_@WWUXUmaVUkK™„UWW@nVxkUƒxmL@KkKmbUI@KƒLkƃbUbW@UbUJUXV`UnU¦mŽVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a›@@U—WVUƒU@amK@akkk@@b@lm„VL@VUVUbƒVVXUJUU@V@XV`lLUVVV@nnLƒJVbVlzUVVbVVnUVVU„"], + encodeOffsets: [ + [111083, 24599] + ] + } + }, { + type: "Feature", + id: "4509", + properties: { + name: "玉林市", + cp: [110.2148, 22.3792], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VJUXVVXlWX@V™xVnX@@`ššULWŽUXÅbWK@mULUUmJ@n¯b@l@VULVx„x‚XU`VXXJVI„V@nm`@nUŽVXn@lWVn@b@Jn@nU@Lm`@Xn@WJƒ¦U@@VnL„lV@@Xl`nIlJnkVL„w@KVK@UšaVL@bVKX™lUUKVK@I„VšL„a@U@WšLUlVL@bU@@blb@VlbUxVbXUVJ@xVL„U„lV@VU„bVLnKl„XJ@L‚b@an@VanL@`VLšKV_UWl@U_„a@WVInlVUUUVm@I@W@wVakIWm@U@ƒXwlaVbnI@ƒm»Va@aXaVLšU„»@aVa@k™KkL@KmU@WƒzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVƒVUVmVI@UkKkLm`UkW@UwWW_„UaU@WakXmK@xUXƒJkƒUUWUk@Wl—mJ@km@@aUKzmyVk„a@kkWVUU¯lmU@@w‚kkmV@Vk@mÅIƒ‚Ukƒaƒ@Ub@m@UUU`mUbWaWmb™X™XKWIXUWm@љ@y@UkIUJUUWLUWƒL@UkVUxW@kaWbKWnXxW¦n„m`XLVlUbVbUx™I@JmLUKUb@VW@@bkL@b@VlU@xkš@L@lƒxXxWXX°V@VVVbUVV@UVVbULVnVJUb²b‚aUb@VVVVInlV@VnXaVUšlI„VUb"], + encodeOffsets: [ + [112478, 22872] + ] + } + }, { + type: "Feature", + id: "4504", + properties: { + name: "梧州市", + cp: [110.9949, 23.5052], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VbXblVlLXWln„wVV@VV@UnšWUXVbš‚@VWXa@kVK„UaVaVkšUlyX@Vaƒ—VmUwUaVU@UÈymI@aU°@š™nWV@VaVaw@IV@VmnLVK@kmmna@™„™VbVI@aV@XbW`U„„LUVVx„@VbUV@bl@VLXblJn¦lL„°°@n™@K@UlLnK„a°LWbnJ„¦UÒV„UllLlVnKnbWnn„V`„w‚@@Xa±™n™l@XKV_„WVkVa@kVyUa@wU£UW@UIVW‚@@a—wWaX_WKkVmUULmak@UJUI@±m»™—k@m»VyUIm™nmmwnkUmVaVIUn_mW@»Vk„@VwkmmUXa@IƒaVm—mƒ@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWULƒ@VakU™@Ub@bƒ¼™VUKWb@bUbn¼@„mJUakbWx@„@VXnlJUb@x@X@JUnVVUVmkUJ@XƒbV`k@VXU`™LUK@_mKUbm@@b@„U`@nlV@b„UnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmŽkLVb@b™l@V@XlK@V@nUJUz„°mŽwmLmlXbWVU@UUUlƒIU@VVmV@@¦‚bXbWxX„WlXVWL@LUmkbU@@LVVVJUblzna@WVnš@@lƒIUVnbV@Vlƒbkbm@ULUKV°ULƒ@"], + encodeOffsets: [ + [112973, 24863] + ] + } + }, { + type: "Feature", + id: "4511", + properties: { + name: "贺州市", + cp: [111.3135, 24.4006], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nL@xn@lKVkšwn@„alLlaXV@„lx„bVWV@aUa@aUk@mVUnVl„XL@JV@VxVIVƒX@„b@bl@@`ÇnXVlI@l„xUnlVVLkllV„@nmJUxnzWJ@VXLlŽšLVxnL@l„LlŽVI@V@lUnl¤Uz™Kš@„Vl@š„L‚l„Lnš‚b@VnVVU@k„a‚Knxn@VkVJ@ńUlakmWIUaVanm@_UK@UVWUa@klXam™U@Vmƒ™VIXW„@lUVknVlKVLXŽVXšW@b@VlšnnVL@KXL‚Kn@lb@UnW°@Va„X„WVb°aVa@I¯aUkUaVKVwƒaXk@a„a‚™@wkm@alanUVw@alK@Umkw@UƒaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWšVƒXwƒU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlƒXU`WLk@mš²šWb@Ž@ƒxU_mƒXmmamLkUkKVkUƒVу¥mIXa¯KƒbmLkK@V@Lmš¯@ƒ¯kKm¥kIWaUKk@@aVUUaƒ@UwVUƒKVƒX_WaU@@bUJUaƒš@šmbnn@lULmKUnU@@J‚xUbUbU@mX™š¯@VŽ@bnJÇz@VUVVbVxUn„˜UbW@kz™VUlUbVbƒŽUL@lWb"], + encodeOffsets: [ + [113220, 24947] + ] + } + }, { + type: "Feature", + id: "4507", + properties: { + name: "钦州市", + cp: [109.0283, 22.0935], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@IlVVlnL‚@œxla„al@n„VLlx@x@bXnV@@`mXX`lbnaVL@blV@b„wnx‚I@xXJ°nK‚l„š@lbnKnblUVanKVb„@lUnJVI„VUb@V‚U@m„L@Ul@Xw„llVVXV@lVnlVn„l@XVlK„@@_VWVxX@lb„U„nV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK™™@_W@Umšw@UXWWkUUVWUIVaƒUkJ™UVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWw„w@k@Kl™@wkV@U@alK@aX@@UmIUWUIƒ@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VƒbUWVUk@@wmKkUWLUWX@JmIƒlUkkKWKkLWU@UKWa@bU@@a@_UKWƒUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUXƒ@Um@wklVnUn›lkaUV@„lV²WVklWXXbWlkVkIm`UUƒLƒUU@UWƒx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULm‚šnVVIV`X@"], + encodeOffsets: [ + [110881, 22742] + ] + } + }, { + type: "Feature", + id: "4508", + properties: { + name: "贵港市", + cp: [109.9402, 23.3459], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@n@VzUJ‚nVŽ„K@XšVš°nVVnšwVb@xVV„knJl™VVUbn„WL@bUxVVXš„bl@lVXkWƒXwWaa@¥‚@nUUUV@„JVkVVV@XUWanknK‚xnƒ¯VyVI@m@UkL@W@Ušk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaƒV@akU@mV_@ƒa@KWIkƒmLUKƒaUVU@ƒkƒVUK@wUIWVUaVwka@Uka@aV@@aUKVk™K@X@Vƒb™KƒU@JULVLkVWšUL@aUK™b@VUL@LƒxUKmlkImJk_@WU@ƒkmK@UV@„¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mƒUUJWIUWV_WƒwU@mUknVVmxU@@VUV@zU@UVW@ƒK@šX@VLUVƒKƒz@J@VnX@`±bUXVƒ¼™lšn@xmxÝL@‚Ubn°@XWVUxUVVnkbWVXV@Xš`ÆȄKnƒlLVanIV`nLVUlƒ²ƒV@V¦„l°¦„w‚b@šnKnLVbVJšIVƒXK@b‚n@ènx@xVbUnV‚"], + encodeOffsets: [ + [112568, 24255] + ] + } + }, { + type: "Feature", + id: "4506", + properties: { + name: "防城港市", + cp: [108.0505, 21.9287], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XV@X°°U„lxkbVlVb@nkbVl@xl@@b@n„‚XbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²šW„XlKVb„@VVXKlXšWlXXWV@VXJlI@x„l@nlbn@lln@lbXalIVK@ƒVwœUVb‚U@aXylUX@@aW@U_UJmU™nVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@W„wVXV@„V„KVVn_lJlUXkWaXWlkXU‚±kU@ƒVUlbœkVmUmlk™¯Ý™™W@mb@¦VxULm™kJUU@ma¯wƒmkX@VóJ±bUVUXÝWk™lWXXlƒxUaƒbƒIğ™Ç@U@mVUKkkm@UJm@XnWV@x"], + encodeOffsets: [ + [110070, 22174] + ] + } + }, { + type: "Feature", + id: "4505", + properties: { + name: "北海市", + cp: [109.314, 21.6211], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VaVLnK@IšJVwUaVaUkWKn_mƒX¥WwXm‚LXalbU£UyV„Å@ݙwm@™°l›LÅUƒmk™mwÛaƑLÝUUm@ȣƃV_„Ó@£UƒƒUVƒ„™¼U°W̄™ÞVbXbôx@b@bmV@ǃ™UÝ@@ĢU`m@ŽnxnIVV‚VX„VL@`@bV@@aXbVL‚@XVlKXLlLVl„knJ@I‚WVXXKlVnL@xl@UVVX„a@UV@VlX@VUV@nK@bl@nVVIVmXIV`V_lWnn„@VJVXnJ"], + encodeOffsets: [ + [112242, 22444] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/gui_zhou_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "5203", + properties: { + name: "遵义市", + cp: [106.908, 28.1744], + childNum: 14 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@@UnUlJn„w‚JU°VL@bnVšU„wlJ@XƒŽXVlU@klVUJknl„UllL@bUJ@xULUlƒ„UblVkblbnw‚UXmla@„wV@VK@L@UXaVKVLXWƒUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@L‚V@ln„@LmV@Vx@blnVK„nlJXIlw„J@҄b@nlK@Un@UL@VVVVUUUVK„l„@VUVL„J@UVUUw„@Wm@™„UV„ÈVlbUb@JšLlŽX@@x„„ƒLmŽk@@nlx@bUJUzVJ„@@LVxUV@bWxnLnVVK@_‚K²xVbV@n¥@aVI@b„@l@Va„Knb@n‚`n„mmý„W@ƒU_šwV@VlVV@Vn@n„˜@nI@Jn@°¦VaUU@™„mVVWVaUńU@aVKnƒVbVUmmU@a@kUw™m@aUUmUUJ¯lakU‚aXaWUUaVƒkk„amkmUnVlULƒVlJ@XU@UJWUUw„k@aU@WbkWƒL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑm™nIVJ@kl@XalJVn@KVLœ¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVUƒ»UkVw@Wmk—JƒÅmUUVmwXalLXWWUnam@XkƒJ@UVU@U@W„@@U@I@Wl@Ènlw@KXLWb„lVUkalKUU„VVaV@@wnIlaUmkUƒKWU@KkUkLWaƒKUUWUn@VƒK@LnnWJUIƒVkUWVnV@V™@@XƒK@VUIUJ@IWJkX@VVJ™IƒVkK@I@UVaUWk@m„@wnUWKk@mxk@@„lV@b„xmb@x@VUmLkUƒJ@nVV@b@VkLVbU`¯I›l@™U_UW@UU@™™ƒK¯wm@™xƒL¯¥kIƒ™ƒ‚@bkbƒ@Ua@ƒm@kkW@XVbmV@ŽkV@bWbUbV@„¦ƒxXlmVk@ƒ¦™bkaWL@KUImK@wUK@VUI™b@bmK@LÅy@akXW@kbWlXblL@ŽULUbƒ`@U™kUymX¯@mšUJUUJƒL@Lm@@WX@lU„VlšXll„@l@Èk°V°Ž„X@VU@UVll@XUJVXUVm@@VXLWlnV@Xƒšk@mVULnxV@@bm‚kL@VWLUbU@UVm@ƒb@ķ¥UnmJ@UUVƒkkJUšlÔU`UIW@ƒ°kLUlUI@WVI™U@mWKkXk@ƒ‚WU@bXšW„@J@xX@l@LVl@xšLVxXX@x‚KnxVknb‚KVV@U„L„WlXU`@nUlšX@llVXšVU„KlkUKlI@anKVLXKVaUIVWV_VK@VnLlU„»VKVL„m"], + ["@@@KlKkUUVVX"] + ], + encodeOffsets: [ + [ + [108799, 29239] + ], + [ + [110532, 27822] + ] + ] + } + }, { + type: "Feature", + id: "5226", + properties: { + name: "黔东南苗族侗族自治州", + cp: [108.4241, 26.4166], + childNum: 17 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@VV@XkV@bUbWJU¼Vb@Vnb@bš„@J@bƒL@LV@UVƒlUI@a™KULVb@bkJmx„šlLVxknVJk„‚xnKmnnL@bn`WIXlWLU@UxVbUVmKV„XI@JVIVJ@U„L@Wš@@UmUXUlV„UVJXImm@K„L@UVmVXV‚„LXblKlV@LXV„LlVVnkbmJ@xnXl@šbXa‚@Vana„ÒšL„m‚VnIl‚Þ¦°k@b„@@lV„nJlUnš‚VX_„@lVlK„šV„UUxVLVWVIXJšUlnnWlI@KUaUUVKn@VaVXV@na@ƒmw¯@mUkJUamI@lk@@am@@I„ƒUmVImUUw˜™@anUVaUU@LU@WaWUXWW„wV@VwnU@L@ynbl@@X@a„J@nW@@Vn@„lVLlxnI„lš@@UWKUƒnIlJXIVllIVVš¼XK@aVI„V‚@@bn@VKXLVKVVVInw„J@UWI@mX@WKnI@KmU„UVJUL@V„KW@@k„@aU@@W@InJWUXwWI@Wƒ@¯wkaVaUIl@nŽValIXWWI@UUm@anwWkXWWIUbk@UJmIUamKVUUUVVama¯VkIVVUlKnXVwX@@WVaUUVa@IlƒaVmƒkna›wk™UU@ƒU@mUVƒšUVwœl°LVbnJVU™¯la@mX@@UWKXU@aV_V@@JlkUƒ¯@V™nK@km¯k„U@ƒWUW@mmƒU@™kmlU@wkL@WƒUkL@VmLƒJ@b@V@bknUUVK@UVKUK@Uk@Wa@LUVVnUbmVk@@UU@@aƒV¯K@U@UU@WmUL@aU@WV—w@ƒ˜I„xXll@UX‚K@KXXVJna@wWaƒ£naUKV„m@UU@mUmalm@@XkVm@U@VƒLmWU@kkWxU@@bVV@VkXVlƒVƒ@UUk@@ƒmI@KUw„m@UmVƒUUwU@lwkV@IUa@mUaVIVKVa@w@U@™UJkb@n@bmJ@XmlVUxWXkJmUkUUVW™xUlU@ƒaULUšmbU@@‚WXkmƒL@xUV@nUxÇm@„XLWbnlƒnV‚nnUV˜U‚nVVz„@lbUVVlULVb@V@nUJkwm@Ux@bWbUK@UULka›JbƒU™U@U@lUK@XUJmn™J@bU@UwWa™x@zkJWnUJUUVšVV@bXn@xVb@J™L™m@X™w@`@bkb@VmXUV¯L@mW@@n@V@‚ƒL@K—IW@@aƒaUx¯@U„m@XbW@@L„V@bnVWVkKUzlV@bÆa@lnI@VV@@LnVVKUaV_VJVbnU@bn@‚‚nX@yVIVxXKVLlUVaXU°J", "@@@KlKkUUVVX"], + ["@@UUVUkUmV@ln@VXVK@K"] + ], + encodeOffsets: [ + [ + [110318, 27214], + [110532, 27822] + ], + [ + [112219, 27394] + ] + ] + } + }, { + type: "Feature", + id: "5224", + properties: { + name: "毕节地区", + cp: [105.1611, 27.0648], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@UkVƒ@k‚W@Xn@@K„KVIVVIn™°@nWVzšl@V„_VaVK@kKWaXklaX@lW@bÆz@KnL@ašaVJ@UVL@xnLVJ@LXKlbša„¥l@nUWk„wƒ¥U@VaXa@amLkUƒKmƒ¯kƒmkIUaƒKUIWƒkKm@anw@mlwXIƒmƒUk¯@a@amUƒ`kkKWVkxmUUak_mJmw@w„mXUW¯X›_@WnI@aVwkWWýŃU@WLkU™aUbVV@lUVVnm@kUmV¯™kK™LƒwmVUUaWV™aaWw¯wƒÈ@VULUVUUƒK@nWJkI™l@Umxnbm@kbUJƒa¯bUbVxmLUV™aU@VUUWxkVVV@bUV@XWbnlUbƒbUJlbUV¯b@z„`WbXnmbƒaƒwUwVWUƒbUxmbU@Uam™@Vƒk™VaƒwVaUƒWI@mUKóz@lUlÅ@WIƒb@xXxml@XklULWKUmwUa¯KUXWJkaULmKkLWbkKUVƒImƒƒWa@kUaULƒW¯LƒK¯@kbƒL@b™x@J@bmnnlUšlzU`U@@Uƒb@„m‚n¦°bU„Vx@bkVm¼mx@mk™mVV@bkxVn„aVV@bU@mL@b²`lIVV@lXLlš„bVxn@@bl@XllIVšnbVšn°°wlbXw@mVa°lVnU@mš™VLVbn@@b„@@WVnUV@Xlxn`VznJVb@L@bV`V@šUnwšU„@WUXKV@UUlmUUlaXalLšm„bšIVbnJVIlVVaUUnWVXn‚VL‚k@ƒnWnblnlb²x„xVKVXlVXLVW„LlUVJna@wVL„¼@JVX@`@nnx@nWJU@Vx@XXKšŽUblxUš°„LVKVVlL@KnbVUnJ„IlUšƒnKl£VW„x„IlJ@nšVÞUVVnb‚VX@V_°lnK", "@@@UmWUwkU@Um@@VkL@V@„„‚V„VkV@nbVa@ƒ"], + encodeOffsets: [ + [108552, 28412], + [107213, 27445] + ] + } + }, { + type: "Feature", + id: "5227", + properties: { + name: "黔南布依族苗族自治州", + cp: [107.2485, 25.8398], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@‚V@IöalK@UV@@KUaVIVVœLlaVbVWnX@‚@LnUlxl@naVLXVVaVU„J@lUUanWWI„@VlV@Xbƒb@V„n@VmVVbk@kU@V›V@X„J@zn`ULW@kK@_WVUK@LUb@Jlxn@nnWlU@@b„x@XVVU@UbVb‚@n`VI@VVLUlUIUV@KmL@VV@XIV@@lVLVmXV„@WLXLW@U`šnkb@Vl@UL@VVV„L„llX@`lIXb„J˜IXW„L‚aVL@ŽXXW‚Ģ™b@bmK@L@°@Vnxmxšn„K@xVn@VkL@V™Lƒakbl`VnnxVnUlššV@@VVXV`@šœk°JV_UalK@U@aUU@m„IlVnK‚V@U@wnaƒw@akU@ƒl@nwl@XLmV@xnƒl@VXUb@V@JlL„UšJUI@UlWUƒnLVUUaVwV@XKWkXJm_@amKnmmLwlƒUIlmUwkKƒ™nwlI@aUaVKšL@bVJ„kVUU@@K„K@a@I™ƒ@ama@UUaV»XIVa@alU@WUU¯IWVUbkVUKWLUwUJ@zmWm@@amVUaUIU`VbULmU@KU@@UmJ@kÅb@akUVylLXUmU@aƒU@KX@Wan@Vƒ°@Vw„b@bX@˜J@L„K@@U@mX@@n°KVUnW@Ula@a@_šx@WšnšK@IUa@wWm@aUUU™VVVIXmlI@yšwXbVxV@@ašInmVI@WVL@k@VšV„V‚aœIlbVK@VVLXa@aVwn@lxVI@m@UUaVKUkVUkaƒ@UymUV—VUmmU„mmkXaWK@ƒÈnVw@mVU@w„KlnXW@V@naV™VKUk@KVIUWƒ@mk@KXU@Um@@lVƒk@UVJna@UWaƒL@a@ƒXa@kmmVUUk@mkkƒamJ—ImJUUmIm±aUUkambkamVUU@VlbUbVVƒxX„WVUU@VUakU@UmUV‚U@mnUVVnUbVJ@b—UW¥kLVamVkUaWJU_UVWKk@@nl„UVVJUXm@Vm@UnVlmbnmJUbULU@@UUKWVIWxnJVb@xUL@bUJWIkxƒbkb@xVJƒbmU@kW±LkKUkVa@a¯am¥ULkalÑlKXUWƒXƒaVakImVƒ@ka@UUƒJ¯aƒX™mmb—KWU@wUUƒaUa™KmU@UXlWb—¼WLUKUb°„UlVbkbVL@VƒšƒJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUz„ŽVL@lnL@b™VVVULmKUk™Jkbm@ƒxVb@V—kƒKVnnV@b@ŽWXU‚„nV„l‚VVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_‚`UbkXVVlÆkbƒ@VLXVV@‚V@k„KXX@`V@@n"], + encodeOffsets: [ + [108912, 26905] + ] + } + }, { + type: "Feature", + id: "5222", + properties: { + name: "铜仁地区", + cp: [108.6218, 28.0096], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°a@aÈbVUlU@aVKnVV„VUlyX¹lWVa@U™VƒnUVU@m™@mUl@„mÞw„@‚xnIVbna@KVI‚J@kwV¥ƒUXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUb™VbšJVbVKXkVKVanU@aWnWUWa@U™nk@mVIVK@wXxlLXbVJVlKœbl@VI@mšaXalVV„VbX@@ašalnkx@b@V‚b@Vnx@bVVUXn¤WXn@Vl@Vlzn@š`@I@KUU@ƒV£namVkXa@aVK‚nnU@anVlKƒa@UUU@amk@»kƒU¯@aš„VWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWaš@nmlIXmWUnwUwWm@wULmaUJkIUaƒaWa—klwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯ƒlKUUVU@mU@UkmaUbmV@b—š‚xVnVUJVnƒ„@Jn@@bl@@knJVblInV°@nx@„mbU@UWUbm@ULVVVb@LkJmXkm™VWIUJUXUKVwƒV™UƒŽkLkUƒ@W`Um™kVmIUƒ@kƒ@@a¯lÝ¥kmJUƒn™KƒÑmbUb@Wb™ak@mWU@UbƒUVVkLlbUVƒkXaWK@LkxÇmk@@X@J@Vƒ@@X@VUV@V„IWln@mbXVWXkKWbnxVUnV„ƘInl@XUxVl„¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU‚@nnVWXXJ@V›¦UK@LUmkIWbk@@lUImJnšVÒVUnVVbVIVĖUxV‚@bnUVL@WV@@X@V„KlXXaV@@bƒlVxXVVIV@@WkI„UVKUkVmlnnŽƒbllU„VbXVWbblVkb°ŽVInVVV@bšnVx@l@bnVVnUŽUam„UL@bƒVVÆUbUXU‚ƒn@šVVUb"], + encodeOffsets: [ + [110667, 29785] + ] + } + }, { + type: "Feature", + id: "5223", + properties: { + name: "黔西南布依族苗族自治州", + cp: [105.5347, 25.3949], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VL@Vl@@IXW@kVUVbnW@XlKVVnU„VlL@b„aVbƒb@xX‚°ÔUxV@kbm@VxkxWJœ„V¦ƒŽ@ÈnšVKšxWXJmV@n„Ò@xVbn@@blLk`VX@bššla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnk‚a„KnwmmXkƍVm„Uš¥l@nb°n@„aVwVmVIVnI@a„¯@mšU°ƒl@@VnI@JV@UV@b@IUbVJmXöºƒzllUbVa@aXUl@„U@llLnKVaUa@UmK@UšwV„bnKV@VwVK@UXƒV@Vbn@‚w@U„WnX‚@„a@m„I„™@UUKlaUaVk¯ƒVaVLXK˜»XaWk¯mƒkğwmW@mIƒVkwƒJUIšÇVwU™UkVKkƒm@UkmU@WÅwm£Vƒ„m¤¯IkJWa™_™lUbmJzÝJk„ƒUÇVU„ƒ‚@bU„Ýn™m¯LUb@`mL@VkL@VƒUmmk@UU±Umka@kUƒ@ķymUkk@mmkÝmUaUakImV@V@VÅLƒ¦ƒJUXmJXšWb@n°Æœx‚¼nV@LlbUŽUbmL¯@ÞbV¤nbVx@bUVlblIœ™@KVVUnVJUn@VlLUlmLUUUxmK@I@@VW@@bU@UJmUkLVVUl@b@V"], + encodeOffsets: [ + [107157, 25965] + ] + } + }, { + type: "Feature", + id: "5202", + properties: { + name: "六盘水市", + cp: [104.7546, 26.0925], + childNum: 5 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ôyVL@nXJV„Ub„x‚bUŽlšU„@ŽšnŽVbV@naVw„a‚VUXVx„x„bnaWmXaƒ_@y°aVUkaVI„aVamkXa@WVU@aUUlUXwVV@UVšbVUnKUwVa°a„bVIlan@manw@VšklJXI@m„LVVVUVK@U„ǃk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKšwVL@akKm@Uwƒ@@XUVk@VUI@wWK@aUV™I@UkK@ƒmL™Wƒ@kImJƒUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb™™@aUWl_kK@am@Ua@wƒÑ@mnUWIX™wULm™@DŽU¥›ƒXIlwUwn@laU@Vw¯ÓW@w„aUaƒb@akKƒUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VšUnWKUL™ƒƒL@mU@UnVJ@b@„UV@Xƒ`m_@l@@bmbXJmnnš@°˜wnn@ŽVLX@V‚@nVl@nk@@b‚l@nn°WlXzW`XXVKnUlxVbUb@‚V„Xb@Ž‚VxÈbVlnbmn@ŽkVUL@„ƒŽmLUVVL"], + ["@@@ƒ@UmWUwkU@Um@@VkL@V@„„‚@„V@VkV@nbVa"] + ], + encodeOffsets: [ + [ + [107089, 27181] + ], + [ + [107213, 27479] + ] + ] + } + }, { + type: "Feature", + id: "5204", + properties: { + name: "安顺市", + cp: [105.9082, 25.9882], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lL@bUK™xÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@L„l°xXx‚bšbXUVb‚VnU„xšKlL°šnUlVn@UmVU@kUUVašblVXKV@ƄXþlXUxnU@mVK@_@ml@UU„@šblU@KnLVyUw„@@UmkšWVw@UVK@VXzVK@n„VVUUW@kVJnlaš@nKW™kaWL@U—™õb@JU@mU@@_WWƒL@lUU@WUUK„@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUW‚UkUƒƒmVXW@@amUUm„L˜l@UUa„wn@lašIVlnLVKUUšU@amK@kUKƒVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkƒb@mWƒX@Vxm@UaU@W„@VULUxU@mLƒaUŽ™x@VnL@VVbUbmLkK@kƒVk@WV@bUbVakk„yõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯„™V@nƒ°@bmJUUJUnUxƒbm@¯Žmak@™¦ƒVUnŎWlnnmxƒLbmlkL@l@nWVnlÆU„VnIlJ„@šXnK@„lL@VšJVU@bXL@xVJUl@VU@W„@Vxn@"], + encodeOffsets: [ + [108237, 26792] + ] + } + }, { + type: "Feature", + id: "5201", + properties: { + name: "贵阳市", + cp: [106.6992, 26.7682], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nŽlLX„VJ„LVblJ„n°ln„„LlVnKlU@nUUa@WlX@l„n@‚Vb„@la@a„„šlJ°¦„Kšwn@°x„LVkUmmwUmk_la„bšK@UlK@UUm@wƒL™mnwmw@U@¯@KnL@aša‚ġXWW@UKbƒKWX—JƒIWakJ@_kWƒkƒKUU@UVKk@@Ula™mV_X@WKXKƒ@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Wƒw@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yƒI@WœU@UlVl@UanU@Uƒm@U„aWaU@Ukƒ@XJmXVbkV@ŽƒIUVUbWUUKmbk@kwmV@K@mWUXUakb›KUUUJVb@LU@@VkL˜š@VXKlbXšmL™@kbm‚UI@lVXUVƒU@mULWy@UUL@VUx™Xnl@Vƒ@VxUzmK@LkV™aƒ@VVk@@n@`UL@nmV@bmJ@Xœ`WX°WVƒn@xnxnIl`VbnVlwXUlLl‚„_nV@b@bl°„V„nWJkx@nmx@b"], + encodeOffsets: [ + [108945, 27760] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/hai_nan_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "469003", + properties: { + name: "儋州市", + cp: [109.3291, 19.5653], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@஼jpnr’``ŽpRVHʘ̤žZt^JÖA˜[†CâlTébQhRPOhMBcRSQiROE[FYdGNOEIH]MgEAMLLIAG_WMCSL@ED]PCLYC[ZIHgjSxJTMbHNEFCMEE_HSDFHSLECRNSFDRICHNADGPI\\RZGIJTIAHLDQOHG`GTNCOIC@eIGDWHIS[kiE[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXƒCog_~‹I_fGDG|QDUWKBC\\ore|}[KLsISBHVXHCN`lNdQLOnFJSXcUEJMCKSHOUMDIm_‹DI`kNDIGEYFM\\YPEEIPMSGLIKOVAU_EBGQ@CIk`WGGDUM_XcIOLCJphHT_NCISG_R@V]\\OjSGAQSAKF]@q^mGFKSW^cQUC[]T}SGD@^_ˆaRUTO@OHATŸ”"], + encodeOffsets: [ + [111506, 20018] + ] + } + }, { + type: "Feature", + id: "469005", + properties: { + name: "文昌市", + cp: [110.8905, 19.7823], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@€hIJ¤Ī¯LQDaFßL[VQìw€G‚F~Z^Ab[€¹ZYöpFº lN®D´INQQk]U‘[GSU©S_­c‹}aoSiA£cŁ¡©EiQeU­qWoESKSSOmwŸćõWkàmJMAAMMCWHGoM]gA[FGZLZCTURFNBncVOXCdGB@TSbk\\gDOKMNKWQHIvXDJ\\VDTXPERHJMFNj@OwX@LOTGzL^GHN^@RPHPE^KTDhhtBjZL[Pg@MNGLEdHV[HbRb@JHEV_NKLBRTPZhERHJcH^HDRlZJOPGdDJPOpXTETaV[GOZXTARQTRLBLWDa^QAF`ENUPBP…\\Eji`yºEvåà"], + encodeOffsets: [ + [113115, 20665] + ] + } + }, { + type: "Feature", + id: "469033", + properties: { + name: "乐东黎族自治县", + cp: [109.0283, 18.6301], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ªVLP`@PEdNRAHOPEAKHEVL`GZBJfvdTAXNNTZJFPrHHNpKTD\\ILHbEVd^J‚OHLh@NNBnHP`\\xH@NBRLJTlŽNv_^CTLd@bNDVFbxdFV€UPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_J‹MEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YW‘gEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgS­ā]ZaŽSPÝZ]XMXSŒ[^oVËNgNKlE RôEø"], + encodeOffsets: [ + [111263, 19164] + ] + } + }, { + type: "Feature", + id: "4602", + properties: { + name: "三亚市", + cp: [109.3716, 18.3698], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@®ĂhTBXTRPBRPjLVAR`dKf`TC‚NXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFR’hZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOF‹WWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbO„VNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųE—Tt‰lɂwr}jŸR±E{L}j]HąKÃT[P"], + encodeOffsets: [ + [111547, 18737] + ] + } + }, { + type: "Feature", + id: "469036", + properties: { + name: "琼中黎族苗族自治县", + cp: [109.8413, 19.0736], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@bRFnHNbHŒgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhžDpW„nCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQK‘NSbORHXCZeTFJg„B`YBMNMFi~IVDV[tGJWXGDQRGF]ˆJrALgESLSAYDGIaFeXQLS\\MKSLSQYJY}eKO[EHiGSaK[Yw[bmdURgEK^_kcSGEOHKIAS]aFSU@Y]IWFUTYlkP_CUOUEkmYbSQK@EMWUuAU\\M@EpK^_ZMDQ^OXwC_ZODBrERURGVVZ\\DTXcFWNIAWJWAYUUFYEWLQQaCIZeDM`cLKRGpanJZQd"], + encodeOffsets: [ + [112153, 19488] + ] + } + }, { + type: "Feature", + id: "469007", + properties: { + name: "东方市", + cp: [108.8498, 19.0414], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ºŸx‹JYZQ”IŠYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZ‰Fu_@WMKAUˆ}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVŽLJ"], + encodeOffsets: [ + [111208, 19833] + ] + } + }, { + type: "Feature", + id: "4601", + properties: { + name: "海口市", + cp: [110.3893, 19.8516], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ńZƂtĢ¬æßFuz¹j_Fi†[AOVOFME_RBb]XCAKQKRSBQWSPY\\HbUFSWSPoIOcCOHIPkYCQ]GdGGIFQYgSOAQLK`MFUIGa@aQ\\GGUFcHKNMh@\\OYKAigsCgLSF]GOQO]@GM]HyKSHKPW@Pxi@EMINYREXWRQ@MQcFGWIAwXGRH\\yDI`KJIdOCGRNPNtd\\UTMbQYi@]JeYOWaL[EcICMUJqWGDNZEXGJWFEXNbZRELFV]XQbAZFrYVUBCLNFCHmJaMIDDHXHEhQNXZ_TARFHVB@DTQIRR@YHAJVnAbKFUEMLd\\c^ÍÞ"], + encodeOffsets: [ + [112711, 20572] + ] + } + }, { + type: "Feature", + id: "469006", + properties: { + name: "万宁市", + cp: [110.3137, 18.8388], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@^J@ZTVbET^JBGLFPTHld]`FLQhcVanx\\\\ZbLHTGj\\FLP~fIZRZPVTQFSVAFJE^NDLEE[~LjsxVTG\\NZZNGlLRRGLJTV@hPZANN^@T\\NEPPbDZXO`d^HSvcJDIV\\XZAJUFCLNP@PQ¤@[ïKLÑIÏ]ÇE±I{uƒ­YśUćFcYUmsVeBSVgB[RO@aYYPO^]@UVaNeDShMLG\\EfFVE\\F`"], + encodeOffsets: [ + [112657, 19182] + ] + } + }, { + type: "Feature", + id: "469027", + properties: { + name: "澄迈县", + cp: [109.9937, 19.7314], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@T\\GJCXJH@fJDDPNCNJENN^NLHBNSx@DDYbBLLDRbjZTj@`XXTlG^Xr@PJLW\\WLTlWR@HDJTD@X_PO@STMDNTMVV@NLDM`M\\XM\\JNBH[PYZ‡úYzŸ`Ċ\\ÎÝd]c[NKVFLEBaUmBIZGQ@JQSR@CUAEGBQ`SWYRMFgWGCGJCbNnIDGMEDKVAZUEqBYRa^WEUFKYQMaFWXEHIFWMYHCrXVIIiaK@aMCUYNSIISTwXALKH@XWXIEIJQCG[IEQDE_XSBaa[AIPW@]RS[FWS[CD]PEBYNGFSaSyJG]@ugEUDQlGHiBKHUIoNSKqHFaPMICK]UUHIPDJMuCA[SCPIDIOILGAEmU[POPBVSJDREBGS[QXWSGcT}]IO_X@TGHoHOLCX\\ELT@LYTD‚aFENF\\lj"], + encodeOffsets: [ + [112385, 19987] + ] + } + }, { + type: "Feature", + id: "469030", + properties: { + name: "白沙黎族自治县", + cp: [109.3703, 19.211], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@D\\RV]dTXELnHr]^@LETBBRTHPi^[@U`QTHDJ`MGSogDIPKdJ`WVNHCXHl_DJR@AH`FBVPUJLHKNTJOFFZON[ZEHFCJlMJ_ŒCn`CJVNGPLTNDFIdVTWEIPmRKMc_kDMWGGUTAtJLK~\\f{pqD[LAVXRCH{HC`eŒJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@‹haGGMEmaQ[@MESHaIQJQ……MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@Tƒfg‚L^NH\\@heTCZaESNObHPƒHeZF\\X^ElM^F^"], + encodeOffsets: [ + [111665, 19890] + ] + } + }, { + type: "Feature", + id: "469002", + properties: { + name: "琼海市", + cp: [110.4208, 19.224], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@TP\\pATHTGlZDJGAQjE\\Rb@jVBDCN`JZ[NCNHNXbULPrP\\KNbMTLjJJRFP`“pNLZz^FLRHjVPZ@hxVKbHBHMNNJFRlLzGPnNHhIrHHADcPWdUAmEMVQDSKYHY\\EhBN^HpXGNDBNNBnIß‹Å_g{³So]ã@ORO@KMEDIVYB[WJUICudGTc]P_YWaCOOMFS[]@MMYBgOU@ISHKQQkKMHYY[MSHwUit}KF\\KFMCF]EIUBETSROUKTLT[NKTWREfJbCHBZKTFTKh"], + encodeOffsets: [ + [112763, 19595] + ] + } + }, { + type: "Feature", + id: "469031", + properties: { + name: "昌江黎族自治县", + cp: [109.0407, 19.2137], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@`ZĤd–`òüˆ˜ “BSPGP@VSbQ`‡@]HC~T^SE]N]FkW]E[fY„GGOPaTMbFDYfS@g[MGK]h„e@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI‡~BVNL@X`‚EvYŠwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WK‰Z“JYRIZwŒ¹ "], + encodeOffsets: [ + [111208, 19833] + ] + } + }, { + type: "Feature", + id: "469028", + properties: { + name: "临高县", + cp: [109.6957, 19.8063], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@jD`hNd\\^dZädĒH´Op@ˆùZY\\OAGIMN[[W_NCNMKU@NUMSNCTSP@`O@WSCCI@GXQSkXKX[IK@OWqH]SkWW@_SiiYQaKCAKZaCCw@MTGAMKM]FMMIMDSM_HGHRPKCBGSJJIYH[QOJCHMBDGQJECMTDQKFGTCEGTF`NFEDMFaGSNwIiTGhYJD\\KZODC^@FTKND`XBHKJNKFBNhG^FJMPcHEZF\\QPRjQTAdgNOPgQaRSê"], + encodeOffsets: [ + [112122, 20431] + ] + } + }, { + type: "Feature", + id: "469034", + properties: { + name: "陵水黎族自治县", + cp: [109.9924, 18.5415], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@R]NC`YL]FoN@V[vBXVFNL@TRZalnVFVP`DlOZkVSXEE_F[EUFeH[NKTgfCbMVU^@P]ZObZP@\\QhATUfAtUasñiāEoI]eYǯ@aKmaeƒWuCºKÜKpnbHbYfUDSNCPJTRAHJTDJSfDNLHXC``VBNGTYCQDIXMDSP@xLNEFRNXBIpVNLXah@RgF@`qOML@LJNSPLbaHAh@Jdj"], + encodeOffsets: [ + [112409, 19261] + ] + } + }, { + type: "Feature", + id: "469026", + properties: { + name: "屯昌县", + cp: [110.0377, 19.362], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@\\OnVBFKHPJCJOJTDB\\vDINOCGJVVL^JDONEbrGTLpMVJLGjAHGRkVChF@vH^zIbTETMHAZOFC^\\DXT\\EffAP\\PdAV@UIYfS|S@YPICMeM@sC[_A]VQEwyHSMuNcAUlQJMVGMS@mVBZPFO\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqB‡IE^QHCRWHIXsHU\\UC}JEjMNAN_ZƒAIhSEYfWDQGaPMTL’ERZTJb``NHV@"], + encodeOffsets: [ + [112513, 19852] + ] + } + }, { + type: "Feature", + id: "469025", + properties: { + name: "定安县", + cp: [110.3384, 19.4698], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@JjDNdJ\\FbKPXfZ^Ij@RZNaVSc[MsMOHQPDJcLIJ_zCG[HQxWJBHXdENRR@XQFWZQQGOFSWUCI[WCJuRGLXNMPLhCl[Ta@SqGgJMGOmyHkKEQMINMAGaGULgwY@UOGiKQ]EYyMK”oO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VU€cB[OBOeeQT@^OXBJb\\AbWTF`RCJFH\\RDJIJFXW@WLGBKxWTSJJMTVZND@bbL"], + encodeOffsets: [ + [112903, 20139] + ] + } + }, { + type: "Feature", + id: "469035", + properties: { + name: "保亭黎族苗族自治县", + cp: [109.6284, 18.6108], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@FJp@fxpQ\\ApN\\GNPNBM`HLMrXLXj\\PEHnI@WUCEM\\GTc\\GZYHTPBHRCPTd€H\\K\\@HXi–BJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLƒUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXEŒSPaDI\\£FkXWIAX]xB\\GN"], + encodeOffsets: [ + [112031, 19071] + ] + } + }, { + type: "Feature", + id: "469001", + properties: { + name: "五指山市", + cp: [109.5282, 18.8299], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@TCNOLBTLBPx\\AJdl†NR†RIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIj•GW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIŒP`@VZbaf[FFJG`O\\WRFA@PVPFPPH"], + encodeOffsets: [ + [111973, 19401] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/hei_long_jiang_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "2311", + properties: { + name: "黑河市", + cp: [127.1448, 49.2957], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VÈÞ@Žkx˜nXŽ°VÈa°V@kôw„b‚š„JVškXlVUx„„@ŽlL@xkVV°ƒ„VbxlVUnVxk@ƒ„ƒKkŽVb„Il„@°kVl„@„™lÆnkll@@V„VXƒŽš@V„²bUlƒVlV„U„VÇn@nkJšŽlkVbœ@›x²V@n°VUnlKU„n`@n°bWLnVUblVUVVbknV`°kkŽl@@V°@nz„J@XšxlWXb°n@bƒĠlbXb™bVbƒJ@Všb„a@„„@lbUbšVmnœ@lšVmnIW‚œ@WbÞ@„n@x°@š„ĢaƐéϚnœ„‚lČ¯ĠŻÈwm@ôçU™mm£Xy°UV™›@wÈ£Ǫ¯kõÝçUњ™Uķ‚ƒĢkVфÆšÞU°nŎ¥ČUĊx°m°¦żVƐœx°ƒÇ£@y„UônރÆ@Èĉ°Kô¦šW„kWU—bÇ»@™ÈĕWÇÈ£ŤU@›n£ÆUUKVamanwŃmÝJ¯k@JƒIkaVaUUÇbkaÆÑkWmÝUۙ™Ý@™ƒwnU±ƒ@kkV¯KUkƒJƒ¼U¦ƒšÅ@ówķaķůV¥Uaó@Åwmƒƒ_kVƒwĉ‚ĉmmn_V»™a@U™ƒVwķóƒ‚U¦LǫéóXÇmōLǓÇķxÝkƒƒĉ™kmakbUĶ°@W¼„@bƒšÈÆ@Ė™L„l@„°J¯„mkl¯L݃±L—amJ@¼ƒ„™VƧUó„™UX˜ċb¯ńVbkÆÝI@llx„k°V²šV@Uxގ˜L@b„@b™`ƒšÇzkókݤ@ğ¯Wƒ™LĉǙLmmnċVkbUaƒL@Ž¯„‚bU°ğL݂Ý@"], + encodeOffsets: [ + [127744, 50102] + ] + } + }, { + type: "Feature", + id: "2327", + properties: { + name: "大兴安岭地区", + cp: [124.1016, 52.2345], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@k›ƒϙmƏêġb™ƒ¯@@wƒmÝ@XV@IlŽl@bUxl¯VlV™bV@ULVlUV™_kx™VVV™ÈÝJ@„¯šU„™lm¯x@xóÒĉ¼m„¯Wƒxţ@Uz¯ƒWwnUwťƒ@knƒWƒ£óVƒUUwğyó¦WI—Vmm™I@±kwÇ@@bƒ@ĉ¼ó@¯wó@¯aó¼›KՃaUwmWUwÅI@aƒKó@Ua™LƒaƒVÅwō¼UUÝl±I—¤VxÇx@zkJmnn‚mbnz™xlŽƒl¯ČkJl™°@„kb„Žmx@x™@kêmVnŽWxôXšxU°„bWLóJnÇWĵ„V¦™ŽƒUUb™b™ÆġK™šk¯™VU±aXmċÑUwĉKġ„k„™ŽVxk„ÇKkbƒIƒ‚ÛXWl¯bƒŽ™X¯K™bĊš„„ÞVƚnŽĸ²lxUŽ°n°òÈb‚¦—xVbƒŽƒ@¯„Vx@¯VķÞČlĊ°KĸŽȘI°¤ČIôŽò»ƨnȰKǬ¦ôWŎÈƨwlƒnKVXmbX`lbšwkVW‚XXŽ„L°a„ƾaĊ£nƒ°@°¥ŎzÞ¥‚»œalwôkƒJ„a@ĶK„£„bU°ĊxźVÈUĠ¥ƨ™VI@XU°x°Ln¥šw°UmwXm݁V¥ĢŽ°@nU@mÆ£š¯lKœšÜw@aÅU‚¥UaÝIkmV²‚nn@Ķ»@Uk¥VKÞ@ÞÛ@ƒkVmĢa@_ƒJómƒǖ¯Æw—óÇa@alƒUwšwĢřšk@wÆWXUWXƒWa™m@_ƒ»ÇéXaĸwVa@ÝKkUWkX‚kšKXxƒn@lĊV@¯m¯nřÆwš¥"], + encodeOffsets: [ + [130084, 52206] + ] + } + }, { + type: "Feature", + id: "2301", + properties: { + name: "哈尔滨市", + cp: [127.9688, 45.368], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°`„_šJlUšŽ@„„@V¦°JUšŽnLôlnŤ@@šÈaUÒVbkbl¤ƒzk°ÇVÛô°IlVUVôU„xÆU„Ž@bźĀ„º@¦šb@l²‚UVlœ@°ÒĠxšnXxÆVô¼Þ@Üx²KލlƒVÑ°UȰôlwô@²ƒĸ°„lanV@„šVŎUll@bÈnÜm„wĢ@la@ÝÞb°UXb˜lŎ²ÆškšV‚I@ŽnJnĠŽ°knƒÜbĢwna@a˜kÞKƒĀ„a‚™œ‚‚IVbU¥wĠwkô˜xnLƒċVçkaUƒ±IUmnġW„°WôĉšalƒÞÅĵ¯@W¹XÝaƒb¯a±X¯ºLƒaVƒmkLóƒƒbkaƒVUKVkkKV_@aÝykk±L@ƒÅU@yV_™aU¥ówÇx™@UkVƒn@lƒkÅlwšWVwUkĉmkklW@šašbVwnWWƒ—wWL™™@Ušƒ™UƒÇLšÇmƒ„@wƒJĉƒL¥@ƒÝ_@a¯y„UWw¯ƒ¯Uġx¯aÝXVmaU£ó±›¯nwƒa¯óÅVƒXman™„Uƒ›lUXkWa@mkI„›ğaƒm™IklÇU™„kĊƒƒzkKƒš„lU„ōĬlš™„@ŽnX°@llUxŹ²mKĉVWwk@UbUK@bmVmI—ƒVmwaWxXlWȁšmºšÞÆbUxV@ĵńWÆĉLkWUbƒaWzkbĉ`U„±LklōwUVÝ£™UW`Uwk@mk¯VkaõVX@WbL™K@XƧºWzxƒK@lmX@bkVVÆk¼Vbk@Vn"], + encodeOffsets: [ + [128712, 46604] + ] + } + }, { + type: "Feature", + id: "2302", + properties: { + name: "齐齐哈尔市", + cp: [124.541, 47.5818], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Þ@ށĠKV¯a°ƒ@„KVblaČU‚mnnšKĊȚKX„°ŽĠ@Þ£ôllÈy„™š_@a‚ƒ@a—KݍVwU@±™¯Uƒlkw@kÞJlÅUa°ŃČaW—šVôƒƨVšU„ƒ@»nI˜b²Kބ°Klkn°ƒ¯I@ƒƒkšK@ĕÇń™@aƒX»¯@VĵlaÿVamI@aÅÝउýƒĊȗJƒôȁÅkmƑۃ@kxġ@@l™aVk¯»ƒīŹaƒkƒ¥Å¯™JUaWU@@w™aƒ»„KUkÆkUm„UmwÛ±±UUbUŽUXƒwWwÆÝk™lkUanaWwnKl™kal¯ka™ƽa›kÅx™a¯@™amb¯V™lÇwÛĀ™V@x™šmêVƜVV‚aôV„wÈx@šˌx„¦VÞ¯VšlmX@‚ƒL@¯Ua¯LmV@„„°X„ċK™V™ƒ@UƒÈ@‚¥@w—ƒġIU™km¥Źwƒ¦¯lmn@°kxVV@¦óam„n¦l@nx™lĉVóšmx™n™ÒĉĀĊ¼„þ„šǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVa™mVIkmô„lxkXÞþƒbl„ƒl@kV„ƆƒV„xV@š¼VÒ@šŽUŽšnnނJ"], + encodeOffsets: [ + [127744, 50102] + ] + } + }, { + type: "Feature", + id: "2310", + properties: { + name: "牡丹江市", + cp: [129.7815, 44.7089], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@U`lLUlVL„Ulb„aô„lKnŽU„„b‚K°¹²W°b„aÞb˜knyUlUkamř²L@m°@lšmš²n`ôÅlK„x„ÜKnxV@„l@œƒ›ÅXyW_k@™wm™ŹĕmƒX™»‚ƒÛ™l°ƒôšÈ„»š—ô˜ô_WW@Uœal»šwU@@wšUVƒš@VƒXI@w‚Ģ͑ÞȻ›aU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇa™wÅaÝ°¯nUa±a™ƒ™@¦õÆğ„@„™@Åb›xU܁nÇłlb¯¦„ôó»mƒ—@±ƒUk@Wwƒa¯xU„V°ƒxXbǎŁUV™™ƒK@¹ƒKUaȯ@ōݙXƒal™ƒlÛkalÇUǫÇńÇakbÝƆ¯nlš¯Ž@¼™VUx@x¯W¼™Æ¯šmĖ„Ĭ¯ČƒVk‚ķÅmxœ°ô²V¤‚bUnÞW°bĢw°V°„XxƒV°z@bÞ`@„‚¦„KĊŽ„I@xƒŽn„™ÈÈK‚„šV™„@VššXK˜xX„mXUx™a™b@‚kXllĊnVlUx™XkxlÆk„m@U„Vlš@ÈwôxV¦šbU`@zÆV@„²KllÞz@b"], + encodeOffsets: [ + [132672, 46936] + ] + } + }, { + type: "Feature", + id: "2312", + properties: { + name: "绥化市", + cp: [126.7163, 46.8018], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ऊþÆÞ@bnJUb‚ĀnblŽĊš„„ÞlĸwǔÈŎKÈnôWǬê‚KV¥„ĸôUxš„@VšbU¼m`nnĊŽĊ„xlUšmkaVÿšLšwš@°»UmbKmݙUšwUmVknKUUl¯ƒKU™ƒUȃ‚™nK@ĠkX±lX„°„L@¯¥@wV_m›ĵ¯Ww™L¯ƒUkōƒÇVU™l›w—V󁱃¯aƒVka°wVk°mÞ¯Ŧřƙl™²™Ŏk™U@ƒmUkb¯ƒķŽ±„ó@kxȯó¯VUÒk„ÝŽ±LÛwÝ@ó»ÅUWw™mğw¯Ñ›@UkV±@k™a@¥ƒ¹Źÿ@aƒÅVƒwóVVUkU¯JÜóÈUl¯„yk£laUaVÑÇb@™ţ@kmómK™V¯IU¥ƒ@@ƒ™kV™Iƒ`@ô™¼„blU„lƒ™bÈb@xÇKkĢɳaÅɆō@ƒŽVƒK@z™@@¥ÆKnÜ@@aۏUw›wnU‚ķ@ƒ_ƒV°Ž@„klVššnULVVÞbVl@°™@nx™n°LŚÆlV„ȃmU²@VmĠLƒx„n¯xkWƒzšJ‚wnLmbXbW°šÆ‚™²™@™Žšx@JVx„L‚Ā²Æ°I¯º‚È@ÒnÈ"], + encodeOffsets: [ + [128352, 48421] + ] + } + }, { + type: "Feature", + id: "2307", + properties: { + name: "伊春市", + cp: [129.1992, 47.9608], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƒKƒ¯kWW²ğl@ŽmLšÇ„„VVš„Lk°VVmLUlVn™xšVnނLnaVŽ¯¼™@™x™KUĀlb™n„`n„Æxô@VbU¦ĸŰĸbôxÆ@„™V¥„»„IVl°LUŽll@²„mV„x@ššÞܚÞVnŽlXÅÒlbÈaVVUblb„J@I°lÞIn‚Æ„mxnbUbVLÅVm¤@œţVǤXÈÇĖ@šÈ¼˜aXVÜaXbWŽnzŎašř„KôbšUlw@¯naÆKnUU¯Üa@mkkVUĊm„™żÝ‚ǖŽ‚K„™°L²lÆI@ƒ¯¥ĉƛVaÞk@ÝVaĠlnUVwƒœómaƒ@™wĉ@™a™VƒxamX@aƒ@UaÅLƒaVWƒ_nWm£nWm_ÅV¯ƒm@m„󤁚ݦƒ¯ÅalmX£ƒ™VWUŚw™mÇ@@IV™„WUw@ašI@„k@wŎ»Wƒ„ƒ™ÅVaœK›Ika@¥lUkUlwÅwVyÈwWU@a¯U°m—Ç@UçƒaVa¯mV»ÅwÝUlƒUk™V@k„mUk‚X£šw°@@ǃaÝIƒƒam™Ûam„¯lğmmI@J™U™l±ÅōŽ—kWa¯VÝa@Þkbġ@ƒxÛnÇm@akkōVōl±škšÅšťŚÝ°¯nUl¯xlb„U°b²„ô‚˜Uœxšk‚VÈUŎ„Vl°„šKXxĶ°nœU`@x°¦@"], + encodeOffsets: [ + [131637, 48556] + ] + } + }, { + type: "Feature", + id: "2308", + properties: { + name: "佳木斯市", + cp: [133.0005, 47.5763], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nš„b‚„ÞJ„b@ȯ@™xW¤Vlƒn@lšUVlk„ÞVÆxU¼°nUb„bVèÈ@˜ŽnIn‚@šĢmlUw°™żƒ‚VUn@lnL@VôbšwĊ‚lœ„JķĸĢl„wôwƨxVVUƒŦšxšLź™Èš°`nnĠwŎJސĶwôJ„@¤Xn܄ĸlšn°¼È°lŽ„„Uš‚b„xš@„l@ÞÞÈm°„lôwšL°¼ĸ‚°Þ²nĠ@ôwÞ`ŤI„V„ÒĠU„„@„VJĸbƄ²@°ŽĊKšœ„JĶaĢȰ@ô¥°nš¤‚bČUš@Vx„mUw@a݁ţƒÇ™ķƒ@ĕķīU¯²@ÆmVÑô¯X¥ċç@™ĉ»U¥ÝţKWVÅkUVÝŎUmǍÝx¯aķxÛUóL¯a±óōb¯™ƒÑŃVÿƒ_Åķ„a@UƒK@wm@Van@UmmLVa—@VImmXUWƒÝUřƒKUwÝUUƒkVƒk@l¯X›‚Å_ƒJ¯k™Jm„ÅLƒa@¥U@¯Vƒz¯@ƒ`@¼šmxƥšŏKÛk@±laÛ@@Xm@™ƒ@xƽ@WŎnšˣĕÅ@@aÅ@@nÝbǏ¯@ƒ_U›kUWƒkb™wÝU@ç„Wlw@anIƒ¯lyœX°m°VšašÛšm@„mVwÞK°ƒšXlaXmm_ƒ@UƒkwÝK@ƒVI™ƒXmV»ƒI@aƒ¯ğW™bġaU_¯JU¯ġŽƒ„ĉ„k„ō`±nÝÆk„™bóĊ¯Xƒ‚ĢX‚mVn²JV„lbUè„ČmK—wlóğx‚xV¦UaJ›šƒbƑÿÝL—l@bmbġx"], + encodeOffsets: [ + [132615, 47740] + ] + } + }, { + type: "Feature", + id: "2303", + properties: { + name: "鸡西市", + cp: [132.7917, 45.7361], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@‚LšKVVnkšbVšÈb‚²U°VnklVlaÈL@anU°ÜmXV`œnôLƒèšxlŽšLX„˜L²ašVVmÈX@ķ˜lnU„Èl`ȹš@ŤŽ°U@x„KnnV„mlnnUl‚lVnnaŎwlVÞ҄@n¦šLVŽ°lšwVk„Lšaގl„n҄š@xmLÞ¤Wnœ¼‚WÈLVVUxlÈô„„WVaU_VKšKXUÆbn™‚nôK„bÞw°bÆWXamVwœK˜™Uw¯WUk„UlJUwVUa™@@kmyzm›ĉw@kVwškƒW¯ÅKU_Vmƒƒ™xU@aW@@kK@w„a@Kƒ@@kVUƒaky°_Vm™kna¯K@™ƒL™wġk@@IÇóX™ƒwVakmV@mwXUWanƒlĉ@ǙUw™KƒƒóšܛNJۄm°@›w—Å@ƒ±b¯Wƒ¹„WVwŹĕ¯kVmōb¯w@aƒwmV™UUb™V™IkaVwķ™xk¼›b@VXXó`󗙘ƒ¼Çó™¯„kŽÜš„š¼WŽn„źĖnššxl@X`WzœÆ"], + encodeOffsets: [ + [133921, 46716] + ] + } + }, { + type: "Feature", + id: "2305", + properties: { + name: "双鸭山市", + cp: [133.5938, 46.7523], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@™UƒƒUwó™mÑÞÑUÝÝUkmmŃyV¯ī„¥ƒUÿĉ¯mÇkaWbÅX¯aÝxƒaóLmmšÅaWV™LULV`UbƒXóƒkÇVwUUÇKX›»XmÝ£nK@wƒ™mÑkƒÝ™bƒKUl™x¯kU™Km¥ƒ@ÝÑkUōxmbUmkVkmmnkUƒmmƒL@w¯Vţ™@Ǻk_ƒÇmV—k@ĸVx‚VÈ°lLkllšUbōwƒnVW¼nlUx¯XmWUnÝ@™xÝUó¼¯J@LVbkJWnkb™W¯„ÝLUxƒn@‚™n™Ü™b¯U¯n›Wkz„°mJ@bkxƒX@èÞVšxlaX„lVVœ„`°@ȐÞa@mÆ@@bÆ@ˤĖm™Xōƾ@@wš„n@@WÜ@kb@²ÜlŐLƦ™nw™@»„_°@„y°UV@@¦„bÆKnƒšI°l„IÆ`œ°W@k„llUV„ÞVVx„LƚÞVX„WVnnUJ˜@UbnKVnm@Ubn@@x„L@VƒbÆĸ„`UĀƄ„Ò°šŎa²ô°bôKÜVĸw°bÞwȎVnÞōVUÆlXU"], + encodeOffsets: [ + [137577, 48578] + ] + } + }, { + type: "Feature", + id: "2306", + properties: { + name: "大庆市", + cp: [124.7717, 46.4282], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@mÇ@сǰ¹¯J±ÅÿƒKUw‚I@™wšš@š±Å‚™X¯WanamKx™I„ylX°wƒm„wğKUn±@nVDŽUƒÅkƙ¯Kšmmwš@@¯UkÝaUUVK™mU™lk@ƒ¯„U„`ĸ@V‚mœxVxܐ@bÛ@m‚ÅL@¦š@@y„L‚U„Ŏ@ÆɅɴblġÈL@wÇaša„ƒkkVƒaš»@ó¯_ÝJ™wÇaÅXny›U¯¥Å„@w™bÝa™Lmm@@ƒVUŽlbğVmš™¯Xƒm_ƒ`¯_Ux™m™L™a¯b@mƒaó¦Çk™¤V„@bóJknVx™VXx±aƒLUbVxkLVlLWlƒ@nX@VÅbWlÈnƒx„bWšÅbmŽ@xœbml°b™„XbW„XVmnn`ƒLmšnbmb@šk@mwU@@š¯Jlbk°lbkšmLXxmbVbkllšÅނxX„xVWVVa²VܲnxƒVVnÅlVlƒL„¼šb@xV@XŽVbšIÆ°„¦„lźb„Ĭ°¼Ulšb@kĢ@lw„@ƒÜlnȂƄóȘI„ĉ"], + encodeOffsets: [ + [128352, 48421] + ] + } + }, { + type: "Feature", + id: "2304", + properties: { + name: "鹤岗市", + cp: [130.4407, 47.7081], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Þ¥‚™ô£nƒn@°„ÆUn`mXn¤mX„`UX„bÆKVb„@@bnW‚b„wšUšbĊ@šx„@nbšWVmƒ_mm@ó»Um„ŘWXkĠ»²¯‚¯nķšwŎ@ĊšŎK°bĸUnјKȦĠÈbÆknJššÆUĢV°IšŽšVƾƒwaV™ƒƒkÇ¯¯»™mķkۃWm@£ƒóIĵxݏōIğxmm¯_ǙŹš™K™wťŽ„UVUŽƧwóxƒxġkĸķƒIk›ĉ™xóa@UmK@kVmUŻ„¯šVxkŽġn™‚@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbœJ›LUbšÆƒ„X„ō¼@xƒl@™J@bVxƒXUš@JÈ@šn™xVÆUXš‚„W¤knÆb„°"], + encodeOffsets: [ + [132998, 49478] + ] + } + }, { + type: "Feature", + id: "2309", + properties: { + name: "七台河市", + cp: [131.2756, 45.9558], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@²mŎ_lƒĊƒ„ƒĢV°°IV`ĢbšaĠX„°@b„JU¼Wnš„UJ@„ÞLlxV„„@n`lIUa@K°Iô»ÞVšwÞ@VmnX°WVwmkX»‚U„mŎxVak™lkkKǯUUwÇWUn™U±b—KWƒ™Kk™w„çóK›mU_nW¯ÛmV@bÇKkbkUml¯U±VÇaU™™amlUU™LK›„k@ƒU@mwÛLƒŽƒwkLóÆm_™±™nkŽ¯@@n±KnŚlbkVV‚mz—lWXº@Ķ°"], + encodeOffsets: [ + [133369, 47228] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/he_bei_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "1308", + properties: { + name: "承德市", + cp: [117.5757, 41.4075], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lLnlmxn„„IVVlUnb@VVxXJWL@LގVnnV„J˜_@wkmšK„b‚x„wXk˜WXXšKlb²K@nVVVb„L@WlU²„lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbXš@b@bVb°x„@VxÈLVlšaÆ@Þb²k°@lVUŽ@Xn@VW‚LXb@¤VXšKVVVLnm°_ƨ¤@aUIVa„alkX›°k„™V@„alwUVy„U@k󙰃na°UVUUmUÆw@mkLVUƒWVI„WšLnn@xlVnK„myU@ƒU°UXaV@U¥ƒU@Uƙ@aVUkWU¯ƒaU@WLUV@bkbmKULmKkUVUkmVIUwlWV²™Uml°U@W„LUwVm@UUK@_ƒKUUÜaXw@ƒVKUU@mVIUUlmnIVVVbÈVlKnbVKš@nI˜@nVnwVLVK„K„„˜Vnb@aUIVW@In™°@lVnIš@lWĢ@°UVL@b„@VyUUƒa@w@WUnU@Wǯ™K@UkkJWaÛbmk@mVaÞU@amkWƒ@mXUKkÿƒ£@a„kl@Um°UXwla„al@nmlXnW°znW@aƒwV™@ƒakbĉ¥VmU@ƒIƒVƒUƒJkUmWU™KbmkUaƒKkUVU@KV@@klw—™WaU@kmƒXVènbmlUUƒKƒX¯JkbƒI@JmIUWU@ƒLml@XkJ@U™kƒK@aVKwWa—IWwƒmUƒ@mU@J@UaċU™aUUƒVkI±ƒk@UUƒ@UbVVm@UVKƒLƒlkIWaULUWƒXUJU„ƒ@WbUb@lkXUxm@@JVn@J@b„nƒb@Vkx@bšLU‚Æn„JšaVXnKVVmzX‚°V@_lJXxWXƒK¯bÅamUƒ@lUI›bñJ@LÇKkIÇ`kxWL@„ƒ@@bUVUb¯xWKk„Å„VlULW@ƒŽn¦Ul@I™lmUUUVm@kWƒnkKma¯XUKWmnwVwÝL„mŽ™VUbUVWb@Lnxm„xVŽmbXx›¦@„nb@`™„ƒVƒ@kbƒLU„mVUlkbVXkºmnm@@xk¦šbĢÜlš"], + encodeOffsets: [ + [118868, 42784] + ] + } + }, { + type: "Feature", + id: "1307", + properties: { + name: "张家口市", + cp: [115.1477, 40.8527], + childNum: 15 + }, + geometry: { + type: "Polygon", + coordinates: ["@@k™ġۙal¥@wn@nml¹UWlaVknUVƒ„Kla„@„Ušƒ@_ma@ƒœ¥WwnaU‚wnƒmw@KXaVUVašUnmWUk°™lƒnUVUXWVw™IWVóKUI@WXƒxUU@mma@kUKWLkw@yk@ƒaVkUUċaUU@Wk@Unm@UVmLm±IUƒkJ™kWƒ@a„I@m@U„ƒVƒ„Ula„@VXVƒXmVwnkWKƒKU_k@m¥ƒmX_™JmnU@km@U@KmU™VƒU@U™@Umk@@LƒmW@Û£Wƒka@wk™@aƒI@mmk@mUa@UmUƒIƒwW@aWUƒbU@kbÇ@kwƒ@makVUk™U@aƒm@aU@mxkUƒbƒKUXUƒ±KXVWLUK@wkU@V™@WXUa@WbUxƒJIƒŽ@¦VèVVX@±ê¯KUIƒ`¯UULVx@Vƒ@UKƒIƒVkLmVkKmš@nUJÝbkIUJVXšVVxVbU„VJ„Un™°bV„mlU°„XnK@Ul@lVÈVUXšx@W„@VXšV‚KÞb„n@VnbV„m`ƒUx™kW@UVkL™Km¼@lUnUJVnV„XV@Vm@@LV„klƒIkl@VƒWlŽULWKUL@mJ„@blbUVUlmzUJUxm@UUbċÜk@Ub@VšLVV„¦ôbVŽmšUKUkU@m„„@VlVn¼WbUJ¯@@„°šnIllÈl˜@nXšWlLœk‚J@bkxlxkxlXUlklJƒšXL@bW„n`@nƎXxlL@xl@Xb‚LœKlVlIXblVUbUJW@lX@VL@VVŽšXšJšw„n@WnL°K„bVbl@VI@K„@U@nmVmV@XUWI@aXm@™VUUkWmn@lmUUk@mUmK@UnwVĉ@ƒƒmU_V@XJôVVUšLVUn@šllUnJl_n@šml@XŽlLlw²LVJUL@VmbVblVXmVnlš@Ť¦„nn@܎@bšl„@@XV`„Unb@VlLVb²J‚Xn¥ÆÑ@¥Þ@"], + encodeOffsets: [ + [118868, 42784] + ] + } + }, { + type: "Feature", + id: "1306", + properties: { + name: "保定市", + cp: [115.0488, 39.0948], + childNum: 23 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VbXWš@@UlV@xVLXKWU²LV„VW„L„alVnwV@@b„n@bšVVllUnb„@lxÈ@laV@„aXV@b‚X„x„J‚nV@VVb@nnl@n„J@blšl@„ašƒU_VWUwVUškUm™Ukb±mVwœU@VIUW@UWk„@VU@ynL„m@IV@‚bnK„LVaVmnIlaXwV@@WVL°@@xnX„@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@œKVXÆ@nƒ@wƒKmU—™Wm@km@kÜKXU@ÑW±nIUwVƒ„Kla@I°wU±kškmm¯mƒ_ƒJnƒaƒwW@IVaUama@wƒUƒmU@mVw@aXk@mWa@£km@aƒ_kVmUnWW@¯bƒkUmk@ƒVÇm@@kUU™KUU™@UVUamVUaWIkb@xU@@amUkKƒVkam@@kVUkUWmKmUkLUb@xmJƒ™U@UImVÛVmnUwƒJƒU@VƒX@UWm@Ub°¦UšmxklmX@`ULU@@UW@@xkn¯@makV™UmxUb™°ƒlUšƒbUbƒnUJƒUUVƒa™LkbUU›JUU@mUUUƒJkaƒ@™xUIWJƒUnƒJ@V™zƒ@kb@`@bln@l™bƒŽ@X@š@š„@Xl‚bnbVb„@„„VJlInlšbVw@U„K„l@lbnan@Vb‚JôLn‚UzlV@lÈLVbVK@LVx—VWXX`WxXz‚bV`UXV¤nx@„bVlVnVlUL"], + encodeOffsets: [ + [117304, 40512] + ] + } + }, { + type: "Feature", + id: "1302", + properties: { + name: "唐山市", + cp: [118.4766, 39.6826], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„@VVl@²„lJ„UVVšbČVVb‚@@InV„@‚V„nXx˜JXb‚xUL@b„Lšl@VlI@Wnk„KV@VXnJ@I„Jla°I„W„LVVnkmaUç„WVkôaܯ„@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯ƒ¯@aVUkKUamUUƒn»‚an™„IVwUWlkš@„LlWVakU@K„_lƒšbÞU°@šy°n„@„KÈkWW™ţ¥ĉōƒkġWUw¯£¯ƒÇwţwƒ@kK@kƒ¥ÝwÅbǤېťV™lW°@ĸ™x@VVVULVLkl@V@Xƒ`Ub@Xm@UWbƒk@ÆVbnLWV@lnXUbl‚@X¯lmU™VkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`ƒXmJnšmškxUVbUVlVVxUbV@nKlL„kVKÞbVKXI°KVšmVUIUKULVxVJVLkV@Vƒ@UbU@WUU@UbUK@b@nƒV@VkLmb@b"], + encodeOffsets: [ + [120398, 41159] + ] + } + }, { + type: "Feature", + id: "1309", + properties: { + name: "沧州市", + cp: [116.8286, 38.2104], + childNum: 15 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@ln@UȄŽl@Vn„l°aX@mXnVlU„`@bln@¤Xb@nWl@bUx@nnV‚„„V@xnbVbUb@J‚X„x„b‚mXa@k„UVwlW„k„KôVm@w™kkK@kl»Èƒm™VKXkla°@XVV@VI@ml@@Vn@VX@V@J„@VxUzVVšš²blVk¦@šĠ@@»š@VK@VÈLlK@XnJ@alIUl„a„VVbš@„n@a„U@WUIV@mUn@mKXml@lL@LnWšb@XV@@a„VVb„V„@VV„IVWÈb˜IÈ»ƒǟlWšaVUÅUƒƒ™Um@kVU™WVkaUwmaóUƒJUU¯ÑU¥mk™¯UaƒKÅnÇyóXmWÛX¯aċbÛa›J—W™ÝU¯»ƒaóóUm@IƒšVVl@bƒLUJWLX@@xšXUxl¤V@V„nVUV„XVbVš@Ž„@@VVn„°VŽ@ţU¯VƒUmƒUWV@mUXƒaƒbUKUwUaÇKn„ƒVk¦Wb@VnLmV@bkV@n„xW`Å_UVƒV@bƒUklVX@VmlUƒx@VVL@x—VWVL@VW@UUm@"], + encodeOffsets: [ + [118485, 39280] + ] + } + }, { + type: "Feature", + id: "1301", + properties: { + name: "石家庄市", + cp: [114.4995, 38.1006], + childNum: 19 + }, + geometry: { + type: "Polygon", + coordinates: ["@@la„@šy@U„I‚m„VXIVJšw„@lb„IVVnV‚@VVœIVVlašK„bVU„VVI„mVa„aV™„kš¯VanwšVlUnb°@lm@wX@@VV@VK@_nWlknwV™¯¥Van@VX‚@„W@U„V„IVxnmÜUnUVJV@„šnI@wValKnV@k‚mU£na@mVk°K„LVa@UU@UƒmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@U„a¯wWU@UkƒL@ŽUn@x™V™lUXVJUb™LmU@aUWUkmKkLUUm@mW—XƒaƒmmkkWUm@@U¯JUUm™kU¯@mKĉxÝwÝ¥LƒUóŽmwkUUUWVkKm™kKmLX„lxVLVxXJ@nVJnz@VWL@`nX@šƒxƒ@kVUUmJmIXx„JV„ƒnUVƒ@UVV„@LUšƒ`UXVVƒ„ƒlXL@l@b@VmX@b™xn°™UƒbkKWLXlW@@bƒK„mKULmakLUlmb@šXb@xmXU`V„b@`lLx@nWVXL@‚°WlXnlb„KVK„XVb@˜X@l_lJ@V@XnŽ„I"], + encodeOffsets: [ + [116562, 39691] + ] + } + }, { + type: "Feature", + id: "1305", + properties: { + name: "邢台市", + cp: [114.8071, 37.2821], + childNum: 18 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nKlLnšlLXUVVlVnxô„V‚KÞ¦ÞxĊwnL°@lVnšVV°I@Vn@V‚lXnl„n„b˜WnXn@VVlKnLVlVX@bnVšKVaUIVWškšU@wVm@¯@U¥VmU_°lšK„k‚w@LX‚Va„U@wšUƒUUKlUóW@UVUœUlƒ°K„wlKU_na„KVnlKkkšWWa@IœJVa@IlJnU@„KVUUmVlaXUl@lm@kXWÝÑnkƒ™±™k@wğ›@@U@mKĉLmVJ@zmlnŽWLUÝJU_ƒ@@šmJkXUVlbklÝ@Ýa™b¯@¯±JÅwġaUU@ƒkU™@mVI±bUKƒL™WUXƒJkaƒLóKULWbUVkKmnk@@bmLUŽƒl@b@mnmJkUULƒaƒbnŽmn@lVV@¦n@„l@b‚znx@`Vz@b„xnV@xl„lbnKVx"], + encodeOffsets: [ + [116764, 38346] + ] + } + }, { + type: "Feature", + id: "1304", + properties: { + name: "邯郸市", + cp: [114.4775, 36.535], + childNum: 18 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„bVKlVnInm‚@@a„kVnK@al@nmlLVUXaVKôL„Klb„IVWšX„KVL²a‚JnUš@lV@„VVĢbÆx²I°Ž°@šaÞbÞ@lkkaVUlWnI@™„@V`ÞI‚VXKmnk@y‚InUĊKƒÇkUUamUUkƒƒ@aU@U™ƒk@WUwVkVJVkkw°a@„mK@UX@VV„LVW@wšwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkVƒ²™VƒaULUVmJUUUwƒLma@™UmkIUm›L—mVšmx@b™LUamKÅL@VmbkU¯KÝamzkJUb±Vkb™L@lU@WIkJƒzkKmKƒnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@Xƒ@XlWLkUƒ`VUnaWa„UV@UVIƒaUxUUmVƒK@I@W@DŽU@@U@bƒ‚@nmKXmx™@UxkVWUX„@`VLlL@`™zX‚Ýb@b‚„@VUVkIUJVz°KVlnLlKnL„xlLVVUVlXUJ@nn‚„I@mVUlbn@@Žm„@bV„nV"], + encodeOffsets: [ + [116528, 37885] + ] + } + }, { + type: "Feature", + id: "1303", + properties: { + name: "秦皇岛市", + cp: [119.2126, 40.0232], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lnV@Xb˜škx@lU@@LUVlV„LVbnl‚ašLXVVn‚l„I„V„U„JV@UnĊ¦la„bš@nJ°UmƒV@„wn@VU„JVI°bnWlXnWVLVK²b‚akk„lI@aUaVƒUwVUUalaVwnUVak¥šX@W‚kœLVÓm„mUK@_lWš@n_UK@alÅ@ğÅƑŃݍmƒ@їţÇlƒLƒ@¯m™z¯@ÝV™ak„ƒ`@LlVUbkXƒK™@klVXUxƒJmšbm¼V„nVVblLUV@b„°V°XLVb@¤mbXxWX°xXŽVbmVUVU@kbmI¯xmUƒ@Û°óbUl"], + encodeOffsets: [ + [121411, 41254] + ] + } + }, { + type: "Feature", + id: "1311", + properties: { + name: "衡水市", + cp: [115.8838, 37.7161], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„KVlV@X°xƒb@VnnmbVŽXblb@VkL@lV@Vbn@@l‚@XX@bWVXlmXnlV„V@@VUbƒK¯LUl@nmbV¤n@l‚LXnlVUV@ln@lb„UlLnV@bV@@wlaXJVbnUVbVUš@VVšLVVn@VVX@@U‚KXU˜U@wUK@U„wVnk@UUWlk„V@a„UVUÆ`X_ƒw@mlU@anUmK@UXal¥„UmƒÈLVbVxVL„a„bVW@nXU‚Vn„„V°UŤV@Uƒ¯Um@Uƒ@@U™UaƒWVUmUUƒU@k£Vw™W@wW@XKƒIUa@wU@@al@UK@_mKXKƒbUU@aVKmš@Xmƒƒ±@kbÇakLğVaUw@a@ƒmkUJƒk@ykw@£ƒWX@lknk@WVkbUŽVnUVƒL@‚mVkI@JUb›I@JXb™XllkLUmƒLmbV`kLƒx¯Lk„›VUV@VôXkVVL„V™V@xƒVUbW@Kxƒl™L¯kV`UnV¦°@"], + encodeOffsets: [ + [118024, 38549] + ] + } + }, { + type: "Feature", + id: "1310", + properties: { + name: "廊坊市", + cp: [116.521, 39.0509], + childNum: 9 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@la„Ušš@šUnL@VWbklWxnIVV„V@X„JlbUlšXVbn@@K„mV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaƒaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUƒkIVa@a@klaUKUV@UkUV¯šKVƒV@kUmƒU@@a¯ImJUU@VV@UL@Uƒ@@WXUWa@Ukwm™@ƒX@@w@al@@aVIUmVUUUVWUknK@I@™l¥kU±a™™UUVyUwƒ@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnšÇ„k¼@llLšl@xUnóŽƒLƒlkXUxƒV@lWb„I„`°nnn™llŽV²¯x@JkbƒLU„VxmJX²@ÒWVÛL@lln@‚Xn˜šnV„L"], + ["@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķŽk_W@UVUKUš@bƒ@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V„@bVbl@„lX@lUôVlUœIV`lX„Vn@lUlVn@„l@UVaƒIUWl£Um™VWU@@UUKlUUUnƒVL@KšUnLVWUa›@™U"] + ], + encodeOffsets: [ + [ + [119037, 40467] + ], + [ + [119970, 40776] + ] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/he_nan_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "4113", + properties: { + name: "南阳市", + cp: [112.4011, 33.0359], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lKl@nVV@„bn„@VVnm‚nL‚LXx@š„‚VLlKVU„IXWÜ@șlbl@XUĊUlwnW„LÞw‚m@ÞUVmnVl@nX‚JXLm@VnnJla„I@VkxVb„@VŽln„J@knKVn„@°aVanal@XK°b„‚@š¯VJXIš„VK@al@nV„k‚@nK„a‚b„@XL@blVVKVLXK„@VaVI°mVaX@V_@a@yUkVw„VšIVašJ°™@anIlaV@nKnXÆm@wUUV±UUWUKnaWwXUWmŁ¯Vƒam@kakImƒUKƒ»lan@VXXa˜W@@UlUUa@a@UlwUƒV@Xal@@anIVaUK@V™XmwVmUmV„LXl‚@nalLnal@„šnKlkV@@UnJ‚UXnl@nVl¦V@@VnJ@nUVVVVIn@Va„JƗn@@K@m„kƒa@kmWVaUI@a@™k@@aUL@mmaVIUKUVƒ@@IU@mƒUmmL@K@UUUU@mW@@nU@ğ»mVmbk@klW@UXnV@LƒJm„™lUnUJ™UUUWƒƒ@UnkKƒxmLa@ƒ@@lUU™bmUVWk@@nkUmam@UakJU_ƒVm@ÅlÇLUVmVUwULƒKU@ƒk@UƒVUlU@@Uƒ@UaUUWaŎƒzJƒaWLkl™b@bmL@„kKƒabWŽUVƒ_@mV@b¯JmXUbUK™¤ÇLUU@b@JkLWmkUWIkJ@VmX@JUbVXU`¯VV¯blK@LXKl„UV@Um@@Uk@kxWŽkbƒL@KkbmL@‚UXmaU@@l@x@blX@xUJ@bULUlULÇ@@VšnU`W@@nÛ¼U@@VmKUkm@VVX@@xǚ@bUbVb@VX@@x‚LUb@lƒ¼XLlbUlVVU„Ub@n"], + encodeOffsets: [ + [113671, 34364] + ] + } + }, { + type: "Feature", + id: "4115", + properties: { + name: "信阳市", + cp: [114.8291, 32.0197], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VllInJlknJVkVU@mXlUÞ`VnV™VU@U@y„@nXlKV„nJVkXKWaXI‚b@yVk„VUkVwn@‚K@nW@k„KlUXVVUlbnUV`n@V_V@llX@@V„b@bV@@nlVUb¯‚WLnbmb@ŽnLnK˜b„U„bVWnLlaX@VVUX@Vln@`kL@ll@VXVJÈIVl@XÞJ°Una„LlylU@UXKlnn@lanLWWnbVI@KXKVL@LVWVL@UVKUIVWX@@XÆJ@In`@lJVI@a„WšÛnK@UlK@UU@VK„nlm„nXal„UllLUbVVšknJ@nV@Vm@a„l@@xnV„„lJVUU@™w@aƒk„@XW@_mWnUlŁUmVKV@VXwW»XƒWaUwnkWUkVUƒU@@@WlaUkkaƒIWVkm¯xmIUmƒLUVƒaUIó»m@mmwXk@a›mk¯¯l™@wƒmkLmmU@UbkUWJ@XUbƒJ@b@l@znÆmK@Xk@Ub@lm@ƒI@akmVKUUVUkU@U±JUbkƒ@IWmkxƒa@UUV™UWVkIUaW@UlLWn@VkJƒI@VkK@L@bmKƒkJmUUaUKWXk¼VxnJ@„V@@VULV¼ƒ@@UkaUlWL@U@W@IkKmL@KULUWULWKUXUJmIƒb—KƒŽƒ²UW™nWKUUkLUƒmUUam@UU™@ƒmUL@xkV@„VV@bmV@Vk@mwkUƒVUx@mbX‚ÇnVb„‚UL¯šWŽnUVLVb@xnlWnU@UVUVVUbVVlVkn@llVUXUWUXVbUJ@bmLUJnb@nVK@bl@@š@bVJUbnX@l„b"], + encodeOffsets: [ + [116551, 33385] + ] + } + }, { + type: "Feature", + id: "4103", + properties: { + name: "洛阳市", + cp: [112.0605, 34.3158], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VVUllLXl@LWn@J„@bƒKUVmnL@`VblLnbV@„b@JmL@LnV@VV@¯„VJVnXL˜@nm@aÞ@‚a„k@m„IšmVbXL‚ynLšk°@°aVJnUV@UVVXk@WJ@VXLlUnJVnnƒ°U@»°U„wl@šb„WmUXƒÆ@VLXU@m@U„a@I›mkb™a@naWW@_@WXUV@@U‚ƒ²@„K@I±U@¥kKWLóLlƒa@£Um@kWKXU@mlLXUVKUU±J¯_@`UL¯Wmk@Wa„kkƒlUnƒVUVaU@KUU@mmK@_ƒa@KX@VaUIm±™k„aVKVUkw™@kaƒƒW@kbkL±UUaƒK@UUKVak£ƒ@UmmL@lƒIkmUƒ@Ualw@UƒJkbmIUmn@WKImWk@mUUnÝV@ŽnÝxƒKmXkxĉVWVk@kaċšÛ@WXƒJUV@zŽm„VWnbUbVbšLlUnŽ‚lUÒnWV—VWnk@@Vm@kxm@Un™l@Ll@@V@šXnƒškJV„šV@nlVXx˜U@l„n@aš@VLnWĊ¦nxš@lbVKXLl@ރVLƒ„XJl@XXl`lIXVl@Xl‚XUVšK„wV@lanx„zUbVJ@VVX@b"], + encodeOffsets: [ + [114683, 35551] + ] + } + }, { + type: "Feature", + id: "4117", + properties: { + name: "驻马店市", + cp: [114.1589, 32.9041], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@n@„b°UƂXnVlnLÜ@VLœm@n˜@na@J„„m@k„@lVšVxXX@„V`lLV„XVV@VVÞLVV°„²@lašbnxV@@b„Lšmlm„_VWnIWUna@lšLšbnV°ƒVL@KšV„LVUVaVLXK@mÆXna@wVm„a‚@Xw@KlL@a„@Va@wUkaWnIVƒla@Kn@Vn@VUl@nKVn„J@LnK@aVkVUUWƒ@VakUVanI‚²X‚W@UUU°KnUVLl@XaVK@ašU@KUI@W@_lm@KkLUKV_Uƒ@»@UVJ@XV@@mVL@K@U@Kk@VwUUm@kmWL@VkVkzƒKmb¯VÝI@WUkÇJUIUWk@@klK@_km@UVWUUW@kbmKUXƒaƒV—amLmK@namaXK°VakU@mU@@aƒa@UW@kkU@U`m@U_mVkaUVWUkVƒL@lmX@ŽLm@UxVlƒUUl@zaWJXbWLUlmIUƒkLmWƒ@@z@VUVUšUmÝ_kVWŽ@nUVUlmIklmIkJUkƒl@n@Lm@؃IUbm@UJUUVU@mmI@UU@k¥mUk@WmVmI@VU@klmLƒ™k@mbkKmb@WkƒKUŽVnUnnxšW@UVLUbmJ@bk@WbU@V„kx@V@bVbkV@V‚@‚—XWbUWm@kb„¼VLn„lJlb"], + encodeOffsets: [ + [115920, 33863] + ] + } + }, { + type: "Feature", + id: "4116", + properties: { + name: "周口市", + cp: [114.873, 33.6951], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lšnb@xlJ@UnLlKXUlJl_„KnV@xVL@bkbVVUè@šWb@„Ubmš„ŽkšVšmbX„VJnUl@„a°@@b„LVbƒlXx˜InmnLVw‚anJÆw²IlmnXVl°VVbÈaVb„@lkn@VWnLlUVmÞUUklƒkƒVkUaVaVaUw™K@kkaVWmw„_„‚l@nU„VVb@b„aV@VV@zXJl@@kl@šlœk°WVnÆbnbUšVJ„Iš@VKVm@k™K@_kK@a@aU@@wW@@k@aUW@IUWVUnLlUlVXKVwmk@W@—VWa„¥@k@lnƒUIÇKUaU@ƒUUVmIUV™Uk¥ƒVma@¯k@Wanwmƒ„@@n@@m@UIVƒkUVamUXWƒaV™U_™@ƒmUVUImW@aUIĉK@VmI™b@lU@@n™JƒkU™@KƒIUmmLk@UVm@UŽm@@LkbU„mJXlbV‚@xUbƒ@@bkK@LWx@ƒbUn@xmbÅW@nWLUKUbUVƒK™U@LUK¯„mU@šVV@xULUŽVL@bU`WšUz¯aUamKUaƒ@@xkX@x"], + encodeOffsets: [ + [116832, 34527] + ] + } + }, { + type: "Feature", + id: "4114", + properties: { + name: "商丘市", + cp: [115.741, 34.2828], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XVl@lLȃ„@VkV@V»UanƒWX@VaÆÇô@ÈaVX@xVJXUÞU‚aVLĸbXKl„V@šm°Vn_ny˜XX»mUk¥lK@a„_@yšInaVKVa°_@WXI@ƒ@K‚VnIlbnaV@„l„@‚a@_w@ƒlwUKm™Xa@UV@š»Vƒšw@kUKVUUm@w±VUXUKUwmJUUƒ@km@@±mXkmUI™@mm™KUwkbWakLWaUIkJmŽƒX@l@@VUX@JWbX@VbULWbƒlUVULknlV@bVJk„mb¯KknWmk@@nmVkx™@ƒVmU¯KUnUL™@ƒJUIV™maÅaUm¯X›l™kk@@lk@WI@yUUU@ƒb@aUaƒUmVk@ƒƒ`nxUXlb@lšLVxUbUbVbUll„k„VlÝVUnkVmKUXm@klƒ@ƒnUx@xnxƒn@`VX@V²x@V@b@„Wl@zU`VUVVb„L@Vƒb™W@bkXllkLWV@V„@VVÈwlVœ@@X˜K²Llb„WnnÆL@VnJWn"], + encodeOffsets: [ + [118024, 35680] + ] + } + }, { + type: "Feature", + id: "4112", + properties: { + name: "三门峡市", + cp: [110.8301, 34.3158], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@WKUmUI°ƒU@@UmU@KnK@IƒaU@makKUa@_‚KnmVU„L@a‚ƒ@IXm@KWkkKVkUU@aUW@UUIVaƒymwkbU@ƒx™LVUWWkk@WUkJk_WWk@WI„ƒUK݄k@WKULka™@mwĉ¥mXUK™@@bƒm@k—VWwkU@m™UUƒlI„™Wm@™@Uk@@KškVmn@lwn@@Ul@Xm˜UXUmVсkmkV™KUaVamaUXnƒ‚@ykLUKƒ@™WwKmKnUm@UmƒƒaU@mUk@kL@lƒxċxUnkVmnXxWb@`kzWJ@V—LmVUn™lmUL@lW@Ub@VšXUbš`VLUbUJ@nmnUlUUm@@bUJlnU„š‚U@lxkbƒ@@XƒJUnƒ@kb¯VVVmlXXlJlzn@VlkVW@bkK™bmškŽUbVb„lƒXVxšKÈnšwÞlĊKlšVnKlwX@lL@xlUnVn„@šl@lmX@ƄÈb°¼ÈwVJlx„_°xšašlšUÈxlUnbVxnL@lllšbm„n@nb‚@@V„L@V„@@„VLšJnIVVlKnV„_"], + encodeOffsets: [ + [114661, 35911] + ] + } + }, { + type: "Feature", + id: "4107", + properties: { + name: "新乡市", + cp: [114.2029, 35.3595], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XVlL„K°bUblbUbšl@nX@W„XVVKVkš@@Žmb@„Ubn„W`kL„LƒV@VVLnKlVXIlVš@@a„@l£nWlƒkVa„@°bnUlLVlna‚bnUVUXKlU@ƒ@lk@a„I°y„@ôkUU@wšmôšnkWakml™UkVmkUlmUUm@nkUKWanamU„LXW@U‚VnUln„`l„œblL°KXV@ĠJ@L°„šJšUVw„anK@UUImmƒkK@¯±Um@IVmUmmÅnWaUK¯aUk„w@W±kVƒx™U™VƒwƒnÅJUIWaÝJóI—bm`ÝbÅImJUI¯¥¯@mU¯UƒJmnUVóUkl±V@zXl„bWVXL@bm„mº@@XmJUXU°llk„@nWJk@U„@¦U`m¯ŽWx"], + encodeOffsets: [ + [116100, 36349] + ] + } + }, { + type: "Feature", + id: "4104", + properties: { + name: "平顶山市", + cp: [112.9724, 33.739], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l¤UbVL@V„LVb²VlKlaX@„„lbš@lxUVULƒbšln²VJUbW@@L„b@`nL@nVV@LVŽUbUVm„kVl„ƒlXbl@Xn°ŽVK@_°`²IVVV@VUVJnInaWK@Uš@„K„LÆ@nmlXXWVUUw@klKVa@knyVkVanI‚JXUl@XbVUl@@aša@mXk‚bnK@UlK@UUUVaXaWmkUm¥n—WmXaWaœkl@VmÞb„KVL@aVI@mUwVm„@KōméUL™KVaUk@kUK@U˜WXI@VlKXU‚@VVnInVV@VLlK@UUƒkKU_@ƒWWUwU™@klƒn@ƒƒ@Imb—@@m›nUKÛ@mKUkWVXxmbVLXŽVVU²VV@xÅnmWmLU@kbmJ@b¯š™IUb™JƒUUxVl@z@bU`W@Ub¯nUJUbƒ@WLUKULkU@aWKƒ@aƒbmL@ƒlmUk@@bUL™ƒWJUI™°@ƒŽ¯aWLk@mbUb¯b"], + encodeOffsets: [ + [114942, 34527] + ] + } + }, { + type: "Feature", + id: "4101", + properties: { + name: "郑州市", + cp: [113.4668, 34.6234], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@nWVUKÅ@W„nVnI‚ŽV@œkƂšwV@šnn@lxÞlnôJ˜zXJl@nalUČVlƒl@²UlkôVVUnm„I°VnV°@°¦VJnIÆJÞan_VmU@ama™@kU˜¥kaUklw@UIV¥kVUI@ƒmmUÅmUlƒwVU@amU—JWbUakVƒ—Vé¯Im`ƒk—@ƒwVWmLkU¯ŽƒXkWmLmx@UUƒbm@@x™J@LbW@UUVWUkVKƒ@ka™IUamKUkkmmLƒUkJUVWXkWmnÅ@ƒKƒL™@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤„b‚kôKXKlL@¦²V@JƒL±@„@VU@WV@X@`XXmb@Žšblaœn@Jƒb@V"], + encodeOffsets: [ + [115617, 35584] + ] + } + }, { + type: "Feature", + id: "4105", + properties: { + name: "安阳市", + cp: [114.5325, 36.0022], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@a„wWWXWakKWkXmlašIVmX¥ƒU@a„@WnK@kƒƒ™V™I¯ƒ@KğI@WU¯LkK›akƒƒ_kmmVU@VWXƒKnVmbXbVLmln@VVknlVUnVlkšlnXbmlmlXblnÈlWbn@@nšK@V„L„bVV°VVzšlnš@V™xƒI™b™ŽU@WLUa¯V™UkWõ@¯kkmxk¼l‚„XUlVbVLnlULmU@lƒLkVUlƒX@xW@¯mUƒ@UmIUW™L@aXa˜kU™¯anƒWk°@k™kKmmUIWaambUkkKmV¯aƒ@UblŽk„mXk¤ƒ@@b™@UbULWVnb@lUVVnmšnVVU„J@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVšVWbnLUJWLUK@Lnn@blVU‚„nUblxVUVJXU„a˜@Ub„LnUVV@mVIVVn@UbV@‚XbmbUV„_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXl‚kVbœm‚X„ylIXJV@@kšKla²UVa„IVyÞb°LlVna@UÆKnLVbšK@anwU™"], + encodeOffsets: [ + [117676, 36917] + ] + } + }, { + type: "Feature", + id: "4102", + properties: { + name: "开封市", + cp: [114.5764, 34.6124], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lUVbXa˜InV@bUV„x‚knVVÆnn@„VJlUU¦VJ@kxVllb—¦lVš@nb@bVŽUn˜aôJÞIXbVJÆI„m„xšUšV„w‚U²l@XƒxVl°bVLXb‚`XklUnmVblLœ@lmšx°LVK@UXIVašWlL@Ukƒ°KkVaVUXmmI@UÅKmmƒXka±K—L@W›@kUÇxUUƒ@@UXUlKkklW@ašX„a@UƒKUaVUUV_@yXk@ƒ@a@U±w@UUW@_„mmw@wVw„mUaÇbUa¯UUkmWkn±JÅxmIbUxmKmn—JWw„kUaƒK@a¯@ƒbk@mVUIWƒ—Lmwm@Ua@WJUb@LUl™@UUmLUbWJ@VL@VmXWWzUJUꄘ"], + encodeOffsets: [ + [116641, 35280] + ] + } + }, { + type: "Feature", + id: "4108", + properties: { + name: "焦作市", + cp: [112.8406, 35.1508], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@V@VL@x@bXŽWV@XkššlUŽWX@J„@nI@KlL„KšUVaV@œJlL@KUk@KÞL‚l²_‚@nWlL„UVVš@nLWVUJVn@anV@a„wÞUVLVx„b„@lW„@lbXn‚Vn@@¼šL°mšKVn@bnl@nVK@blb„L„W„U@VWLXV@nlKn@lVVbXw°nV_@¥Vƒl@XI@mlƒkkV¯VWnI@W‚@n¹nƒ@aWKXUƒaWk@yk@k„ċUkVmbk@WI—yóImÝkkwm@™mU@™xŁ›lU@mJƒX™ak@ƒx¯V@¼¯Vm„UmmIkVWK@UXIl@UWVUU@mVUI¯b¯@™lmKzWKUa™nƒJ@nƒlbÝ@@b"], + encodeOffsets: [ + [114728, 35888] + ] + } + }, { + type: "Feature", + id: "4110", + properties: { + name: "许昌市", + cp: [113.6975, 34.0466], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lI„VnKlnVlnLVbšJlb„@ULVlUXVVX@‚a@KšI@wn@„aVV‚@nwnKlX„W°lVnKUX„x˜@„ln_°JVIXy‚XnW@U‚K@UXIVanKVVš@Vk@KVaXI‚@Vbn@nx˜KnaU™l™ƒn™Va@ƒXa@™VçUUla@aUK@wmUƒLk`kIWVkLmK@V@XUlƒn@JXV@nm„™bU‚óIƒmUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWaƒ@XbmJ@nUJ@bUKƒLÝaUnk@›lXbWbXnm˜n¦lVXnWbUbVV@VkL@VmLaWl@n™b@bk@UVWak@WVImJUbUlmz@lUbkL@lVx"], + encodeOffsets: [ + [115797, 35089] + ] + } + }, { + type: "Feature", + id: "4109", + properties: { + name: "濮阳市", + cp: [115.1917, 35.799], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lLXbW‚XXƒx@bVVnLllVxULUl‚XXlVlUnlŽU¦Ub¯l˜nœK@V‚bVb@šXbVL„KVxVVnIlašb„a„¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mƒÅW¥—aW_k@WwXy@kmƒ@wU„mš„š¦šlUxVLV@UwšJ°xš@VX„@Vb„@š`VX@VX@llšIVbnJlI„bšV„l„˜J@ƒmѯLóa@ƒƒKUa„k™ƒ™Xƒ@UK@wU@ƒlWUUݯImW¯aƒLUKU@ƒkƒ»k@mƒwƒa@UnKWI@ƒUU@akVWK—k@a±ƒbóUWKXUmk™KUmLƒbUx„„@lmLXŽƒ@@b„VW¦Un™JkbWnXl"], + encodeOffsets: [ + [117642, 36501] + ] + } + }, { + type: "Feature", + id: "4111", + properties: { + name: "漯河市", + cp: [113.8733, 33.6951], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@Lƒ‚UnVxnIWa„@Xb@WÆIVlXaVL@VVLVbkVVŽUVlX@bUVkLV‚l@VVôU@Ò²@Vb„nôJVšanƒ@mWU@I„mVk@WkI@wmak™@wlW@w„@VbnLVb°bVyX™V_@aUKVVK@wUU@™™a™K@kmbXVmJUXƒ`kn™nƒK@aU@mw™akb±@¯ƒUUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJ—X@VVL@lVlUbšLVKnêƎ"], + encodeOffsets: [ + [116348, 34431] + ] + } + }, { + type: "Feature", + id: "4106", + properties: { + name: "鹤壁市", + cp: [114.3787, 35.744], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ó™™n@xVVólƒ@¯zƒJ@bkl@@„kVWLUVmVXbVJnnlLlš¯@Xlm„°bVš—lWb@bšKVXnJ@VV„°nX@@w„WVklU„K@knVVKmkUKUaVkƒWkl»nwlŽ°lö@lXšV°UVbXKV@šša„Jšw@Um™™kUy¯UUUƒaƒK@U™L@mm@XaÇkkmWank"], + encodeOffsets: [ + [117158, 36338] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/hu_bei_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "4228", + properties: { + name: "恩施土家族苗族自治州", + cp: [109.5007, 30.2563], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VK‚bX@lbUVnL°„@VlVnUl@VUX@„aVƒmaXƒlašUUU@wmaVUn@Vƒnmmk@m™U@kna™aU¥Vam™X_@WƒU™mW@_kƒVaVKnL‚lœ@VVal@k¥@kUW@kUKVUlUVсW@kÇaU»ValmkUVUVak™@aƒV¯_@W‚UkmVUlU@aœƒƒalI@akkVWUaWXUWwœWVbÆ@„„l„alIVK@U™m@UU„W@al²a‚¯UağÇm@ƒbkk@wƒ@@W™aULmxƒIU‚™ƒb¯@U`UX™JmL¯aƒKX›WUL@aknmK™@aWUXaWm@I@UÅmVU@™™aUV@b™VƒI@WkU›bXkm@VakwUKULWKXmJ@XUK@ƒmL@KUwVaUI@KU@mmn™mXka@»V@@UUaƒw¯yVk@ƒUUVmmkÛÈU@mWUnmx„šmlUbV¦UlbWVUL@UUƒ™IUmÇKV„VbUVVxkn™LUxV`VX@š„„kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlƒLnmUIWV@aknƒ`VXUJIVlUVVbUX@¤mbnLm‚m@UXk@mm@Ukaƒ¥@kV@@KkU@aUKWbkLWVkIVŽk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk„@XVVU@`VXUš‚¼k`VULka@VllVIn¤VU@@bl܃bkx@bkL›škKƒn@bn@@b@JUnV`UnVbVKlVXUlbn@°ƒVx„@@b„nVbUllVn@V—VK@UnW@UVUšlnk‚VÈޚxVb„VVI„xVaÆ@@aka@UVaU@@a„k@Wl@nbVIƎ@Jk@„L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlb„xnKVaV@l¦²nVl@llL„x@XVVœ‚Ķš@našx@U@al™XUVa‚LÈþV°XxWXkK@šmLnlUb@b‚xnLVlVVkb@UJ@xWXXš"], + encodeOffsets: [ + [112816, 32052] + ] + } + }, { + type: "Feature", + id: "4203", + properties: { + name: "十堰市", + cp: [110.5115, 32.3877], + childNum: 9 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@@a@w@kV@nbVK@ƒnUla„@la„Ål@nlVakwWX@WkLšaVmšwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@ƒVUa™kmƒkI™yUUVUmanU@mlwkƒ@_mWXaƒUWU@ǃ@U@aUaVwUKUIƒVkK@UWIXƒmaV@k@Vm@UnwlƒUamk@V@„ULUamxUJkU@Iƒ`WkkK¯XWak@@W@IUV™LWJkXkaÇVUKƒ@kUmbmUUƒUKƒbkKWUkI@ƒkKÝ@@aƒUm»nI@mƒU@UnWV_@aUmWbkLUl¯b@a›kkk@WkkJm_k@UV±@J@b›nU@@WÝIUJVbXL@nlJkx@„Wn@VkJmb—LmUƒ`VbUL@xVn„@XVƒŽ@„mVVnnJVbU„ƒx@„V„nVUbVVƒx@šn„™bUK@bƒ„@bƒJ„šm²„VU‚lbXzVJV„„JVbn@@Xmb@V@bVJÈ@‚Vnkn@°aVVV@šX„KnalLVmšUnnVKVlnLWlXX„Klk°š™šXŽWškLUVVV@nU@ml¯nmbk@W`Å@mb—LWm¯UƒxnêVèk@mbƒVƒnUK™@kKmXk@@JUI›lÛLllnbVnlJ@LULnlÆaVLnŽV@nkVJ„@lkô@²bÆm°w„L„WV@VXšKšVXI@W°ÆVšK„b°U„JVIVV„¦XKVL@l‚InaVÝnUl@@bX@‚™nmVL@lVL„lVLVUnbVW@xXn˜bœU°¤V@š™„a@kWKUUn@VlnL@UV@Ü»@mX@V_ƒakaÞ@VK‚¯@kkW"], + ["@@mUkUUm@nllVKXXVK"] + ], + encodeOffsets: [ + [ + [113918, 33739] + ], + [ + [113817, 32811] + ] + ] + } + }, { + type: "Feature", + id: "4205", + properties: { + name: "宜昌市", + cp: [111.1707, 30.7617], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°`„U@blšUbUVlVkn‚ŽUbV¼Èb@l‚XUÒkVUVVL@lVX@ll¦k@UbU‚›@kmKULUbl„@`nXšŽ„V@XW`nšUbV¦šbmb@lšV@nnlmnU„m@UVnb@xVV™VkbW„nb‚VnVa@an@UaVU‚JXnWlXX@l„¦@ŽlKÆX„bX‚V@VV„@°¯°xXx‚XV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@˜aXUmaVK@UXU„U@WVI‚W„XXV‚U@¥VKœ@‚Uގ„„‚a²LlV@kV@UanKma@UVUnK@UVLXyVL‚knJ@UV@@UXKWUXaV@Vb@mVLnKW„m@aUUm@@UkK@Ula„LXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVƒkU@m±@U@@wVKkaš_@VV@XUVwU¥‚šyUkm@V±ÈUKk»ÇL„m˜mLk@ó£kmWwƒm@U„IkWKXwWU@ƒkLƒwkbmaƒbkK@VƒLkmWIUKkUUƒÇIǫJ™XÅJULVŽÇLUVƒ@UK™@kI@WVI@UaƒWmXVVUL`±kÅLmKkƒƒkƒÅ@Ua›XXxWVXŽVbUXll@bkJ„b›„@bkVUVlnV@X"], + encodeOffsets: [ + [112906, 30961] + ] + } + }, { + type: "Feature", + id: "4206", + properties: { + name: "襄樊市", + cp: [111.9397, 31.9263], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@Xl@Xb°WlLXl„_@JlVVInwVbVK@ƒ@UnlVbk„mx@VUnl@U@nbW„XJ@VlL„UVJVLUxVb@b@VȄ‚@XV„VWbnX@`l„kx@nmVnbUVVVšzlJn„šlVb„UV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn„`Xnl@@UVa@VÈKš£VLVanW°U@UVU„@„`VIn‚mV@„nV@Xa@aVW@UšalkXKšblI„yƍXnlJXbl@@VV@nklU@`„nVK„LVKVb@V„U@UÈK„UVKšIlUX@V`lIVbn@nblVVmV@@XXJšUVV@knKVn@`@X‚VnK„wlLVmUUU@ƒU@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@ƒnk@UmK@U@UaUVUUKV_@al@namWUI@KUƒK@aV@WUIƒbƒ¥ULUJkIm™ƒK@U@K™V@U@a@UkU@K@wVaUwlU@mUƒULmKUkV@@anIWmUK@I¯„mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@ƒƒJma¯ImwUVkKƒb™aUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbƒƒÝV›@UL@¦VWUƒWXUJ@XƒVWV@VULnbWV—bW@kmWXUK@Vkam@kkm@UlmXUŽnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LƒnWmbmš@b™`ƒš", "@@kUUm@nllVKXXVKmU"], + encodeOffsets: [ + [113423, 32597], + [113794, 32800] + ] + } + }, { + type: "Feature", + id: "4211", + properties: { + name: "黄冈市", + cp: [115.2686, 30.6628], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VVUnWVXnVJ@„‚U@V@VXŽV@@IVJUnŽ@V@L@KlIVlVanLVbnVlI„ƒn@@a@Kl@@I„JlI@aXU@KlK„kVblJXU„VlU@V„bVkVKXn@VlxVa²I@VlVUxln@bšJXklaVWnLmÅ@y@k@ašI@W@aXIlVVaV@nnlKnLVW@IUa@a@K„UVVlI@wXKVV@IUƒla„@lUXwWƒnƒnalLlxXLll°@XwVKVaXIl™nb˜@nln@Va@U@k°ƒUmÆUVaXI„JV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkÇ°£@aUUVaVVnKlkX‚mkƒ@ƒlUVaX@@Um@‚™UmlUXV„UVU@w‚K²¥Ua@I@UV™l@U™V±UIUÇ°»VkUmVI@a@U™m™ĉ™¯V±bŹĖğaÇL¯lmŽkX@‚óĀ@ŽmšÝêb±WkLƒn@xXx@Ž@b@V@LW@UbƒlţXƒ`kxWnXô¯¦ÆV@L@JVLƒxkK@V@bkz°l‚lXz@J„UlVla@XUV„bVKXnW`XXV@laVV@V„X@V¯xƒx@xULVbUJ@n@LU@VmmakbUK@b™IWWUUVkUmkLm@VJkb@nUJƒ@`V@kX™aUaVmmLkUmJ@Uk@U„±lkzmJUb@b„VUxVXU¤ƒL@JƒX@VlL@JkLUVU@mnUl„¦@V"], + encodeOffsets: [ + [117181, 32063] + ] + } + }, { + type: "Feature", + id: "4210", + properties: { + name: "荆州市", + cp: [113.291, 30.0092], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÈJV„lVVLXJln„K@UlL„anbla„xlK@„XVWxXLlƒJ@V„nXxlnô¤l@nKn—‚ƒÈKl¼VL²Ç‚Un@Vl™zŽV¦UxWVU@@U™`lbUL@xV@²@@nlVU„UJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@a„IVmUk„™šxVJ„U„bܙ@Uk@WWnk@Vƒ„™Vm@I@m@Un@m™XUlVlUnJ@knJVU°@@aÆLX@ƒllL@¦nJV@XblLVa²U@UlWš@VX@`@LV@@bXJlIXml_lJœU°b„KÆLnVVl‚@ö—Vƒ‚mXaVIĢllUlVnLVlX@@b‚ašnnxšV„L‚bn@°ÆXmmkĉƒ¯w±™™™Uċ@KÝÅƧŃÝ癙Uw¯ƒm™¯k@W‚kV@¯UIUJW¼kb™Uƒwk@W`@¦Uônb@VƚlÈ@VU@ƒƒ£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Uƒa@JW@k£kaWVUKmnkKƒb™kkVWb—VmUUmwU@kk›@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamœUK™@mlk@Wb@VXL@x@xWI@a¯Ž¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@Uaƒa™L™KUVƒIƒ„™W™XamVVbUK@b@Lm@UWkxULWVUnm@UlUX"], + encodeOffsets: [ + [113918, 30764] + ] + } + }, { + type: "Feature", + id: "4208", + properties: { + name: "荆门市", + cp: [112.6758, 30.9979], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@n@lxlInVUnWJ@nUVV@Xb@xVƚb„alLVUnx°Jnb„I@„V`lInbl@@V°mn_VJÞUVLXx‚@nllKVb²kVa@KlknL°ƒ@JVLXnmJ@bU@VlnLVKV„@nX@lUšKVaXal@VKn@¥°L@Unw˜bnašV@KV@VUX@lVXI@KW@@IXWV@laVL„„KlaXUVVnkVWV@lwXblIXWVkVmšaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LƒV¯™U@WwkmULƒamVVUU@ƒƒIƒbUKUa™kmƒm@UakLmxU@UÒWlULţÿmwkIUm@a‚kÈblW@UVƒUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWƒ™aUwVaۚƒaƒVUI™wƒšVlUnƒJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmŽXX@‚@nWKUL@xVlknkL@bWJXbWLƒKkb@VlL@Vn@VV@bƒnX‚mLUK@nUaU@WbXVWL@VU@@V"], + encodeOffsets: [ + [114548, 31984] + ] + } + }, { + type: "Feature", + id: "4212", + properties: { + name: "咸宁市", + cp: [114.2578, 29.6631], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÞƂLČ@šV‚š²š°xĊ„nlWnŎ¯m@aƒK@„„°‚n„Jšwn™VIUaÆJšÅ@wšwV™XW@aV_l@²V°lĊwlaXLšwlUkalVVaX@lVXI@a˜UXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@a„K@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXƒ„lV@mLXblJ@kV@kk@KU@WƒkUWVÅwkLmW@UmL@lUL™KULƒak@maUUÝwUJƒIb›KUUƒ@š™aWK@kUWVkUwVw@™mÝ@™I@wkW@a›ww@LU¥™kƒJ@nVJƒIkVVnkV›UkyUIUl@xWUkaW@@°kz„ŽWxkLUWmzk@@bVVVš„b@‚@XlVœ@Vl@bVbUn™`Wn—@Wb„VVI@`„LVbXLV`mnU@@lƒL@LUŽƒak@ƒLk@WbUJn¦@lVb@xVb@n"], + encodeOffsets: [ + [116303, 30567] + ] + } + }, { + type: "Feature", + id: "4213", + properties: { + name: "随州市", + cp: [113.4338, 31.8768], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„@nš`lw„k„ƒ„UmUVWX@lk„@VanUĠ¼V@@mX@@nVV‚VXLmJVLnK@b„V@@J„@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVƒVUVLXmmk@wUaUKUV@°™@kmaUaÈmW„mUƒVklaX@lVnxl@@UnaUk@ƒVUVwVK„nš@VVn@VbVJUknUmmVmk_Vw„KUUm™Vak¥@UVKVIkW@UmIVWkIVƒkmmLkwmVUƒ@LƒUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯™mJUnmLUaUJUaWL@UkJ™ƒUƒ@ƒaklkU@¯@KWLUmUUWVkbƒLƒŽUKkbU@WX@JX@@LWJkUW@UVU@@L™Umb—amx@V¯K@¦mŽULk@WbUb™LkVW@kVVxUb@x@LlV@V@b@VšU@L@V„LnšlJVIVK„¦„aVJ@XUŽ@b„LV‚@LVJnXmbk@@bU`VLUVV‚b@V@VnL@Vml@„@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@b„VV@VV"], + encodeOffsets: [ + [115830, 33154] + ] + } + }, { + type: "Feature", + id: "4209", + properties: { + name: "孝感市", + cp: [113.9502, 31.1188], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VnXK@L@°lVlk„b„@„VšlI@VXKVbVIVbnKVmnI°šlŽÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@„V@KV„nUlxnKlnU„lJUXnJ@VlXUJUL@Vl¦UbnšVVƒLUxl`UnnnmVVlnVK„bšmVX@a°Ý°LšaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn„@@UU¥V@@UUK@ƒmaUVUkkJ@L@K@UmVUI@JU@W@U@UV@ƒUIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwk™ƒVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbƒKƒb¯L@WƒXkWƒ@UakL@UV@UmVUmL@UXWVL@ašUƒVUUUVU@yUUƒIUa@wUKWVU@kƒ™™Wk¯UkwVKƒLUx™K@nVxUlUUWVUmw@wƒUUyXWlX¦WbUV@„U‚@blbUVVbXXƒl@lVL@bk@lxkVVnVx™¦ƒ`UnkL@V@L@Ž‚@@xnL@lVL@VnVVblLXb@‚@zlVUJVnUbV¤™bUnUlWXkJWakxU@UXml"], + encodeOffsets: [ + [116033, 32091] + ] + } + }, { + type: "Feature", + id: "4201", + properties: { + name: "武汉市", + cp: [114.3896, 30.6628], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nbnm‚knJVUÈ@@Uƒ¥VknmV@VUlK@IkK@U„W@I„KV£UWVwƒU@aVanIly²kVƒl@@VnIlVnKUnVbšblWU@@_„‚VI@mlaUIn@lKVnUlVVXXšJ@aVLlanbUnV@@K@mVIUaVK@w„w°w@UƒW@UUUkbU@WWX_WmULƒaVU@WkbkUƒV@IWyk¯kly@a@UlL„wUK@I@KÅUW@ѱUm@wl¥kaƒ@@_Vw@ķƒa@akw@ƒkKW£XVUVwVwUaU@VUU™™xWKkbĉx¯k±Uk@U`@bWXUš™x@x™ÆÅIVbUJmš™xƒImƒ¯@ƒ™Umx™nUVVbnJV„@Lƒ@@ŽkV@bVnƒ@UVULlx°VXlššl„V@XUVL@xVb„JVV@zUVVVUV„™V@bUKWX@VnKUVVnU@@VlKVb„@lX„W@X°K„a„Lla@JX²Wb@ŽUV@@xVbXlWb@VUXVlXLV`Uš„lŽUxkLmVUŽlLUVVxX@lb@blL"], + encodeOffsets: [ + [117000, 32097] + ] + } + }, { + type: "Feature", + id: "4202", + properties: { + name: "黄石市", + cp: [115.0159, 29.9213], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VšUVV@VbUx„aWUœblUVmnKlX@bXJVIlVUxVVVIU‚zlx¯š@‚VbnL@x‚x@UVaXK„b˜@Xk‚WU_Vm²klW„XVK„Žl@nXV@@w„mlK²X‚aÞén™@ôÿ@lWn°kUKmmUљUmm@ƒwkImWU@UakL@bVLUVċ@™bUK@alIXKWK@™nXnKmkUVwƒ@¯b@L„lUL±W™n@KULUaW@kL@lƒL@bU`@nUb@bmlU@UÇJ@UUbmKkblŽUULUJV¦¯V@VWI—V@bWJkUW@UbkUlbkV"], + encodeOffsets: [ + [117282, 30685] + ] + } + }, { + type: "Feature", + id: "429021", + properties: { + name: "神农架林区", + cp: [110.4565, 31.5802], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@n`lIXll@lœl@b°aVklKXaVn@bU`mX@V„V@nmJn¼„V@bÞ@lL@„lJXVlL„aVLV„nVnalV„@VLÈUlblWXIšKVU@J„™š_‚@an™na‚X„m@KmI@mkk@KVkWWw¯w¯°ƒ@UUU@WƒaÅWkL@ƒ¥@kWWXkWmIUVVbm@@bUbmUU„ƒbW@UVk@mVkU@U¯ƒmKVUkaW@aULƒÆVbƒb@VÅ@Un@VƒLWl¯Lš„"], + encodeOffsets: [ + [112624, 32266] + ] + } + }, { + type: "Feature", + id: "429006", + properties: { + name: "天门市", + cp: [113.0273, 30.6409], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@K@UlKVm„_š¥UwUmlUkwl@@aUK@k„kWWUaVUka@aV@ƒVUXaW¥Xk@WWIklm@ÅxmI™VÝUkxkaƒ„@bWJaUL@„W@™l¯UULU‚ƒbƒkV™Ua¯bm¤UnÇUkmUšUx˜b@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@n„šlVbVL„a„J@„VV‚UnU„bVKlnXxV@°š„U@KnL"], + encodeOffsets: [ + [116056, 31636] + ] + } + }, { + type: "Feature", + id: "429004", + properties: { + name: "仙桃市", + cp: [113.3789, 30.3003], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VK°VškX@@ƒVK‚bXI@a„ƒlblwÞVšUnJÆwn@lkXJ@X‚WVz„V@xnx‚VXUVVVkUw@mšLVw„KVU„@Um@alU@„@@KUƒmIUaVUšmnwmw™mb@aW@UkmKkUkVġkUJWbnU„õ˜@UkmUÅKƒL¯a›VkIk`WnkJƒ@xVLUVVbUbk@WlXbm„VxnxUblbUV™@@VUV@nVL"], + encodeOffsets: [ + [115662, 31259] + ] + } + }, { + type: "Feature", + id: "429005", + properties: { + name: "潜江市", + cp: [112.7637, 30.3607], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@UbVxšbX„mJVnXVlmVX@bkxVJVLVlXXWlX@@IVl„V‚U—aVwV™lnÈVVmn£°aVbUš„l„aVUK@mVU@Uš@VUkaVamwUwnƒWaXkl@VaUaVUUK@w„WI@aU@@K@_UW™@kX@V±VUbkKWaU@mI@¥kK„kW@ÅK@b¯@UVmI@lmIkVkUWVnšm@@V@n@JUnƒšU„@ŽmlXXl@@V"], + encodeOffsets: [ + [115234, 31118] + ] + } + }, { + type: "Feature", + id: "4207", + properties: { + name: "鄂州市", + cp: [114.7302, 30.4102], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°¥WóXmlw„_ŤW„kVaX@@K@U@a@WwU@mWk@ƒULƒWkX±lUnV`XWl—@ƒaWLUb@Vw@wmKUa@°™kw‚yVUJUUVwkUUJWI@akWmLUnkV›aXVƒbUxUVWX¤lL@„lx@b„b@ĸUx@`„@lbk¦@x‚n²VƄX@"], + encodeOffsets: [ + [117541, 31349] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/hu_nan_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "4312", + properties: { + name: "怀化市", + cp: [109.9512, 27.4438], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@n„‚@b@XnJ@k°x@aVUnl‚UXnV@@VnJWUJV„nIVV°ŽUbVVVL@Ž²LUVa°V@aV@nm‚UXblLXWVXVmVLVK@an_„`@X@l°„VlXXW`nX@Jmn@b„@nV@Lm`„bUb‚n@VUVl@nIVbUlƒV@LkJUnVV@xVblVUbU@ƒzUKU@mx@xUnn@@WV@lbUb@šnVWXX‚V@VIV@VUnJ@VUz@JWbXllI@VXVVL@ŽVn@„„Wlb@„Žl„XVlL„aV@VJ@XX`„kVwVl@bk„‚bUŽlVXIlƒnLVa„mVwV@@nV@XaVJVbX@lwV@n„@nV@VWnIVVUŽÆ@Xx‚a@I„UUKmk@mVƒ„IXmWUš™VJnUVU@anaVwk™›U@UXa@W™@m_@a¯@@K@UVƒ„bnK@blIlbXa@WW_n@VƒU@¯bmyƒUkUJÇÅ@WU@kWKÅwƒnm°KVkmankVWnXVWV@UƒƒwXkV@mƒ„UlLnaƒVaX@VUn@VnVK@xlnXWšU@a™@@klak™Vw™mUaV@™wmIÛ`m—@mVUXmlIXƒV‚I@K@aU@UaV_UK@wkUmmUKWXŽmVkUƒL@mƒƒU_nK‚™@aVU@Ukak»@U™™@ymUƒ„¯™ƒUUƒVKkam@™nka@ƒmwkLWb¯mkaƒ_VaVKUƒ™IUw@kKmU@WK@UnƒmaULkU@wUalWV¹U@@WUI@WU@‚_@W@U@mƒU@WbbUK@Um@@UmbUwWWkk@WU„a@anUUwlWUwUU@wlJVUnnV@@mnI@m‚K@U@w„a@wUm@_mƒVUUaVUkƒƒƒ_kċUk™VWLƒ@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIl‚knmU@VUJk@@„ƒ@™kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb„¤@bmUUU¯Kƒkmb@V™VU„VVn@@„Vb@`lnœxmb„lUn‚bk„@xU„mV@bmWbUV@VJ„Il@nVUb‚K@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°x„IUbnJ@VWbXVmI@JVX@bk‚@bWL@JUXUK@U@Uƒ`n@@Xm@XVW@@nX@@`ƒImxU@@JUI@KƒLmK@UÅUUV@VW@™¯kUU@UamVUUmJ@n„xmLKƒkmJkwkKm_mKXU@aƒU@b@Wk@ma@zUJVUmbUlU@™xnXlWlXXblK„¤V@@nUVVLkVš„l@Xb@VVK‚nXKVx@znW@X‚@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@˜x@VnI@WlI@anV„IVxk‚l@lbXXšxVVVJVInbV@@ln¦ml@XXVWbkJWb", "@@XLVKVXVKUa@UUUmV@l"], + encodeOffsets: [ + [112050, 28384], + [112174, 27394] + ] + } + }, { + type: "Feature", + id: "4311", + properties: { + name: "永州市", + cp: [111.709, 25.752], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lxUXV‚lXUVnlVĢ„JVbUXVJV@XUW¯„VIUK@klW@Un@„nl@V`XUVL@l@šVx@„XXW`UnUbšxUlVnUšV„lb@VnJšUVVVInJlUšVnwVklKnw„LVJVšV@nIV@nbVa@KVVVUUa„KV_nVVJ@_VW„nV@n¥lI@anƒl¥X_VKlwVlULUVVVš@šU@VXL˜ƒ@IUmn@VU@wmKXUWU@m²šl@VIXWWkWUkWlkIVamUXamUnmWUU@@Un™lK@XJl@kVUk@mWKXkl@@aVU@UVWUUVa„In`VUVLnw@U@K@Uƒƒ@w@UVmUUƒ™°K@UnV@bV@Xk@KVm@amk„aU£VWUUmUUwm`UbULka›KXU@kVmU™@aV_UWVIn@˜y„XXK@klmV„V_kWVUn@WUU@UƒmaU@™wnwWanUmmXkƒam@UakLmK@b™xUUUU@Km¥Vaƒ¯@ƒkUaVUlm„UU@mUUÇmUk™Uyƒb™bUa™XUWWbÅLmL@V™aL@WWXUKmmk@a@UUK™XW¥kU@VƒUkxmVkUWbUJnVJ@nVJXzWxkŽ@lVbUX@VVL@`mbUnšŽUn™VV¼k@Ulm@mwLƒb@lmLUK@UamƒWkƒK@£Ua@ƒ›UkJkUmbVlkX@bWbUŽVŽnnUVl„@bšbVK@VX@lb„V@nU¤šx‚²„Knblb@x„V„ô@šlŽ@b@l@XWxnVl@„VV@XLVl‚LUŽUXV`šbXXmJU@@bm@UUkLW@UlUKWUUb™wUm™L@nklVVmVXXm@@bUKlÆn„‚XkllVUVVL@nUbV‚@V@nnV@xUn¯U@JW@UX@xĉ@™`m@@LV@b"], + encodeOffsets: [ + [113671, 26989] + ] + } + }, { + type: "Feature", + id: "4305", + properties: { + name: "邵阳市", + cp: [110.9619, 26.8121], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XIlJšI„VVK@n@VVVKnLVwVmnLVK@U„@šw„J@wVIƚ°X@ÜȄUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVK„x@U„aV@lk„@XylbUaV_šVnal@W„U@a„I@aV@@aVUl@Xm‚UXWaXml@@kk@ma@V_UnUV™UUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJƒIkV@b@JUIm@Ul™V™m@Uw@a@kWƒXWKUknW@ƒWUU@k™mx™UkVmIUJUU™VmI@UkaUƒV™UmVk™wVaVmX_WW@ƒUw@™@kUKWVU_k@ƒmm@@VkX@lVLUJƒX°WVU@UIVWUaƒIUġmkVUkWUVWkwWXk`mI@¥kUVƒUƒUn±@m›XkWknV„UVmmU@@XƒVƒUk`@Xƒƒƒk@¥¯»mbĉó@mkU@kU™ƒƒ™KmX@˜UnmL@lULkKUƒWUU@ƒbUaUnƒ@Vb@l„¦Ub@l™@UKmnƒKUnl„UVVbUVn„@`Vn@xƒb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bƒbXVl@Xl‚XVxna@Vn@@VVL‚aXaV@n„‚@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm„@VXLV@n‚lL@VxšJV„ULUb„`lb°nXalKnx@„lbšmn@lbULV„„V°š„ƒnV@zšš@Vl¼lb@VUV@bšmLV`„„@n„KlVnU‚XWVLnnlV@xVLU`VbV@"], + encodeOffsets: [ + [113535, 28322] + ] + } + }, { + type: "Feature", + id: "4310", + properties: { + name: "郴州市", + cp: [113.2361, 25.8673], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@²zVaVlnVl@nšVk„Jl_XJlIVmnL@mV@VXn@lV@‚XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@J„I@mlI„KVLnUlVUVVLXašKVLl@nb@ŽW„XV°KUnVV„L@xVJ„L@b@LUVVVU„˜VXbmbVbn@@lUbm@x@XVVVŽ@@˜@bkImx@Vm@Xbƒb@l°XU¤„a‚L„mnL@bl@@™VUX@VxnV˜anLnƒWƒ¥XKVwnUWXmVIUWÆLVx„L„w@wVmlU@¥XƒWUkwlÇn_Uw„WV@VU°wnU—ƒy@aVškVlnL@lVn„w@VlJ@b„X„x@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@a„LlmUaVU™ƒm@ÅknUmaUKmVk@m™kk@UlWUkVm@w@kUU@W™U¯™¥@w„Ç@aVIlUV@kUWU@UUm»@k@mKVkUKUwƒaUaUa›@k„kUWJkImaU@UK™@maUzk`@zƒy@XmJkL@UUJmUkV@z›@kŽkVmK@¦UbWL@a@UbmKmwUK™Xk›VUUkmVkw@UUKmL@WUIWa—JW_k@@WmI@mk@WkWULUUVKUUVm@šU„bš@‚nUǃ@U@w„™V@Ua@aƒL@ak„›l@k™UƒJƒwó@@L@V@„™`@œƒJ@xnn™šmV@bkJmUó@ƒn—JW„UUmƒU@UV@Lk„WlnnmVXbmxšxV@nbV„V@XVm@UVlXU`ƒUŽkn@lWLƒW—zm@UJVXU`@bVšUn@lWVœLlbVKVan_VxnVVVUXV¤ƒbnl@bUn@LWlU@@amU@V¯L„šVVUn@V@x„„@V@L@VmxUKUVm_ƒJUbVV"], + encodeOffsets: [ + [114930, 26747] + ] + } + }, { + type: "Feature", + id: "4307", + properties: { + name: "常德市", + cp: [111.4014, 29.2676], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l™U™mkUwUyV™@VW@¯Va—VmUU@KVUVUVLnaWƒnkUÓV_@mVU@݄w@ƒka@kVmƒUmK@IkaUamKkXWaUW@WUk„™@@KVU@aU@™L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@Xƒ@ó݃@UUk@UKƒV™ƒULƒKƒXkWWbkaƒIUƒWU@mUk@WLaUJġ™ƒ@@XÈÆVIl‚„Vnz°aV@U„m@X`@XWbkakJ@amLƒaU„@V@L°@@bn`š@@XWb@VœVlšUxmb@bUVmVUI™šXVWnƒJU„@nnlVLƒV@JbWzk`m@UVK²V‚x„k„LVl„@Vn@V„„°xVKVkœVVlUblx@bU„‚Æœ@@nVnUll„kx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUVƒ@ƒVkUkV›LkV™a™@@™ƒ¯xUxmX@JVb°WXkK@Vm@k„Vb™bn¤‚xUXkJƒblxnXÆK²l‚_@Wnašn@ŽUL@b‚JnIlV„@lUœ@@¯ô@lWȂIVKVm„U@aXaV@lwVXn@@K@UVKUUnU‚bn@lWšX„ƒlJnUšLšKV@„„l@²a@UlK@aV@naVX„WV_nKlL@KUm@a°U°@VXL@a@wWmXal@„k„@VLn›V@@bl@VnX@mwVa²aVU@mk@"], + encodeOffsets: [ + [114976, 30201] + ] + } + }, { + type: "Feature", + id: "4331", + properties: { + name: "湘西土家族苗族自治州", + cp: [109.7864, 28.6743], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@KšL@wnK±nƒnm‚—@WUk„ƒÜÈn@n»@mVamk„mšU„„l@V™nmmU@wUan¯VKšLn„VWlInyWUœI@WWk@KXU˜n@mnUmU@WœƒmkV@ƒkXašaVaUm‚Ikƒƒ@kaƒX@ƒUm@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@™VakaU@@Xm@Vm@wnwV@VL„yV@VakUUa@wUUVmlI@K„UVkUamJk@VU@UmVaƒan_@KmUƒ@@anm@ImWX_WWUk¯ƒ@k@Wƒ_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbVŽ±K@UKUUVa¯UUmJUƒVIXmI@UU@WmVmkUV@b¯w@lmI@W@aƒ@m¯LXbmJVLklWL@V@XXŽmbVVU@@VU²Ul@VlX@bš`Xx›zUmkUVÒlŽ@bXLWxXVlš@V„bkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLV„lJkn@bmJk_ƒVmmkblxÈx@LUb„xVb@V™n@JmLVŽUš@„nV@¦VbnJ@lVVbkx™bm@UxVLV@n`UnVVV„kl°z„xVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@X„KUV@nVL@WnIWŽXLVKVLlxUbVKXVWbn@@UnKVLVb„JšU@aVU°b"], + encodeOffsets: [ + [112354, 30325] + ] + } + }, { + type: "Feature", + id: "4304", + properties: { + name: "衡阳市", + cp: [112.4121, 26.7902], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lšV@XV@„mXVlXL„W‚X@l@bVxn@šŽšUVkn@VJ@I@alU„JXIVm@»‚LXllIXVVU@Kl@VnXKlb@lVbXIVVUšmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXb„Ul™VK„¦nLVVUVVbšb„K@U˜LnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VšIVUnJUVUl@nW„XllIUa„KVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@m„kVƒVUVaX@lšnaVLÈ@‚¥@kkJUWJUaƒXkaUm‚wVXJ@_lWUU@¥n_‚KkamUK„™@amKƒnKƒbV£¯W@k„aWan@@UnwlJ@a@—@UUU@W‚wn@Va@km@UanaWa—UVƒUUVU@K@aƒKUI@wƒKUUVm¯LWUXƒ@mak@UK™LWbUKVUkUmVUKƒLkJ@nƒJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`ƒIUlm™k@mUUkUb±yUX@VUV@bk@WlXL@nVlUl‚k@WI@ŽkLmš@VV@XVmnnVWbnVUblJXkVl‚XXlWXUJk@±™@nXVWVnL@xUVm@Vn@J—„WK@U™V™@UUVUVKUkkxULW`k¦m„@bkJm¦U@ƒmUX@`UImUU`ƒLVbUVUU@LUbmaU@mJU@U™UIƒKmxkLUl"], + encodeOffsets: [ + [114222, 27484] + ] + } + }, { + type: "Feature", + id: "4306", + properties: { + name: "岳阳市", + cp: [113.2361, 29.1357], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@™™@UUƒbUKUƒmÛamm¯xVLkbÇƃUƒVUzkVUlƒUUKWLX¦W@ƒVUUUaƒKUbmLKm„@akU@aƒmVaUUVIVWkk@wkƒƒ@@xmLlmÅwmbVlXlÝIWVkK@kkVƒL@VWKU@Ublnaƒƒm@b@bšnW`@XUJk@UUWKƒk@UKƒnn‚@xmLUVm@kbVbV„nV@V„b‚@KnV„LWšXŽÆVĢ¦VblŽš„n„UJWz@ƙVóUVbkV™aÅx@¦lVUbVVknWKƒ„k@ƒwƒK™VU„Å„ƒl@zkb@`m_mJ@xX„mbVbœ@llV@n„@llbXL˜UXalUšl„alVnwnLVKlšVbX@@I„V@blJ@bVL@VVVUXȤ‚VnkVÑXmlbnš‚„VKkÑř@UmaVç@±XUlI„xlV„@VaX¯lUVVUšVJn—V@°°nŽ°„Vxĸł°¦šb²¦lJ@U@aUK@kUm@_m±VIXal@„Kl@„bV@K„K@k„m@UmUUaƒK@_UJƒaXU˜@Xmš_VmUk@WUk›@kU@a@m@UƒaUUU@al@ny‚XXWWwkly@¯n@@bnV@k@mVI‚„œVlUUmlU„JUw„I‚bXƒVaUal@K„b@ƒVKVkXVl@VkUU@ylUœVVaVL"], + encodeOffsets: [ + [116888, 29526] + ] + } + }, { + type: "Feature", + id: "4309", + properties: { + name: "益阳市", + cp: [111.731, 28.3832], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„ŽÆxXL@l‚V„@ĢšVI‚bXKl@nVV@„XVŽ„JlbXalX„W„LVKš„„UVLl@VV„@ôބ@@Wn@lLlK@wnIVJX@VX@lVVUL‚VnkVVnKValUXblKnXl`UbVLÈU@W@IšKV@@bUV@Lš@lƒXV‚@VXXblWnLVblb@JnL„VUn@llb@„ƒx@ÞUV@nU`VÔmlX„mbUKUVUV@LVVUn˜ŽUb@°UXš@U‚VzVxnlVškšVnlVnaWƒ@wnIn`@_la@y„kƃVƒšU„L„xl@„ƒXLlmUUVakU@¥ÆwšblUUaôVšU@ÅXyVImƒ™ƒkUaġ¥ÅUWX™ƒKmU@Lƒa@UmUUƒUalan@VUnK@wm„m‚L@V„lXLVVl@VI@WX_™m@a™¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVƒU@JƒwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV™@™„kJċwUU@KUWkkW@IWW@km@klwkWVkkU™V¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@„lnU@m‚nÈmVƒa@bUL™wUb™@@VkxmUUƒ™UV›K@IƒUƒmk@akm@wmIƒŽkK@b™VWXkm@wULUmm@UVW@Ub„mbkKƒVn„U@Wl„xV„U@UXmWUXmlnbUl¯Lmn"], + encodeOffsets: [ + [113378, 28981] + ] + } + }, { + type: "Feature", + id: "4301", + properties: { + name: "长沙市", + cp: [113.0823, 28.2568], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lVUllXkx@lln@‚XX@JlXXl‚V@LVVČxlIšƒš@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlK„x@I„VlUVJ@XXKlVVUXKVX@`VLX¦lxVŽnLš°‚an@„„‚bkmVaV@XL@U„KlU@llLXUÞJWkUknaÆxnŽ‚knK@w„@l„@xllUXUJVVUb„n@blV@bnƒ‚LnKVa„LVbVV„UX@W¥XKVL„VVklUVy„U„VÈÅlaUK°wnnÜbn‚V„VL„aVVš@šn@VmnVlIlJna„@Valkn@na@amwm@„UXw˜K@aUUVUUaVa—wWK@kU@UaW@kKUUƒƒ@k™W¯XWan@k„™mmÅ@@I@U@KmLkaVUƒKkLWVUƒk@UVmU@am@kkk¥ƒUƒVUK™„maUb@ŽUb™I@aƒKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xULƒ@ULWW—LƒĕmxVVL@šVb™KUwƒaŲWwX@@WƒUWLU@VbkV@aU@@VUnmJ@VUn@VƒLUK@U‚mUIk@UÇmU@@UW@J@LƒbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVƒUƒVUakbWwka@UWKkLUamKUXm`Å_U˜ƒULmaU@@lUV@X"], + encodeOffsets: [ + [114582, 28694] + ] + } + }, { + type: "Feature", + id: "4302", + properties: { + name: "株洲市", + cp: [113.5327, 27.0319], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@X‚‚Unw„Ė˜KXXVK„@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LXŽ‚@Xnll„L@bšJVa@VanbšƒVL„U„V@al@@UV¯ÅÇ@Ummk™w@¯ƒyVwnUVVVUkmWV—nKVUƒa@WXkVKn@lUVU„VVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWwƒƒ@k@m„X@KX¯V@VUVa@VnKWkœƒV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@ašUš@@am™@aUU„UmXmWUk@ƒƒnUW@_maVm™wUkamaUL@aƒwƒW@akI@UƒxUm@kmKUk™lUŽ@b„zV˜m¯xUVU@ƒXVxm`kÈlxXVW„@¦kVUn@xƒxƒKUwÅKVXUJWnXŽmVUxWL„¦XŽm„mK—bmUUwW@UV@šk@ƒšVLnŽlbLm`@¦VVkX@`WIUŽxVnlb„WVbXIV‚lI@l¦Ç@UKmbk™W@UbUVU„ƒl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWx„zUVVVVKnXW`@bkIUl‚„nLVJUbUIWVXlWV@XklVbnn@xlš"], + encodeOffsets: [ + [115774, 28587] + ] + } + }, { + type: "Feature", + id: "4308", + properties: { + name: "张家界市", + cp: [110.5115, 29.328], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@InWVw°wš„@š@šblUœKlUlV„U„@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkƒVkUm@m›@ÅVƒ@akwVaUk›UUlUL¯wƒƒ@UUmƒ@UkƒKƒlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmƒU@kxW@UaUIWbU@@mU@UxƒnUbmKk„WJkUValƒ@aUkUxƒlW_@WUIU@ƒbkKWUJVnUb™bWb„lU@nl›„@XnVmV@n—mWV@LXl@X›JXVmzkJUXmƒ™KULm°Vb@xnVmnUšk@ƒƒ™VƒnnlUb@nm¼m@Ûǃ„Vl@X˜mnm„²ŽmL@x™K@LUl@nULÆx@V@VXVWbXX˜l„@nLlm@bVKœX‚W„L°bnUš@VaVUš@šmšVw„JnwVK°zn@V‚Vb„a„@Ċ¼"], + encodeOffsets: [ + [113288, 30471] + ] + } + }, { + type: "Feature", + id: "4313", + properties: { + name: "娄底市", + cp: [111.6431, 27.7185], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lL„nJ@xln@bnlV„‚„@JœLVUšŽV„nVlw@Uš@VašxVK@a„bnUmÇnV@km@ƒ‚I@VUVVXVaX@@wlVVUkW@_mKXU°‚UbVLnaV@‚V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nšU@WVU@kV@nbVK„V—lƒ@nLlƒ„LXU@ƒlmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²a˜ŽXblKnLlmVI@KUU@akLUaVa‚UXm@aƒ@wVUVKnLnWlXl‚n@@U@anUVm@U‚Inm@IUK@UmKVmU_kVUwm@@VmL—K@VƒL™aUaVUUUmKƒ¥ULkšƒVWaXwWa@UXImWUaULUUWKk@WnXbWŽVWnk@UV@bU@@bƒJ@bƒV@XkŽmb™UU`VbkaWzƒ@klU@ƒb@VƒwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwƒVÛÇW@¯Å™UJ@xƒI™xƒ@@VULmKUnUxmKULUUm@@‚ULƒU™JkIWJ@b@LJUW„kJWnUV@nn˜Ü_nJšxU@VbšnUxlškb@lš@"], + encodeOffsets: [ + [113682, 28699] + ] + } + }, { + type: "Feature", + id: "4303", + properties: { + name: "湘潭市", + cp: [112.5439, 27.7075], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Æ`n_VWnLVblKXL@VlbXxlaVb„U„VlUVJnInJ‚@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVn„a@K‚IX@@VV@nŽVÈl@VJn@VVL„K@UVm@UnIVm@UV@@blUUaV@XK„V@XW@XxƱ„bVxšLUa@™UKWk™@wmmUalk@WXUWkXUVJVaUImKƒVklJ@aX_mWULUUVUƒyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaƒLVbkJkƒWmXk@UVVŽmIUV™J@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x„Ž@bWnVUbVblK@bVV@LUJknmKkLWa—±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@„WVƒKk„mK@k„"], + encodeOffsets: [ + [114683, 28576] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/jiang_su_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "3209", + properties: { + name: "盐城市", + cp: [120.2234, 33.5577], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„n@‚°ĀÞ°@¦ULWKkx@bkLWb@lUlVXXJVbƒnUKmxXV@bm@@Xš‚„LޚܦXlVnš‚mzVJ@n@‚²ÞôkƃÞaȰĉ‚wnljÜó„éVÛnĊīČlj‚ĉ@ō@KÞUlU@ƒkklÇÈњÑlġXɛ@UġƒƒaU@U_ƒW@n™@kaUL@VW@kKmkUV@bkbWW@bkzma@ƒJWI@KUKULƒ@U¦™`@XUJ™U@KmXƒw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@„„JVn@bkKmakVVXUVVVlI@`U@nzVVƒb@¤n@@UlKXLVVšI@V@nV@V‚@ÈUx@šóVōšƒkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVƒbV‚nLWVUX™WUXUŽWLUŽ@Wl°z@VkxU@UVWIxWJkbƒĬ„nW@@bUl"], + encodeOffsets: [ + [122344, 34504] + ] + } + }, { + type: "Feature", + id: "3203", + properties: { + name: "徐州市", + cp: [117.5208, 34.3268], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XKVX@WnIVx@K°Lnll@@I°K„nVašU°x²mlxš@VanU@aƒk@akmV@@w™@Ua@aUwVwUw@w›@UK@£kaĉlóIÇVkŽ±@@kUKmVkIkxW@Ua¯UUm@UVI@WVI„JV@ƒ@Um@Uana„U@m‚I@J@XV@XaVlkXƒVaUUWLUyVIXmWak@ƒXkJókƒJUL@KWkk@ULU@Wa™lUIkJmI™mk„VbVš@lV°kXUKWKULU„mb@VUlVnƒb@VV@IVKUUmU@ak@@bmV@xklƒUƒU@UKmV@nƒJVbkXƒKUamLUJ¯UUVmI™bVV—Ll`@LƒLU`m@kXUVU@V„lxUK@xkIWbUKƒx@V‚kVVn™b¯@@U™@ƒxk‚mbkLÇK™b™@@XnJ@LmVklƒ@@XƒlUƒVkxƒakVVb@bVnUbU@@x˜VUšVb@š„ŽnIĊ`šXVVôJš_„K@xlU²Klk„U„@VaVVÈm@kVUVmnamUUaVƒXIVJ„@‚ç@¥nkVLn›„@@XVK@VUX@JVUV@UnVJVLUJVLUVlšnI„b‚KnU@m°™VanI@anV‚KVL„an„lK„blš„KÞk@¦@¤@„VKnLVK„L„KVzlWšLX@VmV@VbnU°@Ualk™˜WXLVU„KWkUUWšƒ@£Wa"], + encodeOffsets: [ + [121005, 35213] + ] + } + }, { + type: "Feature", + id: "3206", + properties: { + name: "南通市", + cp: [121.1023, 32.1625], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VJ@bnzWl°L„xnW@LšVVI@Wš_V¥„@VKVL@LXJ„I‚@nbly@aXXla@aVUnllLX@@UVKlbš@@m„XV`V@„bĢ„lkČÇƃȘ¯šwnĕVĉVÿšUƒUĠƒŦğlXÑVǵ@±ōLʵĖ¯lÇbÝÞ¯xk@Çkķé™n¯@ğŽġƴǫ@kVVlUbƒL@xULǂóLUl¤@nkVV°VLkxVb@l™aUXUKWĖklVX@¤UšƒUkb"], + encodeOffsets: [ + [123087, 33385] + ] + } + }, { + type: "Feature", + id: "3208", + properties: { + name: "淮安市", + cp: [118.927, 33.4039], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šnźUôÒɴ胚l¦nĖV‚kbmš„X@xVlVL@xUb@bUJVnUx‚šœ„lKVLÈx‚m„zXV@lW@XV‚b@bȚVxnb‚ƒVIXa°L„aÆVVaXUlK@aXIƄVlXKVUlIXalK@alwXLVK@¥Ý¯¯ÿ@ƒmVk@aX@ƒm„īlaXI‚wXJVUV@lw@U¯yb›UaƒUġUÅaUKVknaġm@kUm@wÆIV±nLÆw„ÇnUUkƒ@ƅÝU¯JÝI¯¦Ul@bƒ@@VVL@l@LƒLÅmƒL@b™@UaVaUWmLUKV¹KƒLWKX¥WI@mXk@UmaUVUU@VmL@W™bkIUWƒUmVóIkbmm™@UbVLUxmJkU@bkJWbnXU`Wz™KUÞÈlVb™Lmx@„kè@Æ"], + encodeOffsets: [ + [121062, 33975] + ] + } + }, { + type: "Feature", + id: "3205", + properties: { + name: "苏州市", + cp: [120.6519, 31.3989], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ôèĊVnX°¤²„lxƒÈÜ@²x@J@b@X‚`nIUƙUUV@bl@VVnL@L@xƒJ@X@blJXnW@@`XbW„kVƒ@UbVxƒXUxkV@LóxVbUVWš²šVJĸklUǬ@ĢƳĠ°@šmƒī°»ÈÇ¥ULUU±a@bU@¯ƒU@KnImUVWUk™mXUVU@lIVaUUVWKUbUkWKU¥n£WakJUkUL›K¯L™KkƒVIn@VaUƒVUUƒ›UkVk@ƒU@amUkJƒ@UUlwX¥W@@UkVmk@JUakL›@kk¯ÝmJUn@nmVXlmbVVkn@„UJ@±WUxV¯a¯KōbżÇxUxƒšUUlWL"], + encodeOffsets: [ + [122794, 31917] + ] + } + }, { + type: "Feature", + id: "3213", + properties: { + name: "宿迁市", + cp: [118.5535, 33.7775], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XbWnUJVzXKVVUbW„klUWbU@@W@IJ@nƒVmbVbn@@V@„UŽƒIUJ@XUJ@VVn°VVbX@lwlJnUVL@l²@lÈUôJĊklb@¤VLœ@@xVxUxVx@bVbš@@xU@ln„mnX˜mXLVmV@X@lxVnVJôL„LXa‚x@b„@@KVL@bn@@m@™@alLUUVaU¥nIV±‚I@mXI@aWWXU@LlUXWW_XWmaUwǙ@aaWUX@@kWUƒynÇwUKkL›ƒ™VwUmVI@aVa@wUKUk@wƒWn™laUmĕk¥„™ɳçóÑŹV™mmzkVmm@a@Ióƒk@@LWU@`—„WbXLWlkImJVn@`nXVbXŽmL@Vn@‚l@nUVl°Xx°U@LVĠ@z°˜@¦UV@Xn@VJmV"], + encodeOffsets: [ + [121005, 34560] + ] + } + }, { + type: "Feature", + id: "3207", + properties: { + name: "连云港市", + cp: [119.1248, 34.552], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@‚lzXxmÆV„„@@¦„@l`XnlKšXXm‚KnLla„b„@„xmbm@kL@V@Vl@@VUXšJX„mbš@@„°Æ@èÈzlW°XĢJlÈ`lInbšWV_@mš™@UUķnƒôw°ÆmnaVƒVÛVmĸ»Ģw±Ý@@mUIny™UmWkۥݙƒK™@Wn@@aWUnwVL„mUaWIUWVk@kkJUVWLUkŃWJ@bkLWVUbÅUƒb¯KWbUJ„WXX`WXkV@KWVXX@bWJ@nJU²mJV¦UbVVkK@b@š@nm@@aUK@Lƒ@@awWbƒKóKUIUmkwW@U@UnWK—nmWƒn@b„l@bmVUb™@kw±n¯w™VUb"], + encodeOffsets: [ + [121253, 35264] + ] + } + }, { + type: "Feature", + id: "3210", + properties: { + name: "扬州市", + cp: [119.4653, 32.8162], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VUXblVVV„b@xV@kz„V@l‚wVLUbVV@VU@VbUbl‚b@nkĶ°IÞV@Ɔ„VlmVƒÈÅxmKU²ÅJ@xVn@lĢnmbUlVLÆbĢV„V‚bœV‚aXk‚@VXKVVWšXVWXUmKU„aWaU@™¥@£XW‚UUV@@ynam_VWkUVUna@ÆV@mnkWmXkWU„W@k„@@akklƒlWUI@UnKl¥™I@VVma@a@I@U@a@anK@UmK@ÅVUnJl™kI@aVwka@mVIUW@UWL@WÅbmIƒƒULka™UWƒUxkLUKWlXL@VƒImƒÅVƒU™mĉL™Uól¯I±l@ÒUbVbUVVXUJUnVV@lnbl@"], + encodeOffsets: [ + [121928, 33244] + ] + } + }, { + type: "Feature", + id: "3201", + properties: { + name: "南京市", + cp: [118.8062, 31.9208], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@k@ma@kUUVmVIUWVUUaVa@Ѳk°Jôk@Wmk¯KmX¯aUakKƒƒWU„@XU‚LXaV@@mUaVUUl@VmkaUXm@ƒWUUna°IlmV™m™IUW‚@Uk@@aV@VVX@„V‚I°»nm„U@VKVan@m»UaU@U_@WlIUa™aVaUala@¯n@‚ƒkaUkUUWKU@mwkUUmmL@K@ƒLmUUVƒKƒVÅImU—JƒƒVkVVLšèVLVU@W„L„V„š@nVÜULVŽUL@bW@XbWbkJƒUUVUxVXmVk@WUUkVmIƒV@„nbnVWbƒJU„kUULƒa@Jma@XkK@VVL@L@JƒLUVU@V¼ƒnXlƒbm@kbUKmn@lVb@VXXV‚UV@b@LVbÆxXbl@@lV@U„VV@XVK²VlIš`„UbVbUlVVn@WXn@@VUV@„@KmbVLXқLkKƒV@nX@VVUV@b™nVllbšmnb„IWVXU@`lLlknVnmlLlbUmVInK°nUƒU@l@VU@Vn@„ƒ@alI„`VIXaVaVa"], + encodeOffsets: [ + [121928, 33244] + ] + } + }, { + type: "Feature", + id: "3212", + properties: { + name: "泰州市", + cp: [120.0586, 32.5525], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lUU@@y@In@WwXal@Þxl@@anVô@ÆX„lŎ™ôU@™Vw@ÇUU@@m@U™JUUWKkL@Vm@@£„aUUmyV@@_kJUUVUUWlUnblL@aUmƒI@ƒULUW@IU@WaUK@£UK@aV@°V@LnUWWXIla„VV™@£UWlkXĕVLVWšb@kUalwUKU¯lU@mk£VôKȁVK@w„KVaUkķlUI±™ğ¥ÝUŹš™Ž¯ôm¦ƒĸ™‚@XXK@VVXUJ@nlbUx@blJkšmIUV@ÆnL@VmL@b@b@V@J@bnb‚U@UšJk¦mL@VVJkXk„ll@bƒ@@lƒXXVWlXnml@nÅU@ŽmbUVlVUXn`mb@zU@V‚VWX@¤š¦V@Xb"], + encodeOffsets: [ + [122592, 34015] + ] + } + }, { + type: "Feature", + id: "3202", + properties: { + name: "无锡市", + cp: [120.3442, 31.5527], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nLƒÒlxUVkL™am@™ƒkVWUULUxVVVbUV@bVLU‚nnź™ÞVĠ¦X™VUUaôw@KlUVw„WUwVa„@lUXƒWa@_X@WmkI@a@W„I@w@KmKUUk@@aVUšVVÅmJ_@W@a@I±wÛ@ƑÇkw±ƒ¯£mWĉUóçƒK¯VkUWK@XkV¯UWabƒmUa™UUb™lln@b@xƒbXŽWX`@„VxUblL@bn@Vb@`m@XbWnn@l¤„n@xnVlU„™VLÆWœkV@VbÞJ‚_nƒl@nKVU@aU™U@mVk°WVLUV¯bVXŽ˜bXlVn@VmL@x—V@bl„š‚@œnW@X@VVJ@²VJVU"], + encodeOffsets: [ + [123064, 32513] + ] + } + }, { + type: "Feature", + id: "3204", + properties: { + name: "常州市", + cp: [119.4543, 31.5582], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„L˜ŽnxUbVVƒL@xnnW‚nn@VVXn@‚yœImx„„°ƒšL„a‚¥n@VkšKVw„W@nX„VJ@b‚@UVn„ƒ@UnUV@L‚b@`VLklVÞn„Æ@VaXLl™ÈJšmmVUK@aVUUaUUVwVKXVlUš„n@šblKVUkw„ÑmKUVUI@±UI@U@WmX@›™kƒ@a˜U@wnK@UUmWk—aWU°aVUUK¯XUl@nVŽVš@bUVmLk@m„`ÝIUaU@›lÅXUKƒškVmU@wƒmk£m@XmWan@@_Uam@@akKVaUw@ƒW_XW„a@w@akmm@mL@UJmnUKƒ@@XnJWLkKUb@„Vxk„WƒL—aWVUImVULUK@L@lkLVVVllb„m@@°kbVbUbšbVbkJ@XV`V@Vbn¼"], + encodeOffsets: [ + [122097, 32389] + ] + } + }, { + type: "Feature", + id: "3211", + properties: { + name: "镇江市", + cp: [119.4763, 31.9702], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šVĊKšn„VÆUn„„J@UWKXkVLlKVwX„šVlbVK„„nJÆaš„ķn¥°óÇIkšWKUbÅ@mƒUÝlkUK@_a@KVUVm„@mƒVU@@aUIWƒ@mƒXUx™LUlm@¦ƒb™K¯„ƒƒnw›Jzm@UW@UmmXmm@w„KUUVamw—ƒKm@UbUL@ŽƒVmn¯¼JƒUW@UUU@@bl@@VŽVXšJšnnU‚‚k¯JmbVV„Xn@VWlbUnk@VVUŽVb@nU@WbKWVƒ@XV„„lLVb°bnW°Lnl@X"], + encodeOffsets: [ + [122097, 32997] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/jiang_xi_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "3607", + properties: { + name: "赣州市", + cp: [115.2795, 25.8124], + childNum: 18 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„`l@Èbln„@„KVLl@„V@bȎlnšKXkVlVL@„lJnb„¦VKVVnX„W@w°@VU„mln„UV`šU„bVUV@„xnKVI°KXKVkVL@al@Xa„LVlULWV™VVL@b„x@VXVmb@x@V™VV@nn¤„šlb°b°KXXWbX`lbXx‚z@x„`VIVUnK„L‚x„WXLVKVbVLVU@wnW°b„@nalX„‚mXVJn@U²mKkVl„U@@xlnœaVmlKnœ@JVLlŽnVššl@XXÆèVlUX@xVLXVšb°W@wnUWmXk@K‚LVwUmUkUKUw@wVaVK@kƒ@WnkUKWkwlmXL@KVUlLVKXmWU„L@ašL@malaVk@aa‚ašƒnXš@VVUblb„Jn˜ƒXa„V‚wn£„K@UWmUk@ƒUaWIV@b™JW@KmmU@aUUUkmKkVKlUU™nKVU„lVaV£Å¥WUUK@UkUUw@m@mIkƒƒUUWƒLƒK¯Uw°¯@wUKUbƒKmƒ@kkKUL@UUKV¥U@manw@k@U@Wm@@U@Wwkm„wWaUU@UUmV¯kwƒ@@kmƒkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@ƒaXwla@UkVWaXk@K@lmkUmV@Vmbk@ƒ»XIƒ¥VUkƒVUVU@anKVUƒKUalU@wX@˜™@a@K—@ÝwƒL@ŽUnÇlUIkJmn@ŽƒbVVb@VmnkLƒV¯U@ƒ±l—IWmƒ@kaUI@aÇU@K@KUIkbWbƒJUIUyƒX¯ƒUbU@méUUmUk„WK—xWIkJm@V¥U_UJUwmVkšƒUU@ƒƒƒ@knƒwm@UmkWJkL@n@VW@@‚U@knm@kUml@xÅxƒ@@XUJlb„@VX„JVxn@lbV„@lULnV@VlnV@bWV@bXL@lVLVb„V@blLn@Vl„K@xln@bX@lašLVbnKUVVb„KlXVVkxƒV@nnVUb‚lV@@z—°WWkbƒIk‚WL@LUJ@bUI@b™`@UmI@mkK¯XW™™mUV¯@UUVUUam@@VULWUJƒIm`IUJ›KUkW@Uxn‚WbnnmlXbmIUVmV@Vnb@V™LUKWLnÒVVV@V„UL@„kJUV@bƒÈ@ŽšV°šŽ@XVV@l@xUz"], + encodeOffsets: [ + [116753, 26596] + ] + } + }, { + type: "Feature", + id: "3608", + properties: { + name: "吉安市", + cp: [114.884, 26.9659], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lxnb@V@bV@ln@‚n„‚lInš@blVXK‚nk¼@VUKWL@b™L@`UXU`ƒ@V¦XLĠ@lJ„¦@„nV@l°nn@‚mVXnaš@nb‚K„n@l„IVƒš@VanJ@_lKVVnš„L@L‚K@Vn@VbšUVanKlLnbnJVbšnWVnVVanI@‚Vb@L„bVKVanXVbVJVU@aXLll„bôlƼXxVLVK@Xn@ƒxnVVVmb@LnVVKVXV@@mnaVXUVnV˜K@_UaUmšwnKV_‚anKVLš»„K@¯ÝU@›™U@kWlUn™lknK‚VnaUkma@ƒUIUwl»Åw@ƒVwV@n™‚n@ÈXlKVmna@kVw@anm‚@n_WWk@™™mUkUK@Im›kLUn›bkm@wV@kƒlUnLV±m@UInWƒkWmbƒ@¯amX@xUVUKUaULWKƒXwƒKmLUVUJƒ_@wyWwkaW_XaWW¯L¯akaƒ™m£@mUUš@U@wnaWU@Uƒw@aUKšUXUVKUkƒKWbk@@bUKUlWL¯LUJmLƒwU@UVƒa™VU_ƒVkmƒnUV¯@@xƒXmWUUULƒ¥makI@ƒUKUkWl™LkmǍ@aƒUk@UKƒLƒ@kmÇak@ƒ_VlkL@`lbnšlLVanLnbmVÆln@škJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzšxUxnl@bVLmŽšŽ@IVJXœVlƒLV`@bn²@J™@™V@Xmbñ@WbUJ@bm@@LUĬU‚„¦lV@xXb@blnUV"], + encodeOffsets: [ + [116652, 27608] + ] + } + }, { + type: "Feature", + id: "3611", + properties: { + name: "上饶市", + cp: [117.8613, 28.7292], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„„@„V‚š„„I°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVVœ@lkLmbn`VbnU‚@Va„UnbVllUXV„a@w°VW@_VWšLššnVlbšLVbnl„KšnVK@IUW@_@am@™‚ÑUólK@U@WU@VwU@UI@aUU‚aXƒƒ@kwmJV@yX@k‚anƒƒ@mkwVmmI@aUU@aUUW@kVkV@@anKš»„XVWnIVUl`@_„W@wlUœV@UWKnU‚bnŽ°InJl„UV@VnI‚b„Wn@VklL@l@Vn²m@U`kI@bWJƒnV@°VXnJm„XVmx@VVL@bkLmWULUmU@ƒbWXb@llnX@‚xkxVV„nVV@¤nL‚nVxnJVXX@˜ššbn`VI„b„@„blmlLnaV@„blWXnlUnbl@„ƒšKVanUVmm_XK@kWWnašU@UnaWUXa›ƒXamUkKmXUWƒLX¯WakKm™nUWwXa@KW_„aXWW_@WnIVl@XU‚LnWVknK@ImyUUÆbXK„Û@W@IÆUnƒVÝlkVK@mUIVwkUVaUm@aVIVyXIƒaÈwmmk@UnanVUmÅaó»lwšW@kkUVmUK@WKLƒUmWULkamK™Lk@Wa@wk@UU@U@mbUIWVKUXWmkUmVm›U@LkakKƒw@w@U™¯ƒ‚ƒUUn¯l@bmn@xkJWxkL@VkI@mƒkmJUI@V@b@VVxnbWlkÈkVƒLƒbkKmVƒL@V@²nxW‚kLUL@xlKVx„bXmVnšWJ@ޙ°@n™xUKUw±`UImVmnU@kalm@akwƒU@UUJmxU@@Uƒ@kU@Um@@Kn™ƒVm@k™KmkU@@WUnkLWxkVUwmKmLkU™bmKUbVŽ@xUnkJ@n±ŽšUxVXUšWJ@LUb™lUnm@ƒW@nknUJUVm@kXllknVbÆK„VVbš¼V„@šUl"], + encodeOffsets: [ + [119194, 29751] + ] + } + }, { + type: "Feature", + id: "3604", + properties: { + name: "九江市", + cp: [115.4224, 29.3774], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@WUkVUkmaƒVUb@mVUam_nalK@kU›nUWaU@@wna@UVkUWVUUI@a‚±n£m¯_ƒJ™ƒU@ƒƒƒĉ¦Ul@UV™Km™mLlm@ğ¹m`Uk¯@@UVK¯™@UUK@amkmKkVVUa@UkUƒKƒŽUa™L@VVXUJ™@ƒnƒ@™š™WUbƒnVb¯V@LÅlÝIƒJÅkݙm@Ua™WUU@UmUXmmwVUUKWUX±mUam@kWƒzUaVmÇw@aÅLmKXƒ‚UWKkL@W¯IƒwVw™lkUƒJ@Um@ÛÈWŽKUxWkƒaUU@KkLVl@„UKUX±KUb@nVVUbUVmaUlUL@„ƒaUL@‚@nUlWzX`@„V@lx²„@Vlb@bšVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞb‚a„J@IšV°xnbl@nbÆ@VwnK@VnXlK°xnUlVX„V@Vl@L@lk@W_XK@KƒkWxUL@J„nVx@aX@VVUa˜IXlmL@bVVX@VbnK‚a²XVWƒk°a„@UnV¤nbmLmW@XbmJUbVL„aÞK„L@K@U@aVKlbV@nXlJœxV@VnšŽVȚ„ÞKôbźĕČmV@ĊšŽ²xÆIšV@Þ¦ĸ¼ÞVlŽVÞnxln°Jœk‚LXWVUVUVwnJVI@yn@lXlaXmWI@w—»ma@UmK@akKkXmW@_kaWakKWk@@K@IšWƒkUa„ƒ"], + encodeOffsets: [ + [119487, 30319] + ] + } + }, { + type: "Feature", + id: "3610", + properties: { + name: "抚州市", + cp: [116.4441, 27.4933], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°V°UnÜ@n@lnLlV@bšV°L„lnLllVzVVXlV„V@@L@xX@WlX„m@UVƒL@V@n„°škVmVUnKlaXxVbšnlU@lVVnaVI@aX@V„šJš@V„@b„b@šVbš‚@X@lUL@Ž@VlIVm@wUVanLšalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVƒk@a@UVWn@@kl@@W„XlW@_Um@UVK@a„LnalInWV@@xnI@¥‚K„—šm@kKmƒnk@mlI„¤laXbVblknV@U‚KXVlUXa‚@@Unw@±mU@ak_±a@ƒUJUIƒVKW_Xa@aWU™šK@mmUVa@IXa@UWmšannlmX¯WKXwVUVwƒ@XUlK@klJXa@kƒkmm@Uwƒw@¯ƒW¯kw@WmbULƒaUUU@mVUU™WmkUb™KmkkK@aƒkUƒ¯¥Uƒl—ƒm@akU@mš@KVIVV@KUkUVUkaƒUWb—„mƒIkaVaUU™@mW™„b‚b@bUlkb‚b@n™K@bƒKXVWnULkKUV@LWKknlxXŽVLml@X„Ž@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯X™aWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mšU@Ux@„Æxk¼VxVJ@„nbVlmbUmLklmškVlX@‚VœšV@°Þ"], + encodeOffsets: [ + [118508, 28396] + ] + } + }, { + type: "Feature", + id: "3609", + properties: { + name: "宜春市", + cp: [115.0159, 28.3228], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@VlbnK@b@JšLlUnx±ĀXxÆW„X@lš@V„@@blJ@nX@˜xUbVVUbVV@b—VmnmJœ„@bmbm@klUbƒLmbœš@lVb@xUX@bVVVbV¤@LVV„bXlVw‚LXÜÇn@@V„IlVškUx„x°J@XlKXLV„‚WnLÆK@bÈxUnVb„ylXn@Vbn‚W²XV‚LVVUŽnxWnnV@VVVšXVbn@ޚÆl„IÞJÆk@K°UUa„mVa@UUUš»@wV@VƒkkUKUVW£U@UmW@@aXkVUnVlKVV„UUkVmU™@kWaUanU„VVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkƒWK„UXV‚Ikx‚@na„bVK„b@nVJ„_V›@Vw„‚VUVVXUlUUaV@X@VblašbnKlkVaXaƒ¯@m@U„KVUn@WƒXkW@@w@KU@UƒWkUUUykkmKƒk¯K™U@akUmK@k@mmÛ¯V¯U@‚ƒL™¼UKmLbU`mL™xVnVb@`—LmUVUUWmb@nU@UWULmU@KnaUUmU„wmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIƒÒlVUnnŽ@VlLUJ@bUX¯@ƒaWVUKUXƒKUbm@UwKWa@a@VkUWn™@Uak@mbX„WJXbm@mL—aWVk@™wƒL@WmanU@knwWmkaWL—KWUXaƒU@¥l„UVVVbnwƒ¥nKV™»@aUk@a@UƒJ@kƒmLma™@mbUWnm@ULǺ@LXnmxUŽm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@X‚l°Vnb@bU@WbKUX@VmKUX"], + encodeOffsets: [ + [116652, 28666] + ] + } + }, { + type: "Feature", + id: "3601", + properties: { + name: "南昌市", + cp: [116.0046, 28.6633], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šXš™„@„mš@VIUW@UšKVb„„LlV@VVbUŽlUnLnl@bVL@V°šUL@V°@Vln_Ġºn@‚knKnššLVU@VkĊ¥Vk@™Uƒ™»UaƒUÅLUalmkklWn@VUVIlm@m„Xn@VmškVa@KXIV™UWVw‚™²@m@U@VK@k@W™Ua@™ƒa@aUƒ™@™IUƒW@@bUJmbUU@kkV™mUaWwkbmLUVUn™lWbUbklmL™akbUaW@U@VbkVWVUUUVƒUx@‚Uœƒ`UI@mƒaULƒamb@lwJWUƒVXLl„UVmL@bUK@aUnUam@UUmJ@VnX@`UXVŽVb@bX@W¦nJUbƒUmVVbXb@lVšUnVlƒVUUkLmUUVWl@bX@VnV@X¤VUVLllU„U@@x™¼VV@V"], + encodeOffsets: [ + [118249, 29700] + ] + } + }, { + type: "Feature", + id: "3602", + properties: { + name: "景德镇市", + cp: [117.334, 29.3225], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VVX@Vbmz„xUlU@mbmL@V²xVbUVVblbX@šVškVykValKVI@bn@n`lVWnX@l„L@™WKnƒVIVa@¯nK@alIXJVIVWUw‚ƒn@nU˜„nK@alI@a@anKm_™a—™W@UWmIUwmmK@£UUƒmUUlwwW@km@kWaX„aV@VnVKnXlK@aUK@UnwWUnƒmIUW@¯mU„XI@alJV_n@m±@U@kkKUlm@ƒXamJ@UVUkƒmI¯JmamVXL@V›UkV@xƒX@`k_UVmJUXƒW™¼mL@bU@UllX@VV@bVV@bnJUnlx@n„Žm„b@lWŽ@zU‚nIlx„@W„bVV@bVJV@UxV@@X@VkLVôÒ‚šn@@b@`VX@J"], + encodeOffsets: [ + [119903, 30409] + ] + } + }, { + type: "Feature", + id: "3603", + properties: { + name: "萍乡市", + cp: [113.9282, 27.4823], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VWnL@UVW‚LXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@ƒƒ¥kIğ@WKU¥„@V_VW@_šK@aXKVL@Ul»mWLkU@am™kJƒm@kmU@@a@UmakwU@›„Xlƒ@VXk`UIW¼kWWX@‚œ@l‚xV¦XlW@Ubn„@ŽmUkL@UmJ¯UkUWVUaƒUlm@UXWl„nUJ@LmLU˜nXll@bUVUUmVUn„Ž@¦šxlŽnn@VÆÈU°kbV„VxllnL@VnVVUl@V„„anL"], + encodeOffsets: [ + [116652, 28666] + ] + } + }, { + type: "Feature", + id: "3606", + properties: { + name: "鹰潭市", + cp: [117.0813, 28.2349], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@XV@nlšL@lUnš„mŽ@Ln@@VlV„@@VV@nwVI@V„Vlx@bknlbV@nmnUVJ‚_²‚VxVLšw@mš¯@ÝXIm™nUWƒaUwkL@wVKlKXmw@±@U„KnUlL„a„KlUlÇXkmaUw@U@a@Uƒ™UkwUJ@zWJ™w@WbkVWUL@VmUklUaWakbƒ£kJ@nmln„lL@Ž™nƒ˜L@¦mJ@wU@mXkJmbƒK@bUL@VVn@`kXƒW@Xk@@lm@UX@V@b„lÜUXVWLXJ@nmb@V@l"], + encodeOffsets: [ + [119599, 29025] + ] + } + }, { + type: "Feature", + id: "3605", + properties: { + name: "新余市", + cp: [114.95, 27.8174], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@m@@WULUKWwÅ»ókƒakkWK@bUVUIUamWUbULƒa@KUa@mJUbmUXU™mUamImakKmLUb™VUam@@UL@KƒKm™UUkL@`mIUb™@U„@V@bVl@bš¼UŽmL„¦mxUaUUƒVkŽ@¦„VWbXV˜LXKlbXnmx@lmVnb@X„Kšxl@XU˜bnKn@WaXIWƒnal@Vbš@XmlV@U@bXb‚LVxn@Va„LVWVLXU„b°@VW@aVIkK@UmVmkU„ÑVJnalLVUVJXbVkVJXUlblUXJVI°JnI"], + encodeOffsets: [ + [118182, 28542] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/ji_lin_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "2224", + properties: { + name: "延边朝鲜族自治州", + cp: [129.397, 43.2587], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Wxĵ„mš@„ó¤VX@@xܼƨš²xWxƒV„V@„XVƒ„„„ƒbWšXllaÞU°Ċ„@ô¼„LôÝWanV¥ƒÑnĉ°¥šÅX¥°¯@w°w@»°k£°mÈŹ‚mÈbƃŎ¦„K°z@Žkxl¦UbU¤šššklV„KŤÞȰ@@bšV@nVVUlÞ¦lUllœVlU°ÑU¯Vƒ°w„bXxl@VŽ²„˜@n„ô¼ƒó°™kmVk²ĕ‚w@wV™ÞÞ@@Ġƒö»˜¯œ@‚„šbnb°mÞ¯°V°„ÈJmX¥mam™UřƒUƒlaU¯™ƒ@w™Kk—l±n@@wƒkÝVUUl±¯I¯b™a™lƒ@™kLmakbƒ@ġƒŹé°™Þb°šékƒƒLm™„wX™‚aÅb@bVlƒbVb—ÒVbUb›UUanwƒakbVŽUV›ak„¯„UŽƒLmxV°UxnôŻX@J„Xkl‚bkbĉaƒbƒWU„ƒ@ƒk„WUU¯@@klmƒ@@™Å@aƒwWXlKkI@WbUaVIUanUƒƒ@ĕƒ¯K™„mUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KœIƒwl@UmƒI@an@@mlUÅmV_™KUkƒ@U`@_ƒKUmU™@U¯™mmb¯@kb™ImV¯ƒƒLkbƒKƒƒÛ@ÇnɱJóaÝĢkb@„›x—ÒÇllœ@‚Ž²V‚„ÆUVV„UÇ°X„óxlV¯„lV@bƒV@n—x›@—¤@„șŎnxV¼knšJ‚nšKX°˜¦UlnVbUbÆVnÞWVX¦llšb@l°œVJôÒnLVbšbXŽ"], + encodeOffsets: [ + [131086, 44798] + ] + } + }, { + type: "Feature", + id: "2202", + properties: { + name: "吉林市", + cp: [126.8372, 43.6047], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ôl‚zšaÈV°„šK@„mŽ—LWl™nšVxUV‚È@ŽÝĬUÈn‚ôLša‚„²VmĀkV@„ĠĊnU@b„V@b˜@nl°UVnÞaôJ@bš™V„¦mlkššbmVXx¯@Vxm„nbƒ„šbÈK‚V@bÈL„wĠyônšmnbÜ@nn„V˜x@n²K‚„„J@k„al@nxÞU„Lź±Vwkw¯LWWUš™kŎīVwƒw„°y„Vĕ°wÈVlkÛ»@wW@Uô£@ƒn™ĶƒXwW™aUamKóÑUI¯›@k™akkW¥XUmÝÅUVaUa‚mVk—¥W¯™Lm™IlmU»mwȚō@ƒ˜£kJUÇk@am¯y¯UVwƒa@wġx¦ƒKƒƒ¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVƒ™ƒkIUlóŽċ¹™`óIƒlX„WŽXxmbUƒLݏƒbƧ@ƒx¯bƒÈ—l@xƒš¯zƒaݤ@nšm„VWb²bmn¯J¯Ò@n„š"], + encodeOffsets: [ + [128701, 44303] + ] + } + }, { + type: "Feature", + id: "2208", + properties: { + name: "白城市", + cp: [123.0029, 45.2637], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ó™ǩŁ@WlwUaƑwÛÅÇéĉamKƒōÇ@Iƒ™ôġVƒȁÑŹçƒ™ÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦m‚Åb@nmlU²VxšlUn™@VbnW„bÇbk҃š„n@èlnlšU҄Ž°Lšx@¼ĉb@҄šUŽċxՃènLVxƒÒƒbÅJ±a@_ÅJÅnƒŽVb„Kl„nUÜĊ@„Uš™xXVÆn„mšVššJÞ¯V™ĠwšƒXw°xWL„x„KV¦ôU„wVÝǬóÞޙ¼‚‚„ÞkŽVôȘxބU„lVn¦ÞšĊa°w„b°@šbÆw„lŤL²`„z°@V@@™nJVnl@@¥nUmmn„@mwnmmUnk@mlwUaƒLnƒ›wn¯°anƒWakI„ƒÇmXwÆamUXUlJXa‚UUklKUknmÞV@‚K@VWÞ@VkUwVƒ"], + encodeOffsets: [ + [127350, 46553] + ] + } + }, { + type: "Feature", + id: "2207", + properties: { + name: "松原市", + cp: [124.0906, 44.7198], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„šźèȂÒU„óĢ„š@JŎȄ‚‚LnŽĊbÈêÜƃxVbkx@XǪłôš„kÞ`„šW„b@n°ašbšKšnVw°`š_X`W„š¦„ĊIkmVšakw‚K„x°UÞb„U@lšƒl@°¦œVW„šaÞbšxÞI@mVI@ƒVkŚUWK„¥nL‚a@ƒ„@ȍ„@°ƒÆ@nU@KÞalkUwVékUWw„™kU›VkkƒJk¯@»ókƒV¯ÆÇI@bĉô¯@™ķw¯nmmÅL¯wƒVƒUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWX™mLõm@kűV_ƒƒô»ÛƒÆ¯@™Va™VšaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzƒy¯XɅm@VšôÇX¯Ė¯ºÝnUŽnLVlUÔmV"], + encodeOffsets: [ + [126068, 45580] + ] + } + }, { + type: "Feature", + id: "2201", + properties: { + name: "长春市", + cp: [125.8154, 44.2584], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„U°xÆKnn°mĸxš°@Ċó@aÈJ°Å„Uôl@¼l°„IllœUlVƒšXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlރlwô_„›„bVaĶLXÅÞÇ@K˜¯@wÛaƒçn¥š¯WXyW¯XwƒUmmÛ@ma™nómğzƒxÇK@aUÇL™a„ƒmanƒUw°@WwnU™al™nkƒ¥šU™@aóIÝbUm¯Vmk—@@aƒU@amVğĉ@ƒlUnÿ±Uƒ™bóKmVÇÞī@ÇVUUw‚™šmXk˜Kn@ƒ™L¯ƒÇU™byókōè@b‚n@lÝX@x¯ô@ƙUV_maXm@aóƒJWxnX@ŽVVnĖVnUJ@nōÆǼV¼kxƒLklÝw@xƒx@zV`ÅbmxU±xU„nnm‚kn‚ŽğU™bUŽ‚šUb@šÅ°Ü„󼄄U`Ʋ@lön‚KšnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝz„V"], + encodeOffsets: [ + [128262, 45940] + ] + } + }, { + type: "Feature", + id: "2206", + properties: { + name: "白山市", + cp: [127.2217, 42.0941], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ušl¦kÒÆ°„IlÒU¤ôz„¼lJš„U„n‚ÆXVl°@²aÆbVKČXV¯°¥¯ĉ°W„„„L‚¥Ģw@x„bUx°V°zn‚‚b@ÈlVŽlIœ@˜w@m„U@akU°ƒkUôwWƒÈ¯VUƒVUƒÅ±U›@kÈk˜Ñœw@ƒlaÞġƒUÞ£@ƅ‚KnÑĢ¯@W‚aUaVUVkkw@a¯@¯™Ý™ƒVXnW@@WkXmK@xkKUb@bW@Uw¯„mmb@WKUbmUbUaWbƒJĉIVW@I—l±LkšmU™bUm™@ƒnkKWa¯n™@„`Ubma™„ĉL@bƚ—@W`ƒL@n¯‚Xb‚@kb@x™Lƒ„™@V‚kL±™™mlUIU¥mL@lÅx@_laƒƒ@U—aƒV@kmmƒK„£ƒƒLƒƒmKUnÅKVbmXVlèĉUUbml„ĢŤƒIlŽ¯bǦœl‚@ô¼Ģ„@x°„l¤„n„a„l@x™b"], + encodeOffsets: [ + [129567, 43262] + ] + } + }, { + type: "Feature", + id: "2205", + properties: { + name: "通化市", + cp: [125.9583, 41.8579], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÆlXnĠxĢ°lÈ°š„K„°kXm‚@¦Vbk„ŤJšnݤk„VÞVVkȄb°y„™@w˜k„Ç°a„wƨ@„aސ„K‚VnaWwXWƒ„kôJš_ČºôVkƒ»óyV£kуJůlÑk¥V™ša@wƒkƒbƒmk£¯ƒ@wġƒó»@›kÈ¥°ak„JÆ£ƒġnkVaĊVkçWUnUaÆLVmnL„„‚KU™±@—„m@a¯U„bmV¯m@_ƒK™™U™ƒaƒÅ™Wó¹ƒ@UanmWak@@wmI@y™@mk„JVa™@UaƒIkJ@n™@Um±kkxƒm™Ik„ƒbÇm@Ž°bXn„V@Ž°ÈmlÞ¼¯XVº¯Lm„kWWXLmVVlknƒ@@lnWƙ„Vxbmšnšm„¯lÝaVȁè@¼V„„b™„ÆŽ°ÞUVšJ„„kx›I—xƒƒƒIV¤™ÒXxmn"], + encodeOffsets: [ + [128273, 43330] + ] + } + }, { + type: "Feature", + id: "2203", + properties: { + name: "四平市", + cp: [124.541, 43.4894], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ɇn°W„zlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmVƒ²w‚VnwÆaU_@y„w@wÞxlk„KlwU»È»ŎÅ@mVIUmmĕUU@mWXw„Iô‚@bWnnbU`‚šV@Å°ó@wÞW@km@aŎ烙@m°Ñ°Inm±aXaƒU™n@mƑšU¦@šÇŽ¯aU£šaU™ġ¦ÅҙJōUŻókUÇ@™¥¯ak¯mUVak@@aċçÅaUƒm¦Ý`XbƄ@n`ƒI™xĊÞōÞml@šUb@Wl™_¯JkšÇUÝÆÅb@n™„llUb¯„±a@ƒ—ƒWĉJġĀ¯™Unóšm¤œxôaVnƒxôI@x„V@bmƙ„@lnLmޯޙxVb¯þ"], + encodeOffsets: [ + [126293, 45124] + ] + } + }, { + type: "Feature", + id: "2204", + properties: { + name: "辽源市", + cp: [125.343, 42.7643], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@żôŎVšIÆÑĢ¥Vš™bV¤°bȍ@™V¥ƒ™Þ£lÇUUUÝlƒÞ£™mţIlƒUa@¥nlWƒ¯ƒL¯™kÇġ¯ğwWmÅk¯UƒVU„„bWlXlmnƒbUx¯xVVknlŽUbV„ÇKUb@„™VnbmlnzUº±bmJUbWÈnèm҄š@X`WL"], + encodeOffsets: [ + [127879, 44168] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/liao_ning_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "2102", + properties: { + name: "大连市", + cp: [122.2229, 39.4409], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@‚IÞmVk@wXWÜbnwlLnU„@‚nLlbXW@a‚wnbl@XL‚aš@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlb„xl@„IVbnJVLUbn‚lnVw„JVU@ƒXU‚aUUlwn@°ƒn„VKnV°_VJšwl@nwlV„IXWlIVVnK@IWmkIVaVU@WÈUlmU@U„WUalkXġŻ@kIƒ»mm™akUm›ĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kƒw@ƒUƒmwĉ™@ƒWķсIĉÇbÝLkymbIƒwÇmÛbmbU„¯ÜõÈkÆVbŎxnXVÆnšǪ¦„bš¤Uš™xÝnĉÒmĊVȄ¤Èš„bƼ„Ā„„ÆÆބźb„VVbX„‚°²¤"], + encodeOffsets: [ + [124786, 41102] + ] + } + }, { + type: "Feature", + id: "2113", + properties: { + name: "朝阳市", + cp: [120.0696, 41.4899], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@na@UVI@m„ÑW™kaV¥UI@wl@„aÈbšm@wVašk„@@K@kƒ™@a@UUmƒUUalmU@KÇUű¯@±kUKVkUaƒaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@U—m˜aXIWWUL™aULVbƒmk@UUmUk±™_Uym@mbkImaX¯WW™xWKzU@WƒkJWwkV™@Um@UbVVVVXb@VWX—@WŽ@Vkb@V™nUK±aUUlwX™ÇWKknU@mmUkƒLUVƒVUUVƒUaƒw™bkKmwnIƒ™kJ@nmbƒ`kmVkLWwUm@UUU™K@UmaUa@UUaWK@mUƒ¯Wkk¯VmUUŽ„xVXUVmL¯ymXkWUbmXUKƒVknWx¯JVnkLƒl@VVxnxlĀVL²WlX„l@bÝVUn@bnlÜaXblIVl@šš@Ȧ@VmbXV‚@@x„VVnUn@`°@VnXU@K@„VV@VmbnVn@ln@b„xƒ°Ub@bšLV`Ånƒ„W@@lUšnnWVU@Vbkl@Xl`XxV„UblŽkX@Ž°¦V„UVVbUlkV›@UbVbkLUxmJkXšš@b‚bœxVKÆlXX˜bnŽnala@ƒUk@U„VVklKVUXKVU°KVan@VUnLšKVL„WVaU_@mmUXa@m˜wXwVkVWXk‚k@›„k@klm@wXKl@U@KVUUUVaUƒV@„alL„xUx@b°°VnnVšxlIXJmx„LUVlV@bnX@Všb„aVx‚@XJ@b‚n@VŽVXȄl@llX@lU„Vô°°@ބVbn@‚V„k„@VW"], + encodeOffsets: [ + [123919, 43262] + ] + } + }, { + type: "Feature", + id: "2106", + properties: { + name: "丹东市", + cp: [124.541, 40.4242], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lzXJ‚U@š²x‚@@Vš„@bUVmKUn„°n@lnVK„„nV@n@VlV„°WbXn@‚VzƒJ@¦@bkb‚bUl@bkbƒJ¯zƒWULWbklV„nb™¦VJ@„„K°U„kl@@W„bVn°@„Všm²U˜nX`„UÜLXmVXlKVbUVVnUbn˜ƒX@VUL@lUbWxš@²kl`n@Vlb„@nUVWVLVU@aV@²bl@ÈmšxWX„VÈU„JV„l@„„la„WnX‚KÈkÈ@Va°bÆm„@XV°IVV°UnalƒVUn@UwVU„@@VVJ„I@bl@XK@wWmXU‚UVbkJVXnJVI@mƒknwlKXL@`l@VI@UUaVKÞn„aVm@aÇ£XW„U@aÇUU@mbkKm£™@WW™ƒL@@Kk@kl›U—bWKUkUU¯UõÛƒmUUaVU„U@WU_W@kVkJƒ_WKkV@bUL™¯¯ƒ±mk¯ġƒğÑ@UmwƒKUakƒ™ƒa@a„m¥ÝƒIUWmk@w™mţ—L›KʝbȗKWĢklVbƒX@VV‚knÇV@XUVUblJXn@J"], + encodeOffsets: [ + [126372, 40967] + ] + } + }, { + type: "Feature", + id: "2112", + properties: { + name: "铁岭市", + cp: [124.2773, 42.7423], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XJm@¯šmXUlnVbUJƒU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VV™V@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUV„x@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVz‚l@„nVVKVXރ@mk_lm„UUWV_nJlUÞÑÞVVUVƒVL„UVJ@I„Vna‚@@KV@XwWknwnKlalU„w„aĉݚwšJl_@aUaƒKUUU@WU@WXUÆ@@UVK@n@UnVVšblK@bœllb@b„bW@Xbl@UlnLl°°bš¦nKlVnI„V@UWU@WXkƒw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJšaX_VaUaVKmwnkmmn@lU@U@mnašXlKUmUIVmklaUK@UlUVUW@U™kVm™a@UUU@JmUU@@bmb—KWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m™™@klm@UXKVaUI@KWUXaƒÇWk™aWUkWUL±U@lUU@ƒUJƒI@V¯JmIm@@aU@Uwƒa™@UV@VkI›V¯aUkƒWkb@bVL„@@VVVUXW@Uaƒ@@b—‚ÝbUV݄@ŽƒLmUkVUbVllLUV@LššXŽWbUXm@U`@„kxlnnJlbnIllšLX„lVlUXmVK„n‚V@L"], + encodeOffsets: [ + [126720, 43572] + ] + } + }, { + type: "Feature", + id: "2101", + properties: { + name: "沈阳市", + cp: [123.1238, 42.1216], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ȚĊÜ°„b„L‚lÞxUbUn±‚@ÈnVÆL@xnLšlUVƒbƒxkImJkn@V±LUxkV@bšbšKVKnzVl@L°@Va„xÞUlbôxVVœ@@V±bnŽ@llXL˜ŽöXĶŽnal@nkVJVI@aU@@aVK@ašUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@a„VVIUa‚mVknW°™n@WI@KUƒmULWnkVkUWƒ™KkkmJkamIkmlw@ƒV_n@VWXaW™™@KVUkKUkValUnV„K@ÞƒVUÞa˜@a„@VbX@VWUU@Uƒ@UK@ala@IkKmUUa@U@ƒVƒkk™WVwU_@KÜUXbl@V¥XUVmƒƒƒXa‚kŃlUUkIm`UIUJW@UIKmkm@UUJƒImmU@ƒVUXU`mIUbUK@LƒJUU™l@Xƒ@UbƒJ™kU@ƒŽn„m@Uam@@ƒ™aUmLKƒwƒ™mWXUK@kUaÇa@JUIUa@aƒKVUƒUXmƒUy™_@lmbkLUKWLX`‚n@bVL@JXL„‚WX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LƒUVl@mb¯U@xU@UVVV@X@VVblJ@bn„VKUn„x@llnL±¤™b@k`VXÆK@„kV@¼kl@bWIUl@VmLnbm@@JXXmb"], + encodeOffsets: [ + [125359, 43139] + ] + } + }, { + type: "Feature", + id: "2104", + properties: { + name: "抚顺市", + cp: [124.585, 41.8579], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„XVl°bœUlJ@UVUš@„bVxV@@bn@nJ°I@U„J‚I„VV@V@k²VVKlXXVšb‚lÈX„ŽWbXV@LVJUbWL@Vkn@lšš@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXU˜Lna@aV@nV@IVV@VšbUnšl@V‚XnKVa@U„UnyWkXaƒaVk@ašašbnm@_WKXmWanU@alaU—l@XJVLVxX@˜wnKnVlwƒƒ™@V_@a¯¥@UkKWUaUU‚anK@IƒaU@WUaVw@klUVyUUVUUÇ@Iôbša@mnUma@kXa@UWak@Wa—l@a›@WUƒLmU@U`mIUU™`mUk@@UUK±nkJƒbUam@kwm@@a@UU@Ua@@K@ƒVK@kmKU_UKƒUUaĉWmkkL@`™LƒnmlkLkbmK@k™@Ulmb@b™„@Ž„xUVƒIUlmVXXƒxm@™JUUk@WUk@ƒakx±@¯x¯Umb™KUUVmUU¯UmVVn™WkÆ„lWb„„„ŽUnWVU¦k@WaÛV@LV`UxšXllU„@„@VVbnVlL@J"], + encodeOffsets: [ + [126754, 42992] + ] + } + }, { + type: "Feature", + id: "2114", + properties: { + name: "葫芦岛市", + cp: [120.1575, 40.578], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ll°X„ŽnV‚@XLVb@VVbnb@VšLVV@VVnXxlKnU‚l„_na@mlI„šmJnxlLša„xVbU„VV„UVU„KVlnnV@lmXLšÈWŽkxVV²bVLšm@Ula@UX˜@XW@UWaUUUUVan@V‚š@lUXxlIX„V@‚yXLšw‚ŽXXW°nblJnan@Vzš`l²nVVVl@„nUaVKšbVKnXVaUaVUšyšnXK@kVK‚@X@m@m‚LXa„LWƒU¯„w@™ƒa@UVw„¥°™ó¯¯y¯ƒUǯ»›w¯Iƒm—¯Ç™UUl™¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlƒnnŽU¼±Lk`@X™Wl¦UbmVUxkXVlkbllU„Vb@bkVmx@XVV@Jb±aULkKWXkWmX¯aUJmIkVm@ƒxU@n„"], + encodeOffsets: [ + [122097, 41575] + ] + } + }, { + type: "Feature", + id: "2109", + properties: { + name: "阜新市", + cp: [122.0032, 42.2699], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šXnb°lš„VlnXVJ„LlVnl@zÆxnK@b„blKVLn@@V„aVLVK@L@Vl@XVVInVVKVwlUXwlKšL„ššVVb@aV@X„lUXbVW@n„lWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXV‚I„xVanJ@UšIVWšL@UV@@¤V@nInw˜W„k„lnIVx‚lnzUVÇJ¦VVÜLĸUnW@aV_šWĊXXa‚Knkl@nm™L™a@alUVw²K@UlmnIlJ„w„aVU™kmK@wÅKmU@DzVmVaÝwkƒKƒaÛ¯șĉķ¥ğ¥ƒ@kUWkƏī݃ƒ@@akU„K@KWIUm¯nƒU¯JmwUVmIkJÇLm@™UImJUU@aW@U@@nUb™JƒaƒbXVWn@UVmX@V@b„š@l@Lƒ@™lUb@x™nÇaƒbk@@xVJU¦lbXšƒÒ@nUJ@Vmb"], + encodeOffsets: [ + [123919, 43262] + ] + } + }, { + type: "Feature", + id: "2107", + properties: { + name: "锦州市", + cp: [121.6626, 41.4294], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nJ@nlmVnXKl@@°n@@¦‚V„bVbUlVL²l°@ƲÈV@LV‚knVb„VVnnWVU‚@XmWU„a„bšIVa@mV@X@@bVVnIVJ@š‚nÈKlInJVUnx°I„V°mVnXJ@LƒLlV@b„@ބƐĬXllV„@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ƒÅLUWl_@ša²£‚Kkm@kƒwVmULmƒ@akIUa@U@WUUVU™aÝ@ğ›wkƒƒmĉ£UWƒ@@bÇL@m—a@_mKƒlƒXUwKƒLţÓ@UWw@K@U„I@m™U@UV¥„@°UnJ°@@_™KUwƒW@UnaWUmmI@m™ķwUaÇLóVĵwݙUUW™¯šƒ¦Ux@V„b@šƒxV°X„ƒKWbK@n@nW‚@UL@lWL™m™zUVVbUbmWXXWJ—b˜n@Vkl@LlVUn@xnV@bln"], + encodeOffsets: [ + [123694, 42391] + ] + } + }, { + type: "Feature", + id: "2103", + properties: { + name: "鞍山市", + cp: [123.0798, 40.6055], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l„œxĠŽÞ@šbV@@w°Vna‚@Uk„V@K@UUUVa@K@w@UnKmUVan@@Uma@UXWƒWK@IUK@amW_XKVLlKna@kmKVak@VU„@VmšU@anIÆan@‚a„šUVnb@blLV`ÞLlU„bna‚Kn@naVU@¥°IVK@anUUKVaƒUVak™@mJƒkXƒ™UVwkƒVUUa°U@Wƒ@WlkXWlIXUlJlaœx‚IVVXLšll@nLV@lLXl„KĊzš¥maUƒlkXaVK„X°y„Ila@aVkala@a@¥„IUy@WmXaƒ¯kU@U@mmUƒƒULkmm@ƒ¯VmnLVU@a™ƒ@U@±w@™VWIkymLUUkJWXƒJkUmxk@™xUI¯`mUULmƒ¯„m@kxVVbWV@„UVƒIUx@bkšVšVVšxUbVV@V@zšJVXU‚lnk@@lkLƒlƒLUU±Jkšm@UIUVƒLUVU@™K@UƒnnV@l@Ll„ƒaUJ@zn`@nWlƒIUVUUUV±Ln‚@nmL@VUVkLVlUxVLVlÅXma™@@akLmWUX@JUnVJVkXJ@X@`WX„VUVUIlb„W@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`„LUL¯J@IVKmKÅI@J™nWVnLnšVxV¤™z@bmV@VUV@bUL"], + encodeOffsets: [ + [125123, 42447] + ] + } + }, { + type: "Feature", + id: "2105", + properties: { + name: "本溪市", + cp: [124.1455, 41.1987], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lb@Vn„lnVVUb@šVJ@nnJ@bmXUx@xVbkbkŽWLUxnl@Ul@„xWx@nUV@¼Ull„knkK@bmbnl‚LVJX@VIVJn_lJVVšXUmnU°VVVUnVVšLna°V°w²@lw„bl@XVl@VVšIn@„wWWnUVk„JVUƒw@šƒ@anaVkš@@lnLlalKnk„mšK@_lKnlĊXVb„VVLV`nL@lUL@„@L@‚VbV@@V@bn@lxn@Vb„alI²mVL@Vl@nVš_VVnJV_‚@nV„K‚V@Xœ‚@b˜kXbl@XblylUUkš™@Xa@UVIlK@UUWVU„Llm@UUUnKWU@K@UXm„XVa@U°KVUUWUk@ašUVKkaWkƒKUknaWa@U—@m@mk@ƒaUJk@@_WKkLmx„l@nUJmIUWlIUaVWVXn@xWLk@@aƒJUI@Uƒ@UVVxm@UVk„mb¯VUU¯JWUƒ@Ån¯aUbÇ@ÇlLmWƒXkbƒƒk@UƒƒIÇVƒUXW™wÇnk@±aU@@bUVUKUXmVƒ@kaUm@k_±l™@XwVa@kVK@U„Wm—VaUmVUUakLUWWnÛKƒVW_—m±V™nƒU¯@Umƒa@Xk@ƒl¯V"], + encodeOffsets: [ + [126552, 41839] + ] + } + }, { + type: "Feature", + id: "2108", + properties: { + name: "营口市", + cp: [122.4316, 40.4297], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ĊĖƐn¤„„°Ċ¯ŎWšô„@xXb‚wnKl@nX@VUVƒKmL@VU@Ux݄@Vlb„x„U@VUb@b‚kœ`‚IUlVUn„V@@UV@@JnXlK@bš@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVU„JXk@mm_@yVI„bkƒ@K@kmU„m@VšLV@VU„KVUVJn@l™²IVV„K„klK@kl@kmVUW™I@y@UUUVa™wUUU™l™@akmmVaUKmIUaƒJk@ƒwkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦™@bWKk@max@bWXkamKƒ@mVkKmxÛaWX@xUlÝnJ"], + encodeOffsets: [ + [124786, 41102] + ] + } + }, { + type: "Feature", + id: "2110", + properties: { + name: "辽阳市", + cp: [123.4094, 41.1383], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@š`Vz„‚Wn„VUV„L@bVbVJ@IÈbVb@lVLXW‚n„š„x‚LnKVŽšb@„n@Vbn@mƒ„V@šl„IVa„@@WškVV„I@KVLVanJV_VW„UV@nn„JVI‚Vn@na@alLlmkƒVk@»VU@mXwƒwk@@VmkVwXKllaUa@wVwnW@amI@mUI@™VaUUkmmƒ@UkaƒL@ƒUIĉyƒLWkkKU@mKk@™kWKUUJ›wkbkIWVkJWXkl@X„‚@X¯VVbUVl„UxšVW„„lnIš@l‚Ub„VUbVLmV@bUL¯J@¦UVmbm@LmbƒakVÝKU_kK@amaVUƒ™bm@ÅbmJ@b™VUnƒ@UVl@UbnL"], + encodeOffsets: [ + [125562, 42194] + ] + } + }, { + type: "Feature", + id: "2111", + properties: { + name: "盘锦市", + cp: [121.9482, 41.0449], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Vbĸx‚š@nnJVnXŽmb@V„XVxšL@`¯@mI¯Vƒ@U¦@VšV@nƒJ@V@LXx@VŤÔ„K‚LVx„W„knL@`˜b@nÈK@a„@VXĊ¤„nVK@aVU@UnU@ašyU£Uwm™mKXUšm@IÆJnLUL@J°IVKƒKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aƒXkaVJVUƒUXW@_@WWIUlUIVm@IVW@IU@@VU@mƒUVVkJ›_l@aVa@UƒVƒwka@UރVwV@@UnK„LVU@UmWk@mLxWa@wóƒUVUIÇÆĉ¦¯¦¯xʟJ"], + encodeOffsets: [ + [124392, 41822] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/nei_meng_gu_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "1507", + properties: { + name: "呼伦贝尔市", + cp: [120.8057, 50.2185], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„m@Łkƒ™Žƒklƒôƒ@£kJ°ý™ɅķÑó¤ğLĉÅlÇğŁW¯¯›™ƥóÿlwkţÈéÝƛó™°ÞÅxV¤ĉĖWƒ¯lȭţυ̃ɱÿķƅˋğɱřÝţϙȍƧĊţ@¯kWKUKm¹Å@ķJU@ƧÑƧ„ō¥˹Ɔ@L@„Þ‚VLnš@VōČWJX¦@JŻbU@ţÞmVU@ȁýóbkWWLƒƒÅ™¯UWġkmóƒ±UŹôV¼ƽ¼ƒł̥ĖƽǬʉxĉŽŻȗKΕ̛ʵƨʟÞ˹»Ƨţ»Ǖō˷Ȍ±ȚʊĠUɾɜɨmÜ֞߼˸ƅȂ¯ǖKˢğÈÒǔnƾŎՂ@šĊbôô̐¼ƒ@ĊôĊŽÞĀ™xšĖƧL±ŽœŽ‚Uš°U„°ĬƒČ°ÜƒêɴȂVł°@ƒ„nxŎèƒbȄÞȌ΀ǸlŽ²IlxĊl²ÒmšôĖ™Èl„ĵºm„ÈêVþ„xɛČʉÇĵVmš„ÒƒÈɆôƐŰǀĊ°ÆǬĮƾb„yĊ@ĠšƒXǀċm»ôw°Ûk¥Çm¯ç™kkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘ‚™ĊLĢĉ„VÆĉʊÇĕóaU¥šĉ°mkÅ°ġUĠřk°mƒÑČÿ˜ÛƒWĸ£ʠšÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸz„ŽĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@šÝĶƒ@ƒÈkl¥Ççkxk™›JXÇƒUÅ@˜£k»„óƿīÛ@lÅJl¥óý@¯ƽġƍÅan™ċ™°é¯¹"], + encodeOffsets: [ + [128194, 51014] + ] + } + }, { + type: "Feature", + id: "1529", + properties: { + name: "阿拉善盟", + cp: [102.019, 40.1001], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@™ƏnǟƨʫšŹɆÿ°¯ÆV²ˢ™żÿ@ÝÆŁȰ¯ȀƳĉó™™@ğkyš¹@īš›ƒwl£Źƒƒ¯Ŧé@™ÇÇxŋĉƩUUŃōL™Ç™ĵóÝnƒóç@™™ó@ġƒƱ„¥ƒç™WUçÆōƒ@é—çťK™çȭVһƽ̻aW¥ȁ£ʵNJǓƲɳޗǔlżÞmĠóĬȂɲȮ@ÈĢŮźÔnĶŻǠšŎȭœгŃċóȭţΗÆƑÞƧÅΫóȘǫɱȁġlÛkÇ°ȁÈnšõl¯ô„ÞɛÝkĢóWĊ„zÇɼʝ@ÇÈķlUČÅÜķnέƒǓKȮŎŎb°ĢǀŌ@ȼôĬmĠğŰōĖƧbЇƧōx@ķó£Ål±ĀƧīXÝġƃêĉK°Ýʇƅ@ΌʉżÅÒϱʈ@˺ƾ֛।࡬ţશóЈèʞUš¤Ґ_޸Ƒʠɽ̦ÝɜL׈ɛϜóȂJϚÈ@ǟͪaÞ»Ȯź"], + encodeOffsets: [ + [107764, 42750] + ] + } + }, { + type: "Feature", + id: "1525", + properties: { + name: "锡林郭勒盟", + cp: [115.6421, 44.176], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ʶĬĊIȘƨƨŽ@ĬÛĢșŤĉĬƒĀóšU‚ÈŚÜènŦƐȤȄłϰUƨťƾÑ܆ğɲƜǔÈèʈƲĊƞƒšɆ¯̼V˺Ò˺ȂŤVĢêU܃x„Āˌ˘ƨ„Æ°ѢmÞżU¼ÆlŎ@ĊçŎnÈÒͪŎźƒĸU°lżwUb°°°Vš£ÞlĠĉĊLޏɆnźÞ„n¦ĊaȂīġŃ¯Iĉůl»kƒ„™Çý„¥Ŏ¯ƒén£ġљÝȭxƒÇ™@Åçķ»óƱŎ¥™çWÿmlóa£Çb™yVÅČÇV»ÝU¯™KĉýǕċţnġ¯»ÇōUm»ğƒÑ™wƏbċÇŎċwˋÈÛÿʉÑ°Łkw@óÇ»ĉw™¥VÑŹU™mW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJƒwĊÑkĕÝw¯nk¥ŏaó¦ĉƒV¦Å`ğуÑÝ@mwn¯m±@óƒÛKˍƏǓ±UšÝ™a¯lƒōšșk„èƒĬގn@ŤġŰk°ċx@œĉ`Ƨĕ°@ţÒĉwmĉ@ƒƒnƒƒa„™¥ķnƒÞĉVóÆókĉŽķ@ÝkƧƧÛaƒ°Ç@ÝÈU˜óbݼ@„ÛÒV°™@V¼ˋL™ÞɅŤŹǠVÞȗŤÇĖŚōbȁƜ"], + encodeOffsets: [ + [113817, 44421] + ] + } + }, { + type: "Feature", + id: "1506", + properties: { + name: "鄂尔多斯市", + cp: [108.9734, 39.2487], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ĶL²ĬVłƑkkl@Ȏ™ŘWńÈĬȗ¯™ºlz@ĠššĊôŦô„ÒĠ°kÞܚ™n@¤„UĸèĸbŌÈXŽĸLlÒĢxɲÆ¤ÈÛƾJÈÝ°UšÅĶ»²VW¯ĸJôšbk‚V@ôlbnĊyÈzVôašb@ĸ‚ÞUl°yǬ²Ǭm°ššk„±lbn°@È»˜JX„VŎÑÆJ@k„LšƒÆl²™Ġ²ʊůĊġ‚řóƛÞÅ@m„ƒmLUÿóĉƧ@™»L@„›`ČĸmšȗÑţů±ĉğl¯Ā™wǎƒçƧŤÛI@±ÜĉǓçō°Uwô™ǫůķƳř±bÅ£™ÓÇwnÑó@ȁƽ@™ƒÇƧĢón»ŏĕóĊ¯b„Å™™VȯÅImƒōKU„™LǓ±Ýxċ—ŋ˜V±Āȗ°™„Źl±šÛ@WÒȁŚŹНŚÅèŌô„¼°ȰɞȂVĊ"], + encodeOffsets: [ + [109542, 39983] + ] + } + }, { + type: "Feature", + id: "1504", + properties: { + name: "赤峰市", + cp: [118.6743, 43.2642], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɲŁĢljĊwƾōÞĭ°_ŎŃźȹƒUČÿl»¯ôķVÿǬƽ™ɅġÅÑǫ»̐ʟȣU™¯wVWݍÈġW»Þ¹m݃ɛŎÿŎōͩůV¹›ō™éċ™óŹÅVVĢǩʈ@Ėċ@ķšÛšV°¯xÇÅţ¥™»°Ûô™ĉʟ„¥WýČ¥™w‚灻±mnÅķ¥ˋVƒbUÒġ»ÅxğLƧ™ƒbWĖÅxš¦U°ÝVóŰlô²@š¥ÜÞÛô„V@²±`š¦™„™¯Ý@„ŽÅ„VÒō¼ôš™¤V²ŹĬÇĊƑƒţxƒç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠŽX¼šnźVUҚ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxƍČÈƐašx„ÒĠŽn¼ŎVȐ‚¼Ģ°ŤmǖČĊþšLV°ÞŽU¼ċÈUƚzÈa‚¤ôbkŽ‚nXĀšè"], + encodeOffsets: [ + [122232, 46328] + ] + } + }, { + type: "Feature", + id: "1508", + properties: { + name: "巴彦淖尔市", + cp: [107.5562, 41.3196], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@²@Ζǀݴʶհĸ„˜ƒ¦Ķ™̒Uˌ¼ӾÇƾ¼̨UÞĉ˜Ƨ—éÝ»ƒĕĉ—ƐȍœōǪakó‚ó¯a@™ôţ™aV¯Þ¯°@²él¥ĵğťwōxó¯k±š—Vó@™aóbUÇyĉzmŽkaóŽU@l™aó‚ķIX°±Uĵ¼™Æ¯VÇÞƽIÇÜÅ£ɱŽġwkÑķKWŋÇķaķçƒV@£šmۙlÝğ¯ƒÑťóǿƴȯ°Åł@ÞŻĀˡš±ŽÅU¯°ɅĀ™źƧʬmǠšƐ"], + encodeOffsets: [ + [107764, 42750] + ] + } + }, { + type: "Feature", + id: "1505", + properties: { + name: "通辽市", + cp: [121.4758, 43.9673], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ôƲĸ¼Æèš@„ÈȮwƾ»ʠĢ¥VÆ@²¥@»Ŏњ¯ĊJŤ£k»ÆÇX¯̼ōšī°aX£ôƒƾȁź¥„ƒ™aôŤ™ĢL°ƒĸ@Ȯ¼ÈÒʈŚôVXůÆaĠƛÈKƒķšĉôÿ@ğÈĉ™»ÇVn™ĉV›wXĠÝ°šČÿĸwVƒ™¯¯ǵ±™ĉ‚ǫ™ÅÅm»²Ż±ƽIm¥ţÈķ@¯šƧJV»ÞUÝç¯UġºU£ţŽóaÅÅlƒƒ™Ƨī¯K¯Þ݃ğL̑ȍƽ@ōŎōĀƑɜnÞݺX¼ÇĢގUX°xVšʠȤ̏Ǭ¼ÆÒɆĢšŽǫƾUĀóĸ°‚k¼ċĀƑVŹȺōń¯`ÝĮƽŎĉxġNJɱłō¦"], + encodeOffsets: [ + [122097, 46379] + ] + } + }, { + type: "Feature", + id: "1509", + properties: { + name: "乌兰察布市", + cp: [112.5769, 41.77], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ʠǠÞĸɲȺƒÒȂƛŎaƙÈĕȘţUÝźǟɆţšÝˌKU»š@U¯ÜÑ@ƒÞ»ôaV—ÞÇÈ@„¯ÜbƨƨÞlĸ@ĊôlôÅĊU„Ýĸmš¦ƒŽ„bm„„„Ċ@n‚ĊxŤÑ@¯‚ƨĖĊ_@›Čwl¯™ƒȭL›Ý„»ƽ¯ķů„Ǔ@ÇǓbċ™ÅÅÆwÿĠÇU£óaƒ¥¯aŎğĠţkw°»¯ůlÝĵkǻݰɱƧǫaóôɱ»Çk¯ŃóƒʇŐŻ›ĉNJŻĢ„Ž¯ÒÈUl°ƒx°n„Ò™Ĭón™Ċğ°ÇŚĉ¦ʵVƒ°°ĬÛżÇJȁńʇʹó˂ƽŎ›Æţ¦"], + encodeOffsets: [ + [112984, 43763] + ] + } + }, { + type: "Feature", + id: "1522", + properties: { + name: "兴安盟", + cp: [121.3879, 46.1426], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÆXnlŎ°@LVLĠþœxĊUȮĊnU„ĠV@żaW¯XIŎġƒ¥Ý@K@w@K@I˺ŻŎ¦ƨƒƨÒŎIÆ@X@VºnX°lŎ@ƾĉˤƒȘǷȘÑÝݚÞbVţĸÿŤxÈĖƐŽêÇKnĸ¥ô@›ķÞUnÒl@UŚaƒīˋƒ¯ÑƧx@±kXřƐƏÛéV™ˋ»lō¯ĉ„ÅÇÓǫޗĖġV@ğ»›°ĵ„ÇÞǓ¼¯m˜ÛÅŃĉĠÇƾb²çƒ™šéż¯VƒƒğÞml»ōÑV痻V¯™¯šĕÆU¯y°k¯¯V»ôDŽѰa@Źk™ġKţšóŽšbƒ„Ź¦ƽȂó„W¤¯b™Ĭ̻ŎW°ÅÈl¼ţ¤ĉI™°ōÒ@¼±¦Å@UŽġ¦ʟŽƽ¼šÞĢÒm¤„êō°ƒ¦Èþƒšl„k¼ĊŰ°JĢńȁĬ„°ƒżn‚ÇbV„ݼ@¼óĸţ¤@°Ånšl"], + encodeOffsets: [ + [122412, 48482] + ] + } + }, { + type: "Feature", + id: "1502", + properties: { + name: "包头市", + cp: [110.3467, 41.4899], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@źxżĀǔÆǬVȘĀŤ¥œÅƾōôˁʈͳȂŃÈIÜŻ¯ī„¯ōm™¯ɱĖ¯ƒķÒÝIÝ»ÅV™ƒlÅôфġ™ğVmÞnnƒWçkW܁XƝÆwU»Șĕš£ĉÑ𱱚Åk™„ƒK@lÅIō҃UW‚—IǼ¯@m‚kaƒ²™l¯™ǫnǫ±¯zkŽÝVķUô™˜l²ô°ŎwŦxĶĠk¦±ê¯@Ý°U°šbóŤ@š°bôlôǩb›ŎƏȎĊ˜„ĖÞ¼˜ê—ƨÝĊ"], + encodeOffsets: [ + [112017, 43465] + ] + } + }, { + type: "Feature", + id: "1501", + properties: { + name: "呼和浩特市", + cp: [111.4124, 40.4901], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ʶUĊ¥ÈřĠ¯šĉômšīƒÑ¯m„wk¯ÇV°ÑƒżġĊljǓɱţǓ›ƝóX¯ƒɛÒóa@nÝÆôƜŚĉĢʉŰĊҙ¤ȗĖV¼ÅxWƞۂlXXèm„ÝmUnšĠƒĢóÒkƚ„ÆUÞ¼ÞJĸÑ°„ɲĕš°Ŏn"], + encodeOffsets: [ + [114098, 42312] + ] + } + }, { + type: "Feature", + id: "1503", + properties: { + name: "乌海市", + cp: [106.886, 39.4739], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ș°ÇīXњŗ@ȍlkƒlUŁ±īĵKō¼VŽÇôXĸ¯Ž@šťê„°ź„k¤„x™œ@Ĭ"], + encodeOffsets: [ + [109317, 40799] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/ning_xia_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "6403", + properties: { + name: "吴忠市", + cp: [106.853, 37.3755], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nLV‚@šVLšaÞbn@@l˜š@bUVlUV„zVx™¤kÞVèšXnš‚@nm°a@UƒÑ„@VŽXnV@Va„UšŽVKUUU@@U‚@@KVa@U²@‚wXkWnk„±lLnU@UmmVKnIVWnI@UK›@UK@@UVKXkmWLWUXmlkVwUyVa@w„w@aVI„K@aVÈw„KlLVV@LnV„VVnU‚ܲ°WÈIUÆ@nÞ¼‚‚@¦™@UÞUVW@UxUxVn„b„K‚b¯ÞU`VbǬ™V@XXÆVVl°InmnUôƒ°¯‚anam£œWVX‚KXmškôaVU@ƒVak@@wmaƒn@K@UÛUWKXUƒÇƒ@UI™b@alW@akLUKV@@Ukw±Iš›nL@kmwkWmk@JUIƒůVmnnU@m@UƒK„VKlkUwkƒƒnVUKmbkI±š—KƒkmVkKƒb@U@aƒVkUmn™`kIlaUK@UUKmbUIݚUa@mUa@aƒ„m@UUULUK@bmKkbWI@WXwlkXƒWa@k@kKƒLVkkK@L@JUVmzUKlwUUnW˜£XVlKUwVU@aXI@aWaUw@W@_nam@¯‚UkWVkUWaU@nwmJkUVkWVUmUkJ@ImbUaƒ@@WÅ_mJknmak@@mƒXƒaUV@„ƒxUšƒ„@‚ƒ„@VUnkVƒ@Vn@`ULUbWLXVW@kbUJ@XW`@ƒnÅĖWJƒ@—m°@xƒxšbnUa‚w²lƒÞ°xŤIVVULۂWbšbkVVXÆ`UbVL„@kx°LlV@Vœ„WbƒJn@bl¤ULV„°@lmL@ƒƒ£U@@aUwmKULVxUVVx@„™@kU™@mK¯LÇa¯@"], + encodeOffsets: [ + [108124, 38605] + ] + } + }, { + type: "Feature", + id: "6405", + properties: { + name: "中卫市", + cp: [105.4028, 36.9525], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°@Èb°KnLš@lVš@@ƒUwVUUwVKnLVx@bV@„¤@„nK@k‚¯UƒVKk£@a‚m„IXa›ƒ@UkU¯Klwƒ@UKVaÅ_UWlU™aXa܁VKUUţJ¯w„ݱkxVbmŽ™a„w@wn¯˜„@XIÆĕ„m‚@X_@WVIlaX@WUXKVaVK@_Um„@lUVm@U„ƒ@„ƒV™„w@ƒVUÛwm@@W@ImKUkU@Ua‚aXƒ@wWaUKkw@UVaUamLU™nk@»±`¯@k—W@Ua™ykbƒI„„@VWJkLWUkJƒwU@ƒn¤mL¯wm@Umƒ²XVWbnV@bmxƒVkxUblLUV@kVWKU¼ƒŽkUƒ@mn@JnV@bUnmJUn@„k‚@XlxšLVVnKlLVV@š@LkKULVbk`WL@lkXW@kVƒ@UÞUlÇX™lkaUbmV¯@@L@šƒV@bkb@xƒlW„—bƒbW@—±@UJ@IU@mVk„VxV@@l„Illœn@Vm@ƒVUbl„@JLmKÛXmVkU›KULU`@LĉwƒKUX„lVUl@Vb„JX¦̼bÞxŎxɜĖĠ„Ŏaô@"], + encodeOffsets: [ + [108124, 38605] + ] + } + }, { + type: "Feature", + id: "6404", + properties: { + name: "固原市", + cp: [106.1389, 35.9363], + childNum: 6 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@Vnn@°xnK‚£„mV@„xlIXVlKXI@Uƒƒ„JlašzVbX@l˜°@²_@¼mlVšnKVbUb@VlxVLXb@xW„bVbV@VlnL@J@Xn@Üx„b„W@nl@nblmnIÆ`@X„@Vbna@aVUUWVkƒ@kbWakbU@VwšW@_l@nmn@@alVlk@UkmVak@@a‚UXaƒL@¯@KVa@axWI@KnkVaVJn_lJ@„X@‚m@nVanUVb@mXLlJ„VWnLla„VVaVX@KXVVkVKlknKVa@aVU@KXb@klJUknUmƒ@K@_UW@alIUamaU¯kJma@IUK@U„@@UW@@aXLVƒVJVaXIƒKlaUkUV@ambUUJkIWJ@wUI™V@JU@UwV@@Um@™nU`@UkUmVUxWUUV@aÅb@aWXkKUUƒUUaWK@wnm@IVU@aXwm@UmVaUalk@anKUwlƒUwlkK@wmaƒUkmmIk@VmkUUbW@UVUnW@kV@xkVmbVnU‚™@UbUV@a›k@kkW@„kLW¤@„nV@VU@W_UV™UU`VLUV@IUVõVULU@UUUJ@wmkUJ@šWI@l@bkKkbVVƒbVbUL@UUJ@Vm@@L@xbVVVLVlVwX@Vb@bmUkbk@@JWIUVÅw@Km@UkWKXxWLÅ@UVUnWK@xkVW„@KULwWVXVWzXVVKVXkV›V@VUbV@U„VV@š@LXxVL@V„b‚Ž„LnKVLVxXVmb@l"], + ["@@@J@aƒU@LWK¯UUxVVn@Ġ„„LUW@UbUUUa@KUX"] + ], + encodeOffsets: [ + [ + [108023, 37052] + ], + [ + [108541, 36299] + ] + ] + } + }, { + type: "Feature", + id: "6401", + properties: { + name: "银川市", + cp: [106.3586, 38.1775], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šUšwVK@UVWÞUšbšw„V@knV˜@@KU_VK@K„ƒn@W_XWlL@Vn@Ċw@Ulaœ@Wanamī@aƒ»ŋó@aÆÅɲÿUaV_°ÝaƒLƒaUmVwVwX@VUVݚ@@¥Ý»@mVÅÇJ¯XÛ±VUmƒUmU@KUUkKƒLÇxUŽ@bƒLUJ@bƒx@xUbVzUxklWnXV‚KnXWlUL@V@ŽVLœ@VL@ŽmJUXmJULnn@VmVkKƒ²mlXWlx±@@VUb@L@@VV@VVUL™ƒVUbU@WmUƒ@„Ò@V¯bmn@VŽƒ„@lVnUšnVWŽXVl@¦VVUn@x‚š@‚XL@¦‚lXxš„Vb"], + encodeOffsets: [ + [108563, 39803] + ] + } + }, { + type: "Feature", + id: "6402", + properties: { + name: "石嘴山市", + cp: [106.4795, 39.0015], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@U¯ķó±ÇÛ¯™ķmbXb›@kb@Vĉxm@@UkKWXX`m@ƒ„@LULV`@L—@mU@lƒU™x™aÝVUX@VUL™x™VkLWVšš@J„nVLXVlŽUV@zl‚VL@V@b„„n@lU²WVLlLVbUŽVxUx@xǀL˜xôҜk‚K²ŽVa‚U@wXa@W™ÈĉUa@‚bÈk„m@¯"], + encodeOffsets: [ + [109542, 39938] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/qing_hai_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "6328", + properties: { + name: "海西蒙古族藏族自治州", + cp: [94.9768, 37.1118], + childNum: 7 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@„V£°š@laœXô±źwš™ô@„Ulƒża܍n™Kƒw@U„aƒ™ša²L‚mÈLƚÈxlaUa„wÞmÜbÞUšnJ°a„kôƒ‚ÑkwÝVğwÇ@ÝkkV¯¥@ò„»„nŤ¥XImw@mVwša@Åw™mLkaW—wƒ¥l»kçƒó„»@ƒWÑĉŽğ@ĉ„™‚Ń„UwóřVómĵ»™™Ý@VǕ¯kšÝĊÅk™°ÓUklkU±šI„ÇÞkƒ±@šƽJƒ™@UġIk@W¦™VÑșÓÅnťKULnŽ¯X›ƒ@¯mUÛ@WřmóKknōbƒxÝ@ƒŽU@kw@ÿÇLţšÝUkšmwƒŽk™lċVŚU¦™ŽƒLkUWlÅÑ@aƒ@ÅѱUóġŹ¼ƒÈĉmŻ@@wkw™Kl¯U™ġ@—„lÇU™Ó¯_ƒ‚Waĉ²Åló¼VbknƒKǎÅ@ƧĢō°Ý@ğ„W™ÅxUUm@™‚ÝXۂW„ULUè¯@mbUaƒLƒbUWġxIUJWz™a¯b™y™@ōÈóLU`ÇXUl™UĉV¯n›mÛbǕLklƒUĉVƒšóaġ„ƏbġKţnkbÝmmnÝWȭȃŽÝXţWókUÇl¯U¯‚ġUɅĀ@°¯„„š¯„VÆnmJ@ĊķnóJUbÝXUlVškL@lVxnnmb@¤Vzš`ÞÞŤ@„VnÆJV„°b„UôJkzlŽkl@²óš@ÆÇ°kĖƒšÇbÛU@lmb™XV˜kzƒV™ŽɅĀXˢlń„ĬŹ@›éÅ@ĉńÆ°ğbUšlŽɜ_°‚@xŦ˜škbVbƒKĢ„ŤVŎŽ°@żÈźlĊ„ôKôb@nôxŦ„Æ@ôŽŎL@þÆb@šnnšWˌbÈx‚InaŎxlU@Ѳ±ƒğVUĢƒƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôŽǪK°xUXô@Ŧa°m‚kXÆÞVŎkĊ°ÞLȄôyVašIlwX°UVwĢÑÜKôw@nV@œm°nmŽn„Ü‚ɞ£VbmŽXnƒ°ÜÒ@xx@V‚b²UlbkxVnšJUnVVĊ°KȚm°nxÇnn¤±¦@ŽUXVV@„lV„„bmVVȁŽVxšÒ™°šIšbźaȃšbVwš@šƒVL„™ƾÑ@ƒŦô¯ĊkôÑ"], + ["@@„@šƒ„@n„òVœa‚w²bVxšxÜaČVô_ĊJšIVmšL„a°@Ŏ¥XlK@ƒšk„l„KVbUb˜@nUĢn‚aÈ@lmǬ»Ġ¯œn‚mnƒƨVy™Ñǖ™Ġ»ɲInŽ‚@@ÅĢƳ@¯°™ôV„KÈbVIÇ¥¯@Ýó„™@ÑnīWKšƒk™‚k@¥š™¯™Åa™Xƒ±VÅw@±Ġ¯@»™š™n™Wmw@ƒ™@¯ƒVƒUUWçƒKĉ„a±VkkƒV¯w™x@šUJ‚x@bknÇb™mÅ@Uw±U¯¦UŽ™Kmš¯I¯Žť¼ğĊ™@ǃŹÈ¯@Ý»ÇnˡJƒbÛèÇnƒ„ÅK¯„ġĠŹW¼Ålm„@¤n²ƒŽÝb@b„š¯lƒ¯@ƒšÅ¤W„™¼nV@x„„°@Vx„@lbUblbX¼W‚œšÇ²lšUŽ@¼ŽV¦@bÇlVxUbVxÞbVšœbm¦ƒVV„"] + ], + encodeOffsets: [ + [ + [100452, 39719] + ], + [ + [91980, 35742] + ] + ] + } + }, { + type: "Feature", + id: "6327", + properties: { + name: "玉树藏族自治州", + cp: [93.5925, 33.9368], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɆÿĢV°°VÈklVôŤXÞW„ȮÇÞXnmÞnlaŤmĢLƐaĢƒôb„™ĊU„VlkǖKÜaœn°mĊUšVVkÈWV_ôKŎǚ@šz°ašbXyVI‚JĢwVX„a„KVbna°@VçVKXƒÜÞWšn@VVÆwXšĠƒÞ@Ŏ¯ƨġÆ@ȍ„LlmUaô»ÆkĊ±Xb„°`šÔV‚kȘƒĢ@Všk°šLlx@xż@Ċn„Çź»ôĢ²VÆ҄@@bÆÒXklV„KšV¥Æ™ČUšk‚l„nxl™çƒ¥ċç@±m¥ƒwÅJƒ@™™™Vƒ„mÈIléÈa°U¥™™@kÞV‚K²ÑWƒ°w²Ñ‚K²ñšyƐ„ÝšVmw„»kkWĉ—JWUƒVÅwƒL™mÅ@@ƒmw„kn¥Vу»°™°@@»„¯„Lla„JônV‚UůƒU@W¯Umѯ¯k@WykU@¯„wV¥ƒkVwţƒk»šwWǜĉĶçšK„ƒÞ™ÇaĉbƒI™lUƒ@kwƒWƒXUƒ°w™±@UšKn£Wĉ—KWxƒkĕVƒšamwXw™@™„Wmnk@aƒVkƒ™bĉLƒl™Imm„wUÇ‚Wx™nÝJn@¥Æ™kwƒaXƒÜĉ™¯ÅV¯¤mkƒx¯kķܙ²VWôŹVUƒƒ@V£™¥@ƒ°wn@™m@¯@UbUôķŽmn@ÆÛ@ÇýVaUÇĊVƒ@Çlğ—¯xÝŤ™lVÈÈVƒx„ƒ¤Vx™„kK@™@ƒx@„kVƒĖġ¥kIWbXŽŎx@nƒxÅUW`ƒ_—@±ŽUa™LUxƒK¯„WbkVlb—bmŽƒLÛÆWIUwƒWkwÝV@kI›ŽéUb›UUk™V¯Km¯k@Umݐ¯m¯›m—L›Þĉ‚ÛUm™ġ£UxkKm°™Lw›šk@kšƒVm„ƒKVUk›@¯a¯Ģ™móKUU™x™ImlÅn™™ÇbXèVVU„°„@ŽšŽ@„‚xXnmš™ššŽ@¼ğ°@²ÆxU‚„²šWÆb°š™š@¦llš™„XLmĬ@҃šÞô°@ȦUJÇaƒLóU¯š@°ġƴ@Ɓ@mɱJğ¼ǕššÒUzƧ‚m„n›mğ°ǫ¼knÇ@bġmmV—@VaUaƒLƒk™l@„kLW‚ō¦¯@ƒb™KUn™JĉIó`ċUÛb™wUw±ax›bñUmƒƒ@™„ƒ@—bƒaƒbǏÅXm˜„ƒÝ„ÅôVbގ™bl„UšÞVޚ„U‚°„VUxƒ@U„V„@l`™¼nL@Ċ„LW„„¤kXķWġXUVVVķ„UbVb@°kVVxÈa‚@ȦĊbšaźJ„U@Ț„„˜Vœƒlš@XkôaWƒĢ™Þ@laĸUÆb²mÞLĠ™ÞÑôbšÒĊa„JVbm¦"], + encodeOffsets: [ + [93285, 37030] + ] + } + }, { + type: "Feature", + id: "6326", + properties: { + name: "果洛藏族自治州", + cp: [99.3823, 34.0466], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÞVŤ™ÈK@ĀlxV@„Þ@„wŎalmôLšnXÆÜ@nV‚°@œ„°WmVKŦLÆmȚԂҚUX¥l@ĢJVš@„ŽƾI@w™W°™™Ån¥›kÅÝVwôƒÈç„@lÑĊĕša„JnaÆLVw°kny°UnkÆVȍĊll¦„Vƾ@@™nUźƒÈǂIn°X„wÞKô¦VWV£„@£°ókċ±I™™am¯Va™»ČĉV¥°™@m„k„¥l@„Ċm@ašU™mwXƒ@wÆxšmĢ_„`VnÆbšKVw„@@ƒnUVğVmVVöIlŽl@@çÛmƒ£UDŽw°@VUƒ¯»m¯ƒJōĖÅLƒa@»ĉĢ±`U_k`ÇçšóƒkX™lK@ƒakÝރš£WċkÝ™kxƒJݯÅw™xķxmIÅx„@k±J@ýŋš›¤UœkŽmV™°ÅÝxkwmġƒnÝVU„š¦ƒŤlmšóXk¤™UKƒç™@mVkK@klīƒ£mš¯VUbƒW¯¼ċb¯ĵam¼mVX„m@k¤ÇX‚ÇbƒUƒ„¯J¯„¯È@˜™bVXVҙ¤V¼kxݚV„@l‚V—„WxÛ¦Wš¯šmKnlŽkŽ‚šU‚@nƑUĉ„Ý@ǺۄċUĉ¥™UƒÞŏ™z±òL±Ò¯xX„±ÒLÝU@lššV¦¯‚ÇbkêÇJƒnU„šš@š„‚ÆI„xn¦‚‚@²Č脦‚è"], + encodeOffsets: [ + [99709, 36130] + ] + } + }, { + type: "Feature", + id: "6325", + properties: { + name: "海南藏族自治州", + cp: [100.3711, 35.9418], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VxƒŽńƒš@ĊĠŽĊXÒ°UƾĕÞm°£nb@‚@LUUW„Ûº@nlÆǬšĠ£ÞV°UXb‚VȂǵ„éƒ@kWanm°@™x„z„K°¯ĠVšƒVƒkw™Lnm°kÞxÆa„¥@‚wnĉƏ@™œ_l›š_VwšmĸèŤÅČU@™˜Wn@ÑmKU™nğƒK@ƒ°¯UÿV£nmšLl™„UƒUÛé±óókkmƒnƒakV@Ç°óÝXƒWəÞťIţxmm™VÛUVȂÓnWyȁĉkƒVš°WnkĊa„¥‚_œK°ÿWna@ƒmU¯wƒlÝIU¤UXó¥ÝLƒx¯WmJÇÈŹ„mV@šƽ@ƒUk¥ĉkċŽÅUml¯Vmz¯lUxÅKmbƒI™bĉĖk҃@Çèó„UxÆޜlm¦šÆ¯ššX@x™Ž@Ž„²ÝlƒÈ™JV²klVl¯ÔlšĉƙްlUǖÞ@ššĶ¼nŽUôôŚ"], + encodeOffsets: [ + [101712, 37632] + ] + } + }, { + type: "Feature", + id: "6322", + properties: { + name: "海北藏族自治州", + cp: [100.3711, 37.9138], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ōmġxƽUm±Lǿþġԙ@kxmWƒb¯I¯‚mIUx@bƒbŹVǎƒkĵbƒlĉI¯¥ƒUšm@ƒÆ¯È@šašóšUlƒČ»@w›œ»›wXaƒƒó°ţç݄kUƒaV¥ÅbÝw¯lmnšKlxU„™„ğU¯°ƒLƒyšw¯@mnXb‚l„@ƒêȁǶUWa¯VÝUğ¤ǫ™kÅ@mܹXƒVV@K@ma¯¤ÝnƽĖ¯V@„ƒ¼„ôlèk¼„¦˜xXŽlbnKšÆx@Ž™bUx@nnxWJţ¦ƒmƒ¼ñ@Ž°¦lUÞlÈ@ĠxÞUlxÒó„ƒl¯bmI™ŽÝVÛaÝnƒxVbkbÇwřÇKn±K™b„šƒb@V„xšLmŽÛŽŻbk„ƒVó@™šŹxó²›Wkb™@¯U¤ƒźĊ@lUX„°lÆôU„ƒlLX‚aœV°wšxUb°xÜôÈKVkÈmlwškÈKšwšK™™VUŤĉŎ»„»„Il¥na°LV»²¯Üy@wĢƒ°ĸwlwĢw°±„_lVkš@°ƒbƒÆ¯zƒ‚„š„@l_„@Ģ±lŚVlUaރ„LVƒnKlnȏ°IllČa˜wÞÑ°x„UU™@wƒVkmĠLô»„KÞýôaÞ¥ôĀÞmƁ„™‚mUƒŎV¥Èl°²°a²¥V„@@w„amm@Ñn@Æ£żƒVƒĠ£@W„¯Þƒšl@š»@Uk@"], + encodeOffsets: [ + [105087, 37992] + ] + } + }, { + type: "Feature", + id: "6323", + properties: { + name: "黄南藏族自治州", + cp: [101.5686, 35.1178], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ôl²ôÜê„VƒVkš™KmnU¤VĀ¯°@„„LmĠVšnLÈL@alb@al@n°Vš_XmWUÈamaVIn@n‚aV£œóVWƒ™U£°ašxÈ¥@™‚aĊwȹ@óša™ƒğbm@k„w@mƒaÆw@ƒ„In¯mmƒ@UkkWƒÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯š™ĢU܃X¥òý—mmX™ÝÅlmU@£™Wly™XW»Åbƒl@aI›»k@klm@UxUUƒVƒ¼¯Xƒl™aUnķ‚ƒI@x™@¯„ƒK™„ĉUU`óšlČ¯ô@¤ƒÞJ„k°xVŽ„n@ŽmbXŽ¯Ā›L`ƒ¦ĉbml¯X™ŽUŽl„ȂĊXzm‚ȁÔU‚ÜVšUnnŤwŦJɚ݄XÞW¯ô@ÈlU„b„mln"], + encodeOffsets: [ + [103984, 36344] + ] + } + }, { + type: "Feature", + id: "6321", + properties: { + name: "海东地区", + cp: [102.3706, 36.2988], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@҄bš¤ÆI°ôU¼š°UŽnnWx™š@b¯L@lUUWbXxWl„ƨnxVUllš„XVŽUŽnL@lȀý²KVnƾ‚ĢwV»ƒ@mÞ£nÆƒÞÑmL™ƒKUaVżĕƒWVk²ƒƒÆÝ@ƒXw°@„ô™@a°wóUUmIk™™aVmÞwmknyƒ¹VÿƧnŏm£X»˜™naV±„Ýw@ašb@aƒm¯„ĉVó¦kÝWKUU@WanU™b@ôǺĉxb@šÇ¦™w¯bV¤„šUX›ôU¤bmm@UJnbÇbXVWn™`¯Umk@@bka@bÇK"], + encodeOffsets: [ + [104108, 37030] + ] + } + }, { + type: "Feature", + id: "6301", + properties: { + name: "西宁市", + cp: [101.4038, 36.8207], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@kmKVUƒWk™VkUmwƒƧXkWwXaVV@k°K@aš™XwmmV™¯V»¯óÅJ™£ƒamŽ—X@šċVţÆķç™nUx™`kœ›`@šÅmĊx@Žƒ¦U¦„blVރŤèô¯„„Wbœx›¼œŽ@xċ¼k„™V™ô™bÇ@Å°@„™n„V°¦ĊJ„kĶa„lȍźU„a@aVwnJ°°J„anXlwš@ĢÓ"], + encodeOffsets: [ + [104356, 38042] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/shang_hai_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "310230", + properties: { + name: "崇明县", + cp: [121.5637, 31.5383], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@uŏu»GPIV±ÐɃŜ{\\qJmC[W\\t„¾ÕjÕp‡nα|ěÔe`²„ †nZzZ~V|B^IpUbU†{bs\\a\\OvQ’Kªs†Mň£RAhQĤ‹lA`GĂA@ĥWĝO“"], + encodeOffsets: [ + [124908, 32105] + ] + } + }, { + type: "Feature", + id: "310119", + properties: { + name: "南汇区", + cp: [121.8755, 30.954], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@`y”ĉNǕDwǏ»ƒÖLxCdJ`HB@LBTD@CPFXANC@@PGBKNECCBB@EBFHEDDDSNKAUNBDMNqf[HcDCCcF…@EFGLEBa@ACoCCDDD@LGHD@DJFBBJED@BGAEGGFKIGDBDLBAD@FHBEF@RFDMLE@SGANFFJBANPH@@E@FJjRIACDMDOEKLFD@DbDAJI@AP@BGHFBCBGDCC@DCA@CECGH@FKCEHFJGBFDIHACEDNJDCVFBDCRKRLDLITB@CjNJI^DBCfNVDHDFKHAFGDIICDWBIF@@CFAjFJNJBBHD@CJ@AEFJ@@DH@BFBCPDBMFEQGDIFCNDHIP@HDABFACBJFHEBSZC@DP@@JDBƤ~"], + encodeOffsets: [ + [124854, 31907] + ] + } + }, { + type: "Feature", + id: "310120", + properties: { + name: "奉贤区", + cp: [121.5747, 30.8475], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@~T~JjZdDbLXDLCB_J@@FHFZJJIAGH@HGR@BENBLID@@LFCDF\\FpDBDb@FAHKFE†@dEDDdC\\GreNMACVMLBTMCCFCEGFAA@DAFDLMHA@OD@BMEWDOC@AS@KGAI_DcKw„ÕísƝ‘åĆctKbMBQ@EGEBEJ@@MBKL@BJB@FIBGKE@ABG@@FMFCPL@AjCD@ZOFCJIDICIlKJHNGJALH@@FPDCTJDGDBNCn"], + encodeOffsets: [ + [124274, 31722] + ] + } + }, { + type: "Feature", + id: "310115", + properties: { + name: "浦东新区", + cp: [121.6928, 31.2561], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@EN@JJLNHjLJNR^GRYVBNZJRBV@PDvbLNDN@LGNER@nCNQNuT_TIVFV\\Z\\XnDrI|[Ʉś²ÏJUHOƣ}CA@IO@@CYDATGFIEDAEBBAGCO@GJMCEDCJRHEFANOCADAEG@@CI@FE@BDIC@AGIAIMiEEB@DE@AJCXJDCJEHGBELGCUCeMAD]CIJiM@DSAKJKCLQDQACUECDMIFCBDJGECHAEIWCK@GLMCCGEACNKCEJG@MMBMC@@CIJUINT@JAJSTEPZZCP"], + encodeOffsets: [ + [124383, 31915] + ] + } + }, { + type: "Feature", + id: "310116", + properties: { + name: "金山区", + cp: [121.2657, 30.8112], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@L@BIHFN@@EE@@EFBDGDAADVDD@@EF@CA@IIsRE@GDAF@BF@CV@|FBCHBLCNHAFCADBMDCFZXHILBVEEQA@MWFARJJ@DCX@@TEFBLHAAERE@AJABRPBNK\\BrJ\\VHGND@CNADKDADQjGAGNC@GJ@FCFFHC@JF@@dLBDSFADHVG\\DTEPDDHJALIJkJDJCDIPE@YDCBiK@DONE@EH@BAF@HLJA@EIA@ALKNA@@FIFAFHR@NALadsæąyQY@ƒA±DʼnXUVI^BF@FFF@HBJEDFFGFEBSRkVEXGHFBMFIVW@GAEEFOIAIPKABGWEKFSCQLQBSEIBC\\FdBLRR@JGACFDDEF@AWB@LJJYNABBA@CUEGPaO_AIE@MYMFIGAEFECHSAAKAO\\[JEDB@E@MMA@@AGBKMGDFFCDDFEDFJF@NPBAFLHFH@EDDHBADDC@DDCDHHCDDFDABDAD@FEFOBCJ[D@HEDDNJBDDHABJIBBvGLBJAH"], + encodeOffsets: [ + [123901, 31695] + ] + } + }, { + type: "Feature", + id: "310118", + properties: { + name: "青浦区", + cp: [121.1751, 31.1909], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@RUNKdOFDJCbRFMLAHPLDN@JGL@@APBWYCKN@TU@SHGCEJIDIJKVIZVNM`iNY@CIE@CA@KBOEGEUFCCSADEIEFCDDDIDDHC@CKIeDCG@IG@DHWFEEGCH@@GO@@O]CNpeEQDBFME[JC]DGF@CKOA@QSB@GB@@GW@@ED@AQIJIAAFE@@DO@CFI@KNG@CDACAFEGKGBEGBDCCAIFCCLIECFI@MBCLDHGNAHSF@DMB@EEKBA@@C]DEICFG@ADBHGFKCDAKKHKD@@FHGAANGEEFCHKCECBCKG@ADKCNE\\[A[I@@mGBDQQEO@BCE@AI[AML@JGACLOAFKEMM@EQKC@CUCBCCBCHEA@FF@@FM@GEAJK@GNF@EXPH@FD@M^@HIADJCFDBER@DK@@DE@CAKFOCCBDHIBCNSB@GFC@GQEEOWFICGDUAEJIDBTAHJHEB@DIF@NE@H|HBDBEH@DKBAHEF@HEEUB@FGFGCCCE@AHOB@NH@PRLVNNFBX@RC€PbAvMtBfH@DJF@ELBFA@EH@HNED@FFB@HLC@CJ@@DJ@PIRf@HE@CFF@GPHD@DKE@FFBEFFD@DEFCA@DD@IjCRFBAHFDKD@HF@@PM@H@BlbDJDBFEF@DLXB@HCD@@IFCBIFEJD@FDC@FBALLF@PAACJERACAJCBD@EL@JD"], + encodeOffsets: [ + [124061, 32028] + ] + } + }, { + type: "Feature", + id: "310117", + properties: { + name: "松江区", + cp: [121.1984, 31.0268], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@DLDFRN@FNELPBDKHB@INK\\BBJF@ADP@RFCRHA@nJ@B\\[\\MFLDBCH@DLDADFGLEDFFMHBBGH@EC@GLLLCBLDHEAGBCH@DEFJ^C@DB@LAFFA@CNE@GTMBGHKCAD@NEJFDKJDDJEDBCDHAAFLHFHBEBDDCH@LMJ@DEP@@CF@BEJBJIBRC@@FX@@HA@@HTA@RPBDLE@CHD^\\INFAERCfFMo^D@PP@@HG@HDFFXECGH@@JDHfCLJ@DGDCCCJCCEDJFCFTBDDVEHFPFLAB@NBFCFKFC@CHIACNOHWHCAAFIDD@CDAGEI@ACFMF@R@R_@GQED@EGFEQEDE_IAHKAEXCQUOQCUDEN@ZI\\DDmAMHCICDSOC@EG@BKHIGMIBCGOCSF[CUHCGEBCTKA@cE@@IGDEEEDI@@HMDBHiHCRCBCLMB@DMCGH[UqI[AMLOAAQIB@BQFBFGBAKFE@SW@CDI@QIEBNXB@FRUFKAGJYWDENCCADBBEMGKDGAAD{EU@@DAEE@CB@HQFJt@JDBE@@FC@"], + encodeOffsets: [ + [123933, 31687] + ] + } + }, { + type: "Feature", + id: "310114", + properties: { + name: "嘉定区", + cp: [121.2437, 31.3625], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@F@LI@IDKJADKIEJICADGACFECCJ@HKCAFOHAJI@aCBEE@ICAEB[GFGCKL@FGEIFADMLCAEJM@ELQECEIG@BE^QKKLQCA@EHBIGQ[GEHOMGGDHKH@JOECFCjCBEFDNCACMBCILGTABDLEEOEIG@GFIMM@CGKFBFCDE@@GEAGEEACIcGaHMFITIHDN[AKF@FS@OA@BK@IHM@KCGOKBENaQIDECcPMLQVFHFB@BFBKLGD@FAJOVGIACQ@A`LPCB@JEF@RU@ANS@@RCL\\HIFpRBFRBBDKLLDADJDGBFDABHBEDNF@DGBBBADKDAHC@\\JJFBDEH[DEFDH\\LX@XLBLbT@DNJLDCEL@VJABJNDHB@HBHYFBAA@GNFB@@AFB@AFABFLFBHFCL@HJBAFBLC@DN@HN"], + encodeOffsets: [ + [124213, 32254] + ] + } + }, { + type: "Feature", + id: "310113", + properties: { + name: "宝山区", + cp: [121.4346, 31.4051], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ˆmÖoÖiƒ½[s[YEUJU`SCIEBCCWJY_LIICDWU@@FaBCJIB[ICH[@@CDKEE@MK@@IMCAEBCH@AMFI@SMGEFGB@FK@BHCAIFJNQD@FEBDFMBKGACG@ECWH@@CDDTOEEBGEK@GC@EE@GPHFR\\JHGA@FDBKRLL]RAFH@FJFDKR@FINBFKDCNEBFJEHK@DLEH\\HFADB@JFFDA@bIJGBEPDBGLI@DDEFBDCHDBIJJFCLIBCL@JKJE@ADHDBHJ@HIBBDFHBBAEIJ@BJFAVL¢ˆ"], + encodeOffsets: [ + [124300, 32302] + ] + } + }, { + type: "Feature", + id: "310112", + properties: { + name: "闵行区", + cp: [121.4992, 31.0838], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@T@@ELE\\BCMJGJSNEbGdHDJFBJAFIEIFCEWG@@gMENSFCVJFAxR~B@IH@AIiI@GE@FGEAFQPDRiV[\\DFSGMHAXHDOMCJCDETBBNVJJI@DD@ANNNH@FILDDMFBDHNDHKL@XDFGLD@EHGFD@DDB@CDDHCDAEAHG@ABOJ@BIaC@CECLKPFNCDCJBiQEIF@@@OGBMIAEEBMTHF@NKEC@QFEGA@EBCKAACHCLJHEFHHB@AFCAIEACIC@HG@KCCDC[ECEED@KC@KJMAAFQ@GHG@BHIJYIGE@EI@A`KDWCaKcCiY}I}S[CYJM@CFDVPRRVWDFžLBBG`JCFRFEFFHC@RF@HQ`Q@E@ENBDJ@HFCB@DCCEJBBGDGXMPBDGJ@DEDELEDMA@DJF@DMZ_jMNYUUJILCJIJDFGH@TSVM@DLXZ"], + encodeOffsets: [ + [124165, 32010] + ] + } + }, { + type: "Feature", + id: "310110", + properties: { + name: "杨浦区", + cp: [121.528, 31.2966], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@V@CXJDKJZ`XIDDFADJvSRMDM@mFQHM@KCMKMuaOCU@BDAJSX@HKJGD@PNJCJWAGT@R"], + encodeOffsets: [ + [124402, 32064] + ] + } + }, { + type: "Feature", + id: "310107", + properties: { + name: "普陀区", + cp: [121.3879, 31.2602], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@F@@FHDL@HFFAPFCSDC@@XGFDH@BDLHNACEFA@ERCIMJEDBAGL@@EHAFENHHJ\\ONQBQCIBC[MKACKI@GGGH@I_G@CW@[DMHCDIBMTDHN@JNHEH@FJFPKFACSBKHDJNABDMDECAFiDEDFDIPG@GLHCNH"], + encodeOffsets: [ + [124248, 32045] + ] + } + }, { + type: "Feature", + id: "310104", + properties: { + name: "徐汇区", + cp: [121.4333, 31.1607], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@RADL\\NCPHFfLJaJ@FWLGMGIK@IFMDOYYFOTSBI@IMSAMSACFIDNDCPWGGBHNET[CU\\QjOCERFBEHF@@HjJBJG@@J"], + encodeOffsets: [ + [124327, 31941] + ] + } + }, { + type: "Feature", + id: "310105", + properties: { + name: "长宁区", + cp: [121.3852, 31.2115], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@HFFB@HF@DCAELENSJADCNG\\CX@@D`H@JHGHHJ@BINBFUGEDO[MCKQB}AwQEBUIEDMTNF@hH@FXEDFJEJIB"], + encodeOffsets: [ + [124250, 31987] + ] + } + }, { + type: "Feature", + id: "310108", + properties: { + name: "闸北区", + cp: [121.4511, 31.2794], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@CSG@BQGODUPWTOBQAAFMECKBGEMFKEOHADDJARMR[PGI@TEJBNG@ADBFND@JL@@NFFCL@D\\@DG\\JJADI"], + encodeOffsets: [ + [124385, 32068] + ] + } + }, { + type: "Feature", + id: "310109", + properties: { + name: "虹口区", + cp: [121.4882, 31.2788], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@bA@E@QHSXBDIMI@OHCLI@GTWBIACQAYIOFGCENBBARSPOXCVHPARH@DT"], + encodeOffsets: [ + [124385, 32068] + ] + } + }, { + type: "Feature", + id: "310101", + properties: { + name: "黄浦区", + cp: [121.4868, 31.219], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@NEHFLAFDHDPEAMZUHQQ]IMKJG@EPERABHBGRUCCNGV"], + encodeOffsets: [ + [124379, 31992] + ] + } + }, { + type: "Feature", + id: "310103", + properties: { + name: "卢湾区", + cp: [121.4758, 31.2074], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VDHQGABAFQFOH@LIiKKHEXI@IbAFZB"], + encodeOffsets: [ + [124385, 31974] + ] + } + }, { + type: "Feature", + id: "310106", + properties: { + name: "静安区", + cp: [121.4484, 31.2286], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@DLLB\\NPGLFHUDMYABEeKEVMAAJ"], + encodeOffsets: [ + [124343, 31979] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/shan_dong_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "3706", + properties: { + name: "烟台市", + cp: [120.7397, 37.5128], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ŤLšLllVń²è°xżĢĠÆl҄šŤbœ„V¤ĊXnŽlĢVĊ„Òš„È°ĊŰÞè˜L„±@џn»VUźċ²»ÆkôVɆkĊŃ²kŤVVwUUVmUaƒ@KkU@ƒmUmmk@UwUkmW@UVIXa@ƒmw@a™KULƒaƒx@Uk@UbWU@yULmK¯@kXƒVUwm@@JUUknWKUVƒLUbU@™wWykIƒa@w@mUI@ašUVynIWa„k„@@W„bl@@knmƒK@wnIl™°Kna@V¥ğ@ġUķ»™¥@UōJƒX¯¤k@™wmI¯‚k@mwƒak@@šlX@bUJ@VƒbknWxkLkxlŽšLVlkLmŽšb@bU@ƒbU@VbU`Vb@n„L@Žmb—U@˜VnUVmnU@mm™@kIUWVIUK›VkkUJUnmL@VmLUaVWaXamU@™™U@KUUmVƒU—JƒU™VÇwğn™mƒ@mXĉV@l¯xnô"], + encodeOffsets: [ + [122446, 38042] + ] + } + }, { + type: "Feature", + id: "3713", + properties: { + name: "临沂市", + cp: [118.3118, 35.2936], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@˜bXlƒl@zlV@lXXmŽkbVVlš„U@Vn@@Vmb@XšKšVX„WJ@XXl@„‚ŽÈbVLšUl`„@XXV@VVUxVbUxVbš¦„@‚WnXVJ@bnVUzl@„°Æx„U„KlU@mUUnUlUVWVUnVV@XX°V@Všll@Vk„aXVl@Ux@bmbXLlKlb@b@bUJn@@„„b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@™Xw‚KVxnLšU°@naV@UWUkWƒULmV—wÝKUUla@aó_@mƒK@aUU@ƒWUkwVm@aVI°W„@@IUw@a±¯@¥kUVUm@a‚wkw™@ƒK@kVKk@maXalI@alL„WXblaVLVU„V@LnKš@„l@w˜aXašLlnUl„LšmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@ƒ™@naWƒ™IVW@IkK@klKn@naWIƒmk@ƒaƒbkKkLWn™WkLWmk_ƒ@UaVƒUKmLUw@mn£WwUmU™ƒaóV@UkUm@UKULUwmJUX@WW@XҙzVblJXŽWXk@UVWK—X‚¤UL@xU@ƒ@ƒVUaU@@XmVkLmWkXUyÝLmKXnVŽ@n@l™x@bWLnVVn™`knULmxUl„„WLXŽVb@VƒK@z¯x¯¼Wx™KUn@bk@ƒlƒVVVz"], + encodeOffsets: [ + [120241, 36119] + ] + } + }, { + type: "Feature", + id: "3707", + properties: { + name: "潍坊市", + cp: [119.0918, 36.524], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l@@UšK@Ž@L@bX@@VlL@JƒLUVnX@`ÜXn`V²mJ@bU@@n„b@l°xnnĸVƚ°@„ƒĊ£Þ@lWnÑnkʶJmó°w@kk»V@»ƒ¥k@V@kw@wVm„a˜Å„mšaô£ŎƒXI@mln„Kla@mV_UKƒ@kUkw@alW™IU»™mƒ—@WUIl±UUÅU›bkJƒ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@ƒUIƒJUkmJ™ƒVkU@a„ƒWK—ImVƒ@UxmL@bX`WXU@U`ÇkUak@@°UblXk‚mLUKmL@VULóƒƒVk@@Vlbn@Ub@ċaUJUbƒIUlVLUVVbVKX„VlVXU@mb¯@™VmKUwLWx@šUb@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@mƒa@ƒm@UUU@U¦lJUXƒVƒmkb@nm„XVWŽkb™IVxUV@VUbWLXVƒLW`Ux@nk@Vn@x@VkJ@œV`mXkŽ@V„xV@lVššI@VULš˜VU„IV`°bVXXx„V@VWVnL@xV„Ub"], + encodeOffsets: [ + [121332, 37840] + ] + } + }, { + type: "Feature", + id: "3702", + properties: { + name: "青岛市", + cp: [120.4651, 36.3373], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„@nU˜JXLƒ„@blVU‚š„nIVl„IVJ@„UxWLk¤@V@nlbXbWJÅnUJVbVL@x@b„ŽlIœaÆVVVk²VJ@X„˜šnV¼šJkX@blxlV„@VLU`@nkbƒLkm@nWJō„ó¤™bƒn—ƃbUn@xlxU@l@„¦@¼UŽl¼ĊUnW„@šnĠmÈxšU„V˜I„VnUVV@LšV@šnVWbXb‚UVbnK@UnKVmVIllœUVLUJVXlJš@nnV@nmVUUm@—˜Vna@ƒK@mUaV_UaV@„aV@@a™anlKUk™KklwlKXwlm„a@UVI@akW@™l@„bnxl@°nJšxl@°£„WŎIUÑn»lašmô¹Ŏ¥VaUUkƒmkġWɱIUUŹ`›@kk@ĉƨřV¥_Ç@™Ĭƒ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕ™kğmó°ƒbW@UKkLUaƒVmz@V@ŽUxVn"], + encodeOffsets: [ + [122389, 36580] + ] + } + }, { + type: "Feature", + id: "3717", + properties: { + name: "菏泽市", + cp: [115.6201, 35.2057], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@¥šIVUÈmÞ»@UlU@Un@VW@UVmkk@aVUUKVÝ@UVknK@UV@VVnIVƒ@wnƒmwmKXaWaXI@UV@Vy²blkVKkam™U@kb@Um@VmUkmƒKmkXKWwkU@Ulƒ@UnK@UVUUm‚KXwšUVL„w‚K„U„@@Wl@@wUkV¥—@@I@W@_V@VWUw@UUa@aƒaWa—@@_mKUw™l¯amzmV—@WK™nU@kƒWLķaUKbÝVmV@UWÇbÛ@ƒX™°UbW@XŽm„Vlk²UJUbmLÇxÅWUzl‚¯Ll„@VkK™XUbWJ@bU@¯@™ƒkbƒLmKka™„@l™_WšXºVbUz@J‚n²V@¤lX„Ž„nV°šLn`WbXLôVlKVUšxXn˜lXLlU@bVV@„XJWLUVnVV@„„@n‚l„°nn‚V„KÈbVXÆJU°VnXV„kV@@xVL„@šWlb"], + encodeOffsets: [ + [118654, 36726] + ] + } + }, { + type: "Feature", + id: "3708", + properties: { + name: "济宁市", + cp: [116.8286, 35.3375], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nam_nKlVLXa„Il`š_@KVVXI@m@w‚ƒ„@@k@Kšnô@n`VbV@@L„L@KVVn@VX@‚VL„Jl„š@VUUƒU@Uam@Uk„wšKWaXamkJmIUVUÈblašUnV@kVKl@@lXL°kVJ@VÈnVJUX@V‚LXl@xVLnU‚@VK„V@a„IUaV@„bĊU„x„K‚kVJXUlV„ƒ„UVašI@WUI@KlUnw„mWk@WXIWƒ™U™L@Wna@Um@@UƒVk™UUlanWW@kkU@y„kWk—aWVUlÝbUU@kƒJUIU@@ƒ™JmaókƒLKǃUUkKWLk@WbkUUaƒbmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVۂm„aklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwƒX™am@kW@wVUkKVIUUVmU@UV@IVK@aUL@aƒV@Lm„UKmx@ŽômLkUWJ@šnXmlUxUL@Vkn›VUšU„@V™L™`Ub±LkV@kUKÇbÛ@ƒU™Wó_mJƒ@Wk@@Xƒ@ƒVLƒxUK™VWxLVnUV@VmL@Vk„@VlVXxWLnl‚Ln„VlUnn@@VlaV@nšlbULkl±aUzU@@VWJXbWbnLnxm„@xU„mJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUV™J@¦nnƒlnVlL@„Þb°KVV"], + encodeOffsets: [ + [118834, 36844] + ] + } + }, { + type: "Feature", + id: "3714", + properties: { + name: "德州市", + cp: [116.6858, 37.2107], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„¤@VmbVXnVVbVJššX@Žll@z„lVInl@„@bVxUbĠ‚l@Èbla„IšxXVWb@L™@n‚ULWVXXšWWLnL@`@LUVVL@lVn„JšU@UUk‚a„™nš‚Vôô„b°¼V‚ސXš˜‚œIÜbČa˜bôW„XÞWÈzÆmnLVJ°ÈnlV²lbnW@™@UƒUV™šmnwmkkKWƒkla@mVIUKUa™aUwmn™JU@@amIk@@bVlkX@mmUklUUƒƒa@_UaUUƒV@wƒw™WkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wk™LWa@UUm@@wnmU™wla@anKn_@alK@ݙ_ƒ@@WUUUmlkaƒIƒyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWV—kW¯U@VƒL@b¯b@l±¦@šVV@lUbV„@škxVnUšl¼XV@b@lV@nIWxnbƒ‚™@UU™LƒxÅxm¯ƒaUƒ™wU@mUÅVÝKULm@bmKUXó@"], + encodeOffsets: [ + [118542, 37801] + ] + } + }, { + type: "Feature", + id: "3716", + properties: { + name: "滨州市", + cp: [117.8174, 37.4963], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Vb@`„bV„kVlnV@nlWUk@al@nJ@bV@šInmVxšbVbVLUJ@nkb‚lX„lLnlmx™nUš„V@V@šmXn˜lbĸ@nnVx‚b@lnXV@UJ@nVxšxnxVbÆVn¯ƒĕ‚@@wÈçUÇlķVIœb‚@„Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@Kš@XUƒƒUkmUUalKXala@U@kkWlkÈl@kšV„mVIVmU_‚a„ƒƒwnwVW@wƒwUƒ@wU£ƒwkJWIyUI±bk‚VUJ@nmV™Ukl„Xmx@lnbW„kVƒUkLWŽƒxkKUUmUkb™J±—LÇxUKmkUmkkW™™a„mUaVkšJÆ_²KĠ@U„W@w„U‚¥nUWwK@aÝUkÅVaVK@akLWƒƒƒ¯I@bnbVx¯JW„ñšWbUL@šƒŽnV@VmbkUUV@IÇak@@bWak@WJUœJWL@bXV@„‚@„V„Jlb@zUlUŽUImšnbV‚mz@°UV@V™bV@@V@L@xLmKUnmJVX„J@VkLW@UVUL@b"], + encodeOffsets: [ + [120083, 38442] + ] + } + }, { + type: "Feature", + id: "3715", + properties: { + name: "聊城市", + cp: [115.9167, 36.4032], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ô@VWnL‚an@VKÞLÆUnVV@šxV„„bn°Æw„wšKVVš@„maXwmJU@@k@aWUk»V™Umlw@™UƒVa@kUU@™²¥@k°a@a„K@U›ƒU@mmm@ów—ѱ¥¯@@w™Kmw—I›¥kU¯UmakJmIUaƒVkKUkm@VUUa™Uƒ@UaƒKUK¯@™w™UVŽUIUKVw™k™¥™wƒbVŽ@xn„@lWnXxlL@`„XlJX¦l°XxW¦@¦Ul™n@Ž™@@Um@@VXVmx@¯bllUnUJ@VULVn@b„xV‚VL@b„„VlnVVblV„ÈnVlIVJœLô„lJ@xl²„"], + encodeOffsets: [ + [118542, 37801] + ] + } + }, { + type: "Feature", + id: "3705", + properties: { + name: "东营市", + cp: [118.7073, 37.5513], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ͬUǪlô@°Uœw°ōĠ¯š»Ģ炻XÇ@w™wƑa™ÇƒkwVƑ¯@řķUmm¯w@kƒa@mV@@anIU±m_ÛW@_mWVU„K@IkK@UW@@a@K@™L@Vk@±U@UV@lm@mUU@kLm„„xV¤@xV„„x@xUXmx„xƒ„bV`UnUJƒn™U@lÇkkllX@l@VkbWbkLVbnVVl„„WV™@@L@VXLll@xVXX`ôIlVXb@bVLVll@@¦nlƒÈ@›aUJkĸVÈÇè@x"], + encodeOffsets: [ + [121005, 39066] + ] + } + }, { + type: "Feature", + id: "3701", + properties: { + name: "济南市", + cp: [117.1582, 36.8701], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@²¦˜Òôxn@nn‚@V‚œ„°VlXU˜UX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@„z„JlbkŽVnVV@X„@š`@ÞkL@bm`mL@bkbšxnVm@xn@VV‚@XbšKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWšX„x@x„UVV@aVKVUX@lK@UƒIUWnIVmnL‚K@w@K@UU@ša@UVU@¯nyUman™VJVVk@ykaƒIƒU@@ƒWU@aXK‚IV›XIl@Xb@al@Èb@JVUlVna@UmU„@™VKXaò™Xƒ°IUwma@aU@UU@wVW@фw@a™I±`kbƒUkw™UmJ@UkmÇUUkmKknUVƒ@mJUkaWkƒa@KmKkUƒLmyXa¯_@WmImmbƒLmUkVUbUVƒJ™bƒUkkWJkUƒl™IUm™k™Lƒ›„lK@knaVmkI@mWaƒLUK™UU@@VmLUVLWK@UUUƒWUkkVmx@„Vl™¦"], + encodeOffsets: [ + [119014, 37041] + ] + } + }, { + type: "Feature", + id: "3709", + properties: { + name: "泰安市", + cp: [117.0264, 36.0516], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@n¼šŽW„nxšL@x°@š¥Uk@ƒnwlUVl„XVV@VXL‚KVUnK@UV@šVVL„KXb@nlJUnmb@lkLƒ‚„œšKšlVnšJ„klVXIll„Vša„IVUValUnV„K‚annnJ@X°`Wbnz„KlVnL‚Ž@L„bXl‚bVlnI„@VUU@UmVƒ@U@Uš¥@VmV@@_Ua@m°@@ƒ„kmUUm@UVmn@nX‚@@a„anJVUVL„mlIVJn@nkVLVa@KVmVLXVVLš@@U°bn@VaV@@K@aVkœbWaXUVymU@aUImWXƒ@™¥UaVwUaVwUUU@WWƒ@k_™VUKÇa@ƒƒnmxkV@LVJ@X™JUbƒVƒ„kUWVUIlƒLƒwĉVƒaU@VbƒJ@bƒUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmU™VkbÇaUVVnJlIn‚WbXb™LƒxVln@VbV@V„UV™@kƒƒIUK@UWm@UU@LƒK@KU@Uam_ó@™m@L@lƒ@„@x@nWJUU@L™`k_ƒJWbUKkmLn`mb"], + encodeOffsets: [ + [118834, 36844] + ] + } + }, { + type: "Feature", + id: "3710", + properties: { + name: "威海市", + cp: [121.9482, 37.1393], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VbUnVVUxĊ¼š¼ô@Þф¯‚WǬLŎUÆW„¹Uǃō¯ÑƒÝkţ™™ţóġ™óL™ł̥U™wm¥kÝmkkKóbÝ@U¦@‚mb¯LkšmJ@x„Lmn@lk@ƒa@Xƒ@ƒlXbmJUz™V@bVJ@n@x„blJXzšxV@Va„KVUXLlmVV@In@Vx„UlW°@nLVK@zXVVal@@V„w„bVKšL@bnx@„WbUJ@VnXVlVxl@nnnV@„lV@L„‚"], + encodeOffsets: [ + [124842, 38312] + ] + } + }, { + type: "Feature", + id: "3711", + properties: { + name: "日照市", + cp: [119.2786, 35.5023], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@UaVUUKVk„JVaVIČb@Vam@ka@Ul@„Uô„VK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@Uny„UVblKVLX@„aô¯ó¥mÛĊÿÈ¥š™Þ¹lUīƒ¯Kĉ¼ʟbÇV™U™ŽUŽ™XmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImŽU@™nƒKVkkm™KWb—b@xƒk™@mL@KƒUUVUKkbWaƒXkK@bkJWbnbl@UL@l„Lš@lxx@b‚nUVlV@¦²°@bVx@Jƒ@¯XUJ@bUnlxVŽ„X@‚VV@b„L@nô`@bkbVVÞL˜xnU"], + encodeOffsets: [ + [121883, 36895] + ] + } + }, { + type: "Feature", + id: "3703", + properties: { + name: "淄博市", + cp: [118.0371, 36.6064], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nƒlKV@nVn@@kVU‚@²VVaUƒ@wmKXU@UƒUWwUW¯aU_ƒJUV™—VK@U™JU™@kUƒw@UlnWU_@›lI@U@wUml@@mVwX_„KWUXKVa@UVUUwšJlaXWUnƒ@mla„n„UVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUƒbUlk@™k@U¯UWWU@mUUVUXkVmVVV@nkVƒLƒVÅwƒ¯k@WVXb›aUl@bV@@b@xkVVXVxkJ@nk@@ŽVLUlVb‚VXUVVUzV‚™LVbUbV„VWVkLmškJ@n±@UxU„VVkV@bƒx@ÒUX@xVVV@°J„„X„lK@bULUblÆÞV@b‚LXxmV¦ƒV@xƒXVŽğ@±LÅ`™IUlVbƒnšbXšllVnnlVLÈw˜K²ŽšIlanVVVlL„wXlK„VlUXƒma@knwƒWlkšVnU@mVIUl²aVJ‚zXJlI"], + encodeOffsets: [ + [121129, 37891] + ] + } + }, { + type: "Feature", + id: "3704", + properties: { + name: "枣庄市", + cp: [117.323, 34.8926], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@‚yUU„U„kl@@aVmšLXw°»°w@y„L@UUaWXKƒƒVknwVKlmš_UmmUXK@ašw@k@mUWmUL@ƒ@™@£@KƒbÝV@akw™aULmƒƒbUK™LUU@lm@—°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKÇ°kLlŽƒbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nL„aVblVXal@XKlLVVȄ‚L„KôlnbšI@„V@VJ„I@lVVÞaVkXU"], + encodeOffsets: [ + [120241, 36119] + ] + } + }, { + type: "Feature", + id: "3712", + properties: { + name: "莱芜市", + cp: [117.6526, 36.2714], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lmnLVlÈVln@VnIšVlx„Vla²_šJlUUUVƒVw²@@mlIn™lKXU‚UUƒVaUašKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V™@UKWUUKUn@LUbUKmlm@UIkJƒnUKUVmIƒb@b@mWm@Un@VVnnVƒl@„¯@@nVb@`U@Un@Ž™¦@V@VU„VnV@"], + encodeOffsets: [ + [120173, 37334] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/shan_xi_1_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "6108", + properties: { + name: "榆林市", + cp: [109.8743, 38.205], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@™ýVƒnIW»ƒW@»kUÇL—݃U¯¥ÇIUWWїUWwX¯mƒ@»n@ÜÈķô™@a±kȱƒw„ÑmwçċmU»ÆkkVyIm™ĉÿ@ƒÝ¹ƒWnwÇVš™Åaƒzmmĉ¦ó™kVmx™xU¼VškVm_UlVlk„°IV‚kmJa›¦k™™LmmV@XmKnšlUô›VXbƒbƒ@UaÇLğܙ™Åwƒ£mKnmċwÅ@UkƒbmaVƒƒƒn@m¯aU™Jm_k˜@kWXyl@@kÅamw™LU™Þ™ƒ™mWÅzUKƒš™Uk±@™b@nnK‚bX¤mzVšŽVxÇn„‚¯„@ÒknWƒƒVUbkķÈÑWkk@Va™™U@„mUkbƒÝÅ@Ý¥ÇbkĬ™XV`kLǍVmalUUa™nV±nwmkƒJ@Inƒ°KVw¯UnÅ@¥™ƒ™U±bUU˜±œmWbÛKWnUm`UƒVK@bmnœm‚Èż@V„L@xƒxmš„Ť°nŽ@VmK™²VlšlKk„ô@„êÜV@VXLlmš¦UššV°Ș¯²ÿ@¥š@ƁĊ˜²IšmĶnnb°b„KVƒĸLl„Þ@UȮš™Ü°IVƒÞÝސlŽœx@ŽķĀWŽ„Ux„èƐ@š°ŽXnšlĊĖ°m„nƒšV„²V°ÒƦ„aބ„˜@zll@bÞĀšlš¼nKĊ¼óȂb²±šIǪÒ¯ĖV@„lxnVlk„JlaXwŌĉ„„@VnŽššlÆĕ„UÆLœèŌŤôxȚlUœ@šxlaUċĕXm„IWmnkšVVƒ„VW_@aÈWUUmk@ƒ¯çVm»™±W¯n¥V™mkXw±ÇVwƒ"], + encodeOffsets: [ + [113592, 39645] + ] + } + }, { + type: "Feature", + id: "6106", + properties: { + name: "延安市", + cp: [109.1052, 36.4252], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@kkÇmIšmUwVkUƒƒU²WmšVkm@m`mIĢĕUƒVa@™mXƒƒÿVVkyUýšĕ@l_UmnƒW„KVkţ™™¥™aƒwğ@™@aôƒ„ƒWa„kUmƒa¯¯™a±£kx™mmxUwÝ@xmU™b¯K™wó„Ý@kmm¹Ub@lklVbmnnVUV@x›UknƧJUX@ŽƒLÇWkw™LķƧÅwWJk„ƒLkþĉxWz™JUnǚkš@Ɛk¼ÜÔÈKšè@°lșÆk¦l„n@l¼@l¯L™°UU™VÇ°ƒ¹—`m¼mXk‚™bUaƒV@U¯x@¦™Ç™„UUmlmUVm„nnmlkw™@@šƒ¦Å‚ÇLmx¯Iklš„@¦mÆ°VUx¯Lm„@J„InlmxU²šmVbkV‚bUnȎlKU_šWlīÈaÞ¦Æ@„ÞlanV@ƒšVšUbl@XlÇÒĸlŽVa„UX„lm@Ñ°ƒƒÈmUw‚U™nyW£amL@mša²@lšV„™VLÆynX„šÝšVššKnxÆb@lk@WzXŽ@ll—n`šIV‚°b@n„m„„‚Unb„aVlÆ@ČxmnnL„¤ÆxššĠÛÈKVb„@„aWaœU‚ókVm™nL@W‚UnnšKlšœ¥‚bnIlU¯JlƒUkVkn`lUU™V»šwnwlUôšĊ¥nn„yÆb"], + encodeOffsets: [ + [113074, 37862] + ] + } + }, { + type: "Feature", + id: "6107", + properties: { + name: "汉中市", + cp: [106.886, 33.0139], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lKnb@n„lWb°bkxĸwVb@ł„nlŽ„ƒĊ¥šL@XŽl™ÈƒVblÈK‚b„akVwôml²`‚nœ@‚nVKœl˜k²xŎƒ°¦VU„JĊw@çnWçރVkUóÛ@¥kwš™šUmƒX¯WšÑkƒ@UymIUwlUn¥‚mUk²a°¯V»@™ÝVș„ÝċÅÅVl»@l@a°±@_kammÅb™a@ƒƒm@ż™KknõĠ—@mšƒ„¯LÅw›‚—LVxmb@¼kV™@mw¯wVakKW»X±¼¯Vkxƒb„¼WŽ@nx@x±bóakbƒ@ÝmU™@ķÓÛL™kƒVUm™k¯¤ÝLUlÝ@Ýz™š„x@x™°™™™bƒmƒX¯aUJW¯—k@bÇWƒwÛwWxƒ@XWlb@Žƒ„VŽÈUlwšLnl°VlUô¦œU°¤VšUxVXUxlbkVVlƒI„°„ÅVlU°m@k„ÇU¯xUlƒLUlVL@b™°ĠInĠ°ÈnK‚„@xÞa²n‚aUyšXUKVkšWô¼Èa‚z°JXUVÇV_„JVƒšz@Žnb"], + encodeOffsets: [ + [109137, 34392] + ] + } + }, { + type: "Feature", + id: "6109", + properties: { + name: "安康市", + cp: [109.1162, 32.7722], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„bĊaƨèšwôô„¼šb°ašXVƒÞVUÞ@‚aXƒm¥kImx¯¯ƒV@anU@UÇéğL@ƒ¯¥V£mƒ@ÝÈb„K‚™„X°wČÿ˜ƒ„b@xÈblxȯĊ„„mÆUVƒ„nÈ@ƨÜLĢ¥ƒŹnƒ°Vnn˜K„aô_ȃšwU‚aXmnW‚¯kl›LXƒÇ™ō¦ÝaÅVmbğUn¥±wÅéVƒan¥ƒ„U„»°am¥„£ƒÝ@ƒ„wVw™¥nU„уUmmVwmķIÅaóVWxkblb@ból@œğÒĉ¤ċXƒ˜¯X™xk„Ç@óÆÅx@š™xķ_kmݎǣkblb@`¯²@bk‚‚@k¼ÆUČƃÞǚÞU@šU¼¯°±bVlnm¦kVVxnJVz@‚l„™ÒXW°n„™V™šlx@¦ôÜVUl݄Xèm@è"], + encodeOffsets: [ + [110644, 34521] + ] + } + }, { + type: "Feature", + id: "6110", + properties: { + name: "商洛市", + cp: [109.8083, 33.761], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@²nl‚ôbš„°aVwnKÞIš`°wšXôw°VĊ°@ŽÅš„ÞÆV„zÞK@xšŽ@a‚LŚ@b@ŽnLlƒ@šln„mnLVw„a„bVƒ‚VnbU¼„Vƒ°„bl„šbÈ@ĶŦb˜@nÇ@amIyUI@ĠVmôƒU™ƒVwkwlanJ„¯lwó¥@an°Jš_„‚@š™nóƒó@£l¥UwmašÑ@ƒUm±V_ƒJ—£›J—UW¥¯@ƒ_k¯¼mUƒVUè¯b@wmL™»ğVmağI¯¤ċIUW™XƒKĵ¦ķaƒJUb™IƒlUóVmk@WÅÅÇ@ƒmU„ÅVƒnĉƒÇ°kwÇa@wƒa—„ċĀ¯xƒWšƒLÇa@Þn„U¤°¦@„ĠKÈê@VmV@b„U°°nwlJn¦W„bÝ@VŽ"], + encodeOffsets: [ + [111454, 34628] + ] + } + }, { + type: "Feature", + id: "6103", + properties: { + name: "宝鸡市", + cp: [107.1826, 34.3433], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@ƒ„£@›°Išb@¯°ynŹƒaUƒlƒU£„Umšĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥ƒ@kb¯wƒn™¥ÇkUÇnUƒ@¯±›kULm›@m±_kŽónUxlŽƒbaÇLkŽUaDŽkšW@™Kĉ¦ƒ„kƒm@ŁUaķxlw¯aXaƒk@mmakL@šmšÛŽ@¼m„@l„XV`ƒn™KUš°°@²š¤UÈ@VxmôƒxKl„VV²aVw„Xla„Vlx@UVnŽÇnk°ƒVVL™lkI™šƒJÇk¯V@šknƘn@lznmlVkzVŽ„VVxš@Ux„z@x±¼VxxU„l‚kb˜@„¼Čk˜VXlĠkôV²w‚LUKlwœJ@a‚IV¥Þƒn¯Ün„‚„@nk˜l²kÆ@š°„aVbnI@™š‚Ťn"], + encodeOffsets: [ + [110408, 35815] + ] + } + }, { + type: "Feature", + id: "6105", + properties: { + name: "渭南市", + cp: [109.7864, 35.0299], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@ÈôL„xUŽ°„Þ@mŽÈnl¤nUôL‚wX`@ÞÝL™ŽUšmLô„„ŽôbVbnºlnÞ@ôƒšx°LšanV‚wÞ@Vxnwšnlw²¤šb°°„bVnƒlXbƒ„ó„@bš‚Ġ@„xšbš¦ŤšV™Xġ„£W¥ƽɽƒó@ýóƝÝ»„£X™mƅšĊkUƒ„@™™šó„kťaĵŽÇ@™akƒƒa„¯ƒUV»maUU„ƒaƒbUxmKƒnkm@™k„mK@ƒxó@¯n¯KǦ@ôÅèlxkx°nƒƾ¯KU¯WķL@VÝIUb™yWbX¼Ç°"], + encodeOffsets: [ + [111589, 35657] + ] + } + }, { + type: "Feature", + id: "6104", + properties: { + name: "咸阳市", + cp: [108.4131, 34.8706], + childNum: 14 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šIXyĊwlý„KlƒXIVaķƒ™»a›£„¯aVU@a™‚wÈō‚ašL²»‚VœUln°WȯW»XašzVaÞJ@Uƒ»@¯Ýbğwly@£kÑţ±Wу@ka™IUƒƒnƒ@¯ƒómţU™b™U¯lÇIÝb@¤Ý@kV@zĊ@™ĶnƒVV¤k„V„„bmź¯z@°™a¯J@œƒ¤@„„bUx™bƒ„@`™xUÔ±ºVXœW‚„UnUJ‚LĢ¯ÈKlblmÈXŎ°šU„°LšŽlkÞKš@Èxl_°ĶUÒkblš"], + encodeOffsets: [ + [111229, 36394] + ] + } + }, { + type: "Feature", + id: "6101", + properties: { + name: "西安市", + cp: [109.1162, 34.2004], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°²@‚„mVVÈÈlš¦„m°xla„@U¦°ÈV¤XbV°lXÞaÈJ°kšVšaŤVôn°„„@„mV„šJlb„@XÒŤ²lÒ@¤kzĠxÞa@°„¼ĸK°XV‚°L„ƽ¯mlwkwÆç@óÈ¥°L°mô@„w@aƙK@b™@wÝLƒyÅUƒÝƙ@ĉ¯¯Uóx™W¯x™_ÝJmLUx¯b™ƒóak±mÝUU„™W¯b™aƒ»óó™xƧçĉbƒaĉxƒIUV¯¥ō„±w—l"], + encodeOffsets: [ + [110206, 34532] + ] + } + }, { + type: "Feature", + id: "6102", + properties: { + name: "铜川市", + cp: [109.0393, 35.1947], + childNum: 2 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÆxĸƨšKlxÈX„K@VWƨIlmœV@wVUmUnmUalk@kVaUaóaƒóƒnKV™šÞK@ÝW_xóKmVk£ÇmnÝ@¯ƒVƒwóK@ǯXkm›VU±¼™KbÇŎx‚š@bUV°bƒœ¤‚bš¼ĸ„Ub"], + encodeOffsets: [ + [111477, 36192] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/shan_xi_2_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "1409", + properties: { + name: "忻州市", + cp: [112.4561, 38.8971], + childNum: 14 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Vx@lnbn¦WlnnUšmš°š²VšV‚VVVnUn„ºlz@l„„@Jƒ@kXWVXl@Lƒa@„ƒKUL„ŽlbnKlLnK‚LnKÆXn°šbVV@bUVl°Un@LnaVJUbW@UX²l‚@ČwlVVIšWnkÆa°„„anV‚Kn°™UW¯@™aVUVk@Un@„aV@ValwUanmWU„k@WVUUanaVwnLVl°@nk@mVU@UVK@w„LVKVU@ƒ„K@UUKVUV@@bnL„a‚V„aôšlIXmlKX_°KVV@bVV„@šzV`kblI„V„Ul‚šL@bnV@V„Ċll„„VlIXW@k„a‚U²blKšVnIlJ„albXXlWVn°JnšnL@l@XlJlaX@„X˜W²@l_VmnKšU„blU@mnkVK„¯@U@ƒma@kX¥VƒmakkƒLƒa@aƒ@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@V—kaWWkX™KmƒXk¯ƒ@WKƒLkak@±bƒw@ƒaƒa@akaƒ@ma¯@ƒL—KÇÅkKWbkmġ™±ÅUƒLUK™VVkƒm¯LUVVbƒ„UwUW¯bm„ƒULƒxWJ—@ƒklmkUm@@KnwVkVK@akwƒ@@a¯bƒKkn›VUI™b¯mmbk@UbmKUL@xUUƒ@klmLUŽlVXI‚VVVUVUœU`mLXVWbXnW`Ų°xmŽxU@mĉƒƒwU@mbU@UƒmbkVW¦kJ™@ƒX@`¯Im@UlUVVnb@bWJXnmbƒJUU™UUaƒ@UamIkaƒxƒ@@x@b"], + encodeOffsets: [ + [113614, 39657] + ] + } + }, { + type: "Feature", + id: "1411", + properties: { + name: "吕梁市", + cp: [111.3574, 37.7325], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@a@w„@„wlbnJVb„@VbšVVV„InaWmXI@a‚aUmVUVkn@°J@_„Wš@lIX¥lUnaV„V@naV@„xĊ„n‚V@‚wn¯wƱX_WmXaWUnKV_V›VUUUUWJkUVnKlk¯™@@kmKUaŁ±KkU@WmI@WUIlUUmVwXƒ‚w@ƒUlUVwœV‚@„Lnb‚W@anU@UšaVkô@l»n@na˜JnUÈLVaƃUUVm„VKVƒ²L@mU_lK@UVWkU‚a@a@U¯aUaƒÑóÑUb™„ƒKk@@aƒk¯mVaUwVƒÑkWUmK@UUKmXUWÝwUa™LUU@aWJUUU@Ua݄U@WL@VKVaVI@WnU@alIVKƒƒ@kIƒmIkJ@™m@ƒ™@@_™K@xƒ@kaW@U„@Vmn@ŽUK@mIƒJUXV¤XXWlkKƒkkK@XmJVakImJU@ó™¯LWKUV@nUVƒLkxmKkLma@kXKmmƒLƒab™LmK@V@mXVÆUxƒX@`nL„aV@@VmLUVnLlLš˜„b@„šŽ°²nx@b‚VUxlb@V¯bUV@zV‚XVĊXVx@lVn@VnnmŽUš@LlJXVƒz¯VWVXbšV@bmn™VUVk„Çþń@XVxmbUlV„Uln„W„@„Xl‚@VLXÒ@bÞJ°¦„L˜ò„@nU‚b@°„X@ŽXbmVU„V„nb@x‚x"], + encodeOffsets: [ + [113614, 39657] + ] + } + }, { + type: "Feature", + id: "1410", + properties: { + name: "临汾市", + cp: [111.4783, 36.1615], + childNum: 17 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nW‚@@UnLšK‚a„b„KnnWL@lnblKnLlw„KVU@mVUXL°KôšV@nIlJUbnI@WlL„llLXkWWU£VW„InJ‚@VL@nm@UVƒX@lb„@@wšL@`‚@„šn@V@lw„@n„VmVX„WmwnUlƒœa@_lK„wVlUn°xVKVXXWlUšVVI@K@K„n°KœwlVlU@kna@V_„Wn‚m„UVm@kXml_@m„LlKXw°m@_ôJVUV@X™l@UaV@Va°I„lk»VwUkVmwUmmVn@V¯@KƒU—wmK@U¯wUVÝ@mJƒU—nWK™@@UnKVa„_lykUmKÛnm@™x@ƒUUlwVk™ƒXW@ƒa@Uƒ@@K@ƒkIV™nammVakUlƒ@wX@@kƒ™¯@ƒVVbml@„„°UbULmlVbnbÅK±VƒKVXUJWa@ULWaUU@@U@aWK@UkxUKƒLUUUJ±UkL@V±kk@kam@UV@l@LWl@n@VVUx„LlUUx@VUV™U@aƒIUl™L@°mLU‚ƒbkUUaWUUaUU@aWK—LWJ@bUL@VUVVbU@m@a@kmKmnĉlUK™XƒWUblb—xmIkƒƒU@xWb@lkšVx™LXŽmzVV@bklVVUzm˜@bk„@Vx@xlŽU„@lUbVnl@„Wxnl@n@ŽUbV„mL‚mƒb@`X@lUX@@xlnkLWaUJnnWV™Vn@l„@bULVV@l™V@XnJVX"], + encodeOffsets: [ + [113063, 37784] + ] + } + }, { + type: "Feature", + id: "1407", + properties: { + name: "晋中市", + cp: [112.7747, 37.37], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@šlInJ„lJ„@‚„ULkJ@bmV@XUJUb‚L@UXKV@ރVbV@VVXI@bVVšKVbÞxVXnWVL@VnLV‚lX„ÒUŽVxUb°n„l@bl@„LšƒVaô҄ÒVb°b@VnLnnV@lmn@lb„U„V@„‚JœUVV‚Xkl@lUzmJ@xšXkl‚bUn„JVšUb„nU‚lb„V@nlLX@lakšV`Ub°š@XVJnU‚L²KlxnI@KV@lbUbVV„KnVl@„zlm@Uš@nŽšI@WUaVl@@mVU„@XkW@ƒnkVKVƒ„_Vw„y@knwVa‚@XalU„@šVnml@„X@V„L‚KVaÞbnnlJšI„mVKn„VVVInVlU„@„m@™mXK@UmyUI@mWUUakamw@wUwmLkakwVƒmK™w@wUam£y@am_ƒW@™UU@knmm„amU@WUa@knw@ƒUUUUV@nƒJm@mVUkKVUUUkKmwƒKULƒKUImV@lUn™nŽm@mbUK@°™bUnmbUmkkƒWUb@am@UXkK@a±@™V™@ĉř„V‚UXVxUVkLWl¯@@bULUlm@@nm`—XƒlWakIkm›VUbUL@Vm@kIƒ@@Kšm@—VaX‚I@W@aU@kUƒVU_™KƒbƒJkkǎ™b@nkKmL™wÅW@kVUUƒVU@WUIƒJmIXmma@_kyVaUUlkUm@ƒkU›x¯Lƒm@L@LUJ™UkVWXUWUL¯wVmUkƒxkL@`›bk„mVnxƒXUWUnmƒƒ@kxU@"], + encodeOffsets: [ + [114087, 37682] + ] + } + }, { + type: "Feature", + id: "1408", + properties: { + name: "运城市", + cp: [111.1487, 35.2002], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„Vl„nJ˜wkaVa„XšWVLĊknmnL‚l@@bn‚V@UaVU@UVK@aXI˜KXL@bVVVbXVVblV„aVnK@¯šKVk„J@bšVVU@UVwkVƒKVwUUm@@Xk@K@kVUn@lbl@²l@UlK²VVIVV„KVLlw@VXL@b@VV@VŽXbVK‚@XbVIUW„L‚U²ÆLmaUankVKVaƒ¯@ƒnkUa„U°@„š‚n@@kWa„UVaXUW@IXKVw@U™ƒ„™WU@W@@UUƒU@mn@ƒ`m@UUULkUmJ™IUƒ@@UƒK@U@›anƒ™ak_@wmKUwmakV™kmK™V™k¯b™wƒ`kwUIÇx¯»ÇaŃmn@@™mƒmUkV@wkKW@kxmL™UkĉLÝk™xÝw¯lóVU„mV@ĀVVX¦W¤kz@`Vx°„²ĸ‚š@„Ul@x„êĸNJ°¤V„VlXLWnXxmV@nUl@„"], + encodeOffsets: [ + [113232, 36597] + ] + } + }, { + type: "Feature", + id: "1402", + properties: { + name: "大同市", + cp: [113.7854, 39.8035], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@²£šyl@Ȑ˜Ė@bĸŽĢbĸ„˜X„a‚KŤnn@ŎôllÈx„nVnÞDŽV@b‚nXllL°KšbVb@J@b—„‚„@ŽU„„xlKXLlKlXk„@Ulk„JlkUƒVKXUƒÇVIVm@_nǚLšašl‚w„VnU@UUwma@aƒaÝaLmUk@@Wƒ@U@@X™wVWÝUUUk@@VmLƒKV»nwUw™aUL@`mzƒJUIVƒUaUw™KUaVIlJôanÑlLVUn@ša„@VV„@@UUwVK°Vn_lJÆLœéW@UUUÅ@»lm@aÞIVwXW˜UUkkm@U@aƒU@mwU£VWU_kWmƒXwW_°yUkkK@UÇK@kkUVymóK—U@KWIƒbUak@mJ@bkbmLkŽ™UmƒkVU„W¦@lnb@„@Vƒ°ULml@nkVƒa™VmLUnk`±@—XƒWW@kbǦXŽ¯„WxI@xmbmxXlWV„„@bŎUz@J‚b@bÞb™ŽU@Wbk@ƒxk@WX¯VۙƒWÝbÝUkVUU@alI@a@akLWa™m@U¯UUmÇL@K@aU@¯VUkƒKmX@`@œkJ@nV‚Ub@lbVÆXVW„ULU`VbkLUV@XWl@bXJ˜@VbV@Vl"], + encodeOffsets: [ + [115335, 41209] + ] + } + }, { + type: "Feature", + id: "1404", + properties: { + name: "长治市", + cp: [112.8625, 36.4746], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Uk™Lky@I‚JVa@mÞaWšy@_W@_WƒXVlUVwš@nw°K@m„UƒVaƒmVkU@mmmnLVUmKXa™U@IlKVUnK@UmWkX@WV_Vƒ@akU@a„KWIXyƒIUVmUn™Ua@WaXUVKVmkUWVkUƒLU@@VƒbƒKbƒIUmƒ@mbVL—x›WUUkn±V¯wƒbÅJUbmLkbmKÅKƒbVnUbƒV™KUb™KUbmLKmƒb™aƒKkUm@UŽnn‚VnxUVlUxl¼ƒk¯JUbU@Vbk@WšU@UVóI@`¯nWxkLƒK@nk`Wn@lUnƒVnm‚ƒXU`@mb@lkV@„VnklVVUblz@`nbWnnJ„IVJ@XUVV„UV@lÆXšxnKlL@mšaȍll„I„ašLV`„UlVV@@b@XJWUb@˜™n@L„@lJn@@UVKVaœUlnlJXb„k˜Wn_@mn@VkVK@a°@XklKVUUwVWUšƒĊƚ@šU²@@blLVWn@@bVa„XllVnnaVmša@¯VLnan@‚šmVm@knUVJ"], + encodeOffsets: [ + [116269, 37637] + ] + } + }, { + type: "Feature", + id: "1406", + properties: { + name: "朔州市", + cp: [113.0713, 39.6991], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XXWVXVWnnlnn@èƼ@„„xlš„ŽV„nblšššVŽÈUVl‚š@„blnœL܃ĊmUkU@Ua‚—@WI@aXk@WVUlKUaV_VKXƒWUUÅka@VaU@mlI@›@_nW„LVl°UV@@b@LÈKVn°V@VšnXblK@b@bkJ@bVVlUÞVÞa„Xܚ°UXWl@„wl@XaV@šÝa@aa@IVyƍ@aƒƒXUWknwna@w‚JXw°ƒWÈ¥kI@W@kmKm™¯IUmkXWWkaƒbkImJ™UkL±aVƒb@lWXkJƒUkƒĉkƒ@UmU@a™KkƒVƒUkJlaU_™yƒ@UU@aUU¯LW`kLWnkJó™ƒbUƒbmK@aU@UVVL@VƒL@„UVULƒK@xUL@VUV@nml¯@UkmKUxmbVbUV@XƒlXVmnVbkxUbU@ƒbm@@VUlUVšb°@VX¯šm‚"], + encodeOffsets: [ + [114615, 40562] + ] + } + }, { + type: "Feature", + id: "1405", + properties: { + name: "晋城市", + cp: [112.7856, 35.6342], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lV„Lšb„an‚LnKVašLVašL„UVaUm„aÆLnLlanKVaÆI„a°x²UlmVVœX˜wUKna„@Vn„J‚a„L„a@UV@@alUkKVKnkmmVwUk„w@ƒ™@kxWUXƒW@@mƒk@aUa@a¯aƒLkKmwkUm@kL@K@aWIXmƒVƒXƒWkUVakL@UVKƒw@aUK@UUKmLU@¯n™KUwVƒUIWJUWmka™@UXƒJƒk@UkmW@kLWKVƒx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@V™bƒLkKmVƒ@XWVUbƒVXb@lm@@lW@@xk„lVUbnnmbUšlJ@„@L„@@V„b@‚WXš„UlkxVV@„šwn@ÜmnLlVkzƒ`UbmL@Vš@XL˜m„VnIÞ@VU°x@VnL˜x„V@LU°"], + encodeOffsets: [ + [115223, 36895] + ] + } + }, { + type: "Feature", + id: "1401", + properties: { + name: "太原市", + cp: [112.3352, 37.9413], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„@VV@wVKnLVal@na°nšaVJœUlm„L°a@b„@lx@bULUlmx@Ln@lVkn„l˜@XI„w‚K„Vnƒ°aVXVx„ƒUaVU°K„nUlšUVL„KÆVš²Ģ‚lnXalLÈƘL„KUaVkUanmWU™a@WwkUWU¯y¯Ñ@anIl@@aVU„m„I„ymUƒLUUVakaU@@LmJkw±LKmVUI@W¯™VaU_l™kbW@kK@mƒUkaVƒmVaU™ƒIVmalk™W@wnIVy@klkWUU›VI@ƒƒUƒVkam@knU@mmmK@bblVUX@VkLV`@n±KU„ULƒ‚UnVVńUbÇKmV—Imbm@k¼ó@Ul™b@VmV@bXmaƒK@›UUxkV‚V@„xW„UxVnkVVJ@XnJ@XlV²LƂVbnL@lš@°"], + encodeOffsets: [ + [114503, 39134] + ] + } + }, { + type: "Feature", + id: "1403", + properties: { + name: "阳泉市", + cp: [113.4778, 38.0951], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°@nb„@lb@b„b„b‚@„x²al@lb„KXU@m‚kUWkkmUUƒVwV@XUW@™naVklKXblKnL‚ƒnLVanImaXKlL„ašV@U@KUKW„alƒXK@£WKXUV@VU„ƒUUVW„_V™@W@@K„@šƒUƒƒIWmXUmƒULƒn™JkImmÝaUbLƒK@UƒWk@mn™Uƒ@kVWb@Ubmx@lƒzUxƒ`U„ULml@„XWlƒ@UV@nk@U‚Vb@X™Jm™@@Vknƒyk@ƒzƒJƒnUV@bk@mJ@b°Ò°zXVlVXx‚@šbXVmnVbUlVb"], + encodeOffsets: [ + [115864, 39336] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/si_chuan_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "5133", + properties: { + name: "甘孜藏族自治州", + cp: [99.9207, 31.0803], + childNum: 18 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƒaXamƒ¯wm@±°wUwV@UaVw²Kš™„U@UƒU„¥‚a„ƒ@£Þ™ôx‚Knkm™X¥™IUƒÝUwlk°V„@ƒÈ™‚KUwlkUyV¹„mšx²Xll„ÑW»š„l„w°UŎ„nƒ„„˜Jœƒl¯°V@wôIVÇn™nUllšLšVǚLô¼XW£@±„@¥k_ÇJƒkUéƒkšƒƒwXa@ƒšLlw²™Vx„b‚mš¼ÈxlLȃ„VWÞn¯mǙÑUÝlÛkwlĉmƒULmwUJ™ç@wkm@ÑlUX™ƒÑôġƒVa™ƒUф¯@wķÓkbV„mnU@@y¯IķKƒV@¹šaƒé@k„mÞU°¥@a¯@anKlblU„¥@óğç@Çw@wkla„çݱk¯±@ğÝUÛmݯwƒ@kb±¯akXWÜkXUÆÇUš¤X_Ɛw„V@¤ƒXU‚ƒbUƒŽƒIUlÇUkŽġ@™aXČmlUlèUV@„mVk¦Vxš@¦±š¯ƒƒ¯¯anlWš¯nƒƒÅw@w°KVak£m@klƒKknÇU™»óKšīlaUaV£@™™¯@ƙU™VƒÛÝÇXƒÇl—ÓlŹ„»WUğJ¯£mx™Lĵô›ºX„VlUll²bl„„lŽƒxónn°ÝšU¼mJUš¯nƒƒƒV@êĉ°Uĸ™w™@mƒ@¯kmXamѯaUwÝKU¥„mÅn¥Wmn™ƒ¹n±ƑƆÇôXê±NJnšƒ‚UôlĖkȂVÒ¯¼VnƒȮ¯ĀnƆ˜Ģ@Žk°V°¯ĢVlkšVxm¼X²™Ŏ@ŽVxknWÜ°U‚¯n™Æݜ@`„ôݲÒƒ‚Çzn‚mX@x„è°K°Å„UČĬóĖ݄ƒ˜ó¼ÅêƒÒƒbmšk@V„Ž˜„@ҁl@nĉܛê—x@Ėml՛J¯¦óxȭ°ÝmŽ¯Lĵè›Ā@Ɓ„l°żƒ‚šX@xmŽkV@z@‚„°blŽnÞ°J@bn@ƼUVƒUóŽóLƒ°X°ÝLƒxUn„°ƒĬƒn@lnL@ŽÆ@šn„KÆxnUnV˜InĬmÆnxŎ¼ĊIĢóÞ@ĊƒƨbUƒ‚mV¥lkƒ‚wnL„mšÅÆ¥Xƒ˜wU@w‚wUÞ™@alUUŚU™Vkkm°aU—°Ó°w°U„ƒ„b°aš²K˜¯œĕ˜@ÈbޏĊaš»„XVm°In„‚Ĭk¼Vb„ašJšôš£VĊan™‚k„ů™™nƒÜU@anKnĮ‚bÈmƎš»nI‚霣Ġ™"], + encodeOffsets: [ + [103073, 33295] + ] + } + }, { + type: "Feature", + id: "5132", + properties: { + name: "阿坝藏族羌族自治州", + cp: [102.4805, 32.4536], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l@@þ²I@lƒ„VL°wnJ°Uĸ™Ŏè„Ilw„V°¤nĮ™¤Ý„lè„L@„ƒ„@x„l™è²ôĊ_ĊġVÈôJżīlbXšÆÈVŽkxÇVƒ„n°„¦Üb@è@nn@@°šUÈ¥WDŽ_Uala¯¯UǙkƒ»„mVwk»˜k²°VxlL@¤œ_@x‚`ȍ‚Ėöb˜š@l²alX„a@bnK°¦VK@nnWmx@nUnl@@lƒlĉk°l°UXkmW@Unš`k„ÇL„ŽW„ÛÈVxšVVlVk@l„IXb@ylXÈW˜Į„WŤzœy@šmIƒŽ²šJ‚š@nŽ°@V„„J°a„Å@ƒŎkVǚk™aUw„KVw™™Vƒ„@nkm™@±ôkô™ĊJš¼šInÑm±nIššÞ‚XȃĊxĊUÈbÜyÈ£Vkw@kVUV™„m@ša„»ÜbÈmƒUXwÝxƒUn¥@°ġ™Å‚aœJVk™aW¯Û@W¥—UŏĶ™@¯kUƒŃ@ašI@mmanwސ‚W@œ™mw°»Uřk¹±W„xVx¯¦U°ƒzţW™w@°ÇVÑk¯@„y°aš£š@šmšnl¼„ašÝÝakwUƒ±aĉImlĵn@ƒm@kkVƒ¯Ñm™ĸ™°x„l™œ@˜ƒXVÞmlÛݙĉUÅ¥mwÅ¥VaUw›™XġċaVůÛŹlwU¯U™ó±™xÛV±¯¯n¯mċƒLmnĊm‚™@™_kJWaXmwUƒĉK™»™@mwX݃UDŽkKÇw™»nƒaUw±škx™K@„Wb„x™„„lVê„lÈIl`@¦ƒŽ@²X¤Wó»™KUșŽ™KkkmVmšUÈóJ@x¯Uk°›„—Iƒƒm„ōƒ¯Vƒxƒk™ŽX¼ƒÒkk±W™wƒnUºVzklVxLǚ@„ƒŽ¯UklVxސV„šJW¦nšmlLówݚ@¤ƒ„bƒ¦„V@VƒV™š±LUxVbU@Vx¯x@²n‚°xn„Wb„b"], + encodeOffsets: [ + [103073, 33295] + ] + } + }, { + type: "Feature", + id: "5134", + properties: { + name: "凉山彝族自治州", + cp: [101.9641, 27.6746], + childNum: 17 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ĶóšKnw°¤ĠIXVƒ¼kź˜Ôk‚„ÈWŽÞȄÜUVšÅš°@šš‚@U¤Vbkb™ĬôLš¼ÈVlm„Llkn@l¤Ub¯L@xÆx„„°mX™mk°b„°°„²™@¥‚™Uwl¥nU@ƒVUkçVnkWċšbĢ@lÈVVk„J„‚V„aV„W@£ƒUƏxW`™£ÈVVÅlWXÛlW°b²la„@°xnÞVÜĠÞ²@l°Þ²ƒèkblŽ@xÈx@Ġènal£nU‚Dz@‚ÞK„nn¤@¼˜°U¼„nV‚šXU‚šbn™ĠUVbUlVš°LX„@lV„èÜUnK@_ƒyXVyUwmIU»Vƒ„kÇ¥šÿkkV¯m±n@ƒn¯ÜanVVƄz@Ž‚bœwÜb„m@wša@kƒmk»@™a@VUUó„w˜@nb°mš„XŽmnVbގVôanwšJ‚ak£lw„˜šLšÅnÝ@wl¥IÇӃ@U™™Lƒ¼kVǃÅó¯kVmmw@ƒn_‚Vn»°LÅ»@éÇçŹīVÇÝ@ÝğU™ƒaVݙ™š¯ķlŭġlƒ@óÞۂċ@¯nkUӄ—m±™IVġUwóKUn±¯—K›w»ƒKݐV„nl@„óxUwţ›£ĉƒUmŗÇ݃K™„ÝUlmKƒ£UVŽ@ÞȎW¦„Ò@Ĭšnny‚@nÒmœVŽ—¼@°Vbl@VlnUUwl™°a@„œ„@llnk°lbnKWĀnŽU„VxUŽ‚²Å‚m¦Û›ÇŚƒaU„Vbš@¦m`móX™Umm™xÅ@±Þn虲™U¯»m™ƒV—m@wƒU@wݚÝmLƒa@„™VÇUk„l°¯„VlkVƒ¦UšmxƒaULUèVx@„kIUxmWV¼¯VmȯšU„nl›È—@m»Å™ƒVWxÅbÅğW@kƒm@kVV¦mlnn@‚ō„l¦Åƙxkœ"], + encodeOffsets: [ + [102466, 28756] + ] + } + }, { + type: "Feature", + id: "5107", + properties: { + name: "绵阳市", + cp: [104.7327, 31.8713], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„ńlV°š@Őĵ˜VX»ÆUĊќJ‚w„@È»m»š£°Kšk@ÇnÑƍš@„w°JUwnw@wšbVbš@VlźLUw„aƒ»„aUklyUUVakwWXwWƒUxkLƒmn¥mšwk™˜UX™lJ„w@aƒIk°X„¥Wƒ²l¥šaU™„IlmkklƒÈL@m°nlWU™aW—š@Vƒ„@UaV¥@ašk@Çk¹ƒK@a™K@kƒKkšÇX@VU@kx±V™èkIWwUVUkkKÇ@ƒa@wkml¯@kUWn£Wa„aVwnaV݃w¯@UaWx—n›JńUxUšma@L@„mbUŽU±VVnkxUƙ„VŽm@kkKW°„X@¤ÇUkÆÇnU¦¯ŽkƒmLVwÅK@UóbÇƁVƒ¦™L@‚±êX¦mVޚkÜÝnWU—„›@kšƒŽ¯wķšnš°ÒU„lln@@„ĶmnkĊJ²bV„lxÞb™Þƒbk»™m™n™@™¤¯bƒz@Žl°UÒ¯È@ŽšxŤX„yV¯°¥Uwƒw²XlºVŚ¯¼nx›š@ŽXݏmxnb@n™J@b"], + encodeOffsets: [ + [106448, 33694] + ] + } + }, { + type: "Feature", + id: "5117", + properties: { + name: "达州市", + cp: [107.6111, 31.333], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Uxn°‚bnŽlUnÒƃnn@n‚¤„LnxlU„ššV@„Æl„x°XXxl`XœƒVW‚œL˜è—„±nÈbƒŽ°b@š²x°Kܼ°ĉ„V¦lJnU@¦šÞ‚JÞğ„mšLÞ»šxU„lb„VÆann„alŽ„VƍX@lnŎV„mU™maÅXƒa@aWmœ@‚£@wĉJVƒkk‚kkmƒnk@ƒmna@šal„Kš™‚J@Þwm‚ÅŃ@ambkUƒƒ@™™KUġKU@m‚ak¯±ƒ„a@aĉÑÅaVwšXlwƒ±—V¥l@@a™kƒ›@@£šmƒĉÝónWV@ŽnÝÇÇx—UmbƒaVkkk@m„@m°ƒÝýXm›akÅīƒ@@ƒmb@@xmšnbƒ@mxšŽkWL@ƒ¯b@WUXmWœWKkbm@kx™Xmm@LUl„xlêóK™nUš„all™LƒlLó°m¯JVšU„K„„@x˜K²Āô¦l°"], + encodeOffsets: [ + [109519, 31917] + ] + } + }, { + type: "Feature", + id: "5108", + properties: { + name: "广元市", + cp: [105.6885, 32.2284], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÆL„Ċx°»Ŧ¦˜W„™šLȄ@xÞKÜ°ÞnVxÅĀlÒnJ°a@w„V¯l@XWknKnw˜VȚ°XXa˜lX°VI°b„W„nšaššš¥@ƒw°™n@šyÆ@nkÞ@°¯lJn„°IÈl‚UšlXÅ@ķlUV¥VUUÝޙUUƒ@UwƒJUkĉm@ýƒƒlk™WUwVwWJk@VUK™lUkaVƒUƒmLk„m@ƒƒ@Uƒ›Ik`@„™UmlUkV¯ÇXKÝ_mm¯@Uƒ`kwmƒl¼±KV¯—¯Vk±Vk±kzma™KUnDZ™bk¦±ŽX„ƒ¦¯Wl„J@bƒxkIWš—Vlš™xnŽm¦„nlKVwX„WxXŽlxUbVVkzVlƒb„¼ƒbVxŹKUk™@Ua™a@xmxVx¯Iƒx™@ŎmÒ@șl¯L™¤n¼"], + encodeOffsets: [ + [107146, 33452] + ] + } + }, { + type: "Feature", + id: "5118", + properties: { + name: "雅安市", + cp: [102.6672, 29.8938], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ln@xšèVInxVKn„‚ĊklxkÜVޚÒnÈm°nxš@š¼ĊLV„nx‚WXblIš`š@nmĉn‚KȄôÅlUÑmU„K²¹@ÇÅVÓůVýÞW„‚UVmX„ÆbnwšKUÿ‚™@UmmIUb¯¥Uwƒ™¯™Çmš™„çmanUm»UUƒl—kƒ¤ƒa¯bV™U_WĕmÇŚ±ĢUlƒUl™ÛVƒçkUƒ@WŽ¯KU™VkUağVmš™aV™WUƒmV»—¯@»m£ƒmÝLŽ±@ÈmVk¤mb@ôƒ¦kVkamL@b°‚@b¯¦ÝVƒn@l„ê™b@º„UĸL°J@zV@nmUƒlaĸÔ@xƒ°VҚ„Ub„‚óĢ„ÒWškV@Ò"], + encodeOffsets: [ + [104727, 30797] + ] + } + }, { + type: "Feature", + id: "5115", + properties: { + name: "宜宾市", + cp: [104.6558, 28.548], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VlÈnl‚XnWLX`m„²nV‚@b°xĢçlnšVm‚nn„@@„°‚UzšlV°nޘÒkxl„w„`UnVb„mšL@albÞKÈۚmܼ°@Xǚ@wmW@ńKĊL„lV„šLVŎçÞL²±‚ğkw@Uƒy@¹lKX™lKVa@w™™Č@‚w@a˜ÇU¯n™@@wġak—™aō‚ƒƒK@Å»VakUWmķwkbğ¥mL™akš™@ġރ°¯xVVÞ@VšxVš—VWx„XlxU‚™@k²WVŃULmèULVĊklĠ„VœJVx±nŃ¯¦mwğ@mƒƒlğkkl±@kšUk@¯±Ç™Kƒ—kxl¤b™Imx"], + encodeOffsets: [ + [106099, 29279] + ] + } + }, { + type: "Feature", + id: "5111", + properties: { + name: "乐山市", + cp: [103.5791, 29.1742], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@kšVŽk„ššÆkšV²UlºÈIlxƒLXèÜlU„„XU‚mkƒbVè„x°@„@¼°Knnn@m˜ÆIUbnJ@bVI°b°±@nK@mVakkƒKl¯nbšmĸ„èl@VnÈl‚UUw„wmwnm°¥„L„™lLnU@Va™ImbkƒmK„ƒƒnk@mƒb™ƒƒLV„JVUUƒ„VnkVmb@a¯JUaÆkk¥„IW¥„Klw—ÑmÝU¯™kVy¯@ƒƒ@mmn™Ukmġè¯w@aU±mnƒW_XKWmkÇmUkóbUÝUanmW™ƒ¯nma—@ƒxVôUV@šb@‚l¼„n@l™b@xƒnÛa›xa@ƒyUÅmUÛbm°@„m‚n²U°ll™ĀȦƒlU„V¼nJVxUz‚W„z@`mL"], + encodeOffsets: [ + [105480, 29993] + ] + } + }, { + type: "Feature", + id: "5113", + properties: { + name: "南充市", + cp: [106.2048, 31.1517], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ȲVmšLnblyl²²UUl˜°U°²L‚»„knlx„_VŽ°@nnÞ`WL°ÈUŽVlnkšV@ƒl_œJV„‚@„„n@lƒnKV£™Çšƒ„UV¯šm„@laX˜U„‚UbVx„@VkôJU°Jn™@™‚wUk°wnUƒV_nJmknmm¯Vwk¯ó¥±ÿ—L@wƒƒƒLVU™kU›bX¯mykI@a±Kk¦ULmaXƒƒVm¯ƒK—z±ƒklUIVbÇJšƒkL¯™l™ƒU™ÿ™UƒlUkJƒUmŽUUkVVklKk@@a™U@„™J„²ƒxƒ¦kĬ@¼±ºXnWb—xƒU@xƒx@lšL@b„Llº@șl@bU¦Vbƒ@U„™@X˜‚bVškX¯m@nÇKk„llknƒJVš"], + encodeOffsets: [ + [107989, 32282] + ] + } + }, { + type: "Feature", + id: "5119", + properties: { + name: "巴中市", + cp: [107.0618, 31.9977], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@V„U„lbkVšŽVLUŽl@XI‚ŽUxVxšXkl„„@þĊnVl„IVx„@VVݚVÞUVU¦kV@ĸWÆô²š@VÞnš@Vaôb²W@‚K@XUmÑUW°¯°Ina@y„_lWn¼lLUbô¼„Kla@™nkUyô—Æx°@šn£™Ý@¥mVkIU¥Ċƒ‚¯Û»¯L±w@™¯a„Ça²m˜ƒ—ç›KX„UW›k_Ww¯WƒwÅk@ƒ™Uƒ™kVmwƒK£@mmmńmÑkVmamnnlmIU`V„m¯xVlx@šmš¯IV‚óIUlƒ@UwVaƒ—VW‚kbƒ@™nU°ƒV™„šÈU¤"], + encodeOffsets: [ + [108957, 32569] + ] + } + }, { + type: "Feature", + id: "5105", + properties: { + name: "泸州市", + cp: [105.4578, 28.493], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VVXwVKn„˜wnVƒn„l@b¯xmKUbVn°°X°@blLšènV„@Vn‚l@U„LnmmUna„VV_ĶV@wnJ„„l@@kkKVólaUwnJm„wUlm@ašUaôKVnJWbޚ@VšwVLX¥VVš_Þ`šw„WƒÞŹmmnIn¥Wƒ@k„WV¯@ƒ°kI™ŽƒLk¼Ç@k¤±Xk˜™nmݯUlÅÛKWV¯kƒlUwkLƒÓ™@U—@ƒ‚w@ġXV„˜WX„š@UbVbšV›š_kÇV™lU°lnwŎ¦ÞaƯnmm¯šU„™m¥nkVmkƒl_ó¥¯UÇl¯@™ƒ™L™kƒ`¯ķLUy¯@mw—¼ķ°ġ_řU°mlšnÇVUޚ„@‚ƒš_ƒJUnV‚UXšbl˜Ģb@x@mšV°—È‚b@‚xċ@šš@xUbkLWškL@º„zV‚@lxĠ±²"], + encodeOffsets: [ + [107674, 29639] + ] + } + }, { + type: "Feature", + id: "5101", + properties: { + name: "成都市", + cp: [103.9526, 30.7617], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°n°m²°ÜUšw²ŽôVš°ŽVkxÜźUŰČb‚ŽĢlaÈL„»ƒ@k„wVǂ@„ƒnÛƻșUÝ°Kl_„V°Uš`Vbn@VbÈLšaVU@ƨ»V™nIl™šUUa„±lIk±š@VnKmÅ@WaƒK¦™lVōškK™Ý@maXÇmw¯IU‚@kƒVƒwUmVIƒƒƒç—ÿƒU±ŽÅ@¯È@xƒK@wƒLUbÇKō@mÝ£@yóUóóUxkI@WlIUaƒbƒaŽVĀ™LmxÅaWƒUnVƒÝXUþÆ°UÔÈÆ@±ºƒLnVVÒkóÆ"], + encodeOffsets: [ + [105492, 31534] + ] + } + }, { + type: "Feature", + id: "5120", + properties: { + name: "资阳市", + cp: [104.9744, 30.1575], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„è„„UJVn„x„U@lV°JnxWÈnbÞ@šŽlLŎ™Ušk‚¥„LXbÆ@nŽmLU‚@zlbXmlnVynL„çšJVb‚UnómUnamU„an¥lKV_²aValWô„n@nƒ‚bVœK°¯VblW@kkƒlUnlV£°W@w„UXk°KVwƒmVkwVyVI@wkmƒVÅ_Umm@Uÿmbk£™xUaVw±V¼V¤kLWxU@Uk™bƒyƒXšómƒ°V@@zÝÒkKƒn™±U@@_VVkƒÇaVwnLWalm@@kkVVl™¦kIV`±n@w„Kƒƒk²™aƒVUUV¤™nkxmUkVWVnLUbVbƒ`kUU„mLU‚mX@`ÅbǚXbWLXŽ›n"], + encodeOffsets: [ + [106695, 31062] + ] + } + }, { + type: "Feature", + id: "5104", + properties: { + name: "攀枝花市", + cp: [101.6895, 26.7133], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„b‚KÞnޙ@x„V@x˜n„Unš°¼šVš±mç²ÝÆ@šwnnšVWŽnôn_@¥‚™UaVƒ„bƙœÈ܎n¥Æ±VUwVƒmXÿmLkal¯km@k›ƒ@ƒ¯bkšVxmVUkk@Ua@¯˜»Un›mс@mz™m@īƒÑX¥Ç@ݙxU¦ƒšÅŽÇUkx@šlb„UWVX„mV@xĵĖ±@@Ž¯xUšÆLnÆm„šx@nXL±lUUVwKWak@WxkbšÞƒŽĉbUn@‚ƒ@@xó¦„Ŏ"], + encodeOffsets: [ + [103602, 27816] + ] + } + }, { + type: "Feature", + id: "5114", + properties: { + name: "眉山市", + cp: [103.8098, 30.0146], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„šVx°¦VanJVnš@„b„aVbkJ@XlJVwôôôV@zÞ¤@nƎÈLVa„K@x„L@w°ÇÆ@²„V˜ĀœmWXKWașÆa@_nWVnKVƒlV„_UaVamKXUWwnmmwœÑm£@ynUƒkWƒĉUkWVkkV±çkJmkKƒšƒK¯¦mnnxƒxVxVÇkUmk@ƒçķ™nmak°„LllUb@nmL@‚¯²¯aUJ@amIVaÅJn—m@mm¯L@»ƒŽ¯@ƒwUç„anlVƒWVƒÛkWç„KkwÇJk¹±V™UÅl™™ġV™²ÈƂnXĖV`Uš°a„b„£˜l„kVVn¼mVnbƒè™šÈn°š"], + encodeOffsets: [ + [105683, 30685] + ] + } + }, { + type: "Feature", + id: "5116", + properties: { + name: "广安市", + cp: [106.6333, 30.4376], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„VlIV‚„kšVšĀ„Vkš°šlK™„ÈIUaVJlk²„˜y„Ln°„UW„nbVKl¥²L@blJnzW°œalV°Inô¯‚K„kšKkkƒbV™šmôLkéƒwVk@KnnšWlwn@laXL›ŽnXVW@X°a@„XKl™nw„@man™@w‚@na@„„@ƒw™ĕġġ™wUkUWb@mk@™¦ƒ¥mUÛb±yÅn@bml@kV@„ƒlknVbmVnlmš—bÇk¯bWyk@V_UamJ@I—@WaƒVXamIVWkUkbVaƒUUxƒ@VnkVU¼›bkKUxmK™„@WšƒxnV@n"], + encodeOffsets: [ + [108518, 31208] + ] + } + }, { + type: "Feature", + id: "5106", + properties: { + name: "德阳市", + cp: [104.48, 31.1133], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nUW¥²é@šK„¥‚UÈÅôa@VÆLUxnKl„°V¥ÈmlÅÈV@£ƒWX¯lLln@UšƒVÅlwUm²U‚VVna@ƒ@KnbV™VwƃœI˜mXwWƒkIVwÝĕVUa™IƒèmKUzkmWnka@y™@l²kJƒ²Vb™VkšmJUšƧ¼@UV™bÇKUam@Ua™_¯VƒUk`¯LVÞǚżm܃„@Uȃx@l„ƒ¼ÇKkbWŽœšVxUbƦnxƦĊV"], + encodeOffsets: [ + [106594, 32457] + ] + } + }, { + type: "Feature", + id: "5110", + properties: { + name: "内江市", + cp: [104.8535, 29.6136], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@²èlUUllXĊVX„„lmV@zn¤›ÒnxmnXxlUnVlwšmU£VV„Ušbl±„„ƒL@x²mU_lJš¥UklU@ln@‚kXbmKUxÈbl„UU@`V@š²„mlLÞÑ@yU@„¯ôn‚™„W„zšaVlV@XwlKU£‚»—aVaUwm@mwUVUwkƒlVDzLlƒ„KV™m_@ykUmƒ@mU™çkKmxkIU‚Ý„@LUJ@n±„kº‚LXb™¼@mmIXa™@mamnkW™ƒKUƒƒxƒ_U`UklwUw™mUbƒV™²ƒakbƒmkn@`„UmҙšVxUb™I™`UƒaÝÈ"], + encodeOffsets: [ + [106774, 30342] + ] + } + }, { + type: "Feature", + id: "5109", + properties: { + name: "遂宁市", + cp: [105.5347, 30.6683], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÞĖUxlJX„Vb°@„xUÞmbUxƒbXbm¤VX@lk°ln@x„bÈ@lLVlVUXxlJšç²UlwV@@UÈWl™„L„w@w„V˜wXaWm²¹@»lī„¥„wƒ±šI@ƒšV@bl@kLUllUVVn@mmU„wX™ċbVb@VUkbmamšW@kƒa@™™k@ƒlaUa™@¯b@šmmwó@@lkXUa¯°›LU‚am„m@óƒkXUb±bU`kLm¦ƒbnVmbnVmô"], + encodeOffsets: [ + [107595, 31270] + ] + } + }, { + type: "Feature", + id: "5103", + properties: { + name: "自贡市", + cp: [104.6667, 29.2786], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lIÞDŽbVŽš_šJVaUwš™nуV@_lm„nla„bš±„UVašnVxkxVlV_„`„wV„„LšlXnmnbš@WbnJ@nš»WaKl¹²ƒ@mVI@KރVlJnw@aW¯¯¯UmVanL°w@aƒk„mmU—xmƒULWxUUÝKōèU™KUƒƒkĉKƒL@ÆnX@x™‚Wȯ@Û»™nÇÜÝLka@b™KƒnUaVmƒ_ƒxkƒLX¦ƒJl¦ÅlVb°I@bnaUŽmlƒUV„UVƒIUŽ„Kš„„a@nml„„ƒŽnLl„našJUbV@"], + encodeOffsets: [ + [106752, 30347] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/tai_wan_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "7100", + properties: { + name: "台湾", + cp: [121.0295, 23.6082], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@\\sŽ@pS}aekgKSu™SsMß`¡CqZ·be@Q^o@‹gieMp‹‰]}•}Ľc_Kk…{™ù“A¡r‰[uom@эĥJiq©mʼnq¯Bq]ÙYgSåk_gwU­isTE…“‘ĕiqiUEkue_‰OSsZ‹aWKo¡­q“ycY£w}‹ĩ™ĕS§Z©S™N¥SyLÑ¡±Ks^IY‰PdƒY[Uo†Fp}´\\¬\\j]ˆe܍ò‹¤¡–ā a\\bn™U㺹Ìs¼j®[cíȈEŽĝĆ`ļf¶Š®K|VØDdKGpVnU‚FjpH—F`†B’[pMºxÖjbpÎxp€¬‚|ΟÜÒCŠ²®‚ÜAp„ZG~€Šd˜ÞàV¨|¸€`|Œ²tx~\\~|dFf^zG€ĄŚhœdL\\hĸž¼†ŠOªP®lV`p\\]Xpll˜æ¤œCpQ|oF}fMRi†NSon_²qämœM„NM‹\\•"], + encodeOffsets: [ + [124853, 25650] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/tian_jin_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "120225", + properties: { + name: "蓟县", + cp: [117.4672, 40.004], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@EUDAEI@WNMNCBFAHFFNACDJDPBD@@GD@DIFFHEFGDBDEQOFG@EI_KG@OcJQM]RMEKBGPG@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOL“lu@SLUTYFQCMG@@SQUAYKAACA@IB@BDB@B@DC@@BGAEFAA@BEGKJCC@AGAIHA@@JC@QEIP@@A@EGIDC@O@C@@@@CJCWKABFLBBEBSQGBAAMIEM@AKBcJEN@BEBCFMAEFEF@J@BG@BFABECKFG@AFQ@@F@BEB@@A@@AAAKAE@GFGDECEFEECBKIKDELDFEDYH@EIACDCHKBEB@BAAC@ADBHABKJIAIJICEDGDCD@@A@A@DHCHJHDFEFGBKRKBGIK@GIMHSBCH_BOJECCJCFKKMD@DNJEDEGC@OJCJHRUL@HRJ@H[DCNKDZHCTFDHCFFKR`TANVDFZRDLFARB@HPAPG`ILAR@TERNDFNHDLCLDDCXDYbHF@FEB@LDDVE@JPNfXPINCVDJJD@NJPAJHLXHDNANHhB@DPNLRMTBFRBHHr@`NBFEBOCCBIAQJDHCHLHFA@HSDCRLFTB@HEFLNF@PELBDJALFLTC@EPFLLP@tUHQJDfIHGTB^JTCPDLKAIBATFPADIEGECEMJ@JIAIHGECFEAGDI\\SPOXAFCL@BQTQBBTMZECYGAHA@GJAE@HCAEME@IECFKJADDBABLTHHG@ILEAMNDJCDHEBF@@JNFJELDFKTOT@JETBFFHBHEHKI@@IJEJ@XKEOUMS@AF@CEB"], + encodeOffsets: [ + [120575, 41009] + ] + } + }, { + type: "Feature", + id: "120114", + properties: { + name: "武清区", + cp: [117.0621, 39.4121], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@FWôµ@IFCLIB@EHNBp]AGEAKAEDMGZKFGBGME@ILGP@HEFB@BXMEAHUGC@IHCLOD@X[NWHWPKAEF[@EKIOL@EKGBNMJ@EIEHKBIC@BAKMIACCFQZCF]DB@ERAKADIHGEIBCGIIECFaGLZO@EFCNGAGDGAKL@BMG@IE@ADSDEH[JGC@CGA@BMDeK@EIACFE@@GG@FIAMM@CCGC@EM@ADE@CFMAAGHBDKIEAJG@DOGCDEKAGIS@KFCHKAEHIE]BeKNO[IFIOELC@A]GMBKVYCDDgGAICARc@MW@AQE@DGI@@AQ@@BKBAIQQYEFW@CEADIGGBCEIiMEMF_LGEKMBBDWEBGRC@E_CHYGCH_IAED@FFBQh@FGJaJ}AHRAREF@bE\\C@CT`FHC@\\BBF@BID@HGDDJ@@FAHKBARECKDAZBJIVNHCTA@EREAMLHDAFFBVFFC@RNRETHD@FOJMACH@CAB@P@DF@@FGDWE@FFSIEMKQDYCCHKb^JADOCIDGNDBdBCFJB@EC\\A@BJEA@JAAAD@HHD@LFBCFF@BERDHNhZQHMBGHOACCEBWEGD@PSJKCGEUD@CINLFGHE@AJK@HDABBHTB@F`DBFLBBHEDARCFG@ABJBAPVFE^FBGLGCFG_BMLEXGAAFE@@JNRVJHFALFBEHQJCTbNDHCF@PlFLJSXCHFHfVBTNJ\\BPJXC^FAVNFCHFB@FFH@JF@\\ABCFD\\BDMCAAJKQBGAILOEGHILECQLWFENJHADC@QxNHFJNLDFA@CBA@D˜UÂmR@FBL@BD"], + encodeOffsets: [ + [119959, 40574] + ] + } + }, { + type: "Feature", + id: "120115", + properties: { + name: "宝坻区", + cp: [117.4274, 39.5913], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@TZbB@JHD@DODCLM@AP@LL@BNH@ETFN@`E@DNG@CHLBCJA@AICFKDDBKA@\\N@AFNAGRBFjFFFL@DHLBLFQPcXAZMJ]GAVHAIZJFNE@JpDRRDCLFDGXA@EFF@CFFPDfEBDB@DCHCFCJDJIJBLI@I@CB@@ADBB@FALADGDC@@H@BB@FZGFCCE@@FMLALJDAFFFEFDFCB@@AHCF@L@@BBB@BB@FC@E@@R@BEL@HEFD@G@AH@AIB@@@FEFEBALDDEFAFO^IF@JCBBFPNJJ@D@PRDCEKBAXL@BIFD@T@JE@BHHJORFDI@@B@JGH@@B@BDDLIFFHCD@D@DEE@BAAAB@DAF@B@H@NGLJLMRDNMfGIEPMI@GDAKK@KIDIJ@GE@CFDN@FE@GFEPGV@TCDFKHBBF@RW@DD@@ID@TJFKIKLI@EP@IGBCLAEKLEN@KSHIGYACSD@SEAMBBMGEBMQBCMIGKFB[D@HDLPHDBC@IFITDLG@IIIFGVBNJDLN@VIRI@YIAIHIC@CLKZCBEE@JECEIHEAKGDGECBGEEM@@DA@CCCBBEGA[GEDBBoNAAH]MKiIAWKQoIIPMFQAEEDMH@FMSUYIeF@EK@BIOEKJEBICFKaKPFAFSE@LWCCFMHDDEKESBOGBKIEIODLG@CCDEQCEDWEMDIEIB@EHGEEDAEAa@@HqDEJGF[AECCFa@WCEIKAAEQB@FCAE^YDERDDJBLNABD@AJGLJF@FNIAMLH@FPKLJ@FE\\BFOLGXMXW\\C@KPGD@JHDGVFBWN@AEAGFO@KH@JNFAHEHYLNHFCLBFBBHo^MAFGA@KJED@Jó¶EX"], + encodeOffsets: [ + [119959, 40574] + ] + } + }, { + type: "Feature", + id: "120223", + properties: { + name: "静海县", + cp: [116.9824, 38.8312], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@NGFMDATCNDR@CCbINEHNJA@C\\EEGVE@IhE–[˜w”epc¢·²›^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@C‹Q@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`aˆ@VZzKDkJBLNXGDqKEWE@cFEFA@ƒISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@CEBUHUCGXaBPtUBBFIBFTDFF@DDKBFNGBJPHXDDMDCLJ^mBIHIL@LR\\@LCR[@@z@NFD@LLBNb@RHDBNTPT\\F@BJF@BXCFBHHBDLFB@HODADE@@JHVXCPDHCFTLBBFNCDCCCU@@GAABEHHZHBCAEdEjFDD@GfD@DXFCHF@ERFDLBH@"], + encodeOffsets: [ + [119688, 40010] + ] + } + }, { + type: "Feature", + id: "120221", + properties: { + name: "宁河县", + cp: [117.6801, 39.3853], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@BFLBFJXDb@DEFD\\BHEFIrC@Gb@FBCBFFGH@FJAJFNCXFFCRDCFDDH@CKJPJFALPHTALFCFGCENDDKXF@ETEBO‚bLELJDFALIPFAJL@@FfEZJTVENG@CNFFRBNEJOpJLRBXjJNLG^BBpMAAFC\\HHBAFDADDB@@CN@FFAHFDCHLHFBJGFCFUNKJJTD\\XUXF\\^F@DDDQXXBRLRCBDFEVCDLVDpUl@LEDJHAPRFGL@CETGPBTCDDVI@CFF@GFDCCVGLKEK[Y@MECISG@BKNSCGCKWEAaEBEKNGFSECO@GGM@GYI@DÅCMLHPTF@DJHAVVNKEGDETJ^[TJNNd@NOAMFYJ@@GFANDPEJB^aOadSTQSI@MHBDIEOKCG@EEFCKCqXO@@DMFENCDDHCCGJ]AKFoDaGGHYFDHKJiCMFGC@EQ@AEHGAC@IEAATKOHGIC@IXIFEoƒGE[JCFCDHNmRADFZMF[EEBMO{GU@AOW@@]ZeHBDEHBKEfQkuIWBs‡@EC@d[@[^EDMTKCEEcI@cDAB@FCBCACmOCG{PYHeBgPwPFDDALFFFCHQGSD@BHFAR[TaFYXMASUiGFL@DQNCJI@@D@PLDN`ETEFIGMCGBCE‘~CAIFDPEHGEQPHJADFJGHCJLB"], + encodeOffsets: [ + [120145, 40295] + ] + } + }, { + type: "Feature", + id: "120109", + properties: { + name: "大港区", + cp: [117.3875, 38.757], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@JFFL°_`ONJKDDFIFZN xlb~yFVNRŒrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëC—b…™@—KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEB‰MgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DŒM@EFEADBE@@HGDICCPlVANTC¤vgZlfRChjLJ"], + encodeOffsets: [ + [120065, 39771] + ] + } + }, { + type: "Feature", + id: "120107", + properties: { + name: "塘沽区", + cp: [117.6801, 38.9987], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@|ODHnPBDADEDA@CB@ddJFFLDNSFC\\]\\@@cFDˆ@nACOMW@M@ITURBRZNHNWRQšoO•j½f‡cqŸAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NƒDTŽLJrQTHFXZFB`"], + encodeOffsets: [ + [120391, 40118] + ] + } + }, { + type: "Feature", + id: "120111", + properties: { + name: "西青区", + cp: [117.1829, 39.0022], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@LHAHRHATh`LHNHDG`HDGZ`D@FQDAHXFACNAFLVRTBFOfHDCVBFQH@HSXHEPFB@LDBF[bDbLFKJBFLADBDjLvCPEI]FGEIGCBEUSjcFiBIVWfaHCjN^HtwBBFGPBJGjFBEGECGDONMFAP]TDHQOWCMGAMHKIJEIGQ]aDlUG]VGEGDC„{PEbBZmE@@GH@BCA@FMQCFMYMJECELCMI_P¯`]R±œ¡¸od“f—x•\\gF@JUFFH[F@DIBGMMFaJDDQ@MCSDCBENMH"], + encodeOffsets: [ + [119688, 40010] + ] + } + }, { + type: "Feature", + id: "120113", + properties: { + name: "北辰区", + cp: [117.1761, 39.2548], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ROHFFGCOJEDB’}DFHANDJHFEFSM_KC@O@CJ@DIRM@CEKKA…L…FKACHoLSJSIBETDJaEIIE]E]K[MYUYQILC@GF[MGNKEK@A@BCWECAIFEFYAGFOMI[OFuDiKACBCEKIAELaKaCE\\CA@KEAFOWGGTG@ERUACDeGEPSAUQKHE`FNjNFJADHHCJFB@DEXZFRRBJLA@AR@@BJ@CHF@BRX@@NQdDBBJhHCCZDLUNA^H@BKDPFEJ\\JMPfL^AJFFGLBDGLET@HJLBCFHDCPH@BIJFCLGABHNBDEF@BCN@@FHDDDN@BNEJH@@HF@DEJB@FfLNC@AHB@DHD\\IFGTCBCF@@JNH@ALKHBHCHBDMFEP@KYbHDEJF"], + encodeOffsets: [ + [120139, 40273] + ] + } + }, { + type: "Feature", + id: "120110", + properties: { + name: "东丽区", + cp: [117.4013, 39.1223], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ZV\\N^L^FJFFJIbSCAFTJTIpKDGLB†E†KLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKIS„C@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJF‡PIhBD\\FENCPWA@LFBAFHBEJUEARCDIAEDQBRNa^"], + encodeOffsets: [ + [120048, 40134] + ] + } + }, { + type: "Feature", + id: "120108", + properties: { + name: "汉沽区", + cp: [117.8888, 39.2191], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@LMEI\\MTABKN@FCDMH@COAcH[AoēA™M¡Wa[Meq™pQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFp„EFWJ@JJDGHLPBSFB@JBDGHBFR@@FHDNEjDLICGZEHGbHpCLE^BHIDDCGDCFMNE@CP@rWLDEDFFH@"], + encodeOffsets: [ + [120859, 40235] + ] + } + }, { + type: "Feature", + id: "120112", + properties: { + name: "津南区", + cp: [117.3958, 38.9603], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@TLv@CNHFFBHGZFETNPhCVGNGRQXKXCjBN_HIdUZChBVF\\TFECSDGVCZDRQPWdVNA^]RBBAAOQ]DSE@F_Q@[VMCSMADUECOHycI‹qMQEU}zkaŸwENRDENB@ADG@@HF@YnaAOFƒ|CDFHUHH^kVbCR^JHIFLJNGHBDNPXGRSCO^EBMNCPDHHFAFiEIHOAEH"], + encodeOffsets: [ + [120045, 39982] + ] + } + }, { + type: "Feature", + id: "120103", + properties: { + name: "河西区", + cp: [117.2365, 39.0804], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@d@hZNFdcLYXKRCtCMOFSYEGHEAGEDMu@SKAAsx]GMTGt"], + encodeOffsets: [ + [119992, 40041] + ] + } + }, { + type: "Feature", + id: "120102", + properties: { + name: "河东区", + cp: [117.2571, 39.1209], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ZBVFFIGABEEA@KXBDOFM[EACJgˆOIE@QIMGDBHUFEEGAEHECEDGIAKQDWLKZcdQPEP@FOFBJTJ@HNORJf@DBCN"], + encodeOffsets: [ + [120063, 40098] + ] + } + }, { + type: "Feature", + id: "120104", + properties: { + name: "南开区", + cp: [117.1527, 39.1065], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@NMVDCG\\E^B@HlB@YEDS@C…HsNSiMGDebUXAJEjidVTAFHDFJ"], + encodeOffsets: [ + [119940, 40093] + ] + } + }, { + type: "Feature", + id: "120105", + properties: { + name: "河北区", + cp: [117.2145, 39.1615], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@DBXFADB@L@LFHM\\NHED@JKZRb]QMRAFCJBDCBQYADMCAe@QIMP@GSIAIPE@E[EGH@ZEF]^HJAXK@KF"], + encodeOffsets: [ + [119980, 40125] + ] + } + }, { + type: "Feature", + id: "120106", + properties: { + name: "红桥区", + cp: [117.1596, 39.1663], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@J\\PNHEZBFEJELEL@BWGI^]FEkA@G]A[FDHUCMNEHJ^"], + encodeOffsets: [ + [119942, 40112] + ] + } + }, { + type: "Feature", + id: "120101", + properties: { + name: "和平区", + cp: [117.2008, 39.1189], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@D†T@FCHG\\FFOROMEgYc@"], + encodeOffsets: [ + [119992, 40041] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/world_geo", [], function() { + return { + type: "FeatureCollection", + offset: { + x: 170, + y: 90 + }, + features: [{ + type: "Feature", + id: "AFG", + properties: { + name: "Afghanistan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ࡪ͇وŐǬϠڐŶӂʮǚڦ۾njƀ̚ІɣʪҴMوǯʲĹ،˒˰Nj˖ϪԈiżŬĘͺβ̈Ҕȏĝʱʪ¡ý۷ͪ˟̊ǰώĊԼϖׂ×ࢀAƬʋӧĥяƹ७ĭࣗǭӫλȤΣĪллΛ–͑ɳ̡ߛ€ͦ։՗ɅΥԕ²ԋ͡ɿ̳þٝŋğɻسDҵӇ‡܍થΓבôǝȁԇņ࠿űටіހހåզُƚßՔ˟ڢάҢιŮɲؒ΂ਸ"], + encodeOffsets: [ + [62680, 36506] + ] + } + }, { + type: "Feature", + id: "AGO", + properties: { + name: "Angola" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ȸصʌԋȘ˕͐ѯ֊æˤŠҬşŲɀɂӨԶ®ƤіHñ̡৴RfՉǞ͕ūԑÖԫ˪̷­ৃȼüκsԴŴϦ¹ĘʹĩСƨϿů̿î́ყZᦵ֤ۋպԽ໳΁᎝Š׋Ж₭—ŵÏԃϞկ~ԉƝЙDžÿՈŜ݊̂ޒªΰ˚ݶȨΆӘռːϐĘج«ӊʣ̜ɡԚȵԎ®Ǩʶͬʭ߼ǣ֚сՐĄǎΌŔʒg̎ĸៜ["], + ["@@ɉėɣلͼδʪƘ̀˽̩ǯƍɍλ"] + ], + encodeOffsets: [ + [ + [16719, -6018] + ], + [ + [12736, -5820] + ] + ] + } + }, { + type: "Feature", + id: "ALB", + properties: { + name: "Albania" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ń˷ŢέΒȳiə˗ŧ»˙ϷСƛÐgȂү˰ñАîֶŖʼƗƂÉˌθаÂƿɨôǴɥȪďȨ̂"], + encodeOffsets: [ + [21085, 42860] + ] + } + }, { + type: "Feature", + id: "ARE", + properties: { + name: "United Arab Emirates" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ƭ¤ŒɱڂƂ۞uԖ{ֺ֪ظՠՎԮdž˹ŖڑѕGçճƪŝϝǑE΅ʓΏuͷǝDZᡋъ͏࡚Ț"], + encodeOffsets: [ + [52818, 24828] + ] + } + }, { + type: "Feature", + id: "ARG", + properties: { + name: "Argentina" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ߗ§ѓ̔ԑx࣑@Aሞ͒ϵрؿનԋ୲ȿϙп"], + ["@@Ӵ؇͠ڰॠ“ƊǷ໶ോۊŷਆاࡾ͡Ŧχࠡ౧ࡒɭ़ŷڔƈނ٢ƎݐжLjфӝiڣۻҩ֟΁ॅࠃ૭ଧȽڥɣࡹT࠷ǽȇÝիËѫ੨ܙŗ׃Հν§Ч߯ઁఛ҉။ǩउĎǰԅǣػƺщԋ̏ࡱř̪͕߱ɗŜ࠳֨ʧҠˆʢѧޛʻڭԹūࡋȣ҇ߏEڃљʋؿؙࠞߦǝ˿ݭ঳Ӄձটލͧ΅Ͽ˔ࢍ֔ӡΟ¨ީƀ᎓ŒΑӪhؾ֓Ą̃̏óࢺ٤φˈՒĭьѾܔ̬૘ěӲξDŽę̈́ϵǚˢΜϛ͈ȝॺ͸Ǣƙ਀ȠࡲɤݢԊ̨ʭࠐEޚَոo۰ӒࠎDޜɓƶϭฐԬࡺÿࠀ̜ބռ߂צԺʥ͢Ǭ˔ඔࣶд̀ࢎĹɂ۬ݺશȱ"] + ], + encodeOffsets: [ + [ + [-67072, -56524] + ], + [ + [-66524, -22605] + ] + ] + } + }, { + type: "Feature", + id: "ARM", + properties: { + name: "Armenia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@୞ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏl׋̣}΃ӢHżχCʝɤǩuͧʖرȼĄФƛ̒"], + encodeOffsets: [ + [44629, 42079] + ] + } + }, { + type: "Feature", + id: "ATF", + properties: { + name: "French Southern and Antarctic Lands" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ը˃ߐĿˆDžɽϣಇÃq҂ŮΎÊǢ"], + encodeOffsets: [ + [70590, -49792] + ] + } + }, { + type: "Feature", + id: "AUS", + properties: { + name: "Australia" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ߺ́ҜŘپNJԎÉÐঽ˽́ēگ̉ɰ׍בǧ®ԫ€ԭܘŗֈӝܸtϬռõ"], + ["@@̢ڇբ̈́˦ΡЖ͟đϋǴܛŸнɄĹɬܕąѥ˖֭࣬ѭצЋ֞λŋȯӔՃࣧ͜ͲȂ;ηȴźƢࢹ׬ԩϸ͋ڀڹʀڭtӏËԳА܋µݓơϵɩݡjӕǕ׻χއثЭ̫ٱ˫гʝܧ͕нɅػʼnׁªˇӕ̇व‰ޡ·ϫ͙ԕέ۟ψԥƪżѬҝǃ݁؉ܩɪӉƄӑÔ߿ʐիԮƻْțьЭ;߱ĸˢРȯزЧ׉ݝƷѮҬŶӞ͘ЬãجہܑԿ˽͏ڛٽΊ~ҀԿ،ѹ̀ǂȘઃԚןz߯Цຓāછ̝ख़˫ߡÈࢻљܯȗljѱ̳Ϳ܉qՅõݑƶ׿ğֽԁ҃ʕœуʁЗˋؕ֛Bࢽ՜ҋDŽlӖкŘƚȒ‡̠ĺאģӼѻࡖƏӒ˜ӎͭնsʚϋͰĽڄӓڔřΪτε˳ެиʑʞ͗aјеڎă˄țʦĠӠǢȸŘрęӮΎÚٕ΢׀ۀˬЦΪٜ̰ϤàɴĻڎ̺ԚĤŶȀɞüҬoࢨʖҚώɊ҆ӲѐœͲvҘט܎ΠܩΦǚ̗Ј˂ТψǻĸٖҠаȮͨцƜ`ɼτĭdɂτŦОŔبϫҲӽՂMՖÿDZҦДڪϜɘſȾκӒԘ̒јıۺǂeі؛ˢ҂Ū֎ȻҀ·ۼɋʈĐԶʵӬʊ͂ñȠNJϬеɡ͉҇ͻ˿ƒĮͱʙп̗ЭÔʁڜҫ٨ˏѠ́؈ӻʂBѰɍŶʷߤ˵ֈ˼ǐҊǠόľҤʰڞŝОÔʔīӔŌنLjǠŽˬȮѾdžҦtʈ̸̾ʂЩÎՃȾķ˜Λ̨ёÚӇ‡̥"] + ], + encodeOffsets: [ + [ + [148888, -41771] + ], + [ + [147008, -14093] + ] + ] + } + }, { + type: "Feature", + id: "AUT", + properties: { + name: "Austria" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Û΃ӁCǎǻ˧էLJƗܽsщȏۛÞயɐȉ̊ࠧƣĭDžԗŢѕxϝƶźȴƬʪ²ьɹŤɜݎ•׸ƮЖ}ˀǣþƜšո̠ń̒ϰز˓ӀΆ̐ÚٶʱЂªϰǁãŃČ̅"], + encodeOffsets: [ + [17388, 49279] + ] + } + }, { + type: "Feature", + id: "AZE", + properties: { + name: "Azerbaijan" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ʞɣψDGŻ΄ӡֽŒщϰƃ͆Ǫv"], + ["@@ϊËƞɈԈͺѴѵђ׭ϺŸʸɧۗãƣٵƟ̭̍ȝvзȽ¥ԻѲ̂дʝʚ̿×যإk׌ϗƐΥɬʂˌ҃˾ǜɂ͋ƤǧɚȶƎضʍҐ¹ŘIJбҔɔŚʀ…׀ԙ"] + ], + encodeOffsets: [ + [ + [46083, 40694] + ], + [ + [48511, 42210] + ] + ] + } + }, { + type: "Feature", + id: "BDI", + properties: { + name: "Burundi" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Á০ɃϢԜßʲӎҀŸͧǸȏT˗ȹǭ͛ѫ̧̥΍Ÿ"], + encodeOffsets: [ + [30045, -4607] + ] + } + }, { + type: "Feature", + id: "BEL", + properties: { + name: "Belgium" + }, + geometry: { + type: "Polygon", + coordinates: ["@@áުǪՐοҦȝħ֧ɕĝһܿϦћßדІϷͶϷ`ũ̒ڪǔ"], + encodeOffsets: [ + [3395, 52579] + ] + } + }, { + type: "Feature", + id: "BEN", + properties: { + name: "Benin" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ۛįȹ׆žኞǛǦЮ̇̌ʱʞņѶ̀ĨǠξЪĀȀʤˮʘ̠F٘ә˩ȎӽǓͷĘɧСԳʵʳǁՉt՗µണ"], + encodeOffsets: [ + [2757, 6410] + ] + } + }, { + type: "Feature", + id: "BFA", + properties: { + name: "Burkina Faso" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ֹɐϽ‹̍Ƀϗǰƥ˦ϙǾÅӦɮΤo˴ښۢŬּɲȴОœΚǢŘɎٴϖdžˀ޼ΒҦŢɀLJՠJáСŔϣӀչ€НॺȏmֻǿʣЩÿǟν˿ħ݁lϳâ˓ƉωÖร¡qӉŘم"], + encodeOffsets: [ + [-2895, 9874] + ] + } + }, { + type: "Feature", + id: "BGD", + properties: { + name: "Bangladesh" + }, + geometry: { + type: "Polygon", + coordinates: ["@@i׽̉ŶÆگʉѬµєDžКΕӨޟ’ü΋˃ҳΧǠũƵʃĠ͗øŽۖ̅لƜԒԫɤȆ̪Հ̼؅Ѽ֮̔ږεВ£ô׏ߞřު^Ӟƛϯ܅ϕµʷӍҢѥƎ՞ɶFѶ೯"], + encodeOffsets: [ + [94897, 22571] + ] + } + }, { + type: "Feature", + id: "BGR", + properties: { + name: "Bulgaria" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ʎΉ͚Ö٦ſ௾«иɌবȜ̩ؒӴĕѥΏ̫׹˔ӏܣŒࡥ˃Uлޅÿס̊ڧɱة|Ñ֊сːƒŢĝĴƘˌ͌ˀСδ÷̬ȸȐ"], + encodeOffsets: [ + [23201, 45297] + ] + } + }, { + type: "Feature", + id: "BHS", + properties: { + name: "The Bahamas" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ȵ£ɇӜ̿ʐǾՔʨ‘ۣ̎Jӥ"], + ["@@ࣷƅÏ̴Ђäֈ{~ɕ"], + ["@@ƟׯƷņ`ѮϓͪCĪڐϗ"] + ], + encodeOffsets: [ + [ + [-79395, 24330] + ], + [ + [-79687, 27218] + ], + [ + [-78848, 27229] + ] + ] + } + }, { + type: "Feature", + id: "BIH", + properties: { + name: "Bosnia and Herzegovina" + }, + geometry: { + type: "Polygon", + coordinates: ["@@̦FȿσМ͓ūЃȡ™ƽû˙țūҥݓ͈ͅΘ͋Ȅϭ̾ǻʺЩϾǬΒ̞ȕǼǨϾnܠƓ׈\\Ϟȅ"], + encodeOffsets: [ + [19462, 45937] + ] + } + }, { + type: "Feature", + id: "BLR", + properties: { + name: "Belarus" + }, + geometry: { + type: "Polygon", + coordinates: ["@@߼Mࣰ̈́ȚӄېːÿϔԜƚ͖ࣘࢮɁŢȻѲĴࠒȧĊЁǷɧՄս΂Ƴ»Ʊ֦Ʃʎɡ͝ǿڳˆljÿȠ˧ȸ՝ܝ¹ʵȁÃхͭĆݷ¡əȞ̿ƥ́ŨڍjफȬࡕàٱmҡɩГeϐʷϴԌǢLͰɷ͌™ϊ"], + encodeOffsets: [ + [24048, 55207] + ] + } + }, { + type: "Feature", + id: "BLZ", + properties: { + name: "Belize" + }, + geometry: { + type: "Polygon", + coordinates: ["@@OŮĸžƴı̞ԔDŽZHūDŽGaɭƋεôŻĕ̝ÀăīщǓɟƱǓ̅ʣ@àॆPژ"], + encodeOffsets: [ + [-91282, 18236] + ] + } + }, { + type: "Feature", + id: "BMU", + properties: { + name: "Bermuda" + }, + geometry: { + type: "Polygon", + coordinates: ["@@OEMA]NOGNG\\Q^McMOI_OK@CQSGa@WNLVWHFLJXVFGJ`ZRTDLeeWKIHGIK@@[MQNi`]VDTBHCJAPBJLVFjT^LV\\RJZRn^RH`TfJjZHHOTTFJP_NOX[EYQQKMEJOLANJH@HQHAARF@ZEPS[U_IcRQXE@EEKKOCGGCQCOGISKYGUC"], + encodeOffsets: [ + [-66334, 33083] + ] + } + }, { + type: "Feature", + id: "BOL", + properties: { + name: "Bolivia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@य़”͟گӳ؈વȲ۫ݹ؅ŗ͡୆ҋऺˆ߾ѳ΢ŏ؆ЫֲՌ࣢αۺȖ˰ƭ̶͠рh܎¤נǸ˶ܩഠزíѠnȈʪ݀;Ѷ͂સƚęؽļ͓ãࣰ֛ݫऴƑ̻ͦ֨ǕΐʑՈTӦʟšӟǐʕZγʓa͒এྖ“ūӟĜͧҞɽȤԹƫڋɯρĄӏʿǥaʶ޳јޭ^ัʓЕ݋sҋͥ৕ƉǸ"], + encodeOffsets: [ + [-64354, -22563] + ] + } + }, { + type: "Feature", + id: "BRA", + properties: { + name: "Brazil" + }, + geometry: { + type: "Polygon", + coordinates: ["@@૮ନॆࠄ֠΂ۼҪjڤуӞеLJǒӜŖӼBҦ̡ƴ̿Ƌ̻œį͔ýޔƿʤ֥ɪ΃ǏࢱLjÈଜʝҴˀǦăӐɰςƬڌȣԺҝɾěͨŬӠྕ”͑ঐʔbYδǏʖ™ӠӥʠՇSΏʒ֧ǖ̼ͥळƒ࣯ݬä֜Ļ͔Ěؾષƙѵ́ܿͽȇʩџmرîӃƟϡĪÈ౨ۏӷݏv҄ͅ֏¶DzΰұԞΓݴɜƶA΢ԖʎċҔɊ̈Ôϼ०ֲێNJŔŴݴŸϚᘰpθſӔύ̬LؐӀƒǚē†͐ӯĔYՀ࿖k˦̂ɸˉǐӷǂļҨѻٸÆnjʲشȞΊƐĮΤ׸ʆ¯Ǯ܅ðśՊ’֞ϓɒǀþجŅڜȿʐȤžल̮͎̾ŏʂѪšȜȗʼnσ̀ŵȖϷɷ̏ƅɌыÔϳԬϿЮ¥Ģǒˆ˜ϠƦ˚ɢҬíȲŠҚçøǢƗǘĎʐͺõЈĒӔDZξǥʺɪȊ•ŘɿДÒ͒͊ʴؤӼޒ˺¢ȺҫҼ฽҈Ƒxׅمەʾʩ๤ƁŠࡃٔր੐̟ඊԡШӱƏҫ঎ʶ࿐ѹఴŽఔ੸व٪ʏܖ‘̦˅˸੭Ɣԗͯ൹ёշஅୡՙोثܯȿgɻءÒ༽ɹಓęօˇͧƫ૱࡛઱ƛࢁڹηȟԋ࣯Fೕ͓סύवʗ঩ڝ܅࠯ũطƔҫƽࡓȏЧחҥट๕݉ڗ֯Ͻϥߛ։ӑɷӈψЊӟֲڇҬࡹՠ̹{ࡅٰձę"], + encodeOffsets: [ + [-59008, -30941] + ] + } + }, { + type: "Feature", + id: "BRN", + properties: { + name: "Brunei" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ͬ̾܎Ң›Я·՛Б€ǭ˹ϥѦ"], + encodeOffsets: [ + [116945, 4635] + ] + } + }, { + type: "Feature", + id: "BTN", + properties: { + name: "Bhutan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@΂ˍÏԩۇ{ۿÈՇſޅ͊kǚ֌زҒɈ׸șѺqπɥ"], + encodeOffsets: [ + [93898, 28439] + ] + } + }, { + type: "Feature", + id: "BWA", + properties: { + name: "Botswana" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ǜƭ˄ӡॎइήĝD̑ʚՑٰŹ՚ϝ஑أݭع˩֓ʧ́ҙãƧГďʽ՝țہ¤БɾΟĸХșȵГЉʧпϑ׻đȇ̐üԠӽߚɧŲAរࠤˆ|Ჾش„ಖ͎̎΍՜ͤʮDӂȎưÙ͔ڣ"], + encodeOffsets: [ + [26265, -18980] + ] + } + }, { + type: "Feature", + id: "CAF", + properties: { + name: "Central African Republic" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ۜÚƺɎƔgȾȏ੔͐Τ͠Ѭ̌ĉ̐ʂüߺ½߆ϴ؊ࣺю;ՐƜĪΫӜԿF΃ƋΓÄʻ̆ʍٖοҢͻT˗֠ѫΖεɆԋغͩƊˉˣęաpكĘ̹ïųȱ˕}ͧDzधнϥĎŗÝʥԕطǐؙĊ՗̴ۓ˸҉˓͛яùדգ²֩Ƙԅѻѯޱėʐ›Ϧϧ˔̳Ѡï̠ЇѮæʢċΞÞٴȬƴц࡜"], + encodeOffsets: [ + [15647, 7601] + ] + } + }, { + type: "Feature", + id: "CAN", + properties: { + name: "Canada" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@؎œުxЯ΅̵Å੥Φȿˬ͆ʸ̎С"], + ["@@Хcઝ˂ޯІ̄î૆Ɂ࡮Η|Ʒ"], + ["@@хŝൡϢʥ̘ݩ̌Ưʈࡻư͕ҜðȚࢨǿԨŵ߄ė˺̃дЋ࠼΍Όҩ"], + ["@@։ܿո˴֠ǵ̏̉ݚɱϰȴ࠼ʵʹ؛טƞņѿʼԷΝ݉ϝ‹փǂǾیɻńইܯԅ†צЂ߫Ȳࣙ¹࿅~ŹʠԼ̐λɬ۸Ԓࢄ೾Զӎܲ̂϶™Njɫ҅Չ"], + ["@@@@@@@@߰äʥ॓ܶگͯDԑϪ̵ϮчʾƻτºˎЂŋ"], + ["@@͡ѳχîəʢ Î͖ʦΆkɈǣ"], + ["@@ঝҧץnǿɪزϲ଼SiǍ"], + ["@@ƼυјżӨɗं˽४ʽöЍؤÞ׶˥ݙ˃ಳȬҽϚ࠭ҁ஡ѣ˿Ӯଗăܴдņڌ˺ޔ؈å"], + ["@@ष¥ȿЪΦҼޖŜپɷXέħřձʛ"], + ["@@Է̍ଉʬۃğଫϘ݊ʼטζࢼʃԎƯʦDžԠ͍"], + ["@@G࡭૰ڄ৐եʡح߾֥࢚؈ؖܨ°ईஞÝఔūૼй¼зس҃פ҇ŃУ࿩חୡŻࢃʨʣуߵ۽ʓοই֩ளÇڏΡÇձ঍Ŀਉڻ࣭ु͙ڏ±উంƕϜ޻ϼّ୲ǔ༞εࡀ͋׺Ѕ੆ɳࢸΟ൶µࣴąƍܫʼࡋ،ळనߗ٨˚ҔࡺѭೢףѶഎЀ॒לҮהç֭֘܌৷لলࢤνݾ˫ಾגȘ෸ɫࡸć۠ɚ޴˵ਚӣʮ͙ຄÛ}۷˪ਜ਼ގſ،ӵ௖Ұߦऔ֌ϸٺݣબੳघ৙͵Յ૤Ӂݰӓംɏբˍͬ܃ټŏͶͅÖऻ؍́׽̏൯̗੏ۑ෇ƋᅛǮుPࢇÍ۱׽ੳω௉૗ॵޡ܌Ɛഘૄᄈ۪సČݔЫߍ֟ˊࣟ˜هતп൸ŨࡆीÎ؍ժ̥ਣսᇷԁ࠯ͽयٓ֍܆ฤ۞഍ƒणĹջӆBନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹ໽A౥MϛƷࢵĿßˍ͝ޗBࠛGϛƅƊǑøʯeďષлࡽſউ҅Ɂ@˷ƂĥŦnĔȂ̎ЂҦʘӺǙܴǵނ࢕ЂľƬūĺɳ@ǛƆ¥ȤǍēɥ€¾ĊȡĊćɚٵːڹ˪ࠑ͘߁̨ݧʃ˝Sਕɔڻʼnࠁʺ࡫Ɔו¾ʻƜƫҤ˳IE͓჏BᮝA᭯@ᡃ@ᠿ@៙@ᢡ@ࠛ@᠁@ᛷ@őF྽ࠜ׵δຽΐҳݖŤԨ੻ΨƧڴ৭؎iѠҲКwՌෙ՘࡭ॠՁ׾ޑϚ֣ΈѿѢࡇ˕ࠇҹݛւדπࠋɸࠟ|JⷎNᷲ༬ȭ೘Й࢘û݆ΖৰˀఢĹ఼τ൘Ⱦ־ΑظȠȊЄ׈ęෆݫ૦֬ŖّਔƐ͆ʖৰ·౼Λዸ̭ୄƛࠖÄଊэ஁зຶǷᗘIJܒƦࣆԋࣴьࡩΦժ˼৾žڦĎڴȩࡊҗरä๢ϛಬƄ௬oĭԺݞƦದ˵KߑՖڠڰuϞࡊ࣑԰কͺäघশ؎ૌƇࡘχଞॅݗЭ༠ǝ"], + ["@@нϿሎʬୠщॊіސ˟یࠛфΒ׭ࡰ݊Ŭ࠲Ƈश͹ՆࠉʼץථеະЉĝσൡã՚͓˱ູ̯Ƃฃɪঋ»ཅ˷ᒃű๻āҕІଫɮݙģਛږ֔ĚಘƜஈ›રƦྷȞᅗã஗jѷ̴ዎͲಗ[ืɚ۶ـגͮᖬԠ࡬Nj"], + ["@@݉ևಹך˸Ş૸’ٔȁ"], + ["@@öɵࢿ|ࣟjࣿőʑ¼ऍѾ˜̠ИÈነěชң"], + ["@@ڎԽޤڴᒆΈ෺ࢅůջဒʒߒͮሀыୄЏŊν༚Ȑ࢘՗᎐ܸͩ͹ߐ޻໯ϹጘչೲȁீޙೖÇʽכ้ঋਗά೓߲ઙĿŁӕࢪӥଜϯΌɟմࠩ́׿੕ɪᑏڨஎܣ࢔ԕƎ̉ᗱͲᅩӤ৳Ц̌ʂయќ௥Т`ʑᝡƅ܃˾ֆؤ཈dႸņ˫̜̊оચࠊɳϊ͕˾౿Рၳ˺՞ɆࢷԺ݋´ڏ˸҇ʛ຿ŅᵝȈᄫʚഹŴۥ̐࢞Ϧ஝Hˉ࡚٦ݨࡺ΄ᓪɢأի"], + ["@@৊ǯຄńɖʑ޷Е౜αƱݳ൝͗߳ê׉͎ᐡٮjˎ႖ĽएռসР"], + ["@@࣓عय़ŒԽ݆`кѮΨ࠰ɮც‡ྈȱళݟ৉Ǎ"], + ["@@ᕍЙѷςኹѺήΤ׌ؘܰւࠑԦᭊƀ஬ǧᒰ±ࠄʑࣖΝ੍ɃᏝןਫי@ν"], + ["@@ҙ͙௝Øৱɖ҂Ϛீɨܼ̬̍ˇ"], + ["@@ٞϵ€љϣس൱đࣗƈjӬ൝ÝÁٮࣜౌ˺ஂµÜŎ"], + ["@@̙͢ݠƘࢢ™ƪЩԝЋ᭗Žᑯη౩mŅ˜პϊ④ij୯Ʈପࠐ߈ɾᛄ˳๶ӻฺÛறߨޔ̪ࢄĭ˲Џ"], + ["@@ढ˓ကFܨˡȑ́८ȍՔȧଊ™௬ë೸ǼႊðീÏ࣒ͅȊ΍ԽɟభǷ੽ĸᜱŻႫcഫļᖁ˔̃ҦĹжࡇξ჋ĺঅʼ͂ΈႾÁ"], + ["@@ŗ٣٩̇޹£༝Ϋ഍ŹଗǼ@@ුؼႮծಆ[ସŬ"], + ["@@ϣy༽Âɡɼၜ]מƻĵĩ"], + ["@@༩ʋఝ˔ڼˎ௮Đஈſ˩ʥ"], + ["@@৽ǏඉBbŤࡴʦҌદǝ"], + ["@@కǥۃȚέ͂áΎજ‘ӪÅ৐̇ɫ̣"], + ["@@͜Ε൏Ĥ൩˘ሏŒߺʠ৫ȮÕ͐࿶ŕᗢ̫ٞЍ"], + ["@@০˕ଽʟ༇ك๥Óდņࣗ΄^̦ڔɢ໡Oए˨ՑϠ׌ώ׊ʲࡴÎοȖዜ¨੶҅මǵ൞ǃڒև"], + ["@@ᖢßᅮŅ໤ɫ™ɡᏅη᎙ǟݻȉᆬJጡԙേʃ෯ۇႿƓՙǡᡷěୈĿׇƭ۞бߙ˽ಛʃЋ͡୫ʣŞȏ෬lȳᖟԋᔧɴឿŻధĸཟªĿЖ༊Ȑб؆ԢÐᖤγ଩բഹLjڼ͘๰Ȩʄ̊஋͠ΥѠᘞ—ڒĝ಼̪ቃĬ᰽Á๣˸۩ͼগʘȁ˺దLjঘ‚࿲ƌం̺ਬ©ࣤɽٔҒૐƈບĢᢲ–Ҁĝ᝚ƚᆔÁᆒÁ"] + ], + encodeOffsets: [ + [ + [-65192, 47668] + ], + [ + [-63289, 50284] + ], + [ + [-126474, 49675] + ], + [ + [-57481, 51904] + ], + [ + [-135895, 55337] + ], + [ + [-81168, 63651] + ], + [ + [-83863, 64216] + ], + [ + [-87205, 67234] + ], + [ + [-77686, 68761] + ], + [ + [-97943, 70767] + ], + [ + [-92720, 71166] + ], + [ + [-116907, 74877] + ], + [ + [-107008, 75183] + ], + [ + [-78172, 74858] + ], + [ + [-88639, 74914] + ], + [ + [-102764, 75617] + ], + [ + [-95433, 74519] + ], + [ + [-123351, 73097] + ], + [ + [-95859, 76780] + ], + [ + [-100864, 78562] + ], + [ + [-110808, 78031] + ], + [ + [-96956, 78949] + ], + [ + [-118987, 79509] + ], + [ + [-96092, 79381] + ], + [ + [-112831, 79562] + ], + [ + [-112295, 80489] + ], + [ + [-98130, 79931] + ], + [ + [-102461, 80205] + ], + [ + [-89108, 81572] + ], + [ + [-70144, 85101] + ] + ] + } + }, { + type: "Feature", + id: "CHE", + properties: { + name: "Switzerland" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƫŹȳϞƵіwá΅χƙةŀǻ͹ЏơƄһ˵Л¡αǶ˽ςБſ^ϠؚҾɈϤûɲƞ܎MǦǼ࣒ʱ"], + encodeOffsets: [ + [9825, 48666] + ] + } + }, { + type: "Feature", + id: "CHL", + properties: { + name: "Chile" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@Bም࣒@Ԓw˧ͻܛʻЭ‚ӻä؏ʨ࢟ŨੑҸ࡫Ҏୃशۘǭ୼֗૜̟ѢϬ˘ֺޠΎװı"], + ["@@͢୅؆ŘĺɁ˿ࢍࣵг€ඓǫ˓ʦ͡ץԹջ߁̛ރĀ߿ԫࡹϮฏɔƵCޛӑࠍpۯٍշFޙʮࠏԉ̧ɣݡȟࡱƚ৿ͷǡȞॹϜ͇ˡΛ϶ǙĚ̓νǃĜӱ̫૗ѽܓĮыˇՑ٣υôࢹ̧̐֔ÄgؽΒө᎔őުſݝPЙȷݷ̣Ɖ޹Σoॅ˚१ג@@ਲ਼ӔˁՒʄӰх֒Ņ෤Φ߰ࢴٰౣʔߞݒ˸ඊत̏Ѯგ֝ɠʿ਻ՉŠ˂ல˺༒ϮָʍࠎéूΠ„Ԩപ׈എΤబȗ఼ʤۚĵਞӮਆưྺ˒ნˀሤÕ൘ǩ஄ќɌɦњЬֱŐ؅ѴΡ˅߽Ҍह"] + ], + encodeOffsets: [ + [ + [-70281, -53899] + ], + [ + [-69857, -22010] + ] + ] + } + }, { + type: "Feature", + id: "CHN", + properties: { + name: "China" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ԑഓΫۏѷ܂ĩخӶࠜڦَϨʡƣԓ", "@@ܩЗۏʺyܢаϠࣾɾӚoȊ͍σσșӟ"], + ["@@ฬˍ঺ׯͼ߃౨Cܰͨ൸ʜѳݱ͙̭˽ः֡ࠇ৵ƪܝ̑ɜܙť঳ѕwLяթӺͯһಙαƀѹܩŒЍ˂ֽ׭ऑҋۃա୭ʑأϽࣝɭ҂ϴǭ͞ږ֠ѹѲܷ̓ॉ׏ԫթ࠙¡ѓϻѸ֩یƏ„ϕڔʕस׶ݚ͝լuƌѱஓɻϻҏࠇућיࣜҥͦࠝԞޓ֮٥_دՅɯȪ҃ӶʻŻۃɇڗҷ÷ؗࣧڹિޭোିޡୟۻृĩԣύ̃˘Ӈй୭сࢵŹ˻ࢱҭ·ə؎Ȧ͘ૻːЇƍࡍɔЏ΀ƄӜޏƶЙܑ̀҃ࠇīڡJ҉ȳѥūŶ॥҃x÷Ȣ}Ύ؝ʓεƸر͂ʔۤՏǎȧޜࢱƓĴাߔۮ”ۚ{٠νȨ˭ӶӭÙࣟŲ˴ΜϿԺ׳Ν۵ȸॷ՗އسڳĿοɦѹr׷Țґɇ֋رëڌԟǭওĈोȖڿτٵǔ˯ЖҽŦࡓոکʴΑȩଢ଼טࠛՒɽऐ׾ő‚іͭјĐۆࣙঠ൧ͼʝ٦ةϼƫʌųӎˆ͜ԛȔ˟ďɇިʈȔśȠߤЈ׈ǐࢸő͆՜ંIJͮ̚೜ҔŠȐãӐּɔݱฦဘͲјȈ؆ຒဠˡҲϞ¢ࡆۦĀٖ֔͢èɚו۸ѽப̿׆ڱ͕ঙ̢ηূƝଆŝ৪ԻԲġϤޟӲӿऒnჄȉ૤Ŝࠦůఔԛ৮BόʽঐҌബ̈ాŒঘ̒׾҈ך˰Ƌˤˍ͔ѴըӀùࡺǝ࠸Ѿ౲͚؞֊נʆ௠ŐڐĥĠ̘ݿזګː٥̳ࠣžӇŃɏΆר࠾Цو৚̓ஆՎQτݸࢾҲːWҪңȦۜмਰƲ૜vసʡ݈̱԰ࡏ̀α̊ԩ̶ࠕ"] + ], + encodeOffsets: [ + [ + [124701, 24980], + [112988, 19127] + ], + [ + [130722, 50955] + ] + ] + } + }, { + type: "Feature", + id: "CIV", + properties: { + name: "Ivory Coast" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ϣUוǒ՟Wহƥ׍ʍ̯ࠫNjvÞۖĄŀ}ͨΣΚˉÈʕɲǾώčО ʔƄB¸ξÝnjĄŜ̸ĶȹڨȗΎæ˸ǘÞŊúɸųٮOƸʖƢgʎĦžΫȞłΌŰϚǽƦ˥Ϙǯ̎ɄϾŒֺɏɠ஡Ο۷ɕेθܣ›ͧ"], + encodeOffsets: [ + [-2924, 5115] + ] + } + }, { + type: "Feature", + id: "CMR", + properties: { + name: "Cameroon" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ľ°ӻŇԝŒЋÅ൅nŬڒ͟֊ϧƚǟϖɋŦXɶɎתЎ߸ʒRԄӮ͈bҾΉ־˲ĀΔȌͺžь҆ΊǞךDzȊŢѨɜ՚۾ٲ¬˨ĠƲͫͰ‚ˌʂ¶ͮ՟Ê֏‹֏ҜޅҷTʁÏϥČǻЅӸөμƛŠΏˆ׃ſɩх࡛ȫƳÝٳČΝåʡЈѭð̴̟џϨ˓œϥĘʏÓґڛȤڷɜ੗"], + encodeOffsets: [ + [13390, 2322] + ] + } + }, { + type: "Feature", + id: "COD", + properties: { + name: "Democratic Republic of the Congo" + }, + geometry: { + type: "Polygon", + coordinates: ["@@»ঙͶŕˑ̗͓ɟ͍ѫǯϷ±ګț͍Oهʍɹ‹ԃŗÝýҟɄϡÂ৥ưޝċѧǘӣӤҹҒ੕ͥĒ૿ƙɣĵʇՙȊχƫষĻࡇɨƫט͝ɲƴìٟࣟR·Ҧ̳ΨٟŠȋѰԣ˅ڧŞ˫ϢՕüϽqµʾ́rϥºԳųιtȻû®ৄ˩̸ÕԬŬԒǝ͖eՊ৳Qò̢ѕG­ƣԵɁӧűȿҫŠˣş։å͏Ѱȗ˖ʋԌȷض៛\\̍ķʑh΋œşʼɊʀμƎɎ̪ǰɚđ˼͐ҜSÄʃ̼ƩӶՄӨШɆːƒ۔θࠆϬўքМĪˌt̰Ǝ̆«ӊŀݖǐԾʦ҈¸Ԕúה͜ѐҊ˔۔˷՘ؚ̳ĉظǏʦԖŘÞϦčनоͨDZ˖~ŴȲ̺ðلėբoˤĚԘۙϘķɤƖϲÅҶDzȦΫ݊֏"], + encodeOffsets: [ + [31574, 3594] + ] + } + }, { + type: "Feature", + id: "COG", + properties: { + name: "Republic of the Congo" + }, + geometry: { + type: "Polygon", + coordinates: ["@@̿˾ʩƗͻγۏࢸٖҪ̓֌˾ɂ֦ĺäό҆Зݐ•ʴЈł֒ĝڀЉӺζ঄ȽǘسçɻѢÔξ੘ڸɛڜȣÔҒѰ޲ԆѼ֪Ɨդ±·ԓʥ҇ǏԽĿݕ¬Ӊƍ̅s̯ĩˋփЛϫѝηࠅ„ۓɅˏӧЧӵՃ̻ƪÃʄқT˻͏əĒ"], + encodeOffsets: [ + [13308, -4895] + ] + } + }, { + type: "Feature", + id: "COL", + properties: { + name: "Colombia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ΫȤЭ˨ʅƅ܉Ŝȱΰƽ_࠿Ӓŕʺ̼ڛтȢ̦иÊΞՆ͐Ѵ̳ȦDŽӦȏސǸɚƃ܄ͻ҄ņТ˔ÑǂʠțӶĺŬѢـהΌĚT˦ƺ܂ӖϸՊfäǪڂéڌъ͞ȊОК̖»ɚɛǍ˱գƕɇп͗ʋʓ̷Ĺ׵ɷӭѢÇņϭȄȁâ͹ij̵ˆǫȸéȨ̉ઊĄӦŃעܡͼĚ­ӐĪ̔ƟƱҍȇ˯ß׻ǜ֑ʆʟ†ȉэл̨ȃɠ̋ʰ࠹ǁĻǏӸɷˊ˥́࿕lZԿӰē…͏ǙĔҿƑK؏ώ̫ƀӓoηϙᘯп҂ʣpժࡤٟϾԍị̈ƤҧɝصŀӵࢤϳɐˍІ֑Њɡā"], + encodeOffsets: [ + [-77182, -155] + ] + } + }, { + type: "Feature", + id: "CRI", + properties: { + name: "Costa Rica" + }, + geometry: { + type: "Polygon", + coordinates: ["@@җȆǟǮĬƤ‰ȄɷȪͥǔ́ņÅʖəƮÄʑǗȩȓɸˑĊŗǞLʮŎˆʁŠȖnjŴňֆɝȖŊˊéƔǥʜÇȪDzɈҙ͖ͷЂΩ͗õLͷǪűűıƱëǟ©Ǖ"], + encodeOffsets: [ + [-84956, 8423] + ] + } + }, { + type: "Feature", + id: "CUB", + properties: { + name: "Cuba" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ܨÑڊW߄˹̭ͮ޺Ĩ̔ȡ܈ԳԺϛˢ\\ԆǟÕʁئ“ٌ΅ıȟ֑Ń֡¥׃âளą֜Ҷ΁ɔէÈ̃ʐȥӎӃ޵ɦʥǬભž̋ǐ̀ɀࠗ¨׿ѧΏ[ťȳеğΫĂѺʸǼ̤ϞȈіǎَĄȰĢ"], + encodeOffsets: [ + [-84242, 23746] + ] + } + }, { + type: "Feature", + id: "-99", + properties: { + name: "Northern Cyprus" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÐJŨȮYކʢ֧ΧÔƿęˆLJÙűj¥iĎѾNjVɫïƿ¬"], + encodeOffsets: [ + [33518, 35984] + ] + } + }, { + type: "Feature", + id: "CYP", + properties: { + name: "Cyprus" + }, + geometry: { + type: "Polygon", + coordinates: ["@@€ãࡱͿЩŊȟͶЎŒǀ«ɬðnjUÒ½j覎ŲiLjÚ̇"], + encodeOffsets: [ + [34789, 35900] + ] + } + }, { + type: "Feature", + id: "CZE", + properties: { + name: "Czech Republic" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ϯǂЁ©ٵʲ̏Ùҿ΅ر˔ӃΰѕȬėΠƧʠؒǾ̸Ⱦ׾ǎɂdžɜīϒĖЊ˓ؼñ¿ɳҘǧŲɒּĥĄʿز»ϮЯʡCŽƯȕ—ÅȑLJ¡wý˹ēϋbšȁ"], + encodeOffsets: [ + [17368, 49764] + ] + } + }, { + type: "Feature", + id: "DEU", + properties: { + name: "Germany" + }, + geometry: { + type: "Polygon", + coordinates: ["@@d͗ࡔțS̗ࡢǂҾɰॊͧІˋȞёɹɣ̨̙Ⱥ҅ß́Έ՛ϑĕɛĬɁDž׽Ǎ̷ȽؑǽƨʟĘΟіȫӄί̑ϯ̟ŃŢշýƛʿǤЕ~׷ƭݍ–ţɛыɺʩ±࣑ʲǥǻ܍Nń״ьֺ௅ƸЇɘ´ςǗȐĨ֨ƗࢢԎ@Ɉ͂Ⱦޔƿ˴ǐDz۰°Ƽȃ֮вȓ̀ӈٌōՠŸ"], + encodeOffsets: [ + [10161, 56303] + ] + } + }, { + type: "Feature", + id: "DJI", + properties: { + name: "Djibouti" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ȤʹΑӏȩήɯ̱҇ȅƬȭÏҷb_ʮßɶ˴Ѐ̐ϊήñʪȴ"], + encodeOffsets: [ + [44116, 13005] + ] + } + }, { + type: "Feature", + id: "DNK", + properties: { + name: "Denmark" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ԋڹ࢟ӄŝΒ௼˨ˎу"], + ["@@ȵ̓ʡĞɮХ՟ŷًŎͽҲ}࡬Ɣɪʌʦ݌À̐ɴڮʂƒѝʟ˙ĶɽҘŵ"] + ], + encodeOffsets: [ + [ + [12995, 56945] + ], + [ + [11175, 57814] + ] + ] + } + }, { + type: "Feature", + id: "DOM", + properties: { + name: "Dominican Republic" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ŀƞپIӾɏɜtƴ̕Ҡhʡϐ‰Ю̷̯ͿЍǼϫ•ˡ¢ƱƵ͑½ŷȲˣťͳֻɏƆ§ʎjɬɍʦȲƚÞ͒óҜ"], + encodeOffsets: [ + [-73433, 20188] + ] + } + }, { + type: "Feature", + id: "DZA", + properties: { + name: "Algeria" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ᮩཽᝩ࿷இϑटćU՘ϵƌԹʊȧЀᬻᆴᬻᆴṕᎠfnj@ÊQ঺ബب࠼Ÿێɦ͎тচͪ˜جӢòϞ̶સƚƸ͜ɛDz̃ࢲ¹Ԟ́ՠ߰ҠࣦƢՌΎ߶ʰ෎Ƭർæшůߊͨ࣌P΀ȝֺ¾ǟћƄߟȡۙԭҵôمۊԃRȯԮ͹Ϊຝ˖ݏ°ϵƧۇÔϥŃҟòՇͫΗӺؓŽέ̘ҵϼƸڒϷςՃ"], + encodeOffsets: [ + [12288, 24035] + ] + } + }, { + type: "Feature", + id: "ECU", + properties: { + name: "Ecuador" + }, + geometry: { + type: "Polygon", + coordinates: ["@@҂غǻξ͍ϵԉςǞʀƙބ̎ŴƺԼ͆զÍ΄ҢǸ׀Ͱࡀӑƾ`Ȳί܊śʆƆЮ˧άȣŞٓʽճࣷ࢟য়ͧԥܵǃ֣Ӆ΋ΙъͻĞ΍áw̮ʈȨıΔ"], + encodeOffsets: [ + [-82229, -3486] + ] + } + }, { + type: "Feature", + id: "EGY", + properties: { + name: "Egypt" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɽͷǹىɫѩȝƥ˩˔ϛϒ׵ஸđùΐࢯԪࡋٌವ̴ҙ˒ӃݮछǗƣ‚ճ঒ݭƨǣΏ@Ὁ@@@ᶶ@Ჴʥڲɐ԰Żά̤Ж૦b߲ɝ࠲ʛϴſ٨ˊΌʊݎêװŃɮеȜ˜ڨȣټ³аɄւ෽"], + encodeOffsets: [ + [35761, 30210] + ] + } + }, { + type: "Feature", + id: "ERI", + properties: { + name: "Eritrea" + }, + geometry: { + type: "Polygon", + coordinates: ["@@˻˖ΉӰϋ˒ɏܷ̄ͶֻXȭǬӯȡԛϢʽط঑ǬęʹβఀĊ֒ˆʴؤƐьӒӦঃɴޗҢУବߏҲӍҖӝˀ˿аʧʩȳέò"], + encodeOffsets: [ + [43368, 12844] + ] + } + }, { + type: "Feature", + id: "ESP", + properties: { + name: "Spain" + }, + geometry: { + type: "Polygon", + coordinates: ["@@¦״΃θஒ؆ਊƱ૾NࣂƝۦªമƒͰ͛໺ϡ̨ǺीϝআŊ®ӥߓ֓ઁǯõ˱ԩү͕ہ͞ӑӟϑǹճىǗש٥੧_ߟhՃ͍̓ͅЩê̵˴ʃӚ޷žé˦̶̀Śɬ̃ʢɶրͳԌδè’ЈƎŬZپϲɪɻфөˆƝŁӹCɁЬ΃ū̥ɇ"], + encodeOffsets: [ + [-9251, 42886] + ] + } + }, { + type: "Feature", + id: "EST", + properties: { + name: "Estonia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ĮӸ̱ŁՓ̘ñӘਫ਼ɼ੔Ũ࣮Ƒࢂ|Ŵƣׯӝʞ޵ΫˉۙDܡ̸ρļƩ"], + encodeOffsets: [ + [24897, 59181] + ] + } + }, { + type: "Feature", + id: "ETH", + properties: { + name: "Ethiopia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ԜϡӰȢȮǫּWܸ͵ɐ̃όˑΊӯ˼˕̏ω˳Ͽàɵ`ʭҸaȮÐȆƫǽ̴̕ҧ̴Й̛͎ᩨঽۺNᛛᡃફ™ݟףաeɯ˅ַB͹˴ލΙʝΓ֕àȃĬȟwˇT੟܌ב@˹ˢ@ҾѧƘӻࣴϥȚƧʹэЦԧÒ˸ӐҀrŲʰ[ݲʞࢠЊɾĎ΄ήٜԔи΀ࠠƆܠ঒ǫʾظ"], + encodeOffsets: [ + [38816, 15319] + ] + } + }, { + type: "Feature", + id: "FIN", + properties: { + name: "Finland" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ūיಀ֓ޡى঎ख़֡ܛݴس΅յఘֻ́ѓޭӟᅡੵໃá๑̯ൃǯӡҞ߿ˠȈࠢСݶАӪނՆ኎࣮֖Ǭē΢ୟЈ˳͜uಒ಻ֲ૩ЪԊɞतѻલ¦ࣘȭߠϊЬ؞ಬ˶઄ͯΡכ"], + encodeOffsets: [ + [29279, 70723] + ] + } + }, { + type: "Feature", + id: "FJI", + properties: { + name: "Fiji" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@̂ʍƓѭԳŗҩļąτ͖̀ϤĻȼƐ"], + ["@@՛ǯŅ̼оǤˊ°Ӱˀ@ЧՕȷ"], + ["@@é­@ШǨžĽЗ"] + ], + encodeOffsets: [ + [ + [182655, -17756] + ], + [ + [183669, -17204] + ], + [ + [-184235, -16897] + ] + ] + } + }, { + type: "Feature", + id: "FLK", + properties: { + name: "Falkland Islands" + }, + geometry: { + type: "Polygon", + coordinates: ["@@৘Ԍ܎ȿԌʹڦϙʥ̋ଋʥϙ̌܋ϙпϚ"], + encodeOffsets: [ + [-62668, -53094] + ] + } + }, { + type: "Feature", + id: "FRA", + properties: { + name: "France" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ˣ٭ϡǠș֢ǜ̺ը͎Ɯܛ"], + ["@@הЅќà݀ϥȊñʎjЈɗெƷыֹŃ׳ɱƝϣü‚ɇؙҽ]ϟВƀ˾ρ“ʁʚ̿̅ʯɐٱҖŃĩηݿӅစɬ௧˗ĩԑঅʼnिϞ̧ǹ໹Ϣͯ͜ѢԎdžူࢁࢤإю౹͒čؖઠǾථɏˇॎߌέዠپʨێܾǞŪ̑ϸ_ϸ͵"] + ], + encodeOffsets: [ + [ + [9790, 43165] + ], + [ + [3675, 51589] + ] + ] + } + }, { + type: "Feature", + id: "GAB", + properties: { + name: "Gabon" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ࡹࡔ։ۚԙࢄ‚˨ǾˎȲؔǜخ˴¶௢SOৠЌÆԞőӼňľ¯ÓνɼѡشèȾǗεঃЊӹĞٿŁ֑ʳЇݏ–҅Иãϋ֥Ĺ˽Ɂ̈́֋ٕҩ"], + encodeOffsets: [ + [11361, -4074] + ] + } + }, { + type: "Feature", + id: "GBR", + properties: { + name: "United Kingdom" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@҉ֽًǦԱ[ǦҊǥ҈۴–ࣔԳ"], + ["@@࣋ࣧࡦŘऄIɕۅݯݩࢄÃäĕݠ঱ֺƇԬढ़ʈͧৰDžķ՝ѓʗͲѣݱѯ૳Rෝɱϻǒ։ϿޥĪם͍ҁǘ௼ࢨݪǺOBಽƔʃͰ࢜ʺҡҐdžռఢ÷D@ŮӤ֛Ԯ_\\৵ƨȧɬ̨ϒˡɴҍЇ·߶щє̨ࢆٶھڤá০ì"] + ], + encodeOffsets: [ + [ + [-5797, 55864] + ], + [ + [-3077, 60043] + ] + ] + } + }, { + type: "Feature", + id: "GEO", + properties: { + name: "Georgia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ųάȿִӟ̲ҭĬ̯ʴĺIJ܄ƝఆƋଦЕƦƻԚƂ޶ǭʴ·Նșɓřвғŗıҏºصʎȵƍଢ଼ſ߳Юࣅ¡"], + encodeOffsets: [ + [42552, 42533] + ] + } + }, { + type: "Feature", + id: "GHA", + properties: { + name: "Ghana" + }, + geometry: { + type: "Polygon", + coordinates: ["@@೉ӯҳ˽ݳʑݡʆœͨηܤɖैΠ۸ɟ஢ŗنrӊฤ¢ϊÕ˔ƊϴáÕʿΖџC؍Ąڍɂ̫ȅݳäйɢՓȈ̍"], + encodeOffsets: [ + [1086, 6072] + ] + } + }, { + type: "Feature", + id: "GIN", + properties: { + name: "Guinea" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ʃtǡͷʁJǏǴÈͶΗԨɕħǵmɳ³V̮Ƈɘ‚ʔǻΜɹ̜ڥDțǁɵoƝǷīɹ҅σρӼ͛͢ɋŊȿǖħϊūȂʓƐώЦʮeɖƘȄDƄŎï˨ĢĖd˶МUȱȄlÚĤҜáŨ´¶̭ƆBɖŒƔƒɸɇάãɲǺ˖ŒȬŠǚuȈȁĴɳΆΙǣɏ˙ǴĊŀį«ʡʲʍǗÝå˷Ș΍Ⱥڧ̷ĵăśÞNj·νƃA"], + encodeOffsets: [ + [-8641, 7871] + ] + } + }, { + type: "Feature", + id: "GMB", + properties: { + name: "Gambia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ņόࣶzȎȦˊ`ͨȷʼIˢƚǞʏεȋιdέǰ̷ȗƭQȫŝއl"], + encodeOffsets: [ + [-17245, 13468] + ] + } + }, { + type: "Feature", + id: "GNB", + properties: { + name: "Guinea Bissau" + }, + geometry: { + type: "Polygon", + coordinates: ["@@҅ΘΝÈȕʀLŸʯǴÁǶѼƌ˦ɦĨ༈•c˵ġĕð˧ƃōȃCɕƗʭfύХ"], + encodeOffsets: [ + [-15493, 11306] + ] + } + }, { + type: "Feature", + id: "GNQ", + properties: { + name: "Equatorial Guinea" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƿŴ़̀െmPয়௡T˳µ"], + encodeOffsets: [ + [9721, 1035] + ] + } + }, { + type: "Feature", + id: "GRC", + properties: { + name: "Greece" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@Ҡ˱ٺ¶شÑqƣҜĶĿʛ௃íTƒਁǎƺΦ"], + ["@@ʹՁȥĥԟ|ѫĀৱɓ׌ҿяƋҳAѻўƿȁȊԅрЁ̓ǿҴϯжʑ^ӅޥɠʜѕՓĕ͈ݏ֏Yۍμ̿ڦƧ֒͝ϮљӐÉʆϸТ¼˚˘Ũjɚռö͌ȀҖgƒƦdž„ت{ڨɲע̉ކĀVмЦɝ"] + ], + encodeOffsets: [ + [ + [24269, 36562] + ], + [ + [27243, 42560] + ] + ] + } + }, { + type: "Feature", + id: "GRL", + properties: { + name: "Greenland" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ᬜԆ᱒›ੴ̴ᲈĄ䀦Ŀ㉊ڗ༅͕ộ™⭏ćшƫᲐĠᡚ́࿈ʴۦ̝इӧᒞ̺✘͚ᠼNjҾΫ⃝ױӃȕ᧑ơወ¡ছؕگկ€ध৚շಽ“൧ˇ༂ѽȢ܋࣍ýઞܡህÑঈ΁˟̑இŽ୥E੆֩\\Ϗပΐћɣଌȿ઼ԣ͈ڱກlj٫͖ਣӘ˼֭উѵᕖ•୆¯ᖯܵᗿڏឧ́ओIࢅ͓ୟࢱᅵכׅ“૧ȷ஽ȝܛԱ[כыտോڧͺٿϗљࠍஅ½఍ۈဿLࠁҢ֕ࠐฝਲэոŗݮ୓ޢ̢ئ֗̒ࠪচొ̺ͨΘǬڀॡ̕қůݯţਏ˜Éְ͢҂ެ\\႔ɟ෿Քݩ˾࠷ş۫ȼम޴ԝ̺ڗ׈ৡࢼ੯͚XΚᖷӮᄻÖᖟ‘Ꮕ×ইˌวՈᕂ˄ၚ¬≹ɖ቉΄Ś͜ẊИᶎИ̪͘ᗗ̠ܺͰ᯲ז௢ĚΓϘጲɜᣚƂᣖRࣺʽᕺҨፘ̽୺áპ˙ፅҐŘή"], + encodeOffsets: [ + [-47886, 84612] + ] + } + }, { + type: "Feature", + id: "GTM", + properties: { + name: "Guatemala" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ћƦԻfϩǖҍΌrʖĮȠšƾКۆ઄Ft˸Ƌ¾ġǺ̵Ț̹ˬϜDBӂ޸BަUOڗßॅʤ@˚ƱòŰʘŃϥ͍ЉɻÏljâǑǧɇȟ½¬ıƿġ˽Ƀ}ŭ"], + encodeOffsets: [ + [-92257, 14065] + ] + } + }, { + type: "Feature", + id: "GUF", + properties: { + name: "French Guiana" + }, + geometry: { + type: "Polygon", + coordinates: ["@@͉͑ГÑŗʀȉ–ʹɩνǦɈΪòϤƢή͛ӸáֺѪܠ˸ğؤȥࢸۿƔ·ӻޑʳأ"], + encodeOffsets: [ + [-53817, 2565] + ] + } + }, { + type: "Feature", + id: "GUY", + properties: { + name: "Guyana" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ր̯Դյzџ̈́o҈Чͪ̇Ƈݱԛɕ°ȣƹџϊ؏ːAŎӃԢܳȱ‰ҫî˙ɡϟƥ˅—ġǑЭ¦ԫЀÓϴɋьƆܐɸ̐ȕϸ˿ŶŊτțȘѩ™ْ֩ɬɲiϲԬƊȾƾ˽̸ô̬ږӲ"], + encodeOffsets: [ + [-61192, 8568] + ] + } + }, { + type: "Feature", + id: "HND", + properties: { + name: "Honduras" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ơˀʭòÐʹŗĞǣÒσij‹ŔʩƈǷǚʛìǨɈáǒÐNJЊɼϦ͎ĔȂƨʊ\\þ垦ϸùϲv˒ĢİĦˎ©ȪÉɘnǖòϨśƄkʲƿʐį̏Źɜɳ˽jśŕ̇ŋɃAȅŃǙœƛźĕ{ŇȩăRaǥ̉ɳƹıđĽʛǞǹɣǫPȟqlЭūQĿȓʽ“"], + encodeOffsets: [ + [-89412, 13297] + ] + } + }, { + type: "Feature", + id: "HRV", + properties: { + name: "Croatia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ȳ͗ˊʇ͓̓ϝȆׇ[ܟƔϽmǻǧ̝ȖǫΑЪϽǼʹϮ̽͌ȃ͆Ηݔ͇ġƛ߃̶ӣ̢ޑʠ۹ؤǞØϥΞe˲եƄʱγʝˮn̆Šbג…Ƹƚ˸ƍͤgGɼ̈ĒĈͺڞɠˊĻؼέۜlj̼Ų"], + encodeOffsets: [ + [19282, 47011] + ] + } + }, { + type: "Feature", + id: "HTI", + properties: { + name: "Haiti" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ԣ™ܰƁôқÝ͑ȱƙɎʥiɫ֏ƜЅÍԡÔϽƿ҉ʾö˔ޜśيã̢ȈϧθP͎ՋžȌɶ"], + encodeOffsets: [ + [-74946, 20394] + ] + } + }, { + type: "Feature", + id: "HUN", + properties: { + name: "Hungary" + }, + geometry: { + type: "Polygon", + coordinates: ["@@˨ըǍǼӂDÜ΄ђɋ̲ğ۸ļäǚͮ~ЦžĜÃЂŀȠȢˠ¼࣒ʭǴĒҲɭÎɣԡǭЉ֫ԕ֭کǁԽš١ə̻űۛNJػήˉļǍ˴ƗV"], + encodeOffsets: [ + [16592, 47977] + ] + } + }, { + type: "Feature", + id: "IDN", + properties: { + name: "Indonesia" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@Λe૝ך޴ǒѴʭ̎ʭ»ɩ"], + ["@@ܙȁijĶø˸ΰԢࠨͬĐǓfʫշع"], + ["@@̢ɣԲèȼΥॿǛ׉őҍP̀ӚҤPɤ̖"], + ["@@ūұ౅ʅૣľE̬ښǪՂʥ֔Üݬ̮"], + ["@@ྔċȂΌ༘З̪կీƵਐӿय़͋ऍ͸ݻwࢍØ޻ưঅ͎؝ČΓŁ໕ΌƣΰޑØּߤ৶·ڴ͡ΒÛŘ̗"], + ["@@ѝֱćنƬ̠Ǭ˴ȒʗCЏ"], + ["@@̿˥ׅƸǏΰࡘ¢Ⱦˣ"], + ["@@̨ٝۿΌۯìӃÅׇˆȦҦਠ”ऎʕ"], + ["@@ɼയ࢈ԉ۰ࢼ८ԔݜBܘ̉خ̛ࣘLJbᩑbᩑݟې࡟ǜȷʇ੡}ΦۂՈɺɕࣲЕ۸࿃܆ۗêృަʛУ͑óȏ̮GκٛЮ̢ࣞ״gëɠ௵DͩԄݥƺΡдଈȰњ˜ഘ·Ƃ̹"], + ["@@ڭ࠭كlj߱ǐඓ¥ܽŧţٍݪݛҒϠ༪˸çϯλŪιӯ͙݉ߒ੿Ƶ˿ݲॻQտ҅ʙ̐͡Мی࠙͗ȻɶŊ͖؅ӲØࠌ֕ʭîও”றՓũίʚʌޜŽ߸ΛPʻֺΎվŤښф౎ǮΎ܎ذپʛ੖śॴ–ࠨ؎Ʀȉ"], + ["@@©ܽџĈŷԝΌѷɽĵ͹Ւʟ੺ǚڤ˨̨ÔҝӸóĀ΃"], + ["@@सާহį˫ֵšݿַ߱u࠷͕౻ŭ̚ॕϙͫԤ׳´лːৃ̟̩Оս¯ۗĬŹૺнɺЕܘŝ݀ĮުԂ֐Ɩָ֗ӅըǠ՜ÑӪъЖôߒɽۆǶњୠ͔̈̆क़ॲ@ܰƙӍݷآߓơϭ"], + ["@@छkۻ۰અۊέԚٍۄзؾٕ୴۪݅ʙܠ̳ڀݵՊѭܘمҺࢗऒóђզ‘ಢNjݔࠓٮ֫ҪΓߔࣙࡢ_ۺֹӠ۳٘ϥͳۉӖ̞̅sƜו̊ҵؠõФՏɁ਱‘ಟ"] + ], + encodeOffsets: [ + [ + [123613, -10485] + ], + [ + [127423, -10383] + ], + [ + [120730, -8289] + ], + [ + [125854, -8288] + ], + [ + [111231, -6940] + ], + [ + [137959, -6363] + ], + [ + [130304, -3542] + ], + [ + [133603, -3168] + ], + [ + [137363, -1179] + ], + [ + [128247, 1454] + ], + [ + [131777, 1160] + ], + [ + [120705, 1872] + ], + [ + [108358, -5992] + ] + ] + } + }, { + type: "Feature", + id: "IND", + properties: { + name: "India" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ࣚটďۅͮїѕ׽ŒɾएࠜՑ୞חՑϟ͛޻ࠀͅߊЭરһସʼnӜёٮāৠȝ۪bĪͪŋՖÞβԠǮìڋlǙކ͉Ոƀ܀Çۈ|ÐԪ΁ˎڴŀވشॸ՘۶ȷ״ΞЀԹ˳Λ࣠űÜ͇̍Ʒèԫ׷Ʋછׅ~ӓҩ۵§ХϏۗځȒࢇȏ˹ĚΣгȥѵ೰ɵEƍ՝ҡѦʸӎϖ¶ϰ܆ӝƜީ]ߝŚóאБ¤ڕζ֭̓؆ѻԿ̻ȅ̩Ԭɣƛԑ̆كžەţֱ̫Zਛǩ´ك҃ӻ௃֡ळ঩كՋ࠷ջCϭлȹݳ̝Ͻ«ʥٙǪધ®ۡΣߙI෗ѣ¡ϣٙʰˣދʃ˱֯͵ʍߑ޸ϳ୴͑ࡒ̍Јѿ߰ȻੂơՀޅ଼Α࿀ʣ੾HৰǍ޾௣ԉףĶ઱৲И̤ʝͤড܊֖֔ᇜCǗܞҽюĩ٨ջϘऒࢢঊÙ࢞ࢢՄ࡞ࠄࡈ_״ܒӠڳд֪݂̇̕Ьβ౤ȱपŰߺ۸"], + encodeOffsets: [ + [79706, 36346] + ] + } + }, { + type: "Feature", + id: "IRL", + properties: { + name: "Ireland" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƒ׷ًݣ๯ӹ஑Ŷڼ࢚ѭࡢତڄٌϼǦ҇ǥ҉Բ\\ٌǥ"], + encodeOffsets: [ + [-6346, 55161] + ] + } + }, { + type: "Feature", + id: "IRN", + properties: { + name: "Iran" + }, + geometry: { + type: "Polygon", + coordinates: ["@@݈njװӔ֚{τƾװýघэڤğ।ݓظ‰òۻ΁਷ɱؑκŭΫҡˠڡàՓِƙæեݿݿжѵ͸ԓߦυx݉ДƋêϯ௉ѡ̓উཌྷʪࣷȖेŊΧਐЕƪ٣ƭࡑНਇ˦ࡑ٦߳ʈ֗ߘا૪ҍƋՕ˦̻͝ҭѴS҂ˍ@Ɛ،ѝٔ਍Ң׉ߜȜپц̂ÙӬտʨխ৊ҟڨǐʼʿ६ּʈƄͅъϯ־ő̤~রئ̀Øʞʙ́гԼѱȾ¦ˈإߖǩ׎у஠ƟಾɞĄȞ"], + encodeOffsets: [ + [55216, 38092] + ] + } + }, { + type: "Feature", + id: "IRQ", + properties: { + name: "Iraq" + }, + geometry: { + type: "Polygon", + coordinates: ["@@րʧÚӫх́țٽ׊ߛ਎ҡўٓƏ؋ˎ@TҁҮѳӿ¤֟ê؝߭༟äᛍၖఫךৡɪ͹৾ᇶ࢔͆৬āؘҢȺјԾΰž঎Ň̐ɉЖƚծ৉"], + encodeOffsets: [ + [46511, 36842] + ] + } + }, { + type: "Feature", + id: "ISL", + properties: { + name: "Iceland" + }, + geometry: { + type: "Polygon", + coordinates: ["@@șիॊֵથٙᝓֹܣƵૉŮᚑˈࠠψᆧЪ๪ǎ—ʘᄋȜ֨նౠŰಸ֭౨Ҝ੒ʃൌ҄ආÑ"], + encodeOffsets: [ + [-14856, 68051] + ] + } + }, { + type: "Feature", + id: "ISR", + properties: { + name: "Israel" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƥ˅̣Ŝǫ֓ɂĥɋř—ɛЄŖp͛нഉց෾ʔˢ˶ɞϼǠيŤɆzVˬCþƦɤ\\`·ŕŵhM"], + encodeOffsets: [ + [36578, 33495] + ] + } + }, { + type: "Feature", + id: "ITA", + properties: { + name: "Italy" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@̟ڋŲʹǭѝٝ̈́ёĞ୩ѐŞќজûࡪĠْò"], + ["@@Ԍ׭ş૕ϣÂ΁˫͇ɞ‘২ȓӒҨ¥рʼ"], + ["@@ரɏĝЯȬΧڝŪہ̗²зĻʇˠё߀чцۛदڱچLȲȃɽǗݪ̥ؠʩܜѫĔƿƽ̛үϼܳƐΝի؈̷ıѫΗ¹҅ܛΕÝHʲǢҊǼǶ͝ӤʱшΑŀʛδգƴεͶثÆٿϜޑմ֯ӜʿࠪйĮہˤϯŕӝϵΓÕĪθҕńɏٲ̆ʰʙ̀”ʂβǵМ¢Ҽ˶ƢƃА€ǼͺتĿψƚâΆԘšĮdžࠨƤȊ̉"] + ], + encodeOffsets: [ + [ + [15893, 39149] + ], + [ + [9432, 42200] + ], + [ + [12674, 47890] + ] + ] + } + }, { + type: "Feature", + id: "JAM", + properties: { + name: "Jamaica" + }, + geometry: { + type: "Polygon", + coordinates: ["@@֢÷ҀȫƔɯןeʭƗҹƊӑ̪ĶȔΜÎȒƒ"], + encodeOffsets: [ + [-79431, 18935] + ] + } + }, { + type: "Feature", + id: "JOR", + properties: { + name: "Jordan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ʀˆपͫ࿪ࣆͺ৽Džų၅у࠸࠿ˣƛƑ˭ٙřȩ̡εʵधƆƒŨоഊo͜Ůʚ@Ԥ"], + encodeOffsets: [ + [36399, 33172] + ] + } + }, { + type: "Feature", + id: "JPN", + properties: { + name: "Japan" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ņ˽ҿԕΉːљțɝӭշʈRЊҬԆӌīΊΜؠǹ"], + ["@@́ڡƤсѩף੹Ѓ๏½ணॡ͔֡“غษȃষЃঝe࡞أ֗෗իΝН͜ȶݶՏʒͿ־ߐʶѲՈࡌѢ؞ָာʤ࣎ǣࢠ๺֔Б௾ࡀӌ͜ՈਈƟा΢ՎࣀƸҞୗ}ڻޥࡍbࢁ"], + ["@@נǵרΤȈहఝɯ݁࠱೓ָқँण]ř࠴д٨࣌²ʖ୐ʜټন࢓٤˯"] + ], + encodeOffsets: [ + [ + [137870, 34969] + ], + [ + [144360, 38034] + ], + [ + [147365, 45235] + ] + ] + } + }, { + type: "Feature", + id: "KAZ", + properties: { + name: "Kazakhstan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ӕƹ્דο׹̹KɱЊ੫‚ǡێХNÚࡆ৓ؘ෷ßডũߣݶۋ͆ಥ׼ƽðᓗӹᶽљ£יچ֧ɼॕǩχ˧±ȲȶΖDž̊অ˺ϛݮҩɆ…˜ࠊāŽؘ܎ƎܼűƲࠎƭԲ࠿£܍ȴঃσ޵ǭяƌĐўՙ֘دw܉֬ӞِʕǢڢऊࡺӣŀؘჄࣴಾtᇢ׉঺ͻࢼΠ೰j੺ѥʔʠ୼—ɂЊഷ׀߮Цƿɮ߮ɔ؅ֺϬ˼Ḯ̈ШȺᑆ̴ݰΒຢǹ˄ࢉ࢚Ȳઆ˹éҝ߮´ᑌߎ̭ˁ੶٭ሠᒑ҄ѰୄӛீɎҪƯКӟטNjΨΥ઎ŒѾԣٕ֓ۥÿ¡ࡅұϝဟˢ؅ຑїȇဗͱݲลֻɓäӏԭŬу̠ఝĖඃx̧ġ஥ΞӉǧŽӹ൩̂փşȉρ"], + encodeOffsets: [ + [72666, 43281] + ] + } + }, { + type: "Feature", + id: "KEN", + properties: { + name: "Kenya" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ӾۙיͱȹΕ̿Õšףˑ͹Ǐ֑ͷ˥஻ࡀËӤᵁႌƙĢSࢺʊ;а֌̨ؔσ॰įтЉ׎ԬԈ֬ֆѨƗ@ҽ˺ˡג@੠܋ˈSȠxȄī֖ßʞΔގΚͺ˳ָAܽ॑Xᵣ"], + encodeOffsets: [ + [41977, -878] + ] + } + }, { + type: "Feature", + id: "KGZ", + properties: { + name: "Kyrgyzstan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ȊςքŠ൪́žӺӊǨ஦Ν̨Ģ඄wఞĕф̟Ԯūşȏ೛ғ̙ͭઁıͅ՛ࢷŒׇǏߣЇŜȟʇȓཟŵਡ˘࣫ÝĂӜࣴƕ̮ʸٖĉ੾঻ѸױȽإ͂۶ծʟĊ"], + encodeOffsets: [ + [72666, 43281] + ] + } + }, { + type: "Feature", + id: "KHM", + properties: { + name: "Cambodia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@΁Ѭыࢄȣ২ՠۨઘdž߀ťۚ͡Ϟׄݖ̱Ȝ֕Ļ৕ඳ٧τԙࢥÓܫͷ۱Ū"], + encodeOffsets: [ + [105982, 10888] + ] + } + }, { + type: "Feature", + id: "KOR", + properties: { + name: "South Korea" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ܨযȺխPॷ̓ҥݽljڥΏݳïĥҚƼـχ࢔ذƚֻܘÂúϒ‡͞Ϝצ¢ΨÈŨȮ"], + encodeOffsets: [ + [131431, 39539] + ] + } + }, { + type: "Feature", + id: "CS-KM", + properties: { + name: "Kosovo" + }, + geometry: { + type: "Polygon", + coordinates: ["@@›ǣŃPĘ́ȩĐdzɦƾȌȪÒŜ˨ư²Ţşƾ¿ŌƅƒŸǎƻŢLĥȳijij„×ȉӹŻ"], + encodeOffsets: [ + [21261, 43062] + ] + } + }, { + type: "Feature", + id: "KWT", + properties: { + name: "Kuwait" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ǭχõȓ˔هשuȽАݟĆ؞߮֠é"], + encodeOffsets: [ + [49126, 30696] + ] + } + }, { + type: "Feature", + id: "LAO", + properties: { + name: "Laos" + }, + geometry: { + type: "Polygon", + coordinates: ["@@˚Ϝœ܆ڹܸ¿ٕࠦھٍÎǛ̉ӯyʣƨࢯԅoݬȸࢮ֧ž³ԎηʸǴ̲ܐնøȡ҄wŵ०ѦŬӮڏϖޅਚO͚ܹ՝ɗʉ̟৔ԉۦ঳Ռ݋َ׏ɄץƵ࠿ݕ̲ϝ׃ۙ͢"], + encodeOffsets: [ + [107745, 14616] + ] + } + }, { + type: "Feature", + id: "LBN", + properties: { + name: "Lebanon" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɣ[ýƥ˫D̘ۄмעfˆϘ§Ɛͣқ̓ȷҟ"], + encodeOffsets: [ + [36681, 34077] + ] + } + }, { + type: "Feature", + id: "LBR", + properties: { + name: "Liberia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɗQࡽАޅٖҢ֣ըȪː¬ʔϜҘϺϺǶnɖĨΘԧÇ͵ǐdzʂIǢ͸ʄsŸʓĎНǽύʖɱˊÇΤΙ~ͧăĿÝە"], + encodeOffsets: [ + [-7897, 4470] + ] + } + }, { + type: "Feature", + id: "LBY", + properties: { + name: "Libya" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ק̷ҿҤ೧βρՄڑϸϻƷ̗ҶήӹؔͬΘñՈńҠÓϦƨۈ¯϶˕ݐШȜðΠėΒ־͔ʶːЦʌ´٦দ́ΜðۮƓ૞ϓЀݛݮǍஆΙࣆйЦɔЖϮț٠˂ФЀׂŘ଒ǣ˺ϑ̺Iˌƛ࠴ıȲˣ̣ЕżΫɏԯʦڱ@Ჳ@ᶵ@့ॱGYΙ‧ྐ‧ྒࡓҟ"], + encodeOffsets: [ + [15208, 23412] + ] + } + }, { + type: "Feature", + id: "LKA", + properties: { + name: "Sri Lanka" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ų࢓ΙʇܵȓЍڜƫீϠ഼׆ұϺסО࢓"], + encodeOffsets: [ + [83751, 7704] + ] + } + }, { + type: "Feature", + id: "LSO", + properties: { + name: "Lesotho" + }, + geometry: { + type: "Polygon", + coordinates: ["@@̆ʩʳУƛ˛ҳſƹˍ̛ċؿ٨҄ՐҖ͢ϼǠξʵ"], + encodeOffsets: [ + [29674, -29650] + ] + } + }, { + type: "Feature", + id: "LTU", + properties: { + name: "Lithuania" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ãɊĚɲχƄࢡƨDZ۸२ʴඬÁࠜĊŞǩ҂Ã߲СĀϓۏˏșӃ࣯̓߻NȫʶљĜ"], + encodeOffsets: [ + [23277, 55632] + ] + } + }, { + type: "Feature", + id: "LUX", + properties: { + name: "Luxembourg" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ǘȏ³ρʍiȉòĞҼɖŽ"], + encodeOffsets: [ + [6189, 51332] + ] + } + }, { + type: "Feature", + id: "LVA", + properties: { + name: "Latvia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@†نЮՆߊ˼ڜعڪhNJ٤ܐƪςĻܢ̷ۚCКȕîС˒ӷ͕ࣗԛƙ߱ТҁÄŝǪࠛĉණÂ१ʳ"], + encodeOffsets: [ + [21562, 57376] + ] + } + }, { + type: "Feature", + id: "MAR", + properties: { + name: "Morocco" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ԒΥߜÎࢊȃκU͂՟ºԝ̄ࢱɜDZƷ͛ષƙϝ̵ӡñ—ثঙ͍ͩсۍɥ࠻ŷഫاRহŷ@@@p҉Ա˓ȑϡ@̥Ŋ۹ě˛ٻʿÕЁ੕ୟ࣡ˣୋ΅ϗĵ̡ቅãaD ϶͒ɮ˞ѪÃ˶̀פҴՖ˲ƊɞӬp҂̤Բ̪֔Ւ࡬f\\ц͔ްĢڎָтɠۮۮȿਸ਼͊ܢŔѶդ֨ࡈϦخΐ֘࢈˄ԪؤI"], + encodeOffsets: [ + [-5318, 36614] + ] + } + }, { + type: "Feature", + id: "MDA", + properties: { + name: "Moldova" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ȨŮ֒ĊؤʽΊϞɥÑ˵̪ƏŨΗ̊ɇÏűƾčɝ×ӷ|ĉŜǫãÒƭɱˍƥ˽ɁĝƯϦĘΪςӝԂˉΠʹʠʯĈ"], + encodeOffsets: [ + [27259, 49379] + ] + } + }, { + type: "Feature", + id: "MDG", + properties: { + name: "Madagascar" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɠΥȺ։Ɗঢ়ɒϽĉЗƩʙ˷ӰǁʝLjثõΥɵȗ¿܅ͧওб୅ԯཧ͑ୟϛইہȣܻΡӛɊڙ̜ɳѺÇݘ̑ڠùƮϰƢD˪Дِø՚șЈǃՌãޠ̊ҺŔՒмŒҶǤ̶Ʋτ\\ӐӎۖԮʦцŗάΦĵҪ׎fԐ˦ϔ̊ί"], + encodeOffsets: [ + [50733, -12769] + ] + } + }, { + type: "Feature", + id: "MEX", + properties: { + name: "Mexico" + }, + geometry: { + type: "Polygon", + coordinates: ["@@͙݅ƥÕ૷ąЧƤқʺЧǚٳ֎سȞӏ͢бࢾɝΐΙ݄ɾٚĎؼưՊƠՖ΂ȨӬè۸Ƣʖ֬ɚࢶȚݔ‡ԚîȬDZ…ЙҋԁȥԝƸƥűγɁٽɅɎǭcǃY̝ԓƳIJķPŭޥV޷AAӁϛC̺˫̶șĢǹƌ½s˷ઃEЙۅŢƽĭȟqʕ्ࣞџ˘ۇɖҷÓګ́чĉץɜؿDŽ޹ϬؿŠ्ϸ۱ВɃɤҹº࡯ˈΓϦࣗӊсՌȧЦ˪ĈđʈȖɔJ̄˱Ϙùͮ˭ъ݋࠴ࡋڀУԼܝ΄ƷȴŸԲѓȞӹФȽהҍæӣѸϿФ™ˀҍو̓٠^͔؇ͬ˫™ӑɴƇͿƔЕĆف̀΋خׁƒȡŸÓŎ˽Ƭ\\ǜթʮɇǴ̕Նё˨ޯʠρɸϿ²ѷКƒͶϡ̨ϑqƭΝ̱ƫJɛԞջӎРїɈ„ؚŵҖЏʺֿϒŏŇɃɖԭȰӷӦÖÚΊ³̸̼ŽϜ٩׶ӱɶ̱Հ̷վϳڦͿݲॖÞ੪ĞÿǑ౔СኀףဪPژ@DΌผ@̪̕јˇԀσ˨ѭȾҥѢʩۤʥՊڒۊhפͱфֹ̄ӯӸӏȂחɾЃپʹ׮ȁ͞|"], + encodeOffsets: [ + [-99471, 26491] + ] + } + }, { + type: "Feature", + id: "MKD", + properties: { + name: "Macedonia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ńOœǤӺżȊ˺¶ϴbтˏÒ։DžƒƑƥҕh͋ǿջõΑȴšήń˸"], + encodeOffsets: [ + [21085, 42860] + ] + } + }, { + type: "Feature", + id: "MLI", + properties: { + name: "Mali" + }, + geometry: { + type: "Polygon", + coordinates: ["@@˰ƶƘӶˊpזɻӄǖ͖ÇŴȈ⁚^ȈךƣļЛ⋈Л⋆౾dᬼᆳᬼᆳȨϿԺʉ϶ƋV՗ठĈFካҟ֗íԭݛƃ଩ï̳̗ա՟IȿLjҥš޻ΑDžʿٳϕŗɍΙǡНŔɱȳūֻڙۡp˳ɭΣÆӥ΋ůȝŁŽάʍĥơhƷʕ٭PɷŴʼnùʱʎ¬ʢĿİdzĉ˚Ǥɐ΅ΚijɴȇȂǙvȫş˕őɱǹΫäɷɈƓ„ɕőƅAµ̮žʾí̽͘ʀǓӔԺ"], + encodeOffsets: [ + [-12462, 14968] + ] + } + }, { + type: "Feature", + id: "MMR", + properties: { + name: "Myanmar" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ӫηץ›ϥࣥΟƳО݅ՔؗΈօ̭ܵ̃ƹȪу֖ڙĪҷ_ϵ͠ދң޵Сࡷăذʴ٠˯ӼæࣸͽѤ˛৔Ʊਗ਼εۢօуॕ׳ҽöԳȠ̂ਪǫ޾څॺļ̢ӭņ׭ۆÅڰ̊ŵj׾дȦęΤȐ˺Ž࢈ڂȑϐۘ¨ЦҪ۶}Ӕજ׆׸ƱçԬ̎ƸÛ͈ӮÚˮӵξȧ|ٟ“ۙߓۭijঽࢲƔȨޛՐǍʓۣز́ζƷ؞ʔ~΍յdẕӓȗ"], + encodeOffsets: [ + [101933, 20672] + ] + } + }, { + type: "Feature", + id: "MNE", + properties: { + name: "Montenegro" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÁǀηЯÊˋǫÞɽ˞εǖĢƜŬҦ˚ȜƾüɠƟŬśˠě͌ǧçïƽȋɧó"], + encodeOffsets: [ + [20277, 43521] + ] + } + }, { + type: "Feature", + id: "MNG", + properties: { + name: "Mongolia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ࢮƢ྄ܤ౬Єܴʳ࢚]֘Ͻ࠼‰ௐɁࠈגͿӶࢊࢊश΍ނįনɍLjؿஜΛߐƺਫ਼ŌࡆōࠖЗԚѕެT੒Ƌޜȼૈƒ௸פԌĝѰ˭ৌêХهק࠽ɐ΅ӈńࠤŽ٦̴ڬˏހוğ̗ڏĦ௟ŏןʅ؝։౱͙࠷ѽࡹǞҿúѳէˎ͓ƌˣי˯׽҇গ̑ఽ‹ഫ̇এҋϋʾ৭AఓԜࠥŰૣśჃȊऑmӱԀϣޠԱĢ৩ԼଅŞুƞ̡θ͖চׅڲன̀۷Ѿəז"], + encodeOffsets: [ + [89858, 50481] + ] + } + }, { + type: "Feature", + id: "MOZ", + properties: { + name: "Mozambique" + }, + geometry: { + type: "Polygon", + coordinates: ["@@لæ৞ʁɖńגt̚ʦԌaऀ͜ڞӤƊϕ“࠷ľ݅ಿƨЫʣ׷͙׍՗Եޏ͉ृСॉ͓ࣕƵוׯ΋ȗí׳ЌُǔӱZʣƪ¦{ࠗƋϷȤƝűΓΗ̗ۗ˳য়ҕρ̳ðΟɊÉíѵّRïϊůϖí̠ƬपɓװГஂࢬ॔ɜ؆ŶúĨӶƉʞ˜غǐ׌E੠ѥ˒ЏÔǹȼϳǰ۫gÅ̼āװᢈۘӚЕɴüͨɅ¸͵ǯϷØסոԱʲ׌ζǰíઊΙ؈̣˖̅]ɽદɾٔ"], + encodeOffsets: [ + [35390, -11796] + ] + } + }, { + type: "Feature", + id: "MRT", + properties: { + name: "Mauritania" + }, + geometry: { + type: "Polygon", + coordinates: ["@@և־ԗؤ֍ɞГʚҵUЧǽйð˽ˏïҐɺаŀߊģࠨĵкČмɑЎѵδǾˬᾔMǃ௎ȴќ߀øᒸ᪂©F౞Ṗ᎟౽cМ⋅М⋇ƤĻȇי⁙]ųȇ͕ÈӃǕוɼˉoƗӵ˯Ƶ"], + encodeOffsets: [ + [-12462, 14968] + ] + } + }, { + type: "Feature", + id: "MWI", + properties: { + name: "Malawi" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɽٓɾથ̆^̤˕Κ؇îઉεǯʱ׋շԲ×עǰϸ·ͶͧɆɳûәЖѵɔʮޮ˄̈LJۢǚڼƞɪɉ܌Ѕϐ࠘ƽǜɵ˶Ϲɾଡ"], + encodeOffsets: [ + [35390, -11796] + ] + } + }, { + type: "Feature", + id: "MYS", + properties: { + name: "Malaysia" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@àћֈĶ˞ΈȘýӸԓΜ֛¶֣ęϡĆ˿Öӻ̒ɵͤݑe˳׫Éߑخ঵ښįђӟ֚ś̡۠ҜĠؔȃΤƤƮۈρ"], + ["@@أ˹ܯƚॱ@̅ॗ͓̇љୟۅǵߑɾЕóөщ՛Òէǟַӆƕ֘˽ٮǀǜ܆άǂ৖Ǻ׾ڔЬՐϦѥǮ˺В¸՜œа٪אшڀͼHќыžιֆɻ۬ʧÑ֝͡¥ƮЧ"] + ], + encodeOffsets: [ + [ + [103502, 6354] + ], + [ + [121466, 4586] + ] + ] + } + }, { + type: "Feature", + id: "NAM", + properties: { + name: "Namibia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@رٌؖ͡ȃࠊȷ،˯ಒm৒ŅҞ͛Όѡۜѳ৘ǽՆۃࠐ»٢КdžԊƞհ}ԄϝŶÐ₮˜׌Е᎞ş໴΂یȒհµͨȍPéӁȍʭC՛͍ͣΎಕ̍سƒ{Ჽࠣ‡BយA᷋ݣѕҋÕՇDŽϗÔƗάͩɰГг"], + encodeOffsets: [ + [16738, -29262] + ] + } + }, { + type: "Feature", + id: "NCL", + properties: { + name: "New Caledonia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ېԵѨϭ͉ȫҥɪ׹ϚէѼ։פś˶β[Һ˹φ˷ˎɻ"], + encodeOffsets: [ + [169759, -21585] + ] + } + }, { + type: "Feature", + id: "NER", + properties: { + name: "Niger" + }, + geometry: { + type: "Polygon", + coordinates: ["@@nּॹȐОҿպœϤâТբ̴̘ପðݜƄîԮҠ֘Eኬஈϒᝪ࿸᮪ཾ೨αӀңר̸ȸಯ̾ɓ`ˋΔ˽ǻί͕ၻ«ધੳߋγૉΔ̵CեբmčЃʁµˋƻm֩ंȟ’ځҷٱʔҍ¸ʏşӯ~ӷΧѓq৯ѢЉȵѓb̿͆ࡅ̼ࣗıɕǻşӗʋ͹ÍݣٗӚ̟E˭ʗ"], + encodeOffsets: [ + [2207, 12227] + ] + } + }, { + type: "Feature", + id: "NGA", + properties: { + name: "Nigeria" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ࢍ̡͉¬͓ȉڥl҇Ղˡ؊שֆكYݍB¶തs՘ǂՊʶʴТԴėɨǔ͸ȍӾ˪ÎݤʌͺŠӘɖǼࣘIJࡆ̻̀ͅєaЊȶৰѡєrӸΨӰ}ʐŠҎ·ٲʓڂҸȠ‘֪ँƼnͬͯğƱ«˧۽ٱɛՙšѧDZȉǝי҅ΉŽыȋ͹ÿΓֽ˱ҽΊ͇aԃӭʑQЍ߷ɍש"], + encodeOffsets: [ + [8705, 4887] + ] + } + }, { + type: "Feature", + id: "NIC", + properties: { + name: "Nicaragua" + }, + geometry: { + type: "Polygon", + coordinates: ["@@̃ˆϽͺȁ˲Ο˄сϜĤžƒŵÚÒʾ”ŀȔŬRkЮȠrǬOǺɤʜǝĒľƺIJ̊ɴbǦĄQňȪĖ|ƜŹǚ›ȆńɄB̈ŌŜŖ˾iïă§ȉĐ̫ȗ˹ěͷυ®ɏtϙŹĉýΫÌɛǣɋ ɩźƏȩDZʛÈƓǦˉêȕʼnօɞųŇ"], + encodeOffsets: [ + [-87769, 11355] + ] + } + }, { + type: "Feature", + id: "NLD", + properties: { + name: "Netherlands" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ۦyǀ˳Ƚޓɇ́ԍ@ƘࢡҥȞՏπީǩ؛âѠɲ݀ఆଲΘ"], + encodeOffsets: [ + [6220, 54795] + ] + } + }, { + type: "Feature", + id: "NOR", + properties: { + name: "Norway" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@᥆ؙઍɣऄՅෛ͵ڵû΢לઃͰಫ˵Ы؝ߟωࣗȮ઱¥णѼԉɝԷ“ūփནƊɝҵ߭Hևױ࠿झಫ஁̨˹̇ͫ࠯bձ޿¾૟՞э˥ধֻۧυӛ֝Ԫဋঁ૫ȟ୏є̛ࣚˇ኶ޞզᕠ۶ဌࢂ໤୦፺ྴඦلᘼ੊ᇎπ൪­౮ۢ໖›ພǘ"], + ["@@ም΅๝Ȝ׆ɐԕˎეǚͮ̿ொȍ"], + ["@@᪖صᑟͥұأ݅ǁЍۡৣᅵԢނ̘ఽʐ࿕܂ٷڄᘎ̜Ң̋஦\\͊˼௾ˆ੖̋"], + ["@@࿮̏ఝҍ᝱ı៙ƖƫɴஹdँϬᣴɼ௞ȫࡘʤᑺȽ"] + ], + encodeOffsets: [ + [ + [28842, 72894] + ], + [ + [25318, 79723] + ], + [ + [18690, 81615] + ], + [ + [26059, 82338] + ] + ] + } + }, { + type: "Feature", + id: "NPL", + properties: { + name: "Nepal" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÝαŌՕĩͩ۩aয়Ȟ٭ĂӛђଷŊયҼ߉Ю߿͆͜޼ՒϠΒȪڪʳࡔշҾť˰ЕٶǓۀσौȕঔć"], + encodeOffsets: [ + [90236, 28546] + ] + } + }, { + type: "Feature", + id: "NZL", + properties: { + name: "New Zealand" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@Ȓ΋װ;ʐΡBΝ̹ϳչإїͷ̴З٭Yܗ̓ɣջӋࡗڇϓнʇޝlխˢࣱÐƗ̰Ҍذ੐ࠦժǀ׾͌ܜѰԎѦώظ͈ɆŰҶלϴȆΧ"], + ["@@،ࢫlָϜɯŲًڰ˛֨ãӒ͎юĭȯݗʯӫٛjɡʭþαūƻͅҏзֹ٭ͯƟɘΕŨӞ۔˟ҨࣛͲz̦؈̌ƚ٨Ÿլͻ֜vƪБΎڋݔΗת̸àҚұٺɑʂݡ"] + ], + encodeOffsets: [ + [ + [177173, -41901] + ], + [ + [178803, -37024] + ] + ] + } + }, { + type: "Feature", + id: "OMN", + properties: { + name: "Oman" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ֹ̻ϟªǩȧƉэļ֗ÿĻϯFԽ̻ćХȓǯԹP͡ɃJͻПɷҩĂ֗˳ϱ³˝טٿ൴ᠾ࠾֖၂ϩתv͸ʔΐFΆϞǒƩŞèմіHϖֵҸ̧؞ŋӼƳϜӕɨ˧̞ŃCȉ̩ԃƅɽΟˏ"], + ["@@ʼnƳDž˺ʔ˺ľñā΍"] + ], + encodeOffsets: [ + [ + [60274, 21621] + ], + [ + [57745, 26518] + ] + ] + } + }, { + type: "Feature", + id: "PAK", + properties: { + name: "Pakistan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@تϻʞ٥൨ͻ߹۷ऩůౣȲЫα̖݁̈֩ڴгܑӟ`׳ࠃࡇՃ࡝࢝ࢡউÚऑࢡռϗĪ٧ҾэǘܝᇛD֓֕؛Ɇʣ٭٘໻ǁിeஃŝ̈́ঊொѢéϰГƌw݊ߥφͷԔеѶඨѕࡀŲԈŅǞȂגóદĈ܎ҶӈشCĠɼٞŌ̴ý͢ʀ±ԌΦԖ՘Ɇͥ֊ߜɴ̢•͒мΜĩмȣΤӬμࣘǮ८ĮѐƺӨĦ"], + encodeOffsets: [ + [76962, 38025] + ] + } + }, { + type: "Feature", + id: "PAN", + properties: { + name: "Panama" + }, + geometry: { + type: "Polygon", + coordinates: ["@@˫ʎǵҒȺɢɅÎƿˤлɸοÁǝ̇ͻɁǽ‡ĉǩВҗɯŅŧŭϷ©ơԈŋƛˡ¸ǝ͸·ÈɓİέCǻĩŶªǖìǠƲŲIJǩŲK͸͘ö̠̝iDZͲ›ĀæɴȵЮÔΨɄԜǞ˺ʤҬ·‹ĉҶ…ώơ˜ʧ̈́ɵĹūȜӵǁʟ˓ÒŅС"], + encodeOffsets: [ + [-79750, 7398] + ] + } + }, { + type: "Feature", + id: "PER", + properties: { + name: "Peru" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɥљћɋࡅӘñΈရࡊທࣾ٫԰ΏۜƐʎ܅ાࠣ༄ߍီ΅Ϥ˃ؤٷպױͼ˖ϒПߢʼךڢՎIJΓʇȧx̭ΎâͼĝΚщӆΌDŽ֤ԦܶৠͨࣸࢠʾմŝٔɢĂ֒ЉˎЅϴɏӶࢣضĿҨɞ̤ƣԎð٠Ͻթࡣʤoрҁݳ œųۍlj॥ֱÓϻɉ̇ČғԕʍBΡɛƵΔݳҲԝDZί֐µ͆҃ݐuېӸÇ౧ϢĩӄƠܪടǷ˵£ןg܍͟пƮ̵ȕ˯β۹Ջ࣡"], + encodeOffsets: [ + [-71260, -18001] + ] + } + }, { + type: "Feature", + id: "PHL", + properties: { + name: "Philippines" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@Đ֏ºҽ˹ޑ̫ࡨϽэˎإʉϿ঩Ӧɿ؊ʰЎՑЈˁΑЃثҵƑʖ͢۾ՌʀҜ̈́̔ϝٔɰƎϒרv·ٰڼЋêхÐ̱"], + ["@@̟ˡˁՍ˃ʝԫ׈ǦɤɂɾĢԸҨ¸Ɖ֣جߺāߡ"], + ["@@ૣߕЬט؈԰Ԏ׊Ѱ࠲Ʈۅևҧѳֿ"], + ["@@Ԏʹ՘BgΗϳΣՕʧ‡ϸÒєŽА"], + ["@@ʀभ٫ɞj˭ȶԯЍȋ•עʧªƁԘӶãY͈ԣٜ߮mɴ̻"], + ["@@ɟܩέоѓ٘ܚ‰̡̈"], + ["@@ԮʉʶɖüɇƍΑ˼׻ɛۥӷ˥ƁڳȊڝѾġϊIJਾүăҙ˜ȫēϯٻЮ̵Ѵɍ̯՗ԊރůлȆ¨ΎˀɊʣȘŇ̡бӚűμߨͺˡĔೄ˜ހԘA"] + ], + encodeOffsets: [ + [ + [129410, 8617] + ], + [ + [126959, 10526] + ], + [ + [121349, 9540] + ], + [ + [124809, 12178] + ], + [ + [128515, 12455] + ], + [ + [124445, 13384] + ], + [ + [124234, 18949] + ] + ] + } + }, { + type: "Feature", + id: "PNG", + properties: { + name: "Papua New Guinea" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ɽčε͔ρՔǷ٘ŜĆĜʡʬȏРՑЈ˵ŝɽ"], + ["@@ѯçƃɽҟȱћȟѽBۏʔӑɺêʺݬũҠàŶЖŦrĆѽӐÜʂ˼Ҹ̚ġӸԌfǜƏgү˯ԡ"], + ["@@ݤտղࢻӖ„‘ω٬ƛʥǁࣀΝġʏ֋ÏȷɔܟĦࡕŴٷ՚ӉҦѧ݀ભπ܇ʇԡˣńإڇ˿һƖࢅ–aᩒaᩒภ׃༊ӓׄїҴхŸӵඔԱȲѽޛěȄ֕"], + ["@@ʿɡǁӸȝ͘ϝ˞ӍΪ؇ʚɺȮҒɻ˸ȁΜȫʹΛ͊ˏĶѧ"] + ], + encodeOffsets: [ + [ + [159622, -6983] + ], + [ + [155631, -5609] + ], + [ + [150725, -7565] + ], + [ + [156816, -4607] + ] + ] + } + }, { + type: "Feature", + id: "POL", + properties: { + name: "Poland" + }, + geometry: { + type: "Polygon", + coordinates: ["@@·՜à̂ȹ̧҆̚ɺɤȝђָʘ಼ϴ੒˴࠼ƙÚȱ߸Yਚħ໶^њěȬʵšωɸ͋KͯԋǡʸϳfϏцܻěɽзįރۥɒϗǿ¶ߙ͔šЇĒӹǵч̖Ήŕ³¼ϭаر¼ăˀֻĦűɑҗǨÀɴػòЉ˔"], + encodeOffsets: [ + [15378, 52334] + ] + } + }, { + type: "Feature", + id: "PRI", + properties: { + name: "Puerto Rico" + }, + geometry: { + type: "Polygon", + coordinates: ["@@јõưǕɋɃمLӫ‡·άŢŬیK"], + encodeOffsets: [ + [-67873, 18960] + ] + } + }, { + type: "Feature", + id: "PRK", + properties: { + name: "North Korea" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Şƥ͉ºη˵ʣ˷Ž׽ѣȅƫƧ̓ʝ֓ƏηɥηįġͰƋӈσŧȭΧÇץ¡͝ϛϑˆÁùСdžĵƿʙé‡ǀɑüɥƆɰφȤİõƶɆҒÅƎөĠЇɤۄբऒҌ־׮Ўˁܪ‹ſѺಚβͰҼժӹ"], + encodeOffsets: [ + [133776, 43413] + ] + } + }, { + type: "Feature", + id: "PRT", + properties: { + name: "Portugal" + }, + geometry: { + type: "Polygon", + coordinates: ["@@̦Ɉ΄ŬɂЫӺDƞłӪ‡ɼуϱɩYٽƍū‘Їγçʹԋɵտ̄ʡřɫ̵̿ê˥ͷɓѷŠџġŸڂÿԬϓþȩ͈äռͰ̨ÒͼǪԎkΤǙ̠™˲"], + encodeOffsets: [ + [-9251, 42886] + ] + } + }, { + type: "Feature", + id: "PRY", + properties: { + name: "Paraguay" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ͦ৖tҌЖ݌าʔޮ]޴їbʵʞҳÇଛࢲLJ΄ǐ֦ɩǀʣþޓİ͓̼›̀ƌ̢ƳAҥŕӻǑӛƍݏށ١ړƇऻŸࡑɮࠢ౨ťψࡽ͢ਅبۉŸ໵ൌ"], + encodeOffsets: [ + [-64189, -22783] + ] + } + }, { + type: "Feature", + id: "QAT", + properties: { + name: "Qatar" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ÇؔɨѲɰĜʬˁdӯǽӳɵÑʫǖ"], + encodeOffsets: [ + [52030, 25349] + ] + } + }, { + type: "Feature", + id: "ROU", + properties: { + name: "Romania" + }, + geometry: { + type: "Polygon", + coordinates: ["@@δǶԴġՠGϸȳ˺źبĄɄȠΠ@ʰćʺʟˊΟӞԁ€ρėΩưϥϒƹЂƊϠƟpɏПǹʯĀɻ৥ӳĖ̪ؑফțзɋ௽¬٥ƀ͙ÕʍΊƵƦȚƘȷŀ˃ȋөʔßΌԟȢĥˌҕͤڪǂԖ֮Њ֬ԢǮ"], + encodeOffsets: [ + [23256, 49032] + ] + } + }, { + type: "Feature", + id: "RUS", + properties: { + name: "Russia" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ࡌ๫కˤԫ்ࠌࡳyוُԒսٱƻ۸Ĥࠊħ࣢Țٌš૴ӯࠜôରަϮͭϴϐŠɔ։̆ߵuࠟΎࡑ"], + ["@@໵]ਙĨȒτ୊˚ࢢƧψƃęɱäɉ"], + ["@@֦Ƚțؐᗸű࿨޻࠭λ൛ēsࠑͳǩ޽~ٗ̊ૣʖȉθ࡟Ǝॗʼnҗ̎Ǽ̸৓ȥϚЃӉΣ@„Ꮪٛᔺ࠳ïԷ"], + ["@@ः©ƭˌੲΖ@ַ"], + ["@@ળ»@ָň–܈E௒ʉïŗࡽȩ"], + ["@@ౡMႣĤƧ¬ߘͪੀþஞ͏ĸə"], + ["@@ॿͩഉø༛ͨȪ˖༨ųᑔɗ"], + ["@@ډرᶽzඃȣမղҎ׀૎ǂᕞ™ᴬѽ"], + ["@@ӹóᩣŊɟώູɦūҒ࡮Ƕ…Ҟသܒޙĺ፨݆ɩϢሤѺ᪪բ᫠ǀ෴̸࿐Ŋאͩ֟ʻᲗз᢭Џᤙߝఫࠍ೉߱Ǡۥྎۏ"], + ["@@ɨгސȲឤYቈЧڬ̿ȽѧङʝᕅүفʟਬşఖɃݴDŽєաτɔഊƂ᧪ƑȴϽ↲ů´ٜᄼƥഄLബѷϮ՝ӹΙੌڋ೔Ϳ߸ࢦഖϙ෢ɦྼʵؤʀൖş؅ޮૐζ䢀ձܐӿᔲٛ₎DŽာƑ۪΍Ĺؙਜʇ૴Ǥ๰vཚǑཪĢะݛਪˎڷ՞ϐώᧆɻფºᝂБ୲ν@”MKઇσઝÖݶҁԄەϲɧĮΏɑɝ༧Ǿ᚝مݛĭ౽ן௛ԧ̱ϣய׊ᔗڇϣ̸ߵΫ૱Ř˓ց৙߽Šͻड़ȋő௣ޭ‹Ϋ۱Δα฽ѕ̅ॡభȳʥ࡟ே޳ׂ̳έ௬ҵለИ୘܀ԆªϾರȊຊ੒คࡺຢڢڮஆ৷ëԍۗᒉइۍਖᓧ˷ᑃටۚԧሙɕಝēÔ؊ಯŶ਩ЭᢵƠ᪏ʟᨩ࿛ủጝ೚ŁаՃࠄȅ՞оईÃௌऍ†܍ځ࠽ë্ϛഉ్௓˯ׇଙ঑ଇॻթӹ૩ӱՉYՇФૻؙſ˩ŝƦKѐіxŦ঴ɛܚܞ̒৶Ʃ֢ࠈ˾ऄ͚̮Ѵݲ൷ʛܯͧ౧Dͻ߄হװหˎ̵ࠖ̉Ԫ̿βԯࡐ̲݇షʢ૛uਯƱۛлҤȥXҩұˑݷࢻRσஅՍ৙̈́োéѯˮԋĞ௷ףેƑޛȻੑƌޫSԙіࠕИࡅŎ੝ŋߏƹ஛ΜLJـধɎށİवΎࢉࢉ΀ӵࠇב௏ɂ࠻Š֗Ͼ࢙^ܳʴ౫Ѓྃܣࢭơ͡çѽԤઍőΧΦחnjЙӠҩưிɍୃӜ҃ѯሟᒒੵٮ̮˂ᑋߍ߭³êҞઅ˺࢙ȱ˃ࢊມǺݯΑᑅ̳Чȹḭ̇ϫ˻؆ֹ߭ɓǀɭ߭ХസֿɁЉ୻˜ʓʟ੹Ѧ೯iࢻΟহͼᇡ׊ಽsჃࣳĿؗࡹӤڡउʖǡӝُ܊֫ذx՚֗ďѝѐƋϥӽ߿Ƒ࠳ࢁކߕĉ֣ࣼফԇ͹ƝɇωÌֿԚɿ†ՅȚʳΈ޵ǮԙƁƥƼଥЖఅƌ܃ƞĹıੱ܂य़̈́ܩӴؒƈۤ۰ҹͪఌ΄uȀݯƉ‚ώѠɼ߼ÖƄ˪ȅҪ΀ѰWʚఉ˚ӭUԯЀ١ƃ੩̐lǒ̗θڟ¤éʼɀǞ՝ӈࢋąʭ¦Ƀȑ̽”ȷ՞ȟ˨NJĀڴ‡͞Ȁʍɢ֥ƪ¼Ʋ΁ƴՃվǸɨĉЂࠑȨѱijšȼࢭɂˑӸíТЙȖάˊʝ޶װӞųƤक़ҬࢡЎᅢ੶ޮӠ͂єగּΆնݳش֢ܜ঍ग़ޢي౿֔ŬךڶüොͶࢀ̈൦ԕᘨȧṺो٤ЋÆ֓टѳ൏ɡ⏷ٔ؟Ńൌ؛ÂϵÆ࡫ઌʯڂɓňРԑΰ՘͈᎖Թ۾Ȳ֣ዦࠖޢµ޸̋Ӫ׀۫ԄЪԊءԶᚠˑӔҹ੡ĻNҳڌ˽ಜǼȶ՚ჶАᰪܞي£ࠣԙਬĕ׼˼༾xఢΐफ़ԏॖ֌ࢡӢѪˤ២ʫ୒ʿᴾॣ֚ѰࡡѺ{ǴৣĈˢЌ҅ټ}ː༄ݾրކزǒᕮɛǬұߕڽԺˋ˒חȏଵऒԧέ֕࿫஝०ŭ̢ͮऎɎɞжܮЎөӌϼֈࣿêȫҲڢࡈણۆຒ֦șװмnѴүͧ߷࣐Ƶϥඤͦლ¬༈ӏݛ۪ċࣆศǞ፾™ᆘŌہѮংւॲx࿎иᕠŐ˪ɲᕂþیȋሴҀ໲aɶδߤΨጤΈ෸˗ଥȷበŹ"], + ["@@ⵙ͕ໞીےĦقÃᒈӋʟͿ"], + ["@@૽ōݱÛśƏঙƑ࣫ȦӐʾል~࿞ƶ౨XǢɧӘȬߊƐఞǿ͗ŷ"], + ["@@ᆳĿᚉʎඅ͎٣׾଩ǔᔆָᆎȎ࿌чኬ߻ȹݯ"] + ], + encodeOffsets: [ + [ + [147096, 51966] + ], + [ + [23277, 55632] + ], + [ + [-179214, 68183] + ], + [ + [184320, 72533] + ], + [ + [-182982, 72595] + ], + [ + [147051, 74970] + ], + [ + [154350, 76887] + ], + [ + [148569, 77377] + ], + [ + [58917, 72418] + ], + [ + [109538, 78822] + ], + [ + [107598, 80187] + ], + [ + [52364, 82481] + ], + [ + [102339, 80775] + ] + ] + } + }, { + type: "Feature", + id: "RWA", + properties: { + name: "Rwanda" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ͬӃµӵʏŁѿÆʱӍԛàþҠŘތԄʎɺȰďԈʸ"], + encodeOffsets: [ + [31150, -1161] + ] + } + }, { + type: "Feature", + id: "ESH", + properties: { + name: "Western Sahara" + }, + geometry: { + type: "Polygon", + coordinates: ["@@oҊŸ@@ÉeNjEౝ᪁ª‚ᒷ޿÷ȳћDŽ்ᾓNǽ˫˜΢bCቆäĶ̢ΆϘˤୌୠ࣢Ђ੖ˀÖ˜ټۺĜ̦ʼnϢ@˔ȒԲ‚"], + encodeOffsets: [ + [-9005, 27772] + ] + } + }, { + type: "Feature", + id: "SAU", + properties: { + name: "Saudi Arabia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ʼnΪʩʨÝͲѡ̞҃۴ʁۆׇ׀ϑƐ֋ߠīא–ӾӕञϿ͠ґǨˡӖ°ȎɹѦʕȊ͝زԟڴѓ־лIžҦœ̌ļͲनƅζʶȪ̢ٚŚƒˮˤƜ࠷ࡀ၆фdžŴৢɩబיᛎၕ༠ãݠąȾЏתv͠ܥаȓƠִ̏Λ¼΍ċ˩ł˯ʎɽŐ˟ŲȵʬǕɶÒdž͍Žș࡙͐ᡌщǞDzϪש֕၁ᠽ࠽ᝑ͑޷ϙ׻ࢥϹƕɁˬ͏§߻ĎƷČॹmɫùΉɔɝЭĒΟρˋ"], + encodeOffsets: [ + [43807, 16741] + ] + } + }, { + type: "Feature", + id: "SDN", + properties: { + name: "Sudan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@śhdмĵ̀џͨĵĶبϳÌÍȇԍ©Ȭʕðԍңңл؅џđ۹Ӫͅǥđʓџǃ…ǥ࠵@řǦ†̡ƝɳîѝӬƟɲŗɱϵɏݣ˿ǁʳğå ̅ʎÃʼƌΔE΄ӛՀĩάZȰ̱ʜUӦǭ͖̍µĎ̰ɒΖħΐˢʴǫȞɞ԰ϨئܦÏ¥ ZΚॲH@း@Ὂ@ῼ@˔ࠗȁƳŪࡻ্̰͌ȷҠ̳ыӑأƏ˅ʳĉ֑α௿ĚͳƅܟͿࠟԓзέٛč΃Љɽʝ࢟Dij"], + encodeOffsets: [ + [34779, 9692] + ] + } + }, { + type: "Feature", + id: "SDS", + properties: { + name: "South Sudan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Xٽűʯѿq˷ӏԨÑюХƨͳϦșӼࣳ֫օԫԇԫϭסFگȟՕȊ΋ɭ݉֐ȥάҵDZϱÆɣƕϗĸԗۚƉˊعͪɅԌΕζ֟ѬS˘ҡͼ֯͠ʴĠ̀ǂɐݤɲ϶ŘƠɱўӫɴí̢ƞ…Śǥ࠶@†ǦѠDŽĒʔ͆ǦۺөѠĒм؆ҤҤïԎȫʖԎªÎȈϴËĵاĶѠͧĶ˿cлŜg"], + encodeOffsets: [ + [34779, 9692] + ] + } + }, { + type: "Feature", + id: "SEN", + properties: { + name: "Senegal" + }, + geometry: { + type: "Polygon", + coordinates: ["@@΍ٺн̚φDŽРמȦќ˾ːкïШǾҶVДʙ֎ɝԘأֈֽžԹǔӓ̾ɿî͗ʽŧ³қâÙģȃk׿ȲЛV༇–ɥħ˥‚ѻƋƏ٢ވkȬŞƮR̸ȘήǯκcζȌǝʐˡƙʻJͧȸˉ_ȍȥࣵy"], + encodeOffsets: [ + [-17114, 13922] + ] + } + }, { + type: "Feature", + id: "SLB", + properties: { + name: "Solomon Islands" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ɾ˿חN͉ԬԈȯǜ‰"], + ["@@͝mԧĎǫżÀͮֈƁ˜ǭƎə"], + ["@@ųƹحܰǫԈ˺@̠ڥʹЗ"], + ["@@–ǛڅΦҟ̠̿˪ŰĐϮȫېϭȢˉ"], + ["@@Ǘ³οȒ·Ί¨ƖԈΡͰ˛"] + ], + encodeOffsets: [ + [ + [166010, -10734] + ], + [ + [164713, -10109] + ], + [ + [165561, -9830] + ], + [ + [163713, -8537] + ], + [ + [161320, -7524] + ] + ] + } + }, { + type: "Feature", + id: "SLE", + properties: { + name: "Sierra Leone" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɧØͺѩ҈Ƨ̬Ĺت҆τĬɺƞǸɶpȜǂڦCɺ̛ǼˁʓƈɗṶɴ´ϹϹϛҗ«ʓȩˏ"], + encodeOffsets: [ + [-11713, 6949] + ] + } + }, { + type: "Feature", + id: "SLV", + properties: { + name: "El Salvador" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ġȡӡ^̡Ą΍ǘұÀʃǶ~Ů˾ɄǀĢ«IJȠ¾ʜëǸǙʪƇŒœτĴǤÑŘĝÏͳ"], + encodeOffsets: [ + [-89900, 13706] + ] + } + }, { + type: "Feature", + id: "-99", + properties: { + name: "Somaliland" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ϛԩד۫۹Mᩧা͍̜̳К̳ҨǾ̖̲҈˚ƹǒΏϜΗкGߊɌࣴĴ݌ʼиÆ̚ƶӎˆKaE΋Aࡑ@ѫ"], + encodeOffsets: [ + [50113, 9679] + ] + } + }, { + type: "Feature", + id: "SOM", + properties: { + name: "Somalia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ѼĎЊ˾͈FpɵýӧHѳǯ̣ʁࣥЙयԱ੷ܝ௷ܓवধ଩ࡁڹష࠯޳ٕँৱȗѷȍȣӽۚWᵤܾ॒ɰˆբfݠפબšᛜᡄה۬ϜԪ@ѬBࡒFΌLbːhϰŰ"], + encodeOffsets: [ + [50923, 11857] + ] + } + }, { + type: "Feature", + id: "SRB", + properties: { + name: "Republic of Serbia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ԡȡà΋Ӫʓ˄ȌȸĿșƗƶƥȷȏø̫Тγ͋ʿƗˋĞijƑšϳa˹µƒØĴĴĦȴšKǍƼƑ ŋƆƽÀšŠƯ±ś˧ȩÑèð͋Ǩ˟ĜūŜɟƠȢšŬЄЛ͔ɀτ̥Ë͔́ˉʈȱ͘٢ɚԾ™ҖͣĦˋ"], + encodeOffsets: [ + [21376, 46507] + ] + } + }, { + type: "Feature", + id: "SUR", + properties: { + name: "Suriname" + }, + geometry: { + type: "Polygon", + coordinates: ["@@৔ǙĞưڶÔࣚɥѩܟâֹͤӽƥίóϩɉΛӓDzЇđ͹öčʏƘǗ÷ǡҙèԡܴōӄˏBωؐƺѠ¯ȤԜɖƈݲ"], + encodeOffsets: [ + [-58518, 6117] + ] + } + }, { + type: "Feature", + id: "SVK", + properties: { + name: "Slovakia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@´»ΊŖш̕ӺǶЈđŢߚ͓ɷɓǏ͹dzđ࣑ʮ˟»ȟȡЁĿěÄХŽͭ}ãǙ۷Ļ̱ĠёɌċ̆äńŢȂόa˺ĔxþLj¢ÆȒȖ˜žưʢD"], + encodeOffsets: [ + [19306, 50685] + ] + } + }, { + type: "Feature", + id: "SVN", + properties: { + name: "Slovenia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ۜÝъȐܾtLjƘƘUǎ˳ڝɟć͹̇đHɻͣh˷ƎƷƙב†ȈúȫΨĞа"], + encodeOffsets: [ + [14138, 47626] + ] + } + }, { + type: "Feature", + id: "SWE", + properties: { + name: "Sweden" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ࠁוƀԥ೹ڭྱܡؓஃײףߦүޗॅ࢑ȝ͍තӋ޿৳ĆӅڗঃˉߐ۳॔ٓஐφӜּۨ˦ন՝ю½ૠղ߀࠰ä̧ͬ˺ಬஂࡀञֈײ߮GɞҶཔƉŬքԸ”૪Щ಼ֱv಑˴͛ฃʃ"], + encodeOffsets: [ + [22716, 67302] + ] + } + }, { + type: "Feature", + id: "SWZ", + properties: { + name: "Swaziland" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ǡύӭěԅҖS̄ɰ̀ĂʔʐÒшƵŰϕðω"], + encodeOffsets: [ + [32842, -27375] + ] + } + }, { + type: "Feature", + id: "SYR", + properties: { + name: "Syria" + }, + geometry: { + type: "Polygon", + coordinates: ["@@࿩ࣅऩͬgNŖŶ_ΈȸҠҜ̈́Əͤϗ¨ÿٞȶΌɤȀɤȀ°Ҹ˞Ǐऎɺ҂ƿۖFॴ̀Ґaक़žїԽҡȹĂؗͅ৫ᇵ࢓"], + encodeOffsets: [ + [39724, 34180] + ] + } + }, { + type: "Feature", + id: "TCD", + properties: { + name: "Chad" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ĎЄաnDզΓ̶δ૊ੴߌ¬ન͖ၼǼΰΓ˾_ˌ̽ɔȷರࡔҠ…ྑ…ྏ¦ ܥÐϧإɝԯǬȝˡʳĨΏɑΕč̯̎¶Ǯ͕Vӥ̲ʛYȯՏƛэͽ؉ࣹ߅ϳ߹¾ʁûĊ̏ѫ̋Σ͟੓͏ȽȐƓhƹɍۛÙƀɪ˅ׄşΐλƜӷӪǼІϦċʂÐҸSқކŒ֐É֐ͭՠ"], + encodeOffsets: [ + [14844, 13169] + ] + } + }, { + type: "Feature", + id: "TGO", + properties: { + name: "Togo" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ڱdzȇ̎ɡՔãкȆݴɁ̬ăڎD؎ΕѠÖˀ݂kŅѵʲʝ̈̋ŽЭǜǥኝȺׅ"], + encodeOffsets: [ + [1911, 6290] + ] + } + }, { + type: "Feature", + id: "THA", + properties: { + name: "Thailand" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ݭϬܗeŬڈ݉Káऋґ௯˙ݏÌ؋ն΀ދưܭҶӓԚĭѤѧ˝·ևĵßќۇςƣƭͧ͒ƝжҁӄПЌƏӳǃҲĠԾʚ߬ТࡸҤ޶͟ތ`϶ĩҸ֕ښȩф̄ƺ̮ܶ·ֆՓؘН݆ΠƴϦࣦצœӬθӔȘθʷ´ԍ֨ȷࢭpݫࢰԆʤƧӰzǜَ̊ÍٖڽÀࠥںܷ›܅˙ϛ޿ŦગDž՟ۧȤ১"], + encodeOffsets: [ + [105047, 12480] + ] + } + }, { + type: "Feature", + id: "TJK", + properties: { + name: "Tajikistan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@̭ʷࣳƖāӛ࣬Þਢ˗འŶɈާˠĐԜȓ‡͛ŴӍࡿBׁØԻϕύĉ̉ǯͩˠþ۸ʩ¢ĞʲғȐα̇ė͹Żūԇj˕ϩ˯nj؋ˑʱĺӀࡘǹض؟ȨɔφۮŸЌҬˌբ૲ȜǩϵŤɹΎv"], + encodeOffsets: [ + [72719, 41211] + ] + } + }, { + type: "Feature", + id: "TKM", + properties: { + name: "Turkmenistan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ñۼطŠॣݔڣĠगюׯþσƽ֙|ׯӓ݇NjƻרŪ࢞ٽ˶Ɏֺ֏¸Ȇ۾ߊȵ݈ˎؓԎʉӔڱɋď؛ʿհψ˨ॖǪ֨ɻךڅњ¤ॆ\\Əцܖ̂۾ӦଆѹĜڡ͐ǣࣦžˮƳаࡽ०ׇոЃ࢞Щ૤Ϋwԥʩ€Ѕɤſ̙۽NjǙڥӁʭڏŵǫϟهŏࡩ͈"], + encodeOffsets: [ + [62680, 36506] + ] + } + }, { + type: "Feature", + id: "TLS", + properties: { + name: "East Timor" + }, + geometry: { + type: "Polygon", + coordinates: ["@@IJȤܢȌז†ˀŀ͆Ľ̯ɫ࢕ο۳ʋeʬďǔ"], + encodeOffsets: [ + [127968, -9106] + ] + } + }, { + type: "Feature", + id: "TTO", + properties: { + name: "Trinidad and Tobago" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ӚŊǮ‡‘صۭġƯúʒɲiͪ"], + encodeOffsets: [ + [-63160, 11019] + ] + } + }, { + type: "Feature", + id: "TUN", + properties: { + name: "Tunisia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ΩພԭͺQȰۉԄóنԮҶȢۚƃߠǠќࣶͺךĵ}ы܊̲ÒljпЫMϱ̆ȽōܫփхDŽқѤaɄЍ͊ſ³٥Хʋʵˏֽ͓ĘΑïΟЧț"], + encodeOffsets: [ + [9710, 31035] + ] + } + }, { + type: "Feature", + id: "TUR", + properties: { + name: "Turkey" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@஺͗ঐżܤõলѬࣆ¢ߴЭƜ̑ăУزȻͨʕֻʇˀ५ǏʻҠڧЕƙ̏Ɋ঍ňίŽॗŽҏbॳ̿ەEҁǀऍɹ˝ǐ¯ҷɣǿɣǿ̱Ϡ͈͂ԟí۱ȖֿәౣĥڹҊࣟ†ȗΑׇij߻҄ࣻeӽ࠶ؗҰЦٸՓВठߨಒ’Μྀٔŏ৞հ঒ʄർlุף"], + ["@@۫ҏ˃Ϻ\\ǦȦĦʺՂХɞࡦ˄ܤőĴ͓ܼ˓Ƶȵি±Ωʷ"] + ], + encodeOffsets: [ + [ + [37800, 42328] + ], + [ + [27845, 41668] + ] + ] + } + }, { + type: "Feature", + id: "TZA", + properties: { + name: "United Republic of Tanzania" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƚġᵂႋÌӣ஼࠿ϱਙ¸Ӊՠ̩~ɓɳԓ¶ʭÇГ̌Ճΐ̰ࠡǿڝӣࣿ͛ԋb̙ʥבsɕŃঢ়ʂكåɽଢ˵ϺǛɶࠗƾӉʨՕƘͯƘΗɈґ੖ӣҺǗӤČѨƯޞΎ ̨̦͜ѬȺǮS˘ǷȐ·ͨʐł¶Ӷͫӄ̎Ķऄ[ႎà"], + encodeOffsets: [ + [34718, -972] + ] + } + }, { + type: "Feature", + id: "UGA", + properties: { + name: "Uganda" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ः\\̍ĵԇʷȯĐPوȜ͎²ڬǰϸ͎Ѭ͔ɠ˒̘͵Ŗ¼চΌɮՖȉڰȠעEԬϮЊ׍İсτ९̧ؓЯ֋ʉͽTࢹႍß"], + encodeOffsets: [ + [32631, -1052] + ] + } + }, { + type: "Feature", + id: "UKR", + properties: { + name: "Ukraine" + }, + geometry: { + type: "Polygon", + coordinates: ["@@̾“ɄȒʮ¥ࢌĆ՞Ӈȿǝêʻڠ£̘ηkǑ੪̏٢Ƅ԰ϿӮVఊ˙XʙͿѯȆҩƃ˩߻Õџɻύڡã֑˕޽«ܣ̻¸ԹЪȭࡨ¼Ǐ̛ँơଛӟұǠȄЂࣽʘƨLjߪ˪ʑȔಯɆË̼ީĻ̷ҧٱةϟƠЁƉϑƺɂĞƦ˾ɲˎÑƮǬäĊśӸ{ɞØƽĎÐŲ̉ɈŧΘ̩ƐÒ˶ϝɦΉŽأʾ֑ĉȧŭΟ@Ƀȟاă˹ŹϷȴ՟HԳĢγǵÍɤұɮǐͺɸɔȀµɑϘބۦиİĜɾхܼДҢɪٲnࡖßबȫڎi͂ŧ̀Ʀɚȝݸ¢ͮąÄцʶȂܞº"], + encodeOffsets: [ + [32549, 53353] + ] + } + }, { + type: "Feature", + id: "URY", + properties: { + name: "Uruguay" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ղĚࡆٯ̺|ࡺ՟ڈҫӠֱχЉɸӇεՇॉұاǚғěޥΰ֫ԟҬÞլǾȈS࠸ɤࡺȾڦ"], + encodeOffsets: [ + [-59008, -30941] + ] + } + }, { + type: "Feature", + id: "USA", + properties: { + name: "United States of America" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ũƕȽŤ|ɾƓ̨¦ĤƤƎÍǔ¸þÜe͐ƙƬñƌőɊ̍q¯͟ǵˏſ"], + ["@@˭ÑƟǮīèQÀĈî̘āɘŹëĵ"], + ["@@ĝ҉|Úĸа•"], + ["@@­µÓŻˆŃȒ’ɤŚêÃʐ˥"], + ["@@ıĉ˱ƴªÖŸĈȘijȝ"], + ["@@Ƭңʼƛז½࡬ƅࠂʹڼŊਖɓ˞Tݨʄ߂̧ࠒ͗ں˩ٶˏĈəȢĉ½ĉɦǎĔ¦ȣǜƅɴ@ŬĹĽƫ࢖ЁǶށǚܳʗӹЁҥȁ̍mēĦť˸Ɓɂ@ঊ҆ࡾƀસмfĐ÷ʰƉǒϜƆࠜHޘAˎ͞ŀàࢶϜƸ౦N໾BĎȺː¦Φž̖Ϣʲٺٚي˨ə֜ƜώʏAଧռӅƢ˝࣋Пࡷ̃ࢱʝѻӿƛȋSѽˤѽΒsė̬ʦȇãʇ֥ƋЗhةƥλ¥ӥ¥۫ʏఀǂʠǃ୳ʥ՗C|ĺʭɷʚǹ׽ؑ٧×Ɏȁª˟ɀǪҍȼƭ^ͅˏ͛ҿڡûʺֲѕ͎įۦljεǴՑևƀׂ˓˜ߛʊÍĖ̃ŠࡁՕدࢇʝցӱнÁэ̱ţ˭इձӁЍЅӽŻׯƪ׍ˬܗώשLεЊঅ֥—͛ȿԡʣŃЯĺƁς͋ȖѻܢϹٞű͢Ǥ֐ɽҦٻ۲͟źࡑϡƭ¦СϼՃȺोŁݗĤٙÍΏſƲɟaͽǴǓLJō̵Ů́ǃ؍€طѺܻĿ؏ȚԹÏۻȝއح࠳γҝБȕϗUׅ¨ЕDŽ˹͝{׭ȂٽʺɽЄȁטӷӐ̃ӰуֺףͲۉgՉڑۣʦѡʪȽҦ˧Ѯӿτїˈ̩̖ป@C΋ڗ@ဩOቿפ౓ТĀǒ੩ĝॕÝƙіխӚϻĴğʌһ¦̝ɪޭĊɉƌĹҢࠁࡊ۩ୠˆȚχˤٯ۴řۆ҃ҞȀۢ…ܜˍ٢͠ߊĸނĺނƱૼˇܘʓ϶ĸǐ௒˷҂ߋȺɜƇې˷ێᛸ@᠂@ࠜ@ᢢ@៚@ᡀ@ᡄ@᭰@ᮞBაAF͔˴J"], + ["@@࠽͋ѕɐŽЀބ̘҆Ÿ֐ÉΤʻܫЍ"], + ["@@ԧŽսƾԛɮࠦƞښùĂ͑"], + ["@@԰DžԾĒڸɛ࠲őéĝُDZٕǾ͋Ʋݍµȧôº̈́"], + ["@@؊ϛώnjහ»¹ȕ౾ƛࡨČᄚ˅ྤā٨ʼn૦Ǝౢʧࣲŝ@@MᷱIⷍࠠ{ࠌɵהρݜցࠈҺࡈ˖Ҁѡ֤·ޒϙՂ׽࡮य़ේ՗xՋұЙҥ͂ݍˌʃܺએںҍߎ߯Ä೷rটʌ჉ࢎߩDŽ฽̜୑í࿻ϬৃΨटǯǦ׏ҫÁঁǫ݉˱झdzťӶϚࠚࣀʶɱɂੱҵֵ֑௅ױؚСߏ׿ࣗΗࡁʱȻωಽѡ˅ϿছΫֽÞ޷ɻ࡝˹ۧ˫෹ʉſƘऀϾࠔʸࣆҠਬĨвΈ୘ԊȈǚب̒ƢْђӸॹʫ˓Ơҕ̧շюɧ̝̽м࠿ͳԩBïԄƲ̮ե̚થLJ܁ЀַȬIӈ٩Ϊ͘ӘۆҸ̚њںÖ־ƇڴМ؎ï٘ʼƻϨҹưج͖ԩWࢻǽʯȃڏȄஏĥ௷ȬΛ͸੟Ӧ୾ΘመШ۔@ŕнᄢŽڽԶਕ͌ױр߫ΨଽˈҺѲ๰‚ਗ਼ϦȨФ࡬ЎࠊĪཪώޜÉಐ҄ౚǭ"] + ], + encodeOffsets: [ + [ + [-159275, 19542] + ], + [ + [-159825, 21140] + ], + [ + [-160520, 21686] + ], + [ + [-161436, 21834] + ], + [ + [-163169, 22510] + ], + [ + [-97093, 50575] + ], + [ + [-156678, 58487] + ], + [ + [-169553, 61348] + ], + [ + [-175853, 65314] + ], + [ + [-158789, 72856] + ] + ] + } + }, { + type: "Feature", + id: "UZB", + properties: { + name: "Uzbekistan" + }, + geometry: { + type: "Polygon", + coordinates: ["@@xԦૣά࢝ЪշЄ॥׈Яࡾ˭ƴࣥ͏ǤěڢଅѺ۽ӥܕ́Ɛхॅ[ᶾᓘӺƾïದ׻یͅߤݵঢŪ෸à৔ؗÙࡅЦMǢۍ੬ɲЉ̺Lπ׺૎הӖƺʠĉ۵խئ́ײȾ়ѷ੽ٕĊ΍uţɺǪ϶૱țˋաЋҫۭ ɓυؠȧǺصҿࡗهǰҳN"], + encodeOffsets: [ + [68116, 38260] + ] + } + }, { + type: "Feature", + id: "VEN", + properties: { + name: "Venezuela" + }, + geometry: { + type: "Polygon", + coordinates: ["@@yȣӱĭ˜ϡYѭυӥ͆ڙδÆȌ؈ʻ̒§َਸ਼΀řІ̎ˆ̞ןל_մҵ˧ݮQ࣌ĔӖϕٞĻҼʾXɄਨ¼৖\\܉ʛ˼Їڦ×ِЯƆڧѬn͢ȣڕӱó̫˾̷ȽƽԫƉjϱɫɱّ֪Őʁ̭͍ऱ̽׿Žʏȣڛɀثņƿýϔɑ‘֝ŜՉ܆ï°ǭ׷ʅĭΣΉƏسȝNjʱٷÅҧѼʯ࠺ɟ̧̌Ȅюм…ȊʅʠǛ֒à׼Ȉ˰ƲҎ̓Ơӏĩ®ͻęסܢӥńઉăȧ̊ȷê‡ǬĴ̶áͺȃȂŅϮѡÈɸӮĺ׶ʔ̸͘ʌɈрդƖ"], + encodeOffsets: [ + [-73043, 12059] + ] + } + }, { + type: "Feature", + id: "VNM", + properties: { + name: "Vietnam" + }, + geometry: { + type: "Polygon", + coordinates: ["@@૭ܗ۫ߍȁ׍٠ࢭ޺ળނԱԞګϪ།ŕ๓۫փ१եۇ۫਷ޱ̧ՠʀ֬دӌܬ͸ࢦÔσԚප٨ļ৖ț֖ƶࡀɃצٍאՋ݌ۥ঴৓Ԋʊ̠՞ɘ͙ܺਙPϕކӭڐҊȴڢIࠈĬܒ҄К̿ސƵƃӛАͿࡎɓ"], + encodeOffsets: [ + [110644, 22070] + ] + } + }, { + type: "Feature", + id: "VUT", + properties: { + name: "Vanuatu" + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ˣō˭ςŒɤՆӗ"], + ["@@ƌڱɥŀǩ­ťɴi٢Дʵ"] + ], + encodeOffsets: [ + [ + [171874, -16861] + ], + [ + [171119, -15292] + ] + ] + } + }, { + type: "Feature", + id: "PSE", + properties: { + name: "West Bank" + }, + geometry: { + type: "Polygon", + coordinates: ["@@@ԣŭʙЃŕ˜ɜɌŚɁĦǬ̤֔ś"], + encodeOffsets: [ + [36399, 33172] + ] + } + }, { + type: "Feature", + id: "YEM", + properties: { + name: "Yemen" + }, + geometry: { + type: "Polygon", + coordinates: ["@@؉ɥNjύo˹࠷Οഇϻݩףυ±ʥºӭΑ՗lj۷©ɃµǿɛəÕŻɇеlˍœ׉¨ɓӬzҠƍʜǑتʋΊǚ¤đϨĸNJ™ξςˌđΠɞЮΊɓɬúॺnƸċ߼č͐¨ɂ˫ϺƖ׼ࢦ޸Ϛᝒ͒ڀ൳˞ח"], + encodeOffsets: [ + [54384, 17051] + ] + } + }, { + type: "Feature", + id: "ZAF", + properties: { + name: "South Africa" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ǏŧΣяɻћӇ׻ोࢁףԋًϣ࢛͙ѓ«ŇɷԛŰеDž࣫NJԙĹΏ¬ࡿͩܓƃԱͅϡoΣ̚˳fαϒŸśŏɦLӰ˙֞˔ƴs٤ս޼х܈AF׽તДдͪɯƘΫϘÓՈǃҌÖݤіB᷌ɨűӾߙûԟȈ̏׼ĒрϒЊʨȶДЦȚΠķВɽۂ£՞ȜĐʾƨДҚäʨ͂˪֔ݮغஒؤ΂UОƛ˲Ķ҂ċД஁ɔׯƫऩî̟чƶʏÑāʓɯ̿T̃ԆҕӮĜǢώْQȿؑıۥɑϛֵщ", "@@νʶϻǟҕ҃͡Տـ٧̜ČƺˎҴƀƜ˜ʴФ̅ʪ"], + encodeOffsets: [ + [32278, -29959], + [29674, -29650] + ] + } + }, { + type: "Feature", + id: "ZMB", + properties: { + name: "Zambia" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ІϏɊ܋ƝɩǙڻLjۡ˃̇ʭޭѶɓᢇۗĂׯٍřӍͯĹ̛̅ßܵۓҭխ˳o˗ĬऱĠƯÚOêͧȎկ¶ۋȑչԾ֣یžᦶშYí̂Ű̀ƧЀĪТėʺ̂q¶ʽϾrՖûˬϡڨŝԤˆȌѯ٠ş̴ΧΈҥ٠Që࣠ɱƳח͞ɧƬļࡈƬসȉψʈ՚ɤĶ଀ƚͦđΘɇͰƗՖƗӊʧ"], + encodeOffsets: [ + [33546, -9452] + ] + } + }, { + type: "Feature", + id: "ZWE", + properties: { + name: "Zimbabwe" + }, + geometry: { + type: "Polygon", + coordinates: ["@@ҁČ˱ĵНƜ΁VՙϞٯźʙՒC̒έĞ्ई˃ӢǛƮ͓ڤलğ˘ī˴pҮծܶ۔̜àĺ̆ӎͰَŚÆ̻۬hϴǯǺȻАÓѦˑF੟Ǐ׋—عƊʝħӵŵùɛ؅ࢫ॓"], + encodeOffsets: [ + [31941, -22785] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/xiang_gang_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "8100", + properties: { + name: "香港", + cp: [114.2784, 22.3057], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@™@}ScTʟ@cWuJÁ–]„l¦RLj¼BĄà˜ ŽH@TOHCTDDDHDNAT@PEHDDNJLX@BABALHFF@DKHADBBLDHHFBLEJB@GDBBFBADDB@@KFAFBBJJA@BB@@FFDDADFF@FADDDBJC@AFBD@@DDD@DAA@D@DB@DHHBFJBBFEHDFAN@DGDC@DLCBDDCFDlAFBFCBEF@BC@GDAB@FD@DZJ‚X´HĐMja@Ý`p_PCZ@lLnRGSDMFK|a\\Y}­ƒ§™Mën"], + encodeOffsets: [ + [117078, 22678] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/xin_jiang_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "6528", + properties: { + name: "巴音郭楞蒙古自治州", + cp: [88.1653, 39.6002], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@˜@ÈÒĊanwŎV„™Ȯ¦ͪŃĢ„ÜōȂçČéƐżLɆóĊ‚ĊaʊŁ±¯²Um»ˌmÈ»V™ʠţWÑůǓ郙ôƑƒğÆīŎī@Ƿ™wô™˺LÞ¯ƨVǪуšĢ™ȘV°wĢŽôk°¯ƒ»΀@Ȃ»ĸŽǔ@΀ƒ͔ôôLɆó̐ÝɜLɲōͪƒƨóŤK@ī@IU܃ÛmȻţǩÝ˹ÛljťǓǫō@Ɲ²¯VçōKͿŁΗÇţ»ƽ™ɅƑLÓŏÅÅɱV@ÝĊU¯ÑĊĭÞLšÞŎJ±̃XȣˌōlƒUÈ¯ŎKÆƅ°™XÑܱnŗġV¯™óaUƒƧUōŁ„Ñ™±„çɲ¥lĉkğ°ƒk¥˜ƒnğţL¯ÝÝUƽĬ΁lķ°@„ō„XÿݯV»ŹLʉÞɱŤĉó°ÝJ™¦ÝKÝ£ţܙÈĉ@ƒxǩUċƑ@ky͓¹™`U²ĉVġ»ğa¯¥ť@ĉ™‚ó@ŻÛÛJƒw¯nó¯ġWƽʩķÝɛwĉĕݼȭÞķō@ó£Å΀ƑŽ¯ôȯÞ¯Ȱ™ÆōèĉXǼó@ݚnºƒĸ„ÞVƜĸȚUʶõˀĵĖɱŎÝĖVࢰӒѢ°˘nϚVˌ™ÈmɼĵŦW¤öʊõʔ@°ÈXVŽ™ènŎȁb¯ǫĉ„±Èğ`ġwōÔğ»mVVŽ„Ý¥ó@™ĸķô@ššbX„ĶmV²²`Þ_˜˜ɴbͪÈ°„ÞWĸÈŌmބškɲŽÈUÆ»n¼ǬVķĸźô¯°n¦ɄǜÈ"], + encodeOffsets: [ + [86986, 44534] + ] + } + }, { + type: "Feature", + id: "6532", + properties: { + name: "和田地区", + cp: [81.167, 36.9855], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƨ¥šèź٨ΘƑᩄbUࢯÞĕɲōĶĕöʿVʵķșUƛƒÝ„ķm¹Þ™ô@È»ĊWŎçšÅ°ȯȰÝ°óƒÆͿĉ»̽çnƒmɱĵƧºóU™™ƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@у™óK@™ÇaÝXğţxĉČǫķê¯K@уaŹ„ƑKƒ¼¯Vóaónġw™óÞéU™ġbóĉğÇl¹™aUóğKW„Vůn›ÇŋƑ›ķnʇ»óxĉw™çÇ°Åw™°ċ„XŽ™„ób±ƒkÈÇJ—ƒm²ţx@ÒݎšŦǺn„ó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºƒzÈÜmnxmx²ĖmҚbnŽƧêUºĊêÆVóĖóUĉ¼ÅĬƑ°ɆƆŻŚlłÞLš¼nĠƒ¼@ޙšÞź@ŎÞ°VšɄɴжϼِ͈Ŏ„"], + encodeOffsets: [ + [81293, 39764] + ] + } + }, { + type: "Feature", + id: "6522", + properties: { + name: "哈密地区", + cp: [93.77930000000001, 42.9236], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@WnŐÆĶLĢ¦ţºź„lxÅĸƽŚ‚Ʉ—Į˜è@ô²ÞUĔƐńV°¯ĸX¦Ɛm̐bƒ»Ɇa΀šĢ™ƐLˤ™ȘÑnƒІljĸÿn¯ĶaŎ¯ĢĕȘ¯°΂œla¯¥™ǕǔwˤӱlťО̻nŻmɃĕċţUw°WUóƨÅţķ°ýV±óÅǓéʉ¯ƽŁƒéōǖȁÝƏůǕw˹ǫȗǓƧǕVý™é@ĬţLƧôͩ„ɱŎɛK̏ÞɅôóK@²@°ōؚ¼lŦ¯ŰóƜÛlV¼ķ¼ƒ°kȰ™Ű„ĠƒǬ™ŚÝŎmĖ`@ÇÜn„"], + encodeOffsets: [ + [93387, 44539] + ] + } + }, { + type: "Feature", + id: "6529", + properties: { + name: "阿克苏地区", + cp: [82.97969999999999, 41.0229], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VƚxˌŎÞŎƒ°n„ȂÒ°²VĊ¯VğƾˍǬƨÞÞKÈÞĊVźôɆÞĢèŌôWČ²ŤVÞĸʶbl‚¯ôn_VÆĸlmÞnVź_ĸ¼Ȯmǖ„šéĸW°°„ĸJ„kʠ¼Æw°¤ÈƒlxɆzČºĶI²ÆǔUš°ô@Þ¦‚ƒUnUĠ¼ŎÓĢxĠ_²ÇĊƒǬ°ŽȂamōšçUÇW@¯öʓõʉX£ĶťnɻšÇUˋmϙ¯˗ӑѡᩃaΗƒœɜ°xWƴUxɃÒˣ¤Ʌwğ„ʉōóÝŹ±°ȗ@¯„ƃ²¼", "@@ō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘnIÇŃÛÝĊÑĠƏ"], + encodeOffsets: [ + [80022, 41294], + [83914, 41474] + ] + } + }, { + type: "Feature", + id: "6543", + properties: { + name: "阿勒泰地区", + cp: [88.2971, 47.0929], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ɲˣĊIÈ¥‚ÅU±Ċýkō°ƒĉƽó»ĶƽXóʵʵ™ȯƑÅȁɅ¯ĉ@ÇሗK֛@@ˤV֜ʵрƒǬVĸƑŎ@ƆϯÑóŽķ@ʇ»ķ¦έmlÈĸĊX¼WźÛÞÝѸ‚ĢČþ„ĀĊôάVö¼ĊUƨ°°èŎČUÜƐóôVôôŽ²êȘlˌç°`n²ǬŽĊaš™ƒÛ°±kğmm»š@°ÝɆÛÅÇVaݍVm͔ğôÝÈb‚„@„ƒ™n¯š™ÜUĢÑĊ@źīżWŤÈǖWôŁÆI²ÓƨL@ŽĊX„mmÑÆ»ȰÑkƒĶō@ý°m—¯"], + encodeOffsets: [ + [92656, 48460] + ] + } + }, { + type: "Feature", + id: "6531", + properties: { + name: "喀什地区", + cp: [77.16800000000001, 37.8534], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Č@°ƒĠ„ôÓô@Ŏĉ@Ƴĸ@Ť£ĢlVôWVóřXĉŤêÞ@ƐÒĢÑlèÈV@šĠIk°ÆŘ@ÈÈĀ@ǶťÒğ@š„@ÒĉlŻ_@šƧĖÅĬōÆ@bźÞnƒƒlVœÝĬšWƼʇ„ƒÝÅ@ÇÅÈwWóĉ±ğz‚ĬČƨƂÝIĉݯbÇÑĉƒ¯ʈV°xUŰĊ¤ƪ_ôÓɚI@lȚXȮ™ŎlɴȘ՘š„¦ɲÆʈ_ɴŽźŽôÞʊŎĠƒɆxˤ£ɄÑVwXƳ¯w›ɛŹ٧™çƧ¦ōƒُ͇еϻɃɳU™Ý¯@ōÝŹš™@݄»mğ™»ÝKkŁżřɅƅƒ¯ÆīĊ»ôVôĕÅUĉéV¹ƨém™anѱĕnwmwnÇۄyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzƒŽ„ômxȗÿƿI@þÅČÝKÝ°@¼ÈVºš@ÅĢšÆUċłn„ÝÆǕČĵJm£ÝJ¦@ĊƒxV°ƏLċ¼ǩ™@™m@ÅĢómÇÆğ¹Çš™ÆšĖÞKšx„wô¦ÆÑÆL²ÆƾŽU„Ž±ŚÅŻĖ@ĬŤÈñ„@ǔÇx„Èǃ", "@@VÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁVé"], + encodeOffsets: [ + [76624, 39196], + [81507, 40877] + ] + } + }, { + type: "Feature", + id: "6542", + properties: { + name: "塔城地区", + cp: [86.6272, 45.8514], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ήnĸ¥ʈ¼ĸ@ôϰÒ@ƅƒōUķƑǫʶпU֛܃LګK@΋ĸ@Æ£ÞġÅĠċšLV݄»™@Å»Ýnm¯š»nŻĊ@nķŃ@¯ómóÛÝǟ¯aÝóȭ¥ƒšōUmxĉbÇї@›bUº¯X¯ÆƧbVÒĉnǕw¯°ƑŽV„—ŽÇ@kx±Uƒšɱn™ŽÅKƒ„¯ƒĠǠU°ɜL@°ƒxnĬ‚ĀŋŎÇLƒŽğšϱÞέƜkôÅĀǕłƒĸĊŤUŰĢ°„¦ȂϰÜɨ°x@°żǠÆƈČVĠ»ČL°ÇšbĊÑ̐óÞlĶwބɆVÞwǬxǪţȼÜLŐĶˢ@", "@@óKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°ɜÞʊĠğŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒašƒċƨbš™Vğ—w›ġ¯@Uōa™ĉÝJğÑÆŎkŎÞĀlźƒ¦"], + encodeOffsets: [ + [87593, 48184], + [86884, 45760] + ] + } + }, { + type: "Feature", + id: "6523", + properties: { + name: "昌吉回族自治州", + cp: [89.6814, 44.4507], + childNum: 7 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@መL@È°ĊȂɆƒÆĊ£„ťôWÓɆbĢÅŎƒÆ¦ČÑW¥°ķU¯ƏŃVē±Ý@ó—ç˜ĭɃƾřÆķkwŹƒŤ¹ġ¥ĵKŏÅXmˍщwǓ¤Ƒ@wóōVķ£ɱšġôÛa±Òȁ„óèţIVŽƽ¼k¤ó¹ġJmx—»ÝUƒ²™@ÅƃĸǫŎ„ĊmŎǬ՘"], + ["@@Þô°bÞǠôÜôn@°ĸń˜Ƕkłƒ¼UޙKğȂÆÝĢŤķ@@ΌڬL܄K@ˣȂ˭lĉńW¥ĵVÆý@ŃÞēUŃȗƅ@ŹƩǕĉ»k»Ç™VğóřX™ŻKƏŽċêȁèÛŎġƒͩń"] + ], + encodeOffsets: [ + [ + [90113, 46080] + ], + [ + [87638, 44579] + ] + ] + } + }, { + type: "Feature", + id: "6530", + properties: { + name: "克孜勒苏柯尔克孜自治州", + cp: [74.6301, 39.5233], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ˎǫĠƽ°UUĉ¯±ȁÑmƒ„¯Ýōˋō™wUű»ÅƑ°ƒȘ@²¯ɳʇ`ɱŃ¥՗™ɳȗōkȭšșW@kəJóÔƩ`ĉ£Vů¯wU°ʇĊ„ÈÒ°aĊÞÞJŁċƧīĠyĊ²XôÇxÈÆÆ@„ÞʈƒÅ»™XÞīU›Ƒkm„ŹÝ@aŎÅÆīƨĕ@™ż`Ċk@љƒĠ@ŦÑ@ǵÇÿ@ÇÅŗl¯ğJ@™ÇUkçġÒƏÑÝ@ţéWĊôŚUŽóXUġkţ¤ķ@@ƴōĊó@óÔğƒ¯„ċ@@Қ¤kôˣŰ͓„k»ƒKX¯ċwƧôğɐšÒôIVƙš¯UķǬķšnŽ™¼ôb°ÒȰVVÈÞ°ƒĸó¤V¼°„V°²êƒlĢ҂Uƨ¦ôȰƴĊVV¼ǖIċĊ„ÞɜéšnČW˸Ǹša„řÈw±īšçĸ¤ĊšôšwšŽĸUĢ¦˜éǖĬ„Āô¼lÞkÒ°x°ƆÞx„šÆV²ǔ»„b°wގȘ¥°n„šŎV@°„„ʠè‚ŰȂb"], + encodeOffsets: [ + [80269, 42396] + ] + } + }, { + type: "Feature", + id: "6521", + properties: { + name: "吐鲁番地区", + cp: [89.6375, 42.4127], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ôK„ĉǪa²¼lÜô@ʠê°Ĭ™ôȂƒ²ÑÜbĢóɲ™ĸ¤ŎUô@xƒŽǔ£ъxˎmƒÈÛ@‚_nĕÞōšř„ǫƒğšůlȯ„¯ĸ»U»Ükôƛ°ůkť™»Ŏŗ@¯@±͓óͿ„Ǔ@ķȁ¼Ϳ@Ƒ¼¯°ólġ¯xȗUġšƑ™ǩÒƧUÝ°˹Kóššx@ǸōĬÅĬƑĠ󃄚ǔêÆ°XÒʟŤUšÇ¼ˋnn¼±V²°ȂUŌݜbʟǔɅô@żǬaҎÈ"], + encodeOffsets: [ + [90248, 44371] + ] + } + }, { + type: "Feature", + id: "6540", + properties: { + name: "伊犁哈萨克自治州", + cp: [82.5513, 43.5498], + childNum: 10 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ĉ„ÆŘȁ̐mÞ¯ĀX°±¼@ƾ¯ƴ°ŎÝþŋ¦WÜÞbȂĉźUœÇmwVUȂóô@ȰÝ΀nÆJn™ƾ™ʠ™ŌLČóǪ¯œ¥ǔaǖšŌaôÝĢLšx„ƒÆLšɲm„™²VlwÈ@˜Uƒƒ°¯ǖxĊmUÑƨa°Å°WV¹œa›ÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱ™l݃ŋnķÇÝX¯ƒͩÇɳa——Ý`±_U±ĵnWƒ™a@™ĸóšķ™¯ǓV±ÅĵJċ¹ɅykwDŽ¯£Åxʟ»ƒlķI¯ƒX¯ķ‚™êǕƒȭnķ»Ź`±„kÞ@Žš„Ýô@Þ°xšŤŎIƨÆUxōš¯²ǔĬǬlUŚ"], + ["@@ÞĀlźƒ¦¯ĸŤKޙšƒċƨbš™Vğ—w›ġ¯@ţƽJ"] + ], + encodeOffsets: [ + [ + [82722, 44337] + ], + [ + [86817, 45456] + ] + ] + } + }, { + type: "Feature", + id: "6527", + properties: { + name: "博尔塔拉蒙古自治州", + cp: [81.8481, 44.6979], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ήƛϲÝĠ™„ÈKŌōÿmī„w@¯ɛKV¯ğǟ°Ƒ™wġKóÞŋbǕ™Ǔb›¦ǩ°ċôŋKʟšƽšmšÅImŽͿŽȯÞó@ȁôUVnx›ÈŹVȁĊÝabŻ£¯°l„óxȂŤĸkĊšÞyĊêĊmĢxV„ƨÈŽĠX„ŽΘÆĠÔź‚Ɇţ°LXƾŤŤb"], + encodeOffsets: [ + [84555, 46311] + ] + } + }, { + type: "Feature", + id: "6501", + properties: { + name: "乌鲁木齐市", + cp: [87.92359999999999, 43.5883], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šŽWŽôŚUĠȚl¼Ċ¼ƪǖ@źȘƆ@ýlܚXVŘޙš¦V¼kĖó҃èkĊȁˮ֜@ǫ՗nōƒĉǬō„ķÆŚ@„±ÞV˜¼nwĢIôºl£ƾ»UŤJôçšó¯īʟéó@kÛ±»ǩbƒĊóLҍÇǫb@ŻɆóʠǓ›aŋÞȁVʉłĉbĉɅô"], + encodeOffsets: [ + [88887, 44146] + ] + } + }, { + type: "Feature", + id: "6502", + properties: { + name: "克拉玛依市", + cp: [85.2869, 45.5054], + childNum: 2 + }, + geometry: { + type: "MultiPolygon", + coordinates: [ + ["@@ɜÞʊĊýVaŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒaݚţL°ķóKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°"], + ["@@ƾIŤ@UUwōa™ĉÝJğÑÆŎkŎ"] + ], + encodeOffsets: [ + [ + [87424, 47245] + ], + [ + [86817, 45456] + ] + ] + } + }, { + type: "Feature", + id: "659002", + properties: { + name: "阿拉尔市", + cp: [81.2769, 40.6549], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nIÇŃÛÝĊÑĠƏō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘ"], + encodeOffsets: [ + [83824, 41929] + ] + } + }, { + type: "Feature", + id: "659003", + properties: { + name: "图木舒克市", + cp: [79.1345, 39.8749], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@VéVÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁ"], + encodeOffsets: [ + [81496, 40962] + ] + } + }, { + type: "Feature", + id: "659004", + properties: { + name: "五家渠市", + cp: [87.53910000000001, 44.3024], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„çôÑlĕU»™¥ÝšUŗ™WkÛ@þVńÝĔ@ńÅþĶUX¦Æƒ"], + encodeOffsets: [ + [89674, 45636] + ] + } + }, { + type: "Feature", + id: "659001", + properties: { + name: "石河子市", + cp: [86.02290000000001, 44.2914], + childNum: 1 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@"], + encodeOffsets: [ + [88178, 45529] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/xi_zang_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "5424", + properties: { + name: "那曲地区", + cp: [88.1982, 33.3215], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ƨʔĸbܺÞwnxźbÞ°ô@„ĶŽĸIȼĊJŎÈôUšÝƒ¤ǔLސŎ@ĢŽȘblƒôL„ÇźçȤôLš¥ÞIÞ¯Ķxʊťƨ™ƿÑĉXVķŦ¯ȂKÇǕšÑ¯IUš£¯Óƿ£VĕōÞÿÆwƒƑ„£ǖxÞĕ±ÇÝaUÑȃU¯‚UōÈ݃wWŁĵ™±Ý„óĢÿ°IÞ±mÅĢ¯mÿ„¥°UnÑŤĢĕĶwǬŻͪwŎ¼źÇĢ„ĠĕˎŁ°óƨ¼Èa‚m@¥°wǔ„ǖ°ŽƨÇŤœšġƨ„ŎŃôbÈÛŎĊ°@Ġw²ÑÞJƃÆb²ƒ°êĊUނlȲƒV„ÈKĊÒĸĉ›»ÅôťUÅǃk¯@ǂÑklǁÅl™Ģ™VÑóƒ@°@„ÛĸƒV¯ƒÇĊ™n¯Uĕšƽ¯m›¯b™È@Ò°Ĭƒbĵ›¼„‚kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉƒÝ¼Ƒ„ó»Þmn£m™Č¯@ƒȮÿV¯ĸƒ™k@Ýówƒ»ğ„ġ±ǓLō„ƒšV¼Əèķĉ™è±b@Òţ„UÑóakƒl£™Ó@¯L@™ÇlUóȁš¯aġÈÅĕÝLķ¯Ė¯@WĬ—x‚ÒÈnW°ţôU²ǓÓġ²V°¯ôƒǔÝL—ċšk™š»Ý»Ýš¯ÞƒVƒwۄÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōŽÈ›b@җšÇaƒÆ¯a™„ƒkóŽÛƒÇ¦Ýa¯šÝ™ĉ@ǻۄmƒǓxķƛ¯lVĀÅÞġb™™ÇJUÅV™ĖƑW™zō»ōšƒW™n@è¯ÞóVkwƩnkźÇބҙޯƒƒýğÇUxÆÈnè±bĉÝ»ÈуwšwÞ@m»ÈV@ýÇ°ķ™xƒa„ݯXċ¥ƒÈóW@ôkxlnxVÈóĊkŤġ¼@°¯ŰƑL̻۱ŎÝV—Þ›VƒÇÞŎÇakƞ‚š@èğŎĸżšƾ°ÒšLÞôĠKȰĖźVÈÒĠ„¤™VôšŽU„ÈþťL@ôǬÞlÜÈnÇÒUŚ™@šĊƨW°™°Xƒ‚@ČÇþ„ƴĉÒķ¦@ŽĢôWĀôłUÞĢǬ™ź°¼š@ƒôV°„bUÆnzm¤ƽĸƒÈ"], + encodeOffsets: [ + [88133, 36721] + ] + } + }, { + type: "Feature", + id: "5425", + properties: { + name: "阿里地区", + cp: [82.36450000000001, 32.7667], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„Çƾķn£myVŃaU¯„ó™@¯»šŹġǫVÝóŁXÿġó@ĸ¥ĊуƳÈý@ċ„Wš¯X¯ĉƧ‚™š@VřÈÑÇmkÛǫÝ@óŦKÇýVƒ™U󚏃£ğÇÑŹUȯĕğLÝó™K¯Ñ™ƽķŻĠō@灙lƝÈbƍÈ݂„œU˜ÝÞU²ō̼ůƒK°ů@¯UK±—ĊƧbōÇmçÈġƒóšÅób™™źóš¥kīƯól™ç™KôĵUƒÅ„VŃķ¥nÅŏm¯¹Å‚™»@ÑǍóxÝkʇȤU¤ķb@ƒ¯ĊÇx¯ĸĉKm°šĀk¦l„„KnĬȀƾÛ¦WÆŐmNJĉ°ōUţ¤UšŎ°šŎKÞłÆ„Ǔ¦ƒÞ™‚™„ř¯bmUÝl¯Um™ğl¯£șwŎǫaÝnĉĶƒk@¯™K™šō»ĉn™aÞ»ťnkml™ĸ¥UŚŻkÑťƒĉV™ôó°LôīĠU„ÿĉǕÅz±Kƒ¤„²ō¤¯Ė¯UÝ¥Vĵ™óÈťÝwķșÑk¤ó„™ƒWýĵĕ™„VĠƒV󍃎Ǔ„ķ°k±VU±ţ¦UǟÝřJVљ¥XUċUŎlÛƆǕÆȗƆ¯wŏÞÅ@™šĉl݁óŽƒÒ™nUôńlxólÝôێ±™™LÛôÝL@‚ġ¯X¯ÇUżóa󤛼XÒġŎóLk¦‚ôżĸĠ™¼™KġƆô¦„ÆƑÔĉĶ¯ImÒ°¦n°¯Þl˜ÝČn„ƒÒšKĠޚĕkƒlýƾťœšôI‚ĖŤÒnƜm¼¯lnżóÞ@Ůó¦™ôƽĖċŚn°Ý°ôÈUƜƒblÞóŽ@Žǖô°UÈƆ°X„þôŽô‚lѢšŽ²Ėm¦°š@¤™XŽĊblܚzkºƒĖmX„šŎWVšóÞn°lĠxȚa°»żLźƒ„b@Æ°XĠÝȚxĊĕŤaȚ‚°È@„„@èŤ¦Ü¼œW˜ÞkŽÈ@V°lŤkŎ±²¦ƐUšlj°aÈÑŎbĢƒŎbÆ¥ÞIȘlššôVÈU‚™šb„kɲĶn„mnXb̼òƾĖŎ@ĢȂÑôÓĠĖʊšĊÔ"], + encodeOffsets: [ + [88133, 36721] + ] + } + }, { + type: "Feature", + id: "5423", + properties: { + name: "日喀则地区", + cp: [86.2427, 29.5093], + childNum: 18 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ĶĖXþš„ôƒl£šÒĸÇÞxÇŦšôUĶÞ¦°V°ĕŎ£ƒ±„£²LÆyĊǖƒĀğVóĬ¯KóôUš‚ĊŦ„lҙżVÆķ¦kšlnŦmݼšbĊmŎ¼š™šL@°„lĊĵÞmǬbƍȚx°¤Ġknš°VÞkVn°aƒŚš‚š„Ýǔ¥ÅƒÝŁōL¯™ōV™Ť£ŎVĊ¯nljƏXÅÜ¥ǿƽmīƒLkƒl¥™ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwȎ@Қ¼Æ°ºŐnmÆĸ¦UńƃV„óĶšLšèôkÅ°lĬ™¦Źôššôa™Æ„ôÇĢnèŎÈƨa˜ĉ²‚VLĢ»lţôĉUǂwkmlw@óôX„ÇȦ°WƒÞ„b‚wĸšÈ¯@þÇUn¼Ý@™x„xÇńÞ¼ĊŽ²amçÅÇVwĠȄþ°„šÝƒÑÈÝlŹƪmlxôU°Ý@çšm„XŎ™Ŏ¼šyƒXšĕÆUVÈIššĢaÆÝUÿ°kĸƜǔwn„܃ȼĊ@ޚ°™Þbȥ܄ô„lšƒ°b„ÅÈb˜™@ќa‚ǯUU¯Vġš»ƒ™¯aV¯Ç°Å™mnÑŤçǬVǬ™±ĉ¯¥Vĕ¯Ýk£˜ō—w@±ġÛ°ÇVїƒ@ۘa@ČL™Ƴ™„ƒÇa¯¤ÝIĵ¼U¥ƿōķÅţŻókÝóĕ‚¥¯™U»Æ£X¯ġŃÛkÝ°V°ó¼¯èWôÞĖ„ȎƒŽkĀƧĀówm¥¯JŹÝJݙōVVŁaݐƑ@ƒ˜ğŭǂ¯_ƒ˜ĵ—›VnxŃón›ƒĵxÇĖĉVÝÈğV™Ò󃯐±Żĉ£ķÆÅL™Ljĉý˜ţۃ¯VƒnV¤ÝÈ@°ÅÞݤ™ŰğŁm¦ÝxóKƒ¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑŽnŎDŽV¼¼‚ºÛ@m¦ƽ„ĉmm¯ÝKÛç¯bŏłĬ™bƒ¼ÅLmŽ„xť°ÅU™šÝXkŽÝmĉ¦W„¯K„ÒknÝaV„Ýè¯KɅńÝKnÞ¯¼"], + encodeOffsets: [ + [84117, 30927] + ] + } + }, { + type: "Feature", + id: "5426", + properties: { + name: "林芝地区", + cp: [95.4602, 29.1138], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@‚VÈłVôÈk@š°K@ŽšÔk¤l„ôbVÒŤƒ@ѲašçĸĊƐçU»„™ŎƒǔKĢ²Ġƒ„¼ôx@ޚlƨĬ„Ul¯ÈLV‚šÞJ„°Ünʊ„wÜbXê‚VÞ¯°ššanaU°wƼɴÑWÑ°mÈýÈam¥Þ£Ť@„¥ôblÞĢ„ź¥ôxÈÅmݚ™ƒĕŃV»ĉōŤōnóƒ»ÈīķIUƒĠÑ°ġĸLÞ¯VÒƂ@Ābš¼WôÈ@V¼ôóŤKÈÑU»šwVǫżnWÒÈx™¼‚lŦ£ĊōŤx²¯@ƒÆƒU¯šçÆ@„¤°£„é°k°lšůÈó@¯ŤÇÈĉƒkkÿó¥ÝXķљÜ@ÒóŚÝ¯°ĉówÇ±¦ÅJUÒĉĀķw¯°mĖ¯„±akxÝÅnƒ™»lуK@¯lU™¯UVѯóĊ¯mōğVǓƅƒÞƒWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧƒÇb™w°Ķôk¦šÒƒnUþġҙÔkǔķèó@ƒ²@ŘōńĵyƒzġaݤÅIƒ¤Ƀť¦ğѯ¤ķbóš¯ó±ŽU²°¤ČÜVnÈƂ„ŚŎ°ôĢ„þÆzèVĀǎĀǘƒXŹÑ¯¤ówċķk¦šłUÒġzÇ@ƒ™ÆÝx@²Þ@Ƥ„Uô¦Uš°x„U"], + encodeOffsets: [ + [94737, 30809] + ] + } + }, { + type: "Feature", + id: "5421", + properties: { + name: "昌都地区", + cp: [97.02030000000001, 30.7068], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@™ŽVĖm°ĉš„ÈU°ķ„ƒÜ¯@@ô„UÒġškš‚ÆkÈlŽÒ@Èl°È„VÆóŦƂœ¼‚a„ÅĢ™Ʉwnōw@¥Ŏ¦°ŹÞmVš°wnÿƒw„wÝw@¯šmÞŗ°wĠ˜ĸkÞğlĔ²¦°@„ĕĸwVóšal@nĢÇĊn°@¦šŽźUXçǔůĸVš™ÆK„ÈÝĠš²ÅĔô@lšŽÈ_m˜„zǖl„šaU¼ôwV°¯¦‚ĬÈa„l@Čǎ„¼™„nŽ˜I„xô»ɜ@ƨ¥ɆŁ„ŃǪȁkƛƨȍʊȡóĭ›@—ÈÇVƒůރĸƅmēƨť™ÅÈʉVǵ°ġVŭÅɧ°ÿnɛš£mƒķ²ŃóÑUĉ°mÇ»¯@mxUĀ¯èţ°ȁÝç„ġU¯ÆÇţÈ@°Çô™Ű¯k¯lƒê¯¤ƒ£Å@™èV°Å„@„±°ţwĉŎť¤kš»ÇwXÑŻmUǬ™xV¼ÇÒţLóôU»Ç@X󙻂a@ÿŁUÑÝ°ķK¯ĢğÒV„ĸJÇĬ„¼môţŎĊŎU¼Æ„„Ė™šnÞÇÆówŹ¦ġƒkÝóaƒ¦ţ@ݤn¦ÇbÇþ¯nXÒɳÒÅ»¯xVmb™b¯™Ý°UWéÛaƒxʉÛmƒ¯ÝI™‚UÇKk°ƒVƧīķ„U°ȭĀ@„ċ°nšm¤Ýnô¼ƒƒÞ»Ċ„ʊmlÔĵǠÆôVÒÞbl¤ÈIĸþlwƒœ»ĶŽ„a¯ī@њǰanœƾ°"], + encodeOffsets: [ + [97302, 31917] + ] + } + }, { + type: "Feature", + id: "5422", + properties: { + name: "山南地区", + cp: [92.20829999999999, 28.3392], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°ÞUĖ°¦²ĊôÇÜLǖĀɜŽȘŰÞLĸźêÞ@UÜUŤ°ɞ¯Ü„°WŦĀmŎ„¦ĢyVљŁl¥Čĸôx°£źÒ„Wȗ‚ÿȍUÿ‚çÅyƒýóġō¯ƒřŁmÇÛUċŽ¯£V±²°ôô™ĸa°£ĠÒŦ¥ɄŽ„£ÆJÞ£Ģb„yĶzŎŃ@ŗ„±ô@ĸçlǓšÓĢÑVý„m™Ñl¥ĵó‚¯̻̥™ƛǫÝһÇƧĉyţ¼ҍēVĶĉŎ°ĸmšÞVÝĸ™ÒÛaċ„ó™ŹĖƒèÈÈl¼k¤ÝX@`ސŏ¼Æō¼ÇçĉKUÝÝ£ğ¤@¦ġl¯Òġĉ¯óš™móxÝÞğVšƴċK@—b@ܘ„UÒ¯ÈĢÜ@²˜x—Ŏl¤"], + encodeOffsets: [ + [92363, 29672] + ] + } + }, { + type: "Feature", + id: "5401", + properties: { + name: "拉萨市", + cp: [91.1865, 30.1465], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ŏ²l@°‚XĢƐlôŤLX¦°¤ĊnČ¼ÇĊŎͪÞÈ܃„x„U°Ýޙ޼™¼lšČ™˜ŽÞK„Ǔ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑ˜wXī°@°ĕĸÞKÆĖĢÇ°bȂ™ÇŁUƒV¯wV™ó¥ƒVÅ£Ý@@±ÞwšÅ‚„È@ƒ¥nōťÿ¯Xۃɝ°ţ¯ÛVVÝ@ŹéķÝKȗůɛǕÿÛKóÈǫšǫUţèmҚn¯Æ°ÈU‚°b„š™¼UĢV°°V"], + encodeOffsets: [ + [92059, 30696] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/yun_nan_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "5308", + properties: { + name: "普洱市", + cp: [100.7446, 23.4229], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@U‚ô²‚a@Ž²²Ķ¥œV°šĶ²bl¤kVxl‚@œ°‚Ś²@˜„„y„@ô¦¯„@xƒxVxU„VššbVšÜm¼Ŏ„„ĢmºXXWÆ@ĀœšmŽmXU°ÅÒm¼Þx°w„@°‚XêĠ°»nV°U„l@k„@V±ôī@£‚ƒČŃÆ£„KÞý@¥‚k@y„a@—nWV„UVƒšwƒmƒ£Jƒknm@wmkn‚X„˜šX„¥mUUlUnbš¯°ŽnkƒVInlIUw°n™mk@@mlanXlanmšk@wVWUw™_@éĠašnmUaÜ£ƒmXƒ¥¯@@„óUmݯ¯ÞÝlKnxô£š»„»Ġ„J°aV„UÝÿV¥ÛbƒI@wmŽón¯yÛL@ƒWkŎmș`IWa¯K@¯mUnmaXm™bmak„¯ŽƒĢ™ÒÝm¯mV¯KÇb¯KۜWW™X@a™V™knċLUWV™kXóW@k™a@ƒób¯Uƒwmb¥UUlaU¥U£maķšƒKXkƒmÝ@kwmѯk±ċbUUVakaġ¦ƒƒkL@`ƒœ™a¯xƒm™Åƒ™LUWƒ@ċnŎUV°LkL@b°°@¤š²ƒ‚šnôôk„l°kè›ÒÈzV¤È„WôôƒnV@„ƒ¦@¼Ux"], + encodeOffsets: [ + [101903, 23637] + ] + } + }, { + type: "Feature", + id: "5325", + properties: { + name: "红河哈尼族彝族自治州", + cp: [103.0408, 23.6041], + childNum: 13 + }, + geometry: { + type: "Polygon", + coordinates: ["@@°°nÞôV@ƒ°@„¦WŽ„nÛ¤Vbmn™ğb@êš`VxUX@xš„ƏÞUnn˜WÞĸĢƒšÈ@ŽÇè@zÛÜWšÅêlš²„˜KnV¯ĖĊx@bk@@„°JÆ£Èbl„nnm°nlUkVUUwVm„Kn„‚nVŽÞxVLX¥laX@@xl@VzȎVmšk@b°šÈĸmŽV¦`W„XšƒbUb‚bX¼°x@ašVVkn@lþnXUlVxŤÅ„y‚IUƒka‚IŎĊ@lXx@b„z@‚ô„ƒ¥„_V@l‚n@„ôy@al_l`nmƒÈ»@kƒmXwWK™U¯»™a™Å@wƒmUÝKUa™UUƒ™wWƒ@w²»@kƃV£—mm£VKkÑV@@»nwƒ¥™ƒ@kƙnllIVlnLVakalknJšWmnaUaVÑVVލn¥m@ƒ„¯Uÿl™@™™™VçƒaXaV¯UyVLVkš@nJlšXLlŽkxlbla²Òl@nVJVkšx„KlkUaVķÝÑU@Åm¯@±™Uó°ğńķĠmU™Ñ@ǯ¯Å¼@nml@°¯¯`@w™£@¯Çƒk@ƒ»nmċ¯U»™I™Ž¯LÇĶÛn@bó°™U›šwmŽ¯„™Umǯa„™ƒ™ƒI@ykIƒVUŽ¯bƒIğŽƒ¼™¼ó¤mwkLÝÞ"], + encodeOffsets: [ + [104243, 23429] + ] + } + }, { + type: "Feature", + id: "5326", + properties: { + name: "文山壮族苗族自治州", + cp: [104.8865, 23.5712], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@šwô„š@²¯maUmôUÆxš@Xš˜bÞInlVUVw„JVaU„K°¥„xmÞXnlKlnna°@ĊČ„ÆwUmnkl@°ƒƒ£nyn@VV@Vak™ƒ@@kÞ݄bmx°Vnw°klÞInĖÞVlKl™@Xa°„„KlV„U@šJnx‚U@ÈĢbUKlm@ak_‚wšanWUk°ƒl»„k@Wk@lwU_ƒ@UalóU¥ƒÇnƒ™kJWƒ@mVXx±bƒK@nV±a@™Åa™£ÝK²ƒWknamKknǏk¯ƒaV™™V¯ĀƒU™„™Ò¥ƒI@mm¯¯xōW@@`k@ó»ƒUU¯lm£ÅWlĵ„w@mmwÅmWU@y±U—xmwU„¯Uƒ¥Ý¥¯£m@kŽÇVUV°VbklƒL™wUlUIm‚k@±ÑkbkalwkWKk™mI™@UlUKVzU°Wb„bU蚚@škšVĀƒ°@„n‚m¦ÝŽUUUÒVbmbXn™‚mIkllbUbmKUkkJmkŚ@lš„„¦mx@¼U@lÒULn¤˜nU¤Å„@l±¼@xX„šxV„šVVbÞLVŽ„n@xšÆšb°¼šV"], + encodeOffsets: [ + [106504, 25037] + ] + } + }, { + type: "Feature", + id: "5303", + properties: { + name: "曲靖市", + cp: [103.9417, 25.7025], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ȦlKÞĕUV¯Um¯„ÇVUnVVUƒĉn™ĊÇƾLn°°È„JÆw„@lbÞa„¦V„XJ°¯W¯„aÞJVkUša„ƒ@lKnÅmWUk¯a¯»@m±@уkkbWWX_WÓU»_l™kÑm@U»m@l@IWċn¯l@VanV„UV™UVwVx„KȄVmUē‚@„ƒn@VÝÆL„w„VVwnVlmkUVÑÇ°ka@k™ÿÝaÞUl£™›—ċĕX±±ĉƒa@UnVnalónk@wl™UVmkÝJ—aW™™@ÅwóVVnnb±°™@óƒ™xXLWx„n@lǼn„m‚k_k`@bózƒ‚m@kU@ƒ`„¦óƒ@nWš@ÜÅXWw@ƒyƒb¦@ÒlnUb@x™lܐk‚@²Ç@Uƒ¯bmy@kV@bƒb„¦U`lLVx@b—Ll¼Þ¤@„°VVބU@WސUb›J@nnš@lnnm„šxUŽƒUUbƒK@šÇwklkUƒVWakn@ŽlbU@@„ULVxkKUn‚°¯Ò@¼™„kmƒ¦m@kl™Ȱ@lU„l¦„@Vl°wšnnþĊUÆbUx™b„ŽV„šĖU°„a‚nnašV„al@@b"], + encodeOffsets: [ + [106099, 27653] + ] + } + }, { + type: "Feature", + id: "5323", + properties: { + name: "楚雄彝族自治州", + cp: [101.6016, 25.3619], + childNum: 10 + }, + geometry: { + type: "Polygon", + coordinates: ["@@mҁXU`Wnšš™@Xl±¦š„Uxnbl°knmKUx„„ƒxVôUx°¼ôÒȄ°JlnÞKĠœW°¦ƒ„Vx²JVwš_°¥@UV@@wnymknK¯I@‚™²b°ƒš£V¥šwU‚V„¤nLškÆJÈwôô°„l»Č¯ƒġVƒUU@@ƒ°ƒƒÝXl@U»°Å„@U„¯@w±¯VmUUlm@m™„ÑnIVyUwmak£Vwm±—@Çw@nƒ@UxkwlÇnL‚mkř@±Žk™ka@kóJV¯Ç»U£lw¯™Xalbl¥¯UXƒ@a˜™UaÈL@ÇVIVƒkaU¯mm™akLWkUJ¯Umxnšƒ@ƒkUx¯xƒ„mWÅīÝkkbƒŤƒbkxWmXwWk¯wƒKkƒƒLŤċń„@¤óĬU²ƒ@@lƒk¯VmU¯¼@xV@k°l°kbUš°nm‚VnUš@°„š„UVèރÆbUÒÞnU¦›V—¼lô„@Vl"], + encodeOffsets: [ + [103433, 26196] + ] + } + }, { + type: "Feature", + id: "5329", + properties: { + name: "大理白族自治州", + cp: [99.95359999999999, 25.6805], + childNum: 12 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lbœKVIUa˜@²m@b™xôÒÜxXLmbnšl@š„„K°šš¼k„Uô‚xôlV¦nJ„Uš™Ænšm„@šx„ÆwšbXšÆôô„LUVwôK@wlmšaVwœ@WknmƒIUmlnJla@_™@kÝmKUašÑm¯Xw°aUaVl»²JV„bÆJkôĶĀ²VVk„mšbVwUó„wƒƒVwnLlmk¯maVw™ƒ²¥Wkš@™™XmV_‚WnÑUkƒ@k󘻜UV¥ÝmVÑÅa݄UçƒVƒ™@¯V™Umn¯mV™lak¯l¯U@@wğŽW鯁ƒ@¯xÝw¯š¯Jċa¯U¥mLU¤„bÞȤƒbÇLWUwmIUVW¼kbš`U„Vb¯L±ĊÛkƒÿÝKkwƒKţê™UĉþƒÈƒV¯ÞVbUŽ°KVšk²Ý‚mI—ƒmV@kƒm™UkšVxm„¯KXÈķJU¦V°ULWxšL@môƒšb@bkx±LnVUŽVLnkÜWnwlLŃmW@kkJU_ƒV„šWĊ„Þ"], + encodeOffsets: [ + [101408, 26770] + ] + } + }, { + type: "Feature", + id: "5309", + properties: { + name: "临沧市", + cp: [99.613, 24.0546], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@‚xĢ„l`²X°ŽV„šx@x°Þ°KXašğUњW‚bnIl`X²°b„xl°„„šV@xVxk¦mb„l@xšXV‚ÆzX¤™Æ˜k°„kx@lźêlaX»VUnJVx‚XÈK„aÝȣƒaV£nKV¦°‚Čb°I°™n»ÆÑV¯nWn›™@ÿXÅWWn¹ƒġōƒn»‚ÛU™™aU™VƒUw„w@w°ƒó¥ƒ@ƒz—ƒ±@ř›¯@kUwlk£±aĵŽ¯™›Uĵ¦±±@bó±VÝ@ó¤ƒw¯I@mńóm±XŽ¯IólƒK@š°Ullb™zkKlln@@ԙºƒUmVk²ôҙx™ŎUVóLƒb„ŽmÈnŽmbnl‚a„x@z„@Ǝ„¦kš"], + encodeOffsets: [ + [101251, 24734] + ] + } + }, { + type: "Feature", + id: "5334", + properties: { + name: "迪庆藏族自治州", + cp: [99.4592, 27.9327], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@W™Xwƒ™@akk@y›—k°īX¥›Uóķ¯w@n»UaVaUۃ¯ƒmV¼k‚™Þċô@n¯xÛÒm„V‚¯Ô@xƒ‚@šk™wm™Åa@ƒUa‚݁¯VŃyV„a@ÿšn»ÝVmank™mmÞÅôƒ@n£±›ğzÇmU¦™Vm„nÜmbn@°nV@xmzÅ@mºV¦k°ln¤š¼õô„n@xkƃIUxUš@Ťƒ¦VšmVkmkXW¤XzVx@ƚx™¼ƒÞ¯b@lVš™ĸގV„m¼XŽm¦V„ŽÞ@Ǝš¹Vón¥ÆKn„‚KX¯x@èĊȱłXšaÆxnlV@UÛlȻkğV¥„m²ljmÅÞĕƒƛm°„ÆmX¤mznƃŽV¦ÞVVb°bnÞWbnŽ°l@V„È@„‚VĵĊ±@ó„InxÆw„¥@£Þ›W¯ĸ£UƒUK‚ƒk±akkkbmWmÈķ„aÆÇU—ȃÆW@wmknmU¯"], + encodeOffsets: [ + [102702, 28401] + ] + } + }, { + type: "Feature", + id: "5306", + properties: { + name: "昭通市", + cp: [104.0955, 27.6031], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@mƒnK@wmƒUř¥mšóXǓŏmX@Ž—VƒmL@xţ™nk@mlUšŻÒğŋ@ƒL@mmLkm™š@b™XŎW¼ka¯lÇŹ¯aÇ»™ÝÝ_@m„@@a™@UklwUm@ak@ƒb™UmbmƒbV¯™ĕUƒƒšaVwÅaĉVmý™m¯xUkƒ@k¥VƒUXƒ¤VÈm`@„—ńÇÜ@Ākn‚ĔkƞÆĠ„™Þš‚U„VôƆÞI@ŽUxƦn„l@ĊĊnxUÒ°¦Vb¯WUnWŽIml@xn„Ubô¤‚¼ÈxlI„»šKVš„@ÈԂJkšUĖ±ÆVb@nœ„VÜVUVƒšL„wĠl„kn„Ġ@nx°¥Æ„²mUwƒ@m™mÅUl¯UњÑUm„Lll„Il±š@VkwƒW@w°@U»™kUóI°ƒ„»ĢтL„™š`nUĠ²lm„bôV@n„JUxƦX¦l@š‚ŎUƒV„@lV„KVřV£UaÞU™ƒnW@¯VU@ó™"], + encodeOffsets: [ + [107787, 28244] + ] + } + }, { + type: "Feature", + id: "5301", + properties: { + name: "昆明市", + cp: [102.9199, 25.4663], + childNum: 11 + }, + geometry: { + type: "Polygon", + coordinates: ["@@n@Vk‚VUn²°@xƒ°Vƒ@¯ÆV¼k@WŽ„Þ¯„@„@‚VVU„„Ģċ°k¼V„Ċxœ¤Ōœx°mVkƒÑȏšL‚°„x°Xœ°VmĊLVxUĖ°bX¦VW@kšȯlkn@„¥lnšƒ@»°Ñ¯VmlLUwVK@ƒV@ka@lmXb„UlVlkÈx@™„LVa„VV™wnƒmm@km™@mœIVaݏ@XƒVUݯU@ƒÝ£k»˜K@aUwkKV_ƒ¥„a@alU@nz°aV„È@@±lÛšk@wVakm@т¥„a„z‚@XxÆW@ÛX™@m@ƒy@aWw@kōĉJlbV„JƒzţÆUwVkmWkým@Ul™U@b¯wVºƒU™VUêšĠƒXUaUbVĊUŽWXUmkK™™WnUUU™V™ƒƒVV™Ý@kk±‚™¯ƒƒLkƒš±WkXlVklƒ@ƒwXbmLƒ›VUIVmk@Ubma@kkaVKUƒ™kmlXLWn™J¯ÒĊ°@zkºlLUŤn@@n›ô@lƁnmKkÈlxVw„@@mÈx˜@n²Uxl¤nbVxUzmJƒÒnš"], + encodeOffsets: [ + [104828, 25999] + ] + } + }, { + type: "Feature", + id: "5307", + properties: { + name: "丽江市", + cp: [100.448, 26.955], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l@™„@w°ÓUnƒÜÑ°w@mČóšÝlU»n°„„VÜUbVbm¼@Ž°xôĸœVW¦¯Ĭlœ˜@zll@b„šWxXš‚a„X@ÆĠÆaXwl@XaƦn¼˜Jn@mnKW¯È»V¯°ak™VanXVwl@VyUĕVU„bÈīlaUk°ƒk¯lƒ²V˜Ukƛô@ƒ„I@mVwĊa„™ƒVaka„™ÆbUŽVLšaXIWKUw™ƒ„aWÑÅKUaVk°ƒ@Uw„ƒ¯¥›XğÝLkm¯Iǃóѯ»™aƒnUl±UĵÿlóÅIƒaU‚±Ik¼UŽVb¯bWxn°™ÒVbnLlޚ@@`kbmIkŽVn„JmnXl›@Ux™bkn@xóLUxVŽƒKóóŐW™™aÅxƒŽ™wƒ@™nÅm™šƒV™„ƒôX„ƒLlVU¤ƒb¦m¼™Ž@ĀƒbU‚„zUƂ°ÞVb@„Æbnššx"], + encodeOffsets: [ + [101937, 28227] + ] + } + }, { + type: "Feature", + id: "5328", + properties: { + name: "西双版纳傣族自治州", + cp: [100.8984, 21.8628], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l²°ŽnÒlxÞ@„nWl„Lĸ™nbV¤V¦kbVV‚¦na„x°Vôa@„šb@lôXlWUšVXČKlmššU@bšWXXܛ°LÈa°LnU°‚ÞnšÑ„ġ°lƒnbšaƒ¯¯KWƒœó@kmK@UšĉV@k°„VV¹„a@y‚_ċl_nÓlL@anI@ƒóWl£VU—ƒl™kĕl™šKVw„U@™kVƒam¯ÅL@bƒ‚Ýk@Vn„UbÇbÝwÅ@ċ¥¯lk‚¼ÅŽ™Ò°b@¦nlUn@ŽÇV„mƁbWôU@ÝÅōm™¯ƒaU™™mk™WWw—@±ƒ™n¯U™è™a™Lƒ¯mƒL™škwƒl@°mnÈÒ¯šów@V™xƒĀU¤°Įƒ°Xl"], + encodeOffsets: [ + [102376, 22579] + ] + } + }, { + type: "Feature", + id: "5305", + properties: { + name: "保山市", + cp: [99.0637, 24.9884], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@X°„Il‚@¦ƒŽÈ¼m¼ÞaÞÅl„ÈxV¼šlVôÈÆlLޣȺlkUƒ‚ƒUw„¯UĕVwĊ@n¦mlnVĸIWÇ°LnƒUwl™šV„n@lnU˜„nJށl±U™¯LVUa°Ý„U„ÇĊýšVŤé„LlxÞL„ĀÜl²ĉ°KUaVƒ™_Źé@klw¯ƒlÅ—šW£ÅyU™W@wƒknal¥Uw@w™Uƒƒk¯ƒw¯aW±k_mJa™XVҙĠWb¯L¯Ý@w™wUƒ¯±Wk_ġƒwƒwōKmb@¤„bk°lĖƒô„UJƒšVnÅlťUš¯°VbnbWxX„m„ÞššWUĀ™L™yWzÛKmbUxVKkn݃kŽVšĀċ¤Ux„@Ž¯Žm@ƒ¦"], + encodeOffsets: [ + [100440, 25943] + ] + } + }, { + type: "Feature", + id: "5304", + properties: { + name: "玉溪市", + cp: [101.9312, 23.8898], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l„„L°xXlWxXnlw„a„ţlaÞlÆĬnX„ƒ°wVw„l„@m™nw°VVIXllKšbnnV°lbU„UJ@ÈÇKVb—š@bW„°Vk¦kaWb°škxV¤È¼U°ôI@llblš²š@‚@œó@mm@VţkKl¹@yĉ¯°ÑšIXmWKnkšlV„ULlb@lnbVal@UnVJœU‚„nKWa„x„@lkkUlW²X„™‚l„K°„šl²@lšÞUŽ„U‚„UšVšVVXmššlLVnXWVUĉVaVb„W™ğVéšU„VU¹W»aVa„aW™Xƒ‚_U¥nÇķ¯™@a™lUnǍUyk@@wW@kbW¦UKÝwUmmƒƒLUnVxUVVlk¯mmnƒmkÇaŤ¯I@ƒl@@aĉw°ĕmU—L±ƒk™ÆéX™ÜÛ@yÈç@™Çġ„Ýķ—XmmÝVՙƒ™lmnkbmWkb@nl@nŽmš¯VxkJmUJ„ml¯™°makVVnVƒ¦™Wƒ—Wmnl@xmn„l‚I„¤„n™xU„ƒVUŽmX@˜ƒb@zl@¦Ýþ"], + encodeOffsets: [ + [103703, 24874] + ] + } + }, { + type: "Feature", + id: "5333", + properties: { + name: "怒江傈僳族自治州", + cp: [99.1516, 26.5594], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@WyX£lWlnnUU™„¥@ţV™Vw„JlÅ@wƒmö󙻂£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnƒšUV¥ÈnĠy²œm¤„@ÆónݚnmlnbÞU‚¥„aV£kU„KWƒ„óšƒmIU¥ókwVólƒ™»¯™ƒL™ƒk@m™naWKÛwóњw@a±n—@VbUJ›LkaƒÝXĉƒ™„UV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@a™aó„@n™KXwVKU¯V¥mUnkm¥ĉ@UxVĖƒ°Vx„V„klmޙkKWĀkVWšnl°Lnm@°ŽUxlV@nk¦™JVÈ°ŽVÒ@nX°@ÆlUômlnôƒ²nxmłnVV„¯x@Èm°XblVUšl°@xkXU¤WXX‚W„Xƃ„mkÅJmށw±bƒxUīkKmÅVUĖÝèV„kx@š›lX„lnk¤ƒLkŽ‚Ėk¦‚xUššL°‚¯Ė@LnK@b°xVI„¥Ua°Ñ@»nm@¹‚KŎÞÈWln²n"], + encodeOffsets: [ + [101071, 28891] + ] + } + }, { + type: "Feature", + id: "5331", + properties: { + name: "德宏傣族景颇族自治州", + cp: [98.12990000000001, 24.5874], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„¥n@°@ƒVwČ£™ÿUlÞ„lmULVwnaÜLXyšzšKVÿ™XݙnƒWƒXwmaUa°¯V™ŦŽÆkUm„™VIƒ„ókĕl¯ƒa@£nama™@¯m¯œó@óyţbġkÅm±ÛammVkƒLwU`Wk@VƒkUmŃlUUKmbkkUVUwƒ¦óŽ°¼šbn°ô¦lºƒz@xšŽ¯„™@UŽ°nƒšU¤ţU„°VƆ@ÈmlnzÞl°¦Æa„xUxƒLkxWƒn@‚š²ŰšW„™‚@°ÈXl°Llx"], + encodeOffsets: [ + [100440, 25943] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/util/mapData/geoJson/zhe_jiang_geo", [], function() { + return { + type: "FeatureCollection", + features: [{ + type: "Feature", + id: "3311", + properties: { + name: "丽水市", + cp: [119.5642, 28.1854], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@V‚bVl@Xn‚UXƒKVŽ@¦nxlUXV‚n„KVmnL‚UV@bn¤lLXK˜²„`nnlJXIVJ‚I„Vnn°KnnVll@VLXWV@UkVaVK„zV@„ƒšVVaUK@U»VUl@@WnUUƒ@wVLn@Vwl@XW°LVbn@VU‚@X„l`@XnKVbkl@XVJlUnlV„„xlL@lnXl„@VšUnV°°„@a„UVLXblWVXn@VVUV@Lš¤VLV„U‚VbnalLUUVX_laVa„WVzXKV@@a@KUmImmXama@kU@yVIUK‚aVa@kXK@aWU@VIUmW@kkVm„Uš@VwUa@K@k@Uƒ`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_ƒKVaXa›XmƒU@mUlWkaUXƒ@mmkL@w™JƒnVVÅbWKXa™@@I@aƒJUUÇ@V„UL™W@akLmb@K@a™XXw@mƒVmUVkUy@£@aU@@VkUWm@kUKƒXUWU_mW@wkkmJUUkLWWUXƒW@IkJ@k@mW_kӃ_Ul™Lƒm@I@aUa¯m@kƒa¯LUJƒ@mVVxUb™a@LUKkXƒbm@Uak@@a@Um`ƒIUbUJ@nUVW@@LnVV@lšUbVlUX@`š@blXklW„Ušm„Xlm¦U@@V¯bml@š@nUb@llnn@VbX@lV@ŽUVULmU@JVn„bVbkb™VWxU@@nUVk@"], + encodeOffsets: [ + [121546, 28992] + ] + } + }, { + type: "Feature", + id: "3301", + properties: { + name: "杭州市", + cp: [119.5313, 29.8773], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@X@l„°KXXlW„b@²„`šššb‚I„šX`l@„@bWl@n@VnLUV@V„@°¦@šl@XVlU@š@xVbUb@Vkb@‚@XVJVz™J@Lޚ@VmLUxUJ@LU„Vx‚b„xXUl@VaÈw„b‚aÞa@Vl@XUVx@V@V„LlbnV„al@lb„Vnn‚LnKnL@VlbVJXalIšb@KUU@mVInJ˜„U„Vl@xUšVLnUš@UÞaV@lkV@UanK„L@UlKVUnbÆmn@@nUlVnVJl@@UXU„L@WVIVJVxVLXV@IÜKnbn@V¥V@@I@ƒƒ„y°b@UUwnk°ÆƨVlUšçXm›£aƒÇ™IkVƒ@WV@@aWIUWUIkb@WW@UnƒK@UU@kaWVkƒVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImm—U@ƒƒwmwUV™IUWVkUamaU@mV—kƒb@KVU@aVU@anKULVJ‚U@kÛU™JUV›kkƒVakU@ƒaVwkW@UWkXmWaULUaUK@XƒJUUmƒVU@UVƒUkJ@ImwmKU@k„@lU„W@@akKm„kamIkWl_UwVm@UkaVUUaƒ@UamakbWlkL@aUalU@mkL@U@U™lmK@XkKm@Ýakb@xƒnXbƒ`ƒnUUU@›™U@™wU@@ƒmKkkƒV¯U@lULUbVbUb@V‚a@L™ºÝb@bLmK™x@VUL@bk@mxULWl"], + encodeOffsets: [ + [121185, 30184] + ] + } + }, { + type: "Feature", + id: "3303", + properties: { + name: "温州市", + cp: [120.498, 27.8119], + childNum: 9 + }, + geometry: { + type: "Polygon", + coordinates: ["@@ll@xnXV`VX„WVL@lXnlV@UV@@b@¤VzUlnV„U@nWxšW@b@LnalK@bšXVKUƒÈ@VV„I@b@Jš@WbXLÆaUU„mšI@xlKnn„@VWlbkXV‚@n„VWnœ‚WbUb„L@`VbUnVlVXkV@lUz±‚VnUbU@@VUlVL@l„_@V@l@LVbV@XLV`VÈlxn@lU@aœaVV‚k„@XJ@nl@@LU`°LVb„L°a@a„UVy@anI@a„a‚nV@²wÜJX@VšVV°k„na@WVk„aWwU@m@™ƒkƒaUĕ™ÝšÝŤnÈa„aóI›»@±X™WkUķ@kV±kw™ƒUkWw„™UƒÝ»ÛkɳlImaUaWóXÿǬk‚UnWVmmk™KţnŏÞğl™„UlUx@XWb„V@JkXƒ°mb@VULVxUVk@@LWWk@WIkšƒUkJmUkVmI@yƒ@Ua™kLm‚U@mUUUkaVk™@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVŽ™V@„VLV`UL@VUX"], + encodeOffsets: [ + [122502, 28334] + ] + } + }, { + type: "Feature", + id: "3302", + properties: { + name: "宁波市", + cp: [121.5967, 29.6466], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@Ċ¦ĸĀ°‚nXÞVšKškƨƑźÿ°»n„@wô¥ÜbœU°ÆXÞWóçĉݱIUƒÈ¥@U°wÆ»²mm_@aXƒVKÞVlk@akk›̅@£X»VwƏXWa¯aȗb™KƽۃĊ™xƒLóŽk@ƒƒƒ@¯nƒKUL@xkL›ÑkWULUUmJUXVŽU@mŽUX¯@V`mbXbV@@nn¤WXšx@škJ@nVVUVl²UbÝVUVk@Wx@V@„ƒVXzmlaƒL@VlLU`„XUVVVUnl@VbnJlnUVVnƒlUKkbmnn„VxlJnxmbU@UL@KUV™X@xmb@lk@mnVVUš™è"], + encodeOffsets: [ + [123784, 30977] + ] + } + }, { + type: "Feature", + id: "3309", + properties: { + name: "舟山市", + cp: [122.2559, 30.2234], + childNum: 3 + }, + geometry: { + type: "Polygon", + coordinates: ["@@l΢ƒʠþÆVĢLĊƒǬXĊ܄XôV„ÑÆw„ƒlšƏÈóVĭVǓ@ƒĉwɛkmK@ĉXīWaĉUĵÝmƒ¯ĉƒwĉ±±nż¯x@VǦV„²JĊÞôèÝXÅW¯›VÛaó¦@xƒŽmŽ¯¼ŹĀ"], + encodeOffsets: [ + [124437, 30983] + ] + } + }, { + type: "Feature", + id: "3310", + properties: { + name: "台州市", + cp: [121.1353, 28.6688], + childNum: 7 + }, + geometry: { + type: "Polygon", + coordinates: ["@@lV„IVWVz@bXJl@Xal@°„nLll@nVxnV„K@UJVbƒ¦°„k`UIWJXnƚ@bUJ„Xl@lb„Wn@UzVV@bVVšmVnnJVXna‚bšKUKnUVVUnVLlKVLXa„Jm£@mU@WanaU_°@VWnV@UVWnIVVVKlXœÒlK@wVK„L°m„@„„l@ô„Kšw„ĉƾůUƒl£@»UƒVk„m@ƅUƒƒaÛIŏmUk@m„w@a™£ƒWk@ţšƒIm±@ankôUlaU™Uw¯ƒōaƒbÇbţm™ÞšÞVĖ„b„l@š@n‚VXxƒbUl@XmbƒŽ¯lUUU™W@ÛI±xU@mƒb@bmJ@bUzƒV@b¯bƒKUa¯KV_@Kk@@mWIƒ@lUU›b@bkVm@kwUÇU_WKU@Ux™@ƒVUnllX@Vn‚J@UXV@bWL@lUbbVLUJ@z‚V@lnbWbnnnJVŽ@L"], + encodeOffsets: [ + [123312, 29526] + ] + } + }, { + type: "Feature", + id: "3307", + properties: { + name: "金华市", + cp: [120.0037, 29.1028], + childNum: 8 + }, + geometry: { + type: "Polygon", + coordinates: ["@@nbVb„@VbUVlb@VUnVxk`lXnJlbnƒlL@bX@Vƒ@klƒV@nLnx@JlI„V‚U@VUVn„VV„I@WVLVbVKXbWnXl@VlXUx„b@ŽlVUbl„œlVUšIÜVnalKX@@bV@@aUUlUƒwUw„@naWW„UVaUUšaVb„LlxXJVk°ƒUƒlkU¥@k„a@LVlXLVlšVWznVn@lxšJl_@WX_@mVa„a@alU@kVVna„KVLlK„b@UUaVašbnUWmXU@k@yVI@ařWmXIVJl_¯ƒ„¥UaVI@ƒLmUUw@mkkmK¯ƒk@Wbk@WI@aUyUXƒJkU@bU@WLUyƒXUbkbW`UVVkKmbUaVUƒUK™£@KVUUUm@UWkXWaUKƒV@b¯ƒ¯mU™V@UkƒmW@kkKƒwUƒmkkVUI@WlkUamL@Wk_Wƒ@UVm@Ua¯KWXk@Uxm@UK@xV„mV@Xk@UVV¼@‚VLUb™Uƒ„U@ƒyULUbVlU@@XlVUVVbƒU@lXXVW@XUVl@@VUVƒÈn@VVU„@lVa@„U„mL@`X@`WL@VUX@lUL@xlx"], + encodeOffsets: [ + [122119, 29948] + ] + } + }, { + type: "Feature", + id: "3308", + properties: { + name: "衢州市", + cp: [118.6853, 28.8666], + childNum: 5 + }, + geometry: { + type: "Polygon", + coordinates: ["@@XkVKnwl@@aVK@UšwnL‚K@aÞaš¹@Kb@UVaUaVaVK@k°V„UllnL@„V@šxV@œšV@VV„m„_Wa„m@wlaÞbn@lL@WnLšk@V@VlK@nkVVb@blKXklakw@wVK@kVW@UXK@_‚W@_nKVƒ@ƒUb@kVƒUUm@„ÇVU@Uk@VU@WUXWW@k„VUaVUkU@WWXUKk@Ukmm¯LmmƒUJUIWJkImmƒ_—±WLkKm£@aVUmKUnƒLmWUkVmw@¥U„LVWm@WUka@UmmLmm@@bUX™@@WUIm@UVUK@UVUUU™VVJmb@b„Xn‚mVƒ¼nnn¦mJUVƒL„V@VW@UzUlVnUbl`UnVl@XU@kl@bmÈUx™Vk@@J@„ƒ¼W@ÅaVVnzmVƒ„@WJk@kWJ@ƒlXbWbXxmVnšlLXb@°lKVXnWšbWV„„X„mbV@Xl‚bšI@Kn@@x@šVLlm"], + encodeOffsets: [ + [121185, 30184] + ] + } + }, { + type: "Feature", + id: "3306", + properties: { + name: "绍兴市", + cp: [120.564, 29.7565], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@„x@„˜VnnVJnIVJV_VKXblUXJlŽlLUŽUnU@UVVX@ŽmVUUUJl„XUlbV@@V„LVmX@@XlaVJVXXJ@b‚@XU„@lUšJ„È‚bœ¤Ō„JšçV™UUnml@@kna@wšWVU@LVKV@namwkIUwmƒnmlaVL„kUmVUkmmIUak@VmUUVUƒWV_kK@U„K‚bnkWy„U@ƒ@UXwl@VUÞUVak±VUUU@mlI@™™wXWƒIWbUKkLUKVmUUmVVL™LambUWmIUm™nUU@aUUVym@ƒXkak@ƒW@z@lWVXnmV™aUbVb@VƒakLUKƒLmbUU@lkV@bƒbUb@nW`@Xk`™Ikwm@mUXy™UUkWKUk@Kƒb@lV¦klV„¯„UlWIkwƒKUa™bVVUbƒVXXmbƒ@Vx„xkVVV@bU@@aW@kLmb@lVUIVKmL@bUV@bUV@L„a˜lnUV@nbVbUlVXšJVUnx"], + encodeOffsets: [ + [122997, 30561] + ] + } + }, { + type: "Feature", + id: "3304", + properties: { + name: "嘉兴市", + cp: [120.9155, 30.6354], + childNum: 6 + }, + geometry: { + type: "Polygon", + coordinates: ["@@@blIX@@VÜVUnn@l‚k„lKnI°Þl`²LVKVbnbVaVLUVn@W¦@VkVVb„@VI„`@blLnL‚aX@„VVb@U‚@XlVa„@@kVaUKV»U_lWXUƒƒ@alb„k@VllnLVKn@@UVIUw@y°IVVXU@VV@lw„m@wVkƾaœJ‚LkΡƧƒ™l™LÝUmW¯ķÿĉ¥ƒIŋŽWn™èkVƧU¯ÅmlVx@V¯aƒz„Ž@„@JU@U¦m@@šnVmn@V„LV‚"], + encodeOffsets: [ + [123233, 31382] + ] + } + }, { + type: "Feature", + id: "3305", + properties: { + name: "湖州市", + cp: [119.8608, 30.7782], + childNum: 4 + }, + geometry: { + type: "Polygon", + coordinates: ["@@kLlƒkm@VmÛU@UW@kJ@aUƒK@UnmmU@™maÛL@JWUUKUwUIUJ@XƒKWV@Vk@UIUmVk@mm@ÅnmaUVkL@VƒKmLVbU@klU@ÝbV™@mVUKV™@wUkVƒ—ƒmIUJ@nVV@L™akJWbUIka@UmKmLKmmƒUUVk@@nmLX`WXUV@Ž@nUl™kmlU@Ub„„ƒxVVšIlV„Žšnn„@@n˜„UҚ@„°n@@xmb@„VbnV@šš„@b@`@L@L@x@blVklVbnnV@‚aXb°VlU@W„b°U„LXWVUV™„™VwÈwÜ»ĸaĠnUVw²X@V@lVU@wlaUUVm@knUV›"], + encodeOffsets: [ + [123379, 31500] + ] + } + }], + UTF8Encoding: !0 + } + }), d("echarts/chart/gauge", ["require", "./base", "../util/shape/GaugePointer", "zrender/shape/Text", "zrender/shape/Line", "zrender/shape/Rectangle", "zrender/shape/Circle", "zrender/shape/Sector", "../config", "../util/ecData", "../util/accMath", "zrender/tool/util", "../chart"], function(p) { + function B(l, s, m, i, r) { + u.call(this, l, s, m, i, r), this.refresh(i) + } + var u = p("./base"), + x = p("../util/shape/GaugePointer"), + j = p("zrender/shape/Text"), + y = p("zrender/shape/Line"), + z = p("zrender/shape/Rectangle"), + A = p("zrender/shape/Circle"), + v = p("zrender/shape/Sector"), + q = p("../config"); + q.gauge = { + zlevel: 0, + z: 2, + center: ["50%", "50%"], + clickable: !0, + legendHoverLink: !0, + radius: "75%", + startAngle: 225, + endAngle: -45, + min: 0, + max: 100, + splitNumber: 10, + axisLine: { + show: !0, + lineStyle: { + color: [ + [0.2, "#228b22"], + [0.8, "#48b"], + [1, "#ff4500"] + ], + width: 30 + } + }, + axisTick: { + show: !0, + splitNumber: 5, + length: 8, + lineStyle: { + color: "#eee", + width: 1, + type: "solid" + } + }, + axisLabel: { + show: !0, + textStyle: { + color: "auto" + } + }, + splitLine: { + show: !0, + length: 30, + lineStyle: { + color: "#eee", + width: 2, + type: "solid" + } + }, + pointer: { + show: !0, + length: "80%", + width: 8, + color: "auto" + }, + title: { + show: !0, + offsetCenter: [0, "-40%"], + textStyle: { + color: "#333", + fontSize: 15 + } + }, + detail: { + show: !0, + backgroundColor: "rgba(0,0,0,0)", + borderWidth: 0, + borderColor: "#ccc", + width: 100, + height: 40, + offsetCenter: [0, "40%"], + textStyle: { + color: "auto", + fontSize: 30 + } + } + }; + var w = p("../util/ecData"), + D = p("../util/accMath"), + C = p("zrender/tool/util"); + return B.prototype = { + type: q.CHART_TYPE_GAUGE, + _buildShape: function() { + var a = this.series; + this._paramsMap = {}, this.selectedMap = {}; + for (var m = 0, l = a.length; l > m; m++) { + a[m].type === q.CHART_TYPE_GAUGE && (this.selectedMap[a[m].name] = !0, a[m] = this.reformOption(a[m]), this.legendHoverLink = a[m].legendHoverLink || this.legendHoverLink, this._buildSingleGauge(m), this.buildMark(m)) + } + this.addShapeList() + }, + _buildSingleGauge: function(a) { + var i = this.series[a]; + this._paramsMap[a] = { + center: this.parseCenter(this.zr, i.center), + radius: this.parseRadius(this.zr, i.radius), + startAngle: i.startAngle.toFixed(2) - 0, + endAngle: i.endAngle.toFixed(2) - 0 + }, this._paramsMap[a].totalAngle = this._paramsMap[a].startAngle - this._paramsMap[a].endAngle, this._colorMap(a), this._buildAxisLine(a), this._buildSplitLine(a), this._buildAxisTick(a), this._buildAxisLabel(a), this._buildPointer(a), this._buildTitle(a), this._buildDetail(a) + }, + _buildAxisLine: function(G) { + var Q = this.series[G]; + if (Q.axisLine.show) { + for (var J, L, m = Q.min, M = Q.max - m, O = this._paramsMap[G], P = O.center, K = O.startAngle, I = O.totalAngle, T = O.colorArray, S = Q.axisLine.lineStyle, F = this.parsePercent(S.width, O.radius[1]), N = O.radius[1], E = N - F, R = K, W = 0, H = T.length; H > W; W++) { + L = K - I * (T[W][0] - m) / M, J = this._getSector(P, E, N, L, R, T[W][1], S, Q.zlevel, Q.z), R = L, J._animationAdd = "r", w.set(J, "seriesIndex", G), w.set(J, "dataIndex", W), this.shapeList.push(J) + } + } + }, + _buildSplitLine: function(H) { + var R = this.series[H]; + if (R.splitLine.show) { + for (var K, N, o, P = this._paramsMap[H], Q = R.splitNumber, L = R.min, J = R.max - L, M = R.splitLine, W = this.parsePercent(M.length, P.radius[1]), T = M.lineStyle, G = T.color, O = P.center, F = P.startAngle * Math.PI / 180, S = P.totalAngle * Math.PI / 180, X = P.radius[1], I = X - W, E = 0; Q >= E; E++) { + K = F - S / Q * E, N = Math.sin(K), o = Math.cos(K), this.shapeList.push(new y({ + zlevel: R.zlevel, + z: R.z + 1, + hoverable: !1, + style: { + xStart: O[0] + o * X, + yStart: O[1] - N * X, + xEnd: O[0] + o * I, + yEnd: O[1] - N * I, + strokeColor: "auto" === G ? this._getColor(H, L + J / Q * E) : G, + lineType: T.type, + lineWidth: T.width, + shadowColor: T.shadowColor, + shadowBlur: T.shadowBlur, + shadowOffsetX: T.shadowOffsetX, + shadowOffsetY: T.shadowOffsetY + } + })) + } + } + }, + _buildAxisTick: function(H) { + var T = this.series[H]; + if (T.axisTick.show) { + for (var L, P, o, R = this._paramsMap[H], S = T.splitNumber, N = T.min, K = T.max - N, O = T.axisTick, Y = O.splitNumber, X = this.parsePercent(O.length, R.radius[1]), G = O.lineStyle, Q = G.color, F = R.center, W = R.startAngle * Math.PI / 180, Z = R.totalAngle * Math.PI / 180, J = R.radius[1], E = J - X, I = 0, M = S * Y; M >= I; I++) { + I % Y !== 0 && (L = W - Z / M * I, P = Math.sin(L), o = Math.cos(L), this.shapeList.push(new y({ + zlevel: T.zlevel, + z: T.z + 1, + hoverable: !1, + style: { + xStart: F[0] + o * J, + yStart: F[1] - P * J, + xEnd: F[0] + o * E, + yEnd: F[1] - P * E, + strokeColor: "auto" === Q ? this._getColor(H, N + K / M * I) : Q, + lineType: G.type, + lineWidth: G.width, + shadowColor: G.shadowColor, + shadowBlur: G.shadowBlur, + shadowOffsetX: G.shadowOffsetX, + shadowOffsetY: G.shadowOffsetY + } + }))) + } + } + }, + _buildAxisLabel: function(G) { + var R = this.series[G]; + if (R.axisLabel.show) { + for (var J, M, N, P, Q = R.splitNumber, K = R.min, I = R.max - K, L = R.axisLabel.textStyle, T = this.getFont(L), F = L.color, O = this._paramsMap[G], E = O.center, S = O.startAngle, V = O.totalAngle, H = O.radius[1] - this.parsePercent(R.splitLine.length, O.radius[1]) - 5, a = 0; Q >= a; a++) { + P = D.accAdd(K, D.accMul(D.accDiv(I, Q), a)), J = S - V / Q * a, M = Math.sin(J * Math.PI / 180), N = Math.cos(J * Math.PI / 180), J = (J + 360) % 360, this.shapeList.push(new j({ + zlevel: R.zlevel, + z: R.z + 1, + hoverable: !1, + style: { + x: E[0] + N * H, + y: E[1] - M * H, + color: "auto" === F ? this._getColor(G, P) : F, + text: this._getLabelText(R.axisLabel.formatter, P), + textAlign: J >= 110 && 250 >= J ? "left" : 70 >= J || J >= 290 ? "right" : "center", + textBaseline: J >= 10 && 170 >= J ? "top" : J >= 190 && 350 >= J ? "bottom" : "middle", + textFont: T, + shadowColor: L.shadowColor, + shadowBlur: L.shadowBlur, + shadowOffsetX: L.shadowOffsetX, + shadowOffsetY: L.shadowOffsetY + } + })) + } + } + }, + _buildPointer: function(s) { + var K = this.series[s]; + if (K.pointer.show) { + var F = K.max - K.min, + m = K.pointer, + H = this._paramsMap[s], + J = this.parsePercent(m.length, H.radius[1]), + G = this.parsePercent(m.width, H.radius[1]), + E = H.center, + M = this._getValue(s); + M = M < K.max ? M : K.max; + var L = (H.startAngle - H.totalAngle / F * (M - K.min)) * Math.PI / 180, + n = "auto" === m.color ? this._getColor(s, M) : m.color, + I = new x({ + zlevel: K.zlevel, + z: K.z + 1, + clickable: this.query(K, "clickable"), + style: { + x: E[0], + y: E[1], + r: J, + startAngle: H.startAngle * Math.PI / 180, + angle: L, + color: n, + width: G, + shadowColor: m.shadowColor, + shadowBlur: m.shadowBlur, + shadowOffsetX: m.shadowOffsetX, + shadowOffsetY: m.shadowOffsetY + }, + highlightStyle: { + brushType: "fill", + width: G > 2 ? 2 : G / 2, + color: "#fff" + } + }); + w.pack(I, this.series[s], s, this.series[s].data[0], 0, this.series[s].data[0].name, M), this.shapeList.push(I), this.shapeList.push(new A({ + zlevel: K.zlevel, + z: K.z + 2, + hoverable: !1, + style: { + x: E[0], + y: E[1], + r: m.width / 2.5, + color: "#fff" + } + })) + } + }, + _buildTitle: function(a) { + var M = this.series[a]; + if (M.title.show) { + var F = M.data[0], + I = null != F.name ? F.name : ""; + if ("" !== I) { + var J = M.title, + K = J.offsetCenter, + L = J.textStyle, + G = L.color, + E = this._paramsMap[a], + H = E.center[0] + this.parsePercent(K[0], E.radius[1]), + N = E.center[1] + this.parsePercent(K[1], E.radius[1]); + this.shapeList.push(new j({ + zlevel: M.zlevel, + z: M.z + (Math.abs(H - E.center[0]) + Math.abs(N - E.center[1]) < 2 * L.fontSize ? 2 : 1), + hoverable: !1, + style: { + x: H, + y: N, + color: "auto" === G ? this._getColor(a) : G, + text: I, + textAlign: "center", + textFont: this.getFont(L), + shadowColor: L.shadowColor, + shadowBlur: L.shadowBlur, + shadowOffsetX: L.shadowOffsetX, + shadowOffsetY: L.shadowOffsetY + } + })) + } + } + }, + _buildDetail: function(E) { + var M = this.series[E]; + if (M.detail.show) { + var G = M.detail, + J = G.offsetCenter, + r = G.backgroundColor, + K = G.textStyle, + L = K.color, + H = this._paramsMap[E], + F = this._getValue(E), + I = H.center[0] - G.width / 2 + this.parsePercent(J[0], H.radius[1]), + N = H.center[1] + this.parsePercent(J[1], H.radius[1]); + this.shapeList.push(new z({ + zlevel: M.zlevel, + z: M.z + (Math.abs(I + G.width / 2 - H.center[0]) + Math.abs(N + G.height / 2 - H.center[1]) < K.fontSize ? 2 : 1), + hoverable: !1, + style: { + x: I, + y: N, + width: G.width, + height: G.height, + brushType: "both", + color: "auto" === r ? this._getColor(E, F) : r, + lineWidth: G.borderWidth, + strokeColor: G.borderColor, + shadowColor: G.shadowColor, + shadowBlur: G.shadowBlur, + shadowOffsetX: G.shadowOffsetX, + shadowOffsetY: G.shadowOffsetY, + text: this._getLabelText(G.formatter, F), + textFont: this.getFont(K), + textPosition: "inside", + textColor: "auto" === L ? this._getColor(E, F) : L + } + })) + } + }, + _getValue: function(a) { + return this.getDataFromOption(this.series[a].data[0]) + }, + _colorMap: function(m) { + var J = this.series[m], + E = J.min, + F = J.max - E, + l = J.axisLine.lineStyle.color; + l instanceof Array || (l = [ + [1, l] + ]); + for (var G = [], H = 0, I = l.length; I > H; H++) { + G.push([l[H][0] * F + E, l[H][1]]) + } + this._paramsMap[m].colorArray = G + }, + _getColor: function(m, s) { + null == s && (s = this._getValue(m)); + for (var o = this._paramsMap[m].colorArray, r = 0, l = o.length; l > r; r++) { + if (o[r][0] >= s) { + return o[r][1] + } + } + return o[o.length - 1][1] + }, + _getSector: function(m, K, F, G, l, H, I, J, E) { + return new v({ + zlevel: J, + z: E, + hoverable: !1, + style: { + x: m[0], + y: m[1], + r0: K, + r: F, + startAngle: G, + endAngle: l, + brushType: "fill", + color: H, + shadowColor: I.shadowColor, + shadowBlur: I.shadowBlur, + shadowOffsetX: I.shadowOffsetX, + shadowOffsetY: I.shadowOffsetY + } + }) + }, + _getLabelText: function(a, i) { + if (a) { + if ("function" == typeof a) { + return a.call(this.myChart, i) + } + if ("string" == typeof a) { + return a.replace("{value}", i) + } + } + return i + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() + } + }, C.inherits(B, u), p("../chart").define("gauge", B), B + }), d("echarts/util/shape/GaugePointer", ["require", "zrender/shape/Base", "zrender/tool/util", "./normalIsCover"], function(a) { + function m(i) { + j.call(this, i) + } + var j = a("zrender/shape/Base"), + l = a("zrender/tool/util"); + return m.prototype = { + type: "gauge-pointer", + buildPath: function(q, x) { + var s = x.r, + u = x.width, + p = x.angle, + v = x.x - Math.cos(p) * u * (u >= s / 3 ? 1 : 2), + w = x.y + Math.sin(p) * u * (u >= s / 3 ? 1 : 2); + p = x.angle - Math.PI / 2, q.moveTo(v, w), q.lineTo(x.x + Math.cos(p) * u, x.y - Math.sin(p) * u), q.lineTo(x.x + Math.cos(x.angle) * s, x.y - Math.sin(x.angle) * s), q.lineTo(x.x - Math.cos(p) * u, x.y + Math.sin(p) * u), q.lineTo(v, w) + }, + getRect: function(q) { + if (q.__rect) { + return q.__rect + } + var v = 2 * q.width, + r = q.x, + s = q.y, + p = r + Math.cos(q.angle) * q.r, + u = s - Math.sin(q.angle) * q.r; + return q.__rect = { + x: Math.min(r, p) - v, + y: Math.min(s, u) - v, + width: Math.abs(r - p) + v, + height: Math.abs(s - u) + v + }, q.__rect + }, + isCover: a("./normalIsCover") + }, l.inherits(m, j), m + }), d("echarts/chart/funnel", ["require", "./base", "zrender/shape/Text", "zrender/shape/Line", "zrender/shape/Polygon", "../config", "../util/ecData", "../util/number", "zrender/tool/util", "zrender/tool/color", "zrender/tool/area", "../chart"], function(p) { + function B(l, s, m, i, r) { + u.call(this, l, s, m, i, r), this.refresh(i) + } + var u = p("./base"), + x = p("zrender/shape/Text"), + j = p("zrender/shape/Line"), + y = p("zrender/shape/Polygon"), + z = p("../config"); + z.funnel = { + zlevel: 0, + z: 2, + clickable: !0, + legendHoverLink: !0, + x: 80, + y: 60, + x2: 80, + y2: 60, + min: 0, + max: 100, + minSize: "0%", + maxSize: "100%", + sort: "descending", + gap: 0, + funnelAlign: "center", + itemStyle: { + normal: { + borderColor: "#fff", + borderWidth: 1, + label: { + show: !0, + position: "outer" + }, + labelLine: { + show: !0, + length: 10, + lineStyle: { + width: 1, + type: "solid" + } + } + }, + emphasis: { + borderColor: "rgba(0,0,0,0)", + borderWidth: 1, + label: { + show: !0 + }, + labelLine: { + show: !0 + } + } + } + }; + var A = p("../util/ecData"), + v = p("../util/number"), + q = p("zrender/tool/util"), + w = p("zrender/tool/color"), + C = p("zrender/tool/area"); + return B.prototype = { + type: z.CHART_TYPE_FUNNEL, + _buildShape: function() { + var m = this.series, + s = this.component.legend; + this._paramsMap = {}, this._selected = {}, this.selectedMap = {}; + for (var o, r = 0, l = m.length; l > r; r++) { + if (m[r].type === z.CHART_TYPE_FUNNEL) { + if (m[r] = this.reformOption(m[r]), this.legendHoverLink = m[r].legendHoverLink || this.legendHoverLink, o = m[r].name || "", this.selectedMap[o] = s ? s.isSelected(o) : !0, !this.selectedMap[o]) { + continue + } + this._buildSingleFunnel(r), this.buildMark(r) + } + } + this.addShapeList() + }, + _buildSingleFunnel: function(H) { + var T = this.component.legend, + L = this.series[H], + O = this._mapData(H), + D = this._getLocation(H); + this._paramsMap[H] = { + location: D, + data: O + }; + for (var P, R = 0, S = [], K = 0, N = O.length; N > K; K++) { + P = O[K].name, this.selectedMap[P] = T ? T.isSelected(P) : !0, this.selectedMap[P] && !isNaN(O[K].value) && (S.push(O[K]), R++) + } + if (0 !== R) { + for (var Y, X, G, Q, F = this._buildFunnelCase(H), W = L.funnelAlign, aa = L.gap, J = R > 1 ? (D.height - (R - 1) * aa) / R : D.height, E = D.y, I = "descending" === L.sort ? this._getItemWidth(H, S[0].value) : v.parsePercent(L.minSize, D.width), M = "descending" === L.sort ? 1 : 0, Z = D.centerX, l = [], K = 0, N = S.length; N > K; K++) { + if (P = S[K].name, this.selectedMap[P] && !isNaN(S[K].value)) { + switch (Y = N - 2 >= K ? this._getItemWidth(H, S[K + M].value) : "descending" === L.sort ? v.parsePercent(L.minSize, D.width) : v.parsePercent(L.maxSize, D.width), W) { + case "left": + X = D.x; + break; + case "right": + X = D.x + D.width - I; + break; + default: + X = Z - I / 2 + } + G = this._buildItem(H, S[K]._index, T ? T.getColor(P) : this.zr.getColor(S[K]._index), X, E, I, Y, J, W), E += J + aa, Q = G.style.pointList, l.unshift([Q[0][0] - 10, Q[0][1]]), l.push([Q[1][0] + 10, Q[1][1]]), 0 === K && (0 === I ? (Q = l.pop(), "center" == W && (l[0][0] += 10), "right" == W && (l[0][0] = Q[0]), l[0][1] -= "center" == W ? 10 : 15, 1 == N && (Q = G.style.pointList)) : (l[l.length - 1][1] -= 5, l[0][1] -= 5)), I = Y + } + } + F && (l.unshift([Q[3][0] - 10, Q[3][1]]), l.push([Q[2][0] + 10, Q[2][1]]), 0 === I ? (Q = l.pop(), "center" == W && (l[0][0] += 10), "right" == W && (l[0][0] = Q[0]), l[0][1] += "center" == W ? 10 : 15) : (l[l.length - 1][1] += 5, l[0][1] += 5), F.style.pointList = l) + } + }, + _buildFunnelCase: function(m) { + var s = this.series[m]; + if (this.deepQuery([s, this.option], "calculable")) { + var o = this._paramsMap[m].location, + r = 10, + l = { + hoverable: !1, + style: { + pointListd: [ + [o.x - r, o.y - r], + [o.x + o.width + r, o.y - r], + [o.x + o.width + r, o.y + o.height + r], + [o.x - r, o.y + o.height + r] + ], + brushType: "stroke", + lineWidth: 1, + strokeColor: s.calculableHolderColor || this.ecTheme.calculableHolderColor || z.calculableHolderColor + } + }; + return A.pack(l, s, m, void 0, -1), this.setCalculable(l), l = new y(l), this.shapeList.push(l), l + } + }, + _getLocation: function(m) { + var G = this.series[m], + s = this.zr.getWidth(), + D = this.zr.getHeight(), + l = this.parsePercent(G.x, s), + E = this.parsePercent(G.y, D), + F = null == G.width ? s - l - this.parsePercent(G.x2, s) : this.parsePercent(G.width, s); + return { + x: l, + y: E, + width: F, + height: null == G.height ? D - E - this.parsePercent(G.y2, D) : this.parsePercent(G.height, D), + centerX: l + F / 2 + } + }, + _mapData: function(m) { + function G(a, i) { + return "-" === a.value ? 1 : "-" === i.value ? -1 : i.value - a.value + } + + function s(a, n) { + return -G(a, n) + } + for (var D = this.series[m], l = q.clone(D.data), E = 0, F = l.length; F > E; E++) { + l[E]._index = E + } + return "none" != D.sort && l.sort("descending" === D.sort ? G : s), l + }, + _buildItem: function(F, O, H, K, s, L, N, I, G) { + var J = this.series, + R = J[F], + Q = R.data[O], + E = this.getPolygon(F, O, H, K, s, L, N, I, G); + A.pack(E, J[F], F, J[F].data[O], O, J[F].data[O].name), this.shapeList.push(E); + var M = this.getLabel(F, O, H, K, s, L, N, I, G); + A.pack(M, J[F], F, J[F].data[O], O, J[F].data[O].name), this.shapeList.push(M), this._needLabel(R, Q, !1) || (M.invisible = !0); + var D = this.getLabelLine(F, O, H, K, s, L, N, I, G); + this.shapeList.push(D), this._needLabelLine(R, Q, !1) || (D.invisible = !0); + var P = [], + S = []; + return this._needLabelLine(R, Q, !0) && (P.push(D.id), S.push(D.id)), this._needLabel(R, Q, !0) && (P.push(M.id), S.push(E.id)), E.hoverConnect = P, M.hoverConnect = S, E + }, + _getItemWidth: function(m, I) { + var D = this.series[m], + E = this._paramsMap[m].location, + l = D.min, + F = D.max, + G = v.parsePercent(D.minSize, E.width), + H = v.parsePercent(D.maxSize, E.width); + return (I - l) * (H - G) / (F - l) + G + }, + getPolygon: function(F, O, I, K, m, M, N, J, H) { + var R, Q = this.series[F], + E = Q.data[O], + L = [E, Q], + D = this.deepMerge(L, "itemStyle.normal") || {}, + P = this.deepMerge(L, "itemStyle.emphasis") || {}, + S = this.getItemStyleColor(D.color, F, O, E) || I, + G = this.getItemStyleColor(P.color, F, O, E) || ("string" == typeof S ? w.lift(S, -0.2) : S); + switch (H) { + case "left": + R = K; + break; + case "right": + R = K + (M - N); + break; + default: + R = K + (M - N) / 2 + } + var o = { + zlevel: Q.zlevel, + z: Q.z, + clickable: this.deepQuery(L, "clickable"), + style: { + pointList: [ + [K, m], + [K + M, m], + [R + N, m + J], + [R, m + J] + ], + brushType: "both", + color: S, + lineWidth: D.borderWidth, + strokeColor: D.borderColor + }, + highlightStyle: { + color: G, + lineWidth: P.borderWidth, + strokeColor: P.borderColor + } + }; + return this.deepQuery([E, Q, this.option], "calculable") && (this.setCalculable(o), o.draggable = !0), new y(o) + }, + getLabel: function(G, S, J, n, O, Q, R, M, V) { + var F, P = this.series[G], + E = P.data[S], + T = this._paramsMap[G].location, + Z = q.merge(q.clone(E.itemStyle) || {}, P.itemStyle), + I = "normal", + D = Z[I].label, + H = D.textStyle || {}, + K = Z[I].labelLine.length, + Y = this.getLabelText(G, S, I), + m = this.getFont(H), + N = J; + D.position = D.position || Z.normal.label.position, "inner" === D.position || "inside" === D.position || "center" === D.position ? (F = V, N = Math.max(Q, R) / 2 > C.getTextWidth(Y, m) ? "#fff" : w.reverse(J)) : F = "left" === D.position ? "right" : "left"; + var X = { + zlevel: P.zlevel, + z: P.z + 1, + style: { + x: this._getLabelPoint(D.position, n, T, Q, R, K, V), + y: O + M / 2, + color: H.color || N, + text: Y, + textAlign: H.align || F, + textBaseline: H.baseline || "middle", + textFont: m + } + }; + return I = "emphasis", D = Z[I].label || D, H = D.textStyle || H, K = Z[I].labelLine.length || K, D.position = D.position || Z.normal.label.position, Y = this.getLabelText(G, S, I), m = this.getFont(H), N = J, "inner" === D.position || "inside" === D.position || "center" === D.position ? (F = V, N = Math.max(Q, R) / 2 > C.getTextWidth(Y, m) ? "#fff" : w.reverse(J)) : F = "left" === D.position ? "right" : "left", X.highlightStyle = { + x: this._getLabelPoint(D.position, n, T, Q, R, K, V), + color: H.color || N, + text: Y, + textAlign: H.align || F, + textFont: m, + brushType: "fill" + }, new x(X) + }, + getLabelText: function(m, G, s) { + var D = this.series, + l = D[m], + E = l.data[G], + F = this.deepQuery([E, l], "itemStyle." + s + ".label.formatter"); + return F ? "function" == typeof F ? F.call(this.myChart, { + seriesIndex: m, + seriesName: l.name || "", + series: l, + dataIndex: G, + data: E, + name: E.name, + value: E.value + }) : "string" == typeof F ? F = F.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}").replace("{a0}", l.name).replace("{b0}", E.name).replace("{c0}", E.value) : void 0 : E.name + }, + getLabelLine: function(F, Q, I, L, M, O, P, J, K) { + var T = this.series[F], + S = T.data[Q], + E = this._paramsMap[F].location, + N = q.merge(q.clone(S.itemStyle) || {}, T.itemStyle), + D = "normal", + R = N[D].labelLine, + W = N[D].labelLine.length, + H = R.lineStyle || {}, + a = N[D].label; + a.position = a.position || N.normal.label.position; + var G = { + zlevel: T.zlevel, + z: T.z + 1, + hoverable: !1, + style: { + xStart: this._getLabelLineStartPoint(L, E, O, P, K), + yStart: M + J / 2, + xEnd: this._getLabelPoint(a.position, L, E, O, P, W, K), + yEnd: M + J / 2, + strokeColor: H.color || I, + lineType: H.type, + lineWidth: H.width + } + }; + return D = "emphasis", R = N[D].labelLine || R, W = N[D].labelLine.length || W, H = R.lineStyle || H, a = N[D].label || a, a.position = a.position, G.highlightStyle = { + xEnd: this._getLabelPoint(a.position, L, E, O, P, W, K), + strokeColor: H.color || I, + lineType: H.type, + lineWidth: H.width + }, new j(G) + }, + _getLabelPoint: function(m, G, s, D, l, E, F) { + switch (m = "inner" === m || "inside" === m ? "center" : m) { + case "center": + return "center" == F ? G + D / 2 : "left" == F ? G + 10 : G + D - 10; + case "left": + return "auto" === E ? s.x - 10 : "center" == F ? s.centerX - Math.max(D, l) / 2 - E : "right" == F ? G - (l > D ? l - D : 0) - E : s.x - E; + default: + return "auto" === E ? s.x + s.width + 10 : "center" == F ? s.centerX + Math.max(D, l) / 2 + E : "right" == F ? s.x + s.width + E : G + Math.max(D, l) + E + } + }, + _getLabelLineStartPoint: function(m, s, o, r, l) { + return "center" == l ? s.centerX : r > o ? m + Math.min(o, r) / 2 : m + Math.max(o, r) / 2 + }, + _needLabel: function(a, m, l) { + return this.deepQuery([m, a], "itemStyle." + (l ? "emphasis" : "normal") + ".label.show") + }, + _needLabelLine: function(a, m, l) { + return this.deepQuery([m, a], "itemStyle." + (l ? "emphasis" : "normal") + ".labelLine.show") + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() + } + }, q.inherits(B, u), p("../chart").define("funnel", B), B + }), d("echarts/chart/eventRiver", ["require", "./base", "../layout/eventRiver", "zrender/shape/Polygon", "../component/axis", "../component/grid", "../component/dataZoom", "../config", "../util/ecData", "../util/date", "zrender/tool/util", "zrender/tool/color", "../chart"], function(m) { + function z(l, C, s, i, A) { + q.call(this, l, C, s, i, A); + var B = this; + B._ondragend = function() { + B.isDragend = !0 + }, this.refresh(i) + } + var q = m("./base"), + v = m("../layout/eventRiver"), + j = m("zrender/shape/Polygon"); + m("../component/axis"), m("../component/grid"), m("../component/dataZoom"); + var w = m("../config"); + w.eventRiver = { + zlevel: 0, + z: 2, + clickable: !0, + legendHoverLink: !0, + itemStyle: { + normal: { + borderColor: "rgba(0,0,0,0)", + borderWidth: 1, + label: { + show: !0, + position: "inside", + formatter: "{b}" + } + }, + emphasis: { + borderColor: "rgba(0,0,0,0)", + borderWidth: 1, + label: { + show: !0 + } + } + } + }; + var x = m("../util/ecData"), + y = m("../util/date"), + u = m("zrender/tool/util"), + p = m("zrender/tool/color"); + return z.prototype = { + type: w.CHART_TYPE_EVENTRIVER, + _buildShape: function() { + var n = this.series; + this.selectedMap = {}, this._dataPreprocessing(); + for (var A = this.component.legend, r = [], l = 0; l < n.length; l++) { + if (n[l].type === this.type) { + n[l] = this.reformOption(n[l]), this.legendHoverLink = n[l].legendHoverLink || this.legendHoverLink; + var s = n[l].name || ""; + if (this.selectedMap[s] = A ? A.isSelected(s) : !0, !this.selectedMap[s]) { + continue + } + this.buildMark(l), r.push(this.series[l]) + } + } + v(r, this._intervalX, this.component.grid.getArea()), this._drawEventRiver(), this.addShapeList() + }, + _dataPreprocessing: function() { + for (var A, H, C = this.series, E = 0, s = C.length; s > E; E++) { + if (C[E].type === this.type) { + A = this.component.xAxis.getAxis(C[E].xAxisIndex || 0); + for (var F = 0, G = C[E].data.length; G > F; F++) { + H = C[E].data[F].evolution; + for (var D = 0, B = H.length; B > D; D++) { + H[D].timeScale = A.getCoord(y.getNewDate(H[D].time) - 0), H[D].valueScale = Math.pow(H[D].value, 0.8) + } + } + } + } + this._intervalX = Math.round(this.component.grid.getWidth() / 40) + }, + _drawEventRiver: function() { + for (var a = this.series, r = 0; r < a.length; r++) { + var l = a[r].name || ""; + if (a[r].type === this.type && this.selectedMap[l]) { + for (var o = 0; o < a[r].data.length; o++) { + this._drawEventBubble(a[r].data[o], r, o) + } + } + } + }, + _drawEventBubble: function(A, J, C) { + var F = this.series, + G = F[J], + I = G.name || "", + D = G.data[C], + E = [D, G], + M = this.component.legend, + L = M ? M.getColor(I) : this.zr.getColor(J), + r = this.deepMerge(E, "itemStyle.normal") || {}, + H = this.deepMerge(E, "itemStyle.emphasis") || {}, + a = this.getItemStyleColor(r.color, J, C, D) || L, + K = this.getItemStyleColor(H.color, J, C, D) || ("string" == typeof a ? p.lift(a, -0.2) : a), + N = this._calculateControlPoints(A), + B = { + zlevel: G.zlevel, + z: G.z, + clickable: this.deepQuery(E, "clickable"), + style: { + pointList: N, + smooth: "spline", + brushType: "both", + lineJoin: "round", + color: a, + lineWidth: r.borderWidth, + strokeColor: r.borderColor + }, + highlightStyle: { + color: K, + lineWidth: H.borderWidth, + strokeColor: H.borderColor + }, + draggable: "vertical", + ondragend: this._ondragend + }; + B = new j(B), this.addLabel(B, G, D, A.name), x.pack(B, F[J], J, F[J].data[C], C, F[J].data[C].name), this.shapeList.push(B) + }, + _calculateControlPoints: function(B) { + var I = this._intervalX, + C = B.y, + E = B.evolution, + A = E.length; + if (!(1 > A)) { + for (var F = [], G = [], H = 0; A > H; H++) { + F.push(E[H].timeScale), G.push(E[H].valueScale) + } + var D = []; + D.push([F[0], C]); + var H = 0; + for (H = 0; A - 1 > H; H++) { + D.push([(F[H] + F[H + 1]) / 2, G[H] / -2 + C]) + } + for (D.push([(F[H] + (F[H] + I)) / 2, G[H] / -2 + C]), D.push([F[H] + I, C]), D.push([(F[H] + (F[H] + I)) / 2, G[H] / 2 + C]), H = A - 1; H > 0; H--) { + D.push([(F[H] + F[H - 1]) / 2, G[H - 1] / 2 + C]) + } + return D + } + }, + ondragend: function(a, i) { + this.isDragend && a.target && (i.dragOut = !0, i.dragIn = !0, i.needRefresh = !1, this.isDragend = !1) + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this.backupShapeList(), this._buildShape() + } + }, u.inherits(z, q), m("../chart").define("eventRiver", z), z + }), d("echarts/layout/eventRiver", ["require"], function() { + function l(t, A, E) { + function G(r, x) { + var s = r.importance, + u = x.importance; + return s > u ? -1 : u > s ? 1 : 0 + } + for (var H = 4, C = 0; C < t.length; C++) { + for (var z = 0; z < t[C].data.length; z++) { + null == t[C].data[z].weight && (t[C].data[z].weight = 1); + for (var D = 0, K = 0; K < t[C].data[z].evolution.length; K++) { + D += t[C].data[z].evolution[K].valueScale + } + t[C].data[z].importance = D * t[C].data[z].weight + } + t[C].data.sort(G) + } + for (var C = 0; C < t.length; C++) { + null == t[C].weight && (t[C].weight = 1); + for (var D = 0, z = 0; z < t[C].data.length; z++) { + D += t[C].data[z].weight + } + t[C].importance = D * t[C].weight + } + t.sort(G); + for (var J = Number.MAX_VALUE, q = 0, C = 0; C < t.length; C++) { + for (var z = 0; z < t[C].data.length; z++) { + for (var K = 0; K < t[C].data[z].evolution.length; K++) { + var F = t[C].data[z].evolution[K].timeScale; + J = Math.min(J, F), q = Math.max(q, F) + } + } + } + J = ~~J, q = ~~q; + for (var n = function() { + var i = q - J + 1 + ~~A; + if (0 >= i) { + return [0] + } + for (var r = []; i--;) { + r.push(0) + } + return r + }(), I = n.slice(0), M = [], w = 0, a = 0, C = 0; C < t.length; C++) { + for (var z = 0; z < t[C].data.length; z++) { + var v = t[C].data[z]; + v.time = [], v.value = []; + for (var B, L = 0, K = 0; K < t[C].data[z].evolution.length; K++) { + B = t[C].data[z].evolution[K], v.time.push(B.timeScale), v.value.push(B.valueScale), L = Math.max(L, B.valueScale) + } + o(v, A, J), v.y = j(I, v, function(i, r) { + return i.ypx[r] + }), v._offset = j(n, v, function() { + return H + }), w = Math.max(w, v.y + L), a = Math.max(a, v._offset), M.push(v) + } + } + p(M, E, w, a) + } + + function p(v, E, x, A) { + for (var q = E.height, B = A / q > 0.5 ? 0.5 : 1, C = E.y, D = (E.height - A) / x, y = 0, w = v.length; w > y; y++) { + var z = v[y]; + z.y = C + D * z.y + z._offset * B, delete z.time, delete z.value, delete z.xpx, delete z.ypx, delete z._offset; + for (var G = z.evolution, F = 0, u = G.length; u > F; F++) { + G[F].valueScale *= D + } + } + } + + function m(r, w, s, u) { + if (r === s) { + throw new Error("x0 is equal with x1!!!") + } + if (w === u) { + return function() { + return w + } + } + var q = (w - u) / (r - s), + v = (u * r - w * s) / (r - s); + return function(a) { + return q * a + v + } + } + + function o(q, B, x) { + var i = ~~B, + y = q.time.length; + q.xpx = [], q.ypx = []; + for (var z, A = 0, v = 0, u = 0, w = 0, D = 0; y > A; A++) { + v = ~~q.time[A], w = q.value[A] / 2, A === y - 1 ? (u = v + i, D = 0) : (u = ~~q.time[A + 1], D = q.value[A + 1] / 2), z = m(v, w, u, D); + for (var C = v; u > C; C++) { + q.xpx.push(C - x), q.ypx.push(z(C)) + } + } + q.xpx.push(u - x), q.ypx.push(D) + } + + function j(s, y, u) { + for (var v, q = 0, w = y.xpx.length, x = 0; w > x; x++) { + v = u(y, x), q = Math.max(q, v + s[y.xpx[x]]) + } + for (x = 0; w > x; x++) { + v = u(y, x), s[y.xpx[x]] = q + v + } + return q + } + return l + }), d("echarts/chart/venn", ["require", "./base", "zrender/shape/Text", "zrender/shape/Circle", "zrender/shape/Path", "../config", "../util/ecData", "zrender/tool/util", "../chart"], function(m) { + function y(l, z, r, i, s) { + p.call(this, l, z, r, i, s), this.refresh(i) + } + var p = m("./base"), + u = m("zrender/shape/Text"), + j = m("zrender/shape/Circle"), + v = m("zrender/shape/Path"), + w = m("../config"); + w.venn = { + zlevel: 0, + z: 1, + calculable: !1 + }; + var x = m("../util/ecData"), + q = m("zrender/tool/util"); + return y.prototype = { + type: w.CHART_TYPE_VENN, + _buildShape: function() { + this.selectedMap = {}, this._symbol = this.option.symbolList, this._queryTarget, this._dropBoxList = [], this._vennDataCounter = 0; + for (var a = this.series, r = this.component.legend, l = 0; l < a.length; l++) { + if (a[l].type === w.CHART_TYPE_VENN) { + a[l] = this.reformOption(a[l]); + var o = a[l].name || ""; + if (this.selectedMap[o] = r ? r.isSelected(o) : !0, !this.selectedMap[o]) { + continue + } + this._buildVenn(l) + } + } + this.addShapeList() + }, + _buildVenn: function(B) { + var L, D, G = this.series[B], + z = G.data; + z[0].value > z[1].value ? (L = this.zr.getHeight() / 3, D = L * Math.sqrt(z[1].value) / Math.sqrt(z[0].value)) : (D = this.zr.getHeight() / 3, L = D * Math.sqrt(z[0].value) / Math.sqrt(z[1].value)); + var H = this.zr.getWidth() / 2 - L, + J = (L + D) / 2 * Math.sqrt(z[2].value) / Math.sqrt((z[0].value + z[1].value) / 2), + K = L + D; + 0 !== z[2].value && (K = this._getCoincideLength(z[0].value, z[1].value, z[2].value, L, D, J, Math.abs(L - D), L + D)); + var E = H + K, + C = this.zr.getHeight() / 2; + if (this._buildItem(B, 0, z[0], H, C, L), this._buildItem(B, 1, z[1], E, C, D), 0 !== z[2].value && z[2].value !== z[0].value && z[2].value !== z[1].value) { + var F = (L * L - D * D) / (2 * K) + K / 2, + N = K / 2 - (L * L - D * D) / (2 * K), + M = Math.sqrt(L * L - F * F), + A = 0, + I = 0; + z[0].value > z[1].value && H + F > E && (I = 1), z[0].value < z[1].value && H + N > E && (A = 1), this._buildCoincideItem(B, 2, z[2], H + F, C - M, C + M, L, D, A, I) + } + }, + _getCoincideLength: function(C, M, E, H, z, I, K, L) { + var F = (H * H - z * z) / (2 * I) + I / 2, + D = I / 2 - (H * H - z * z) / (2 * I), + G = Math.acos(F / H), + P = Math.acos(D / z), + O = H * H * Math.PI, + B = G * H * H - F * H * Math.sin(G) + P * z * z - D * z * Math.sin(P), + J = B / O, + A = E / C, + N = Math.abs(J / A); + return N > 0.999 && 1.001 > N ? I : 0.999 >= N ? (L = I, I = (I + K) / 2, this._getCoincideLength(C, M, E, H, z, I, K, L)) : (K = I, I = (I + L) / 2, this._getCoincideLength(C, M, E, H, z, I, K, L)) + }, + _buildItem: function(z, H, B, E, s, F) { + var G = this.series, + C = G[z], + A = this.getCircle(z, H, B, E, s, F); + if (x.pack(A, C, z, B, H, B.name), this.shapeList.push(A), C.itemStyle.normal.label.show) { + var D = this.getLabel(z, H, B, E, s, F); + x.pack(D, C, z, C.data[H], H, C.data[H].name), this.shapeList.push(D) + } + }, + _buildCoincideItem: function(B, M, F, J, o, L, H, E, I, P) { + var O = this.series, + A = O[B], + K = [F, A], + z = this.deepMerge(K, "itemStyle.normal") || {}, + N = this.deepMerge(K, "itemStyle.emphasis") || {}, + Q = z.color || this.zr.getColor(M), + D = N.color || this.zr.getColor(M), + s = "M" + J + "," + o + "A" + H + "," + H + ",0," + I + ",1," + J + "," + L + "A" + E + "," + E + ",0," + P + ",1," + J + "," + o, + C = { + color: Q, + path: s + }, + G = { + zlevel: A.zlevel, + z: A.z, + style: C, + highlightStyle: { + color: D, + lineWidth: N.borderWidth, + strokeColor: N.borderColor + } + }; + G = new v(G), G.buildPathArray && (G.style.pathArray = G.buildPathArray(C.path)), x.pack(G, O[B], 0, F, M, F.name), this.shapeList.push(G) + }, + getCircle: function(z, I, B, E, F, G) { + var H = this.series[z], + C = [B, H], + A = this.deepMerge(C, "itemStyle.normal") || {}, + D = this.deepMerge(C, "itemStyle.emphasis") || {}, + K = A.color || this.zr.getColor(I), + J = D.color || this.zr.getColor(I), + a = { + zlevel: H.zlevel, + z: H.z, + clickable: !0, + style: { + x: E, + y: F, + r: G, + brushType: "fill", + opacity: 1, + color: K + }, + highlightStyle: { + color: J, + lineWidth: D.borderWidth, + strokeColor: D.borderColor + } + }; + return this.deepQuery([B, H, this.option], "calculable") && (this.setCalculable(a), a.draggable = !0), new j(a) + }, + getLabel: function(B, L, E, n, H, J) { + var K = this.series[B], + F = K.itemStyle, + D = [E, K], + G = this.deepMerge(D, "itemStyle.normal") || {}, + O = "normal", + N = F[O].label, + A = N.textStyle || {}, + I = this.getLabelText(L, E, O), + z = this.getFont(A), + M = G.color || this.zr.getColor(L), + P = A.fontSize || 12, + C = { + zlevel: K.zlevel, + z: K.z, + style: { + x: n, + y: H - J - P, + color: A.color || M, + text: I, + textFont: z, + textAlign: "center" + } + }; + return new u(C) + }, + getLabelText: function(r, B, s) { + var z = this.series, + l = z[0], + A = this.deepQuery([B, l], "itemStyle." + s + ".label.formatter"); + return A ? "function" == typeof A ? A(l.name, B.name, B.value) : "string" == typeof A ? (A = A.replace("{a}", "{a0}").replace("{b}", "{b0}").replace("{c}", "{c0}"), A = A.replace("{a0}", l.name).replace("{b0}", B.name).replace("{c0}", B.value)) : void 0 : B.name + }, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this._buildShape() + } + }, q.inherits(y, p), m("../chart").define("venn", y), y + }), d("echarts/chart/treemap", ["require", "./base", "zrender/tool/area", "zrender/shape/Rectangle", "zrender/shape/Text", "zrender/shape/Line", "../layout/TreeMap", "../data/Tree", "../config", "../util/ecData", "zrender/config", "zrender/tool/event", "zrender/tool/util", "zrender/tool/color", "../chart"], function(q) { + function C(l, G, m, i, s) { + v.call(this, l, G, m, i, s), this.refresh(i); + var F = this; + F._onclick = function(a) { + return F.__onclick(a) + }, F.zr.on(E.EVENT.CLICK, F._onclick) + } + var v = q("./base"), + y = q("zrender/tool/area"), + j = q("zrender/shape/Rectangle"), + z = q("zrender/shape/Text"), + A = q("zrender/shape/Line"), + B = q("../layout/TreeMap"), + w = q("../data/Tree"), + u = q("../config"); + u.treemap = { + zlevel: 0, + z: 1, + calculable: !1, + clickable: !0, + center: ["50%", "50%"], + size: ["80%", "80%"], + root: "", + itemStyle: { + normal: { + label: { + show: !0, + x: 5, + y: 12, + textStyle: { + align: "left", + color: "#000", + fontFamily: "Arial", + fontSize: 13, + fontStyle: "normal", + fontWeight: "normal" + } + }, + breadcrumb: { + show: !0, + textStyle: {} + }, + borderWidth: 1, + borderColor: "#ccc", + childBorderWidth: 1, + childBorderColor: "#ccc" + }, + emphasis: {} + } + }; + var x = q("../util/ecData"), + E = q("zrender/config"), + D = (q("zrender/tool/event"), q("zrender/tool/util")), + p = q("zrender/tool/color"); + return C.prototype = { + type: u.CHART_TYPE_TREEMAP, + refresh: function(m) { + this.clear(), m && (this.option = m, this.series = this.option.series), this._treesMap = {}; + for (var s = this.series, o = this.component.legend, r = 0; r < s.length; r++) { + if (s[r].type === u.CHART_TYPE_TREEMAP) { + s[r] = this.reformOption(s[r]); + var l = s[r].name || ""; + if (this.selectedMap[l] = o ? o.isSelected(l) : !0, !this.selectedMap[l]) { + continue + } + this._buildSeries(s[r], r) + } + } + }, + _buildSeries: function(a, o) { + var l = w.fromOptionData(a.name, a.data); + this._treesMap[o] = l; + var m = a.root && l.getNodeById(a.root) || l.root; + this._buildTreemap(m, o) + }, + _buildTreemap: function(I, Z) { + for (var N = this.shapeList, R = 0; R < N.length;) { + var s = N[R]; + x.get(s, "seriesIndex") === Z ? (this.zr.delShape(N[R]), N.splice(R, 1)) : R++ + } + for (var S = N.length, Y = this.series[Z], P = Y.itemStyle, M = this.parsePercent(Y.size[0], this.zr.getWidth()) || 400, ac = this.parsePercent(Y.size[1], this.zr.getHeight()) || 500, ab = this.parseCenter(this.zr, Y.center), H = ab[0] - 0.5 * M, T = ab[1] - 0.5 * ac, G = M * ac, aa = 0, ag = [], K = I.children, R = 0; R < K.length; R++) { + aa += K[R].data.value + } + for (var F = 0; F < K.length; F++) { + ag.push(K[F].data.value * G / aa) + } + for (var J = new B({ + x: H, + y: T, + width: M, + height: ac + }), O = J.run(ag), ae = 0; ae < O.length; ae++) { + var m = K[ae].data, + Q = O[ae], + ad = [m.itemStyle, P], + af = this.deepMerge(ad); + af.normal.color || (af.normal.color = this.zr.getColor(ae)), af.emphasis.color || (af.emphasis.color = af.normal.color), this._buildItem(m, af, Q, Z, ae), m.children && this._buildChildrenTreemap(m.children, af, Q, Z) + } + this.query(Y, "itemStyle.normal.breadcrumb.show") && this._buildBreadcrumb(I, Z, H, T + ac); + for (var R = S; R < N.length; R++) { + this.zr.addShape(N[R]) + } + }, + _buildItem: function(m, I, s, F, l) { + var G = this.series, + H = this.getRectangle(m, I, s); + x.pack(H, G[F], F, m, l, m.name), this.shapeList.push(H) + }, + getRectangle: function(a, K, m) { + var G = K.emphasis, + H = K.normal, + I = this.getLabel(K, m, a.name, a.value), + J = this.option.hoverable, + F = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: J, + clickable: !0, + style: D.merge({ + x: m.x, + y: m.y, + width: m.width, + height: m.height, + brushType: "both", + color: H.color, + lineWidth: H.borderWidth, + strokeColor: H.borderColor + }, I.style, !0), + highlightStyle: D.merge({ + color: G.color, + lineWidth: G.borderWidth, + strokeColor: G.borderColor + }, I.highlightStyle, !0) + }; + return new j(F) + }, + getLabel: function(H, R, K, n) { + var N = H.normal.label.textStyle, + P = [H.emphasis.label.textStyle, N], + Q = this.deepMerge(P), + L = H.normal.label.formatter, + J = this.getLabelText(K, n, L), + M = this.getFont(N), + W = y.getTextWidth(J, M), + T = y.getTextHeight(J, M), + G = this.deepQuery([H.emphasis, H.normal], "label.formatter"), + O = this.getLabelText(K, n, G), + F = this.getFont(Q), + S = y.getTextWidth(J, F), + X = y.getTextHeight(J, F); + H.normal.label.show ? (H.normal.label.x + W > R.width || H.normal.label.y + T > R.height) && (J = "") : J = "", H.emphasis.label.show ? (Q.x + S > R.width || Q.y + X > R.height) && (O = "") : O = ""; + var I = { + style: { + textX: R.x + H.normal.label.x, + textY: R.y + H.normal.label.y, + text: J, + textPosition: "specific", + textColor: N.color, + textFont: M + }, + highlightStyle: { + textX: R.x + H.emphasis.label.x, + textY: R.y + H.emphasis.label.y, + text: O, + textColor: Q.color, + textPosition: "specific" + } + }; + return I + }, + getLabelText: function(a, m, l) { + return l ? "function" == typeof l ? l.call(this.myChart, a, m) : "string" == typeof l ? (l = l.replace("{b}", "{b0}").replace("{c}", "{c0}"), l = l.replace("{b0}", a).replace("{c0}", m)) : void 0 : a + }, + _buildChildrenTreemap: function(G, P, J, L) { + for (var m = J.width * J.height, M = 0, O = [], K = 0; K < G.length; K++) { + M += G[K].value + } + for (var I = 0; I < G.length; I++) { + O.push(G[I].value * m / M) + } + for (var S = new B({ + x: J.x, + y: J.y, + width: J.width, + height: J.height + }), R = S.run(O), F = P.normal.childBorderWidth, N = P.normal.childBorderColor, s = 0; s < R.length; s++) { + var Q = R[s], + T = []; + J.y.toFixed(2) !== Q.y.toFixed(2) && T.push(this._getLine(Q.x, Q.y, Q.x + Q.width, Q.y, F, N)), J.x.toFixed(2) !== Q.x.toFixed(2) && T.push(this._getLine(Q.x, Q.y, Q.x, Q.y + Q.height, F, N)), (J.y + J.height).toFixed(2) !== (Q.y + Q.height).toFixed(2) && T.push(this._getLine(Q.x, Q.y + Q.height, Q.x + Q.width, Q.y + Q.height, F, N)), (J.x + J.width).toFixed(2) !== (Q.x + Q.width).toFixed(2) && T.push(this._getLine(Q.x + Q.width, Q.y, Q.x + Q.width, Q.y + Q.height, F, N)); + for (var H = 0; H < T.length; H++) { + x.set(T[H], "seriesIndex", L), this.shapeList.push(T[H]) + } + } + }, + _getLine: function(m, I, r, F, l, G) { + var H = { + zlevel: this.getZlevelBase(), + z: this.getZBase(), + hoverable: !1, + style: { + xStart: m, + yStart: I, + xEnd: r, + yEnd: F, + lineWidth: l, + strokeColor: G + } + }; + return new A(H) + }, + _buildBreadcrumb: function(F, N, H, J) { + for (var m = [], L = F; L;) { + m.unshift(L.data.name), L = L.parent + } + for (var M = this.series[N], I = this.query(M, "itemStyle.normal.breadcrumb.textStyle") || {}, G = this.query(M, "itemStyle.emphasis.breadcrumb.textStyle") || {}, P = { + y: J + 10, + textBaseline: "top", + textAlign: "left", + color: I.color, + textFont: this.getFont(I) + }, K = { + brushType: "fill", + color: G.color || p.lift(I.color, -0.3), + textFont: this.getFont(G) + }, o = 0; o < m.length; o++) { + var O = new z({ + zlevel: this.getZlevelBase(), + z: this.getZBase(), + style: D.merge({ + x: H, + text: m[o] + (m.length - 1 - o ? " > " : "") + }, P), + clickable: !0, + highlightStyle: K + }); + x.set(O, "seriesIndex", N), x.set(O, "name", m[o]), H += O.getRect(O.style).width, this.shapeList.push(O) + } + }, + __onclick: function(m) { + var G = m.target; + if (G) { + var r = x.get(G, "seriesIndex"), + s = x.get(G, "name"), + l = this._treesMap[r], + F = l.getNodeById(s); + F && F.children.length && this._buildTreemap(F, r) + } + } + }, D.inherits(C, v), q("../chart").define("treemap", C), C + }), d("echarts/layout/TreeMap", ["require"], function() { + function a(i) { + ({ + x: i.x, + y: i.y, + width: i.width, + height: i.height + }); + this.x = i.x, this.y = i.y, this.width = i.width, this.height = i.height + } + return a.prototype.run = function(i) { + var j = []; + return this._squarify(i, { + x: this.x, + y: this.y, + width: this.width, + height: this.height + }, j), j + }, a.prototype._squarify = function(p, B, u) { + var x = "VERTICAL", + j = B.width, + y = B.height; + B.width < B.height && (x = "HORIZONTAL", j = B.height, y = B.width); + for (var z = this._getShapeListInAbstractRow(p, j, y), A = 0; A < z.length; A++) { + z[A].x = 0, z[A].y = 0; + for (var v = 0; A > v; v++) { + z[A].y += z[v].height + } + } + var q = {}; + if ("VERTICAL" == x) { + for (var w = 0; w < z.length; w++) { + u.push({ + x: z[w].x + B.x, + y: z[w].y + B.y, + width: z[w].width, + height: z[w].height + }) + } + q = { + x: z[0].width + B.x, + y: B.y, + width: B.width - z[0].width, + height: B.height + } + } else { + for (var D = 0; D < z.length; D++) { + u.push({ + x: z[D].y + B.x, + y: z[D].x + B.y, + width: z[D].height, + height: z[D].width + }) + } + q = { + x: B.x, + y: B.y + z[0].width, + width: B.width, + height: B.height - z[0].width + } + } + var C = p.slice(z.length); + 0 !== C.length && this._squarify(C, q, u) + }, a.prototype._getShapeListInAbstractRow = function(l, r, m) { + if (1 === l.length) { + return [{ + width: r, + height: m + }] + } + for (var p = 1; p < l.length; p++) { + var j = this._placeFixedNumberRectangles(l.slice(0, p), r, m), + q = this._placeFixedNumberRectangles(l.slice(0, p + 1), r, m); + if (this._isFirstBetter(j, q)) { + return j + } + } + }, a.prototype._placeFixedNumberRectangles = function(m, z, q) { + for (var v = m.length, j = [], w = 0, x = 0; x < m.length; x++) { + w += m[x] + } + for (var y = w / q, u = 0; v > u; u++) { + var p = q * m[u] / w; + j.push({ + width: y, + height: p + }) + } + return j + }, a.prototype._isFirstBetter = function(j, o) { + var l = j[0].height / j[0].width; + l = l > 1 ? 1 / l : l; + var m = o[0].height / o[0].width; + return m = m > 1 ? 1 / m : m, Math.abs(l - 1) <= Math.abs(m - 1) ? !0 : !1 + }, a + }), d("echarts/data/Tree", ["require", "zrender/tool/util"], function(a) { + function m(i, n) { + this.id = i, this.depth = 0, this.height = 0, this.children = [], this.parent = null, this.data = n || null + } + + function j(i) { + this.root = new m(i) + } + var l = a("zrender/tool/util"); + return m.prototype.add = function(i) { + var n = this.children; + i.parent !== this && (n.push(i), i.parent = this) + }, m.prototype.remove = function(n) { + var p = this.children, + o = l.indexOf(p, n); + o >= 0 && (p.splice(o, 1), n.parent = null) + }, m.prototype.traverse = function(n, p) { + n.call(p, this); + for (var o = 0; o < this.children.length; o++) { + this.children[o].traverse(n, p) + } + }, m.prototype.updateDepthAndHeight = function(o) { + var r = 0; + this.depth = o; + for (var p = 0; p < this.children.length; p++) { + var q = this.children[p]; + q.updateDepthAndHeight(o + 1), q.height > r && (r = q.height) + } + this.height = r + 1 + }, m.prototype.getNodeById = function(n) { + if (this.id === n) { + return this + } + for (var p = 0; p < this.children.length; p++) { + var o = this.children[p].getNodeById(n); + if (o) { + return o + } + } + }, j.prototype.traverse = function(i, n) { + this.root.traverse(i, n) + }, j.prototype.getSubTree = function(i) { + var p = this.getNodeById(i); + if (p) { + var o = new j(p.id); + return o.root = p, o + } + }, j.prototype.getNodeById = function(i) { + return this.root.getNodeById(i) + }, j.fromOptionData = function(p, q) { + function i(s, w) { + var x = new m(s.name, s); + w.add(x); + var y = s.children; + if (y) { + for (var z = 0; z < y.length; z++) { + i(y[z], x) + } + } + } + var t = new j(p), + u = t.root; + u.data = { + name: p, + children: q + }; + for (var v = 0; v < q.length; v++) { + i(q[v], u) + } + return t.root.updateDepthAndHeight(0), t + }, j.fromGraph = function(p) { + function v(A) { + for (var n = p.getNodeById(A.id), e = 0; e < n.outEdges.length; e++) { + var o = n.outEdges[e], + z = w[o.node2.id]; + A.children.push(z), v(z) + } + } + for (var i = {}, w = {}, x = 0; x < p.nodes.length; x++) { + var y, t = p.nodes[x]; + 0 === t.inDegree() ? (i[t.id] = new j(t.id), y = i[t.id].root) : y = new m(t.id), y.data = t.data, w[t.id] = y + } + var q = []; + for (var u in i) { + v(i[u].root), i[u].root.updateDepthAndHeight(0), q.push(i[u]) + } + return q + }, j + }), d("echarts/chart/tree", ["require", "./base", "../util/shape/Icon", "zrender/shape/Image", "zrender/shape/Line", "zrender/shape/BezierCurve", "../layout/Tree", "../data/Tree", "../config", "../util/ecData", "zrender/config", "zrender/tool/event", "zrender/tool/util", "../chart"], function(p) { + function B(l, s, m, i, r) { + u.call(this, l, s, m, i, r), this.refresh(i) + } + var u = p("./base"), + x = 0.618, + j = p("../util/shape/Icon"), + y = p("zrender/shape/Image"), + z = p("zrender/shape/Line"), + A = p("zrender/shape/BezierCurve"), + v = p("../layout/Tree"), + q = p("../data/Tree"), + w = p("../config"); + w.tree = { + zlevel: 1, + z: 2, + calculable: !1, + clickable: !0, + rootLocation: {}, + orient: "vertical", + symbol: "circle", + symbolSize: 20, + nodePadding: 30, + layerPadding: 100, + itemStyle: { + normal: { + label: { + show: !0 + }, + lineStyle: { + width: 1, + color: "#777", + type: "curve" + } + }, + emphasis: {} + } + }; + var D = p("../util/ecData"), + C = (p("zrender/config"), p("zrender/tool/event"), p("zrender/tool/util")); + return B.prototype = { + type: w.CHART_TYPE_TREE, + _buildShape: function(m, s) { + var o = m.data[0]; + this.tree = q.fromOptionData(o.name, o.children), this.tree.root.data = o, this._setTreeShape(m), this.tree.traverse(function(a) { + this._buildItem(a, m, s), a.children.length > 0 && this._buildLink(a, m) + }, this); + var r = m.roam === !0 || "move" === m.roam, + l = m.roam === !0 || "scale" === m.roam; + this.zr.modLayer(this.getZlevelBase(), { + panable: r, + zoomable: l + }), (this.query("markPoint.effect.show") || this.query("markLine.effect.show")) && this.zr.modLayer(w.EFFECT_ZLEVEL, { + panable: r, + zoomable: l + }), this.addShapeList() + }, + _buildItem: function(E, N, G) { + var J = [E.data, N], + L = this.deepQuery(J, "symbol"), + M = this.deepMerge(J, "itemStyle.normal") || {}, + H = this.deepMerge(J, "itemStyle.emphasis") || {}, + F = M.color || this.zr.getColor(), + I = H.color || this.zr.getColor(), + O = -E.layout.angle || 0; + E.id === this.tree.root.id && (O = 0); + var o = "right"; + Math.abs(O) >= Math.PI / 2 && Math.abs(O) < 3 * Math.PI / 2 && (O += Math.PI, o = "left"); + var K = [O, E.layout.position[0], E.layout.position[1]], + a = new j({ + zlevel: this.getZlevelBase(), + z: this.getZBase() + 1, + rotation: K, + clickable: this.deepQuery(J, "clickable"), + style: { + x: E.layout.position[0] - 0.5 * E.layout.width, + y: E.layout.position[1] - 0.5 * E.layout.height, + width: E.layout.width, + height: E.layout.height, + iconType: L, + color: F, + brushType: "both", + lineWidth: M.borderWidth, + strokeColor: M.borderColor + }, + highlightStyle: { + color: I, + lineWidth: H.borderWidth, + strokeColor: H.borderColor + } + }); + a.style.iconType.match("image") && (a.style.image = a.style.iconType.replace(new RegExp("^image:\\/\\/"), ""), a = new y({ + rotation: K, + style: a.style, + highlightStyle: a.highlightStyle, + clickable: a.clickable, + zlevel: this.getZlevelBase(), + z: this.getZBase() + })), this.deepQuery(J, "itemStyle.normal.label.show") && (a.style.text = null == E.data.label ? E.id : E.data.label, a.style.textPosition = this.deepQuery(J, "itemStyle.normal.label.position"), "radial" === N.orient && "inside" !== a.style.textPosition && (a.style.textPosition = o), a.style.textColor = this.deepQuery(J, "itemStyle.normal.label.textStyle.color"), a.style.textFont = this.getFont(this.deepQuery(J, "itemStyle.normal.label.textStyle") || {})), this.deepQuery(J, "itemStyle.emphasis.label.show") && (a.highlightStyle.textPosition = this.deepQuery(J, "itemStyle.emphasis.label.position"), a.highlightStyle.textColor = this.deepQuery(J, "itemStyle.emphasis.label.textStyle.color"), a.highlightStyle.textFont = this.getFont(this.deepQuery(J, "itemStyle.emphasis.label.textStyle") || {})), D.pack(a, N, G, E.data, 0, E.id), this.shapeList.push(a) + }, + _buildLink: function(E, L) { + var F = L.itemStyle.normal.lineStyle; + if ("broken" === F.type) { + return void this._buildBrokenLine(E, F, L) + } + for (var H = 0; H < E.children.length; H++) { + var m = E.layout.position[0], + I = E.layout.position[1], + J = E.children[H].layout.position[0], + K = E.children[H].layout.position[1]; + switch (F.type) { + case "curve": + this._buildBezierCurve(E, E.children[H], F, L); + break; + case "broken": + break; + default: + var G = this._getLine(m, I, J, K, F); + this.shapeList.push(G) + } + } + }, + _buildBrokenLine: function(G, Q, J) { + var n = C.clone(Q); + n.type = "solid"; + var M = [], + O = G.layout.position[0], + P = G.layout.position[1], + K = J.orient, + I = G.children[0].layout.position[1], + L = O, + S = P + (I - P) * (1 - x), + F = G.children[0].layout.position[0], + N = S, + E = G.children[G.children.length - 1].layout.position[0], + R = S; + if ("horizontal" === K) { + var T = G.children[0].layout.position[0]; + L = O + (T - O) * (1 - x), S = P, F = L, N = G.children[0].layout.position[1], E = L, R = G.children[G.children.length - 1].layout.position[1] + } + M.push(this._getLine(O, P, L, S, n)), M.push(this._getLine(F, N, E, R, n)); + for (var H = 0; H < G.children.length; H++) { + T = G.children[H].layout.position[0], I = G.children[H].layout.position[1], "horizontal" === K ? N = I : F = T, M.push(this._getLine(F, N, T, I, n)) + } + this.shapeList = this.shapeList.concat(M) + }, + _getLine: function(m, s, o, r, l) { + return m === o && (m = o = this.subPixelOptimize(m, l.width)), s === r && (s = r = this.subPixelOptimize(s, l.width)), new z({ + zlevel: this.getZlevelBase(), + hoverable: !1, + style: C.merge({ + xStart: m, + yStart: s, + xEnd: o, + yEnd: r, + lineType: l.type, + strokeColor: l.color, + lineWidth: l.width + }, l, !0) + }) + }, + _buildBezierCurve: function(H, U, M, s) { + var R = x, + T = s.orient, + O = H.layout.position[0], + K = H.layout.position[1], + Q = U.layout.position[0], + X = U.layout.position[1], + G = O, + S = (X - K) * R + K, + F = Q, + W = (X - K) * (1 - R) + K; + if ("horizontal" === T) { + G = (Q - O) * R + O, S = K, F = (Q - O) * (1 - R) + O, W = X + } else { + if ("radial" === T) { + if (H.id === this.tree.root.id) { + G = (Q - O) * R + O, S = (X - K) * R + K, F = (Q - O) * (1 - R) + O, W = (X - K) * (1 - R) + K + } else { + var Z = H.layout.originPosition[0], + J = H.layout.originPosition[1], + E = U.layout.originPosition[0], + I = U.layout.originPosition[1], + N = this.tree.root.layout.position[0], + Y = this.tree.root.layout.position[1]; + G = Z, S = (I - J) * R + J, F = E, W = (I - J) * (1 - R) + J; + var n = (G - this.minX) / this.width * Math.PI * 2; + G = S * Math.cos(n) + N, S = S * Math.sin(n) + Y, n = (F - this.minX) / this.width * Math.PI * 2, F = W * Math.cos(n) + N, W = W * Math.sin(n) + Y + } + } + } + var P = new A({ + zlevel: this.getZlevelBase(), + hoverable: !1, + style: C.merge({ + xStart: O, + yStart: K, + cpX1: G, + cpY1: S, + cpX2: F, + cpY2: W, + xEnd: Q, + yEnd: X, + strokeColor: M.color, + lineWidth: M.width + }, M, !0) + }); + this.shapeList.push(P) + }, + _setTreeShape: function(E) { + var M = new v({ + nodePadding: E.nodePadding, + layerPadding: E.layerPadding + }); + this.tree.traverse(function(m) { + var a = [m.data, E], + e = this.deepQuery(a, "symbolSize"); + "number" == typeof e && (e = [e, e]), m.layout = { + width: e[0], + height: e[1] + } + }, this), M.run(this.tree); + var G = E.orient, + I = E.rootLocation.x, + l = E.rootLocation.y, + J = this.zr.getWidth(), + K = this.zr.getHeight(); + I = "center" === I ? 0.5 * J : this.parsePercent(I, J), l = "center" === l ? 0.5 * K : this.parsePercent(l, K), l = this.parsePercent(l, K), "horizontal" === G && (I = isNaN(I) ? 10 : I, l = isNaN(l) ? 0.5 * K : l), "radial" === G ? (I = isNaN(I) ? 0.5 * J : I, l = isNaN(l) ? 0.5 * K : l) : (I = isNaN(I) ? 0.5 * J : I, l = isNaN(l) ? 10 : l); + var L = this.tree.root.layout.position[0]; + if ("radial" === G) { + var F = 1 / 0, + H = 0, + N = 0; + this.tree.traverse(function(a) { + H = Math.max(H, a.layout.position[0]), F = Math.min(F, a.layout.position[0]), N = Math.max(N, a.layout.width) + }), this.width = H - F + 2 * N, this.minX = F + } + this.tree.traverse(function(s) { + var i, n; + if ("vertical" === G && "inverse" === E.direction) { + i = s.layout.position[0] - L + I, n = l - s.layout.position[1] + } else { + if ("vertical" === G) { + i = s.layout.position[0] - L + I, n = s.layout.position[1] + l + } else { + if ("horizontal" === G && "inverse" === E.direction) { + n = s.layout.position[0] - L + l, i = I - s.layout.position[1] + } else { + if ("horizontal" === G) { + n = s.layout.position[0] - L + l, i = s.layout.position[1] + I + } else { + i = s.layout.position[0], n = s.layout.position[1], s.layout.originPosition = [i, n]; + var a = n, + e = (i - F) / this.width * Math.PI * 2; + i = a * Math.cos(e) + I, n = a * Math.sin(e) + l, s.layout.angle = e + } + } + } + } + s.layout.position[0] = i, s.layout.position[1] = n + }, this) + }, + refresh: function(m) { + this.clear(), m && (this.option = m, this.series = this.option.series); + for (var s = this.series, o = this.component.legend, r = 0; r < s.length; r++) { + if (s[r].type === w.CHART_TYPE_TREE) { + s[r] = this.reformOption(s[r]); + var l = s[r].name || ""; + if (this.selectedMap[l] = o ? o.isSelected(l) : !0, !this.selectedMap[l]) { + continue + } + this._buildSeries(s[r], r) + } + } + }, + _buildSeries: function(a, i) { + this._buildShape(a, i) + } + }, C.inherits(B, u), p("../chart").define("tree", B), B + }), d("echarts/layout/Tree", ["require", "zrender/tool/vector"], function(a) { + function l(i) { + i = i || {}, this.nodePadding = i.nodePadding || 30, this.layerPadding = i.layerPadding || 100, this._layerOffsets = [], this._layers = [] + } + var j = a("zrender/tool/vector"); + return l.prototype.run = function(m) { + this._layerOffsets.length = 0; + for (var o = 0; o < m.root.height + 1; o++) { + this._layerOffsets[o] = 0, this._layers[o] = [] + } + this._updateNodeXPosition(m.root); + var n = m.root; + this._updateNodeYPosition(n, 0, n.layout.height) + }, l.prototype._updateNodeXPosition = function(m) { + var x = 1 / 0, + q = -(1 / 0); + m.layout.position = m.layout.position || j.create(); + for (var i = 0; i < m.children.length; i++) { + var u = m.children[i]; + this._updateNodeXPosition(u); + var v = u.layout.position[0]; + x > v && (x = v), v > q && (q = v) + } + m.layout.position[0] = m.children.length > 0 ? (x + q) / 2 : 0; + var w = this._layerOffsets[m.depth] || 0; + if (w > m.layout.position[0]) { + var p = w - m.layout.position[0]; + this._shiftSubtree(m, p); + for (var i = m.depth + 1; i < m.height + m.depth; i++) { + this._layerOffsets[i] += p + } + } + this._layerOffsets[m.depth] = m.layout.position[0] + m.layout.width + this.nodePadding, this._layers[m.depth].push(m) + }, l.prototype._shiftSubtree = function(m, o) { + m.layout.position[0] += o; + for (var n = 0; n < m.children.length; n++) { + this._shiftSubtree(m.children[n], o) + } + }, l.prototype._updateNodeYPosition = function(p, u, q) { + p.layout.position[1] = u; + for (var r = 0, m = 0; m < p.children.length; m++) { + r = Math.max(p.children[m].layout.height, r) + } + var s = this.layerPadding; + "function" == typeof s && (s = s(p.depth)); + for (var m = 0; m < p.children.length; m++) { + this._updateNodeYPosition(p.children[m], u + s + q, r) + } + }, l + }), d("echarts/chart/wordCloud", ["require", "./base", "zrender/shape/Text", "../layout/WordCloud", "../component/grid", "../component/dataRange", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/color", "../chart"], function(m) { + function y(l, z, r, i, s) { + p.call(this, l, z, r, i, s), this.refresh(i) + } + var p = m("./base"), + u = m("zrender/shape/Text"), + j = m("../layout/WordCloud"); + m("../component/grid"), m("../component/dataRange"); + var v = m("../config"), + w = m("../util/ecData"), + x = m("zrender/tool/util"), + q = m("zrender/tool/color"); + return v.wordCloud = { + zlevel: 0, + z: 2, + clickable: !0, + center: ["50%", "50%"], + size: ["40%", "40%"], + textRotation: [0, 90], + textPadding: 0, + autoSize: { + enable: !0, + minSize: 12 + }, + itemStyle: { + normal: { + textStyle: { + fontSize: function(a) { + return a.value + } + } + } + } + }, y.prototype = { + type: v.CHART_TYPE_WORDCLOUD, + refresh: function(a) { + a && (this.option = a, this.series = a.series), this._init() + }, + _init: function() { + var a = this.series; + this.backupShapeList(); + for (var r = this.component.legend, l = 0; l < a.length; l++) { + if (a[l].type === v.CHART_TYPE_WORDCLOUD) { + a[l] = this.reformOption(a[l]); + var o = a[l].name || ""; + if (this.selectedMap[o] = r ? r.isSelected(o) : !0, !this.selectedMap[o]) { + continue + } + this.buildMark(l), this._initSerie(a[l]) + } + } + }, + _initSerie: function(a) { + var D = a.itemStyle.normal.textStyle, + l = [this.parsePercent(a.size[0], this.zr.getWidth()) || 200, this.parsePercent(a.size[1], this.zr.getHeight()) || 200], + z = this.parseCenter(this.zr, a.center), + A = { + size: l, + wordletype: { + autoSizeCal: a.autoSize + }, + center: z, + rotate: a.textRotation, + padding: a.textPadding, + font: D.fontFamily, + fontSize: D.fontSize, + fontWeight: D.fontWeight, + fontStyle: D.fontStyle, + text: function(i) { + return i.name + }, + data: a.data + }, + B = new j(A), + C = this; + B.end(function(i) { + C._buildShapes(i) + }), B.start() + }, + _buildShapes: function(a) { + for (var n = a.length, l = 0; n > l; l++) { + this._buildTextShape(a[l], 0, l) + } + this.addShapeList() + }, + _buildTextShape: function(z, G, B) { + var l = this.series, + D = l[G], + F = D.name || "", + A = D.data[B], + C = [A, D], + J = this.component.legend, + I = J ? J.getColor(F) : this.zr.getColor(G), + r = this.deepMerge(C, "itemStyle.normal") || {}, + E = this.deepMerge(C, "itemStyle.emphasis") || {}, + n = this.getItemStyleColor(r.color, G, B, A) || I, + H = this.getItemStyleColor(E.color, G, B, A) || ("string" == typeof n ? q.lift(n, -0.2) : n), + K = new u({ + zlevel: D.zlevel, + z: D.z, + hoverable: !0, + clickable: this.deepQuery(C, "clickable"), + style: { + x: 0, + y: 0, + text: z.text, + color: n, + textFont: [z.style, z.weight, z.size + "px", z.font].join(" "), + textBaseline: "alphabetic", + textAlign: "center" + }, + highlightStyle: { + brushType: E.borderWidth ? "both" : "fill", + color: H, + lineWidth: E.borderWidth || 0, + strokeColor: E.borderColor + }, + position: [z.x, z.y], + rotation: [-z.rotate / 180 * Math.PI, 0, 0] + }); + w.pack(K, D, G, A, B, A.name), this.shapeList.push(K) + } + }, x.inherits(y, p), m("../chart").define("wordCloud", y), y + }), d("echarts/layout/WordCloud", ["require", "../layout/WordCloudRectZero", "zrender/tool/util"], function(a) { + function m(i) { + this._init(i) + } + var j = a("../layout/WordCloudRectZero"), + l = a("zrender/tool/util"); + return m.prototype = { + start: function() { + function v() { + B.totalArea = C, F.autoSizeCal.enable && B._autoCalTextSize(y, C, i, A, F.autoSizeCal.minSize), G.timer && clearInterval(G.timer), G.timer = setInterval(E, 0), E() + } + + function E() { + for (var n, p = +new Date, o = y.length; + new Date - p < G.timeInterval && ++D < o && G.timer;) { + n = y[D], n.x = u[0] >> 1, n.y = u[1] >> 1, B._cloudSprite(n, y, D), n.hasText && B._place(z, n, w) && (x.push(n), n.x -= u[0] >> 1, n.y -= u[1] >> 1) + } + D >= o && (B.stop(), B._fixTagPosition(x), G.endcallback(x)) + } + var z = null, + i = 0, + A = 0, + C = 0, + D = -1, + x = [], + w = null, + y = this.wordsdata, + G = this.defaultOption, + F = G.wordletype, + u = G.size, + B = this, + q = new j({ + type: F.type, + width: u[0], + height: u[1] + }); + return q.calculate(function(e) { + z = e.initarr, i = e.maxWit, A = e.maxHit, C = e.area, w = e.imgboard, v() + }, this), this + }, + _fixTagPosition: function(o) { + for (var r = this.defaultOption.center, p = 0, q = o.length; q > p; p++) { + o[p].x += r[0], o[p].y += r[1] + } + }, + stop: function() { + return this.defaultOption.timer && (clearInterval(this.defaultOption.timer), this.defaultOption.timer = null), this + }, + end: function(i) { + return i && (this.defaultOption.endcallback = i), this + }, + _init: function(i) { + this.defaultOption = {}, this._initProperty(i), this._initMethod(i), this._initCanvas(), this._initData(i.data) + }, + _initData: function(n) { + var p = this, + o = p.defaultOption; + this.wordsdata = n.map(function(i, q) { + return i.text = o.text.call(p, i, q), i.font = o.font.call(p, i, q), i.style = o.fontStyle.call(p, i, q), i.weight = o.fontWeight.call(p, i, q), i.rotate = o.rotate.call(p, i, q), i.size = ~~o.fontSize.call(p, i, q), i.padding = o.padding.call(p, i, q), i + }).sort(function(i, q) { + return q.value - i.value + }) + }, + _initMethod: function(q) { + function C(i) { + return i.name + } + + function v() { + return "sans-serif" + } + + function y() { + return "normal" + } + + function p(i) { + return i.value + } + + function z() { + return 0 + } + + function A(i) { + return function() { + return i[Math.round(Math.random() * (i.length - 1))] + } + } + + function B() { + return 0 + } + + function w(i) { + var n = i[0] / i[1]; + return function(o) { + return [n * (o *= 0.1) * Math.cos(o), o * Math.sin(o)] + } + } + + function u(r) { + var F = 4, + s = F * r[0] / r[1], + E = 0, + o = 0; + return function(i) { + var n = 0 > i ? -1 : 1; + switch (Math.sqrt(1 + 4 * n * i) - n & 3) { + case 0: + E += s; + break; + case 1: + o += F; + break; + case 2: + E -= s; + break; + default: + o -= F + } + return [E, o] + } + } + + function x(i) { + return "function" == typeof i ? i : function() { + return i + } + } + var D = this.defaultOption; + D.text = q.text ? x(q.text) : C, D.font = q.font ? x(q.font) : v, D.fontSize = q.fontSize ? x(q.fontSize) : p, D.fontStyle = q.fontStyle ? x(q.fontStyle) : y, D.fontWeight = q.fontWeight ? x(q.fontWeight) : y, D.rotate = q.rotate ? A(q.rotate) : z, D.padding = q.padding ? x(q.padding) : B, D.center = q.center, D.spiral = w, D.endcallback = function() {}, D.rectangularSpiral = u, D.archimedeanSpiral = w + }, + _initProperty: function(i) { + var n = this.defaultOption; + n.size = i.size || [256, 256], n.wordletype = i.wordletype, n.words = i.words || [], n.timeInterval = 1 / 0, n.timer = null, n.spirals = { + archimedean: n.archimedeanSpiral, + rectangular: n.rectangularSpiral + }, l.merge(n, { + size: [256, 256], + wordletype: { + type: "RECT", + areaPresent: 0.058, + autoSizeCal: { + enable: !0, + minSize: 12 + } + } + }) + }, + _initCanvas: function() { + var q, v = Math.PI / 180, + r = 64, + s = 2048, + p = 1; + "undefined" != typeof document ? (q = document.createElement("canvas"), q.width = 1, q.height = 1, p = Math.sqrt(q.getContext("2d").getImageData(0, 0, 1, 1).data.length >> 2), q.width = (r << 5) / p, q.height = s / p) : q = new Canvas(r << 5, s); + var u = q.getContext("2d"); + u.fillStyle = u.strokeStyle = "red", u.textAlign = "center", this.defaultOption.c = u, this.defaultOption.cw = r, this.defaultOption.ch = s, this.defaultOption.ratio = p, this.defaultOption.cloudRadians = v + }, + _cloudSprite: function(D, S, H) { + if (!D.sprite) { + var N = this.defaultOption.cw, + z = this.defaultOption.ch, + O = this.defaultOption.c, + Q = this.defaultOption.ratio, + R = this.defaultOption.cloudRadians; + O.clearRect(0, 0, (N << 5) / Q, z / Q); + var J = 0, + G = 0, + M = 0, + aa = S.length; + for (--H; ++H < aa;) { + D = S[H], O.save(), O.font = D.style + " " + D.weight + " " + ~~((D.size + 1) / Q) + "px " + D.font; + var Y = O.measureText(D.text + "m").width * Q, + C = D.size << 1; + if (D.rotate) { + var P = Math.sin(D.rotate * R), + B = Math.cos(D.rotate * R), + T = Y * B, + af = Y * P, + F = C * B, + A = C * P; + Y = Math.max(Math.abs(T + A), Math.abs(T - A)) + 31 >> 5 << 5, C = ~~Math.max(Math.abs(af + F), Math.abs(af - F)) + } else { + Y = Y + 31 >> 5 << 5 + } + if (C > M && (M = C), J + Y >= N << 5 && (J = 0, G += M, M = 0), G + C >= z) { + break + } + O.translate((J + (Y >> 1)) / Q, (G + (C >> 1)) / Q), D.rotate && O.rotate(D.rotate * R), O.fillText(D.text, 0, 0), D.padding && (O.lineWidth = 2 * D.padding, O.strokeText(D.text, 0, 0)), O.restore(), D.width = Y, D.height = C, D.xoff = J, D.yoff = G, D.x1 = Y >> 1, D.y1 = C >> 1, D.x0 = -D.x1, D.y0 = -D.y1, D.hasText = !0, J += Y + } + for (var E = O.getImageData(0, 0, (N << 5) / Q, z / Q).data, I = []; --H >= 0;) { + if (D = S[H], D.hasText) { + for (var Y = D.width, ad = Y >> 5, C = D.y1 - D.y0, q = 0; C * ad > q; q++) { + I[q] = 0 + } + if (J = D.xoff, null == J) { + return + } + G = D.yoff; + for (var K = 0, ac = -1, ae = 0; C > ae; ae++) { + for (var q = 0; Y > q; q++) { + var Z = ad * ae + (q >> 5), + ab = E[(G + ae) * (N << 5) + (J + q) << 2] ? 1 << 31 - q % 32 : 0; + I[Z] |= ab, K |= ab + } + K ? ac = ae : (D.y0++, C--, ae--, G++) + } + D.y1 = D.y0 + ac, D.sprite = I.slice(0, (D.y1 - D.y0) * ad) + } + } + } + }, + _place: function(B, Q, F) { + function K(u, ae, y) { + y >>= 5; + for (var aa, p = u.sprite, ab = u.width >> 5, ac = u.x - (ab << 4), ad = 127 & ac, L = 32 - ad, x = u.y1 - u.y0, W = (u.y + u.y0) * y + (ac >> 5), ag = 0; x > ag; ag++) { + aa = 0; + for (var af = 0; ab >= af; af++) { + if ((aa << L | (ab > af ? (aa = p[ag * ab + af]) >>> ad : 0)) & ae[W + af]) { + return !0 + } + } + W += y + } + return !1 + } + + function v(i, n) { + return n.row[i.y] && n.cloumn[i.x] && i.x >= n.row[i.y].start && i.x <= n.row[i.y].end && i.y >= n.cloumn[i.x].start && i.y <= n.cloumn[i.x].end + } + for (var M, O, P, H = this.defaultOption.size, E = ([{ + x: 0, + y: 0 + }, { + x: H[0], + y: H[1] + }], Q.x), J = Q.y, T = Math.sqrt(H[0] * H[0] + H[1] * H[1]), S = this.defaultOption.spiral(H), A = Math.random() < 0.5 ? 1 : -1, N = -A; + (M = S(N += A)) && (O = ~~M[0], P = ~~M[1], !(Math.min(O, P) > T));) { + if (Q.x = E + O, Q.y = J + P, !(Q.x + Q.x0 < 0 || Q.y + Q.y0 < 0 || Q.x + Q.x1 > H[0] || Q.y + Q.y1 > H[1]) && !K(Q, B, H[0]) && v(Q, F)) { + for (var z, R = Q.sprite, Z = Q.width >> 5, D = H[0] >> 5, w = Q.x - (Z << 4), C = 127 & w, G = 32 - C, Y = Q.y1 - Q.y0, q = (Q.y + Q.y0) * D + (w >> 5), I = 0; Y > I; I++) { + z = 0; + for (var X = 0; Z >= X; X++) { + B[q + X] |= z << G | (Z > X ? (z = R[I * Z + X]) >>> C : 0) + } + q += D + } + return delete Q.sprite, !0 + } + } + return !1 + }, + _autoCalTextSize: function(x, I, A, D, q) { + function E(n) { + v.clearRect(0, 0, (w << 5) / J, F / J), v.save(), v.font = n.style + " " + n.weight + " " + ~~((n.size + 1) / J) + "px " + n.font; + var R = v.measureText(n.text + "m").width * J, + P = n.size << 1; + R = R + 31 >> 5 << 5, v.restore(), n.aw = R, n.ah = P; + var Q, N, u; + if (n.rotate) { + var O = Math.sin(n.rotate * M), + S = Math.cos(n.rotate * M), + p = R * S, + i = R * O, + o = P * S, + y = P * O; + N = Math.max(Math.abs(p + y), Math.abs(p - y)) + 31 >> 5 << 5, u = ~~Math.max(Math.abs(i + o), Math.abs(i - o)) + } + return n.size <= K || n.rotate && R * P <= n.area && A >= N && D >= u || R * P <= n.area && A >= R && D >= P ? void(n.area = R * P) : (Q = n.rotate && N > A && u > D ? Math.min(A / N, D / u) : R > A || P > D ? Math.min(A / R, D / P) : Math.sqrt(n.area / (n.aw * n.ah)), n.size = ~~(Q * n.size), n.size < q ? void(n.size = q) : E(n)) + } + + function G(o, s) { + for (var p = o.length, r = 0; p--;) { + r += s(o[p]) + } + return r + } + for (var H, B, z = G(x, function(i) { + return i.size + }), C = x.length, L = 0.25, K = q, w = this.defaultOption.cw, F = this.defaultOption.ch, v = this.defaultOption.c, J = this.defaultOption.ratio, M = this.defaultOption.cloudRadians; C--;) { + H = x[C], B = H.size / z, H.areapre = L ? L > B ? B : L : B, H.area = I * H.areapre, H.totalarea = I, E(H) + } + } + }, m + }), d("echarts/layout/WordCloudRectZero", ["require"], function() { + function a(i) { + this.defaultOption = { + type: "RECT" + }, this._init(i) + } + return a.prototype = { + RECT: "_calculateRect", + _init: function(i) { + this._initOption(i), this._initCanvas() + }, + _initOption: function(i) { + for (k in i) { + this.defaultOption[k] = i[k] + } + }, + _initCanvas: function() { + var j = document.createElement("canvas"); + j.width = 1, j.height = 1; + var m = Math.sqrt(j.getContext("2d").getImageData(0, 0, 1, 1).data.length >> 2); + if (j.width = this.defaultOption.width, j.height = this.defaultOption.height, j.getContext) { + var l = j.getContext("2d") + } + this.canvas = j, this.ctx = l, this.ratio = m + }, + calculate: function(j, o) { + var l = this.defaultOption.type, + m = this[l]; + this[m].call(this, j, o) + }, + _calculateReturn: function(j, m, l) { + m.call(l, j) + }, + _calculateRect: function(l, p) { + var m = {}, + o = this.defaultOption.width >> 5 << 5, + j = this.defaultOption.height; + m.initarr = this._rectZeroArray(o * j), m.area = o * j, m.maxHit = j, m.maxWit = o, m.imgboard = this._rectBoard(o, j), this._calculateReturn(m, l, p) + }, + _rectBoard: function(l, p) { + for (var m = [], o = 0; p > o; o++) { + m.push({ + y: o, + start: 0, + end: l + }) + } + for (var j = [], o = 0; l > o; o++) { + j.push({ + x: o, + start: 0, + end: p + }) + } + return { + row: m, + cloumn: j + } + }, + _rectZeroArray: function(j) { + for (var o = [], l = j, m = -1; ++m < l;) { + o[m] = 0 + } + return o + } + }, a + }), d("echarts/chart/heatmap", ["require", "./base", "../layer/heatmap", "../config", "../util/ecData", "zrender/tool/util", "zrender/tool/color", "zrender/shape/Image", "../chart"], function(l) { + function u(r, x, v, i, w) { + m.call(this, r, x, v, i, w), this.refresh(i) + } + var m = l("./base"), + p = l("../layer/heatmap"), + j = l("../config"), + q = (l("../util/ecData"), l("zrender/tool/util")), + s = (l("zrender/tool/color"), l("zrender/shape/Image")); + return j.heatmap = { + zlevel: 0, + z: 2, + clickable: !0 + }, u.prototype = { + type: j.CHART_TYPE_HEATMAP, + refresh: function(a) { + this.clear(), a && (this.option = a, this.series = a.series), this._init() + }, + _init: function() { + var a = this.series; + this.backupShapeList(); + for (var x = a.length, n = 0; x > n; ++n) { + if (a[n].type === j.CHART_TYPE_HEATMAP) { + a[n] = this.reformOption(a[n]); + var v = new p(a[n]), + w = v.getCanvas(a[n].data, this.zr.getWidth(), this.zr.getHeight()), + r = new s({ + position: [0, 0], + scale: [1, 1], + hoverable: this.option.hoverable, + style: { + x: 0, + y: 0, + image: w, + width: w.width, + height: w.height + } + }); + this.shapeList.push(r) + } + } + this.addShapeList() + } + }, q.inherits(u, m), l("../chart").define("heatmap", u), u + }); + var f = h("zrender"); + f.tool = { + color: h("zrender/tool/color"), + math: h("zrender/tool/math"), + util: h("zrender/tool/util"), + vector: h("zrender/tool/vector"), + area: h("zrender/tool/area"), + event: h("zrender/tool/event") + }, f.animation = { + Animation: h("zrender/animation/Animation"), + Cip: h("zrender/animation/Clip"), + easing: h("zrender/animation/easing") + }; + var b = h("echarts"); + b.config = h("echarts/config"), b.util = { + mapData: { + params: h("echarts/util/mapData/params") + } + }, h("echarts/chart/line"), h("echarts/chart/bar"), h("echarts/chart/scatter"), h("echarts/chart/k"), h("echarts/chart/pie"), h("echarts/chart/radar"), h("echarts/chart/chord"), h("echarts/chart/force"), h("echarts/chart/map"), h("echarts/chart/gauge"), h("echarts/chart/funnel"), h("echarts/chart/eventRiver"), h("echarts/chart/venn"), h("echarts/chart/treemap"), h("echarts/chart/tree"), h("echarts/chart/wordCloud"), h("echarts/chart/heatmap"), c.echarts = b, c.zrender = f +}(window); \ No newline at end of file diff --git a/static/js/jquery.js b/static/js/jquery.js new file mode 100644 index 0000000..77ed782 --- /dev/null +++ b/static/js/jquery.js @@ -0,0 +1,4218 @@ +/* jQuery v1.8.2 jquery.com | jquery.org/license */ +(function(a, b) { + function G(a) { + var b = F[a] = {}; + return p.each(a.split(s), function(a, c) { + b[c] = !0 + }), b + } + + function J(a, c, d) { + if (d === b && a.nodeType === 1) { + var e = "data-" + c.replace(I, "-$1").toLowerCase(); + d = a.getAttribute(e); + if (typeof d == "string") { + try { + d = d === "true" ? !0 : d === "false" ? !1 : d === "null" ? null : +d + "" === d ? +d : H.test(d) ? p.parseJSON(d) : d + } catch (f) {} + p.data(a, c, d) + } else { + d = b + } + } + return d + } + + function K(a) { + var b; + for (b in a) { + if (b === "data" && p.isEmptyObject(a[b])) { + continue + } + if (b !== "toJSON") { + return !1 + } + } + return !0 + } + + function ba() { + return !1 + } + + function bb() { + return !0 + } + + function bh(a) { + return !a || !a.parentNode || a.parentNode.nodeType === 11 + } + + function bi(a, b) { + do { + a = a[b] + } while (a && a.nodeType !== 1); + return a + } + + function bj(a, b, c) { + b = b || 0; + if (p.isFunction(b)) { + return p.grep(a, function(a, d) { + var e = !!b.call(a, d, a); + return e === c + }) + } + if (b.nodeType) { + return p.grep(a, function(a, d) { + return a === b === c + }) + } + if (typeof b == "string") { + var d = p.grep(a, function(a) { + return a.nodeType === 1 + }); + if (be.test(b)) { + return p.filter(b, d, !c) + } + b = p.filter(b, d) + } + return p.grep(a, function(a, d) { + return p.inArray(a, b) >= 0 === c + }) + } + + function bk(a) { + var b = bl.split("|"), + c = a.createDocumentFragment(); + if (c.createElement) { + while (b.length) { + c.createElement(b.pop()) + } + } + return c + } + + function bC(a, b) { + return a.getElementsByTagName(b)[0] || a.appendChild(a.ownerDocument.createElement(b)) + } + + function bD(a, b) { + if (b.nodeType !== 1 || !p.hasData(a)) { + return + } + var c, d, e, f = p._data(a), + g = p._data(b, f), + h = f.events; + if (h) { + delete g.handle, g.events = {}; + for (c in h) { + for (d = 0, e = h[c].length; d < e; d++) { + p.event.add(b, c, h[c][d]) + } + } + } + g.data && (g.data = p.extend({}, g.data)) + } + + function bE(a, b) { + var c; + if (b.nodeType !== 1) { + return + } + b.clearAttributes && b.clearAttributes(), b.mergeAttributes && b.mergeAttributes(a), c = b.nodeName.toLowerCase(), c === "object" ? (b.parentNode && (b.outerHTML = a.outerHTML), p.support.html5Clone && a.innerHTML && !p.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : c === "input" && bv.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : c === "option" ? b.selected = a.defaultSelected : c === "input" || c === "textarea" ? b.defaultValue = a.defaultValue : c === "script" && b.text !== a.text && (b.text = a.text), b.removeAttribute(p.expando) + } + + function bF(a) { + return typeof a.getElementsByTagName != "undefined" ? a.getElementsByTagName("*") : typeof a.querySelectorAll != "undefined" ? a.querySelectorAll("*") : [] + } + + function bG(a) { + bv.test(a.type) && (a.defaultChecked = a.checked) + } + + function bY(a, b) { + if (b in a) { + return b + } + var c = b.charAt(0).toUpperCase() + b.slice(1), + d = b, + e = bW.length; + while (e--) { + b = bW[e] + c; + if (b in a) { + return b + } + } + return d + } + + function bZ(a, b) { + return a = b || a, p.css(a, "display") === "none" || !p.contains(a.ownerDocument, a) + } + + function b$(a, b) { + var c, d, e = [], + f = 0, + g = a.length; + for (; f < g; f++) { + c = a[f]; + if (!c.style) { + continue + } + e[f] = p._data(c, "olddisplay"), b ? (!e[f] && c.style.display === "none" && (c.style.display = ""), c.style.display === "" && bZ(c) && (e[f] = p._data(c, "olddisplay", cc(c.nodeName)))) : (d = bH(c, "display"), !e[f] && d !== "none" && p._data(c, "olddisplay", d)) + } + for (f = 0; f < g; f++) { + c = a[f]; + if (!c.style) { + continue + } + if (!b || c.style.display === "none" || c.style.display === "") { + c.style.display = b ? e[f] || "" : "none" + } + } + return a + } + + function b_(a, b, c) { + var d = bP.exec(b); + return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || "px") : b + } + + function ca(a, b, c, d) { + var e = c === (d ? "border" : "content") ? 4 : b === "width" ? 1 : 0, + f = 0; + for (; e < 4; e += 2) { + c === "margin" && (f += p.css(a, c + bV[e], !0)), d ? (c === "content" && (f -= parseFloat(bH(a, "padding" + bV[e])) || 0), c !== "margin" && (f -= parseFloat(bH(a, "border" + bV[e] + "Width")) || 0)) : (f += parseFloat(bH(a, "padding" + bV[e])) || 0, c !== "padding" && (f += parseFloat(bH(a, "border" + bV[e] + "Width")) || 0)) + } + return f + } + + function cb(a, b, c) { + var d = b === "width" ? a.offsetWidth : a.offsetHeight, + e = !0, + f = p.support.boxSizing && p.css(a, "boxSizing") === "border-box"; + if (d <= 0 || d == null) { + d = bH(a, b); + if (d < 0 || d == null) { + d = a.style[b] + } + if (bQ.test(d)) { + return d + } + e = f && (p.support.boxSizingReliable || d === a.style[b]), d = parseFloat(d) || 0 + } + return d + ca(a, b, c || (f ? "border" : "content"), e) + "px" + } + + function cc(a) { + if (bS[a]) { + return bS[a] + } + var b = p("<" + a + ">").appendTo(e.body), + c = b.css("display"); + b.remove(); + if (c === "none" || c === "") { + bI = e.body.appendChild(bI || p.extend(e.createElement("iframe"), { + frameBorder: 0, + width: 0, + height: 0 + })); + if (!bJ || !bI.createElement) { + bJ = (bI.contentWindow || bI.contentDocument).document, bJ.write(""), bJ.close() + } + b = bJ.body.appendChild(bJ.createElement(a)), c = bH(b, "display"), e.body.removeChild(bI) + } + return bS[a] = c, c + } + + function ci(a, b, c, d) { + var e; + if (p.isArray(b)) { + p.each(b, function(b, e) { + c || ce.test(a) ? d(a, e) : ci(a + "[" + (typeof e == "object" ? b : "") + "]", e, c, d) + }) + } else { + if (!c && p.type(b) === "object") { + for (e in b) { + ci(a + "[" + e + "]", b[e], c, d) + } + } else { + d(a, b) + } + } + } + + function cz(a) { + return function(b, c) { + typeof b != "string" && (c = b, b = "*"); + var d, e, f, g = b.toLowerCase().split(s), + h = 0, + i = g.length; + if (p.isFunction(c)) { + for (; h < i; h++) { + d = g[h], f = /^\+/.test(d), f && (d = d.substr(1) || "*"), e = a[d] = a[d] || [], e[f ? "unshift" : "push"](c) + } + } + } + } + + function cA(a, c, d, e, f, g) { + f = f || c.dataTypes[0], g = g || {}, g[f] = !0; + var h, i = a[f], + j = 0, + k = i ? i.length : 0, + l = a === cv; + for (; j < k && (l || !h); j++) { + h = i[j](c, d, e), typeof h == "string" && (!l || g[h] ? h = b : (c.dataTypes.unshift(h), h = cA(a, c, d, e, h, g))) + } + return (l || !h) && !g["*"] && (h = cA(a, c, d, e, "*", g)), h + } + + function cB(a, c) { + var d, e, f = p.ajaxSettings.flatOptions || {}; + for (d in c) { + c[d] !== b && ((f[d] ? a : e || (e = {}))[d] = c[d]) + } + e && p.extend(!0, a, e) + } + + function cC(a, c, d) { + var e, f, g, h, i = a.contents, + j = a.dataTypes, + k = a.responseFields; + for (f in k) { + f in d && (c[k[f]] = d[f]) + } + while (j[0] === "*") { + j.shift(), e === b && (e = a.mimeType || c.getResponseHeader("content-type")) + } + if (e) { + for (f in i) { + if (i[f] && i[f].test(e)) { + j.unshift(f); + break + } + } + } + if (j[0] in d) { + g = j[0] + } else { + for (f in d) { + if (!j[0] || a.converters[f + " " + j[0]]) { + g = f; + break + } + h || (h = f) + } + g = g || h + } + if (g) { + return g !== j[0] && j.unshift(g), d[g] + } + } + + function cD(a, b) { + var c, d, e, f, g = a.dataTypes.slice(), + h = g[0], + i = {}, + j = 0; + a.dataFilter && (b = a.dataFilter(b, a.dataType)); + if (g[1]) { + for (c in a.converters) { + i[c.toLowerCase()] = a.converters[c] + } + } + for (; e = g[++j];) { + if (e !== "*") { + if (h !== "*" && h !== e) { + c = i[h + " " + e] || i["* " + e]; + if (!c) { + for (d in i) { + f = d.split(" "); + if (f[1] === e) { + c = i[h + " " + f[0]] || i["* " + f[0]]; + if (c) { + c === !0 ? c = i[d] : i[d] !== !0 && (e = f[0], g.splice(j--, 0, e)); + break + } + } + } + } + if (c !== !0) { + if (c && a["throws"]) { + b = c(b) + } else { + try { + b = c(b) + } catch (k) { + return { + state: "parsererror", + error: c ? k : "No conversion from " + h + " to " + e + } + } + } + } + } + h = e + } + } + return { + state: "success", + data: b + } + } + + function cL() { + try { + return new a.XMLHttpRequest + } catch (b) {} + } + + function cM() { + try { + return new a.ActiveXObject("Microsoft.XMLHTTP") + } catch (b) {} + } + + function cU() { + return setTimeout(function() { + cN = b + }, 0), cN = p.now() + } + + function cV(a, b) { + p.each(b, function(b, c) { + var d = (cT[b] || []).concat(cT["*"]), + e = 0, + f = d.length; + for (; e < f; e++) { + if (d[e].call(a, b, c)) { + return + } + } + }) + } + + function cW(a, b, c) { + var d, e = 0, + f = 0, + g = cS.length, + h = p.Deferred().always(function() { + delete i.elem + }), + i = function() { + var b = cN || cU(), + c = Math.max(0, j.startTime + j.duration - b), + d = 1 - (c / j.duration || 0), + e = 0, + f = j.tweens.length; + for (; e < f; e++) { + j.tweens[e].run(d) + } + return h.notifyWith(a, [j, d, c]), d < 1 && f ? c : (h.resolveWith(a, [j]), !1) + }, + j = h.promise({ + elem: a, + props: p.extend({}, b), + opts: p.extend(!0, { + specialEasing: {} + }, c), + originalProperties: b, + originalOptions: c, + startTime: cN || cU(), + duration: c.duration, + tweens: [], + createTween: function(b, c, d) { + var e = p.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); + return j.tweens.push(e), e + }, + stop: function(b) { + var c = 0, + d = b ? j.tweens.length : 0; + for (; c < d; c++) { + j.tweens[c].run(1) + } + return b ? h.resolveWith(a, [j, b]) : h.rejectWith(a, [j, b]), this + } + }), + k = j.props; + cX(k, j.opts.specialEasing); + for (; e < g; e++) { + d = cS[e].call(j, a, k, j.opts); + if (d) { + return d + } + } + return cV(j, k), p.isFunction(j.opts.start) && j.opts.start.call(a, j), p.fx.timer(p.extend(i, { + anim: j, + queue: j.opts.queue, + elem: a + })), j.progress(j.opts.progress).done(j.opts.done, j.opts.complete).fail(j.opts.fail).always(j.opts.always) + } + + function cX(a, b) { + var c, d, e, f, g; + for (c in a) { + d = p.camelCase(c), e = b[d], f = a[c], p.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = p.cssHooks[d]; + if (g && "expand" in g) { + f = g.expand(f), delete a[d]; + for (c in f) { + c in a || (a[c] = f[c], b[c] = e) + } + } else { + b[d] = e + } + } + } + + function cY(a, b, c) { + var d, e, f, g, h, i, j, k, l = this, + m = a.style, + n = {}, + o = [], + q = a.nodeType && bZ(a); + c.queue || (j = p._queueHooks(a, "fx"), j.unqueued == null && (j.unqueued = 0, k = j.empty.fire, j.empty.fire = function() { + j.unqueued || k() + }), j.unqueued++, l.always(function() { + l.always(function() { + j.unqueued--, p.queue(a, "fx").length || j.empty.fire() + }) + })), a.nodeType === 1 && ("height" in b || "width" in b) && (c.overflow = [m.overflow, m.overflowX, m.overflowY], p.css(a, "display") === "inline" && p.css(a, "float") === "none" && (!p.support.inlineBlockNeedsLayout || cc(a.nodeName) === "inline" ? m.display = "inline-block" : m.zoom = 1)), c.overflow && (m.overflow = "hidden", p.support.shrinkWrapBlocks || l.done(function() { + m.overflow = c.overflow[0], m.overflowX = c.overflow[1], m.overflowY = c.overflow[2] + })); + for (d in b) { + f = b[d]; + if (cP.exec(f)) { + delete b[d]; + if (f === (q ? "hide" : "show")) { + continue + } + o.push(d) + } + } + g = o.length; + if (g) { + h = p._data(a, "fxshow") || p._data(a, "fxshow", {}), q ? p(a).show() : l.done(function() { + p(a).hide() + }), l.done(function() { + var b; + p.removeData(a, "fxshow", !0); + for (b in n) { + p.style(a, b, n[b]) + } + }); + for (d = 0; d < g; d++) { + e = o[d], i = l.createTween(e, q ? h[e] : 0), n[e] = h[e] || p.style(a, e), e in h || (h[e] = i.start, q && (i.end = i.start, i.start = e === "width" || e === "height" ? 1 : 0)) + } + } + } + + function cZ(a, b, c, d, e) { + return new cZ.prototype.init(a, b, c, d, e) + } + + function c$(a, b) { + var c, d = { + height: a + }, + e = 0; + b = b ? 1 : 0; + for (; e < 4; e += 2 - b) { + c = bV[e], d["margin" + c] = d["padding" + c] = a + } + return b && (d.opacity = d.width = a), d + } + + function da(a) { + return p.isWindow(a) ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow : !1 + } + var c, d, e = a.document, + f = a.location, + g = a.navigator, + h = a.jQuery, + i = a.$, + j = Array.prototype.push, + k = Array.prototype.slice, + l = Array.prototype.indexOf, + m = Object.prototype.toString, + n = Object.prototype.hasOwnProperty, + o = String.prototype.trim, + p = function(a, b) { + return new p.fn.init(a, b, c) + }, + q = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source, + r = /\S/, + s = /\s+/, + t = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + u = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, + v = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + w = /^[\],:{}\s]*$/, + x = /(?:^|:|,)(?:\s*\[)+/g, + y = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + z = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g, + A = /^-ms-/, + B = /-([\da-z])/gi, + C = function(a, b) { + return (b + "").toUpperCase() + }, + D = function() { + e.addEventListener ? (e.removeEventListener("DOMContentLoaded", D, !1), p.ready()) : e.readyState === "complete" && (e.detachEvent("onreadystatechange", D), p.ready()) + }, + E = {}; + p.fn = p.prototype = { + constructor: p, + init: function(a, c, d) { + var f, g, h, i; + if (!a) { + return this + } + if (a.nodeType) { + return this.context = this[0] = a, this.length = 1, this + } + if (typeof a == "string") { + a.charAt(0) === "<" && a.charAt(a.length - 1) === ">" && a.length >= 3 ? f = [null, a, null] : f = u.exec(a); + if (f && (f[1] || !c)) { + if (f[1]) { + return c = c instanceof p ? c[0] : c, i = c && c.nodeType ? c.ownerDocument || c : e, a = p.parseHTML(f[1], i, !0), v.test(f[1]) && p.isPlainObject(c) && this.attr.call(a, c, !0), p.merge(this, a) + } + g = e.getElementById(f[2]); + if (g && g.parentNode) { + if (g.id !== f[2]) { + return d.find(a) + } + this.length = 1, this[0] = g + } + return this.context = e, this.selector = a, this + } + return !c || c.jquery ? (c || d).find(a) : this.constructor(c).find(a) + } + return p.isFunction(a) ? d.ready(a) : (a.selector !== b && (this.selector = a.selector, this.context = a.context), p.makeArray(a, this)) + }, + selector: "", + jquery: "1.8.2", + length: 0, + size: function() { + return this.length + }, + toArray: function() { + return k.call(this) + }, + get: function(a) { + return a == null ? this.toArray() : a < 0 ? this[this.length + a] : this[a] + }, + pushStack: function(a, b, c) { + var d = p.merge(this.constructor(), a); + return d.prevObject = this, d.context = this.context, b === "find" ? d.selector = this.selector + (this.selector ? " " : "") + c : b && (d.selector = this.selector + "." + b + "(" + c + ")"), d + }, + each: function(a, b) { + return p.each(this, a, b) + }, + ready: function(a) { + return p.ready.promise().done(a), this + }, + eq: function(a) { + return a = +a, a === -1 ? this.slice(a) : this.slice(a, a + 1) + }, + first: function() { + return this.eq(0) + }, + last: function() { + return this.eq(-1) + }, + slice: function() { + return this.pushStack(k.apply(this, arguments), "slice", k.call(arguments).join(",")) + }, + map: function(a) { + return this.pushStack(p.map(this, function(b, c) { + return a.call(b, c, b) + })) + }, + end: function() { + return this.prevObject || this.constructor(null) + }, + push: j, + sort: [].sort, + splice: [].splice + }, p.fn.init.prototype = p.fn, p.extend = p.fn.extend = function() { + var a, c, d, e, f, g, h = arguments[0] || {}, + i = 1, + j = arguments.length, + k = !1; + typeof h == "boolean" && (k = h, h = arguments[1] || {}, i = 2), typeof h != "object" && !p.isFunction(h) && (h = {}), j === i && (h = this, --i); + for (; i < j; i++) { + if ((a = arguments[i]) != null) { + for (c in a) { + d = h[c], e = a[c]; + if (h === e) { + continue + } + k && e && (p.isPlainObject(e) || (f = p.isArray(e))) ? (f ? (f = !1, g = d && p.isArray(d) ? d : []) : g = d && p.isPlainObject(d) ? d : {}, h[c] = p.extend(k, g, e)) : e !== b && (h[c] = e) + } + } + } + return h + }, p.extend({ + noConflict: function(b) { + return a.$ === p && (a.$ = i), b && a.jQuery === p && (a.jQuery = h), p + }, + isReady: !1, + readyWait: 1, + holdReady: function(a) { + a ? p.readyWait++ : p.ready(!0) + }, + ready: function(a) { + if (a === !0 ? --p.readyWait : p.isReady) { + return + } + if (!e.body) { + return setTimeout(p.ready, 1) + } + p.isReady = !0; + if (a !== !0 && --p.readyWait > 0) { + return + } + d.resolveWith(e, [p]), p.fn.trigger && p(e).trigger("ready").off("ready") + }, + isFunction: function(a) { + return p.type(a) === "function" + }, + isArray: Array.isArray || function(a) { + return p.type(a) === "array" + }, + isWindow: function(a) { + return a != null && a == a.window + }, + isNumeric: function(a) { + return !isNaN(parseFloat(a)) && isFinite(a) + }, + type: function(a) { + return a == null ? String(a) : E[m.call(a)] || "object" + }, + isPlainObject: function(a) { + if (!a || p.type(a) !== "object" || a.nodeType || p.isWindow(a)) { + return !1 + } + try { + if (a.constructor && !n.call(a, "constructor") && !n.call(a.constructor.prototype, "isPrototypeOf")) { + return !1 + } + } catch (c) { + return !1 + } + var d; + for (d in a) {} + return d === b || n.call(a, d) + }, + isEmptyObject: function(a) { + var b; + for (b in a) { + return !1 + } + return !0 + }, + error: function(a) { + throw new Error(a) + }, + parseHTML: function(a, b, c) { + var d; + return !a || typeof a != "string" ? null : (typeof b == "boolean" && (c = b, b = 0), b = b || e, (d = v.exec(a)) ? [b.createElement(d[1])] : (d = p.buildFragment([a], b, c ? null : []), p.merge([], (d.cacheable ? p.clone(d.fragment) : d.fragment).childNodes))) + }, + parseJSON: function(b) { + if (!b || typeof b != "string") { + return null + } + b = p.trim(b); + if (a.JSON && a.JSON.parse) { + return a.JSON.parse(b) + } + if (w.test(b.replace(y, "@").replace(z, "]").replace(x, ""))) { + return (new Function("return " + b))() + } + p.error("Invalid JSON: " + b) + }, + parseXML: function(c) { + var d, e; + if (!c || typeof c != "string") { + return null + } + try { + a.DOMParser ? (e = new DOMParser, d = e.parseFromString(c, "text/xml")) : (d = new ActiveXObject("Microsoft.XMLDOM"), d.async = "false", d.loadXML(c)) + } catch (f) { + d = b + } + return (!d || !d.documentElement || d.getElementsByTagName("parsererror").length) && p.error("Invalid XML: " + c), d + }, + noop: function() {}, + globalEval: function(b) { + b && r.test(b) && (a.execScript || function(b) { + a.eval.call(a, b) + })(b) + }, + camelCase: function(a) { + return a.replace(A, "ms-").replace(B, C) + }, + nodeName: function(a, b) { + return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase() + }, + each: function(a, c, d) { + var e, f = 0, + g = a.length, + h = g === b || p.isFunction(a); + if (d) { + if (h) { + for (e in a) { + if (c.apply(a[e], d) === !1) { + break + } + } + } else { + for (; f < g;) { + if (c.apply(a[f++], d) === !1) { + break + } + } + } + } else { + if (h) { + for (e in a) { + if (c.call(a[e], e, a[e]) === !1) { + break + } + } + } else { + for (; f < g;) { + if (c.call(a[f], f, a[f++]) === !1) { + break + } + } + } + } + return a + }, + trim: o && !o.call(" ") ? function(a) { + return a == null ? "" : o.call(a) + } : function(a) { + return a == null ? "" : (a + "").replace(t, "") + }, + makeArray: function(a, b) { + var c, d = b || []; + return a != null && (c = p.type(a), a.length == null || c === "string" || c === "function" || c === "regexp" || p.isWindow(a) ? j.call(d, a) : p.merge(d, a)), d + }, + inArray: function(a, b, c) { + var d; + if (b) { + if (l) { + return l.call(b, a, c) + } + d = b.length, c = c ? c < 0 ? Math.max(0, d + c) : c : 0; + for (; c < d; c++) { + if (c in b && b[c] === a) { + return c + } + } + } + return -1 + }, + merge: function(a, c) { + var d = c.length, + e = a.length, + f = 0; + if (typeof d == "number") { + for (; f < d; f++) { + a[e++] = c[f] + } + } else { + while (c[f] !== b) { + a[e++] = c[f++] + } + } + return a.length = e, a + }, + grep: function(a, b, c) { + var d, e = [], + f = 0, + g = a.length; + c = !!c; + for (; f < g; f++) { + d = !!b(a[f], f), c !== d && e.push(a[f]) + } + return e + }, + map: function(a, c, d) { + var e, f, g = [], + h = 0, + i = a.length, + j = a instanceof p || i !== b && typeof i == "number" && (i > 0 && a[0] && a[i - 1] || i === 0 || p.isArray(a)); + if (j) { + for (; h < i; h++) { + e = c(a[h], h, d), e != null && (g[g.length] = e) + } + } else { + for (f in a) { + e = c(a[f], f, d), e != null && (g[g.length] = e) + } + } + return g.concat.apply([], g) + }, + guid: 1, + proxy: function(a, c) { + var d, e, f; + return typeof c == "string" && (d = a[c], c = a, a = d), p.isFunction(a) ? (e = k.call(arguments, 2), f = function() { + return a.apply(c, e.concat(k.call(arguments))) + }, f.guid = a.guid = a.guid || p.guid++, f) : b + }, + access: function(a, c, d, e, f, g, h) { + var i, j = d == null, + k = 0, + l = a.length; + if (d && typeof d == "object") { + for (k in d) { + p.access(a, c, k, d[k], 1, g, e) + } + f = 1 + } else { + if (e !== b) { + i = h === b && p.isFunction(e), j && (i ? (i = c, c = function(a, b, c) { + return i.call(p(a), c) + }) : (c.call(a, e), c = null)); + if (c) { + for (; k < l; k++) { + c(a[k], d, i ? e.call(a[k], k, c(a[k], d)) : e, h) + } + } + f = 1 + } + } + return f ? a : j ? c.call(a) : l ? c(a[0], d) : g + }, + now: function() { + return (new Date).getTime() + } + }), p.ready.promise = function(b) { + if (!d) { + d = p.Deferred(); + if (e.readyState === "complete") { + setTimeout(p.ready, 1) + } else { + if (e.addEventListener) { + e.addEventListener("DOMContentLoaded", D, !1), a.addEventListener("load", p.ready, !1) + } else { + e.attachEvent("onreadystatechange", D), a.attachEvent("onload", p.ready); + var c = !1; + try { + c = a.frameElement == null && e.documentElement + } catch (f) {} + c && c.doScroll && function g() { + if (!p.isReady) { + try { + c.doScroll("left") + } catch (a) { + return setTimeout(g, 50) + } + p.ready() + } + }() + } + } + } + return d.promise(b) + }, p.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(a, b) { + E["[object " + b + "]"] = b.toLowerCase() + }), c = p(e); + var F = {}; + p.Callbacks = function(a) { + a = typeof a == "string" ? F[a] || G(a) : p.extend({}, a); + var c, d, e, f, g, h, i = [], + j = !a.once && [], + k = function(b) { + c = a.memory && b, d = !0, h = f || 0, f = 0, g = i.length, e = !0; + for (; i && h < g; h++) { + if (i[h].apply(b[0], b[1]) === !1 && a.stopOnFalse) { + c = !1; + break + } + } + e = !1, i && (j ? j.length && k(j.shift()) : c ? i = [] : l.disable()) + }, + l = { + add: function() { + if (i) { + var b = i.length; + (function d(b) { + p.each(b, function(b, c) { + var e = p.type(c); + e === "function" && (!a.unique || !l.has(c)) ? i.push(c) : c && c.length && e !== "string" && d(c) + }) + })(arguments), e ? g = i.length : c && (f = b, k(c)) + } + return this + }, + remove: function() { + return i && p.each(arguments, function(a, b) { + var c; + while ((c = p.inArray(b, i, c)) > -1) { + i.splice(c, 1), e && (c <= g && g--, c <= h && h--) + } + }), this + }, + has: function(a) { + return p.inArray(a, i) > -1 + }, + empty: function() { + return i = [], this + }, + disable: function() { + return i = j = c = b, this + }, + disabled: function() { + return !i + }, + lock: function() { + return j = b, c || l.disable(), this + }, + locked: function() { + return !j + }, + fireWith: function(a, b) { + return b = b || [], b = [a, b.slice ? b.slice() : b], i && (!d || j) && (e ? j.push(b) : k(b)), this + }, + fire: function() { + return l.fireWith(this, arguments), this + }, + fired: function() { + return !!d + } + }; + return l + }, p.extend({ + Deferred: function(a) { + var b = [ + ["resolve", "done", p.Callbacks("once memory"), "resolved"], + ["reject", "fail", p.Callbacks("once memory"), "rejected"], + ["notify", "progress", p.Callbacks("memory")] + ], + c = "pending", + d = { + state: function() { + return c + }, + always: function() { + return e.done(arguments).fail(arguments), this + }, + then: function() { + var a = arguments; + return p.Deferred(function(c) { + p.each(b, function(b, d) { + var f = d[0], + g = a[b]; + e[d[1]](p.isFunction(g) ? function() { + var a = g.apply(this, arguments); + a && p.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[f + "With"](this === e ? c : this, [a]) + } : c[f]) + }), a = null + }).promise() + }, + promise: function(a) { + return a != null ? p.extend(a, d) : d + } + }, + e = {}; + return d.pipe = d.then, p.each(b, function(a, f) { + var g = f[2], + h = f[3]; + d[f[1]] = g.add, h && g.add(function() { + c = h + }, b[a ^ 1][2].disable, b[2][2].lock), e[f[0]] = g.fire, e[f[0] + "With"] = g.fireWith + }), d.promise(e), a && a.call(e, e), e + }, + when: function(a) { + var b = 0, + c = k.call(arguments), + d = c.length, + e = d !== 1 || a && p.isFunction(a.promise) ? d : 0, + f = e === 1 ? a : p.Deferred(), + g = function(a, b, c) { + return function(d) { + b[a] = this, c[a] = arguments.length > 1 ? k.call(arguments) : d, c === h ? f.notifyWith(b, c) : --e || f.resolveWith(b, c) + } + }, + h, i, j; + if (d > 1) { + h = new Array(d), i = new Array(d), j = new Array(d); + for (; b < d; b++) { + c[b] && p.isFunction(c[b].promise) ? c[b].promise().done(g(b, j, c)).fail(f.reject).progress(g(b, i, h)) : --e + } + } + return e || f.resolveWith(j, c), f.promise() + } + }), p.support = function() { + var b, c, d, f, g, h, i, j, k, l, m, n = e.createElement("div"); + n.setAttribute("className", "t"), n.innerHTML = "
a", c = n.getElementsByTagName("*"), d = n.getElementsByTagName("a")[0], d.style.cssText = "top:1px;float:left;opacity:.5"; + if (!c || !c.length) { + return {} + } + f = e.createElement("select"), g = f.appendChild(e.createElement("option")), h = n.getElementsByTagName("input")[0], b = { + leadingWhitespace: n.firstChild.nodeType === 3, + tbody: !n.getElementsByTagName("tbody").length, + htmlSerialize: !!n.getElementsByTagName("link").length, + style: /top/.test(d.getAttribute("style")), + hrefNormalized: d.getAttribute("href") === "/a", + opacity: /^0.5/.test(d.style.opacity), + cssFloat: !!d.style.cssFloat, + checkOn: h.value === "on", + optSelected: g.selected, + getSetAttribute: n.className !== "t", + enctype: !!e.createElement("form").enctype, + html5Clone: e.createElement("nav").cloneNode(!0).outerHTML !== "<:nav>", + boxModel: e.compatMode === "CSS1Compat", + submitBubbles: !0, + changeBubbles: !0, + focusinBubbles: !1, + deleteExpando: !0, + noCloneEvent: !0, + inlineBlockNeedsLayout: !1, + shrinkWrapBlocks: !1, + reliableMarginRight: !0, + boxSizingReliable: !0, + pixelPosition: !1 + }, h.checked = !0, b.noCloneChecked = h.cloneNode(!0).checked, f.disabled = !0, b.optDisabled = !g.disabled; + try { + delete n.test + } catch (o) { + b.deleteExpando = !1 + }!n.addEventListener && n.attachEvent && n.fireEvent && (n.attachEvent("onclick", m = function() { + b.noCloneEvent = !1 + }), n.cloneNode(!0).fireEvent("onclick"), n.detachEvent("onclick", m)), h = e.createElement("input"), h.value = "t", h.setAttribute("type", "radio"), b.radioValue = h.value === "t", h.setAttribute("checked", "checked"), h.setAttribute("name", "t"), n.appendChild(h), i = e.createDocumentFragment(), i.appendChild(n.lastChild), b.checkClone = i.cloneNode(!0).cloneNode(!0).lastChild.checked, b.appendChecked = h.checked, i.removeChild(h), i.appendChild(n); + if (n.attachEvent) { + for (k in { + submit: !0, + change: !0, + focusin: !0 + }) { + j = "on" + k, l = j in n, l || (n.setAttribute(j, "return;"), l = typeof n[j] == "function"), b[k + "Bubbles"] = l + } + } + return p(function() { + var c, d, f, g, h = "padding:0;margin:0;border:0;display:block;overflow:hidden;", + i = e.getElementsByTagName("body")[0]; + if (!i) { + return + } + c = e.createElement("div"), c.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px", i.insertBefore(c, i.firstChild), d = e.createElement("div"), c.appendChild(d), d.innerHTML = "
t
", f = d.getElementsByTagName("td"), f[0].style.cssText = "padding:0;margin:0;border:0;display:none", l = f[0].offsetHeight === 0, f[0].style.display = "", f[1].style.display = "none", b.reliableHiddenOffsets = l && f[0].offsetHeight === 0, d.innerHTML = "", d.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;", b.boxSizing = d.offsetWidth === 4, b.doesNotIncludeMarginInBodyOffset = i.offsetTop !== 1, a.getComputedStyle && (b.pixelPosition = (a.getComputedStyle(d, null) || {}).top !== "1%", b.boxSizingReliable = (a.getComputedStyle(d, null) || { + width: "4px" + }).width === "4px", g = e.createElement("div"), g.style.cssText = d.style.cssText = h, g.style.marginRight = g.style.width = "0", d.style.width = "1px", d.appendChild(g), b.reliableMarginRight = !parseFloat((a.getComputedStyle(g, null) || {}).marginRight)), typeof d.style.zoom != "undefined" && (d.innerHTML = "", d.style.cssText = h + "width:1px;padding:1px;display:inline;zoom:1", b.inlineBlockNeedsLayout = d.offsetWidth === 3, d.style.display = "block", d.style.overflow = "visible", d.innerHTML = "
", d.firstChild.style.width = "5px", b.shrinkWrapBlocks = d.offsetWidth !== 3, c.style.zoom = 1), i.removeChild(c), c = d = f = g = null + }), i.removeChild(n), c = d = f = g = h = i = n = null, b + }(); + var H = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + I = /([A-Z])/g; + p.extend({ + cache: {}, + deletedIds: [], + uuid: 0, + expando: "jQuery" + (p.fn.jquery + Math.random()).replace(/\D/g, ""), + noData: { + embed: !0, + object: "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", + applet: !0 + }, + hasData: function(a) { + return a = a.nodeType ? p.cache[a[p.expando]] : a[p.expando], !!a && !K(a) + }, + data: function(a, c, d, e) { + if (!p.acceptData(a)) { + return + } + var f, g, h = p.expando, + i = typeof c == "string", + j = a.nodeType, + k = j ? p.cache : a, + l = j ? a[h] : a[h] && h; + if ((!l || !k[l] || !e && !k[l].data) && i && d === b) { + return + } + l || (j ? a[h] = l = p.deletedIds.pop() || p.guid++ : l = h), k[l] || (k[l] = {}, j || (k[l].toJSON = p.noop)); + if (typeof c == "object" || typeof c == "function") { + e ? k[l] = p.extend(k[l], c) : k[l].data = p.extend(k[l].data, c) + } + return f = k[l], e || (f.data || (f.data = {}), f = f.data), d !== b && (f[p.camelCase(c)] = d), i ? (g = f[c], g == null && (g = f[p.camelCase(c)])) : g = f, g + }, + removeData: function(a, b, c) { + if (!p.acceptData(a)) { + return + } + var d, e, f, g = a.nodeType, + h = g ? p.cache : a, + i = g ? a[p.expando] : p.expando; + if (!h[i]) { + return + } + if (b) { + d = c ? h[i] : h[i].data; + if (d) { + p.isArray(b) || (b in d ? b = [b] : (b = p.camelCase(b), b in d ? b = [b] : b = b.split(" "))); + for (e = 0, f = b.length; e < f; e++) { + delete d[b[e]] + } + if (!(c ? K : p.isEmptyObject)(d)) { + return + } + } + } + if (!c) { + delete h[i].data; + if (!K(h[i])) { + return + } + } + g ? p.cleanData([a], !0) : p.support.deleteExpando || h != h.window ? delete h[i] : h[i] = null + }, + _data: function(a, b, c) { + return p.data(a, b, c, !0) + }, + acceptData: function(a) { + var b = a.nodeName && p.noData[a.nodeName.toLowerCase()]; + return !b || b !== !0 && a.getAttribute("classid") === b + } + }), p.fn.extend({ + data: function(a, c) { + var d, e, f, g, h, i = this[0], + j = 0, + k = null; + if (a === b) { + if (this.length) { + k = p.data(i); + if (i.nodeType === 1 && !p._data(i, "parsedAttrs")) { + f = i.attributes; + for (h = f.length; j < h; j++) { + g = f[j].name, g.indexOf("data-") || (g = p.camelCase(g.substring(5)), J(i, g, k[g])) + } + p._data(i, "parsedAttrs", !0) + } + } + return k + } + return typeof a == "object" ? this.each(function() { + p.data(this, a) + }) : (d = a.split(".", 2), d[1] = d[1] ? "." + d[1] : "", e = d[1] + "!", p.access(this, function(c) { + if (c === b) { + return k = this.triggerHandler("getData" + e, [d[0]]), k === b && i && (k = p.data(i, a), k = J(i, a, k)), k === b && d[1] ? this.data(d[0]) : k + } + d[1] = c, this.each(function() { + var b = p(this); + b.triggerHandler("setData" + e, d), p.data(this, a, c), b.triggerHandler("changeData" + e, d) + }) + }, null, c, arguments.length > 1, null, !1)) + }, + removeData: function(a) { + return this.each(function() { + p.removeData(this, a) + }) + } + }), p.extend({ + queue: function(a, b, c) { + var d; + if (a) { + return b = (b || "fx") + "queue", d = p._data(a, b), c && (!d || p.isArray(c) ? d = p._data(a, b, p.makeArray(c)) : d.push(c)), d || [] + } + }, + dequeue: function(a, b) { + b = b || "fx"; + var c = p.queue(a, b), + d = c.length, + e = c.shift(), + f = p._queueHooks(a, b), + g = function() { + p.dequeue(a, b) + }; + e === "inprogress" && (e = c.shift(), d--), e && (b === "fx" && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), !d && f && f.empty.fire() + }, + _queueHooks: function(a, b) { + var c = b + "queueHooks"; + return p._data(a, c) || p._data(a, c, { + empty: p.Callbacks("once memory").add(function() { + p.removeData(a, b + "queue", !0), p.removeData(a, c, !0) + }) + }) + } + }), p.fn.extend({ + queue: function(a, c) { + var d = 2; + return typeof a != "string" && (c = a, a = "fx", d--), arguments.length < d ? p.queue(this[0], a) : c === b ? this : this.each(function() { + var b = p.queue(this, a, c); + p._queueHooks(this, a), a === "fx" && b[0] !== "inprogress" && p.dequeue(this, a) + }) + }, + dequeue: function(a) { + return this.each(function() { + p.dequeue(this, a) + }) + }, + delay: function(a, b) { + return a = p.fx ? p.fx.speeds[a] || a : a, b = b || "fx", this.queue(b, function(b, c) { + var d = setTimeout(b, a); + c.stop = function() { + clearTimeout(d) + } + }) + }, + clearQueue: function(a) { + return this.queue(a || "fx", []) + }, + promise: function(a, c) { + var d, e = 1, + f = p.Deferred(), + g = this, + h = this.length, + i = function() { + --e || f.resolveWith(g, [g]) + }; + typeof a != "string" && (c = a, a = b), a = a || "fx"; + while (h--) { + d = p._data(g[h], a + "queueHooks"), d && d.empty && (e++, d.empty.add(i)) + } + return i(), f.promise(c) + } + }); + var L, M, N, O = /[\t\r\n]/g, + P = /\r/g, + Q = /^(?:button|input)$/i, + R = /^(?:button|input|object|select|textarea)$/i, + S = /^a(?:rea|)$/i, + T = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i, + U = p.support.getSetAttribute; + p.fn.extend({ + attr: function(a, b) { + return p.access(this, p.attr, a, b, arguments.length > 1) + }, + removeAttr: function(a) { + return this.each(function() { + p.removeAttr(this, a) + }) + }, + prop: function(a, b) { + return p.access(this, p.prop, a, b, arguments.length > 1) + }, + removeProp: function(a) { + return a = p.propFix[a] || a, this.each(function() { + try { + this[a] = b, delete this[a] + } catch (c) {} + }) + }, + addClass: function(a) { + var b, c, d, e, f, g, h; + if (p.isFunction(a)) { + return this.each(function(b) { + p(this).addClass(a.call(this, b, this.className)) + }) + } + if (a && typeof a == "string") { + b = a.split(s); + for (c = 0, d = this.length; c < d; c++) { + e = this[c]; + if (e.nodeType === 1) { + if (!e.className && b.length === 1) { + e.className = a + } else { + f = " " + e.className + " "; + for (g = 0, h = b.length; g < h; g++) { + f.indexOf(" " + b[g] + " ") < 0 && (f += b[g] + " ") + } + e.className = p.trim(f) + } + } + } + } + return this + }, + removeClass: function(a) { + var c, d, e, f, g, h, i; + if (p.isFunction(a)) { + return this.each(function(b) { + p(this).removeClass(a.call(this, b, this.className)) + }) + } + if (a && typeof a == "string" || a === b) { + c = (a || "").split(s); + for (h = 0, i = this.length; h < i; h++) { + e = this[h]; + if (e.nodeType === 1 && e.className) { + d = (" " + e.className + " ").replace(O, " "); + for (f = 0, g = c.length; f < g; f++) { + while (d.indexOf(" " + c[f] + " ") >= 0) { + d = d.replace(" " + c[f] + " ", " ") + } + } + e.className = a ? p.trim(d) : "" + } + } + } + return this + }, + toggleClass: function(a, b) { + var c = typeof a, + d = typeof b == "boolean"; + return p.isFunction(a) ? this.each(function(c) { + p(this).toggleClass(a.call(this, c, this.className, b), b) + }) : this.each(function() { + if (c === "string") { + var e, f = 0, + g = p(this), + h = b, + i = a.split(s); + while (e = i[f++]) { + h = d ? h : !g.hasClass(e), g[h ? "addClass" : "removeClass"](e) + } + } else { + if (c === "undefined" || c === "boolean") { + this.className && p._data(this, "__className__", this.className), this.className = this.className || a === !1 ? "" : p._data(this, "__className__") || "" + } + } + }) + }, + hasClass: function(a) { + var b = " " + a + " ", + c = 0, + d = this.length; + for (; c < d; c++) { + if (this[c].nodeType === 1 && (" " + this[c].className + " ").replace(O, " ").indexOf(b) >= 0) { + return !0 + } + } + return !1 + }, + val: function(a) { + var c, d, e, f = this[0]; + if (!arguments.length) { + if (f) { + return c = p.valHooks[f.type] || p.valHooks[f.nodeName.toLowerCase()], c && "get" in c && (d = c.get(f, "value")) !== b ? d : (d = f.value, typeof d == "string" ? d.replace(P, "") : d == null ? "" : d) + } + return + } + return e = p.isFunction(a), this.each(function(d) { + var f, g = p(this); + if (this.nodeType !== 1) { + return + } + e ? f = a.call(this, d, g.val()) : f = a, f == null ? f = "" : typeof f == "number" ? f += "" : p.isArray(f) && (f = p.map(f, function(a) { + return a == null ? "" : a + "" + })), c = p.valHooks[this.type] || p.valHooks[this.nodeName.toLowerCase()]; + if (!c || !("set" in c) || c.set(this, f, "value") === b) { + this.value = f + } + }) + } + }), p.extend({ + valHooks: { + option: { + get: function(a) { + var b = a.attributes.value; + return !b || b.specified ? a.value : a.text + } + }, + select: { + get: function(a) { + var b, c, d, e, f = a.selectedIndex, + g = [], + h = a.options, + i = a.type === "select-one"; + if (f < 0) { + return null + } + c = i ? f : 0, d = i ? f + 1 : h.length; + for (; c < d; c++) { + e = h[c]; + if (e.selected && (p.support.optDisabled ? !e.disabled : e.getAttribute("disabled") === null) && (!e.parentNode.disabled || !p.nodeName(e.parentNode, "optgroup"))) { + b = p(e).val(); + if (i) { + return b + } + g.push(b) + } + } + return i && !g.length && h.length ? p(h[f]).val() : g + }, + set: function(a, b) { + var c = p.makeArray(b); + return p(a).find("option").each(function() { + this.selected = p.inArray(p(this).val(), c) >= 0 + }), c.length || (a.selectedIndex = -1), c + } + } + }, + attrFn: {}, + attr: function(a, c, d, e) { + var f, g, h, i = a.nodeType; + if (!a || i === 3 || i === 8 || i === 2) { + return + } + if (e && p.isFunction(p.fn[c])) { + return p(a)[c](d) + } + if (typeof a.getAttribute == "undefined") { + return p.prop(a, c, d) + } + h = i !== 1 || !p.isXMLDoc(a), h && (c = c.toLowerCase(), g = p.attrHooks[c] || (T.test(c) ? M : L)); + if (d !== b) { + if (d === null) { + p.removeAttr(a, c); + return + } + return g && "set" in g && h && (f = g.set(a, d, c)) !== b ? f : (a.setAttribute(c, d + ""), d) + } + return g && "get" in g && h && (f = g.get(a, c)) !== null ? f : (f = a.getAttribute(c), f === null ? b : f) + }, + removeAttr: function(a, b) { + var c, d, e, f, g = 0; + if (b && a.nodeType === 1) { + d = b.split(s); + for (; g < d.length; g++) { + e = d[g], e && (c = p.propFix[e] || e, f = T.test(e), f || p.attr(a, e, ""), a.removeAttribute(U ? e : c), f && c in a && (a[c] = !1)) + } + } + }, + attrHooks: { + type: { + set: function(a, b) { + if (Q.test(a.nodeName) && a.parentNode) { + p.error("type property can't be changed") + } else { + if (!p.support.radioValue && b === "radio" && p.nodeName(a, "input")) { + var c = a.value; + return a.setAttribute("type", b), c && (a.value = c), b + } + } + } + }, + value: { + get: function(a, b) { + return L && p.nodeName(a, "button") ? L.get(a, b) : b in a ? a.value : null + }, + set: function(a, b, c) { + if (L && p.nodeName(a, "button")) { + return L.set(a, b, c) + } + a.value = b + } + } + }, + propFix: { + tabindex: "tabIndex", + readonly: "readOnly", + "for": "htmlFor", + "class": "className", + maxlength: "maxLength", + cellspacing: "cellSpacing", + cellpadding: "cellPadding", + rowspan: "rowSpan", + colspan: "colSpan", + usemap: "useMap", + frameborder: "frameBorder", + contenteditable: "contentEditable" + }, + prop: function(a, c, d) { + var e, f, g, h = a.nodeType; + if (!a || h === 3 || h === 8 || h === 2) { + return + } + return g = h !== 1 || !p.isXMLDoc(a), g && (c = p.propFix[c] || c, f = p.propHooks[c]), d !== b ? f && "set" in f && (e = f.set(a, d, c)) !== b ? e : a[c] = d : f && "get" in f && (e = f.get(a, c)) !== null ? e : a[c] + }, + propHooks: { + tabIndex: { + get: function(a) { + var c = a.getAttributeNode("tabindex"); + return c && c.specified ? parseInt(c.value, 10) : R.test(a.nodeName) || S.test(a.nodeName) && a.href ? 0 : b + } + } + } + }), M = { + get: function(a, c) { + var d, e = p.prop(a, c); + return e === !0 || typeof e != "boolean" && (d = a.getAttributeNode(c)) && d.nodeValue !== !1 ? c.toLowerCase() : b + }, + set: function(a, b, c) { + var d; + return b === !1 ? p.removeAttr(a, c) : (d = p.propFix[c] || c, d in a && (a[d] = !0), a.setAttribute(c, c.toLowerCase())), c + } + }, U || (N = { + name: !0, + id: !0, + coords: !0 + }, L = p.valHooks.button = { + get: function(a, c) { + var d; + return d = a.getAttributeNode(c), d && (N[c] ? d.value !== "" : d.specified) ? d.value : b + }, + set: function(a, b, c) { + var d = a.getAttributeNode(c); + return d || (d = e.createAttribute(c), a.setAttributeNode(d)), d.value = b + "" + } + }, p.each(["width", "height"], function(a, b) { + p.attrHooks[b] = p.extend(p.attrHooks[b], { + set: function(a, c) { + if (c === "") { + return a.setAttribute(b, "auto"), c + } + } + }) + }), p.attrHooks.contenteditable = { + get: L.get, + set: function(a, b, c) { + b === "" && (b = "false"), L.set(a, b, c) + } + }), p.support.hrefNormalized || p.each(["href", "src", "width", "height"], function(a, c) { + p.attrHooks[c] = p.extend(p.attrHooks[c], { + get: function(a) { + var d = a.getAttribute(c, 2); + return d === null ? b : d + } + }) + }), p.support.style || (p.attrHooks.style = { + get: function(a) { + return a.style.cssText.toLowerCase() || b + }, + set: function(a, b) { + return a.style.cssText = b + "" + } + }), p.support.optSelected || (p.propHooks.selected = p.extend(p.propHooks.selected, { + get: function(a) { + var b = a.parentNode; + return b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex), null + } + })), p.support.enctype || (p.propFix.enctype = "encoding"), p.support.checkOn || p.each(["radio", "checkbox"], function() { + p.valHooks[this] = { + get: function(a) { + return a.getAttribute("value") === null ? "on" : a.value + } + } + }), p.each(["radio", "checkbox"], function() { + p.valHooks[this] = p.extend(p.valHooks[this], { + set: function(a, b) { + if (p.isArray(b)) { + return a.checked = p.inArray(p(a).val(), b) >= 0 + } + } + }) + }); + var V = /^(?:textarea|input|select)$/i, + W = /^([^\.]*|)(?:\.(.+)|)$/, + X = /(?:^|\s)hover(\.\S+|)\b/, + Y = /^key/, + Z = /^(?:mouse|contextmenu)|click/, + $ = /^(?:focusinfocus|focusoutblur)$/, + _ = function(a) { + return p.event.special.hover ? a : a.replace(X, "mouseenter$1 mouseleave$1") + }; + p.event = { + add: function(a, c, d, e, f) { + var g, h, i, j, k, l, m, n, o, q, r; + if (a.nodeType === 3 || a.nodeType === 8 || !c || !d || !(g = p._data(a))) { + return + } + d.handler && (o = d, d = o.handler, f = o.selector), d.guid || (d.guid = p.guid++), i = g.events, i || (g.events = i = {}), h = g.handle, h || (g.handle = h = function(a) { + return typeof p != "undefined" && (!a || p.event.triggered !== a.type) ? p.event.dispatch.apply(h.elem, arguments) : b + }, h.elem = a), c = p.trim(_(c)).split(" "); + for (j = 0; j < c.length; j++) { + k = W.exec(c[j]) || [], l = k[1], m = (k[2] || "").split(".").sort(), r = p.event.special[l] || {}, l = (f ? r.delegateType : r.bindType) || l, r = p.event.special[l] || {}, n = p.extend({ + type: l, + origType: k[1], + data: e, + handler: d, + guid: d.guid, + selector: f, + needsContext: f && p.expr.match.needsContext.test(f), + namespace: m.join(".") + }, o), q = i[l]; + if (!q) { + q = i[l] = [], q.delegateCount = 0; + if (!r.setup || r.setup.call(a, e, m, h) === !1) { + a.addEventListener ? a.addEventListener(l, h, !1) : a.attachEvent && a.attachEvent("on" + l, h) + } + } + r.add && (r.add.call(a, n), n.handler.guid || (n.handler.guid = d.guid)), f ? q.splice(q.delegateCount++, 0, n) : q.push(n), p.event.global[l] = !0 + } + a = null + }, + global: {}, + remove: function(a, b, c, d, e) { + var f, g, h, i, j, k, l, m, n, o, q, r = p.hasData(a) && p._data(a); + if (!r || !(m = r.events)) { + return + } + b = p.trim(_(b || "")).split(" "); + for (f = 0; f < b.length; f++) { + g = W.exec(b[f]) || [], h = i = g[1], j = g[2]; + if (!h) { + for (h in m) { + p.event.remove(a, h + b[f], c, d, !0) + } + continue + } + n = p.event.special[h] || {}, h = (d ? n.delegateType : n.bindType) || h, o = m[h] || [], k = o.length, j = j ? new RegExp("(^|\\.)" + j.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null; + for (l = 0; l < o.length; l++) { + q = o[l], (e || i === q.origType) && (!c || c.guid === q.guid) && (!j || j.test(q.namespace)) && (!d || d === q.selector || d === "**" && q.selector) && (o.splice(l--, 1), q.selector && o.delegateCount--, n.remove && n.remove.call(a, q)) + } + o.length === 0 && k !== o.length && ((!n.teardown || n.teardown.call(a, j, r.handle) === !1) && p.removeEvent(a, h, r.handle), delete m[h]) + } + p.isEmptyObject(m) && (delete r.handle, p.removeData(a, "events", !0)) + }, + customEvent: { + getData: !0, + setData: !0, + changeData: !0 + }, + trigger: function(c, d, f, g) { + if (!f || f.nodeType !== 3 && f.nodeType !== 8) { + var h, i, j, k, l, m, n, o, q, r, s = c.type || c, + t = []; + if ($.test(s + p.event.triggered)) { + return + } + s.indexOf("!") >= 0 && (s = s.slice(0, -1), i = !0), s.indexOf(".") >= 0 && (t = s.split("."), s = t.shift(), t.sort()); + if ((!f || p.event.customEvent[s]) && !p.event.global[s]) { + return + } + c = typeof c == "object" ? c[p.expando] ? c : new p.Event(s, c) : new p.Event(s), c.type = s, c.isTrigger = !0, c.exclusive = i, c.namespace = t.join("."), c.namespace_re = c.namespace ? new RegExp("(^|\\.)" + t.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, m = s.indexOf(":") < 0 ? "on" + s : ""; + if (!f) { + h = p.cache; + for (j in h) { + h[j].events && h[j].events[s] && p.event.trigger(c, d, h[j].handle.elem, !0) + } + return + } + c.result = b, c.target || (c.target = f), d = d != null ? p.makeArray(d) : [], d.unshift(c), n = p.event.special[s] || {}; + if (n.trigger && n.trigger.apply(f, d) === !1) { + return + } + q = [ + [f, n.bindType || s] + ]; + if (!g && !n.noBubble && !p.isWindow(f)) { + r = n.delegateType || s, k = $.test(r + s) ? f : f.parentNode; + for (l = f; k; k = k.parentNode) { + q.push([k, r]), l = k + } + l === (f.ownerDocument || e) && q.push([l.defaultView || l.parentWindow || a, r]) + } + for (j = 0; j < q.length && !c.isPropagationStopped(); j++) { + k = q[j][0], c.type = q[j][1], o = (p._data(k, "events") || {})[c.type] && p._data(k, "handle"), o && o.apply(k, d), o = m && k[m], o && p.acceptData(k) && o.apply && o.apply(k, d) === !1 && c.preventDefault() + } + return c.type = s, !g && !c.isDefaultPrevented() && (!n._default || n._default.apply(f.ownerDocument, d) === !1) && (s !== "click" || !p.nodeName(f, "a")) && p.acceptData(f) && m && f[s] && (s !== "focus" && s !== "blur" || c.target.offsetWidth !== 0) && !p.isWindow(f) && (l = f[m], l && (f[m] = null), p.event.triggered = s, f[s](), p.event.triggered = b, l && (f[m] = l)), c.result + } + return + }, + dispatch: function(c) { + c = p.event.fix(c || a.event); + var d, e, f, g, h, i, j, l, m, n, o = (p._data(this, "events") || {})[c.type] || [], + q = o.delegateCount, + r = k.call(arguments), + s = !c.exclusive && !c.namespace, + t = p.event.special[c.type] || {}, + u = []; + r[0] = c, c.delegateTarget = this; + if (t.preDispatch && t.preDispatch.call(this, c) === !1) { + return + } + if (q && (!c.button || c.type !== "click")) { + for (f = c.target; f != this; f = f.parentNode || this) { + if (f.disabled !== !0 || c.type !== "click") { + h = {}, j = []; + for (d = 0; d < q; d++) { + l = o[d], m = l.selector, h[m] === b && (h[m] = l.needsContext ? p(m, this).index(f) >= 0 : p.find(m, this, null, [f]).length), h[m] && j.push(l) + } + j.length && u.push({ + elem: f, + matches: j + }) + } + } + } + o.length > q && u.push({ + elem: this, + matches: o.slice(q) + }); + for (d = 0; d < u.length && !c.isPropagationStopped(); d++) { + i = u[d], c.currentTarget = i.elem; + for (e = 0; e < i.matches.length && !c.isImmediatePropagationStopped(); e++) { + l = i.matches[e]; + if (s || !c.namespace && !l.namespace || c.namespace_re && c.namespace_re.test(l.namespace)) { + c.data = l.data, c.handleObj = l, g = ((p.event.special[l.origType] || {}).handle || l.handler).apply(i.elem, r), g !== b && (c.result = g, g === !1 && (c.preventDefault(), c.stopPropagation())) + } + } + } + return t.postDispatch && t.postDispatch.call(this, c), c.result + }, + props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + fixHooks: {}, + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function(a, b) { + return a.which == null && (a.which = b.charCode != null ? b.charCode : b.keyCode), a + } + }, + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function(a, c) { + var d, f, g, h = c.button, + i = c.fromElement; + return a.pageX == null && c.clientX != null && (d = a.target.ownerDocument || e, f = d.documentElement, g = d.body, a.pageX = c.clientX + (f && f.scrollLeft || g && g.scrollLeft || 0) - (f && f.clientLeft || g && g.clientLeft || 0), a.pageY = c.clientY + (f && f.scrollTop || g && g.scrollTop || 0) - (f && f.clientTop || g && g.clientTop || 0)), !a.relatedTarget && i && (a.relatedTarget = i === a.target ? c.toElement : i), !a.which && h !== b && (a.which = h & 1 ? 1 : h & 2 ? 3 : h & 4 ? 2 : 0), a + } + }, + fix: function(a) { + if (a[p.expando]) { + return a + } + var b, c, d = a, + f = p.event.fixHooks[a.type] || {}, + g = f.props ? this.props.concat(f.props) : this.props; + a = p.Event(d); + for (b = g.length; b;) { + c = g[--b], a[c] = d[c] + } + return a.target || (a.target = d.srcElement || e), a.target.nodeType === 3 && (a.target = a.target.parentNode), a.metaKey = !!a.metaKey, f.filter ? f.filter(a, d) : a + }, + special: { + load: { + noBubble: !0 + }, + focus: { + delegateType: "focusin" + }, + blur: { + delegateType: "focusout" + }, + beforeunload: { + setup: function(a, b, c) { + p.isWindow(this) && (this.onbeforeunload = c) + }, + teardown: function(a, b) { + this.onbeforeunload === b && (this.onbeforeunload = null) + } + } + }, + simulate: function(a, b, c, d) { + var e = p.extend(new p.Event, c, { + type: a, + isSimulated: !0, + originalEvent: {} + }); + d ? p.event.trigger(e, null, b) : p.event.dispatch.call(b, e), e.isDefaultPrevented() && c.preventDefault() + } + }, p.event.handle = p.event.dispatch, p.removeEvent = e.removeEventListener ? function(a, b, c) { + a.removeEventListener && a.removeEventListener(b, c, !1) + } : function(a, b, c) { + var d = "on" + b; + a.detachEvent && (typeof a[d] == "undefined" && (a[d] = null), a.detachEvent(d, c)) + }, p.Event = function(a, b) { + if (this instanceof p.Event) { + a && a.type ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || a.returnValue === !1 || a.getPreventDefault && a.getPreventDefault() ? bb : ba) : this.type = a, b && p.extend(this, b), this.timeStamp = a && a.timeStamp || p.now(), this[p.expando] = !0 + } else { + return new p.Event(a, b) + } + }, p.Event.prototype = { + preventDefault: function() { + this.isDefaultPrevented = bb; + var a = this.originalEvent; + if (!a) { + return + } + a.preventDefault ? a.preventDefault() : a.returnValue = !1 + }, + stopPropagation: function() { + this.isPropagationStopped = bb; + var a = this.originalEvent; + if (!a) { + return + } + a.stopPropagation && a.stopPropagation(), a.cancelBubble = !0 + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = bb, this.stopPropagation() + }, + isDefaultPrevented: ba, + isPropagationStopped: ba, + isImmediatePropagationStopped: ba + }, p.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" + }, function(a, b) { + p.event.special[a] = { + delegateType: b, + bindType: b, + handle: function(a) { + var c, d = this, + e = a.relatedTarget, + f = a.handleObj, + g = f.selector; + if (!e || e !== d && !p.contains(d, e)) { + a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b + } + return c + } + } + }), p.support.submitBubbles || (p.event.special.submit = { + setup: function() { + if (p.nodeName(this, "form")) { + return !1 + } + p.event.add(this, "click._submit keypress._submit", function(a) { + var c = a.target, + d = p.nodeName(c, "input") || p.nodeName(c, "button") ? c.form : b; + d && !p._data(d, "_submit_attached") && (p.event.add(d, "submit._submit", function(a) { + a._submit_bubble = !0 + }), p._data(d, "_submit_attached", !0)) + }) + }, + postDispatch: function(a) { + a._submit_bubble && (delete a._submit_bubble, this.parentNode && !a.isTrigger && p.event.simulate("submit", this.parentNode, a, !0)) + }, + teardown: function() { + if (p.nodeName(this, "form")) { + return !1 + } + p.event.remove(this, "._submit") + } + }), p.support.changeBubbles || (p.event.special.change = { + setup: function() { + if (V.test(this.nodeName)) { + if (this.type === "checkbox" || this.type === "radio") { + p.event.add(this, "propertychange._change", function(a) { + a.originalEvent.propertyName === "checked" && (this._just_changed = !0) + }), p.event.add(this, "click._change", function(a) { + this._just_changed && !a.isTrigger && (this._just_changed = !1), p.event.simulate("change", this, a, !0) + }) + } + return !1 + } + p.event.add(this, "beforeactivate._change", function(a) { + var b = a.target; + V.test(b.nodeName) && !p._data(b, "_change_attached") && (p.event.add(b, "change._change", function(a) { + this.parentNode && !a.isSimulated && !a.isTrigger && p.event.simulate("change", this.parentNode, a, !0) + }), p._data(b, "_change_attached", !0)) + }) + }, + handle: function(a) { + var b = a.target; + if (this !== b || a.isSimulated || a.isTrigger || b.type !== "radio" && b.type !== "checkbox") { + return a.handleObj.handler.apply(this, arguments) + } + }, + teardown: function() { + return p.event.remove(this, "._change"), !V.test(this.nodeName) + } + }), p.support.focusinBubbles || p.each({ + focus: "focusin", + blur: "focusout" + }, function(a, b) { + var c = 0, + d = function(a) { + p.event.simulate(b, a.target, p.event.fix(a), !0) + }; + p.event.special[b] = { + setup: function() { + c++ === 0 && e.addEventListener(a, d, !0) + }, + teardown: function() { + --c === 0 && e.removeEventListener(a, d, !0) + } + } + }), p.fn.extend({ + on: function(a, c, d, e, f) { + var g, h; + if (typeof a == "object") { + typeof c != "string" && (d = d || c, c = b); + for (h in a) { + this.on(h, c, d, a[h], f) + } + return this + } + d == null && e == null ? (e = c, d = c = b) : e == null && (typeof c == "string" ? (e = d, d = b) : (e = d, d = c, c = b)); + if (e === !1) { + e = ba + } else { + if (!e) { + return this + } + } + return f === 1 && (g = e, e = function(a) { + return p().off(a), g.apply(this, arguments) + }, e.guid = g.guid || (g.guid = p.guid++)), this.each(function() { + p.event.add(this, a, e, d, c) + }) + }, + one: function(a, b, c, d) { + return this.on(a, b, c, d, 1) + }, + off: function(a, c, d) { + var e, f; + if (a && a.preventDefault && a.handleObj) { + return e = a.handleObj, p(a.delegateTarget).off(e.namespace ? e.origType + "." + e.namespace : e.origType, e.selector, e.handler), this + } + if (typeof a == "object") { + for (f in a) { + this.off(f, c, a[f]) + } + return this + } + if (c === !1 || typeof c == "function") { + d = c, c = b + } + return d === !1 && (d = ba), this.each(function() { + p.event.remove(this, a, d, c) + }) + }, + bind: function(a, b, c) { + return this.on(a, null, b, c) + }, + unbind: function(a, b) { + return this.off(a, null, b) + }, + live: function(a, b, c) { + return p(this.context).on(a, this.selector, b, c), this + }, + die: function(a, b) { + return p(this.context).off(a, this.selector || "**", b), this + }, + delegate: function(a, b, c, d) { + return this.on(b, a, c, d) + }, + undelegate: function(a, b, c) { + return arguments.length === 1 ? this.off(a, "**") : this.off(b, a || "**", c) + }, + trigger: function(a, b) { + return this.each(function() { + p.event.trigger(a, b, this) + }) + }, + triggerHandler: function(a, b) { + if (this[0]) { + return p.event.trigger(a, b, this[0], !0) + } + }, + toggle: function(a) { + var b = arguments, + c = a.guid || p.guid++, + d = 0, + e = function(c) { + var e = (p._data(this, "lastToggle" + a.guid) || 0) % d; + return p._data(this, "lastToggle" + a.guid, e + 1), c.preventDefault(), b[e].apply(this, arguments) || !1 + }; + e.guid = c; + while (d < b.length) { + b[d++].guid = c + } + return this.click(e) + }, + hover: function(a, b) { + return this.mouseenter(a).mouseleave(b || a) + } + }), p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function(a, b) { + p.fn[b] = function(a, c) { + return c == null && (c = a, a = null), arguments.length > 0 ? this.on(b, null, a, c) : this.trigger(b) + }, Y.test(b) && (p.event.fixHooks[b] = p.event.keyHooks), Z.test(b) && (p.event.fixHooks[b] = p.event.mouseHooks) + }), + function(a, b) { + function bc(a, b, c, d) { + c = c || [], b = b || r; + var e, f, i, j, k = b.nodeType; + if (!a || typeof a != "string") { + return c + } + if (k !== 1 && k !== 9) { + return [] + } + i = g(b); + if (!i && !d) { + if (e = P.exec(a)) { + if (j = e[1]) { + if (k === 9) { + f = b.getElementById(j); + if (!f || !f.parentNode) { + return c + } + if (f.id === j) { + return c.push(f), c + } + } else { + if (b.ownerDocument && (f = b.ownerDocument.getElementById(j)) && h(b, f) && f.id === j) { + return c.push(f), c + } + } + } else { + if (e[2]) { + return w.apply(c, x.call(b.getElementsByTagName(a), 0)), c + } + if ((j = e[3]) && _ && b.getElementsByClassName) { + return w.apply(c, x.call(b.getElementsByClassName(j), 0)), c + } + } + } + } + return bp(a.replace(L, "$1"), b, c, d, i) + } + + function bd(a) { + return function(b) { + var c = b.nodeName.toLowerCase(); + return c === "input" && b.type === a + } + } + + function be(a) { + return function(b) { + var c = b.nodeName.toLowerCase(); + return (c === "input" || c === "button") && b.type === a + } + } + + function bf(a) { + return z(function(b) { + return b = +b, z(function(c, d) { + var e, f = a([], c.length, b), + g = f.length; + while (g--) { + c[e = f[g]] && (c[e] = !(d[e] = c[e])) + } + }) + }) + } + + function bg(a, b, c) { + if (a === b) { + return c + } + var d = a.nextSibling; + while (d) { + if (d === b) { + return -1 + } + d = d.nextSibling + } + return 1 + } + + function bh(a, b) { + var c, d, f, g, h, i, j, k = C[o][a]; + if (k) { + return b ? 0 : k.slice(0) + } + h = a, i = [], j = e.preFilter; + while (h) { + if (!c || (d = M.exec(h))) { + d && (h = h.slice(d[0].length)), i.push(f = []) + } + c = !1; + if (d = N.exec(h)) { + f.push(c = new q(d.shift())), h = h.slice(c.length), c.type = d[0].replace(L, " ") + } + for (g in e.filter) { + (d = W[g].exec(h)) && (!j[g] || (d = j[g](d, r, !0))) && (f.push(c = new q(d.shift())), h = h.slice(c.length), c.type = g, c.matches = d) + } + if (!c) { + break + } + } + return b ? h.length : h ? bc.error(a) : C(a, i).slice(0) + } + + function bi(a, b, d) { + var e = b.dir, + f = d && b.dir === "parentNode", + g = u++; + return b.first ? function(b, c, d) { + while (b = b[e]) { + if (f || b.nodeType === 1) { + return a(b, c, d) + } + } + } : function(b, d, h) { + if (!h) { + var i, j = t + " " + g + " ", + k = j + c; + while (b = b[e]) { + if (f || b.nodeType === 1) { + if ((i = b[o]) === k) { + return b.sizset + } + if (typeof i == "string" && i.indexOf(j) === 0) { + if (b.sizset) { + return b + } + } else { + b[o] = k; + if (a(b, d, h)) { + return b.sizset = !0, b + } + b.sizset = !1 + } + } + } + } else { + while (b = b[e]) { + if (f || b.nodeType === 1) { + if (a(b, d, h)) { + return b + } + } + } + } + } + } + + function bj(a) { + return a.length > 1 ? function(b, c, d) { + var e = a.length; + while (e--) { + if (!a[e](b, c, d)) { + return !1 + } + } + return !0 + } : a[0] + } + + function bk(a, b, c, d, e) { + var f, g = [], + h = 0, + i = a.length, + j = b != null; + for (; h < i; h++) { + if (f = a[h]) { + if (!c || c(f, d, e)) { + g.push(f), j && b.push(h) + } + } + } + return g + } + + function bl(a, b, c, d, e, f) { + return d && !d[o] && (d = bl(d)), e && !e[o] && (e = bl(e, f)), z(function(f, g, h, i) { + if (f && e) { + return + } + var j, k, l, m = [], + n = [], + o = g.length, + p = f || bo(b || "*", h.nodeType ? [h] : h, [], f), + q = a && (f || !b) ? bk(p, m, a, h, i) : p, + r = c ? e || (f ? a : o || d) ? [] : g : q; + c && c(q, r, h, i); + if (d) { + l = bk(r, n), d(l, [], h, i), j = l.length; + while (j--) { + if (k = l[j]) { + r[n[j]] = !(q[n[j]] = k) + } + } + } + if (f) { + j = a && r.length; + while (j--) { + if (k = r[j]) { + f[m[j]] = !(g[m[j]] = k) + } + } + } else { + r = bk(r === g ? r.splice(o, r.length) : r), e ? e(null, g, r, i) : w.apply(g, r) + } + }) + } + + function bm(a) { + var b, c, d, f = a.length, + g = e.relative[a[0].type], + h = g || e.relative[" "], + i = g ? 1 : 0, + j = bi(function(a) { + return a === b + }, h, !0), + k = bi(function(a) { + return y.call(b, a) > -1 + }, h, !0), + m = [function(a, c, d) { + return !g && (d || c !== l) || ((b = c).nodeType ? j(a, c, d) : k(a, c, d)) + }]; + for (; i < f; i++) { + if (c = e.relative[a[i].type]) { + m = [bi(bj(m), c)] + } else { + c = e.filter[a[i].type].apply(null, a[i].matches); + if (c[o]) { + d = ++i; + for (; d < f; d++) { + if (e.relative[a[d].type]) { + break + } + } + return bl(i > 1 && bj(m), i > 1 && a.slice(0, i - 1).join("").replace(L, "$1"), c, i < d && bm(a.slice(i, d)), d < f && bm(a = a.slice(d)), d < f && a.join("")) + } + m.push(c) + } + } + return bj(m) + } + + function bn(a, b) { + var d = b.length > 0, + f = a.length > 0, + g = function(h, i, j, k, m) { + var n, o, p, q = [], + s = 0, + u = "0", + x = h && [], + y = m != null, + z = l, + A = h || f && e.find.TAG("*", m && i.parentNode || i), + B = t += z == null ? 1 : Math.E; + y && (l = i !== r && i, c = g.el); + for (; + (n = A[u]) != null; u++) { + if (f && n) { + for (o = 0; p = a[o]; o++) { + if (p(n, i, j)) { + k.push(n); + break + } + } + y && (t = B, c = ++g.el) + } + d && ((n = !p && n) && s--, h && x.push(n)) + } + s += u; + if (d && u !== s) { + for (o = 0; p = b[o]; o++) { + p(x, q, i, j) + } + if (h) { + if (s > 0) { + while (u--) { + !x[u] && !q[u] && (q[u] = v.call(k)) + } + } + q = bk(q) + } + w.apply(k, q), y && !h && q.length > 0 && s + b.length > 1 && bc.uniqueSort(k) + } + return y && (t = B, l = z), x + }; + return g.el = 0, d ? z(g) : g + } + + function bo(a, b, c, d) { + var e = 0, + f = b.length; + for (; e < f; e++) { + bc(a, b[e], c, d) + } + return c + } + + function bp(a, b, c, d, f) { + var g, h, j, k, l, m = bh(a), + n = m.length; + if (!d && m.length === 1) { + h = m[0] = m[0].slice(0); + if (h.length > 2 && (j = h[0]).type === "ID" && b.nodeType === 9 && !f && e.relative[h[1].type]) { + b = e.find.ID(j.matches[0].replace(V, ""), b, f)[0]; + if (!b) { + return c + } + a = a.slice(h.shift().length) + } + for (g = W.POS.test(a) ? -1 : h.length - 1; g >= 0; g--) { + j = h[g]; + if (e.relative[k = j.type]) { + break + } + if (l = e.find[k]) { + if (d = l(j.matches[0].replace(V, ""), R.test(h[0].type) && b.parentNode || b, f)) { + h.splice(g, 1), a = d.length && h.join(""); + if (!a) { + return w.apply(c, x.call(d, 0)), c + } + break + } + } + } + } + return i(a, m)(d, b, f, c, R.test(a)), c + } + + function bq() {} + var c, d, e, f, g, h, i, j, k, l, m = !0, + n = "undefined", + o = ("sizcache" + Math.random()).replace(".", ""), + q = String, + r = a.document, + s = r.documentElement, + t = 0, + u = 0, + v = [].pop, + w = [].push, + x = [].slice, + y = [].indexOf || function(a) { + var b = 0, + c = this.length; + for (; b < c; b++) { + if (this[b] === a) { + return b + } + } + return -1 + }, + z = function(a, b) { + return a[o] = b == null || b, a + }, + A = function() { + var a = {}, + b = []; + return z(function(c, d) { + return b.push(c) > e.cacheLength && delete a[b.shift()], a[c] = d + }, a) + }, + B = A(), + C = A(), + D = A(), + E = "[\\x20\\t\\r\\n\\f]", + F = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+", + G = F.replace("w", "w#"), + H = "([*^$|!~]?=)", + I = "\\[" + E + "*(" + F + ")" + E + "*(?:" + H + E + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + G + ")|)|)" + E + "*\\]", + J = ":(" + F + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + I + ")|[^:]|\\\\.)*|.*))\\)|)", + K = ":(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + E + "*((?:-\\d)?\\d*)" + E + "*\\)|)(?=[^-]|$)", + L = new RegExp("^" + E + "+|((?:^|[^\\\\])(?:\\\\.)*)" + E + "+$", "g"), + M = new RegExp("^" + E + "*," + E + "*"), + N = new RegExp("^" + E + "*([\\x20\\t\\r\\n\\f>+~])" + E + "*"), + O = new RegExp(J), + P = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, + Q = /^:not/, + R = /[\x20\t\r\n\f]*[+~]/, + S = /:not\($/, + T = /h\d/i, + U = /input|select|textarea|button/i, + V = /\\(?!\\)/g, + W = { + ID: new RegExp("^#(" + F + ")"), + CLASS: new RegExp("^\\.(" + F + ")"), + NAME: new RegExp("^\\[name=['\"]?(" + F + ")['\"]?\\]"), + TAG: new RegExp("^(" + F.replace("w", "w*") + ")"), + ATTR: new RegExp("^" + I), + PSEUDO: new RegExp("^" + J), + POS: new RegExp(K, "i"), + CHILD: new RegExp("^:(only|nth|first|last)-child(?:\\(" + E + "*(even|odd|(([+-]|)(\\d*)n|)" + E + "*(?:([+-]|)" + E + "*(\\d+)|))" + E + "*\\)|)", "i"), + needsContext: new RegExp("^" + E + "*[>+~]|" + K, "i") + }, + X = function(a) { + var b = r.createElement("div"); + try { + return a(b) + } catch (c) { + return !1 + } finally { + b = null + } + }, + Y = X(function(a) { + return a.appendChild(r.createComment("")), !a.getElementsByTagName("*").length + }), + Z = X(function(a) { + return a.innerHTML = "", a.firstChild && typeof a.firstChild.getAttribute !== n && a.firstChild.getAttribute("href") === "#" + }), + $ = X(function(a) { + a.innerHTML = ""; + var b = typeof a.lastChild.getAttribute("multiple"); + return b !== "boolean" && b !== "string" + }), + _ = X(function(a) { + return a.innerHTML = "", !a.getElementsByClassName || !a.getElementsByClassName("e").length ? !1 : (a.lastChild.className = "e", a.getElementsByClassName("e").length === 2) + }), + ba = X(function(a) { + a.id = o + 0, a.innerHTML = "
", s.insertBefore(a, s.firstChild); + var b = r.getElementsByName && r.getElementsByName(o).length === 2 + r.getElementsByName(o + 0).length; + return d = !r.getElementById(o), s.removeChild(a), b + }); + try { + x.call(s.childNodes, 0)[0].nodeType + } catch (bb) { + x = function(a) { + var b, c = []; + for (; b = this[a]; a++) { + c.push(b) + } + return c + } + } + bc.matches = function(a, b) { + return bc(a, null, null, b) + }, bc.matchesSelector = function(a, b) { + return bc(b, null, null, [a]).length > 0 + }, f = bc.getText = function(a) { + var b, c = "", + d = 0, + e = a.nodeType; + if (e) { + if (e === 1 || e === 9 || e === 11) { + if (typeof a.textContent == "string") { + return a.textContent + } + for (a = a.firstChild; a; a = a.nextSibling) { + c += f(a) + } + } else { + if (e === 3 || e === 4) { + return a.nodeValue + } + } + } else { + for (; b = a[d]; d++) { + c += f(b) + } + } + return c + }, g = bc.isXML = function(a) { + var b = a && (a.ownerDocument || a).documentElement; + return b ? b.nodeName !== "HTML" : !1 + }, h = bc.contains = s.contains ? function(a, b) { + var c = a.nodeType === 9 ? a.documentElement : a, + d = b && b.parentNode; + return a === d || !!(d && d.nodeType === 1 && c.contains && c.contains(d)) + } : s.compareDocumentPosition ? function(a, b) { + return b && !!(a.compareDocumentPosition(b) & 16) + } : function(a, b) { + while (b = b.parentNode) { + if (b === a) { + return !0 + } + } + return !1 + }, bc.attr = function(a, b) { + var c, d = g(a); + return d || (b = b.toLowerCase()), (c = e.attrHandle[b]) ? c(a) : d || $ ? a.getAttribute(b) : (c = a.getAttributeNode(b), c ? typeof a[b] == "boolean" ? a[b] ? b : null : c.specified ? c.value : null : null) + }, e = bc.selectors = { + cacheLength: 50, + createPseudo: z, + match: W, + attrHandle: Z ? {} : { + href: function(a) { + return a.getAttribute("href", 2) + }, + type: function(a) { + return a.getAttribute("type") + } + }, + find: { + ID: d ? function(a, b, c) { + if (typeof b.getElementById !== n && !c) { + var d = b.getElementById(a); + return d && d.parentNode ? [d] : [] + } + } : function(a, c, d) { + if (typeof c.getElementById !== n && !d) { + var e = c.getElementById(a); + return e ? e.id === a || typeof e.getAttributeNode !== n && e.getAttributeNode("id").value === a ? [e] : b : [] + } + }, + TAG: Y ? function(a, b) { + if (typeof b.getElementsByTagName !== n) { + return b.getElementsByTagName(a) + } + } : function(a, b) { + var c = b.getElementsByTagName(a); + if (a === "*") { + var d, e = [], + f = 0; + for (; d = c[f]; f++) { + d.nodeType === 1 && e.push(d) + } + return e + } + return c + }, + NAME: ba && function(a, b) { + if (typeof b.getElementsByName !== n) { + return b.getElementsByName(name) + } + }, + CLASS: _ && function(a, b, c) { + if (typeof b.getElementsByClassName !== n && !c) { + return b.getElementsByClassName(a) + } + } + }, + relative: { + ">": { + dir: "parentNode", + first: !0 + }, + " ": { + dir: "parentNode" + }, + "+": { + dir: "previousSibling", + first: !0 + }, + "~": { + dir: "previousSibling" + } + }, + preFilter: { + ATTR: function(a) { + return a[1] = a[1].replace(V, ""), a[3] = (a[4] || a[5] || "").replace(V, ""), a[2] === "~=" && (a[3] = " " + a[3] + " "), a.slice(0, 4) + }, + CHILD: function(a) { + return a[1] = a[1].toLowerCase(), a[1] === "nth" ? (a[2] || bc.error(a[0]), a[3] = +(a[3] ? a[4] + (a[5] || 1) : 2 * (a[2] === "even" || a[2] === "odd")), a[4] = +(a[6] + a[7] || a[2] === "odd")) : a[2] && bc.error(a[0]), a + }, + PSEUDO: function(a) { + var b, c; + if (W.CHILD.test(a[0])) { + return null + } + if (a[3]) { + a[2] = a[3] + } else { + if (b = a[4]) { + O.test(b) && (c = bh(b, !0)) && (c = b.indexOf(")", b.length - c) - b.length) && (b = b.slice(0, c), a[0] = a[0].slice(0, c)), a[2] = b + } + } + return a.slice(0, 3) + } + }, + filter: { + ID: d ? function(a) { + return a = a.replace(V, ""), + function(b) { + return b.getAttribute("id") === a + } + } : function(a) { + return a = a.replace(V, ""), + function(b) { + var c = typeof b.getAttributeNode !== n && b.getAttributeNode("id"); + return c && c.value === a + } + }, + TAG: function(a) { + return a === "*" ? function() { + return !0 + } : (a = a.replace(V, "").toLowerCase(), function(b) { + return b.nodeName && b.nodeName.toLowerCase() === a + }) + }, + CLASS: function(a) { + var b = B[o][a]; + return b || (b = B(a, new RegExp("(^|" + E + ")" + a + "(" + E + "|$)"))), + function(a) { + return b.test(a.className || typeof a.getAttribute !== n && a.getAttribute("class") || "") + } + }, + ATTR: function(a, b, c) { + return function(d, e) { + var f = bc.attr(d, a); + return f == null ? b === "!=" : b ? (f += "", b === "=" ? f === c : b === "!=" ? f !== c : b === "^=" ? c && f.indexOf(c) === 0 : b === "*=" ? c && f.indexOf(c) > -1 : b === "$=" ? c && f.substr(f.length - c.length) === c : b === "~=" ? (" " + f + " ").indexOf(c) > -1 : b === "|=" ? f === c || f.substr(0, c.length + 1) === c + "-" : !1) : !0 + } + }, + CHILD: function(a, b, c, d) { + return a === "nth" ? function(a) { + var b, e, f = a.parentNode; + if (c === 1 && d === 0) { + return !0 + } + if (f) { + e = 0; + for (b = f.firstChild; b; b = b.nextSibling) { + if (b.nodeType === 1) { + e++; + if (a === b) { + break + } + } + } + } + return e -= d, e === c || e % c === 0 && e / c >= 0 + } : function(b) { + var c = b; + switch (a) { + case "only": + case "first": + while (c = c.previousSibling) { + if (c.nodeType === 1) { + return !1 + } + } + if (a === "first") { + return !0 + } + c = b; + case "last": + while (c = c.nextSibling) { + if (c.nodeType === 1) { + return !1 + } + } + return !0 + } + } + }, + PSEUDO: function(a, b) { + var c, d = e.pseudos[a] || e.setFilters[a.toLowerCase()] || bc.error("unsupported pseudo: " + a); + return d[o] ? d(b) : d.length > 1 ? (c = [a, a, "", b], e.setFilters.hasOwnProperty(a.toLowerCase()) ? z(function(a, c) { + var e, f = d(a, b), + g = f.length; + while (g--) { + e = y.call(a, f[g]), a[e] = !(c[e] = f[g]) + } + }) : function(a) { + return d(a, 0, c) + }) : d + } + }, + pseudos: { + not: z(function(a) { + var b = [], + c = [], + d = i(a.replace(L, "$1")); + return d[o] ? z(function(a, b, c, e) { + var f, g = d(a, null, e, []), + h = a.length; + while (h--) { + if (f = g[h]) { + a[h] = !(b[h] = f) + } + } + }) : function(a, e, f) { + return b[0] = a, d(b, null, f, c), !c.pop() + } + }), + has: z(function(a) { + return function(b) { + return bc(a, b).length > 0 + } + }), + contains: z(function(a) { + return function(b) { + return (b.textContent || b.innerText || f(b)).indexOf(a) > -1 + } + }), + enabled: function(a) { + return a.disabled === !1 + }, + disabled: function(a) { + return a.disabled === !0 + }, + checked: function(a) { + var b = a.nodeName.toLowerCase(); + return b === "input" && !!a.checked || b === "option" && !!a.selected + }, + selected: function(a) { + return a.parentNode && a.parentNode.selectedIndex, a.selected === !0 + }, + parent: function(a) { + return !e.pseudos.empty(a) + }, + empty: function(a) { + var b; + a = a.firstChild; + while (a) { + if (a.nodeName > "@" || (b = a.nodeType) === 3 || b === 4) { + return !1 + } + a = a.nextSibling + } + return !0 + }, + header: function(a) { + return T.test(a.nodeName) + }, + text: function(a) { + var b, c; + return a.nodeName.toLowerCase() === "input" && (b = a.type) === "text" && ((c = a.getAttribute("type")) == null || c.toLowerCase() === b) + }, + radio: bd("radio"), + checkbox: bd("checkbox"), + file: bd("file"), + password: bd("password"), + image: bd("image"), + submit: be("submit"), + reset: be("reset"), + button: function(a) { + var b = a.nodeName.toLowerCase(); + return b === "input" && a.type === "button" || b === "button" + }, + input: function(a) { + return U.test(a.nodeName) + }, + focus: function(a) { + var b = a.ownerDocument; + return a === b.activeElement && (!b.hasFocus || b.hasFocus()) && (!!a.type || !!a.href) + }, + active: function(a) { + return a === a.ownerDocument.activeElement + }, + first: bf(function(a, b, c) { + return [0] + }), + last: bf(function(a, b, c) { + return [b - 1] + }), + eq: bf(function(a, b, c) { + return [c < 0 ? c + b : c] + }), + even: bf(function(a, b, c) { + for (var d = 0; d < b; d += 2) { + a.push(d) + } + return a + }), + odd: bf(function(a, b, c) { + for (var d = 1; d < b; d += 2) { + a.push(d) + } + return a + }), + lt: bf(function(a, b, c) { + for (var d = c < 0 ? c + b : c; --d >= 0;) { + a.push(d) + } + return a + }), + gt: bf(function(a, b, c) { + for (var d = c < 0 ? c + b : c; ++d < b;) { + a.push(d) + } + return a + }) + } + }, j = s.compareDocumentPosition ? function(a, b) { + return a === b ? (k = !0, 0) : (!a.compareDocumentPosition || !b.compareDocumentPosition ? a.compareDocumentPosition : a.compareDocumentPosition(b) & 4) ? -1 : 1 + } : function(a, b) { + if (a === b) { + return k = !0, 0 + } + if (a.sourceIndex && b.sourceIndex) { + return a.sourceIndex - b.sourceIndex + } + var c, d, e = [], + f = [], + g = a.parentNode, + h = b.parentNode, + i = g; + if (g === h) { + return bg(a, b) + } + if (!g) { + return -1 + } + if (!h) { + return 1 + } + while (i) { + e.unshift(i), i = i.parentNode + } + i = h; + while (i) { + f.unshift(i), i = i.parentNode + } + c = e.length, d = f.length; + for (var j = 0; j < c && j < d; j++) { + if (e[j] !== f[j]) { + return bg(e[j], f[j]) + } + } + return j === c ? bg(a, f[j], -1) : bg(e[j], b, 1) + }, [0, 0].sort(j), m = !k, bc.uniqueSort = function(a) { + var b, c = 1; + k = m, a.sort(j); + if (k) { + for (; b = a[c]; c++) { + b === a[c - 1] && a.splice(c--, 1) + } + } + return a + }, bc.error = function(a) { + throw new Error("Syntax error, unrecognized expression: " + a) + }, i = bc.compile = function(a, b) { + var c, d = [], + e = [], + f = D[o][a]; + if (!f) { + b || (b = bh(a)), c = b.length; + while (c--) { + f = bm(b[c]), f[o] ? d.push(f) : e.push(f) + } + f = D(a, bn(e, d)) + } + return f + }, r.querySelectorAll && function() { + var a, b = bp, + c = /'|\\/g, + d = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + e = [":focus"], + f = [":active", ":focus"], + h = s.matchesSelector || s.mozMatchesSelector || s.webkitMatchesSelector || s.oMatchesSelector || s.msMatchesSelector; + X(function(a) { + a.innerHTML = "", a.querySelectorAll("[selected]").length || e.push("\\[" + E + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"), a.querySelectorAll(":checked").length || e.push(":checked") + }), X(function(a) { + a.innerHTML = "

", a.querySelectorAll("[test^='']").length && e.push("[*^$]=" + E + "*(?:\"\"|'')"), a.innerHTML = "", a.querySelectorAll(":enabled").length || e.push(":enabled", ":disabled") + }), e = new RegExp(e.join("|")), bp = function(a, d, f, g, h) { + if (!g && !h && (!e || !e.test(a))) { + var i, j, k = !0, + l = o, + m = d, + n = d.nodeType === 9 && a; + if (d.nodeType === 1 && d.nodeName.toLowerCase() !== "object") { + i = bh(a), (k = d.getAttribute("id")) ? l = k.replace(c, "\\$&") : d.setAttribute("id", l), l = "[id='" + l + "'] ", j = i.length; + while (j--) { + i[j] = l + i[j].join("") + } + m = R.test(a) && d.parentNode || d, n = i.join(",") + } + if (n) { + try { + return w.apply(f, x.call(m.querySelectorAll(n), 0)), f + } catch (p) {} finally { + k || d.removeAttribute("id") + } + } + } + return b(a, d, f, g, h) + }, h && (X(function(b) { + a = h.call(b, "div"); + try { + h.call(b, "[test!='']:sizzle"), f.push("!=", J) + } catch (c) {} + }), f = new RegExp(f.join("|")), bc.matchesSelector = function(b, c) { + c = c.replace(d, "='$1']"); + if (!g(b) && !f.test(c) && (!e || !e.test(c))) { + try { + var i = h.call(b, c); + if (i || a || b.document && b.document.nodeType !== 11) { + return i + } + } catch (j) {} + } + return bc(c, null, null, [b]).length > 0 + }) + }(), e.pseudos.nth = e.pseudos.eq, e.filters = bq.prototype = e.pseudos, e.setFilters = new bq, bc.attr = p.attr, p.find = bc, p.expr = bc.selectors, p.expr[":"] = p.expr.pseudos, p.unique = bc.uniqueSort, p.text = bc.getText, p.isXMLDoc = bc.isXML, p.contains = bc.contains + }(a); + var bc = /Until$/, + bd = /^(?:parents|prev(?:Until|All))/, + be = /^.[^:#\[\.,]*$/, + bf = p.expr.match.needsContext, + bg = { + children: !0, + contents: !0, + next: !0, + prev: !0 + }; + p.fn.extend({ + find: function(a) { + var b, c, d, e, f, g, h = this; + if (typeof a != "string") { + return p(a).filter(function() { + for (b = 0, c = h.length; b < c; b++) { + if (p.contains(h[b], this)) { + return !0 + } + } + }) + } + g = this.pushStack("", "find", a); + for (b = 0, c = this.length; b < c; b++) { + d = g.length, p.find(a, this[b], g); + if (b > 0) { + for (e = d; e < g.length; e++) { + for (f = 0; f < d; f++) { + if (g[f] === g[e]) { + g.splice(e--, 1); + break + } + } + } + } + } + return g + }, + has: function(a) { + var b, c = p(a, this), + d = c.length; + return this.filter(function() { + for (b = 0; b < d; b++) { + if (p.contains(this, c[b])) { + return !0 + } + } + }) + }, + not: function(a) { + return this.pushStack(bj(this, a, !1), "not", a) + }, + filter: function(a) { + return this.pushStack(bj(this, a, !0), "filter", a) + }, + is: function(a) { + return !!a && (typeof a == "string" ? bf.test(a) ? p(a, this.context).index(this[0]) >= 0 : p.filter(a, this).length > 0 : this.filter(a).length > 0) + }, + closest: function(a, b) { + var c, d = 0, + e = this.length, + f = [], + g = bf.test(a) || typeof a != "string" ? p(a, b || this.context) : 0; + for (; d < e; d++) { + c = this[d]; + while (c && c.ownerDocument && c !== b && c.nodeType !== 11) { + if (g ? g.index(c) > -1 : p.find.matchesSelector(c, a)) { + f.push(c); + break + } + c = c.parentNode + } + } + return f = f.length > 1 ? p.unique(f) : f, this.pushStack(f, "closest", a) + }, + index: function(a) { + return a ? typeof a == "string" ? p.inArray(this[0], p(a)) : p.inArray(a.jquery ? a[0] : a, this) : this[0] && this[0].parentNode ? this.prevAll().length : -1 + }, + add: function(a, b) { + var c = typeof a == "string" ? p(a, b) : p.makeArray(a && a.nodeType ? [a] : a), + d = p.merge(this.get(), c); + return this.pushStack(bh(c[0]) || bh(d[0]) ? d : p.unique(d)) + }, + addBack: function(a) { + return this.add(a == null ? this.prevObject : this.prevObject.filter(a)) + } + }), p.fn.andSelf = p.fn.addBack, p.each({ + parent: function(a) { + var b = a.parentNode; + return b && b.nodeType !== 11 ? b : null + }, + parents: function(a) { + return p.dir(a, "parentNode") + }, + parentsUntil: function(a, b, c) { + return p.dir(a, "parentNode", c) + }, + next: function(a) { + return bi(a, "nextSibling") + }, + prev: function(a) { + return bi(a, "previousSibling") + }, + nextAll: function(a) { + return p.dir(a, "nextSibling") + }, + prevAll: function(a) { + return p.dir(a, "previousSibling") + }, + nextUntil: function(a, b, c) { + return p.dir(a, "nextSibling", c) + }, + prevUntil: function(a, b, c) { + return p.dir(a, "previousSibling", c) + }, + siblings: function(a) { + return p.sibling((a.parentNode || {}).firstChild, a) + }, + children: function(a) { + return p.sibling(a.firstChild) + }, + contents: function(a) { + return p.nodeName(a, "iframe") ? a.contentDocument || a.contentWindow.document : p.merge([], a.childNodes) + } + }, function(a, b) { + p.fn[a] = function(c, d) { + var e = p.map(this, b, c); + return bc.test(a) || (d = c), d && typeof d == "string" && (e = p.filter(d, e)), e = this.length > 1 && !bg[a] ? p.unique(e) : e, this.length > 1 && bd.test(a) && (e = e.reverse()), this.pushStack(e, a, k.call(arguments).join(",")) + } + }), p.extend({ + filter: function(a, b, c) { + return c && (a = ":not(" + a + ")"), b.length === 1 ? p.find.matchesSelector(b[0], a) ? [b[0]] : [] : p.find.matches(a, b) + }, + dir: function(a, c, d) { + var e = [], + f = a[c]; + while (f && f.nodeType !== 9 && (d === b || f.nodeType !== 1 || !p(f).is(d))) { + f.nodeType === 1 && e.push(f), f = f[c] + } + return e + }, + sibling: function(a, b) { + var c = []; + for (; a; a = a.nextSibling) { + a.nodeType === 1 && a !== b && c.push(a) + } + return c + } + }); + var bl = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + bm = / jQuery\d+="(?:null|\d+)"/g, + bn = /^\s+/, + bo = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + bp = /<([\w:]+)/, + bq = /]", "i"), + bv = /^(?:checkbox|radio)$/, + bw = /checked\s*(?:[^=]|=\s*.checked.)/i, + bx = /\/(java|ecma)script/i, + by = /^\s*\s*$/g, + bz = { + option: [1, ""], + legend: [1, "
", "
"], + thead: [1, "", "
"], + tr: [2, "", "
"], + td: [3, "", "
"], + col: [2, "", "
"], + area: [1, "", ""], + _default: [0, "", ""] + }, + bA = bk(e), + bB = bA.appendChild(e.createElement("div")); + bz.optgroup = bz.option, bz.tbody = bz.tfoot = bz.colgroup = bz.caption = bz.thead, bz.th = bz.td, p.support.htmlSerialize || (bz._default = [1, "X
", "
"]), p.fn.extend({ + text: function(a) { + return p.access(this, function(a) { + return a === b ? p.text(this) : this.empty().append((this[0] && this[0].ownerDocument || e).createTextNode(a)) + }, null, a, arguments.length) + }, + wrapAll: function(a) { + if (p.isFunction(a)) { + return this.each(function(b) { + p(this).wrapAll(a.call(this, b)) + }) + } + if (this[0]) { + var b = p(a, this[0].ownerDocument).eq(0).clone(!0); + this[0].parentNode && b.insertBefore(this[0]), b.map(function() { + var a = this; + while (a.firstChild && a.firstChild.nodeType === 1) { + a = a.firstChild + } + return a + }).append(this) + } + return this + }, + wrapInner: function(a) { + return p.isFunction(a) ? this.each(function(b) { + p(this).wrapInner(a.call(this, b)) + }) : this.each(function() { + var b = p(this), + c = b.contents(); + c.length ? c.wrapAll(a) : b.append(a) + }) + }, + wrap: function(a) { + var b = p.isFunction(a); + return this.each(function(c) { + p(this).wrapAll(b ? a.call(this, c) : a) + }) + }, + unwrap: function() { + return this.parent().each(function() { + p.nodeName(this, "body") || p(this).replaceWith(this.childNodes) + }).end() + }, + append: function() { + return this.domManip(arguments, !0, function(a) { + (this.nodeType === 1 || this.nodeType === 11) && this.appendChild(a) + }) + }, + prepend: function() { + return this.domManip(arguments, !0, function(a) { + (this.nodeType === 1 || this.nodeType === 11) && this.insertBefore(a, this.firstChild) + }) + }, + before: function() { + if (!bh(this[0])) { + return this.domManip(arguments, !1, function(a) { + this.parentNode.insertBefore(a, this) + }) + } + if (arguments.length) { + var a = p.clean(arguments); + return this.pushStack(p.merge(a, this), "before", this.selector) + } + }, + after: function() { + if (!bh(this[0])) { + return this.domManip(arguments, !1, function(a) { + this.parentNode.insertBefore(a, this.nextSibling) + }) + } + if (arguments.length) { + var a = p.clean(arguments); + return this.pushStack(p.merge(this, a), "after", this.selector) + } + }, + remove: function(a, b) { + var c, d = 0; + for (; + (c = this[d]) != null; d++) { + if (!a || p.filter(a, [c]).length) { + !b && c.nodeType === 1 && (p.cleanData(c.getElementsByTagName("*")), p.cleanData([c])), c.parentNode && c.parentNode.removeChild(c) + } + } + return this + }, + empty: function() { + var a, b = 0; + for (; + (a = this[b]) != null; b++) { + a.nodeType === 1 && p.cleanData(a.getElementsByTagName("*")); + while (a.firstChild) { + a.removeChild(a.firstChild) + } + } + return this + }, + clone: function(a, b) { + return a = a == null ? !1 : a, b = b == null ? a : b, this.map(function() { + return p.clone(this, a, b) + }) + }, + html: function(a) { + return p.access(this, function(a) { + var c = this[0] || {}, + d = 0, + e = this.length; + if (a === b) { + return c.nodeType === 1 ? c.innerHTML.replace(bm, "") : b + } + if (typeof a == "string" && !bs.test(a) && (p.support.htmlSerialize || !bu.test(a)) && (p.support.leadingWhitespace || !bn.test(a)) && !bz[(bp.exec(a) || ["", ""])[1].toLowerCase()]) { + a = a.replace(bo, "<$1>"); + try { + for (; d < e; d++) { + c = this[d] || {}, c.nodeType === 1 && (p.cleanData(c.getElementsByTagName("*")), c.innerHTML = a) + } + c = 0 + } catch (f) {} + } + c && this.empty().append(a) + }, null, a, arguments.length) + }, + replaceWith: function(a) { + return bh(this[0]) ? this.length ? this.pushStack(p(p.isFunction(a) ? a() : a), "replaceWith", a) : this : p.isFunction(a) ? this.each(function(b) { + var c = p(this), + d = c.html(); + c.replaceWith(a.call(this, b, d)) + }) : (typeof a != "string" && (a = p(a).detach()), this.each(function() { + var b = this.nextSibling, + c = this.parentNode; + p(this).remove(), b ? p(b).before(a) : p(c).append(a) + })) + }, + detach: function(a) { + return this.remove(a, !0) + }, + domManip: function(a, c, d) { + a = [].concat.apply([], a); + var e, f, g, h, i = 0, + j = a[0], + k = [], + l = this.length; + if (!p.support.checkClone && l > 1 && typeof j == "string" && bw.test(j)) { + return this.each(function() { + p(this).domManip(a, c, d) + }) + } + if (p.isFunction(j)) { + return this.each(function(e) { + var f = p(this); + a[0] = j.call(this, e, c ? f.html() : b), f.domManip(a, c, d) + }) + } + if (this[0]) { + e = p.buildFragment(a, this, k), g = e.fragment, f = g.firstChild, g.childNodes.length === 1 && (g = f); + if (f) { + c = c && p.nodeName(f, "tr"); + for (h = e.cacheable || l - 1; i < l; i++) { + d.call(c && p.nodeName(this[i], "table") ? bC(this[i], "tbody") : this[i], i === h ? g : p.clone(g, !0, !0)) + } + } + g = f = null, k.length && p.each(k, function(a, b) { + b.src ? p.ajax ? p.ajax({ + url: b.src, + type: "GET", + dataType: "script", + async: !1, + global: !1, + "throws": !0 + }) : p.error("no ajax") : p.globalEval((b.text || b.textContent || b.innerHTML || "").replace(by, "")), b.parentNode && b.parentNode.removeChild(b) + }) + } + return this + } + }), p.buildFragment = function(a, c, d) { + var f, g, h, i = a[0]; + return c = c || e, c = !c.nodeType && c[0] || c, c = c.ownerDocument || c, a.length === 1 && typeof i == "string" && i.length < 512 && c === e && i.charAt(0) === "<" && !bt.test(i) && (p.support.checkClone || !bw.test(i)) && (p.support.html5Clone || !bu.test(i)) && (g = !0, f = p.fragments[i], h = f !== b), f || (f = c.createDocumentFragment(), p.clean(a, c, f, d), g && (p.fragments[i] = h && f)), { + fragment: f, + cacheable: g + } + }, p.fragments = {}, p.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function(a, b) { + p.fn[a] = function(c) { + var d, e = 0, + f = [], + g = p(c), + h = g.length, + i = this.length === 1 && this[0].parentNode; + if ((i == null || i && i.nodeType === 11 && i.childNodes.length === 1) && h === 1) { + return g[b](this[0]), this + } + for (; e < h; e++) { + d = (e > 0 ? this.clone(!0) : this).get(), p(g[e])[b](d), f = f.concat(d) + } + return this.pushStack(f, a, g.selector) + } + }), p.extend({ + clone: function(a, b, c) { + var d, e, f, g; + p.support.html5Clone || p.isXMLDoc(a) || !bu.test("<" + a.nodeName + ">") ? g = a.cloneNode(!0) : (bB.innerHTML = a.outerHTML, bB.removeChild(g = bB.firstChild)); + if ((!p.support.noCloneEvent || !p.support.noCloneChecked) && (a.nodeType === 1 || a.nodeType === 11) && !p.isXMLDoc(a)) { + bE(a, g), d = bF(a), e = bF(g); + for (f = 0; d[f]; ++f) { + e[f] && bE(d[f], e[f]) + } + } + if (b) { + bD(a, g); + if (c) { + d = bF(a), e = bF(g); + for (f = 0; d[f]; ++f) { + bD(d[f], e[f]) + } + } + } + return d = e = null, g + }, + clean: function(a, b, c, d) { + var f, g, h, i, j, k, l, m, n, o, q, r, s = b === e && bA, + t = []; + if (!b || typeof b.createDocumentFragment == "undefined") { + b = e + } + for (f = 0; + (h = a[f]) != null; f++) { + typeof h == "number" && (h += ""); + if (!h) { + continue + } + if (typeof h == "string") { + if (!br.test(h)) { + h = b.createTextNode(h) + } else { + s = s || bk(b), l = b.createElement("div"), s.appendChild(l), h = h.replace(bo, "<$1>"), i = (bp.exec(h) || ["", ""])[1].toLowerCase(), j = bz[i] || bz._default, k = j[0], l.innerHTML = j[1] + h + j[2]; + while (k--) { + l = l.lastChild + } + if (!p.support.tbody) { + m = bq.test(h), n = i === "table" && !m ? l.firstChild && l.firstChild.childNodes : j[1] === "" && !m ? l.childNodes : []; + for (g = n.length - 1; g >= 0; --g) { + p.nodeName(n[g], "tbody") && !n[g].childNodes.length && n[g].parentNode.removeChild(n[g]) + } + }!p.support.leadingWhitespace && bn.test(h) && l.insertBefore(b.createTextNode(bn.exec(h)[0]), l.firstChild), h = l.childNodes, l.parentNode.removeChild(l) + } + } + h.nodeType ? t.push(h) : p.merge(t, h) + } + l && (h = l = s = null); + if (!p.support.appendChecked) { + for (f = 0; + (h = t[f]) != null; f++) { + p.nodeName(h, "input") ? bG(h) : typeof h.getElementsByTagName != "undefined" && p.grep(h.getElementsByTagName("input"), bG) + } + } + if (c) { + q = function(a) { + if (!a.type || bx.test(a.type)) { + return d ? d.push(a.parentNode ? a.parentNode.removeChild(a) : a) : c.appendChild(a) + } + }; + for (f = 0; + (h = t[f]) != null; f++) { + if (!p.nodeName(h, "script") || !q(h)) { + c.appendChild(h), typeof h.getElementsByTagName != "undefined" && (r = p.grep(p.merge([], h.getElementsByTagName("script")), q), t.splice.apply(t, [f + 1, 0].concat(r)), f += r.length) + } + } + } + return t + }, + cleanData: function(a, b) { + var c, d, e, f, g = 0, + h = p.expando, + i = p.cache, + j = p.support.deleteExpando, + k = p.event.special; + for (; + (e = a[g]) != null; g++) { + if (b || p.acceptData(e)) { + d = e[h], c = d && i[d]; + if (c) { + if (c.events) { + for (f in c.events) { + k[f] ? p.event.remove(e, f) : p.removeEvent(e, f, c.handle) + } + } + i[d] && (delete i[d], j ? delete e[h] : e.removeAttribute ? e.removeAttribute(h) : e[h] = null, p.deletedIds.push(d)) + } + } + } + } + }), + function() { + var a, b; + p.uaMatch = function(a) { + a = a.toLowerCase(); + var b = /(chrome)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || []; + return { + browser: b[1] || "", + version: b[2] || "0" + } + }, a = p.uaMatch(g.userAgent), b = {}, a.browser && (b[a.browser] = !0, b.version = a.version), b.chrome ? b.webkit = !0 : b.webkit && (b.safari = !0), p.browser = b, p.sub = function() { + function a(b, c) { + return new a.fn.init(b, c) + } + p.extend(!0, a, this), a.superclass = this, a.fn = a.prototype = this(), a.fn.constructor = a, a.sub = this.sub, a.fn.init = function c(c, d) { + return d && d instanceof p && !(d instanceof a) && (d = a(d)), p.fn.init.call(this, c, d, b) + }, a.fn.init.prototype = a.fn; + var b = a(e); + return a + } + }(); + var bH, bI, bJ, bK = /alpha\([^)]*\)/i, + bL = /opacity=([^)]*)/, + bM = /^(top|right|bottom|left)$/, + bN = /^(none|table(?!-c[ea]).+)/, + bO = /^margin/, + bP = new RegExp("^(" + q + ")(.*)$", "i"), + bQ = new RegExp("^(" + q + ")(?!px)[a-z%]+$", "i"), + bR = new RegExp("^([-+])=(" + q + ")", "i"), + bS = {}, + bT = { + position: "absolute", + visibility: "hidden", + display: "block" + }, + bU = { + letterSpacing: 0, + fontWeight: 400 + }, + bV = ["Top", "Right", "Bottom", "Left"], + bW = ["Webkit", "O", "Moz", "ms"], + bX = p.fn.toggle; + p.fn.extend({ + css: function(a, c) { + return p.access(this, function(a, c, d) { + return d !== b ? p.style(a, c, d) : p.css(a, c) + }, a, c, arguments.length > 1) + }, + show: function() { + return b$(this, !0) + }, + hide: function() { + return b$(this) + }, + toggle: function(a, b) { + var c = typeof a == "boolean"; + return p.isFunction(a) && p.isFunction(b) ? bX.apply(this, arguments) : this.each(function() { + (c ? a : bZ(this)) ? p(this).show(): p(this).hide() + }) + } + }), p.extend({ + cssHooks: { + opacity: { + get: function(a, b) { + if (b) { + var c = bH(a, "opacity"); + return c === "" ? "1" : c + } + } + } + }, + cssNumber: { + fillOpacity: !0, + fontWeight: !0, + lineHeight: !0, + opacity: !0, + orphans: !0, + widows: !0, + zIndex: !0, + zoom: !0 + }, + cssProps: { + "float": p.support.cssFloat ? "cssFloat" : "styleFloat" + }, + style: function(a, c, d, e) { + if (!a || a.nodeType === 3 || a.nodeType === 8 || !a.style) { + return + } + var f, g, h, i = p.camelCase(c), + j = a.style; + c = p.cssProps[i] || (p.cssProps[i] = bY(j, i)), h = p.cssHooks[c] || p.cssHooks[i]; + if (d === b) { + return h && "get" in h && (f = h.get(a, !1, e)) !== b ? f : j[c] + } + g = typeof d, g === "string" && (f = bR.exec(d)) && (d = (f[1] + 1) * f[2] + parseFloat(p.css(a, c)), g = "number"); + if (d == null || g === "number" && isNaN(d)) { + return + } + g === "number" && !p.cssNumber[i] && (d += "px"); + if (!h || !("set" in h) || (d = h.set(a, d, e)) !== b) { + try { + j[c] = d + } catch (k) {} + } + }, + css: function(a, c, d, e) { + var f, g, h, i = p.camelCase(c); + return c = p.cssProps[i] || (p.cssProps[i] = bY(a.style, i)), h = p.cssHooks[c] || p.cssHooks[i], h && "get" in h && (f = h.get(a, !0, e)), f === b && (f = bH(a, c)), f === "normal" && c in bU && (f = bU[c]), d || e !== b ? (g = parseFloat(f), d || p.isNumeric(g) ? g || 0 : f) : f + }, + swap: function(a, b, c) { + var d, e, f = {}; + for (e in b) { + f[e] = a.style[e], a.style[e] = b[e] + } + d = c.call(a); + for (e in b) { + a.style[e] = f[e] + } + return d + } + }), a.getComputedStyle ? bH = function(b, c) { + var d, e, f, g, h = a.getComputedStyle(b, null), + i = b.style; + return h && (d = h[c], d === "" && !p.contains(b.ownerDocument, b) && (d = p.style(b, c)), bQ.test(d) && bO.test(c) && (e = i.width, f = i.minWidth, g = i.maxWidth, i.minWidth = i.maxWidth = i.width = d, d = h.width, i.width = e, i.minWidth = f, i.maxWidth = g)), d + } : e.documentElement.currentStyle && (bH = function(a, b) { + var c, d, e = a.currentStyle && a.currentStyle[b], + f = a.style; + return e == null && f && f[b] && (e = f[b]), bQ.test(e) && !bM.test(b) && (c = f.left, d = a.runtimeStyle && a.runtimeStyle.left, d && (a.runtimeStyle.left = a.currentStyle.left), f.left = b === "fontSize" ? "1em" : e, e = f.pixelLeft + "px", f.left = c, d && (a.runtimeStyle.left = d)), e === "" ? "auto" : e + }), p.each(["height", "width"], function(a, b) { + p.cssHooks[b] = { + get: function(a, c, d) { + if (c) { + return a.offsetWidth === 0 && bN.test(bH(a, "display")) ? p.swap(a, bT, function() { + return cb(a, b, d) + }) : cb(a, b, d) + } + }, + set: function(a, c, d) { + return b_(a, c, d ? ca(a, b, d, p.support.boxSizing && p.css(a, "boxSizing") === "border-box") : 0) + } + } + }), p.support.opacity || (p.cssHooks.opacity = { + get: function(a, b) { + return bL.test((b && a.currentStyle ? a.currentStyle.filter : a.style.filter) || "") ? 0.01 * parseFloat(RegExp.$1) + "" : b ? "1" : "" + }, + set: function(a, b) { + var c = a.style, + d = a.currentStyle, + e = p.isNumeric(b) ? "alpha(opacity=" + b * 100 + ")" : "", + f = d && d.filter || c.filter || ""; + c.zoom = 1; + if (b >= 1 && p.trim(f.replace(bK, "")) === "" && c.removeAttribute) { + c.removeAttribute("filter"); + if (d && !d.filter) { + return + } + } + c.filter = bK.test(f) ? f.replace(bK, e) : f + " " + e + } + }), p(function() { + p.support.reliableMarginRight || (p.cssHooks.marginRight = { + get: function(a, b) { + return p.swap(a, { + display: "inline-block" + }, function() { + if (b) { + return bH(a, "marginRight") + } + }) + } + }), !p.support.pixelPosition && p.fn.position && p.each(["top", "left"], function(a, b) { + p.cssHooks[b] = { + get: function(a, c) { + if (c) { + var d = bH(a, b); + return bQ.test(d) ? p(a).position()[b] + "px" : d + } + } + } + }) + }), p.expr && p.expr.filters && (p.expr.filters.hidden = function(a) { + return a.offsetWidth === 0 && a.offsetHeight === 0 || !p.support.reliableHiddenOffsets && (a.style && a.style.display || bH(a, "display")) === "none" + }, p.expr.filters.visible = function(a) { + return !p.expr.filters.hidden(a) + }), p.each({ + margin: "", + padding: "", + border: "Width" + }, function(a, b) { + p.cssHooks[a + b] = { + expand: function(c) { + var d, e = typeof c == "string" ? c.split(" ") : [c], + f = {}; + for (d = 0; d < 4; d++) { + f[a + bV[d] + b] = e[d] || e[d - 2] || e[0] + } + return f + } + }, bO.test(a) || (p.cssHooks[a + b].set = b_) + }); + var cd = /%20/g, + ce = /\[\]$/, + cf = /\r?\n/g, + cg = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, + ch = /^(?:select|textarea)/i; + p.fn.extend({ + serialize: function() { + return p.param(this.serializeArray()) + }, + serializeArray: function() { + return this.map(function() { + return this.elements ? p.makeArray(this.elements) : this + }).filter(function() { + return this.name && !this.disabled && (this.checked || ch.test(this.nodeName) || cg.test(this.type)) + }).map(function(a, b) { + var c = p(this).val(); + return c == null ? null : p.isArray(c) ? p.map(c, function(a, c) { + return { + name: b.name, + value: a.replace(cf, "\r\n") + } + }) : { + name: b.name, + value: c.replace(cf, "\r\n") + } + }).get() + } + }), p.param = function(a, c) { + var d, e = [], + f = function(a, b) { + b = p.isFunction(b) ? b() : b == null ? "" : b, e[e.length] = encodeURIComponent(a) + "=" + encodeURIComponent(b) + }; + c === b && (c = p.ajaxSettings && p.ajaxSettings.traditional); + if (p.isArray(a) || a.jquery && !p.isPlainObject(a)) { + p.each(a, function() { + f(this.name, this.value) + }) + } else { + for (d in a) { + ci(d, a[d], c, f) + } + } + return e.join("&").replace(cd, "+") + }; + var cj, ck, cl = /#.*$/, + cm = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, + cn = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, + co = /^(?:GET|HEAD)$/, + cp = /^\/\//, + cq = /\?/, + cr = /)<[^<]*)*<\/script>/gi, + cs = /([?&])_=[^&]*/, + ct = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, + cu = p.fn.load, + cv = {}, + cw = {}, + cx = ["*/"] + ["*"]; + try { + ck = f.href + } catch (cy) { + ck = e.createElement("a"), ck.href = "", ck = ck.href + } + cj = ct.exec(ck.toLowerCase()) || [], p.fn.load = function(a, c, d) { + if (typeof a != "string" && cu) { + return cu.apply(this, arguments) + } + if (!this.length) { + return this + } + var e, f, g, h = this, + i = a.indexOf(" "); + return i >= 0 && (e = a.slice(i, a.length), a = a.slice(0, i)), p.isFunction(c) ? (d = c, c = b) : c && typeof c == "object" && (f = "POST"), p.ajax({ + url: a, + type: f, + dataType: "html", + data: c, + complete: function(a, b) { + d && h.each(d, g || [a.responseText, b, a]) + } + }).done(function(a) { + g = arguments, h.html(e ? p("
").append(a.replace(cr, "")).find(e) : a) + }), this + }, p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function(a, b) { + p.fn[b] = function(a) { + return this.on(b, a) + } + }), p.each(["get", "post"], function(a, c) { + p[c] = function(a, d, e, f) { + return p.isFunction(d) && (f = f || e, e = d, d = b), p.ajax({ + type: c, + url: a, + data: d, + success: e, + dataType: f + }) + } + }), p.extend({ + getScript: function(a, c) { + return p.get(a, b, c, "script") + }, + getJSON: function(a, b, c) { + return p.get(a, b, c, "json") + }, + ajaxSetup: function(a, b) { + return b ? cB(a, p.ajaxSettings) : (b = a, a = p.ajaxSettings), cB(a, b), a + }, + ajaxSettings: { + url: ck, + isLocal: cn.test(cj[1]), + global: !0, + type: "GET", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + processData: !0, + async: !0, + accepts: { + xml: "application/xml, text/xml", + html: "text/html", + text: "text/plain", + json: "application/json, text/javascript", + "*": cx + }, + contents: { + xml: /xml/, + html: /html/, + json: /json/ + }, + responseFields: { + xml: "responseXML", + text: "responseText" + }, + converters: { + "* text": a.String, + "text html": !0, + "text json": p.parseJSON, + "text xml": p.parseXML + }, + flatOptions: { + context: !0, + url: !0 + } + }, + ajaxPrefilter: cz(cv), + ajaxTransport: cz(cw), + ajax: function(a, c) { + function y(a, c, f, i) { + var k, s, t, u, w, y = c; + if (v === 2) { + return + } + v = 2, h && clearTimeout(h), g = b, e = i || "", x.readyState = a > 0 ? 4 : 0, f && (u = cC(l, x, f)); + if (a >= 200 && a < 300 || a === 304) { + l.ifModified && (w = x.getResponseHeader("Last-Modified"), w && (p.lastModified[d] = w), w = x.getResponseHeader("Etag"), w && (p.etag[d] = w)), a === 304 ? (y = "notmodified", k = !0) : (k = cD(l, u), y = k.state, s = k.data, t = k.error, k = !t) + } else { + t = y; + if (!y || a) { + y = "error", a < 0 && (a = 0) + } + } + x.status = a, x.statusText = (c || y) + "", k ? o.resolveWith(m, [s, y, x]) : o.rejectWith(m, [x, y, t]), x.statusCode(r), r = b, j && n.trigger("ajax" + (k ? "Success" : "Error"), [x, l, k ? s : t]), q.fireWith(m, [x, y]), j && (n.trigger("ajaxComplete", [x, l]), --p.active || p.event.trigger("ajaxStop")) + } + typeof a == "object" && (c = a, a = b), c = c || {}; + var d, e, f, g, h, i, j, k, l = p.ajaxSetup({}, c), + m = l.context || l, + n = m !== l && (m.nodeType || m instanceof p) ? p(m) : p.event, + o = p.Deferred(), + q = p.Callbacks("once memory"), + r = l.statusCode || {}, + t = {}, + u = {}, + v = 0, + w = "canceled", + x = { + readyState: 0, + setRequestHeader: function(a, b) { + if (!v) { + var c = a.toLowerCase(); + a = u[c] = u[c] || a, t[a] = b + } + return this + }, + getAllResponseHeaders: function() { + return v === 2 ? e : null + }, + getResponseHeader: function(a) { + var c; + if (v === 2) { + if (!f) { + f = {}; + while (c = cm.exec(e)) { + f[c[1].toLowerCase()] = c[2] + } + } + c = f[a.toLowerCase()] + } + return c === b ? null : c + }, + overrideMimeType: function(a) { + return v || (l.mimeType = a), this + }, + abort: function(a) { + return a = a || w, g && g.abort(a), y(0, a), this + } + }; + o.promise(x), x.success = x.done, x.error = x.fail, x.complete = q.add, x.statusCode = function(a) { + if (a) { + var b; + if (v < 2) { + for (b in a) { + r[b] = [r[b], a[b]] + } + } else { + b = a[x.status], x.always(b) + } + } + return this + }, l.url = ((a || l.url) + "").replace(cl, "").replace(cp, cj[1] + "//"), l.dataTypes = p.trim(l.dataType || "*").toLowerCase().split(s), l.crossDomain == null && (i = ct.exec(l.url.toLowerCase()) || !1, l.crossDomain = i && i.join(":") + (i[3] ? "" : i[1] === "http:" ? 80 : 443) !== cj.join(":") + (cj[3] ? "" : cj[1] === "http:" ? 80 : 443)), l.data && l.processData && typeof l.data != "string" && (l.data = p.param(l.data, l.traditional)), cA(cv, l, c, x); + if (v === 2) { + return x + } + j = l.global, l.type = l.type.toUpperCase(), l.hasContent = !co.test(l.type), j && p.active++ === 0 && p.event.trigger("ajaxStart"); + if (!l.hasContent) { + l.data && (l.url += (cq.test(l.url) ? "&" : "?") + l.data, delete l.data), d = l.url; + if (l.cache === !1) { + var z = p.now(), + A = l.url.replace(cs, "$1_=" + z); + l.url = A + (A === l.url ? (cq.test(l.url) ? "&" : "?") + "_=" + z : "") + } + }(l.data && l.hasContent && l.contentType !== !1 || c.contentType) && x.setRequestHeader("Content-Type", l.contentType), l.ifModified && (d = d || l.url, p.lastModified[d] && x.setRequestHeader("If-Modified-Since", p.lastModified[d]), p.etag[d] && x.setRequestHeader("If-None-Match", p.etag[d])), x.setRequestHeader("Accept", l.dataTypes[0] && l.accepts[l.dataTypes[0]] ? l.accepts[l.dataTypes[0]] + (l.dataTypes[0] !== "*" ? ", " + cx + "; q=0.01" : "") : l.accepts["*"]); + for (k in l.headers) { + x.setRequestHeader(k, l.headers[k]) + } + if (!l.beforeSend || l.beforeSend.call(m, x, l) !== !1 && v !== 2) { + w = "abort"; + for (k in { + success: 1, + error: 1, + complete: 1 + }) { + x[k](l[k]) + } + g = cA(cw, l, c, x); + if (!g) { + y(-1, "No Transport") + } else { + x.readyState = 1, j && n.trigger("ajaxSend", [x, l]), l.async && l.timeout > 0 && (h = setTimeout(function() { + x.abort("timeout") + }, l.timeout)); + try { + v = 1, g.send(t, y) + } catch (B) { + if (v < 2) { + y(-1, B) + } else { + throw B + } + } + } + return x + } + return x.abort() + }, + active: 0, + lastModified: {}, + etag: {} + }); + var cE = [], + cF = /\?/, + cG = /(=)\?(?=&|$)|\?\?/, + cH = p.now(); + p.ajaxSetup({ + jsonp: "callback", + jsonpCallback: function() { + var a = cE.pop() || p.expando + "_" + cH++; + return this[a] = !0, a + } + }), p.ajaxPrefilter("json jsonp", function(c, d, e) { + var f, g, h, i = c.data, + j = c.url, + k = c.jsonp !== !1, + l = k && cG.test(j), + m = k && !l && typeof i == "string" && !(c.contentType || "").indexOf("application/x-www-form-urlencoded") && cG.test(i); + if (c.dataTypes[0] === "jsonp" || l || m) { + return f = c.jsonpCallback = p.isFunction(c.jsonpCallback) ? c.jsonpCallback() : c.jsonpCallback, g = a[f], l ? c.url = j.replace(cG, "$1" + f) : m ? c.data = i.replace(cG, "$1" + f) : k && (c.url += (cF.test(j) ? "&" : "?") + c.jsonp + "=" + f), c.converters["script json"] = function() { + return h || p.error(f + " was not called"), h[0] + }, c.dataTypes[0] = "json", a[f] = function() { + h = arguments + }, e.always(function() { + a[f] = g, c[f] && (c.jsonpCallback = d.jsonpCallback, cE.push(f)), h && p.isFunction(g) && g(h[0]), h = g = b + }), "script" + } + }), p.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /javascript|ecmascript/ + }, + converters: { + "text script": function(a) { + return p.globalEval(a), a + } + } + }), p.ajaxPrefilter("script", function(a) { + a.cache === b && (a.cache = !1), a.crossDomain && (a.type = "GET", a.global = !1) + }), p.ajaxTransport("script", function(a) { + if (a.crossDomain) { + var c, d = e.head || e.getElementsByTagName("head")[0] || e.documentElement; + return { + send: function(f, g) { + c = e.createElement("script"), c.async = "async", a.scriptCharset && (c.charset = a.scriptCharset), c.src = a.url, c.onload = c.onreadystatechange = function(a, e) { + if (e || !c.readyState || /loaded|complete/.test(c.readyState)) { + c.onload = c.onreadystatechange = null, d && c.parentNode && d.removeChild(c), c = b, e || g(200, "success") + } + }, d.insertBefore(c, d.firstChild) + }, + abort: function() { + c && c.onload(0, 1) + } + } + } + }); + var cI, cJ = a.ActiveXObject ? function() { + for (var a in cI) { + cI[a](0, 1) + } + } : !1, + cK = 0; + p.ajaxSettings.xhr = a.ActiveXObject ? function() { + return !this.isLocal && cL() || cM() + } : cL, + function(a) { + p.extend(p.support, { + ajax: !!a, + cors: !!a && "withCredentials" in a + }) + }(p.ajaxSettings.xhr()), p.support.ajax && p.ajaxTransport(function(c) { + if (!c.crossDomain || p.support.cors) { + var d; + return { + send: function(e, f) { + var g, h, i = c.xhr(); + c.username ? i.open(c.type, c.url, c.async, c.username, c.password) : i.open(c.type, c.url, c.async); + if (c.xhrFields) { + for (h in c.xhrFields) { + i[h] = c.xhrFields[h] + } + } + c.mimeType && i.overrideMimeType && i.overrideMimeType(c.mimeType), !c.crossDomain && !e["X-Requested-With"] && (e["X-Requested-With"] = "XMLHttpRequest"); + try { + for (h in e) { + i.setRequestHeader(h, e[h]) + } + } catch (j) {} + i.send(c.hasContent && c.data || null), d = function(a, e) { + var h, j, k, l, m; + try { + if (d && (e || i.readyState === 4)) { + d = b, g && (i.onreadystatechange = p.noop, cJ && delete cI[g]); + if (e) { + i.readyState !== 4 && i.abort() + } else { + h = i.status, k = i.getAllResponseHeaders(), l = {}, m = i.responseXML, m && m.documentElement && (l.xml = m); + try { + l.text = i.responseText + } catch (a) {} + try { + j = i.statusText + } catch (n) { + j = "" + }!h && c.isLocal && !c.crossDomain ? h = l.text ? 200 : 404 : h === 1223 && (h = 204) + } + } + } catch (o) { + e || f(-1, o) + } + l && f(h, j, l, k) + }, c.async ? i.readyState === 4 ? setTimeout(d, 0) : (g = ++cK, cJ && (cI || (cI = {}, p(a).unload(cJ)), cI[g] = d), i.onreadystatechange = d) : d() + }, + abort: function() { + d && d(0, 1) + } + } + } + }); + var cN, cO, cP = /^(?:toggle|show|hide)$/, + cQ = new RegExp("^(?:([-+])=|)(" + q + ")([a-z%]*)$", "i"), + cR = /queueHooks$/, + cS = [cY], + cT = { + "*": [function(a, b) { + var c, d, e = this.createTween(a, b), + f = cQ.exec(b), + g = e.cur(), + h = +g || 0, + i = 1, + j = 20; + if (f) { + c = +f[2], d = f[3] || (p.cssNumber[a] ? "" : "px"); + if (d !== "px" && h) { + h = p.css(e.elem, a, !0) || c || 1; + do { + i = i || ".5", h = h / i, p.style(e.elem, a, h + d) + } while (i !== (i = e.cur() / g) && i !== 1 && --j) + } + e.unit = d, e.start = h, e.end = f[1] ? h + (f[1] + 1) * c : c + } + return e + }] + }; + p.Animation = p.extend(cW, { + tweener: function(a, b) { + p.isFunction(a) ? (b = a, a = ["*"]) : a = a.split(" "); + var c, d = 0, + e = a.length; + for (; d < e; d++) { + c = a[d], cT[c] = cT[c] || [], cT[c].unshift(b) + } + }, + prefilter: function(a, b) { + b ? cS.unshift(a) : cS.push(a) + } + }), p.Tween = cZ, cZ.prototype = { + constructor: cZ, + init: function(a, b, c, d, e, f) { + this.elem = a, this.prop = c, this.easing = e || "swing", this.options = b, this.start = this.now = this.cur(), this.end = d, this.unit = f || (p.cssNumber[c] ? "" : "px") + }, + cur: function() { + var a = cZ.propHooks[this.prop]; + return a && a.get ? a.get(this) : cZ.propHooks._default.get(this) + }, + run: function(a) { + var b, c = cZ.propHooks[this.prop]; + return this.options.duration ? this.pos = b = p.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) : this.pos = b = a, this.now = (this.end - this.start) * b + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), c && c.set ? c.set(this) : cZ.propHooks._default.set(this), this + } + }, cZ.prototype.init.prototype = cZ.prototype, cZ.propHooks = { + _default: { + get: function(a) { + var b; + return a.elem[a.prop] == null || !!a.elem.style && a.elem.style[a.prop] != null ? (b = p.css(a.elem, a.prop, !1, ""), !b || b === "auto" ? 0 : b) : a.elem[a.prop] + }, + set: function(a) { + p.fx.step[a.prop] ? p.fx.step[a.prop](a) : a.elem.style && (a.elem.style[p.cssProps[a.prop]] != null || p.cssHooks[a.prop]) ? p.style(a.elem, a.prop, a.now + a.unit) : a.elem[a.prop] = a.now + } + } + }, cZ.propHooks.scrollTop = cZ.propHooks.scrollLeft = { + set: function(a) { + a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) + } + }, p.each(["toggle", "show", "hide"], function(a, b) { + var c = p.fn[b]; + p.fn[b] = function(d, e, f) { + return d == null || typeof d == "boolean" || !a && p.isFunction(d) && p.isFunction(e) ? c.apply(this, arguments) : this.animate(c$(b, !0), d, e, f) + } + }), p.fn.extend({ + fadeTo: function(a, b, c, d) { + return this.filter(bZ).css("opacity", 0).show().end().animate({ + opacity: b + }, a, c, d) + }, + animate: function(a, b, c, d) { + var e = p.isEmptyObject(a), + f = p.speed(b, c, d), + g = function() { + var b = cW(this, p.extend({}, a), f); + e && b.stop(!0) + }; + return e || f.queue === !1 ? this.each(g) : this.queue(f.queue, g) + }, + stop: function(a, c, d) { + var e = function(a) { + var b = a.stop; + delete a.stop, b(d) + }; + return typeof a != "string" && (d = c, c = a, a = b), c && a !== !1 && this.queue(a || "fx", []), this.each(function() { + var b = !0, + c = a != null && a + "queueHooks", + f = p.timers, + g = p._data(this); + if (c) { + g[c] && g[c].stop && e(g[c]) + } else { + for (c in g) { + g[c] && g[c].stop && cR.test(c) && e(g[c]) + } + } + for (c = f.length; c--;) { + f[c].elem === this && (a == null || f[c].queue === a) && (f[c].anim.stop(d), b = !1, f.splice(c, 1)) + }(b || !d) && p.dequeue(this, a) + }) + } + }), p.each({ + slideDown: c$("show"), + slideUp: c$("hide"), + slideToggle: c$("toggle"), + fadeIn: { + opacity: "show" + }, + fadeOut: { + opacity: "hide" + }, + fadeToggle: { + opacity: "toggle" + } + }, function(a, b) { + p.fn[a] = function(a, c, d) { + return this.animate(b, a, c, d) + } + }), p.speed = function(a, b, c) { + var d = a && typeof a == "object" ? p.extend({}, a) : { + complete: c || !c && b || p.isFunction(a) && a, + duration: a, + easing: c && b || b && !p.isFunction(b) && b + }; + d.duration = p.fx.off ? 0 : typeof d.duration == "number" ? d.duration : d.duration in p.fx.speeds ? p.fx.speeds[d.duration] : p.fx.speeds._default; + if (d.queue == null || d.queue === !0) { + d.queue = "fx" + } + return d.old = d.complete, d.complete = function() { + p.isFunction(d.old) && d.old.call(this), d.queue && p.dequeue(this, d.queue) + }, d + }, p.easing = { + linear: function(a) { + return a + }, + swing: function(a) { + return 0.5 - Math.cos(a * Math.PI) / 2 + } + }, p.timers = [], p.fx = cZ.prototype.init, p.fx.tick = function() { + var a, b = p.timers, + c = 0; + for (; c < b.length; c++) { + a = b[c], !a() && b[c] === a && b.splice(c--, 1) + } + b.length || p.fx.stop() + }, p.fx.timer = function(a) { + a() && p.timers.push(a) && !cO && (cO = setInterval(p.fx.tick, p.fx.interval)) + }, p.fx.interval = 13, p.fx.stop = function() { + clearInterval(cO), cO = null + }, p.fx.speeds = { + slow: 600, + fast: 200, + _default: 400 + }, p.fx.step = {}, p.expr && p.expr.filters && (p.expr.filters.animated = function(a) { + return p.grep(p.timers, function(b) { + return a === b.elem + }).length + }); + var c_ = /^(?:body|html)$/i; + p.fn.offset = function(a) { + if (arguments.length) { + return a === b ? this : this.each(function(b) { + p.offset.setOffset(this, a, b) + }) + } + var c, d, e, f, g, h, i, j = { + top: 0, + left: 0 + }, + k = this[0], + l = k && k.ownerDocument; + if (!l) { + return + } + return (d = l.body) === k ? p.offset.bodyOffset(k) : (c = l.documentElement, p.contains(c, k) ? (typeof k.getBoundingClientRect != "undefined" && (j = k.getBoundingClientRect()), e = da(l), f = c.clientTop || d.clientTop || 0, g = c.clientLeft || d.clientLeft || 0, h = e.pageYOffset || c.scrollTop, i = e.pageXOffset || c.scrollLeft, { + top: j.top + h - f, + left: j.left + i - g + }) : j) + }, p.offset = { + bodyOffset: function(a) { + var b = a.offsetTop, + c = a.offsetLeft; + return p.support.doesNotIncludeMarginInBodyOffset && (b += parseFloat(p.css(a, "marginTop")) || 0, c += parseFloat(p.css(a, "marginLeft")) || 0), { + top: b, + left: c + } + }, + setOffset: function(a, b, c) { + var d = p.css(a, "position"); + d === "static" && (a.style.position = "relative"); + var e = p(a), + f = e.offset(), + g = p.css(a, "top"), + h = p.css(a, "left"), + i = (d === "absolute" || d === "fixed") && p.inArray("auto", [g, h]) > -1, + j = {}, + k = {}, + l, m; + i ? (k = e.position(), l = k.top, m = k.left) : (l = parseFloat(g) || 0, m = parseFloat(h) || 0), p.isFunction(b) && (b = b.call(a, c, f)), b.top != null && (j.top = b.top - f.top + l), b.left != null && (j.left = b.left - f.left + m), "using" in b ? b.using.call(a, j) : e.css(j) + } + }, p.fn.extend({ + position: function() { + if (!this[0]) { + return + } + var a = this[0], + b = this.offsetParent(), + c = this.offset(), + d = c_.test(b[0].nodeName) ? { + top: 0, + left: 0 + } : b.offset(); + return c.top -= parseFloat(p.css(a, "marginTop")) || 0, c.left -= parseFloat(p.css(a, "marginLeft")) || 0, d.top += parseFloat(p.css(b[0], "borderTopWidth")) || 0, d.left += parseFloat(p.css(b[0], "borderLeftWidth")) || 0, { + top: c.top - d.top, + left: c.left - d.left + } + }, + offsetParent: function() { + return this.map(function() { + var a = this.offsetParent || e.body; + while (a && !c_.test(a.nodeName) && p.css(a, "position") === "static") { + a = a.offsetParent + } + return a || e.body + }) + } + }), p.each({ + scrollLeft: "pageXOffset", + scrollTop: "pageYOffset" + }, function(a, c) { + var d = /Y/.test(c); + p.fn[a] = function(e) { + return p.access(this, function(a, e, f) { + var g = da(a); + if (f === b) { + return g ? c in g ? g[c] : g.document.documentElement[e] : a[e] + } + g ? g.scrollTo(d ? p(g).scrollLeft() : f, d ? f : p(g).scrollTop()) : a[e] = f + }, a, e, arguments.length, null) + } + }), p.each({ + Height: "height", + Width: "width" + }, function(a, c) { + p.each({ + padding: "inner" + a, + content: c, + "": "outer" + a + }, function(d, e) { + p.fn[e] = function(e, f) { + var g = arguments.length && (d || typeof e != "boolean"), + h = d || (e === !0 || f === !0 ? "margin" : "border"); + return p.access(this, function(c, d, e) { + var f; + return p.isWindow(c) ? c.document.documentElement["client" + a] : c.nodeType === 9 ? (f = c.documentElement, Math.max(c.body["scroll" + a], f["scroll" + a], c.body["offset" + a], f["offset" + a], f["client" + a])) : e === b ? p.css(c, d, e, h) : p.style(c, d, e, h) + }, c, g ? e : b, g, null) + } + }) + }), a.jQuery = a.$ = p, typeof define == "function" && define.amd && define.amd.jQuery && define("jquery", [], function() { + return p + }) +})(window); \ No newline at end of file diff --git a/static/js/lay-config.js b/static/js/lay-config.js new file mode 100644 index 0000000..e07ead8 --- /dev/null +++ b/static/js/lay-config.js @@ -0,0 +1,30 @@ +/** + * 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/", + version: true +}).extend({ + miniAdmin: "layuimini/miniAdmin", // layuimini后台扩展 + miniMenu: "layuimini/miniMenu", // layuimini菜单扩展 + miniTab: "layuimini/miniTab", // layuimini tab扩展 + 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富文本扩展 + layarea: 'layarea/layarea', // 省市县区三级联动下拉选择器 +}); diff --git a/static/js/lay-module/echarts/echarts.js b/static/js/lay-module/echarts/echarts.js new file mode 100644 index 0000000..fcb939c --- /dev/null +++ b/static/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/static/js/lay-module/layarea/layarea.js b/static/js/lay-module/layarea/layarea.js new file mode 100644 index 0000000..d62e384 --- /dev/null +++ b/static/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/static/js/lay-module/layuimini/miniAdmin.js b/static/js/lay-module/layuimini/miniAdmin.js new file mode 100644 index 0000000..08b4b6b --- /dev/null +++ b/static/js/lay-module/layuimini/miniAdmin.js @@ -0,0 +1,350 @@ +/** + * date:2020/02/27 + * author:Mr.Chung + * version:2.0 + * description:layuimini 主体框架扩展 + */ +layui.define(["jquery", "miniMenu", "element","miniTab", "miniTheme"], function (exports) { + var $ = layui.$, + layer = layui.layer, + miniMenu = layui.miniMenu, + miniTheme = layui.miniTheme, + element = layui.element , + miniTab = layui.miniTab; + + 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 + }); + 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('' + 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 () { + $(".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/static/js/lay-module/layuimini/miniMenu.js b/static/js/lay-module/layuimini/miniMenu.js new file mode 100644 index 0000000..507eae3 --- /dev/null +++ b/static/js/lay-module/layuimini/miniMenu.js @@ -0,0 +1,250 @@ +/** + * 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); + } + 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){ + 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= options.maxTabNum) { + layer.msg('Tab窗口已达到限定数量,请先关闭部分Tab'); + return false; + } + var ele = element; + if (options.isIframe) ele = parent.layui.element; + 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) { + 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, + 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({ + tabId: tabId, + href: tabId, + title: menu.title, + 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/static/js/lay-module/layuimini/miniTheme.js b/static/js/lay-module/layuimini/miniTheme.js new file mode 100644 index 0000000..817907b --- /dev/null +++ b/static/js/lay-module/layuimini/miniTheme.js @@ -0,0 +1,474 @@ +/** + * 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' + + '
    \n' + + ' 开发文档\n' + + ' 开源地址\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/static/js/lay-module/layuimini/miniTongji.js b/static/js/lay-module/layuimini/miniTongji.js new file mode 100644 index 0000000..f0ca101 --- /dev/null +++ b/static/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/static/js/lay-module/step-lay/step.css b/static/js/lay-module/step-lay/step.css new file mode 100644 index 0000000..cc5e2ce --- /dev/null +++ b/static/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/static/js/lay-module/step-lay/step.js b/static/js/lay-module/step-lay/step.js new file mode 100644 index 0000000..baa015b --- /dev/null +++ b/static/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/static/js/lay-module/tableSelect/tableSelect.js b/static/js/lay-module/tableSelect/tableSelect.js new file mode 100644 index 0000000..84acc3d --- /dev/null +++ b/static/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 0 && mData[len - 1].id == s_pid) { + mData[len - 1].isParent = true; + } + mData.push(data[i]); + sort(data[i].id, data); + } + } + }; + sort(param.treeSpid, tNodes); + + // 重写参数 + param.url = undefined; + param.data = mData; + param.page = { + count: param.data.length, + limit: param.data.length + }; + param.cols[0][param.treeColIndex].templet = function (d) { + var mId = d.id; + var mPid = d.pid; + var isDir = d.isParent; + var emptyNum = treetable.getEmptyNum(mPid, mData); + var iconHtml = ''; + for (var i = 0; i < emptyNum; i++) { + iconHtml += ''; + } + if (isDir) { + iconHtml += ' '; + } else { + iconHtml += ''; + } + iconHtml += '  '; + var ttype = isDir ? 'dir' : 'file'; + var vg = ''; + return vg + iconHtml + d[param.cols[0][param.treeColIndex].field] + '' + }; + + param.done = function (res, curr, count) { + $(param.elem).next().addClass('treeTable'); + $('.treeTable .layui-table-page').css('display', 'none'); + $(param.elem).next().attr('treeLinkage', param.treeLinkage); + // 绑定事件换成对body绑定 + /*$('.treeTable .treeTable-icon').click(function () { + treetable.toggleRows($(this), param.treeLinkage); + });*/ + if (param.treeDefaultClose) { + treetable.foldAll(param.elem); + } + if (doneCallback) { + doneCallback(res, curr, count); + } + }; + + // 渲染表格 + table.render(param); + }, + // 计算缩进的数量 + getEmptyNum: function (pid, data) { + var num = 0; + if (!pid) { + return num; + } + var tPid; + for (var i = 0; i < data.length; i++) { + if (pid == data[i].id) { + num += 1; + tPid = data[i].pid; + break; + } + } + return num + treetable.getEmptyNum(tPid, data); + }, + // 展开/折叠行 + toggleRows: function ($dom, linkage) { + var type = $dom.attr('lay-ttype'); + if ('file' == type) { + return; + } + var mId = $dom.attr('lay-tid'); + var isOpen = $dom.hasClass('open'); + if (isOpen) { + $dom.removeClass('open'); + } else { + $dom.addClass('open'); + } + $dom.closest('tbody').find('tr').each(function () { + var $ti = $(this).find('.treeTable-icon'); + var pid = $ti.attr('lay-tpid'); + var ttype = $ti.attr('lay-ttype'); + var tOpen = $ti.hasClass('open'); + if (mId == pid) { + if (isOpen) { + $(this).hide(); + if ('dir' == ttype && tOpen == isOpen) { + $ti.trigger('click'); + } + } else { + $(this).show(); + if (linkage && 'dir' == ttype && tOpen == isOpen) { + $ti.trigger('click'); + } + } + } + }); + }, + // 检查参数 + checkParam: function (param) { + if (!param.treeSpid && param.treeSpid != 0) { + layer.msg('参数treeSpid不能为空', {icon: 5}); + return false; + } + + if (!param.treeColIndex && param.treeColIndex != 0) { + layer.msg('参数treeColIndex不能为空', {icon: 5}); + return false; + } + return true; + }, + // 展开所有 + expandAll: function (dom) { + $(dom).next('.treeTable').find('.layui-table-body tbody tr').each(function () { + var $ti = $(this).find('.treeTable-icon'); + var ttype = $ti.attr('lay-ttype'); + var tOpen = $ti.hasClass('open'); + if ('dir' == ttype && !tOpen) { + $ti.trigger('click'); + } + }); + }, + // 折叠所有 + foldAll: function (dom) { + $(dom).next('.treeTable').find('.layui-table-body tbody tr').each(function () { + var $ti = $(this).find('.treeTable-icon'); + var ttype = $ti.attr('lay-ttype'); + var tOpen = $ti.hasClass('open'); + if ('dir' == ttype && tOpen) { + $ti.trigger('click'); + } + }); + } + }; + + layui.link(layui.cache.base + 'treetable-lay/treetable.css'); + + // 给图标列绑定事件 + $('body').on('click', '.treeTable .treeTable-icon', function () { + var treeLinkage = $(this).parents('.treeTable').attr('treeLinkage'); + if ('true' == treeLinkage) { + treetable.toggleRows($(this), true); + } else { + treetable.toggleRows($(this), false); + } + }); + + exports('treetable', treetable); +}); diff --git a/static/js/lay-module/wangEditor/fonts/w-e-icon.woff b/static/js/lay-module/wangEditor/fonts/w-e-icon.woff new file mode 100644 index 0000000..6dc5b5a Binary files /dev/null and b/static/js/lay-module/wangEditor/fonts/w-e-icon.woff differ diff --git a/static/js/lay-module/wangEditor/wangEditor.css b/static/js/lay-module/wangEditor/wangEditor.css new file mode 100644 index 0000000..5502c55 --- /dev/null +++ b/static/js/lay-module/wangEditor/wangEditor.css @@ -0,0 +1,411 @@ +.w-e-toolbar, +.w-e-text-container, +.w-e-menu-panel { + padding: 0; + margin: 0; + box-sizing: border-box; +} +.w-e-toolbar *, +.w-e-text-container *, +.w-e-menu-panel * { + padding: 0; + margin: 0; + box-sizing: border-box; +} +.w-e-clear-fix:after { + content: ""; + display: table; + clear: both; +} + +.w-e-toolbar .w-e-droplist { + position: absolute; + left: 0; + top: 0; + background-color: #fff; + border: 1px solid #f1f1f1; + border-right-color: #ccc; + border-bottom-color: #ccc; +} +.w-e-toolbar .w-e-droplist .w-e-dp-title { + text-align: center; + color: #999; + line-height: 2; + border-bottom: 1px solid #f1f1f1; + font-size: 13px; +} +.w-e-toolbar .w-e-droplist ul.w-e-list { + list-style: none; + line-height: 1; +} +.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item { + color: #333; + padding: 5px 0; +} +.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item:hover { + background-color: #f1f1f1; +} +.w-e-toolbar .w-e-droplist ul.w-e-block { + list-style: none; + text-align: left; + padding: 5px; +} +.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item { + display: inline-block; + *display: inline; + *zoom: 1; + padding: 3px 5px; +} +.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item:hover { + background-color: #f1f1f1; +} + +@font-face { + font-family: 'w-e-icon'; + src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAABhQAAsAAAAAGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIPBGNtYXAAAAFoAAABBAAAAQQrSf4BZ2FzcAAAAmwAAAAIAAAACAAAABBnbHlmAAACdAAAEvAAABLwfpUWUWhlYWQAABVkAAAANgAAADYQp00kaGhlYQAAFZwAAAAkAAAAJAfEA+FobXR4AAAVwAAAAIQAAACEeAcD7GxvY2EAABZEAAAARAAAAERBSEX+bWF4cAAAFogAAAAgAAAAIAAsALZuYW1lAAAWqAAAAYYAAAGGmUoJ+3Bvc3QAABgwAAAAIAAAACAAAwAAAAMD3gGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8fwDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEAOgAAAA2ACAABAAWAAEAIOkG6Q3pEulH6Wbpd+m56bvpxunL6d/qDepc6l/qZepo6nHqefAN8BTxIPHc8fz//f//AAAAAAAg6QbpDekS6UfpZel36bnpu+nG6cvp3+oN6lzqX+pi6mjqcep38A3wFPEg8dzx/P/9//8AAf/jFv4W+Bb0FsAWoxaTFlIWURZHFkMWMBYDFbUVsxWxFa8VpxWiEA8QCQ7+DkMOJAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACAAD/wAQAA8AABAATAAABNwEnAQMuAScTNwEjAQMlATUBBwGAgAHAQP5Anxc7MmOAAYDA/oDAAoABgP6ATgFAQAHAQP5A/p0yOxcBEU4BgP6A/YDAAYDA/oCAAAQAAAAABAADgAAQACEALQA0AAABOAExETgBMSE4ATEROAExITUhIgYVERQWMyEyNjURNCYjBxQGIyImNTQ2MzIWEyE1EwEzNwPA/IADgPyAGiYmGgOAGiYmGoA4KCg4OCgoOED9AOABAEDgA0D9AAMAQCYa/QAaJiYaAwAaJuAoODgoKDg4/biAAYD+wMAAAAIAAABABAADQAA4ADwAAAEmJy4BJyYjIgcOAQcGBwYHDgEHBhUUFx4BFxYXFhceARcWMzI3PgE3Njc2Nz4BNzY1NCcuAScmJwERDQED1TY4OXY8PT8/PTx2OTg2CwcICwMDAwMLCAcLNjg5djw9Pz89PHY5ODYLBwgLAwMDAwsIBwv9qwFA/sADIAgGBggCAgICCAYGCCkqKlktLi8vLi1ZKiopCAYGCAICAgIIBgYIKSoqWS0uLy8uLVkqKin94AGAwMAAAAAAAgDA/8ADQAPAABsAJwAAASIHDgEHBhUUFx4BFxYxMDc+ATc2NTQnLgEnJgMiJjU0NjMyFhUUBgIAQjs6VxkZMjJ4MjIyMngyMhkZVzo7QlBwcFBQcHADwBkZVzo7Qnh9fcxBQUFBzH19eEI7OlcZGf4AcFBQcHBQUHAAAAEAAAAABAADgAArAAABIgcOAQcGBycRISc+ATMyFx4BFxYVFAcOAQcGBxc2Nz4BNzY1NCcuAScmIwIANTIyXCkpI5YBgJA1i1BQRUZpHh4JCSIYGB5VKCAgLQwMKCiLXl1qA4AKCycbHCOW/oCQNDweHmlGRVArKClJICEaYCMrK2I2NjlqXV6LKCgAAQAAAAAEAAOAACoAABMUFx4BFxYXNyYnLgEnJjU0Nz4BNzYzMhYXByERByYnLgEnJiMiBw4BBwYADAwtICAoVR4YGCIJCR4eaUZFUFCLNZABgJYjKSlcMjI1al1eiygoAYA5NjZiKysjYBohIEkpKCtQRUZpHh48NJABgJYjHBsnCwooKIteXQAAAAACAAAAQAQBAwAAJgBNAAATMhceARcWFRQHDgEHBiMiJy4BJyY1JzQ3PgE3NjMVIgYHDgEHPgEhMhceARcWFRQHDgEHBiMiJy4BJyY1JzQ3PgE3NjMVIgYHDgEHPgHhLikpPRESEhE9KSkuLikpPRESASMjelJRXUB1LQkQBwgSAkkuKSk9ERISET0pKS4uKSk9ERIBIyN6UlFdQHUtCRAHCBICABIRPSkpLi4pKT0REhIRPSkpLiBdUVJ6IyOAMC4IEwoCARIRPSkpLi4pKT0REhIRPSkpLiBdUVJ6IyOAMC4IEwoCAQAABgBA/8AEAAPAAAMABwALABEAHQApAAAlIRUhESEVIREhFSEnESM1IzUTFTMVIzU3NSM1MxUVESM1MzUjNTM1IzUBgAKA/YACgP2AAoD9gMBAQECAwICAwMCAgICAgIACAIACAIDA/wDAQP3yMkCSPDJAku7+wEBAQEBAAAYAAP/ABAADwAADAAcACwAXACMALwAAASEVIREhFSERIRUhATQ2MzIWFRQGIyImETQ2MzIWFRQGIyImETQ2MzIWFRQGIyImAYACgP2AAoD9gAKA/YD+gEs1NUtLNTVLSzU1S0s1NUtLNTVLSzU1SwOAgP8AgP8AgANANUtLNTVLS/61NUtLNTVLS/61NUtLNTVLSwADAAAAAAQAA6AAAwANABQAADchFSElFSE1EyEVITUhJQkBIxEjEQAEAPwABAD8AIABAAEAAQD9YAEgASDggEBAwEBAAQCAgMABIP7g/wABAAAAAAACAB7/zAPiA7QAMwBkAAABIiYnJicmNDc2PwE+ATMyFhcWFxYUBwYPAQYiJyY0PwE2NCcuASMiBg8BBhQXFhQHDgEjAyImJyYnJjQ3Nj8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFxYUBwYPAQ4BIwG4ChMIIxISEhIjwCNZMTFZIyMSEhISI1gPLA8PD1gpKRQzHBwzFMApKQ8PCBMKuDFZIyMSEhISI1gPLA8PD1gpKRQzHBwzFMApKQ8PDysQIxISEhIjwCNZMQFECAckLS1eLS0kwCIlJSIkLS1eLS0kVxAQDysPWCl0KRQVFRTAKXQpDysQBwj+iCUiJC0tXi0tJFcQEA8rD1gpdCkUFRUUwCl0KQ8rEA8PJC0tXi0tJMAiJQAAAAAFAAD/wAQAA8AAGwA3AFMAXwBrAAAFMjc+ATc2NTQnLgEnJiMiBw4BBwYVFBceARcWEzIXHgEXFhUUBw4BBwYjIicuAScmNTQ3PgE3NhMyNz4BNzY3BgcOAQcGIyInLgEnJicWFx4BFxYnNDYzMhYVFAYjIiYlNDYzMhYVFAYjIiYCAGpdXosoKCgoi15dampdXosoKCgoi15dalZMTHEgISEgcUxMVlZMTHEgISEgcUxMVisrKlEmJiMFHBtWODc/Pzc4VhscBSMmJlEqK9UlGxslJRsbJQGAJRsbJSUbGyVAKCiLXl1qal1eiygoKCiLXl1qal1eiygoA6AhIHFMTFZWTExxICEhIHFMTFZWTExxICH+CQYGFRAQFEM6OlYYGRkYVjo6QxQQEBUGBvcoODgoKDg4KCg4OCgoODgAAAMAAP/ABAADwAAbADcAQwAAASIHDgEHBhUUFx4BFxYzMjc+ATc2NTQnLgEnJgMiJy4BJyY1NDc+ATc2MzIXHgEXFhUUBw4BBwYTBycHFwcXNxc3JzcCAGpdXosoKCgoi15dampdXosoKCgoi15dalZMTHEgISEgcUxMVlZMTHEgISEgcUxMSqCgYKCgYKCgYKCgA8AoKIteXWpqXV6LKCgoKIteXWpqXV6LKCj8YCEgcUxMVlZMTHEgISEgcUxMVlZMTHEgIQKgoKBgoKBgoKBgoKAAAQBl/8ADmwPAACkAAAEiJiMiBw4BBwYVFBYzLgE1NDY3MAcGAgcGBxUhEzM3IzceATMyNjcOAQMgRGhGcVNUbRobSUgGDWVKEBBLPDxZAT1sxizXNC1VJi5QGB09A7AQHh1hPj9BTTsLJjeZbwN9fv7Fj5AjGQIAgPYJDzdrCQcAAAAAAgAAAAAEAAOAAAkAFwAAJTMHJzMRIzcXIyURJyMRMxUhNTMRIwcRA4CAoKCAgKCggP8AQMCA/oCAwEDAwMACAMDAwP8AgP1AQEACwIABAAADAMAAAANAA4AAFgAfACgAAAE+ATU0Jy4BJyYjIREhMjc+ATc2NTQmATMyFhUUBisBEyMRMzIWFRQGAsQcIBQURi4vNf7AAYA1Ly5GFBRE/oRlKjw8KWafn58sPj4B2yJULzUvLkYUFPyAFBRGLi81RnQBRks1NUv+gAEASzU1SwAAAAACAMAAAANAA4AAHwAjAAABMxEUBw4BBwYjIicuAScmNREzERQWFx4BMzI2Nz4BNQEhFSECwIAZGVc6O0JCOzpXGRmAGxgcSSgoSRwYG/4AAoD9gAOA/mA8NDVOFhcXFk41NDwBoP5gHjgXGBsbGBc4Hv6ggAAAAAABAIAAAAOAA4AACwAAARUjATMVITUzASM1A4CA/sCA/kCAAUCAA4BA/QBAQAMAQAABAAAAAAQAA4AAPQAAARUjHgEVFAYHDgEjIiYnLgE1MxQWMzI2NTQmIyE1IS4BJy4BNTQ2Nz4BMzIWFx4BFSM0JiMiBhUUFjMyFhcEAOsVFjUwLHE+PnEsMDWAck5OcnJO/gABLAIEATA1NTAscT4+cSwwNYByTk5yck47bisBwEAdQSI1YiQhJCQhJGI1NExMNDRMQAEDASRiNTViJCEkJCEkYjU0TEw0NEwhHwAAAAcAAP/ABAADwAADAAcACwAPABMAGwAjAAATMxUjNzMVIyUzFSM3MxUjJTMVIwMTIRMzEyETAQMhAyMDIQMAgIDAwMABAICAwMDAAQCAgBAQ/QAQIBACgBD9QBADABAgEP2AEAHAQEBAQEBAQEBAAkD+QAHA/oABgPwAAYD+gAFA/sAAAAoAAAAABAADgAADAAcACwAPABMAFwAbAB8AIwAnAAATESERATUhFR0BITUBFSE1IxUhNREhFSElIRUhETUhFQEhFSEhNSEVAAQA/YABAP8AAQD/AED/AAEA/wACgAEA/wABAPyAAQD/AAKAAQADgPyAA4D9wMDAQMDAAgDAwMDA/wDAwMABAMDA/sDAwMAAAAUAAAAABAADgAADAAcACwAPABMAABMhFSEVIRUhESEVIREhFSERIRUhAAQA/AACgP2AAoD9gAQA/AAEAPwAA4CAQID/AIABQID/AIAAAAAABQAAAAAEAAOAAAMABwALAA8AEwAAEyEVIRchFSERIRUhAyEVIREhFSEABAD8AMACgP2AAoD9gMAEAPwABAD8AAOAgECA/wCAAUCA/wCAAAAFAAAAAAQAA4AAAwAHAAsADwATAAATIRUhBSEVIREhFSEBIRUhESEVIQAEAPwAAYACgP2AAoD9gP6ABAD8AAQA/AADgIBAgP8AgAFAgP8AgAAAAAABAD8APwLmAuYALAAAJRQPAQYjIi8BBwYjIi8BJjU0PwEnJjU0PwE2MzIfATc2MzIfARYVFA8BFxYVAuYQThAXFxCoqBAXFhBOEBCoqBAQThAWFxCoqBAXFxBOEBCoqBDDFhBOEBCoqBAQThAWFxCoqBAXFxBOEBCoqBAQThAXFxCoqBAXAAAABgAAAAADJQNuABQAKAA8AE0AVQCCAAABERQHBisBIicmNRE0NzY7ATIXFhUzERQHBisBIicmNRE0NzY7ATIXFhcRFAcGKwEiJyY1ETQ3NjsBMhcWExEhERQXFhcWMyEyNzY3NjUBIScmJyMGBwUVFAcGKwERFAcGIyEiJyY1ESMiJyY9ATQ3NjsBNzY3NjsBMhcWHwEzMhcWFQElBgUIJAgFBgYFCCQIBQaSBQUIJQgFBQUFCCUIBQWSBQUIJQgFBQUFCCUIBQVJ/gAEBAUEAgHbAgQEBAT+gAEAGwQGtQYEAfcGBQg3Ghsm/iUmGxs3CAUFBQUIsSgIFxYXtxcWFgkosAgFBgIS/rcIBQUFBQgBSQgFBgYFCP63CAUFBQUIAUkIBQYGBQj+twgFBQUFCAFJCAUGBgX+WwId/eMNCwoFBQUFCgsNAmZDBQICBVUkCAYF/eMwIiMhIi8CIAUGCCQIBQVgFQ8PDw8VYAUFCAACAAcASQO3Aq8AGgAuAAAJAQYjIi8BJjU0PwEnJjU0PwE2MzIXARYVFAcBFRQHBiMhIicmPQE0NzYzITIXFgFO/vYGBwgFHQYG4eEGBh0FCAcGAQoGBgJpBQUI/dsIBQUFBQgCJQgFBQGF/vYGBhwGCAcG4OEGBwcGHQUF/vUFCAcG/vslCAUFBQUIJQgFBQUFAAAAAQAjAAAD3QNuALMAACUiJyYjIgcGIyInJjU0NzY3Njc2NzY9ATQnJiMhIgcGHQEUFxYXFjMWFxYVFAcGIyInJiMiBwYjIicmNTQ3Njc2NzY3Nj0BETQ1NDU0JzQnJicmJyYnJicmIyInJjU0NzYzMhcWMzI3NjMyFxYVFAcGIwYHBgcGHQEUFxYzITI3Nj0BNCcmJyYnJjU0NzYzMhcWMzI3NjMyFxYVFAcGByIHBgcGFREUFxYXFhcyFxYVFAcGIwPBGTMyGhkyMxkNCAcJCg0MERAKEgEHFf5+FgcBFQkSEw4ODAsHBw4bNTUaGDExGA0HBwkJCwwQDwkSAQIBAgMEBAUIEhENDQoLBwcOGjU1GhgwMRgOBwcJCgwNEBAIFAEHDwGQDgcBFAoXFw8OBwcOGTMyGRkxMRkOBwcKCg0NEBEIFBQJEREODQoLBwcOAAICAgIMCw8RCQkBAQMDBQxE4AwFAwMFDNRRDQYBAgEICBIPDA0CAgICDAwOEQgJAQIDAwUNRSEB0AINDQgIDg4KCgsLBwcDBgEBCAgSDwwNAgICAg0MDxEICAECAQYMULYMBwEBBwy2UAwGAQEGBxYPDA0CAgICDQwPEQgIAQECBg1P/eZEDAYCAgEJCBEPDA0AAAIAAP+3A/8DtwATADkAAAEyFxYVFAcCBwYjIicmNTQ3ATYzARYXFh8BFgcGIyInJicmJyY1FhcWFxYXFjMyNzY3Njc2NzY3NjcDmygeHhq+TDdFSDQ0NQFtISn9+BcmJy8BAkxMe0c2NiEhEBEEExQQEBIRCRcIDxITFRUdHR4eKQO3GxooJDP+mUY0NTRJSTABSx/9sSsfHw0oek1MGhsuLzo6RAMPDgsLCgoWJRsaEREKCwQEAgABAAAAAAAA9evv618PPPUACwQAAAAAANbEBFgAAAAA1sQEWAAA/7cEAQPAAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAD//wQBAAEAAAAAAAAAAAAAAAAAAAAhBAAAAAAAAAAAAAAAAgAAAAQAAAAEAAAABAAAAAQAAMAEAAAABAAAAAQAAAAEAABABAAAAAQAAAAEAAAeBAAAAAQAAAAEAABlBAAAAAQAAMAEAADABAAAgAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAMlAD8DJQAAA74ABwQAACMD/wAAAAAAAAAKABQAHgBMAJQA+AE2AXwBwgI2AnQCvgLoA34EHgSIBMoE8gU0BXAFiAXgBiIGagaSBroG5AcoB+AIKgkcCXgAAQAAACEAtAAKAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGljb21vb24AaQBjAG8AbQBvAG8AblZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGljb21vb24AaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AblJlZ3VsYXIAUgBlAGcAdQBsAGEAcmljb21vb24AaQBjAG8AbQBvAG8AbkZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format('truetype'); + font-weight: normal; + font-style: normal; +} +[class^="w-e-icon-"], +[class*=" w-e-icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'w-e-icon' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.w-e-icon-close:before { + content: "\f00d"; +} +.w-e-icon-upload2:before { + content: "\e9c6"; +} +.w-e-icon-trash-o:before { + content: "\f014"; +} +.w-e-icon-header:before { + content: "\f1dc"; +} +.w-e-icon-pencil2:before { + content: "\e906"; +} +.w-e-icon-paint-brush:before { + content: "\f1fc"; +} +.w-e-icon-image:before { + content: "\e90d"; +} +.w-e-icon-play:before { + content: "\e912"; +} +.w-e-icon-location:before { + content: "\e947"; +} +.w-e-icon-undo:before { + content: "\e965"; +} +.w-e-icon-redo:before { + content: "\e966"; +} +.w-e-icon-quotes-left:before { + content: "\e977"; +} +.w-e-icon-list-numbered:before { + content: "\e9b9"; +} +.w-e-icon-list2:before { + content: "\e9bb"; +} +.w-e-icon-link:before { + content: "\e9cb"; +} +.w-e-icon-happy:before { + content: "\e9df"; +} +.w-e-icon-bold:before { + content: "\ea62"; +} +.w-e-icon-underline:before { + content: "\ea63"; +} +.w-e-icon-italic:before { + content: "\ea64"; +} +.w-e-icon-strikethrough:before { + content: "\ea65"; +} +.w-e-icon-table2:before { + content: "\ea71"; +} +.w-e-icon-paragraph-left:before { + content: "\ea77"; +} +.w-e-icon-paragraph-center:before { + content: "\ea78"; +} +.w-e-icon-paragraph-right:before { + content: "\ea79"; +} +.w-e-icon-terminal:before { + content: "\f120"; +} +.w-e-icon-page-break:before { + content: "\ea68"; +} +.w-e-icon-cancel-circle:before { + content: "\ea0d"; +} +.w-e-icon-font:before { + content: "\ea5c"; +} +.w-e-icon-text-heigh:before { + content: "\ea5f"; +} + +.w-e-toolbar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + padding: 0 5px; + /* flex-wrap: wrap; */ + /* 单个菜单 */ +} +.w-e-toolbar .w-e-menu { + position: relative; + text-align: center; + padding: 5px 10px; + cursor: pointer; +} +.w-e-toolbar .w-e-menu i { + color: #999; +} +.w-e-toolbar .w-e-menu:hover i { + color: #333; +} +.w-e-toolbar .w-e-active i { + color: #1e88e5; +} +.w-e-toolbar .w-e-active:hover i { + color: #1e88e5; +} + +.w-e-text-container .w-e-panel-container { + position: absolute; + top: 0; + left: 50%; + border: 1px solid #ccc; + border-top: 0; + box-shadow: 1px 1px 2px #ccc; + color: #333; + background-color: #fff; + /* 为 emotion panel 定制的样式 */ + /* 上传图片的 panel 定制样式 */ +} +.w-e-text-container .w-e-panel-container .w-e-panel-close { + position: absolute; + right: 0; + top: 0; + padding: 5px; + margin: 2px 5px 0 0; + cursor: pointer; + color: #999; +} +.w-e-text-container .w-e-panel-container .w-e-panel-close:hover { + color: #333; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-title { + list-style: none; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 14px; + margin: 2px 10px 0 10px; + border-bottom: 1px solid #f1f1f1; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-item { + padding: 3px 5px; + color: #999; + cursor: pointer; + margin: 0 3px; + position: relative; + top: 1px; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-active { + color: #333; + border-bottom: 1px solid #333; + cursor: default; + font-weight: 700; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content { + padding: 10px 15px 10px 15px; + font-size: 16px; + /* 输入框的样式 */ + /* 按钮的样式 */ +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input:focus, +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus, +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content button:focus { + outline: none; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea { + width: 100%; + border: 1px solid #ccc; + padding: 5px; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus { + border-color: #1e88e5; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text] { + border: none; + border-bottom: 1px solid #ccc; + font-size: 14px; + height: 20px; + color: #333; + text-align: left; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].small { + width: 30px; + text-align: center; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].block { + display: block; + width: 100%; + margin: 10px 0; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text]:focus { + border-bottom: 2px solid #1e88e5; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button { + font-size: 14px; + color: #1e88e5; + border: none; + padding: 5px 10px; + background-color: #fff; + cursor: pointer; + border-radius: 3px; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.left { + float: left; + margin-right: 10px; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.right { + float: right; + margin-left: 10px; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.gray { + color: #999; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.red { + color: #c24f4a; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button:hover { + background-color: #f1f1f1; +} +.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container:after { + content: ""; + display: table; + clear: both; +} +.w-e-text-container .w-e-panel-container .w-e-emoticon-container .w-e-item { + cursor: pointer; + font-size: 18px; + padding: 0 3px; + display: inline-block; + *display: inline; + *zoom: 1; +} +.w-e-text-container .w-e-panel-container .w-e-up-img-container { + text-align: center; +} +.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn { + display: inline-block; + *display: inline; + *zoom: 1; + color: #999; + cursor: pointer; + font-size: 60px; + line-height: 1; +} +.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn:hover { + color: #333; +} + +.w-e-text-container { + position: relative; +} +.w-e-text-container .w-e-progress { + position: absolute; + background-color: #1e88e5; + bottom: 0; + left: 0; + height: 1px; +} +.w-e-text { + padding: 0 10px; + overflow-y: scroll; +} +.w-e-text p, +.w-e-text h1, +.w-e-text h2, +.w-e-text h3, +.w-e-text h4, +.w-e-text h5, +.w-e-text table, +.w-e-text pre { + margin: 10px 0; + line-height: 1.5; +} +.w-e-text ul, +.w-e-text ol { + margin: 10px 0 10px 20px; +} +.w-e-text blockquote { + display: block; + border-left: 8px solid #d0e5f2; + padding: 5px 10px; + margin: 10px 0; + line-height: 1.4; + font-size: 100%; + background-color: #f1f1f1; +} +.w-e-text code { + display: inline-block; + *display: inline; + *zoom: 1; + background-color: #f1f1f1; + border-radius: 3px; + padding: 3px 5px; + margin: 0 3px; +} +.w-e-text pre code { + display: block; +} +.w-e-text table { + border-top: 1px solid #ccc; + border-left: 1px solid #ccc; +} +.w-e-text table td, +.w-e-text table th { + border-bottom: 1px solid #ccc; + border-right: 1px solid #ccc; + padding: 3px 5px; +} +.w-e-text table th { + border-bottom: 2px solid #ccc; + text-align: center; +} +.w-e-text:focus { + outline: none; +} +.w-e-text img { + cursor: pointer; +} +.w-e-text img:hover { + box-shadow: 0 0 5px #333; +} diff --git a/static/js/lay-module/wangEditor/wangEditor.js b/static/js/lay-module/wangEditor/wangEditor.js new file mode 100644 index 0000000..fe909c8 --- /dev/null +++ b/static/js/lay-module/wangEditor/wangEditor.js @@ -0,0 +1,4678 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.wangEditor = factory()); +}(this, (function () { 'use strict'; + +/* + poly-fill +*/ + +var polyfill = function () { + + // Object.assign + if (typeof Object.assign != 'function') { + Object.assign = function (target, varArgs) { + // .length of function is 2 + if (target == null) { + // TypeError if undefined or null + throw new TypeError('Cannot convert undefined or null to object'); + } + + var to = Object(target); + + for (var index = 1; index < arguments.length; index++) { + var nextSource = arguments[index]; + + if (nextSource != null) { + // Skip over if undefined or null + for (var nextKey in nextSource) { + // Avoid bugs when hasOwnProperty is shadowed + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }; + } + + // IE 中兼容 Element.prototype.matches + if (!Element.prototype.matches) { + Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) { + var matches = (this.document || this.ownerDocument).querySelectorAll(s), + i = matches.length; + while (--i >= 0 && matches.item(i) !== this) {} + return i > -1; + }; + } +}; + +/* + DOM 操作 API +*/ + +// 根据 html 代码片段创建 dom 对象 +function createElemByHTML(html) { + var div = void 0; + div = document.createElement('div'); + div.innerHTML = html; + return div.children; +} + +// 是否是 DOM List +function isDOMList(selector) { + if (!selector) { + return false; + } + if (selector instanceof HTMLCollection || selector instanceof NodeList) { + return true; + } + return false; +} + +// 封装 document.querySelectorAll +function querySelectorAll(selector) { + var result = document.querySelectorAll(selector); + if (isDOMList(result)) { + return result; + } else { + return [result]; + } +} + +// 记录所有的事件绑定 +var eventList = []; + +// 创建构造函数 +function DomElement(selector) { + if (!selector) { + return; + } + + // selector 本来就是 DomElement 对象,直接返回 + if (selector instanceof DomElement) { + return selector; + } + + this.selector = selector; + var nodeType = selector.nodeType; + + // 根据 selector 得出的结果(如 DOM,DOM List) + var selectorResult = []; + if (nodeType === 9) { + // document 节点 + selectorResult = [selector]; + } else if (nodeType === 1) { + // 单个 DOM 节点 + selectorResult = [selector]; + } else if (isDOMList(selector) || selector instanceof Array) { + // DOM List 或者数组 + selectorResult = selector; + } else if (typeof selector === 'string') { + // 字符串 + selector = selector.replace('/\n/mg', '').trim(); + if (selector.indexOf('<') === 0) { + // 如
    + selectorResult = createElemByHTML(selector); + } else { + // 如 #id .class + selectorResult = querySelectorAll(selector); + } + } + + var length = selectorResult.length; + if (!length) { + // 空数组 + return this; + } + + // 加入 DOM 节点 + var i = void 0; + for (i = 0; i < length; i++) { + this[i] = selectorResult[i]; + } + this.length = length; +} + +// 修改原型 +DomElement.prototype = { + constructor: DomElement, + + // 类数组,forEach + forEach: function forEach(fn) { + var i = void 0; + for (i = 0; i < this.length; i++) { + var elem = this[i]; + var result = fn.call(elem, elem, i); + if (result === false) { + break; + } + } + return this; + }, + + // clone + clone: function clone(deep) { + var cloneList = []; + this.forEach(function (elem) { + cloneList.push(elem.cloneNode(!!deep)); + }); + return $(cloneList); + }, + + // 获取第几个元素 + get: function get(index) { + var length = this.length; + if (index >= length) { + index = index % length; + } + return $(this[index]); + }, + + // 第一个 + first: function first() { + return this.get(0); + }, + + // 最后一个 + last: function last() { + var length = this.length; + return this.get(length - 1); + }, + + // 绑定事件 + on: function on(type, selector, fn) { + // selector 不为空,证明绑定事件要加代理 + if (!fn) { + fn = selector; + selector = null; + } + + // type 是否有多个 + var types = []; + types = type.split(/\s+/); + + return this.forEach(function (elem) { + types.forEach(function (type) { + if (!type) { + return; + } + + // 记录下,方便后面解绑 + eventList.push({ + elem: elem, + type: type, + fn: fn + }); + + if (!selector) { + // 无代理 + elem.addEventListener(type, fn); + return; + } + + // 有代理 + elem.addEventListener(type, function (e) { + var target = e.target; + if (target.matches(selector)) { + fn.call(target, e); + } + }); + }); + }); + }, + + // 取消事件绑定 + off: function off(type, fn) { + return this.forEach(function (elem) { + elem.removeEventListener(type, fn); + }); + }, + + // 获取/设置 属性 + attr: function attr(key, val) { + if (val == null) { + // 获取值 + return this[0].getAttribute(key); + } else { + // 设置值 + return this.forEach(function (elem) { + elem.setAttribute(key, val); + }); + } + }, + + // 添加 class + addClass: function addClass(className) { + if (!className) { + return this; + } + return this.forEach(function (elem) { + var arr = void 0; + if (elem.className) { + // 解析当前 className 转换为数组 + arr = elem.className.split(/\s/); + arr = arr.filter(function (item) { + return !!item.trim(); + }); + // 添加 class + if (arr.indexOf(className) < 0) { + arr.push(className); + } + // 修改 elem.class + elem.className = arr.join(' '); + } else { + elem.className = className; + } + }); + }, + + // 删除 class + removeClass: function removeClass(className) { + if (!className) { + return this; + } + return this.forEach(function (elem) { + var arr = void 0; + if (elem.className) { + // 解析当前 className 转换为数组 + arr = elem.className.split(/\s/); + arr = arr.filter(function (item) { + item = item.trim(); + // 删除 class + if (!item || item === className) { + return false; + } + return true; + }); + // 修改 elem.class + elem.className = arr.join(' '); + } + }); + }, + + // 修改 css + css: function css(key, val) { + var currentStyle = key + ':' + val + ';'; + return this.forEach(function (elem) { + var style = (elem.getAttribute('style') || '').trim(); + var styleArr = void 0, + resultArr = []; + if (style) { + // 将 style 按照 ; 拆分为数组 + styleArr = style.split(';'); + styleArr.forEach(function (item) { + // 对每项样式,按照 : 拆分为 key 和 value + var arr = item.split(':').map(function (i) { + return i.trim(); + }); + if (arr.length === 2) { + resultArr.push(arr[0] + ':' + arr[1]); + } + }); + // 替换或者新增 + resultArr = resultArr.map(function (item) { + if (item.indexOf(key) === 0) { + return currentStyle; + } else { + return item; + } + }); + if (resultArr.indexOf(currentStyle) < 0) { + resultArr.push(currentStyle); + } + // 结果 + elem.setAttribute('style', resultArr.join('; ')); + } else { + // style 无值 + elem.setAttribute('style', currentStyle); + } + }); + }, + + // 显示 + show: function show() { + return this.css('display', 'block'); + }, + + // 隐藏 + hide: function hide() { + return this.css('display', 'none'); + }, + + // 获取子节点 + children: function children() { + var elem = this[0]; + if (!elem) { + return null; + } + + return $(elem.children); + }, + + // 获取子节点(包括文本节点) + childNodes: function childNodes() { + var elem = this[0]; + if (!elem) { + return null; + } + + return $(elem.childNodes); + }, + + // 增加子节点 + append: function append($children) { + return this.forEach(function (elem) { + $children.forEach(function (child) { + elem.appendChild(child); + }); + }); + }, + + // 移除当前节点 + remove: function remove() { + return this.forEach(function (elem) { + if (elem.remove) { + elem.remove(); + } else { + var parent = elem.parentElement; + parent && parent.removeChild(elem); + } + }); + }, + + // 是否包含某个子节点 + isContain: function isContain($child) { + var elem = this[0]; + var child = $child[0]; + return elem.contains(child); + }, + + // 尺寸数据 + getSizeData: function getSizeData() { + var elem = this[0]; + return elem.getBoundingClientRect(); // 可得到 bottom height left right top width 的数据 + }, + + // 封装 nodeName + getNodeName: function getNodeName() { + var elem = this[0]; + return elem.nodeName; + }, + + // 从当前元素查找 + find: function find(selector) { + var elem = this[0]; + return $(elem.querySelectorAll(selector)); + }, + + // 获取当前元素的 text + text: function text(val) { + if (!val) { + // 获取 text + var elem = this[0]; + return elem.innerHTML.replace(/<.*?>/g, function () { + return ''; + }); + } else { + // 设置 text + return this.forEach(function (elem) { + elem.innerHTML = val; + }); + } + }, + + // 获取 html + html: function html(value) { + var elem = this[0]; + if (value == null) { + return elem.innerHTML; + } else { + elem.innerHTML = value; + return this; + } + }, + + // 获取 value + val: function val() { + var elem = this[0]; + return elem.value.trim(); + }, + + // focus + focus: function focus() { + return this.forEach(function (elem) { + elem.focus(); + }); + }, + + // parent + parent: function parent() { + var elem = this[0]; + return $(elem.parentElement); + }, + + // parentUntil 找到符合 selector 的父节点 + parentUntil: function parentUntil(selector, _currentElem) { + var results = document.querySelectorAll(selector); + var length = results.length; + if (!length) { + // 传入的 selector 无效 + return null; + } + + var elem = _currentElem || this[0]; + if (elem.nodeName === 'BODY') { + return null; + } + + var parent = elem.parentElement; + var i = void 0; + for (i = 0; i < length; i++) { + if (parent === results[i]) { + // 找到,并返回 + return $(parent); + } + } + + // 继续查找 + return this.parentUntil(selector, parent); + }, + + // 判断两个 elem 是否相等 + equal: function equal($elem) { + if ($elem.nodeType === 1) { + return this[0] === $elem; + } else { + return this[0] === $elem[0]; + } + }, + + // 将该元素插入到某个元素前面 + insertBefore: function insertBefore(selector) { + var $referenceNode = $(selector); + var referenceNode = $referenceNode[0]; + if (!referenceNode) { + return this; + } + return this.forEach(function (elem) { + var parent = referenceNode.parentNode; + parent.insertBefore(elem, referenceNode); + }); + }, + + // 将该元素插入到某个元素后面 + insertAfter: function insertAfter(selector) { + var $referenceNode = $(selector); + var referenceNode = $referenceNode[0]; + if (!referenceNode) { + return this; + } + return this.forEach(function (elem) { + var parent = referenceNode.parentNode; + if (parent.lastChild === referenceNode) { + // 最后一个元素 + parent.appendChild(elem); + } else { + // 不是最后一个元素 + parent.insertBefore(elem, referenceNode.nextSibling); + } + }); + } +}; + +// new 一个对象 +function $(selector) { + return new DomElement(selector); +} + +// 解绑所有事件,用于销毁编辑器 +$.offAll = function () { + eventList.forEach(function (item) { + var elem = item.elem; + var type = item.type; + var fn = item.fn; + // 解绑 + elem.removeEventListener(type, fn); + }); +}; + +/* + 配置信息 +*/ + +var config = { + + // 默认菜单配置 + menus: ['head', 'bold', 'fontSize', 'fontName', 'italic', 'underline', 'strikeThrough', 'foreColor', 'backColor', 'link', 'list', 'justify', 'quote', 'emoticon', 'image', 'table', 'video', 'code', 'undo', 'redo'], + + fontNames: ['宋体', '微软雅黑', 'Arial', 'Tahoma', 'Verdana'], + + colors: ['#000000', '#eeece0', '#1c487f', '#4d80bf', '#c24f4a', '#8baa4a', '#7b5ba1', '#46acc8', '#f9963b', '#ffffff'], + + // // 语言配置 + // lang: { + // '设置标题': 'title', + // '正文': 'p', + // '链接文字': 'link text', + // '链接': 'link', + // '插入': 'insert', + // '创建': 'init' + // }, + + // 表情 + emotions: [{ + // tab 的标题 + title: '默认', + // type -> 'emoji' / 'image' + type: 'image', + // content -> 数组 + content: [{ + alt: '[坏笑]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/50/pcmoren_huaixiao_org.png' + }, { + alt: '[舔屏]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/pcmoren_tian_org.png' + }, { + alt: '[污]', + src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/3c/pcmoren_wu_org.png' + }] + }, { + // tab 的标题 + title: '新浪', + // type -> 'emoji' / 'image' + type: 'image', + // content -> 数组 + content: [{ + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/7a/shenshou_thumb.gif', + alt: '[草泥马]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/60/horse2_thumb.gif', + alt: '[神马]' + }, { + src: 'http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/bc/fuyun_thumb.gif', + alt: '[浮云]' + }] + }, { + // tab 的标题 + title: 'emoji', + // type -> 'emoji' / 'image' + type: 'emoji', + // content -> 数组 + content: '😀 😃 😄 😁 😆 😅 😂 😊 😇 🙂 🙃 😉 😓 😪 😴 🙄 🤔 😬 🤐'.split(/\s/) + }], + + // 编辑区域的 z-index + zIndex: 10000, + + // 是否开启 debug 模式(debug 模式下错误会 throw error 形式抛出) + debug: false, + + // 插入链接时候的格式校验 + linkCheck: function linkCheck(text, link) { + // text 是插入的文字 + // link 是插入的链接 + return true; // 返回 true 即表示成功 + // return '校验失败' // 返回字符串即表示失败的提示信息 + }, + + // 插入网络图片的校验 + linkImgCheck: function linkImgCheck(src) { + // src 即图片的地址 + return true; // 返回 true 即表示成功 + // return '校验失败' // 返回字符串即表示失败的提示信息 + }, + + // 粘贴过滤样式,默认开启 + pasteFilterStyle: true, + + // 粘贴内容时,忽略图片。默认关闭 + pasteIgnoreImg: false, + + // 对粘贴的文字进行自定义处理,返回处理后的结果。编辑器会将处理后的结果粘贴到编辑区域中。 + // IE 暂时不支持 + pasteTextHandle: function pasteTextHandle(content) { + // content 即粘贴过来的内容(html 或 纯文本),可进行自定义处理然后返回 + return content; + }, + + // onchange 事件 + // onchange: function (html) { + // // html 即变化之后的内容 + // console.log(html) + // }, + + // 是否显示添加网络图片的 tab + showLinkImg: true, + + // 插入网络图片的回调 + linkImgCallback: function linkImgCallback(url) { + // console.log(url) // url 即插入图片的地址 + }, + + // 默认上传图片 max size: 5M + uploadImgMaxSize: 5 * 1024 * 1024, + + // 配置一次最多上传几个图片 + // uploadImgMaxLength: 5, + + // 上传图片,是否显示 base64 格式 + uploadImgShowBase64: false, + + // 上传图片,server 地址(如果有值,则 base64 格式的配置则失效) + // uploadImgServer: '/upload', + + // 自定义配置 filename + uploadFileName: '', + + // 上传图片的自定义参数 + uploadImgParams: { + // token: 'abcdef12345' + }, + + // 上传图片的自定义header + uploadImgHeaders: { + // 'Accept': 'text/x-json' + }, + + // 配置 XHR withCredentials + withCredentials: false, + + // 自定义上传图片超时时间 ms + uploadImgTimeout: 10000, + + // 上传图片 hook + uploadImgHooks: { + // customInsert: function (insertLinkImg, result, editor) { + // console.log('customInsert') + // // 图片上传并返回结果,自定义插入图片的事件,而不是编辑器自动插入图片 + // const data = result.data1 || [] + // data.forEach(link => { + // insertLinkImg(link) + // }) + // }, + before: function before(xhr, editor, files) { + // 图片上传之前触发 + + // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传 + // return { + // prevent: true, + // msg: '放弃上传' + // } + }, + success: function success(xhr, editor, result) { + // 图片上传并返回结果,图片插入成功之后触发 + }, + fail: function fail(xhr, editor, result) { + // 图片上传并返回结果,但图片插入错误时触发 + }, + error: function error(xhr, editor) { + // 图片上传出错时触发 + }, + timeout: function timeout(xhr, editor) { + // 图片上传超时时触发 + } + }, + + // 是否上传七牛云,默认为 false + qiniu: false + +}; + +/* + 工具 +*/ + +// 和 UA 相关的属性 +var UA = { + _ua: navigator.userAgent, + + // 是否 webkit + isWebkit: function isWebkit() { + var reg = /webkit/i; + return reg.test(this._ua); + }, + + // 是否 IE + isIE: function isIE() { + return 'ActiveXObject' in window; + } +}; + +// 遍历对象 +function objForEach(obj, fn) { + var key = void 0, + result = void 0; + for (key in obj) { + if (obj.hasOwnProperty(key)) { + result = fn.call(obj, key, obj[key]); + if (result === false) { + break; + } + } + } +} + +// 遍历类数组 +function arrForEach(fakeArr, fn) { + var i = void 0, + item = void 0, + result = void 0; + var length = fakeArr.length || 0; + for (i = 0; i < length; i++) { + item = fakeArr[i]; + result = fn.call(fakeArr, item, i); + if (result === false) { + break; + } + } +} + +// 获取随机数 +function getRandom(prefix) { + return prefix + Math.random().toString().slice(2); +} + +// 替换 html 特殊字符 +function replaceHtmlSymbol(html) { + if (html == null) { + return ''; + } + return html.replace(//gm, '>').replace(/"/gm, '"').replace(/(\r\n|\r|\n)/g, '
    '); +} + +// 返回百分比的格式 + + +// 判断是不是 function +function isFunction(fn) { + return typeof fn === 'function'; +} + +/* + bold-menu +*/ +// 构造函数 +function Bold(editor) { + this.editor = editor; + this.$elem = $('
    \n \n
    '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Bold.prototype = { + constructor: Bold, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 bold 命令 + editor.cmd.do('bold'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('bold')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + 替换多语言 + */ + +var replaceLang = function (editor, str) { + var langArgs = editor.config.langArgs || []; + var result = str; + + langArgs.forEach(function (item) { + var reg = item.reg; + var val = item.val; + + if (reg.test(result)) { + result = result.replace(reg, function () { + return val; + }); + } + }); + + return result; +}; + +/* + droplist +*/ +var _emptyFn = function _emptyFn() {}; + +// 构造函数 +function DropList(menu, opt) { + var _this = this; + + // droplist 所依附的菜单 + var editor = menu.editor; + this.menu = menu; + this.opt = opt; + // 容器 + var $container = $('
    '); + + // 标题 + var $title = opt.$title; + var titleHtml = void 0; + if ($title) { + // 替换多语言 + titleHtml = $title.html(); + titleHtml = replaceLang(editor, titleHtml); + $title.html(titleHtml); + + $title.addClass('w-e-dp-title'); + $container.append($title); + } + + var list = opt.list || []; + var type = opt.type || 'list'; // 'list' 列表形式(如“标题”菜单) / 'inline-block' 块状形式(如“颜色”菜单) + var onClick = opt.onClick || _emptyFn; + + // 加入 DOM 并绑定事件 + var $list = $('
      '); + $container.append($list); + list.forEach(function (item) { + var $elem = item.$elem; + + // 替换多语言 + var elemHtml = $elem.html(); + elemHtml = replaceLang(editor, elemHtml); + $elem.html(elemHtml); + + var value = item.value; + var $li = $('
    • '); + if ($elem) { + $li.append($elem); + $list.append($li); + $li.on('click', function (e) { + onClick(value); + + // 隐藏 + _this.hideTimeoutId = setTimeout(function () { + _this.hide(); + }, 0); + }); + } + }); + + // 绑定隐藏事件 + $container.on('mouseleave', function (e) { + _this.hideTimeoutId = setTimeout(function () { + _this.hide(); + }, 0); + }); + + // 记录属性 + this.$container = $container; + + // 基本属性 + this._rendered = false; + this._show = false; +} + +// 原型 +DropList.prototype = { + constructor: DropList, + + // 显示(插入DOM) + show: function show() { + if (this.hideTimeoutId) { + // 清除之前的定时隐藏 + clearTimeout(this.hideTimeoutId); + } + + var menu = this.menu; + var $menuELem = menu.$elem; + var $container = this.$container; + if (this._show) { + return; + } + if (this._rendered) { + // 显示 + $container.show(); + } else { + // 加入 DOM 之前先定位位置 + var menuHeight = $menuELem.getSizeData().height || 0; + var width = this.opt.width || 100; // 默认为 100 + $container.css('margin-top', menuHeight + 'px').css('width', width + 'px'); + + // 加入到 DOM + $menuELem.append($container); + this._rendered = true; + } + + // 修改属性 + this._show = true; + }, + + // 隐藏(移除DOM) + hide: function hide() { + if (this.showTimeoutId) { + // 清除之前的定时显示 + clearTimeout(this.showTimeoutId); + } + + var $container = this.$container; + if (!this._show) { + return; + } + // 隐藏并需改属性 + $container.hide(); + this._show = false; + } +}; + +/* + menu - header +*/ +// 构造函数 +function Head(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
      '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 100, + $title: $('

      设置标题

      '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $('

      H1

      '), value: '

      ' }, { $elem: $('

      H2

      '), value: '

      ' }, { $elem: $('

      H3

      '), value: '

      ' }, { $elem: $('

      H4

      '), value: '

      ' }, { $elem: $('

      H5
      '), value: '
      ' }, { $elem: $('

      正文

      '), value: '

      ' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 Head 对象 + _this._command(value); + } + }); +} + +// 原型 +Head.prototype = { + constructor: Head, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (editor.$textElem.equal($selectionElem)) { + // 不能选中多行来设置标题,否则会出现问题 + // 例如选中的是

      xxx

      yyy

      来设置标题,设置之后会成为

      xxx
      yyy

      不符合预期 + return; + } + + editor.cmd.do('formatBlock', value); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var reg = /^h/i; + var cmdValue = editor.cmd.queryCommandValue('formatBlock'); + if (reg.test(cmdValue)) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - fontSize +*/ + +// 构造函数 +function FontSize(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
      '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 160, + $title: $('

      字号

      '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $('x-small'), value: '1' }, { $elem: $('small'), value: '2' }, { $elem: $('normal'), value: '3' }, { $elem: $('large'), value: '4' }, { $elem: $('x-large'), value: '5' }, { $elem: $('xx-large'), value: '6' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 FontSize 对象 + _this._command(value); + } + }); +} + +// 原型 +FontSize.prototype = { + constructor: FontSize, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('fontSize', value); + } +}; + +/* + menu - fontName +*/ + +// 构造函数 +function FontName(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
      '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 获取配置的字体 + var config = editor.config; + var fontNames = config.fontNames || []; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 100, + $title: $('

      字体

      '), + type: 'list', // droplist 以列表形式展示 + list: fontNames.map(function (fontName) { + return { $elem: $('' + fontName + ''), value: fontName }; + }), + onClick: function onClick(value) { + // 注意 this 是指向当前的 FontName 对象 + _this._command(value); + } + }); +} + +// 原型 +FontName.prototype = { + constructor: FontName, + + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('fontName', value); + } +}; + +/* + panel +*/ + +var emptyFn = function emptyFn() {}; + +// 记录已经显示 panel 的菜单 +var _isCreatedPanelMenus = []; + +// 构造函数 +function Panel(menu, opt) { + this.menu = menu; + this.opt = opt; +} + +// 原型 +Panel.prototype = { + constructor: Panel, + + // 显示(插入DOM) + show: function show() { + var _this = this; + + var menu = this.menu; + if (_isCreatedPanelMenus.indexOf(menu) >= 0) { + // 该菜单已经创建了 panel 不能再创建 + return; + } + + var editor = menu.editor; + var $body = $('body'); + var $textContainerElem = editor.$textContainerElem; + var opt = this.opt; + + // panel 的容器 + var $container = $('
      '); + var width = opt.width || 300; // 默认 300px + $container.css('width', width + 'px').css('margin-left', (0 - width) / 2 + 'px'); + + // 添加关闭按钮 + var $closeBtn = $(''); + $container.append($closeBtn); + $closeBtn.on('click', function () { + _this.hide(); + }); + + // 准备 tabs 容器 + var $tabTitleContainer = $('
        '); + var $tabContentContainer = $('
        '); + $container.append($tabTitleContainer).append($tabContentContainer); + + // 设置高度 + var height = opt.height; + if (height) { + $tabContentContainer.css('height', height + 'px').css('overflow-y', 'auto'); + } + + // tabs + var tabs = opt.tabs || []; + var tabTitleArr = []; + var tabContentArr = []; + tabs.forEach(function (tab, tabIndex) { + if (!tab) { + return; + } + var title = tab.title || ''; + var tpl = tab.tpl || ''; + + // 替换多语言 + title = replaceLang(editor, title); + tpl = replaceLang(editor, tpl); + + // 添加到 DOM + var $title = $('
      • ' + title + '
      • '); + $tabTitleContainer.append($title); + var $content = $(tpl); + $tabContentContainer.append($content); + + // 记录到内存 + $title._index = tabIndex; + tabTitleArr.push($title); + tabContentArr.push($content); + + // 设置 active 项 + if (tabIndex === 0) { + $title._active = true; + $title.addClass('w-e-active'); + } else { + $content.hide(); + } + + // 绑定 tab 的事件 + $title.on('click', function (e) { + if ($title._active) { + return; + } + // 隐藏所有的 tab + tabTitleArr.forEach(function ($title) { + $title._active = false; + $title.removeClass('w-e-active'); + }); + tabContentArr.forEach(function ($content) { + $content.hide(); + }); + + // 显示当前的 tab + $title._active = true; + $title.addClass('w-e-active'); + $content.show(); + }); + }); + + // 绑定关闭事件 + $container.on('click', function (e) { + // 点击时阻止冒泡 + e.stopPropagation(); + }); + $body.on('click', function (e) { + _this.hide(); + }); + + // 添加到 DOM + $textContainerElem.append($container); + + // 绑定 opt 的事件,只有添加到 DOM 之后才能绑定成功 + tabs.forEach(function (tab, index) { + if (!tab) { + return; + } + var events = tab.events || []; + events.forEach(function (event) { + var selector = event.selector; + var type = event.type; + var fn = event.fn || emptyFn; + var $content = tabContentArr[index]; + $content.find(selector).on(type, function (e) { + e.stopPropagation(); + var needToHide = fn(e); + // 执行完事件之后,是否要关闭 panel + if (needToHide) { + _this.hide(); + } + }); + }); + }); + + // focus 第一个 elem + var $inputs = $container.find('input[type=text],textarea'); + if ($inputs.length) { + $inputs.get(0).focus(); + } + + // 添加到属性 + this.$container = $container; + + // 隐藏其他 panel + this._hideOtherPanels(); + // 记录该 menu 已经创建了 panel + _isCreatedPanelMenus.push(menu); + }, + + // 隐藏(移除DOM) + hide: function hide() { + var menu = this.menu; + var $container = this.$container; + if ($container) { + $container.remove(); + } + + // 将该 menu 记录中移除 + _isCreatedPanelMenus = _isCreatedPanelMenus.filter(function (item) { + if (item === menu) { + return false; + } else { + return true; + } + }); + }, + + // 一个 panel 展示时,隐藏其他 panel + _hideOtherPanels: function _hideOtherPanels() { + if (!_isCreatedPanelMenus.length) { + return; + } + _isCreatedPanelMenus.forEach(function (menu) { + var panel = menu.panel || {}; + if (panel.hide) { + panel.hide(); + } + }); + } +}; + +/* + menu - link +*/ +// 构造函数 +function Link(editor) { + this.editor = editor; + this.$elem = $('
        '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Link.prototype = { + constructor: Link, + + // 点击事件 + onClick: function onClick(e) { + var editor = this.editor; + var $linkelem = void 0; + + if (this._active) { + // 当前选区在链接里面 + $linkelem = editor.selection.getSelectionContainerElem(); + if (!$linkelem) { + return; + } + // 将该元素都包含在选取之内,以便后面整体替换 + editor.selection.createRangeByElem($linkelem); + editor.selection.restoreSelection(); + // 显示 panel + this._createPanel($linkelem.text(), $linkelem.attr('href')); + } else { + // 当前选区不在链接里面 + if (editor.selection.isSelectionEmpty()) { + // 选区是空的,未选中内容 + this._createPanel('', ''); + } else { + // 选中内容了 + this._createPanel(editor.selection.getSelectionText(), ''); + } + } + }, + + // 创建 panel + _createPanel: function _createPanel(text, link) { + var _this = this; + + // panel 中需要用到的id + var inputLinkId = getRandom('input-link'); + var inputTextId = getRandom('input-text'); + var btnOkId = getRandom('btn-ok'); + var btnDelId = getRandom('btn-del'); + + // 是否显示“删除链接” + var delBtnDisplay = this._active ? 'inline-block' : 'none'; + + // 初始化并显示 panel + var panel = new Panel(this, { + width: 300, + // panel 中可包含多个 tab + tabs: [{ + // tab 的标题 + title: '链接', + // 模板 + tpl: '
        \n \n \n
        \n \n \n
        \n
        ', + // 事件绑定 + events: [ + // 插入链接 + { + selector: '#' + btnOkId, + type: 'click', + fn: function fn() { + // 执行插入链接 + var $link = $('#' + inputLinkId); + var $text = $('#' + inputTextId); + var link = $link.val(); + var text = $text.val(); + _this._insertLink(text, link); + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, + // 删除链接 + { + selector: '#' + btnDelId, + type: 'click', + fn: function fn() { + // 执行删除链接 + _this._delLink(); + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // tab end + ] // tabs end + }); + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 删除当前链接 + _delLink: function _delLink() { + if (!this._active) { + return; + } + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var selectionText = editor.selection.getSelectionText(); + editor.cmd.do('insertHTML', '' + selectionText + ''); + }, + + // 插入链接 + _insertLink: function _insertLink(text, link) { + var editor = this.editor; + var config = editor.config; + var linkCheck = config.linkCheck; + var checkResult = true; // 默认为 true + if (linkCheck && typeof linkCheck === 'function') { + checkResult = linkCheck(text, link); + } + if (checkResult === true) { + editor.cmd.do('insertHTML', '' + text + ''); + } else { + alert(checkResult); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + if ($selectionELem.getNodeName() === 'A') { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + italic-menu +*/ +// 构造函数 +function Italic(editor) { + this.editor = editor; + this.$elem = $('
        \n \n
        '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Italic.prototype = { + constructor: Italic, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 italic 命令 + editor.cmd.do('italic'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('italic')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + redo-menu +*/ +// 构造函数 +function Redo(editor) { + this.editor = editor; + this.$elem = $('
        \n \n
        '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Redo.prototype = { + constructor: Redo, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + + // 执行 redo 命令 + editor.cmd.do('redo'); + } +}; + +/* + strikeThrough-menu +*/ +// 构造函数 +function StrikeThrough(editor) { + this.editor = editor; + this.$elem = $('
        \n \n
        '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +StrikeThrough.prototype = { + constructor: StrikeThrough, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 strikeThrough 命令 + editor.cmd.do('strikeThrough'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('strikeThrough')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + underline-menu +*/ +// 构造函数 +function Underline(editor) { + this.editor = editor; + this.$elem = $('
        \n \n
        '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Underline.prototype = { + constructor: Underline, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + var isSeleEmpty = editor.selection.isSelectionEmpty(); + + if (isSeleEmpty) { + // 选区是空的,插入并选中一个“空白” + editor.selection.createEmptyRange(); + } + + // 执行 underline 命令 + editor.cmd.do('underline'); + + if (isSeleEmpty) { + // 需要将选取折叠起来 + editor.selection.collapseRange(); + editor.selection.restoreSelection(); + } + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('underline')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + undo-menu +*/ +// 构造函数 +function Undo(editor) { + this.editor = editor; + this.$elem = $('
        \n \n
        '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Undo.prototype = { + constructor: Undo, + + // 点击事件 + onClick: function onClick(e) { + // 点击菜单将触发这里 + + var editor = this.editor; + + // 执行 undo 命令 + editor.cmd.do('undo'); + } +}; + +/* + menu - list +*/ +// 构造函数 +function List(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
        '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 120, + $title: $('

        设置列表

        '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $(' 有序列表'), value: 'insertOrderedList' }, { $elem: $(' 无序列表'), value: 'insertUnorderedList' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 List 对象 + _this._command(value); + } + }); +} + +// 原型 +List.prototype = { + constructor: List, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + var $textElem = editor.$textElem; + editor.selection.restoreSelection(); + if (editor.cmd.queryCommandState(value)) { + return; + } + editor.cmd.do(value); + + // 验证列表是否被包裹在

        之内 + var $selectionElem = editor.selection.getSelectionContainerElem(); + if ($selectionElem.getNodeName() === 'LI') { + $selectionElem = $selectionElem.parent(); + } + if (/^ol|ul$/i.test($selectionElem.getNodeName()) === false) { + return; + } + if ($selectionElem.equal($textElem)) { + // 证明是顶级标签,没有被

        包裹 + return; + } + var $parent = $selectionElem.parent(); + if ($parent.equal($textElem)) { + // $parent 是顶级标签,不能删除 + return; + } + + $selectionElem.insertAfter($parent); + $parent.remove(); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor.cmd.queryCommandState('insertUnOrderedList') || editor.cmd.queryCommandState('insertOrderedList')) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - justify +*/ +// 构造函数 +function Justify(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('

        '); + this.type = 'droplist'; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 100, + $title: $('

        对齐方式

        '), + type: 'list', // droplist 以列表形式展示 + list: [{ $elem: $(' 靠左'), value: 'justifyLeft' }, { $elem: $(' 居中'), value: 'justifyCenter' }, { $elem: $(' 靠右'), value: 'justifyRight' }], + onClick: function onClick(value) { + // 注意 this 是指向当前的 List 对象 + _this._command(value); + } + }); +} + +// 原型 +Justify.prototype = { + constructor: Justify, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do(value); + } +}; + +/* + menu - Forecolor +*/ +// 构造函数 +function ForeColor(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
        '); + this.type = 'droplist'; + + // 获取配置的颜色 + var config = editor.config; + var colors = config.colors || []; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 120, + $title: $('

        文字颜色

        '), + type: 'inline-block', // droplist 内容以 block 形式展示 + list: colors.map(function (color) { + return { $elem: $(''), value: color }; + }), + onClick: function onClick(value) { + // 注意 this 是指向当前的 ForeColor 对象 + _this._command(value); + } + }); +} + +// 原型 +ForeColor.prototype = { + constructor: ForeColor, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('foreColor', value); + } +}; + +/* + menu - BackColor +*/ +// 构造函数 +function BackColor(editor) { + var _this = this; + + this.editor = editor; + this.$elem = $('
        '); + this.type = 'droplist'; + + // 获取配置的颜色 + var config = editor.config; + var colors = config.colors || []; + + // 当前是否 active 状态 + this._active = false; + + // 初始化 droplist + this.droplist = new DropList(this, { + width: 120, + $title: $('

        背景色

        '), + type: 'inline-block', // droplist 内容以 block 形式展示 + list: colors.map(function (color) { + return { $elem: $(''), value: color }; + }), + onClick: function onClick(value) { + // 注意 this 是指向当前的 BackColor 对象 + _this._command(value); + } + }); +} + +// 原型 +BackColor.prototype = { + constructor: BackColor, + + // 执行命令 + _command: function _command(value) { + var editor = this.editor; + editor.cmd.do('backColor', value); + } +}; + +/* + menu - quote +*/ +// 构造函数 +function Quote(editor) { + this.editor = editor; + this.$elem = $('
        \n \n
        '); + this.type = 'click'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Quote.prototype = { + constructor: Quote, + + onClick: function onClick(e) { + var editor = this.editor; + var $selectionElem = editor.selection.getSelectionContainerElem(); + var nodeName = $selectionElem.getNodeName(); + + if (!UA.isIE()) { + if (nodeName === 'BLOCKQUOTE') { + // 撤销 quote + editor.cmd.do('formatBlock', '

        '); + } else { + // 转换为 quote + editor.cmd.do('formatBlock', '

        '); + } + return; + } + + // IE 中不支持 formatBlock
        ,要用其他方式兼容 + var content = void 0, + $targetELem = void 0; + if (nodeName === 'P') { + // 将 P 转换为 quote + content = $selectionElem.text(); + $targetELem = $('
        ' + content + '
        '); + $targetELem.insertAfter($selectionElem); + $selectionElem.remove(); + return; + } + if (nodeName === 'BLOCKQUOTE') { + // 撤销 quote + content = $selectionElem.text(); + $targetELem = $('

        ' + content + '

        '); + $targetELem.insertAfter($selectionElem); + $selectionElem.remove(); + } + }, + + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var reg = /^BLOCKQUOTE$/i; + var cmdValue = editor.cmd.queryCommandValue('formatBlock'); + if (reg.test(cmdValue)) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - code +*/ +// 构造函数 +function Code(editor) { + this.editor = editor; + this.$elem = $('
        \n \n
        '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Code.prototype = { + constructor: Code, + + onClick: function onClick(e) { + var editor = this.editor; + var $startElem = editor.selection.getSelectionStartElem(); + var $endElem = editor.selection.getSelectionEndElem(); + var isSeleEmpty = editor.selection.isSelectionEmpty(); + var selectionText = editor.selection.getSelectionText(); + var $code = void 0; + + if (!$startElem.equal($endElem)) { + // 跨元素选择,不做处理 + editor.selection.restoreSelection(); + return; + } + if (!isSeleEmpty) { + // 选取不是空,用 包裹即可 + $code = $('' + selectionText + ''); + editor.cmd.do('insertElem', $code); + editor.selection.createRangeByElem($code, false); + editor.selection.restoreSelection(); + return; + } + + // 选取是空,且没有夸元素选择,则插入
        
        +        if (this._active) {
        +            // 选中状态,将编辑内容
        +            this._createPanel($startElem.html());
        +        } else {
        +            // 未选中状态,将创建内容
        +            this._createPanel();
        +        }
        +    },
        +
        +    _createPanel: function _createPanel(value) {
        +        var _this = this;
        +
        +        // value - 要编辑的内容
        +        value = value || '';
        +        var type = !value ? 'new' : 'edit';
        +        var textId = getRandom('texxt');
        +        var btnId = getRandom('btn');
        +
        +        var panel = new Panel(this, {
        +            width: 500,
        +            // 一个 Panel 包含多个 tab
        +            tabs: [{
        +                // 标题
        +                title: '插入代码',
        +                // 模板
        +                tpl: '
        \n \n
        \n \n
        \n
        ', + // 事件绑定 + events: [ + // 插入代码 + { + selector: '#' + btnId, + type: 'click', + fn: function fn() { + var $text = $('#' + textId); + var text = $text.val() || $text.html(); + text = replaceHtmlSymbol(text); + if (type === 'new') { + // 新插入 + _this._insertCode(text); + } else { + // 编辑更新 + _this._updateCode(text); + } + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // first tab end + ] // tabs end + }); // new Panel end + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入代码 + _insertCode: function _insertCode(value) { + var editor = this.editor; + editor.cmd.do('insertHTML', '
        ' + value + '


        '); + }, + + // 更新代码 + _updateCode: function _updateCode(value) { + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + $selectionELem.html(value); + editor.selection.restoreSelection(); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var $parentElem = $selectionELem.parent(); + if ($selectionELem.getNodeName() === 'CODE' && $parentElem.getNodeName() === 'PRE') { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - emoticon +*/ +// 构造函数 +function Emoticon(editor) { + this.editor = editor; + this.$elem = $('
        \n \n
        '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Emoticon.prototype = { + constructor: Emoticon, + + onClick: function onClick() { + this._createPanel(); + }, + + _createPanel: function _createPanel() { + var _this = this; + + var editor = this.editor; + var config = editor.config; + // 获取表情配置 + var emotions = config.emotions || []; + + // 创建表情 dropPanel 的配置 + var tabConfig = []; + emotions.forEach(function (emotData) { + var emotType = emotData.type; + var content = emotData.content || []; + + // 这一组表情最终拼接出来的 html + var faceHtml = ''; + + // emoji 表情 + if (emotType === 'emoji') { + content.forEach(function (item) { + if (item) { + faceHtml += '' + item + ''; + } + }); + } + // 图片表情 + if (emotType === 'image') { + content.forEach(function (item) { + var src = item.src; + var alt = item.alt; + if (src) { + // 加一个 data-w-e 属性,点击图片的时候不再提示编辑图片 + faceHtml += '' + alt + ''; + } + }); + } + + tabConfig.push({ + title: emotData.title, + tpl: '
        ' + faceHtml + '
        ', + events: [{ + selector: 'span.w-e-item', + type: 'click', + fn: function fn(e) { + var target = e.target; + var $target = $(target); + var nodeName = $target.getNodeName(); + + var insertHtml = void 0; + if (nodeName === 'IMG') { + // 插入图片 + insertHtml = $target.parent().html(); + } else { + // 插入 emoji + insertHtml = '' + $target.html() + ''; + } + + _this._insert(insertHtml); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + }); + }); + + var panel = new Panel(this, { + width: 300, + height: 200, + // 一个 Panel 包含多个 tab + tabs: tabConfig + }); + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入表情 + _insert: function _insert(emotHtml) { + var editor = this.editor; + editor.cmd.do('insertHTML', emotHtml); + } +}; + +/* + menu - table +*/ +// 构造函数 +function Table(editor) { + this.editor = editor; + this.$elem = $('
        '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Table.prototype = { + constructor: Table, + + onClick: function onClick() { + if (this._active) { + // 编辑现有表格 + this._createEditPanel(); + } else { + // 插入新表格 + this._createInsertPanel(); + } + }, + + // 创建插入新表格的 panel + _createInsertPanel: function _createInsertPanel() { + var _this = this; + + // 用到的 id + var btnInsertId = getRandom('btn'); + var textRowNum = getRandom('row'); + var textColNum = getRandom('col'); + + var panel = new Panel(this, { + width: 250, + // panel 包含多个 tab + tabs: [{ + // 标题 + title: '插入表格', + // 模板 + tpl: '
        \n

        \n \u521B\u5EFA\n \n \u884C\n \n \u5217\u7684\u8868\u683C\n

        \n
        \n \n
        \n
        ', + // 事件绑定 + events: [{ + // 点击按钮,插入表格 + selector: '#' + btnInsertId, + type: 'click', + fn: function fn() { + var rowNum = parseInt($('#' + textRowNum).val()); + var colNum = parseInt($('#' + textColNum).val()); + + if (rowNum && colNum && rowNum > 0 && colNum > 0) { + // form 数据有效 + _this._insert(rowNum, colNum); + } + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // first tab end + ] // tabs end + }); // panel end + + // 展示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入表格 + _insert: function _insert(rowNum, colNum) { + // 拼接 table 模板 + var r = void 0, + c = void 0; + var html = ''; + for (r = 0; r < rowNum; r++) { + html += ''; + if (r === 0) { + for (c = 0; c < colNum; c++) { + html += ''; + } + } else { + for (c = 0; c < colNum; c++) { + html += ''; + } + } + html += ''; + } + html += '
          


        '; + + // 执行命令 + var editor = this.editor; + editor.cmd.do('insertHTML', html); + + // 防止 firefox 下出现 resize 的控制点 + editor.cmd.do('enableObjectResizing', false); + editor.cmd.do('enableInlineTableEditing', false); + }, + + // 创建编辑表格的 panel + _createEditPanel: function _createEditPanel() { + var _this2 = this; + + // 可用的 id + var addRowBtnId = getRandom('add-row'); + var addColBtnId = getRandom('add-col'); + var delRowBtnId = getRandom('del-row'); + var delColBtnId = getRandom('del-col'); + var delTableBtnId = getRandom('del-table'); + + // 创建 panel 对象 + var panel = new Panel(this, { + width: 320, + // panel 包含多个 tab + tabs: [{ + // 标题 + title: '编辑表格', + // 模板 + tpl: '
        \n
        \n \n \n \n \n
        \n
        \n \n \n
        ', + // 事件绑定 + events: [{ + // 增加行 + selector: '#' + addRowBtnId, + type: 'click', + fn: function fn() { + _this2._addRow(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 增加列 + selector: '#' + addColBtnId, + type: 'click', + fn: function fn() { + _this2._addCol(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 删除行 + selector: '#' + delRowBtnId, + type: 'click', + fn: function fn() { + _this2._delRow(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 删除列 + selector: '#' + delColBtnId, + type: 'click', + fn: function fn() { + _this2._delCol(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + // 删除表格 + selector: '#' + delTableBtnId, + type: 'click', + fn: function fn() { + _this2._delTable(); + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + }] + }); + // 显示 panel + panel.show(); + }, + + // 获取选中的单元格的位置信息 + _getLocationData: function _getLocationData() { + var result = {}; + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var nodeName = $selectionELem.getNodeName(); + if (nodeName !== 'TD' && nodeName !== 'TH') { + return; + } + + // 获取 td index + var $tr = $selectionELem.parent(); + var $tds = $tr.children(); + var tdLength = $tds.length; + $tds.forEach(function (td, index) { + if (td === $selectionELem[0]) { + // 记录并跳出循环 + result.td = { + index: index, + elem: td, + length: tdLength + }; + return false; + } + }); + + // 获取 tr index + var $tbody = $tr.parent(); + var $trs = $tbody.children(); + var trLength = $trs.length; + $trs.forEach(function (tr, index) { + if (tr === $tr[0]) { + // 记录并跳出循环 + result.tr = { + index: index, + elem: tr, + length: trLength + }; + return false; + } + }); + + // 返回结果 + return result; + }, + + // 增加行 + _addRow: function _addRow() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var $currentTr = $(trData.elem); + var tdData = locationData.td; + var tdLength = tdData.length; + + // 拼接即将插入的字符串 + var newTr = document.createElement('tr'); + var tpl = '', + i = void 0; + for (i = 0; i < tdLength; i++) { + tpl += ' '; + } + newTr.innerHTML = tpl; + // 插入 + $(newTr).insertAfter($currentTr); + }, + + // 增加列 + _addCol: function _addCol() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var tdData = locationData.td; + var tdIndex = tdData.index; + var $currentTr = $(trData.elem); + var $trParent = $currentTr.parent(); + var $trs = $trParent.children(); + + // 遍历所有行 + $trs.forEach(function (tr) { + var $tr = $(tr); + var $tds = $tr.children(); + var $currentTd = $tds.get(tdIndex); + var name = $currentTd.getNodeName().toLowerCase(); + + // new 一个 td,并插入 + var newTd = document.createElement(name); + $(newTd).insertAfter($currentTd); + }); + }, + + // 删除行 + _delRow: function _delRow() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var $currentTr = $(trData.elem); + $currentTr.remove(); + }, + + // 删除列 + _delCol: function _delCol() { + // 获取当前单元格的位置信息 + var locationData = this._getLocationData(); + if (!locationData) { + return; + } + var trData = locationData.tr; + var tdData = locationData.td; + var tdIndex = tdData.index; + var $currentTr = $(trData.elem); + var $trParent = $currentTr.parent(); + var $trs = $trParent.children(); + + // 遍历所有行 + $trs.forEach(function (tr) { + var $tr = $(tr); + var $tds = $tr.children(); + var $currentTd = $tds.get(tdIndex); + // 删除 + $currentTd.remove(); + }); + }, + + // 删除表格 + _delTable: function _delTable() { + var editor = this.editor; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var $table = $selectionELem.parentUntil('table'); + if (!$table) { + return; + } + $table.remove(); + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + var $selectionELem = editor.selection.getSelectionContainerElem(); + if (!$selectionELem) { + return; + } + var nodeName = $selectionELem.getNodeName(); + if (nodeName === 'TD' || nodeName === 'TH') { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + menu - video +*/ +// 构造函数 +function Video(editor) { + this.editor = editor; + this.$elem = $('
        '); + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Video.prototype = { + constructor: Video, + + onClick: function onClick() { + this._createPanel(); + }, + + _createPanel: function _createPanel() { + var _this = this; + + // 创建 id + var textValId = getRandom('text-val'); + var btnId = getRandom('btn'); + + // 创建 panel + var panel = new Panel(this, { + width: 350, + // 一个 panel 多个 tab + tabs: [{ + // 标题 + title: '插入视频', + // 模板 + tpl: '
        \n \n
        \n \n
        \n
        ', + // 事件绑定 + events: [{ + selector: '#' + btnId, + type: 'click', + fn: function fn() { + var $text = $('#' + textValId); + var val = $text.val().trim(); + + // 测试用视频地址 + // + + if (val) { + // 插入视频 + _this._insert(val); + } + + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + } // first tab end + ] // tabs end + }); // panel end + + // 显示 panel + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 插入视频 + _insert: function _insert(val) { + var editor = this.editor; + editor.cmd.do('insertHTML', val + '


        '); + } +}; + +/* + menu - img +*/ +// 构造函数 +function Image(editor) { + this.editor = editor; + var imgMenuId = getRandom('w-e-img'); + this.$elem = $('
        '); + editor.imgMenuId = imgMenuId; + this.type = 'panel'; + + // 当前是否 active 状态 + this._active = false; +} + +// 原型 +Image.prototype = { + constructor: Image, + + onClick: function onClick() { + var editor = this.editor; + var config = editor.config; + if (config.qiniu) { + return; + } + if (this._active) { + this._createEditPanel(); + } else { + this._createInsertPanel(); + } + }, + + _createEditPanel: function _createEditPanel() { + var editor = this.editor; + + // id + var width30 = getRandom('width-30'); + var width50 = getRandom('width-50'); + var width100 = getRandom('width-100'); + var delBtn = getRandom('del-btn'); + + // tab 配置 + var tabsConfig = [{ + title: '编辑图片', + tpl: '
        \n
        \n \u6700\u5927\u5BBD\u5EA6\uFF1A\n \n \n \n
        \n
        \n \n \n
        ', + events: [{ + selector: '#' + width30, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.css('max-width', '30%'); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + selector: '#' + width50, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.css('max-width', '50%'); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + selector: '#' + width100, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.css('max-width', '100%'); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }, { + selector: '#' + delBtn, + type: 'click', + fn: function fn() { + var $img = editor._selectedImg; + if ($img) { + $img.remove(); + } + // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭 + return true; + } + }] + }]; + + // 创建 panel 并显示 + var panel = new Panel(this, { + width: 300, + tabs: tabsConfig + }); + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + _createInsertPanel: function _createInsertPanel() { + var editor = this.editor; + var uploadImg = editor.uploadImg; + var config = editor.config; + + // id + var upTriggerId = getRandom('up-trigger'); + var upFileId = getRandom('up-file'); + var linkUrlId = getRandom('link-url'); + var linkBtnId = getRandom('link-btn'); + + // tabs 的配置 + var tabsConfig = [{ + title: '上传图片', + tpl: '
        \n
        \n \n
        \n
        \n \n
        \n
        ', + events: [{ + // 触发选择图片 + selector: '#' + upTriggerId, + type: 'click', + fn: function fn() { + var $file = $('#' + upFileId); + var fileElem = $file[0]; + if (fileElem) { + fileElem.click(); + } else { + // 返回 true 可关闭 panel + return true; + } + } + }, { + // 选择图片完毕 + selector: '#' + upFileId, + type: 'change', + fn: function fn() { + var $file = $('#' + upFileId); + var fileElem = $file[0]; + if (!fileElem) { + // 返回 true 可关闭 panel + return true; + } + + // 获取选中的 file 对象列表 + var fileList = fileElem.files; + if (fileList.length) { + uploadImg.uploadImg(fileList); + } + + // 返回 true 可关闭 panel + return true; + } + }] + }, // first tab end + { + title: '网络图片', + tpl: '
        \n \n
        \n \n
        \n
        ', + events: [{ + selector: '#' + linkBtnId, + type: 'click', + fn: function fn() { + var $linkUrl = $('#' + linkUrlId); + var url = $linkUrl.val().trim(); + + if (url) { + uploadImg.insertLinkImg(url); + } + + // 返回 true 表示函数执行结束之后关闭 panel + return true; + } + }] + } // second tab end + ]; // tabs end + + // 判断 tabs 的显示 + var tabsConfigResult = []; + if ((config.uploadImgShowBase64 || config.uploadImgServer || config.customUploadImg) && window.FileReader) { + // 显示“上传图片” + tabsConfigResult.push(tabsConfig[0]); + } + if (config.showLinkImg) { + // 显示“网络图片” + tabsConfigResult.push(tabsConfig[1]); + } + + // 创建 panel 并显示 + var panel = new Panel(this, { + width: 300, + tabs: tabsConfigResult + }); + panel.show(); + + // 记录属性 + this.panel = panel; + }, + + // 试图改变 active 状态 + tryChangeActive: function tryChangeActive(e) { + var editor = this.editor; + var $elem = this.$elem; + if (editor._selectedImg) { + this._active = true; + $elem.addClass('w-e-active'); + } else { + this._active = false; + $elem.removeClass('w-e-active'); + } + } +}; + +/* + 所有菜单的汇总 +*/ + +// 存储菜单的构造函数 +var MenuConstructors = {}; + +MenuConstructors.bold = Bold; + +MenuConstructors.head = Head; + +MenuConstructors.fontSize = FontSize; + +MenuConstructors.fontName = FontName; + +MenuConstructors.link = Link; + +MenuConstructors.italic = Italic; + +MenuConstructors.redo = Redo; + +MenuConstructors.strikeThrough = StrikeThrough; + +MenuConstructors.underline = Underline; + +MenuConstructors.undo = Undo; + +MenuConstructors.list = List; + +MenuConstructors.justify = Justify; + +MenuConstructors.foreColor = ForeColor; + +MenuConstructors.backColor = BackColor; + +MenuConstructors.quote = Quote; + +MenuConstructors.code = Code; + +MenuConstructors.emoticon = Emoticon; + +MenuConstructors.table = Table; + +MenuConstructors.video = Video; + +MenuConstructors.image = Image; + +/* + 菜单集合 +*/ +// 构造函数 +function Menus(editor) { + this.editor = editor; + this.menus = {}; +} + +// 修改原型 +Menus.prototype = { + constructor: Menus, + + // 初始化菜单 + init: function init() { + var _this = this; + + var editor = this.editor; + var config = editor.config || {}; + var configMenus = config.menus || []; // 获取配置中的菜单 + + // 根据配置信息,创建菜单 + configMenus.forEach(function (menuKey) { + var MenuConstructor = MenuConstructors[menuKey]; + if (MenuConstructor && typeof MenuConstructor === 'function') { + // 创建单个菜单 + _this.menus[menuKey] = new MenuConstructor(editor); + } + }); + + // 添加到菜单栏 + this._addToToolbar(); + + // 绑定事件 + this._bindEvent(); + }, + + // 添加到菜单栏 + _addToToolbar: function _addToToolbar() { + var editor = this.editor; + var $toolbarElem = editor.$toolbarElem; + var menus = this.menus; + var config = editor.config; + // config.zIndex 是配置的编辑区域的 z-index,菜单的 z-index 得在其基础上 +1 + var zIndex = config.zIndex + 1; + objForEach(menus, function (key, menu) { + var $elem = menu.$elem; + if ($elem) { + // 设置 z-index + $elem.css('z-index', zIndex); + $toolbarElem.append($elem); + } + }); + }, + + // 绑定菜单 click mouseenter 事件 + _bindEvent: function _bindEvent() { + var menus = this.menus; + var editor = this.editor; + objForEach(menus, function (key, menu) { + var type = menu.type; + if (!type) { + return; + } + var $elem = menu.$elem; + var droplist = menu.droplist; + var panel = menu.panel; + + // 点击类型,例如 bold + if (type === 'click' && menu.onClick) { + $elem.on('click', function (e) { + if (editor.selection.getRange() == null) { + return; + } + menu.onClick(e); + }); + } + + // 下拉框,例如 head + if (type === 'droplist' && droplist) { + $elem.on('mouseenter', function (e) { + if (editor.selection.getRange() == null) { + return; + } + // 显示 + droplist.showTimeoutId = setTimeout(function () { + droplist.show(); + }, 200); + }).on('mouseleave', function (e) { + // 隐藏 + droplist.hideTimeoutId = setTimeout(function () { + droplist.hide(); + }, 0); + }); + } + + // 弹框类型,例如 link + if (type === 'panel' && menu.onClick) { + $elem.on('click', function (e) { + e.stopPropagation(); + if (editor.selection.getRange() == null) { + return; + } + // 在自定义事件中显示 panel + menu.onClick(e); + }); + } + }); + }, + + // 尝试修改菜单状态 + changeActive: function changeActive() { + var menus = this.menus; + objForEach(menus, function (key, menu) { + if (menu.tryChangeActive) { + setTimeout(function () { + menu.tryChangeActive(); + }, 100); + } + }); + } +}; + +/* + 粘贴信息的处理 +*/ + +// 获取粘贴的纯文本 +function getPasteText(e) { + var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData; + var pasteText = void 0; + if (clipboardData == null) { + pasteText = window.clipboardData && window.clipboardData.getData('text'); + } else { + pasteText = clipboardData.getData('text/plain'); + } + + return replaceHtmlSymbol(pasteText); +} + +// 获取粘贴的html +function getPasteHtml(e, filterStyle, ignoreImg) { + var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData; + var pasteText = void 0, + pasteHtml = void 0; + if (clipboardData == null) { + pasteText = window.clipboardData && window.clipboardData.getData('text'); + } else { + pasteText = clipboardData.getData('text/plain'); + pasteHtml = clipboardData.getData('text/html'); + } + if (!pasteHtml && pasteText) { + pasteHtml = '

        ' + replaceHtmlSymbol(pasteText) + '

        '; + } + if (!pasteHtml) { + return; + } + + // 过滤word中状态过来的无用字符 + var docSplitHtml = pasteHtml.split(''); + if (docSplitHtml.length === 2) { + pasteHtml = docSplitHtml[0]; + } + + // 过滤无用标签 + pasteHtml = pasteHtml.replace(/<(meta|script|link).+?>/igm, ''); + // 去掉注释 + pasteHtml = pasteHtml.replace(//mg, ''); + // 过滤 data-xxx 属性 + pasteHtml = pasteHtml.replace(/\s?data-.+?=('|").+?('|")/igm, ''); + + if (ignoreImg) { + // 忽略图片 + pasteHtml = pasteHtml.replace(//igm, ''); + } + + if (filterStyle) { + // 过滤样式 + pasteHtml = pasteHtml.replace(/\s?(class|style)=('|").*?('|")/igm, ''); + } else { + // 保留样式 + pasteHtml = pasteHtml.replace(/\s?class=('|").*?('|")/igm, ''); + } + + return pasteHtml; +} + +// 获取粘贴的图片文件 +function getPasteImgs(e) { + var result = []; + var txt = getPasteText(e); + if (txt) { + // 有文字,就忽略图片 + return result; + } + + var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData || {}; + var items = clipboardData.items; + if (!items) { + return result; + } + + objForEach(items, function (key, value) { + var type = value.type; + if (/image/i.test(type)) { + result.push(value.getAsFile()); + } + }); + + return result; +} + +/* + 编辑区域 +*/ + +// 获取一个 elem.childNodes 的 JSON 数据 +function getChildrenJSON($elem) { + var result = []; + var $children = $elem.childNodes() || []; // 注意 childNodes() 可以获取文本节点 + $children.forEach(function (curElem) { + var elemResult = void 0; + var nodeType = curElem.nodeType; + + // 文本节点 + if (nodeType === 3) { + elemResult = curElem.textContent; + elemResult = replaceHtmlSymbol(elemResult); + } + + // 普通 DOM 节点 + if (nodeType === 1) { + elemResult = {}; + + // tag + elemResult.tag = curElem.nodeName.toLowerCase(); + // attr + var attrData = []; + var attrList = curElem.attributes || {}; + var attrListLength = attrList.length || 0; + for (var i = 0; i < attrListLength; i++) { + var attr = attrList[i]; + attrData.push({ + name: attr.name, + value: attr.value + }); + } + elemResult.attrs = attrData; + // children(递归) + elemResult.children = getChildrenJSON($(curElem)); + } + + result.push(elemResult); + }); + return result; +} + +// 构造函数 +function Text(editor) { + this.editor = editor; +} + +// 修改原型 +Text.prototype = { + constructor: Text, + + // 初始化 + init: function init() { + // 绑定事件 + this._bindEvent(); + }, + + // 清空内容 + clear: function clear() { + this.html('


        '); + }, + + // 获取 设置 html + html: function html(val) { + var editor = this.editor; + var $textElem = editor.$textElem; + var html = void 0; + if (val == null) { + html = $textElem.html(); + // 未选中任何内容的时候点击“加粗”或者“斜体”等按钮,就得需要一个空的占位符 ​ ,这里替换掉 + html = html.replace(/\u200b/gm, ''); + return html; + } else { + $textElem.html(val); + + // 初始化选取,将光标定位到内容尾部 + editor.initSelection(); + } + }, + + // 获取 JSON + getJSON: function getJSON() { + var editor = this.editor; + var $textElem = editor.$textElem; + return getChildrenJSON($textElem); + }, + + // 获取 设置 text + text: function text(val) { + var editor = this.editor; + var $textElem = editor.$textElem; + var text = void 0; + if (val == null) { + text = $textElem.text(); + // 未选中任何内容的时候点击“加粗”或者“斜体”等按钮,就得需要一个空的占位符 ​ ,这里替换掉 + text = text.replace(/\u200b/gm, ''); + return text; + } else { + $textElem.text('

        ' + val + '

        '); + + // 初始化选取,将光标定位到内容尾部 + editor.initSelection(); + } + }, + + // 追加内容 + append: function append(html) { + var editor = this.editor; + var $textElem = editor.$textElem; + $textElem.append($(html)); + + // 初始化选取,将光标定位到内容尾部 + editor.initSelection(); + }, + + // 绑定事件 + _bindEvent: function _bindEvent() { + // 实时保存选取 + this._saveRangeRealTime(); + + // 按回车建时的特殊处理 + this._enterKeyHandle(); + + // 清空时保留


        + this._clearHandle(); + + // 粘贴事件(粘贴文字,粘贴图片) + this._pasteHandle(); + + // tab 特殊处理 + this._tabHandle(); + + // img 点击 + this._imgHandle(); + + // 拖拽事件 + this._dragHandle(); + }, + + // 实时保存选取 + _saveRangeRealTime: function _saveRangeRealTime() { + var editor = this.editor; + var $textElem = editor.$textElem; + + // 保存当前的选区 + function saveRange(e) { + // 随时保存选区 + editor.selection.saveRange(); + // 更新按钮 ative 状态 + editor.menus.changeActive(); + } + // 按键后保存 + $textElem.on('keyup', saveRange); + $textElem.on('mousedown', function (e) { + // mousedown 状态下,鼠标滑动到编辑区域外面,也需要保存选区 + $textElem.on('mouseleave', saveRange); + }); + $textElem.on('mouseup', function (e) { + saveRange(); + // 在编辑器区域之内完成点击,取消鼠标滑动到编辑区外面的事件 + $textElem.off('mouseleave', saveRange); + }); + }, + + // 按回车键时的特殊处理 + _enterKeyHandle: function _enterKeyHandle() { + var editor = this.editor; + var $textElem = editor.$textElem; + + function insertEmptyP($selectionElem) { + var $p = $('


        '); + $p.insertBefore($selectionElem); + editor.selection.createRangeByElem($p, true); + editor.selection.restoreSelection(); + $selectionElem.remove(); + } + + // 将回车之后生成的非

        的顶级标签,改为

        + function pHandle(e) { + var $selectionElem = editor.selection.getSelectionContainerElem(); + var $parentElem = $selectionElem.parent(); + + if ($parentElem.html() === '
        ') { + // 回车之前光标所在一个

        .....

        ,忽然回车生成一个空的


        + // 而且继续回车跳不出去,因此只能特殊处理 + insertEmptyP($selectionElem); + return; + } + + if (!$parentElem.equal($textElem)) { + // 不是顶级标签 + return; + } + + var nodeName = $selectionElem.getNodeName(); + if (nodeName === 'P') { + // 当前的标签是 P ,不用做处理 + return; + } + + if ($selectionElem.text()) { + // 有内容,不做处理 + return; + } + + // 插入

        ,并将选取定位到

        ,删除当前标签 + insertEmptyP($selectionElem); + } + + $textElem.on('keyup', function (e) { + if (e.keyCode !== 13) { + // 不是回车键 + return; + } + // 将回车之后生成的非

        的顶级标签,改为

        + pHandle(e); + }); + + //

        回车时 特殊处理 + function codeHandle(e) { + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var $parentElem = $selectionElem.parent(); + var selectionNodeName = $selectionElem.getNodeName(); + var parentNodeName = $parentElem.getNodeName(); + + if (selectionNodeName !== 'CODE' || parentNodeName !== 'PRE') { + // 不符合要求 忽略 + return; + } + + if (!editor.cmd.queryCommandSupported('insertHTML')) { + // 必须原生支持 insertHTML 命令 + return; + } + + // 处理:光标定位到代码末尾,联系点击两次回车,即跳出代码块 + if (editor._willBreakCode === true) { + // 此时可以跳出代码块 + // 插入

        ,并将选取定位到

        + var $p = $('


        '); + $p.insertAfter($parentElem); + editor.selection.createRangeByElem($p, true); + editor.selection.restoreSelection(); + + // 修改状态 + editor._willBreakCode = false; + + e.preventDefault(); + return; + } + + var _startOffset = editor.selection.getRange().startOffset; + + // 处理:回车时,不能插入
        而是插入 \n ,因为是在 pre 标签里面 + editor.cmd.do('insertHTML', '\n'); + editor.selection.saveRange(); + if (editor.selection.getRange().startOffset === _startOffset) { + // 没起作用,再来一遍 + editor.cmd.do('insertHTML', '\n'); + } + + var codeLength = $selectionElem.html().length; + if (editor.selection.getRange().startOffset + 1 === codeLength) { + // 说明光标在代码最后的位置,执行了回车操作 + // 记录下来,以便下次回车时候跳出 code + editor._willBreakCode = true; + } + + // 阻止默认行为 + e.preventDefault(); + } + + $textElem.on('keydown', function (e) { + if (e.keyCode !== 13) { + // 不是回车键 + // 取消即将跳转代码块的记录 + editor._willBreakCode = false; + return; + } + //
        回车时 特殊处理 + codeHandle(e); + }); + }, + + // 清空时保留


        + _clearHandle: function _clearHandle() { + var editor = this.editor; + var $textElem = editor.$textElem; + + $textElem.on('keydown', function (e) { + if (e.keyCode !== 8) { + return; + } + var txtHtml = $textElem.html().toLowerCase().trim(); + if (txtHtml === '


        ') { + // 最后剩下一个空行,就不再删除了 + e.preventDefault(); + return; + } + }); + + $textElem.on('keyup', function (e) { + if (e.keyCode !== 8) { + return; + } + var $p = void 0; + var txtHtml = $textElem.html().toLowerCase().trim(); + + // firefox 时用 txtHtml === '
        ' 判断,其他用 !txtHtml 判断 + if (!txtHtml || txtHtml === '
        ') { + // 内容空了 + $p = $('


        '); + $textElem.html(''); // 一定要先清空,否则在 firefox 下有问题 + $textElem.append($p); + editor.selection.createRangeByElem($p, false, true); + editor.selection.restoreSelection(); + } + }); + }, + + // 粘贴事件(粘贴文字 粘贴图片) + _pasteHandle: function _pasteHandle() { + var editor = this.editor; + var config = editor.config; + var pasteFilterStyle = config.pasteFilterStyle; + var pasteTextHandle = config.pasteTextHandle; + var ignoreImg = config.pasteIgnoreImg; + var $textElem = editor.$textElem; + + // 粘贴图片、文本的事件,每次只能执行一个 + // 判断该次粘贴事件是否可以执行 + var pasteTime = 0; + function canDo() { + var now = Date.now(); + var flag = false; + if (now - pasteTime >= 100) { + // 间隔大于 100 ms ,可以执行 + flag = true; + } + pasteTime = now; + return flag; + } + function resetTime() { + pasteTime = 0; + } + + // 粘贴文字 + $textElem.on('paste', function (e) { + if (UA.isIE()) { + return; + } else { + // 阻止默认行为,使用 execCommand 的粘贴命令 + e.preventDefault(); + } + + // 粘贴图片和文本,只能同时使用一个 + if (!canDo()) { + return; + } + + // 获取粘贴的文字 + var pasteHtml = getPasteHtml(e, pasteFilterStyle, ignoreImg); + var pasteText = getPasteText(e); + pasteText = pasteText.replace(/\n/gm, '
        '); + + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var nodeName = $selectionElem.getNodeName(); + + // code 中只能粘贴纯文本 + if (nodeName === 'CODE' || nodeName === 'PRE') { + if (pasteTextHandle && isFunction(pasteTextHandle)) { + // 用户自定义过滤处理粘贴内容 + pasteText = '' + (pasteTextHandle(pasteText) || ''); + } + editor.cmd.do('insertHTML', '

        ' + pasteText + '

        '); + return; + } + + // 先放开注释,有问题再追查 ———— + // // 表格中忽略,可能会出现异常问题 + // if (nodeName === 'TD' || nodeName === 'TH') { + // return + // } + + if (!pasteHtml) { + // 没有内容,可继续执行下面的图片粘贴 + resetTime(); + return; + } + try { + // firefox 中,获取的 pasteHtml 可能是没有
          包裹的
        • + // 因此执行 insertHTML 会报错 + if (pasteTextHandle && isFunction(pasteTextHandle)) { + // 用户自定义过滤处理粘贴内容 + pasteHtml = '' + (pasteTextHandle(pasteHtml) || ''); + } + editor.cmd.do('insertHTML', pasteHtml); + } catch (ex) { + // 此时使用 pasteText 来兼容一下 + if (pasteTextHandle && isFunction(pasteTextHandle)) { + // 用户自定义过滤处理粘贴内容 + pasteText = '' + (pasteTextHandle(pasteText) || ''); + } + editor.cmd.do('insertHTML', '

          ' + pasteText + '

          '); + } + }); + + // 粘贴图片 + $textElem.on('paste', function (e) { + if (UA.isIE()) { + return; + } else { + e.preventDefault(); + } + + // 粘贴图片和文本,只能同时使用一个 + if (!canDo()) { + return; + } + + // 获取粘贴的图片 + var pasteFiles = getPasteImgs(e); + if (!pasteFiles || !pasteFiles.length) { + return; + } + + // 获取当前的元素 + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var nodeName = $selectionElem.getNodeName(); + + // code 中粘贴忽略 + if (nodeName === 'CODE' || nodeName === 'PRE') { + return; + } + + // 上传图片 + var uploadImg = editor.uploadImg; + uploadImg.uploadImg(pasteFiles); + }); + }, + + // tab 特殊处理 + _tabHandle: function _tabHandle() { + var editor = this.editor; + var $textElem = editor.$textElem; + + $textElem.on('keydown', function (e) { + if (e.keyCode !== 9) { + return; + } + if (!editor.cmd.queryCommandSupported('insertHTML')) { + // 必须原生支持 insertHTML 命令 + return; + } + var $selectionElem = editor.selection.getSelectionContainerElem(); + if (!$selectionElem) { + return; + } + var $parentElem = $selectionElem.parent(); + var selectionNodeName = $selectionElem.getNodeName(); + var parentNodeName = $parentElem.getNodeName(); + + if (selectionNodeName === 'CODE' && parentNodeName === 'PRE') { + //
           里面
          +                editor.cmd.do('insertHTML', '    ');
          +            } else {
          +                // 普通文字
          +                editor.cmd.do('insertHTML', '    ');
          +            }
          +
          +            e.preventDefault();
          +        });
          +    },
          +
          +    // img 点击
          +    _imgHandle: function _imgHandle() {
          +        var editor = this.editor;
          +        var $textElem = editor.$textElem;
          +
          +        // 为图片增加 selected 样式
          +        $textElem.on('click', 'img', function (e) {
          +            var img = this;
          +            var $img = $(img);
          +
          +            if ($img.attr('data-w-e') === '1') {
          +                // 是表情图片,忽略
          +                return;
          +            }
          +
          +            // 记录当前点击过的图片
          +            editor._selectedImg = $img;
          +
          +            // 修改选区并 restore ,防止用户此时点击退格键,会删除其他内容
          +            editor.selection.createRangeByElem($img);
          +            editor.selection.restoreSelection();
          +        });
          +
          +        // 去掉图片的 selected 样式
          +        $textElem.on('click  keyup', function (e) {
          +            if (e.target.matches('img')) {
          +                // 点击的是图片,忽略
          +                return;
          +            }
          +            // 删除记录
          +            editor._selectedImg = null;
          +        });
          +    },
          +
          +    // 拖拽事件
          +    _dragHandle: function _dragHandle() {
          +        var editor = this.editor;
          +
          +        // 禁用 document 拖拽事件
          +        var $document = $(document);
          +        $document.on('dragleave drop dragenter dragover', function (e) {
          +            e.preventDefault();
          +        });
          +
          +        // 添加编辑区域拖拽事件
          +        var $textElem = editor.$textElem;
          +        $textElem.on('drop', function (e) {
          +            e.preventDefault();
          +            var files = e.dataTransfer && e.dataTransfer.files;
          +            if (!files || !files.length) {
          +                return;
          +            }
          +
          +            // 上传图片
          +            var uploadImg = editor.uploadImg;
          +            uploadImg.uploadImg(files);
          +        });
          +    }
          +};
          +
          +/*
          +    命令,封装 document.execCommand
          +*/
          +
          +// 构造函数
          +function Command(editor) {
          +    this.editor = editor;
          +}
          +
          +// 修改原型
          +Command.prototype = {
          +    constructor: Command,
          +
          +    // 执行命令
          +    do: function _do(name, value) {
          +        var editor = this.editor;
          +
          +        // 使用 styleWithCSS
          +        if (!editor._useStyleWithCSS) {
          +            document.execCommand('styleWithCSS', null, true);
          +            editor._useStyleWithCSS = true;
          +        }
          +
          +        // 如果无选区,忽略
          +        if (!editor.selection.getRange()) {
          +            return;
          +        }
          +
          +        // 恢复选取
          +        editor.selection.restoreSelection();
          +
          +        // 执行
          +        var _name = '_' + name;
          +        if (this[_name]) {
          +            // 有自定义事件
          +            this[_name](value);
          +        } else {
          +            // 默认 command
          +            this._execCommand(name, value);
          +        }
          +
          +        // 修改菜单状态
          +        editor.menus.changeActive();
          +
          +        // 最后,恢复选取保证光标在原来的位置闪烁
          +        editor.selection.saveRange();
          +        editor.selection.restoreSelection();
          +
          +        // 触发 onchange
          +        editor.change && editor.change();
          +    },
          +
          +    // 自定义 insertHTML 事件
          +    _insertHTML: function _insertHTML(html) {
          +        var editor = this.editor;
          +        var range = editor.selection.getRange();
          +
          +        if (this.queryCommandSupported('insertHTML')) {
          +            // W3C
          +            this._execCommand('insertHTML', html);
          +        } else if (range.insertNode) {
          +            // IE
          +            range.deleteContents();
          +            range.insertNode($(html)[0]);
          +        } else if (range.pasteHTML) {
          +            // IE <= 10
          +            range.pasteHTML(html);
          +        }
          +    },
          +
          +    // 插入 elem
          +    _insertElem: function _insertElem($elem) {
          +        var editor = this.editor;
          +        var range = editor.selection.getRange();
          +
          +        if (range.insertNode) {
          +            range.deleteContents();
          +            range.insertNode($elem[0]);
          +        }
          +    },
          +
          +    // 封装 execCommand
          +    _execCommand: function _execCommand(name, value) {
          +        document.execCommand(name, false, value);
          +    },
          +
          +    // 封装 document.queryCommandValue
          +    queryCommandValue: function queryCommandValue(name) {
          +        return document.queryCommandValue(name);
          +    },
          +
          +    // 封装 document.queryCommandState
          +    queryCommandState: function queryCommandState(name) {
          +        return document.queryCommandState(name);
          +    },
          +
          +    // 封装 document.queryCommandSupported
          +    queryCommandSupported: function queryCommandSupported(name) {
          +        return document.queryCommandSupported(name);
          +    }
          +};
          +
          +/*
          +    selection range API
          +*/
          +
          +// 构造函数
          +function API(editor) {
          +    this.editor = editor;
          +    this._currentRange = null;
          +}
          +
          +// 修改原型
          +API.prototype = {
          +    constructor: API,
          +
          +    // 获取 range 对象
          +    getRange: function getRange() {
          +        return this._currentRange;
          +    },
          +
          +    // 保存选区
          +    saveRange: function saveRange(_range) {
          +        if (_range) {
          +            // 保存已有选区
          +            this._currentRange = _range;
          +            return;
          +        }
          +
          +        // 获取当前的选区
          +        var selection = window.getSelection();
          +        if (selection.rangeCount === 0) {
          +            return;
          +        }
          +        var range = selection.getRangeAt(0);
          +
          +        // 判断选区内容是否在编辑内容之内
          +        var $containerElem = this.getSelectionContainerElem(range);
          +        if (!$containerElem) {
          +            return;
          +        }
          +
          +        // 判断选区内容是否在不可编辑区域之内
          +        if ($containerElem.attr('contenteditable') === 'false' || $containerElem.parentUntil('[contenteditable=false]')) {
          +            return;
          +        }
          +
          +        var editor = this.editor;
          +        var $textElem = editor.$textElem;
          +        if ($textElem.isContain($containerElem)) {
          +            // 是编辑内容之内的
          +            this._currentRange = range;
          +        }
          +    },
          +
          +    // 折叠选区
          +    collapseRange: function collapseRange(toStart) {
          +        if (toStart == null) {
          +            // 默认为 false
          +            toStart = false;
          +        }
          +        var range = this._currentRange;
          +        if (range) {
          +            range.collapse(toStart);
          +        }
          +    },
          +
          +    // 选中区域的文字
          +    getSelectionText: function getSelectionText() {
          +        var range = this._currentRange;
          +        if (range) {
          +            return this._currentRange.toString();
          +        } else {
          +            return '';
          +        }
          +    },
          +
          +    // 选区的 $Elem
          +    getSelectionContainerElem: function getSelectionContainerElem(range) {
          +        range = range || this._currentRange;
          +        var elem = void 0;
          +        if (range) {
          +            elem = range.commonAncestorContainer;
          +            return $(elem.nodeType === 1 ? elem : elem.parentNode);
          +        }
          +    },
          +    getSelectionStartElem: function getSelectionStartElem(range) {
          +        range = range || this._currentRange;
          +        var elem = void 0;
          +        if (range) {
          +            elem = range.startContainer;
          +            return $(elem.nodeType === 1 ? elem : elem.parentNode);
          +        }
          +    },
          +    getSelectionEndElem: function getSelectionEndElem(range) {
          +        range = range || this._currentRange;
          +        var elem = void 0;
          +        if (range) {
          +            elem = range.endContainer;
          +            return $(elem.nodeType === 1 ? elem : elem.parentNode);
          +        }
          +    },
          +
          +    // 选区是否为空
          +    isSelectionEmpty: function isSelectionEmpty() {
          +        var range = this._currentRange;
          +        if (range && range.startContainer) {
          +            if (range.startContainer === range.endContainer) {
          +                if (range.startOffset === range.endOffset) {
          +                    return true;
          +                }
          +            }
          +        }
          +        return false;
          +    },
          +
          +    // 恢复选区
          +    restoreSelection: function restoreSelection() {
          +        var selection = window.getSelection();
          +        selection.removeAllRanges();
          +        selection.addRange(this._currentRange);
          +    },
          +
          +    // 创建一个空白(即 ​ 字符)选区
          +    createEmptyRange: function createEmptyRange() {
          +        var editor = this.editor;
          +        var range = this.getRange();
          +        var $elem = void 0;
          +
          +        if (!range) {
          +            // 当前无 range
          +            return;
          +        }
          +        if (!this.isSelectionEmpty()) {
          +            // 当前选区必须没有内容才可以
          +            return;
          +        }
          +
          +        try {
          +            // 目前只支持 webkit 内核
          +            if (UA.isWebkit()) {
          +                // 插入 ​
          +                editor.cmd.do('insertHTML', '​');
          +                // 修改 offset 位置
          +                range.setEnd(range.endContainer, range.endOffset + 1);
          +                // 存储
          +                this.saveRange(range);
          +            } else {
          +                $elem = $('');
          +                editor.cmd.do('insertElem', $elem);
          +                this.createRangeByElem($elem, true);
          +            }
          +        } catch (ex) {
          +            // 部分情况下会报错,兼容一下
          +        }
          +    },
          +
          +    // 根据 $Elem 设置选区
          +    createRangeByElem: function createRangeByElem($elem, toStart, isContent) {
          +        // $elem - 经过封装的 elem
          +        // toStart - true 开始位置,false 结束位置
          +        // isContent - 是否选中Elem的内容
          +        if (!$elem.length) {
          +            return;
          +        }
          +
          +        var elem = $elem[0];
          +        var range = document.createRange();
          +
          +        if (isContent) {
          +            range.selectNodeContents(elem);
          +        } else {
          +            range.selectNode(elem);
          +        }
          +
          +        if (typeof toStart === 'boolean') {
          +            range.collapse(toStart);
          +        }
          +
          +        // 存储 range
          +        this.saveRange(range);
          +    }
          +};
          +
          +/*
          +    上传进度条
          +*/
          +
          +function Progress(editor) {
          +    this.editor = editor;
          +    this._time = 0;
          +    this._isShow = false;
          +    this._isRender = false;
          +    this._timeoutId = 0;
          +    this.$textContainer = editor.$textContainerElem;
          +    this.$bar = $('
          '); +} + +Progress.prototype = { + constructor: Progress, + + show: function show(progress) { + var _this = this; + + // 状态处理 + if (this._isShow) { + return; + } + this._isShow = true; + + // 渲染 + var $bar = this.$bar; + if (!this._isRender) { + var $textContainer = this.$textContainer; + $textContainer.append($bar); + } else { + this._isRender = true; + } + + // 改变进度(节流,100ms 渲染一次) + if (Date.now() - this._time > 100) { + if (progress <= 1) { + $bar.css('width', progress * 100 + '%'); + this._time = Date.now(); + } + } + + // 隐藏 + var timeoutId = this._timeoutId; + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function () { + _this._hide(); + }, 500); + }, + + _hide: function _hide() { + var $bar = this.$bar; + $bar.remove(); + + // 修改状态 + this._time = 0; + this._isShow = false; + this._isRender = false; + } +}; + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; +} : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; +}; + +/* + 上传图片 +*/ + +// 构造函数 +function UploadImg(editor) { + this.editor = editor; +} + +// 原型 +UploadImg.prototype = { + constructor: UploadImg, + + // 根据 debug 弹出不同的信息 + _alert: function _alert(alertInfo, debugInfo) { + var editor = this.editor; + var debug = editor.config.debug; + var customAlert = editor.config.customAlert; + + if (debug) { + throw new Error('wangEditor: ' + (debugInfo || alertInfo)); + } else { + if (customAlert && typeof customAlert === 'function') { + customAlert(alertInfo); + } else { + alert(alertInfo); + } + } + }, + + // 根据链接插入图片 + insertLinkImg: function insertLinkImg(link) { + var _this2 = this; + + if (!link) { + return; + } + var editor = this.editor; + var config = editor.config; + + // 校验格式 + var linkImgCheck = config.linkImgCheck; + var checkResult = void 0; + if (linkImgCheck && typeof linkImgCheck === 'function') { + checkResult = linkImgCheck(link); + if (typeof checkResult === 'string') { + // 校验失败,提示信息 + alert(checkResult); + return; + } + } + + editor.cmd.do('insertHTML', ''); + + // 验证图片 url 是否有效,无效的话给出提示 + var img = document.createElement('img'); + img.onload = function () { + var callback = config.linkImgCallback; + if (callback && typeof callback === 'function') { + callback(link); + } + + img = null; + }; + img.onerror = function () { + img = null; + // 无法成功下载图片 + _this2._alert('插入图片错误', 'wangEditor: \u63D2\u5165\u56FE\u7247\u51FA\u9519\uFF0C\u56FE\u7247\u94FE\u63A5\u662F "' + link + '"\uFF0C\u4E0B\u8F7D\u8BE5\u94FE\u63A5\u5931\u8D25'); + return; + }; + img.onabort = function () { + img = null; + }; + img.src = link; + }, + + // 上传图片 + uploadImg: function uploadImg(files) { + var _this3 = this; + + if (!files || !files.length) { + return; + } + + // ------------------------------ 获取配置信息 ------------------------------ + var editor = this.editor; + var config = editor.config; + var uploadImgServer = config.uploadImgServer; + var uploadImgShowBase64 = config.uploadImgShowBase64; + + var maxSize = config.uploadImgMaxSize; + var maxSizeM = maxSize / 1024 / 1024; + var maxLength = config.uploadImgMaxLength || 10000; + var uploadFileName = config.uploadFileName || ''; + var uploadImgParams = config.uploadImgParams || {}; + var uploadImgParamsWithUrl = config.uploadImgParamsWithUrl; + var uploadImgHeaders = config.uploadImgHeaders || {}; + var hooks = config.uploadImgHooks || {}; + var timeout = config.uploadImgTimeout || 3000; + var withCredentials = config.withCredentials; + if (withCredentials == null) { + withCredentials = false; + } + var customUploadImg = config.customUploadImg; + + if (!customUploadImg) { + // 没有 customUploadImg 的情况下,需要如下两个配置才能继续进行图片上传 + if (!uploadImgServer && !uploadImgShowBase64) { + return; + } + } + + // ------------------------------ 验证文件信息 ------------------------------ + var resultFiles = []; + var errInfo = []; + arrForEach(files, function (file) { + var name = file.name; + var size = file.size; + + // chrome 低版本 name === undefined + if (!name || !size) { + return; + } + + if (/\.(jpg|jpeg|png|bmp|gif|webp)$/i.test(name) === false) { + // 后缀名不合法,不是图片 + errInfo.push('\u3010' + name + '\u3011\u4E0D\u662F\u56FE\u7247'); + return; + } + if (maxSize < size) { + // 上传图片过大 + errInfo.push('\u3010' + name + '\u3011\u5927\u4E8E ' + maxSizeM + 'M'); + return; + } + + // 验证通过的加入结果列表 + resultFiles.push(file); + }); + // 抛出验证信息 + if (errInfo.length) { + this._alert('图片验证未通过: \n' + errInfo.join('\n')); + return; + } + if (resultFiles.length > maxLength) { + this._alert('一次最多上传' + maxLength + '张图片'); + return; + } + + // ------------------------------ 自定义上传 ------------------------------ + if (customUploadImg && typeof customUploadImg === 'function') { + customUploadImg(resultFiles, this.insertLinkImg.bind(this)); + + // 阻止以下代码执行 + return; + } + + // 添加图片数据 + var formdata = new FormData(); + arrForEach(resultFiles, function (file) { + var name = uploadFileName || file.name; + formdata.append(name, file); + }); + + // ------------------------------ 上传图片 ------------------------------ + if (uploadImgServer && typeof uploadImgServer === 'string') { + // 添加参数 + var uploadImgServerArr = uploadImgServer.split('#'); + uploadImgServer = uploadImgServerArr[0]; + var uploadImgServerHash = uploadImgServerArr[1] || ''; + objForEach(uploadImgParams, function (key, val) { + // 因使用者反应,自定义参数不能默认 encode ,由 v3.1.1 版本开始注释掉 + // val = encodeURIComponent(val) + + // 第一,将参数拼接到 url 中 + if (uploadImgParamsWithUrl) { + if (uploadImgServer.indexOf('?') > 0) { + uploadImgServer += '&'; + } else { + uploadImgServer += '?'; + } + uploadImgServer = uploadImgServer + key + '=' + val; + } + + // 第二,将参数添加到 formdata 中 + formdata.append(key, val); + }); + if (uploadImgServerHash) { + uploadImgServer += '#' + uploadImgServerHash; + } + + // 定义 xhr + var xhr = new XMLHttpRequest(); + xhr.open('POST', uploadImgServer); + + // 设置超时 + xhr.timeout = timeout; + xhr.ontimeout = function () { + // hook - timeout + if (hooks.timeout && typeof hooks.timeout === 'function') { + hooks.timeout(xhr, editor); + } + + _this3._alert('上传图片超时'); + }; + + // 监控 progress + if (xhr.upload) { + xhr.upload.onprogress = function (e) { + var percent = void 0; + // 进度条 + var progressBar = new Progress(editor); + if (e.lengthComputable) { + percent = e.loaded / e.total; + progressBar.show(percent); + } + }; + } + + // 返回数据 + xhr.onreadystatechange = function () { + var result = void 0; + if (xhr.readyState === 4) { + if (xhr.status < 200 || xhr.status >= 300) { + // hook - error + if (hooks.error && typeof hooks.error === 'function') { + hooks.error(xhr, editor); + } + + // xhr 返回状态错误 + _this3._alert('上传图片发生错误', '\u4E0A\u4F20\u56FE\u7247\u53D1\u751F\u9519\u8BEF\uFF0C\u670D\u52A1\u5668\u8FD4\u56DE\u72B6\u6001\u662F ' + xhr.status); + return; + } + + result = xhr.responseText; + if ((typeof result === 'undefined' ? 'undefined' : _typeof(result)) !== 'object') { + try { + result = JSON.parse(result); + } catch (ex) { + // hook - fail + if (hooks.fail && typeof hooks.fail === 'function') { + hooks.fail(xhr, editor, result); + } + + _this3._alert('上传图片失败', '上传图片返回结果错误,返回结果是: ' + result); + return; + } + } + if (!hooks.customInsert && result.errno != '0') { + // hook - fail + if (hooks.fail && typeof hooks.fail === 'function') { + hooks.fail(xhr, editor, result); + } + + // 数据错误 + _this3._alert('上传图片失败', '上传图片返回结果错误,返回结果 errno=' + result.errno); + } else { + if (hooks.customInsert && typeof hooks.customInsert === 'function') { + // 使用者自定义插入方法 + hooks.customInsert(_this3.insertLinkImg.bind(_this3), result, editor); + } else { + // 将图片插入编辑器 + var data = result.data || []; + data.forEach(function (link) { + _this3.insertLinkImg(link); + }); + } + + // hook - success + if (hooks.success && typeof hooks.success === 'function') { + hooks.success(xhr, editor, result); + } + } + } + }; + + // hook - before + if (hooks.before && typeof hooks.before === 'function') { + var beforeResult = hooks.before(xhr, editor, resultFiles); + if (beforeResult && (typeof beforeResult === 'undefined' ? 'undefined' : _typeof(beforeResult)) === 'object') { + if (beforeResult.prevent) { + // 如果返回的结果是 {prevent: true, msg: 'xxxx'} 则表示用户放弃上传 + this._alert(beforeResult.msg); + return; + } + } + } + + // 自定义 headers + objForEach(uploadImgHeaders, function (key, val) { + xhr.setRequestHeader(key, val); + }); + + // 跨域传 cookie + xhr.withCredentials = withCredentials; + + // 发送请求 + xhr.send(formdata); + + // 注意,要 return 。不去操作接下来的 base64 显示方式 + return; + } + + // ------------------------------ 显示 base64 格式 ------------------------------ + if (uploadImgShowBase64) { + arrForEach(files, function (file) { + var _this = _this3; + var reader = new FileReader(); + reader.readAsDataURL(file); + reader.onload = function () { + _this.insertLinkImg(this.result); + }; + }); + } + } +}; + +/* + 编辑器构造函数 +*/ + +// id,累加 +var editorId = 1; + +// 构造函数 +function Editor(toolbarSelector, textSelector) { + if (toolbarSelector == null) { + // 没有传入任何参数,报错 + throw new Error('错误:初始化编辑器时候未传入任何参数,请查阅文档'); + } + // id,用以区分单个页面不同的编辑器对象 + this.id = 'wangEditor-' + editorId++; + + this.toolbarSelector = toolbarSelector; + this.textSelector = textSelector; + + // 自定义配置 + this.customConfig = {}; +} + +// 修改原型 +Editor.prototype = { + constructor: Editor, + + // 初始化配置 + _initConfig: function _initConfig() { + // _config 是默认配置,this.customConfig 是用户自定义配置,将它们 merge 之后再赋值 + var target = {}; + this.config = Object.assign(target, config, this.customConfig); + + // 将语言配置,生成正则表达式 + var langConfig = this.config.lang || {}; + var langArgs = []; + objForEach(langConfig, function (key, val) { + // key 即需要生成正则表达式的规则,如“插入链接” + // val 即需要被替换成的语言,如“insert link” + langArgs.push({ + reg: new RegExp(key, 'img'), + val: val + + }); + }); + this.config.langArgs = langArgs; + }, + + // 初始化 DOM + _initDom: function _initDom() { + var _this = this; + + var toolbarSelector = this.toolbarSelector; + var $toolbarSelector = $(toolbarSelector); + var textSelector = this.textSelector; + + var config$$1 = this.config; + var zIndex = config$$1.zIndex; + + // 定义变量 + var $toolbarElem = void 0, + $textContainerElem = void 0, + $textElem = void 0, + $children = void 0; + + if (textSelector == null) { + // 只传入一个参数,即是容器的选择器或元素,toolbar 和 text 的元素自行创建 + $toolbarElem = $('
          '); + $textContainerElem = $('
          '); + + // 将编辑器区域原有的内容,暂存起来 + $children = $toolbarSelector.children(); + + // 添加到 DOM 结构中 + $toolbarSelector.append($toolbarElem).append($textContainerElem); + + // 自行创建的,需要配置默认的样式 + $toolbarElem.css('background-color', '#f1f1f1').css('border', '1px solid #ccc'); + $textContainerElem.css('border', '1px solid #ccc').css('border-top', 'none').css('height', '300px'); + } else { + // toolbar 和 text 的选择器都有值,记录属性 + $toolbarElem = $toolbarSelector; + $textContainerElem = $(textSelector); + // 将编辑器区域原有的内容,暂存起来 + $children = $textContainerElem.children(); + } + + // 编辑区域 + $textElem = $('
          '); + $textElem.attr('contenteditable', 'true').css('width', '100%').css('height', '100%'); + + // 初始化编辑区域内容 + if ($children && $children.length) { + $textElem.append($children); + } else { + $textElem.append($('


          ')); + } + + // 编辑区域加入DOM + $textContainerElem.append($textElem); + + // 设置通用的 class + $toolbarElem.addClass('w-e-toolbar'); + $textContainerElem.addClass('w-e-text-container'); + $textContainerElem.css('z-index', zIndex); + $textElem.addClass('w-e-text'); + + // 添加 ID + var toolbarElemId = getRandom('toolbar-elem'); + $toolbarElem.attr('id', toolbarElemId); + var textElemId = getRandom('text-elem'); + $textElem.attr('id', textElemId); + + // 记录属性 + this.$toolbarElem = $toolbarElem; + this.$textContainerElem = $textContainerElem; + this.$textElem = $textElem; + this.toolbarElemId = toolbarElemId; + this.textElemId = textElemId; + + // 记录输入法的开始和结束 + var compositionEnd = true; + $textContainerElem.on('compositionstart', function () { + // 输入法开始输入 + compositionEnd = false; + }); + $textContainerElem.on('compositionend', function () { + // 输入法结束输入 + compositionEnd = true; + }); + + // 绑定 onchange + $textContainerElem.on('click keyup', function () { + // 输入法结束才出发 onchange + compositionEnd && _this.change && _this.change(); + }); + $toolbarElem.on('click', function () { + this.change && this.change(); + }); + + //绑定 onfocus 与 onblur 事件 + if (config$$1.onfocus || config$$1.onblur) { + // 当前编辑器是否是焦点状态 + this.isFocus = false; + + $(document).on('click', function (e) { + //判断当前点击元素是否在编辑器内 + var isChild = $textElem.isContain($(e.target)); + + //判断当前点击元素是否为工具栏 + var isToolbar = $toolbarElem.isContain($(e.target)); + var isMenu = $toolbarElem[0] == e.target ? true : false; + + if (!isChild) { + //若为选择工具栏中的功能,则不视为成blur操作 + if (isToolbar && !isMenu) { + return; + } + + if (_this.isFocus) { + _this.onblur && _this.onblur(); + } + _this.isFocus = false; + } else { + if (!_this.isFocus) { + _this.onfocus && _this.onfocus(); + } + _this.isFocus = true; + } + }); + } + }, + + // 封装 command + _initCommand: function _initCommand() { + this.cmd = new Command(this); + }, + + // 封装 selection range API + _initSelectionAPI: function _initSelectionAPI() { + this.selection = new API(this); + }, + + // 添加图片上传 + _initUploadImg: function _initUploadImg() { + this.uploadImg = new UploadImg(this); + }, + + // 初始化菜单 + _initMenus: function _initMenus() { + this.menus = new Menus(this); + this.menus.init(); + }, + + // 添加 text 区域 + _initText: function _initText() { + this.txt = new Text(this); + this.txt.init(); + }, + + // 初始化选区,将光标定位到内容尾部 + initSelection: function initSelection(newLine) { + var $textElem = this.$textElem; + var $children = $textElem.children(); + if (!$children.length) { + // 如果编辑器区域无内容,添加一个空行,重新设置选区 + $textElem.append($('


          ')); + this.initSelection(); + return; + } + + var $last = $children.last(); + + if (newLine) { + // 新增一个空行 + var html = $last.html().toLowerCase(); + var nodeName = $last.getNodeName(); + if (html !== '
          ' && html !== '' || nodeName !== 'P') { + // 最后一个元素不是


          ,添加一个空行,重新设置选区 + $textElem.append($('


          ')); + this.initSelection(); + return; + } + } + + this.selection.createRangeByElem($last, false, true); + this.selection.restoreSelection(); + }, + + // 绑定事件 + _bindEvent: function _bindEvent() { + // -------- 绑定 onchange 事件 -------- + var onChangeTimeoutId = 0; + var beforeChangeHtml = this.txt.html(); + var config$$1 = this.config; + + // onchange 触发延迟时间 + var onchangeTimeout = config$$1.onchangeTimeout; + onchangeTimeout = parseInt(onchangeTimeout, 10); + if (!onchangeTimeout || onchangeTimeout <= 0) { + onchangeTimeout = 200; + } + + var onchange = config$$1.onchange; + if (onchange && typeof onchange === 'function') { + // 触发 change 的有三个场景: + // 1. $textContainerElem.on('click keyup') + // 2. $toolbarElem.on('click') + // 3. editor.cmd.do() + this.change = function () { + // 判断是否有变化 + var currentHtml = this.txt.html(); + + if (currentHtml.length === beforeChangeHtml.length) { + // 需要比较每一个字符 + if (currentHtml === beforeChangeHtml) { + return; + } + } + + // 执行,使用节流 + if (onChangeTimeoutId) { + clearTimeout(onChangeTimeoutId); + } + onChangeTimeoutId = setTimeout(function () { + // 触发配置的 onchange 函数 + onchange(currentHtml); + beforeChangeHtml = currentHtml; + }, onchangeTimeout); + }; + } + + // -------- 绑定 onblur 事件 -------- + var onblur = config$$1.onblur; + if (onblur && typeof onblur === 'function') { + this.onblur = function () { + var currentHtml = this.txt.html(); + onblur(currentHtml); + }; + } + + // -------- 绑定 onfocus 事件 -------- + var onfocus = config$$1.onfocus; + if (onfocus && typeof onfocus === 'function') { + this.onfocus = function () { + onfocus(); + }; + } + }, + + // 创建编辑器 + create: function create() { + // 初始化配置信息 + this._initConfig(); + + // 初始化 DOM + this._initDom(); + + // 封装 command API + this._initCommand(); + + // 封装 selection range API + this._initSelectionAPI(); + + // 添加 text + this._initText(); + + // 初始化菜单 + this._initMenus(); + + // 添加 图片上传 + this._initUploadImg(); + + // 初始化选区,将光标定位到内容尾部 + this.initSelection(true); + + // 绑定事件 + this._bindEvent(); + }, + + // 解绑所有事件(暂时不对外开放) + _offAllEvent: function _offAllEvent() { + $.offAll(); + } +}; + +// 检验是否浏览器环境 +try { + document; +} catch (ex) { + throw new Error('请在浏览器环境下运行'); +} + +// polyfill +polyfill(); + +// 这里的 `inlinecss` 将被替换成 css 代码的内容,详情可去 ./gulpfile.js 中搜索 `inlinecss` 关键字 +var inlinecss = '.w-e-toolbar,.w-e-text-container,.w-e-menu-panel { padding: 0; margin: 0; box-sizing: border-box;}.w-e-toolbar *,.w-e-text-container *,.w-e-menu-panel * { padding: 0; margin: 0; box-sizing: border-box;}.w-e-clear-fix:after { content: ""; display: table; clear: both;}.w-e-toolbar .w-e-droplist { position: absolute; left: 0; top: 0; background-color: #fff; border: 1px solid #f1f1f1; border-right-color: #ccc; border-bottom-color: #ccc;}.w-e-toolbar .w-e-droplist .w-e-dp-title { text-align: center; color: #999; line-height: 2; border-bottom: 1px solid #f1f1f1; font-size: 13px;}.w-e-toolbar .w-e-droplist ul.w-e-list { list-style: none; line-height: 1;}.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item { color: #333; padding: 5px 0;}.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item:hover { background-color: #f1f1f1;}.w-e-toolbar .w-e-droplist ul.w-e-block { list-style: none; text-align: left; padding: 5px;}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item { display: inline-block; *display: inline; *zoom: 1; padding: 3px 5px;}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item:hover { background-color: #f1f1f1;}@font-face { font-family: \'w-e-icon\'; src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAABhQAAsAAAAAGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIPBGNtYXAAAAFoAAABBAAAAQQrSf4BZ2FzcAAAAmwAAAAIAAAACAAAABBnbHlmAAACdAAAEvAAABLwfpUWUWhlYWQAABVkAAAANgAAADYQp00kaGhlYQAAFZwAAAAkAAAAJAfEA+FobXR4AAAVwAAAAIQAAACEeAcD7GxvY2EAABZEAAAARAAAAERBSEX+bWF4cAAAFogAAAAgAAAAIAAsALZuYW1lAAAWqAAAAYYAAAGGmUoJ+3Bvc3QAABgwAAAAIAAAACAAAwAAAAMD3gGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8fwDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEAOgAAAA2ACAABAAWAAEAIOkG6Q3pEulH6Wbpd+m56bvpxunL6d/qDepc6l/qZepo6nHqefAN8BTxIPHc8fz//f//AAAAAAAg6QbpDekS6UfpZel36bnpu+nG6cvp3+oN6lzqX+pi6mjqcep38A3wFPEg8dzx/P/9//8AAf/jFv4W+Bb0FsAWoxaTFlIWURZHFkMWMBYDFbUVsxWxFa8VpxWiEA8QCQ7+DkMOJAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAACAAD/wAQAA8AABAATAAABNwEnAQMuAScTNwEjAQMlATUBBwGAgAHAQP5Anxc7MmOAAYDA/oDAAoABgP6ATgFAQAHAQP5A/p0yOxcBEU4BgP6A/YDAAYDA/oCAAAQAAAAABAADgAAQACEALQA0AAABOAExETgBMSE4ATEROAExITUhIgYVERQWMyEyNjURNCYjBxQGIyImNTQ2MzIWEyE1EwEzNwPA/IADgPyAGiYmGgOAGiYmGoA4KCg4OCgoOED9AOABAEDgA0D9AAMAQCYa/QAaJiYaAwAaJuAoODgoKDg4/biAAYD+wMAAAAIAAABABAADQAA4ADwAAAEmJy4BJyYjIgcOAQcGBwYHDgEHBhUUFx4BFxYXFhceARcWMzI3PgE3Njc2Nz4BNzY1NCcuAScmJwERDQED1TY4OXY8PT8/PTx2OTg2CwcICwMDAwMLCAcLNjg5djw9Pz89PHY5ODYLBwgLAwMDAwsIBwv9qwFA/sADIAgGBggCAgICCAYGCCkqKlktLi8vLi1ZKiopCAYGCAICAgIIBgYIKSoqWS0uLy8uLVkqKin94AGAwMAAAAAAAgDA/8ADQAPAABsAJwAAASIHDgEHBhUUFx4BFxYxMDc+ATc2NTQnLgEnJgMiJjU0NjMyFhUUBgIAQjs6VxkZMjJ4MjIyMngyMhkZVzo7QlBwcFBQcHADwBkZVzo7Qnh9fcxBQUFBzH19eEI7OlcZGf4AcFBQcHBQUHAAAAEAAAAABAADgAArAAABIgcOAQcGBycRISc+ATMyFx4BFxYVFAcOAQcGBxc2Nz4BNzY1NCcuAScmIwIANTIyXCkpI5YBgJA1i1BQRUZpHh4JCSIYGB5VKCAgLQwMKCiLXl1qA4AKCycbHCOW/oCQNDweHmlGRVArKClJICEaYCMrK2I2NjlqXV6LKCgAAQAAAAAEAAOAACoAABMUFx4BFxYXNyYnLgEnJjU0Nz4BNzYzMhYXByERByYnLgEnJiMiBw4BBwYADAwtICAoVR4YGCIJCR4eaUZFUFCLNZABgJYjKSlcMjI1al1eiygoAYA5NjZiKysjYBohIEkpKCtQRUZpHh48NJABgJYjHBsnCwooKIteXQAAAAACAAAAQAQBAwAAJgBNAAATMhceARcWFRQHDgEHBiMiJy4BJyY1JzQ3PgE3NjMVIgYHDgEHPgEhMhceARcWFRQHDgEHBiMiJy4BJyY1JzQ3PgE3NjMVIgYHDgEHPgHhLikpPRESEhE9KSkuLikpPRESASMjelJRXUB1LQkQBwgSAkkuKSk9ERISET0pKS4uKSk9ERIBIyN6UlFdQHUtCRAHCBICABIRPSkpLi4pKT0REhIRPSkpLiBdUVJ6IyOAMC4IEwoCARIRPSkpLi4pKT0REhIRPSkpLiBdUVJ6IyOAMC4IEwoCAQAABgBA/8AEAAPAAAMABwALABEAHQApAAAlIRUhESEVIREhFSEnESM1IzUTFTMVIzU3NSM1MxUVESM1MzUjNTM1IzUBgAKA/YACgP2AAoD9gMBAQECAwICAwMCAgICAgIACAIACAIDA/wDAQP3yMkCSPDJAku7+wEBAQEBAAAYAAP/ABAADwAADAAcACwAXACMALwAAASEVIREhFSERIRUhATQ2MzIWFRQGIyImETQ2MzIWFRQGIyImETQ2MzIWFRQGIyImAYACgP2AAoD9gAKA/YD+gEs1NUtLNTVLSzU1S0s1NUtLNTVLSzU1SwOAgP8AgP8AgANANUtLNTVLS/61NUtLNTVLS/61NUtLNTVLSwADAAAAAAQAA6AAAwANABQAADchFSElFSE1EyEVITUhJQkBIxEjEQAEAPwABAD8AIABAAEAAQD9YAEgASDggEBAwEBAAQCAgMABIP7g/wABAAAAAAACAB7/zAPiA7QAMwBkAAABIiYnJicmNDc2PwE+ATMyFhcWFxYUBwYPAQYiJyY0PwE2NCcuASMiBg8BBhQXFhQHDgEjAyImJyYnJjQ3Nj8BNjIXFhQPAQYUFx4BMzI2PwE2NCcmNDc2MhcWFxYUBwYPAQ4BIwG4ChMIIxISEhIjwCNZMTFZIyMSEhISI1gPLA8PD1gpKRQzHBwzFMApKQ8PCBMKuDFZIyMSEhISI1gPLA8PD1gpKRQzHBwzFMApKQ8PDysQIxISEhIjwCNZMQFECAckLS1eLS0kwCIlJSIkLS1eLS0kVxAQDysPWCl0KRQVFRTAKXQpDysQBwj+iCUiJC0tXi0tJFcQEA8rD1gpdCkUFRUUwCl0KQ8rEA8PJC0tXi0tJMAiJQAAAAAFAAD/wAQAA8AAGwA3AFMAXwBrAAAFMjc+ATc2NTQnLgEnJiMiBw4BBwYVFBceARcWEzIXHgEXFhUUBw4BBwYjIicuAScmNTQ3PgE3NhMyNz4BNzY3BgcOAQcGIyInLgEnJicWFx4BFxYnNDYzMhYVFAYjIiYlNDYzMhYVFAYjIiYCAGpdXosoKCgoi15dampdXosoKCgoi15dalZMTHEgISEgcUxMVlZMTHEgISEgcUxMVisrKlEmJiMFHBtWODc/Pzc4VhscBSMmJlEqK9UlGxslJRsbJQGAJRsbJSUbGyVAKCiLXl1qal1eiygoKCiLXl1qal1eiygoA6AhIHFMTFZWTExxICEhIHFMTFZWTExxICH+CQYGFRAQFEM6OlYYGRkYVjo6QxQQEBUGBvcoODgoKDg4KCg4OCgoODgAAAMAAP/ABAADwAAbADcAQwAAASIHDgEHBhUUFx4BFxYzMjc+ATc2NTQnLgEnJgMiJy4BJyY1NDc+ATc2MzIXHgEXFhUUBw4BBwYTBycHFwcXNxc3JzcCAGpdXosoKCgoi15dampdXosoKCgoi15dalZMTHEgISEgcUxMVlZMTHEgISEgcUxMSqCgYKCgYKCgYKCgA8AoKIteXWpqXV6LKCgoKIteXWpqXV6LKCj8YCEgcUxMVlZMTHEgISEgcUxMVlZMTHEgIQKgoKBgoKBgoKBgoKAAAQBl/8ADmwPAACkAAAEiJiMiBw4BBwYVFBYzLgE1NDY3MAcGAgcGBxUhEzM3IzceATMyNjcOAQMgRGhGcVNUbRobSUgGDWVKEBBLPDxZAT1sxizXNC1VJi5QGB09A7AQHh1hPj9BTTsLJjeZbwN9fv7Fj5AjGQIAgPYJDzdrCQcAAAAAAgAAAAAEAAOAAAkAFwAAJTMHJzMRIzcXIyURJyMRMxUhNTMRIwcRA4CAoKCAgKCggP8AQMCA/oCAwEDAwMACAMDAwP8AgP1AQEACwIABAAADAMAAAANAA4AAFgAfACgAAAE+ATU0Jy4BJyYjIREhMjc+ATc2NTQmATMyFhUUBisBEyMRMzIWFRQGAsQcIBQURi4vNf7AAYA1Ly5GFBRE/oRlKjw8KWafn58sPj4B2yJULzUvLkYUFPyAFBRGLi81RnQBRks1NUv+gAEASzU1SwAAAAACAMAAAANAA4AAHwAjAAABMxEUBw4BBwYjIicuAScmNREzERQWFx4BMzI2Nz4BNQEhFSECwIAZGVc6O0JCOzpXGRmAGxgcSSgoSRwYG/4AAoD9gAOA/mA8NDVOFhcXFk41NDwBoP5gHjgXGBsbGBc4Hv6ggAAAAAABAIAAAAOAA4AACwAAARUjATMVITUzASM1A4CA/sCA/kCAAUCAA4BA/QBAQAMAQAABAAAAAAQAA4AAPQAAARUjHgEVFAYHDgEjIiYnLgE1MxQWMzI2NTQmIyE1IS4BJy4BNTQ2Nz4BMzIWFx4BFSM0JiMiBhUUFjMyFhcEAOsVFjUwLHE+PnEsMDWAck5OcnJO/gABLAIEATA1NTAscT4+cSwwNYByTk5yck47bisBwEAdQSI1YiQhJCQhJGI1NExMNDRMQAEDASRiNTViJCEkJCEkYjU0TEw0NEwhHwAAAAcAAP/ABAADwAADAAcACwAPABMAGwAjAAATMxUjNzMVIyUzFSM3MxUjJTMVIwMTIRMzEyETAQMhAyMDIQMAgIDAwMABAICAwMDAAQCAgBAQ/QAQIBACgBD9QBADABAgEP2AEAHAQEBAQEBAQEBAAkD+QAHA/oABgPwAAYD+gAFA/sAAAAoAAAAABAADgAADAAcACwAPABMAFwAbAB8AIwAnAAATESERATUhFR0BITUBFSE1IxUhNREhFSElIRUhETUhFQEhFSEhNSEVAAQA/YABAP8AAQD/AED/AAEA/wACgAEA/wABAPyAAQD/AAKAAQADgPyAA4D9wMDAQMDAAgDAwMDA/wDAwMABAMDA/sDAwMAAAAUAAAAABAADgAADAAcACwAPABMAABMhFSEVIRUhESEVIREhFSERIRUhAAQA/AACgP2AAoD9gAQA/AAEAPwAA4CAQID/AIABQID/AIAAAAAABQAAAAAEAAOAAAMABwALAA8AEwAAEyEVIRchFSERIRUhAyEVIREhFSEABAD8AMACgP2AAoD9gMAEAPwABAD8AAOAgECA/wCAAUCA/wCAAAAFAAAAAAQAA4AAAwAHAAsADwATAAATIRUhBSEVIREhFSEBIRUhESEVIQAEAPwAAYACgP2AAoD9gP6ABAD8AAQA/AADgIBAgP8AgAFAgP8AgAAAAAABAD8APwLmAuYALAAAJRQPAQYjIi8BBwYjIi8BJjU0PwEnJjU0PwE2MzIfATc2MzIfARYVFA8BFxYVAuYQThAXFxCoqBAXFhBOEBCoqBAQThAWFxCoqBAXFxBOEBCoqBDDFhBOEBCoqBAQThAWFxCoqBAXFxBOEBCoqBAQThAXFxCoqBAXAAAABgAAAAADJQNuABQAKAA8AE0AVQCCAAABERQHBisBIicmNRE0NzY7ATIXFhUzERQHBisBIicmNRE0NzY7ATIXFhcRFAcGKwEiJyY1ETQ3NjsBMhcWExEhERQXFhcWMyEyNzY3NjUBIScmJyMGBwUVFAcGKwERFAcGIyEiJyY1ESMiJyY9ATQ3NjsBNzY3NjsBMhcWHwEzMhcWFQElBgUIJAgFBgYFCCQIBQaSBQUIJQgFBQUFCCUIBQWSBQUIJQgFBQUFCCUIBQVJ/gAEBAUEAgHbAgQEBAT+gAEAGwQGtQYEAfcGBQg3Ghsm/iUmGxs3CAUFBQUIsSgIFxYXtxcWFgkosAgFBgIS/rcIBQUFBQgBSQgFBgYFCP63CAUFBQUIAUkIBQYGBQj+twgFBQUFCAFJCAUGBgX+WwId/eMNCwoFBQUFCgsNAmZDBQICBVUkCAYF/eMwIiMhIi8CIAUGCCQIBQVgFQ8PDw8VYAUFCAACAAcASQO3Aq8AGgAuAAAJAQYjIi8BJjU0PwEnJjU0PwE2MzIXARYVFAcBFRQHBiMhIicmPQE0NzYzITIXFgFO/vYGBwgFHQYG4eEGBh0FCAcGAQoGBgJpBQUI/dsIBQUFBQgCJQgFBQGF/vYGBhwGCAcG4OEGBwcGHQUF/vUFCAcG/vslCAUFBQUIJQgFBQUFAAAAAQAjAAAD3QNuALMAACUiJyYjIgcGIyInJjU0NzY3Njc2NzY9ATQnJiMhIgcGHQEUFxYXFjMWFxYVFAcGIyInJiMiBwYjIicmNTQ3Njc2NzY3Nj0BETQ1NDU0JzQnJicmJyYnJicmIyInJjU0NzYzMhcWMzI3NjMyFxYVFAcGIwYHBgcGHQEUFxYzITI3Nj0BNCcmJyYnJjU0NzYzMhcWMzI3NjMyFxYVFAcGByIHBgcGFREUFxYXFhcyFxYVFAcGIwPBGTMyGhkyMxkNCAcJCg0MERAKEgEHFf5+FgcBFQkSEw4ODAsHBw4bNTUaGDExGA0HBwkJCwwQDwkSAQIBAgMEBAUIEhENDQoLBwcOGjU1GhgwMRgOBwcJCgwNEBAIFAEHDwGQDgcBFAoXFw8OBwcOGTMyGRkxMRkOBwcKCg0NEBEIFBQJEREODQoLBwcOAAICAgIMCw8RCQkBAQMDBQxE4AwFAwMFDNRRDQYBAgEICBIPDA0CAgICDAwOEQgJAQIDAwUNRSEB0AINDQgIDg4KCgsLBwcDBgEBCAgSDwwNAgICAg0MDxEICAECAQYMULYMBwEBBwy2UAwGAQEGBxYPDA0CAgICDQwPEQgIAQECBg1P/eZEDAYCAgEJCBEPDA0AAAIAAP+3A/8DtwATADkAAAEyFxYVFAcCBwYjIicmNTQ3ATYzARYXFh8BFgcGIyInJicmJyY1FhcWFxYXFjMyNzY3Njc2NzY3NjcDmygeHhq+TDdFSDQ0NQFtISn9+BcmJy8BAkxMe0c2NiEhEBEEExQQEBIRCRcIDxITFRUdHR4eKQO3GxooJDP+mUY0NTRJSTABSx/9sSsfHw0oek1MGhsuLzo6RAMPDgsLCgoWJRsaEREKCwQEAgABAAAAAAAA9evv618PPPUACwQAAAAAANbEBFgAAAAA1sQEWAAA/7cEAQPAAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAD//wQBAAEAAAAAAAAAAAAAAAAAAAAhBAAAAAAAAAAAAAAAAgAAAAQAAAAEAAAABAAAAAQAAMAEAAAABAAAAAQAAAAEAABABAAAAAQAAAAEAAAeBAAAAAQAAAAEAABlBAAAAAQAAMAEAADABAAAgAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAMlAD8DJQAAA74ABwQAACMD/wAAAAAAAAAKABQAHgBMAJQA+AE2AXwBwgI2AnQCvgLoA34EHgSIBMoE8gU0BXAFiAXgBiIGagaSBroG5AcoB+AIKgkcCXgAAQAAACEAtAAKAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGljb21vb24AaQBjAG8AbQBvAG8AblZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGljb21vb24AaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AblJlZ3VsYXIAUgBlAGcAdQBsAGEAcmljb21vb24AaQBjAG8AbQBvAG8AbkZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format(\'truetype\'); font-weight: normal; font-style: normal;}[class^="w-e-icon-"],[class*=" w-e-icon-"] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: \'w-e-icon\' !important; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1; /* Better Font Rendering =========== */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}.w-e-icon-close:before { content: "\\f00d";}.w-e-icon-upload2:before { content: "\\e9c6";}.w-e-icon-trash-o:before { content: "\\f014";}.w-e-icon-header:before { content: "\\f1dc";}.w-e-icon-pencil2:before { content: "\\e906";}.w-e-icon-paint-brush:before { content: "\\f1fc";}.w-e-icon-image:before { content: "\\e90d";}.w-e-icon-play:before { content: "\\e912";}.w-e-icon-location:before { content: "\\e947";}.w-e-icon-undo:before { content: "\\e965";}.w-e-icon-redo:before { content: "\\e966";}.w-e-icon-quotes-left:before { content: "\\e977";}.w-e-icon-list-numbered:before { content: "\\e9b9";}.w-e-icon-list2:before { content: "\\e9bb";}.w-e-icon-link:before { content: "\\e9cb";}.w-e-icon-happy:before { content: "\\e9df";}.w-e-icon-bold:before { content: "\\ea62";}.w-e-icon-underline:before { content: "\\ea63";}.w-e-icon-italic:before { content: "\\ea64";}.w-e-icon-strikethrough:before { content: "\\ea65";}.w-e-icon-table2:before { content: "\\ea71";}.w-e-icon-paragraph-left:before { content: "\\ea77";}.w-e-icon-paragraph-center:before { content: "\\ea78";}.w-e-icon-paragraph-right:before { content: "\\ea79";}.w-e-icon-terminal:before { content: "\\f120";}.w-e-icon-page-break:before { content: "\\ea68";}.w-e-icon-cancel-circle:before { content: "\\ea0d";}.w-e-icon-font:before { content: "\\ea5c";}.w-e-icon-text-heigh:before { content: "\\ea5f";}.w-e-toolbar { display: -webkit-box; display: -ms-flexbox; display: flex; padding: 0 5px; /* flex-wrap: wrap; */ /* 单个菜单 */}.w-e-toolbar .w-e-menu { position: relative; text-align: center; padding: 5px 10px; cursor: pointer;}.w-e-toolbar .w-e-menu i { color: #999;}.w-e-toolbar .w-e-menu:hover i { color: #333;}.w-e-toolbar .w-e-active i { color: #1e88e5;}.w-e-toolbar .w-e-active:hover i { color: #1e88e5;}.w-e-text-container .w-e-panel-container { position: absolute; top: 0; left: 50%; border: 1px solid #ccc; border-top: 0; box-shadow: 1px 1px 2px #ccc; color: #333; background-color: #fff; /* 为 emotion panel 定制的样式 */ /* 上传图片的 panel 定制样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-close { position: absolute; right: 0; top: 0; padding: 5px; margin: 2px 5px 0 0; cursor: pointer; color: #999;}.w-e-text-container .w-e-panel-container .w-e-panel-close:hover { color: #333;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title { list-style: none; display: -webkit-box; display: -ms-flexbox; display: flex; font-size: 14px; margin: 2px 10px 0 10px; border-bottom: 1px solid #f1f1f1;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-item { padding: 3px 5px; color: #999; cursor: pointer; margin: 0 3px; position: relative; top: 1px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-active { color: #333; border-bottom: 1px solid #333; cursor: default; font-weight: 700;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content { padding: 10px 15px 10px 15px; font-size: 16px; /* 输入框的样式 */ /* 按钮的样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content button:focus { outline: none;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea { width: 100%; border: 1px solid #ccc; padding: 5px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus { border-color: #1e88e5;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text] { border: none; border-bottom: 1px solid #ccc; font-size: 14px; height: 20px; color: #333; text-align: left;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].small { width: 30px; text-align: center;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].block { display: block; width: 100%; margin: 10px 0;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text]:focus { border-bottom: 2px solid #1e88e5;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button { font-size: 14px; color: #1e88e5; border: none; padding: 5px 10px; background-color: #fff; cursor: pointer; border-radius: 3px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.left { float: left; margin-right: 10px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.right { float: right; margin-left: 10px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.gray { color: #999;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.red { color: #c24f4a;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button:hover { background-color: #f1f1f1;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container:after { content: ""; display: table; clear: both;}.w-e-text-container .w-e-panel-container .w-e-emoticon-container .w-e-item { cursor: pointer; font-size: 18px; padding: 0 3px; display: inline-block; *display: inline; *zoom: 1;}.w-e-text-container .w-e-panel-container .w-e-up-img-container { text-align: center;}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn { display: inline-block; *display: inline; *zoom: 1; color: #999; cursor: pointer; font-size: 60px; line-height: 1;}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn:hover { color: #333;}.w-e-text-container { position: relative;}.w-e-text-container .w-e-progress { position: absolute; background-color: #1e88e5; bottom: 0; left: 0; height: 1px;}.w-e-text { padding: 0 10px; overflow-y: scroll;}.w-e-text p,.w-e-text h1,.w-e-text h2,.w-e-text h3,.w-e-text h4,.w-e-text h5,.w-e-text table,.w-e-text pre { margin: 10px 0; line-height: 1.5;}.w-e-text ul,.w-e-text ol { margin: 10px 0 10px 20px;}.w-e-text blockquote { display: block; border-left: 8px solid #d0e5f2; padding: 5px 10px; margin: 10px 0; line-height: 1.4; font-size: 100%; background-color: #f1f1f1;}.w-e-text code { display: inline-block; *display: inline; *zoom: 1; background-color: #f1f1f1; border-radius: 3px; padding: 3px 5px; margin: 0 3px;}.w-e-text pre code { display: block;}.w-e-text table { border-top: 1px solid #ccc; border-left: 1px solid #ccc;}.w-e-text table td,.w-e-text table th { border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; padding: 3px 5px;}.w-e-text table th { border-bottom: 2px solid #ccc; text-align: center;}.w-e-text:focus { outline: none;}.w-e-text img { cursor: pointer;}.w-e-text img:hover { box-shadow: 0 0 5px #333;}'; + +// 将 css 代码添加到 ","
        "].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&&ln&&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"],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');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):al.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;su)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"); \ No newline at end of file