From 150b39dfea8fd98891293c0b6ab2ddf4639b4e6d Mon Sep 17 00:00:00 2001 From: root Date: Mon, 30 Jun 2025 10:21:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 7 + App.vue | 40 + LICENSE | 1 + README.md | 54 + androidPrivacy.json | 38 + common/common.js | 250 ++ common/config.js | 27 + common/filters.js | 229 + common/http.api.js | 489 +++ common/http.interceptor.js | 104 + common/locales/en_EN.js | 4 + common/locales/homePage/en.js | 35 + common/locales/homePage/zh.js | 35 + common/locales/zh_CN.js | 4 + common/uni.css | 1459 +++++++ common/vue-i18n.min.js | 1022 +++++ components/.DS_Store | Bin 0 -> 6148 bytes components/Search/index.vue | 87 + components/charts/index.vue | 213 + components/echarts/echarts.min.js | 17 + components/history-modal/index.vue | 330 ++ components/new-canvas/index.vue | 361 ++ components/new-search/index.vue | 79 + components/section/index.vue | 52 + components/station-dropdow/index.vue | 133 + h5.html | 50 + locales/en_EN.js | 60 + locales/homePage/en.js | 461 ++ locales/homePage/zh.js | 462 ++ locales/zh_CN.js | 63 + main.js | 69 + manifest.json | 145 + package-lock.json | 3808 +++++++++++++++++ package.json | 27 + pages.json | 186 + pages/guest/index.vue | 62 + .../home-page/alarm/components/alarmevent.vue | 152 + .../alarm/components/tki-tree/style.css | 151 + .../alarm/components/tki-tree/tki-tree.vue | 329 ++ pages/home-page/alarm/index.vue | 723 ++++ .../device-detail/components/air.vue | 660 +++ .../device-detail/components/ammeter.vue | 1358 ++++++ .../device-detail/components/cluster.vue | 899 ++++ .../device-detail/components/emu.vue | 849 ++++ .../device-detail/components/jingke-pcs.vue | 963 +++++ .../device-detail/components/jingke-stack.vue | 856 ++++ .../device-detail/components/pack.vue | 747 ++++ .../device-detail/components/pcs.vue | 994 +++++ .../device-detail/components/stack.vue | 962 +++++ .../home-page/device-detail/components/yc.vue | 166 + .../home-page/device-detail/components/yx.vue | 165 + pages/home-page/device-detail/index.vue | 344 ++ pages/home-page/device-list/index.vue | 147 + pages/home-page/earnings/index.vue | 801 ++++ pages/home-page/policy-management/index.vue | 823 ++++ pages/login/components/dialog.vue | 194 + pages/login/index.scss | 162 + pages/login/index.vue | 546 +++ pages/sys/user/about.vue | 114 + pages/sys/user/currency.vue | 98 + pages/sys/user/info.vue | 205 + pages/sys/user/message.vue | 180 + pages/sys/user/pwd.vue | 176 + pages/sys/user/setting.vue | 116 + .../components/dischargeChart/index.vue | 244 ++ .../components/environmentalControl/index.vue | 186 + .../environmentalControl/position.vue | 186 + pages/tabbar/components/runChart/index.vue | 351 ++ .../tabbar/components/stationData/common.vue | 211 + .../components/stationData/style/index.css | 96 + pages/tabbar/components/stationData/wsh.vue | 205 + pages/tabbar/components/stationData/zzhb.vue | 206 + pages/tabbar/components/topology/cixi.vue | 1071 +++++ .../components/topology/devicemonitoring.vue | 347 ++ pages/tabbar/components/topology/fire.vue | 253 ++ pages/tabbar/components/topology/jingke.vue | 406 ++ pages/tabbar/components/topology/kejiyuan.vue | 418 ++ pages/tabbar/components/topology/lingchao.vue | 1094 +++++ .../topology/mdPvdieseTopCenter.vue | 771 ++++ pages/tabbar/components/topology/runda100.vue | 616 +++ pages/tabbar/components/topology/runda215.vue | 597 +++ pages/tabbar/components/topology/runda230.vue | 448 ++ .../tabbar/components/topology/sanmenxia.vue | 1371 ++++++ pages/tabbar/components/topology/second.vue | 502 +++ pages/tabbar/components/topology/standard.vue | 426 ++ pages/tabbar/components/topology/third.vue | 601 +++ .../tabbar/components/topology/weishanhu.vue | 599 +++ .../components/topology/zhongzihuanbao.vue | 589 +++ pages/tabbar/dashboard.vue | 472 ++ pages/tabbar/electricityPrice.vue | 1248 ++++++ pages/tabbar/mine.vue | 494 +++ static/aidex/device/air.png | Bin 0 -> 863 bytes static/aidex/device/battery.png | Bin 0 -> 515 bytes static/aidex/device/bms.png | Bin 0 -> 851 bytes static/aidex/device/cluster.png | Bin 0 -> 726 bytes static/aidex/device/emu.png | Bin 0 -> 910 bytes static/aidex/device/fire.png | Bin 0 -> 938 bytes static/aidex/device/gui.png | Bin 0 -> 637 bytes static/aidex/device/other.png | Bin 0 -> 931 bytes static/aidex/device/pack.png | Bin 0 -> 980 bytes static/aidex/device/pcs.png | Bin 0 -> 700 bytes static/aidex/device/unit.png | Bin 0 -> 771 bytes static/aidex/images/Data-fill.png | Bin 0 -> 2878 bytes static/aidex/images/Data.png | Bin 0 -> 983 bytes static/aidex/images/My-fill.png | Bin 0 -> 2720 bytes static/aidex/images/My.png | Bin 0 -> 968 bytes static/aidex/images/Price-fill.png | Bin 0 -> 2840 bytes static/aidex/images/Price.png | Bin 0 -> 931 bytes static/aidex/images/about.png | Bin 0 -> 650 bytes static/aidex/images/account-security.png | Bin 0 -> 800 bytes static/aidex/images/arrow-right.png | Bin 0 -> 305 bytes static/aidex/images/check.png | Bin 0 -> 2744 bytes static/aidex/images/checked.png | Bin 0 -> 4841 bytes static/aidex/images/dqgl.png | Bin 0 -> 581 bytes static/aidex/images/edit.png | Bin 0 -> 400 bytes static/aidex/images/history-icon.png | Bin 0 -> 548 bytes static/aidex/images/item.png | Bin 0 -> 197 bytes static/aidex/images/lang.png | Bin 0 -> 2826 bytes static/aidex/images/language.png | Bin 0 -> 965 bytes static/aidex/images/list-icon.png | Bin 0 -> 719 bytes static/aidex/images/login-bg.png | Bin 0 -> 46059 bytes static/aidex/images/menu-alarm.png | Bin 0 -> 4910 bytes static/aidex/images/menu-device.png | Bin 0 -> 3255 bytes static/aidex/images/menu-earnings.png | Bin 0 -> 3449 bytes static/aidex/images/menu-policy.png | Bin 0 -> 3065 bytes static/aidex/images/message-icon.png | Bin 0 -> 63870 bytes static/aidex/images/nav-bg.png | Bin 0 -> 61094 bytes static/aidex/images/next.png | Bin 0 -> 382 bytes static/aidex/images/pcs-energy.png | Bin 0 -> 478 bytes static/aidex/images/rcdl.png | Bin 0 -> 524 bytes static/aidex/images/rfdl.png | Bin 0 -> 352 bytes static/aidex/images/setting.png | Bin 0 -> 861 bytes static/aidex/images/sy-byzc.png | Bin 0 -> 1475 bytes static/aidex/images/sy-byzf.png | Bin 0 -> 2162 bytes static/aidex/images/sy-ljc.png | Bin 0 -> 1958 bytes static/aidex/images/sy-ljf.png | Bin 0 -> 1996 bytes static/aidex/images/sy-yxtzhl.png | Bin 0 -> 1987 bytes static/aidex/images/sy-zjrl.png | Bin 0 -> 2200 bytes static/aidex/images/sy-zxtzhl.png | Bin 0 -> 1955 bytes static/aidex/images/time.png | Bin 0 -> 5416 bytes static/aidex/images/total-swdl.png | Bin 0 -> 3474 bytes static/aidex/images/total-sy.png | Bin 0 -> 4972 bytes static/aidex/images/total-zfdl.png | Bin 0 -> 3721 bytes static/aidex/images/total-zybl.png | Bin 0 -> 4735 bytes static/aidex/images/total-zydl.png | Bin 0 -> 3576 bytes static/aidex/images/user07.png | Bin 0 -> 9024 bytes static/aidex/images/xtzhl.png | Bin 0 -> 800 bytes static/aidex/images/yxts.png | Bin 0 -> 477 bytes static/aidex/images/zcdl.png | Bin 0 -> 436 bytes static/aidex/images/zfdl.png | Bin 0 -> 496 bytes static/aidex/images/zjrl.png | Bin 0 -> 438 bytes static/aidex/login/bg-logo.png | Bin 0 -> 16303 bytes static/aidex/login/eye_close.png | Bin 0 -> 630 bytes static/aidex/login/eye_open.png | Bin 0 -> 890 bytes static/aidex/login/password.png | Bin 0 -> 728 bytes static/aidex/login/user-delete.png | Bin 0 -> 556 bytes static/aidex/login/user.png | Bin 0 -> 782 bytes static/aidex/login/warning.png | Bin 0 -> 1530 bytes static/topology/DC.png | Bin 0 -> 464 bytes static/topology/DCDC.png | Bin 0 -> 418 bytes static/topology/MPPT.png | Bin 0 -> 485 bytes static/topology/STS.png | Bin 0 -> 945 bytes static/topology/ammeter.png | Bin 0 -> 814 bytes static/topology/battary.png | Bin 0 -> 364 bytes static/topology/byq.png | Bin 0 -> 1282 bytes static/topology/cang.png | Bin 0 -> 3926 bytes static/topology/device-monitoring.png | Bin 0 -> 1377 bytes static/topology/dianchi.png | Bin 0 -> 1350 bytes static/topology/dianwang.png | Bin 0 -> 3292 bytes static/topology/electric.png | Bin 0 -> 1378 bytes static/topology/fire.png | Bin 0 -> 6853 bytes static/topology/fuzai.png | Bin 0 -> 992 bytes static/topology/load.png | Bin 0 -> 375 bytes static/topology/none.png | Bin 0 -> 745 bytes static/topology/pv.png | Bin 0 -> 1267 bytes static/topology/yiticang.png | Bin 0 -> 1732 bytes static/topology/yitigui.png | Bin 0 -> 2743 bytes static/uni.ttf | Bin 0 -> 26164 bytes store/$u.mixin.js | 27 + store/index.js | 117 + uni.scss | 40 + uni_modules/lime-echart/changelog.md | 132 + .../lime-echart/components/l-echart/canvas.js | 372 ++ .../components/l-echart/l-echart.vue | 516 +++ .../lime-echart/components/l-echart/utils.js | 74 + .../components/lime-echart/index.vue | 0 uni_modules/lime-echart/package.json | 84 + uni_modules/lime-echart/readme.md | 245 ++ uni_modules/luyj-tree/changelog.md | 67 + .../components/luyj-tree-item/icon.css | 346 ++ .../luyj-tree-item/luyj-tree-item.scss | 76 + .../luyj-tree-item/luyj-tree-item.vue | 312 ++ .../components/luyj-tree-navigation/icon.css | 342 ++ .../luyj-tree-navigation.scss | 28 + .../luyj-tree-navigation.vue | 182 + .../components/luyj-tree-search/icon.css | 346 ++ .../luyj-tree-search/luyj-tree-search.vue | 165 + .../luyj-tree/components/luyj-tree/icon.css | 342 ++ .../components/luyj-tree/luyj-tree.scss | 121 + .../components/luyj-tree/luyj-tree.vue | 709 +++ uni_modules/luyj-tree/lib/css/icon.css | 346 ++ uni_modules/luyj-tree/package.json | 86 + uni_modules/luyj-tree/readme.md | 251 ++ uni_modules/uni-datetime-picker/changelog.md | 140 + .../uni-datetime-picker/calendar-item.vue | 177 + .../uni-datetime-picker/calendar.vue | 931 ++++ .../uni-datetime-picker/i18n/en.json | 22 + .../uni-datetime-picker/i18n/index.js | 8 + .../uni-datetime-picker/i18n/zh-Hans.json | 22 + .../uni-datetime-picker/i18n/zh-Hant.json | 22 + .../uni-datetime-picker/time-picker.vue | 934 ++++ .../uni-datetime-picker.vue | 1035 +++++ .../components/uni-datetime-picker/util.js | 453 ++ uni_modules/uni-datetime-picker/package.json | 87 + uni_modules/uni-datetime-picker/readme.md | 21 + uni_modules/uni-scss/changelog.md | 8 + uni_modules/uni-scss/index.scss | 1 + uni_modules/uni-scss/package.json | 82 + uni_modules/uni-scss/readme.md | 4 + uni_modules/uni-scss/styles/index.scss | 7 + .../uni-scss/styles/setting/_border.scss | 3 + .../uni-scss/styles/setting/_color.scss | 66 + .../uni-scss/styles/setting/_radius.scss | 55 + .../uni-scss/styles/setting/_space.scss | 56 + .../uni-scss/styles/setting/_styles.scss | 167 + .../uni-scss/styles/setting/_text.scss | 24 + .../uni-scss/styles/setting/_variables.scss | 146 + .../uni-scss/styles/tools/functions.scss | 19 + uni_modules/uni-scss/theme.scss | 31 + uni_modules/uni-scss/variables.scss | 62 + uni_modules/uni-table/changelog.md | 29 + .../components/uni-table/uni-table.vue | 455 ++ .../components/uni-tbody/uni-tbody.vue | 29 + .../uni-table/components/uni-td/uni-td.vue | 90 + .../components/uni-th/filter-dropdown.vue | 511 +++ .../uni-table/components/uni-th/uni-th.vue | 285 ++ .../components/uni-thead/uni-thead.vue | 129 + .../components/uni-tr/table-checkbox.vue | 179 + .../uni-table/components/uni-tr/uni-tr.vue | 175 + uni_modules/uni-table/i18n/en.json | 9 + uni_modules/uni-table/i18n/es.json | 9 + uni_modules/uni-table/i18n/fr.json | 9 + uni_modules/uni-table/i18n/index.js | 12 + uni_modules/uni-table/i18n/zh-Hans.json | 9 + uni_modules/uni-table/i18n/zh-Hant.json | 9 + uni_modules/uni-table/package.json | 83 + uni_modules/uni-table/readme.md | 13 + uni_modules/zero-loading/changelog.md | 12 + .../zero-loading/static/loading-atom.vue | 109 + .../components/zero-loading/zero-loading.vue | 76 + uni_modules/zero-loading/package.json | 80 + uni_modules/zero-loading/readme.md | 50 + uview-ui/LICENSE | 21 + uview-ui/README.md | 106 + .../u-action-sheet/u-action-sheet.vue | 190 + .../components/u-alert-tips/u-alert-tips.vue | 256 ++ .../u-avatar-cropper/u-avatar-cropper.vue | 290 ++ .../components/u-avatar-cropper/weCropper.js | 1265 ++++++ uview-ui/components/u-avatar/u-avatar.vue | 244 ++ uview-ui/components/u-back-top/u-back-top.vue | 153 + uview-ui/components/u-badge/u-badge.vue | 216 + uview-ui/components/u-button/u-button.vue | 596 +++ uview-ui/components/u-calendar/u-calendar.vue | 639 +++ .../u-car-keyboard/u-car-keyboard.vue | 257 ++ uview-ui/components/u-card/u-card.vue | 299 ++ .../components/u-cell-group/u-cell-group.vue | 70 + .../components/u-cell-item/u-cell-item.vue | 316 ++ .../u-checkbox-group/u-checkbox-group.vue | 123 + uview-ui/components/u-checkbox/u-checkbox.vue | 284 ++ .../u-circle-progress/u-circle-progress.vue | 220 + .../u-line-progress/u-line-progress.vue | 147 + uview-ui/components/u-col/u-col.vue | 156 + .../u-collapse-item/u-collapse-item.vue | 204 + uview-ui/components/u-collapse/u-collapse.vue | 99 + .../u-column-notice/u-column-notice.vue | 237 + .../components/u-count-down/u-count-down.vue | 318 ++ uview-ui/components/u-count-to/u-count-to.vue | 241 ++ uview-ui/components/u-divider/u-divider.vue | 153 + .../u-dropdown-item/u-dropdown-item.vue | 132 + uview-ui/components/u-dropdown/u-dropdown.vue | 302 ++ uview-ui/components/u-empty/u-empty.vue | 193 + uview-ui/components/u-field/u-field.vue | 384 ++ .../components/u-form-item/u-form-item.vue | 431 ++ uview-ui/components/u-form/u-form.vue | 134 + .../u-full-screen/u-full-screen.vue | 52 + uview-ui/components/u-gap/u-gap.vue | 54 + .../components/u-grid-item/u-grid-item.vue | 126 + uview-ui/components/u-grid/u-grid.vue | 108 + uview-ui/components/u-icon/u-icon.vue | 336 ++ uview-ui/components/u-image/u-image.vue | 267 ++ .../u-index-anchor/u-index-anchor.vue | 89 + .../components/u-index-list/u-index-list.vue | 315 ++ uview-ui/components/u-input/u-input.vue | 394 ++ uview-ui/components/u-keyboard/u-keyboard.vue | 217 + .../components/u-lazy-load/u-lazy-load.vue | 244 ++ .../u-line-progress/u-line-progress.vue | 147 + uview-ui/components/u-line/u-line.vue | 84 + uview-ui/components/u-link/u-link.vue | 89 + .../u-loading-page/u-loading-page.vue | 25 + uview-ui/components/u-loading/u-loading.vue | 103 + uview-ui/components/u-loadmore/u-loadmore.vue | 203 + uview-ui/components/u-mask/u-mask.vue | 123 + .../u-message-input/u-message-input.vue | 311 ++ uview-ui/components/u-modal/u-modal.vue | 283 ++ uview-ui/components/u-navbar/u-navbar.vue | 339 ++ .../components/u-no-network/u-no-network.vue | 233 + .../components/u-notice-bar/u-notice-bar.vue | 272 ++ .../components/u-number-box/u-number-box.vue | 363 ++ .../u-number-keyboard/u-number-keyboard.vue | 158 + .../components/u-parse/libs/CssHandler.js | 100 + .../components/u-parse/libs/MpHtmlParser.js | 580 +++ uview-ui/components/u-parse/libs/config.js | 80 + uview-ui/components/u-parse/libs/handler.wxs | 22 + uview-ui/components/u-parse/libs/trees.vue | 505 +++ uview-ui/components/u-parse/u-parse.vue | 645 +++ uview-ui/components/u-picker/u-picker.vue | 686 +++ uview-ui/components/u-popup/u-popup.vue | 456 ++ .../u-radio-group/u-radio-group.vue | 128 + uview-ui/components/u-radio/u-radio.vue | 271 ++ uview-ui/components/u-rate/u-rate.vue | 275 ++ .../components/u-read-more/u-read-more.vue | 179 + .../components/u-row-notice/u-row-notice.vue | 269 ++ uview-ui/components/u-row/u-row.vue | 84 + uview-ui/components/u-search/u-search.vue | 342 ++ uview-ui/components/u-section/u-section.vue | 154 + uview-ui/components/u-select/u-select.vue | 440 ++ uview-ui/components/u-skeleton/u-skeleton.vue | 199 + uview-ui/components/u-slider/u-slider.vue | 257 ++ uview-ui/components/u-steps/u-steps.vue | 200 + uview-ui/components/u-sticky/u-sticky.vue | 157 + .../components/u-subsection/u-subsection.vue | 355 ++ .../u-swipe-action/u-swipe-action.vue | 255 ++ uview-ui/components/u-swiper/u-swiper.vue | 339 ++ uview-ui/components/u-switch/u-switch.vue | 163 + uview-ui/components/u-tabbar/u-tabbar.vue | 330 ++ uview-ui/components/u-table/u-table.vue | 84 + .../u-tabs-swiper/u-tabs-swiper.vue | 488 +++ uview-ui/components/u-tabs/u-tabs.vue | 369 ++ uview-ui/components/u-tag/u-tag.vue | 294 ++ uview-ui/components/u-td/u-td.vue | 66 + uview-ui/components/u-th/u-th.vue | 62 + .../u-time-line-item/u-time-line-item.vue | 83 + .../components/u-time-line/u-time-line.vue | 44 + uview-ui/components/u-toast/u-toast.vue | 220 + uview-ui/components/u-top-tips/u-top-tips.vue | 121 + uview-ui/components/u-tr/u-tr.vue | 25 + uview-ui/components/u-upload/u-upload.vue | 667 +++ .../u-verification-code.vue | 164 + .../components/u-waterfall/u-waterfall.vue | 176 + uview-ui/iconfont.css | 910 ++++ uview-ui/index.js | 141 + uview-ui/index.scss | 23 + uview-ui/libs/config/config.js | 15 + uview-ui/libs/config/zIndex.js | 20 + uview-ui/libs/css/color.scss | 155 + uview-ui/libs/css/common.scss | 1025 +++++ uview-ui/libs/css/style.components.scss | 7 + uview-ui/libs/css/style.h5.scss | 8 + uview-ui/libs/css/style.mp.scss | 72 + uview-ui/libs/css/style.nvue.scss | 3 + uview-ui/libs/css/style.vue.scss | 175 + uview-ui/libs/function/$parent.js | 18 + uview-ui/libs/function/addUnit.js | 8 + uview-ui/libs/function/bem.js | 5 + uview-ui/libs/function/color.js | 37 + uview-ui/libs/function/colorGradient.js | 134 + uview-ui/libs/function/debounce.js | 29 + uview-ui/libs/function/deepClone.js | 23 + uview-ui/libs/function/deepMerge.js | 30 + uview-ui/libs/function/getParent.js | 47 + uview-ui/libs/function/guid.js | 41 + uview-ui/libs/function/md5.js | 385 ++ uview-ui/libs/function/queryParams.js | 58 + uview-ui/libs/function/random.js | 10 + uview-ui/libs/function/randomArray.js | 7 + uview-ui/libs/function/route.js | 122 + uview-ui/libs/function/sys.js | 9 + uview-ui/libs/function/test.js | 232 + uview-ui/libs/function/throttle.js | 32 + uview-ui/libs/function/timeFormat.js | 51 + uview-ui/libs/function/timeFrom.js | 47 + uview-ui/libs/function/toast.js | 9 + uview-ui/libs/function/trim.js | 15 + uview-ui/libs/function/type2icon.js | 35 + uview-ui/libs/mixin/mixin.js | 64 + uview-ui/libs/mixin/mpShare.js | 18 + uview-ui/libs/request/index.js | 169 + uview-ui/libs/store/index.js | 19 + uview-ui/libs/util/area.js | 1 + uview-ui/libs/util/async-validator.js | 1356 ++++++ uview-ui/libs/util/city.js | 1 + uview-ui/libs/util/emitter.js | 51 + uview-ui/libs/util/province.js | 1 + uview-ui/package.json | 39 + uview-ui/theme.scss | 38 + vue.config.js | 15 + 396 files changed, 80277 insertions(+) create mode 100644 .gitignore create mode 100644 App.vue create mode 100644 LICENSE create mode 100644 README.md create mode 100644 androidPrivacy.json create mode 100644 common/common.js create mode 100644 common/config.js create mode 100644 common/filters.js create mode 100644 common/http.api.js create mode 100644 common/http.interceptor.js create mode 100644 common/locales/en_EN.js create mode 100644 common/locales/homePage/en.js create mode 100644 common/locales/homePage/zh.js create mode 100644 common/locales/zh_CN.js create mode 100644 common/uni.css create mode 100644 common/vue-i18n.min.js create mode 100644 components/.DS_Store create mode 100644 components/Search/index.vue create mode 100644 components/charts/index.vue create mode 100644 components/echarts/echarts.min.js create mode 100644 components/history-modal/index.vue create mode 100644 components/new-canvas/index.vue create mode 100644 components/new-search/index.vue create mode 100644 components/section/index.vue create mode 100644 components/station-dropdow/index.vue create mode 100644 h5.html create mode 100644 locales/en_EN.js create mode 100644 locales/homePage/en.js create mode 100644 locales/homePage/zh.js create mode 100644 locales/zh_CN.js create mode 100644 main.js create mode 100644 manifest.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 pages.json create mode 100644 pages/guest/index.vue create mode 100644 pages/home-page/alarm/components/alarmevent.vue create mode 100644 pages/home-page/alarm/components/tki-tree/style.css create mode 100644 pages/home-page/alarm/components/tki-tree/tki-tree.vue create mode 100644 pages/home-page/alarm/index.vue create mode 100644 pages/home-page/device-detail/components/air.vue create mode 100644 pages/home-page/device-detail/components/ammeter.vue create mode 100644 pages/home-page/device-detail/components/cluster.vue create mode 100644 pages/home-page/device-detail/components/emu.vue create mode 100644 pages/home-page/device-detail/components/jingke-pcs.vue create mode 100644 pages/home-page/device-detail/components/jingke-stack.vue create mode 100644 pages/home-page/device-detail/components/pack.vue create mode 100644 pages/home-page/device-detail/components/pcs.vue create mode 100644 pages/home-page/device-detail/components/stack.vue create mode 100644 pages/home-page/device-detail/components/yc.vue create mode 100644 pages/home-page/device-detail/components/yx.vue create mode 100644 pages/home-page/device-detail/index.vue create mode 100644 pages/home-page/device-list/index.vue create mode 100644 pages/home-page/earnings/index.vue create mode 100644 pages/home-page/policy-management/index.vue create mode 100644 pages/login/components/dialog.vue create mode 100644 pages/login/index.scss create mode 100644 pages/login/index.vue create mode 100644 pages/sys/user/about.vue create mode 100644 pages/sys/user/currency.vue create mode 100644 pages/sys/user/info.vue create mode 100644 pages/sys/user/message.vue create mode 100644 pages/sys/user/pwd.vue create mode 100644 pages/sys/user/setting.vue create mode 100644 pages/tabbar/components/dischargeChart/index.vue create mode 100644 pages/tabbar/components/environmentalControl/index.vue create mode 100644 pages/tabbar/components/environmentalControl/position.vue create mode 100644 pages/tabbar/components/runChart/index.vue create mode 100644 pages/tabbar/components/stationData/common.vue create mode 100644 pages/tabbar/components/stationData/style/index.css create mode 100644 pages/tabbar/components/stationData/wsh.vue create mode 100644 pages/tabbar/components/stationData/zzhb.vue create mode 100644 pages/tabbar/components/topology/cixi.vue create mode 100644 pages/tabbar/components/topology/devicemonitoring.vue create mode 100644 pages/tabbar/components/topology/fire.vue create mode 100644 pages/tabbar/components/topology/jingke.vue create mode 100644 pages/tabbar/components/topology/kejiyuan.vue create mode 100644 pages/tabbar/components/topology/lingchao.vue create mode 100644 pages/tabbar/components/topology/mdPvdieseTopCenter.vue create mode 100644 pages/tabbar/components/topology/runda100.vue create mode 100644 pages/tabbar/components/topology/runda215.vue create mode 100644 pages/tabbar/components/topology/runda230.vue create mode 100644 pages/tabbar/components/topology/sanmenxia.vue create mode 100644 pages/tabbar/components/topology/second.vue create mode 100644 pages/tabbar/components/topology/standard.vue create mode 100644 pages/tabbar/components/topology/third.vue create mode 100644 pages/tabbar/components/topology/weishanhu.vue create mode 100644 pages/tabbar/components/topology/zhongzihuanbao.vue create mode 100644 pages/tabbar/dashboard.vue create mode 100644 pages/tabbar/electricityPrice.vue create mode 100644 pages/tabbar/mine.vue create mode 100644 static/aidex/device/air.png create mode 100644 static/aidex/device/battery.png create mode 100644 static/aidex/device/bms.png create mode 100644 static/aidex/device/cluster.png create mode 100644 static/aidex/device/emu.png create mode 100644 static/aidex/device/fire.png create mode 100644 static/aidex/device/gui.png create mode 100644 static/aidex/device/other.png create mode 100644 static/aidex/device/pack.png create mode 100644 static/aidex/device/pcs.png create mode 100644 static/aidex/device/unit.png create mode 100644 static/aidex/images/Data-fill.png create mode 100644 static/aidex/images/Data.png create mode 100644 static/aidex/images/My-fill.png create mode 100644 static/aidex/images/My.png create mode 100644 static/aidex/images/Price-fill.png create mode 100644 static/aidex/images/Price.png create mode 100644 static/aidex/images/about.png create mode 100644 static/aidex/images/account-security.png create mode 100644 static/aidex/images/arrow-right.png create mode 100644 static/aidex/images/check.png create mode 100644 static/aidex/images/checked.png create mode 100644 static/aidex/images/dqgl.png create mode 100644 static/aidex/images/edit.png create mode 100644 static/aidex/images/history-icon.png create mode 100644 static/aidex/images/item.png create mode 100644 static/aidex/images/lang.png create mode 100644 static/aidex/images/language.png create mode 100644 static/aidex/images/list-icon.png create mode 100644 static/aidex/images/login-bg.png create mode 100644 static/aidex/images/menu-alarm.png create mode 100644 static/aidex/images/menu-device.png create mode 100644 static/aidex/images/menu-earnings.png create mode 100644 static/aidex/images/menu-policy.png create mode 100644 static/aidex/images/message-icon.png create mode 100644 static/aidex/images/nav-bg.png create mode 100644 static/aidex/images/next.png create mode 100644 static/aidex/images/pcs-energy.png create mode 100644 static/aidex/images/rcdl.png create mode 100644 static/aidex/images/rfdl.png create mode 100644 static/aidex/images/setting.png create mode 100644 static/aidex/images/sy-byzc.png create mode 100644 static/aidex/images/sy-byzf.png create mode 100644 static/aidex/images/sy-ljc.png create mode 100644 static/aidex/images/sy-ljf.png create mode 100644 static/aidex/images/sy-yxtzhl.png create mode 100644 static/aidex/images/sy-zjrl.png create mode 100644 static/aidex/images/sy-zxtzhl.png create mode 100644 static/aidex/images/time.png create mode 100644 static/aidex/images/total-swdl.png create mode 100644 static/aidex/images/total-sy.png create mode 100644 static/aidex/images/total-zfdl.png create mode 100644 static/aidex/images/total-zybl.png create mode 100644 static/aidex/images/total-zydl.png create mode 100644 static/aidex/images/user07.png create mode 100644 static/aidex/images/xtzhl.png create mode 100644 static/aidex/images/yxts.png create mode 100644 static/aidex/images/zcdl.png create mode 100644 static/aidex/images/zfdl.png create mode 100644 static/aidex/images/zjrl.png create mode 100644 static/aidex/login/bg-logo.png create mode 100644 static/aidex/login/eye_close.png create mode 100644 static/aidex/login/eye_open.png create mode 100644 static/aidex/login/password.png create mode 100644 static/aidex/login/user-delete.png create mode 100644 static/aidex/login/user.png create mode 100644 static/aidex/login/warning.png create mode 100644 static/topology/DC.png create mode 100644 static/topology/DCDC.png create mode 100644 static/topology/MPPT.png create mode 100644 static/topology/STS.png create mode 100644 static/topology/ammeter.png create mode 100644 static/topology/battary.png create mode 100644 static/topology/byq.png create mode 100644 static/topology/cang.png create mode 100644 static/topology/device-monitoring.png create mode 100644 static/topology/dianchi.png create mode 100644 static/topology/dianwang.png create mode 100644 static/topology/electric.png create mode 100644 static/topology/fire.png create mode 100644 static/topology/fuzai.png create mode 100644 static/topology/load.png create mode 100644 static/topology/none.png create mode 100644 static/topology/pv.png create mode 100644 static/topology/yiticang.png create mode 100644 static/topology/yitigui.png create mode 100644 static/uni.ttf create mode 100644 store/$u.mixin.js create mode 100644 store/index.js create mode 100644 uni.scss create mode 100644 uni_modules/lime-echart/changelog.md create mode 100644 uni_modules/lime-echart/components/l-echart/canvas.js create mode 100644 uni_modules/lime-echart/components/l-echart/l-echart.vue create mode 100644 uni_modules/lime-echart/components/l-echart/utils.js create mode 100644 uni_modules/lime-echart/components/lime-echart/index.vue create mode 100644 uni_modules/lime-echart/package.json create mode 100644 uni_modules/lime-echart/readme.md create mode 100644 uni_modules/luyj-tree/changelog.md create mode 100644 uni_modules/luyj-tree/components/luyj-tree-item/icon.css create mode 100644 uni_modules/luyj-tree/components/luyj-tree-item/luyj-tree-item.scss create mode 100644 uni_modules/luyj-tree/components/luyj-tree-item/luyj-tree-item.vue create mode 100644 uni_modules/luyj-tree/components/luyj-tree-navigation/icon.css create mode 100644 uni_modules/luyj-tree/components/luyj-tree-navigation/luyj-tree-navigation.scss create mode 100644 uni_modules/luyj-tree/components/luyj-tree-navigation/luyj-tree-navigation.vue create mode 100644 uni_modules/luyj-tree/components/luyj-tree-search/icon.css create mode 100644 uni_modules/luyj-tree/components/luyj-tree-search/luyj-tree-search.vue create mode 100644 uni_modules/luyj-tree/components/luyj-tree/icon.css create mode 100644 uni_modules/luyj-tree/components/luyj-tree/luyj-tree.scss create mode 100644 uni_modules/luyj-tree/components/luyj-tree/luyj-tree.vue create mode 100644 uni_modules/luyj-tree/lib/css/icon.css create mode 100644 uni_modules/luyj-tree/package.json create mode 100644 uni_modules/luyj-tree/readme.md create mode 100644 uni_modules/uni-datetime-picker/changelog.md create mode 100644 uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue create mode 100644 uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue create mode 100644 uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json create mode 100644 uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js create mode 100644 uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json create mode 100644 uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json create mode 100644 uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue create mode 100644 uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue create mode 100644 uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js create mode 100644 uni_modules/uni-datetime-picker/package.json create mode 100644 uni_modules/uni-datetime-picker/readme.md create mode 100644 uni_modules/uni-scss/changelog.md create mode 100644 uni_modules/uni-scss/index.scss create mode 100644 uni_modules/uni-scss/package.json create mode 100644 uni_modules/uni-scss/readme.md create mode 100644 uni_modules/uni-scss/styles/index.scss create mode 100644 uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 uni_modules/uni-scss/theme.scss create mode 100644 uni_modules/uni-scss/variables.scss create mode 100644 uni_modules/uni-table/changelog.md create mode 100644 uni_modules/uni-table/components/uni-table/uni-table.vue create mode 100644 uni_modules/uni-table/components/uni-tbody/uni-tbody.vue create mode 100644 uni_modules/uni-table/components/uni-td/uni-td.vue create mode 100644 uni_modules/uni-table/components/uni-th/filter-dropdown.vue create mode 100644 uni_modules/uni-table/components/uni-th/uni-th.vue create mode 100644 uni_modules/uni-table/components/uni-thead/uni-thead.vue create mode 100644 uni_modules/uni-table/components/uni-tr/table-checkbox.vue create mode 100644 uni_modules/uni-table/components/uni-tr/uni-tr.vue create mode 100644 uni_modules/uni-table/i18n/en.json create mode 100644 uni_modules/uni-table/i18n/es.json create mode 100644 uni_modules/uni-table/i18n/fr.json create mode 100644 uni_modules/uni-table/i18n/index.js create mode 100644 uni_modules/uni-table/i18n/zh-Hans.json create mode 100644 uni_modules/uni-table/i18n/zh-Hant.json create mode 100644 uni_modules/uni-table/package.json create mode 100644 uni_modules/uni-table/readme.md create mode 100644 uni_modules/zero-loading/changelog.md create mode 100644 uni_modules/zero-loading/components/zero-loading/static/loading-atom.vue create mode 100644 uni_modules/zero-loading/components/zero-loading/zero-loading.vue create mode 100644 uni_modules/zero-loading/package.json create mode 100644 uni_modules/zero-loading/readme.md create mode 100644 uview-ui/LICENSE create mode 100644 uview-ui/README.md create mode 100644 uview-ui/components/u-action-sheet/u-action-sheet.vue create mode 100644 uview-ui/components/u-alert-tips/u-alert-tips.vue create mode 100644 uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue create mode 100644 uview-ui/components/u-avatar-cropper/weCropper.js create mode 100644 uview-ui/components/u-avatar/u-avatar.vue create mode 100644 uview-ui/components/u-back-top/u-back-top.vue create mode 100644 uview-ui/components/u-badge/u-badge.vue create mode 100644 uview-ui/components/u-button/u-button.vue create mode 100644 uview-ui/components/u-calendar/u-calendar.vue create mode 100644 uview-ui/components/u-car-keyboard/u-car-keyboard.vue create mode 100644 uview-ui/components/u-card/u-card.vue create mode 100644 uview-ui/components/u-cell-group/u-cell-group.vue create mode 100644 uview-ui/components/u-cell-item/u-cell-item.vue create mode 100644 uview-ui/components/u-checkbox-group/u-checkbox-group.vue create mode 100644 uview-ui/components/u-checkbox/u-checkbox.vue create mode 100644 uview-ui/components/u-circle-progress/u-circle-progress.vue create mode 100644 uview-ui/components/u-circle-progress/u-line-progress/u-line-progress.vue create mode 100644 uview-ui/components/u-col/u-col.vue create mode 100644 uview-ui/components/u-collapse-item/u-collapse-item.vue create mode 100644 uview-ui/components/u-collapse/u-collapse.vue create mode 100644 uview-ui/components/u-column-notice/u-column-notice.vue create mode 100644 uview-ui/components/u-count-down/u-count-down.vue create mode 100644 uview-ui/components/u-count-to/u-count-to.vue create mode 100644 uview-ui/components/u-divider/u-divider.vue create mode 100644 uview-ui/components/u-dropdown-item/u-dropdown-item.vue create mode 100644 uview-ui/components/u-dropdown/u-dropdown.vue create mode 100644 uview-ui/components/u-empty/u-empty.vue create mode 100644 uview-ui/components/u-field/u-field.vue create mode 100644 uview-ui/components/u-form-item/u-form-item.vue create mode 100644 uview-ui/components/u-form/u-form.vue create mode 100644 uview-ui/components/u-full-screen/u-full-screen.vue create mode 100644 uview-ui/components/u-gap/u-gap.vue create mode 100644 uview-ui/components/u-grid-item/u-grid-item.vue create mode 100644 uview-ui/components/u-grid/u-grid.vue create mode 100644 uview-ui/components/u-icon/u-icon.vue create mode 100644 uview-ui/components/u-image/u-image.vue create mode 100644 uview-ui/components/u-index-anchor/u-index-anchor.vue create mode 100644 uview-ui/components/u-index-list/u-index-list.vue create mode 100644 uview-ui/components/u-input/u-input.vue create mode 100644 uview-ui/components/u-keyboard/u-keyboard.vue create mode 100644 uview-ui/components/u-lazy-load/u-lazy-load.vue create mode 100644 uview-ui/components/u-line-progress/u-line-progress.vue create mode 100644 uview-ui/components/u-line/u-line.vue create mode 100644 uview-ui/components/u-link/u-link.vue create mode 100644 uview-ui/components/u-loading-page/u-loading-page.vue create mode 100644 uview-ui/components/u-loading/u-loading.vue create mode 100644 uview-ui/components/u-loadmore/u-loadmore.vue create mode 100644 uview-ui/components/u-mask/u-mask.vue create mode 100644 uview-ui/components/u-message-input/u-message-input.vue create mode 100644 uview-ui/components/u-modal/u-modal.vue create mode 100644 uview-ui/components/u-navbar/u-navbar.vue create mode 100644 uview-ui/components/u-no-network/u-no-network.vue create mode 100644 uview-ui/components/u-notice-bar/u-notice-bar.vue create mode 100644 uview-ui/components/u-number-box/u-number-box.vue create mode 100644 uview-ui/components/u-number-keyboard/u-number-keyboard.vue create mode 100644 uview-ui/components/u-parse/libs/CssHandler.js create mode 100644 uview-ui/components/u-parse/libs/MpHtmlParser.js create mode 100644 uview-ui/components/u-parse/libs/config.js create mode 100644 uview-ui/components/u-parse/libs/handler.wxs create mode 100644 uview-ui/components/u-parse/libs/trees.vue create mode 100644 uview-ui/components/u-parse/u-parse.vue create mode 100644 uview-ui/components/u-picker/u-picker.vue create mode 100644 uview-ui/components/u-popup/u-popup.vue create mode 100644 uview-ui/components/u-radio-group/u-radio-group.vue create mode 100644 uview-ui/components/u-radio/u-radio.vue create mode 100644 uview-ui/components/u-rate/u-rate.vue create mode 100644 uview-ui/components/u-read-more/u-read-more.vue create mode 100644 uview-ui/components/u-row-notice/u-row-notice.vue create mode 100644 uview-ui/components/u-row/u-row.vue create mode 100644 uview-ui/components/u-search/u-search.vue create mode 100644 uview-ui/components/u-section/u-section.vue create mode 100644 uview-ui/components/u-select/u-select.vue create mode 100644 uview-ui/components/u-skeleton/u-skeleton.vue create mode 100644 uview-ui/components/u-slider/u-slider.vue create mode 100644 uview-ui/components/u-steps/u-steps.vue create mode 100644 uview-ui/components/u-sticky/u-sticky.vue create mode 100644 uview-ui/components/u-subsection/u-subsection.vue create mode 100644 uview-ui/components/u-swipe-action/u-swipe-action.vue create mode 100644 uview-ui/components/u-swiper/u-swiper.vue create mode 100644 uview-ui/components/u-switch/u-switch.vue create mode 100644 uview-ui/components/u-tabbar/u-tabbar.vue create mode 100644 uview-ui/components/u-table/u-table.vue create mode 100644 uview-ui/components/u-tabs-swiper/u-tabs-swiper.vue create mode 100644 uview-ui/components/u-tabs/u-tabs.vue create mode 100644 uview-ui/components/u-tag/u-tag.vue create mode 100644 uview-ui/components/u-td/u-td.vue create mode 100644 uview-ui/components/u-th/u-th.vue create mode 100644 uview-ui/components/u-time-line-item/u-time-line-item.vue create mode 100644 uview-ui/components/u-time-line/u-time-line.vue create mode 100644 uview-ui/components/u-toast/u-toast.vue create mode 100644 uview-ui/components/u-top-tips/u-top-tips.vue create mode 100644 uview-ui/components/u-tr/u-tr.vue create mode 100644 uview-ui/components/u-upload/u-upload.vue create mode 100644 uview-ui/components/u-verification-code/u-verification-code.vue create mode 100644 uview-ui/components/u-waterfall/u-waterfall.vue create mode 100644 uview-ui/iconfont.css create mode 100644 uview-ui/index.js create mode 100644 uview-ui/index.scss create mode 100644 uview-ui/libs/config/config.js create mode 100644 uview-ui/libs/config/zIndex.js create mode 100644 uview-ui/libs/css/color.scss create mode 100644 uview-ui/libs/css/common.scss create mode 100644 uview-ui/libs/css/style.components.scss create mode 100644 uview-ui/libs/css/style.h5.scss create mode 100644 uview-ui/libs/css/style.mp.scss create mode 100644 uview-ui/libs/css/style.nvue.scss create mode 100644 uview-ui/libs/css/style.vue.scss create mode 100644 uview-ui/libs/function/$parent.js create mode 100644 uview-ui/libs/function/addUnit.js create mode 100644 uview-ui/libs/function/bem.js create mode 100644 uview-ui/libs/function/color.js create mode 100644 uview-ui/libs/function/colorGradient.js create mode 100644 uview-ui/libs/function/debounce.js create mode 100644 uview-ui/libs/function/deepClone.js create mode 100644 uview-ui/libs/function/deepMerge.js create mode 100644 uview-ui/libs/function/getParent.js create mode 100644 uview-ui/libs/function/guid.js create mode 100644 uview-ui/libs/function/md5.js create mode 100644 uview-ui/libs/function/queryParams.js create mode 100644 uview-ui/libs/function/random.js create mode 100644 uview-ui/libs/function/randomArray.js create mode 100644 uview-ui/libs/function/route.js create mode 100644 uview-ui/libs/function/sys.js create mode 100644 uview-ui/libs/function/test.js create mode 100644 uview-ui/libs/function/throttle.js create mode 100644 uview-ui/libs/function/timeFormat.js create mode 100644 uview-ui/libs/function/timeFrom.js create mode 100644 uview-ui/libs/function/toast.js create mode 100644 uview-ui/libs/function/trim.js create mode 100644 uview-ui/libs/function/type2icon.js create mode 100644 uview-ui/libs/mixin/mixin.js create mode 100644 uview-ui/libs/mixin/mpShare.js create mode 100644 uview-ui/libs/request/index.js create mode 100644 uview-ui/libs/store/index.js create mode 100644 uview-ui/libs/util/area.js create mode 100644 uview-ui/libs/util/async-validator.js create mode 100644 uview-ui/libs/util/city.js create mode 100644 uview-ui/libs/util/emitter.js create mode 100644 uview-ui/libs/util/province.js create mode 100644 uview-ui/package.json create mode 100644 uview-ui/theme.scss create mode 100644 vue.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..40b83b5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/unpackage/dist/* +/unpackage/cache/* +/node_modules/* +/.hbuilderx/* +/.idea/* +/.vscode/* +deploy.sh diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..4b83500 --- /dev/null +++ b/App.vue @@ -0,0 +1,40 @@ + + \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d1e1072 --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +MIT License diff --git a/README.md b/README.md new file mode 100644 index 0000000..e802a2f --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ + + + +#### 快速体验 + +2、微信小程序端:扫码访问(目前只能用用户名密码方式登录,用户名: 密码:)

+ + +#### 如何使用uni-app端 + +##### 一、导入uniapp项目 + + 1. 首先下载HBuilderX并安装,地址:https://www.dcloud.io/hbuilderx.html + 2. 打开HBuilderX -> 顶部菜单栏 -> 文件 -> 导入 -> 从本地目录导入 -> 选择uniapp端项目目录 + 3. 找到common/config.js文件,找到里面的apiUrl项,填入已搭建的后端url地址 + 4. 打开manifest.json文件,选择微信小程序配置,填写小程序的appid + +##### 二、本地调试 + + 1. 打开HBuilderX -> 顶部菜单栏 -> 运行 -> 运行到浏览器 -> Chrome + 2. 如果请求后端api时 提示跨域错误,可安装Chrome插件:【Allow CORS: Access-Control-Allow-Origin】,地址:https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf + +##### 三、打包发行(H5) + + 1. 打开HBuilderX -> 顶部菜单栏 -> 发行 -> 网站H5-手机版 + 2. 打包后的文件路径:/unpackage/dist/build/h5 + 3. 将打包完成的所有文件 复制到商城后端/pulic目录下,全部替换 + +##### 四、打包发行(微信小程序) + + 1. 下载微信开发者工具并安装,地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html + 2. 打开HBuilderX -> 顶部菜单栏 -> 发行 -> 小程序-微信 + 3. 打包后的文件路径:/unpackage/dist/build/mp-weixin + 5. 打开微信开发者工具 导入 打包完成的项目 + 6. 检查没有运行错误,在右上方上传小程序 + + + +#### uniapp知识 + +1. uni-app介绍 +2. uni-app 官方视频教程 +3. uni-app开发工具 HBuilderX 下载及使用说明 +4. uni-app是什么?能解决什么问题 +5. Vue.js相关文档、视频教程 + +#### 技术手册 + +* uni-app 框架文档 +* uni-app 组件文档 +* uView 组件文档 +* uView JS 文档 + + diff --git a/androidPrivacy.json b/androidPrivacy.json new file mode 100644 index 0000000..6ea7f39 --- /dev/null +++ b/androidPrivacy.json @@ -0,0 +1,38 @@ +{ + "version": "1", + "prompt": "template", + "title": "服务协议和隐私政策", + "message": "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。
  你可阅读《服务协议》《隐私政策》了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。", + "buttonAccept": "同意并接受", + "buttonRefuse": "暂不同意", + "hrefLoader": "system", + "backToExit":"false", + "second": { + "title": "确认提示", + "message": "  进入应用前,你需先同意《服务协议》《隐私政策》,否则将退出应用。", + "buttonAccept": "同意并继续", + "buttonRefuse": "退出应用" + }, + "disagreeMode":{ + "support": false, + "loadNativePlugins": false, + "visitorEntry": false, + "showAlways": false + }, + "styles": { + "backgroundColor": "#fff", + "borderRadius":"5px", + "title": { + "color": "#000000" + }, + "buttonAccept": { + "color": "#009c77" + }, + "buttonRefuse": { + "color": "#999999" + }, + "buttonVisitor": { + "color": "#999999" + } + } +} diff --git a/common/common.js b/common/common.js new file mode 100644 index 0000000..f46fd02 --- /dev/null +++ b/common/common.js @@ -0,0 +1,250 @@ +/** + * 通用js方法封装处理 + */ +import CryptoJS from 'crypto-js' +import JSEncrypt from 'jsencrypt' +export function replaceAll (text, stringToFind, stringToReplace) { + if (stringToFind == stringToReplace) return this + var temp = text + var index = temp.indexOf(stringToFind) + while (index != -1) { + temp = temp.replace(stringToFind, stringToReplace) + index = temp.indexOf(stringToFind) + } + return temp +} + +export function encryptPsd (data) { + const RamKey = getRamNumber() + const RamIv = getRamNumber() + const key = CryptoJS.enc.Utf8.parse(RamKey) + const iv = CryptoJS.enc.Utf8.parse(RamIv) + const srcs = CryptoJS.enc.Utf8.parse(data) + var encrypted = CryptoJS.AES.encrypt(srcs, key, { + iv: iv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }) + + return { + key: RamKey, + iv: RamIv, + password: CryptoJS.enc.Base64.stringify(encrypted.ciphertext) + } +} +export function encryptUpdatePsd (RamIv,RamKey,data) { + const key = CryptoJS.enc.Utf8.parse(RamKey) + const iv = CryptoJS.enc.Utf8.parse(RamIv) + const srcs = CryptoJS.enc.Utf8.parse(data) + var encrypted = CryptoJS.AES.encrypt(srcs, key, { + iv: iv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }) + + return CryptoJS.enc.Base64.stringify(encrypted.ciphertext) +} +export function getRamNumber () { + var result = '' + for (var i = 0; i < 16; i++) { + result += Math.floor(Math.random() * 16).toString(16)// 获取0-15并通过toString转16进制 + } + // 默认字母小写,手动转大写 + return result.toUpperCase()// 另toLowerCase()转小写 +} +export function JSEncryptData (iv, key) { + const encrypt = new JSEncrypt() + // 将公钥存入内 + const publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuG6ZABNgLQCI9iVPDuJEb7xb5zR9UGKyKXshLuJFZxyNtaEzfpjSMqsshUYA1QpwUvkmZE0lcRE4F4QtZO9rDnH2PoW1FWRbjgg0+MKWOmZr9hSPKM/BIE+knTtTaj4/0TK7QwDd9q/QAIduC1hIyxIIkxfWx0gFuTnxui0waCwIDAQAB' + encrypt.setPublicKey(publicKey) + const ivData = encrypt.encrypt(iv) + const keyData = encrypt.encrypt(key) + return { + ivData: ivData, + keyData: keyData + } +} + +/** + * Parse the time to string + * @param {(Object|string|number)} time + * @param {string} cFormat + * @returns {string | null} + */ +export function parseTime (time, cFormat) { + if (arguments.length === 0 || !time) { + return null + } + const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' + let date + if (typeof time === 'object') { + date = time + } else { + if ((typeof time === 'string')) { + if ((/^[0-9]+$/.test(time))) { + // support "1548221490638" + time = parseInt(time) + } else { + // support safari + // https://stackoverflow.com/questions/4310953/invalid-date-in-safari + time = time.replace(new RegExp(/-/gm), '/') + } + } + + if ((typeof time === 'number') && (time.toString().length === 10)) { + time = time * 1000 + } + date = new Date(time) + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + } + const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { + const value = formatObj[key] + // Note: getDay() returns 0 on Sunday + if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } + return value.toString().padStart(2, '0') + }) + return time_str +} +export function getLastYear (yearNum = 1) { + const today = new Date() // 当天 + today.setFullYear(today.getFullYear() - yearNum) + return today +} +export function getLastDay (yearNum = 1) { + const today = new Date() // 当天 + today.setDate(today.getDate() - yearNum) + return today +} + + +export function transformTree (array, id_key, parentId_key, isRoot) { + if (!array) return [] + const idsObj = array.reduce((pre, cur) => Object.assign(pre, { [cur[id_key]]: cur }), {}) + return Object.values(idsObj).reduce((pre, cur) => { + const parent = idsObj[cur[parentId_key]] + if (!isRoot(cur, parent)) { + !parent.children && (parent.children = []) + const children = parent.children + !children.includes(cur) && children.push(cur) + } else { + pre.push(cur) + } + return pre + }, []) +} + +//判断值为空的状态 +export function formatValue(type,value){ + if(type === 'number'){ + if(value === null || value === undefined){ + return 0 + } + return value + }else if(type ==='string'){ + if(value === null || value === undefined){ + return '' + } + return value + + } + + return value +} + + +export function dataConversion(target) { + let date = new Date(target); + let y = date.getFullYear(); // 年 + let MM = date.getMonth() + 1; // 月 + MM = MM < 10 ? ('0' + MM) : MM; + let d = date.getDate(); // 日 + d = d < 10 ? ('0' + d) : d; + let h = date.getHours(); // 时 + h = h < 10 ? ('0' + h) : h; + let m = date.getMinutes(); // 分 + m = m < 10 ? ('0' + m) : m; + let s = date.getSeconds(); // 秒 + s = s < 10 ? ('0' + s) : s; + return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s; +} + +export function chartYIndex(value) { + if (value.name.toLowerCase().includes('pcs') || value.name.includes('有功功率')) { + return 0 + } else if (value.name.toLowerCase().includes('bms') || value.name.toLowerCase().includes('soc')) { + return 1 + } else { + return 0 + } +} + +export function beforeDayTime() { + // 获取当前时间 + var now = new Date(); + + // 将时间调整到24小时前 + now.setHours(now.getHours() - 24); + + // 格式化输出开始时间 + var year_start = now.getFullYear(); + var month_start = now.getMonth() + 1; + month_start = month_start < 10 ? "0" + month_start : month_start; + var day_start = now.getDate(); + day_start = day_start < 10 ? "0" + day_start : day_start; + var hours_start = now.getHours(); + hours_start = hours_start < 10 ? "0" + hours_start : hours_start; + var minutes_start = now.getMinutes(); + minutes_start = minutes_start < 10 ? "0" + minutes_start : minutes_start; + var seconds_start = now.getSeconds(); + seconds_start = seconds_start < 10 ? "0" + seconds_start : seconds_start; + var formattedTime_start = + year_start + + "-" + + month_start + + "-" + + day_start + + " " + + hours_start + + ":" + + minutes_start + + ":" + + seconds_start; + + // 获取当前时间 + var now_end = new Date(); + + // 格式化输出结束时间 + var year_end = now_end.getFullYear(); + var month_end = now_end.getMonth() + 1; + month_end = month_end < 10 ? "0" + month_end : month_end; + var day_end = now_end.getDate(); + day_end = day_end < 10 ? "0" + day_end : day_end; + var hours_end = now_end.getHours(); + hours_end = hours_end < 10 ? "0" + hours_end : hours_end; + var minutes_end = now_end.getMinutes(); + minutes_end = minutes_end < 10 ? "0" + minutes_end : minutes_end; + var seconds_end = now_end.getSeconds(); + seconds_end = seconds_end < 10 ? "0" + seconds_end : seconds_end; + var formattedTime_end = + year_end + + "-" + + month_end + + "-" + + day_end + + " " + + hours_end + + ":" + + minutes_end + + ":" + + seconds_end; + return [formattedTime_start, formattedTime_end]; + +} \ No newline at end of file diff --git a/common/config.js b/common/config.js new file mode 100644 index 0000000..3358ea3 --- /dev/null +++ b/common/config.js @@ -0,0 +1,27 @@ + +const config = { + + // 产品名称 + productName: 'Hoenery', + + // 公司名称 + companyName: 'Hoenery', + + // 产品版本号 + productVersion: 'V1.0.0', + + // 版本检查标识 + appCode: 'android', + + // 内部版本号码 + appVersion: '1.0.0', + + // 管理基础路径 + adminPath: '' + +} + +// 设置后台接口服务的基础地址 +config.baseUrl = "https://ecloud.hoenergypower.cn/api" + +export default config \ No newline at end of file diff --git a/common/filters.js b/common/filters.js new file mode 100644 index 0000000..22552eb --- /dev/null +++ b/common/filters.js @@ -0,0 +1,229 @@ +// import parseTime, formatTime and set to filter +// export { parseTime, formatTime } from '@/utils' + +/** + * Show plural label if time is plural number + * @param {number} time + * @param {string} label + * @return {string} + */ +function pluralize(time, label) { + if (time === 1) { + return time + label + } + return time + label + 's' +} + +/** + * @param {number} time + */ +export function timeAgo(time) { + const between = Date.now() / 1000 - Number(time) + if (between < 3600) { + return pluralize(~~(between / 60), ' minute') + } else if (between < 86400) { + return pluralize(~~(between / 3600), ' hour') + } else { + return pluralize(~~(between / 86400), ' day') + } +} + +/** + * Number formatting + * like 10000 => 10k + * @param {number} num + * @param {number} digits + */ +export function numberFormatter(num, digits) { + const si = [ + { value: 1E18, symbol: 'E' }, + { value: 1E15, symbol: 'P' }, + { value: 1E12, symbol: 'T' }, + { value: 1E9, symbol: 'G' }, + { value: 1E6, symbol: 'M' }, + { value: 1E3, symbol: 'k' } + ] + for (let i = 0; i < si.length; i++) { + if (num >= si[i].value) { + return (num / si[i].value).toFixed(digits).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol + } + } + return num.toString() +} + +/** + * 10000 => "10,000" + * @param {number} num + */ +export function toThousandFilter(num) { + return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ',')) +} + +/** + * Upper case first char + * @param {String} string + */ +export function uppercaseFirst(string) { + return string.charAt(0).toUpperCase() + string.slice(1) +} +/** + * Number formatting + * kwh 转化 Mwh + * @param {number} num + * @param {number} digits + */ +export function kwhFormat(num, digits) { + if (!num) { + return 0 + } + if (!digits) { + digits = 2 + } + if(Number(num) >= 1E7){ + return (Number(num) / 1E6).toFixed(digits) + '' + }else if (Number(num) >= 1E4) { + return (Number(num) / 1E3).toFixed(digits) + '' + } + return Number(num).toFixed(digits) + '' +} +/** + * Number formatting + * kwh 转化 Mwh + * @param {number} num + * @param {number} digits + */ +export function kWFormat(num, digits) { + if (!num) { + return 0 + } + if (!digits) { + digits = 2 + } + if (Number(num) >= 1E4) { + return (Number(num) / 1E3).toFixed(digits) + '' + } + return Number(num).toFixed(digits) + '' +} +/** + * unit formatting + * kwh 转化 Mwh + * @param {number} num + * @param {number} digits + */ +export function kwhUnitFormat(num) { + if (!num) { + return 'kWh' + } + if(Number(num) >= 1E7){ + return 'GWh' + }else if (Number(num) >= 1E4) { + return 'MWh' + } + + return 'kWh' +} + +/** + * unit formatting + * kwh 转化 Mwh + * @param {number} num + * @param {number} digits + */ +export function kwpUnitFormat(num) { + if (!num) { + return 'kWp' + } + if (Number(num) >= 1E4) { + return 'Mwp' + } + return 'kWp' +} +/** + * unit formatting + * kwh 转化 Mwh + * @param {number} num + * @param {number} digits + */ +export function kwUnitFormat(num) { + if (!num) { + return 'kW' + } + if (Number(num) >= 1E4) { + return 'MW' + } + return 'kW' +} +/** + * mone formatting + * 元 转化 万元 + * @param {number} num + * @param {number} digits + */ +export function moneyFormat(num, digits) { + if (!num) { + return 0 + } + if (!digits) { + digits = 2 + } + if (Number(num) >= 1E4) { + return (Number(num) / 1E4).toFixed(digits) + } + return Number(num).toFixed(digits) +} +/** + * mone formatting + * kg 转化 吨 + * @param {number} num + * @param {number} digits + */ +export function kgFormat(num, digits) { + if (!num) { + return 0 + '' + } + if (!digits) { + digits = 2 + } + if (Number(num) >= 1E3) { + return (Number(num) / 1E3).toFixed(digits) + '' + } + return Number(num).toFixed(digits) + '' +} +/** + * unit formatting + * 元 转化 万元 + * @param {number} num + * @param {number} digits + */ +export function moneyUnitFormat(num) { + if (!num) { + return '元' + } + if (Number(num) >= 1E4) { + return '万元' + } + return '元' +} +/** + * unit formatting + * kg 转化 吨 + * @param {number} num + * @param {number} digits + */ +export function KgUnitFormat(num) { + if (!num) { + return 'kg' + } + if (Number(num) >= 1E3) { + return '吨' + } + return 'kg' +} + +export function isNull(num){ + if(!num && num !== 0 || num === 'NaN'){ + return '' + }else{ + return num + } +} \ No newline at end of file diff --git a/common/http.api.js b/common/http.api.js new file mode 100644 index 0000000..0e95070 --- /dev/null +++ b/common/http.api.js @@ -0,0 +1,489 @@ +// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作 +const install = (Vue, vm) => { + // 参数配置对象 + const config = vm.vuex_config + + // 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下 + vm.$u.api = { + // 基础服务:登录登出、身份信息、菜单授权、切换系统、字典数据等 + login: (params = {}) => vm.$u.post(config.adminPath + "/sys/user/login", params), + getMenuList: (params = {}) => vm.$u.get(config.adminPath + "/sys/user/get"), + getAllDict: (params = {}) => vm.$u.post(config.adminPath + "/sys/dict/typeAll", params), + getStationByUser: (params = {}) => vm.$u.post(config.adminPath + "/business/station"), + getUserInfo: (params = {}) => vm.$u.get(config.adminPath + "/sys/user/get", params), + changePsd: (params = {}) => vm.$u.put(config.adminPath + "/sys/user/pwd", params), + logout: (params = {}) => vm.$u.get(config.adminPath + "/sys/user/logout", params), + GetDictListByType: (params = {}) => vm.$u.post(config.adminPath + "/sys/dict/typeList", params), + GetNewFile: (params = {}) => vm.$u.post(config.adminPath + "/business/station/selectLastOne?version=" + + params), + + + + lang: (params = {}) => vm.$u.get("/lang/" + params.lang), + index: (params = {}) => vm.$u.get(config.adminPath + "/mobile/index", params), + + sendCode: (params = {}) => + vm.$u.post(config.adminPath + "/mobile/login/sendCode", params), + registerUser: (params = {}) => + vm.$u.post(config.adminPath + "/mobile/user/registerUser", params), + //首页相关api + getIndexCardInfo: (params = {}) => + vm.$u.get(config.adminPath + "/mobile/index/getIndexCardInfo", params), + getM2mOrderFlowList: (params = {}) => + vm.$u.get(config.adminPath + "/mobile/index/getM2mOrderFlowList", params), + //获取卡可购买套餐包 + getM2mOrderPackageList: (params = {}) => + vm.$u.get( + config.adminPath + "/mobile/index/getM2mOrderPackageList", + params + ), + + authInfo: (params = {}) => + vm.$u.get(config.adminPath + "/authInfo", params), + menuTree: (params = {}) => + vm.$u.get(config.adminPath + "/menuTree", params), + switchSys: (params = {}) => + vm.$u.get(config.adminPath + "/switch/" + params.sysCode), + dictData: (params = {}) => + vm.$u.get(config.adminPath + "/system/dict/data/type/" + params.dictType), + + // 账号服务:验证码接口、忘记密码接口、注册账号接口等 + validCode: (params = {}) => vm.$u.getText("/validCode", params), + getFpValidCode: (params = {}) => + vm.$u.post("/account/getFpValidCode", params), + savePwdByValidCode: (params = {}) => + vm.$u.post("/account/savePwdByValidCode", params), + getRegValidCode: (params = {}) => + vm.$u.post("/account/getRegValidCode", params), + saveRegByValidCode: (params = {}) => + vm.$u.post("/account/saveRegByValidCode", params), + + // APP公共服务 + upgradeCheck: () => + vm.$u.post("/app/upgrade/check", { + appCode: config.appCode, + appVersion: config.appVersion, + }), + commentSave: (params = {}) => vm.$u.post("/app/comment/save", params), + + //获取通知 + GetMessage: (params = {}) => + vm.$u.post("/business/messageInfo/selectMessageInfo", params), + UpdateMessageStatus: (params = {}) => + vm.$u.post("/business/messageInfo/updateMessageReadStatus", params), + + GetLanguageConfig:(params = {}) => + vm.$u.post("/business/station/getTermDictionary", params), + + // 个人信息修改 + user: { + saveUserInfo: (params = {}) => + vm.$u.post(config.adminPath + "/mobile/user/saveUserInfo", params), + infoSavePwd: (params = {}) => + vm.$u.put(config.adminPath + "/system/user/profile/updatePwd", params), + infoSavePqa: (params = {}) => + vm.$u.post(config.adminPath + "/sys/user/infoSavePqa", params), + }, + + // 员工用户查询 + empUser: { + listData: (params = {}) => + vm.$u.get(config.adminPath + "/sys/empUser/listData", params), + }, + + // 组织机构查询 + office: { + treeData: (params = {}) => + vm.$u.get(config.adminPath + "/sys/office/treeData", params), + }, + + + //实时告警 + alarm: { + // 获取告警事件列表 + GetAlarmList: (params = {}) => + vm.$u.post(config.adminPath + "/flow/event/page", params), + // 获取告警事件列表 + GetHistoryAlarmList: (params = {}) => + vm.$u.post(config.adminPath + "/flow/event/hispage", params), + + //获取电站数据 + GetStationlist: (params = {}) => + vm.$u.post(config.adminPath + "/business/station", params), + + //获取联级电站数据 + GetNewStationlist: (params = {}) => + vm.$u.post(config.adminPath + "/business/station/nationStation", params), + + // 获取设备类型 + GetDeviceType: (params = {}) => + vm.$u.post(config.adminPath + "/business/device/treeDevices", params), + + // 获取历史告警数据 + GetAlarmHistoryList: (params = {}) => + vm.$u.post(config.adminPath + "/business/event/hispage", params), + + // 确认告警 + SetAlarmConfirm: (params = {}) => + vm.$u.put(config.adminPath + "/flow/event/confirm", params), + + // 告警数量 + GetEventNumber: (params = {}) => + vm.$u.post(config.adminPath + "flow/event/eventNum"), + }, + + // 增删改查例子 + testData: { + form: (params = {}) => + vm.$u.post(config.adminPath + "/test/testData/form", params), + list: (params = {}) => + vm.$u.post(config.adminPath + "/test/testData/listData", params), + save: (params = {}) => + vm.$u.postJson(config.adminPath + "/test/testData/save", params), + disable: (params = {}) => + vm.$u.post(config.adminPath + "/test/testData/disable", params), + enable: (params = {}) => + vm.$u.post(config.adminPath + "/test/testData/enable", params), + delete: (params = {}) => + vm.$u.post(config.adminPath + "/test/testData/delete", params), + }, + + // 工单 + workOrder: { + // 获取工单数量 + GetQueryTodoList: (params = {}) => + vm.$u.post(config.adminPath + "/flow/processFlow/queryTodoList", params), + // 获取单个工单信息 + GetWorkOrderDetail: (params = {}) => + vm.$u.post(config.adminPath + "/flow/processFlow/workOrderDetails", params), + // 保存工单 + saveOrder: (params = {}) => + vm.$u.post(config.adminPath + "/flow/processFlow/saveOrder", params), + // 完成工单 + doTask: (params = {}) => + vm.$u.post(config.adminPath + "/flow/processFlow/doTask", params), + // 文件下载 + FileDownload: (params = {}) => + vm.$u.post(config.adminPath + "/media/currencyFile/download", params), + }, + + //电站 + station: { + //获取电站状态 + GetStationStatus: (params = {}) => + vm.$u.post(config.adminPath + "/business/station/findStationStatus", params), + // 根据电站状态查询电站 + getStationListByStatus: (params = {}) => + vm.$u.post(config.adminPath + "/business/station/findListByStationStatus ", params), + getStationPostionData: (params = {}) => + vm.$u.post(config.adminPath + "/business/dynamicConfig/pointListData", params) + }, + + //设备 + device: { + //按电站查询设备类型,维护设备的设备类型时使用 + GetDeviceType: (params = {}) => + vm.$u.post(config.adminPath + "/business/deviceConfig/queryDeviceTypeByGroup", params), + // 电站下的设备 + GetDeviceByStationId: (id = {}) => + vm.$u.get(config.adminPath + "/business/device/" + id), + // 电站下的设备 + GetDeviceByType: (params = {}) => + vm.$u.post(config.adminPath + "/business/device/page", params), + + + + }, + + //告警 + warning: { + // 设备下的告警 + getWarningListById: (params = {}) => + vm.$u.post(config.adminPath + "/flow/event/dropDownList", params), + }, + + //集团数据 + groupData: { + // 给电站用的大屏数据----总览页面 + getForStationCockpit: (params = {}) => + vm.$u.post(config.adminPath + "/business/pvStation/forStationCockpit", params), + + ///分页查询电站 + getStationPage: (params = {}) => + vm.$u.post(config.adminPath + "/business/station/page", params), + + //根据电站id查询电站详情 + getStationDetailById: (id = {}) => + vm.$u.post(config.adminPath + "/business/station/" + id), + + //根据电站id查询电站数据 + getStationData: (params = {}) => + vm.$u.post(config.adminPath + "/business/pvStation/pvPanel", params), + + //根据电站id查询电站实时曲线 + getStationRealtimeCurve: (params = {}) => + vm.$u.post(config.adminPath + "/business/pvStation/realtimeCurve", params), + + //根据电站id查询电站设备 + getStationDevice: (params = {}) => + vm.$u.post(config.adminPath + "/business/pvStation/inverterList", params), + + //根据设备的数据 + getDevicePanelData: (params = {}) => + vm.$u.post(config.adminPath + "/business/inverter/panelData", params), + //根据设备的功率曲线 + getDeviceCurve: (params = {}) => + vm.$u.post(config.adminPath + "/business/inverter/curve", params), + //根据设备的点 + getDeviceDot: (params = {}) => + vm.$u.post(config.adminPath + "/business/inverter/attribute", params), + }, + + //策略模块 + + policy: { + // 查询下发设备接口 + getIssueDevices: (params = {}) => + vm.$u.post(config.adminPath + "/business/planningIssue/getIssueDevices", params), + + // 查询计划曲线模板接口 + getTemplate: (params = {}) => + vm.$u.post(config.adminPath + "/business/planningIssue/getTemplate", params), + + // 查询下发模型数据(取出data数据发给下发接口) + getIssueDatas: (params = {}) => + vm.$u.post(config.adminPath + "/business/planningIssue/getIssueDatas", params), + + // 查看设备下发状态 + queryIssueStatus: (params = {}) => + vm.$u.post(config.adminPath + "/business/planningIssue/queryIssueStatus", params), + + // 查看设备下发状态 + insertIssueStatus: (params = {}) => + vm.$u.post(config.adminPath + "/business/planningIssue/insertIssueStatus", params), + + // 查看详情 + lookPlanningCurveTemplateDetail: (params = {}) => + vm.$u.post(config.adminPath + "/business/planning/planningCurveTemplateDetail", params), + + // 查看曲线详情 + lookPlanningCurveTemplateChartData: (params = {}) => + vm.$u.post(config.adminPath + "/business/planning/planningCurveTemplateChartData", params), + + // 下发 + SetOrderIssued: (params = {}) => + vm.$u.post(config.adminPath + "/media/orderSend/orderIssued", params), + + // 指令下发 + GetOrderProgressBar: (params = {}) => + vm.$u.post(config.adminPath + "/media/orderSend/progressBar", params), + + // 获取修改值 + GetSubstitutionValueList: (params = {}) => + vm.$u.post(config.adminPath + "/business/substitutionValue/page", params), + // 保存修改值 + SaveSubstitutionValue: (params = {}) => + vm.$u.post(config.adminPath + "/business/substitutionValue/add", params), + // 控制下发 + GetPlanCurveIssueData: (params = {}) => + vm.$u.post(config.adminPath + "/business/planningIssue/getPlanCurveIssueData", params), + }, + + homePageData: { + // 获取电站配置信息 + GetHomePageComponents: (id = {}) => + vm.$u.post(config.adminPath + `/business/homeConfig/${id}`), + + // 充放电量 + GetElecData: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/elecData", params), + + // 数据总览 + GetPcsTotalData: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/pcsTotalData", params), + + + // 运行曲线 + GetRealtimeCurve: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/realtimeCurve", params), + + // 拓扑图--状态监控 + GetOpenStationMiddle: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/middle", params), + + // 拓扑图--状态监控 + GetOpenStationMiddlePart: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/middlePart", params), + + // 环控数据 + GetAirCondition: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/getAirCondition", params), + + // 拓扑图--电表 + GetMiddlePart: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/middlePart", params), + + // 拓扑图--状态监控 + GetbozhouTuopuStatus: (params = {}) => + vm.$u.post(config.adminPath + "/business/bozhou/status", params), + // 上海科技园充放电量 + GetKJYElecData: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/getPCSElecData", params), + + // 上海科技园电站数据 + GetKJYPcsTotalData: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/getEleTotalData", params), + + // 上海科技园空调数据 + GetShanghaiKJYAirData: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/commonAirCondition", params), + + // 查询历史曲线 + GetHistoryData: (params = {}) => + vm.$u.post(config.adminPath + "/business/point/getPointCurve", params), + + // 瑞安汽车 + GetRAPcsTotalData: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/getPcsTotalData", params), + + // 瑞安汽车充放电 + GetPCSElecData: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/getPCSElecData", params), + + // 慈溪环控 + GetCircleCtr: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/circleCtr", params), + // 晶科数据 + GetJingKeData: (params = {}) => + vm.$u.post(config.adminPath + "/business/jingke/status", params), + + // 获取soc曲线 + GetSocCurve: (params = {}) => + vm.$u.post(config.adminPath + "/business/batteryStack/socCurve", params), + + GetJKCurve: (params = {}) => + vm.$u.post(config.adminPath + "/business/jingke/realtimeCurve", params), + GetWSHStatus: (params = {}) => + vm.$u.post(config.adminPath + "/business/weiShanHu/status", params), + + GetZzhbtatus: (params = {}) => + vm.$u.post(config.adminPath + "/business/zhongZiHuanBao/status", params), + // 中自环保光伏数据 + GetZZHBPv: (params = {}) => + vm.$u.post(config.adminPath + "/business/zhongZiHuanBao/getStationData", params), + // 微山湖光伏数据 + GetWSHPv: (params = {}) => + vm.$u.post(config.adminPath + "/business/weiShanHu/getStationData", params), + //获取动态配置 + GetDynamicConfig: (params = {}) => + vm.$u.post(config.adminPath + "/business/dynamicConfig/pointListData", params), + //横沥光伏 + GetMiddlePartInverter: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/middlePartInverter", params), + //并网负载侧电表 + GetElec: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/getElec", params), + //横沥103电表 + GetEleMeter: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/getEleMeter", params), + //横沥103光伏 + GetOpticalStorage: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/getOpticalStorage", params), + // 挚达光伏 + GetZhiDaPv: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/getPVElec", params), + + //获取配置曲线 + GetDynamicRealTimeCurve: (params = {}) => + vm.$u.post(config.adminPath + "/business/openStation/dynamicRealtimeCurve", params), + + GetFireConfig: (params = {}) => + vm.$u.post(config.adminPath + "/business/topologyAttribute/DataConfig", params), + + + }, + + + + //设备列表 + deviceList: { + // 获取设备列表 + GetTreeVirtualDevices: (params = {}) => + vm.$u.post(config.adminPath + "/business/device/treeVirtualDevices", params), + + // 获取设备数据 + GetNewValue: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/newValue", params), + + // 获取组数据 + GetPackTemperatureVoltageData: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/packTemperatureVoltageData", params), + + // 电池包温度电压柱状图以及运行数据 + GetTemVolData: (params = {}) => + vm.$u.post(config.adminPath + "/business/common/packTemperatureVoltageData", params), + + // 温度电压正太分布 + GetTemperatureVoltageData: (params = {}) => + vm.$u.post(config.adminPath + "/business/station/temperatureVoltageData", params), + + //获取电度表曲线 + GetTtackHisData: (params = {}) => + vm.$u.post(config.adminPath + "/business/batteryStack/stackHisData", params), + + + + //获取电站下的设备 + // GetPageDevice: (params = {}) => + // vm.$u.post(config.adminPath + "/business/device/appHomePageDevices", params), + + + GetPageDevice: (params = {}) => + vm.$u.post(config.adminPath + "/business/device/homePageTreeDevices", params), + //功率曲线 + GetPCSCurve: (params = {}) => + vm.$u.post(config.adminPath + "/business/pcs/pcsCurve", params), + + // 遥信遥测数据 + GetPCSPoint: (params = {}) => + vm.$u.post(config.adminPath + "/business/point/page", params), + + + }, + + //收益 + enrnings: { + GetTotal: (params = {}) => + vm.$u.post(config.adminPath + "/business/earningsCalculate/getTotal", params), + }, + + + proxyPrice: { + // 查询区域 + GetIndustrialElecRegionList: (params = {}) => vm.$u.post(config.adminPath + + "/business/industrialElecRegion/list", params), + /** 查询所有代理电价-分页*/ + GetIndustrialElecPricePage: (params = {}) => vm.$u.post(config.adminPath + + "/business/industrialElecPrice/page", params), + //根据id查询分时电价折线图 + GetTouLineById: (id = {}) => vm.$u.get(config.adminPath + + `/business/industrialElecPrice/getTouLineById/${id}`), + //根据id查询分时电价历史数据图表/表格 + GetTouLineHistoryById: (id = {}) => vm.$u.get(config.adminPath + + `/business/industrialElecPrice/getTouLineHistoryById/${id}`), + //根据id查询峰谷电差价折线图/表格 + GetMaxPriceDiffById: (id = {}) => vm.$u.get(config.adminPath + + `/business/industrialElecPrice/getMaxPriceDiffById/${id}`), + + + } + + + } + + +} + +export default { + install, +} \ No newline at end of file diff --git a/common/http.interceptor.js b/common/http.interceptor.js new file mode 100644 index 0000000..afd64d0 --- /dev/null +++ b/common/http.interceptor.js @@ -0,0 +1,104 @@ + + +// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作 +const install = (Vue, vm) => { + // 通用请求头设定 + const ajaxHeader = "x-ajax"; + const sessionIdHeader = "Authorization"; + const rememberMeHeader = "x-remember"; + const lang = 'lang'; + + // 请求参数默认配置 + Vue.prototype.$u.http.setConfig({ + baseUrl: vm.vuex_config.baseUrl, + originalData: true, + // 默认头部,http2约定header名称统一小写 + header: { + "content-type": "application/json", + "x-requested-with": "XMLHttpRequest", + }, + }); + + // 请求拦截,配置Token等参数 + Vue.prototype.$u.http.interceptor.request = (req) => { + if (!req.header) { + req.header = []; + } + req.header["source"] = "app"; + + // 默认指定返回 JSON 数据 + if (!req.header[ajaxHeader]) { + req.header[ajaxHeader] = "json"; + } + + // 设定传递 Token 认证参数 + if (!req.header[sessionIdHeader] && vm.vuex_token) { + req.header[sessionIdHeader] = vm.vuex_token; + req.header[lang] = vm.vuex_language; + } + + // 为节省流量,记住我数据不是每次都发送的,当会话失效后,尝试重试登录 + if (!req.header[rememberMeHeader] && vm.vuex_remember && req.remember) { + req.header[rememberMeHeader] = vm.vuex_remember; + req.remember = false; + } + return req; + }; + + // 响应拦截,判断状态码是否通过 + Vue.prototype.$u.http.interceptor.response = async (res, req) => { + let data = res.data; + if (!data) { + // vm.$u.toast("未连接到服务器"); + return false; + } + if (res.data.code !== 200) { + if (res.data.code === 401002 || res.data.code === 401001 || res.data.code === 50014) { + uni.showToast({ + title: data.msg ? data.msg : '请重新登陆!', + duration: 3000, + icon:'none' + }) + setTimeout(() => { + uni.reLaunch({ + url: "/pages/login/index" + }); + }, 3000) + }else{ + uni.showToast({ + title: data.msg ? data.msg : '接口报错,请联系管理员!', + duration:3000, + icon:'none' + }) + } + } else { + return res.data + } + }; + + // 封装 get text 请求 + vm.$u.getText = (url, data = {}, header = {}) => { + return vm.$u.http.request({ + dataType: "text", + method: "GET", + url, + header, + data, + }); + }; + + // 封装 post json 请求 + vm.$u.postJson = (url, data = {}, header = {}) => { + header["content-type"] = "application/json"; + return vm.$u.http.request({ + url, + method: "POST", + header, + data, + }); + }; +}; + +export default { + install, +}; diff --git a/common/locales/en_EN.js b/common/locales/en_EN.js new file mode 100644 index 0000000..ae2877e --- /dev/null +++ b/common/locales/en_EN.js @@ -0,0 +1,4 @@ +import homePage from './homePage/en' +export default { + homePage +} diff --git a/common/locales/homePage/en.js b/common/locales/homePage/en.js new file mode 100644 index 0000000..5c26786 --- /dev/null +++ b/common/locales/homePage/en.js @@ -0,0 +1,35 @@ +export default { + home: { + login: 'Login', + account: 'Account', + password: 'Password', + placeAccount: "Place input account", + placePassword: 'Place input password', + noLogin: 'The feature is not available yet', + loadAmmeter: 'Load Meter', + dieselGeneratorMeter: 'Diesel Meter', + energyStorageMeter: 'Cabinet Meter', + alarmTypeList: [{ + name: 'Real-Time Alarm' + }, { + name: 'History Alarm' + }], + lang: 'Switch languages', + ydty: 'Read and agree', + yhxy: 'User Agreement', + and: 'and', + yszc: 'Privacy Policy', + yhxyhyszc: 'User Agreement and Privacy Policy', + msgf: 'Welcome to the "Small Savings and Great Energy" APP, we attach great importance to the protection of your personal information and privacy. Please read this app carefully before you use it', + msgs: 'When you use this application, it means that you have read, understood and agreed to accept all the terms of this agreement. If you do not agree with any of the contents of this Agreement, please stop using this Application immediately.', + agree: 'Agree', + quit: 'Disagree', + guestLogin: 'Guest Login', + checkFirst: 'Please check the box to agree to the User Agreement and Privacy Policy', + stationType:[{ + name:'China Station' + },{ + name:'Overseas Station' + }] + }, +} \ No newline at end of file diff --git a/common/locales/homePage/zh.js b/common/locales/homePage/zh.js new file mode 100644 index 0000000..293abd0 --- /dev/null +++ b/common/locales/homePage/zh.js @@ -0,0 +1,35 @@ +export default { + home: { + login: '登录', + account: '账号', + password: '密码', + placeAccount: "请输入账号", + placePassword: '请输入密码', + noLogin: '功能暂未开放', + loadAmmeter: '负载电表', + dieselGeneratorMeter: '柴发电表', + energyStorageMeter: '储能电表', + alarmTypeList: [{ + name: '实时告警' + }, { + name: '历史告警' + }], + lang:'切换语言', + ydty:'阅读并同意', + yhxy:'用户协议', + and:'和', + yszc:'隐私政策', + yhxyhyszc:'用户协议和隐私政策', + msgf:'欢迎使用“小储大能”APP,我们非常重视您的个人信息和隐私保护。在您使用本应用前请仔细阅读', + msgs:'您在使用本应用时,即表示您已阅读、理解并同意接受本协议的所有条款。如果您不同意本协议的任何内容,请立即停止使用本应用。', + agree:'同意', + quit:'不同意', + guestLogin: '游客登录', + checkFirst:'请先勾选同意用户协议和隐私政策', + stationType:[{ + name:'中国站' + },{ + name:'海外站' + }] + } +}; \ No newline at end of file diff --git a/common/locales/zh_CN.js b/common/locales/zh_CN.js new file mode 100644 index 0000000..be8ef60 --- /dev/null +++ b/common/locales/zh_CN.js @@ -0,0 +1,4 @@ +import homePage from './homePage/zh' +export default { + homePage, +} diff --git a/common/uni.css b/common/uni.css new file mode 100644 index 0000000..76340d7 --- /dev/null +++ b/common/uni.css @@ -0,0 +1,1459 @@ +@font-face { + font-family: uniicons; + font-weight: normal; + font-style: normal; + src: url('~@/static/uni.ttf') format('truetype'); +} + +/* #ifdef H5 */ +.fix-left-window { + padding-left: var(--window-left); +} +.pc-hide { + display: none !important; +} +/* #endif */ + +/*通用 */ + +/* view{ + font-size:28rpx; + line-height:1.8; +} */ +progress, checkbox-group{ + width: 100%; +} +form { + width: 100%; +} +.uni-flex { + display: flex; + flex-direction: row; +} +.uni-flex-item { + flex: 1; +} +.uni-row { + flex-direction: row; +} +.uni-column { + flex-direction: column; +} +.uni-link{ + color:#576B95; + font-size:26rpx; +} +.uni-center{ + text-align:center; +} +.uni-inline-item{ + display: flex; + flex-direction: row; + align-items:center; +} +.uni-inline-item text{ + margin-right: 20rpx; +} +.uni-inline-item text:last-child{ + margin-right: 0rpx; + margin-left: 20rpx; +} + +/* page */ +.common-page-head{ + padding:35rpx; + text-align: center; +} +.common-page-head-title { + display: inline-block; + padding: 0 40rpx; + font-size: 30rpx; + height: 88rpx; + line-height: 88rpx; + color: #BEBEBE; + box-sizing: border-box; + border-bottom: 2rpx solid #D8D8D8; +} + +.uni-padding-wrap{ + /* width:690rpx; */ + padding:0 30rpx; +} +.uni-word { + text-align: center; + padding:200rpx 100rpx; +} +.uni-title { + font-size:30rpx; + font-weight:500; + padding:20rpx 0; + line-height:1.5; +} +.uni-text{ + font-size:28rpx; +} +.uni-title text{ + font-size:24rpx; + color:#888; +} + +.uni-text-gray{ + color: #ccc; +} +.uni-text-small { + font-size:24rpx; +} +.uni-common-mb{ + margin-bottom:30rpx; +} +.uni-common-pb{ + padding-bottom:30rpx; +} +.uni-common-pl{ + padding-left:30rpx; +} +.uni-common-mt{ + margin-top:30rpx; +} +/* 背景色 */ +.uni-bg-red{ + background:#F76260; color:#FFF; +} +.uni-bg-green{ + background:#09BB07; color:#FFF; +} +.uni-bg-blue{ + background:#007AFF; color:#FFF; +} +/* 标题 */ +.uni-h1 {font-size: 80rpx; font-weight:700;} +.uni-h2 {font-size: 60rpx; font-weight:700;} +.uni-h3 {font-size: 48rpx; font-weight:700;} +.uni-h4 {font-size: 36rpx; font-weight:700;} +.uni-h5 {font-size: 28rpx; color: #8f8f94;} +.uni-h6 {font-size: 24rpx; color: #8f8f94;} +.uni-bold{font-weight:bold;} + +/* 文本溢出隐藏 */ +.uni-ellipsis {overflow: hidden; white-space: nowrap; text-overflow: ellipsis;} + +/* 竖向百分百按钮 */ +.uni-btn-v{ + padding:10rpx 0; +} +.uni-btn-v button{margin:20rpx 0;} + +/* 表单 */ +.uni-form-item{ + display:flex; + width:100%; + padding:10rpx 0; +} +.uni-form-item .title{ + padding:10rpx 25rpx; +} +.uni-label { + width: 210rpx; + word-wrap: break-word; + word-break: break-all; + text-indent:20rpx; +} +.uni-input { + height: 50rpx; + padding: 15rpx 25rpx; + line-height:50rpx; + font-size:28rpx; + background:#FFF; + flex: 1; +} +radio-group, checkbox-group{ + width:100%; +} +radio-group label, checkbox-group label{ + padding-right:20rpx; +} +.uni-form-item .with-fun{ + display:flex; + flex-wrap:nowrap; + background:#FFFFFF; +} +.uni-form-item .with-fun .uni-icon{ + width:40px; + height:80rpx; + line-height:80rpx; + flex-shrink:0; +} + +/* loadmore */ +.uni-loadmore{ + height:80rpx; + line-height:80rpx; + text-align:center; + padding-bottom:30rpx; +} +/*数字角标*/ +.uni-badge, +.uni-badge-default { + font-family: 'Helvetica Neue', Helvetica, sans-serif; + font-size: 12px; + line-height: 1; + display: inline-block; + padding: 3px 6px; + color: #333; + border-radius: 100px; + background-color: rgba(0, 0, 0, .15); +} +.uni-badge.uni-badge-inverted { + padding: 0 5px 0 0; + color: #929292; + background-color: transparent +} +.uni-badge-primary { + color: #fff; + background-color: #007aff +} +.uni-badge-blue.uni-badge-inverted, +.uni-badge-primary.uni-badge-inverted { + color: #007aff; + background-color: transparent +} +.uni-badge-green, +.uni-badge-success { + color: #fff; + background-color: #4cd964; +} +.uni-badge-green.uni-badge-inverted, +.uni-badge-success.uni-badge-inverted { + color: #4cd964; + background-color: transparent +} +.uni-badge-warning, +.uni-badge-yellow { + color: #fff; + background-color: #f0ad4e +} +.uni-badge-warning.uni-badge-inverted, +.uni-badge-yellow.uni-badge-inverted { + color: #f0ad4e; + background-color: transparent +} +.uni-badge-danger, +.uni-badge-red { + color: #fff; + background-color: #dd524d +} +.uni-badge-danger.uni-badge-inverted, +.uni-badge-red.uni-badge-inverted { + color: #dd524d; + background-color: transparent +} +.uni-badge-purple, +.uni-badge-royal { + color: #fff; + background-color: #8a6de9 +} +.uni-badge-purple.uni-badge-inverted, +.uni-badge-royal.uni-badge-inverted { + color: #8a6de9; + background-color: transparent +} + +/*折叠面板 */ +.uni-collapse-content { + height: 0; + width: 100%; + overflow: hidden; +} +.uni-collapse-content.uni-active { + height: auto; +} + +/*卡片视图 */ +.uni-card { + background: #fff; + border-radius: 8rpx; + margin:20rpx 0; + position: relative; + box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, .3); +} +.uni-card-content { + font-size: 30rpx; +} +.uni-card-content.image-view{ + width: 100%; + margin: 0; +} +.uni-card-content-inner { + position: relative; + padding: 30rpx; +} +.uni-card-footer, +.uni-card-header { + position: relative; + display: flex; + min-height: 50rpx; + padding: 20rpx 30rpx; + justify-content: space-between; + align-items: center; +} +.uni-card-header { + font-size: 36rpx; +} +.uni-card-footer { + color: #6d6d72; +} +.uni-card-footer:before, +.uni-card-header:after { + position: absolute; + top: 0; + right: 0; + left: 0; + height: 2rpx; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} +.uni-card-header:after { + top: auto; + bottom: 0; +} +.uni-card-media { + justify-content: flex-start; +} +.uni-card-media-logo { + height: 84rpx; + width: 84rpx; + margin-right: 20rpx; +} +.uni-card-media-body { + height: 84rpx; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; +} +.uni-card-media-text-top { + line-height: 36rpx; + font-size: 34rpx; +} +.uni-card-media-text-bottom { + line-height: 30rpx; + font-size: 28rpx; + color: #8f8f94; +} +.uni-card-link { + color: #007AFF; +} + +/* 列表 */ +.uni-list { + background-color: #FFFFFF; + position: relative; + width: 100%; + display: flex; + flex-direction: column; +} +.uni-list:after { + position: absolute; + z-index: 10; + right: 0; + bottom: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #dedfe2; +} +.uni-list::before { + position: absolute; + z-index: 10; + right: 0; + top: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #dedfe2; +} +.uni-list-cell { + position: relative; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} +.uni-list-cell-hover { + background-color: #eee; +} +.uni-list-cell-pd { + padding: 22rpx 30rpx; +} +.uni-list-cell-left { + white-space: nowrap; + font-size:28rpx; + padding: 0 30rpx; +} +.uni-list-cell-db, +.uni-list-cell-right { + flex: 1; +} +.uni-list-cell::after { + position: absolute; + z-index: 3; + right: 0; + bottom: 0; + left: 140rpx; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #dedfe2; +} +.uni-list .uni-list-cell:last-child::after { + height: 0rpx; +} +.uni-list-cell-last.uni-list-cell::after { + height: 0rpx; +} +.uni-list-cell-divider { + position: relative; + display: flex; + color: #999; + background-color: #f7f7f7; + padding:15rpx 20rpx; +} +.uni-list-cell-divider::before { + position: absolute; + right: 0; + top: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} +.uni-list-cell-divider::after { + position: absolute; + right: 0; + bottom: 0; + left: 0rpx; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} +.uni-list-cell-navigate { + font-size:30rpx; + padding: 22rpx 30rpx; + line-height: 48rpx; + position: relative; + display: flex; + box-sizing: border-box; + width: 100%; + flex: 1; + justify-content: space-between; + align-items: center; +} +.uni-list-cell-navigate { + padding-right: 36rpx; +} +.uni-navigate-badge { + padding-right: 50rpx; +} +.uni-list-cell-navigate.uni-navigate-right:after { + font-family: uniicons; + content: '\e583'; + position: absolute; + right: 24rpx; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} +.uni-list-cell-navigate.uni-navigate-bottom:after { + font-family: uniicons; + content: '\e581'; + position: absolute; + right: 24rpx; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} +.uni-list-cell-navigate.uni-navigate-bottom.uni-active::after { + font-family: uniicons; + content: '\e580'; + position: absolute; + right: 24rpx; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} +.uni-collapse.uni-list-cell { + flex-direction: column; +} +.uni-list-cell-navigate.uni-active { + background: #eee; +} +.uni-list.uni-collapse { + box-sizing: border-box; + height: 0; + overflow: hidden; +} +.uni-collapse .uni-list-cell { + padding-left: 20rpx; +} +.uni-collapse .uni-list-cell::after { + left: 52rpx; +} +.uni-list.uni-active { + height: auto; +} + +/* 三行列表 */ +.uni-triplex-row { + display: flex; + flex: 1; + width: 100%; + box-sizing: border-box; + flex-direction: row; + padding: 22rpx 30rpx; +} +.uni-triplex-right, +.uni-triplex-left { + display: flex; + flex-direction: column; +} +.uni-triplex-left { + width: 84%; +} +.uni-triplex-left .uni-title{ + padding:8rpx 0; +} +.uni-triplex-left .uni-text, .uni-triplex-left .uni-text-small{color:#999999;} +.uni-triplex-right { + width: 16%; + text-align: right; +} + +/* 图文列表 */ +.uni-media-list { + padding: 22rpx 30rpx; + box-sizing: border-box; + display: flex; + width: 100%; + flex-direction: row; +} +.uni-navigate-right.uni-media-list { + padding-right: 74rpx; +} +.uni-pull-right { + flex-direction: row-reverse; +} +.uni-pull-right>.uni-media-list-logo { + margin-right: 0rpx; + margin-left: 20rpx; +} +.uni-media-list-logo { + height: 84rpx; + width: 84rpx; + margin-right: 20rpx; +} +.uni-media-list-logo image { + height: 100%; + width: 100%; +} +.uni-media-list-body { + height: 84rpx; + display: flex; + flex: 1; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + overflow: hidden; +} +.uni-media-list-text-top { + width: 100%; + line-height: 36rpx; + font-size: 30rpx; + color: #202328; +} +.uni-media-list-text-bottom { + width: 100%; + line-height: 30rpx; + font-size: 26rpx; + color: #8f8f94; +} + +/* 九宫格 */ +.uni-grid-9 { + background: #f2f2f2; + width: 750rpx; + display: flex; + flex-direction: row; + flex-wrap: wrap; + border-top: 2rpx solid #eee; +} +.uni-grid-9-item { + width: 250rpx; + height: 200rpx; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-bottom: 2rpx solid; + border-right: 2rpx solid; + border-color: #eee; + box-sizing: border-box; +} +.no-border-right { + border-right: none; +} +.uni-grid-9-image { + width: 100rpx; + height: 100rpx; +} +.uni-grid-9-text { + width: 250rpx; + line-height: 4rpx; + height: 40rpx; + text-align: center; + font-size: 30rpx; +} +.uni-grid-9-item-hover { + background: rgba(0, 0, 0, 0.1); +} + +/* 上传 */ +.uni-uploader { + flex: 1; + flex-direction: column; +} +.uni-uploader-head { + display: flex; + flex-direction: row; + justify-content: space-between; +} +.uni-uploader-info { + color: #B2B2B2; +} +.uni-uploader-body { + margin-top: 16rpx; +} +.uni-uploader__files { + display: flex; + flex-direction: row; + flex-wrap: wrap; +} +.uni-uploader__file { + margin: 10rpx; + width: 210rpx; + height: 210rpx; +} +.uni-uploader__img { + display: block; + width: 210rpx; + height: 210rpx; +} +.uni-uploader__input-box { + position: relative; + margin:10rpx; + width: 208rpx; + height: 208rpx; + border: 2rpx solid #D9D9D9; +} +.uni-uploader__input-box:before, +.uni-uploader__input-box:after { + content: " "; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + background-color: #D9D9D9; +} +.uni-uploader__input-box:before { + width: 4rpx; + height: 79rpx; +} +.uni-uploader__input-box:after { + width: 79rpx; + height: 4rpx; +} +.uni-uploader__input-box:active { + border-color: #999999; +} +.uni-uploader__input-box:active:before, +.uni-uploader__input-box:active:after { + background-color: #999999; +} +.uni-uploader__input { + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; +} + +/*问题反馈*/ +.feedback-title { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 20rpx; + color: #8f8f94; + font-size: 28rpx; +} +.feedback-star-view.feedback-title { + justify-content: flex-start; + margin: 0; +} +.feedback-quick { + position: relative; + padding-right: 40rpx; +} +.feedback-quick:after { + font-family: uniicons; + font-size: 40rpx; + content: '\e581'; + position: absolute; + right: 0; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} +.feedback-body { + background: #fff; +} +.feedback-textare { + height: 200rpx; + font-size: 34rpx; + line-height: 50rpx; + width: 100%; + box-sizing: border-box; + padding: 20rpx 30rpx 0; +} +.feedback-input { + font-size: 34rpx; + height: 50rpx; + min-height: 50rpx; + padding: 15rpx 20rpx; + line-height: 50rpx; +} +.feedback-uploader { + padding: 22rpx 20rpx; +} +.feedback-star { + font-family: uniicons; + font-size: 40rpx; + margin-left: 6rpx; +} +.feedback-star-view { + margin-left: 20rpx; +} +.feedback-star:after { + content: '\e408'; +} +.feedback-star.active { + color: #FFB400; +} +.feedback-star.active:after { + content: '\e438'; +} +.feedback-submit { + background: #007AFF; + color: #FFFFFF; + margin: 20rpx; +} + +/* input group */ +.uni-input-group { + position: relative; + padding: 0; + border: 0; + background-color: #fff; +} + +.uni-input-group:before { + position: absolute; + top: 0; + right: 0; + left: 0; + height: 2rpx; + content: ''; + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-input-group:after { + position: absolute; + right: 0; + bottom: 0; + left: 0; + height: 2rpx; + content: ''; + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-input-row { + position: relative; + display: flex; + flex-direction: row; + font-size:28rpx; + padding: 22rpx 30rpx; + justify-content: space-between; +} + +.uni-input-group .uni-input-row:after { + position: absolute; + right: 0; + bottom: 0; + left: 30rpx; + height: 2rpx; + content: ''; + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-input-row label { + line-height: 70rpx; +} + +/* textarea */ +.uni-textarea{ + width:100%; + background:#FFF; +} +.uni-textarea textarea{ + width:96%; + padding:18rpx 2%; + line-height:1.6; + font-size:28rpx; + height:150rpx; +} + +/* tab bar */ +.uni-tab-bar { + display: flex; + flex: 1; + flex-direction: column; + overflow: hidden; + height: 100%; +} + +.uni-tab-bar .list { + width: 750rpx; + height: 100%; +} + +.uni-swiper-tab { + width: 100%; + white-space: nowrap; + line-height: 100rpx; + height: 100rpx; + border-bottom: 1px solid #c8c7cc; +} + +.swiper-tab-list { + font-size: 30rpx; + width: 150rpx; + display: inline-block; + text-align: center; + color: #555; +} + +.uni-tab-bar .active { + color: #007AFF; +} + +.uni-tab-bar .swiper-box { + flex: 1; + width: 100%; + height: calc(100% - 100rpx); +} + +.uni-tab-bar-loading{ + padding:20rpx 0; +} + +/* comment */ +.uni-comment{padding:5rpx 0; display: flex; flex-grow:1; flex-direction: column;} +.uni-comment-list{flex-wrap:nowrap; padding:10rpx 0; margin:10rpx 0; width:100%; display: flex;} +.uni-comment-face{width:70rpx; height:70rpx; border-radius:100%; margin-right:20rpx; flex-shrink:0; overflow:hidden;} +.uni-comment-face image{width:100%; border-radius:100%;} +.uni-comment-body{width:100%;} +.uni-comment-top{line-height:1.5em; justify-content:space-between;} +.uni-comment-top text{color:#0A98D5; font-size:24rpx;} +.uni-comment-date{line-height:38rpx; flex-direction:row; justify-content:space-between; display:flex !important; flex-grow:1;} +.uni-comment-date view{color:#666666; font-size:24rpx; line-height:38rpx;} +.uni-comment-content{line-height:1.6em; font-size:28rpx; padding:8rpx 0;} +.uni-comment-replay-btn{background:#FFF; font-size:24rpx; line-height:28rpx; padding:5rpx 20rpx; border-radius:30rpx; color:#333 !important; margin:0 10rpx;} + +/* swiper msg */ +.uni-swiper-msg{width:100%; padding:12rpx 0; flex-wrap:nowrap; display:flex;} +.uni-swiper-msg-icon{width:50rpx; margin-right:20rpx;} +.uni-swiper-msg-icon image{width:100%; flex-shrink:0;} +.uni-swiper-msg swiper{width:100%; height:50rpx;} +.uni-swiper-msg swiper-item{line-height:50rpx;} + +/* product */ +.uni-product-list { + display: flex; + width: 100%; + flex-wrap: wrap; + flex-direction: row; +} + +.uni-product { + padding: 20rpx; + display: flex; + flex-direction: column; +} + +.image-view { + height: 330rpx; + width: 330rpx; + margin:12rpx 0; +} + +.uni-product-image { + height: 330rpx; + width: 330rpx; +} + +.uni-product-title { + width: 300rpx; + word-break: break-all; + display: -webkit-box; + overflow: hidden; + line-height:1.5; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.uni-product-price { + margin-top:10rpx; + font-size: 28rpx; + line-height:1.5; + position: relative; +} + +.uni-product-price-original { + color: #e80080; +} + +.uni-product-price-favour { + color: #888888; + text-decoration: line-through; + margin-left: 10rpx; +} + +.uni-product-tip { + position: absolute; + right: 10rpx; + background-color: #ff3333; + color: #ffffff; + padding: 0 10rpx; + border-radius: 5rpx; +} + +/* timeline */ +.uni-timeline { + margin: 35rpx 0; + display: flex; + flex-direction: column; + position: relative; + } + + + .uni-timeline-item { + display: flex; + flex-direction: row; + position: relative; + padding-bottom: 20rpx; + box-sizing: border-box; + overflow: hidden; + + } + + .uni-timeline-item .uni-timeline-item-keynode { + width: 160rpx; + flex-shrink: 0; + box-sizing: border-box; + padding-right: 20rpx; + text-align: right; + line-height: 65rpx; + } + + .uni-timeline-item .uni-timeline-item-divider { + flex-shrink: 0; + position: relative; + width: 30rpx; + height: 30rpx; + top: 15rpx; + border-radius: 50%; + background-color: #bbb; + } + + + + .uni-timeline-item-divider::before, + .uni-timeline-item-divider::after { + position: absolute; + left: 15rpx; + width: 1rpx; + height: 100vh; + content: ''; + background: inherit; + } + + .uni-timeline-item-divider::before { + bottom: 100%; + } + + .uni-timeline-item-divider::after { + top: 100%; + } + + + .uni-timeline-last-item .uni-timeline-item-divider:after { + display: none; + } + + .uni-timeline-first-item .uni-timeline-item-divider:before { + display: none; + } + + .uni-timeline-item .uni-timeline-item-content { + padding-left: 20rpx; + } + + .uni-timeline-last-item .bottom-border::after{ + display: none; + } + + .uni-timeline-item-content .datetime{ + color: #CCCCCC; + } + + /* 自定义节点颜色 */ + .uni-timeline-last-item .uni-timeline-item-divider{ + background-color: #1AAD19; + } + + +/* uni-icon */ + +.uni-icon { + font-family: uniicons; + font-size: 24px; + font-weight: normal; + font-style: normal; + line-height: 1; + display: inline-block; + text-decoration: none; + -webkit-font-smoothing: antialiased; +} + +.uni-icon.uni-active { + color: #007aff; +} + +.uni-icon-contact:before { + content: '\e100'; +} + +.uni-icon-person:before { + content: '\e101'; +} + +.uni-icon-personadd:before { + content: '\e102'; +} + +.uni-icon-contact-filled:before { + content: '\e130'; +} + +.uni-icon-person-filled:before { + content: '\e131'; +} + +.uni-icon-personadd-filled:before { + content: '\e132'; +} + +.uni-icon-phone:before { + content: '\e200'; +} + +.uni-icon-email:before { + content: '\e201'; +} + +.uni-icon-chatbubble:before { + content: '\e202'; +} + +.uni-icon-chatboxes:before { + content: '\e203'; +} + +.uni-icon-phone-filled:before { + content: '\e230'; +} + +.uni-icon-email-filled:before { + content: '\e231'; +} + +.uni-icon-chatbubble-filled:before { + content: '\e232'; +} + +.uni-icon-chatboxes-filled:before { + content: '\e233'; +} + +.uni-icon-weibo:before { + content: '\e260'; +} + +.uni-icon-weixin:before { + content: '\e261'; +} + +.uni-icon-pengyouquan:before { + content: '\e262'; +} + +.uni-icon-chat:before { + content: '\e263'; +} + +.uni-icon-qq:before { + content: '\e264'; +} + +.uni-icon-videocam:before { + content: '\e300'; +} + +.uni-icon-camera:before { + content: '\e301'; +} + +.uni-icon-mic:before { + content: '\e302'; +} + +.uni-icon-location:before { + content: '\e303'; +} + +.uni-icon-mic-filled:before, +.uni-icon-speech:before { + content: '\e332'; +} + +.uni-icon-location-filled:before { + content: '\e333'; +} + +.uni-icon-micoff:before { + content: '\e360'; +} + +.uni-icon-image:before { + content: '\e363'; +} + +.uni-icon-map:before { + content: '\e364'; +} + +.uni-icon-compose:before { + content: '\e400'; +} + +.uni-icon-trash:before { + content: '\e401'; +} + +.uni-icon-upload:before { + content: '\e402'; +} + +.uni-icon-download:before { + content: '\e403'; +} + +.uni-icon-close:before { + content: '\e404'; +} + +.uni-icon-redo:before { + content: '\e405'; +} + +.uni-icon-undo:before { + content: '\e406'; +} + +.uni-icon-refresh:before { + content: '\e407'; +} + +.uni-icon-star:before { + content: '\e408'; +} + +.uni-icon-plus:before { + content: '\e409'; +} + +.uni-icon-minus:before { + content: '\e410'; +} + +.uni-icon-circle:before, +.uni-icon-checkbox:before { + content: '\e411'; +} + +.uni-icon-close-filled:before, +.uni-icon-clear:before { + content: '\e434'; +} + +.uni-icon-refresh-filled:before { + content: '\e437'; +} + +.uni-icon-star-filled:before { + content: '\e438'; +} + +.uni-icon-plus-filled:before { + content: '\e439'; +} + +.uni-icon-minus-filled:before { + content: '\e440'; +} + +.uni-icon-circle-filled:before { + content: '\e441'; +} + +.uni-icon-checkbox-filled:before { + content: '\e442'; +} + +.uni-icon-closeempty:before { + content: '\e460'; +} + +.uni-icon-refreshempty:before { + content: '\e461'; +} + +.uni-icon-reload:before { + content: '\e462'; +} + +.uni-icon-starhalf:before { + content: '\e463'; +} + +.uni-icon-spinner:before { + content: '\e464'; +} + +.uni-icon-spinner-cycle:before { + content: '\e465'; +} + +.uni-icon-search:before { + content: '\e466'; +} + +.uni-icon-plusempty:before { + content: '\e468'; +} + +.uni-icon-forward:before { + content: '\e470'; +} + +.uni-icon-back:before, +.uni-icon-left-nav:before { + content: '\e471'; +} + +.uni-icon-checkmarkempty:before { + content: '\e472'; +} + +.uni-icon-home:before { + content: '\e500'; +} + +.uni-icon-navigate:before { + content: '\e501'; +} + +.uni-icon-gear:before { + content: '\e502'; +} + +.uni-icon-paperplane:before { + content: '\e503'; +} + +.uni-icon-info:before { + content: '\e504'; +} + +.uni-icon-help:before { + content: '\e505'; +} + +.uni-icon-locked:before { + content: '\e506'; +} + +.uni-icon-more:before { + content: '\e507'; +} + +.uni-icon-flag:before { + content: '\e508'; +} + +.uni-icon-home-filled:before { + content: '\e530'; +} + +.uni-icon-gear-filled:before { + content: '\e532'; +} + +.uni-icon-info-filled:before { + content: '\e534'; +} + +.uni-icon-help-filled:before { + content: '\e535'; +} + +.uni-icon-more-filled:before { + content: '\e537'; +} + +.uni-icon-settings:before { + content: '\e560'; +} + +.uni-icon-list:before { + content: '\e562'; +} + +.uni-icon-bars:before { + content: '\e563'; +} + +.uni-icon-loop:before { + content: '\e565'; +} + +.uni-icon-paperclip:before { + content: '\e567'; +} + +.uni-icon-eye:before { + content: '\e568'; +} + +.uni-icon-arrowup:before { + content: '\e580'; +} + +.uni-icon-arrowdown:before { + content: '\e581'; +} + +.uni-icon-arrowleft:before { + content: '\e582'; +} + +.uni-icon-arrowright:before { + content: '\e583'; +} + +.uni-icon-arrowthinup:before { + content: '\e584'; +} + +.uni-icon-arrowthindown:before { + content: '\e585'; +} + +.uni-icon-arrowthinleft:before { + content: '\e586'; +} + +.uni-icon-arrowthinright:before { + content: '\e587'; +} + +.uni-icon-pulldown:before { + content: '\e588'; +} + +.uni-icon-scan:before { + content: "\e612"; +} + +/* 分界线 */ +.uni-divider{ + height: 110rpx; + display: flex; + align-items:center; + justify-content: center; + position: relative; +} +.uni-divider__content{ + font-size: 28rpx; + color: #999; + padding: 0 20rpx; + position: relative; + z-index: 101; + background: #F4F5F6; +} +.uni-divider__line{ + background-color: #CCCCCC; + height: 1px; + width: 100%; + position: absolute; + z-index: 100; + top: 50%; + left: 0; + transform: translateY(50%); +} + +.left-win-active text{ + color: #007AFF !important; +} diff --git a/common/vue-i18n.min.js b/common/vue-i18n.min.js new file mode 100644 index 0000000..ae0e89a --- /dev/null +++ b/common/vue-i18n.min.js @@ -0,0 +1,1022 @@ +/*! + * vue-i18n v8.20.0 + * (c) 2020 kazuya kawaguchi + * Released under the MIT License. + */ +var t, e; +t = this, e = function() { + "use strict"; + var t = ["style", "currency", "currencyDisplay", "useGrouping", "minimumIntegerDigits", "minimumFractionDigits", + "maximumFractionDigits", "minimumSignificantDigits", "maximumSignificantDigits", "localeMatcher", + "formatMatcher", "unit" + ]; + + function e(t, e) { + "undefined" != typeof console && (console.warn("[vue-i18n] " + t), e && console.warn(e.stack)) + } + var n = Array.isArray; + + function r(t) { + return null !== t && "object" == typeof t + } + + function a(t) { + return "string" == typeof t + } + var i = Object.prototype.toString, + o = "[object Object]"; + + function s(t) { + return i.call(t) === o + } + + function l(t) { + return null == t + } + + function c() { + for (var t = [], e = arguments.length; e--;) t[e] = arguments[e]; + var n = null, + a = null; + return 1 === t.length ? r(t[0]) || Array.isArray(t[0]) ? a = t[0] : "string" == typeof t[0] && (n = t[0]) : + 2 === t.length && ("string" == typeof t[0] && (n = t[0]), (r(t[1]) || Array.isArray(t[1])) && (a = t[ + 1])), { + locale: n, + params: a + } + } + + function u(t) { + return JSON.parse(JSON.stringify(t)) + } + + function h(t, e) { + return !!~t.indexOf(e) + } + var f = Object.prototype.hasOwnProperty; + + function p(t, e) { + return f.call(t, e) + } + + function m(t) { + for (var e = arguments, n = Object(t), a = 1; a < arguments.length; a++) { + var i = e[a]; + if (null != i) { + var o = void 0; + for (o in i) p(i, o) && (r(i[o]) ? n[o] = m(n[o], i[o]) : n[o] = i[o]) + } + } + return n + } + + function _(t, e) { + if (t === e) return !0; + var n = r(t), + a = r(e); + if (!n || !a) return !n && !a && String(t) === String(e); + try { + var i = Array.isArray(t), + o = Array.isArray(e); + if (i && o) return t.length === e.length && t.every(function(t, n) { + return _(t, e[n]) + }); + if (i || o) return !1; + var s = Object.keys(t), + l = Object.keys(e); + return s.length === l.length && s.every(function(n) { + return _(t[n], e[n]) + }) + } catch (t) { + return !1 + } + } + var g = { + beforeCreate: function() { + var t = this.$options; + if (t.i18n = t.i18n || (t.__i18n ? {} : null), t.i18n) { + if (t.i18n instanceof et) { + if (t.__i18n) try { + var e = {}; + t.__i18n.forEach(function(t) { + e = m(e, JSON.parse(t)) + }), Object.keys(e).forEach(function(n) { + t.i18n.mergeLocaleMessage(n, e[n]) + }) + } catch (t) {} + this._i18n = t.i18n, this._i18nWatcher = this._i18n.watchI18nData() + } else if (s(t.i18n)) { + var n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof et ? this.$root + .$i18n : null; + if (n && (t.i18n.root = this.$root, t.i18n.formatter = n.formatter, t.i18n + .fallbackLocale = n.fallbackLocale, t.i18n.formatFallbackMessages = n + .formatFallbackMessages, t.i18n.silentTranslationWarn = n.silentTranslationWarn, + t.i18n.silentFallbackWarn = n.silentFallbackWarn, t.i18n.pluralizationRules = n + .pluralizationRules, t.i18n.preserveDirectiveContent = n + .preserveDirectiveContent), t.__i18n) try { + var r = {}; + t.__i18n.forEach(function(t) { + r = m(r, JSON.parse(t)) + }), t.i18n.messages = r + } catch (t) {} + var a = t.i18n.sharedMessages; + a && s(a) && (t.i18n.messages = m(t.i18n.messages, a)), this._i18n = new et(t.i18n), + this._i18nWatcher = this._i18n.watchI18nData(), (void 0 === t.i18n.sync || t.i18n + .sync) && (this._localeWatcher = this.$i18n.watchLocale()), n && n + .onComponentInstanceCreated(this._i18n) + } + } else this.$root && this.$root.$i18n && this.$root.$i18n instanceof et ? this._i18n = this + .$root.$i18n : t.parent && t.parent.$i18n && t.parent.$i18n instanceof et && (this._i18n = t + .parent.$i18n) + }, + beforeMount: function() { + var t = this.$options; + t.i18n = t.i18n || (t.__i18n ? {} : null), t.i18n ? t.i18n instanceof et ? (this._i18n + .subscribeDataChanging(this), this._subscribing = !0) : s(t.i18n) && (this._i18n + .subscribeDataChanging(this), this._subscribing = !0) : this.$root && this.$root + .$i18n && this.$root.$i18n instanceof et ? (this._i18n.subscribeDataChanging(this), this + ._subscribing = !0) : t.parent && t.parent.$i18n && t.parent.$i18n instanceof et && ( + this._i18n.subscribeDataChanging(this), this._subscribing = !0) + }, + beforeDestroy: function() { + if (this._i18n) { + var t = this; + this.$nextTick(function() { + t._subscribing && (t._i18n.unsubscribeDataChanging(t), delete t._subscribing), t + ._i18nWatcher && (t._i18nWatcher(), t._i18n.destroyVM(), delete t + ._i18nWatcher), t._localeWatcher && (t._localeWatcher(), delete t + ._localeWatcher) + }) + } + } + }, + v = { + name: "i18n", + functional: !0, + props: { + tag: { + type: [String, Boolean, Object], + default: "span" + }, + path: { + type: String, + required: !0 + }, + locale: { + type: String + }, + places: { + type: [Array, Object] + } + }, + render: function(t, e) { + var n = e.data, + r = e.parent, + a = e.props, + i = e.slots, + o = r.$i18n; + if (o) { + var s = a.path, + l = a.locale, + c = a.places, + u = i(), + h = o.i(s, l, function(t) { + var e; + for (e in t) + if ("default" !== e) return !1; + return Boolean(e) + }(u) || c ? function(t, e) { + var n = e ? function(t) { + return Array.isArray(t) ? t.reduce(d, {}) : Object.assign({}, t) + }(e) : {}; + if (!t) return n; + var r = (t = t.filter(function(t) { + return t.tag || "" !== t.text.trim() + })).every(y); + return t.reduce(r ? b : d, n) + }(u.default, c) : u), + f = a.tag && !0 !== a.tag || !1 === a.tag ? a.tag : "span"; + return f ? t(f, n, h) : h + } + } + }; + + function b(t, e) { + return e.data && e.data.attrs && e.data.attrs.place && (t[e.data.attrs.place] = e), t + } + + function d(t, e, n) { + return t[n] = e, t + } + + function y(t) { + return Boolean(t.data && t.data.attrs && t.data.attrs.place) + } + var F, k = { + name: "i18n-n", + functional: !0, + props: { + tag: { + type: [String, Boolean, Object], + default: "span" + }, + value: { + type: Number, + required: !0 + }, + format: { + type: [String, Object] + }, + locale: { + type: String + } + }, + render: function(e, n) { + var i = n.props, + o = n.parent, + s = n.data, + l = o.$i18n; + if (!l) return null; + var c = null, + u = null; + a(i.format) ? c = i.format : r(i.format) && (i.format.key && (c = i.format.key), u = Object + .keys(i.format).reduce(function(e, n) { + var r; + return h(t, n) ? Object.assign({}, e, ((r = {})[n] = i.format[n], r)) : e + }, null)); + var f = i.locale || l.locale, + p = l._ntp(i.value, f, c, u), + m = p.map(function(t, e) { + var n, r = s.scopedSlots && s.scopedSlots[t.type]; + return r ? r(((n = {})[t.type] = t.value, n.index = e, n.parts = p, n)) : t.value + }), + _ = i.tag && !0 !== i.tag || !1 === i.tag ? i.tag : "span"; + return _ ? e(_, { + attrs: s.attrs, + class: s.class, + staticClass: s.staticClass + }, m) : m + } + }; + + function w(t, e, n) { + C(t, n) && T(t, e, n) + } + + function $(t, e, n, r) { + if (C(t, n)) { + var a = n.context.$i18n; + (function(t, e) { + var n = e.context; + return t._locale === n.$i18n.locale + })(t, n) && _(e.value, e.oldValue) && _(t._localeMessage, a.getLocaleMessage(a.locale)) || T(t, e, n) + } + } + + function M(t, n, r, a) { + if (r.context) { + var i = r.context.$i18n || {}; + n.modifiers.preserve || i.preserveDirectiveContent || (t.textContent = ""), t._vt = void 0, delete t + ._vt, t._locale = void 0, delete t._locale, t._localeMessage = void 0, delete t._localeMessage + } else e("Vue instance does not exists in VNode context") + } + + function C(t, n) { + var r = n.context; + return r ? !!r.$i18n || (e("VueI18n instance does not exists in Vue instance"), !1) : (e( + "Vue instance does not exists in VNode context"), !1) + } + + function T(t, n, r) { + var i, o, l = function(t) { + var e, n, r, i; + a(t) ? e = t : s(t) && (e = t.path, n = t.locale, r = t.args, i = t.choice); + return { + path: e, + locale: n, + args: r, + choice: i + } + }(n.value), + c = l.path, + u = l.locale, + h = l.args, + f = l.choice; + if (c || u || h) + if (c) { + var p = r.context; + t._vt = t.textContent = null != f ? (i = p.$i18n).tc.apply(i, [c, f].concat(L(u, h))) : (o = p + .$i18n).t.apply(o, [c].concat(L(u, h))), t._locale = p.$i18n.locale, t._localeMessage = p + .$i18n.getLocaleMessage(p.$i18n.locale) + } else e("`path` is required in v-t directive"); + else e("value type not supported") + } + + function L(t, e) { + var n = []; + return t && n.push(t), e && (Array.isArray(e) || s(e)) && n.push(e), n + } + + function I(t) { + I.installed = !0; + (F = t).version && Number(F.version.split(".")[0]); + ! function(t) { + t.prototype.hasOwnProperty("$i18n") || Object.defineProperty(t.prototype, "$i18n", { + get: function() { + return this._i18n + } + }), t.prototype.$t = function(t) { + for (var e = [], n = arguments.length - 1; n-- > 0;) e[n] = arguments[n + 1]; + var r = this.$i18n; + return r._t.apply(r, [t, r.locale, r._getMessages(), this].concat(e)) + }, t.prototype.$tc = function(t, e) { + for (var n = [], r = arguments.length - 2; r-- > 0;) n[r] = arguments[r + 2]; + var a = this.$i18n; + return a._tc.apply(a, [t, a.locale, a._getMessages(), this, e].concat(n)) + }, t.prototype.$te = function(t, e) { + var n = this.$i18n; + return n._te(t, n.locale, n._getMessages(), e) + }, t.prototype.$d = function(t) { + for (var e, n = [], r = arguments.length - 1; r-- > 0;) n[r] = arguments[r + 1]; + return (e = this.$i18n).d.apply(e, [t].concat(n)) + }, t.prototype.$n = function(t) { + for (var e, n = [], r = arguments.length - 1; r-- > 0;) n[r] = arguments[r + 1]; + return (e = this.$i18n).n.apply(e, [t].concat(n)) + } + }(F), F.mixin(g), F.directive("t", { + bind: w, + update: $, + unbind: M + }), F.component(v.name, v), F.component(k.name, k), F.config.optionMergeStrategies.i18n = function(t, + e) { + return void 0 === e ? t : e + } + } + var D = function() { + this._caches = Object.create(null) + }; + D.prototype.interpolate = function(t, e) { + if (!e) return [t]; + var n = this._caches[t]; + return n || (n = function(t) { + var e = [], + n = 0, + r = ""; + for (; n < t.length;) { + var a = t[n++]; + if ("{" === a) { + r && e.push({ + type: "text", + value: r + }), r = ""; + var i = ""; + for (a = t[n++]; void 0 !== a && "}" !== a;) i += a, a = t[n++]; + var o = "}" === a, + s = O.test(i) ? "list" : o && x.test(i) ? "named" : "unknown"; + e.push({ + value: i, + type: s + }) + } else "%" === a ? "{" !== t[n] && (r += a) : r += a + } + return r && e.push({ + type: "text", + value: r + }), e + }(t), this._caches[t] = n), + function(t, e) { + var n = [], + a = 0, + i = Array.isArray(e) ? "list" : r(e) ? "named" : "unknown"; + if ("unknown" === i) return n; + for (; a < t.length;) { + var o = t[a]; + switch (o.type) { + case "text": + n.push(o.value); + break; + case "list": + n.push(e[parseInt(o.value, 10)]); + break; + case "named": + "named" === i && n.push(e[o.value]) + } + a++ + } + return n + }(n, e) + }; + var O = /^(?:\d)+/, + x = /^(?:\w)+/, + W = 0, + j = 1, + N = 2, + A = 3, + S = 0, + R = 4, + H = 5, + P = 6, + V = 7, + E = 8, + z = []; + z[S] = { + ws: [S], + ident: [3, W], + "[": [R], + eof: [V] + }, z[1] = { + ws: [1], + ".": [2], + "[": [R], + eof: [V] + }, z[2] = { + ws: [2], + ident: [3, W], + 0: [3, W], + number: [3, W] + }, z[3] = { + ident: [3, W], + 0: [3, W], + number: [3, W], + ws: [1, j], + ".": [2, j], + "[": [R, j], + eof: [V, j] + }, z[R] = { + "'": [H, W], + '"': [P, W], + "[": [R, N], + "]": [1, A], + eof: E, + else: [R, W] + }, z[H] = { + "'": [R, W], + eof: E, + else: [H, W] + }, z[P] = { + '"': [R, W], + eof: E, + else: [P, W] + }; + var B = /^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/; + + function U(t) { + if (null == t) return "eof"; + switch (t.charCodeAt(0)) { + case 91: + case 93: + case 46: + case 34: + case 39: + return t; + case 95: + case 36: + case 45: + return "ident"; + case 9: + case 10: + case 13: + case 160: + case 65279: + case 8232: + case 8233: + return "ws" + } + return "ident" + } + + function J(t) { + var e, n, r, a = t.trim(); + return ("0" !== t.charAt(0) || !isNaN(t)) && (r = a, B.test(r) ? (n = (e = a).charCodeAt(0)) !== e + .charCodeAt(e.length - 1) || 34 !== n && 39 !== n ? e : e.slice(1, -1) : "*" + a) + } + var q = function() { + this._cache = Object.create(null) + }; + q.prototype.parsePath = function(t) { + var e = this._cache[t]; + return e || (e = function(t) { + var e, n, r, a, i, o, s, l = [], + c = -1, + u = S, + h = 0, + f = []; + + function p() { + var e = t[c + 1]; + if (u === H && "'" === e || u === P && '"' === e) return c++, r = "\\" + e, f[W](), !0 + } + for (f[j] = function() { + void 0 !== n && (l.push(n), n = void 0) + }, f[W] = function() { + void 0 === n ? n = r : n += r + }, f[N] = function() { + f[W](), h++ + }, f[A] = function() { + if (h > 0) h--, u = R, f[W](); + else { + if (h = 0, void 0 === n) return !1; + if (!1 === (n = J(n))) return !1; + f[j]() + } + }; null !== u;) + if ("\\" !== (e = t[++c]) || !p()) { + if (a = U(e), (i = (s = z[u])[a] || s.else || E) === E) return; + if (u = i[0], (o = f[i[1]]) && (r = void 0 === (r = i[2]) ? e : r, !1 === o())) + return; + if (u === V) return l + } + }(t)) && (this._cache[t] = e), e || [] + }, q.prototype.getPathValue = function(t, e) { + if (!r(t)) return null; + var n = this.parsePath(e); + if (0 === n.length) return null; + for (var a = n.length, i = t, o = 0; o < a;) { + var s = i[n[o]]; + if (void 0 === s) return null; + i = s, o++ + } + return i + }; + var G, X = /<\/?[\w\s="/.':;#-\/]+>/, + Z = /(?:@(?:\.[a-z]+)?:(?:[\w\-_|.]+|\([\w\-_|.]+\)))/g, + K = /^@(?:\.([a-z]+))?:/, + Q = /[()]/g, + Y = { + upper: function(t) { + return t.toLocaleUpperCase() + }, + lower: function(t) { + return t.toLocaleLowerCase() + }, + capitalize: function(t) { + return "" + t.charAt(0).toLocaleUpperCase() + t.substr(1) + } + }, + tt = new D, + et = function(t) { + var e = this; + void 0 === t && (t = {}), !F && "undefined" != typeof window && window.Vue && I(window.Vue); + var n = t.locale || "en-US", + r = !1 !== t.fallbackLocale && (t.fallbackLocale || "en-US"), + a = t.messages || {}, + i = t.dateTimeFormats || {}, + o = t.numberFormats || {}; + this._vm = null, this._formatter = t.formatter || tt, this._modifiers = t.modifiers || {}, this + ._missing = t.missing || null, this._root = t.root || null, this._sync = void 0 === t.sync || !!t + .sync, this._fallbackRoot = void 0 === t.fallbackRoot || !!t.fallbackRoot, this + ._formatFallbackMessages = void 0 !== t.formatFallbackMessages && !!t.formatFallbackMessages, this + ._silentTranslationWarn = void 0 !== t.silentTranslationWarn && t.silentTranslationWarn, this + ._silentFallbackWarn = void 0 !== t.silentFallbackWarn && !!t.silentFallbackWarn, this + ._dateTimeFormatters = {}, this._numberFormatters = {}, this._path = new q, this + ._dataListeners = [], this._componentInstanceCreatedListener = t.componentInstanceCreatedListener || + null, this._preserveDirectiveContent = void 0 !== t.preserveDirectiveContent && !!t + .preserveDirectiveContent, this.pluralizationRules = t.pluralizationRules || {}, this + ._warnHtmlInMessage = t.warnHtmlInMessage || "off", this._postTranslation = t.postTranslation || + null, this.getChoiceIndex = function(t, n) { + var r = Object.getPrototypeOf(e); + if (r && r.getChoiceIndex) return r.getChoiceIndex.call(e, t, n); + var a, i; + return e.locale in e.pluralizationRules ? e.pluralizationRules[e.locale].apply(e, [t, n]) : (a = + t, i = n, a = Math.abs(a), 2 === i ? a ? a > 1 ? 1 : 0 : 1 : a ? Math.min(a, 2) : 0) + }, this._exist = function(t, n) { + return !(!t || !n) && (!l(e._path.getPathValue(t, n)) || !!t[n]) + }, "warn" !== this._warnHtmlInMessage && "error" !== this._warnHtmlInMessage || Object.keys(a) + .forEach(function(t) { + e._checkLocaleMessage(t, e._warnHtmlInMessage, a[t]) + }), this._initVM({ + locale: n, + fallbackLocale: r, + messages: a, + dateTimeFormats: i, + numberFormats: o + }) + }, + nt = { + vm: { + configurable: !0 + }, + messages: { + configurable: !0 + }, + dateTimeFormats: { + configurable: !0 + }, + numberFormats: { + configurable: !0 + }, + availableLocales: { + configurable: !0 + }, + locale: { + configurable: !0 + }, + fallbackLocale: { + configurable: !0 + }, + formatFallbackMessages: { + configurable: !0 + }, + missing: { + configurable: !0 + }, + formatter: { + configurable: !0 + }, + silentTranslationWarn: { + configurable: !0 + }, + silentFallbackWarn: { + configurable: !0 + }, + preserveDirectiveContent: { + configurable: !0 + }, + warnHtmlInMessage: { + configurable: !0 + }, + postTranslation: { + configurable: !0 + } + }; + return et.prototype._checkLocaleMessage = function(t, n, r) { + var i = function(t, n, r, o) { + if (s(r)) Object.keys(r).forEach(function(e) { + var a = r[e]; + s(a) ? (o.push(e), o.push("."), i(t, n, a, o), o.pop(), o.pop()) : (o.push(e), i(t, + n, a, o), o.pop()) + }); + else if (Array.isArray(r)) r.forEach(function(e, r) { + s(e) ? (o.push("[" + r + "]"), o.push("."), i(t, n, e, o), o.pop(), o.pop()) : (o + .push("[" + r + "]"), i(t, n, e, o), o.pop()) + }); + else if (a(r)) { + if (X.test(r)) { + var l = "Detected HTML in message '" + r + "' of keypath '" + o.join("") + "' at '" + + n + + "'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp"; + "warn" === t ? e(l) : "error" === t && function(t, e) { + "undefined" != typeof console && (console.error("[vue-i18n] " + t), e && console + .error(e.stack)) + }(l) + } + } + }; + i(n, t, r, []) + }, et.prototype._initVM = function(t) { + var e = F.config.silent; + F.config.silent = !0, this._vm = new F({ + data: t + }), F.config.silent = e + }, et.prototype.destroyVM = function() { + this._vm.$destroy() + }, et.prototype.subscribeDataChanging = function(t) { + this._dataListeners.push(t) + }, et.prototype.unsubscribeDataChanging = function(t) { + ! function(t, e) { + if (t.length) { + var n = t.indexOf(e); + if (n > -1) t.splice(n, 1) + } + }(this._dataListeners, t) + }, et.prototype.watchI18nData = function() { + var t = this; + return this._vm.$watch("$data", function() { + for (var e = t._dataListeners.length; e--;) F.nextTick(function() { + t._dataListeners[e] && t._dataListeners[e].$forceUpdate() + }) + }, { + deep: !0 + }) + }, et.prototype.watchLocale = function() { + if (!this._sync || !this._root) return null; + var t = this._vm; + return this._root.$i18n.vm.$watch("locale", function(e) { + t.$set(t, "locale", e), t.$forceUpdate() + }, { + immediate: !0 + }) + }, et.prototype.onComponentInstanceCreated = function(t) { + this._componentInstanceCreatedListener && this._componentInstanceCreatedListener(t, this) + }, nt.vm.get = function() { + return this._vm + }, nt.messages.get = function() { + return u(this._getMessages()) + }, nt.dateTimeFormats.get = function() { + return u(this._getDateTimeFormats()) + }, nt.numberFormats.get = function() { + return u(this._getNumberFormats()) + }, nt.availableLocales.get = function() { + return Object.keys(this.messages).sort() + }, nt.locale.get = function() { + return this._vm.locale + }, nt.locale.set = function(t) { + this._vm.$set(this._vm, "locale", t) + }, nt.fallbackLocale.get = function() { + return this._vm.fallbackLocale + }, nt.fallbackLocale.set = function(t) { + this._localeChainCache = {}, this._vm.$set(this._vm, "fallbackLocale", t) + }, nt.formatFallbackMessages.get = function() { + return this._formatFallbackMessages + }, nt.formatFallbackMessages.set = function(t) { + this._formatFallbackMessages = t + }, nt.missing.get = function() { + return this._missing + }, nt.missing.set = function(t) { + this._missing = t + }, nt.formatter.get = function() { + return this._formatter + }, nt.formatter.set = function(t) { + this._formatter = t + }, nt.silentTranslationWarn.get = function() { + return this._silentTranslationWarn + }, nt.silentTranslationWarn.set = function(t) { + this._silentTranslationWarn = t + }, nt.silentFallbackWarn.get = function() { + return this._silentFallbackWarn + }, nt.silentFallbackWarn.set = function(t) { + this._silentFallbackWarn = t + }, nt.preserveDirectiveContent.get = function() { + return this._preserveDirectiveContent + }, nt.preserveDirectiveContent.set = function(t) { + this._preserveDirectiveContent = t + }, nt.warnHtmlInMessage.get = function() { + return this._warnHtmlInMessage + }, nt.warnHtmlInMessage.set = function(t) { + var e = this, + n = this._warnHtmlInMessage; + if (this._warnHtmlInMessage = t, n !== t && ("warn" === t || "error" === t)) { + var r = this._getMessages(); + Object.keys(r).forEach(function(t) { + e._checkLocaleMessage(t, e._warnHtmlInMessage, r[t]) + }) + } + }, nt.postTranslation.get = function() { + return this._postTranslation + }, nt.postTranslation.set = function(t) { + this._postTranslation = t + }, et.prototype._getMessages = function() { + return this._vm.messages + }, et.prototype._getDateTimeFormats = function() { + return this._vm.dateTimeFormats + }, et.prototype._getNumberFormats = function() { + return this._vm.numberFormats + }, et.prototype._warnDefault = function(t, e, n, r, i, o) { + if (!l(n)) return n; + if (this._missing) { + var s = this._missing.apply(null, [t, e, r, i]); + if (a(s)) return s + } + if (this._formatFallbackMessages) { + var u = c.apply(void 0, i); + return this._render(e, o, u.params, e) + } + return e + }, et.prototype._isFallbackRoot = function(t) { + return !t && !l(this._root) && this._fallbackRoot + }, et.prototype._isSilentFallbackWarn = function(t) { + return this._silentFallbackWarn instanceof RegExp ? this._silentFallbackWarn.test(t) : this + ._silentFallbackWarn + }, et.prototype._isSilentFallback = function(t, e) { + return this._isSilentFallbackWarn(e) && (this._isFallbackRoot() || t !== this.fallbackLocale) + }, et.prototype._isSilentTranslationWarn = function(t) { + return this._silentTranslationWarn instanceof RegExp ? this._silentTranslationWarn.test(t) : this + ._silentTranslationWarn + }, et.prototype._interpolate = function(t, e, n, r, i, o, c) { + if (!e) return null; + var u, h = this._path.getPathValue(e, n); + if (Array.isArray(h) || s(h)) return h; + if (l(h)) { + if (!s(e)) return null; + if (!a(u = e[n])) return null + } else { + if (!a(h)) return null; + u = h + } + return (u.indexOf("@:") >= 0 || u.indexOf("@.") >= 0) && (u = this._link(t, e, u, r, "raw", o, c)), this + ._render(u, i, o, n) + }, et.prototype._link = function(t, e, n, r, a, i, o) { + var s = n, + l = s.match(Z); + for (var c in l) + if (l.hasOwnProperty(c)) { + var u = l[c], + f = u.match(K), + p = f[0], + m = f[1], + _ = u.replace(p, "").replace(Q, ""); + if (h(o, _)) return s; + o.push(_); + var g = this._interpolate(t, e, _, r, "raw" === a ? "string" : a, "raw" === a ? void 0 : i, o); + if (this._isFallbackRoot(g)) { + if (!this._root) throw Error("unexpected error"); + var v = this._root.$i18n; + g = v._translate(v._getMessages(), v.locale, v.fallbackLocale, _, r, a, i) + } + g = this._warnDefault(t, _, g, r, Array.isArray(i) ? i : [i], a), this._modifiers + .hasOwnProperty(m) ? g = this._modifiers[m](g) : Y.hasOwnProperty(m) && (g = Y[m](g)), o + .pop(), s = g ? s.replace(u, g) : s + } return s + }, et.prototype._render = function(t, e, n, r) { + var i = this._formatter.interpolate(t, n, r); + return i || (i = tt.interpolate(t, n, r)), "string" !== e || a(i) ? i : i.join("") + }, et.prototype._appendItemToChain = function(t, e, n) { + var r = !1; + return h(t, e) || (r = !0, e && (r = "!" !== e[e.length - 1], e = e.replace(/!/g, ""), t.push(e), n && + n[e] && (r = n[e]))), r + }, et.prototype._appendLocaleToChain = function(t, e, n) { + var r, a = e.split("-"); + do { + var i = a.join("-"); + r = this._appendItemToChain(t, i, n), a.splice(-1, 1) + } while (a.length && !0 === r); + return r + }, et.prototype._appendBlockToChain = function(t, e, n) { + for (var r = !0, i = 0; i < e.length && "boolean" == typeof r; i++) { + var o = e[i]; + a(o) && (r = this._appendLocaleToChain(t, o, n)) + } + return r + }, et.prototype._getLocaleChain = function(t, e) { + if ("" === t) return []; + this._localeChainCache || (this._localeChainCache = {}); + var i = this._localeChainCache[t]; + if (!i) { + e || (e = this.fallbackLocale), i = []; + for (var o, s = [t]; n(s);) s = this._appendBlockToChain(i, s, e); + (s = a(o = n(e) ? e : r(e) ? e.default ? e.default : null : e) ? [o] : o) && this + ._appendBlockToChain(i, s, null), this._localeChainCache[t] = i + } + return i + }, et.prototype._translate = function(t, e, n, r, a, i, o) { + for (var s, c = this._getLocaleChain(e, n), u = 0; u < c.length; u++) { + var h = c[u]; + if (!l(s = this._interpolate(h, t[h], r, a, i, o, [r]))) return s + } + return null + }, et.prototype._t = function(t, e, n, r) { + for (var a, i = [], o = arguments.length - 4; o-- > 0;) i[o] = arguments[o + 4]; + if (!t) return ""; + var s = c.apply(void 0, i), + l = s.locale || e, + u = this._translate(n, l, this.fallbackLocale, t, r, "string", s.params); + if (this._isFallbackRoot(u)) { + if (!this._root) throw Error("unexpected error"); + return (a = this._root).$t.apply(a, [t].concat(i)) + } + return u = this._warnDefault(l, t, u, r, i, "string"), this._postTranslation && null != u && (u = this + ._postTranslation(u, t)), u + }, et.prototype.t = function(t) { + for (var e, n = [], r = arguments.length - 1; r-- > 0;) n[r] = arguments[r + 1]; + return (e = this)._t.apply(e, [t, this.locale, this._getMessages(), null].concat(n)) + }, et.prototype._i = function(t, e, n, r, a) { + var i = this._translate(n, e, this.fallbackLocale, t, r, "raw", a); + if (this._isFallbackRoot(i)) { + if (!this._root) throw Error("unexpected error"); + return this._root.$i18n.i(t, e, a) + } + return this._warnDefault(e, t, i, r, [a], "raw") + }, et.prototype.i = function(t, e, n) { + return t ? (a(e) || (e = this.locale), this._i(t, e, this._getMessages(), null, n)) : "" + }, et.prototype._tc = function(t, e, n, r, a) { + for (var i, o = [], s = arguments.length - 5; s-- > 0;) o[s] = arguments[s + 5]; + if (!t) return ""; + void 0 === a && (a = 1); + var l = { + count: a, + n: a + }, + u = c.apply(void 0, o); + return u.params = Object.assign(l, u.params), o = null === u.locale ? [u.params] : [u.locale, u.params], + this.fetchChoice((i = this)._t.apply(i, [t, e, n, r].concat(o)), a) + }, et.prototype.fetchChoice = function(t, e) { + if (!t && !a(t)) return null; + var n = t.split("|"); + return n[e = this.getChoiceIndex(e, n.length)] ? n[e].trim() : t + }, et.prototype.tc = function(t, e) { + for (var n, r = [], a = arguments.length - 2; a-- > 0;) r[a] = arguments[a + 2]; + return (n = this)._tc.apply(n, [t, this.locale, this._getMessages(), null, e].concat(r)) + }, et.prototype._te = function(t, e, n) { + for (var r = [], a = arguments.length - 3; a-- > 0;) r[a] = arguments[a + 3]; + var i = c.apply(void 0, r).locale || e; + return this._exist(n[i], t) + }, et.prototype.te = function(t, e) { + return this._te(t, this.locale, this._getMessages(), e) + }, et.prototype.getLocaleMessage = function(t) { + return u(this._vm.messages[t] || {}) + }, et.prototype.setLocaleMessage = function(t, e) { + "warn" !== this._warnHtmlInMessage && "error" !== this._warnHtmlInMessage || this._checkLocaleMessage(t, + this._warnHtmlInMessage, e), this._vm.$set(this._vm.messages, t, e) + }, et.prototype.mergeLocaleMessage = function(t, e) { + "warn" !== this._warnHtmlInMessage && "error" !== this._warnHtmlInMessage || this._checkLocaleMessage(t, + this._warnHtmlInMessage, e), this._vm.$set(this._vm.messages, t, m({}, this._vm.messages[t] || + {}, e)) + }, et.prototype.getDateTimeFormat = function(t) { + return u(this._vm.dateTimeFormats[t] || {}) + }, et.prototype.setDateTimeFormat = function(t, e) { + this._vm.$set(this._vm.dateTimeFormats, t, e), this._clearDateTimeFormat(t, e) + }, et.prototype.mergeDateTimeFormat = function(t, e) { + this._vm.$set(this._vm.dateTimeFormats, t, m(this._vm.dateTimeFormats[t] || {}, e)), this + ._clearDateTimeFormat(t, e) + }, et.prototype._clearDateTimeFormat = function(t, e) { + for (var n in e) { + var r = t + "__" + n; + this._dateTimeFormatters.hasOwnProperty(r) && delete this._dateTimeFormatters[r] + } + }, et.prototype._localizeDateTime = function(t, e, n, r, a) { + for (var i = e, o = r[i], s = this._getLocaleChain(e, n), c = 0; c < s.length; c++) { + var u = s[c]; + if (i = u, !l(o = r[u]) && !l(o[a])) break + } + if (l(o) || l(o[a])) return null; + var h = o[a], + f = i + "__" + a, + p = this._dateTimeFormatters[f]; + return p || (p = this._dateTimeFormatters[f] = new Intl.DateTimeFormat(i, h)), p.format(t) + }, et.prototype._d = function(t, e, n) { + if (!n) return new Intl.DateTimeFormat(e).format(t); + var r = this._localizeDateTime(t, e, this.fallbackLocale, this._getDateTimeFormats(), n); + if (this._isFallbackRoot(r)) { + if (!this._root) throw Error("unexpected error"); + return this._root.$i18n.d(t, n, e) + } + return r || "" + }, et.prototype.d = function(t) { + for (var e = [], n = arguments.length - 1; n-- > 0;) e[n] = arguments[n + 1]; + var i = this.locale, + o = null; + return 1 === e.length ? a(e[0]) ? o = e[0] : r(e[0]) && (e[0].locale && (i = e[0].locale), e[0].key && ( + o = e[0].key)) : 2 === e.length && (a(e[0]) && (o = e[0]), a(e[1]) && (i = e[1])), this._d(t, i, + o) + }, et.prototype.getNumberFormat = function(t) { + return u(this._vm.numberFormats[t] || {}) + }, et.prototype.setNumberFormat = function(t, e) { + this._vm.$set(this._vm.numberFormats, t, e), this._clearNumberFormat(t, e) + }, et.prototype.mergeNumberFormat = function(t, e) { + this._vm.$set(this._vm.numberFormats, t, m(this._vm.numberFormats[t] || {}, e)), this + ._clearNumberFormat(t, e) + }, et.prototype._clearNumberFormat = function(t, e) { + for (var n in e) { + var r = t + "__" + n; + this._numberFormatters.hasOwnProperty(r) && delete this._numberFormatters[r] + } + }, et.prototype._getNumberFormatter = function(t, e, n, r, a, i) { + for (var o = e, s = r[o], c = this._getLocaleChain(e, n), u = 0; u < c.length; u++) { + var h = c[u]; + if (o = h, !l(s = r[h]) && !l(s[a])) break + } + if (l(s) || l(s[a])) return null; + var f, p = s[a]; + if (i) f = new Intl.NumberFormat(o, Object.assign({}, p, i)); + else { + var m = o + "__" + a; + (f = this._numberFormatters[m]) || (f = this._numberFormatters[m] = new Intl.NumberFormat(o, p)) + } + return f + }, et.prototype._n = function(t, e, n, r) { + if (!et.availabilities.numberFormat) return ""; + if (!n) return (r ? new Intl.NumberFormat(e, r) : new Intl.NumberFormat(e)).format(t); + var a = this._getNumberFormatter(t, e, this.fallbackLocale, this._getNumberFormats(), n, r), + i = a && a.format(t); + if (this._isFallbackRoot(i)) { + if (!this._root) throw Error("unexpected error"); + return this._root.$i18n.n(t, Object.assign({}, { + key: n, + locale: e + }, r)) + } + return i || "" + }, et.prototype.n = function(e) { + for (var n = [], i = arguments.length - 1; i-- > 0;) n[i] = arguments[i + 1]; + var o = this.locale, + s = null, + l = null; + return 1 === n.length ? a(n[0]) ? s = n[0] : r(n[0]) && (n[0].locale && (o = n[0].locale), n[0].key && ( + s = n[0].key), l = Object.keys(n[0]).reduce(function(e, r) { + var a; + return h(t, r) ? Object.assign({}, e, ((a = {})[r] = n[0][r], a)) : e + }, null)) : 2 === n.length && (a(n[0]) && (s = n[0]), a(n[1]) && (o = n[1])), this._n(e, o, s, l) + }, et.prototype._ntp = function(t, e, n, r) { + if (!et.availabilities.numberFormat) return []; + if (!n) return (r ? new Intl.NumberFormat(e, r) : new Intl.NumberFormat(e)).formatToParts(t); + var a = this._getNumberFormatter(t, e, this.fallbackLocale, this._getNumberFormats(), n, r), + i = a && a.formatToParts(t); + if (this._isFallbackRoot(i)) { + if (!this._root) throw Error("unexpected error"); + return this._root.$i18n._ntp(t, e, n, r) + } + return i || [] + }, Object.defineProperties(et.prototype, nt), Object.defineProperty(et, "availabilities", { + get: function() { + if (!G) { + var t = "undefined" != typeof Intl; + G = { + dateTimeFormat: t && void 0 !== Intl.DateTimeFormat, + numberFormat: t && void 0 !== Intl.NumberFormat + } + } + return G + } + }), et.install = I, et.version = "8.20.0", et + }, "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == + typeof define && define.amd ? define(e) : t.VueI18n = e(); \ No newline at end of file diff --git a/components/.DS_Store b/components/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..526feb17dd16c10a8e00aa7a1fe657ec09332e09 GIT binary patch literal 6148 zcmeHK-D(p-6h6~NJFyB8Ec9}~+o<`eV(?~-@j@?M(F>KB?S^)7v$JG3t`GuCFYRme zUhqo1_8EK+pFq!gVFP}$AsEe+iBw=Q_zO9f|S?$-hr_#KKMfG zbtz_eMrOKymM=ZAdggOnJ@VR@o2wt%jp!6`3Y>EV=zLJY1&fVg zOuq`mQH&mAX%TDCgry={s^BMvuyia}+|FYxEm}GVetZZXS?~)*n9;F+WtxNVEV|Sw z;1oEnz`D)W=>C7W`2ByJ + + + + + + {{$t('homePage.alarm.sift')}} + + + + + + + + diff --git a/components/charts/index.vue b/components/charts/index.vue new file mode 100644 index 0000000..c94d17e --- /dev/null +++ b/components/charts/index.vue @@ -0,0 +1,213 @@ + + + + \ No newline at end of file diff --git a/components/echarts/echarts.min.js b/components/echarts/echarts.min.js new file mode 100644 index 0000000..a4bc7a0 --- /dev/null +++ b/components/echarts/echarts.min.js @@ -0,0 +1,17 @@ +!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,e){function n(){this.constructor=t}if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");cm(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function n(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]),r&&(n.ie=!0,n.version=r[1]),o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18),a&&(n.weChat=!0),e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document;var s=document.documentElement.style;e.transform3dSupported=(n.ie&&"transition"in s||n.edge||"WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix||"MozPerspective"in s)&&!("OTransition"in s),e.transformSupported=e.transform3dSupported||n.ie&&+n.version>=9}function i(t){var e={};if("undefined"==typeof JSON)return e;for(var n=0;ni;i++)e[i]=s(t[i])}}else if(Mm[n]){if(!X(t)){var o=t.constructor;if(o.from)e=o.from(t);else{e=new o(t.length);for(var i=0,r=t.length;r>i;i++)e[i]=t[i]}}}else if(!Sm[n]&&!X(t)&&!L(t)){e={};for(var a in t)t.hasOwnProperty(a)&&a!==Om&&(e[a]=s(t[a]))}return e}function l(t,e,n){if(!k(e)||!k(t))return n?s(e):t;for(var i in e)if(e.hasOwnProperty(i)&&i!==Om){var r=t[i],o=e[i];!k(o)||!k(r)||M(o)||M(r)||L(o)||L(r)||A(o)||A(r)||X(o)||X(r)?!n&&i in t||(t[i]=s(e[i])):l(r,o,n)}return t}function u(t,e){for(var n=t[0],i=1,r=t.length;r>i;i++)n=l(n,t[i],e);return n}function h(t,e){if(Object.assign)Object.assign(t,e);else for(var n in e)e.hasOwnProperty(n)&&n!==Om&&(t[n]=e[n]);return t}function c(t,e,n){for(var i=w(e),r=0;rn;n++)if(t[n]===e)return n}return-1}function d(t,e){function n(){}var i=t.prototype;n.prototype=e.prototype,t.prototype=new n;for(var r in i)i.hasOwnProperty(r)&&(t.prototype[r]=i[r]);t.prototype.constructor=t,t.superClass=e}function f(t,e,n){if(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(e),r=0;ri;i++)e.call(n,t[i],i,t);else for(var o in t)t.hasOwnProperty(o)&&e.call(n,t[o],o,t)}function v(t,e,n){if(!t)return[];if(!e)return V(t);if(t.map&&t.map===Am)return t.map(e,n);for(var i=[],r=0,o=t.length;o>r;r++)i.push(e.call(n,t[r],r,t));return i}function m(t,e,n,i){if(t&&e){for(var r=0,o=t.length;o>r;r++)n=e.call(i,n,t[r],r,t);return n}}function _(t,e,n){if(!t)return[];if(!e)return V(t);if(t.filter&&t.filter===Dm)return t.filter(e,n);for(var i=[],r=0,o=t.length;o>r;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}function x(t,e,n){if(t&&e)for(var i=0,r=t.length;r>i;i++)if(e.call(n,t[i],i,t))return t[i]}function w(t){if(!t)return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}function b(t,e){for(var n=[],i=2;in;n++)if(null!=t[n])return t[n]}function B(t,e){return null!=t?t:e}function F(t,e,n){return null!=t?t:null!=e?e:n}function V(t){for(var e=[],n=1;np;p++){var f=1<a;a++)for(var s=0;8>s;s++)null==o[s]&&(o[s]=0),o[s]+=((a+s)%2?-1:1)*_e(n,7,0===a?1:0,1<o;o++){var a=document.createElement("div"),s=a.style,l=o%2,u=(o>>1)%2;s.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[l]+":0",r[u]+":0",i[1-l]+":auto",r[1-u]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}function Me(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],l=!0,u=0;4>u;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,d=h.top;a.push(p,d),l=l&&o&&p===o[c]&&d===o[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=a,e[i]=n?xe(s,a):xe(a,s))}function Te(t){return"CANVAS"===t.nodeName.toUpperCase()}function Ce(t){return null==t?"":(t+"").replace(Qm,function(t,e){return Jm[e]})}function Ie(t,e,n,i){return n=n||{},i?De(t,e,n):n_&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):De(t,e,n),n}function De(t,e,n){if(fm.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Te(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(be(e_,t,i,r))return n.zrX=e_[0],void(n.zrY=e_[1])}n.zrX=n.zrY=0}function ke(t){return t||window.event}function Ae(t,e,n){if(e=ke(e),null!=e.zrX)return e;var i=e.type,r=i&&i.indexOf("touch")>=0;if(r){var o="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];o&&Ie(t,o,e,n)}else{Ie(t,e,e,n);var a=Pe(e);e.zrDelta=a?a/120:-(e.detail||0)/3}var s=e.button;return null==e.which&&void 0!==s&&t_.test(e.type)&&(e.which=1&s?1:2&s?3:4&s?2:0),e}function Pe(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;var r=Math.abs(0!==i?i:n),o=i>0?-1:0>i?1:n>0?-1:1;return 3*r*o}function Le(t,e,n,i){t.addEventListener(e,n,i)}function Oe(t,e,n,i){t.removeEventListener(e,n,i)}function Re(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}function Ee(t){return[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]}function ze(){return[1,0,0,1,0,0]}function Ne(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function Be(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 Fe(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function Ve(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function He(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function We(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function Ge(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}function Ue(t){var e=ze();return Be(e,t),e}function Xe(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:Ye}}function Ye(){i_(this.event)}function qe(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,o=!1;i;){if(i.ignoreClip&&(o=!0),!o){var a=i.getClipPath();if(a&&!a.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s?s:i.parent}return r?v_:!0}return!1}function je(t,e,n,i,r){for(var o=t.length-1;o>=0;o--){var a=t[o],s=void 0;if(a!==r&&!a.ignore&&(s=qe(a,n,i))&&(!e.topTarget&&(e.topTarget=a),s!==v_)){e.target=a;break}}}function Ze(t,e,n){var i=t.painter;return 0>e||e>i.getWidth()||0>n||n>i.getHeight()}function Ke(t){for(var e=0;t>=M_;)e|=1&t,t>>=1;return t+e}function $e(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;n>r&&i(t[r],t[r-1])<0;)r++;Qe(t,e,r)}else for(;n>r&&i(t[r],t[r-1])>=0;)r++;return r-e}function Qe(t,e,n){for(n--;n>e;){var i=t[e];t[e++]=t[n],t[n--]=i}}function Je(t,e,n,i,r){for(i===e&&i++;n>i;i++){for(var o,a=t[i],s=e,l=i;l>s;)o=s+l>>>1,r(a,t[o])<0?l=o:s=o+1;var u=i-s;switch(u){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(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function tn(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;s>l&&o(t,e[n+r+l])>0;)a=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;s>l&&o(t,e[n+r-l])<=0;)a=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}for(a++;l>a;){var h=a+(l-a>>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function en(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;s>l&&o(t,e[n+r-l])<0;)a=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;s>l&&o(t,e[n+r+l])>=0;)a=l,l=(l<<1)+1,0>=l&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;l>a;){var h=a+(l-a>>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function nn(t,e){function n(t,e){l[c]=t,u[c]=e,c+=1}function i(){for(;c>1;){var t=c-2;if(t>=1&&u[t-1]<=u[t]+u[t+1]||t>=2&&u[t-2]<=u[t]+u[t-1])u[t-1]u[t+1])break;o(t)}}function r(){for(;c>1;){var t=c-2;t>0&&u[t-1]=r?a(i,r,o,h):s(i,r,o,h)))}function a(n,i,r,o){var a=0;for(a=0;i>a;a++)p[a]=t[n+a];var s=0,l=r,u=n;if(t[u++]=t[l++],0!==--o){if(1===i){for(a=0;o>a;a++)t[u+a]=t[l+a];return void(t[u+o]=p[s])}for(var c,d,f,g=h;;){c=0,d=0,f=!1;do if(e(t[l],p[s])<0){if(t[u++]=t[l++],d++,c=0,0===--o){f=!0;break}}else if(t[u++]=p[s++],c++,d=0,1===--i){f=!0;break}while(g>(c|d));if(f)break;do{if(c=en(t[l],p,s,i,0,e),0!==c){for(a=0;c>a;a++)t[u+a]=p[s+a];if(u+=c,s+=c,i-=c,1>=i){f=!0;break}}if(t[u++]=t[l++],0===--o){f=!0;break}if(d=tn(p[s],t,l,o,0,e),0!==d){for(a=0;d>a;a++)t[u+a]=t[l+a];if(u+=d,l+=d,o-=d,0===o){f=!0;break}}if(t[u++]=p[s++],1===--i){f=!0;break}g--}while(c>=T_||d>=T_);if(f)break;0>g&&(g=0),g+=2}if(h=g,1>h&&(h=1),1===i){for(a=0;o>a;a++)t[u+a]=t[l+a];t[u+o]=p[s]}else{if(0===i)throw new Error;for(a=0;i>a;a++)t[u+a]=p[s+a]}}else for(a=0;i>a;a++)t[u+a]=p[s+a]}function s(n,i,r,o){var a=0;for(a=0;o>a;a++)p[a]=t[r+a];var s=n+i-1,l=o-1,u=r+o-1,c=0,d=0;if(t[u--]=t[s--],0!==--i){if(1===o){for(u-=i,s-=i,d=u+1,c=s+1,a=i-1;a>=0;a--)t[d+a]=t[c+a];return void(t[u]=p[l])}for(var f=h;;){var g=0,y=0,v=!1;do if(e(p[l],t[s])<0){if(t[u--]=t[s--],g++,y=0,0===--i){v=!0;break}}else if(t[u--]=p[l--],y++,g=0,1===--o){v=!0;break}while(f>(g|y));if(v)break;do{if(g=i-en(p[l],t,n,i,i-1,e),0!==g){for(u-=g,s-=g,i-=g,d=u+1,c=s+1,a=g-1;a>=0;a--)t[d+a]=t[c+a];if(0===i){v=!0;break}}if(t[u--]=p[l--],1===--o){v=!0;break}if(y=o-tn(t[s],p,0,o,o-1,e),0!==y){for(u-=y,l-=y,o-=y,d=u+1,c=l+1,a=0;y>a;a++)t[d+a]=p[c+a];if(1>=o){v=!0;break}}if(t[u--]=t[s--],0===--i){v=!0;break}f--}while(g>=T_||y>=T_);if(v)break;0>f&&(f=0),f+=2}if(h=f,1>h&&(h=1),1===o){for(u-=i,s-=i,d=u+1,c=s+1,a=i-1;a>=0;a--)t[d+a]=t[c+a];t[u]=p[l]}else{if(0===o)throw new Error;for(c=u-(o-1),a=0;o>a;a++)t[c+a]=p[a]}}else for(c=u-(o-1),a=0;o>a;a++)t[c+a]=p[a]}var l,u,h=T_,c=0,p=[];return l=[],u=[],{mergeRuns:i,forceMergeRuns:r,pushRun:n}}function rn(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(2>r)){var o=0;if(M_>r)return o=$e(t,n,i,e),void Je(t,n,i,n+o,e);var a=nn(t,e),s=Ke(r);do{if(o=$e(t,n,i,e),s>o){var l=r;l>s&&(l=s),Je(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}function on(){k_||(k_=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function an(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function sn(t){return t>-E_&&E_>t}function ln(t){return t>E_||-E_>t}function un(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function hn(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function cn(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,d=0;if(sn(h)&&sn(c))if(sn(s))o[0]=0;else{var f=-l/s;f>=0&&1>=f&&(o[d++]=f)}else{var g=c*c-4*h*p;if(sn(g)){var y=c/h,f=-s/a+y,v=-y/2;f>=0&&1>=f&&(o[d++]=f),v>=0&&1>=v&&(o[d++]=v)}else if(g>0){var m=R_(g),_=h*s+1.5*a*(-c+m),x=h*s+1.5*a*(-c-m);_=0>_?-O_(-_,B_):O_(_,B_),x=0>x?-O_(-x,B_):O_(x,B_);var f=(-s-(_+x))/(3*a);f>=0&&1>=f&&(o[d++]=f)}else{var w=(2*h*s-3*a*c)/(2*R_(h*h*h)),b=Math.acos(w)/3,S=R_(h),M=Math.cos(b),f=(-s-2*S*M)/(3*a),v=(-s+S*(M+N_*Math.sin(b)))/(3*a),T=(-s+S*(M-N_*Math.sin(b)))/(3*a);f>=0&&1>=f&&(o[d++]=f),v>=0&&1>=v&&(o[d++]=v),T>=0&&1>=T&&(o[d++]=T)}}return d}function pn(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(sn(a)){if(ln(o)){var u=-s/o;u>=0&&1>=u&&(r[l++]=u)}}else{var h=o*o-4*a*s;if(sn(h))r[0]=-o/(2*a);else if(h>0){var c=R_(h),u=(-o+c)/(2*a),p=(-o-c)/(2*a);u>=0&&1>=u&&(r[l++]=u),p>=0&&1>=p&&(r[l++]=p)}}return l}function dn(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function fn(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;F_[0]=l,F_[1]=u;for(var m=0;1>m;m+=.05)V_[0]=un(t,n,r,a,m),V_[1]=un(e,i,o,s,m),f=Um(F_,V_),v>f&&(c=m,v=f);v=1/0;for(var _=0;32>_&&!(z_>y);_++)p=c-y,d=c+y,V_[0]=un(t,n,r,a,p),V_[1]=un(e,i,o,s,p),f=Um(V_,F_),p>=0&&v>f?(c=p,v=f):(H_[0]=un(t,n,r,a,d),H_[1]=un(e,i,o,s,d),g=Um(H_,F_),1>=d&&v>g?(c=d,v=g):y*=.5);return h&&(h[0]=un(t,n,r,a,c),h[1]=un(e,i,o,s,c)),R_(v)}function gn(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;l>=d;d++){var f=d*p,g=un(t,n,r,a,f),y=un(e,i,o,s,f),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}function yn(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function vn(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function mn(t,e,n,i,r){var o=t-2*e+n,a=2*(e-t),s=t-i,l=0;if(sn(o)){if(ln(a)){var u=-s/a;u>=0&&1>=u&&(r[l++]=u)}}else{var h=a*a-4*o*s;if(sn(h)){var u=-a/(2*o);u>=0&&1>=u&&(r[l++]=u)}else if(h>0){var c=R_(h),u=(-a+c)/(2*o),p=(-a-c)/(2*o);u>=0&&1>=u&&(r[l++]=u),p>=0&&1>=p&&(r[l++]=p)}}return l}function _n(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function xn(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function wn(t,e,n,i,r,o,a,s,l){var u,h=.005,c=1/0;F_[0]=a,F_[1]=s;for(var p=0;1>p;p+=.05){V_[0]=yn(t,n,r,p),V_[1]=yn(e,i,o,p);var d=Um(F_,V_);c>d&&(u=p,c=d)}c=1/0;for(var f=0;32>f&&!(z_>h);f++){var g=u-h,y=u+h;V_[0]=yn(t,n,r,g),V_[1]=yn(e,i,o,g);var d=Um(V_,F_);if(g>=0&&c>d)u=g,c=d;else{H_[0]=yn(t,n,r,y),H_[1]=yn(e,i,o,y);var v=Um(H_,F_);1>=y&&c>v?(u=y,c=v):h*=.5}}return l&&(l[0]=yn(t,n,r,u),l[1]=yn(e,i,o,u)),R_(c)}function bn(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;a>=c;c++){var p=c*h,d=yn(t,n,r,p),f=yn(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}function Sn(t){var e=t&&W_.exec(t);if(e){var n=e[1].split(","),i=+G(n[0]),r=+G(n[1]),o=+G(n[2]),a=+G(n[3]);if(isNaN(i+r+o+a))return;var s=[];return function(t){return 0>=t?0:t>=1?1:cn(0,i,o,1,t,s)&&un(0,r,a,1,s[0])}}}function Mn(t){return t=Math.round(t),0>t?0:t>255?255:t}function Tn(t){return t=Math.round(t),0>t?0:t>360?360:t}function Cn(t){return 0>t?0:t>1?1:t}function In(t){var e=t;return Mn(e.length&&"%"===e.charAt(e.length-1)?parseFloat(e)/100*255:parseInt(e,10))}function Dn(t){var e=t;return Cn(e.length&&"%"===e.charAt(e.length-1)?parseFloat(e)/100:parseFloat(e))}function kn(t,e,n){return 0>n?n+=1:n>1&&(n-=1),1>6*n?t+(e-t)*n*6:1>2*n?e:2>3*n?t+(e-t)*(2/3-n)*6:t}function An(t,e,n){return t+(e-t)*n}function Pn(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function Ln(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function On(t,e){Z_&&Ln(Z_,e),Z_=j_.put(t,Z_||e.slice())}function Rn(t,e){if(t){e=e||[];var n=j_.get(t);if(n)return Ln(e,n);t+="";var i=t.replace(/ /g,"").toLowerCase();if(i in q_)return Ln(e,q_[i]),On(t,e),e;var r=i.length;if("#"!==i.charAt(0)){var o=i.indexOf("("),a=i.indexOf(")");if(-1!==o&&a+1===r){var s=i.substr(0,o),l=i.substr(o+1,a-(o+1)).split(","),u=1;switch(s){case"rgba":if(4!==l.length)return 3===l.length?Pn(e,+l[0],+l[1],+l[2],1):Pn(e,0,0,0,1);u=Dn(l.pop());case"rgb":return l.length>=3?(Pn(e,In(l[0]),In(l[1]),In(l[2]),3===l.length?u:Dn(l[3])),On(t,e),e):void Pn(e,0,0,0,1);case"hsla":return 4!==l.length?void Pn(e,0,0,0,1):(l[3]=Dn(l[3]),En(l,e),On(t,e),e);case"hsl":return 3!==l.length?void Pn(e,0,0,0,1):(En(l,e),On(t,e),e);default:return}}Pn(e,0,0,0,1)}else{if(4===r||5===r){var h=parseInt(i.slice(1,4),16);return h>=0&&4095>=h?(Pn(e,(3840&h)>>4|(3840&h)>>8,240&h|(240&h)>>4,15&h|(15&h)<<4,5===r?parseInt(i.slice(4),16)/15:1),On(t,e),e):void Pn(e,0,0,0,1)}if(7===r||9===r){var h=parseInt(i.slice(1,7),16);return h>=0&&16777215>=h?(Pn(e,(16711680&h)>>16,(65280&h)>>8,255&h,9===r?parseInt(i.slice(7),16)/255:1),On(t,e),e):void Pn(e,0,0,0,1)}}}}function En(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Dn(t[1]),r=Dn(t[2]),o=.5>=r?r*(i+1):r+i-r*i,a=2*r-o;return e=e||[],Pn(e,Mn(255*kn(a,o,n+1/3)),Mn(255*kn(a,o,n)),Mn(255*kn(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function zn(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=.5>u?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),0>e&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}function Nn(t,e){var n=Rn(t);if(n){for(var i=0;3>i;i++)n[i]=0>e?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return Gn(n,4===n.length?"rgba":"rgb")}}function Bn(t){var e=Rn(t);return e?((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1):void 0}function Fn(t,e,n){if(e&&e.length&&t>=0&&1>=t){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=Mn(An(a[0],s[0],l)),n[1]=Mn(An(a[1],s[1],l)),n[2]=Mn(An(a[2],s[2],l)),n[3]=Cn(An(a[3],s[3],l)),n}}function Vn(t,e,n){if(e&&e.length&&t>=0&&1>=t){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=Rn(e[r]),s=Rn(e[o]),l=i-r,u=Gn([Mn(An(a[0],s[0],l)),Mn(An(a[1],s[1],l)),Mn(An(a[2],s[2],l)),Cn(An(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}function Hn(t,e,n,i){var r=Rn(t);return t?(r=zn(r),null!=e&&(r[0]=Tn(e)),null!=n&&(r[1]=Dn(n)),null!=i&&(r[2]=Dn(i)),Gn(En(r),"rgba")):void 0}function Wn(t,e){var n=Rn(t);return n&&null!=e?(n[3]=Cn(e),Gn(n,"rgba")):void 0}function Gn(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return("rgba"===e||"hsva"===e||"hsla"===e)&&(n+=","+t[3]),e+"("+n+")"}}function Un(t,e){var n=Rn(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}function Xn(){return Gn([Math.round(255*Math.random()),Math.round(255*Math.random()),Math.round(255*Math.random())],"rgb")}function Yn(t){return"linear"===t.type}function qn(t){return"radial"===t.type}function jn(t,e,n){return(e-t)*n+t}function Zn(t,e,n,i){for(var r=e.length,o=0;r>o;o++)t[o]=jn(e[o],n[o],i);return t}function Kn(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;r>a;a++){t[a]||(t[a]=[]);for(var s=0;o>s;s++)t[a][s]=jn(e[a][s],n[a][s],i)}return t}function $n(t,e,n,i){for(var r=e.length,o=0;r>o;o++)t[o]=e[o]+n[o]*i;return t}function Qn(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;r>a;a++){t[a]||(t[a]=[]);for(var s=0;o>s;s++)t[a][s]=e[a][s]+n[a][s]*i}return t}function Jn(t,e){for(var n=t.length,i=e.length,r=n>i?e:t,o=Math.min(n,i),a=r[o-1]||{color:[0,0,0,0],offset:0},s=o;sa;if(s)i.length=a;else for(var l=o;a>l;l++)i.push(1===n?r[l]:J_.call(r[l]))}for(var u=i[0]&&i[0].length,l=0;lh;h++)isNaN(i[l][h])&&(i[l][h]=r[l][h])}}function ei(t){if(g(t)){var e=t.length;if(g(t[0])){for(var n=[],i=0;e>i;i++)n.push(J_.call(t[i]));return n}return J_.call(t)}return t}function ni(t){return t[0]=Math.floor(t[0])||0,t[1]=Math.floor(t[1])||0,t[2]=Math.floor(t[2])||0,t[3]=null==t[3]?1:t[3],"rgba("+t.join(",")+")"}function ii(t){return g(t&&t[0])?2:1}function ri(t){return t===rx||t===ox}function oi(t){return t===ex||t===nx}function ai(){return(new Date).getTime()}function si(t){var e=t.pointerType;return"pen"===e||"touch"===e}function li(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout(function(){t.touching=!1,t.touchTimer=null},700)}function ui(t){t&&(t.zrByTouch=!0)}function hi(t,e){return Ae(t.dom,new yx(t,e),!0)}function ci(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}function pi(t,e){var n=e.domHandlers;fm.pointerEventsSupported?y(dx.pointer,function(i){fi(e,i,function(e){n[i].call(t,e)})}):(fm.touchEventsSupported&&y(dx.touch,function(i){fi(e,i,function(r){n[i].call(t,r),li(e)})}),y(dx.mouse,function(i){fi(e,i,function(r){r=ke(r),e.touching||n[i].call(t,r)})}))}function di(t,e){function n(n){function i(i){i=ke(i),ci(t,i.target)||(i=hi(t,i),e.domHandlers[n].call(t,i))}fi(e,n,i,{capture:!0})}fm.pointerEventsSupported?y(fx.pointer,n):fm.touchEventsSupported||y(fx.mouse,n)}function fi(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,Le(t.domTarget,e,n,i)}function gi(t){var e=t.mounted;for(var n in e)e.hasOwnProperty(n)&&Oe(t.domTarget,n,e[n],t.listenerOpts[n]);t.mounted={}}function yi(t){return t>kx||-kx>t}function vi(t,e){for(var n=0;n=0?parseFloat(t)/100*e:parseFloat(t):t}function Ti(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Mi(i[0],n.width),u+=Mi(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return t=t||{},t.x=l,t.y=u,t.align=h,t.verticalAlign=c,t}function Ci(t,e,n,i,r){n=n||{};var o=[];Li(t,"",t,e,n,i,o,r);var a=o.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,a--,0>=a&&(s?l&&l():u&&u())},c=function(){a--,0>=a&&(s?l&&l():u&&u())};a||l&&l(),o.length>0&&n.during&&o[0].during(function(t,e){n.during(e)});for(var p=0;pi;i++)t[i]=e[i]}function Di(t){return g(t[0])}function ki(t,e,n){if(g(e[n]))if(g(t[n])||(t[n]=[]),P(e[n])){var i=e[n].length;t[n].length!==i&&(t[n]=new e[n].constructor(i),Ii(t[n],e[n],i))}else{var r=e[n],o=t[n],a=r.length;if(Di(r))for(var s=r[0].length,l=0;a>l;l++)o[l]?Ii(o[l],r[l],s):o[l]=Array.prototype.slice.call(r[l]);else Ii(o,r,a);o.length=r.length}else t[n]=e[n]}function Ai(t,e){return t===e||g(t)&&g(e)&&Pi(t,e)}function Pi(t,e){var n=t.length;if(n!==e.length)return!1;for(var i=0;n>i;i++)if(t[i]!==e[i])return!1;return!0}function Li(t,e,n,i,r,o,a,s){for(var l=w(i),u=r.duration,h=r.delay,c=r.additive,d=r.setToFinal,f=!k(o),y=t.animators,v=[],m=0;m0||r.force&&!a.length){var D=void 0,A=void 0,P=void 0;if(s){A={},d&&(D={});for(var M=0;S>M;M++){var x=v[M];A[x]=n[x],d?D[x]=i[x]:n[x]=i[x]}}else if(d){P={};for(var M=0;S>M;M++){var x=v[M];P[x]=ei(n[x]),ki(n,i,x)}}var T=new ux(n,!1,!1,c?_(y,function(t){return t.targetName===e}):null);T.targetName=e,r.scope&&(T.scope=r.scope),d&&D&&T.whenWithKeys(0,D,v),P&&T.whenWithKeys(0,P,v),T.whenWithKeys(null==u?500:u,s?A:i,v).delay(h||0),t.addAnimator(T,e),a.push(T)}}function Oi(t){delete Xx[t]}function Ri(t){if(!t)return!1;if("string"==typeof t)return Un(t,1)r;r++)n+=Un(e[r].color,1);return n/=i,Mx>n}return!1}function Ei(t,e){var n=new Yx(o(),t,e);return Xx[n.id]=n,n}function zi(t){t.dispose()}function Ni(){for(var t in Xx)Xx.hasOwnProperty(t)&&Xx[t].dispose();Xx={}}function Bi(t){return Xx[t]}function Fi(t,e){Ux[t]=e}function Vi(t){return t.replace(/^\s+|\s+$/g,"")}function Hi(t,e,n,i){var r=e[0],o=e[1],a=n[0],s=n[1],l=o-r,u=s-a;if(0===l)return 0===u?a:(a+s)/2;if(i)if(l>0){if(r>=t)return a;if(t>=o)return s}else{if(t>=r)return a;if(o>=t)return s}else{if(t===r)return a;if(t===o)return s}return(t-r)/l*u+a}function Wi(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 C(t)?Vi(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?0/0:+t}function Gi(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),Kx),t=(+t).toFixed(e),n?t:+t}function Ui(t){return t.sort(function(t,e){return t-e}),t}function Xi(t){if(t=+t,isNaN(t))return 0;if(t>1e-14)for(var e=1,n=0;15>n;n++,e*=10)if(Math.round(t*e)/e===t)return n;return Yi(t)}function Yi(t){var e=t.toString().toLowerCase(),n=e.indexOf("e"),i=n>0?+e.slice(n+1):0,r=n>0?n:e.length,o=e.indexOf("."),a=0>o?0:r-1-o;return Math.max(0,a-i)}function qi(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function ji(t,e,n){if(!t[e])return 0;var i=Zi(t,n);return i[e]||0}function Zi(t,e){var n=m(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===n)return[];for(var i=Math.pow(10,e),r=v(t,function(t){return(isNaN(t)?0:t)/n*i*100}),o=100*i,a=v(r,function(t){return Math.floor(t)}),s=m(a,function(t,e){return t+e},0),l=v(r,function(t,e){return t-a[e]});o>s;){for(var u=Number.NEGATIVE_INFINITY,h=null,c=0,p=l.length;p>c;++c)l[c]>u&&(u=l[c],h=c);++a[h],l[h]=0,++s}return v(a,function(t){return t/i})}function Ki(t,e){var n=Math.max(Xi(t),Xi(e)),i=t+e;return n>Kx?i:Gi(i,n)}function $i(t){var e=2*Math.PI;return(t%e+e)%e}function Qi(t){return t>-Zx&&Zx>t}function Ji(t){if(t instanceof Date)return t;if(C(t)){var e=Qx.exec(t);if(!e)return new Date(0/0);if(e[8]){var n=+e[4]||0; +return"Z"!==e[8].toUpperCase()&&(n-=+e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,e[7]?+e[7].substring(0,3):0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,e[7]?+e[7].substring(0,3):0)}return new Date(null==t?0/0:Math.round(t))}function tr(t){return Math.pow(10,er(t))}function er(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function nr(t,e){var n,i=er(t),r=Math.pow(10,i),o=t/r;return n=e?1.5>o?1:2.5>o?2:4>o?3:7>o?5:10:1>o?1:2>o?2:3>o?3:5>o?5:10,t=n*r,i>=-20?+t.toFixed(0>i?-i:0):t}function ir(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r}function rr(t){function e(t,n,i){return t.interval[i]s;s++)o[s]<=n&&(o[s]=n,a[s]=s?1:1-i),n=o[s],i=a[s];o[0]===o[1]&&a[0]*a[1]!==1?t.splice(r,1):r++}return t}function or(t){var e=parseFloat(t);return e==t&&(0!==e||!C(t)||t.indexOf("x")<=0)?e:0/0}function ar(t){return!isNaN(or(t))}function sr(){return Math.round(9*Math.random())}function lr(t,e){return 0===e?t:lr(e,t%e)}function ur(t,e){return null==t?e:null==e?t:t*e/lr(t,e)}function hr(t){throw new Error(t)}function cr(t,e,n){return(e-t)*n+t}function pr(t){return t instanceof Array?t:null==t?[]:[t]}function dr(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;r>i;i++){var o=n[i];!t.emphasis[e].hasOwnProperty(o)&&t[e].hasOwnProperty(o)&&(t.emphasis[e][o]=t[e][o])}}}function fr(t){return!k(t)||M(t)||t instanceof Date?t:t.value}function gr(t){return k(t)&&!(t instanceof Array)}function yr(t,e,n){var i="normalMerge"===n,r="replaceMerge"===n,o="replaceAll"===n;t=t||[],e=(e||[]).slice();var a=Y();y(e,function(t,n){return k(t)?void 0:void(e[n]=null)});var s=vr(t,a,n);return(i||r)&&mr(s,t,a,e),i&&_r(s,e),i||r?xr(s,e,r):o&&wr(s,e),br(s),s}function vr(t,e,n){var i=[];if("replaceAll"===n)return i;for(var r=0;rr?n:i;for(var s=[],l=n,u=i,h=Math.max(l?l.length:0,u.length),c=0;h>c;++c){var p=t.getDimensionInfo(c);if(p&&"ordinal"===p.type)s[c]=(1>r&&l?l:u)[c];else{var d=l&&l[c]?l[c]:0,f=u[c],a=cr(d,f,r);s[c]=Gi(a,o?Math.max(Xi(d),Xi(f)):e)}}return s}function Fr(t){var e={main:"",sub:""};if(t){var n=t.split(rw);e.main=n[0]||"",e.sub=n[1]||""}return e}function Vr(t){W(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}function Hr(t){return!(!t||!t[aw])}function Wr(t){t.$constructor=t,t.extend=function(t){var n,i=this;return Gr(i)?n=function(t){function n(){return t.apply(this,arguments)||this}return e(n,t),n}(i):(n=function(){(t.$constructor||i).apply(this,arguments)},d(n,this)),h(n.prototype,t),n[aw]=!0,n.extend=this.extend,n.superCall=Yr,n.superApply=qr,n.superClass=i,n}}function Gr(t){return T(t)&&/^class\s/.test(Function.prototype.toString.call(t))}function Ur(t,e){t.extend=e.extend}function Xr(t){var e=["__\x00is_clz",sw++].join("_");t.prototype[e]=!0,t.isInstance=function(t){return!(!t||!t[e])}}function Yr(t,e){for(var n=[],i=2;i=0||r&&p(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}function Kr(t){if("string"==typeof t){var e=cw.get(t);return e&&e.image}return t}function $r(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=cw.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?(e=o.image,!Jr(e)&&o.pending.push(a)):(e=bm.loadImage(t,Qr,Qr),e.__zrImageSrc=t,cw.put(t,e.__cachedImgObj={image:e,pending:[a]})),e}return t}return e}function Qr(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;ea;a++)o[a]=no(o[a],r);return o.join("\n")}function eo(t,e,n,i){i=i||{};var r=h({},i);r.font=e,n=B(n,"..."),r.maxIterations=B(i.maxIterations,2);var o=r.minChar=B(i.minChar,0);r.cnCharWidth=mi("国",e);var a=r.ascCharWidth=mi("a",e);r.placeholder=B(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;o>l&&s>=a;l++)s-=a;var u=mi(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function no(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=mi(t,i);if(n>=o)return t;for(var a=0;;a++){if(r>=o||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?io(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;t=t.substr(0,s),o=mi(t,i)}return""===t&&(t=e.placeholder),t}function io(t,e,n,i){for(var r=0,o=0,a=t.length;a>o&&e>r;o++){var s=t.charCodeAt(o);r+=s>=0&&127>=s?n:i}return o}function ro(t,e){null!=t&&(t+="");var n,i=e.overflow,r=e.padding,o=e.font,a="truncate"===i,s=Si(o),l=B(e.lineHeight,s),u=!!e.backgroundColor,h="truncate"===e.lineOverflow,c=e.width;n=null==c||"break"!==i&&"breakAll"!==i?t?t.split("\n"):[]:t?uo(t,e.font,c,"breakAll"===i,0).lines:[];var p=n.length*l,d=B(e.height,p);if(p>d&&h){var f=Math.floor(d/l);n=n.slice(0,f)}if(t&&a&&null!=c)for(var g=eo(c,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),y=0;yu&&ao(i,t.substring(u,h),e,l),ao(i,r[2],e,l,r[1]),u=pw.lastIndex}ua){w>0?(m.tokens=m.tokens.slice(0,w),n(m,x,_),i.lines=i.lines.slice(0,v+1)):i.lines=i.lines.slice(0,v);break t}var D=S.width,k=null==D||"auto"===D;if("string"==typeof D&&"%"===D.charAt(D.length-1))b.percentWidth=D,c.push(b),b.contentWidth=mi(b.text,C);else{if(k){var A=S.backgroundColor,P=A&&A.image;P&&(P=Kr(P),Jr(P)&&(b.width=Math.max(b.width,P.width*I/P.height)))}var L=g&&null!=o?o-x:null;null!=L&&LL?(b.text="",b.width=b.contentWidth=0):(b.text=to(b.text,L-T,C,e.ellipsis,{minChar:e.truncateMinChar}),b.width=b.contentWidth=mi(b.text,C)):b.contentWidth=mi(b.text,C)}b.width+=T,x+=b.width,S&&(_=Math.max(_,b.lineHeight))}n(m,x,_)}i.outerWidth=i.width=B(o,d),i.outerHeight=i.height=B(a,p),i.contentHeight=p,i.contentWidth=d,f&&(i.outerWidth+=f[1]+f[3],i.outerHeight+=f[0]+f[2]);for(var v=0;v0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=uo(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y=33&&383>=e}function lo(t){return so(t)?yw[t]?!0:!1:!0}function uo(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;cn:r+h+d>n)?h?(s||l)&&(f?(s||(s=l,l="",u=0,h=u),o.push(s),a.push(h-u),l+=p,u+=d,s="",h=u):(l&&(s+=l,l="",u=0),o.push(s),a.push(h),s=p,h=d)):f?(o.push(l),a.push(u),l=p,u=d):(o.push(p),a.push(d)):(h+=d,f?(l+=p,u+=d):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}function ho(t,e,n){return Sw.copy(t.getBoundingRect()),t.transform&&Sw.applyTransform(t.transform),Mw.width=e,Mw.height=n,!Sw.intersect(Mw)}function co(t,e,n,i,r,o){r[0]=Tw(t,n),r[1]=Tw(e,i),o[0]=Cw(t,n),o[1]=Cw(e,i)}function po(t,e,n,i,r,o,a,s,l,u){var h=pn,c=un,p=h(t,n,r,a,Ow);l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var d=0;p>d;d++){var f=c(t,n,r,a,Ow[d]);l[0]=Tw(f,l[0]),u[0]=Cw(f,u[0])}p=h(e,i,o,s,Rw);for(var d=0;p>d;d++){var g=c(e,i,o,s,Rw[d]);l[1]=Tw(g,l[1]),u[1]=Cw(g,u[1])}l[0]=Tw(t,l[0]),u[0]=Cw(t,u[0]),l[0]=Tw(a,l[0]),u[0]=Cw(a,u[0]),l[1]=Tw(e,l[1]),u[1]=Cw(e,u[1]),l[1]=Tw(s,l[1]),u[1]=Cw(s,u[1])}function fo(t,e,n,i,r,o,a,s){var l=_n,u=yn,h=Cw(Tw(l(t,n,r),1),0),c=Cw(Tw(l(e,i,o),1),0),p=u(t,n,r,h),d=u(e,i,o,c);a[0]=Tw(t,r,p),a[1]=Tw(e,o,d),s[0]=Cw(t,r,p),s[1]=Cw(e,o,d)}function go(t,e,n,i,r,o,a,s,l){var u=ve,h=me,c=Math.abs(r-o);if(1e-4>c%kw&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(Aw[0]=Dw(r)*n+t,Aw[1]=Iw(r)*i+e,Pw[0]=Dw(o)*n+t,Pw[1]=Iw(o)*i+e,u(s,Aw,Pw),h(l,Aw,Pw),r%=kw,0>r&&(r+=kw),o%=kw,0>o&&(o+=kw),r>o&&!a?o+=kw:o>r&&a&&(r+=kw),a){var p=o;o=r,r=p}for(var d=0;o>d;d+=Math.PI/2)d>r&&(Lw[0]=Dw(d)*n+t,Lw[1]=Iw(d)*i+e,u(s,Lw,s),h(l,Lw,l))}function yo(t){var e=Math.round(t/qw*1e8)/1e8;return e%2*qw}function vo(t,e){var n=yo(t[0]);0>n&&(n+=jw);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=jw?r=n+jw:e&&n-r>=jw?r=n-jw:!e&&n>r?r=n+(jw-yo(n-r)):e&&r>n&&(r=n-(jw-yo(r-n))),t[0]=n,t[1]=r}function mo(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0,u=t;if(a>e+s&&a>i+s||e-s>a&&i-s>a||o>t+s&&o>n+s||t-s>o&&n-s>o)return!1;if(t===n)return Math.abs(o-t)<=s/2;l=(e-i)/(t-n),u=(t*i-n*e)/(t-n);var h=l*o-a+u,c=h*h/(l*l+1);return s/2*s/2>=c}function _o(t,e,n,i,r,o,a,s,l,u,h){if(0===l)return!1;var c=l;if(h>e+c&&h>i+c&&h>o+c&&h>s+c||e-c>h&&i-c>h&&o-c>h&&s-c>h||u>t+c&&u>n+c&&u>r+c&&u>a+c||t-c>u&&n-c>u&&r-c>u&&a-c>u)return!1;var p=fn(t,e,n,i,r,o,a,s,u,h,null);return c/2>=p}function xo(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;if(l>e+u&&l>i+u&&l>o+u||e-u>l&&i-u>l&&o-u>l||s>t+u&&s>n+u&&s>r+u||t-u>s&&n-u>s&&r-u>s)return!1;var h=wn(t,e,n,i,r,o,s,l,null);return u/2>=h}function wo(t){return t%=Qw,0>t&&(t+=Qw),t}function bo(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||n>h+u)return!1;if(Math.abs(i-r)%Jw<1e-4)return!0;if(o){var c=i;i=wo(r),r=wo(c)}else i=wo(i),r=wo(r);i>r&&(r+=Jw);var p=Math.atan2(l,s);return 0>p&&(p+=Jw),p>=i&&r>=p||p+Jw>=i&&r>=p+Jw}function So(t,e,n,i,r,o){if(o>e&&o>i||e>o&&i>o)return 0;if(i===e)return 0;var a=(o-e)/(i-e),s=e>i?1:-1;(1===a||0===a)&&(s=e>i?.5:-.5);var l=a*(n-t)+t;return l===r?1/0:l>r?s:0}function Mo(t,e){return Math.abs(t-e)e&&u>i&&u>o&&u>s||e>u&&i>u&&o>u&&s>u)return 0;var h=cn(e,i,o,s,u,ib);if(0===h)return 0;for(var c=0,p=-1,d=void 0,f=void 0,g=0;h>g;g++){var y=ib[g],v=0===y||1===y?.5:1,m=un(t,n,r,a,y);l>m||(0>p&&(p=pn(e,i,o,s,rb),rb[1]1&&To(),d=un(e,i,o,s,rb[0]),p>1&&(f=un(e,i,o,s,rb[1]))),c+=2===p?yd?v:-v:yf?v:-v:f>s?v:-v:yd?v:-v:d>s?v:-v)}return c}function Io(t,e,n,i,r,o,a,s){if(s>e&&s>i&&s>o||e>s&&i>s&&o>s)return 0;var l=mn(e,i,o,s,ib);if(0===l)return 0;var u=_n(e,i,o);if(u>=0&&1>=u){for(var h=0,c=yn(e,i,o,u),p=0;l>p;p++){var d=0===ib[p]||1===ib[p]?.5:1,f=yn(t,n,r,ib[p]);a>f||(h+=ib[p]c?d:-d:c>o?d:-d)}return h}var d=0===ib[0]||1===ib[0]?.5:1,f=yn(t,n,r,ib[0]);return a>f?0:e>o?d:-d}function Do(t,e,n,i,r,o,a,s){if(s-=e,s>n||-n>s)return 0;var l=Math.sqrt(n*n-s*s);ib[0]=-l,ib[1]=l;var u=Math.abs(i-r);if(1e-4>u)return 0;if(u>=eb-1e-4){i=0,r=eb;var h=o?1:-1;return a>=ib[0]+t&&a<=ib[1]+t?h:0}if(i>r){var c=i;i=r,r=c}0>i&&(i+=eb,r+=eb);for(var p=0,d=0;2>d;d++){var f=ib[d];if(f+t>a){var g=Math.atan2(s,f),h=o?1:-1;0>g&&(g=eb+g),(g>=i&&r>=g||g+eb>=i&&r>=g+eb)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function ko(t,e,n,i,r){for(var o,a,s=t.data,l=t.len(),u=0,h=0,c=0,p=0,d=0,f=0;l>f;){var g=s[f++],y=1===f;switch(g===tb.M&&f>1&&(n||(u+=So(h,c,p,d,i,r))),y&&(h=s[f],c=s[f+1],p=h,d=c),g){case tb.M:p=s[f++],d=s[f++],h=p,c=d;break;case tb.L:if(n){if(mo(h,c,s[f],s[f+1],e,i,r))return!0}else u+=So(h,c,s[f],s[f+1],i,r)||0;h=s[f++],c=s[f++];break;case tb.C:if(n){if(_o(h,c,s[f++],s[f++],s[f++],s[f++],s[f],s[f+1],e,i,r))return!0}else u+=Co(h,c,s[f++],s[f++],s[f++],s[f++],s[f],s[f+1],i,r)||0;h=s[f++],c=s[f++];break;case tb.Q:if(n){if(xo(h,c,s[f++],s[f++],s[f],s[f+1],e,i,r))return!0}else u+=Io(h,c,s[f++],s[f++],s[f],s[f+1],i,r)||0;h=s[f++],c=s[f++];break;case tb.A:var v=s[f++],m=s[f++],_=s[f++],x=s[f++],w=s[f++],b=s[f++];f+=1;var S=!!(1-s[f++]);o=Math.cos(w)*_+v,a=Math.sin(w)*x+m,y?(p=o,d=a):u+=So(h,c,o,a,i,r);var M=(i-v)*x/_+v;if(n){if(bo(v,m,x,w,w+b,S,e,M,r))return!0}else u+=Do(v,m,x,w,w+b,S,M,r);h=Math.cos(w+b)*_+v,c=Math.sin(w+b)*x+m;break;case tb.R:p=h=s[f++],d=c=s[f++];var T=s[f++],C=s[f++];if(o=p+T,a=d+C,n){if(mo(p,d,o,d,e,i,r)||mo(o,d,o,a,e,i,r)||mo(o,a,p,a,e,i,r)||mo(p,a,p,d,e,i,r))return!0}else u+=So(o,d,o,a,i,r),u+=So(p,a,p,d,i,r);break;case tb.Z:if(n){if(mo(h,c,p,d,e,i,r))return!0}else u+=So(h,c,p,d,i,r);h=p,c=d}}return n||Mo(c,d)||(u+=So(h,c,p,d,i,r)||0),0!==u}function Ao(t,e,n){return ko(t,0,!1,e,n)}function Po(t,e,n,i){return ko(t,e,!0,n,i)}function Lo(t){return!!(t&&"string"!=typeof t&&t.width&&t.height)}function Oo(t,e){var n,i,r,o,a=e.x,s=e.y,l=e.width,u=e.height,h=e.r;0>l&&(a+=l,l=-l),0>u&&(s+=u,u=-u),"number"==typeof h?n=i=r=o=h:h instanceof Array?1===h.length?n=i=r=o=h[0]:2===h.length?(n=r=h[0],i=o=h[1]):3===h.length?(n=h[0],i=o=h[1],r=h[2]):(n=h[0],i=h[1],r=h[2],o=h[3]):n=i=r=o=0;var c;n+i>l&&(c=n+i,n*=l/c,i*=l/c),r+o>l&&(c=r+o,r*=l/c,o*=l/c),i+r>u&&(c=i+r,i*=u/c,r*=u/c),n+o>u&&(c=n+o,n*=u/c,o*=u/c),t.moveTo(a+n,s),t.lineTo(a+l-i,s),0!==i&&t.arc(a+l-i,s+i,i,-Math.PI/2,0),t.lineTo(a+l,s+u-r),0!==r&&t.arc(a+l-r,s+u-r,r,0,Math.PI/2),t.lineTo(a+o,s+u),0!==o&&t.arc(a+o,s+u-o,o,Math.PI/2,Math.PI),t.lineTo(a,s+n),0!==n&&t.arc(a+n,s+n,n,Math.PI,1.5*Math.PI)}function Ro(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(fb(2*i)===fb(2*r)&&(t.x1=t.x2=zo(i,s,!0)),fb(2*o)===fb(2*a)&&(t.y1=t.y2=zo(o,s,!0)),t):t}}function Eo(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=zo(i,s,!0),t.y=zo(r,s,!0),t.width=Math.max(zo(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(zo(r+a,s,!1)-t.y,0===a?0:1),t):t}}function zo(t,e,n){if(!e)return t;var i=fb(2*t);return(i+fb(e))%2===0?i/2:(i+(n?1:-1))/2}function No(t){return"string"!=typeof t||-1===t.indexOf("px")&&-1===t.indexOf("rem")&&-1===t.indexOf("em")?isNaN(+t)?gm+"px":t+"px":t}function Bo(t,e){for(var n=0;n=e||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function Go(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function Uo(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function Xo(t){var e=t.text;return null!=e&&(e+=""),e}function Yo(t){return!!(t.backgroundColor||t.lineHeight||t.borderWidth&&t.borderColor)}function qo(t){return null!=t&&"none"!==t}function jo(t){if(C(t)){var e=Gb.get(t);return e||(e=Nn(t,-.1),Gb.put(t,e)),e}if(O(t)){var n=h({},t);return n.colorStops=v(t.colorStops,function(t){return{offset:t.offset,color:Nn(t.color,-.1)}}),n}return t}function Zo(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function Ko(t){Zo(t,"emphasis",Ob)}function $o(t){t.hoverState===Ob&&Zo(t,"normal",Pb)}function Qo(t){Zo(t,"blur",Lb)}function Jo(t){t.hoverState===Lb&&Zo(t,"normal",Pb)}function ta(t){t.selected=!0}function ea(t){t.selected=!1}function na(t,e,n){e(t,n)}function ia(t,e,n){na(t,e,n),t.isGroup&&t.traverse(function(t){na(t,e,n)})}function ra(t,e){switch(e){case"emphasis":t.hoverState=Ob;break;case"normal":t.hoverState=Pb;break;case"blur":t.hoverState=Lb;break;case"select":t.selected=!0}}function oa(t,e,n,i){for(var r=t.style,o={},a=0;a=0,o=!1;if(t instanceof lb){var a=kb(t),s=r?a.selectFill||a.normalFill:a.normalFill,l=r?a.selectStroke||a.normalStroke:a.normalStroke;if(qo(s)||qo(l)){i=i||{};var u=i.style||{};"inherit"===u.fill?(o=!0,i=h({},i),u=h({},u),u.fill=s):!qo(u.fill)&&qo(s)?(o=!0,i=h({},i),u=h({},u),u.fill=jo(s)):!qo(u.stroke)&&qo(l)&&(o||(i=h({},i),u=h({},u)),u.stroke=jo(l)),i.style=u}}if(i&&null==i.z2){o||(i=h({},i));var c=t.z2EmphasisLift;i.z2=t.z2+(null!=c?c:zb)}return i}function sa(t,e,n){if(n&&null==n.z2){n=h({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:Nb)}return n}function la(t,e,n){var i=p(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:oa(t,["opacity"],e,{opacity:1});n=n||{};var a=n.style||{};return null==a.opacity&&(n=h({},n),a=h({opacity:i?r:.1*o.opacity},a),n.style=a),n}function ua(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return aa(this,t,e,n);if("blur"===t)return la(this,t,n);if("select"===t)return sa(this,t,n)}return n}function ha(t){t.stateProxy=ua;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=ua),n&&(n.stateProxy=ua)}function ca(t,e){!_a(t,e)&&!t.__highByOuter&&ia(t,Ko)}function pa(t,e){!_a(t,e)&&!t.__highByOuter&&ia(t,$o)}function da(t,e){t.__highByOuter|=1<<(e||0),ia(t,Ko)}function fa(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&ia(t,$o)}function ga(t){ia(t,Qo)}function ya(t){ia(t,Jo)}function va(t){ia(t,ta)}function ma(t){ia(t,ea)}function _a(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function xa(t){var e=t.getModel(),n=[],i=[];e.eachComponent(function(e,r){var o=Ab(r),a="series"===e,s=a?t.getViewOfSeriesModel(r):t.getViewOfComponentModel(r);!a&&i.push(s),o.isBlured&&(s.group.traverse(function(t){Jo(t)}),a&&n.push(r)),o.isBlured=!1}),y(i,function(t){t&&t.toggleBlurSeries&&t.toggleBlurSeries(n,!1,e)})}function wa(t,e,n,i){function r(t,e){for(var n=0;nl;)a=r.getItemGraphicEl(l++);if(a){var u=Tb(a);wa(i,u.focus,u.blurScope,n)}else{var h=t.get(["emphasis","focus"]),c=t.get(["emphasis","blurScope"]);null!=h&&wa(i,h,c,n)}}}function Ma(t,e,n,i){var r={focusSelf:!1,dispatchers:null};if(null==t||"series"===t||null==e||null==n)return r;var o=i.getModel().getComponent(t,e);if(!o)return r;var a=i.getViewOfComponentModel(o);if(!a||!a.findHighDownDispatchers)return r;for(var s,l=a.findHighDownDispatchers(n),u=0;u0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}})}),e}function Aa(t,e,n){Ea(t,!0),ia(t,ha),Oa(t,e,n)}function Pa(t){Ea(t,!1)}function La(t,e,n,i){i?Pa(t):Aa(t,e,n)}function Oa(t,e,n){var i=Tb(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}function Ra(t,e,n,i){n=n||"itemStyle";for(var r=0;r=Ib&&(e=Db[t]=Ib++),e}function Ba(t){var e=t.type;return e===Vb||e===Hb||e===Wb}function Fa(t){var e=t.type;return e===Bb||e===Fb}function Va(t){var e=kb(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}function Ha(t,e){if(e){var n,i,r,o,a,s,l=t.data,u=t.len(),h=Yb.M,c=Yb.C,p=Yb.L,d=Yb.R,f=Yb.A,g=Yb.Q;for(r=0,o=0;u>r;){switch(n=l[r++],o=r,i=0,n){case h:i=1;break;case p:i=1;break;case c:i=3;break;case g:i=2;break;case f:var y=e[4],v=e[5],m=jb(e[0]*e[0]+e[1]*e[1]),_=jb(e[2]*e[2]+e[3]*e[3]),x=Zb(-e[1]/_,e[0]/m);l[r]*=m,l[r++]+=y,l[r]*=_,l[r++]+=v,l[r++]*=m,l[r++]*=_,l[r++]+=x,l[r++]+=x,r+=2,o=r;break;case d:s[0]=l[r++],s[1]=l[r++],ye(s,s,e),l[o++]=s[0],l[o++]=s[1],s[0]+=l[r++],s[1]+=l[r++],ye(s,s,e),l[o++]=s[0],l[o++]=s[1]}for(a=0;i>a;a++){var w=qb[a];w[0]=l[r++],w[1]=l[r++],ye(w,w,e),l[o++]=w[0],l[o++]=w[1]}}t.increaseVersion()}}function Wa(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Ga(t,e){return(t[0]*e[0]+t[1]*e[1])/(Wa(t)*Wa(e))}function Ua(t,e){return(t[0]*e[1]1&&(a*=Kb(f),s*=Kb(f));var g=(r===o?-1:1)*Kb((a*a*s*s-a*a*d*d-s*s*p*p)/(a*a*d*d+s*s*p*p))||0,y=g*a*d/s,v=g*-s*p/a,m=(t+n)/2+Qb(c)*y-$b(c)*v,_=(e+i)/2+$b(c)*y+Qb(c)*v,x=Ua([1,0],[(p-y)/a,(d-v)/s]),w=[(p-y)/a,(d-v)/s],b=[(-1*p-y)/a,(-1*d-v)/s],S=Ua(w,b);if(Ga(w,b)<=-1&&(S=Jb),Ga(w,b)>=1&&(S=0),0>S){var M=Math.round(S/Jb*1e6)/1e6;S=2*Jb+M%2*Jb}h.addData(u,m,_,a,s,x,S,c,o)}function Ya(t){var e=new $w;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=$w.CMD,l=t.match(tS);if(!l)return e;for(var u=0;ug;g++)d[g]=parseFloat(d[g]);for(var y=0;f>y;){var v=void 0,m=void 0,_=void 0,x=void 0,w=void 0,b=void 0,S=void 0,M=i,T=r,C=void 0,I=void 0;switch(c){case"l":i+=d[y++],r+=d[y++],p=s.L,e.addData(p,i,r);break;case"L":i=d[y++],r=d[y++],p=s.L,e.addData(p,i,r);break;case"m":i+=d[y++],r+=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="l";break;case"M":i=d[y++],r=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="L";break;case"h":i+=d[y++],p=s.L,e.addData(p,i,r);break;case"H":i=d[y++],p=s.L,e.addData(p,i,r);break;case"v":r+=d[y++],p=s.L,e.addData(p,i,r);break;case"V":r=d[y++],p=s.L,e.addData(p,i,r);break;case"C":p=s.C,e.addData(p,d[y++],d[y++],d[y++],d[y++],d[y++],d[y++]),i=d[y-2],r=d[y-1];break;case"c":p=s.C,e.addData(p,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r),i+=d[y-2],r+=d[y-1];break;case"S":v=i,m=r,C=e.len(),I=e.data,n===s.C&&(v+=i-I[C-4],m+=r-I[C-3]),p=s.C,M=d[y++],T=d[y++],i=d[y++],r=d[y++],e.addData(p,v,m,M,T,i,r);break;case"s":v=i,m=r,C=e.len(),I=e.data,n===s.C&&(v+=i-I[C-4],m+=r-I[C-3]),p=s.C,M=i+d[y++],T=r+d[y++],i+=d[y++],r+=d[y++],e.addData(p,v,m,M,T,i,r);break;case"Q":M=d[y++],T=d[y++],i=d[y++],r=d[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"q":M=d[y++]+i,T=d[y++]+r,i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"T":v=i,m=r,C=e.len(),I=e.data,n===s.Q&&(v+=i-I[C-4],m+=r-I[C-3]),i=d[y++],r=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"t":v=i,m=r,C=e.len(),I=e.data,n===s.Q&&(v+=i-I[C-4],m+=r-I[C-3]),i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"A":_=d[y++],x=d[y++],w=d[y++],b=d[y++],S=d[y++],M=i,T=r,i=d[y++],r=d[y++],p=s.A,Xa(M,T,i,r,b,S,_,x,w,p,e);break;case"a":_=d[y++],x=d[y++],w=d[y++],b=d[y++],S=d[y++],M=i,T=r,i+=d[y++],r+=d[y++],p=s.A,Xa(M,T,i,r,b,S,_,x,w,p,e)}}("z"===c||"Z"===c)&&(p=s.Z,e.addData(p),i=o,r=a),n=p}return e.toStatic(),e}function qa(t){return null!=t.setData}function ja(t,e){var n=Ya(t),i=h({},e);return i.buildPath=function(t){if(qa(t)){t.setData(n.data);var e=t.getContext();e&&t.rebuildPath(e,1)}else{var e=t;n.rebuildPath(e,1)}},i.applyTransform=function(t){Ha(n,t),this.dirtyShape()},i}function Za(t,e){return new nS(ja(t,e))}function Ka(t,n){var i=ja(t,n),r=function(t){function n(e){var n=t.call(this,e)||this;return n.applyTransform=i.applyTransform,n.buildPath=i.buildPath,n}return e(n,t),n}(nS);return r}function $a(t,e){for(var n=[],i=t.length,r=0;i>r;r++){var o=t[r];n.push(o.getUpdatedPathProxy(!0))}var a=new lb(e);return a.createPathProxy(),a.buildPath=function(t){if(qa(t)){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e,1)}},a}function Qa(t,e,n,i,r,o,a,s){var l=n-t,u=i-e,h=a-r,c=s-o,p=c*l-h*u; +return vS>p*p?void 0:(p=(h*(e-o)-c*(t-r))/p,[t+p*l,e+p*u])}function Ja(t,e,n,i,r,o,a){var s=t-n,l=e-i,u=(a?o:-o)/fS(s*s+l*l),h=u*l,c=-u*s,p=t+h,d=e+c,f=n+h,g=i+c,y=(p+f)/2,v=(d+g)/2,m=f-p,_=g-d,x=m*m+_*_,w=r-o,b=p*g-f*d,S=(0>_?-1:1)*fS(gS(0,w*w*x-b*b)),M=(b*_-m*S)/x,T=(-b*m-_*S)/x,C=(b*_+m*S)/x,I=(-b*m+_*S)/x,D=M-y,k=T-v,A=C-y,P=I-v;return D*D+k*k>A*A+P*P&&(M=C,T=I),{cx:M,cy:T,x0:-h,y0:-c,x1:M*(r/w-1),y1:T*(r/w-1)}}function ts(t){var e;if(M(t)){var n=t.length;if(!n)return t;e=1===n?[t[0],t[0],0,0]:2===n?[t[0],t[0],t[1],t[1]]:3===n?t.concat(t[2]):t}else e=[t,t,t,t];return e}function es(t,e){var n,i=gS(e.r,0),r=gS(e.r0||0,0),o=i>0,a=r>0;if(o||a){if(o||(i=r,r=0),r>i){var s=i;i=r,r=s}var l=e.startAngle,u=e.endAngle;if(!isNaN(l)&&!isNaN(u)){var h=e.cx,c=e.cy,p=!!e.clockwise,d=dS(u-l),f=d>lS&&d%lS;if(f>vS&&(d=f),i>vS)if(d>lS-vS)t.moveTo(h+i*hS(l),c+i*uS(l)),t.arc(h,c,i,l,u,!p),r>vS&&(t.moveTo(h+r*hS(u),c+r*uS(u)),t.arc(h,c,r,u,l,p));else{var g=void 0,y=void 0,v=void 0,m=void 0,_=void 0,x=void 0,w=void 0,b=void 0,S=void 0,M=void 0,T=void 0,C=void 0,I=void 0,D=void 0,k=void 0,A=void 0,P=i*hS(l),L=i*uS(l),O=r*hS(u),R=r*uS(u),E=d>vS;if(E){var z=e.cornerRadius;z&&(n=ts(z),g=n[0],y=n[1],v=n[2],m=n[3]);var N=dS(i-r)/2;if(_=yS(N,v),x=yS(N,m),w=yS(N,g),b=yS(N,y),T=S=gS(_,x),C=M=gS(w,b),(S>vS||M>vS)&&(I=i*hS(u),D=i*uS(u),k=r*hS(l),A=r*uS(l),sS>d)){var B=Qa(P,L,k,A,I,D,O,R);if(B){var F=P-B[0],V=L-B[1],H=I-B[0],W=D-B[1],G=1/uS(cS((F*H+V*W)/(fS(F*F+V*V)*fS(H*H+W*W)))/2),U=fS(B[0]*B[0]+B[1]*B[1]);T=yS(S,(i-U)/(G+1)),C=yS(M,(r-U)/(G-1))}}}if(E)if(T>vS){var X=yS(v,T),Y=yS(m,T),q=Ja(k,A,P,L,i,X,p),j=Ja(I,D,O,R,i,Y,p);t.moveTo(h+q.cx+q.x0,c+q.cy+q.y0),S>T&&X===Y?t.arc(h+q.cx,c+q.cy,T,pS(q.y0,q.x0),pS(j.y0,j.x0),!p):(X>0&&t.arc(h+q.cx,c+q.cy,X,pS(q.y0,q.x0),pS(q.y1,q.x1),!p),t.arc(h,c,i,pS(q.cy+q.y1,q.cx+q.x1),pS(j.cy+j.y1,j.cx+j.x1),!p),Y>0&&t.arc(h+j.cx,c+j.cy,Y,pS(j.y1,j.x1),pS(j.y0,j.x0),!p))}else t.moveTo(h+P,c+L),t.arc(h,c,i,l,u,!p);else t.moveTo(h+P,c+L);if(r>vS&&E)if(C>vS){var X=yS(g,C),Y=yS(y,C),q=Ja(O,R,I,D,r,-Y,p),j=Ja(P,L,k,A,r,-X,p);t.lineTo(h+q.cx+q.x0,c+q.cy+q.y0),M>C&&X===Y?t.arc(h+q.cx,c+q.cy,C,pS(q.y0,q.x0),pS(j.y0,j.x0),!p):(Y>0&&t.arc(h+q.cx,c+q.cy,Y,pS(q.y0,q.x0),pS(q.y1,q.x1),!p),t.arc(h,c,r,pS(q.cy+q.y1,q.cx+q.x1),pS(j.cy+j.y1,j.cx+j.x1),p),X>0&&t.arc(h+j.cx,c+j.cy,X,pS(j.y1,j.x1),pS(j.y0,j.x0),!p))}else t.lineTo(h+O,c+R),t.arc(h,c,r,u,l,p);else t.lineTo(h+O,c+R)}else t.moveTo(h,c);t.closePath()}}}function ns(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,d=t.length;d>p;p++)ve(a,a,t[p]),me(s,s,t[p]);ve(a,a,i[0]),me(s,s,i[1])}for(var p=0,d=t.length;d>p;p++){var f=t[p];if(n)r=t[p?p-1:d-1],o=t[(p+1)%d];else{if(0===p||p===d-1){l.push(te(t[p]));continue}r=t[p-1],o=t[p+1]}re(u,o,r),he(u,u,e);var g=pe(f,r),y=pe(f,o),v=g+y;0!==v&&(g/=v,y/=v),he(h,u,-g),he(c,u,y);var m=ne([],f,h),_=ne([],f,c);i&&(me(m,m,a),ve(m,m,s),me(_,_,a),ve(_,_,s)),l.push(m),l.push(_)}return n&&l.push(l.shift()),l}function is(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i){var o=ns(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var a=r.length,s=0;(n?a:a-1)>s;s++){var l=o[2*s],u=o[2*s+1],h=r[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{t.moveTo(r[0][0],r[0][1]);for(var s=1,c=r.length;c>s;s++)t.lineTo(r[s][0],r[s][1])}n&&t.closePath()}}function rs(t,e,n){var i=t.cpx2,r=t.cpy2;return null!=i||null!=r?[(n?hn:un)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?hn:un)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?vn:yn)(t.x1,t.cpx1,t.x2,e),(n?vn:yn)(t.y1,t.cpy1,t.y2,e)]}function os(t,e,n,i,r){var o;if(e&&e.ecModel){var a=e.ecModel.getUpdatePayload();o=a&&a.animation}var s=e&&e.isAnimationEnabled(),l="update"===t;if(s){var u=void 0,h=void 0,c=void 0;i?(u=B(i.duration,200),h=B(i.easing,"cubicOut"),c=0):(u=e.getShallow(l?"animationDurationUpdate":"animationDuration"),h=e.getShallow(l?"animationEasingUpdate":"animationEasing"),c=e.getShallow(l?"animationDelayUpdate":"animationDelay")),o&&(null!=o.duration&&(u=o.duration),null!=o.easing&&(h=o.easing),null!=o.delay&&(c=o.delay)),T(c)&&(c=c(n,r)),T(u)&&(u=u(n));var p={duration:u||0,delay:c,easing:h};return p}return null}function as(t,e,n,i,r,o,a){var s,l=!1;T(r)?(a=o,o=r,r=null):k(r)&&(o=r.cb,a=r.during,l=r.isFrom,s=r.removeOpt,r=r.dataIndex);var u="leave"===t;u||e.stopAnimation("leave");var h=os(t,i,r,u?s||{}:null,i&&i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null);if(h&&h.duration>0){var c=h.duration,p=h.delay,d=h.easing,f={duration:c,delay:p||0,easing:d,done:o,force:!!o||!!a,setToFinal:!u,scope:t,during:a};l?e.animateFrom(n,f):e.animateTo(n,f)}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function ss(t,e,n,i,r,o){as("update",t,e,n,i,r,o)}function ls(t,e,n,i,r,o){as("enter",t,e,n,i,r,o)}function us(t){if(!t.__zr)return!0;for(var e=0;eMath.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function Is(t){return!t.isGroup}function Ds(t){return null!=t.shape}function ks(t,e,n){function i(t){var e={};return t.traverse(function(t){Is(t)&&t.anid&&(e[t.anid]=t)}),e}function r(t){var e={x:t.x,y:t.y,rotation:t.rotation};return Ds(t)&&(e.shape=h({},t.shape)),e}if(t&&e){var o=i(t);e.traverse(function(t){if(Is(t)&&t.anid){var e=o[t.anid];if(e){var i=r(t);t.attr(r(e)),ss(t,i,n,Tb(t).dataIndex)}}})}}function As(t,e){return v(t,function(t){var n=t[0];n=YS(n,e.x),n=qS(n,e.x+e.width);var i=t[1];return i=YS(i,e.y),i=qS(i,e.y+e.height),[n,i]})}function Ps(t,e){var n=YS(t.x,e.x),i=qS(t.x+t.width,e.x+e.width),r=YS(t.y,e.y),o=qS(t.y+t.height,e.y+e.height);return i>=n&&o>=r?{x:n,y:r,width:i-n,height:o-r}:void 0}function Ls(t,e,n){var i=h({rectHover:!0},e),r=i.style={strokeNoScale:!0};return n=n||{x:-1,y:-1,width:2,height:2},t?0===t.indexOf("image://")?(r.image=t.slice(8),c(r,n),new db(i)):ms(t.replace("path://",""),i,n,"center"):void 0}function Os(t,e,n,i,r){for(var o=0,a=r[r.length-1];og||g>1)return!1;var y=Es(d,f,h,c)/p;return 0>y||y>1?!1:!0}function Es(t,e,n,i){return t*i-n*e}function zs(t){return 1e-6>=t&&t>=-1e-6}function Ns(t){var e=t.itemTooltipOption,n=t.componentModel,i=t.itemName,r=C(e)?{formatter:e}:e,o=n.mainType,a=n.componentIndex,s={componentType:o,name:i,$vars:["name"]};s[o+"Index"]=a;var l=t.formatterParamsExtra;l&&y(w(l),function(t){K(s,t)||(s[t]=l[t],s.$vars.push(t))});var u=Tb(t.el);u.componentMainType=o,u.componentIndex=a,u.tooltipConfig={name:i,option:c({content:i,formatterParams:s},r)}}function Bs(t,e){var n;t.isGroup&&(n=e(t)),n||t.traverse(e)}function Fs(t,e){if(t)if(M(t))for(var n=0;n=0&&n.push(t)}),n}t.topologicalTravel=function(t,e,i,r){function o(t){l[t].entryCount--,0===l[t].entryCount&&u.push(t)}function a(t){h[t]=!0,o(t)}if(t.length){var s=n(e),l=s.graph,u=s.noEntryList,h={};for(y(t,function(t){h[t]=!0});u.length;){var c=u.pop(),p=l[c],d=!!h[c];d&&(i.call(r,c,p.originalDeps.slice()),delete h[c]),y(p.successor,d?a:o)}y(h,function(){var t="";throw new Error(t)})}}}function el(t,e){return l(l({},t,!0),e,!0)}function nl(t,e){t=t.toUpperCase(),bM[t]=new fM(e),wM[t]=e}function il(t){if(C(t)){var e=wM[t.toUpperCase()]||{};return t===mM||t===_M?s(e):l(s(e),s(wM[xM]),!1)}return l(s(t),s(wM[xM]),!1)}function rl(t){return bM[t]}function ol(){return bM[xM]}function al(t,e){return t+="","0000".substr(0,e-t.length)+t}function sl(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function ll(t){return t===sl(t)}function ul(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}function hl(t,e,n,i){var r=Ji(t),o=r[fl(n)](),a=r[gl(n)]()+1,s=Math.floor((a-1)/3)+1,l=r[yl(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[vl(n)](),c=(h-1)%12+1,p=r[ml(n)](),d=r[_l(n)](),f=r[xl(n)](),g=i instanceof fM?i:rl(i||SM)||ol(),y=g.getModel("time"),v=y.get("month"),m=y.get("monthAbbr"),_=y.get("dayOfWeek"),x=y.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,v[a-1]).replace(/{MMM}/g,m[a-1]).replace(/{MM}/g,al(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,al(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,_[u]).replace(/{ee}/g,x[u]).replace(/{e}/g,u+"").replace(/{HH}/g,al(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,al(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,al(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,al(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,al(f,3)).replace(/{S}/g,f+"")}function cl(t,e,n,i,r){var o=null;if(C(n))o=n;else if(T(n))o=n(t.value,e,{level:t.level});else{var a=h({},kM);if(t.level>0)for(var s=0;s=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(M(o)){var d=null==t.level?0:t.level>=0?t.level:o.length+t.level;d=Math.min(d,o.length-1),o=o[d]}}return hl(new Date(t.value),o,r,i)}function pl(t,e){var n=Ji(t),i=n[gl(e)]()+1,r=n[yl(e)](),o=n[vl(e)](),a=n[ml(e)](),s=n[_l(e)](),l=n[xl(e)](),u=0===l,h=u&&0===s,c=h&&0===a,p=c&&0===o,d=p&&1===r,f=d&&1===i;return f?"year":d?"month":p?"day":c?"hour":h?"minute":u?"second":"millisecond"}function dl(t,e,n){var i=D(t)?Ji(t):t;switch(e=e||pl(t,n)){case"year":return i[fl(n)]();case"half-year":return i[gl(n)]()>=6?1:0;case"quarter":return Math.floor((i[gl(n)]()+1)/4);case"month":return i[gl(n)]();case"day":return i[yl(n)]();case"half-day":return i[vl(n)]()/24;case"hour":return i[vl(n)]();case"minute":return i[ml(n)]();case"second":return i[_l(n)]();case"millisecond":return i[xl(n)]()}}function fl(t){return t?"getUTCFullYear":"getFullYear"}function gl(t){return t?"getUTCMonth":"getMonth"}function yl(t){return t?"getUTCDate":"getDate"}function vl(t){return t?"getUTCHours":"getHours"}function ml(t){return t?"getUTCMinutes":"getMinutes"}function _l(t){return t?"getUTCSeconds":"getSeconds"}function xl(t){return t?"getUTCMilliseconds":"getMilliseconds"}function wl(t){return t?"setUTCFullYear":"setFullYear"}function bl(t){return t?"setUTCMonth":"setMonth"}function Sl(t){return t?"setUTCDate":"setDate"}function Ml(t){return t?"setUTCHours":"setHours"}function Tl(t){return t?"setUTCMinutes":"setMinutes"}function Cl(t){return t?"setUTCSeconds":"setSeconds"}function Il(t){return t?"setUTCMilliseconds":"setMilliseconds"}function Dl(t,e,n,i,r,o,a,s){var l=new wb({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}});return l.getBoundingRect()}function kl(t){if(!ar(t))return C(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function Al(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 Pl(t,e,n){function i(t){return t&&G(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}",a="time"===e,s=t instanceof Date;if(a||s){var l=a?Ji(t):t;if(!isNaN(+l))return hl(l,o,n);if(s)return"-"}if("ordinal"===e)return I(t)?i(t):D(t)&&r(t)?t+"":"-";var u=or(t);return r(u)?kl(u):I(t)?i(t):"boolean"==typeof t?t+"":"-"}function Ll(t,e,n){M(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;os;s++)for(var l=0;l':'';var a=n.markerId||"markerX";return{renderMode:o,content:"{"+a+"|} ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}}function Rl(t,e,n){("week"===t||"month"===t||"quarter"===t||"half-year"===t||"year"===t)&&(t="MM-dd\nyyyy");var i=Ji(e),r=n?"getUTC":"get",o=i[r+"FullYear"](),a=i[r+"Month"]()+1,s=i[r+"Date"](),l=i[r+"Hours"](),u=i[r+"Minutes"](),h=i[r+"Seconds"](),c=i[r+"Milliseconds"]();return t=t.replace("MM",al(a,2)).replace("M",a).replace("yyyy",o).replace("yy",al(o%100+"",2)).replace("dd",al(s,2)).replace("d",s).replace("hh",al(l,2)).replace("h",l).replace("mm",al(u,2)).replace("m",u).replace("ss",al(h,2)).replace("s",h).replace("SSS",al(c,3))}function El(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function zl(t,e){return e=e||"transparent",C(t)?t:k(t)?t.colorStops&&(t.colorStops[0]||{}).color||e:e}function Nl(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}function Bl(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild(function(l,u){var h,c,p=l.getBoundingRect(),d=e.childAt(u+1),f=d&&d.getBoundingRect();if("horizontal"===t){var g=p.width+(f?-f.x+p.x:0);h=o+g,h>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(f?-f.y+p.y:0);c=a+y,c>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)})}function Fl(t,e,n){n=RM(n||0);var i=e.width,r=e.height,o=Wi(t.left,i),a=Wi(t.top,r),s=Wi(t.right,i),l=Wi(t.bottom,r),u=Wi(t.width,i),h=Wi(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(d>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=d*h),isNaN(h)&&(h=u/d)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var f=new y_(o+n[3],a+n[0],u,h);return f.margin=n,f}function Vl(t){var e=t.layoutMode||t.constructor.layoutMode;return k(e)?e:e?{type:e}:null}function Hl(t,e,n){function i(n,i){var a={},l=0,u={},h=0,c=2;if(NM(n,function(e){u[e]=t[e]}),NM(n,function(t){r(e,t)&&(a[t]=u[t]=e[t]),o(a,t)&&l++,o(u,t)&&h++}),s[i])return o(e,n[1])?u[n[2]]=null:o(e,n[2])&&(u[n[1]]=null),u;if(h!==c&&l){if(l>=c)return a;for(var p=0;pi;i++)t.push(e+i)}function r(t){var e=t.dimsDef;return e?e.length:1}var o={},a=jl(e);if(!a||!t)return o;var s,l,u=[],h=[],c=e.ecModel,p=rT(c).datasetMap,d=a.uid+"_"+n.seriesLayoutBy;t=t.slice(),y(t,function(e,n){var i=k(e)?e:t[n]={name:e};"ordinal"===i.type&&null==s&&(s=n,l=r(i)),o[i.name]=[]});var f=p.get(d)||p.set(d,{categoryWayDim:l,valueWayDim:0});return y(t,function(t,e){var n=t.name,a=r(t);if(null==s){var l=f.valueWayDim;i(o[n],l,a),i(h,l,a),f.valueWayDim+=a}else if(s===e)i(o[n],0,a),i(u,0,a);else{var l=f.categoryWayDim;i(o[n],l,a),i(h,l,a),f.categoryWayDim+=a}}),u.length&&(o.itemName=u),h.length&&(o.seriesName=h),o}function ql(t,e,n){var i={},r=jl(t);if(!r)return i;var o,a=e.sourceFormat,s=e.dimensionsDefine;(a===$M||a===QM)&&y(s,function(t,e){"name"===(k(t)?t.name:t)&&(o=e)});var l=function(){function t(t){return null!=t.v&&null!=t.n}for(var i={},r={},l=[],u=0,h=Math.min(5,n);h>u;u++){var c=$l(e.data,a,e.seriesLayoutBy,s,e.startIndex,u);l.push(c);var p=c===iT.Not;if(p&&null==i.v&&u!==o&&(i.v=u),(null==i.n||i.n===i.v||!p&&l[i.n]===iT.Not)&&(i.n=u),t(i)&&l[i.n]!==iT.Not)return i;p||(c===iT.Might&&null==r.v&&u!==o&&(r.v=u),(null==r.n||r.n===r.v)&&(r.n=u))}return t(i)?i:t(r)?r:null}();if(l){i.value=[l.v];var u=null!=o?o:l.n;i.itemName=[u],i.seriesName=[u]}return i}function jl(t){var e=t.get("data",!0);return e?void 0:Rr(t.ecModel,"dataset",{index:t.get("datasetIndex",!0),id:t.get("datasetId",!0)},iw).models[0]}function Zl(t){return t.get("transform",!0)||t.get("fromTransformResult",!0)?Rr(t.ecModel,"dataset",{index:t.get("fromDatasetIndex",!0),id:t.get("fromDatasetId",!0)},iw).models:[]}function Kl(t,e){return $l(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function $l(t,e,n,i,r,o){function a(t){var e=C(t);return null!=t&&isFinite(t)&&""!==t?e?iT.Might:iT.Not:e&&"-"!==t?iT.Must:void 0}var s,l=5;if(P(t))return iT.Not;var u,h;if(i){var c=i[o];k(c)?(u=c.name,h=c.type):C(c)&&(u=c)}if(null!=h)return"ordinal"===h?iT.Must:iT.Not;if(e===KM){var p=t;if(n===nT){for(var d=p[o],f=0;f<(d||[]).length&&l>f;f++)if(null!=(s=a(d[r+f])))return s}else for(var f=0;ff;f++){var g=p[r+f];if(g&&null!=(s=a(g[o])))return s}}else if(e===$M){var y=t;if(!u)return iT.Not;for(var f=0;ff;f++){var v=y[f];if(v&&null!=(s=a(v[u])))return s}}else if(e===QM){var m=t;if(!u)return iT.Not;var d=m[u];if(!d||P(d))return iT.Not;for(var f=0;ff;f++)if(null!=(s=a(d[f])))return s}else if(e===ZM)for(var _=t,f=0;f<_.length&&l>f;f++){var v=_[f],x=fr(v);if(!M(x))return iT.Not;if(null!=(s=a(x[o])))return s}return iT.Not}function Ql(t,e,n){var i=oT.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}function Jl(t,e){for(var n=t.length,i=0;n>i;i++)if(t[i].length>e)return t[i];return t[n-1]}function tu(t,e,n,i,r,o,a){o=o||t;var s=e(o),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(r))return u[r];var h=null!=a&&i?Jl(i,a):n;if(h=h||n,h&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}function eu(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}function nu(t,e){if(e){var n=e.seriesIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}function iu(t,e){var n=t.color&&!t.colorLayer;y(e,function(e,i){"colorLayer"===i&&n||WM.hasClass(i)||("object"==typeof e?t[i]=t[i]?l(t[i],e,!1):s(e):null==t[i]&&(t[i]=e))})}function ru(t,e,n){if(M(e)){var i=Y();return y(e,function(t){if(null!=t){var e=Tr(t,null);null!=e&&i.set(t,!0)}}),_(n,function(e){return e&&i.get(e[t])})}var r=Tr(e,null);return _(n,function(e){return e&&null!=r&&e[t]===r})}function ou(t,e){return e.hasOwnProperty("subType")?_(t,function(t){return t&&t.subType===e.subType}):t}function au(t){var e=Y();return t&&y(pr(t.replaceMerge),function(t){e.set(t,!0)}),{replaceMergeMainTypeMap:e}}function su(t,e,n){function i(t){y(e,function(e){e(t,n)})}var r,o,a=[],s=t.baseOption,l=t.timeline,u=t.options,h=t.media,c=!!t.media,p=!!(u||l||s&&s.timeline);return s?(o=s,o.timeline||(o.timeline=l)):((p||c)&&(t.options=t.media=null),o=t),c&&M(h)&&y(h,function(t){t&&t.option&&(t.query?a.push(t):r||(r=t))}),i(o),y(u,function(t){return i(t)}),y(a,function(t){return i(t.option)}),{baseOption:o,timelineOptions:u||[],mediaDefault:r,mediaList:a}}function lu(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return y(t,function(t,e){var n=e.match(wT);if(n&&n[1]&&n[2]){var o=n[1],a=n[2].toLowerCase();uu(i[a],t,o)||(r=!1)}}),r}function uu(t,e,n){return"min"===n?t>=e:"max"===n?e>=t:t===e}function hu(t,e){return t.join(",")===e.join(",")}function cu(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=TT.length;i>n;n++){var r=TT[n],o=e.normal,a=e.emphasis;o&&o[r]&&(t[r]=t[r]||{},t[r].normal?l(t[r].normal,o[r]):t[r].normal=o[r],o[r]=null),a&&a[r]&&(t[r]=t[r]||{},t[r].emphasis?l(t[r].emphasis,a[r]):t[r].emphasis=a[r],a[r]=null)}}function pu(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,c(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r,r.focus&&(t.emphasis.focus=r.focus),r.blurScope&&(t.emphasis.blurScope=r.blurScope))}}function du(t){pu(t,"itemStyle"),pu(t,"lineStyle"),pu(t,"areaStyle"),pu(t,"label"),pu(t,"labelLine"),pu(t,"upperLabel"),pu(t,"edgeLabel")}function fu(t,e){var n=MT(t)&&t[e],i=MT(n)&&n.textStyle;if(i)for(var r=0,o=ew.length;o>r;r++){var a=ew[r];i.hasOwnProperty(a)&&(n[a]=i[a])}}function gu(t){t&&(du(t),fu(t,"label"),t.emphasis&&fu(t.emphasis,"label"))}function yu(t){if(MT(t)){cu(t),du(t),fu(t,"label"),fu(t,"upperLabel"),fu(t,"edgeLabel"),t.emphasis&&(fu(t.emphasis,"label"),fu(t.emphasis,"upperLabel"),fu(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(cu(e),gu(e));var n=t.markLine;n&&(cu(n),gu(n));var i=t.markArea;i&&gu(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var o=t.links||t.edges;if(o&&!P(o))for(var a=0;a=0;g--){var y=t[g];if(s||(d=y.data.rawIndexOf(y.stackedByDimension,p)),d>=0){var v=y.data.getByRawIndex(y.stackResultDimension,d);if("all"===l||"positive"===l&&v>0||"negative"===l&&0>v||"samesign"===l&&c>=0&&v>0||"samesign"===l&&0>=c&&0>v){c=Ki(c,v),f=v;break}}}return i[0]=c,i[1]=f,i})})}function Pu(t){return t instanceof kT}function Lu(t,e,n){n=n||Eu(t);var i=e.seriesLayoutBy,r=zu(t,n,i,e.sourceHeader,e.dimensions),o=new kT({data:t,sourceFormat:n,seriesLayoutBy:i,dimensionsDefine:r.dimensionsDefine,startIndex:r.startIndex,dimensionsDetectedCount:r.dimensionsDetectedCount,metaRawOption:s(e)});return o}function Ou(t){return new kT({data:t,sourceFormat:P(t)?JM:ZM})}function Ru(t){return new kT({data:t.data,sourceFormat:t.sourceFormat,seriesLayoutBy:t.seriesLayoutBy,dimensionsDefine:s(t.dimensionsDefine),startIndex:t.startIndex,dimensionsDetectedCount:t.dimensionsDetectedCount})}function Eu(t){var e=tT;if(P(t))e=JM;else if(M(t)){0===t.length&&(e=KM);for(var n=0,i=t.length;i>n;n++){var r=t[n];if(null!=r){if(M(r)){e=KM;break}if(k(r)){e=$M;break}}}}else if(k(t))for(var o in t)if(K(t,o)&&g(t[o])){e=QM;break}return e}function zu(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:Bu(r),startIndex:a,dimensionsDetectedCount:o};if(e===KM){var s=t;"auto"===i||null==i?Fu(function(t){null!=t&&"-"!==t&&(C(t)?null==a&&(a=1):a=0)},n,s,10):a=D(i)?i:i?1:0,r||1!==a||(r=[],Fu(function(t,e){r[e]=null!=t?t+"":""},n,s,1/0)),o=r?r.length:n===nT?s.length:s[0]?s[0].length:null}else if(e===$M)r||(r=Nu(t));else if(e===QM)r||(r=[],y(t,function(t,e){r.push(e)}));else if(e===ZM){var l=fr(t[0]);o=M(l)&&l.length||1}return{startIndex:a,dimensionsDefine:Bu(r),dimensionsDetectedCount:o}}function Nu(t){for(var e,n=0;nr;r++)t(n[r]?n[r][0]:null,r);else for(var o=n[0]||[],r=0;rr;r++)t(o[r],r)}function Vu(t){var e=t.sourceFormat;return e===$M||e===QM}function Hu(t,e){var n=LT[Uu(t,e)];return n}function Wu(t,e){var n=RT[Uu(t,e)];return n}function Gu(t){var e=zT[t];return e}function Uu(t,e){return t===KM?t+"_"+e:t}function Xu(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r=t.getStore(),o=r.getSource().sourceFormat;if(null!=n){var a=t.getDimensionIndex(n),s=r.getDimensionProperty(a);return Gu(o)(i,a,s)}var l=i;return o===ZM&&(l=fr(i)),l}}}function Yu(t){var e,n;return k(t)?t.type&&(n=t):e=t,{text:e,frag:n}}function qu(t){return new FT(t)}function ju(t,e){var n=e&&e.type;return"ordinal"===n?t:("time"!==n||D(t)||null==t||"-"===t||(t=+Ji(t)),null==t||""===t?0/0:+t)}function Zu(t,e){var n=new GT,i=t.data,r=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";t.seriesLayoutBy!==eT&&hr(a);var s=[],l={},u=t.dimensionsDefine;if(u)y(u,function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";K(l,n)&&hr(r),l[n]=i}});else for(var h=0;ho;o++)r.push(n[o].slice());return r}if(e===$M){for(var r=[],o=0,a=n.length;a>o;o++)r.push(h({},n[o]));return r}}function Qu(t,e,n){return null!=n?D(n)||!isNaN(n)&&!K(e,n)?t[n]:K(e,n)?e[n]:void 0:void 0}function Ju(t){return s(t)}function th(t){t=s(t);var e=t.type,n="";e||hr(n);var i=e.split(":");2!==i.length&&hr(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,UT.set(e,t)}function eh(t,e,n){var i=pr(t),r=i.length,o="";r||hr(o);for(var a=0,s=r;s>a;a++){var l=i[a];e=nh(l,e,n,1===r?null:a),a!==s-1&&(e.length=Math.max(e.length,1))}return e}function nh(t,e){var n="";e.length||hr(n),k(t)||hr(n);var i=t.type,r=UT.get(i);r||hr(n);var o=v(e,function(t){return Zu(t,r)}),a=pr(r.transform({upstream:o[0],upstreamList:o,config:s(t.config)}));return v(a,function(t,n){var i="";k(t)||hr(i),t.data||hr(i);var r=Eu(t.data);ih(r)||hr(i);var o,a=e[0];if(a&&0===n&&!t.dimensions){var s=a.startIndex;s&&(t.data=a.data.slice(0,s).concat(t.data)),o={seriesLayoutBy:eT,sourceHeader:s,dimensions:a.metaRawOption.dimensions}}else o={seriesLayoutBy:eT,sourceHeader:0,dimensions:t.dimensions};return Lu(t.data,o,null)})}function ih(t){return t===KM||t===$M}function rh(t){return t>65535?YT:qT}function oh(){return[1/0,-1/0]}function ah(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function sh(t,e,n,i,r){var o=KT[n||"float"];if(r){var a=t[e],s=a&&a.length;if(s!==i){for(var l=new o(i),u=0;s>u;u++)l[u]=a[u];t[e]=l}}else t[e]=new o(i)}function lh(t){var e=t.option.transform;e&&U(t.option.transform)}function uh(t){return"series"===t.mainType}function hh(t){throw new Error(t)}function ch(t,e){var n=t.color||"#6e7079",i=t.fontSize||12,r=t.fontWeight||"400",o=t.color||"#464646",a=t.fontSize||14,s=t.fontWeight||"900";return"html"===e?{nameStyle:"font-size:"+Ce(i+"")+"px;color:"+Ce(n)+";font-weight:"+Ce(r+""),valueStyle:"font-size:"+Ce(a+"")+"px;color:"+Ce(o)+";font-weight:"+Ce(s+"")}:{nameStyle:{fontSize:i,fill:n,fontWeight:r},valueStyle:{fontSize:a,fill:o,fontWeight:s}}}function ph(t,e){return e.type=t,e}function dh(t){return"section"===t.type}function fh(t){return dh(t)?yh:vh}function gh(t){if(dh(t)){var e=0,n=t.blocks.length,i=n>1||n>0&&!t.noHeader;return y(t.blocks,function(t){var n=gh(t);n>=e&&(e=n+ +(i&&(!n||dh(t)&&!t.noHeader)))}),e}return 0}function yh(t,e,n,i){var r=e.noHeader,o=_h(gh(e)),a=[],s=e.blocks||[];W(!s||M(s)),s=s||[];var l=t.orderMode;if(e.sortBlocks&&l){s=s.slice();var u={valueAsc:"asc",valueDesc:"desc"};if(K(u,l)){var c=new WT(u[l],null);s.sort(function(t,e){return c.evaluate(t.sortParam,e.sortParam)})}else"seriesDesc"===l&&s.reverse()}y(s,function(n,r){var s=e.valueFormatter,l=fh(n)(s?h(h({},t),{valueFormatter:s}):t,n,r>0?o.html:0,i);null!=l&&a.push(l)});var p="richText"===t.renderMode?a.join(o.richText):xh(a.join(""),r?n:o.html);if(r)return p;var d=Pl(e.header,"ordinal",t.useUTC),f=ch(i,t.renderMode).nameStyle;return"richText"===t.renderMode?Sh(t,d,f)+o.richText+p:xh('
'+Ce(d)+"
"+p,n)}function vh(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=t.useUTC,h=e.valueFormatter||t.valueFormatter||function(t){return t=M(t)?t:[t],v(t,function(t,e){return Pl(t,M(d)?d[e]:d,u)})};if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":Pl(l,"ordinal",u),d=e.valueType,f=a?[]:h(e.value),g=!s||!o,y=!s&&o,m=ch(i,r),_=m.nameStyle,x=m.valueStyle;return"richText"===r?(s?"":c)+(o?"":Sh(t,p,_))+(a?"":Mh(t,f,g,y,x)):xh((s?"":c)+(o?"":wh(p,!s,_))+(a?"":bh(f,g,y,x)),n)}}function mh(t,e,n,i,r,o){if(t){var a=fh(t),s={useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e,valueFormatter:t.valueFormatter};return a(s,t,0,o)}}function _h(t){return{html:tC[t],richText:eC[t]}}function xh(t,e){var n='
',i="margin: "+e+"px 0 0";return'
'+t+n+"
"}function wh(t,e,n){var i=e?"margin-left:2px":"";return''+Ce(t)+""}function bh(t,e,n,i){var r=n?"10px":"20px",o=e?"float:right;margin-left:"+r:"";return t=M(t)?t:[t],''+v(t,function(t){return Ce(t)}).join("  ")+""}function Sh(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function Mh(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(M(e)?e.join(" "):e,o)}function Th(t,e){var n=t.getData().getItemVisual(e,"style"),i=n[t.visualDrawType];return zl(i)}function Ch(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}function Ih(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=M(c),d=Th(o,a);if(h>1||p&&!h){var f=Dh(c,o,a,u,d);e=f.inlineValues,n=f.inlineValueTypes,i=f.blocks,r=f.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=Xu(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=Cr(o),v=y&&o.name||"",m=l.getName(a),_=s?v:m;return ph("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[ph("nameValue",{markerType:"item",markerColor:d,name:_,noName:!G(_),value:e,valueType:n})].concat(i||[])})}function Dh(t,e,n,i,r){function o(t,e){var n=a.getDimensionInfo(e);n&&n.otherDims.tooltip!==!1&&(s?h.push(ph("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(l.push(t),u.push(n.type)))}var a=e.getData(),s=m(t,function(t,e,n){var i=a.getDimensionInfo(n);return t=t||i&&i.tooltip!==!1&&null!=i.displayName},!1),l=[],u=[],h=[];return i.length?y(i,function(t){o(Xu(a,n,t),t)}):y(t,o),{inlineValues:l,inlineValueTypes:u,blocks:h}}function kh(t,e){return t.getName(e)||t.getId(e)}function Ah(t){var e=t.name;Cr(t)||(t.name=Ph(t)||e)}function Ph(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return y(n,function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)}),i.join(" ")}function Lh(t){return t.model.getRawData().count()}function Oh(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),Rh}function Rh(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Eh(t,e){y(q(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),function(n){t.wrapMethod(n,S(zh,e))})}function zh(t,e){var n=Nh(t);return n&&n.setOutputEnd((e||this).count()),e}function Nh(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}function Bh(){var t=Pr();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}function Fh(t,e,n){t&&za(t)&&("emphasis"===e?da:fa)(t,n)}function Vh(t,e,n){var i=Ar(t,e),r=e&&null!=e.highlightKey?Na(e.highlightKey):null;null!=i?y(pr(i),function(e){Fh(t.getItemGraphicEl(e),n,r)}):t.eachItemGraphicEl(function(t){Fh(t,n,r)})}function Hh(t){return lC(t.model)}function Wh(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&sC(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),cC[l]}function Gh(t,e,n){function i(){h=(new Date).getTime(),c=null,t.apply(a,s||[])}var r,o,a,s,l,u=0,h=0,c=null;e=e||0;var p=function(){for(var t=[],p=0;p=0?i():c=setTimeout(i,-o),u=r};return p.clear=function(){c&&(clearTimeout(c),c=null)},p.debounceNextCall=function(t){l=t},p}function Uh(t,e,n,i){var r=t[e];if(r){var o=r[pC]||r,a=r[fC],s=r[dC];if(s!==n||a!==i){if(null==n||!i)return t[e]=o;r=t[e]=Gh(o,n,"debounce"===i),r[pC]=o,r[fC]=i,r[dC]=n}return r}}function Xh(t,e){var n=t[e];n&&n[pC]&&(n.clear&&n.clear(),t[e]=n[pC])}function Yh(t,e){var n=t.visualStyleMapper||yC[e];return n?n:(console.warn("Unkown style type '"+e+"'."),yC.itemStyle)}function qh(t,e){var n=t.visualDrawType||vC[e];return n?n:(console.warn("Unkown style type '"+e+"'."),"fill")}function jh(t,e){e=e||{},c(e,{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Gx,i=new vb({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r=new wb({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily},zlevel:e.zlevel,z:10001}),o=new vb({style:{fill:"none"},textContent:r,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});n.add(o);var a;return e.showSpinner&&(a=new OS({shape:{startAngle:-bC/2,endAngle:-bC/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001}),a.animateShape(!0).when(1e3,{endAngle:3*bC/2}).start("circularInOut"),a.animateShape(!0).when(1e3,{startAngle:3*bC/2}).delay(300).start("circularInOut"),n.add(a)),n.resize=function(){var n=r.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&a.setShape({cx:l,cy:u}),o.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n}function Zh(t){t.overallReset(t.ecModel,t.api,t.payload)}function Kh(t){return t.overallProgress&&$h}function $h(){this.agent.dirty(),this.getDownstream().dirty()}function Qh(){this.agent&&this.agent.dirty()}function Jh(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function tc(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=pr(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?v(e,function(t,e){return ec(e)}):MC}function ec(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o=0&&gc(l)?l:.5;var u=t.createRadialGradient(a,s,0,a,s,l);return u}function mc(t,e,n){for(var i="radial"===e.type?vc(t,e,n):yc(t,e,n),r=e.colorStops,o=0;o0?"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:D(t)?[t]:M(t)?t:null:null}function Sc(t){var e=t.style,n=e.lineDash&&e.lineWidth>0&&bc(e.lineDash,e.lineWidth),i=e.lineDashOffset;if(n){var r=e.strokeNoScale&&t.getLineScale?t.getLineScale():1;r&&1!==r&&(n=v(n,function(t){return t/r}),i/=r)}return[n,i]}function Mc(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function Tc(t){return"string"==typeof t&&"none"!==t}function Cc(t){var e=t.fill;return null!=e&&"none"!==e}function Ic(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function Dc(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function kc(t,e,n){var i=$r(e.image,e.__image,n);if(Jr(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix&&r&&r.setTransform){var o=new DOMMatrix;o.translateSelf(e.x||0,e.y||0),o.rotateSelf(0,0,(e.rotation||0)*Fm),o.scaleSelf(e.scaleX||1,e.scaleY||1),r.setTransform(o)}return r}}function Ac(t,e,n,i){var r,o=Mc(n),a=Cc(n),s=n.strokePercent,l=1>s,u=!e.path;e.silent&&!l||!u||e.createPathProxy();var h=e.path||KC,c=e.__dirty;if(!i){var p=n.fill,d=n.stroke,f=a&&!!p.colorStops,g=o&&!!d.colorStops,y=a&&!!p.image,v=o&&!!d.image,m=void 0,_=void 0,x=void 0,w=void 0,b=void 0;(f||g)&&(b=e.getBoundingRect()),f&&(m=c?mc(t,p,b):e.__canvasFillGradient,e.__canvasFillGradient=m),g&&(_=c?mc(t,d,b):e.__canvasStrokeGradient,e.__canvasStrokeGradient=_),y&&(x=c||!e.__canvasFillPattern?kc(t,p,e):e.__canvasFillPattern,e.__canvasFillPattern=x),v&&(w=c||!e.__canvasStrokePattern?kc(t,d,e):e.__canvasStrokePattern,e.__canvasStrokePattern=x),f?t.fillStyle=m:y&&(x?t.fillStyle=x:a=!1),g?t.strokeStyle=_:v&&(w?t.strokeStyle=w:o=!1)}var S=e.getGlobalScale();h.setScale(S[0],S[1],e.segmentIgnoreThreshold);var M,T;t.setLineDash&&n.lineDash&&(r=Sc(e),M=r[0],T=r[1]);var C=!0;(u||c&D_)&&(h.setDPR(t.dpr),l?h.setContext(null):(h.setContext(t),C=!1),h.reset(),e.buildPath(h,e.shape,i),h.toStatic(),e.pathUpdated()),C&&h.rebuildPath(t,l?s:1),M&&(t.setLineDash(M),t.lineDashOffset=T),i||(n.strokeFirst?(o&&Dc(t,n),a&&Ic(t,n)):(a&&Ic(t,n),o&&Dc(t,n))),M&&t.setLineDash([])}function Pc(t,e,n){var i=e.__image=$r(n.image,e.__image,e,e.onload);if(i&&Jr(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){var u=n.sx,h=n.sy,c=a-u,p=s-h;t.drawImage(i,u,h,c,p,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}function Lc(t,e,n){var i,r=n.text;if(null!=r&&(r+=""),r){t.font=n.font||vm,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var o=void 0,a=void 0;t.setLineDash&&n.lineDash&&(i=Sc(e),o=i[0],a=i[1]),o&&(t.setLineDash(o),t.lineDashOffset=a),n.strokeFirst?(Mc(n)&&t.strokeText(r,n.x,n.y),Cc(n)&&t.fillText(r,n.x,n.y)):(Cc(n)&&t.fillText(r,n.x,n.y),Mc(n)&&t.strokeText(r,n.x,n.y)),o&&t.setLineDash([])}}function Oc(t,e,n,i,r){var o=!1;if(!i&&(n=n||{},e===n))return!1;if(i||e.opacity!==n.opacity){Vc(t,r),o=!0;var a=Math.max(Math.min(e.opacity,1),0);t.globalAlpha=isNaN(a)?mw.opacity:a}(i||e.blend!==n.blend)&&(o||(Vc(t,r),o=!0),t.globalCompositeOperation=e.blend||mw.blend);for(var s=0;s<$C.length;s++){var l=$C[s];(i||e[l]!==n[l])&&(o||(Vc(t,r),o=!0),t[l]=t.dpr*(e[l]||0))}return(i||e.shadowColor!==n.shadowColor)&&(o||(Vc(t,r),o=!0),t.shadowColor=e.shadowColor||mw.shadowColor),o}function Rc(t,e,n,i,r){var o=Hc(e,r.inHover),a=i?null:n&&Hc(n,r.inHover)||{};if(o===a)return!1;var s=Oc(t,o,a,i,r);if((i||o.fill!==a.fill)&&(s||(Vc(t,r),s=!0),Tc(o.fill)&&(t.fillStyle=o.fill)),(i||o.stroke!==a.stroke)&&(s||(Vc(t,r),s=!0),Tc(o.stroke)&&(t.strokeStyle=o.stroke)),(i||o.opacity!==a.opacity)&&(s||(Vc(t,r),s=!0),t.globalAlpha=null==o.opacity?1:o.opacity),e.hasStroke()){var l=o.lineWidth,u=l/(o.strokeNoScale&&e.getLineScale?e.getLineScale():1);t.lineWidth!==u&&(s||(Vc(t,r),s=!0),t.lineWidth=u)}for(var h=0;ho;o++){var l=i[o];l.beforeBrush&&l.beforeBrush(),l.innerBeforeBrush(),Gc(t,l,s,o===a-1),l.innerAfterBrush(),l.afterBrush&&l.afterBrush(),s.prevEl=l}for(var u=0,h=r.length;h>u;u++){var l=r[u];l.beforeBrush&&l.beforeBrush(),l.innerBeforeBrush(),Gc(t,l,s,u===h-1),l.innerAfterBrush(),l.afterBrush&&l.afterBrush(),s.prevEl=l}e.clearTemporalDisplayables(),e.notClear=!0,t.restore()}function Xc(t,e){function n(t){function e(){for(var t=1,e=0,n=v.length;n>e;++e)t=ur(t,v[e]);for(var i=1,e=0,n=y.length;n>e;++e)i=ur(i,y[e].length);t*=i;var r=m*v.length*y.length;return{width:Math.max(1,Math.min(t,s.maxTileWidth)),height:Math.max(1,Math.min(r,s.maxTileHeight))}}function n(){function t(t,e,n,a,l){var u=o?1:i,h=pc(l,t*u,e*u,n*u,a*u,s.color,s.symbolKeepAspect);if(o){var c=r.painter.renderOneToVNode(h);c&&x.children.push(c)}else Wc(d,h)}d&&(d.clearRect(0,0,_.width,_.height),s.backgroundColor&&(d.fillStyle=s.backgroundColor,d.fillRect(0,0,_.width,_.height)));for(var e=0,n=0;n=e))for(var a=-m,l=0,u=0,h=0;a=S)break;if(v%2===0){var M=.5*(1-s.symbolSize),T=p+f[h][v]*M,C=a+g[l]*M,I=f[h][v]*s.symbolSize,D=g[l]*s.symbolSize,k=b/2%y[c].length;t(T,C,I,D,y[c][k])}p+=f[h][v],++b,++v,v===f[h].length&&(v=0)}++h,h===f.length&&(h=0)}a+=g[l],++u,++l,l===g.length&&(l=0)}}for(var a=[i],l=!0,u=0;u=0)){mD.push(n);var o=SC.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function wp(t,e){cD[t]=e}function bp(t){r({createCanvas:t})}function Sp(t,e,n){var i=Jc("registerMap");i&&i(t,e,n)}function Mp(t){var e=Jc("getMap");return e&&e(t)}function Tp(t){return null==t?0:t.length||1}function Cp(t){return t}function Ip(t,e){var n={},i=n.encode={},r=Y(),o=[],a=[],s={};y(t.dimensions,function(e){var n=t.getDimensionInfo(e),l=n.coordDim;if(l){var u=n.coordDimIndex;Dp(i,l)[u]=e,n.isExtraCoord||(r.set(l,1),Ap(n.type)&&(o[0]=e),Dp(s,l)[u]=t.getDimensionIndex(n.name)),n.defaultTooltip&&a.push(e)}jM.each(function(t,e){var r=Dp(i,e),o=n.otherDims[e];null!=o&&o!==!1&&(r[o]=n.name)})});var l=[],u={};r.each(function(t,e){var n=i[e];u[e]=n[0],l=l.concat(n)}),n.dataDimsOnCoord=l,n.dataDimIndicesOnCoord=v(l,function(e){return t.getDimensionInfo(e).storeDimIndex}),n.encodeFirstDimNotExtra=u;var h=i.label;h&&h.length&&(o=h.slice());var c=i.tooltip;return c&&c.length?a=c.slice():a.length||(a=o.slice()),i.defaultedLabel=o,i.defaultedTooltip=a,n.userOutput=new kD(s,e),n}function Dp(t,e){return t.hasOwnProperty(e)||(t[e]=[]),t[e]}function kp(t){return"category"===t?"ordinal":"time"===t?"time":"float"}function Ap(t){return!("ordinal"===t||"time"===t)}function Pp(t){return t instanceof OD}function Lp(t){for(var e=Y(),n=0;n<(t||[]).length;n++){var i=t[n],r=k(i)?i.name:i;null!=r&&null==e.get(r)&&e.set(r,n)}return e}function Op(t){var e=PD(t);return e.dimNameMap||(e.dimNameMap=Lp(t.dimensionsDefine))}function Rp(t){return t>30}function Ep(t,e){return zp(t,e).dimensions}function zp(t,e){function n(t){var e=m[t];if(0>e){var n=a[t],i=k(n)?n:{name:n},r=new AD,o=i.name;null!=o&&null!=f.get(o)&&(r.name=r.displayName=o),null!=i.type&&(r.type=i.type),null!=i.displayName&&(r.displayName=i.displayName);var s=l.length;return m[t]=s,r.storeDimIndex=t,l.push(r),r}return l[e]}function i(t,e,n){null!=jM.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,s.set(e,!0))}function r(t){null==t.name&&(t.name=t.coordDim)}Pu(t)||(t=Ou(t)),e=e||{};var o=e.coordDimensions||[],a=e.dimensionsDefine||t.dimensionsDefine||[],s=Y(),l=[],u=Bp(t,o,a,e.dimensionsCount),p=e.canOmitUnusedDimensions&&Rp(u),d=a===t.dimensionsDefine,f=d?Op(t):Lp(a),g=e.encodeDefine; +!g&&e.encodeDefaulter&&(g=e.encodeDefaulter(t,u));for(var v=Y(g),m=new jT(u),_=0;__;_++)n(_);v.each(function(t,e){var r=pr(t).slice();if(1===r.length&&!C(r[0])&&r[0]<0)return void v.set(e,!1);var o=v.set(e,[]);y(r,function(t,r){var a=C(t)?f.get(t):t;null!=a&&u>a&&(o[r]=a,i(n(a),e,r))})});var x=0;y(o,function(t){var e,r,o,a;if(C(t))e=t,a={};else{a=t,e=a.name;var s=a.ordinalMeta;a.ordinalMeta=null,a=h({},a),a.ordinalMeta=s,r=a.dimsDef,o=a.otherDims,a.name=a.coordDim=a.coordDimIndex=a.dimsDef=a.otherDims=null}var l=v.get(e);if(l!==!1){if(l=pr(l),!l.length)for(var p=0;p<(r&&r.length||1);p++){for(;u>x&&null!=n(x).coordDim;)x++;u>x&&l.push(x++)}y(l,function(t,s){var l=n(t);if(d&&null!=a.type&&(l.type=a.type),i(c(l,a),e,s),null==l.name&&r){var u=r[s];!k(u)&&(u={name:u}),l.name=l.displayName=u.name,l.defaultTooltip=u.defaultTooltip}o&&c(l.otherDims,o)})}});var w=e.generateCoord,b=e.generateCoordCount,S=null!=b;b=w?b||1:0;var M=w||"value";if(p)y(l,function(t){r(t)}),l.sort(function(t,e){return t.storeDimIndex-e.storeDimIndex});else for(var T=0;u>T;T++){var I=n(T),D=I.coordDim;null==D&&(I.coordDim=Fp(M,s,S),I.coordDimIndex=0,(!w||0>=b)&&(I.isExtraCoord=!0),b--),r(I),null!=I.type||Kl(t,T)!==iT.Must&&(!I.isExtraCoord||null==I.otherDims.itemName&&null==I.otherDims.seriesName)||(I.type="ordinal")}return Np(l),new OD({source:t,dimensions:l,fullDimensionCount:u,dimensionOmitted:p})}function Np(t){for(var e=Y(),n=0;n0&&(i.name=r+(o-1)),o++,e.set(r,o)}}function Bp(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return y(e,function(t){var e;k(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))}),r}function Fp(t,e,n){var i=e.data;if(n||i.hasOwnProperty(t)){for(var r=0;i.hasOwnProperty(t+r);)r++;t+=r}return e.set(t,!0),t}function Vp(t){var e=t.get("coordinateSystem"),n=new WD(e),i=GD[e];return i?(i(t,n,n.axisMap,n.categoryAxisMap),n):void 0}function Hp(t){return"category"===t.get("type")}function Wp(t,e,n){n=n||{};var i,r,o,a=n.byIndex,s=n.stackedCoordDimension;Gp(e)?i=e:(r=e.schema,i=r.dimensions,o=e.store);var l,u,h,c,p=!(!t||!t.get("stack"));if(y(i,function(t,e){C(t)&&(i[e]=t={name:t}),p&&!t.isExtraCoord&&(a||l||!t.ordinalMeta||(l=t),u||"ordinal"===t.type||"time"===t.type||s&&s!==t.coordDim||(u=t))}),!u||a||l||(a=!0),u){h="__\x00ecstackresult_"+t.id,c="__\x00ecstackedover_"+t.id,l&&(l.createInvertedIndices=!0);var d=u.coordDim,f=u.type,g=0;y(i,function(t){t.coordDim===d&&g++});var v={name:h,coordDim:d,coordDimIndex:g,type:f,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length},m={name:c,coordDim:c,coordDimIndex:g+1,type:f,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};r?(o&&(v.storeDimIndex=o.ensureCalculationDimension(c,f),m.storeDimIndex=o.ensureCalculationDimension(h,f)),r.appendCalculationDimension(v),r.appendCalculationDimension(m)):(i.push(v),i.push(m))}return{stackedDimension:u&&u.name,stackedByDimension:l&&l.name,isStackedByIndex:a,stackedOverDimension:c,stackResultDimension:h}}function Gp(t){return!Pp(t.schema)}function Up(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function Xp(t,e){return Up(t,e)?t.getCalculationInfo("stackResultDimension"):e}function Yp(t,e){var n,i=t.get("coordinateSystem"),r=xT.get(i);return e&&e.coordSysDims&&(n=v(e.coordSysDims,function(t){var n={name:t},i=e.axisMap.get(t);if(i){var r=i.get("type");n.type=kp(r)}return n})),n||(n=r&&(r.getDimensionsInfo?r.getDimensionsInfo():r.dimensions.slice())||["x","y"]),n}function qp(t,e,n){var i,r;return n&&y(t,function(t,o){var a=t.coordDim,s=n.categoryAxisMap.get(a);s&&(null==i&&(i=o),t.ordinalMeta=s.getOrdinalMeta(),e&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(r=!0)}),r||null==i||(t[i].otherDims.itemName=0),i}function jp(t,e,n){n=n||{};var i,r=e.getSourceManager(),o=!1;t?(o=!0,i=Ou(t)):(i=r.getSource(),o=i.sourceFormat===ZM);var a=Vp(e),s=Yp(e,a),l=n.useEncodeDefaulter,u=T(l)?l:l?S(Yl,s,e):null,h={coordDimensions:s,generateCoord:n.generateCoord,encodeDefine:e.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!o},c=zp(i,h),p=qp(c.dimensions,n.createInvertedIndices,a),d=o?null:r.getSharedDataStore(c),f=Wp(e,{schema:c,store:d}),g=new HD(c,e);g.setCalculationInfo(f);var y=null!=p&&Zp(i)?function(t,e,n,i){return i===p?n:this.defaultDimValueGetter(t,e,n,i)}:null;return g.hasItemOption=!1,g.initData(o?i:d,null,y),g}function Zp(t){if(t.sourceFormat===ZM){var e=Kp(t.data||[]);return!M(fr(e))}}function Kp(t){for(var e=0;ea&&(a=r.interval=n),null!=i&&a>i&&(a=r.interval=i);var s=r.intervalPrecision=ed(a),l=r.niceTickExtent=[Gi(Math.ceil(t[0]/a)*a,s),Gi(Math.floor(t[1]/a)*a,s)];return id(l,t),r}function td(t){var e=Math.pow(10,er(t)),n=t/e;return n?2===n?n=3:3===n?n=5:n*=2:n=1,Gi(n*e)}function ed(t){return Xi(t)+2}function nd(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function id(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),nd(t,0,e),nd(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function rd(t,e){return t>=e[0]&&t<=e[1]}function od(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function ad(t,e){return t*(e[1]-e[0])+e[0]}function sd(t){return M(t)?KD?new Float32Array(t):t:new $D(t)}function ld(t){return t.get("stack")||QD+t.seriesIndex}function ud(t){return t.dim+t.index}function hd(t,e){var n=[];return e.eachSeriesByType(t,function(t){vd(t)&&n.push(t)}),n}function cd(t){var e={};y(t,function(t){var n=t.coordinateSystem,i=n.getBaseAxis();if("time"===i.type||"value"===i.type)for(var r=t.getData(),o=i.dim+"_"+i.index,a=r.getDimensionIndex(r.mapDimension(i.dim)),s=r.getStore(),l=0,u=s.count();u>l;++l){var h=s.get(a,l);e[o]?e[o].push(h):e[o]=[h]}});var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i];if(r){r.sort(function(t,e){return t-e});for(var o=null,a=1;a0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}function pd(t){var e=cd(t),n=[];return y(t,function(t){var i,r=t.coordinateSystem,o=r.getBaseAxis(),a=o.getExtent();if("category"===o.type)i=o.getBandWidth();else if("value"===o.type||"time"===o.type){var s=o.dim+"_"+o.index,l=e[s],u=Math.abs(a[1]-a[0]),h=o.scale.getExtent(),c=Math.abs(h[1]-h[0]);i=l?u/c*l:u}else{var p=t.getData();i=Math.abs(a[1]-a[0])/p.count()}var d=Wi(t.get("barWidth"),i),f=Wi(t.get("barMaxWidth"),i),g=Wi(t.get("barMinWidth")||(md(t)?.5:1),i),y=t.get("barGap"),v=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:d,barMaxWidth:f,barMinWidth:g,barGap:y,barCategoryGap:v,axisKey:ud(o),stackId:ld(t)})}),dd(n)}function dd(t){var e={};y(t,function(t){var n=t.axisKey,i=t.bandWidth,r=e[n]||{bandWidth:i,remainedWidth:i,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},o=r.stacks;e[n]=r;var a=t.stackId;o[a]||r.autoWidthCount++,o[a]=o[a]||{width:0,maxWidth:0};var s=t.barWidth;s&&!o[a].width&&(o[a].width=s,s=Math.min(r.remainedWidth,s),r.remainedWidth-=s);var l=t.barMaxWidth;l&&(o[a].maxWidth=l);var u=t.barMinWidth;u&&(o[a].minWidth=u);var h=t.barGap;null!=h&&(r.gap=h);var c=t.barCategoryGap;null!=c&&(r.categoryGap=c)});var n={};return y(e,function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=w(i).length;o=Math.max(35-4*a,15)+"%"}var s=Wi(o,r),l=Wi(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),y(i,function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){var i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&i>e&&(i=Math.min(e,u)),n&&n>i&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}}),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,d=0;y(i,function(t){t.width||(t.width=c),p=t,d+=t.width*(1+l)}),p&&(d-=p.width*l);var f=-d/2;y(i,function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)})}),n}function fd(t,e,n){if(t&&e){var i=t[ud(e)];return null!=i&&null!=n?i[ld(n)]:i}}function gd(t,e){var n=hd(t,e),i=pd(n);y(n,function(t){var e=t.getData(),n=t.coordinateSystem,r=n.getBaseAxis(),o=ld(t),a=i[ud(r)][o],s=a.offset,l=a.width;e.setLayout({bandWidth:a.bandWidth,offset:s,size:l})})}function yd(t){return{seriesType:t,plan:Bh(),reset:function(t){if(vd(t)){var e=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),r=n.getOtherAxis(i),o=e.getDimensionIndex(e.mapDimension(r.dim)),a=e.getDimensionIndex(e.mapDimension(i.dim)),s=t.get("showBackground",!0),l=e.mapDimension(r.dim),u=e.getCalculationInfo("stackResultDimension"),h=Up(e,l)&&!!e.getCalculationInfo("stackedOnSeries"),c=r.isHorizontal(),p=_d(i,r),d=md(t),f=t.get("barMinHeight")||0,g=u&&e.getDimensionIndex(u),y=e.getLayout("size"),v=e.getLayout("offset");return{progress:function(t,e){for(var i,r=t.count,l=d&&sd(3*r),u=d&&s&&sd(3*r),m=d&&sd(r),_=n.master.getRect(),x=c?_.width:_.height,w=e.getStore(),b=0;null!=(i=t.next());){var S=w.get(h?g:o,i),M=w.get(a,i),T=p,C=void 0;h&&(C=+S-w.get(o,i));var I=void 0,D=void 0,k=void 0,A=void 0;if(c){var P=n.dataToPoint([S,M]);if(h){var L=n.dataToPoint([C,M]);T=L[0]}I=T,D=P[1]+v,k=P[0]-T,A=y,Math.abs(k)k?-1:1)*f)}else{var P=n.dataToPoint([M,S]);if(h){var L=n.dataToPoint([M,C]);T=L[1]}I=P[0]+v,D=T,k=y,A=P[1]-T,Math.abs(A)=A?-1:1)*f)}d?(l[b]=I,l[b+1]=D,l[b+2]=c?k:A,u&&(u[b]=c?_.x:I,u[b+1]=c?D:_.y,u[b+2]=x),m[i]=i):e.setItemLayout(i,{x:I,y:D,width:k,height:A}),b+=3}d&&e.setLayout({largePoints:l,largeDataIndices:m,largeBackgroundPoints:u,valueAxisHorizontal:c})}}}}}}function vd(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function md(t){return t.pipelineContext&&t.pipelineContext.large}function _d(t,e){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}function xd(t,e,n,i){var r=Ji(e),o=Ji(n),a=function(t){return dl(r,t,i)===dl(o,t,i)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},h=function(){return u()&&a("hour")},c=function(){return h()&&a("minute")},p=function(){return c()&&a("second")},d=function(){return p()&&a("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return h();case"minute":return c();case"second":return p();case"millisecond":return d()}}function wd(t){return t/=IM,t>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function bd(t){var e=30*IM;return t/=e,t>6?6:t>3?3:t>2?2:1}function Sd(t){return t/=CM,t>12?12:t>6?6:t>3.5?4:t>2?2:1}function Md(t,e){return t/=e?TM:MM,t>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function Td(t){return nr(t,!0)}function Cd(t,e,n){var i=new Date(t);switch(sl(e)){case"year":case"month":i[bl(n)](0);case"day":i[Sl(n)](1);case"hour":i[Ml(n)](0);case"minute":i[Tl(n)](0);case"second":i[Cl(n)](0),i[Il(n)](0)}return i.getTime()}function Id(t,e,n,i){function r(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();n>u&&u<=i[1];)s.push({value:u}),h+=t,l[o](h),u=l.getTime();s.push({value:u,notAdd:!0})}function o(t,o,a){var s=[],l=!o.length;if(!xd(sl(t),i[0],i[1],n)){l&&(o=[{value:Cd(new Date(i[0]),t,n)},{value:i[1]}]);for(var u=0;u1&&0===u&&a.unshift({value:a[0].value-p})}}for(var u=0;u=i[0]&&x<=i[1]&&c++)}var w=(i[1]-i[0])/e;if(c>1.5*w&&p>w/1.5)break;if(u.push(y),c>w||t===s[d])break}h=[]}}}for(var b=_(v(u,function(t){return _(t,function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd})}),function(t){return t.length>0}),S=[],M=b.length-1,d=0;d0&&i>0||0>n&&0>i)}function zd(t){var e=t.getLabelModel().get("formatter"),n="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?function(e){return function(n,i){return t.scale.getFormattedLabel(n,i,e)}}(e):C(e)?function(e){return function(n){var i=t.scale.getLabel(n),r=e.replace("{value}",null!=i?i:"");return r}}(e):T(e)?function(e){return function(i,r){return null!=n&&(r=i.value-n),e(Nd(t,i),r,null!=i.level?{level:i.level}:null)}}(e):function(e){return t.scale.getLabel(e)}}function Nd(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function Bd(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();n instanceof qD?r=n.count():(i=n.getTicks(),r=i.length);var a,s=t.getLabelModel(),l=zd(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;r>h;h+=u){var c=i?i[h]:{value:o[0]+h},p=l(c,h),d=s.getTextRect(p),f=Fd(d,s.get("rotate")||0);a?a.union(f):a=f}return a}}function Fd(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n)),s=new y_(t.x,t.y,o,a);return s}function Vd(t){var e=t.get("interval");return null==e?"auto":e}function Hd(t){return"category"===t.type&&0===Vd(t.getLabelModel())}function Wd(t,e){var n={};return y(t.mapDimensionsAll(e),function(e){n[Xp(t,e)]=!0}),w(n)}function Gd(t){return jp(null,t)}function Ud(t,e){var n=e;e instanceof fM||(n=new fM(e));var i=Rd(n);return i.setExtent(t[0],t[1]),Od(i,n),i}function Xd(t){f(t,fk)}function Yd(t,e){return e=e||{},Us(t,null,null,"normal"!==e.state)}function qd(t){return M(t)?void y(t,function(t){qd(t)}):void(p(vk,t)>=0||(vk.push(t),T(t)&&(t={install:t}),t.install(mk)))}function jd(t,e){return Math.abs(t-e)<_k}function Zd(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;os;s++){var l=t[s][0],u=t[s][1],h=o*u-l*a;e+=h,n+=(o+l)*h,i+=(a+u)*h,o=l,a=u}return e?[n/e/3,i/e/3,e]:[t[0][0]||0,t[0][1]||0]}function Jd(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);var i=e.features;return y(i,function(t){var e=t.geometry,i=e.encodeOffsets,r=e.coordinates;if(i)switch(e.type){case"LineString":e.coordinates=ef(r,i,n);break;case"Polygon":tf(r,i,n);break;case"MultiLineString":tf(r,i,n);break;case"MultiPolygon":y(r,function(t,e){return tf(t,i[e],n)})}}),e.UTF8Encoding=!1,e}function tf(t,e,n){for(var i=0;i>1^-(1&s),l=l>>1^-(1&l),s+=r,l+=o,r=s,o=l,i.push([s/n,l/n])}return i}function nf(t,e){return t=Jd(t),v(_(t.features,function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0}),function(t){var n=t.properties,i=t.geometry,r=[];switch(i.type){case"Polygon":var o=i.coordinates;r.push(new bk(o[0],o.slice(1)));break;case"MultiPolygon":y(i.coordinates,function(t){t[0]&&r.push(new bk(t[0],t.slice(1)))});break;case"LineString":r.push(new Sk([i.coordinates]));break;case"MultiLineString":r.push(new Sk(i.coordinates))}var a=new Mk(n[e||"name"],r,n.cp);return a.properties=n,a})}function rf(t){return"category"===t.type?af(t):uf(t)}function of(t,e){return"category"===t.type?lf(t,e):{ticks:v(t.scale.getTicks(),function(t){return t.value})}}function af(t){var e=t.getLabelModel(),n=sf(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}function sf(t,e){var n=hf(t,"labels"),i=Vd(e),r=cf(n,i);if(r)return r;var o,a;return T(i)?o=vf(t,i):(a="auto"===i?df(t):i,o=yf(t,a)),pf(n,i,{labels:o,labelCategoryInterval:a})}function lf(t,e){var n=hf(t,"ticks"),i=Vd(e),r=cf(n,i);if(r)return r;var o,a;if((!e.get("show")||t.scale.isBlank())&&(o=[]),T(i))o=vf(t,i,!0);else if("auto"===i){var s=sf(t,t.getLabelModel());a=s.labelCategoryInterval,o=v(s.labels,function(t){return t.tickValue})}else a=i,o=yf(t,a,!0);return pf(n,i,{ticks:o,tickCategoryInterval:a})}function uf(t){var e=t.scale.getTicks(),n=zd(t);return{labels:v(e,function(e,i){return{level:e.level,formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}})}}function hf(t,e){return Ak(t)[e]||(Ak(t)[e]=[])}function cf(t,e){for(var n=0;n40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,d=0;l<=o[1];l+=s){var f=0,g=0,y=xi(n({value:l}),e.font,"center","top");f=1.3*y.width,g=1.3*y.height,p=Math.max(p,f,7),d=Math.max(d,g,7)}var v=p/h,m=d/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=Ak(t.model),w=t.getExtent(),b=x.lastAutoInterval,S=x.lastTickCount;return null!=b&&null!=S&&Math.abs(b-_)<=1&&Math.abs(S-a)<=1&&b>_&&x.axisExtent0===w[0]&&x.axisExtent1===w[1]?_=b:(x.lastTickCount=a,x.lastAutoInterval=_,x.axisExtent0=w[0],x.axisExtent1=w[1]),_}function gf(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 yf(t,e,n){function i(t){var e={value:t};l.push(n?t:{formattedLabel:r(e),rawLabel:o.getLabel(e),tickValue:t})}var r=zd(t),o=t.scale,a=o.getExtent(),s=t.getLabelModel(),l=[],u=Math.max((e||0)+1,1),h=a[0],c=o.count();0!==h&&u>1&&c/u>2&&(h=Math.round(Math.ceil(h/u)*u));var p=Hd(t),d=s.get("showMinLabel")||p,f=s.get("showMaxLabel")||p;d&&h!==a[0]&&i(a[0]);for(var g=h;g<=a[1];g+=u)i(g);return f&&g-u!==a[1]&&i(a[1]),l}function vf(t,e,n){var i=t.scale,r=zd(t),o=[];return y(i.getTicks(),function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})}),o}function mf(t,e){var n=t[1]-t[0],i=e,r=n/i/2;t[0]+=r,t[1]-=r}function _f(t,e,n,i){function r(t,e){return t=Gi(t),e=Gi(e),p?t>e:e>t}var o=e.length;if(t.onBand&&!n&&o){var a,s,l=t.getExtent();if(1===o)e[0].coord=l[0],a=e[1]={coord:l[0]};else{var u=e[o-1].tickValue-e[0].tickValue,h=(e[o-1].coord-e[0].coord)/u;y(e,function(t){t.coord-=h/2});var c=t.scale.getExtent();s=1+c[1]-e[o-1].tickValue,a={coord:e[o-1].coord+h*s},e.push(a)}var p=l[0]>l[1];r(e[0].coord,l[0])&&(i?e[0].coord=l[0]:e.shift()),i&&r(l[0],e[0].coord)&&e.unshift({coord:l[0]}),r(l[1],a.coord)&&(i?a.coord=l[1]:e.pop()),i&&r(a.coord,l[1])&&e.push({coord:l[1]})}}function xf(t){var e=WM.extend(t);return WM.registerClass(e),e}function wf(t){var e=aC.extend(t);return aC.registerClass(e),e}function bf(t){var e=oC.extend(t);return oC.registerClass(e),e}function Sf(t){var e=uC.extend(t);return uC.registerClass(e),e}function Mf(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function Tf(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s);a/=u,s/=u;var h=a*n+t,c=s*n+e;if(Math.abs(i-r)%Ok<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=wo(r),r=wo(p)}else i=wo(i),r=wo(r);i>r&&(r+=Ok);var d=Math.atan2(s,a);if(0>d&&(d+=Ok),d>=i&&r>=d||d+Ok>=i&&r>=d+Ok)return l[0]=h,l[1]=c,u-n;var f=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(f-a)*(f-a)+(g-s)*(g-s),_=(y-a)*(y-a)+(v-s)*(v-s);return _>m?(l[0]=f,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function Cf(t,e,n,i,r,o,a,s){var l=r-t,u=o-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c);h/=p,c/=p;var d=l*h+u*c,f=d/p;s&&(f=Math.min(Math.max(f,0),1)),f*=p;var g=a[0]=t+f*h,y=a[1]=e+f*c;return Math.sqrt((g-r)*(g-r)+(y-o)*(y-o))}function If(t,e,n,i,r,o,a){0>n&&(t+=n,n=-n),0>i&&(e+=i,i=-i);var s=t+n,l=e+i,u=a[0]=Math.min(Math.max(r,t),s),h=a[1]=Math.min(Math.max(o,e),l);return Math.sqrt((u-r)*(u-r)+(h-o)*(h-o))}function Df(t,e,n){var i=If(e.x,e.y,e.width,e.height,t.x,t.y,zk);return n.set(zk[0],zk[1]),i}function kf(t,e,n){for(var i,r,o=0,a=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,d=0;d=d&&(s=i,l=r);var S=(c-y)*_/m+y;g=Tf(y,v,_,x,x+w,b,S,p,zk),o=Math.cos(x+w)*m+y,a=Math.sin(x+w)*_+v;break;case Rk.R:s=o=h[d++],l=a=h[d++];var M=h[d++],T=h[d++];g=If(s,l,M,T,c,p,zk);break;case Rk.Z:g=Cf(o,a,s,l,c,p,zk,!0),o=s,a=l}u>g&&(u=g,n.set(zk[0],zk[1]))}return u}function Af(t,e){if(t){var n=t.getTextGuideLine(),i=t.getTextContent();if(i&&n){var r=t.textGuideLineConfig||{},o=[[0,0],[0,0],[0,0]],a=r.candidates||Ek,s=i.getBoundingRect().clone();s.applyTransform(i.getComputedTransform());var l=1/0,u=r.anchor,h=t.getComputedTransform(),c=h&&Ge([],h),p=e.get("length2")||0;u&&Fk.copy(u);for(var d=0;dy&&(l=y,Bk.transform(h),Fk.transform(h),Fk.toArray(o[0]),Bk.toArray(o[1]),Nk.toArray(o[2]))}Pf(o,e.get("minTurnAngle")),n.setShape({points:o})}}}function Pf(t,e){if(180>=e&&e>0){e=e/180*Math.PI,Nk.fromArray(t[0]),Bk.fromArray(t[1]),Fk.fromArray(t[2]),s_.sub(Vk,Nk,Bk),s_.sub(Hk,Fk,Bk);var n=Vk.len(),i=Hk.len();if(!(.001>n||.001>i)){Vk.scale(1/n),Hk.scale(1/i);var r=Vk.dot(Hk),o=Math.cos(e);if(r>o){var a=Cf(Bk.x,Bk.y,Fk.x,Fk.y,Nk.x,Nk.y,Wk,!1);Gk.fromArray(Wk),Gk.scaleAndAdd(Hk,a/Math.tan(Math.PI-e));var s=Fk.x!==Bk.x?(Gk.x-Bk.x)/(Fk.x-Bk.x):(Gk.y-Bk.y)/(Fk.y-Bk.y);if(isNaN(s))return;0>s?s_.copy(Gk,Bk):s>1&&s_.copy(Gk,Fk),Gk.toArray(t[1])}}}}function Lf(t,e,n){if(180>=n&&n>0){n=n/180*Math.PI,Nk.fromArray(t[0]),Bk.fromArray(t[1]),Fk.fromArray(t[2]),s_.sub(Vk,Bk,Nk),s_.sub(Hk,Fk,Bk);var i=Vk.len(),r=Hk.len();if(!(.001>i||.001>r)){Vk.scale(1/i),Hk.scale(1/r);var o=Vk.dot(e),a=Math.cos(n);if(a>o){var s=Cf(Bk.x,Bk.y,Fk.x,Fk.y,Nk.x,Nk.y,Wk,!1);Gk.fromArray(Wk);var l=Math.PI/2,u=Math.acos(Hk.dot(e)),h=l+u-n;if(h>=l)s_.copy(Gk,Fk);else{Gk.scaleAndAdd(Hk,s/Math.tan(Math.PI/2-h));var c=Fk.x!==Bk.x?(Gk.x-Bk.x)/(Fk.x-Bk.x):(Gk.y-Bk.y)/(Fk.y-Bk.y);if(isNaN(c))return;0>c?s_.copy(Gk,Bk):c>1&&s_.copy(Gk,Fk)}Gk.toArray(t[1])}}}}function Of(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&a===!0&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function Rf(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=Gm(i[0],i[1]),o=Gm(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=ge([],i[1],i[0],a/r),l=ge([],i[1],i[2],a/o),u=ge([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;ht){var i=Math.min(e,-t);if(i>0){l(i*n,0,c);var r=i+t;0>r&&u(-r*n,1)}else u(-t*n,1)}}function l(n,i,r){0!==n&&(f=!0);for(var o=i;r>o;o++){var a=t[o],s=a.rect;s[e]+=n,a.label[e]+=n}}function u(i,r){for(var o=[],a=0,s=1;c>s;s++){var u=t[s-1].rect,h=Math.max(t[s].rect[e]-u[e]-u[n],0);o.push(h),a+=h}if(a){var p=Math.min(Math.abs(i)/a,r);if(i>0)for(var s=0;c-1>s;s++){var d=o[s]*p;l(d,0,s+1)}else for(var s=c-1;s>0;s--){var d=o[s-1]*p;l(-d,s,c)}}}function h(t){var e=0>t?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(c-1)),i=0;c-1>i;i++)if(e>0?l(n,0,i+1):l(-n,c-i-1,c),t-=n,0>=t)return}var c=t.length;if(!(2>c)){t.sort(function(t,n){return t.rect[e]-n.rect[e]});for(var p,d=0,f=!1,g=[],y=0,v=0;c>v;v++){var m=t[v],_=m.rect;p=_[e]-d,0>p&&(_[e]-=p,m.label[e]-=p,f=!0);var x=Math.max(-p,0);g.push(x),y+=x,d=_[e]+_[n]}y>0&&o&&l(-y/c,0,c);var w,b,S=t[0],M=t[c-1];return a(),0>w&&u(-w,.8),0>b&&u(b,.8),a(),s(w,b,1),s(b,w,-1),a(),0>w&&h(-w),0>b&&h(b),f}}function Ff(t,e,n,i){return Bf(t,"x","width",e,n,i)}function Vf(t,e,n,i){return Bf(t,"y","height",e,n,i)}function Hf(t){function e(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}var n=[];t.sort(function(t,e){return e.priority-t.priority});for(var i=new y_(0,0,0,0),r=0;r10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(isFinite(p)&&p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var d=void 0;C(r)?d=oA[r]:T(r)&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,aA))}}}}}function Qf(t,e,n,i,r){var o=t.getArea(),a=o.x,s=o.y,l=o.width,u=o.height,h=n.get(["lineStyle","width"])||2;a-=h/2,s-=h/2,l+=h,u+=h,a=Math.floor(a),l=Math.round(l);var c=new vb({shape:{x:a,y:s,width:l,height:u}});if(e){var p=t.getBaseAxis(),d=p.isHorizontal(),f=p.inverse;d?(f&&(c.shape.x+=l),c.shape.width=0):(f||(c.shape.y+=u),c.shape.height=0);var g=T(r)?function(t){r(t,c)}:null;ls(c,{shape:{width:l,height:u,x:a,y:s}},n,null,i,g)}return c}function Jf(t,e,n){var i=t.getArea(),r=Gi(i.r0,1),o=Gi(i.r,1),a=new _S({shape:{cx:Gi(t.cx,1),cy:Gi(t.cy,1),r0:r,r:o,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});if(e){var s="angle"===t.getBaseAxis().dim;s?a.shape.endAngle=i.startAngle:a.shape.r=r,ls(a,{shape:{endAngle:i.endAngle,r:o}},n)}return a}function tg(t,e,n,i,r){return t?"polar"===t.type?Jf(t,e,n):"cartesian2d"===t.type?Qf(t,e,n,i,r):null:null}function eg(t,e){return t.type===e}function ng(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=Xu(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a=0&&i.push(e[o])}return i.join(" ")}function rg(t,e){e=e||{};var n=e.isRoundCap;return function(e,i,r){var o=i.position;if(!o||o instanceof Array)return Ti(e,i,r);var a=t(o),s=null!=i.distance?i.distance:5,l=this.shape,u=l.cx,h=l.cy,c=l.r,p=l.r0,d=(c+p)/2,f=l.startAngle,g=l.endAngle,y=(f+g)/2,v=n?Math.abs(c-p)/2:0,m=Math.cos,_=Math.sin,x=u+c*m(f),w=h+c*_(f),b="left",S="top";switch(a){case"startArc":x=u+(p-s)*m(y),w=h+(p-s)*_(y),b="center",S="top";break;case"insideStartArc":x=u+(p+s)*m(y),w=h+(p+s)*_(y),b="center",S="bottom";break;case"startAngle":x=u+d*m(f)+ag(f,s+v,!1),w=h+d*_(f)+sg(f,s+v,!1),b="right",S="middle";break;case"insideStartAngle":x=u+d*m(f)+ag(f,-s+v,!1),w=h+d*_(f)+sg(f,-s+v,!1),b="left",S="middle";break;case"middle":x=u+d*m(y),w=h+d*_(y),b="center",S="middle";break;case"endArc":x=u+(c+s)*m(y),w=h+(c+s)*_(y),b="center",S="bottom";break;case"insideEndArc":x=u+(c-s)*m(y),w=h+(c-s)*_(y),b="center",S="top";break;case"endAngle":x=u+d*m(g)+ag(g,s+v,!0),w=h+d*_(g)+sg(g,s+v,!0),b="left",S="middle";break;case"insideEndAngle":x=u+d*m(g)+ag(g,-s+v,!0),w=h+d*_(g)+sg(g,-s+v,!0),b="right",S="middle";break;default:return Ti(e,i,r)}return e=e||{},e.x=x,e.y=w,e.align=b,e.verticalAlign=S,e}}function og(t,e,n,i){if(D(i))return void t.setTextConfig({rotation:i});if(M(e))return void t.setTextConfig({rotation:0});var r,o=t.shape,a=o.clockwise?o.startAngle:o.endAngle,s=o.clockwise?o.endAngle:o.startAngle,l=(a+s)/2,u=n(e);switch(u){case"startArc":case"insideStartArc":case"middle":case"insideEndArc":case"endArc":r=l;break;case"startAngle":case"insideStartAngle":r=a;break;case"endAngle":case"insideEndAngle":r=s;break;default:return void t.setTextConfig({rotation:0})}var h=1.5*Math.PI-r;"middle"===u&&h>Math.PI/2&&h<1.5*Math.PI&&(h-=Math.PI),t.setTextConfig({rotation:h})}function ag(t,e,n){return e*Math.sin(t)*(n?-1:1)}function sg(t,e,n){return e*Math.cos(t)*(n?1:-1)}function lg(t,e){var n=t.getArea&&t.getArea();if(eg(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}function ug(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();return n&&"category"===i.type&&"cartesian2d"===e.type?{baseAxis:i,otherAxis:e.getOtherAxis(i)}:void 0}function hg(t,e,n,i,r,o,a,s){var l,u;o?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(a?ss:ls)(n,{shape:l},e,r,null);var h=e?t.baseAxis.model:null;(a?ss:ls)(n,{shape:u},h,r)}function cg(t,e){for(var n=0;n=r.r0?"endArc":"startArc":r.endAngle>=r.startAngle?"endAngle":"startAngle":a?r.height>=0?"bottom":"top":r.width>=0?"right":"left",c=Gs(i);Ws(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:ng(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h});var p=t.getTextContent();if(s&&p){var d=i.get(["label","position"]);t.textConfig.inside="middle"===d?!0:null,og(t,"outside"===d?h:d,dg(a),i.get(["label","rotate"]))}Ks(p,c,o.getRawValue(n),function(t){return ig(e,t)});var f=i.getModel(["emphasis"]);La(t,f.get("focus"),f.get("blurScope"),f.get("disabled")),Ra(t,i),pg(r)&&(t.style.fill="none",t.style.stroke="none",y(t.states,function(t){t.style&&(t.style.fill=t.style.stroke="none")}))}function gg(t,e){var n=t.get(["itemStyle","borderColor"]);if(!n||"none"===n)return 0;var i=t.get(["itemStyle","borderWidth"])||0,r=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),o=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(i,r,o)}function yg(t,e,n,i){var r=t.getData(),o=r.getLayout("valueAxisHorizontal")?1:0,a=r.getLayout("largeDataIndices"),s=r.getLayout("size"),l=t.getModel("backgroundStyle"),u=r.getLayout("largeBackgroundPoints");if(u){var h=new wA({shape:{points:u},incremental:!!i,silent:!0,z2:0});h.baseDimIdx=o,h.largeDataIndices=a,h.barWidth=s,h.useStyle(l.getItemStyle()),e.add(h),n&&n.push(h)}var c=new wA({shape:{points:r.getLayout("largePoints")},incremental:!!i,ignoreCoarsePointer:!0,z2:1});c.baseDimIdx=o,c.largeDataIndices=a,c.barWidth=s,e.add(c),c.useStyle(r.getVisual("style")),Tb(c).seriesIndex=t.seriesIndex,t.get("silent")||(c.on("mousedown",bA),c.on("mousemove",bA)),n&&n.push(c)}function vg(t,e,n){for(var i=t.baseDimIdx,r=1-i,o=t.shape.points,a=t.largeDataIndices,s=[],l=[],u=t.barWidth,h=0,c=o.length/3;c>h;h++){var p=3*h;if(l[i]=u,l[r]=o[p+2],s[i]=o[p+i],s[r]=o[p+r],l[r]<0&&(s[r]+=l[r],l[r]=-l[r]),e>=s[0]&&e<=s[0]+l[0]&&n>=s[1]&&n<=s[1]+l[1])return a[h]}return-1}function mg(t,e,n){if(eg(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var r=n.getArea(),o=e;return{cx:r.cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}function _g(t,e,n){var i="polar"===t.type?_S:vb;return new i({shape:mg(e,n,t),silent:!0,z2:0})}function xg(t){t.registerChartView(dA),t.registerSeriesModel(lA),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,S(gd,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,yd("bar")),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,$f("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)})})}function wg(t,e){this.parent.drift(t,e)}function bg(t,e,n,i){return!(!e||isNaN(e[0])||isNaN(e[1])||i.isIgnore&&i.isIgnore(n)||i.clipShape&&!i.clipShape.contain(e[0],e[1])||"none"===t.getItemVisual(n,"symbol"))}function Sg(t){return null==t||k(t)||(t={isIgnore:t}),t||{}}function Mg(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),emphasisDisabled:n.get("disabled"),hoverScale:n.get("scale"),labelStatesModels:Gs(e),cursorStyle:e.get("cursor")}}function Tg(t,e,n){var i=t.getBaseAxis(),r=t.getOtherAxis(i),o=Cg(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=v(t.dimensions,function(t){return e.mapDimension(t)}),p=!1,d=e.getCalculationInfo("stackResultDimension");return Up(e,c[0])&&(p=!0,c[0]=d),Up(e,c[1])&&(p=!0,c[1]=d),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function Cg(t,e){var n=0,i=t.scale.getExtent();return"start"===e?n=i[0]:"end"===e?n=i[1]:D(e)&&!isNaN(e)?n=e:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]),n}function Ig(t,e,n,i){var r=0/0;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}function Dg(t,e){var n=[];return e.diff(t).add(function(t){n.push({cmd:"+",idx:t})}).update(function(t,e){n.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){n.push({cmd:"-",idx:t})}).execute(),n}function kg(t,e,n,i,r,o,a){for(var s=Dg(t,e),l=[],u=[],h=[],c=[],p=[],d=[],f=[],g=Tg(r,e,a),y=t.getLayout("points")||[],v=e.getLayout("points")||[],m=0;my;y++){var v=e[2*g],m=e[2*g+1];if(g>=r||0>g)break;if(Ag(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(.5>_*_+x*x){g+=o;continue}if(a>0){for(var w=g+o,b=e[2*w],S=e[2*w+1];b===v&&S===m&&i>y;)y++,w+=o,g+=o,b=e[2*w],S=e[2*w+1],v=e[2*g],m=e[2*g+1],_=v-u,x=m-h;var M=y+1;if(l)for(;Ag(b,S)&&i>M;)M++,w+=o,b=e[2*w],S=e[2*w+1];var T=.5,C=0,I=0,D=void 0,k=void 0;if(M>=i||Ag(b,S))d=v,f=m;else{C=b-u,I=S-h;var A=v-u,P=b-v,L=m-h,O=S-m,R=void 0,E=void 0;if("x"===s){R=Math.abs(A),E=Math.abs(P);var z=C>0?1:-1;d=v-z*R*a,f=m,D=v+z*E*a,k=m}else if("y"===s){R=Math.abs(L),E=Math.abs(O);var N=I>0?1:-1;d=v,f=m-N*R*a,D=v,k=m+N*E*a}else R=Math.sqrt(A*A+L*L),E=Math.sqrt(P*P+O*O),T=E/(E+R),d=v-C*a*(1-T),f=m-I*a*(1-T),D=v+C*a*T,k=m+I*a*T,D=CA(D,IA(b,v)),k=CA(k,IA(S,m)),D=IA(D,CA(b,v)),k=IA(k,CA(S,m)),C=D-v,I=k-m,d=v-C*R/E,f=m-I*R/E,d=CA(d,IA(u,v)),f=CA(f,IA(h,m)),d=IA(d,CA(u,v)),f=IA(f,CA(h,m)),C=v-d,I=m-f,D=v+C*E/R,k=m+I*E/R}t.bezierCurveTo(c,p,d,f,v,m),c=D,p=k}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}function Lg(t,e){if(t.length===e.length){for(var n=0;no;o++){var a=Ig(n,t,e,o);r[2*o]=a[0],r[2*o+1]=a[1]}return r}function Ng(t,e,n,i){var r=e.getBaseAxis(),o="x"===r.dim||"radius"===r.dim?0:1,a=[],s=0,l=[],u=[],h=[],c=[];if(i){for(s=0;ss;s++){var l=t[s],u=l.coord;if(0>u)i=l;else{if(u>e){r?o.push(n(r,l,e)):i&&o.push(n(i,l,0),n(i,l,e));break}i&&(o.push(n(i,l,0)),i=null),o.push(l),r=l}}return o}function Fg(t,e,n){var i=t.getVisual("visualMeta");if(i&&i.length&&t.count()&&"cartesian2d"===e.type){for(var r,o,a=i.length-1;a>=0;a--){var s=t.getDimensionInfo(i[a].dimension);if(r=s&&s.coordDim,"x"===r||"y"===r){o=i[a];break}}if(o){var l=e.getAxis(r),u=v(o.stops,function(t){return{coord:l.toGlobalCoord(l.dataToCoord(t.value)),color:t.color}}),h=u.length,c=o.outerColors.slice();h&&u[0].coord>u[h-1].coord&&(u.reverse(),c.reverse());var p=Bg(u,"x"===r?n.getWidth():n.getHeight()),d=p.length;if(!d&&h)return u[0].coord<0?c[1]?c[1]:u[h-1].color:c[0]?c[0]:u[0].color;var f=10,g=p[0].coord-f,m=p[d-1].coord+f,_=m-g;if(.001>_)return"transparent";y(p,function(t){t.offset=(t.coord-g)/_}),p.push({offset:d?p[d-1].offset:.5,color:c[1]||"transparent"}),p.unshift({offset:d?p[0].offset:.5,color:c[0]||"transparent"});var x=new zS(0,0,0,0,p,!0);return x[r]=g,x[r+"2"]=m,x}}}function Vg(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!Hg(o,e))){var a=e.mapDimension(o.dim),s={};return y(o.getViewLabels(),function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1}),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function Hg(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;r>a;a+=o)if(1.5*MA.getSymbolSize(e,a)[t.isHorizontal()?1:0]>i)return!1;return!0}function Wg(t,e){return isNaN(t)||isNaN(e)}function Gg(t){for(var e=t.length/2;e>0&&Wg(t[2*e-2],t[2*e-1]);e--);return e-1}function Ug(t,e){return[t[2*e],t[2*e+1]]}function Xg(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;o>u;u++)if(r=t[2*u+a],!isNaN(r)&&!isNaN(t[2*u+1-a]))if(0!==u){if(e>=i&&r>=e||i>=e&&e>=r){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}function Yg(t){if(t.get(["endLabel","show"]))return!0;for(var e=0;ei?(i=c,_-=c):x+=t;var r=w+b*i;e.setItemLayout(n,{angle:i,startAngle:w,endAngle:r,clockwise:g,cx:a,cy:s,r0:u,r:y?Hi(t,m,[u,l]):l}),w=r}),OA>_&&p)if(.001>=_){var S=OA/p;e.each(i,function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=S,i.startAngle=h+b*n*S,i.endAngle=h+b*(n+1)*S}})}else f=_/x,w=h,e.each(i,function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===c?c:t*f;i.startAngle=w,i.endAngle=w+b*r,w+=b*r}})})}function ty(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf(function(t){for(var e=i.getName(t),r=0;rn?a:o,c=Math.abs(l.label.y-n);if(c>=u.maxY){var p=l.label.x-e-l.len2*r,d=i+l.len,f=Math.abs(p)d;d++)if("outer"===t[d].position&&"labelLine"===t[d].labelAlignTo){var f=t[d].label.x-u;t[d].linePoints[1][0]+=f,t[d].label.x=u}Vf(t,l,l+a)&&c(t)}}function ny(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;pe||n){var c=o.height;if(u&&u.match("break")){i.setStyle("backgroundColor",null),i.setStyle("width",e-l);var p=i.getBoundingRect();i.setStyle("width",Math.ceil(p.width)),i.setStyle("backgroundColor",a)}else{var d=e-l,f=h>e?d:n?d>t.unconstrainedWidth?null:d:null;i.setStyle("width",f)}var g=i.getBoundingRect();o.width=g.width;var y=(i.style.margin||0)+2.1;o.height=g.height+y,o.y-=(o.height-c)/2}}}function ry(t){return"center"===t.position}function oy(t){function e(t){t.ignore=!0}function n(t){if(!t.ignore)return!0;for(var e in t.states)if(t.states[e].ignore===!1)return!0;return!1}var i,r,o=t.getData(),a=[],s=!1,l=(t.get("minShowLabelAngle")||0)*EA,u=o.getLayout("viewRect"),h=o.getLayout("r"),c=u.width,p=u.x,d=u.y,f=u.height;o.each(function(t){var u=o.getItemGraphicEl(t),d=u.shape,f=u.getTextContent(),g=u.getTextGuideLine(),v=o.getItemModel(t),m=v.getModel("label"),_=m.get("position")||v.get(["emphasis","label","position"]),x=m.get("distanceToLabelLine"),w=m.get("alignTo"),b=Wi(m.get("edgeDistance"),c),S=m.get("bleedMargin"),M=v.getModel("labelLine"),T=M.get("length");T=Wi(T,c);var C=M.get("length2");if(C=Wi(C,c),Math.abs(d.endAngle-d.startAngle)O?-1:1)*C,H=F;I="edge"===w?0>O?p+b:p+c-b:V+(0>O?-x:x),k=H,A=[[z,N],[B,F],[V,H]]}P=E?"center":"edge"===w?O>0?"right":"left":O>0?"left":"right"}var W=Math.PI,G=0,U=m.get("rotate");if(D(U))G=U*(W/180);else if("center"===_)G=0;else if("radial"===U||U===!0){var X=0>O?-L+W:-L;G=X}else if("tangential"===U&&"outside"!==_&&"outer"!==_){var Y=Math.atan2(O,R);0>Y&&(Y=2*W+Y);var q=R>0;q&&(Y=W+Y),G=Y-W}if(s=!!G,f.x=I,f.y=k,f.rotation=G,f.setStyle({verticalAlign:"middle"}),E){f.setStyle({align:P});var j=f.states.select;j&&(j.x+=f.x,j.y+=f.y)}else{var Z=f.getBoundingRect().clone();Z.applyTransform(f.getComputedTransform());var K=(f.style.margin||0)+2.1;Z.y-=K/2,Z.height+=K,a.push({label:f,labelLine:g,position:_,len:T,len2:C,minTurnAngle:M.get("minTurnAngle"),maxSurfaceAngle:M.get("maxSurfaceAngle"),surfaceNormal:new s_(O,R),linePoints:A,textAlign:P,labelDistance:x,labelAlignTo:w,edgeDistance:b,bleedMargin:S,rect:Z,unconstrainedWidth:Z.width,labelStyleWidth:f.style.width})}u.setTextConfig({inside:E})}}),!s&&t.get("avoidLabelOverlap")&&ny(a,i,r,h,c,f,p,d);for(var g=0;gi?!1:!0})}}}function uy(t){t.registerChartView(NA),t.registerSeriesModel(FA),sc("pie",t.registerAction),t.registerLayout(S(Jg,"pie")),t.registerProcessor(ty("pie")),t.registerProcessor(ly("pie"))}function hy(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r),a=Wi(n[0],e.getWidth()),s=Wi(n[1],e.getHeight()),l=Wi(t.get("radius"),o/2);return{cx:a,cy:s,r:l}}function cy(t,e){var n=null==t?"":t+"";return e&&(C(e)?n=e.replace("{value}",n):T(e)&&(n=e(t))),n}function py(t){t.registerChartView(WA),t.registerSeriesModel(GA)}function dy(t,n,i,r){y(QA,function(o,a){var s=l(l({},$A[a],!0),r,!0),u=function(t){function i(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n+"Axis."+a,e}return e(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=Vl(this),i=n?Wl(t):{},r=e.getTheme();l(t,r.get(a+"Axis")),l(t,this.getDefaultOption()),t.type=fy(t),n&&Hl(t,i,n)},i.prototype.optionUpdated=function(){var t=this.option;"category"===t.type&&(this.__ordinalMeta=YD.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;return"category"===e.type?t?e.data:this.__ordinalMeta.categories:void 0},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=n+"Axis."+a,i.defaultOption=s,i}(i);t.registerComponentModel(u)}),t.registerSubTypeDefaulter(n+"Axis",fy)}function fy(t){return t.type||(t.data?"category":"value")}function gy(t){return"interval"===t.type||"time"===t.type}function yy(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,f="x"===u?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));f[p.onZero]=Math.max(Math.min(g,f[1]),f[0])}o.position=["y"===u?f[p[l]]:c[0],"x"===u?f[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);var y={top:-1,bottom:1,left:-1,right:1};o.labelDirection=o.tickDirection=o.nameDirection=y[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),N(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var v=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-v:v,o.z2=1,o}function vy(t){return"cartesian2d"===t.get("coordinateSystem")}function my(t){var e={xAxisModel:null,yAxisModel:null};return y(e,function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,iw).models[0];e[i]=o}),e}function _y(t,e,n){var i=ZD.prototype,r=i.getTicks.call(n),o=i.getTicks.call(n,!0),a=r.length-1,s=i.getInterval.call(n),l=Pd(t,e),u=l.extent,h=l.fixMin,c=l.fixMax;if("log"===t.type){var p=iP(t.base);u=[iP(u[0])/p,iP(u[1])/p]}t.setExtent(u[0],u[1]),t.calcNiceExtent({splitNumber:a,fixMin:h,fixMax:c});var d=i.getExtent.call(t);h&&(u[0]=d[0]),c&&(u[1]=d[1]);var f=i.getInterval.call(t),g=u[0],y=u[1];if(h&&c)f=(y-g)/a;else if(h)for(y=u[0]+f*a;yu[0]&&isFinite(g)&&isFinite(u[0]);)f=td(f),g=u[1]-f*a;else{var v=t.getTicks().length-1;v>a&&(f=td(f));var m=f*a;y=Math.ceil(u[1]/f)*f,g=Gi(y-m),0>g&&u[0]>=0?(g=0,y=Gi(m)):y>0&&u[1]<=0&&(y=0,g=-Gi(m))}var _=(r[0].value-o[0].value)/s,x=(r[a].value-o[a].value)/s;i.setExtent.call(t,g+f*_,y+f*x),i.setInterval.call(t,f),(_||x)&&i.setNiceExtent.call(t,g+f,y-f)}function xy(t,e){return t.getCoordSysModel()===e}function wy(t,e,n,i){function r(t){return t.dim+"_"+t.index}n.getAxesOnZeroOf=function(){return o?[o]:[]};var o,a=t[e],s=n.model,l=s.get(["axisLine","onZero"]),u=s.get(["axisLine","onZeroAxisIndex"]);if(l){if(null!=u)by(a[u])&&(o=a[u]);else for(var h in a)if(a.hasOwnProperty(h)&&by(a[h])&&!i[r(a[h])]){o=a[h];break}o&&(i[r(o)]=!0)}}function by(t){return t&&"category"!==t.type&&"time"!==t.type&&Ed(t)}function Sy(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}function My(t,e,n,i){var r,o,a=$i(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;return Qi(a-oP/2)?(o=l?"bottom":"top",r="center"):Qi(a-1.5*oP)?(o=l?"top":"bottom",r="center"):(o="middle",r=1.5*oP>a&&a>oP/2?l?"left":"right":l?"right":"left"),{rotation:a,textAlign:r,textVerticalAlign:o}}function Ty(t,e,n){if(!Hd(t.axis)){var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);e=e||[],n=n||[];var o=e[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],p=n[n.length-2];i===!1?(Cy(o),Cy(u)):Iy(o,a)&&(i?(Cy(a),Cy(h)):(Cy(o),Cy(u))),r===!1?(Cy(s),Cy(c)):Iy(l,s)&&(r?(Cy(l),Cy(p)):(Cy(s),Cy(c)))}}function Cy(t){t&&(t.ignore=!0)}function Iy(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=Ne([]);return He(r,r,-t.rotation),n.applyTransform(Fe([],r,t.getLocalTransform())),i.applyTransform(Fe([],r,e.getLocalTransform())),n.intersect(i)}}function Dy(t){return"middle"===t||"center"===t}function ky(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l=0||t===e +}function Fy(t){var e=Vy(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=Wy(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a0?2:0),MP(t,function(n,i){"inherit"===t[i]&&(t[i]=e[i])})}var l=e.getModel("itemStyle"),u=l.getItemStyle(),h=0===t.lastIndexOf("empty",0)?"fill":"stroke",c=l.getShallow("decal");u.decal=c&&"inherit"!==c?Xc(c,a):i.decal,"inherit"===u.fill&&(u.fill=i[r]),"inherit"===u.stroke&&(u.stroke=i[h]),"inherit"===u.opacity&&(u.opacity=("fill"===r?i:n).opacity),s(u,i);var p=e.getModel("lineStyle"),d=p.getLineStyle();if(s(d,n),"auto"===u.fill&&(u.fill=i.fill),"auto"===u.stroke&&(u.stroke=i.fill),"auto"===d.stroke&&(d.stroke=i.fill),!o){var f=e.get("inactiveBorderWidth"),g=u[h];u.lineWidth="auto"===f?i.lineWidth>0&&g?2:0:u.lineWidth,u.fill=e.get("inactiveColor"),u.stroke=e.get("inactiveBorderColor"),d.stroke=p.get("inactiveColor"),d.lineWidth=p.get("inactiveWidth")}return{itemStyle:u,lineStyle:d}}function Ky(t){var e=t.icon||"roundRect",n=pc(e,0,0,t.itemWidth,t.itemHeight,t.itemStyle.fill,t.symbolKeepAspect);return n.setStyle(t.itemStyle),n.rotation=(t.iconRotate||0)*Math.PI/180,n.setOrigin([t.itemWidth/2,t.itemHeight/2]),e.indexOf("empty")>-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n}function $y(t,e,n,i){tv(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),Jy(t,e,n,i)}function Qy(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;r>i&&!(e=n[i].states.emphasis);)i++;return e&&e.hoverLayer}function Jy(t,e,n,i){Qy(n)||n.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:i})}function tv(t,e,n,i){Qy(n)||n.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:i})}function ev(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var n=0;na||M(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u),c=h.dim,p=u.dim,d="x"===c||"radius"===c?1:0,f=o.mapDimension(p),g=[];g[d]=o.get(f,a),g[1-d]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(g)||[]}else i=l.dataToPoint(o.getValues(v(l.dimensions,function(t){return o.mapDimension(t)}),a))||[];else if(s){var y=s.getBoundingRect().clone();y.applyTransform(s.transform),i=[y.x+y.width/2,y.y+y.height/2]}return{point:i,el:s}}function Pv(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||zm(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){Hv(r)&&(r=Av({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=Hv(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||Hv(r),p={},d={},f={list:[],map:{}},g={showPointer:S(Rv,d),showTooltip:S(Ev,f)};y(s.coordSysMap,function(t,e){var n=l||t.containPoint(r);y(s.coordSysAxesInfo[e],function(t){var e=t.axis,i=Fv(u,t);if(!c&&n&&(!u||i)){var o=i&&i.value;null!=o||l||(o=e.pointToData(r)),null!=o&&Lv(t,o,g,!1,p)}})});var v={};return y(h,function(t,e){var n=t.linkGroup;n&&!d[e]&&y(n.axesInfo,function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,Vv(e),Vv(t)))),v[t.key]=o}})}),y(v,function(t,e){Lv(h[e],t,g,!0,p)}),zv(d,h,p),Nv(f,r,t,a),Bv(h,a,n),p}}function Lv(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e)){if(!t.involveSeries)return void n.showPointer(t,e);var a=Ov(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&h(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}}function Ov(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return y(e.seriesModels,function(e){var l,u,h=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var c=e.getAxisTooltipData(h,t,n);u=c.dataIndices,l=c.nestestValue}else{if(u=e.getData().indicesOfNearest(h[0],t,"category"===n.type?.5:null),!u.length)return;l=e.getData().get(h[0],u[0])}if(null!=l&&isFinite(l)){var p=t-l,d=Math.abs(p);a>=d&&((a>d||p>=0&&0>s)&&(a=d,s=p,r=l,o.length=0),y(u,function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:o,snapToValue:r}}function Rv(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function Ev(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=Gy(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function zv(t,e,n){var i=n.axesInfo=[];y(e,function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})})}function Nv(t,e,n,i){if(Hv(e)||!t.list.length)return void i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}function Bv(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=WP(i)[r]||{},a=WP(i)[r]={};y(t,function(t){var e=t.axisPointerModel.option;"show"===e.status&&y(e.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t})});var s=[],l=[];y(o,function(t,e){!a[e]&&l.push(t)}),y(a,function(t,e){!o[e]&&s.push(t)}),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}function Fv(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}function Vv(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function Hv(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function Wv(t){uP.registerAxisPointerClass("CartesianAxisPointer",zP),t.registerComponentModel(BP),t.registerComponentView(HP),t.registerPreprocessor(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!M(e)&&(t.axisPointer.link=[e])}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=Oy(t,e)}),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},Pv)}function Gv(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}function Uv(t){if(fm.domSupported)for(var e=document.documentElement.style,n=0,i=t.length;i>n;n++)if(t[n]in e)return t[n]}function Xv(t,e){if(!t)return e;e=Al(e,!0);var n=t.indexOf(e);return t=-1===n?e:"-"+t.slice(0,n)+"-"+e,t.toLowerCase()}function Yv(t,e){var n=t.currentStyle||document.defaultView&&document.defaultView.getComputedStyle(t);return n?e?n[e]:n:null}function qv(t){return t="left"===t?"right":"right"===t?"left":"top"===t?"bottom":"top"}function jv(t,e,n){if(!C(n)||"inside"===n)return"";var i=t.get("backgroundColor"),r=t.get("borderWidth");e=zl(e);var o,a=qv(n),s=Math.max(1.5*Math.round(r),6),l="",u=qP+":";p(["left","right"],a)>-1?(l+="top:50%",u+="translateY(-50%) rotate("+(o="left"===a?-225:-45)+"deg)"):(l+="left:50%",u+="translateX(-50%) rotate("+(o="top"===a?225:45)+"deg)");var h=o*Math.PI/180,c=s+r,d=c*Math.abs(Math.cos(h))+c*Math.abs(Math.sin(h)),f=Math.round(100*((d-Math.SQRT2*r)/2+Math.SQRT2*r-(d-c)/2))/100;l+=";"+a+":-"+f+"px";var g=e+" solid "+r+"px;",y=["position:absolute;width:"+s+"px;height:"+s+"px;",l+";"+u+";","border-bottom:"+g,"border-right:"+g,"background-color:"+i+";"];return'
'}function Zv(t,e){var n="cubic-bezier(0.23,1,0.32,1)",i=" "+t/2+"s "+n,r="opacity"+i+",visibility"+i;return e||(i=" "+t+"s "+n,r+=fm.transformSupported?","+qP+i:",left"+i+",top"+i),YP+":"+r}function Kv(t,e,n){var i=t.toFixed(0)+"px",r=e.toFixed(0)+"px";if(!fm.transformSupported)return n?"top:"+r+";left:"+i+";":[["top",r],["left",i]];var o=fm.transform3dSupported,a="translate"+(o?"3d":"")+"("+i+","+r+(o?",0":"")+")";return n?"top:0;left:0;"+qP+":"+a+";":[["top",0],["left",0],[UP,a]]}function $v(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px");var r=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,a=t.get("textShadowOffsetX")||0,s=t.get("textShadowOffsetY")||0;return r&&o&&e.push("text-shadow:"+a+"px "+s+"px "+o+"px "+r),y(["decoration","align"],function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)}),e.join(";")}function Qv(t,e,n){var i=[],r=t.get("transitionDuration"),o=t.get("backgroundColor"),a=t.get("shadowBlur"),s=t.get("shadowColor"),l=t.get("shadowOffsetX"),u=t.get("shadowOffsetY"),h=t.getModel("textStyle"),c=Ch(t,"html"),p=l+"px "+u+"px "+a+"px "+s;return i.push("box-shadow:"+p),e&&r&&i.push(Zv(r,n)),o&&i.push("background-color:"+o),y(["width","color","radius"],function(e){var n="border-"+e,r=Al(n),o=t.get(r);null!=o&&i.push(n+":"+o+("color"===e?"":"px"))}),i.push($v(h)),null!=c&&i.push("padding:"+RM(c).join("px ")+"px"),i.join(";")+";"}function Jv(t,e,n,i,r){var o=e&&e.painter;if(n){var a=o&&o.getViewportRoot();a&&we(t,a,document.body,i,r)}else{t[0]=i,t[1]=r;var s=o&&o.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}function tm(t){return Math.max(0,t)}function em(t){var e=tm(t.shadowBlur||0),n=tm(t.shadowOffsetX||0),i=tm(t.shadowOffsetY||0);return{left:tm(e-n),right:tm(e+n),top:tm(e-i),bottom:tm(e+i)}}function nm(t,e,n,i){t[0]=n,t[1]=i,t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}function im(t,e,n){var i,r=e.ecModel;n?(i=new fM(n,r,r),i=new fM(e.option,i,r)):i=e;for(var o=t.length-1;o>=0;o--){var a=t[o];a&&(a instanceof fM&&(a=a.get("tooltip",!0)),C(a)&&(a={formatter:a}),a&&(i=new fM(a,i,r)))}return i}function rm(t,e){return t.dispatchAction||zm(e.dispatchAction,e)}function om(t,e,n,i,r,o,a){var s=n.getSize(),l=s[0],u=s[1];return null!=o&&(t+l+o+2>i?t-=l+o:t+=o),null!=a&&(e+u+a>r?e-=u+a:e+=a),[t,e]}function am(t,e,n,i,r){var o=n.getSize(),a=o[0],s=o[1];return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function sm(t,e,n,i){var r=n[0],o=n[1],a=Math.ceil(Math.SQRT2*i)+8,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-r/2,l=e.y+h/2-o/2;break;case"top":s=e.x+u/2-r/2,l=e.y-o-a;break;case"bottom":s=e.x+u/2-r/2,l=e.y+h+a;break;case"left":s=e.x-r-a,l=e.y+h/2-o/2;break;case"right":s=e.x+u+a,l=e.y+h/2-o/2}return[s,l]}function lm(t){return"center"===t||"middle"===t}function um(t,e,n){var i=Or(t).queryOptionMap,r=i.keys()[0];if(r&&"series"!==r){var o=Rr(e,r,i.get(r),{useDefault:!1,enableAll:!1,enableNone:!1}),a=o.models[0];if(a){var s,l=n.getViewOfComponentModel(a);return l.group.traverse(function(e){var n=Tb(e).tooltipConfig;return n&&n.name===t.name?(s=e,!0):void 0}),s?{componentMainType:r,componentIndex:a.componentIndex,el:s}:void 0}}}function hm(t){qd(Wv),t.registerComponentModel(GP),t.registerComponentView(QP),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},$),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},$)}var cm=function(t,e){return(cm=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)},pm=function(){function t(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return t}(),dm=function(){function t(){this.browser=new pm,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow="undefined"!=typeof window}return t}(),fm=new dm;"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(fm.wxa=!0,fm.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?fm.worker=!0:"undefined"==typeof navigator?(fm.node=!0,fm.svgSupported=!0):n(navigator.userAgent,fm);var gm=12,ym="sans-serif",vm=gm+"px "+ym,mm=20,_m=100,xm="007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N",wm=i(xm),bm={createCanvas:function(){return"undefined"!=typeof document&&document.createElement("canvas")},measureText:function(){var t,e;return function(n,i){if(!t){var r=bm.createCanvas();t=r&&r.getContext("2d")}if(t)return e!==i&&(e=t.font=i||vm),t.measureText(n);n=n||"",i=i||vm;var o=/^([0-9]*?)px$/.exec(i),a=+(o&&o[1])||gm,s=0;if(i.indexOf("mono")>=0)s=a*n.length;else for(var l=0;lr;r++)n[t][r].h!==e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},t.prototype.trigger=function(t){for(var e=[],n=1;ns;s++){var l=i[s];if(!r||!r.filter||null==l.query||r.filter(t,l.query))switch(o){case 0:l.h.call(l.ctx);break;case 1:l.h.call(l.ctx,e[0]);break;case 2:l.h.call(l.ctx,e[0],e[1]);break;default:l.h.apply(l.ctx,e)}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t.prototype.triggerWithContext=function(t){for(var e=[],n=1;nl;l++){var u=i[l];if(!r||!r.filter||null==u.query||r.filter(t,u.query))switch(o){case 0:u.h.call(a);break;case 1:u.h.call(a,e[0]);break;case 2:u.h.call(a,e[0],e[1]);break;default:u.h.apply(a,e.slice(1,o-1))}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t}(),Zm=Math.log(2),Km="___zrEVENTSAVED",$m=[],Qm=/([&<>"'])/g,Jm={"&":"&","<":"<",">":">",'"':""","'":"'"},t_=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,e_=[],n_=fm.browser.firefox&&+fm.browser.version.split(".")[0]<39,i_=function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0},r_=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;a>o;o++){var s=i[o],l=Ie(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},t.prototype._recognize=function(t){for(var e in o_)if(o_.hasOwnProperty(e)){var n=o_[e](this._track,t);if(n)return n}},t}(),o_={pinch:function(t,e){var n=t.length;if(n){var i=(t[n-1]||{}).points,r=(t[n-2]||{}).points||i;if(r&&r.length>1&&i&&i.length>1){var o=Re(i)/Re(r);!isFinite(o)&&(o=1),e.pinchScale=o;var a=Ee(i);return e.pinchX=a[0],e.pinchY=a[1],{type:"pinch",target:t[0].target,event:e}}}}},a_=(Object.freeze||Object)({create:ze,identity:Ne,copy:Be,mul:Fe,translate:Ve,rotate:He,scale:We,invert:Ge,clone:Ue}),s_=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),l_=Math.min,u_=Math.max,h_=new s_,c_=new s_,p_=new s_,d_=new s_,f_=new s_,g_=new s_,y_=function(){function t(t,e,n,i){0>n&&(t+=n,n=-n),0>i&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=l_(t.x,this.x),n=l_(t.y,this.y);this.width=isFinite(this.x)&&isFinite(this.width)?u_(t.x+t.width,this.x+this.width)-e:t.width,this.height=isFinite(this.y)&&isFinite(this.height)?u_(t.y+t.height,this.y+this.height)-n:t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=ze();return Ve(r,r,[-e.x,-e.y]),We(r,r,[n,i]),Ve(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(l>o||r>u||h>s||a>c);if(n){var d=1/0,f=0,g=Math.abs(o-l),y=Math.abs(u-r),v=Math.abs(s-h),m=Math.abs(c-a),_=Math.min(g,y),x=Math.min(v,m);l>o||r>u?_>f&&(f=_,y>g?s_.set(g_,-g,0):s_.set(g_,y,0)):d>_&&(d=_,y>g?s_.set(f_,g,0):s_.set(f_,-y,0)),h>s||a>c?x>f&&(f=x,m>v?s_.set(g_,0,-v):s_.set(g_,0,m)):d>_&&(d=_,m>v?s_.set(f_,0,v):s_.set(f_,0,-m))}return n&&s_.copy(n,p?f_:g_),p},t.prototype.contain=function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(!i)return void(e!==n&&t.copy(e,n));if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}h_.x=p_.x=n.x,h_.y=d_.y=n.y,c_.x=d_.x=n.x+n.width,c_.y=p_.y=n.y+n.height,h_.transform(i),d_.transform(i),c_.transform(i),p_.transform(i),e.x=l_(h_.x,c_.x,p_.x,d_.x),e.y=l_(h_.y,c_.y,p_.y,d_.y);var l=u_(h_.x,c_.x,p_.x,d_.x),u=u_(h_.y,c_.y,p_.y,d_.y);e.width=l-e.x,e.height=u-e.y},t}(),v_="silent",m_=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return e(n,t),n.prototype.dispose=function(){},n.prototype.setCursor=function(){},n}(jm),__=function(){function t(t,e){this.x=t,this.y=e}return t}(),x_=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],w_=new y_(0,0,0,0),b_=function(t){function n(e,n,i,r,o){var a=t.call(this)||this;return a._hovered=new __(0,0),a.storage=e,a.painter=n,a.painterRoot=r,a._pointerSize=o,i=i||new m_,a.proxy=null,a.setHandlerProxy(i),a._draggingMgr=new qm(a),a}return e(n,t),n.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(y(x_,function(e){t.on&&t.on(e,this[e],this)},this),t.handler=this),this.proxy=t},n.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=Ze(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(r=this.findHover(r.x,r.y),o=r.target);var a=this._hovered=i?new __(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t) +},n.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},n.prototype.resize=function(){this._hovered=new __(0,0)},n.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},n.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},n.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},n.prototype.dispatchToElement=function(t,e,n){t=t||{};var i=t.target;if(!i||!i.silent){for(var r="on"+e,o=Xe(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)}))}},n.prototype.findHover=function(t,e,n){var i=this.storage.getDisplayList(),r=new __(t,e);if(je(i,r,t,e,n),this._pointerSize&&!r.target){for(var o=[],a=this._pointerSize,s=a/2,l=new y_(t-s,e-s,a,a),u=i.length-1;u>=0;u--){var h=i[u];h===n||h.ignore||h.ignoreCoarsePointer||h.parent&&h.parent.ignoreCoarsePointer||(w_.copy(h.getBoundingRect()),h.transform&&w_.applyTransform(h.transform),w_.intersect(l)&&o.push(h))}if(o.length)for(var c=4,p=Math.PI/12,d=2*Math.PI,f=0;s>f;f+=c)for(var g=0;d>g;g+=p){var y=t+f*Math.cos(g),v=e+f*Math.sin(g);if(je(o,r,y,v,n),r.target)return r}}return r},n.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new r_);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var o=new __;o.target=i.target,this.dispatchToElement(o,r,i.event)}},n}(jm);y(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){b_.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=Ze(this,r,o);if("mouseup"===t&&a||(n=this.findHover(r,o),i=n.target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Gm(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}});var S_,M_=32,T_=7,C_=1,I_=2,D_=4,k_=!1,A_=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=an}return t.prototype.traverse=function(t,e){for(var n=0;ni;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,rn(n,an)},t.prototype._updateAndAddDisplayable=function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.update(),t.afterUpdate();var i=t.getClipPath();if(t.ignoreClip)e=null;else if(i){e=e?e.slice():[];for(var r=i,o=t;r;)r.parent=o,r.updateTransform(),e.push(r),o=r,r=r.getClipPath()}if(t.childrenRef){for(var a=t.childrenRef(),s=0;s0&&(u.__clipPaths=[]),isNaN(u.z)&&(on(),u.z=0),isNaN(u.z2)&&(on(),u.z2=0),isNaN(u.zlevel)&&(on(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;n>e;e++)this.delRoot(t[e]);else{var i=p(this._roots,t);i>=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}();S_=fm.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)};var P_=S_,L_={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,n=.1,i=.4;return 0===t?0:1===t?1:(!n||1>n?(n=1,e=i/4):e=i*Math.asin(1/n)/(2*Math.PI),-(n*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/i)))},elasticOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||1>n?(n=1,e=i/4):e=i*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin(2*(t-e)*Math.PI/i)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||1>n?(n=1,e=i/4):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?-.5*n*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/i):n*Math.pow(2,-10*(t-=1))*Math.sin(2*(t-e)*Math.PI/i)*.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-L_.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*L_.bounceIn(2*t):.5*L_.bounceOut(2*t-1)+.5}},O_=Math.pow,R_=Math.sqrt,E_=1e-8,z_=1e-4,N_=R_(3),B_=1/3,F_=Q(),V_=Q(),H_=Q(),W_=/cubic-bezier\(([0-9,\.e ]+)\)/,G_=function(){function t(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||$,this.ondestroy=t.ondestroy||$,this.onrestart=t.onrestart||$,t.easing&&this.setEasing(t.easing)}return t.prototype.step=function(t,e){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused)return void(this._pausedTime+=e);var n=this._life,i=t-this._startTime-this._pausedTime,r=i/n;0>r&&(r=0),r=Math.min(r,1);var o=this.easingFunc,a=o?o(r):r;if(this.onframe(a),1===r){if(!this.loop)return!0;var s=i%n;this._startTime=t-s,this._pausedTime=0,this.onrestart()}return!1},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t.prototype.setEasing=function(t){this.easing=t,this.easingFunc=T(t)?t:L_[t]||Sn(t)},t}(),U_=function(){function t(t){this.value=t}return t}(),X_=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new U_(t);return this.insertEntry(e),e},t.prototype.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++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Y_=function(){function t(t){this._list=new X_,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new U_(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;return null!=e?(e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value):void 0},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),q_={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]},j_=new Y_(20),Z_=null,K_=Fn,$_=Vn,Q_=(Object.freeze||Object)({parse:Rn,lift:Nn,toHex:Bn,fastLerp:Fn,fastMapToColor:K_,lerp:Vn,mapToColor:$_,modifyHSL:Hn,modifyAlpha:Wn,stringify:Gn,lum:Un,random:Xn}),J_=(function(){return fm.hasGlobalWindow&&T(window.btoa)?function(t){return window.btoa(unescape(t))}:"undefined"!=typeof Buffer?function(t){return Buffer.from(t).toString("base64")}:function(){return null}}(),Array.prototype.slice),tx=0,ex=1,nx=2,ix=3,rx=4,ox=5,ax=6,sx=[0,0,0,0],lx=function(){function t(t){this.keyframes=[],this.discrete=!1,this._invalid=!1,this._needsSort=!1,this._lastFr=0,this._lastFrP=0,this.propName=t}return t.prototype.isFinished=function(){return this._finished},t.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},t.prototype.needsAnimate=function(){return this.keyframes.length>=1},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e,n){this._needsSort=!0;var i=this.keyframes,r=i.length,o=!1,a=ax,s=e;if(g(e)){var l=ii(e);a=l,(1===l&&!D(e[0])||2===l&&!D(e[0][0]))&&(o=!0)}else if(D(e)&&!z(e))a=tx;else if(C(e))if(isNaN(+e)){var u=Rn(e);u&&(s=u,a=ix)}else a=tx;else if(O(e)){var c=h({},s);c.colorStops=v(e.colorStops,function(t){return{offset:t.offset,color:Rn(t.color)}}),Yn(e)?a=rx:qn(e)&&(a=ox),s=c}0===r?this.valType=a:(a!==this.valType||a===ax)&&(o=!0),this.discrete=this.discrete||o;var p={time:t,value:s,rawValue:e,percent:0};return n&&(p.easing=n,p.easingFunc=T(n)?n:L_[n]||Sn(n)),i.push(p),p},t.prototype.prepare=function(t,e){var n=this.keyframes;this._needsSort&&n.sort(function(t,e){return t.time-e.time});for(var i=this.valType,r=n.length,o=n[r-1],a=this.discrete,s=oi(i),l=ri(i),u=0;r>u;u++){var h=n[u],c=h.value,p=o.value;h.percent=h.time/t,a||(s&&u!==r-1?ti(c,p,i):l&&Jn(c.colorStops,p.colorStops))}if(!a&&i!==ox&&e&&this.needsAnimate()&&e.needsAnimate()&&i===e.valType&&!e._finished){this._additiveTrack=e;for(var d=n[0].value,u=0;r>u;u++)i===tx?n[u].additiveValue=n[u].value-d:i===ix?n[u].additiveValue=$n([],n[u].value,d,-1):oi(i)&&(n[u].additiveValue=i===ex?$n([],n[u].value,d,-1):Qn([],n[u].value,d,-1))}},t.prototype.step=function(t,e){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n,i,r,o=null!=this._additiveTrack,a=o?"additiveValue":"value",s=this.valType,l=this.keyframes,u=l.length,h=this.propName,c=s===ix,p=this._lastFr,d=Math.min;if(1===u)i=r=l[0];else{if(0>e)n=0;else if(e=0&&!(l[n].percent<=e);n--);n=d(n,u-2)}else{for(n=p;u>n&&!(l[n].percent>e);n++);n=d(n-1,u-2)}r=l[n+1],i=l[n]}if(i&&r){this._lastFr=n,this._lastFrP=e;var g=r.percent-i.percent,y=0===g?1:d((e-i.percent)/g,1);r.easingFunc&&(y=r.easingFunc(y));var m=o?this._additiveValue:c?sx:t[h];if(!oi(s)&&!c||m||(m=this._additiveValue=[]),this.discrete)t[h]=1>y?i.rawValue:r.rawValue;else if(oi(s))s===ex?Zn(m,i[a],r[a],y):Kn(m,i[a],r[a],y);else if(ri(s)){var _=i[a],x=r[a],w=s===rx;t[h]={type:w?"linear":"radial",x:jn(_.x,x.x,y),y:jn(_.y,x.y,y),colorStops:v(_.colorStops,function(t,e){var n=x.colorStops[e];return{offset:jn(t.offset,n.offset,y),color:ni(Zn([],t.color,n.color,y))}}),global:x.global},w?(t[h].x2=jn(_.x2,x.x2,y),t[h].y2=jn(_.y2,x.y2,y)):t[h].r=jn(_.r,x.r,y)}else if(c)Zn(m,i[a],r[a],y),o||(t[h]=ni(m));else{var b=jn(i[a],r[a],y);o?this._additiveValue=b:t[h]=b}o&&this._addToTarget(t)}}},t.prototype._addToTarget=function(t){var e=this.valType,n=this.propName,i=this._additiveValue;e===tx?t[n]=t[n]+i:e===ix?(Rn(t[n],sx),$n(sx,sx,i,1),t[n]=ni(sx)):e===ex?$n(t[n],t[n],i,1):e===nx&&Qn(t[n],t[n],i,1)},t}(),ux=function(){function t(t,e,n,i){return this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&i?void a("Can' use additive animation on looped animation."):(this._additiveAnimators=i,void(this._allowDiscrete=n))}return t.prototype.getMaxTime=function(){return this._maxTime},t.prototype.getDelay=function(){return this._delay},t.prototype.getLoop=function(){return this._loop},t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e,n){return this.whenWithKeys(t,e,w(e),n)},t.prototype.whenWithKeys=function(t,e,n,i){for(var r=this._tracks,o=0;o0&&s.addKeyframe(0,ei(l),i),this._trackKeys.push(a)}s.addKeyframe(t,ei(e[a]),i)}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var e=t.length,n=0;e>n;n++)t[n].call(this)},t.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,e=this._abortedCbs;if(t&&t.removeClip(this._clip),this._clip=null,e)for(var n=0;n0)){this._started=1;for(var e=this,n=[],i=this._maxTime||0,r=0;r1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(this._maxTime,r.getAdditiveTrack())}}}},t}(),hx=function(t){function n(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n}return e(n,t),n.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._head?(this._tail.next=t,t.prev=this._tail,t.next=null,this._tail=t):this._head=this._tail=t,t.animation=this},n.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},n.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._head=n,n?n.prev=e:this._tail=e,t.next=t.prev=t.animation=null}},n.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},n.prototype.update=function(t){for(var e=ai()-this._pausedTime,n=e-this._time,i=this._head;i;){var r=i.next,o=i.step(e,n);o?(i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.trigger("frame",n),this.stage.update&&this.stage.update())},n.prototype._startLoop=function(){function t(){e._running&&(P_(t),!e._paused&&e.update())}var e=this;this._running=!0,P_(t)},n.prototype.start=function(){this._running||(this._time=ai(),this._pausedTime=0,this._startLoop())},n.prototype.stop=function(){this._running=!1},n.prototype.pause=function(){this._paused||(this._pauseStart=ai(),this._paused=!0)},n.prototype.resume=function(){this._paused&&(this._pausedTime+=ai()-this._pauseStart,this._paused=!1)},n.prototype.clear=function(){for(var t=this._head;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._head=this._tail=null},n.prototype.isFinished=function(){return null==this._head},n.prototype.animate=function(t,e){e=e||{},this.start();var n=new ux(t,e.loop);return this.addAnimator(n),n},n}(jm),cx=300,px=fm.domSupported,dx=function(){var t=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],e=["touchstart","touchend","touchmove"],n={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},i=v(t,function(t){var e=t.replace("mouse","pointer");return n.hasOwnProperty(e)?e:t});return{mouse:t,touch:e,pointer:i}}(),fx={mouse:["mousemove","mouseup"],pointer:["pointermove","pointerup"]},gx=!1,yx=function(){function t(t,e){this.stopPropagation=$,this.stopImmediatePropagation=$,this.preventDefault=$,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY}return t}(),vx={mousedown:function(t){t=Ae(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=Ae(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=Ae(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){t=Ae(this.dom,t);var e=t.toElement||t.relatedTarget;ci(this,e)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){gx=!0,t=Ae(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){gx||(t=Ae(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){t=Ae(this.dom,t),ui(t),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),vx.mousemove.call(this,t),vx.mousedown.call(this,t)},touchmove:function(t){t=Ae(this.dom,t),ui(t),this.handler.processGesture(t,"change"),vx.mousemove.call(this,t)},touchend:function(t){t=Ae(this.dom,t),ui(t),this.handler.processGesture(t,"end"),vx.mouseup.call(this,t),+new Date-+this.__lastTouchMoment1e-10&&Ox(t[3]-1)>1e-10?Math.sqrt(Ox(t[0]*t[3]-t[2]*t[1])):1},t.prototype.copyTransform=function(t){vi(this,t)},t.getLocalTransform=function(t,e){e=e||[];var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.anchorX,s=t.anchorY,l=t.rotation||0,u=t.x,h=t.y,c=t.skewX?Math.tan(t.skewX):0,p=t.skewY?Math.tan(-t.skewY):0;if(n||i||a||s){var d=n+a,f=i+s;e[4]=-d*r-c*f*o,e[5]=-f*o-p*d*r}else e[4]=e[5]=0;return e[0]=r,e[3]=o,e[1]=p*r,e[2]=c*o,l&&He(e,e,l),e[4]+=n+u,e[5]+=i+h,e},t.initDefaultProps=function(){var e=t.prototype;e.scaleX=e.scaleY=e.globalScaleRatio=1,e.x=e.y=e.originX=e.originY=e.skewX=e.skewY=e.rotation=e.anchorX=e.anchorY=0}(),t}(),Ex=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"],zx={},Nx="__zr_normal__",Bx=Ex.concat(["ignore"]),Fx=m(Ex,function(t,e){return t[e]=!0,t},{ignore:!1}),Vx={},Hx=new y_(0,0,0,0),Wx=function(){function t(t){this.id=o(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var n=this.transform;n||(n=this.transform=[1,0,0,1,0,0]),n[4]+=t,n[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.innerTransformable,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.copyTransform(e),null!=n.position){var u=Hx;u.copy(n.layoutRect?n.layoutRect:this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Vx,n,u):Ti(Vx,n,u),r.x=Vx.x,r.y=Vx.y,o=Vx.align,a=Vx.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Mi(h[0],u.width),p=Mi(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],l||(r.originX=-d[0],r.originY=-d[1]));var f=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;f&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,(null==y||"auto"===y)&&(y=this.getInsideTextFill()),(null==v||"auto"===v)&&(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,(null==y||"auto"===y)&&(y=this.getOutsideFill()),(null==v||"auto"===v)&&(v=this.getOutsideStroke(y),m=!0)),y=y||"#000",(y!==g.fill||v!==g.stroke||m!==g.autoStroke||o!==g.align||a!==g.verticalAlign)&&(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),e.__dirty|=C_,s&&e.dirtyStyle(!0)}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Cx:Tx},t.prototype.getOutsideStroke=function(){var t=this.__zr&&this.__zr.getBackgroundColor(),e="string"==typeof t&&Rn(t);e||(e=[255,255,255,1]);for(var n=e[3],i=this.__zr.isDarkMode(),r=0;3>r;r++)e[r]=e[r]*n+(i?0:255)*(1-n);return e[3]=1,Gn(e,"rgba")},t.prototype.traverse=function(){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},h(this.extra,e)):this[t]=e +},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(k(t))for(var n=t,i=w(n),r=0;r0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(Nx,!1,t)},t.prototype.useState=function(t,e,n,i){var r=t===Nx,o=this.hasState();if(o||!r){var s=this.currentStates,l=this.stateTransition;if(!(p(s,t)>=0)||!e&&1!==s.length){var u;if(this.stateProxy&&!r&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!r)return void a("State "+t+" not exists.");r||this.saveCurrentToNormalState(u);var h=!!(u&&u.hoverLayer||i);h&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,e,!n&&!this.__inHover&&l&&l.duration>0,l);var c=this._textContent,d=this._textGuide;return c&&c.useState(t,e,n,h),d&&d.useState(t,e,n,h),r?(this.currentStates=[],this._normalState={}):e?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~C_),u}}},t.prototype.useStates=function(t,e,n){if(t.length){var i=[],r=this.currentStates,o=t.length,a=o===r.length;if(a)for(var s=0;o>s;s++)if(t[s]!==r[s]){a=!1;break}if(a)return;for(var s=0;o>s;s++){var l=t[s],u=void 0;this.stateProxy&&(u=this.stateProxy(l,t)),u||(u=this.states[l]),u&&i.push(u)}var h=i[o-1],c=!!(h&&h.hoverLayer||n);c&&this._toggleHoverLayerFlag(!0);var p=this._mergeStates(i),d=this.stateTransition;this.saveCurrentToNormalState(p),this._applyStateObj(t.join(","),p,this._normalState,!1,!e&&!this.__inHover&&d&&d.duration>0,d);var f=this._textContent,g=this._textGuide;f&&f.useStates(t,e,c),g&&g.useStates(t,e,c),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~C_)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=p(i,t),o=p(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i=0&&e.splice(n,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;i>o;o++){var a=n[o];t&&t!==a.scope?r.push(a):a.stop(e)}return this.animators=r,this},t.prototype.animateTo=function(t,e,n){Ci(this,t,e,n)},t.prototype.animateFrom=function(t,e,n){Ci(this,t,e,n,!0)},t.prototype._transitionState=function(t,e,n,i){for(var r=Ci(this,e,n,i),o=0;o=0&&(n.splice(i,0,t),this._doAdd(t))}return this},n.prototype.replace=function(t,e){var n=p(this._children,t);return n>=0&&this.replaceAt(e,n),this},n.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},n.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},n.prototype.remove=function(t){var e=this.__zr,n=this._children,i=p(n,t);return 0>i?this:(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh(),this)},n.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e0&&(this._ux=Yw(n/Sx/t)||0,this._uy=Yw(n/Sx/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this._drawPendingPt(),this.addData(Ew.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=Yw(t-this._xi),i=Yw(e-this._yi),r=n>this._ux||i>this._uy;if(this.addData(Ew.L,t,e),this._ctx&&r&&this._ctx.lineTo(t,e),r)this._xi=t,this._yi=e,this._pendingPtDist=0;else{var o=n*n+i*i;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=e,this._pendingPtDist=o)}return this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this._drawPendingPt(),this.addData(Ew.C,t,e,n,i,r,o),this._ctx&&this._ctx.bezierCurveTo(t,e,n,i,r,o),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this._drawPendingPt(),this.addData(Ew.Q,t,e,n,i),this._ctx&&this._ctx.quadraticCurveTo(t,e,n,i),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){this._drawPendingPt(),Kw[0]=i,Kw[1]=r,vo(Kw,o),i=Kw[0],r=Kw[1];var a=r-i;return this.addData(Ew.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=Uw(r)*n+t,this._yi=Xw(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Ew.R,t,e,n,i),this},t.prototype.closePath=function(){this._drawPendingPt(),this.addData(Ew.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&t.closePath(),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!Zw||(this.data=new Float32Array(e));for(var n=0;e>n;n++)this.data[n]=t[n];this._len=e},t.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;e>r;r++)n+=t[r].len();Zw&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(var r=0;e>r;r++)for(var o=t[r].data,a=0;at.length&&(this._expandData(),t=this.data);for(var e=0;e0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){Bw[0]=Bw[1]=Vw[0]=Vw[1]=Number.MAX_VALUE,Fw[0]=Fw[1]=Hw[0]=Hw[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;tc;){var p=t[c++],d=1===c;d&&(r=t[c],o=t[c+1],a=r,s=o);var f=-1;switch(p){case Ew.M:r=a=t[c++],o=s=t[c++];break;case Ew.L:var g=t[c++],y=t[c++],v=g-r,m=y-o;(Yw(v)>n||Yw(m)>i||c===e-1)&&(f=Math.sqrt(v*v+m*m),r=g,o=y);break;case Ew.C:var _=t[c++],x=t[c++],g=t[c++],y=t[c++],w=t[c++],b=t[c++];f=gn(r,o,_,x,g,y,w,b,10),r=w,o=b;break;case Ew.Q:var _=t[c++],x=t[c++],g=t[c++],y=t[c++];f=bn(r,o,_,x,g,y,10),r=g,o=y;break;case Ew.A:var S=t[c++],M=t[c++],T=t[c++],C=t[c++],I=t[c++],D=t[c++],k=D+I;c+=1;{!t[c++]}d&&(a=Uw(I)*T+S,s=Xw(I)*C+M),f=Gw(T,C)*Ww(jw,Math.abs(D)),r=Uw(k)*T+S,o=Xw(k)*C+M;break;case Ew.R:a=r=t[c++],s=o=t[c++];var A=t[c++],P=t[c++];f=2*A+2*P;break;case Ew.Z:var v=a-r,m=s-o;f=Math.sqrt(v*v+m*m),r=a,o=s}f>=0&&(l[h++]=f,u+=f)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h,c,p,d=this.data,f=this._ux,g=this._uy,y=this._len,v=1>e,m=0,_=0,x=0;if(!v||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=this._pathLen,h=e*u))t:for(var w=0;y>w;){var b=d[w++],S=1===w;switch(S&&(r=d[w],o=d[w+1],n=r,i=o),b!==Ew.L&&x>0&&(t.lineTo(c,p),x=0),b){case Ew.M:n=r=d[w++],i=o=d[w++],t.moveTo(r,o);break;case Ew.L:a=d[w++],s=d[w++];var M=Yw(a-r),T=Yw(s-o);if(M>f||T>g){if(v){var C=l[_++];if(m+C>h){var I=(h-m)/C;t.lineTo(r*(1-I)+a*I,o*(1-I)+s*I);break t}m+=C}t.lineTo(a,s),r=a,o=s,x=0}else{var D=M*M+T*T;D>x&&(c=a,p=s,x=D)}break;case Ew.C:var k=d[w++],A=d[w++],P=d[w++],L=d[w++],O=d[w++],R=d[w++];if(v){var C=l[_++];if(m+C>h){var I=(h-m)/C;dn(r,k,P,O,I,zw),dn(o,A,L,R,I,Nw),t.bezierCurveTo(zw[1],Nw[1],zw[2],Nw[2],zw[3],Nw[3]);break t}m+=C}t.bezierCurveTo(k,A,P,L,O,R),r=O,o=R;break;case Ew.Q:var k=d[w++],A=d[w++],P=d[w++],L=d[w++];if(v){var C=l[_++];if(m+C>h){var I=(h-m)/C;xn(r,k,P,I,zw),xn(o,A,L,I,Nw),t.quadraticCurveTo(zw[1],Nw[1],zw[2],Nw[2]);break t}m+=C}t.quadraticCurveTo(k,A,P,L),r=P,o=L;break;case Ew.A:var E=d[w++],z=d[w++],N=d[w++],B=d[w++],F=d[w++],V=d[w++],H=d[w++],W=!d[w++],G=N>B?N:B,U=Yw(N-B)>.001,X=F+V,Y=!1;if(v){var C=l[_++];m+C>h&&(X=F+V*(h-m)/C,Y=!0),m+=C}if(U&&t.ellipse?t.ellipse(E,z,N,B,H,F,X,W):t.arc(E,z,G,F,X,W),Y)break t;S&&(n=Uw(F)*N+E,i=Xw(F)*B+z),r=Uw(X)*N+E,o=Xw(X)*B+z;break;case Ew.R:n=r=d[w],i=o=d[w+1],a=d[w++],s=d[w++];var q=d[w++],j=d[w++];if(v){var C=l[_++];if(m+C>h){var Z=h-m;t.moveTo(a,s),t.lineTo(a+Ww(Z,q),s),Z-=q,Z>0&&t.lineTo(a+q,s+Ww(Z,j)),Z-=j,Z>0&&t.lineTo(a+Gw(q-Z,0),s+j),Z-=q,Z>0&&t.lineTo(a,s+Gw(j-Z,0));break t}m+=C}t.rect(a,s,q,j);break;case Ew.Z:if(v){var C=l[_++];if(m+C>h){var I=(h-m)/C;t.lineTo(r*(1-I)+n*I,o*(1-I)+i*I);break t}m+=C}t.closePath(),r=n,o=i}}},t.prototype.clone=function(){var e=new t,n=this.data;return e.data=n.slice?n.slice():Array.prototype.slice.call(n),e._len=this._len,e},t.CMD=Ew,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._ux=0,e._uy=0,e._pendingPtDist=0,e._version=0}(),t}(),Qw=2*Math.PI,Jw=2*Math.PI,tb=$w.CMD,eb=2*Math.PI,nb=1e-4,ib=[-1,-1,-1],rb=[-1,-1],ob=c({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},mw),ab={style:c({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},_w.style)},sb=Ex.concat(["invisible","culling","z","z2","zlevel","parent"]),lb=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.update=function(){var e=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new n;r.buildPath===n.prototype.buildPath&&(r.buildPath=function(t){e.buildPath(t,e.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s.5?Tx:e>.2?Ix:Cx}if(t)return Cx}return Tx},n.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(C(e)){var n=this.__zr,i=!(!n||!n.isDarkMode()),r=Un(t,0)0))},n.prototype.hasFill=function(){var t=this.style,e=t.fill;return null!=e&&"none"!==e},n.prototype.getBoundingRect=function(){var t=this._rect,e=this.style,n=!t;if(n){var i=!1;this.path||(i=!0,this.createPathProxy());var r=this.path;(i||this.__dirty&D_)&&(r.beginPath(),this.buildPath(r,this.shape,!1),this.pathUpdated()),t=r.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var o=this._rectStroke||(this._rectStroke=t.clone());if(this.__dirty||n){o.copy(t);var a=e.strokeNoScale?this.getLineScale():1,s=e.lineWidth;if(!this.hasFill()){var l=this.strokeContainThreshold;s=Math.max(s,null==l?4:l)}a>1e-10&&(o.width+=s/a,o.height+=s/a,o.x-=s/a/2,o.y-=s/a/2)}return o}return t},n.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),Po(o,a/s,t,e)))return!0}if(this.hasFill())return Ao(o,t,e)}return!1},n.prototype.dirtyShape=function(){this.__dirty|=D_,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},n.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},n.prototype.animateShape=function(t){return this.animate("shape",t)},n.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},n.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},n.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:h(n,t),this.dirtyShape(),this},n.prototype.shapeChanged=function(){return!!(this.__dirty&D_)},n.prototype.createStyle=function(t){return j(ob,t) +},n.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=h({},this.shape))},n.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=h({},i.shape),h(s,n.shape)):(s=h({},r?this.shape:i.shape),h(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=h({},this.shape);for(var u={},c=w(s),p=0;p0},n.prototype.hasFill=function(){var t=this.style,e=t.fill;return null!=e&&"none"!==e},n.prototype.createStyle=function(t){return j(ub,t)},n.prototype.setBoundingRect=function(t){this._rect=t},n.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=xi(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},n.initDefaultProps=function(){var t=n.prototype;t.dirtyRectTolerance=10}(),n}(bw);hb.prototype.type="tspan";var cb=c({x:0,y:0},mw),pb={style:c({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},_w.style)},db=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.createStyle=function(t){return j(cb,t)},n.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i=Lo(e.image)?e.image:this.__image;if(!i)return 0;var r="width"===t?"height":"width",o=e[r];return null==o?i[t]:i[t]/i[r]*o},n.prototype.getWidth=function(){return this._getSize("width")},n.prototype.getHeight=function(){return this._getSize("height")},n.prototype.getAnimationStyleProps=function(){return pb},n.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new y_(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},n}(bw);db.prototype.type="image";var fb=Math.round,gb=function(){function t(){this.x=0,this.y=0,this.width=0,this.height=0}return t}(),yb={},vb=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new gb},n.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Eo(yb,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?Oo(t,e):t.rect(n,i,r,o)},n.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},n}(lb);vb.prototype.type="rect";var mb={fill:"#000"},_b=2,xb={style:c({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},_w.style)},wb=function(t){function n(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=mb,n.attr(e),n}return e(n,t),n.prototype.childrenRef=function(){return this._children},n.prototype.update=function(){t.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var e=0;e0,C=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),I=r.calculatedLineHeight,D=0;DM&&(D=x[M],!D.align||"left"===D.align);)this._placeToken(D,t,b,g,T,"left",v),S-=D.width,T+=D.width,M++;for(;I>=0&&(D=x[I],"right"===D.align);)this._placeToken(D,t,b,g,C,"right",v),S-=D.width,C-=D.width,I--;for(T+=(i-(T-f)-(y-C)-S)/2;I>=M;)D=x[M],this._placeToken(D,t,b,g,T+D.width/2,"center",v),T+=D.width,M++;g+=b}},n.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2);var h=!t.isLineHolder&&Yo(s);h&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,u-t.height/2,t.width,t.height);var c=!!s.backgroundColor,p=t.textPadding;p&&(r=Uo(r,o,p),u-=t.height/2-p[0]-t.innerHeight/2);var d=this._getOrCreateChild(hb),f=d.createStyle();d.useStyle(f);var g=this._defaultStyle,y=!1,v=0,m=Go("fill"in s?s.fill:"fill"in e?e.fill:(y=!0,g.fill)),_=Wo("stroke"in s?s.stroke:"stroke"in e?e.stroke:c||a||g.autoStroke&&!y?null:(v=_b,g.stroke)),x=s.textShadowBlur>0||e.textShadowBlur>0;f.text=t.text,f.x=r,f.y=u,x&&(f.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,f.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",f.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,f.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),f.textAlign=o,f.textBaseline="middle",f.font=t.font||vm,f.opacity=F(s.opacity,e.opacity,1),Bo(f,s),_&&(f.lineWidth=F(s.lineWidth,e.lineWidth,v),f.lineDash=B(s.lineDash,e.lineDash),f.lineDashOffset=e.lineDashOffset||0,f.stroke=_),m&&(f.fill=m);var w=t.contentWidth,b=t.contentHeight;d.setBoundingRect(new y_(wi(f.x,w,f.textAlign),bi(f.y,b,f.textBaseline),w,b))},n.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l=t.backgroundColor,u=t.borderWidth,h=t.borderColor,c=l&&l.image,p=l&&!c,d=t.borderRadius,f=this;if(p||t.lineHeight||u&&h){a=this._getOrCreateChild(vb),a.useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=i,g.width=r,g.height=o,g.r=d,a.dirtyShape()}if(p){var y=a.style;y.fill=l||null,y.fillOpacity=B(t.fillOpacity,1)}else if(c){s=this._getOrCreateChild(db),s.onload=function(){f.dirtyStyle()};var v=s.style;v.image=l.image,v.x=n,v.y=i,v.width=r,v.height=o}if(u&&h){var y=a.style;y.lineWidth=u,y.stroke=h,y.strokeOpacity=B(t.strokeOpacity,1),y.lineDash=t.borderDash,y.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(y.strokeFirst=!0,y.lineWidth*=2)}var m=(a||s).style;m.shadowBlur=t.shadowBlur||0,m.shadowColor=t.shadowColor||"transparent",m.shadowOffsetX=t.shadowOffsetX||0,m.shadowOffsetY=t.shadowOffsetY||0,m.opacity=F(t.opacity,e.opacity,1)},n.makeFont=function(t){var e="";return Fo(t)&&(e=[t.fontStyle,t.fontWeight,No(t.fontSize),t.fontFamily||"sans-serif"].join(" ")),e&&G(e)||t.textFont||t.font},n}(bw),bb={left:!0,right:1,center:1},Sb={top:1,bottom:1,middle:1},Mb=["fontStyle","fontWeight","fontSize","fontFamily"],Tb=Pr(),Cb=function(t,e,n,i){if(i){var r=Tb(i);r.dataIndex=n,r.dataType=e,r.seriesIndex=t,"group"===i.type&&i.traverse(function(i){var r=Tb(i);r.seriesIndex=t,r.dataIndex=n,r.dataType=e})}},Ib=1,Db={},kb=Pr(),Ab=Pr(),Pb=0,Lb=1,Ob=2,Rb=["emphasis","blur","select"],Eb=["normal","emphasis","blur","select"],zb=10,Nb=9,Bb="highlight",Fb="downplay",Vb="select",Hb="unselect",Wb="toggleSelect",Gb=new Y_(100),Ub=["emphasis","blur","select"],Xb={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"},Yb=$w.CMD,qb=[[],[],[]],jb=Math.sqrt,Zb=Math.atan2,Kb=Math.sqrt,$b=Math.sin,Qb=Math.cos,Jb=Math.PI,tS=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,eS=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g,nS=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.applyTransform=function(){},n}(lb),iS=function(){function t(){this.cx=0,this.cy=0,this.r=0}return t}(),rS=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new iS},n.prototype.buildPath=function(t,e){t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI)},n}(lb);rS.prototype.type="circle";var oS=function(){function t(){this.cx=0,this.cy=0,this.rx=0,this.ry=0}return t}(),aS=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new oS},n.prototype.buildPath=function(t,e){var n=.5522848,i=e.cx,r=e.cy,o=e.rx,a=e.ry,s=o*n,l=a*n;t.moveTo(i-o,r),t.bezierCurveTo(i-o,r-l,i-s,r-a,i,r-a),t.bezierCurveTo(i+s,r-a,i+o,r-l,i+o,r),t.bezierCurveTo(i+o,r+l,i+s,r+a,i,r+a),t.bezierCurveTo(i-s,r+a,i-o,r+l,i-o,r),t.closePath()},n}(lb);aS.prototype.type="ellipse";var sS=Math.PI,lS=2*sS,uS=Math.sin,hS=Math.cos,cS=Math.acos,pS=Math.atan2,dS=Math.abs,fS=Math.sqrt,gS=Math.max,yS=Math.min,vS=1e-4,mS=function(){function t(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0}return t}(),_S=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new mS},n.prototype.buildPath=function(t,e){es(t,e)},n.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},n}(lb);_S.prototype.type="sector";var xS=function(){function t(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return t}(),wS=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new xS},n.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},n}(lb);wS.prototype.type="ring";var bS=function(){function t(){this.points=null,this.smooth=0,this.smoothConstraint=null}return t}(),SS=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new bS},n.prototype.buildPath=function(t,e){is(t,e,!0)},n}(lb);SS.prototype.type="polygon";var MS=function(){function t(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null}return t}(),TS=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new MS},n.prototype.buildPath=function(t,e){is(t,e,!1)},n}(lb);TS.prototype.type="polyline";var CS={},IS=function(){function t(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1}return t}(),DS=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new IS},n.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Ro(CS,e,this.style);n=a.x1,i=a.y1,r=a.x2,o=a.y2}else n=e.x1,i=e.y1,r=e.x2,o=e.y2;var s=e.percent;0!==s&&(t.moveTo(n,i),1>s&&(r=n*(1-s)+r*s,o=i*(1-s)+o*s),t.lineTo(r,o))},n.prototype.pointAt=function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]},n}(lb);DS.prototype.type="line";var kS=[],AS=function(){function t(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1}return t}(),PS=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new AS},n.prototype.buildPath=function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(1>h&&(xn(n,a,r,h,kS),a=kS[1],r=kS[2],xn(i,s,o,h,kS),s=kS[1],o=kS[2]),t.quadraticCurveTo(a,s,r,o)):(1>h&&(dn(n,a,l,r,h,kS),a=kS[1],l=kS[2],r=kS[3],dn(i,s,u,o,h,kS),s=kS[1],u=kS[2],o=kS[3]),t.bezierCurveTo(a,s,l,u,r,o)))},n.prototype.pointAt=function(t){return rs(this.shape,t,!1)},n.prototype.tangentAt=function(t){var e=rs(this.shape,t,!0);return ce(e,e)},n}(lb);PS.prototype.type="bezier-curve";var LS=function(){function t(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0}return t}(),OS=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new LS},n.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),o=e.startAngle,a=e.endAngle,s=e.clockwise,l=Math.cos(o),u=Math.sin(o);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,o,a,!s)},n}(lb);OS.prototype.type="arc";var RS=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="compound",e}return e(n,t),n.prototype._updatePathDirty=function(){for(var t=this.shape.paths,e=this.shapeChanged(),n=0;nn;n++)this._corners[n]=new s_;for(var n=0;2>n;n++)this._axes[n]=new s_;t&&this.fromBoundingRect(t,e)}return t.prototype.fromBoundingRect=function(t,e){var n=this._corners,i=this._axes,r=t.x,o=t.y,a=r+t.width,s=o+t.height;if(n[0].set(r,o),n[1].set(a,o),n[2].set(a,s),n[3].set(r,s),e)for(var l=0;4>l;l++)n[l].transform(e);s_.sub(i[0],n[1],n[0]),s_.sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(var l=0;2>l;l++)this._origin[l]=i[l].dot(n[0])},t.prototype.intersect=function(t,e){var n=!0,i=!e;return VS.set(1/0,1/0),HS.set(0,0),!this._intersectCheckOneSide(this,t,VS,HS,i,1)&&(n=!1,i)?n:!this._intersectCheckOneSide(t,this,VS,HS,i,-1)&&(n=!1,i)?n:(i||s_.copy(e,n?VS:HS),n)},t.prototype._intersectCheckOneSide=function(t,e,n,i,r,o){for(var a=!0,s=0;2>s;s++){var l=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,BS),this._getProjMinMaxOnAxis(s,e._corners,FS),BS[1]FS[1]){if(a=!1,r)return a;var u=Math.abs(FS[0]-BS[1]),h=Math.abs(BS[0]-FS[1]);Math.min(u,h)>i.len()&&(h>u?s_.scale(i,l,-u*o):s_.scale(i,l,h*o))}else if(n){var u=Math.abs(FS[0]-BS[1]),h=Math.abs(BS[0]-FS[1]);Math.min(u,h)u?s_.scale(n,l,u*o):s_.scale(n,l,-h*o))}}return a},t.prototype._getProjMinMaxOnAxis=function(t,e,n){for(var i=this._axes[t],r=this._origin,o=e[0].dot(i)+r[t],a=o,s=o,l=1;l-1?mM:xM}():xM;nl(_M,yM),nl(mM,vM);var MM=1e3,TM=60*MM,CM=60*TM,IM=24*CM,DM=365*IM,kM={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{HH}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}"},AM="{yyyy}-{MM}-{dd}",PM={year:"{yyyy}",month:"{yyyy}-{MM}",day:AM,hour:AM+" "+kM.hour,minute:AM+" "+kM.minute,second:AM+" "+kM.second,millisecond:kM.none},LM=["year","month","day","hour","minute","second","millisecond"],OM=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"],RM=H,EM=["a","b","c","d","e","f","g"],zM=function(t,e){return"{"+t+(null==e?"":e)+"}"},NM=y,BM=["left","right","top","bottom","width","height"],FM=[["width","left","right"],["height","top","bottom"]],VM=Bl,HM=(S(Bl,"vertical"),S(Bl,"horizontal"),Pr()),WM=function(t){function n(e,n,i){var r=t.call(this,e,n,i)||this;return r.uid=Qs("ec_cpt_model"),r}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},n.prototype.mergeDefaultAndTheme=function(t,e){var n=Vl(this),i=n?Wl(t):{},r=e.getTheme();l(t,r.get(this.mainType)),l(t,this.getDefaultOption()),n&&Hl(t,i,n)},n.prototype.mergeOption=function(t){l(this.option,t,!0);var e=Vl(this);e&&Hl(this.option,t,e)},n.prototype.optionUpdated=function(){},n.prototype.getDefaultOption=function(){var t=this.constructor;if(!Hr(t))return t.defaultOption;var e=HM(this);if(!e.defaultOption){for(var n=[],i=t;i;){var r=i.prototype.defaultOption;r&&n.push(r),i=i.superClass}for(var o={},a=n.length-1;a>=0;a--)o=l(o,n[a],!0);e.defaultOption=o}return e.defaultOption},n.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return Rr(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},n.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},n.prototype.getZLevelKey=function(){return""},n.prototype.setZLevel=function(t){this.option.zlevel=t},n.protoInitialize=function(){var t=n.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),n}(fM);Ur(WM,fM),jr(WM),Js(WM),tl(WM,Ul);var GM="";"undefined"!=typeof navigator&&(GM=navigator.platform||"");var UM,XM,YM="rgba(0, 0, 0, 0.2)",qM={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:YM,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:YM,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:YM,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:YM,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:YM,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:YM,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:GM.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},jM=Y(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),ZM="original",KM="arrayRows",$M="objectRows",QM="keyedColumns",JM="typedArray",tT="unknown",eT="column",nT="row",iT={Must:1,Might:2,Not:3},rT=Pr(),oT=Y(),aT=Pr(),sT=(Pr(),function(){function t(){}return t.prototype.getColorFromPalette=function(t,e,n){var i=pr(this.get("color",!0)),r=this.get("colorLayer",!0); +return tu(this,aT,i,r,t,e,n)},t.prototype.clearColorPalette=function(){eu(this,aT)},t}()),lT="\x00_ec_inner",uT=1,hT=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new fM(i),this._locale=new fM(r),this._optionManager=o},n.prototype.setOption=function(t,e,n){var i=au(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},n.prototype.resetOption=function(t,e){return this._resetOption(t,au(e))},n.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):XM(this,r),n=!0}if(("timeline"===t||"media"===t)&&this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&y(a,function(t){n=!0,this._mergeOption(t,e)},this)}return n},n.prototype.mergeOption=function(t){this._mergeOption(t,null)},n.prototype._mergeOption=function(t,e){function n(e){var n=Ql(this,e,pr(t[e])),a=r.get(e),s=a?c&&c.get(e)?"replaceMerge":"normalMerge":"replaceAll",l=yr(a,n,s);Dr(l,e,WM),i[e]=null,r.set(e,null),o.set(e,0);var u,p=[],d=[],f=0;y(l,function(t,n){var i=t.existing,r=t.newOption;if(r){var o="series"===e,a=WM.getClass(e,t.keyInfo.subType,!o);if(!a)return;if("tooltip"===e){if(u)return;u=!0}if(i&&i.constructor===a)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var s=h({componentIndex:n},t.keyInfo);i=new a(r,this,this,s),h(i,s),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(p.push(i.option),d.push(i),f++):(p.push(void 0),d.push(void 0))},this),i[e]=p,r.set(e,d),o.set(e,f),"series"===e&&UM(this)}var i=this.option,r=this._componentsMap,o=this._componentsCount,a=[],u=Y(),c=e&&e.replaceMergeMainTypeMap;Xl(this),y(t,function(t,e){null!=t&&(WM.hasClass(e)?e&&(a.push(e),u.set(e,!0)):i[e]=null==i[e]?s(t):l(i[e],t,!0))}),c&&c.each(function(t,e){WM.hasClass(e)&&!u.get(e)&&(a.push(e),u.set(e,!0))}),WM.topologicalTravel(a,WM.getAllClassMainTypes(),n,this),this._seriesIndices||UM(this)},n.prototype.getOption=function(){var t=s(this.option);return y(t,function(e,n){if(WM.hasClass(n)){for(var i=pr(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!Ir(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}}),delete t[lT],t},n.prototype.getTheme=function(){return this._theme},n.prototype.getLocaleModel=function(){return this._locale},n.prototype.setUpdatePayload=function(t){this._payload=t},n.prototype.getUpdatePayload=function(){return this._payload},n.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;ra;a++)lu(n[a].query,t,e)&&r.push(a);return!r.length&&i&&(r=[-1]),r.length&&!hu(r,this._currentMediaIndices)&&(o=v(r,function(t){return s(-1===t?i.option:n[t].option)})),this._currentMediaIndices=r,o},t}(),ST=y,MT=k,TT=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"],CT=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],IT=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],DT=[["borderRadius","barBorderRadius"],["borderColor","barBorderColor"],["borderWidth","barBorderWidth"]],kT=function(){function t(t){this.data=t.data||(t.sourceFormat===QM?{}:[]),this.sourceFormat=t.sourceFormat||tT,this.seriesLayoutBy=t.seriesLayoutBy||eT,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var e=this.dimensionsDefine=t.dimensionsDefine;if(e)for(var n=0;no;o++)e[o]=n[r+o];return e},i=function(t,e,n,i){for(var r=this._data,o=this._dimSize,a=0;o>a;a++){for(var s=i[a],l=null==s[0]?1/0:s[0],u=null==s[1]?-1/0:s[1],h=e-t,c=n[a],p=0;h>p;p++){var d=r[p*o+a];c[t+p]=d,l>d&&(l=d),d>u&&(u=d)}s[0]=l,s[1]=u}},r=function(){return this._data?this._data.length/this._dimSize:0};e={},e[KM+"_"+eT]={pure:!0,appendData:t},e[KM+"_"+nT]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},e[$M]={pure:!0,appendData:t},e[QM]={pure:!0,appendData:function(t){var e=this._data;y(t,function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])})}},e[ZM]={appendData:t},e[JM]={persistent:!1,pure:!0,appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}},fT=e}(),t}(),PT=function(t,e,n,i){return t[i]},LT=(cT={},cT[KM+"_"+eT]=function(t,e,n,i){return t[i+e]},cT[KM+"_"+nT]=function(t,e,n,i,r){i+=e;for(var o=r||[],a=t,s=0;s=0&&(s=o.interpolatedValue[l])}return null!=s?s+"":""})}},t.prototype.getRawValue=function(t,e){return Xu(this.getData(e),t)},t.prototype.formatTooltip=function(){},t}(),FT=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){function e(t){return!(t>=1)&&(t=1),t}var n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var o;this._plan&&!i&&(o=this._plan(this.context));var a=e(this._modBy),s=this._modDataCount||0,l=e(t&&t.modBy),u=t&&t.modDataCount||0;(a!==l||s!==u)&&(o="reset");var h;(this._dirty||"reset"===o)&&(this._dirty=!1,h=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(h||d>p)){var f=this._progress;if(M(f))for(var g=0;gi?i++:null}function e(){var t=i%a*r+Math.ceil(i/a),e=i>=n?null:o>t?t:i;return i++,e}var n,i,r,o,a,s={reset:function(l,u,h,c){i=l,n=u,r=h,o=c,a=Math.ceil(o/r),s.next=r>1&&o>0?e:t}};return s}(),HT=(Y({number:function(t){return parseFloat(t)},time:function(t){return+Ji(t)},trim:function(t){return C(t)?G(t):t}}),{lt:function(t,e){return e>t},lte:function(t,e){return e>=t},gt:function(t,e){return t>e},gte:function(t,e){return t>=e}}),WT=(function(){function t(t,e){if(!D(e)){var n="";hr(n)}this._opFn=HT[t],this._rvalFloat=or(e)}return t.prototype.evaluate=function(t){return D(t)?this._opFn(t,this._rvalFloat):this._opFn(or(t),this._rvalFloat)},t}(),function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=D(t)?t:or(t),i=D(e)?e:or(e),r=isNaN(n),o=isNaN(i);if(r&&(n=this._incomparable),o&&(i=this._incomparable),r&&o){var a=C(t),s=C(e);a&&(n=s?t:0),s&&(i=a?e:0)}return i>n?this._resultLT:n>i?-this._resultLT:0},t}()),GT=(function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=or(e)}return t.prototype.evaluate=function(t){var e=t===this._rval;if(!e){var n=typeof t;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(e=or(t)===this._rvalFloat)}return this._isEQ?e:!e},t}(),function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(){},t.prototype.retrieveValueFromItem=function(){},t.prototype.convertValue=function(t,e){return ju(t,e)},t}()),UT=Y(),XT="undefined",YT=typeof Uint32Array===XT?Array:Uint32Array,qT=typeof Uint16Array===XT?Array:Uint16Array,jT=typeof Int32Array===XT?Array:Int32Array,ZT=typeof Float64Array===XT?Array:Float64Array,KT={"float":ZT,"int":jT,ordinal:Array,number:Array,time:ZT},$T=function(){function t(){this._chunks=[],this._rawExtent=[],this._extent=[],this._count=0,this._rawCount=0,this._calcDimNameToIdx=Y()}return t.prototype.initData=function(t,e,n){this._provider=t,this._chunks=[],this._indices=null,this.getRawIndex=this._getRawIdxIdentity;var i=t.getSource(),r=this.defaultDimValueGetter=yT[i.sourceFormat];this._dimValueGetter=n||r,this._rawExtent=[];Vu(i);this._dimensions=v(e,function(t){return{type:t.type,property:t.property}}),this._initDataFromProvider(0,t.count())},t.prototype.getProvider=function(){return this._provider},t.prototype.getSource=function(){return this._provider.getSource()},t.prototype.ensureCalculationDimension=function(t,e){var n=this._calcDimNameToIdx,i=this._dimensions,r=n.get(t);if(null!=r){if(i[r].type===e)return r}else r=i.length;return i[r]={type:e},n.set(t,r),this._chunks[r]=new KT[e||"float"](this._rawCount),this._rawExtent[r]=oh(),r},t.prototype.collectOrdinalMeta=function(t,e){var n=this._chunks[t],i=this._dimensions[t],r=this._rawExtent,o=i.ordinalOffset||0,a=n.length;0===o&&(r[t]=oh());for(var s=r[t],l=o;a>l;l++){var u=n[l]=e.parseAndCollect(n[l]);isNaN(u)||(s[0]=Math.min(u,s[0]),s[1]=Math.max(u,s[1]))}i.ordinalMeta=e,i.ordinalOffset=a,i.type="ordinal"},t.prototype.getOrdinalMeta=function(t){var e=this._dimensions[t],n=e.ordinalMeta;return n},t.prototype.getDimensionProperty=function(t){var e=this._dimensions[t];return e&&e.property},t.prototype.appendData=function(t){var e=this._provider,n=this.count();e.appendData(t);var i=e.count();return e.persistent||(i+=n),i>n&&this._initDataFromProvider(n,i,!0),[n,i]},t.prototype.appendValues=function(t,e){for(var n=this._chunks,i=this._dimensions,r=i.length,o=this._rawExtent,a=this.count(),s=a+Math.max(t.length,e||0),l=0;r>l;l++){var u=i[l];sh(n,l,u.type,s,!0)}for(var h=[],c=a;s>c;c++)for(var p=c-a,d=0;r>d;d++){var u=i[d],f=yT.arrayRows.call(this,t[p]||h,u.property,p,d);n[d][c]=f;var g=o[d];fg[1]&&(g[1]=f)}return this._rawCount=this._count=s,{start:a,end:s}},t.prototype._initDataFromProvider=function(t,e,n){for(var i=this._provider,r=this._chunks,o=this._dimensions,a=o.length,s=this._rawExtent,l=v(o,function(t){return t.property}),u=0;a>u;u++){var h=o[u];s[u]||(s[u]=oh()),sh(r,u,h.type,e,n)}if(i.fillStorage)i.fillStorage(t,e,r,s);else for(var c=[],p=t;e>p;p++){c=i.getItem(p,c);for(var d=0;a>d;d++){var f=r[d],g=this._dimValueGetter(c,l[d],p,d);f[p]=g;var y=s[d];gy[1]&&(y[1]=g)}}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent=[]},t.prototype.count=function(){return this._count},t.prototype.get=function(t,e){if(!(e>=0&&er;r++)n.push(this.get(i[r],e));return n},t.prototype.getByRawIndex=function(t,e){if(!(e>=0&&ei;i++){var o=this.get(t,i);isNaN(o)||(n+=o)}return n},t.prototype.getMedian=function(t){var e=[];this.each([t],function(t){isNaN(t)||e.push(t)});var n=e.sort(function(t,e){return t-e}),i=this.count();return 0===i?0:i%2===1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},t.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||0>t)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n=i;){var o=(i+r)/2|0;if(e[o]t))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._chunks,r=i[t],o=[];if(!r)return o;null==n&&(n=1/0);for(var a=1/0,s=-1,l=0,u=0,h=this.count();h>u;u++){var c=this.getRawIndex(u),p=e-r[c],d=Math.abs(p);n>=d&&((a>d||d===a&&p>=0&&0>s)&&(a=d,s=p,l=0),p===s&&(o[l++]=u))}return o.length=l,o},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;i>r;r++)t[r]=e[r]}else t=new n(e.buffer,0,i)}else{var n=rh(this._rawCount);t=new n(this.count());for(var r=0;rc;c++){var p=void 0,d=n.getRawIndex(c);if(0===s)p=e(c);else if(1===s){var f=h[u][d];p=e(f,c)}else{for(var g=0;s>g;g++)a[g]=h[t[g]][d];a[g]=c,p=e.apply(null,a)}p&&(o[l++]=d)}return i>l&&(n._indices=o),n._count=l,n._extent=[],n._updateGetRawIdx(),n},t.prototype.selectRange=function(t){var e=this.clone(),n=e._count;if(!n)return this;var i=w(t),r=i.length;if(!r)return this;var o=e.count(),a=rh(e._rawCount),s=new a(o),l=0,u=i[0],h=t[u][0],c=t[u][1],p=e._chunks,d=!1;if(!e._indices){var f=0;if(1===r){for(var g=p[i[0]],y=0;n>y;y++){var v=g[y];(v>=h&&c>=v||isNaN(v))&&(s[l++]=f),f++}d=!0}else if(2===r){for(var g=p[i[0]],m=p[i[1]],_=t[i[1]][0],x=t[i[1]][1],y=0;n>y;y++){var v=g[y],b=m[y];(v>=h&&c>=v||isNaN(v))&&(b>=_&&x>=b||isNaN(b))&&(s[l++]=f),f++}d=!0}}if(!d)if(1===r)for(var y=0;o>y;y++){var S=e.getRawIndex(y),v=p[i[0]][S];(v>=h&&c>=v||isNaN(v))&&(s[l++]=S)}else for(var y=0;o>y;y++){for(var M=!0,S=e.getRawIndex(y),T=0;r>T;T++){var C=i[T],v=p[C][S];(vt[C][1])&&(M=!1)}M&&(s[l++]=e.getRawIndex(y))}return o>l&&(e._indices=s),e._count=l,e._extent=[],e._updateGetRawIdx(),e},t.prototype.map=function(t,e){var n=this.clone(t);return this._updateDims(n,t,e),n},t.prototype.modify=function(t,e){this._updateDims(this,t,e)},t.prototype._updateDims=function(t,e,n){for(var i=t._chunks,r=[],o=e.length,a=t.count(),s=[],l=t._rawExtent,u=0;uh;h++){for(var c=t.getRawIndex(h),p=0;o>p;p++)s[p]=i[e[p]][c];s[o]=h;var d=n&&n.apply(null,s);if(null!=d){"object"!=typeof d&&(r[0]=d,d=r);for(var u=0;uy[1]&&(y[1]=g)}}}},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=this.clone([t],!0),a=o._chunks,s=a[t],l=this.count(),u=0,h=Math.floor(1/e),c=this.getRawIndex(0),p=new(rh(this._rawCount))(Math.min(2*(Math.ceil(l/h)+2),l));p[u++]=c;for(var d=1;l-1>d;d+=h){for(var f=Math.min(d+h,l-1),g=Math.min(d+2*h,l),y=(g+f)/2,v=0,m=f;g>m;m++){var _=this.getRawIndex(m),x=s[_];isNaN(x)||(v+=x)}v/=g-f;var w=d,b=Math.min(d+h,l),S=d-1,M=s[c];n=-1,r=w;for(var T=-1,C=0,m=w;b>m;m++){var _=this.getRawIndex(m),x=s[_];isNaN(x)?(C++,0>T&&(T=_)):(i=Math.abs((S-y)*(x-M)-(S-m)*(v-M)),i>n&&(n=i,r=_))}C>0&&b-w>C&&(p[u++]=Math.min(T,r),r=Math.max(T,r)),p[u++]=r,c=r}return p[u++]=this.getRawIndex(l-1),o._count=u,o._indices=p,o.getRawIndex=this._getRawIdx,o},t.prototype.downSample=function(t,e,n,i){for(var r=this.clone([t],!0),o=r._chunks,a=[],s=Math.floor(1/e),l=o[t],u=this.count(),h=r._rawExtent[t]=oh(),c=new(rh(this._rawCount))(Math.ceil(u/s)),p=0,d=0;u>d;d+=s){s>u-d&&(s=u-d,a.length=s);for(var f=0;s>f;f++){var g=this.getRawIndex(d+f);a[f]=l[g]}var y=n(a),v=this.getRawIndex(Math.min(d+i(a,y)||0,u-1));l[v]=y,yh[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r._updateGetRawIdx(),r},t.prototype.each=function(t,e){if(this._count)for(var n=t.length,i=this._chunks,r=0,o=this.count();o>r;r++){var a=this.getRawIndex(r);switch(n){case 0:e(r);break;case 1:e(i[t[0]][a],r);break;case 2:e(i[t[0]][a],i[t[1]][a],r);break;default:for(var s=0,l=[];n>s;s++)l[s]=i[t[s]][a];l[s]=r,e.apply(null,l)}}},t.prototype.getDataExtent=function(t){var e=this._chunks[t],n=oh();if(!e)return n;var i,r=this.count(),o=!this._indices;if(o)return this._rawExtent[t].slice();if(i=this._extent[t])return i.slice();i=n;for(var a=i[0],s=i[1],l=0;r>l;l++){var u=this.getRawIndex(l),h=e[u];a>h&&(a=h),h>s&&(s=h)}return i=[a,s],this._extent[t]=i,i},t.prototype.getRawDataItem=function(t){var e=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(e);for(var n=[],i=this._chunks,r=0;ri;i++)e[i]=this._indices[i]}else e=new t(this._indices);return e}return null},t.prototype._getRawIdxIdentity=function(t){return t},t.prototype._getRawIdx=function(t){return t=0?this._indices[t]:-1},t.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},t.internalField=function(){function t(t,e,n,i){return ju(t[i],this._dimensions[i])}yT={arrayRows:t,objectRows:function(t,e,n,i){return ju(t[e],this._dimensions[i])},keyedColumns:t,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return ju(r instanceof Array?r[i]:r,this._dimensions[i])},typedArray:function(t,e,n,i){return t[i]}}}(),t}(),QT=function(){function t(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(uh(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),l=u.getSource(),a=l.data,s=l.sourceFormat,e=[u._getVersionSign()]}else a=o.get("data",!0),s=P(a)?JM:ZM,e=[];var h=this._getSourceMetaRawOption()||{},c=l&&l.metaRawOption||{},p=B(h.seriesLayoutBy,c.seriesLayoutBy)||null,d=B(h.sourceHeader,c.sourceHeader),f=B(h.dimensions,c.dimensions),g=p!==c.seriesLayoutBy||!!d!=!!c.sourceHeader||f;t=g?[Lu(a,{seriesLayoutBy:p,sourceHeader:d,dimensions:f},s)]:[]}else{var y=n;if(r){var v=this._applyTransform(i);t=v.sourceList,e=v.upstreamSignList}else{var m=y.get("source",!0);t=[Lu(m,this._getSourceMetaRawOption(),null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e=this._sourceHost,n=e.get("transform",!0),i=e.get("fromTransformResult",!0);if(null!=i){var r="";1!==t.length&&hh(r)}var o,a=[],s=[];return y(t,function(t){t.prepareSource();var e=t.getSource(i||0),n="";null==i||e||hh(n),a.push(e),s.push(t._getVersionSign())}),n?o=eh(n,a,{datasetIndex:e.componentIndex}):null!=i&&(o=[Ru(a[0])]),{sourceList:o,upstreamSignList:s}},t.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;ethis.getShallow("animationThreshold")&&(e=!1),!!e},n.prototype.restoreData=function(){this.dataTask.dirty()},n.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=sT.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},n.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},n.prototype.getProgressive=function(){return this.get("progressive")},n.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},n.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},n.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n){var i=this.option.selectedMode,r=this.getData(e);if("series"===i||"all"===n)return this.option.selectedMap={},void(this._selectedDataIndicesMap={});for(var o=0;o=0&&n.push(r)}return n},n.prototype.isSelected=function(t,e){var n=this.option.selectedMap;if(!n)return!1;var i=this.getData(e);return("all"===n||n[kh(i,t)])&&!i.getItemModel(t).get(["select","disabled"])},n.prototype.isUniversalTransitionEnabled=function(){if(this[rC])return!0;var t=this.option.universalTransition;return t?t===!0?!0:t&&t.enabled:!1},n.prototype._innerSelect=function(t,e){var n,i,r=this.option,o=r.selectedMode,a=e.length;if(o&&a)if("series"===o)r.selectedMap="all";else if("multiple"===o){k(r.selectedMap)||(r.selectedMap={});for(var s=r.selectedMap,l=0;a>l;l++){var u=e[l],h=kh(t,u);s[h]=!0,this._selectedDataIndicesMap[h]=t.getRawIndex(u)}}else if("single"===o||o===!0){var c=e[a-1],h=kh(t,c);r.selectedMap=(n={},n[h]=!0,n),this._selectedDataIndicesMap=(i={},i[h]=t.getRawIndex(c),i)}},n.prototype._initSelectedMapFromData=function(t){if(!this.option.selectedMap){var e=[];t.hasItemOption&&t.each(function(n){var i=t.getRawDataItem(n);i&&i.selected&&e.push(n)}),e.length>0&&this._innerSelect(t,e)}},n.registerClass=function(t){return WM.registerClass(t)},n.protoInitialize=function(){var t=n.prototype;t.type="series.__base__",t.seriesIndex=0,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),n}(WM);f(oC,BT),f(oC,sT),Ur(oC,WM);var aC=function(){function t(){this.group=new Gx,this.uid=Qs("viewComponent")}return t.prototype.init=function(){},t.prototype.render=function(){},t.prototype.dispose=function(){},t.prototype.updateView=function(){},t.prototype.updateLayout=function(){},t.prototype.updateVisual=function(){},t.prototype.toggleBlurSeries=function(){},t.prototype.eachRendered=function(t){var e=this.group;e&&e.traverse(t)},t}();Wr(aC),jr(aC);var sC=Pr(),lC=Bh(),uC=function(){function t(){this.group=new Gx,this.uid=Qs("viewChart"),this.renderTask=qu({plan:Hh,reset:Wh}),this.renderTask.context={view:this}}return t.prototype.init=function(){},t.prototype.render=function(){},t.prototype.highlight=function(t,e,n,i){var r=t.getData(i&&i.dataType);r&&Vh(r,i,"emphasis")},t.prototype.downplay=function(t,e,n,i){var r=t.getData(i&&i.dataType);r&&Vh(r,i,"normal")},t.prototype.remove=function(){this.group.removeAll()},t.prototype.dispose=function(){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.eachRendered=function(t){Fs(this.group,t)},t.markUpdateMethod=function(t,e){sC(t).updateMethod=e},t.protoInitialize=function(){var e=t.prototype;e.type="chart"}(),t}();Wr(uC,["dispose"]),jr(uC);var hC,cC={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)}}},pC="\x00__throttleOriginMethod",dC="\x00__throttleRate",fC="\x00__throttleType",gC=Pr(),yC={itemStyle:Zr(cM,!0),lineStyle:Zr(lM,!0)},vC={lineStyle:"stroke",itemStyle:"fill"},mC={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=Yh(t,i),a=o(r),s=r.getShallow("decal");s&&(n.setVisual("decal",s),s.dirty=!0);var l=qh(t,i),u=a[l],c=T(u)?u:null,p="auto"===a.fill||"auto"===a.stroke;if(!a[l]||c||p){var d=t.getColorFromPalette(t.name,null,e.getSeriesCount());a[l]||(a[l]=d,n.setVisual("colorFromPalette",!0)),a.fill="auto"===a.fill||T(a.fill)?d:a.fill,a.stroke="auto"===a.stroke||T(a.stroke)?d:a.stroke}return n.setVisual("style",a),n.setVisual("drawType",l),!e.isSeriesFiltered(t)&&c?(n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=h({},a);r[l]=c(i),e.setItemVisual(n,"style",r)}}):void 0}},_C=new fM,xC={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=Yh(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){_C.option=n[i];var a=r(_C),s=t.ensureUniqueItemVisual(e,"style");h(s,a),_C.option.decal&&(t.setItemVisual(e,"decal",_C.option.decal),_C.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},wC={performRawSeries:!0,overallReset:function(t){var e=Y();t.eachSeries(function(t){var n=t.getColorBy();if(!t.isColorBySeries()){var i=t.type+"-"+n,r=e.get(i);r||(r={},e.set(i,r)),gC(t).scope=r}}),t.eachSeries(function(e){if(!e.isColorBySeries()&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=gC(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=qh(e,a);r.each(function(t){var e=r.getRawIndex(t);i[e]=t}),n.each(function(t){var a=i[t],l=r.getItemVisual(a,"colorFromPalette");if(l){var u=r.ensureUniqueItemVisual(a,"style"),h=n.getName(t)||t+"",c=n.count();u[s]=e.getColorFromPalette(h,o,c)}})}})}},bC=Math.PI,SC=function(){function t(t,e,n,i){this._stageTaskMap=Y(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each(function(t){var e=t.overallTask;e&&e.dirty()})},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=r?n.step:null,a=i&&i.modDataCount,s=null!=a?Math.ceil(a/o):null;return{step:o,modBy:s,modDataCount:a}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData(),r=i.count(),o=n.progressiveEnabled&&e.incrementalPrepareRender&&r>=n.threshold,a=t.get("large")&&r>=t.get("largeThreshold"),s="mod"===t.get("progressiveChunkMode")?r:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:s,large:a}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=Y();t.eachSeries(function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)})},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;y(this._allHandlers,function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";W(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)},this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){function r(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}i=i||{};var o=!1,a=this;y(t,function(t){if(!i.visualType||i.visualType===t.visualType){var s=a._stageTaskMap.get(t.uid),l=s.seriesTaskMap,u=s.overallTask;if(u){var h,c=u.agentStubMap;c.each(function(t){r(i,t)&&(t.dirty(),h=!0)}),h&&u.dirty(),a.updatePayload(u,n);var p=a.getPerformArgs(u,i.block);c.each(function(t){t.perform(p)}),u.perform(p)&&(o=!0)}else l&&l.each(function(s){r(i,s)&&s.dirty();var l=a.getPerformArgs(s,i.block);l.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),a.updatePayload(s,n),s.perform(l)&&(o=!0)})}}),this.unfinished=o||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e=t.dataTask.perform()||e}),this.unfinished=e||this.unfinished},t.prototype.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)})},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){function r(e){var r=e.uid,l=s.set(r,a&&a.get(r)||qu({plan:Jh,reset:tc,count:nc}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:o},o._pipe(e,l)}var o=this,a=e.seriesTaskMap,s=e.seriesTaskMap=Y(),l=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(r):l?n.eachRawSeriesByType(l,r):u&&u(n,i).each(r)},t.prototype._createOverallStageTask=function(t,e,n,i){function r(t){var e=t.uid,n=l.set(e,s&&s.get(e)||(p=!0,qu({reset:Kh,onDirty:Qh})));n.context={model:t,overallProgress:c},n.agent=a,n.__block=c,o._pipe(t,n)}var o=this,a=e.overallTask=e.overallTask||qu({reset:Zh});a.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:o};var s=a.agentStubMap,l=a.agentStubMap=Y(),u=t.seriesType,h=t.getTargetSeries,c=!0,p=!1,d="";W(!t.createOnAllSeries,d),u?n.eachRawSeriesByType(u,r):h?h(n,i).each(r):(c=!1,y(n.getSeries(),r)),p&&a.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return T(t)&&(t={overallReset:t,seriesType:ic(t)}),t.uid=Qs("stageHandler"),e&&(t.visualType=e),t},t}(),MC=ec(0),TC={},CC={};rc(TC,hT),rc(CC,mT),TC.eachSeriesByType=TC.eachRawSeriesByType=function(t){hC=t},TC.eachComponent=function(t){"series"===t.mainType&&t.subType&&(hC=t.subType)};var IC=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],DC={color:IC,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],IC]},kC="#B9B8CE",AC="#100C2A",PC=function(){return{axisLine:{lineStyle:{color:kC}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}}},LC=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],OC={darkMode:!0,color:LC,backgroundColor:AC,axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:kC}},textStyle:{color:kC},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:kC}},dataZoom:{borderColor:"#71708A",textStyle:{color:kC},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:kC}},timeline:{lineStyle:{color:kC},label:{color:kC},controlStyle:{color:kC,borderColor:kC}},calendar:{itemStyle:{color:AC},dayLabel:{color:kC},monthLabel:{color:kC},yearLabel:{color:kC}},timeAxis:PC(),logAxis:PC(),valueAxis:PC(),categoryAxis:PC(),line:{symbol:"circle"},graph:{color:LC},gauge:{title:{color:kC},axisLine:{lineStyle:{color:[[1,"rgba(207,212,219,0.2)"]]}},axisLabel:{color:kC},detail:{color:"#EEF1FA"}},candlestick:{itemStyle:{color:"#f64e56",color0:"#54ea92",borderColor:"#f64e56",borderColor0:"#54ea92"}}};OC.categoryAxis.splitLine.show=!1;var RC=function(){function t(){}return t.prototype.normalizeQuery=function(t){var e={},n={},i={};if(C(t)){var r=Fr(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var o=["Index","Name","Id"],a={name:1,dataIndex:1,dataType:1};y(t,function(t,r){for(var s=!1,l=0;l0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)})}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){function n(t,e,n,i){return null==t[n]||e[i||n]===t[n]}var i=this.eventInfo;if(!i)return!0;var r=i.targetEl,o=i.packedEvent,a=i.model,s=i.view;if(!a||!s)return!0;var l=e.cptQuery,u=e.dataQuery;return n(l,a,"mainType")&&n(l,a,"subType")&&n(l,a,"index","componentIndex")&&n(l,a,"name")&&n(l,a,"id")&&n(u,o,"name")&&n(u,o,"dataIndex")&&n(u,o,"dataType")&&(!s.filterForExposedEvent||s.filterForExposedEvent(t,e.otherQuery,r,o))},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),EC=["symbol","symbolSize","symbolRotate","symbolOffset"],zC=EC.concat(["symbolKeepAspect"]),NC={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){function n(e,n){for(var i=t.getRawValue(n),r=t.getDataParams(n),a=0;a0&&t.unfinished);t.unfinished||this._zr.flush()}}},n.prototype.getDom=function(){return this._dom},n.prototype.getId=function(){return this.id},n.prototype.getZr=function(){return this._zr},n.prototype.isSSR=function(){return this._ssr},n.prototype.setOption=function(t,e,n){if(!this[DI]&&!this._disposed){var i,r,o;if(k(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this[DI]=!0,!this._model||e){var a=new bT(this._api),s=this._theme,l=this._model=new hT;l.scheduler=this._scheduler,l.ssr=this._ssr,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},lD);var u={seriesTransition:o,optionChanged:!0};if(n)this[kI]={silent:i,updateParams:u},this[DI]=!1,this.getZr().wakeUp();else{try{BI(this),HI.update.call(this,null,u)}catch(h){throw this[kI]=null,this[DI]=!1,h}this._ssr||this._zr.flush(),this[kI]=null,this[DI]=!1,XI.call(this,i),YI.call(this,i)}}},n.prototype.setTheme=function(){},n.prototype.getModel=function(){return this._model},n.prototype.getOption=function(){return this._model&&this._model.getOption()},n.prototype.getWidth=function(){return this._zr.getWidth()},n.prototype.getHeight=function(){return this._zr.getHeight()},n.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||lI&&window.devicePixelRatio||1},n.prototype.getRenderedCanvas=function(t){return this.renderToCanvas(t)},n.prototype.renderToCanvas=function(t){t=t||{};var e=this._zr.painter;return e.getRenderedCanvas({backgroundColor:t.backgroundColor||this._model.get("backgroundColor"),pixelRatio:t.pixelRatio||this.getDevicePixelRatio()})},n.prototype.renderToSVGString=function(t){t=t||{};var e=this._zr.painter;return e.renderToString({useViewBox:t.useViewBox})},n.prototype.getSvgDataURL=function(){if(fm.svgSupported){var t=this._zr,e=t.storage.getDisplayList();return y(e,function(t){t.stopAnimation(null,!0)}),t.painter.toDataURL()}},n.prototype.getDataURL=function(t){if(!this._disposed){t=t||{};var e=t.excludeComponents,n=this._model,i=[],r=this;y(e,function(t){n.eachComponent({mainType:t},function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)})});var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.renderToCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return y(i,function(t){t.group.ignore=!1}),o}},n.prototype.getConnectedDataURL=function(t){if(!this._disposed){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,o=1/0;if(dD[n]){var a=o,l=o,u=-o,h=-o,c=[],p=t&&t.pixelRatio||this.getDevicePixelRatio();y(pD,function(o){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.renderToCanvas(s(t)),d=o.getDom().getBoundingClientRect();a=i(d.left,a),l=i(d.top,l),u=r(d.right,u),h=r(d.bottom,h),c.push({dom:p,left:d.left,top:d.top})}}),a*=p,l*=p,u*=p,h*=p;var d=u-a,f=h-l,g=bm.createCanvas(),v=Ei(g,{renderer:e?"svg":"canvas"});if(v.resize({width:d,height:f}),e){var m="";return y(c,function(t){var e=t.left-a,n=t.top-l;m+=''+t.dom+""}),v.painter.getSvgRoot().innerHTML=m,t.connectedBackgroundColor&&v.painter.setBackgroundColor(t.connectedBackgroundColor),v.refreshImmediately(),v.painter.toDataURL()}return t.connectedBackgroundColor&&v.add(new vb({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),y(c,function(t){var e=new db({style:{x:t.left*p-a,y:t.top*p-l,image:t.dom}});v.add(e)}),v.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},n.prototype.convertToPixel=function(t,e){return WI(this,"convertToPixel",t,e)},n.prototype.convertFromPixel=function(t,e){return WI(this,"convertFromPixel",t,e)},n.prototype.containPixel=function(t,e){if(!this._disposed){var n,i=this._model,r=Lr(i,t);return y(r,function(t,i){i.indexOf("Models")>=0&&y(t,function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}},this)},this),!!n}},n.prototype.getVisual=function(t,e){var n=this._model,i=Lr(n,t,{defaultMainType:"series"}),r=i.seriesModel,o=r.getData(),a=i.hasOwnProperty("dataIndexInside")?i.dataIndexInside:i.hasOwnProperty("dataIndex")?o.indexOfRawIndex(i.dataIndex):null;return null!=a?oc(o,a,e):ac(o,e)},n.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},n.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},n.prototype._initEvents=function(){var t=this;y(rD,function(e){var n=function(n){var i,r=t.getModel(),o=n.target,a="globalout"===e;if(a?i={}:o&&hc(o,function(t){var e=Tb(t);if(e&&null!=e.dataIndex){var n=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return i=n&&n.getDataParams(e.dataIndex,e.dataType)||{},!0}return e.eventData?(i=h({},e.eventData),!0):void 0},!0),i){var s=i.componentType,l=i.componentIndex;("markLine"===s||"markPoint"===s||"markArea"===s)&&(s="series",l=i.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),c=u&&t["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];i.event=n,i.type=e,t._$eventProcessor.eventInfo={targetEl:o,packedEvent:i,model:u,view:c},t.trigger(e,i)}};n.zrEventfulCallAtLast=!0,t._zr.on(e,n,t)}),y(aD,function(e,n){t._messageCenter.on(n,function(t){this.trigger(n,t)},t)}),y(["selectchanged"],function(e){t._messageCenter.on(e,function(t){this.trigger(e,t)},t)}),uc(this._messageCenter,this,this._api)},n.prototype.isDisposed=function(){return this._disposed},n.prototype.clear=function(){this._disposed||this.setOption({series:[]},!0)},n.prototype.dispose=function(){if(!this._disposed){this._disposed=!0;var t=this.getDom();t&&Er(this.getDom(),yD,"");var e=this,n=e._api,i=e._model;y(e._componentsViews,function(t){t.dispose(i,n)}),y(e._chartsViews,function(t){t.dispose(i,n)}),e._zr.dispose(),e._dom=e._model=e._chartsMap=e._componentsMap=e._chartsViews=e._componentsViews=e._scheduler=e._api=e._zr=e._throttledZrFlush=e._theme=e._coordSysMgr=e._messageCenter=null,delete pD[e.id]}},n.prototype.resize=function(t){if(!this[DI]&&!this._disposed){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this[kI]&&(null==i&&(i=this[kI].silent),n=!0,this[kI]=null),this[DI]=!0;try{n&&BI(this),HI.update.call(this,{type:"resize",animation:h({duration:0},t&&t.animation)})}catch(r){throw this[DI]=!1,r}this[DI]=!1,XI.call(this,i),YI.call(this,i)}}},n.prototype.showLoading=function(t,e){if(!this._disposed&&(k(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),cD[t])){var n=cD[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},n.prototype.hideLoading=function(){this._disposed||(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},n.prototype.makeActionFromEvent=function(t){var e=h({},t);return e.type=aD[t.type],e},n.prototype.dispatchAction=function(t,e){if(!this._disposed&&(k(e)||(e={silent:!!e}),oD[t.type]&&this._model)){if(this[DI])return void this._pendingActions.push(t);var n=e.silent;UI.call(this,t,n);var i=e.flush;i?this._zr.flush():i!==!1&&fm.browser.weChat&&this._throttledZrFlush(),XI.call(this,n),YI.call(this,n)}},n.prototype.updateLabelLayout=function(){aI.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},n.prototype.appendData=function(t){if(!this._disposed){var e=t.seriesIndex,n=this.getModel(),i=n.getSeriesByIndex(e);i.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},n.internalField=function(){function t(t){t.clearColorPalette(),t.eachSeries(function(t){t.clearColorPalette()})}function n(t){var e=[],n=[],i=!1;if(t.eachComponent(function(t,r){var o=r.get("zlevel")||0,a=r.get("z")||0,s=r.getZLevelKey();i=i||!!s,("series"===t?n:e).push({zlevel:o,z:a,idx:r.componentIndex,type:t,key:s})}),i){var r,o,a=e.concat(n);rn(a,function(t,e){return t.zlevel===e.zlevel?t.z-e.z:t.zlevel-e.zlevel}),y(a,function(e){var n=t.getComponent(e.type,e.idx),i=e.zlevel,a=e.key;null!=r&&(i=Math.max(r,i)),a?(i===r&&a!==o&&i++,o=a):o&&(i===r&&i++,o=""),r=i,n.setZLevel(i)})}}function i(t){for(var e=[],n=t.currentStates,i=0;ie.get("hoverLayerThreshold")&&!fm.node&&!fm.worker&&e.eachSeries(function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.eachRendered(function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)})}})}function o(t,e){var n=t.get("blendMode")||null;e.eachRendered(function(t){t.isGroup||(t.style.blend=n)})}function a(t,e){if(!t.preventAutoZ){var n=t.get("z")||0,i=t.get("zlevel")||0;e.eachRendered(function(t){return s(t,n,i,-1/0),!0})}}function s(t,e,n,i){var r=t.getTextContent(),o=t.getTextGuideLine(),a=t.isGroup;if(a)for(var l=t.childrenRef(),u=0;u0?{duration:o,delay:n.get("delay"),easing:n.get("easing")}:null;e.eachRendered(function(t){if(t.states&&t.states.emphasis){if(us(t))return;if(t instanceof lb&&Va(t),t.__dirty){var e=t.prevStates;e&&t.useStates(e)}if(r){t.stateTransition=a;var n=t.getTextContent(),o=t.getTextGuideLine();n&&(n.stateTransition=a),o&&(o.stateTransition=a)}t.__dirty&&i(t)}})}BI=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),FI(t,!0),FI(t,!1),e.plan()},FI=function(t,e){function n(t){var n=t.__requireNewView;t.__requireNewView=!1;var u="_ec_"+t.id+"_"+t.type,h=!n&&a[u];if(!h){var c=Fr(t.type),p=e?aC.getClass(c.main,c.sub):uC.getClass(c.sub);h=new p,h.init(i,l),a[u]=h,o.push(h),s.add(h.group)}t.__viewId=h.__id=u,h.__alive=!0,h.__model=t,h.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!e&&r.prepareView(h,t,i,l)}for(var i=t._model,r=t._scheduler,o=e?t._componentsViews:t._chartsViews,a=e?t._componentsMap:t._chartsMap,s=t._zr,l=t._api,u=0;u1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1&&c>1)this._updateManyToMany&&this._updateManyToMany(u,l),i[s]=null;else if(h>1)for(var p=0;h>p;p++)this._remove&&this._remove(l[p]);else this._remove&&this._remove(l)}this._performRestAdd(o,i)},t.prototype._performRestAdd=function(t,e){for(var n=0;n1)for(var a=0;o>a;a++)this._add&&this._add(r[a]);else 1===o&&this._add&&this._add(r);e[i]=null}},t.prototype._initIndexMap=function(t,e,n,i){for(var r=this._diffModeMultiple,o=0;oo;o++){var s=void 0,l=void 0,u=void 0,h=this.dimensions[a];if(h&&h.storeDimIndex===o)s=e?h.name:null,l=h.type,u=h.ordinalMeta,a++;else{var c=this.getSourceDimension(o);c&&(s=e?c.name:null,l=c.type)}r.push({property:s,type:l,ordinalMeta:u}),!e||null==s||h&&h.isCalculationCoord||(i+=n?s.replace(/\`/g,"`1").replace(/\$/g,"`2"):s),i+="$",i+=LD[l]||"f",u&&(i+=u.uid),i+="$"}var p=this.source,d=[p.seriesLayoutBy,p.startIndex,i].join("$$");return{dimensions:r,hash:d}},t.prototype.makeOutputDimensionNames=function(){for(var t=[],e=0,n=0;ea;a++){var s=a-i;this._nameList[a]=e[s],o&&CD(this,a)}},t.prototype._updateOrdinalMeta=function(){for(var t=this._store,e=this.dimensions,n=0;n=e)){var n=this._store,i=n.getProvider();this._updateOrdinalMeta();var r=this._nameList,o=this._idList,a=i.getSource().sourceFormat,s=a===ZM;if(s&&!i.pure)for(var l=[],u=t;e>u;u++){var h=i.getItem(u,l);if(!this.hasItemOption&&gr(h)&&(this.hasItemOption=!0),h){var c=h.name;null==r[u]&&null!=c&&(r[u]=Tr(c,null));var p=h.id;null==o[u]&&null!=p&&(o[u]=Tr(p,null))}}if(this._shouldMakeIdFromName())for(var u=t;e>u;u++)CD(this,u);xD(this)}},t.prototype.getApproximateExtent=function(t){return this._approximateExtent[t]||this._store.getDataExtent(this._getStoreDimIndex(t))},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){RD(t)?h(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getName=function(t){var e=this.getRawIndex(t),n=this._nameList[e];return null==n&&null!=this._nameDimIdx&&(n=bD(this,this._nameDimIdx,e)),null==n&&(n=""),n},t.prototype._getCategory=function(t,e){var n=this._store.get(t,e),i=this._store.getOrdinalMeta(t);return i?i.categories[n]:n},t.prototype.getId=function(t){return wD(this,this.getRawIndex(t))},t.prototype.count=function(){return this._store.count()},t.prototype.get=function(t,e){var n=this._store,i=this._dimInfos[t];return i?n.get(i.storeDimIndex,e):void 0},t.prototype.getByRawIndex=function(t,e){var n=this._store,i=this._dimInfos[t];return i?n.getByRawIndex(i.storeDimIndex,e):void 0},t.prototype.getIndices=function(){return this._store.getIndices()},t.prototype.getDataExtent=function(t){return this._store.getDataExtent(this._getStoreDimIndex(t))},t.prototype.getSum=function(t){return this._store.getSum(this._getStoreDimIndex(t))},t.prototype.getMedian=function(t){return this._store.getMedian(this._getStoreDimIndex(t))},t.prototype.getValues=function(t,e){var n=this,i=this._store;return M(t)?i.getValues(ED(t,function(t){return n._getStoreDimIndex(t)}),e):i.getValues(t)},t.prototype.hasValue=function(t){for(var e=this._dimSummary.dataDimIndicesOnCoord,n=0,i=e.length;i>n;n++)if(isNaN(this._store.get(e[n],t)))return!1;return!0},t.prototype.indexOfName=function(t){for(var e=0,n=this._store.count();n>e;e++)if(this.getName(e)===t)return e;return-1},t.prototype.getRawIndex=function(t){return this._store.getRawIndex(t)},t.prototype.indexOfRawIndex=function(t){return this._store.indexOfRawIndex(t)},t.prototype.rawIndexOf=function(t,e){var n=t&&this._invertedIndicesMap[t],i=n[e];return null==i||isNaN(i)?BD:i},t.prototype.indicesOfNearest=function(t,e,n){return this._store.indicesOfNearest(this._getStoreDimIndex(t),e,n)},t.prototype.each=function(t,e,n){T(t)&&(n=e,e=t,t=[]);var i=n||this,r=ED(SD(t),this._getStoreDimIndex,this);this._store.each(r,i?zm(e,i):e)},t.prototype.filterSelf=function(t,e,n){T(t)&&(n=e,e=t,t=[]);var i=n||this,r=ED(SD(t),this._getStoreDimIndex,this);return this._store=this._store.filter(r,i?zm(e,i):e),this},t.prototype.selectRange=function(t){var e=this,n={},i=w(t),r=[];return y(i,function(i){var o=e._getStoreDimIndex(i);n[o]=t[i],r.push(o)}),this._store=this._store.selectRange(n),this},t.prototype.mapArray=function(t,e,n){T(t)&&(n=e,e=t,t=[]),n=n||this;var i=[];return this.each(t,function(){i.push(e&&e.apply(this,arguments))},n),i},t.prototype.map=function(t,e,n,i){var r=n||i||this,o=ED(SD(t),this._getStoreDimIndex,this),a=TD(this);return a._store=this._store.map(o,r?zm(e,r):e),a},t.prototype.modify=function(t,e,n,i){var r=n||i||this,o=ED(SD(t),this._getStoreDimIndex,this);this._store.modify(o,r?zm(e,r):e)},t.prototype.downSample=function(t,e,n,i){var r=TD(this);return r._store=this._store.downSample(this._getStoreDimIndex(t),e,n,i),r},t.prototype.lttbDownSample=function(t,e){var n=TD(this);return n._store=this._store.lttbDownSample(this._getStoreDimIndex(t),e),n},t.prototype.getRawDataItem=function(t){return this._store.getRawDataItem(t)},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new fM(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new DD(t?t.getStore().getIndices():[],this.getStore().getIndices(),function(e){return wD(t,e)},function(t){return wD(e,t)})},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},RD(t)?h(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(r=this.getVisual(e),M(r)?r=r.slice():RD(r)&&(r=h({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,RD(e)?h(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){RD(t)?h(this._layout,t):this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?h(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel&&this.hostModel.seriesIndex;Cb(n,this.dataType,t,e),this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){y(this._graphicEls,function(n,i){n&&t&&t.call(e,n,i)})},t.prototype.cloneShallow=function(e){return e||(e=new t(this._schema?this._schema:ED(this.dimensions,this._getDimInfo,this),this.hostModel)),MD(e,this),e._store=this._store,e},t.prototype.wrapMethod=function(t,e){var n=this[t];T(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(V(arguments)))})},t.internalField=function(){xD=function(t){var e=t._invertedIndicesMap;y(e,function(n,i){var r=t._dimInfos[i],o=r.ordinalMeta,a=t._store;if(o){n=e[i]=new zD(o.categories.length);for(var s=0;s1&&(s+="__ec__"+u),i[e]=s}}}(),t}(),WD=function(){function t(t){this.coordSysDims=[],this.axisMap=Y(),this.categoryAxisMap=Y(),this.coordSysName=t}return t}(),GD={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",iw).models[0],o=t.getReferringComponents("yAxis",iw).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),Hp(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),Hp(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",iw).models[0];e.coordSysDims=["single"],n.set("single",r),Hp(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",iw).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),Hp(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),Hp(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();y(o.parallelAxisIndex,function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),Hp(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))})}},UD=function(){function t(t){this._setting=t||{},this._extent=[1/0,-1/0]}return t.prototype.getSetting=function(t){return this._setting[t]},t.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();jr(UD);var XD=0,YD=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++XD}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&v(i,$p);return new t({categories:r,needCollect:!r,deduplication:n.dedplication!==!1})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if(!C(t)&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return e=i.get(t),null==e&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=0/0),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=Y(this.categories))},t}(),qD=function(t){function n(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new YD({})),M(i)&&(i=new YD({categories:v(i,function(t){return k(t)?t.value:t})})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return e(n,t),n.prototype.parse=function(t){return null==t?0/0:C(t)?this._ordinalMeta.getOrdinal(t):Math.round(t)},n.prototype.contain=function(t){return t=this.parse(t),rd(t,this._extent)&&null!=this._ordinalMeta.categories[t]},n.prototype.normalize=function(t){return t=this._getTickNumber(this.parse(t)),od(t,this._extent)},n.prototype.scale=function(t){return t=Math.round(ad(t,this._extent)),this.getRawOrdinalNumber(t)},n.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},n.prototype.getMinorTicks=function(){},n.prototype.setSortInfo=function(t){if(null==t)return void(this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null);for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);a>r;++r){var s=e[r];n[r]=s,i[s]=r}for(var l=0;o>r;++r){for(;null!=i[l];)l++;n.push(l),i[l]=r}},n.prototype._getTickNumber=function(t){var e=this._ticksByOrdinalNumber;return e&&t>=0&&t=0&&t=t},n.prototype.getOrdinalMeta=function(){return this._ordinalMeta},n.prototype.calcNiceTicks=function(){},n.prototype.calcNiceExtent=function(){},n.type="ordinal",n}(UD);UD.registerClass(qD);var jD=Gi,ZD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return e(n,t),n.prototype.parse=function(t){return t},n.prototype.contain=function(t){return rd(t,this._extent)},n.prototype.normalize=function(t){return od(t,this._extent)},n.prototype.scale=function(t){return ad(t,this._extent)},n.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},n.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},n.prototype.getInterval=function(){return this._interval},n.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=ed(t)},n.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;var a=1e4;n[0]a)return[];var l=o.length?o[o.length-1].value:i[1];return n[1]>l&&o.push(t?{value:jD(l+e,r)}:{value:n[1]}),o},n.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;rs;){var c=jD(a.value+(s+1)*h);c>i[0]&&cr&&(r=-r,i.reverse());var o=Jp(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},n.prototype.calcNiceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=Math.abs(e[0]);t.fixMax?e[0]-=n/2:(e[1]+=n/2,e[0]-=n/2)}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.calcNiceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=jD(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=jD(Math.ceil(e[1]/r)*r))},n.prototype.setNiceExtent=function(t,e){this._niceExtent=[t,e]},n.type="interval",n}(UD);UD.registerClass(ZD);var KD="undefined"!=typeof Float32Array,$D=KD?Float32Array:Array,QD="__ec_stack_",JD=function(t,e,n,i){for(;i>n;){var r=n+i>>>1;t[r][1]n&&(this._approxInterval=n);var o=ek.length,a=Math.min(JD(ek,this._approxInterval,0,o),o-1);this._interval=ek[a][1],this._minLevelUnit=ek[Math.max(a-1,0)][0] +},n.prototype.parse=function(t){return D(t)?t:+Ji(t)},n.prototype.contain=function(t){return rd(this.parse(t),this._extent)},n.prototype.normalize=function(t){return od(this.parse(t),this._extent)},n.prototype.scale=function(t){return ad(t,this._extent)},n.type="time",n}(ZD),ek=[["second",MM],["minute",TM],["hour",CM],["quarter-day",6*CM],["half-day",12*CM],["day",1.2*IM],["half-week",3.5*IM],["week",7*IM],["month",31*IM],["quarter",95*IM],["half-year",DM/2],["year",DM]];UD.registerClass(tk);var nk=UD.prototype,ik=ZD.prototype,rk=Gi,ok=Math.floor,ak=Math.ceil,sk=Math.pow,lk=Math.log,uk=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new ZD,e._interval=0,e}return e(n,t),n.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent(),r=ik.getTicks.call(this,t);return v(r,function(t){var e=t.value,r=Gi(sk(this.base,e));return r=e===n[0]&&this._fixMin?Dd(r,i[0]):r,r=e===n[1]&&this._fixMax?Dd(r,i[1]):r,{value:r}},this)},n.prototype.setExtent=function(t,e){var n=lk(this.base);t=lk(Math.max(0,t))/n,e=lk(Math.max(0,e))/n,ik.setExtent.call(this,t,e)},n.prototype.getExtent=function(){var t=this.base,e=nk.getExtent.call(this);e[0]=sk(t,e[0]),e[1]=sk(t,e[1]);var n=this._originalScale,i=n.getExtent();return this._fixMin&&(e[0]=Dd(e[0],i[0])),this._fixMax&&(e[1]=Dd(e[1],i[1])),e},n.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=lk(t[0])/lk(e),t[1]=lk(t[1])/lk(e),nk.unionExtent.call(this,t)},n.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},n.prototype.calcNiceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(1/0===n||0>=n)){var i=tr(n),r=t/n*i;for(.5>=r&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var o=[Gi(ak(e[0]/i)*i),Gi(ok(e[1]/i)*i)];this._interval=i,this._niceExtent=o}},n.prototype.calcNiceExtent=function(t){ik.calcNiceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},n.prototype.parse=function(t){return t},n.prototype.contain=function(t){return t=lk(t)/lk(this.base),rd(t,this._extent)},n.prototype.normalize=function(t){return t=lk(t)/lk(this.base),od(t,this._extent)},n.prototype.scale=function(t){return t=ad(t,this._extent),sk(this.base,t)},n.type="log",n}(UD),hk=uk.prototype;hk.getMinorTicks=ik.getMinorTicks,hk.getLabel=ik.getLabel,UD.registerClass(uk);var ck=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]0&&s>0&&!l&&(a=0),0>a&&0>s&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[dk[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=pk[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),pk={min:"_determinedMin",max:"_determinedMax"},dk={min:"_dataMin",max:"_dataMax"},fk=function(){function t(){}return t.prototype.getNeedCrossZero=function(){var t=this.option;return!t.scale},t.prototype.getCoordSysModel=function(){},t}(),gk={isDimensionStacked:Up,enableDataStack:Wp,getStackedDimension:Xp},yk=(Object.freeze||Object)({createList:Gd,getLayoutRect:Fl,dataStack:gk,createScale:Ud,mixinAxisModelCommonMethods:Xd,getECData:Tb,createTextStyle:Yd,createDimensions:Ep,createSymbol:pc,enableHoverEmphasis:Aa}),vk=[],mk={registerPreprocessor:hp,registerProcessor:cp,registerPostInit:pp,registerPostUpdate:dp,registerUpdateLifecycle:fp,registerAction:gp,registerCoordinateSystem:yp,registerLayout:mp,registerVisual:_p,registerTransform:_D,registerLoading:wp,registerMap:Sp,registerImpl:Qc,PRIORITY:II,ComponentModel:WM,ComponentView:aC,SeriesModel:oC,ChartView:uC,registerComponentModel:function(t){WM.registerClass(t)},registerComponentView:function(t){aC.registerClass(t)},registerSeriesModel:function(t){oC.registerClass(t)},registerChartView:function(t){uC.registerClass(t)},registerSubTypeDefaulter:function(t,e){WM.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Fi(t,e)}},_k=1e-8,xk=[],wk=function(){function t(t){this.name=t}return t.prototype.setCenter=function(t){this._center=t},t.prototype.getCenter=function(){var t=this._center;return t||(t=this._center=this.calcCenter()),t},t}(),bk=function(){function t(t,e){this.type="polygon",this.exterior=t,this.interiors=e}return t}(),Sk=function(){function t(t){this.type="linestring",this.points=t}return t}(),Mk=function(t){function n(e,n,i){var r=t.call(this,e)||this;return r.type="geoJSON",r.geometries=n,r._center=i&&[i[0],i[1]],r}return e(n,t),n.prototype.calcCenter=function(){for(var t,e=this.geometries,n=0,i=0;in&&(t=r,n=a)}if(t)return Qd(t.exterior);var s=this.getBoundingRect();return[s.x+s.width/2,s.y+s.height/2]},n.prototype.getBoundingRect=function(t){var e=this._rect;if(e&&!t)return e;var n=[1/0,1/0],i=[-1/0,-1/0],r=this.geometries;return y(r,function(e){"polygon"===e.type?$d(e.exterior,n,i,t):y(e.points,function(e){$d(e,n,i,t)})}),isFinite(n[0])&&isFinite(n[1])&&isFinite(i[0])&&isFinite(i[1])||(n[0]=n[1]=i[0]=i[1]=0),e=new y_(n[0],n[1],i[0]-n[0],i[1]-n[1]),t||(this._rect=e),e},n.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;r>i;i++){var o=n[i];if("polygon"===o.type){var a=o.exterior,s=o.interiors;if(Zd(a,t[0],t[1])){for(var l=0;l<(s?s.length:0);l++)if(Zd(s[l],t[0],t[1]))continue t;return!0}}}return!1},n.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=r.width/r.height;n?i||(i=n/o):n=o*i;for(var a=new y_(t,e,n,i),s=r.calculateTransform(a),l=this.geometries,u=0;u=n&&i>=t},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return qi(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&(n=n.slice(),mf(n,i.count())),Hi(t,Pk,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&(n=n.slice(),mf(n,i.count()));var r=Hi(t,n,Pk,e);return this.scale.scale(r)},t.prototype.pointToData=function(){},t.prototype.getTicksCoords=function(t){t=t||{};var e=t.tickModel||this.getTickModel(),n=of(this,e),i=n.ticks,r=v(i,function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}},this),o=e.get("alignWithLabel");return _f(this,r,o,t.clamp),r},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick"),e=t.get("splitNumber");e>0&&100>e||(e=5);var n=this.scale.getMinorTicks(e),i=v(n,function(t){return v(t,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this)},this);return i},t.prototype.getViewLabels=function(){return rf(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return ff(this)},t}(),Ok=2*Math.PI,Rk=$w.CMD,Ek=["top","right","bottom","left"],zk=[],Nk=new s_,Bk=new s_,Fk=new s_,Vk=new s_,Hk=new s_,Wk=[],Gk=new s_,Uk=["align","verticalAlign","width","height","fontSize"],Xk=new Rx,Yk=Pr(),qk=Pr(),jk=["x","y","rotation"],Zk=function(){function t(){this._labelList=[],this._chartViewList=[]}return t.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},t.prototype._addLabel=function(t,e,n,i,r){var o=i.style,a=i.__hostTarget,s=a.textConfig||{},l=i.getComputedTransform(),u=i.getBoundingRect().plain();y_.applyTransform(u,u,l),l?Xk.setLocalTransform(l):(Xk.x=Xk.y=Xk.rotation=Xk.originX=Xk.originY=0,Xk.scaleX=Xk.scaleY=1);var h,c=i.__hostTarget;if(c){h=c.getBoundingRect().plain();var p=c.getComputedTransform();y_.applyTransform(h,h,p)}var d=h&&c.getTextGuideLine();this._labelList.push({label:i,labelLine:d,seriesModel:n,dataIndex:t,dataType:e,layoutOption:r,computedLayoutOption:null,rect:u,hostRect:h,priority:h?h.width*h.height:0,defaultAttr:{ignore:i.ignore,labelGuideIgnore:d&&d.ignore,x:Xk.x,y:Xk.y,scaleX:Xk.scaleX,scaleY:Xk.scaleY,rotation:Xk.rotation,style:{x:o.x,y:o.y,align:o.align,verticalAlign:o.verticalAlign,width:o.width,height:o.height,fontSize:o.fontSize},cursor:i.cursor,attachedPos:s.position,attachedRot:s.rotation}})},t.prototype.addLabelsOfSeries=function(t){var e=this;this._chartViewList.push(t);var n=t.__model,i=n.get("labelLayout");(T(i)||w(i).length)&&t.group.traverse(function(t){if(t.ignore)return!0;var r=t.getTextContent(),o=Tb(t);r&&!r.disableLabelLayout&&e._addLabel(o.dataIndex,o.dataType,n,r,i)})},t.prototype.updateLayoutConfig=function(t){function e(t,e){return function(){Af(t,e)}}for(var n=t.getWidth(),i=t.getHeight(),r=0;r=0&&n.attr(r.oldLayoutSelect),p(h,"emphasis")>=0&&n.attr(r.oldLayoutEmphasis)),ss(n,l,e,s)}else if(n.attr(l),!iM(n).valueAnimation){var c=B(n.style.opacity,1);n.style.opacity=0,ls(n,{style:{opacity:c}},e,s)}if(r.oldLayout=l,n.states.select){var d=r.oldLayoutSelect={};Uf(d,l,jk),Uf(d,n.states.select,jk)}if(n.states.emphasis){var f=r.oldLayoutEmphasis={};Uf(f,l,jk),Uf(f,n.states.emphasis,jk)}$s(n,s,u,e,e)}if(i&&!i.ignore&&!i.invisible){var r=qk(i),o=r.oldLayout,g={points:i.shape.points};o?(i.attr({shape:o}),ss(i,{shape:g},e)):(i.setShape(g),i.style.strokePercent=0,ls(i,{style:{strokePercent:1}},e)),r.oldLayout=g}},t}(),Kk=Pr();qd(Xf);var $k=function(t){function n(e,n,i){var r=t.call(this)||this;r.motionBlur=!1,r.lastFrameAlpha=.7,r.dpr=1,r.virtual=!1,r.config={},r.incremental=!1,r.zlevel=0,r.maxRepaintRectCount=5,r.__dirty=!0,r.__firstTimePaint=!0,r.__used=!1,r.__drawIndex=0,r.__startIndex=0,r.__endIndex=0,r.__prevStartIndex=null,r.__prevEndIndex=null;var o;i=i||Sx,"string"==typeof e?o=Yf(e,n,i):k(e)&&(o=e,e=o.id),r.id=e,r.dom=o;var a=o.style;return a&&(Z(o),o.onselectstart=function(){return!1},a.padding="0",a.margin="0",a.borderWidth="0"),r.painter=n,r.dpr=i,r}return e(n,t),n.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},n.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},n.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},n.prototype.setUnpainted=function(){this.__firstTimePaint=!0},n.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=Yf("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},n.prototype.createRepaintRects=function(t,e,n,i){function r(t){if(t.isFinite()&&!t.isZero())if(0===o.length){var e=new y_(0,0,0,0);e.copy(t),o.push(e)}else{for(var n=!1,i=1/0,r=0,u=0;ug&&(i=g,r=u)}}if(s&&(o[r].union(t),n=!0),!n){var e=new y_(0,0,0,0);e.copy(t),o.push(e)}s||(s=o.length>=a)}}if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;for(var o=[],a=this.maxRepaintRectCount,s=!1,l=new y_(0,0,0,0),u=this.__startIndex;uo;o++){var a=t[o];a.__inHover&&(n||(n=this._hoverlayer=this.getLayer(Qk)),i||(i=n.ctx,i.save()),Gc(i,a,r,o===e-1))}i&&i.restore()}},t.prototype.getHoverLayer=function(){return this.getLayer(Qk)},t.prototype.paintOne=function(t,e){Wc(t,e)},t.prototype._paintList=function(t,e,n,i){if(this._redrawId===i){n=n||!1,this._updateLayerStatus(t);var r=this._doPaintList(t,e,n),o=r.finished,a=r.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),a&&this._paintHoverList(t),o)this.eachLayer(function(t){t.afterBrush&&t.afterBrush()});else{var s=this;P_(function(){s._paintList(t,e,n,i)})}}},t.prototype._compositeManually=function(){var t=this.getLayer(Jk).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer(function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)})},t.prototype._doPaintList=function(t,e,n){for(var i=this,r=[],o=this._opts.useDirtyRect,a=0;a15)break}}n.prevElClipPaths&&l.restore()};if(c)if(0===c.length)m=s.__endIndex;else for(var x=p.dpr,w=0;w0&&t>i[0]){for(s=0;r-1>s&&!(i[s]t);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i0?tA:0),this._needsManuallyCompositing),h.__builtin__||a("ZLevel "+u+" has been used by unkown layer "+h.id),h!==s&&(h.__used=!0,h.__startIndex!==o&&(h.__dirty=!0),h.__startIndex=o,h.__drawIndex=h.incremental?-1:o,e(o),s=h),i.__dirty&C_&&!i.__inHover&&(h.__dirty=!0,h.incremental&&h.__drawIndex<0&&(h.__drawIndex=o))}e(o),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)})},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,y(this._layers,function(t){t.setUnpainted()})},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?l(n[t],e,!0):n[t]=e;for(var i=0;is;s++){var u=a[s];Gc(n,u,o,s===l-1)}return e.dom},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t}(),iA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return e(n,t),n.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),this._sourceManager=new QT(this),lh(this)},n.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),lh(this)},n.prototype.optionUpdated=function(){this._sourceManager.dirty()},n.prototype.getSourceManager=function(){return this._sourceManager},n.type="dataset",n.defaultOption={seriesLayoutBy:eT},n}(WM),rA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return e(n,t),n.type="dataset",n}(aC);qd([Zf,Kf]),qd(Xf);var oA={average:function(t){for(var e=0,n=0,i=0;ie&&(e=t[n]);return isFinite(e)?e:0/0},min:function(t){for(var e=1/0,n=0;nt&&(t=e),t},n.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},n.type="series.bar",n.dependencies=["grid","polar"],n.defaultOption=el(sA.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),n}(sA),uA=function(){function t(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0}return t}(),hA=function(t){function n(e){var n=t.call(this,e)||this;return n.type="sausage",n}return e(n,t),n.prototype.getDefaultShape=function(){return new uA},n.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=2*Math.PI,p=h?c>u-l:c>l-u;p||(l=u-(h?c:-c));var d=Math.cos(l),f=Math.sin(l),g=Math.cos(u),y=Math.sin(u);p?(t.moveTo(d*r+n,f*r+i),t.arc(d*s+n,f*s+i,a,-Math.PI+l,l,!h)):t.moveTo(d*o+n,f*o+i),t.arc(n,i,o,l,u,!h),t.arc(g*s+n,y*s+i,a,u-2*Math.PI,u-Math.PI,!h),0!==r&&t.arc(n,i,r,u,l,h)},n}(lb),cA=Math.max,pA=Math.min,dA=function(t){function n(){var e=t.call(this)||this;return e.type=n.type,e._isFirstFrame=!0,e}return e(n,t),n.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._progressiveEls=null,this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},n.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},n.prototype.incrementalRender=function(t,e){this._progressiveEls=[],this._incrementalRenderLarge(t,e)},n.prototype.eachRendered=function(t){Fs(this._progressiveEls||this.group,t)},n.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;(null==this._isLargeDraw||e!==this._isLargeDraw)&&(this._isLargeDraw=e,this._clear())},n.prototype._renderNormal=function(t,e,n,i){function r(t){var e=_A[u.type](s,t),n=_g(u,o,e);return n.useStyle(v.getItemStyle()),"cartesian2d"===u.type&&n.setShape("r",m),_[t]=n,n}var o,a=this.group,s=t.getData(),l=this._data,u=t.coordinateSystem,h=u.getBaseAxis(); +"cartesian2d"===u.type?o=h.isHorizontal():"polar"===u.type&&(o="angle"===h.dim);var c=t.isAnimationEnabled()?t:null,p=ug(t,u);p&&this._enableRealtimeSort(p,s,n);var d=t.get("clip",!0)||p,f=lg(u,s);a.removeClipPath();var g=t.get("roundCap",!0),y=t.get("showBackground",!0),v=t.getModel("backgroundStyle"),m=v.get("borderRadius")||0,_=[],x=this._backgroundEls,w=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;s.diff(l).add(function(e){var n=s.getItemModel(e),i=_A[u.type](s,e,n);if(y&&r(e),s.hasValue(e)&&mA[u.type](i)){var l=!1;d&&(l=fA[u.type](f,i));var v=gA[u.type](t,s,e,i,o,c,h.model,!1,g);p&&(v.forceLabelAnimation=!0),fg(v,s,e,n,i,t,o,"polar"===u.type),w?v.attr({shape:i}):p?hg(p,c,v,i,e,o,!1,!1):ls(v,{shape:i},t,e),s.setItemGraphicEl(e,v),a.add(v),v.ignore=l}}).update(function(e,n){var i=s.getItemModel(e),S=_A[u.type](s,e,i);if(y){var M=void 0;0===x.length?M=r(n):(M=x[n],M.useStyle(v.getItemStyle()),"cartesian2d"===u.type&&M.setShape("r",m),_[e]=M);var T=_A[u.type](s,e),C=mg(o,T,u);ss(M,{shape:C},c,e)}var I=l.getItemGraphicEl(n);if(!s.hasValue(e)||!mA[u.type](S))return void a.remove(I);var D=!1;if(d&&(D=fA[u.type](f,S),D&&a.remove(I)),I?ds(I):I=gA[u.type](t,s,e,S,o,c,h.model,!!I,g),p&&(I.forceLabelAnimation=!0),b){var k=I.getTextContent();if(k){var A=iM(k);null!=A.prevValue&&(A.prevValue=A.value)}}else fg(I,s,e,i,S,t,o,"polar"===u.type);w?I.attr({shape:S}):p?hg(p,c,I,S,e,o,!0,b):ss(I,{shape:S},t,e,null),s.setItemGraphicEl(e,I),I.ignore=D,a.add(I)}).remove(function(e){var n=l.getItemGraphicEl(e);n&&ps(n,t,e)}).execute();var S=this._backgroundGroup||(this._backgroundGroup=new Gx);S.removeAll();for(var M=0;M<_.length;++M)S.add(_[M]);a.add(S),this._backgroundEls=_,this._data=s},n.prototype._renderLarge=function(t){this._clear(),yg(t,this.group),this._updateLargeClip(t)},n.prototype._incrementalRenderLarge=function(t,e){this._removeBackground(),yg(e,this.group,this._progressiveEls,!0)},n.prototype._updateLargeClip=function(t){var e=t.get("clip",!0)&&tg(t.coordinateSystem,!1,t),n=this.group;e?n.setClipPath(e):n.removeClipPath()},n.prototype._enableRealtimeSort=function(t,e,n){var i=this;if(e.count()){var r=t.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(e,t,n),this._isFirstFrame=!1;else{var o=function(t){var n=e.getItemGraphicEl(t),i=n&&n.shape;return i&&Math.abs(r.isHorizontal()?i.height:i.width)||0};this._onRendered=function(){i._updateSortWithinSameData(e,o,r,n)},n.getZr().on("rendered",this._onRendered)}}},n.prototype._dataSort=function(t,e,n){var i=[];return t.each(t.mapDimension(e.dim),function(t,e){var r=n(e);r=null==r?0/0:r,i.push({dataIndex:e,mappedValue:r,ordinalNumber:t})}),i.sort(function(t,e){return e.mappedValue-t.mappedValue}),{ordinalNumbers:v(i,function(t){return t.ordinalNumber})}},n.prototype._isOrderChangedWithinSameData=function(t,e,n){for(var i=n.scale,r=t.mapDimension(n.dim),o=Number.MAX_VALUE,a=0,s=i.getOrdinalMeta().categories.length;s>a;++a){var l=t.rawIndexOf(r,i.getRawOrdinalNumber(a)),u=0>l?Number.MIN_VALUE:e(t.indexOfRawIndex(l));if(u>o)return!0;o=u}return!1},n.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);o>=r;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},n.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},n.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)});n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r})},n.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},n.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},n.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},n.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl(function(e){ps(e,t,Tb(e).dataIndex)})):e.removeAll(),this._data=null,this._isFirstFrame=!0},n.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},n.type="bar",n}(uC),fA={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;0>n&&(e.x+=e.width,e.width=-e.width),0>i&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=cA(e.x,t.x),s=pA(e.x+e.width,r),l=cA(e.y,t.y),u=pA(e.y+e.height,o),h=a>s,c=l>u;return e.x=h&&a>r?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,0>n&&(e.x+=e.width,e.width=-e.width),0>i&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(0>n){var i=e.r;e.r=e.r0,e.r0=i}var r=pA(e.r,t.r),o=cA(e.r0,t.r0);e.r=r,e.r0=o;var a=0>r-o;if(0>n){var i=e.r;e.r=e.r0,e.r0=i}return a}},gA={cartesian2d:function(t,e,n,i,r,o){var a=new vb({shape:h({},i),z2:1});if(a.__dataIndex=n,a.name="item",o){var s=a.shape,l=r?"height":"width";s[l]=0}return a},polar:function(t,e,n,i,r,o,a,s,l){var u=!r&&l?hA:_S,h=new u({shape:i,z2:1});h.name="item";var c=dg(r);if(h.calculateTextPosition=rg(c,{isRoundCap:u===hA}),o){var p=h.shape,d=r?"r":"endAngle",f={};p[d]=r?0:i.startAngle,f[d]=i[d],(s?ss:ls)(h,{shape:f},o)}return h}},yA=["x","y","width","height"],vA=["cx","cy","r","startAngle","endAngle"],mA={cartesian2d:function(t){return!cg(t,yA)},polar:function(t){return!cg(t,vA)}},_A={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=n?gg(n,i):0,o=i.width>0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e){var n=t.getItemLayout(e);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}},xA=function(){function t(){}return t}(),wA=function(t){function n(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return e(n,t),n.prototype.getDefaultShape=function(){return new xA},n.prototype.buildPath=function(t,e){for(var n=e.points,i=this.baseDimIdx,r=1-this.baseDimIdx,o=[],a=[],s=this.barWidth,l=0;l=0?n:null},30,!1);qd(xg);var SA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e}return e(n,t),n.prototype.getInitialData=function(){return jp(null,this,{useEncodeDefaulter:!0})},n.prototype.getLegendIcon=function(t){var e=new Gx,n=pc("line",0,t.itemHeight/2,t.itemWidth,0,t.lineStyle.stroke,!1);e.add(n),n.setStyle(t.lineStyle);var i=this.getData().getVisual("symbol"),r=this.getData().getVisual("symbolRotate"),o="none"===i?"circle":i,a=.8*t.itemHeight,s=pc(o,(t.itemWidth-a)/2,(t.itemHeight-a)/2,a,a,t.itemStyle.fill);e.add(s),s.setStyle(t.itemStyle);var l="inherit"===t.iconRotate?r:t.iconRotate||0;return s.rotation=l*Math.PI/180,s.setOrigin([t.itemWidth/2,t.itemHeight/2]),o.indexOf("empty")>-1&&(s.style.stroke=s.style.fill,s.style.fill="#fff",s.style.lineWidth=2),e},n.type="series.line",n.dependencies=["grid","polar"],n.defaultOption={z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:"clone"},triggerLineEvent:!1},n}(oC),MA=function(t){function n(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return e(n,t),n.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=pc(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=wg,this._symbolType=t,this.add(o)},n.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},n.prototype.getSymbolType=function(){return this._symbolType},n.prototype.getSymbolPath=function(){return this.childAt(0)},n.prototype.highlight=function(){da(this.childAt(0))},n.prototype.downplay=function(){fa(this.childAt(0))},n.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},n.prototype.setDraggable=function(t,e){var n=this.childAt(0);n.draggable=t,n.cursor=!e&&t?"move":n.cursor},n.prototype.updateData=function(t,e,i,r){this.silent=!1;var o=t.getItemVisual(e,"symbol")||"circle",a=t.hostModel,s=n.getSymbolSize(t,e),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(e,"symbolKeepAspect");this._createSymbol(o,t,e,s,h)}else{var c=this.childAt(0);c.silent=!1;var p={scaleX:s[0]/2,scaleY:s[1]/2};u?c.attr(p):ss(c,p,a,e),ds(c)}if(this._updateCommon(t,e,s,i,r),l){var c=this.childAt(0);if(!u){var p={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:c.style.opacity}};c.scaleX=c.scaleY=0,c.style.opacity=0,ls(c,p,a,e)}}u&&this.childAt(0).stopAnimation("leave")},n.prototype._updateCommon=function(t,e,n,i,r){function o(e){return I?t.getName(e):ng(t,e)}var a,s,l,u,c,p,d,f,g,y=this.childAt(0),v=t.hostModel;if(i&&(a=i.emphasisItemStyle,s=i.blurItemStyle,l=i.selectItemStyle,u=i.focus,c=i.blurScope,d=i.labelStatesModels,f=i.hoverScale,g=i.cursorStyle,p=i.emphasisDisabled),!i||t.hasItemOption){var m=i&&i.itemModel?i.itemModel:t.getItemModel(e),_=m.getModel("emphasis");a=_.getModel("itemStyle").getItemStyle(),l=m.getModel(["select","itemStyle"]).getItemStyle(),s=m.getModel(["blur","itemStyle"]).getItemStyle(),u=_.get("focus"),c=_.get("blurScope"),p=_.get("disabled"),d=Gs(m),f=_.getShallow("scale"),g=m.getShallow("cursor")}var x=t.getItemVisual(e,"symbolRotate");y.attr("rotation",(x||0)*Math.PI/180||0);var w=fc(t.getItemVisual(e,"symbolOffset"),n);w&&(y.x=w[0],y.y=w[1]),g&&y.attr("cursor",g);var b=t.getItemVisual(e,"style"),S=b.fill;if(y instanceof db){var M=y.style;y.useStyle(h({image:M.image,x:M.x,y:M.y,width:M.width,height:M.height},b))}else y.useStyle(y.__isEmptyBrush?h({},b):b),y.style.decal=null,y.setColor(S,r&&r.symbolInnerColor),y.style.strokeNoScale=!0;var T=t.getItemVisual(e,"liftZ"),C=this._z2;null!=T?null==C&&(this._z2=y.z2,y.z2+=T):null!=C&&(y.z2=C,this._z2=null);var I=r&&r.useNameLabel;Ws(y,d,{labelFetcher:v,labelDataIndex:e,defaultText:o,inheritColor:S,defaultOpacity:b.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var D=y.ensureState("emphasis");D.style=a,y.ensureState("select").style=l,y.ensureState("blur").style=s;var k=null==f||f===!0?Math.max(1.1,3/this._sizeY):isFinite(f)&&f>0?+f:1;D.scaleX=this._sizeX*k,D.scaleY=this._sizeY*k,this.setSymbolScale(1),La(this,u,c,p)},n.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},n.prototype.fadeOut=function(t,e,n){var i=this.childAt(0),r=Tb(this).dataIndex,o=n&&n.animation;if(this.silent=i.silent=!0,n&&n.fadeLabel){var a=i.getTextContent();a&&hs(a,{style:{opacity:0}},e,{dataIndex:r,removeOpt:o,cb:function(){i.removeTextContent()}})}else i.removeTextContent();hs(i,{style:{opacity:0},scaleX:0,scaleY:0},e,{dataIndex:r,cb:t,removeOpt:o})},n.getSymbolSize=function(t,e){return dc(t.getItemVisual(e,"symbolSize"))},n}(Gx),TA=function(){function t(t){this.group=new Gx,this._SymbolCtor=t||MA}return t.prototype.updateData=function(t,e){this._progressiveEls=null,e=Sg(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=Mg(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add(function(i){var r=u(i);if(bg(t,r,i,e)){var a=new o(t,i,s,l);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}}).update(function(h,c){var p=r.getItemGraphicEl(c),d=u(h);if(!bg(t,d,h,e))return void n.remove(p);var f=t.getItemVisual(h,"symbol")||"circle",g=p&&p.getSymbolType&&p.getSymbolType();if(!p||g&&g!==f)n.remove(p),p=new o(t,h,s,l),p.setPosition(d);else{p.updateData(t,h,s,l);var y={x:d[0],y:d[1]};a?p.attr(y):ss(p,y,i)}n.add(p),t.setItemGraphicEl(h,p)}).remove(function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut(function(){n.remove(e)},i)}).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl(function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()})},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=Mg(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}this._progressiveEls=[],n=Sg(n);for(var r=t.start;r0&&Ag(n[2*r-2],n[2*r-1]);r--);for(;r>i&&Ag(n[2*i],n[2*i+1]);i++);}for(;r>i;)i+=Pg(t,n,i,r,r,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},n.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n,i,r=this.path,o=r.data,a=$w.CMD,s="x"===e,l=[],u=0;u=v&&v>=0){var m=s?(p-i)*v+i:(c-n)*v+n;return s?[t,m]:[m,t]}n=c,i=p;break;case a.C:c=o[u++],p=o[u++],d=o[u++],f=o[u++],g=o[u++],y=o[u++];var _=s?cn(n,c,d,g,t,l):cn(i,p,f,y,t,l);if(_>0)for(var x=0;_>x;x++){var w=l[x];if(1>=w&&w>=0){var m=s?un(i,p,f,y,w):un(n,c,d,g,w);return s?[t,m]:[m,t]}}n=g,i=y}}},n}(lb),AA=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n}(DA),PA=function(t){function n(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return e(n,t),n.prototype.getDefaultShape=function(){return new AA},n.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&Ag(n[2*o-2],n[2*o-1]);o--);for(;o>r&&Ag(n[2*r],n[2*r+1]);r++);}for(;o>r;){var s=Pg(t,n,r,o,o,1,e.smooth,a,e.connectNulls);Pg(t,i,r+s-1,s,o,-1,e.stackedOnSmooth,a,e.connectNulls),r+=s+1,t.closePath()}},n}(lb),LA=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.init=function(){var t=new Gx,e=new TA;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},n.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.getLayout("points")||[],h="polar"===r.type,p=this._coordSys,d=this._symbolDraw,f=this._polyline,g=this._polygon,y=this._lineGroup,v=t.get("animation"),m=!l.isEmpty(),_=l.get("origin"),x=Tg(r,a,_),w=m&&zg(r,a,x),b=t.get("showSymbol"),S=t.get("connectNulls"),M=b&&!h&&Vg(t,a,r),T=this._data;T&&T.eachItemGraphicEl(function(t,e){t.__temp&&(o.remove(t),T.setItemGraphicEl(e,null))}),b||d.remove(),o.add(y);var C,I=h?!1:t.get("step");r&&r.getArea&&t.get("clip",!0)&&(C=r.getArea(),null!=C.width?(C.x-=.1,C.y-=.1,C.width+=.2,C.height+=.2):C.r0&&(C.r0-=.5,C.r+=.5)),this._clipShapeForSymbol=C;var D=Fg(a,r,n)||a.getVisual("style")[a.getVisual("drawType")];if(f&&p.type===r.type&&I===this._step){m&&!g?g=this._newPolygon(u,w):g&&!m&&(y.remove(g),g=this._polygon=null),h||this._initOrUpdateEndLabel(t,r,zl(D));var k=y.getClipPath();if(k){var A=qg(this,r,!1,t);ls(k,{shape:A.shape},t)}else y.setClipPath(qg(this,r,!0,t));b&&d.updateData(a,{isIgnore:M,clipShape:C,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),Lg(this._stackedOnPoints,w)&&Lg(this._points,u)||(v?this._doUpdateAnimation(a,w,r,n,I,_,S):(I&&(u=Ng(u,r,I,S),w&&(w=Ng(w,r,I,S))),f.setShape({points:u}),g&&g.setShape({points:u,stackedOnPoints:w})))}else b&&d.updateData(a,{isIgnore:M,clipShape:C,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),v&&this._initSymbolLabelAnimation(a,r,C),I&&(u=Ng(u,r,I,S),w&&(w=Ng(w,r,I,S))),f=this._newPolyline(u),m?g=this._newPolygon(u,w):g&&(y.remove(g),g=this._polygon=null),h||this._initOrUpdateEndLabel(t,r,zl(D)),y.setClipPath(qg(this,r,!0,t));var P=t.getModel("emphasis"),L=P.get("focus"),O=P.get("blurScope"),R=P.get("disabled");if(f.useStyle(c(s.getLineStyle(),{fill:"none",stroke:D,lineJoin:"bevel"})),Ra(f,t,"lineStyle"),f.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"])){var E=f.getState("emphasis").style;E.lineWidth=+f.style.lineWidth+1}Tb(f).seriesIndex=t.seriesIndex,La(f,L,O,R);var z=Eg(t.get("smooth")),N=t.get("smoothMonotone");if(f.setShape({smooth:z,smoothMonotone:N,connectNulls:S}),g){var B=a.getCalculationInfo("stackedOnSeries"),F=0;g.useStyle(c(l.getAreaStyle(),{fill:D,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),B&&(F=Eg(B.get("smooth"))),g.setShape({smooth:z,stackedOnSmooth:F,smoothMonotone:N,connectNulls:S}),Ra(g,t,"areaStyle"),Tb(g).seriesIndex=t.seriesIndex,La(g,L,O,R)}var V=function(t){i._changePolyState(t)};a.eachItemGraphicEl(function(t){t&&(t.onHoverStateChange=V)}),this._polyline.onHoverStateChange=V,this._data=a,this._coordSys=r,this._stackedOnPoints=w,this._points=u,this._step=I,this._valueOrigin=_,t.get("triggerLineEvent")&&(this.packEventData(t,f),g&&this.packEventData(t,g))},n.prototype.packEventData=function(t,e){Tb(e).eventData={componentType:"series",componentSubType:"line",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"line"}},n.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=Ar(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;var h=t.get("zlevel")||0,c=t.get("z")||0;s=new MA(r,o),s.x=l,s.y=u,s.setZ(h,c);var p=s.getSymbolPath().getTextContent();p&&(p.zlevel=h,p.z=c,p.z2=this._polyline.z2+1),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else uC.prototype.highlight.call(this,t,e,n,i)},n.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=Ar(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else uC.prototype.downplay.call(this,t,e,n,i)},n.prototype._changePolyState=function(t){var e=this._polygon;ra(this._polyline,t),e&&ra(e,t)},n.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new kA({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},n.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new PA({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},n.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");T(l)&&(l=l(null));var u=s.get("animationDelay")||0,h=T(u)?u(null):u;t.eachItemGraphicEl(function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,d=void 0,f=void 0;if(n)if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,d=g.endAngle,f=-y[1]/180*Math.PI):(p=g.r0,d=g.r,f=y[0])}else{var v=n;i?(p=v.x,d=v.x+v.width,f=t.x):(p=v.y+v.height,d=v.y,f=t.y)}var m=d===p?0:(f-p)/(d-p);a&&(m=1-m);var _=T(u)?u(o):l*m+h,x=s.getSymbolPath(),w=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:_}),w&&w.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}})},n.prototype._initOrUpdateEndLabel=function(t,e,n){var i=t.getModel("endLabel");if(Yg(t)){var r=t.getData(),o=this._polyline,a=r.getLayout("points");if(!a)return o.removeTextContent(),void(this._endLabel=null);var s=this._endLabel;s||(s=this._endLabel=new wb({z2:200}),s.ignoreClip=!0,o.setTextContent(this._endLabel),o.disableLabelAnimation=!0);var l=Gg(a);l>=0&&(Ws(o,Gs(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:l,defaultText:function(t,e,n){return null!=n?ig(r,n):ng(r,t)},enableTextSetter:!0},jg(i,e)),o.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},n.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){1>t&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),d=o.get("distance")||0,f=a.getBaseAxis(),g=f.isHorizontal(),y=f.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?d:0)*(y?-1:1),x=(g?0:-d)*(y?-1:1),w=g?"x":"y",b=Xg(u,m,w),S=b.range,M=S[1]-S[0],T=void 0;if(M>=1){if(M>1&&!c){var C=Ug(u,S[0]);s.attr({x:C[0]+_,y:C[1]+x}),r&&(T=h.getRawValue(S[0]))}else{var C=l.getPointOn(m,w);C&&s.attr({x:C[0]+_,y:C[1]+x});var I=h.getRawValue(S[0]),D=h.getRawValue(S[1]);r&&(T=Br(n,p,I,D,b.t))}i.lastFrameIndex=S[0]}else{var k=1===t||i.lastFrameIndex>0?S[0]:0,C=Ug(u,k);r&&(T=h.getRawValue(k)),s.attr({x:C[0]+_,y:C[1]+x})}r&&iM(s).setLabelText(T)}},n.prototype._doUpdateAnimation=function(t,e,n,i,r,o,a){var s=this._polyline,l=this._polygon,u=t.hostModel,h=kg(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),c=h.current,p=h.stackedOnCurrent,d=h.next,f=h.stackedOnNext;if(r&&(c=Ng(h.current,n,r,a),p=Ng(h.stackedOnCurrent,n,r,a),d=Ng(h.next,n,r,a),f=Ng(h.stackedOnNext,n,r,a)),Rg(c,d)>3e3||l&&Rg(p,f)>3e3)return s.stopAnimation(),s.setShape({points:d}),void(l&&(l.stopAnimation(),l.setShape({points:d,stackedOnPoints:f})));s.shape.__points=h.current,s.shape.points=c;var g={shape:{points:d}};h.current!==c&&(g.shape.__points=h.next),s.stopAnimation(),ss(s,g,u),l&&(l.setShape({points:c,stackedOnPoints:p}),l.stopAnimation(),ss(l,{shape:{stackedOnPoints:f}},u),s.shape.points!==l.shape.points&&(l.shape.points=s.shape.points));for(var y=[],v=h.status,m=0;m0){for(var s=r.getItemLayout(0),l=1;isNaN(s&&s.startAngle)&&l=i.r0}},n.type="pie",n}(uC),BA=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){var e=this._getRawData();return e.indexOfName(t)>=0},t.prototype.indexOfName=function(t){var e=this._getDataWithEncodedVisual();return e.indexOfName(t)},t.prototype.getItemVisual=function(t,e){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,e)},t}(),FA=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new BA(zm(this.getData,this),zm(this.getRawData,this)),this._defaultLabelLine(e)},n.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},n.prototype.getInitialData=function(){var t=sy(this,{coordDimensions:["value"],encodeDefaulter:S(ql,this)}),e=[];return t.each(t.mapDimension("value"),function(t){e.push(t)}),this.seats=Zi(e,t.hostModel.get("percentPrecision")),t},n.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.call(this,e);return n.percent=this.seats[e],n.$vars.push("percent"),n},n.prototype._defaultLabelLine=function(t){dr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},n.type="series.pie",n.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1,borderJoin:"round"},showEmptyCircle:!0,emptyCircleStyle:{color:"lightgray",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},n}(oC);qd(uy);var VA=function(){function t(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return t}(),HA=function(t){function n(e){var n=t.call(this,e)||this;return n.type="pointer",n}return e(n,t),n.prototype.getDefaultShape=function(){return new VA},n.prototype.buildPath=function(t,e){var n=Math.cos,i=Math.sin,r=e.r,o=e.width,a=e.angle,s=e.x-n(a)*o*(o>=r/3?1:2),l=e.y-i(a)*o*(o>=r/3?1:2);a=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+n(a)*o,e.y+i(a)*o),t.lineTo(e.x+n(e.angle)*r,e.y+i(e.angle)*r),t.lineTo(e.x-n(a)*o,e.y-i(a)*o),t.lineTo(s,l)},n}(lb),WA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),r=hy(t,n);this._renderMain(t,e,n,i,r),this._data=t.getData()},n.prototype.dispose=function(){},n.prototype._renderMain=function(t,e,n,i,r){var o=this.group,a=t.get("clockwise"),s=-t.get("startAngle")/180*Math.PI,l=-t.get("endAngle")/180*Math.PI,u=t.getModel("axisLine"),h=u.get("roundCap"),c=h?hA:_S,p=u.get("show"),d=u.getModel("lineStyle"),f=d.get("width"),g=[s,l];vo(g,!a),s=g[0],l=g[1];for(var y=l-s,v=s,m=0;p&&m=t)return i[0][1];var e;for(e=0;e=t&&(0===e?0:i[e-1][0])=P;P++){if(u=Math.cos(M),h=Math.sin(M),v.get("show")){var L=A?A+l:l,O=new DS({shape:{x1:u*(f-L)+p,y1:h*(f-L)+d,x2:u*(f-b-L)+p,y2:h*(f-b-L)+d},style:I,silent:!0});"auto"===I.stroke&&O.setStyle({stroke:i(P/x)}),c.add(O)}if(_.get("show")){var L=_.get("distance")+A,R=cy(Gi(P/x*(y-g)+g),_.get("formatter")),E=i(P/x),z=u*(f-b-L)+p,N=h*(f-b-L)+d,B=_.get("rotate"),F=0;"radial"===B?(F=-M+2*Math.PI,F>Math.PI/2&&(F+=Math.PI)):"tangential"===B?F=-M-Math.PI/2:D(B)&&(F=B*Math.PI/180),c.add(0===F?new wb({style:Us(_,{text:R,x:z,y:N,verticalAlign:-.8>h?"top":h>.8?"bottom":"middle",align:-.4>u?"left":u>.4?"right":"center"},{inheritColor:E}),silent:!0}):new wb({style:Us(_,{text:R,x:z,y:N,verticalAlign:"middle",align:"center"},{inheritColor:E}),silent:!0,originX:z,originY:N,rotation:F})) +}if(m.get("show")&&P!==x){var L=m.get("distance");L=L?L+l:l;for(var V=0;w>=V;V++){u=Math.cos(M),h=Math.sin(M);var H=new DS({shape:{x1:u*(f-L)+p,y1:h*(f-L)+d,x2:u*(f-S-L)+p,y2:h*(f-S-L)+d},silent:!0,style:k});"auto"===k.stroke&&H.setStyle({stroke:i((P+V/w)/x)}),c.add(H),M+=C}M-=C}else M+=T}},n.prototype._renderPointer=function(t,e,n,i,r,o,a,s,l){function u(e,n){var i,o=_.getItemModel(e),a=o.getModel("pointer"),s=Wi(a.get("width"),r.r),l=Wi(a.get("length"),r.r),u=t.get(["pointer","icon"]),h=a.get("offsetCenter"),c=Wi(h[0],r.r),p=Wi(h[1],r.r),d=a.get("keepAspect");return i=u?pc(u,c-s/2,p-l,s,l,null,d):new HA({shape:{angle:-Math.PI/2,width:s,r:l,x:c,y:p}}),i.rotation=-(n+Math.PI/2),i.x=r.cx,i.y=r.cy,i}function c(t,e){var n=v.get("roundCap"),i=n?hA:_S,a=v.get("overlap"),u=a?v.get("width"):l/_.count(),h=a?r.r-u:r.r-(t+1)*u,c=a?r.r:r.r-t*u,p=new i({shape:{startAngle:o,endAngle:e,cx:r.cx,cy:r.cy,clockwise:s,r0:h,r:c}});return a&&(p.z2=b-_.get(x,t)%b),p}var p=this.group,d=this._data,f=this._progressEls,g=[],y=t.get(["pointer","show"]),v=t.getModel("progress"),m=v.get("show"),_=t.getData(),x=_.mapDimension("value"),w=+t.get("min"),b=+t.get("max"),S=[w,b],M=[o,a];(m||y)&&(_.diff(d).add(function(e){var n=_.get(x,e);if(y){var i=u(e,o);ls(i,{rotation:-((isNaN(+n)?M[0]:Hi(n,S,M,!0))+Math.PI/2)},t),p.add(i),_.setItemGraphicEl(e,i)}if(m){var r=c(e,o),a=v.get("clip");ls(r,{shape:{endAngle:Hi(n,S,M,a)}},t),p.add(r),Cb(t.seriesIndex,_.dataType,e,r),g[e]=r}}).update(function(e,n){var i=_.get(x,e);if(y){var r=d.getItemGraphicEl(n),a=r?r.rotation:o,s=u(e,a);s.rotation=a,ss(s,{rotation:-((isNaN(+i)?M[0]:Hi(i,S,M,!0))+Math.PI/2)},t),p.add(s),_.setItemGraphicEl(e,s)}if(m){var l=f[n],h=l?l.shape.endAngle:o,w=c(e,h),b=v.get("clip");ss(w,{shape:{endAngle:Hi(i,S,M,b)}},t),p.add(w),Cb(t.seriesIndex,_.dataType,e,w),g[e]=w}}).execute(),_.each(function(t){var e=_.getItemModel(t),n=e.getModel("emphasis"),r=n.get("focus"),o=n.get("blurScope"),a=n.get("disabled");if(y){var s=_.getItemGraphicEl(t),l=_.getItemVisual(t,"style"),u=l.fill;if(s instanceof db){var c=s.style;s.useStyle(h({image:c.image,x:c.x,y:c.y,width:c.width,height:c.height},l))}else s.useStyle(l),"pointer"!==s.type&&s.setColor(u);s.setStyle(e.getModel(["pointer","itemStyle"]).getItemStyle()),"auto"===s.style.fill&&s.setStyle("fill",i(Hi(_.get(x,t),S,[0,1],!0))),s.z2EmphasisLift=0,Ra(s,e),La(s,r,o,a)}if(m){var p=g[t];p.useStyle(_.getItemVisual(t,"style")),p.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),p.z2EmphasisLift=0,Ra(p,e),La(p,r,o,a)}}),this._progressEls=g)},n.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor"),i=n.get("show");if(i){var r=n.get("size"),o=n.get("icon"),a=n.get("offsetCenter"),s=n.get("keepAspect"),l=pc(o,e.cx-r/2+Wi(a[0],e.r),e.cy-r/2+Wi(a[1],e.r),r,r,null,s);l.z2=n.get("showAbove")?1:0,l.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(l)}},n.prototype._renderTitleAndDetail=function(t,e,n,i,r){var o=this,a=t.getData(),s=a.mapDimension("value"),l=+t.get("min"),u=+t.get("max"),h=new Gx,c=[],p=[],d=t.isAnimationEnabled(),f=t.get(["pointer","showAbove"]);a.diff(this._data).add(function(t){c[t]=new wb({silent:!0}),p[t]=new wb({silent:!0})}).update(function(t,e){c[t]=o._titleEls[e],p[t]=o._detailEls[e]}).execute(),a.each(function(e){var n=a.getItemModel(e),o=a.get(s,e),g=new Gx,y=i(Hi(o,[l,u],[0,1],!0)),v=n.getModel("title");if(v.get("show")){var m=v.get("offsetCenter"),_=r.cx+Wi(m[0],r.r),x=r.cy+Wi(m[1],r.r),w=c[e];w.attr({z2:f?0:2,style:Us(v,{x:_,y:x,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:y})}),g.add(w)}var b=n.getModel("detail");if(b.get("show")){var S=b.get("offsetCenter"),M=r.cx+Wi(S[0],r.r),T=r.cy+Wi(S[1],r.r),C=Wi(b.get("width"),r.r),I=Wi(b.get("height"),r.r),D=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:y,w=p[e],k=b.get("formatter");w.attr({z2:f?0:2,style:Us(b,{x:M,y:T,text:cy(o,k),width:isNaN(C)?null:C,height:isNaN(I)?null:I,align:"center",verticalAlign:"middle"},{inheritColor:D})}),Ks(w,{normal:b},o,function(t){return cy(t,k)}),d&&$s(w,e,a,t,{getFormattedLabel:function(t,e,n,i,r,a){return cy(a?a.interpolatedValue:o,k)}}),g.add(w)}h.add(g)}),this.group.add(h),this._titleEls=c,this._detailEls=p},n.type="gauge",n}(uC),GA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.visualStyleAccessPath="itemStyle",e}return e(n,t),n.prototype.getInitialData=function(){return sy(this,["value"])},n.type="series.gauge",n.defaultOption={z:2,colorBy:"data",center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},n}(oC);qd(py);var UA=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.type="grid",n.dependencies=["xAxis","yAxis"],n.layoutMode="box",n.defaultOption={show:!1,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},n}(WM),XA=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",iw).models[0]},n.type="cartesian2dAxis",n}(WM);f(XA,fk);var YA={show:!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:"#6E7079",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:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},qA=l({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},YA),jA=l({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},YA),ZA=l({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},jA),KA=c({logBase:10},jA),$A={category:qA,value:jA,time:ZA,log:KA},QA={value:1,category:1,time:1,log:1},JA=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return v(this._dimList,function(t){return this._axes[t]},this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),_(this.getAxes(),function(e){return e.scale.type===t})},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),tP=["x","y"],eP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=tP,e}return e(n,t),n.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(gy(t)&&gy(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var l=(o[0]-r[0])/a,u=(o[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=Ge([],p)}}},n.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},n.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},n.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},n.prototype.containZone=function(t,e){var n=this.dataToPoint(t),i=this.dataToPoint(e),r=this.getArea(),o=new y_(n[0],n[1],i[0]-n[0],i[1]-n[1]);return r.intersect(o)},n.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return ye(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i,e)),n[1]=a.toGlobalCoord(a.dataToCoord(r,e)),n},n.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return e=e||[],e[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},n.prototype.pointToData=function(t,e){var n=[];if(this._invTransform)return ye(n,t,this._invTransform);var i=this.getAxis("x"),r=this.getAxis("y");return n[0]=i.coordToData(i.toLocalCoord(t[0]),e),n[1]=r.coordToData(r.toLocalCoord(t[1]),e),n},n.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},n.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new y_(n,i,r,o)},n}(JA),nP=function(t){function n(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return e(n,t),n.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},n.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},n.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},n.prototype.setCategorySortInfo=function(t){return"category"!==this.type?!1:(this.model.option.categorySortInfo=t,void this.scale.setSortInfo(t))},n}(Lk),iP=Math.log,rP=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=tP,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){function n(t){var e,n=w(t),i=n.length;if(i){for(var r=[],o=i-1;o>=0;o--){var a=+n[o],s=t[a],l=s.model,u=s.scale;Qp(u)&&l.get("alignTicks")&&null==l.get("interval")?r.push(s):(Od(u,l),Qp(u)&&(e=s))}r.length&&(e||(e=r.pop(),Od(e.scale,e.model)),y(r,function(t){_y(t.scale,t.model,e.scale)}))}}var i=this._axesMap;this._updateScale(t,this.model),n(i.x),n(i.y);var r={};y(i.x,function(t){wy(i,"y",t,r)}),y(i.y,function(t){wy(i,"x",t,r)}),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){function i(){y(s,function(t){var e=t.isHorizontal(),n=e?[0,a.width]:[0,a.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),Sy(t,e?a.x:a.y)})}var r=t.getBoxLayoutParams(),o=!n&&t.get("containLabel"),a=Fl(r,{width:e.getWidth(),height:e.getHeight()});this._rect=a;var s=this._axesList;i(),o&&(y(s,function(t){if(!t.model.get(["axisLabel","inside"])){var e=Bd(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);a[n]-=e[n]+i,"top"===t.position?a.y+=e.height+i:"left"===t.position&&(a.x+=e.width+i)}}}),i()),y(this._coordsList,function(t){t.calcAffineTransform()})},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];return null!=n?n[e||0]:void 0},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}k(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i0?"top":"bottom",i="center"):Qi(o-oP)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&oP>o?n>0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),sP={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0],u=s[0]>l[0];a&&(ye(s,s,a),ye(l,l,a));var c=h({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),p=new DS({shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:c,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});bs(p.shape,p.style.lineWidth),p.anid="line",n.add(p);var d=e.get(["axisLine","symbol"]);if(null!=d){var f=e.get(["axisLine","symbolSize"]);C(d)&&(d=[d,d]),(C(f)||D(f))&&(f=[f,f]);var g=fc(e.get(["axisLine","symbolOffset"])||0,f),v=f[0],m=f[1];y([{rotate:t.rotation+Math.PI/2,offset:g[0],r:0},{rotate:t.rotation-Math.PI/2,offset:g[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],function(e,i){if("none"!==d[i]&&null!=d[i]){var r=pc(d[i],-v/2,-m/2,v,m,c.stroke,!0),o=e.r+e.offset,a=u?l:s;r.attr({rotation:e.rotate,x:a[0]+o*Math.cos(t.rotation),y:a[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}})}}},axisTickLabel:function(t,e,n,i){var r=Ay(n,i,e,t),o=Ly(n,i,e,t);if(Ty(e,o,r),Py(n,i,e,t.tickDirection),e.get(["axisLabel","hideOverlap"])){var a=Nf(v(o,function(t){return{label:t,priority:t.z2,defaultAttr:{ignore:t.ignore}}}));Hf(a)}},axisName:function(t,e,n,i){var r=N(t.axisName,e.get("name"));if(r){var o,a=e.get("nameLocation"),s=t.nameDirection,l=e.getModel("nameTextStyle"),u=e.get("nameGap")||0,h=e.axis.getExtent(),c=h[0]>h[1]?-1:1,p=["start"===a?h[0]-c*u:"end"===a?h[1]+c*u:(h[0]+h[1])/2,Dy(a)?t.labelOffset+s*u:0],d=e.get("nameRotate");null!=d&&(d=d*oP/180);var f;Dy(a)?o=aP.innerTextLayout(t.rotation,null!=d?d:t.rotation,s):(o=My(t.rotation,a,d||0,h),f=t.axisNameAvailableWidth,null!=f&&(f=Math.abs(f/Math.sin(o.rotation)),!isFinite(f)&&(f=null)));var g=l.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=N(t.nameTruncateMaxWidth,y.maxWidth,f),_=new wb({x:p[0],y:p[1],rotation:o.rotation,silent:aP.isLabelSilent(e),style:Us(l,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:l.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:l.get("align")||o.textAlign,verticalAlign:l.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(Ns({el:_,componentModel:e,itemName:r}),_.__fullText=r,_.anid="name",e.get("triggerEvent")){var x=aP.makeAxisEventDataBase(e);x.targetType="axisName",x.name=r,Tb(_).eventData=x}i.add(_),_.updateTransform(),n.add(_),_.decomposeTransform()}}},lP={},uP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(e,n,i){this.axisPointerClass&&Fy(e),t.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(e,i,!0)},n.prototype.updateAxisPointer=function(t,e,n){this._doUpdateAxisPointerClass(t,n,!1)},n.prototype.remove=function(t,e){var n=this._axisPointer;n&&n.remove(e)},n.prototype.dispose=function(e,n){this._disposeAxisPointer(n),t.prototype.dispose.apply(this,arguments)},n.prototype._doUpdateAxisPointerClass=function(t,e,i){var r=n.getAxisPointerClass(this.axisPointerClass);if(r){var o=Hy(t);o?(this._axisPointer||(this._axisPointer=new r)).render(t,o,e,i):this._disposeAxisPointer(e)}},n.prototype._disposeAxisPointer=function(t){this._axisPointer&&this._axisPointer.dispose(t),this._axisPointer=null},n.registerAxisPointerClass=function(t,e){lP[t]=e},n.getAxisPointerClass=function(t){return t&&lP[t]},n.type="axis",n}(aC),hP=Pr(),cP=["axisLine","axisTickLabel","axisName"],pP=["splitArea","splitLine","minorSplitLine"],dP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.axisPointerClass="CartesianAxisPointer",e}return e(n,t),n.prototype.render=function(e,n,i,r){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new Gx,this.group.add(this._axisGroup),e.get("show")){var a=e.getCoordSysModel(),s=yy(a,e),l=new aP(e,h({handleAutoShown:function(){for(var t=a.coordinateSystem.getCartesians(),n=0;n=0},n.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},n.type="legend.plain",n.dependencies=["series"],n.defaultOption={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,symbolRotate:"inherit",symbolKeepAspect:!0,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",inactiveBorderWidth:"auto",itemStyle:{color:"inherit",opacity:"inherit",borderColor:"inherit",borderWidth:"auto",borderCap:"inherit",borderJoin:"inherit",borderDashOffset:"inherit",borderMiterLimit:"inherit"},lineStyle:{width:"auto",color:"inherit",inactiveColor:"#ccc",inactiveWidth:2,opacity:"inherit",type:"inherit",cap:"inherit",join:"inherit",dashOffset:"inherit",miterLimit:"inherit"},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:"sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},n}(WM),SP=S,MP=y,TP=Gx,CP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.newlineDisabled=!1,e}return e(n,t),n.prototype.init=function(){this.group.add(this._contentGroup=new TP),this.group.add(this._selectorGroup=new TP),this._isFirstRender=!0},n.prototype.getContentGroup=function(){return this._contentGroup},n.prototype.getSelectorGroup=function(){return this._selectorGroup},n.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),p=Fl(l,u,h),d=this.layoutInner(t,r,p,i,a,s),f=Fl(c({width:d.width,height:d.height},l),u,h);this.group.x=f.x-d.x,this.group.y=f.y-d.y,this.group.markRedraw(),this.group.add(this._backgroundEl=jy(d,t))}},n.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},n.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=Y(),u=e.get("selectedMode"),c=[];n.eachRawSeries(function(t){!t.get("legendHoverLink")&&c.push(t.id)}),MP(e.getData(),function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var p=new TP;return p.newline=!0,void s.add(p)}var d=n.getSeriesByName(a)[0];if(!l.get(a))if(d){var f=d.getData(),g=f.getVisual("legendLineStyle")||{},y=f.getVisual("legendIcon"),v=f.getVisual("style"),m=this._createItem(d,a,o,r,e,t,g,v,y,u,i);m.on("click",SP($y,a,null,i,c)).on("mouseover",SP(Jy,d.name,null,i,c)).on("mouseout",SP(tv,d.name,null,i,c)),l.set(a,!0)}else n.eachRawSeries(function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var p=s.indexOfName(a),d=s.getItemVisual(p,"style"),f=s.getItemVisual(p,"legendIcon"),g=Rn(d.fill);g&&0===g[3]&&(g[3]=.2,d=h(h({},d),{fill:Gn(g,"rgba")}));var y=this._createItem(n,a,o,r,e,t,{},d,f,u,i);y.on("click",SP($y,null,a,i,c)).on("mouseover",SP(Jy,null,a,i,c)).on("mouseout",SP(tv,null,a,i,c)),l.set(a,!0)}},this)},this),r&&this._createSelector(r,e,i,o,a)},n.prototype._createSelector=function(t,e,n){var i=this.getSelectorGroup();MP(t,function(t){var r=t.type,o=new wb({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===r?"legendAllSelect":"legendInverseSelect"})}});i.add(o);var a=e.getModel("selectorLabel"),s=e.getModel(["emphasis","selectorLabel"]);Ws(o,{normal:a,emphasis:s},{defaultText:t.title}),Aa(o)})},n.prototype._createItem=function(t,e,n,i,r,o,a,s,l,u,h){var c=t.visualDrawType,p=r.get("itemWidth"),d=r.get("itemHeight"),f=r.isSelected(e),g=i.get("symbolRotate"),y=i.get("symbolKeepAspect"),v=i.get("icon");l=v||l||"roundRect";var m=Zy(l,i,a,s,c,f,h),_=new TP,x=i.getModel("textStyle");if(!T(t.getLegendIcon)||v&&"inherit"!==v){var w="inherit"===v&&t.getData().getVisual("symbol")?"inherit"===g?t.getData().getVisual("symbolRotate"):g:0;_.add(Ky({itemWidth:p,itemHeight:d,icon:l,iconRotate:w,itemStyle:m.itemStyle,lineStyle:m.lineStyle,symbolKeepAspect:y}))}else _.add(t.getLegendIcon({itemWidth:p,itemHeight:d,icon:l,iconRotate:g,itemStyle:m.itemStyle,lineStyle:m.lineStyle,symbolKeepAspect:y})); +var b="left"===o?p+5:-5,S=o,M=r.get("formatter"),I=e;C(M)&&M?I=M.replace("{name}",null!=e?e:""):T(M)&&(I=M(e));var D=i.get("inactiveColor");_.add(new wb({style:Us(x,{text:I,x:b,y:d/2,fill:f?x.getTextColor():D,align:S,verticalAlign:"middle"})}));var k=new vb({shape:_.getBoundingRect(),invisible:!0}),A=i.getModel("tooltip");return A.get("show")&&Ns({el:k,componentModel:r,itemName:e,itemTooltipOption:A.option}),_.add(k),_.eachChild(function(t){t.silent=!0}),k.silent=!u,this.getContentGroup().add(_),Aa(_),_.__legendDataIndex=n,_},n.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();VM(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),r){VM("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,f=0===d?"width":"height",g=0===d?"height":"width",y=0===d?"y":"x";"end"===o?c[d]+=l[f]+p:u[d]+=h[f]+p,c[1-d]+=l[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[f]=l[f]+p+h[f],v[g]=Math.max(l[g],h[g]),v[y]=Math.min(0,h[y]+c[1-d]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},n.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},n.type="legend.plain",n}(aC),IP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.setScrollDataIndex=function(t){this.option.scrollDataIndex=t},n.prototype.init=function(e,n,i){var r=Wl(e);t.prototype.init.call(this,e,n,i),ov(this,e,r)},n.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),ov(this,this.option,e)},n.type="legend.scroll",n.defaultOption=el(bP.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800}),n}(bP),DP=Gx,kP=["width","height"],AP=["x","y"],PP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.newlineDisabled=!0,e._currentIndex=0,e}return e(n,t),n.prototype.init=function(){t.prototype.init.call(this),this.group.add(this._containerGroup=new DP),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new DP)},n.prototype.resetInner=function(){t.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},n.prototype.renderInner=function(e,n,i,r,o,a,s){function l(t,e){var i=t+"DataIndex",o=Ls(n.get("pageIcons",!0)[n.getOrient().name][e],{onclick:zm(u._pageGo,u,i,n,r)},{x:-p[0]/2,y:-p[1]/2,width:p[0],height:p[1]});o.name=t,h.add(o)}var u=this;t.prototype.renderInner.call(this,e,n,i,r,o,a,s);var h=this._controllerGroup,c=n.get("pageIconSize",!0),p=M(c)?c:[c,c];l("pagePrev",0);var d=n.getModel("pageTextStyle");h.add(new wb({name:"pageText",style:{text:"xx/xx",fill:d.getTextColor(),font:d.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),l("pageNext",1)},n.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getSelectorGroup(),l=t.getOrient().index,u=kP[l],h=AP[l],c=kP[1-l],p=AP[1-l];r&&VM("horizontal",a,t.get("selectorItemGap",!0));var d=t.get("selectorButtonGap",!0),f=a.getBoundingRect(),g=[-f.x,-f.y],y=s(n);r&&(y[u]=n[u]-f[u]-d);var v=this._layoutContentAndController(t,i,y,l,u,c,p,h);if(r){if("end"===o)g[l]+=v[u]+d;else{var m=f[u]+d;g[l]-=m,v[h]-=m}v[u]+=f[u]+d,g[1-l]+=v[p]+v[c]/2-f[c]/2,v[c]=Math.max(v[c],f[c]),v[p]=Math.min(v[p],f[p]+g[1-l]),a.x=g[0],a.y=g[1],a.markRedraw()}return v},n.prototype._layoutContentAndController=function(t,e,n,i,r,o,a,s){var l=this.getContentGroup(),u=this._containerGroup,h=this._controllerGroup;VM(t.get("orient"),l,t.get("itemGap"),i?n.width:null,i?null:n.height),VM("horizontal",h,t.get("pageButtonItemGap",!0));var c=l.getBoundingRect(),p=h.getBoundingRect(),d=this._showController=c[r]>n[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=B(t.get("pageButtonGap",!0),t.get("itemGap",!0));if(d){var m=t.get("pageButtonPosition",!0);"end"===m?y[i]+=n[r]-p[r]:g[i]+=p[r]+v}y[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(g),h.setPosition(y);var _={x:0,y:0};if(_[r]=d?n[r]:c[r],_[o]=Math.max(c[o],p[o]),_[a]=Math.min(0,p[a]+y[1-i]),u.__rectSize=n[r],d){var x={x:0,y:0};x[r]=Math.max(n[r]-p[r]-v,0),x[o]=_[o],u.setClipPath(new vb({shape:x})),u.__rectSize=x[r]}else h.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var w=this._getPageInfo(t);return null!=w.pageIndex&&ss(l,{x:w.contentPosition[0],y:w.contentPosition[1]},d?t:null),this._updatePageInfoView(t,w),_},n.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},n.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;y(["pagePrev","pageNext"],function(i){var r=i+"DataIndex",o=null!=e[r],a=n.childOfName(i);a&&(a.setStyle("fill",o?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),a.cursor=o?"pointer":"default")});var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",C(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},n.prototype._getPageInfo=function(t){function e(t){if(t){var e=t.getBoundingRect(),n=e[l]+t[l];return{s:n,e:n+e[s],i:t.__legendDataIndex}}}function n(t,e){return t.e>=e&&t.s<=e+o}var i=t.get("scrollDataIndex",!0),r=this.getContentGroup(),o=this._containerGroup.__rectSize,a=t.getOrient().index,s=kP[a],l=AP[a],u=this._findTargetItemIndex(i),h=r.children(),c=h[u],p=h.length,d=p?1:0,f={contentPosition:[r.x,r.y],pageCount:d,pageIndex:d-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!c)return f;var g=e(c);f.contentPosition[a]=-g.s;for(var y=u+1,v=g,m=g,_=null;p>=y;++y)_=e(h[y]),(!_&&m.e>v.s+o||_&&!n(_,v.s))&&(v=m.i>v.i?m:_,v&&(null==f.pageNextDataIndex&&(f.pageNextDataIndex=v.i),++f.pageCount)),m=_;for(var y=u-1,v=g,m=g,_=null;y>=-1;--y)_=e(h[y]),_&&n(m,_.s)||!(v.ia)return!0;if(o){var s=Vy(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return n===!0},t.prototype.makeElOption=function(){},t.prototype.createPointerEl=function(t,e){var n=e.pointer;if(n){var i=LP(t).pointerEl=new QS[n.type](OP(e.pointer));t.add(i)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=LP(t).labelEl=new wb(OP(e.label));t.add(r),hv(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=LP(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=LP(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),hv(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,n=this._api.getZr(),i=this._handle,r=e.getModel("handle"),o=e.get("status");if(!r.get("show")||!o||"hide"===o)return i&&n.remove(i),void(this._handle=null);var a;this._handle||(a=!0,i=this._handle=Ls(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){i_(t.event)},onmousedown:RP(this._onHandleDragMove,this,0,0),drift:RP(this._onHandleDragMove,this),ondragend:RP(this._onHandleDragEnd,this)}),n.add(i)),pv(i,e,!1),i.setStyle(r.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=r.get("size");M(s)||(s=[s,s]),i.scaleX=s[0]/2,i.scaleY=s[1]/2,Uh(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,a)}},t.prototype._moveHandleToValue=function(t,e){lv(this._axisPointerModel,!e&&this._moveAnimation,this._handle,cv(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(cv(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(cv(i)),LP(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var e=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},t.prototype._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"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null),Xh(this,"_doDispatchAxisPointer")},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return n=n||0,{x:t[n],y:t[1-n],width:e[n],height:e[1-n]}},t}(),zP=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=wv(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=dv(i),c=NP[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}var p=yy(a.model,n);mv(e,t,p,n,i,r)},n.prototype.getHandleTransform=function(t,e,n){var i=yy(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=vv(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},n.prototype.updateHandleTransform=function(t,e,n){var i=n.axis,r=i.grid,o=i.getGlobalExtent(!0),a=wv(r,i).getOtherAxis(i).getGlobalExtent(),s="x"===i.dim?0:1,l=[t.x,t.y];l[s]+=e[s],l[s]=Math.min(o[1],l[s]),l[s]=Math.max(o[0],l[s]);var u=(a[1]+a[0])/2,h=[u,u];h[s]=l[s];var c=[{verticalAlign:"middle"},{align:"center"}];return{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:h,tooltipOption:c[s]}},n}(EP),NP={line:function(t,e,n){var i=_v([e,n[0]],[e,n[1]],bv(t));return{type:"Line",subPixelOptimize:!0,shape:i}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:xv([e-i/2,n[0]],[i,r],bv(t))}}},BP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="axisPointer",n.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},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}},n}(WM),FP=Pr(),VP=y,HP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";Sv("axisPointer",n,function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},n.prototype.remove=function(t,e){kv("axisPointer",e)},n.prototype.dispose=function(t,e){kv("axisPointer",e)},n.type="axisPointer",n}(aC),WP=Pr(),GP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="tooltip",n.dependencies=["axisPointer"],n.defaultOption={z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},n}(WM),UP=Uv(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),XP=Uv(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),YP=Xv(XP,"transition"),qP=Xv(UP,"transform"),jP="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+(fm.transform3dSupported?"will-change:transform;":""),ZP=function(){function t(t,e,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,fm.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),o=this._appendToBody=n&&n.appendToBody;Jv(this._styleCoord,r,o,e.getWidth()/2,e.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var a=this;i.onmouseenter=function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0},i.onmousemove=function(t){if(t=t||window.event,!a._enterable){var e=r.handler,n=r.painter.getViewportRoot();Ae(n,t,!0),e.dispatch("mousemove",t)}},i.onmouseleave=function(){a._inContent=!1,a._enterable&&a._show&&a.hideLater(a._hideDelay)}}return t.prototype.update=function(t){var e=this._container,n=Yv(e,"position"),i=e.style;"absolute"!==i.position&&"absolute"!==n&&(i.position="relative");var r=t.get("alwaysShowContent");r&&this._moveIfResized(),this.el.className=t.get("className")||""},t.prototype.show=function(t,e){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=n.style,r=this._styleCoord;n.innerHTML?i.cssText=jP+Qv(t,!this._firstShow,this._longHide)+Kv(r[0],r[1],!0)+("border-color:"+zl(e)+";")+(t.get("extraCssText")||"")+(";pointer-events:"+(this._enterable?"auto":"none")):i.display="none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(t,e,n,i,r){var o=this.el;if(null==t)return void(o.innerHTML="");var a="";if(C(r)&&"item"===n.get("trigger")&&!Gv(n)&&(a=jv(n,i,r)),C(t))o.innerHTML=t+a;else if(t){o.innerHTML="",M(t)||(t=[t]);for(var s=0;s=0?this._tryShow(n,i):"leave"===t&&this._hide(i))},this))},n.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api,i=t.get("triggerOn");if(null!=this._lastX&&null!=this._lastY&&"none"!==i&&"click"!==i){var r=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!n.isDisposed()&&r.manuallyShowTip(t,e,n,{x:r._lastX,y:r._lastY,dataByCoordSys:r._lastDataByCoordSys})})}},n.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!fm.node&&n.getDom()){var r=rm(i,n);this._ticket="";var o=i.dataByCoordSys,a=um(i,e,n);if(a){var s=a.el.getBoundingRect().clone();s.applyTransform(a.el.transform),this._tryShow({offsetX:s.x+s.width/2,offsetY:s.y+s.height/2,target:a.el,position:i.position,positionDefault:"bottom"},r)}else if(i.tooltip&&null!=i.x&&null!=i.y){var l=$P;l.x=i.x,l.y=i.y,l.update(),Tb(l).tooltipConfig={name:null,option:i.tooltip},this._tryShow({offsetX:i.x,offsetY:i.y,target:l},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:o,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var u=Av(i,e),h=u.point[0],c=u.point[1];null!=h&&null!=c&&this._tryShow({offsetX:h,offsetY:c,target:u.el,position:i.position,positionDefault:"bottom"},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},r))}},n.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(rm(i,n))},n.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s){var l=s.getData(),u=im([l.getItemModel(o),s,(s.coordinateSystem||{}).model],this._tooltipModel);if("axis"===u.get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}}},n.prototype._tryShow=function(t,e){var n=t.target,i=this._tooltipModel;if(i){this._lastX=t.offsetX,this._lastY=t.offsetY;var r=t.dataByCoordSys;if(r&&r.length)this._showAxisTooltip(r,t);else if(n){this._lastDataByCoordSys=null;var o,a;hc(n,function(t){return null!=Tb(t).dataIndex?(o=t,!0):null!=Tb(t).tooltipConfig?(a=t,!0):void 0},!0),o?this._showSeriesItemTooltip(t,o,e):a?this._showComponentItemTooltip(t,a,e):this._hide(e)}else this._lastDataByCoordSys=null,this._hide(e)}},n.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=zm(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},n.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=im([e.tooltipOption],i),a=this._renderMode,s=[],l=ph("section",{blocks:[],noHeader:!0}),u=[],c=new nC;y(t,function(t){y(t.dataByAxis,function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),r=t.value;if(e&&null!=r){var o=yv(r,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),p=ph("section",{header:o,noHeader:!G(o),sortBlocks:!0,blocks:[]});l.blocks.push(p),y(t.seriesDataIndices,function(l){var d=n.getSeriesByIndex(l.seriesIndex),f=l.dataIndexInside,g=d.getDataParams(f);if(!(g.dataIndex<0)){g.axisDim=t.axisDim,g.axisIndex=t.axisIndex,g.axisType=t.axisType,g.axisId=t.axisId,g.axisValue=Nd(e.axis,{value:r}),g.axisValueLabel=o,g.marker=c.makeTooltipMarker("item",zl(g.color),a);var y=Yu(d.formatTooltip(f,!0,null)),v=y.frag;if(v){var m=im([d],i).get("valueFormatter");p.blocks.push(m?h({valueFormatter:m},v):v)}y.text&&u.push(y.text),s.push(g)}})}})}),l.blocks.reverse(),u.reverse();var p=e.position,d=o.get("order"),f=mh(l,c,a,d,n.get("useUTC"),o.get("textStyle"));f&&u.unshift(f);var g="richText"===a?"\n\n":"
",v=u.join(g);this._showOrMove(o,function(){this._updateContentNotChangedOnAxis(t,s)?this._updatePosition(o,p,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,v,s,Math.random()+"",r[0],r[1],p,null,c)})},n.prototype._showSeriesItemTooltip=function(t,e,n){var i=this._ecModel,r=Tb(e),o=r.seriesIndex,a=i.getSeriesByIndex(o),s=r.dataModel||a,l=r.dataIndex,u=r.dataType,c=s.getData(u),p=this._renderMode,d=t.positionDefault,f=im([c.getItemModel(l),s,a&&(a.coordinateSystem||{}).model],this._tooltipModel,d?{position:d}:null),g=f.get("trigger");if(null==g||"item"===g){var y=s.getDataParams(l,u),v=new nC;y.marker=v.makeTooltipMarker("item",zl(y.color),p);var m=Yu(s.formatTooltip(l,!1,u)),_=f.get("order"),x=f.get("valueFormatter"),w=m.frag,b=w?mh(x?h({valueFormatter:x},w):w,v,p,_,i.get("useUTC"),f.get("textStyle")):m.text,S="item_"+s.name+"_"+l;this._showOrMove(f,function(){this._showTooltipContent(f,b,y,S,t.offsetX,t.offsetY,t.position,t.target,v)}),n({type:"showTip",dataIndexInside:l,dataIndex:c.getRawIndex(l),seriesIndex:o,from:this.uid})}},n.prototype._showComponentItemTooltip=function(t,e,n){var i=Tb(e),r=i.tooltipConfig,o=r.option||{};if(C(o)){var a=o;o={content:a,formatter:a}}var l=[o],u=this._ecModel.getComponent(i.componentMainType,i.componentIndex);u&&l.push(u),l.push({formatter:o.content});var h=t.positionDefault,c=im(l,this._tooltipModel,h?{position:h}:null),p=c.get("content"),d=Math.random()+"",f=new nC;this._showOrMove(c,function(){var n=s(c.get("formatterParams")||{});this._showTooltipContent(c,p,n,d,t.offsetX,t.offsetY,t.position,e,f)}),n({type:"showTip",from:this.uid})},n.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent;u.setEnterable(t.get("enterable"));var h=t.get("formatter");a=a||t.get("position");var c=e,p=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor")),d=p.color;if(h)if(C(h)){var f=t.ecModel.get("useUTC"),g=M(n)?n[0]:n,y=g&&g.axisType&&g.axisType.indexOf("time")>=0;c=h,y&&(c=hl(g.axisValue,c,f)),c=Ll(c,n,!0)}else if(T(h)){var v=zm(function(e,i){e===this._ticket&&(u.setContent(i,l,t,d,a),this._updatePosition(t,a,r,o,u,n,s))},this);this._ticket=i,c=h(n,i,v)}else c=h;u.setContent(c,l,t,d,a),u.show(t,d),this._updatePosition(t,a,r,o,u,n,s)}},n.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||M(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:M(e)?void 0:{color:i||e.color||e.borderColor}},n.prototype._updatePosition=function(t,e,n,i,r,o,a){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),p=a&&a.getBoundingRect().clone();if(a&&p.applyTransform(a.transform),T(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),M(e))n=Wi(e[0],s),i=Wi(e[1],l);else if(k(e)){var d=e;d.width=u[0],d.height=u[1];var f=Fl(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(C(e)&&a){var g=sm(e,p,u,t.get("borderWidth"));n=g[0],i=g[1]}else{var g=om(n,i,r,s,l,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=lm(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=lm(c)?u[1]/2:"bottom"===c?u[1]:0),Gv(t)){var g=am(n,i,r,s,l);n=g[0],i=g[1]}r.moveTo(n,i)},n.prototype._updateContentNotChangedOnAxis=function(t,e){var n=this._lastDataByCoordSys,i=this._cbParamsList,r=!!n&&n.length===t.length;return r&&y(n,function(n,o){var a=n.dataByAxis||[],s=t[o]||{},l=s.dataByAxis||[];r=r&&a.length===l.length,r&&y(a,function(t,n){var o=l[n]||{},a=t.seriesDataIndices||[],s=o.seriesDataIndices||[];r=r&&t.value===o.value&&t.axisType===o.axisType&&t.axisId===o.axisId&&a.length===s.length,r&&y(a,function(t,e){var n=s[e];r=r&&t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex}),i&&y(t.seriesDataIndices,function(t){var n=t.seriesIndex,o=e[n],a=i[n];o&&a&&a.data!==o.data&&(r=!1)})})}),this._lastDataByCoordSys=t,this._cbParamsList=e,!!r},n.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},n.prototype.dispose=function(t,e){!fm.node&&e.getDom()&&(Xh(this,"_updatePosition"),this._tooltipContent.dispose(),kv("itemTooltip",e))},n.type="tooltip",n}(aC);qd(hm),t.version=uI,t.dependencies=hI,t.PRIORITY=II,t.init=ip,t.connect=rp,t.disConnect=op,t.disconnect=vD,t.dispose=ap,t.getInstanceByDom=sp,t.getInstanceById=lp,t.registerTheme=up,t.registerPreprocessor=hp,t.registerProcessor=cp,t.registerPostInit=pp,t.registerPostUpdate=dp,t.registerUpdateLifecycle=fp,t.registerAction=gp,t.registerCoordinateSystem=yp,t.getCoordinateSystemDimensions=vp,t.registerLayout=mp,t.registerVisual=_p,t.registerLoading=wp,t.setCanvasCreator=bp,t.registerMap=Sp,t.getMap=Mp,t.registerTransform=_D,t.dataTool=ID,t.registerLocale=nl,t.zrender=jx,t.matrix=a_,t.vector=Xm,t.zrUtil=Vm,t.color=Q_,t.helper=yk,t.number=Tk,t.time=Ck,t.graphic=Ik,t.format=Dk,t.util=kk,t.List=HD,t.ComponentModel=WM,t.ComponentView=aC,t.SeriesModel=oC,t.ChartView=uC,t.extendComponentModel=xf,t.extendComponentView=wf,t.extendSeriesModel=bf,t.extendChartView=Sf,t.throttle=Gh,t.use=qd,t.setPlatformAPI=r,t.parseGeoJSON=nf,t.parseGeoJson=nf,t.env=fm,t.Model=fM,t.Axis=Lk,t.innerDrawElementOnCanvas=Wc}); \ No newline at end of file diff --git a/components/history-modal/index.vue b/components/history-modal/index.vue new file mode 100644 index 0000000..fc5d830 --- /dev/null +++ b/components/history-modal/index.vue @@ -0,0 +1,330 @@ + + + \ No newline at end of file diff --git a/components/new-canvas/index.vue b/components/new-canvas/index.vue new file mode 100644 index 0000000..708b0bc --- /dev/null +++ b/components/new-canvas/index.vue @@ -0,0 +1,361 @@ + + + + + \ No newline at end of file diff --git a/components/new-search/index.vue b/components/new-search/index.vue new file mode 100644 index 0000000..9b55a6a --- /dev/null +++ b/components/new-search/index.vue @@ -0,0 +1,79 @@ + + + + + \ No newline at end of file diff --git a/components/section/index.vue b/components/section/index.vue new file mode 100644 index 0000000..487e6ad --- /dev/null +++ b/components/section/index.vue @@ -0,0 +1,52 @@ + + + + + \ No newline at end of file diff --git a/components/station-dropdow/index.vue b/components/station-dropdow/index.vue new file mode 100644 index 0000000..b006036 --- /dev/null +++ b/components/station-dropdow/index.vue @@ -0,0 +1,133 @@ + + + \ No newline at end of file diff --git a/h5.html b/h5.html new file mode 100644 index 0000000..7cab347 --- /dev/null +++ b/h5.html @@ -0,0 +1,50 @@ + + + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + + + + + + + + + + + +
+ + + + diff --git a/locales/en_EN.js b/locales/en_EN.js new file mode 100644 index 0000000..3670bd5 --- /dev/null +++ b/locales/en_EN.js @@ -0,0 +1,60 @@ +import homePage from './homePage/en' +export default { + homePage, + common: { + title: 'Aidex', + }, + nav: { + home: 'Home page', + run:"Run", + energyStorage: 'Energy storage', + user: 'Mine', + }, + login: { + title: 'Login', + account:"Account", + placeholderAccount: 'Enter Account', + pwd:"Password", + placeholderPassword: 'Enter Password', + code:"Verification code", + codeTip:"Please enter the verification code", + autoLogin: 'Auto Login', + loginButton: 'Login', + logoutButton: 'Logout', + forget: 'Forget Password', + reg: 'Resister Account', + noLogin: 'No Login', + privacyPolicy:"Privacy Policy", + userAgreement:"User agreement", + codeLoading:"Getting verification code", + noStation:"No power station", + noFunction:"The function is not yet open.", + lang:'EN' + }, + home: { + title: 'Home' + }, + user: { + title: 'User', + privacyPolicy:"Privacy Policy", + userAgreement:"User agreement", + edition:"Version", + language:"Language", + loginOut:"Log out", + chinese:"Chinese", + english:"English", + german:'German', + italian:'Italian', + spanish:'Spanish', + changeSuccess:"The switch was successful", + languageChange:"Language Switch", + privacy:"Privacy Policy", + agreement:"User Agreement" + }, + msg: { + title: 'Message' + }, + tips:{ + noData:"No data available" + } +} diff --git a/locales/homePage/en.js b/locales/homePage/en.js new file mode 100644 index 0000000..2cd69ae --- /dev/null +++ b/locales/homePage/en.js @@ -0,0 +1,461 @@ +export default { + home: { + esiCab: 'Cabinet', + gridCab: 'Grid-con Cabinet', + grid: 'Grid', + workStatus: 'Work Status:', + activePower: 'Ac-Power(kW):', + charge: 'Charge', + disCharge: 'Discharge', + standing: 'Standing', + load: 'Load', + gridCabSwitch: 'Grid-con Switch:', + dCCabin: 'DC Cabin', + PCSCab: 'PCS Cabin', + legend: 'Lengend', + normal: 'Normal', + fault: 'Fault', + overhaul: 'Overhaul', + shutStan: 'Standby/Shutdown', + reactivePower: 'Re-Power(kW):', + totalV: 'Total Voltage(V):', + current: 'Current(A):', + maxCellVol: 'Maximum cell voltage:', + minCellVol: 'Maximum voltage difference:', + shutdown: 'Shutdown', + standby: 'Standby', + run: 'Run', + allActivePower: 'All Ac-Power(kW):', + cabinet: 'Cabinet', + gridMeter: 'Grid Meter', + photovoltaic: 'Photovoltaic', + battery: 'Battery', + status: 'Status:', + busbar: 'Busbar', + dieselGenerator: 'Diesel Generator', + ammeter: 'Ammeter', + device: 'Device', + earning: 'Earning', + alarm: 'Alarm', + policy: 'Policy', + stationTopo: 'Site Topology', + deviceMonitor: 'Device Monitor', + runCurve: 'Run Time Curve', + chargeDisData: 'Charge/Discharge Data', + stationData: 'stationData', + environmentalData: 'Environmental Control Data', + sevenDay: 'Seven', + monthDay: 'Month', + yearDay: 'Year', + monthThree: 'three Months', + tip: 'Tip', + loading: 'Loading...', + power: 'Power(kW)', + photovoltaicCharge: 'Photovoltaic Charge', + chargingandDischarging: 'Electricity(kWh)', + safeDaysUnit: 'Safe Operation Days(Day)', + totalCapacity: 'Total Installed Capacity', + systemConversionEfficiency: 'System Conversion Efficiency', + currentPower: 'Current Power', + totalCharge: 'Total Charge', + totalDischarge: 'Total Discharge', + dailyCharge: 'Daily Charge', + dailyDischarge: 'Daily Discharge', + dayPhotovoltaic: 'Photovoltaic Power Generation', + noData: 'No Data', + login:'Login', + account:'Account', + password:'Password', + placeAccount:"Place input account", + placePassword:'Place input password', + noLogin:'The feature is not available yet', + station:'Station', + electricityPrice:'National electricity price', + mine:'Mine', + on: 'On', + off: 'Off', + lang:'EN', + noPermission: "No access permission", + contactAdmin: "Group system is not open to the public yet. Please contact the administrator to activate an account", + title: "Guest Mode" + }, + price: { + elePriceQuery: 'Electricity Price Query', + queryCriteria: 'Query criteria', + sift: 'sift', + provinceRegion: 'Province Region', + selectProvinceRegion: 'Please select province region', + customerType: 'Electricity Customer', + selectEleCustomers: 'Please select electricity customer', + eleType: 'Electricity Type', + selectEleType: 'Please select electricity type', + volLevel: 'Voltage Level', + selectVoltageLevel: 'Please select voltage level', + exeTime: 'Execute Time', + selectExeTime: 'selectExeTime', + noData: 'No Data', + eleLevel: 'Electricity Price Level', + fsdd: 'The price of time-of-use electricity', + dietailUnit: '(RMB/kWh)', + eleprice: 'The price of electricity and electricity', + nonTime: 'Non-time-of-use Electricity Price', + proxyPrice: 'Proxy power purchase price', + transmission: 'transmission', + attachPrice: 'Government funds and surcharges', + curve: 'Curve', + list: 'List', + noMoreData: 'No More Data', + spike: 'Spike', + speak: 'Speak', + regular: 'Regular', + lowValley: 'Low Valley', + deepValley: 'Deep Valley', + peakDifference: 'Maximum peak-to-valley difference', + peakDifferencePrice: 'Maximum peak-to-valley spread', + dayHighPrice: 'The highest daily electricity price', + dayLowtPrice: 'The lowest daily electricity price', + historytrend: 'Historical trends', + reset: 'Reset', + sure: 'Sure', + sharp: 'Sharp', + peak: 'Peak', + flat: 'Flat', + valley: 'Valley', + + }, + mine: { + // accountSec: 'Account security', + // aboutUs: 'About us', + // message: 'Message notifications', + // changeLanguage: 'Switch languages', + // sysSetting: 'System settings', + // messageAlerts: 'Message alerts', + // acceptMessageAlerts: 'Accept Message alerts', + // messageDetail: 'The notification bar displays the message details', + // closeMessage: 'After disabling, when a message is received, only a prompt is displayed, and the message content is not displayed.', + // sound: 'Sound & Vibration', + // acceptSound: 'Play a sound or vibration when you receive a message', + // settingSound: 'Go to System Settings and modify the sound and vibration', + // update: 'Software update alerts', + // updateAlerts: 'Alerts are given when a new version of the software is released', + // noUpdate: 'The Mini Program or H5 is already the latest version, so there is no need to check for updates!', + // general: 'General', + // version: 'Current version', + // Privacy: 'Privacy Policy', + // UserAgreement: 'User Agreement', + // logOut: 'Log Out', + // notAva: 'This feature is not available at this time', + // setPassword: 'Please set a login password', + // passwordService: 'Update your passwords regularly to improve security', + // oldPassword: 'Old passwords', + // inputOldPossword: 'Please enter your old password', + // newPassword: 'New passwords', + // inputNewPassword: 'Please enter a new password', + // surePassword: 'Confirm your password', + // inputSurePassword: 'Please confirm your password', + // PasswordError: 'The password must be a 6-12 digit number, a combination of characters (not a pure number)', + // submit: 'Submit', + // resetSubmit: 'Please re-enter your password', + // passwordEqual: 'The passwords entered twice are not equal', + // tip: 'Tip', + // updateSuccess: 'The password is successfully changed, please log in again.', + // inputError: 'The information you filled in is incorrect, please correct it according to the prompts.', + // hoenergypower: 'Hoenergy', + // companyHomepage: 'Company homepage', + // technicalServices: 'Technical services', + // termsOfService: 'Terms of Service', + // downUpdate: 'Whether or not to download the update?', + // appTitle: 'Control platform', + // lookDetail: 'Detail', + // noMessage: 'No Message', + // sureRead: 'Confirm Read', + // cancel: 'Cancel', + // messageDetail: 'Message Detail', + // operateSuccess: 'Operate Success', + // messageReaded: 'The message has already been read and does not need to be repeated' + }, + device: { + inputNameQuery: 'Input name to search', + query: 'Search', + all: 'All', + queryResult:'Search results', + pcsTopu:'PCS Topology', + totalAcReaPower:'Total ac/re power', + timeGranularity:'Time granularity', + deviceData: 'Device Data', + acPower: 'Ac Power', + acRecPower: 'Ac Re-Power', + gridFrequency: 'Grid frequency', + abLineVol: 'AB line voltage', + bcLineVol: 'BC line voltage', + caLineVol: 'CA line voltage', + acur:'A phase current', + bcur:'B phase current', + ccur:'C phase current', + DCPower: 'DC power', + DCVol: 'DC voltage', + DCCurrent: 'DC current', + acbreaker:'AC Breaker', + dcbreaker:'DC Breaker', + runState: 'Run state', + rsState: 'Distance/Local State', + gridMode: 'And in off-grid mode', + deviceState: 'Device state', + totalActivePower: 'Total Power', + totalReactivePower: 'Total Re-Power', + local: 'Local', + distance: 'Distance', + grid: 'Grid', + offGrid: 'Off-grid', + standby: 'Standby', + shutdown: 'Shutdown', + run: 'Run', + fault: 'Fault', + charge: 'Charge', + discharge: 'Discharge', + standing: 'Standing', + localAutomatic:'Local automatic', + localManual:'Local manual', + timesArr: [{ + label: '1 Minutes', + value: 1 + }, + { + label: '5 Minutes', + value: 5 + }, + { + label: '10 Minutes', + value: 10 + }, + { + label: '15 Minutes', + value: 15 + }, + { + label: '20 Minutes', + value: 20 + }, + { + label: '30 Minutes', + value: 30 + } + ], + yx: 'TS', + yc: 'TM', + data:'Data', + noData:'No Data', + loadText: { + loadmore: 'load More', + loading: 'loading', + nomore: 'No more', + }, + clusterTotalVol: 'Cluster Total Voltage/SOC', + runData: 'runData', + cumCharge: 'Cumulative charge', + cumDischarge: 'Cumulative discharge', + avgTem: 'Average temperature', + avgVol: 'Average voltage', + maxCellVol: 'Maximum cell voltage', + minCellVol: 'Minimum cell voltage', + maxCellTem: 'Maximum cell temperature', + minCellTem: 'Minimum cell temperature', + maxvolDiff: 'Maximum voltage difference', + maxTemDiff: 'Maximum temperature difference', + batteryGroupNum: 'Battery number', + cellPostion: 'CELL Position', + vol: 'Voltage', + volqua: 'Voltage quality', + curqua: 'Current quality', + acRea: 'Active/Reactive', + avol: 'A phase voltage', + bvol: 'B phase voltage', + cvol: 'C phase voltage', + zxygzdl:'Forward total ac-power', + dlj:'Electricity(sharp)', + dlf:'Electricity(peak)', + dlp:'Electricity(flat)', + dlg:'Electricity(valley)', + fxygzdl:'Reverse total ac-power', + hxyggl:'Conjunct ac-power', + hxwggl:'Conjunct re-power', + hxglys:'Conjunct power factor', + a:'A phase', + b:'B phase', + c:'C phase', + active:'Active', + reactive:'Reactive', + current:'Current', + EMU: 'EMU Run Data', + on: 'On', + off: 'Off', + emuSwitchPosition: 'EMU Switch position', + emuRemoteOperation: 'EMU Remote operation', + emuKnifePosition: 'EMU Ground knife position', + online: 'Online', + offline: 'Offline', + temConCabRunData: 'Tem-control box Run Data', + aTem: 'A phase temperature', + bTem: 'B phase temperature', + cTem: 'C phase temperature', + dehumidifierRunData: 'Dehumidifier Run Data', + tem: 'temperature', + hum: 'humidity', + humStartValue:'Humidity start value', + humStopValue:'Humidity stop value', + ammeterRunData:'Ammeter Run Data', + frequency:'Frequency', + perceptualPower:'Perceptual power', + CapacitivePower:'Capacitive power', + volRatio: 'Voltage size distribution ratio', + maxVol: 'Maximum voltage', + cellPostion: 'CELL Position', + minVol: 'Minimum voltage', + maxTem: 'Maximum temperature', + minTem: 'Minimum temperature', + cellVolChart: 'Cell voltage histogram', + cellTemChart: 'Cell Temperature histogram', + volUnit: 'Voltage/Number', + temUnit: 'Temperature/Number', + num:'number', + stackTotalVol:'Stack Total Voltage/SOC', + leftTemCabin:'Left Side Temperature', + leftHubCabin:'Left Side Humidity', + rightTemCabin:'Right Side Temperature', + rightHubCabin:'Right Side Humidity', + stackCurrent:'Stack Current', + stackTotalVol:'Stack Voltage', + stackTotalCurrent:'Stack Total Current', + stackSoc:'Stack SOC', + CumulativeCharge:'Cumulative charge', + CumulativeDischarge:'Cumulative discharge', + zdz:'Insulation positive resistance', + fdz:'Insulation negative resistance', + rechargeCapacity:'Rechargeable capacity', + dischargeCapacity:'Discharging capacity', + totalMaxVolData:'Highest total cluster pressure', + stackCell:'Cluster number', + totalMinVolData:'Lowest total cluster pressure', + stackNum:'Battery cluster number', + groupNum:'Battery pack number', + cellLocation:'Cell location', + historyData:'History Data' + }, + earning: { + changeDischargePro: 'Charging/Discharging Project', + capacity: 'Capacity', + monthTotalCharge: 'Total Charging Volume Monthly', + monthTotalDischarge: 'Total Discharging Volume Monthly', + monthEff: 'Monthly Conversion Efficiency', + chargeVol: 'Cumulative Charging Volume', + dischargeVol: 'Cumulative Discharging Volume', + totalEff: 'Cumulative Conversion Efficiency', + projectRevenue: 'Project Revenue', + monthTotalChargePrice: 'Total Charging Price Monthly(RMB)', + monthTotalDisChargePrice: 'Total Discharging Price Monthly(RMB)', + earnings: 'Revenue(RMB)', + earningsDetail: 'Revenue Detail', + charge: 'Charge', + ele: 'Electricity(kWh)', + expend: 'Spend(RMB)', + noChargeData: 'No Charge Data', + disCharge: 'Discharge', + noDisChargeData: 'No Discharge Data', + year:'Year', + month:'Month', + day:'Day', + hour:'Hour', + minute:'Minute', + second:'Second' + }, + alarm: { + sift: 'sift', + device: 'Device', + placeSelect: 'Place Select', + event: 'Events', + level: 'Alarm Level', + timeRange: 'Time Range', + placeholderDate: 'placeholder select date', + reset: 'Reset', + sure: 'Sure', + noData: 'No Data', + confirm: 'Confirmed', + noConfirmed: 'Not Confirmed', + alarmTypeList: [{ + name: 'Real-Time Alarm' + }, + { + name: 'History Alarm' + } + ], + // realTimeAlarm: 'Real-Time Alarm', + // HistoryAlarm: 'History Alarm', + loadText: { + loadmore: 'load More', + loading: 'loading', + nomore: 'No more', + }, + allStation:'All Station', + alarm:'Alarm', + noDevice:'No Device Data', + placeholderInput:'Please Input Alarm Content', + status:'Status', + station:'Station', + alarmTime:'Alarm Time', + confirmer:'Confirmer', + confirmTime:'Confirm Time' + }, + policy: { + planCurve: 'Plan Curve', + planCurveTem: 'Plan Curve Template', + IssueDevice: 'Command Distribution Device', + operateOrNot: 'Operate Or Not', + socUplimit: 'SOC Upper Limit', + socDownlimit: 'SOC Lower Limit', + effectiveTime: 'Effective Time', + selectEffectiveTime: 'Please select effective time', + distributeResult: 'Distribute Result', + notDelivered: 'Not Delivered', + commandDistribution: 'Command Distribution', + controlDistribution: 'Control Distribution', + genSetting: 'General settings', + save: 'Save', + pleaseInputValue: 'Please input value', + pleaseInputPassword: 'Please input password', + password: 'Password', + policyTypeList: [{ + name: 'Command Distribution' + }, + { + name: 'General settings' + } + ], + radioList: [{ + name: "Operate", + disabled: false, + }, + { + name: "Not Operate", + disabled: false, + }, + ], + + selectIssueDevice: 'Command Distribution device', + deliverErrorNewTip: 'Mapping relationship is misconfigured or not configured, confirm and try again!', + passwordSuccess: 'Password Success', + passwordError: 'Password Error', + isOpen: 'isOpen', + isClose: 'isClose', + distributeSuccess: 'Distribute Succeeded', + distributeFail: 'Distribute Failed', + isNum: 'Please check that the value you enter is a number', + saveSuccess: 'Save Succeeded', + saveError: 'Save Failed', + delivered: 'Delivered', + selectPlanCurveTem: 'Please select plan curve template', + deliverErrorTip: 'Charging and discharging power is greater than the rated power, please confirm the plan curve setting', + deliverTip: 'Are you sure you want to delivery of the command?', + + } + +} \ No newline at end of file diff --git a/locales/homePage/zh.js b/locales/homePage/zh.js new file mode 100644 index 0000000..f19f877 --- /dev/null +++ b/locales/homePage/zh.js @@ -0,0 +1,462 @@ +export default { + home: { + esiCab: '储能一体柜', + gridCab: '并网柜', + grid: '用户配电', + workStatus: '工作状态:', + activePower: '有功功率(kW):', + charge: '充电', + disCharge: '放电', + standing: '静置', + load: '负载', + gridCabSwitch: '并网柜开关:', + dCCabin: '直流舱', + PCSCab: 'PCS升压一体舱', + legend: '图例', + normal: '正常运行', + fault: '故障', + overhaul: '检修', + shutStan: '待机/停机', + reactivePower: '无功功率(kW):', + totalV: '总电压(V):', + current: '电流(A):', + maxCellVol: '单体最高电压:', + minCellVol: '单体最低电压:', + shutdown: '停机', + standby: '待机', + run: '运行', + allActivePower: '总有功功率(kW):', + cabinet: '储能柜', + gridMeter: '电网侧电表', + photovoltaic: '光伏', + battery: '电池', + status: '状态:', + busbar: '母线', + dieselGenerator: '柴油发电机', + ammeter: '电表', + device: '设备', + earning: '收益', + alarm: '告警', + policy: '策略', + stationTopo: '电站拓扑', + deviceMonitor: '设备监控', + runCurve: '运行曲线', + chargeDisData: '充放电数据', + stationData: '电站数据', + environmentalData: '环控数据', + sevenDay: '近七天', + monthDay: '近一月', + monthThree: '近三月', + yearDay: '近一年', + tip: '提示', + loading: '资源加载中...', + power: '功率(kW)', + photovoltaicCharge: '光伏充电', + chargingandDischarging: '充放电量', + safeDaysUnit: '安全运行天数(天)', + totalCapacity: '装机总容量', + systemConversionEfficiency: '系统转化效率', + currentPower: '当前功率', + totalCharge: '总充电量', + totalDischarge: '总放电量', + dailyCharge: '日充电量', + dailyDischarge: '日放电量', + dayPhotovoltaic: '光伏发电量', + noData: '暂无数据', + login:'登录', + account:'账号', + password:'密码', + placeAccount:"请输入账号", + placePassword:'请输入密码', + noLogin:'功能暂未开放', + station:'电站', + electricityPrice:'全国电价', + mine:'我的', + on: '合位', + off: '分位', + lang:'ZH', + noPermission: "暂无权限访问", + contactAdmin: "集团系统,暂未对外开放,请联系管理员开通账号", + title: "游客模式" + }, + price: { + elePriceQuery: '电价查询', + queryCriteria: '查询条件', + sift: '筛选', + provinceRegion: '省市区域', + selectProvinceRegion: '请选择省市区域', + customerType: '用电客户', + selectEleCustomers: '请选择用电客户', + eleType: '用电部制/分类', + selectEleType: '请选择用电部制/分类', + volLevel: '电压等级', + selectVoltageLevel: '请选择电压等级', + exeTime: '执行日期', + selectExeTime: '请选择执行日期', + noData: '数据为空', + eleLevel: '电价水平', + fsdd: '分时电度用电价格', + dietailUnit: '(元/千瓦时)', + eleprice: '电度用电价格', + nonTime: '非分时电价', + proxyPrice: '代理购电价格', + transmission: '输电电价', + attachPrice: '政府性基金及附加电价', + curve: '曲线', + list: '列表', + noMoreData: '暂无更多数据', + spike: '尖峰', + speak: '高峰', + regular: '平时', + lowValley: '低谷', + deepValley: '深谷', + peakDifference: '最大峰谷差', + peakDifferencePrice: '最大峰谷差价', + dayHighPrice: '日最高电价', + dayLowtPrice: '日最低电价', + historytrend: '历史趋势', + reset: '重置', + sure: '确认', + sharp: '尖', + peak: '峰', + flat: '平', + valley: '谷', + + }, + mine: { + // accountSec: '账号安全', + // aboutUs: '关于我们', + // message: '消息通知', + // changeLanguage: '切换语言', + // sysSetting: '系统设置', + // messageAlerts: '消息提醒', + // acceptMessageAlerts: '接受消息提醒', + // messageDetail: '通知栏显示消息详情', + // closeMessage: '关闭后,当收到消息的时候,只显示有提示,不显示消息内容。', + // sound: '声音与振动', + // acceptSound: '收到消息后播放声音或振动', + // settingSound: '前往系统设置中,修改声音与振动', + // update: '软件更新提醒', + // updateAlerts: '当本软件有新版本发布时,给予提醒', + // noUpdate: '小程序端或H5端已是最新版,无需检查更新!', + // general: '通用', + // version: '当前版本', + // Privacy: '隐私政策', + // UserAgreement: '用户协议', + // logOut: '退出登录', + // notAva: '此功能暂未开放', + // setPassword: '请设置登录密码', + // passwordService: '定期更新密码提高安全性', + // oldPassword: '旧密码', + // inputOldPossword: '请输入旧密码', + // newPassword: '新密码', + // inputNewPassword: '请输入新密码', + // surePassword: '确认密码', + // inputSurePassword: '请确认密码', + // PasswordError: '密码必须是6-12位的数字,字符组合(不能是纯数字)', + // submit: '提交', + // resetSubmit: '请重新输入密码', + // passwordEqual: '两次输入的密码不相等', + // tip: '提示', + // updateSuccess: '密码修改成功,请重新登录。', + // inputError: '您填写的信息有误,请根据提示修正。', + // hoenergypower: '弘正储能', + // companyHomepage: '公司首页', + // technicalServices: '技术服务', + // termsOfService: '服务条款', + // downUpdate: '是否下载更新?', + // appTitle: '智慧储能管控平台', + // lookDetail: '查看详情', + // noMessage: '暂无消息', + // sureRead: '确认已读', + // cancel: '取消', + // messageDetail: '消息详情', + // operateSuccess: '操作成功', + // messageReaded: '该消息已读,无需重复操作' + }, + device: { + inputNameQuery: '输入名称搜索', + query: '搜索', + all: '全部', + queryResult: '搜索结果', + pcsTopu: 'PCS拓扑图', + totalAcReaPower: '总有功/总无功功率', + timeGranularity: '时间粒度', + deviceData: '设备数据', + acPower: '交流有功', + acRecPower: '交流无功', + gridFrequency: '电网频率', + abLineVol: 'AB线电压', + bcLineVol: 'BC线电压', + caLineVol: 'CA线电压', + acur: 'A相电流', + bcur: 'B相电流', + ccur: 'C相电流', + DCPower: '直流功率', + DCVol: '直流电压', + DCCurrent: '直流电流', + acbreaker: '交流断路器', + dcbreaker: '直流断路器', + runState: '运行状态', + rsState: '远方/就地状态', + gridMode: '并离网状态', + deviceState: '设备状态', + totalActivePower: '总有功功率', + totalReactivePower: '总无功功率', + local: '就地', + distance: '远方', + grid: '并网', + offGrid: '离网', + standby: '待机', + shutdown: '停机', + run: '运行', + fault: '故障', + charge: '充电', + discharge: '放电', + standing: '静置', + localAutomatic: '本地自动', + localManual: '本地手动', + timesArr: [{ + label: '1分钟', + value: 1 + }, + { + label: '5分钟', + value: 5 + }, + { + label: '10分钟', + value: 10 + }, + { + label: '15分钟', + value: 15 + }, + { + label: '20分钟', + value: 20 + }, + { + label: '30分钟', + value: 30 + } + ], + yx: '遥信', + yc: '遥测', + data: '数据', + noData: '暂无数据', + loadText: { + loadmore: '轻轻上拉', + loading: '努力加载中', + nomore: '实在没有了', + }, + clusterTotalVol: '簇总压/SOC', + runData: '运行数据', + cumCharge: '累计充电量', + cumDischarge: '累计放电量', + avgTem: '平均温度', + avgVol: '平均电压', + maxCellVol: '单体最高电压', + minCellVol: '单体最低电压', + maxCellTem: '单体最高温度', + minCellTem: '单体最低温度', + maxvolDiff: '最大电压差', + maxTemDiff: '最大温度差', + batteryGroupNum: '电池组号', + cellPostion: '电芯位置', + vol: '电压', + volqua: '电压质量', + curqua: '电流质量', + acRea: '有功/无功', + avol: 'A相电压', + bvol: 'B相电压', + cvol: 'C相电压', + zxygzdl: '正向有功总电量', + dlj: '电量(尖)', + dlf: '电量(峰)', + dlp: '电量(平)', + dlg: '电量(谷)', + fxygzdl: '反向有功总电量', + hxyggl: '合相有功功率', + hxwggl: '合相无功功率', + hxglys: '合相功率因数', + a: 'A相', + b: 'B相', + c: 'C相', + active: '有功', + reactive: '无功', + current: '电流', + EMU: '并网柜运行数据', + on: '合位', + off: '分位', + emuSwitchPosition: '并网柜开关位置', + emuRemoteOperation: '并网柜远方操作', + emuKnifePosition: '并网柜地刀位置', + online: '在线', + offline: '离线', + temConCabRunData: '温控箱运行数据', + aTem: 'A相温度', + bTem: 'B相温度', + cTem: 'C相温度', + dehumidifierRunData: '除湿仪运行数据', + tem: '温度', + hum: '湿度', + humStartValue: '湿度启动值', + humStopValue: '湿度停止值', + ammeterRunData: '电表运行数据', + frequency: '频率', + perceptualPower: '感性功电量', + CapacitivePower: '容性功电量', + volRatio: '电压大小分布比例', + maxVol: '最高电压', + cellPostion: 'CELL位置', + minVol: '最低电压', + maxTem: '最高温度', + minTem: '最低温度', + cellVolChart: '单体电压柱状图', + cellTemChart: '单体温度柱状图', + volUnit: '电压/个', + temUnit: '温度/个', + num: '个', + stackTotalVol: '堆总压/SOC', + leftTemCabin: '舱左侧温度', + leftHubCabin: '舱左侧湿度', + rightTemCabin: '舱右侧温度', + rightHubCabin: '舱右侧湿度', + stackCurrent: '堆电流', + stackTotalVol: '堆总压', + stackTotalCurrent: '堆总电流', + stackSoc: '堆SOC', + CumulativeCharge: '累积充电量', + CumulativeDischarge: '累计放电量', + zdz: '绝缘正电阻', + fdz: '绝缘负电阻', + rechargeCapacity: '可充电量', + dischargeCapacity: '可放电量', + totalMaxVolData: '最高簇总压', + stackCell: '簇号', + totalMinVolData: '最低簇总压', + stackNum: '电池簇号', + groupNum: '电池组号', + cellLocation: '电芯位置', + historyData: '历史数据' + }, + earning: { + changeDischargePro: '项目充放电概况', + capacity: '装机容量', + monthTotalCharge: '本月总充电量', + monthTotalDischarge: '本月总放电量', + monthEff: '月系统转换效率', + chargeVol: '累计充电量', + dischargeVol: '累计放电量', + totalEff: '累计系统转换效率', + projectRevenue: '项目收益情况', + monthTotalChargePrice: '本月总充电量总价(元)', + monthTotalDisChargePrice: '本月总放电量总价(元)', + earnings: '收益(元)', + earningsDetail: '收益详情', + charge: '充电', + ele: '电量(kWh)', + expend: '支出(元)', + noChargeData: '暂无充电数据', + disCharge: '放电', + noDisChargeData: '暂无放电数据', + year: '年', + month: '月', + day: '日', + hour: '时', + minute: '分', + second: '秒' + + }, + alarm: { + sift: '筛选', + device: '所属设备', + placeSelect: '请选择', + event: '事件', + level: '告警等级', + timeRange: '时间范围', + placeholderDate: '请选择时间范围', + reset: '重置', + sure: '确认', + noData: '数据为空', + confirm: '已确认', + noConfirmed: '未确认', + alarmTypeList: [{ + name: '实时告警' + }, + { + name: '历史告警' + } + ], + // realTimeAlarm: '实时告警', + // HistoryAlarm: '历史告警', + loadText: { + loadmore: '轻轻上拉', + loading: '努力加载中', + nomore: '实在没有了', + }, + allStation: '所有电站', + alarm: '告警', + noDevice: '暂无设备数据', + placeholderInput: '请输入告警内容', + status: '状态', + station: '所属电站', + alarmTime: '告警时间', + confirmer: '确认人', + confirmTime: '确认时间', + + }, + policy: { + planCurve: '计划曲线', + planCurveTem: '计划曲线模板', + IssueDevice: '命令下发设备', + operateOrNot: '是否投运', + socUplimit: 'SOC上限', + socDownlimit: 'SOC下限', + effectiveTime: '生效时间', + selectEffectiveTime: '请选择生效时间', + distributeResult: '下发结果', + notDelivered: '未下发', + commandDistribution: '命令下发', + controlDistribution: '控制下发', + genSetting: '通用设置', + save: '保存', + pleaseInputValue: '请输入值', + pleaseInputPassword: '请输入密码', + password: '密码', + policyTypeList: [{ + name: '命令下发' + }, + { + name: '通用设置' + } + ], + radioList: [{ + name: "投运", + disabled: false, + }, + { + name: "不投运", + disabled: false, + }, + ], + + selectIssueDevice: '请选择命令下发设备', + deliverErrorNewTip: '映射关系配置错误或未配置,请确认后重试!', + passwordSuccess: '密码正确', + passwordError: '密码错误', + isOpen: '是否开启', + isClose: '是否关闭', + distributeSuccess: '下发成功', + distributeFail: '下发失败', + isNum: '请检查输入的值是否为数字', + saveSuccess: '保存成功', + saveError: '保存失败', + delivered: '已下发', + selectPlanCurveTem: '请选择计划曲线模板', + deliverErrorTip: '充放电功率大于额定功率,请确认计划曲线设置!', + deliverTip: '是否确定下发命令?', + + } +}; \ No newline at end of file diff --git a/locales/zh_CN.js b/locales/zh_CN.js new file mode 100644 index 0000000..69eed67 --- /dev/null +++ b/locales/zh_CN.js @@ -0,0 +1,63 @@ +import homePage from './homePage/zh' +export default { + homePage, + common: { + title: 'Aidex', + }, + nav: { + home: '首页', + run:"运行", + energyStorage: '储能', + user: '我的', + }, + login: { + title: '登录', + account:"账号", + placeholderAccount: '请输入账号', + pwd:"密码", + placeholderPassword: '请输入密码', + code:"验证码", + codeTip:"请输入验证码", + autoLogin: '自动登录', + loginButton: '登录', + logoutButton: '退出登录', + forget: '忘记密码', + reg: '注册账号', + noLogin: '未登录', + privacyPolicy:"隐私政策", + userAgreement:"用户协议", + codeLoading:"正在获取验证码", + noStation:"无电站", + noFunction:"功能暂未开放", + lang:'ZH' + }, + home: { + title: '消息' + }, + workbench: { + title: '工作台' + }, + user: { + title: '用户中心', + privacyPolicy:"隐私政策", + userAgreement:"用户协议", + edition:"版本", + language:"语言", + loginOut:"退出登录", + chinese:"中文", + english:"英文", + german:'德语', + italian:'意大利语', + spanish:'西班牙语', + changeSuccess:"切换成功", + languageChange:"语言切换", + privacy:"隐私政策", + agreement:"用户协议", + }, + msg: { + title: '消息' + }, + tips:{ + noData:"暂无数据" + } +} diff --git a/main.js b/main.js new file mode 100644 index 0000000..6c1c4fd --- /dev/null +++ b/main.js @@ -0,0 +1,69 @@ + +import Vue from 'vue' +import App from './App' + +Vue.config.productionTip = false + +App.mpType = 'app' +// 引入全局 uView 框架 +import uView from 'uview-ui' +Vue.use(uView) + + +// 全局存储 vuex 的封装 +import store from '@/store' + +// 引入 uView 提供的对 vuex 的简写法文件 +let vuexStore = require('@/store/$u.mixin.js') +Vue.mixin(vuexStore) + +// 引入 uView 对小程序分享的 mixin 封装 +let mpShare = require('uview-ui/libs/mixin/mpShare.js') +Vue.mixin(mpShare) + +// Vue i18n 国际化 +import VueI18n from '@/common/vue-i18n.min.js' +Vue.use(VueI18n) + +// i18n 部分的配置,引入语言包,注意路径 +import lang_zh from '@/common/locales/zh_CN.js' +import lang_en from '@/common/locales/en_EN.js' + +const i18n = new VueI18n({ + // 默认语言 + locale: store.state.vuex_language, + // 引入语言文件 + messages: { + 'zh_CN': lang_zh, + 'en_US': lang_en, + } +}) + +// 由于微信小程序的运行机制问题,需声明如下一行,H5和APP非必填 +// Vue.prototype._i18n = i18n +const app = new Vue({ + i18n, + store, + ...App +}) +import * as echarts from "@/components/echarts/echarts.min.js" +Vue.prototype.$echarts = echarts +import { replaceAll } from '@/common/common.js' +Vue.prototype.replaceAll = replaceAll + +// http 拦截器,将此部分放在 new Vue() 和 app.$mount() 之间,才能 App.vue 中正常使用 +import httpInterceptor from '@/common/http.interceptor.js' +Vue.use(httpInterceptor, app) + +// http 接口 API 抽离,免于写 url 或者一些固定的参数 +import httpApi from '@/common/http.api.js' +Vue.use(httpApi, app) + +import {formatValue} from '@/common/common.js' +Vue.prototype.$formatValue = formatValue +import * as filters from '@/common/filters.js' +// 定义全局自定义过滤器 +Object.keys(filters).forEach(key => { + Vue.filter(key, filters[key]) +}) +app.$mount() diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..be723a7 --- /dev/null +++ b/manifest.json @@ -0,0 +1,145 @@ +{ + "name" : "弘正储能", + "appid" : "__UNI__6826034", + "description" : "Hoenergy", + "versionName" : "2.0.0", + "versionCode" : 200, + "transformPx" : false, + "app-plus" : { + // APP-VUE分包,可提APP升启动速度,2.7.12开始支持,兼容微信小程序分包方案,默认关闭 + "optimization" : { + "subPackages" : true + }, + "safearea" : { + "bottom" : { + "offset" : "none" + } + }, + "splashscreen" : { + "alwaysShowBeforeRender" : false, + "waiting" : true, + "autoclose" : true, + "delay" : 3 + }, + "usingComponents" : true, + "nvueCompiler" : "uni-app", + "compilerVersion" : 3, + "modules" : {}, + "distribute" : { + "android" : { + "permissions" : [], + "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ] + }, + "ios" : { + "dSYMs" : false + }, + "sdkConfigs" : { + "ad" : {}, + "payment" : { + "alipay" : { + "__platform__" : [ "ios", "android" ] + }, + "weixin" : { + "__platform__" : [ "ios", "android" ], + "appid" : "wxdf11ec8626d8a2cb", + "UniversalLinks" : "" + }, + "appleiap" : {} + }, + "push" : {} + }, + "icons" : { + "android" : { + "hdpi" : "unpackage/res/icons/72x72.png", + "xhdpi" : "unpackage/res/icons/96x96.png", + "xxhdpi" : "unpackage/res/icons/144x144.png", + "xxxhdpi" : "unpackage/res/icons/192x192.png" + }, + "ios" : { + "appstore" : "unpackage/res/icons/1024x1024.png", + "ipad" : { + "app" : "unpackage/res/icons/76x76.png", + "app@2x" : "unpackage/res/icons/152x152.png", + "notification" : "unpackage/res/icons/20x20.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "proapp@2x" : "unpackage/res/icons/167x167.png", + "settings" : "unpackage/res/icons/29x29.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "spotlight" : "unpackage/res/icons/40x40.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png" + }, + "iphone" : { + "app@2x" : "unpackage/res/icons/120x120.png", + "app@3x" : "unpackage/res/icons/180x180.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "notification@3x" : "unpackage/res/icons/60x60.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "settings@3x" : "unpackage/res/icons/87x87.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png", + "spotlight@3x" : "unpackage/res/icons/120x120.png" + } + } + }, + "splashscreen" : { + "androidStyle" : "default", + "androidTranslucent" : true, + "android" : { + "hdpi" : "C:/Users/Administrator/Desktop/res2/res2/drawable-hdpi/d00fdfa1ad04f98a7f655c8808770b5.9.png", + "xhdpi" : "C:/Users/Administrator/Desktop/res2/res2/drawable-xhdpi/d00fdfa1ad04f98a7f655c8808770b5.9.png", + "xxhdpi" : "C:/Users/Administrator/Desktop/res2/res2/drawable-xxhdpi/d00fdfa1ad04f98a7f655c8808770b5.9.png" + }, + "iosStyle" : "common", + "ios" : { + "storyboard" : "C:/Users/shangchen/Desktop/CustomStoryboard.zip" + }, + "useOriginalMsgbox" : true + } + } + }, + "quickapp" : {}, + "mp-weixin" : { + "appid" : "wx2a63288f87abf1de", + "setting" : { + "urlCheck" : false, + "es6" : true, + "minified" : true, + "postcss" : false + }, + "optimization" : { + "subPackages" : true + }, + "lazyCodeLoading" : "requiredComponents", + "usingComponents" : true + }, + "mp-alipay" : { + "usingComponents" : true, + "component2" : true + }, + "mp-qq" : { + "optimization" : { + "subPackages" : true + }, + "appid" : "" + }, + "mp-baidu" : { + "usingComponents" : true, + "appid" : "" + }, + "mp-toutiao" : { + "usingComponents" : true, + "appid" : "" + }, + "h5" : { + "template" : "template.h5.html", + "router" : { + "mode" : "hash", + "base" : "" + }, + "optimization" : { + "treeShaking" : { + "enable" : false + } + }, + "title" : "uView UI" + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..73a6241 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3808 @@ +{ + "name": "honenery", + "version": "2.3.2", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@dcloudio/uni-helper-json": { + "version": "1.0.13", + "resolved": "https://registry.npmmirror.com/@dcloudio/uni-helper-json/-/uni-helper-json-1.0.13.tgz", + "integrity": "sha512-FO9Iu4zW4td3Tr+eiCDWuele2ehkJ4qxQ/UhpAMLjso+ZdWz6NagK5Syh6cdy1hoDqbxpNoqnLynuJXe81Ereg==" + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dev": true, + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@types/json-schema": { + "version": "7.0.14", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.14.tgz", + "integrity": "sha512-U3PUjAudAdJBeC2pgN8uTIKgxrb4nlDF3SF0++EldXQvQBGkpFZMSnwQiIoDU77tv45VgNkl/L4ouD+rEomujw==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "dev": true, + "requires": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmmirror.com/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + } + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "optional": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmmirror.com/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "optional": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmmirror.com/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmmirror.com/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmmirror.com/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compression-webpack-plugin": { + "version": "6.1.1", + "resolved": "https://registry.npmmirror.com/compression-webpack-plugin/-/compression-webpack-plugin-6.1.1.tgz", + "integrity": "sha512-BEHft9M6lwOqVIQFMS/YJGmeCYXVOakC5KzQk05TFpMBlODByh1qNsZCWjUBxCQhUP9x0WfGidxTbGkjbWO/TQ==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmmirror.com/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true + }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.2" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmmirror.com/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "image-tools": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/image-tools/-/image-tools-1.4.0.tgz", + "integrity": "sha512-TKtvJ6iUwM0mfaD4keMnk1ENHFC470QEjBfA3IlvKdEOufzvWbjbaoNcoyYq6HlViF8+d5tOS1ooE6j7CHf1lQ==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "optional": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "jsencrypt": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/jsencrypt/-/jsencrypt-3.3.1.tgz", + "integrity": "sha512-dVvV54GdFuJgmEKn+oBiaifDMen4p6o6j/lJh0OVMcouME8sST0bJ7bldIgKBQk4za0zyGn0/pm4vOznR25mLw==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "optional": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmmirror.com/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true, + "optional": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "optional": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmmirror.com/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmmirror.com/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmmirror.com/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true + }, + "url": { + "version": "0.11.3", + "resolved": "https://registry.npmmirror.com/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "dev": true, + "requires": { + "punycode": "^1.4.1", + "qs": "^6.11.2" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + } + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmmirror.com/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmmirror.com/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmmirror.com/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8803ec6 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "honenery", + "version": "2.3.2", + "description": "Honenery 移动端快速开发框架", + "main": "main.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "", + "url": "" + }, + "keywords": [], + "author": "bpchow", + "license": "MIT", + "homepage": "", + "dependencies": { + "@dcloudio/uni-helper-json": "^1.0.13", + "crypto-js": "^4.1.1", + "image-tools": "^1.4.0", + "jsencrypt": "^3.3.1" + }, + "devDependencies": { + "compression-webpack-plugin": "^6.1.1", + "webpack": "^4.46.0" + } +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..845a8ba --- /dev/null +++ b/pages.json @@ -0,0 +1,186 @@ +{ + "easycom": { + "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue" + }, + "pages": [{ + "path": "pages/login/index", + "style": { + "navigationBarTitleText": "登录", + "navigationStyle": "custom" + } + }, + { + "path": "pages/tabbar/dashboard", + "style": { + "navigationBarTitleText": "电站", + "navigationStyle": "custom" + } + }, + { + "path": "pages/tabbar/electricityPrice", + "style": { + "navigationBarTitleText": "全国电价", + "navigationStyle": "custom" + } + }, + { + "path": "pages/tabbar/mine", + "style": { + "navigationBarTitleText": "我", + "navigationStyle": "custom" + } + }, + { + "path": "pages/guest/index", + "style": { + "navigationBarTitleText": "游客模式", + "navigationStyle": "custom" + } + } + ], + "subPackages": [{ + "root": "pages/home-page", + "pages": [{ + "path": "alarm/index", + "style": { + "navigationBarTitleText": "告警", + "navigationStyle": "custom" + } + }, + { + "path": "device-detail/index", + "style": { + "navigationBarTitleText": "设备", + "navigationStyle": "custom" + } + }, + { + "path": "device-list/index", + "style": { + "navigationBarTitleText": "设备", + "navigationStyle": "custom" + } + }, + { + "path": "earnings/index", + "style": { + "navigationBarTitleText": "收益报表", + "navigationStyle": "custom" + } + }, + { + "path": "policy-management/index", + "style": { + "navigationBarTitleText": "策略", + "navigationStyle": "custom" + } + } + ] + }, + + { + "root": "pages/sys/user", + "pages": [{ + "path": "setting", + "style": { + "navigationBarTitleText": "系统设置", + "navigationBarBackgroundColor": "#0ea17e", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": false, + "disableScroll": true + } + }, + { + "path": "pwd", + "style": { + "navigationBarTitleText": "账号安全", + "navigationBarBackgroundColor": "#0ea17e", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": false, + "disableScroll": true + } + }, + { + "path": "about", + "style": { + "navigationBarTitleText": "关于我们", + "navigationBarBackgroundColor": "#0ea17e", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": false, + "disableScroll": true + } + }, + { + "path": "currency", + "style": { + "navigationBarTitleText": "通用", + "navigationBarBackgroundColor": "#0ea17e", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": false, + "disableScroll": true + } + }, + { + "path": "message", + "style": { + "navigationBarTitleText": "消息通知", + "navigationBarBackgroundColor": "#0ea17e", + "navigationBarTextStyle": "white", + "enablePullDownRefresh": false, + "disableScroll": true + } + } + ] + } + ], + "preloadRule": { + "pages/tabbar/dashboard": { + "network": "all", + "packages": [ + "__APP__" + ] + }, + "pages/tabbar/mine": { + "network": "all", + "packages": [ + "__APP__" + ] + }, + "pages/tabbar/electricityPrice": { + "network": "all", + "packages": [ + "__APP__" + ] + } + }, + "globalStyle": { + "navigationBarTextStyle": "white", + "navigationBarTitleText": "Aidex", + "navigationBarBackgroundColor": "#4094ff" + }, + "tabBar": { + "color": "#909399", + "selectedColor": "#303133", + "backgroundColor": "#FFFFFF", + "borderStyle": "black", + "list": [{ + "pagePath": "pages/tabbar/dashboard", + "iconPath": "static/aidex/images/Data.png", + "selectedIconPath": "static/aidex/images/Data-fill.png", + "text": "电站" + }, + { + "pagePath": "pages/tabbar/electricityPrice", + "iconPath": "static/aidex/images/Price.png", + "selectedIconPath": "static/aidex/images/Price-fill.png", + "text": "全国电价" + }, + { + "pagePath": "pages/tabbar/mine", + "iconPath": "static/aidex/images/My.png", + "selectedIconPath": "static/aidex/images/My-fill.png", + "text": "我" + } + ] + } +} \ No newline at end of file diff --git a/pages/guest/index.vue b/pages/guest/index.vue new file mode 100644 index 0000000..c296034 --- /dev/null +++ b/pages/guest/index.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/pages/home-page/alarm/components/alarmevent.vue b/pages/home-page/alarm/components/alarmevent.vue new file mode 100644 index 0000000..3e3d231 --- /dev/null +++ b/pages/home-page/alarm/components/alarmevent.vue @@ -0,0 +1,152 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/alarm/components/tki-tree/style.css b/pages/home-page/alarm/components/tki-tree/style.css new file mode 100644 index 0000000..cb997b8 --- /dev/null +++ b/pages/home-page/alarm/components/tki-tree/style.css @@ -0,0 +1,151 @@ +.tki-tree-mask { + position: fixed; + top: 0rpx; + right: 0rpx; + bottom: 0rpx; + left: 0rpx; + z-index: 9998; + background-color: rgba(0, 0, 0, 0.6); + opacity: 0; + transition: all 0.3s ease; + visibility: hidden; +} +.tki-tree-mask.show { + visibility: visible; + opacity: 1; +} +.tki-tree-cnt { + position: fixed; + top: 0rpx; + right: 0rpx; + bottom: 0rpx; + left: 0rpx; + z-index: 9999; + top: 160rpx; + transition: all 0.3s ease; + transform: translateY(100%); +} +.tki-tree-cnt.show { + transform: translateY(0); +} +.tki-tree-bar { + background-color: #fff; + height: 72rpx; + padding-left: 20rpx; + padding-right: 20rpx; + display: flex; + justify-content: space-between; + align-items: center; + box-sizing: border-box; + border-bottom-width: 1rpx !important; + border-bottom-style: solid; + border-bottom-color: #f5f5f5; + font-size: 32rpx; + color: #757575; + line-height: 1; +} +.tki-tree-bar-confirm { + color: #07bb07; +} +.tki-tree-view { + position: absolute; + top: 0rpx; + right: 0rpx; + bottom: 0rpx; + left: 0rpx; + top: 72rpx; + background-color: #fff; + padding-top: 20rpx; + padding-right: 20rpx; + padding-bottom: 20rpx; + padding-left: 20rpx; +} +.tki-tree-view-sc { + height: 100%; + overflow: hidden; +} +.tki-tree-item { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 26rpx; + color: #757575; + line-height: 1; + height: 0; + opacity: 0; + transition: 0.2s; + position: relative; + overflow: hidden; +} +.tki-tree-item.show { + height: 80rpx; + opacity: 1; +} +.tki-tree-item.showchild:before { + transform: rotate(90deg); +} +.tki-tree-item.last:before { + opacity: 0; +} +.tki-tree-icon { + width: 26rpx; + height: 26rpx; + margin-right: 8rpx; +} +.tki-tree-label { + flex: 1; + display: flex; + align-items: center; + height: 100%; + line-height: 1.2; +} +.tki-tree-check { + width: 40px; + height: 40px; + display: flex; + justify-content: center; + align-items: center; +} +.tki-tree-check-yes, +.tki-tree-check-no { + width: 20px; + height: 20px; + border-top-left-radius: 20%; + border-top-right-radius: 20%; + border-bottom-right-radius: 20%; + border-bottom-left-radius: 20%; + border-top-width: 1rpx; + border-left-width: 1rpx; + border-bottom-width: 1rpx; + border-right-width: 1rpx; + border-style: solid; + border-color: #07bb07; + display: flex; + justify-content: center; + align-items: center; + box-sizing: border-box; +} +.tki-tree-check-yes-b { + width: 12px; + height: 12px; + border-top-left-radius: 20%; + border-top-right-radius: 20%; + border-bottom-right-radius: 20%; + border-bottom-left-radius: 20%; + background-color: #07bb07; +} +.tki-tree-check .radio { + border-top-left-radius: 50%; + border-top-right-radius: 50%; + border-bottom-right-radius: 50%; + border-bottom-left-radius: 50%; +} +.tki-tree-check .radio .tki-tree-check-yes-b { + border-top-left-radius: 50%; + border-top-right-radius: 50%; + border-bottom-right-radius: 50%; + border-bottom-left-radius: 50%; +} +.hover-c { + opacity: 0.6; +} diff --git a/pages/home-page/alarm/components/tki-tree/tki-tree.vue b/pages/home-page/alarm/components/tki-tree/tki-tree.vue new file mode 100644 index 0000000..d88496e --- /dev/null +++ b/pages/home-page/alarm/components/tki-tree/tki-tree.vue @@ -0,0 +1,329 @@ + + + + + diff --git a/pages/home-page/alarm/index.vue b/pages/home-page/alarm/index.vue new file mode 100644 index 0000000..4bebda3 --- /dev/null +++ b/pages/home-page/alarm/index.vue @@ -0,0 +1,723 @@ + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/air.vue b/pages/home-page/device-detail/components/air.vue new file mode 100644 index 0000000..1969e79 --- /dev/null +++ b/pages/home-page/device-detail/components/air.vue @@ -0,0 +1,660 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/ammeter.vue b/pages/home-page/device-detail/components/ammeter.vue new file mode 100644 index 0000000..3c613e1 --- /dev/null +++ b/pages/home-page/device-detail/components/ammeter.vue @@ -0,0 +1,1358 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/cluster.vue b/pages/home-page/device-detail/components/cluster.vue new file mode 100644 index 0000000..ea3572f --- /dev/null +++ b/pages/home-page/device-detail/components/cluster.vue @@ -0,0 +1,899 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/emu.vue b/pages/home-page/device-detail/components/emu.vue new file mode 100644 index 0000000..b924431 --- /dev/null +++ b/pages/home-page/device-detail/components/emu.vue @@ -0,0 +1,849 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/jingke-pcs.vue b/pages/home-page/device-detail/components/jingke-pcs.vue new file mode 100644 index 0000000..851bccf --- /dev/null +++ b/pages/home-page/device-detail/components/jingke-pcs.vue @@ -0,0 +1,963 @@ + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/jingke-stack.vue b/pages/home-page/device-detail/components/jingke-stack.vue new file mode 100644 index 0000000..b42c2d8 --- /dev/null +++ b/pages/home-page/device-detail/components/jingke-stack.vue @@ -0,0 +1,856 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/pack.vue b/pages/home-page/device-detail/components/pack.vue new file mode 100644 index 0000000..ee78fab --- /dev/null +++ b/pages/home-page/device-detail/components/pack.vue @@ -0,0 +1,747 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/pcs.vue b/pages/home-page/device-detail/components/pcs.vue new file mode 100644 index 0000000..4e7bfc0 --- /dev/null +++ b/pages/home-page/device-detail/components/pcs.vue @@ -0,0 +1,994 @@ + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/stack.vue b/pages/home-page/device-detail/components/stack.vue new file mode 100644 index 0000000..1f9dbc2 --- /dev/null +++ b/pages/home-page/device-detail/components/stack.vue @@ -0,0 +1,962 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/yc.vue b/pages/home-page/device-detail/components/yc.vue new file mode 100644 index 0000000..4e72fc1 --- /dev/null +++ b/pages/home-page/device-detail/components/yc.vue @@ -0,0 +1,166 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/components/yx.vue b/pages/home-page/device-detail/components/yx.vue new file mode 100644 index 0000000..5fc1fed --- /dev/null +++ b/pages/home-page/device-detail/components/yx.vue @@ -0,0 +1,165 @@ + + + + + \ No newline at end of file diff --git a/pages/home-page/device-detail/index.vue b/pages/home-page/device-detail/index.vue new file mode 100644 index 0000000..d034c19 --- /dev/null +++ b/pages/home-page/device-detail/index.vue @@ -0,0 +1,344 @@ + + + + + + \ No newline at end of file diff --git a/pages/home-page/device-list/index.vue b/pages/home-page/device-list/index.vue new file mode 100644 index 0000000..387eada --- /dev/null +++ b/pages/home-page/device-list/index.vue @@ -0,0 +1,147 @@ + + + + + + \ No newline at end of file diff --git a/pages/home-page/earnings/index.vue b/pages/home-page/earnings/index.vue new file mode 100644 index 0000000..53b559c --- /dev/null +++ b/pages/home-page/earnings/index.vue @@ -0,0 +1,801 @@ + + + \ No newline at end of file diff --git a/pages/home-page/policy-management/index.vue b/pages/home-page/policy-management/index.vue new file mode 100644 index 0000000..4cfa938 --- /dev/null +++ b/pages/home-page/policy-management/index.vue @@ -0,0 +1,823 @@ + + + + + \ No newline at end of file diff --git a/pages/login/components/dialog.vue b/pages/login/components/dialog.vue new file mode 100644 index 0000000..e137005 --- /dev/null +++ b/pages/login/components/dialog.vue @@ -0,0 +1,194 @@ + + + + + \ No newline at end of file diff --git a/pages/login/index.scss b/pages/login/index.scss new file mode 100644 index 0000000..fa3dbdb --- /dev/null +++ b/pages/login/index.scss @@ -0,0 +1,162 @@ +.wrap { + width: 100%; + height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + .EnglishFont{ + font-size: 36rpx; + font-weight: 600; + margin-top: 60rpx; + margin-bottom: 40rpx; + // display: flex; + // align-items: center; + } +} + + + +.list-call-password { + padding-top: 10rpx; + height: 120rpx; + font-weight: normal; + color: #333333; + position: relative; +} + + + +.list-call-user .u-input { + + font-size: 30rpx; + width: 100%; + height: 110rpx; + text-indent: 2%; + border: 1px solid #00CA9A; +} + +.zhanghao{ + color: #282828; + margin-bottom: 10rpx; +} + +.list-call-password .u-input { + + font-size: 30rpx; + width: 100%; + height: 110rpx; + text-indent: 2%; + border: 1px solid #00CA9A; + +} + + +.list-call-password .u-icon-right { + position: absolute; + right: 20rpx; + color: #aaaaaa; + width: 40rpx; + height: 40rpx; + // z-index: 3; +} + +.button { + color: #fff; + font-size: 35rpx; + width: 603rpx; + height: 95rpx; + background: #009C77; + box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(15, 168, 250, 0.4); + border-radius: 10rpx; + line-height: 95rpx; + text-align: center; + margin: 50rpx 75rpx 0rpx 75rpx; +} + +.logo { + width: 100%; + height: 400rpx; + border-radius: 0 0 50% 50%; + background-color: #069E7A; + +} +.center-logo{ + width: 410rpx; + height: 230rpx; + top: 100rpx; + position: absolute; + +} + +.user-card { + width: 80%; + padding: 30rpx 0; + // box-shadow: 10rpx 10rpx 45rpx #888888; + border-radius: 8px; + display: flex; + flex-direction: column; + justify-content: space-evenly; +} + +.list { + color: #939393; + + .list-call-user { + display: flex; + align-items: center; + border-bottom: 1rpx solid #f5f5f5; + width: 100%; + height: 89rpx; + position: relative; + margin-bottom: 30rpx; + .u-icon-delete { + position: absolute; + right: 20rpx; + color: #aaaaaa; + width: 40rpx; + height: 40rpx; + } + input { + height: 90rpx; + border-radius: 10rpx; + padding-left: 10rpx; + box-shadow: 0px 4px 16rpx rgba(0, 0, 0, 0.1); + } + .user-icon { + width: 36rpx; + height: 39rpx; + } + } + .list-call-password { + display: flex; + align-items: center; + border-bottom: 1rpx solid #f5f5f5; + width: 100%; + height: 89rpx; + position: relative; + + + input { + height: 90rpx; + color: #939393; + border-radius: 10rpx; + padding-left: 10rpx; + box-shadow: 0px 4px 16rpx rgba(0, 0, 0, 0.1); + } + + .password-icon { + width: 36rpx; + height: 42rpx; + } + } +} + + +.list-call-icon { + color: #ff0000; +} + + +.u-tabs { + padding: 0 70rpx; +} diff --git a/pages/login/index.vue b/pages/login/index.vue new file mode 100644 index 0000000..5092291 --- /dev/null +++ b/pages/login/index.vue @@ -0,0 +1,546 @@ + + + \ No newline at end of file diff --git a/pages/sys/user/about.vue b/pages/sys/user/about.vue new file mode 100644 index 0000000..7140eba --- /dev/null +++ b/pages/sys/user/about.vue @@ -0,0 +1,114 @@ + + + diff --git a/pages/sys/user/currency.vue b/pages/sys/user/currency.vue new file mode 100644 index 0000000..9fb97f7 --- /dev/null +++ b/pages/sys/user/currency.vue @@ -0,0 +1,98 @@ + + + diff --git a/pages/sys/user/info.vue b/pages/sys/user/info.vue new file mode 100644 index 0000000..af90958 --- /dev/null +++ b/pages/sys/user/info.vue @@ -0,0 +1,205 @@ + + + diff --git a/pages/sys/user/message.vue b/pages/sys/user/message.vue new file mode 100644 index 0000000..78b7da6 --- /dev/null +++ b/pages/sys/user/message.vue @@ -0,0 +1,180 @@ + + + + + \ No newline at end of file diff --git a/pages/sys/user/pwd.vue b/pages/sys/user/pwd.vue new file mode 100644 index 0000000..e37b595 --- /dev/null +++ b/pages/sys/user/pwd.vue @@ -0,0 +1,176 @@ + + + diff --git a/pages/sys/user/setting.vue b/pages/sys/user/setting.vue new file mode 100644 index 0000000..5de7b75 --- /dev/null +++ b/pages/sys/user/setting.vue @@ -0,0 +1,116 @@ + + + diff --git a/pages/tabbar/components/dischargeChart/index.vue b/pages/tabbar/components/dischargeChart/index.vue new file mode 100644 index 0000000..bc209be --- /dev/null +++ b/pages/tabbar/components/dischargeChart/index.vue @@ -0,0 +1,244 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/environmentalControl/index.vue b/pages/tabbar/components/environmentalControl/index.vue new file mode 100644 index 0000000..0e2f793 --- /dev/null +++ b/pages/tabbar/components/environmentalControl/index.vue @@ -0,0 +1,186 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/environmentalControl/position.vue b/pages/tabbar/components/environmentalControl/position.vue new file mode 100644 index 0000000..c9f79ad --- /dev/null +++ b/pages/tabbar/components/environmentalControl/position.vue @@ -0,0 +1,186 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/runChart/index.vue b/pages/tabbar/components/runChart/index.vue new file mode 100644 index 0000000..8c89eda --- /dev/null +++ b/pages/tabbar/components/runChart/index.vue @@ -0,0 +1,351 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/stationData/common.vue b/pages/tabbar/components/stationData/common.vue new file mode 100644 index 0000000..d15b892 --- /dev/null +++ b/pages/tabbar/components/stationData/common.vue @@ -0,0 +1,211 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/stationData/style/index.css b/pages/tabbar/components/stationData/style/index.css new file mode 100644 index 0000000..02b7606 --- /dev/null +++ b/pages/tabbar/components/stationData/style/index.css @@ -0,0 +1,96 @@ +.warp { + width: 100%; + display: flex; + flex-wrap: wrap; + position: relative; + + + +} + +.group-box { + display: flex; + flex-direction: column; + align-items: center; + width: 199rpx; + justify-content: center; + padding: 10rpx; + background: #d7e9e548; + border-radius: 10rpx; + margin: 10rpx 10rpx; + +} + +.group-item { + display: flex; + flex-direction: column; + align-items: center; + width: 199rpx; + + justify-content: center; + background: #d7e9e548; + border-radius: 10rpx; + margin: 10rpx 10rpx; + position: relative; + padding: 10rpx 0; + +} + + + + +.history-icon { + position: absolute; + right: 0rpx; + top: 0rpx; +} + +.item-con { + display: flex; + flex-direction: column; + align-items: center; + // margin-left: 15rpx; + width: 100%; + +} + +.item-title { + width: 100%; + font-size: 24rpx; + color: #2a2a2a; + margin-top: 10rpx; + text-align: center; + /* white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; */ +} + +image { + width: 40rpx; + height: 40rpx; +} + +.item-num { + font-size: 36rpx; + color: #282828; + font-weight: bold; + max-width: 90%; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.item-unit { + color: #cccccc; + font-size: 16rpx; + padding-left: 10rpx; +} + +.padding-top-30 { + padding-top: 30rpx; +} + +.padding-bottom-30 { + padding-bottom: 30rpx; +} \ No newline at end of file diff --git a/pages/tabbar/components/stationData/wsh.vue b/pages/tabbar/components/stationData/wsh.vue new file mode 100644 index 0000000..771b131 --- /dev/null +++ b/pages/tabbar/components/stationData/wsh.vue @@ -0,0 +1,205 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/stationData/zzhb.vue b/pages/tabbar/components/stationData/zzhb.vue new file mode 100644 index 0000000..6268bf1 --- /dev/null +++ b/pages/tabbar/components/stationData/zzhb.vue @@ -0,0 +1,206 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/cixi.vue b/pages/tabbar/components/topology/cixi.vue new file mode 100644 index 0000000..2690a85 --- /dev/null +++ b/pages/tabbar/components/topology/cixi.vue @@ -0,0 +1,1071 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/devicemonitoring.vue b/pages/tabbar/components/topology/devicemonitoring.vue new file mode 100644 index 0000000..ffee902 --- /dev/null +++ b/pages/tabbar/components/topology/devicemonitoring.vue @@ -0,0 +1,347 @@ + + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/fire.vue b/pages/tabbar/components/topology/fire.vue new file mode 100644 index 0000000..d847713 --- /dev/null +++ b/pages/tabbar/components/topology/fire.vue @@ -0,0 +1,253 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/jingke.vue b/pages/tabbar/components/topology/jingke.vue new file mode 100644 index 0000000..6ac8e75 --- /dev/null +++ b/pages/tabbar/components/topology/jingke.vue @@ -0,0 +1,406 @@ + + + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/kejiyuan.vue b/pages/tabbar/components/topology/kejiyuan.vue new file mode 100644 index 0000000..7fd2805 --- /dev/null +++ b/pages/tabbar/components/topology/kejiyuan.vue @@ -0,0 +1,418 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/lingchao.vue b/pages/tabbar/components/topology/lingchao.vue new file mode 100644 index 0000000..6fd3239 --- /dev/null +++ b/pages/tabbar/components/topology/lingchao.vue @@ -0,0 +1,1094 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/mdPvdieseTopCenter.vue b/pages/tabbar/components/topology/mdPvdieseTopCenter.vue new file mode 100644 index 0000000..6567bfc --- /dev/null +++ b/pages/tabbar/components/topology/mdPvdieseTopCenter.vue @@ -0,0 +1,771 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/runda100.vue b/pages/tabbar/components/topology/runda100.vue new file mode 100644 index 0000000..83d863d --- /dev/null +++ b/pages/tabbar/components/topology/runda100.vue @@ -0,0 +1,616 @@ + + + + + diff --git a/pages/tabbar/components/topology/runda215.vue b/pages/tabbar/components/topology/runda215.vue new file mode 100644 index 0000000..4481ad8 --- /dev/null +++ b/pages/tabbar/components/topology/runda215.vue @@ -0,0 +1,597 @@ + + + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/runda230.vue b/pages/tabbar/components/topology/runda230.vue new file mode 100644 index 0000000..f397a4e --- /dev/null +++ b/pages/tabbar/components/topology/runda230.vue @@ -0,0 +1,448 @@ + + + + + diff --git a/pages/tabbar/components/topology/sanmenxia.vue b/pages/tabbar/components/topology/sanmenxia.vue new file mode 100644 index 0000000..8d10eeb --- /dev/null +++ b/pages/tabbar/components/topology/sanmenxia.vue @@ -0,0 +1,1371 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/second.vue b/pages/tabbar/components/topology/second.vue new file mode 100644 index 0000000..b78f901 --- /dev/null +++ b/pages/tabbar/components/topology/second.vue @@ -0,0 +1,502 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/standard.vue b/pages/tabbar/components/topology/standard.vue new file mode 100644 index 0000000..fed6cc3 --- /dev/null +++ b/pages/tabbar/components/topology/standard.vue @@ -0,0 +1,426 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/third.vue b/pages/tabbar/components/topology/third.vue new file mode 100644 index 0000000..3489814 --- /dev/null +++ b/pages/tabbar/components/topology/third.vue @@ -0,0 +1,601 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/weishanhu.vue b/pages/tabbar/components/topology/weishanhu.vue new file mode 100644 index 0000000..6e8bc61 --- /dev/null +++ b/pages/tabbar/components/topology/weishanhu.vue @@ -0,0 +1,599 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/components/topology/zhongzihuanbao.vue b/pages/tabbar/components/topology/zhongzihuanbao.vue new file mode 100644 index 0000000..a103d07 --- /dev/null +++ b/pages/tabbar/components/topology/zhongzihuanbao.vue @@ -0,0 +1,589 @@ + + + \ No newline at end of file diff --git a/pages/tabbar/dashboard.vue b/pages/tabbar/dashboard.vue new file mode 100644 index 0000000..d197ebd --- /dev/null +++ b/pages/tabbar/dashboard.vue @@ -0,0 +1,472 @@ + + + + + \ No newline at end of file diff --git a/pages/tabbar/electricityPrice.vue b/pages/tabbar/electricityPrice.vue new file mode 100644 index 0000000..b6d14a3 --- /dev/null +++ b/pages/tabbar/electricityPrice.vue @@ -0,0 +1,1248 @@ + + + + + \ No newline at end of file diff --git a/pages/tabbar/mine.vue b/pages/tabbar/mine.vue new file mode 100644 index 0000000..4e7eff3 --- /dev/null +++ b/pages/tabbar/mine.vue @@ -0,0 +1,494 @@ + + + diff --git a/static/aidex/device/air.png b/static/aidex/device/air.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae413ed9f5e90a305f767d3423c7e2ac7aa2c0c GIT binary patch literal 863 zcmV-l1EBngP)e%$|*!1q#^zGO4?b-D1*YfSx^zGO4?9c!2*YoYz^zPX7 z>(=t@+4b$&^6%O5?AY|~0GxMx?9oxZq|Ni|HnNo)r-q2_)rZr;((~=N^5n4b;hpc> zqTbNS@#w+w=c@4Fr10Ke!mGXM-;?gxg6-3J&ABM8jSixJ4WWLoOeX+1DiP|NmbF}(jjd2&k$XLFbcgE9F5$}lo^XtcN;tZUmhfv)tfJ(1 zksYI#qS)&T{{o()A%OS*V5cvf?D#<*b{RjPVYW-6lYe{1U*WIte-a+9A?f+GN%#PH zvtxsB47?1btbkZDe0&Qhk(A^uoJfRM_k@QM;aPGDHxTpuS|W^f!slopiQ+XR!d#Kf zAZ?u$s6$Zq`NH`EFcF?GHZu}VSqhEe(e%84Ib)M@DVvdUczT&LXWQ~I{)TFJ%-9rv zEyO04ELEPE4>zxTyA6L#!^F$;Ut5-rFB5Oocf2e|&dWDujBS*|krj1oHJL(-@m zScXRdWKHIf7f=Wzo~R8YY$6W^bckpG141G*yReD#p`Ak~J;21koMU8Q&UT@dWz$&~ zT6InRly2(B|31BATe=r4$|ky^tll;APppSN)#)k@?RJUk*-Aq@HgVe1evdw8hmUB? p8}vzn{Uh)mT}W{)KM3ope*hXri|eFOop}HN002ovPDHLkV1lPy!c z+-0}H_&qeco%!~gncba5&_J$RYXV{!f!N&d;;_=$U&eJn6A9-5JH6`9=J{UzQHO^z zgNQmn#G`af00r@72soDk9SHhhHshl$k5xmqxQ?SxE)Og15@;ZIUk_pDT?j&d(PqIa zK*VIG)d(nHEa2XqmrVS%Pf?0|_reE57-c|cH3+ci-d+}TIobklFL1?0dlE-Cu-3uX z7TxJ}#{x9-45BHhFl`c>qKF`8`l(@O>=NI#c-&QQD72 znFK_OE^)*v^I9=TgQ&%#8AdYu|CWfz9@xbDB1*XviV_iK6G+}RB766PseJep29^!w zOak`aIHbg4B1(BXcCaB*y~!kyBC#=KUOSfAMfrSE@Rtf$oC5KDN;4qDSCIi23n0Rt zgI05Dr|+?H6QfTeUtyO-2KYQ7x`ri~{6yn!I!^SP{R=yVfd6^kxFrAp002ovPDHLk FV1j(x(p&%l literal 0 HcmV?d00001 diff --git a/static/aidex/device/bms.png b/static/aidex/device/bms.png new file mode 100644 index 0000000000000000000000000000000000000000..b82824c0b48458620abb4aa93a25e435d4f6b626 GIT binary patch literal 851 zcmV-Z1FZasP)^@R9M5!*=cXuKoEf8+4aeprfJ7s0<^~5 zgg~yQcl-Z;RUxT_#M&@p??`z*`ok+TBO!Sg3ixp|(gBhLjj(y8fWU8s$kvF@wYw2k zdkg^J;YKHk^&je^a;Nxp_t3A22p&IQs+6<~aKU#^zZ2 z1IFf9`vdys4l+04u{pMI6CN4Mz(sg!Y|C2*;rl^>j1U$;32*u(Hub{&wA7|fIG>b< zCs~c~b$Y_8dU&3mG_M@C20<7GCA><{SXB$>=~;tH;mP^%_bTC4O7OrB=PAXHoE`38 zlRUhcKcR7tXv_=`6QUt6JWI&7tnhDo_?Z)aOc-wH;n^K0ydIOoKNFTAH9Sk0dc^P@ zH~dTs-xU8|%dh>@zh(Oa;^w}5vJH1nw`KdYKgYf$MZSKvZ2#<@J|!<6?awidM|z2k zzrF@Uc1r?xE zT1g#DOC6<)9sWyQS4ds3NL>jDUSiqW8fytUf)|DE(@_^rQ}G3|g)JWl)Q8LPf_i0005~NklF~q=YNQ9Iwq18mC~6+jn^-O$sIDl(y%nbmU$K> zm?Wvvd}(L``!B`Ss`9J$D#J|iXKAwl6HXTiZW0ya!;NvX*p7@Lf`G{Abh#XMHOe-E zm}ofX1q8)|`wXHA`2n-U1cQ(shJm=1{0Xy+PgsHV;SvhgK3rkkLtWQ93^;$_0dLyc z!?=_uAs>dNB?4#1`r2~?wbzFS_^<5&fs*pzNK?&Af0Et`~&BqnmZYCjzWHE6?P{KHBx8X zcNlt>en1Yd<8ad9|G3zTKhnW~#lrj7pP=I59lTCqJw5_B$v@J3Q*1Qe(k)*&`S6KX z3WfE!b1LB-_O(j*$OBdw#Si^a_`Ac2PB@`EsHiA|ij;Dw$f<;iC0VF2L@5+hM6`y2 zl1OJ3hP({oV&0;FI71h){0TFYKvZP3K1^$UN>}^%|MhmociISvjMkQr&L-Bv(wO4L zlTHfyfQd05ZxqU>vlV^Ll=rw=y0$cdS?1~e)a~QDEHB5ZFTj!EBVkqs#B- zs_@`8vXrpo*ipTtl-S96&bnU0s|}%kitW}zxSTe!m2AkfU&E^?t&I+%f0^&vhttBT z-bNY#000(rQchC<-yk3m@1UQ+u+LzSfN*e7K+uqoV5`R5XaE2Lh)G02R9M69+1+xY zKoExE0U?6MM3c?e2}EHS1%G0G_x`VKhuy7W4WJOa_bBh7Wj#eT&R7hpA#Z#cIzBq( zkAlnTKy}EQ1nAvpe9E4M_+rCj^xy(Ee)`JCSvl9u!yV%6hF-%M95CbzxZO&wyArZz zT{hWMRTp4vSh-hV?V5MMRsNth2;N}~z}`&ef`L%zf&tIMV+b^{@CXO}+);B;4lM6m zdYa>)pgxI++IqwMzO{$iET%Y&T8r@59UiM6GVrAe`ohb_=RO+XP>p)R3)Fk6!;bQM z!gJJnsKdU342-YACO5F@Br&Y8j)*ouTz+Uc;b+=J?*i|ul77ebD6COtv^G8A2DW{d<9+!!7F5Bd(}EGBw(0C8xc6B82=TnmNX;0CXGK!dIMG%8daApWV4HWG#49c_tdcv{ZuMG)oLhFQ5oCo`j@E!)6zc+8M^$GZ+ z>2b_ySs-aazuN-X{{t_(JwT3Bcxr(}MMM>BiRI_4TZ03+hxBm|*mQ@d%EMtrE1Z_Y zY-@qTTva<)SjWvJ0OpI99&7hbsR;zSv#96#xJL literal 0 HcmV?d00001 diff --git a/static/aidex/device/fire.png b/static/aidex/device/fire.png new file mode 100644 index 0000000000000000000000000000000000000000..69ff5794003e8ff61858a96f7b9f2e0448046291 GIT binary patch literal 938 zcmV;b16BNqP)fYA$g(Tjv0lTg4x)c~&ACIjoXYOz0;7G(^Xj$m;*RUqi0##S z&bmI|xL?$`Y{;_@$ecvDoCdFkUHwjz0000NbW%=J0NAny>suwc)SfN($%P|%Q& zaBxsKZ#qN(00NFlL_t(o!|j>bcA`KKh6@paxMZ2k{0M0_#kfSXPS*E-ugOGvIukM7 zrpt43;ddifA9emJ`ba@F9ER<{@nD2^;J1&OWWZs^$JQK#I(IL?7ioN^ZZ;rcRsZy0 zh10DMw*hM!t(q7dFyJ&bUKX?R@|zDGu;IMVxdBER@8%4wba?|-cuh?ZwqZ2EPEQuh zO|VtLH+Sc^*D#|+L?H}0f8`ElbcpBxMqHoYPp8xSTNvRRCvh`9TQW@yvp9kg4`-4G zm=Mwr7?4!a%hQ|o=_MMP)Z8W?ddflcm#eF*x8K;n9GLVjiKG9?pv55%T87a_Qt0pq zdSt;{m24nRqBSm<#R?8_n$=XSA34%bL_IT0aTRUix1BiKC{FFfm$Q0pTv#_RNwdKR z>v$$O#tkLPVm|3-BW4CUNuu9&tXe)>}8s?ZpdO zrN~jvWFIq2asC*uY81doyn7Pkk&Rd##RBQz)%J)))_jrMh*h^z`5;f!y%@v=Vp(Ux zDjr?_y8???wko+)In_<8(E)Vs!^OD6kcmQdm||R24{MCArs&EblZ#f;=On;2FTlu*dqrTauKhIt2EIqeks7V zFAGK|y{~^skH7S$(57%V;v;J9M(h&#+W+%)-b`qEN7R9ivY0Hg@zOsSSBqI%=Gp}d z$t-wr>6HMis2yYv?6|vKnv&~*700C&r(mVK`&Bx%cD4K`*WnIWnYq2n%$=yTlg7+d3aT4aFx>%>3y40CmYld#VE2a5uY+TK^bZ~y=R M07*qoM6N<$f@qQAApigX literal 0 HcmV?d00001 diff --git a/static/aidex/device/gui.png b/static/aidex/device/gui.png new file mode 100644 index 0000000000000000000000000000000000000000..3bb055a9e18bb9dd1180e0cd277b7631a14584cd GIT binary patch literal 637 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 Bl12ak literal 0 HcmV?d00001 diff --git a/static/aidex/images/Data-fill.png b/static/aidex/images/Data-fill.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3301ef0c9b72f0743a5e0ed85dcdd65043dbed GIT binary patch literal 2878 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 literal 0 HcmV?d00001 diff --git a/static/aidex/images/Data.png b/static/aidex/images/Data.png new file mode 100644 index 0000000000000000000000000000000000000000..49354f162a5edb297163bae1a9523790a5acb47b GIT binary patch literal 983 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy#F1AIbUfwTq;C@3hvm>TNp>JT=N z0by%uY63+dYy$%WxJn>nsdG*>&>*prAirRS`|lM58WJ1~_7|KFnBRY3!UBN}@ej1u ziv=(+Fl&3dIEG~0dmDLs)@B8sCn6y>*ROrAzf!;dU*7WFE{h)AE7i-Lt1_8o!U}%7 zA8lW+nBQ6xZ?G$J#p?Ac{JoLNGt_Qq-;jM-D!%K6+toEpv(`yz|8wuAUG>M!(#Bet8w2=a#W<*nI3iTlu07U!xV5-T$0l zZ>tlW8+T9n1GCzfgYWk3|FPUT@cxUZ=l=@WcfH@UMK!zphV`FM4C8`j+8e4Y%{6CFY98;Sc!MFBf*u5>6CO@Ly87`n*q-#~uwa z(MeOfZ!crKzvyW(V2>YT7X-+y1VZjF1b zNU*Bxop+l5mOSczJ~_%JJKV_rR@m{(=|94QyZ;y@h%{s+|76Tft^072?EpWwVEshK z>v=ID_0a`_^^J@l9^bgm_2<4IY)d7s{^3c>J{A7c~3G?|HBFSsAmv)|+mf`u9ZS&cjtEW&M>7=k`22 zQTq31rNh#L^$hpcNS~NneE&!D*9C?%Eg$!oxs$`sgW9Y_7SU`(-k_dmnIbyHWr=PREK%vcPbu6{1-oD!M< DAl|}^ literal 0 HcmV?d00001 diff --git a/static/aidex/images/My-fill.png b/static/aidex/images/My-fill.png new file mode 100644 index 0000000000000000000000000000000000000000..7efe796a51f2913e2850061abf0c48715781677c GIT binary patch literal 2720 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 literal 0 HcmV?d00001 diff --git a/static/aidex/images/Price-fill.png b/static/aidex/images/Price-fill.png new file mode 100644 index 0000000000000000000000000000000000000000..1d2cfb35f3b9c58b3cfd870bf3b3a21e16960803 GIT binary patch literal 2840 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 literal 0 HcmV?d00001 diff --git a/static/aidex/images/about.png b/static/aidex/images/about.png new file mode 100644 index 0000000000000000000000000000000000000000..a0d485b3092e25fee0ded2769c85e38853709a30 GIT binary patch literal 650 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dybpbvhu0Xn^=SyMN=i=@!Kt_J= zHy~Nk^R*a?fKp#dx`Es;Km|Zl)b$le7Ic0t>Hd=53{sZY@wvDiqyVH5qNe+EcIRsd z8z^1`G76*@C{of5(g-xLpz9NmA-bGV66gZ0k|4iehA*NE-U+<=wfXLH=|{7J{XJ}z zdpMpdNVGK+MriU}TR*e5^6H^OTQiIjXKw1PWnf^O=;`7ZVsSb(_;%B31s)ZFKmnb5 z+v1|P?tVM(|Nn!R!%TLZ4OU2g#3Siecuss`O}%>3$@6cFE7U{|SqF6X{MU5%yP}}q zsp~yEM&-&O*Tlc84HI(0KD?0JbK=eC8#RHoJD6Vx^FNzwa-jA`-^#wisE=2Q4@E4` zwky+!p1=8(`SaJ|YmemBEcZ)1y}hbF_}{GUEAChe?wf9ZBz&L0*m{%IXFFe*bv$+Z zkn-xy%J~eZnVnLN-@Mi7Fg`u?jihVnl9CroPu=X9-n8zL-+7h9!hvZ{%W^j@cLoN5b-oipPBJbNAIqfqYDN9sdF-%t@v}2 zHQ$xvz&fQ_<}q~uzTh(NtnD{%&xzZN_PzhZ-ut8c zt>9OIb&X8Pzt39iHC?dF`TWPrRgc>%O=pHruH^qVKm7Okg@6Au`|OmIZG6|P1B_Az MPgg&ebxsLQ0Ej9>)Bpeg literal 0 HcmV?d00001 diff --git a/static/aidex/images/account-security.png b/static/aidex/images/account-security.png new file mode 100644 index 0000000000000000000000000000000000000000..186b7d6844bb56f690cb28ed22727e499d7b9cc0 GIT binary patch literal 800 zcmeAS@N?(olHy`uVBq!ia0vp^3P7yL!3-q(e?%q&sc8W|A+A6=`05JBTXTS9$ki48 zSC;u-UIt|QTwCgPZ6T21cWnuf48FP?NCtrz5Cr1FQP7p;fmfCWTv-M*0jLtl4Y~$W z0OmrK1zm$NfU-b~E-wv%i6G3mx*`y0)Yat=zJ4qMy3D8~$S;`T3(L=sqLOcUIQ|HJ zd-fpg$n@GP8|D@p>MHGT@^?CSW@&$}`j*wP9$4si@U+H0KC)5PdhcX6t`^37|DR6V^hP}G#>J&yqpha(9W+~GXwx>2^`G#$ zt+ok${ke~7&Rh<3uCb9dJmdaLx%*Cc;GDP1*T`^$KYO$&_u9Er+u9cORkH*{-RXLB zt7uz%W|Zj8rU87< zm0vEp8q~4JNulXd#Y?x#s|z2wa%;vcaGhLtexKD_*W^aoKSc+hFVN+AexKoV$3wm? zUxI7d8O_&4|B`eFyXh--YT1#U+ZWhBi<{MOb=f9C26=|vQOqa!Se|{q$jp0Ix}hpw zcv0>9*B#TBZ8^v=+q`{ATI1KMQrTCnJ{kNb1v9pfeaE|??sG3qPye}lD8zVYK3^>V9M)=KIlj5c>d$v<*%ntP vmNGBz5R5T*2lMh{bxv>rIY+^#`G3of@1J=^>bP0l+XkK)H8@6 literal 0 HcmV?d00001 diff --git a/static/aidex/images/arrow-right.png b/static/aidex/images/arrow-right.png new file mode 100644 index 0000000000000000000000000000000000000000..580e6128e59917d04716e140ff110f65538b86b4 GIT binary patch literal 305 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 P00000NkvXXu0mjfJ9(JX literal 0 HcmV?d00001 diff --git a/static/aidex/images/dqgl.png b/static/aidex/images/dqgl.png new file mode 100644 index 0000000000000000000000000000000000000000..0e301451ec304da0d81261c0a121c8992a2d54c7 GIT binary patch literal 581 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBTmyVUT!A#h>@tSg6%2FB8Ri!- z%qat-a)vqO470%`P-K1shzn!@RYDX170)VVm{kE5FaK31aujHeSV@pyFhhgFeSv@p z@Ao^*PY_tYpy2)a{se>bRec|Y7#J95db&7zuQ<6>U30gvn32@JXcUblb#w=Y$? zxaZWe?vCy&o|gR+Yd8xG!WIM>K4RBV*b!bRuJvS(4E!3>FaB^mT&BOoy6_BC0jR-RY|1LbOYPJ?GEO;89Y~fdGCwAm|ptx z6*p7zc1Z_=Ko-Y|>vPR#sRS)zY+V;xvHWwLMWf60XPigAB(zE!`tETR{v+=4<567R zq2+rx6Vi%(zWmuOyL(Hp^!DYA3~QrP5_hQ__V{H!Q~iOkco)mRxGk3IB6ptZW~J#} zdv<1KVu}iHm-&(CC*B-$X5_G}{gt+-AnwusIeWz_+Rj#*{>=P-)WGI{oZpPY=k${d z+GID}IaJAdx&;IToA1v}AaaQgY%ZGD6C%*Xop^`bBcTHnEn_Q*K0oli|PNm=7 zaC6SANy*c$RNlSF?r31uw zAY&RB0ND@*P-NDuS#b88Idgz)h%!7RPzoX&xG?1q&?cplAirRS=WK8JzG+%$9fHyw{| z%HQ|jTWiWpAKRnc|8M6PIoV51Z|j)+@u7*>o@}9)Gtb<*bLUiA!s<|;wd=gMuadm7 z?tDn#vi3)-Ti(8P*W|D|)OWl0aq!noI@Ua^S^}rOjF9;E$*TO&hw0N5!r2!K-8VkH zgNH|p=k$RE2R8NSbn%=%(Yn_*aq9J{8k=6mFS1w{!Eoc7c)7Yv?wptZUY*_I=y&Cn p&KxKIt@C&SZ@uc?zbn0p+4QX7^^+zKJAqzc@O1TaS?83{1OWGCzAFF# literal 0 HcmV?d00001 diff --git a/static/aidex/images/history-icon.png b/static/aidex/images/history-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..667e405f6205bc91bb2ac980b7bc88f42a95e29f GIT binary patch literal 548 zcmV+<0^9wGP)C2r6iJ8@;gpHxqPH=y1CPXITNg$oz77cgiXL!b(W-JsTfAQ9)( zG*q{7o3^D!`Y(Ti(OR zw1Kt!)7UgX{Q56*@NDhMaIcma62S5 zCjqi0IVR@qgXtTB4in!+dSC7t2}$q?Qlht~X~K&i66U)iYe3p3%J*52?fgq;45|U@ mctU#l0Gm-DJF10(zrqKh;)5{8Zw_q$0000%y zJO3=r>}1oZah#ZVqTlJUxaP_>CkKHJewLi300))%7g^bCgdA$pk|hjgA8^oOVA%e9 V_OXYL-#!7k$J5o%Wt~$(6959wK6wBD literal 0 HcmV?d00001 diff --git a/static/aidex/images/lang.png b/static/aidex/images/lang.png new file mode 100644 index 0000000000000000000000000000000000000000..146f36004a837dd43a4fbf9bc49d54d10facb73e GIT binary patch literal 2826 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 literal 0 HcmV?d00001 diff --git a/static/aidex/images/language.png b/static/aidex/images/language.png new file mode 100644 index 0000000000000000000000000000000000000000..6e880c333a1c72e7dcd473e474d29962bf8b59d4 GIT binary patch literal 965 zcmV;$13LVPP)evl_Ml4C_O>V37{t+X(>`y4U3Yto4}?Luz^*j0!ng%_6C>}gd30>)Vrq8 z%=FD9wrAr1FqRPFlVW-7iT&oi?|tu$fk!-WFqFk<$3;!N#tj?b!@&p@<4LL6z3vJo z;|mB{*HgH3WepXhhQ;Bc*Iq%zC}&`6->0J&jwef-s2Fh$Dvq&w>OX{7r{l(K!8fi@zP4J-bvmvT+Buz3TXqDke$VRX-Il^jnmzB&QtVk_Fxg|2KG7>YSh&^ zLpN3Prt>zUC-OclBHh3ig_Tjb6o`|P<@LmQoVj!ij343c(IqS*N2oZTW zoFsFGku}cy@oSOz($9~3hb3Az3*;9Nojq~W&jznC+RVDGP)5CYEjq}j8 zGLS72fBx(va==myqiiFuMTrogP1$;)&ZgPjr8!A;+9RV*RI@tYNI>k+Yk$rR&-J2d zV0t(`N`@V5f4ho3LHxemuQ?i!uW`EFN<_7tg=sQj0OqA;X|k^yXfcUOl_C(d7C`zS`Ea$goo zL6;V_$7yCxcbMdV%)q;RSxATSUQD90AypuuYp=+In)hVJGF+uj&) z&9Wvtowdwn!VvPfaN7^D5atdquhUVTlD_vbzxPzb!2m@!?ObSDD-3zFA7WMd$cs#P nrFMAdpNJYvRI#sl#J$FU`ASL>Lh${$00000NkvXXu0mjfn1{W+ literal 0 HcmV?d00001 diff --git a/static/aidex/images/list-icon.png b/static/aidex/images/list-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8d424b748671f62f781dcfc39f503e5792703b24 GIT binary patch literal 719 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bO2Iw0(?STf%K#e|7nN*|NsB<_x~5~ z|1aGA|KyGTpTGUT^X&iDlmGwx{r~01|5b4k;miMf&i&tZ>i>r0|8G40f9Uf6 z8C(Cq`S^b;Pyaul`{YZ4{DK+&92Vt&e{#!;nxargJGKj-_enoqx75=^^8VDxa?_sF z?uz}&z`%Ie)5S5wHRodA-;_~OIE_^Hh%$#~_jiAwKhPucEN=H zi^<=w9u>Y5p191kmG$y8L#x<`g>fa{k2b63o-Mo8u=VYPzh!|f~=&50XzrcFOF;k(XP$0uhWiro3`zQE|ulN}v39@m6945v;N=v(rM&tZ#2L&1_w zB}W)S_?*_{oi;nQ@oJqk^Th?9?ryd;SfKdIMNQ;n>BG?Jwinmy)pzx&xffRKbFKF6 zFxjc>@Koi{?W3$M0h1Fa^mp#zLnChrKf!Qi%D#c zcG&j!T>>w}4;QFDRtZt$2>~_9 literal 0 HcmV?d00001 diff --git a/static/aidex/images/login-bg.png b/static/aidex/images/login-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..12b9fcf24735b0c0221781ab32bd963354ed278b GIT binary patch literal 46059 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 literal 0 HcmV?d00001 diff --git a/static/aidex/images/menu-device.png b/static/aidex/images/menu-device.png new file mode 100644 index 0000000000000000000000000000000000000000..53de49313dbaec5ed43dab39e2c52f6684aeff4f GIT binary patch literal 3255 zcmV;o3`p~dP)C00054P)t-s00000 zn0Vv&@Bp560G)RLn{?~=^#GiA0H1LHoOb}5b^x4q0GoK}_VWOncwE7%>-Y8P_VnrY z^5OpP0GxK~`1I@c^XvHZ0G)OKns(>*@&KK80GoE~_w?!Z^Z=Z8-O~3@9MeZ+UWN3%nS~xa8XZ|Npt=+nLzO1D|;apnMUe zfwbe;vf|gR;MBe5+#INeDXosTs$%|o}Fs^8NNqkj~pgZKRVM!B8K>*TQE)jzhHCajFp z@92inzcR6tFR+m#tBV+?h1c-v(eCGS$+c9zrA)h^XT`6+=iRR0)q>Bx?)mo4?d2@5 zkDl7hlh((N)WnU{!*9v6Siq;p>f)T*%YDwfU&5EZJF`C%hQkN^MxH*``?Qve_!{@*~~?+~D1z<^*t{ePf85Rkv`kAE=Vk8q!G zP~XqLu%J*d9PjV%-`~%`u&I!Ma9~g{KEs|=000VtNklLvH%5m~? z_st8fn!Up5%iVy>$25C_*4sVZEP5`V)-)YwP8xeafB`Eoo@%xa*U$F=zacywHh_X2 z<4H{uarzv&{L%-DB@<>99Bf)Dw7xVNjlf^@S#$`#JgdO?tO-7V`R9%J`h%Mm%&)V= zeMO`IBwX8l3HJ`JVtT{$2aC?qsp~{Q5;9>{!NKc|rIVYF=z%|v=ygDk0a2I^Lp2z8 zH5JZWSS8W-#Ub`UjRk-YmfiQ^Ix#=I7>CQJ&~XxiY%;EH)tx&I-)Pxc^bZ1k4=z1= z^_ZW}gm~tEK6G4cXBg(<4odGFiGFc19>?zU5&+bQ5?hk12k&cY;6@vR(RO&JrMHOb z3Fr&*l1~NjL7oZ+jxaphw&TOGhepgF&R8s>ONL)+1Xm9m#D~?B;^<#tL^#x1Af2;=+10GJQ1VMiTR3C;r=-z>ARD09D7;Db(Xrix{8t@xZS|-h=dZInbLG-al;o% zZl$2@YQ4To=z|-$@lb#gVnG-Q_$zoHfu&D{64AMjA5)vYNsHTNUmv1`3R9u=AlG+4 zSVZh1F-9aH4e!u5-8S1-N5o&9`!V(V=fs4=Z2#&=MWQign?9U^tB1Z@yYUcw??MoD zBR3F668b;Gzs4p`j4x*gqLGN-pZLgZjVn?Kh#mT_h1MNSc^d9C2=M7>Qn<1GiM1b7 zpVpTU{YoL{T1q5lXRA)2QSL)4@WWkCK+ z(Wr^}AKDIx1sDuIAwLEE_XjLsn$Hf%fUhZk6!8x%EN4etqs}4gV4y!5)$54>rK!+r zK$z6YIB6{c7O{Xl{a6P9n4KH`G_kPkE##cvtb_gipZoNBWdfM?OCkXuNbz$;Ck+A- z5EO*SZFhvCKYp#BD0>U&@&^NmzPDGg0Op8T0DobWR+JGXEFesehTuSAZTQoGCp$9g zv;uu!FT*Goz;uWsAnv;qBp^X7pqt(v%phQH>gS1Nlgo+1-`9(v)ow#Ti#P(b|H^MX zxDf)rQ$=Q5B~qRLwZ4!X8T|(Q48~3cOmalxG^C|r!~)XvW4EmWDKIgforw(vK4X5Z zng~cCNs8~R038g@H2?w7G6)S2psSgWf4eZ^{2L%Z|MAlR65zD<_p%OX zRan5Cz;v~523;(Cf+TeKSpg^qQ3`0W1&o>`tPdS8Aj7AJnTvpl6M%kHSO8a#e`{Bw zj|j-~Z^{J#R7XH3?!)vvMg$Z&O(X}X1=s+lcgF(chi}oje3}Rd($ko|A`!r7dsRe$ zK6}(ekqGGKWJ;5eVN_aB@BB^5B1i=E$g9BQ!exj(P?-bdz(>0vtx5wC@RwI;wu{S< zX=E#=FNrQ_gcxbQ6H@^Vssi~fkh%c^2*~I1D$pVWv??P|rw0JioB$sm0#Oo@6j0L% zDZjiSLmwho)Nwgr6E`B@S0_LxFkKP?-(OxpdXxAg?S$;jaObyU$}YDd!x=z(5sd)t z11bdoDHS0<3{e>1mMCw<;6S6!13F>&`2wIe_-G%X7BK2^KzlOR1WAC(_(u3wp2oT^4I!!vM@R{h@MLu z(Ff?GXHm%0?Gt?D3ks!e{#^L7l5?UE^l4QmAyp7J3aySy64aL$NLU?1Pv^03gGfPN zpSm)n5*E{9dil`0l%_V!C0AfNgU18g$$>Uay$6$`j9w16Ktjbkl0ymx@rXdVfWu+| z^b+&@wH4!%&O~3MiR3izQvxPbctrI1vr++V$2Ii?bd$u-Q%cFu(u@XV_DU*bBPCHv zdPinPW8a3XN{3YKM}fIc8Rkjd5qddbKnN33G@zZs4=nNJq<5v@!V+ey3dVG2J2X-O zlLESM8q>?CW+M7on2>(@`Fq2dA1HrGdQBr(0!%9ZBj5;$zGO^CNdR@9lFTq4PK9Rm zb04QZ{hU}@825O}<>fEQERrze8V#XYt#?cFZ%}GFDK%`MC53EIDxDd*VLR}(lETr4 z`SjAb2VH#f3xJidl8Qt^-mT2(qYBKI z?h9B6u&$t_^cU#y)uYl&u;vdec%b%jqp?_QG&chhJbE(=Q=RD7Ut6`FLJGLADF{=Z z7QWktE+3g+UHdVN%s=7zLP{Uun=_W1F^#3{HnX|2^ZBcK<||oQb(aJ?8#1HdqaO)X zS@ZFB0O+mOz#xKk$T^-!IldwVkKdxj*&*dCGm2y2Ll2t@NQ8Vd1=0V5qQ5?{P)6GU z)cx^%8lgWh^2_g!q#TvViT4`7CCTdW)^Q~}>kFc_B@F`5R~(@PE z;lY9EY$D+gMW%-MeavBjgm&4ktbQsOxm2Ko3e2DK&+_JHS6ribJMbCiAYQA!u z#1cqXAopG1|1*rEpTsv_)_kCMj_Fy9_t)q*$B&*Bn6KOiB!O>@FqKFAuo*is4(5-7 z`GL>)@&n_9eoVF}yQt>NOMFQ}S3m}Ys()ZJx$=_i#ETi= zFT=r$n$P5ZvGnuhex@ewbg26N97%;qbA@cCvLiXNnSulO5NG~UfBiep_KD>sX(-w7 z7-Agwt%IET<#}R$ZmV-whsrNFo`YtWK zCI|o@Zejsn^&T_?$PJU|CzU_^smJR_NPs=%|B)5+-R21ZAMS2~fJBs*UNZ#%-udmR z5G!D~z%b1haDYj!K?G>&HC+G`@O-TPS%T8r8vy{g_&pWC> z1?-)GmYoUEG!930!hg1b0$T2DpZ`!tquA--PdQ*V*=QV9&JMH5T>zZ{E8Gb+9+wpP zaO9E-3e~9q3&CAQ%UQ~$d@azVRH*;oSeoMl?1Y+yqit$Sukk*B`AtPjn`9@{bU-T5 p(%Tbs9HqPXCWEFzd%LQ>`wv`YU2(=)dUOB)002ovPDHLkV1lejUt$0N literal 0 HcmV?d00001 diff --git a/static/aidex/images/menu-earnings.png b/static/aidex/images/menu-earnings.png new file mode 100644 index 0000000000000000000000000000000000000000..2c5035d467e1d1ca1a53f02e66ba21d8977ac964 GIT binary patch literal 3449 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 )M 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 literal 0 HcmV?d00001 diff --git a/static/aidex/images/nav-bg.png b/static/aidex/images/nav-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..c4dcec6311b4a8c9e5bc35c48b049b64bc534036 GIT binary patch literal 61094 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

2Na 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 OF?hQAxvXU$ege literal 0 HcmV?d00001 diff --git a/static/aidex/images/pcs-energy.png b/static/aidex/images/pcs-energy.png new file mode 100644 index 0000000000000000000000000000000000000000..07e1ab21b8084f3e43999c24a6366088eedd4814 GIT binary patch literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^3qY8I8A$FCoGuTfECYN(T!A#hoHB+v98j-NNswPKL&5@u`vUtL0vz6-H<%#senNq8 ztRou(1EZ6ti(^Q|t+#hh7qut|xFt%ll;(N<`YUhNts)vU#aVR8#hI4r|6gyv6l<-d zq*S$_DPnsIU!0GXg8b~pxb`VgwT|qfQjOhwUQ&&lKH4<+v(MQRc-fwDukk5n77hUg zhXw{lCMe@QlWL~_Wz$2GysGBtlwpLQVh_vdL2j2s^n4osWQfvgs;2?ygr!GmA# z_D_DbE#?Mu`ro%Q*|&=ldG}=8i@80GJNrTC=X+TofiJ(7-`W-v!JK~9`uet~homa3 zGpAhvF<$6R{#WvAMgHm5zwK31*H4Q8YWt@GacTmaiDk^xO}XzQSO4{|&t>@#+Hm@x zy1;CH6*XIjd%5MGcU5cds%~}trfUHV5v!p2d3s(u{UiQ~gCfe))z4*}Q$iB}GxM*x literal 0 HcmV?d00001 diff --git a/static/aidex/images/rcdl.png b/static/aidex/images/rcdl.png new file mode 100644 index 0000000000000000000000000000000000000000..a3ae3f03cf9f7337c65996979329e22a7079b604 GIT binary patch literal 524 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVB>;rs4T!A#h>@tQqWel@QLFAlr z5Sm@iFuw@Q1&RR0fg(T!RbW}L8W0yGzGUi2IiLw5B|(0{3=Izy&L`}55D3^XVSa(Z z`vnsY7)aRhNHZ`nW_Y?dhD02GJ1w&BumOhyZ^i1(C6E85%UZ^E+^X=I+@sa|=bz6B zW5$(NO#aDui9KPtaoJ7L$k?X#Opi48lbwg33BT1iqLy<=O@!~mlR2X9JBrUN_nRkI zvhPUNq*ZqR7<_vV$TP$XSFLz-)hSiUBvIH5h#pRFJ-nsHck1S_7ez_-{VY42KWAK8 zcQM=VNUN*v`_uM676`bVbK$HItm>S!q>85x4U`zO%_YtOTL41 zD}5%tiqPD6!qY80eZ~EE7LTVK>bU$hrAy!y_Y}h$5qmCrHCpYFIKA)Q3&lN>nI9LX zW_C{dSW%t%a5dAXBN=vwKK9OwE14H5wd2@{d$w~6D_-{PTMHT0Rj4%gv zy#mF}eC>M}UZIj8zhDN12lMv}yl)6tkl=8BLV>{s0Z+-I z6rk)8PZ!6Kh{JEMpXO^;5NJ(wbzs$hyXXJmG9U5D0eeag969yNS?%#6!)_zf-55E6k Y;GOUM;b2627m&x`>FVdQ&MBb@0Mq)5K>z>% literal 0 HcmV?d00001 diff --git a/static/aidex/images/setting.png b/static/aidex/images/setting.png new file mode 100644 index 0000000000000000000000000000000000000000..24e44c1a29f2fb56c90fa6853c26a351c9d6dc70 GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^3P7yH!3-ohbF|L_smTF8A+A8$d(JZ;vYq}S71>}La=WmppA7tHYH1Lt#b0iGYM z_fANE_DXtuZC(BD`6jn6P0VvDwp0>1JN?j>%24feTYa?^?E%r@_`)hbUD7Gskd3{Jd zyg$`DQpLr;@3i;+?2R)-W%Uc_8wibw^tM`7bw^BGP|;x?`&@e&*oP%7}Hr z_p8M+71C;U%sH@b^@7{y)%$8H&NN-v@oCCk<7H1OzE75WxuBE%xU_np$GL;g-pt#c z?&jI3Vd1C#B57J~zwyDM(t7o$rVDM$Z~at# zEa7Y}s-j~W$SqTJ{+5(qbMvFsO)e)xb#Kj>JGFEA!_yU9D^6V1pP0P&{_D&M+l3DV zeYn-~E=X!e!3u+KK3bBRxdr+Qx82q?@{uW+KO^q!K9%OR*1s5ixHxzgG*7(2bi%d5 z@IYzEYJ0^uzmA>DO64_*`#wP*NT?ijmCOrnOiq4jR6XhE>s=~S&avArbh^6#0PkX> z?Y@Fc0?chdf+KXi^{d?Ro6EyH|eVVefL$Dk;l{i<=5}6%bf3ccjv9x<%>h6 zI18*gX7w*1FHIySIJ21BZ$f{>D!$EE=5x7iI$G!7Q|#*`HtpZs4%P*FDUBw&9UAkO z<=J~qRZk!{_b|Q#O9zWmiXYhRdCGEnEnoZ+Kh)p N!PC{xWt~$(696XKqsssQ literal 0 HcmV?d00001 diff --git a/static/aidex/images/sy-byzc.png b/static/aidex/images/sy-byzc.png new file mode 100644 index 0000000000000000000000000000000000000000..346e8173b41620524b6b7e3b0a8159999e9a4b75 GIT binary patch literal 1475 zcmV;!1w8tRP)xe%=-QN`u_cN&A9*n{{WnK{Qmv+{QB4L>EZM4?D+M~>*UYu{y&-?@)81n<>73!0pGw{QsV6o>c-)q%A>X%SFyH1dhGNgFL9TXvRL zj0yV4Hg>-QvfyJu!&>;hwT}2W&~k~}Z|I{YI}&`8O?I3Ifq z-DXx+;egh?z4_sK7t8(8zwH8&Sy{#F4FIN1{cjd0wu*U<)xGvK>$(d_VWVoF_4Tu- zU7vfF12z`g_r(AYh+ixs-y~17jX-RvysjZ05W6glN&v4tW4e}Mlm_-ZgX*1_ z*a8D@JcAnWDCQ&RnUu?-m;+k3o>ARf!l%-seb1=++@})g*ms^$-Pw?*M;-&Zo>93r z&r_K*wr5zK6JW_v zn)#F(v`_`cSwhWaDOG{{c$QGjSqhnn(BiR{OYN%6L~5tWrRDai8B2Azbcj~wmji7} zD^O-E)}>m24=iIZP8x~_E;lP533RjoCl4VKNUV+)U{DUUFLvpRIy4Gm-&hRiPenkm z5H$};ec)kS2-IL zIc+XW=TFgg@~|W(fSYwzlr*t{ES--bfcy2#uN^~jmWA^J1aJyV zZPL)h-$m&t*knGXg+T4A#S3%jX6@5rV5ku&XT&~aPZHD*gHbvjk9P`C;{pr;1ixj# zW5DTTn?{F4&4~{}SSV*iARb%*xY{o#qtP6hG!ELO>WrX#JekFtY4BJhORrFSe41M$ zU`DV23Szd7pYVTa>bX?Th!ya-DE0l(yph$ydn3}<`l|)rrBcT|%P(aCHuH$#CjuEP zPJnu|RBAO7L=iyjw74LKn~-PfuHN!Q&bLs^{Rpm1#4st@v@C@~P0d5~KYrEnh=B+4 z8KK6|7;w87)_oAZ2pB^E8+_Csi8Z3Zq&cv*!K8VbHw=6ko&_Xmpepkgs?s_S&0FaF zt1iV`*f9>oXDR*#ttOZ5u)tSMNi%!Ky<~rmG+79n7T6^rlvcgIw6X7L#HMANrqMg` zUMhS15_bOkRf60-RRNPMp29ZiLrs>`O;!OUc?;bt6XX3uFoh$4FKa{#$5B)0?c?${ z&@Q(S_oFkVezpqNVHmIBh{JFlgLo72h6_ek6+e94@rn~-*4`J+IgO8BNz!xy9457s^XlN4aY~~w^%@H6Ui$vk^mAUYjUO7 z$mzHvj$HMwxOS>=k_cAHn&kQ-@`4~Mp<4pVxNz{3Y`J7d9VLVu2hr8uqGViE*?8%# dSO3+7egja&&pIP|P#*vQ002ovPDHLkV1laG-|qkb literal 0 HcmV?d00001 diff --git a/static/aidex/images/sy-byzf.png b/static/aidex/images/sy-byzf.png new file mode 100644 index 0000000000000000000000000000000000000000..3877fe26906a978e7399225489a426500472c48b GIT binary patch literal 2162 zcmV-&2#xoNP)hSsZ_x$?${ru$g@X+n% z_51nl`1RrQ@6GJx+3@Q%u#?s9=w8989H)l){rlVT>+<^e=JoR2@$7EKvgr2nTEC~> z^6qcPvZC9~((UK!_w*G9&TgnW)sLZ9#3~;?!;8 zYtZum00$;XL_t(&-tC%af7&n*#!JA)F_6{m+JI+VV!)I*g$$B3qvQL3px#L$GI*=F zebdKA(#ep2?lj@2SO4|5)Ogi^WJAnMR^dD8MQ^Gqutt+2g&B*85~f<-K0nY}QBlvPp_6aEklRYhh# zvDs7<72e+7PpXYK%Ql~LyUkO`0IRmp&FpA`caqe7ee$8F{jquaCZTLw{*QN=? z{E$lfI|M#Xhd@k*G!9JbrG|l@ez>^!g7+6HUVvIs&+E|sg}~)tsHXv&1#PG!@T=d? zkk3<|U%^K{drQa6_fSa-sX>8@#c0%LcOOz#8liX{WLQaoQ8*YUfl3ijW57}0_h*xt zKbcJ?6W^yf7SSSQcnB|2L4bY;F-`Q+4PbUi??--QS)pY;U0z;3K`9Kux(DMfWEL8? zkmG{~0<-{_KMr#|?0a+99SjENV4M$_9>MswHUcod)1rIMfa7i8z7(I@@_;kTb)4aN ze1^a&7Kg*(H3Fv&l)yyby#t0hb_j5i=AqOon%WGL0+CSNV`Je*H4J_Z50IHtiMz`>OGVGtlS3<^wbLnXdErFxhIK7_9G z0=$@mu?AkEkq1N%<89c^3~2;FVCV$s&8HmbEr~%w`onX<0AN-d?n4_Et%phA6*MTi zOWN>D6yg&GjPPIK9*#wZg}Dx?`2wW>I|I(*K#V;1Fl(kMo=Z7!zPPwcD?DqetIu0 zT7We(GoYjXEb_cdp>c?+G%SJ}d*plJ(zRFRf#Smg1G?yYFo`?Y)rJLhnpd&)uyjbT zA)rwRiv|Q#IHVOkTtPr5u=eQ@7!^HiigcO_8v?q76*4FQ8U+h*yIiLUAfRL`Zk*oz z`1!c1;$a+EdTP6|7ry0^UHy1EkNUUw-_C=QZKw*&G(S&iKy`!eqxvJ;ep(d{{A5TK zsa!~dtM7J5b}|M4=ibckBd-{k{GF!!z<>O9r(?Xwj=K!K+n{u(Q47BTXRa2jtFIBb z=u8K8P`T5fGPnBKIx}?L9Q%YxBGp*ahLC-2H0KFwVR z<5|r^v0jP_Cehpu#O6{|<&E(3Xhz3_;M7(X7@RKd3MTKdz+9RQe6~4HZ1Pqrjlj$=) zg}{{<@Cvp)DL}PZxB%YeBAo_-jvMvu(-hfIo2`Z5*EPc&x|Tn(Q?#&iv>35p z{gUe;-|DMvErkdhvuM(P(FiWg;7(MsN1(nxBR`Pk%`^z?rMc+fPimEAvERhv>hT}< zkO*7-f&tAqbeLFa=&+oncykR&0=(^r9w87=yw|+d zQi(dqgbPxWzc7W|qz0`d)ied%Ht;Q54*Bfe?P+OZA6=&?jf)xvGib@c+Jw3o(b`Y9 zaGlWeE%BJve7prC`i~Cqa2LA=T1`5@BT8F9atNy?;z38|4sxPW=P@&E!7U&JwT^>y z=pXXX!6dP+qk^sU6PQgP%2MZOhqT^d&S6MAJFB#0JnngP+}i={_~doBE#;mt#RI0` zrQAl5W2!XgV)gAp;aep14x6u0bYxdXN%Tfx#>~wpkf6*ducDIy`CqUw=ct0bwZ_#Md?6;{X5v07*qoM6N<$f^twkaR2}S literal 0 HcmV?d00001 diff --git a/static/aidex/images/sy-ljc.png b/static/aidex/images/sy-ljc.png new file mode 100644 index 0000000000000000000000000000000000000000..35bcf5a100c0511bd77b1ff601c97e98eff2f99b GIT binary patch literal 1958 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 literal 0 HcmV?d00001 diff --git a/static/aidex/images/time.png b/static/aidex/images/time.png new file mode 100644 index 0000000000000000000000000000000000000000..3c9297df360c5230c4cf06e7a3f9efebabb67aab GIT binary patch literal 5416 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 AGXMYp literal 0 HcmV?d00001 diff --git a/static/aidex/images/total-sy.png b/static/aidex/images/total-sy.png new file mode 100644 index 0000000000000000000000000000000000000000..447b7602490b0217495bcbc1422d96fce8e771be GIT binary patch literal 4972 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 N002ovPDHLkV1nl}f5HF& literal 0 HcmV?d00001 diff --git a/static/aidex/images/total-zydl.png b/static/aidex/images/total-zydl.png new file mode 100644 index 0000000000000000000000000000000000000000..ff48f639fe7ec7402d3e0fa062a37dc0cad25766 GIT binary patch literal 3576 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 literal 0 HcmV?d00001 diff --git a/static/aidex/images/xtzhl.png b/static/aidex/images/xtzhl.png new file mode 100644 index 0000000000000000000000000000000000000000..2e3c82faeee7c4231db178c1cb8f85e5131b9f21 GIT binary patch literal 800 zcmV+*1K<3KP)P)t-s00000 zn|1)1cmSPu0GxLKpKt)2cL1Aq0G)UMoOb}5cmSGr0GoCIoOS@4bO4-o0H1&WoOS@5 zb^x4p0GoFJoOS@3cmSPu0GxNxBSgIb000pFl9cP(Y9n&!Awi zuV9b$eF47!00L}DL_t(o!|j&ca-<*-Mxg;w6d8YJ!uvnzu7;#*KtNb(FH$*|sHeWB zK_EW`kaBD$6SHCVFKp0FqIKLN-3I?+o6TYa7Bklsx((b$;Lp;aGwnRbG6LKlMa2%#T~tU(74%nlS16#ZaO0Li zL*e7xj?hjB7L9F6W@v091T?l0qOp|_jje=etP{eM`EZNIav`%(Sd9>D0;mu^ctR*@ zO75dN{>qoU9fO1adx_v36zlQr77^C4AKz;KoIek#I^lUpsjHs}s}u68gPvgXN_p6W z>%Wsq?G$8y^lV|PWX(>I$H?yK-0)DdQ+5}{L!B$Obf@5CMS7*mcgpON1mKm&Gd|Nh z#hjNm5+ZT7J>x*Khu15*oK&fCc1?=aY)GMT#fp9OIlH3F2-d4OSSOTR8j}|#mU_s= zrBOuBLCl|zh(;63fbruIA&5bBbOteCJYq*~vtqzh1^TXUv)NlEyDmD_5hh3iWebY# za1F+JVih?kb|hQ0?ejkA-J8-y+mU1#?TNZu2_G{)et&LOH0FHf-Z{H`8WYQL{`4&( zqr%3d>ydboy$3ks2f0Fgps&Cf{RS3$vOv*&rL&Q;sXMMGLCP@B$n;w`m>V{v7-=2d z_^tcO%_XS-*tb$Uor8^}4vN<;N%5*`^o2@**wJyDL_aRzN>Z eRFGf(4}SpJuy`bkK<^j;0000g4N#+CNswPKgTjOP2?FmAIMf>mY>0o~ zaDI#bD-#9=MpsW4$B>A_Z*S!0H!DcACLUCQV3UX^qDyWfPh~!37xO4&e({4lf_eXa#%+!&d=m!1l)Razbs=ka|ywy1f|IcuA) zH@rIDA9_|Ux*Pl{f8Tb_Q1;^nuh&(5-;i+DbnDHYlDv MUHx3vIVCg!00PC)H~;_u literal 0 HcmV?d00001 diff --git a/static/aidex/images/zcdl.png b/static/aidex/images/zcdl.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4d2ecb56e3e154013e53ab3b5f473de3810649 GIT binary patch literal 436 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBoC178T!A#h>@tQqWel?`7^W96 z%r614=ae$cDF-7U8_0l=fr5fSz=Zev z7tBxCFrnVz{rLie=ARNF3=E7so-U3d5r^MizuR|6L7*)$Ep6eJrP<--@BWAJF1a`> z_(`4N_2j9m+ryjQ7IH1pL*{p7E z{l9qozRP$1=jgl6?Rb7Z-znO}apsqdimdKI;Vst07Lt>YXATM literal 0 HcmV?d00001 diff --git a/static/aidex/images/zfdl.png b/static/aidex/images/zfdl.png new file mode 100644 index 0000000000000000000000000000000000000000..4a402c0a8dd61cea7c5b6842dd41653b2969b4a8 GIT binary patch literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBoC178T!A#h^a_SKWeju68D^I; zOfLYj=L1E`8Ri!-%my=nYzP7>mE4)uv2W_AdEzIWsBrj)(Sy7H%%{CUPW zU8eugJcjR|jrP6CW0BdaFJ$msY2Ot)X=EtUadm(0Bx77A!^WHJLuPIZx_ z2d}uzmJ9N=oO!tGgQM=Y*M|c2k7z6VDZW{xFY(EL9p~-6?{W_bG6zbqE)?K6w6yAn zlLANkWZi}Uo{)dFi3|KX8od4O0C>?POk`KhnepK<4X<39aNK5uD8 zW0rkJ=WL^x)#smGmc)5y>BJfLlb-+EYbvz3&?98hjVW>ZlCLjrEmUpHZ{6=F1qzn` aA6RED^_s9>V1E%P>O5WjT-G@yGywnrgvNRR literal 0 HcmV?d00001 diff --git a/static/aidex/images/zjrl.png b/static/aidex/images/zjrl.png new file mode 100644 index 0000000000000000000000000000000000000000..77e40d59b5d724c041fffb4af8f4785d268a1fa1 GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBYyx~jT!A#hoN|WQ6%4b>7^W96 z%r5|Op{NYZCT!U&`yO@F@4(vlVOA?l1Q! zJG`YUy?B(futQHHs zS;^7F_h!YL81A;q3pbn<{pn@kYBjCofluo64QG4*ZGI=NAjExhPQ5Kh_F9JGJT)N?iL~J@X+RoxR~pN`8QTD%ZibP0l+XkKAdR>Q literal 0 HcmV?d00001 diff --git a/static/aidex/login/bg-logo.png b/static/aidex/login/bg-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6b085f199414b12750e4653169936a8b61695189 GIT binary patch literal 16303 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 PMk0f!tDnm{r-UW||HC8% literal 0 HcmV?d00001 diff --git a/static/aidex/login/eye_open.png b/static/aidex/login/eye_open.png new file mode 100644 index 0000000000000000000000000000000000000000..df65e8e4acf36bca06459dce6830265f33ebdf63 GIT binary patch literal 890 zcmeAS@N?(olHy`uVBq!ia0vp^CLqkg3?x4-dwml~RR{QlxB}^!0|fk%Px%9_*C+|{ z3ugH8lTGz8*N2x<8w`(Cq@UR#a&P&}-u8w(uS>l9=@`vwmXyq(A?~`%>5Ncv{)o_=Rtk)8KyX@#s{l-~Mll z-(HHklcj&Wv3UMwgJn~WDW3lId7@Awi%ik|9t)Ec$1nX#`xbl;Uwr8QvN@Ip$=$`T z+zc*WdG}0ejk&$SwEdwgBgH~$wuZ&ATCNUVotId9@`H;i@A54DS$k9FY0dwjA0_Sl zqhQv)benX;MmD$4y*rs6hu+$%Z1?HJwZvrRkUe_>%=x2U=#*Gb7kE@=u48s^o4H-~ z1cy~JQ@_4krc}uNSMAe5-+5K%6*Zif6}->z+qb+Y=lB_csS3eIH_Z3xWS+csf|ujZ z2l>TvCOu1if4thTU1>GDqjdECeCejZgqeyTG>=}RWm+zLRu?rnK`P|>>j6jFGmE!N4 zddHm4gn6tmDo<}vxgoUP(d$n45(B?mt2XmCTPAM{N!xwTFJm8bl)_Zum!;084k9Nf zG;Wi%_&Q@x^Nxd8<^^0o^erRm?3W3SvRPX$?q**4d#@=QLzm=M8|FQqrd__r_I=;$ z4ZfU=EhS>#*!CGGScIuN`0m=XcbevFue@ZT70%DD&p!H&cY)KK>#A1n;&V6fT#d`$ ze?KvFMV{-!&(B|P5YWrHVz9nkI#_kaW7VU3)`VrRJsqPmZ?TByasTV}Hy_NE=Q=in zW97HmpJvB1oLBhRy)&*&w*C)y$1Eup#^!5>uJ5Wpe^zq!)%hFJZq_t7Xf7^$nk_wZ edHiqvH~b$L2b;17to;j2#SEUVelF{r5}E*{tgTZ3 literal 0 HcmV?d00001 diff --git a/static/aidex/login/password.png b/static/aidex/login/password.png new file mode 100644 index 0000000000000000000000000000000000000000..f2defa99d02bb3591f7b5c618f2548e9bb82b89d GIT binary patch literal 728 zcmeAS@N?(olHy`uVBq!ia0vp^DnP8o!3-qdT;aS0q&5clgt!9fp#@ZKGhG6@*t#Uh zFPP!?*HhZBXYFHICGzBcw!+7QULk*Zem-{+;F6QLwtY%NWPqu@8vDYU$}}sPOGh_M zh*dn>U0mRPV`*EcPI^)&0|Vo1PZ!4!i_^WAuTPq7Aky$q*wJm@#I}gU0a>2%A!r5-`zLN{loYu{Akhc z#mPs1Dlv!LlvqC3d9hd+U$aMA(C$}n)-ImQcDSoGxxDPgE00=N8{eW!vzJW!5Onmv zRLS?e@ve6DeN`-6iDXjRexdAddBHm%p|QTQc*d#o(WP-0QN9mWUN?nZ!T^JxxK^t$tV7wT%r}qe@mq4>fx_yf&xrJDtom) zc|ZT>x>oJwlLfXZ(}Y${a&pY(NSdrQN#j~zopr08~`_!~g&Q literal 0 HcmV?d00001 diff --git a/static/aidex/login/user-delete.png b/static/aidex/login/user-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..e34cbf248b938663404d6e2ddcd87ddbf62c9569 GIT binary patch literal 556 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 literal 0 HcmV?d00001 diff --git a/static/topology/DCDC.png b/static/topology/DCDC.png new file mode 100644 index 0000000000000000000000000000000000000000..5f95889da74d4e74e4240d6abe6125d3064cf23a GIT binary patch literal 418 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU3?z3ec*FxK*8raoS0K$Ww~S$KIS9=!V3<=5 zMr90hfT)~dRw=`*Dli+OrWB-XHV}bjfg0!61C`xiTdM;!N30~sFPNcT;l9B81@Y(i z8yKv2=uhx(D9G;@U<_>k3RLmU)5S5w;&kt&)9Vfy@UR3tzp1ue|G}gG|3hRrgP%AS zr9bUCr_`;uPvVi-pCydUJ9icaz1SfjV%4|qfK|&OiR8NPwP#<5xJ_F!TO@m8HgowQ z_cz~*ra!j79N1K&O(*XeJL8d#*&GYs3oLT(;8V0>hfwmzLe%b9 zI~CUNDCfTV@Sdntdv$n*%)8iyg*(bykD&`Zy7baOUPJE^YsA&c30HS+V6*pqaC8rY X#u90Ul7i)TL4ob*>gTe~DWM4fRo||j literal 0 HcmV?d00001 diff --git a/static/topology/MPPT.png b/static/topology/MPPT.png new file mode 100644 index 0000000000000000000000000000000000000000..d1b11867adaa827d115d28445713c22556bdbd22 GIT binary patch literal 485 zcmV$qA;(KP`jbH3?oqh000McQchFvzpo%50Phj4 zgLVJ_0X9iQK~zY`?bpq2gD?;TV240=0JFyYg(Q9d=j>uI0`)*G8L5hx3%h_m4IGeA z+5M&{W|A~hcSVu&m8yiI$3J@9s%M~dp>&}ay5v!ozm{^!gJ?VZao!J54e+|;KqUvb zjJ%wZbWa(v#vG%$pG$bu7$e%#p}oxRCL^)aYWNVXQ7p4Tx1c0xfL2g zDLWKlC=KALD5@1@<{oIAGB6KTiUy(;a-sr;JnCYjv=ojO z$jhni?w#(HaFlYZ!LiW>s3|tuT5xofbY1-w{irYhg@VWQTeFjdekR10 z%|5U}pdeJzZK+xoxB22->dX%oPK-X@EV^CwZ^=TQ-3qEld)D}#JZ$-)Ve*7`Qv>d7 z*|^Ju^>lo**ja{uO}%seTSfkp)10rp^3vV=jPi#z{uaIV*Ky~Hr>-HVc3od_YBAgL zfDqNIa}TZ1b9W03Uw?0x-`p2fvlcTYCNs>b`4gZUfAiNwkBcf(cC4{hc0J{)I`fQ4 z&#{0pDX(Av0M z>3W6C62qAmMK43VCif}q`txeb1jil|akp9A%4b_AK0D-5oVaAC!KE09OubF&x<}eN z5pqsm>iWq>&7S;vI5Yr-mn+%M%T5yTbN%&q>-LCUe+2&?(yQIRrLpsn{F(Sax5|&) zTsnPS&7t-zPcCzV`iI6<>NirS?z8(A?K<;DPS47W_}*8s!d(5KvljVS7@bmCzxXff z-Xf*_Vy}HV!f&URZo8?GY<}YL-G8cIxK@98o4?(F=Zw5K#68_TUeDKL{#^QBNb=C3 zJ6+ws`_m^1PmY{uzk@d`cO#E|#I)(}WOp3fx7cG}<>lLpza&QL)vQ*sy7xb)FzTQ5 z4j#okm0ahk%fcI*%+`h~I7M54-`w)w2FKoB?6UhV({0y(>#aL3%zSEJ8eO`pBc1sS QFo!XCy85}Sb4q9e0G+k55&!@I literal 0 HcmV?d00001 diff --git a/static/topology/ammeter.png b/static/topology/ammeter.png new file mode 100644 index 0000000000000000000000000000000000000000..065cad72ed655aa81cb54ae346ad6bba1055c979 GIT binary patch literal 814 zcmV+}1JV46P)eo}K~#7F?U-Fo z+dveB&$Zp3hcjv`Ddj&P$y)(2kW;KlU)cNJB6{I*P;CZw%PaDwez5wPjB#k|;)%rv{E!kmLWCQveMzVYF;qA6?H$+VahEP8E|UEn(q{#XZWM*AbpPe?8dJ6zE6$mjh(M;Z{Fy}mqZ6^ z+lM24onuvGgmVm28?)Q49jrtTo~Wa7%XN@}V72L|ou8Qe^0#?ne|3wIzBG?s?tXX^ z>7Lmx?0J>Ql*%z_o@DtX&$!LRh*3YBkEaUM3ztm(agn|Zs}yVX{fmS3B4)%I;4FCG z=%y_f6OARNV(q7C#jm$pKk*lMJnLAYRjcEkk&+f}pSv-pis^H6nIx6)0B}8a$HyaM zaZbHPPRMPJ{rkqQ3%x$H7>hbA!ZI|XCt_k)g66g_v$64LDGg0zkC+@RB90a}%qNAG z*H*?AHQSHK;GNEYg{cB@k#)aGQToP2c$4 z6+O$v!TJL4{X05eFX&k=hQc{7Z)e{7kE6wyYUQAr|3&<+$;zD{`mUsB7?A6^e#b=-yCbpQYW07*qoM6N<$f_@rxzyJUM literal 0 HcmV?d00001 diff --git a/static/topology/battary.png b/static/topology/battary.png new file mode 100644 index 0000000000000000000000000000000000000000..42e3aae162fa9634575821ad72d31246c0113743 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^DImMfK|>Zm)bSs08pb~NswPK!~OjV3mh5*-uD~SUnocj zSbyua%^9HN6;Bt(kc@k8FW=^CG7xaRI5TcZNZ#N7^RFiG+DwUh#bPq&@0}FY^acT| zo!44R*3K#PXWG=oH*<}^AliL#h3g{@a{huW~tyqIr>_x5>Tf@3V12h(oe0@T~7woY1%2y#ggU49XSjL(R zvhw!8_jNxD@YY%4f2(D`@V40mvz=bW_g8q}vz7cT5W-%OS>?hro*a+$*el#oUg6oT zz+^xnP=~(g4T?5(K~Z8$uDjar9B?ZTE*@Jm%)LWp5j;7XA+~~`M0w{2*DD@dh-;e_ z#1wUdlVEbwadmeqpscJZ!}3wbg-}=)R&7^zA17|bSK{hD>PD0Dz;$zPfR6%+BUMxa z--tasbPA^vH&GS7Sw3*u|Ck8UY@zqtht%_``2dIQ<;6#Hqt4MgzJJpoK3gb=uhi!U z$wai`r~R?c&`RthpYV(>w&>ln{;O2H|9sKDcJ2*uD8sbtLq!vAA#Az>20LnWDBOjr9kOY36%qP40|(?k#k7(1ntdSirFHyjDIS^<0q^ zRF}5U8`5-0|r-CVRxfwg`o5d-vWy80q6`VS}4N@*y$$y-OTYy zhm<0r4(Ga$!h19q^Eirdl4|O{+;0cz_-};Q$0;uYoE^?6vq#VM-#6tHxQ-8S#W)!} zLU=LInKV(5`;K*XS#EP3o3b)Q-J8!3Vz9KYL_RB_GIvFE?`~W2VqxD*ylh07*qoM6N<$f-_uF!2kdN literal 0 HcmV?d00001 diff --git a/static/topology/cang.png b/static/topology/cang.png new file mode 100644 index 0000000000000000000000000000000000000000..9a3ebd2487ea18efe77041b66464f255a4211330 GIT binary patch literal 3926 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 literal 0 HcmV?d00001 diff --git a/static/topology/device-monitoring.png b/static/topology/device-monitoring.png new file mode 100644 index 0000000000000000000000000000000000000000..0637685eb0ce3f02cbea25c843eb2da103794008 GIT binary patch literal 1377 zcmeAS@N?(olHy`uVBq!ia0y~yU}^*62o`3L$OJ1!C8~bE6j_hi40^5-WiwDE8orbKio9(Ll96iYg> zLBP4KRl-Q;$b>{i(xtZCyeMAw<@3)!PY=bXotQu!(`Oj$=~q1)_%gpb`o_I;`6Oaz7@*?3RFk8{Tj5?0LQKeFYD U?4ysL)`0S$r>mdKI;Vst04?iMIRF3v literal 0 HcmV?d00001 diff --git a/static/topology/dianchi.png b/static/topology/dianchi.png new file mode 100644 index 0000000000000000000000000000000000000000..3e4d180b70205a7fcb285b3a1b811d74a5518b41 GIT binary patch literal 1350 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 a*Zl>PX&1E1N=23dCL&h$KikfrWI{ zl@*{tv$J!8C^t|xK@yvs%#gMtStLc$GsAH(-@=ecN~ZsLocHFvHwG*gi^XEGSS*%# z2z1eDY=V&Qp#}dfoZ}YOb|=ul5_It7ewhpS7}}t~$;z0&*o6itbU@fD^rP)}>Jjk^ z$BHNcJt8iBeFWVwI))}RdgrYQ_nMW&YY1Ha<4)o=j6LT+N6FW40qgAnG@(z#v~-$7 zepk1mPqGP|kKgGEUD9ISoJd%LKxAT?fCB4SByhz0mmLO@DJ0zVknS zj9r+6i(5ag;@OLTp#b@o=$Ez)6EH-~&0>yLfZRDTa3rJ!vl(!&y$A0&dXBuiJ4Qz2 ziTLD?GN^ZmtIrVYJGZlZAk5;3dF*)EohfZ@{53*agd_32eg4RN2~=ax#OM@?=$8)p z?C8#XpxYer5xEijW$#bxx=Sln`0SpPc`!}=WSX!hBT5N+YRoY@g(5}^P>K4U!0J49 zh~=ppmtlcESwnqifUM|@M`Lu#?wx(F0{J69$X%Ude&N|}Gs*+L{~UQCveP7srvzyz3= zUBuq~nkg$IGeq>99F|CxEaCEChKN}+&<0tdAX!8aRA0m=lEWKzrL9nq>{vV=p?4Zj z&))~j9ogP6qh}7Y(8fHDTb_ZARxpoDbj5bq)keF4~70ME}eK)E^B}T^+`a2St1BGMH-y|9PI5CH|IHom)9W(TonMS0c`0R<-S9&m##z84AW+r|heFnbFIab`oGZsX2r zgFqocbsQ#(IL1bMbp9?V6p;Z8#9R@5^5FcnNPn5rsyBzJYv<3qM2l&Xn(!3etC=H| zT#K8Bvx`W-8sg+#Eo|YKMq&cs%nEx=QO&DCCyf1ujfcB)$HUH#$c$4MY=jZVw?5^>gAyf;rNwa%<4*wZ*@RVa{+S ksbR5LEEbE!VzDUX6H>01hD%!ti2wiq07*qoM6N<$g7G4J)c^nh literal 0 HcmV?d00001 diff --git a/static/topology/fire.png b/static/topology/fire.png new file mode 100644 index 0000000000000000000000000000000000000000..d665889cbb591d96fa616e51227f97acc3841f82 GIT binary patch literal 6853 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 R@1z9Es-CWXF6*2UngF|@!kYj9 literal 0 HcmV?d00001 diff --git a/static/topology/load.png b/static/topology/load.png new file mode 100644 index 0000000000000000000000000000000000000000..59894395711ca0af3194696804be19ba99650708 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r53?z4+XPOVBj01c^T!A#hoN|WQWeju580MBT z%q?e_RSFUTa_3Yq%rAgS%`O3n&u;)qMRVE50d)zK1o;Is%wMn|;eNvY2?_!Q0S*QN zJ=br&2g*J6ba4!cIQ;hVZLUKGJPi+*X1__yd-iw!H4lN0Nxh8+Zk(wPwtjPb!D*4g z+Q$2u_re^!byf{TSh#DPXe`a`NLd`*+ za}Q(|2r(>B){tdB#iF3UM^jTYH7F#Yj!}Ql&bPJmKJ8~X&jpcSP*qFK5Av!jji0Oc zRM;$i!UpT+EfviLW*3Y!rCv<2U*X?1Z;nA+*S|Q%d8~J4il|x^?(}?^9#l9}q*5*P zY0#O3GB)eD*N6K&ISmdl>_7O5^_pkZl_x=OFUNml*?5Wd8(*g2H&6(Ay85}Sb4q9e E0GBk9)Bpeg literal 0 HcmV?d00001 diff --git a/static/topology/none.png b/static/topology/none.png new file mode 100644 index 0000000000000000000000000000000000000000..d097e3944c23072e74b168bb704306e64010ddf8 GIT binary patch literal 745 zcmVx z3O{IK0a881v+hr9l9RV3IOB8reZcwq81-Jj-STpRLd$Haaw;1a#~i*Jl9~!V6)?_! zns!@(yn4LE0zETvThwW5h3?T)4QGwQl|Ut2^Lc^K*f#RM)iBOiP1E-3NAwqjgL7-t zI|1#aPfvVMFJq9FQv}#SBzByg7nqA2?Z0YJJd{mL$cxU@o7RR;=)b)EZb)y@4RW)< z)7Ld`aWq5 zVtXdnC9DCYWs;kQil$Zp>d!B8?<%z)RjZ}~A2I=|C=rA!yX$4At?Y{6w}2c_Vf`Cv zB1Lf$!!8B$khXSzaoHK>^r%Mv+1gm)Zc==z!R^g8Hx$LmQHh-L0n$V%^39Lw?oviZ b#uoVxG||#C*{qmo00000NkvXXu0mjf+!RU8 literal 0 HcmV?d00001 diff --git a/static/topology/pv.png b/static/topology/pv.png new file mode 100644 index 0000000000000000000000000000000000000000..bb835738e5b3e6cb740f85a7a489a1b8284e8821 GIT binary patch literal 1267 zcmVl^P5?bY%?Zj4N+dw)s#Ge3UBix#4Xi4apo9~Yo}lIgr6*{5f@V>n ziX@)SB*dOL9?u(3;w1F_B%*Qj;&}e?%)E~=00co01VIo4K@h~8!N7(3!7_AtU9{H3 z-_oc7zlE)nm(gLZ^8LX!8_sWF`^1kwx8D?(`U3DYVe5EB`QC5h)lac&K${)H+oLAr z!~+*XKDe-@bORy8fO=Khn8h0p%TV7{ujz-zZWEq}J`CGhkzc^t{swSyp_#BCYIgn< zC0?KIQ$K36@HWG889Ix(ug&ES+%Q_SJ>|kZ9}0#0QPX>VooULt=DujiFCb&D3>M9y zxy5WhX1vv?S+2H(puhCC><#4o7RbZry*1r&ai2=hf^1{q&RiV$V0C&M7)A_{Kq#NJls8skswgAI z=uk^SA1tsH@HN6H8F%_HRoGf0SrBBK+eJ)x0sGk$-)I-II0JL>!E9dyYO;Wt=0VX% zi|h_ zqtTADb=W=%dTp7p2KEK=FwRJ1Kp2)`=d{slOJ9%m$`M)Da44>!3I=eiFm`EQ_^Y@u zQ+A+}cwXFxg~eN=J+jYc0c9+U^5sSx=z=rQM*OJNbEv^2BFddH3mB@gWEP48U2Fvo zOR`dTWBf$>i7_@d3&@c}QFWk;uE1fzSL*tx!(L}%GQfv6-6>Y!u&9-~Qh=~G-htVX zh@AgAp}e!qxBJei`ir*2DwZPx88GfhWB_YM&9cZ5*7nZD2+Kb2a9xEUh{uIK61m*l z1n$)V!`5+p9#qZ5z$7A(nBlrdt@0bdFu$r%OalEX9D2C=0OyGXhD|vGZNyI;JGnD@ z0U0uqV0_jc=p@*!Zwh*MCSAaOCK>5As1-OvqHYGb8tKzgxBH-xc?fM&wUob~zd0h_IF4`?DXoq)J`Y;+5o4|4&xtJL-J)85nx z*a8&F{5LBVI22+|Q!8~Gu@cMCmO{FKG8>D5s}ry{>#J`9Wy=XiEF_$z#`fs~Zl9cq z4;%_trV08pwuTc3^Rj>pP!^JYKQyCG%#WPE7p00S5aY+~L7Pb+ABtfq8<@D5=qU*QqLv-`NTR*kjcivn5UYidA>0~L)Z}#&=C^Q5fac55|AJWf*=Tj dAP8da_y--RVR`B(=TZOw002ovPDHLkV1hdjKb8Oh literal 0 HcmV?d00001 diff --git a/static/topology/yiticang.png b/static/topology/yiticang.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e1bd431406200ad064be77ec563911ce71f93c GIT binary patch literal 1732 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 literal 0 HcmV?d00001 diff --git a/static/uni.ttf b/static/uni.ttf new file mode 100644 index 0000000000000000000000000000000000000000..60a1968d08cc6056c70b5402b2effac43c6f96a3 GIT binary patch literal 26164 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 literal 0 HcmV?d00001 diff --git a/store/$u.mixin.js b/store/$u.mixin.js new file mode 100644 index 0000000..61ae187 --- /dev/null +++ b/store/$u.mixin.js @@ -0,0 +1,27 @@ +import { mapState } from 'vuex' +import store from "@/store" + +// 尝试将用户在根目录中的store/index.js的vuex的state变量,全部加载到全局变量中 +let $uStoreKey = []; +try{ + $uStoreKey = store.state ? Object.keys(store.state) : []; +}catch(e){ + +} + +module.exports = { + beforeCreate() { + // 将vuex方法挂在到$u中 + // 使用方法为:如果要修改vuex的state中的user.name变量为"史诗" => this.$u.vuex('user.name', '史诗') + // 如果要修改vuex的state的version变量为1.0.1 => this.$u.vuex('version', '1.0.1') + this.$u.vuex = (name, value) => { + this.$store.commit('$uStore', { + name,value + }) + } + }, + computed: { + // 将vuex的state中的所有变量,解构到全局混入的mixin中 + ...mapState($uStoreKey) + } +} \ No newline at end of file diff --git a/store/index.js b/store/index.js new file mode 100644 index 0000000..5ac520c --- /dev/null +++ b/store/index.js @@ -0,0 +1,117 @@ + +import config from '@/common/config.js'; +import Vue from 'vue' +import Vuex from 'vuex' +Vue.use(Vuex) + +let lifeData = {}; + +try{ + // 尝试获取本地是否存在lifeData变量,第一次启动APP时是不存在的 + lifeData = uni.getStorageSync('lifeData'); +}catch(e){ + +} + +// 需要永久存储,且下次APP启动需要取出的,在state中的变量名 +let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_remember', 'vuex_locale','vuex_isAgent','vuex_language','vuex_stationValue']; + +// 保存变量到本地存储中 +const saveLifeData = function(key, value){ + // 判断变量名是否在需要存储的数组中 + if(saveStateKeys.indexOf(key) != -1) { + // 获取本地存储的lifeData对象,将变量添加到对象中 + let tmp = uni.getStorageSync('lifeData'); + // 第一次打开APP,不存在lifeData变量,故放一个{}空对象 + tmp = tmp ? tmp : {}; + tmp[key] = value; + // 执行这一步后,所有需要存储的变量,都挂载在本地的lifeData对象中 + uni.setStorageSync('lifeData', tmp); + } +} +// 简化 vuex 操作,文档:https://uviewui.com/components/vuexDetail.html +const store = new Vuex.Store({ + state: { + // 如果上面从本地获取的lifeData对象下有对应的属性,就赋值给state中对应的变量 + // 加上vuex_前缀,是防止变量名冲突,也让人一目了然 + vuex_username: lifeData.vuex_username ? lifeData.vuex_username : '', + vuex_password: lifeData.vuex_password ? lifeData.vuex_password : '', + vuex_user: lifeData.vuex_user ? lifeData.vuex_user : '', + vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '', + vuex_menu: lifeData.vuex_menu ? lifeData.vuex_menu : [], + vuex_permissions: lifeData.vuex_permissions ? lifeData.vuex_permissions : [], + vuex_dicts: lifeData.vuex_menu ? lifeData.vuex_dicts : [], + vuex_station: lifeData.vuex_menu ? lifeData.vuex_station : [], + vuex_provinceStation: lifeData.vuex_provinceStation ? lifeData.vuex_provinceStation : [], + vuex_currentStation: lifeData.vuex_currentStation ? lifeData.vuex_currentStation : '', + vuex_remember: lifeData.vuex_remember ? lifeData.vuex_remember : '', + vuex_locale: lifeData.vuex_locale ? lifeData.vuex_locale : '', + vuex_isAgent: lifeData.vuex_isAgent ? lifeData.vuex_isAgent : '', + vuex_iv: lifeData.vuex_iv ? lifeData.vuex_iv : '', + vuex_psdkey: lifeData.vuex_psdkey ? lifeData.vuex_psdkey : '', + vuex_StationShow:lifeData.vuex_StationShow ? lifeData.vuex_StationShow : [0,0,0], + tabbar_current: 0, + vuex_stationValue:lifeData.vuex_stationValue ? lifeData.vuex_stationValue : '', + tabbarList: [ + { + "icon": "warning", + "text": "告警", + 'name': 'Alarm' + }, + // { + // "icon": "order", + // "text": "设备", + // 'name': 'Device' + + // }, + { + "icon": "moments", + "text": "数据", + 'name': 'Data' + }, + { + "icon": "attach", + "text": "收益", + 'name': 'Earnings' + }, + { + "icon": "attach", + "text": "策略", + 'name': 'Policy' + }, + { + "icon": "account", + "text": "我的", + 'name': 'My' + }, + ], + vuex_language:"zh_CN", + // 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式 + vuex_config: config, + vuex_currentComponent:'Data' + }, + mutations: { + $uStore(state, payload) { + // 判断是否多层级调用,state中为对象存在的情况,诸如user.info.score = 1 + let nameArr = payload.name.split('.'); + let saveKey = ''; + let len = nameArr.length; + if(len >= 2) { + let obj = state[nameArr[0]]; + for(let i = 1; i < len - 1; i ++) { + obj = obj[nameArr[i]]; + } + obj[nameArr[len - 1]] = payload.value; + saveKey = nameArr[0]; + } else { + // 单层级变量,在state就是一个普通变量的情况 + state[payload.name] = payload.value; + saveKey = payload.name; + } + // 保存变量到本地,见顶部函数定义 + saveLifeData(saveKey, state[saveKey]) + } + } +}) + +export default store diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..2fe6465 --- /dev/null +++ b/uni.scss @@ -0,0 +1,40 @@ +/** + * 下方引入的为uView UI的集成样式文件,为scss预处理器,其中包含了一些"u-"开头的自定义变量 + * 使用的时候,请将下面的一行复制到您的uniapp项目根目录的uni.scss中即可 + * uView自定义的css类名和scss变量,均以"u-"开头,不会造成冲突,请放心使用 + */ + +$u-main-color: #303133; +$u-content-color: #505256; +$u-tips-color: #909399; +$u-light-color: #c0c4cc; +$u-border-color: #dedfe2; +$u-bg-color: #f3f4f6; + +$u-type-primary: #2979ff; +$u-type-primary-light: #ecf5ff; +$u-type-primary-disabled: #a0cfff; +$u-type-primary-dark: #2b85e4; + +$u-type-warning: #ff9900; +$u-type-warning-disabled: #fcbd71; +$u-type-warning-dark: #f29100; +$u-type-warning-light: #fdf6ec; + +$u-type-success: #19be6b; +$u-type-success-disabled: #71d5a1; +$u-type-success-dark: #18b566; +$u-type-success-light: #dbf1e1; + +$u-type-error: #fa3534; +$u-type-error-disabled: #fab6b6; +$u-type-error-dark: #dd6161; +$u-type-error-light: #fef0f0; + +$u-type-info: #909399; +$u-type-info-disabled: #c8c9cc; +$u-type-info-dark: #82848a; +$u-type-info-light: #f4f4f5; + +$u-form-item-height: 70rpx; +$u-form-item-border-color: #dcdfe6; diff --git a/uni_modules/lime-echart/changelog.md b/uni_modules/lime-echart/changelog.md new file mode 100644 index 0000000..ef6d837 --- /dev/null +++ b/uni_modules/lime-echart/changelog.md @@ -0,0 +1,132 @@ +## 0.6.5(2022-11-03) +- fix: 某些手机touches为对象,导致无法交互。 +## 0.6.4(2022-10-28) +- fix: 优化点击事件的触发条件 +## 0.6.3(2022-10-26) +- fix: 修复 dataZoom 拖动问题 +## 0.6.2(2022-10-23) +- fix: 修复 飞书小程序 尺寸问题 +## 0.6.1(2022-10-19) +- fix: 修复 PC mousewheel 事件 鼠标位置不准确的BUG,不兼容火狐! +- feat: showLoading 增加传参 +## 0.6.0(2022-09-16) +- feat: 增加PC的mousewheel事件 +## 0.5.4(2022-09-16) +- fix: 修复 nvue 动态数据不显示问题 +## 0.5.3(2022-09-16) +- feat: 增加enableHover属性, 在PC端时当鼠标进入显示tooltip,不必按下。 +- chore: 更新文档 +## 0.5.2(2022-09-16) +- feat: 增加enableHover属性, 在PC端时当鼠标进入显示tooltip,不必按下。 +## 0.5.1(2022-09-16) +- fix: 修复nvue报错 +## 0.5.0(2022-09-15) +- feat: init(echarts, theme?:string, opts?:{}, callback: function(chart)) +## 0.4.8(2022-09-11) +- feat: 增加 @finished +## 0.4.7(2022-08-24) +- chore: 去掉 stylus +## 0.4.6(2022-08-24) +- feat: 增加 beforeDelay +## 0.4.5(2022-08-12) +- chore: 更新文档 +## 0.4.4(2022-08-12) +- fix: 修复 resize 无参数时报错 +## 0.4.3(2022-08-07) +# 评论有说本插件对新手不友好,让我做不好就不要发出来。 还有的说跟官网一样,发出来做什么,给我整无语了。 +# 所以在此提醒一下准备要下载的你,如果你从未使用过 echarts 请不要下载 或 谨慎下载。 +# 如果你确认要下载,麻烦看完文档。还有请注意插件是让echarts在uniapp能运行,API 配置请自行去官网查阅! +# 如果你不会echarts 但又需要图表,市场上有个很优秀的图表插件 uchart 你可以去使用这款插件,uchart的作者人很好,也热情。 +# 每个人都有自己的本职工作,如果你能力强可以自行兼容,如果使用了他人的插件也麻烦尊重他人的成果和劳动时间。谢谢。 +# 为了心情愉悦,本人已经使用插件屏蔽差评。 +- chore: 更新文档 +## 0.4.2(2022-07-20) +- feat: 增加 resize +## 0.4.1(2022-06-07) +- fix: 修复 canvasToTempFilePath 不生效问题 +## 0.4.0(2022-06-04) +- chore 为了词云 增加一个canvas 标签 +- 词云下载地址[echart-wordcloud](https://ext.dcloud.net.cn/plugin?id=8430) +## 0.3.9(2022-06-02) +- chore: 更新文档 +- tips: lines 不支持 `trailLength` +## 0.3.8(2022-05-31) +- fix: 修复 因mouse事件冲突tooltip跳动问题 +## 0.3.7(2022-05-26) +- chore: 更新文档 +- chore: 设置默认宽高300px +- fix: 修复 vue3 微信小程序 拖影BUG +- chore: 支持PC +## 0.3.5(2022-04-28) +- chore: 更新使用方式 +- 🔔 必须使用hbuilderx 3.4.8-alpha以上 +## 0.3.4(2021-08-03) +- chore: 增加 setOption的参数值 +## 0.3.3(2021-07-22) +- fix: 修复 径向渐变报错的问题 +## 0.3.2(2021-07-09) +- chore: 统一命名规范,无须主动引入组件 +## [代码示例站点1](https://limeui.qcoon.cn/#/echart-example) +## [代码示例站点2](http://liangei.gitee.io/limeui/#/echart-example) +## 0.3.1(2021-06-21) +- fix: 修复 app-nvue ios is-enable 无效的问题 +## [代码示例站点1](https://limeui.qcoon.cn/#/echart-example) +## [代码示例站点2](http://liangei.gitee.io/limeui/#/echart-example) +## 0.3.0(2021-06-14) +- fix: 修复 头条系小程序 2d 报 JSON.stringify 的问题 +- 目前 头条系小程序 2d 无法在开发工具上预览,划动图表页面无法滚动,axisLabel 字体颜色无法更改,建议使用非2d。 +## 0.2.9(2021-06-06) +- fix: 修复 头条系小程序 2d 放大的BUG +- 头条系小程序 2d 无法在开发工具上预览,也存在划动图表页面无法滚动的问题。 +## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example) +## 0.2.8(2021-05-19) +- fix: 修复 微信小程序 PC 显示过大的问题 +## 0.2.7(2021-05-19) +- fix: 修复 微信小程序 PC 不显示问题 +## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example) +## 0.2.6(2021-05-14) +- feat: 支持 `image` +- feat: props 增加 `ec.clear`,更新时是否先删除图表样式 +- feat: props 增加 `isDisableScroll` ,触摸图表时是否禁止页面滚动 +- feat: props 增加 `webviewStyles` ,webview 的样式, 仅nvue有效 +## 0.2.5(2021-05-13) +- docs: 插件用到了css 预编译器 [stylus](https://ext.dcloud.net.cn/plugin?name=compile-stylus) 请安装它 +## 0.2.4(2021-05-12) +- fix: 修复 百度平台 多个图表ctx 和 渐变色 bug +- ## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example) +## 0.2.3(2021-05-10) +- feat: 增加 `canvasToTempFilePath` 方法,用于生成图片 +```js +this.$refs.chart.canvasToTempFilePath({success: (res) => { + console.log('tempFilePath:', res.tempFilePath) +}}) +``` +## 0.2.2(2021-05-10) +- feat: 增加 `dispose` 方法,用于销毁实例 +- feat: 增加 `isClickable` 是否派发点击 +- feat: 实验性的支持 `nvue` 使用要慎重考虑 +- ## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example) +## 0.2.1(2021-05-06) +- fix:修复 微信小程序 json 报错 +- chore: `reset` 更改为 `setChart` +- feat: 增加 `isEnable` 开启初始化 启用这个后 无须再使用`init`方法 +```html + +``` +```js +// 显示加载 +this.$refs.chart.showLoading() +// 使用实例回调 +this.$refs.chart.setChart(chart => ...code) +// 直接设置图表配置 +this.$refs.chart.setOption(data) +``` +## 0.2.0(2021-05-05) +- fix:修复 头条 百度 偏移的问题 +- docs: 更新文档 +## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example) +## 0.1.0(2021-05-02) +- chore: 第一次上传,基本全端兼容,使用方法与官网一致。 +- 已知BUG:非2d 无法使用背景色,已反馈官方 +- 已知BUG:头条 百度 有许些偏移 +- 后期计划:兼容nvue diff --git a/uni_modules/lime-echart/components/l-echart/canvas.js b/uni_modules/lime-echart/components/l-echart/canvas.js new file mode 100644 index 0000000..4affc21 --- /dev/null +++ b/uni_modules/lime-echart/components/l-echart/canvas.js @@ -0,0 +1,372 @@ +const cacheChart = {} +const fontSizeReg = /([\d\.]+)px/; +class EventEmit { + constructor() { + this.__events = {}; + } + on(type, listener) { + if (!type || !listener) { + return; + } + const events = this.__events[type] || []; + events.push(listener); + this.__events[type] = events; + } + emit(type, e) { + if (type.constructor === Object) { + e = type; + type = e && e.type; + } + if (!type) { + return; + } + const events = this.__events[type]; + if (!events || !events.length) { + return; + } + events.forEach((listener) => { + listener.call(this, e); + }); + } + off(type, listener) { + const __events = this.__events; + const events = __events[type]; + if (!events || !events.length) { + return; + } + if (!listener) { + delete __events[type]; + return; + } + for (let i = 0, len = events.length; i < len; i++) { + if (events[i] === listener) { + events.splice(i, 1); + i--; + } + } + } +} +class Image { + constructor() { + this.currentSrc = null + this.naturalHeight = 0 + this.naturalWidth = 0 + this.width = 0 + this.height = 0 + this.tagName = 'IMG' + } + set src(src) { + this.currentSrc = src + uni.getImageInfo({ + src, + success: (res) => { + this.naturalWidth = this.width = res.width + this.naturalHeight = this.height = res.height + this.onload() + }, + fail: () => { + this.onerror() + } + }) + } + get src() { + return this.currentSrc + } +} +class OffscreenCanvas { + constructor(ctx, com, canvasId) { + this.tagName = 'canvas' + this.com = com + this.canvasId = canvasId + this.ctx = ctx + } + set width(w) { + this.com.offscreenWidth = w + } + set height(h) { + this.com.offscreenHeight = h + } + get width() { + return this.com.offscreenWidth || 0 + } + get height() { + return this.com.offscreenHeight || 0 + } + getContext(type) { + return this.ctx + } + getImageData() { + return new Promise((resolve, reject) => { + this.com.$nextTick(() => { + uni.canvasGetImageData({ + x:0, + y:0, + width: this.com.offscreenWidth, + height: this.com.offscreenHeight, + canvasId: this.canvasId, + success: (res) => { + resolve(res) + }, + fail: (err) => { + reject(err) + }, + }, this.com) + }) + }) + } +} +export class Canvas { + constructor(ctx, com, isNew, canvasNode={}) { + cacheChart[com.canvasId] = {ctx} + this.canvasId = com.canvasId; + this.chart = null; + this.isNew = isNew + this.tagName = 'canvas' + this.canvasNode = canvasNode; + this.com = com; + if (!isNew) {this._initStyle(ctx)} + this._initEvent(); + this._ee = new EventEmit() + } + getContext(type) { + if (type === '2d') { + return this.ctx; + } + } + setChart(chart) { + this.chart = chart; + } + createOffscreenCanvas(param){ + if(!this.children) { + this.com.isOffscreenCanvas = true + this.com.offscreenWidth = param.width||300 + this.com.offscreenHeight = param.height||300 + const com = this.com + const canvasId = this.com.offscreenCanvasId + const context = uni.createCanvasContext(canvasId, this.com) + this._initStyle(context) + this.children = new OffscreenCanvas(context, com, canvasId) + } + return this.children + } + appendChild(child) { + console.log('child', child) + } + dispatchEvent(type, e) { + if(typeof type == 'object') { + this._ee.emit(type.type, type); + } else { + this._ee.emit(type, e); + } + return true + } + attachEvent() { + } + detachEvent() { + } + addEventListener(type, listener) { + this._ee.on(type, listener) + } + removeEventListener(type, listener) { + this._ee.off(type, listener) + } + _initCanvas(zrender, ctx) { + zrender.util.getContext = function() { + return ctx; + }; + zrender.util.$override('measureText', function(text, font) { + ctx.font = font || '12px sans-serif'; + return ctx.measureText(text, font); + }); + } + _initStyle(ctx, child) { + const styles = [ + 'fillStyle', + 'strokeStyle', + 'fontSize', + 'globalAlpha', + 'opacity', + 'textAlign', + 'textBaseline', + 'shadow', + 'lineWidth', + 'lineCap', + 'lineJoin', + 'lineDash', + 'miterLimit', + 'font' + ]; + const colorReg = /#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])\b/g; + styles.forEach(style => { + Object.defineProperty(ctx, style, { + set: value => { + if (style === 'font' && fontSizeReg.test(value)) { + const match = fontSizeReg.exec(value); + ctx.setFontSize(match[1]); + return; + } + if (style === 'opacity') { + ctx.setGlobalAlpha(value) + return; + } + if (style !== 'fillStyle' && style !== 'strokeStyle' || value !== 'none' && value !== null) { + // #ifdef H5 || APP-PLUS || MP-BAIDU + if(typeof value == 'object') { + if (value.hasOwnProperty('colorStop') || value.hasOwnProperty('colors')) { + ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value); + } + return + } + // #endif + // #ifdef MP-TOUTIAO + if(colorReg.test(value)) { + value = value.replace(colorReg, '#$1$1$2$2$3$3') + } + // #endif + ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value); + } + } + }); + }); + if(!this.isNew && !child) { + ctx.uniDrawImage = ctx.drawImage + ctx.drawImage = (...a) => { + a[0] = a[0].src + ctx.uniDrawImage(...a) + } + } + if(!ctx.createRadialGradient) { + ctx.createRadialGradient = function() { + return ctx.createCircularGradient(...[...arguments].slice(-3)) + }; + } + // 字节不支持 + if (!ctx.strokeText) { + ctx.strokeText = (...a) => { + ctx.fillText(...a) + } + } + // 钉钉不支持 + if (!ctx.measureText) { + const strLen = (str) => { + let len = 0; + for (let i = 0; i < str.length; i++) { + if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128) { + len++; + } else { + len += 2; + } + } + return len; + } + ctx.measureText = (text, font) => { + let fontSize = 12; + if (font) { + fontSize = parseInt(font.match(/([\d\.]+)px/)[1]) + } + fontSize /= 2; + return { + width: strLen(text) * fontSize + }; + } + } + } + + _initEvent(e) { + this.event = {}; + const eventNames = [{ + wxName: 'touchStart', + ecName: 'mousedown' + }, { + wxName: 'touchMove', + ecName: 'mousemove' + }, { + wxName: 'touchEnd', + ecName: 'mouseup' + }, { + wxName: 'touchEnd', + ecName: 'click' + }]; + + eventNames.forEach(name => { + this.event[name.wxName] = e => { + const touch = e.touches[0]; + this.chart.getZr().handler.dispatch(name.ecName, { + zrX: name.wxName === 'tap' ? touch.clientX : touch.x, + zrY: name.wxName === 'tap' ? touch.clientY : touch.y + }); + }; + }); + } + + set width(w) { + this.canvasNode.width = w + } + set height(h) { + this.canvasNode.height = h + } + + get width() { + return this.canvasNode.width || 0 + } + get height() { + return this.canvasNode.height || 0 + } + get ctx() { + return cacheChart[this.canvasId]['ctx'] || null + } + set chart(chart) { + cacheChart[this.canvasId]['chart'] = chart + } + get chart() { + return cacheChart[this.canvasId]['chart'] || null + } +} + +export function dispatch(name, {x,y, wheelDelta}) { + this.dispatch(name, { + zrX: x, + zrY: y, + zrDelta: wheelDelta, + preventDefault: () => {}, + stopPropagation: () =>{} + }); +} +export function setCanvasCreator(echarts, {canvas, node}) { + // echarts.setCanvasCreator(() => canvas); + echarts.registerPreprocessor(option => { + if (option && option.series) { + if (option.series.length > 0) { + option.series.forEach(series => { + series.progressive = 0; + }); + } else if (typeof option.series === 'object') { + option.series.progressive = 0; + } + } + }); + function loadImage(src, onload, onerror) { + let img = null + if(node && node.createImage) { + img = node.createImage() + img.onload = onload.bind(img); + img.onerror = onerror.bind(img); + img.src = src; + return img + } else { + img = new Image() + img.onload = onload.bind(img) + img.onerror = onerror.bind(img); + img.src = src + return img + } + } + if(echarts.setPlatformAPI) { + echarts.setPlatformAPI({ + loadImage: canvas.setChart ? loadImage : null, + createCanvas(){ + return canvas + } + }) + } +} \ No newline at end of file diff --git a/uni_modules/lime-echart/components/l-echart/l-echart.vue b/uni_modules/lime-echart/components/l-echart/l-echart.vue new file mode 100644 index 0000000..37e5450 --- /dev/null +++ b/uni_modules/lime-echart/components/l-echart/l-echart.vue @@ -0,0 +1,516 @@ + + + + diff --git a/uni_modules/lime-echart/components/l-echart/utils.js b/uni_modules/lime-echart/components/l-echart/utils.js new file mode 100644 index 0000000..5ff66c5 --- /dev/null +++ b/uni_modules/lime-echart/components/l-echart/utils.js @@ -0,0 +1,74 @@ +// #ifndef APP-NVUE +// 计算版本 +export function compareVersion(v1, v2) { + v1 = v1.split('.') + v2 = v2.split('.') + const len = Math.max(v1.length, v2.length) + while (v1.length < len) { + v1.push('0') + } + while (v2.length < len) { + v2.push('0') + } + for (let i = 0; i < len; i++) { + const num1 = parseInt(v1[i], 10) + const num2 = parseInt(v2[i], 10) + + if (num1 > num2) { + return 1 + } else if (num1 < num2) { + return -1 + } + } + return 0 +} + +export function wrapTouch(event) { + for (let i = 0; i < event.touches.length; ++i) { + const touch = event.touches[i]; + touch.offsetX = touch.x; + touch.offsetY = touch.y; + } + return event; +} +export const devicePixelRatio = wx.getSystemInfoSync().pixelRatio +// #endif +// #ifdef APP-NVUE +export function base64ToPath(base64) { + return new Promise((resolve, reject) => { + const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64) || []; + const bitmap = new plus.nativeObj.Bitmap('bitmap' + Date.now()) + bitmap.loadBase64Data(base64, () => { + if (!format) { + reject(new Error('ERROR_BASE64SRC_PARSE')) + } + const time = new Date().getTime(); + const filePath = `_doc/uniapp_temp/${time}.${format}` + + bitmap.save(filePath, {}, + () => { + bitmap.clear() + resolve(filePath) + }, + (error) => { + bitmap.clear() + console.error(`${JSON.stringify(error)}`) + reject(error) + }) + }, (error) => { + bitmap.clear() + console.error(`${JSON.stringify(error)}`) + reject(error) + }) + }) +} +// #endif + + +export function sleep(time) { + return new Promise((resolve) => { + setTimeout(() => { + resolve(true) + },time) + }) +} \ No newline at end of file diff --git a/uni_modules/lime-echart/components/lime-echart/index.vue b/uni_modules/lime-echart/components/lime-echart/index.vue new file mode 100644 index 0000000..e69de29 diff --git a/uni_modules/lime-echart/package.json b/uni_modules/lime-echart/package.json new file mode 100644 index 0000000..8632494 --- /dev/null +++ b/uni_modules/lime-echart/package.json @@ -0,0 +1,84 @@ +{ + "id": "lime-echart", + "displayName": "百度图表 echarts", + "version": "0.6.5", + "description": "echarts 全端兼容,一款使echarts图表能跑在uniapp各端中的插件", + "keywords": [ + "echarts", + "canvas", + "图表", + "可视化" +], + "repository": "https://gitee.com/liangei/lime-echart", + "engines": { + "HBuilderX": "^3.6.4" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "u", + "IE": "u", + "Edge": "u", + "Firefox": "u", + "Safari": "u" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "钉钉": "u", + "快手": "u", + "飞书": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/lime-echart/readme.md b/uni_modules/lime-echart/readme.md new file mode 100644 index 0000000..83fe3b9 --- /dev/null +++ b/uni_modules/lime-echart/readme.md @@ -0,0 +1,245 @@ +# echarts 图表 👑👑👑👑👑 全端 +> 一个基于 JavaScript 的开源可视化图表库 [查看更多 站点1](https://limeui.qcoon.cn/#/echart) | [查看更多 站点2](http://liangei.gitee.io/limeui/#/echart)
+> 基于 echarts 做了兼容处理,更多示例请访问 [uni示例 站点1](https://limeui.qcoon.cn/#/echart-example) | [uni示例 站点2](http://liangei.gitee.io/limeui/#/echart-example) | [官方示例](https://echarts.apache.org/examples/zh/index.html)
+> Q群:1046793420
+ +## 平台兼容 + +| H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 头条小程序 | QQ 小程序 | App | +| --- | ---------- | ------------ | ---------- | ---------- | --------- | ---- | +| √ | √ | √ | √ | √ | √ | √ | + + +## 安装 +- 第一步、在uniapp 插件市场 找到 [百度图表](https://ext.dcloud.net.cn/plugin?id=4899) 导入 +- 第二步、安装 echarts 或者直接使用插件内的echarts.min文件 +```cmd +pnpm add echarts + -or- +npm install echarts +``` + + +**注意** +* 🔔 必须使用hbuilderx 3.4.8-alpha及以上 +* 🔔 echarts 5.3.0及以上 +* 🔔 如果是 `cli` 项目需要主动 `import` 插件 +```js +import LEchart from '@/uni_modules/lime-echart/components/l-echart/l-echart.vue'; +export default { + components: {LEchart} +} +``` + +## 代码演示 +### 基础用法 +```html + +``` + +```js +// 如果你使用插件内提供的echarts.min +// 也可以自行去官网下载自定义覆盖 +// 这种方式仅限于vue2 +import * as echarts from '@/uni_modules/lime-echart/static/echarts.min' +//---or---------------------------------- + +// 如果你使用 npm 安装了 echarts --------- 使用以下方式 +// 引入全量包 +import * as echarts from 'echarts' +//---or---------------------------------- + +// 按需引入 开始 +import * as echarts from 'echarts/core'; +import {LineChart, BarChart} from 'echarts/charts'; +import {TitleComponent,TooltipComponent,GridComponent, DatasetComponent, TransformComponent, LegendComponent } from 'echarts/components'; +// 标签自动布局,全局过渡动画等特性 +import {LabelLayout,UniversalTransition} from 'echarts/features'; +// 引入 Canvas 渲染器,注意引入 CanvasRenderer 是必须的一步 +import {CanvasRenderer} from 'echarts/renderers'; + +// 注册必须的组件 +echarts.use([ + LegendComponent, + TitleComponent, + TooltipComponent, + GridComponent, + DatasetComponent, + TransformComponent, + LineChart, + BarChart, + LabelLayout, + UniversalTransition, + CanvasRenderer +]); +//-------------按需引入结束------------------------ + + +export default { + data() { + return { + option: { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + }, + confine: true + }, + legend: { + data: ['热度', '正面', '负面'] + }, + grid: { + left: 20, + right: 20, + bottom: 15, + top: 40, + containLabel: true + }, + xAxis: [ + { + type: 'value', + axisLine: { + lineStyle: { + color: '#999999' + } + }, + axisLabel: { + color: '#666666' + } + } + ], + yAxis: [ + { + type: 'category', + axisTick: { show: false }, + data: ['汽车之家', '今日头条', '百度贴吧', '一点资讯', '微信', '微博', '知乎'], + axisLine: { + lineStyle: { + color: '#999999' + } + }, + axisLabel: { + color: '#666666' + } + } + ], + series: [ + { + name: '热度', + type: 'bar', + label: { + normal: { + show: true, + position: 'inside' + } + }, + data: [300, 270, 340, 344, 300, 320, 310], + }, + { + name: '正面', + type: 'bar', + stack: '总量', + label: { + normal: { + show: true + } + }, + data: [120, 102, 141, 174, 190, 250, 220] + }, + { + name: '负面', + type: 'bar', + stack: '总量', + label: { + normal: { + show: true, + position: 'left' + } + }, + data: [-20, -32, -21, -34, -90, -130, -110] + } + ] + }, + }; + }, + // 组件能被调用必须是组件的节点已经被渲染到页面上 + // 1、在页面mounted里调用,有时候mounted 组件也未必渲染完成 + mounted() { + // init(echarts, theme?:string, opts?:{}, chart => {}) + // echarts 必填, 非nvue必填,nvue不用填 + // theme 可选,应用的主题,目前只支持名称,如:'dark' + // opts = { // 可选 + // locale?: string // 从 `5.0.0` 开始支持 + // } + // chart => {} , callback 必填,返回图表实例 + this.$refs.chart.init(echarts, chart => { + chart.setOption(this.option); + }); + }, + // 2、或者使用组件的finished事件里调用 + methods: { + init() { + this.$refs.chart.init(echarts, chart => { + chart.setOption(this.option); + }); + } + } +} +``` + +## 数据更新 +- 使用 `ref` 可获取`setOption`设置更新 + +```js +this.$refs.chart.setOption(data) +``` + +## 图表大小 +- 在有些场景下,我们希望当容器大小改变时,图表的大小也相应地改变。 + +```js +// 默认获取容器尺寸 +this.$refs.chart.resize() +// 指定尺寸 +this.$refs.chart.resize({width: 375, height: 375}) +``` + + +## 常见问题 +- 微信小程序 `2d` 只支持 真机调试2.0 +- 微信开发工具会出现canvas不跟随页面的情况,真机不影响 +- toolbox 不支持 `saveImage` +- echarts 5.3.0 的 lines 不支持 trailLength,故需设置为 `0` +- dataZoom H5不要设置 `showDetail` + + +## Props + +| 参数 | 说明 | 类型 | 默认值 | 版本 | +| --------------- | -------- | ------- | ------------ | ----- | +| custom-style | 自定义样式 | `string` | - | - | +| type | 指定 canvas 类型 | `string` | `2d` | | +| is-disable-scroll | 触摸图表时是否禁止页面滚动 | `boolean` | `false` | | +| beforeDelay | 延迟初始化 (毫秒) | `number` | `30` | | +| enableHover | PC端使用鼠标悬浮 | `boolean` | `false` | | + +## 事件 + +| 参数 | 说明 | +| --------------- | --------------- | +| init(echarts, chart => {}) | 初始化调用函数,第一个参数是传入`echarts`,第二个参数是回调函数,回调函数的参数是 `chart` 实例 | +| setChart(chart => {}) | 已经初始化后,请使用这个方法,是个回调函数,参数是 `chart` 实例 | +| setOption(data) | [图表配置项](https://echarts.apache.org/zh/option.html#title),用于更新 ,传递是数据 `option` | +| clear() | 清空当前实例,会移除实例中所有的组件和图表。 | +| dispose() | 销毁实例 | +| showLoading() | 显示加载 | +| hideLoading() | 隐藏加载 | +| [canvasToTempFilePath](https://uniapp.dcloud.io/api/canvas/canvasToTempFilePath.html#canvastotempfilepath)(opt) | 用于生成图片,与官方使用方法一致,但不需要传`canvasId` | + + +## 打赏 +如果你觉得本插件,解决了你的问题,赠人玫瑰,手留余香。 + +![输入图片说明](https://static-6d65bd90-8508-4d6c-abbc-a4ef5c8e49e7.bspapp.com/image/222521_bb543f96_518581.jpeg "微信图片编辑_20201122220352.jpg") +![输入图片说明](https://static-6d65bd90-8508-4d6c-abbc-a4ef5c8e49e7.bspapp.com/image/wxplay.jpg "wxplay.jpg") \ No newline at end of file diff --git a/uni_modules/luyj-tree/changelog.md b/uni_modules/luyj-tree/changelog.md new file mode 100644 index 0000000..11cdc5e --- /dev/null +++ b/uni_modules/luyj-tree/changelog.md @@ -0,0 +1,67 @@ +## 1.4.11(2021-10-13) +当前选项是否选中的回显问题。 +## 1.4.10(2021-09-29) +默认树的显示样式 +## 1.4.9(2021-09-13) +1. luyj-tree参数中移除props.hasChildren , luyj-tree-item移除参数comparison.hasChilren。 +2. luyj-tree 参数nodes默认值改为false, luyj-tree-item 默认值改为false +3. luyj-tree-item 修改选中框的默认大小。 +4. 修改luyj-tree-item 插槽 的默认样式 +5. 修改luyj-tree 插槽的默认样式 +6. 修改一些必要的说明 +## 1.4.8(2021-09-09) +1. 修改了一些说明 +2. 不包含下一级时,点击页面部分,选中当前的项 +3. 修改默认选中事件bug +4. 自定义slot 默认展示时与 单选框、复选框重叠问题 +## 1.4.7(2021-09-08) +添加一些必要的说明。 +## 1.4.6(2021-09-03) +展示和不显示搜索按钮时位置问题。 +## 1.4.5(2021-09-02) +展示和不显示搜索按钮时位置问题。 +## 1.4.4(2021-09-01) +区分"选项修改"和"确认"事件,分别对应@change 和 @sendValue。 +## 1.4.3(2021-09-01) +变量tree_Stack的名称问题 +## 1.4.2(2021-08-27) +为树添加导航栏事件 +## 1.4.1(2021-08-26) +一些bug +懒加载后重新加载数据,显示问题。 +## 1.4.0(2021-08-25) +添加允许多次渲染item的方法(默认每次50条)。当数据量过大时使用 +## 1.3.2(2021-08-25) +搜索时,没有显示名称列,中止报错问题。(改为提醒,跳过后继续执行) +## 1.3.1(2021-08-24) +添加一些简单的说明 +## 1.3.(2021-08-24) +更新了一些bug。 +暂时令参数checkStrictly 关联失效。添加了一些参数。文档会后续陆续补充。 +独立出luyj-tree-item项。 +修复了(可能未完全修复)自定义插件的问题。 +移除了一些无效的参数,如max、scrollLeft。 +## 1.2.1(2021-08-20) +解决。数据不包含数据,点击项报错问题。 +## 1.2.0(2021-08-20) +将面包屑导航分开 +## 1.1.8(2021-08-19) +更新不能检测传入数据变动(tree变动)问题 +## 1.1.7(2021-08-14) +简单整理了一下代码,没有什么实质性的改变。 +## 1.1.6(2021-08-07) +展示状态下显示确认 +## 1.1.5(2021-07-29) +更新搜索框在微信开发者工具模拟器不能输入问题 +## 1.1.4(2021-07-27) +read.md说明 +## 1.1.3(2021-07-27) +read.md更新 +## 1.1.2(2021-07-27) +更新说明文档 +## 1.1.1(2021-07-27) +更新一些插件说明 +## 1.1.0(2021-07-27) +为树的输入框,添加更多样式参数 +## 1.0.0(2021-07-25) +无限树形结构组件。支持搜索、面包屑类型导航、选择。 diff --git a/uni_modules/luyj-tree/components/luyj-tree-item/icon.css b/uni_modules/luyj-tree/components/luyj-tree-item/icon.css new file mode 100644 index 0000000..cf1929d --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree-item/icon.css @@ -0,0 +1,346 @@ +@font-face { + font-family: "iconfont"; /* Project id 2009600 */ + src: url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff2?t=1620633089023') format('woff2'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff?t=1620633089023') format('woff'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.ttf?t=1620633089023') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* 清除图标 */ +.icon-clear:before{ + content: '\e606'; +} + +.icon-banxuanzhongshousuo1-shi:before { + content: "\e682"; +} + +.icon-xuanzhong3:before { + content: "\e6bb"; +} + +.icon-weixuanzhong2:before { + content: "\e62e"; +} + +.icon-danxuanxuanzhong:before { + content: "\e631"; +} + +.icon-xuanzhong4:before { + content: "\e63e"; +} + +.icon-xuanzhong1:before { + content: "\e62d"; +} +.icon-xuanzhong2:before { + content: "\e656"; +} + +.icon-selected:before { + content: "\e615"; +} + +.icon-weixuanzhong1:before { + content: "\e614"; +} + +.icon-xingzhuang6kaobei3-copy-copy:before { + content: "\e613"; +} + +.icon-radio-checked:before { + content: "\e63f"; +} + +.icon-huifu:before { + content: "\e619"; +} + +.icon-dizhi:before { + content: "\e64a"; +} + +.icon-kuaijiecaidan:before { + content: "\e60a"; +} + +.icon-z043:before { + content: "\e62f"; +} + +.icon-guanbi:before { + content: "\e607"; +} + +.icon-xuanze:before { + content: "\e623"; +} + +.icon-caidanzhaolinggan:before { + content: "\e616"; +} + +.icon-xitongshezhi:before { + content: "\e60c"; +} + +.icon-xitongshezhi1:before { + content: "\e633"; +} + +.icon-lunbo:before { + content: "\e692"; +} + +.icon-shuping:before { + content: "\e659"; +} + +.icon-tongzhi:before { + content: "\e641"; +} + +.icon-pinglunguanlishezhi:before { + content: "\e6ac"; +} + +.icon-icon:before { + content: "\e600"; +} + +.icon-liuyanguanli:before { + content: "\e61d"; +} + +.icon-xuanzhong:before { + content: "\e669"; +} + +.icon--:before { + content: "\e622"; +} + +.icon-tushu:before { + content: "\e604"; +} + +.icon-huishouzhan:before { + content: "\e61c"; +} + +.icon-yonghutouxiang:before { + content: "\e617"; +} + +.icon-liebiao:before { + content: "\e630"; +} + +.icon-fenlei:before { + content: "\e621"; +} + +.icon-tushu1:before { + content: "\e605"; +} + +.icon-tubiao-:before { + content: "\e620"; +} + +.icon-weixuanze:before { + content: "\e624"; +} + +.icon-tushujieyue:before { + content: "\e690"; +} + +.icon-lunbo1:before { + content: "\e6c5"; +} + +.icon-shanchu:before { + content: "\e67b"; +} + +.icon-lunbo2:before { + content: "\e61e"; +} + +.icon-huaban:before { + content: "\e663"; +} + +.icon-kehuan:before { + content: "\e608"; +} + +.icon-icon02:before { + content: "\e601"; +} + +.icon-huishouzhan1:before { + content: "\e612"; +} + +.icon-huishouzhan2:before { + content: "\e63d"; +} + +.icon-sousuo:before { + content: "\e62c"; +} + +.icon-xingzhuang:before { + content: "\e625"; +} + +.icon-lunbobankuai:before { + content: "\e61f"; +} + +.icon-shangchuan:before { + content: "\e602"; +} + +.icon-yonghu:before { + content: "\e761"; +} + +.icon-tongzhi1:before { + content: "\e603"; +} + +.icon-jingsong:before { + content: "\e65c"; +} + +.icon-fenlei1:before { + content: "\e6c6"; +} + +.icon-xieshupingicon:before { + content: "\e72d"; +} + +.icon-liuyan:before { + content: "\e626"; +} + +.icon-weixuanzhong:before { + content: "\e627"; +} + +.icon-youxiang:before { + content: "\e646"; +} + +.icon-lunboguanggao:before { + content: "\e6b3"; +} + +.icon-xuanze1:before { + content: "\e60d"; +} + +.icon-chushaixuanxiang:before { + content: "\e606"; +} + +.icon-liuyanguanli1:before { + content: "\e61a"; +} + +.icon-shanchu1:before { + content: "\e609"; +} + +.icon-huishouzhan3:before { + content: "\e642"; +} + +.icon-shangchuan1:before { + content: "\e823"; +} + +.icon-huishouzhan4:before { + content: "\e61b"; +} + +.icon-chuangzuo:before { + content: "\e8ad"; +} + +.icon-dianzan:before { + content: "\e8ae"; +} + +.icon-paihangbang:before { + content: "\e8b3"; +} + +.icon-shouye:before { + content: "\e8b9"; +} + +.icon-shoucang:before { + content: "\e8c6"; +} + +.icon-addApp:before { + content: "\e60b"; +} + +.icon-huishouzhan5:before { + content: "\e63a"; +} + +.icon-add1:before { + content: "\e60e"; +} + +.icon-shoucang1:before { + content: "\e60f"; +} + +.icon-canshutongji:before { + content: "\e618"; +} + +.icon-rizhiguanli:before { + content: "\e628"; +} + +.icon-shanchu2:before { + content: "\e629"; +} + +.icon-xinzeng:before { + content: "\e62a"; +} + +.icon-zhankailiebiao:before { + content: "\e62b"; +} + +.icon-xiala-copy:before { + content: "\e610"; +} + +.icon-shangla:before { + content: "\e64e"; +} + +.icon-xianxingshezhi:before { + content: "\e611"; +} diff --git a/uni_modules/luyj-tree/components/luyj-tree-item/luyj-tree-item.scss b/uni_modules/luyj-tree/components/luyj-tree-item/luyj-tree-item.scss new file mode 100644 index 0000000..2e8069a --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree-item/luyj-tree-item.scss @@ -0,0 +1,76 @@ +.container-list-item { + background-color: #fff; + border-bottom: 1rpx solid #f4f4f4; + border-radius: 20rpx; + margin:0 30rpx 20rpx 30rpx; + .content +{ + display: flex; + align-items: center; + // min-height: 60rpx; + width: 100%; + padding:30rpx 15rpx ; + position: relative; + font-size: 32rpx; + // 默认文本显示内容(默认的slot) + .slot { + // position:absolute; + right: 64rpx; + font-size: 32rpx; + color: #5b5757; + .word { + width:100%; + word-break: break-all; + } + } + // 默认箭头显示样式 + .right { + position: absolute; + text-align: center; + width: 80rpx; + right: 30rpx; + color: #babdc3; + font-size: 32rpx; + } + + } +} +// 复选框 + .checkbox { + position: relative; + height: 36rpx; + margin-left: 10rpx; + margin-right: 0px; + width: 36rpx; + .txt { + font-size: 35rpx; + line-height: 36rpx; + width: 100%; + height: 100%; + display: flex; + } + } + +.checkBorder { + border: 1px solid #ecdee4; +} + +.text-cut{ + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.value_box{ + display: flex; + height: 100%; + .index{ + color: #009C77; + width: 70rpx; + text-align: center; + border-right: 1rpx solid #eeeeee; + } + .value{ + padding-left: 20rpx; + } +} \ No newline at end of file diff --git a/uni_modules/luyj-tree/components/luyj-tree-item/luyj-tree-item.vue b/uni_modules/luyj-tree/components/luyj-tree-item/luyj-tree-item.vue new file mode 100644 index 0000000..9a5ee67 --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree-item/luyj-tree-item.vue @@ -0,0 +1,312 @@ + + + + + \ No newline at end of file diff --git a/uni_modules/luyj-tree/components/luyj-tree-navigation/icon.css b/uni_modules/luyj-tree/components/luyj-tree-navigation/icon.css new file mode 100644 index 0000000..83fda8f --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree-navigation/icon.css @@ -0,0 +1,342 @@ +@font-face { + font-family: "iconfont"; /* Project id 2009600 */ + src: url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff2?t=1620633089023') format('woff2'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff?t=1620633089023') format('woff'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.ttf?t=1620633089023') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-banxuanzhongshousuo1-shi:before { + content: "\e682"; +} + +.icon-xuanzhong3:before { + content: "\e6bb"; +} + +.icon-weixuanzhong2:before { + content: "\e62e"; +} + +.icon-danxuanxuanzhong:before { + content: "\e631"; +} + +.icon-xuanzhong4:before { + content: "\e63e"; +} + +.icon-xuanzhong1:before { + content: "\e62d"; +} + +.icon-xuanzhong2:before { + content: "\e656"; +} + +.icon-selected:before { + content: "\e615"; +} + +.icon-weixuanzhong1:before { + content: "\e614"; +} + +.icon-xingzhuang6kaobei3-copy-copy:before { + content: "\e613"; +} + +.icon-radio-checked:before { + content: "\e63f"; +} + +.icon-huifu:before { + content: "\e619"; +} + +.icon-dizhi:before { + content: "\e64a"; +} + +.icon-kuaijiecaidan:before { + content: "\e60a"; +} + +.icon-z043:before { + content: "\e62f"; +} + +.icon-guanbi:before { + content: "\e607"; +} + +.icon-xuanze:before { + content: "\e623"; +} + +.icon-caidanzhaolinggan:before { + content: "\e616"; +} + +.icon-xitongshezhi:before { + content: "\e60c"; +} + +.icon-xitongshezhi1:before { + content: "\e633"; +} + +.icon-lunbo:before { + content: "\e692"; +} + +.icon-shuping:before { + content: "\e659"; +} + +.icon-tongzhi:before { + content: "\e641"; +} + +.icon-pinglunguanlishezhi:before { + content: "\e6ac"; +} + +.icon-icon:before { + content: "\e600"; +} + +.icon-liuyanguanli:before { + content: "\e61d"; +} + +.icon-xuanzhong:before { + content: "\e669"; +} + +.icon--:before { + content: "\e622"; +} + +.icon-tushu:before { + content: "\e604"; +} + +.icon-huishouzhan:before { + content: "\e61c"; +} + +.icon-yonghutouxiang:before { + content: "\e617"; +} + +.icon-liebiao:before { + content: "\e630"; +} + +.icon-fenlei:before { + content: "\e621"; +} + +.icon-tushu1:before { + content: "\e605"; +} + +.icon-tubiao-:before { + content: "\e620"; +} + +.icon-weixuanze:before { + content: "\e624"; +} + +.icon-tushujieyue:before { + content: "\e690"; +} + +.icon-lunbo1:before { + content: "\e6c5"; +} + +.icon-shanchu:before { + content: "\e67b"; +} + +.icon-lunbo2:before { + content: "\e61e"; +} + +.icon-huaban:before { + content: "\e663"; +} + +.icon-kehuan:before { + content: "\e608"; +} + +.icon-icon02:before { + content: "\e601"; +} + +.icon-huishouzhan1:before { + content: "\e612"; +} + +.icon-huishouzhan2:before { + content: "\e63d"; +} + +.icon-sousuo:before { + content: "\e62c"; +} + +.icon-xingzhuang:before { + content: "\e625"; +} + +.icon-lunbobankuai:before { + content: "\e61f"; +} + +.icon-shangchuan:before { + content: "\e602"; +} + +.icon-yonghu:before { + content: "\e761"; +} + +.icon-tongzhi1:before { + content: "\e603"; +} + +.icon-jingsong:before { + content: "\e65c"; +} + +.icon-fenlei1:before { + content: "\e6c6"; +} + +.icon-xieshupingicon:before { + content: "\e72d"; +} + +.icon-liuyan:before { + content: "\e626"; +} + +.icon-weixuanzhong:before { + content: "\e627"; +} + +.icon-youxiang:before { + content: "\e646"; +} + +.icon-lunboguanggao:before { + content: "\e6b3"; +} + +.icon-xuanze1:before { + content: "\e60d"; +} + +.icon-chushaixuanxiang:before { + content: "\e606"; +} + +.icon-liuyanguanli1:before { + content: "\e61a"; +} + +.icon-shanchu1:before { + content: "\e609"; +} + +.icon-huishouzhan3:before { + content: "\e642"; +} + +.icon-shangchuan1:before { + content: "\e823"; +} + +.icon-huishouzhan4:before { + content: "\e61b"; +} + +.icon-chuangzuo:before { + content: "\e8ad"; +} + +.icon-dianzan:before { + content: "\e8ae"; +} + +.icon-paihangbang:before { + content: "\e8b3"; +} + +.icon-shouye:before { + content: "\e8b9"; +} + +.icon-shoucang:before { + content: "\e8c6"; +} + +.icon-addApp:before { + content: "\e60b"; +} + +.icon-huishouzhan5:before { + content: "\e63a"; +} + +.icon-add1:before { + content: "\e60e"; +} + +.icon-shoucang1:before { + content: "\e60f"; +} + +.icon-canshutongji:before { + content: "\e618"; +} + +.icon-rizhiguanli:before { + content: "\e628"; +} + +.icon-shanchu2:before { + content: "\e629"; +} + +.icon-xinzeng:before { + content: "\e62a"; +} + +.icon-zhankailiebiao:before { + content: "\e62b"; +} + +.icon-xiala-copy:before { + content: "\e610"; +} + +.icon-shangla:before { + content: "\e64e"; +} + +.icon-xianxingshezhi:before { + content: "\e611"; +} diff --git a/uni_modules/luyj-tree/components/luyj-tree-navigation/luyj-tree-navigation.scss b/uni_modules/luyj-tree/components/luyj-tree-navigation/luyj-tree-navigation.scss new file mode 100644 index 0000000..b7c2f0e --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree-navigation/luyj-tree-navigation.scss @@ -0,0 +1,28 @@ +// 导航栏标题 +.title { + height: 90rpx; + padding: 0 32rpx; + line-height: 90rpx; + font-size: 30rpx; + background-color: #f5f5f5; + color: #606064; + // 导航栏图标样式 + .iconclass { + display: inline-block; + margin: 0 12rpx; + color: #D0D4DB; + font-size: 28rpx; + } +} +// 导航栏项样式 +.inline-item { + display: inline-block +} +// 导航栏项-启用状态 +.active { + color: #666666 !important; +} +// 导航栏项-无状态 +.none { + color: #009C77; +} diff --git a/uni_modules/luyj-tree/components/luyj-tree-navigation/luyj-tree-navigation.vue b/uni_modules/luyj-tree/components/luyj-tree-navigation/luyj-tree-navigation.vue new file mode 100644 index 0000000..0d43d67 --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree-navigation/luyj-tree-navigation.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/uni_modules/luyj-tree/components/luyj-tree-search/icon.css b/uni_modules/luyj-tree/components/luyj-tree-search/icon.css new file mode 100644 index 0000000..cf1929d --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree-search/icon.css @@ -0,0 +1,346 @@ +@font-face { + font-family: "iconfont"; /* Project id 2009600 */ + src: url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff2?t=1620633089023') format('woff2'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff?t=1620633089023') format('woff'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.ttf?t=1620633089023') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* 清除图标 */ +.icon-clear:before{ + content: '\e606'; +} + +.icon-banxuanzhongshousuo1-shi:before { + content: "\e682"; +} + +.icon-xuanzhong3:before { + content: "\e6bb"; +} + +.icon-weixuanzhong2:before { + content: "\e62e"; +} + +.icon-danxuanxuanzhong:before { + content: "\e631"; +} + +.icon-xuanzhong4:before { + content: "\e63e"; +} + +.icon-xuanzhong1:before { + content: "\e62d"; +} +.icon-xuanzhong2:before { + content: "\e656"; +} + +.icon-selected:before { + content: "\e615"; +} + +.icon-weixuanzhong1:before { + content: "\e614"; +} + +.icon-xingzhuang6kaobei3-copy-copy:before { + content: "\e613"; +} + +.icon-radio-checked:before { + content: "\e63f"; +} + +.icon-huifu:before { + content: "\e619"; +} + +.icon-dizhi:before { + content: "\e64a"; +} + +.icon-kuaijiecaidan:before { + content: "\e60a"; +} + +.icon-z043:before { + content: "\e62f"; +} + +.icon-guanbi:before { + content: "\e607"; +} + +.icon-xuanze:before { + content: "\e623"; +} + +.icon-caidanzhaolinggan:before { + content: "\e616"; +} + +.icon-xitongshezhi:before { + content: "\e60c"; +} + +.icon-xitongshezhi1:before { + content: "\e633"; +} + +.icon-lunbo:before { + content: "\e692"; +} + +.icon-shuping:before { + content: "\e659"; +} + +.icon-tongzhi:before { + content: "\e641"; +} + +.icon-pinglunguanlishezhi:before { + content: "\e6ac"; +} + +.icon-icon:before { + content: "\e600"; +} + +.icon-liuyanguanli:before { + content: "\e61d"; +} + +.icon-xuanzhong:before { + content: "\e669"; +} + +.icon--:before { + content: "\e622"; +} + +.icon-tushu:before { + content: "\e604"; +} + +.icon-huishouzhan:before { + content: "\e61c"; +} + +.icon-yonghutouxiang:before { + content: "\e617"; +} + +.icon-liebiao:before { + content: "\e630"; +} + +.icon-fenlei:before { + content: "\e621"; +} + +.icon-tushu1:before { + content: "\e605"; +} + +.icon-tubiao-:before { + content: "\e620"; +} + +.icon-weixuanze:before { + content: "\e624"; +} + +.icon-tushujieyue:before { + content: "\e690"; +} + +.icon-lunbo1:before { + content: "\e6c5"; +} + +.icon-shanchu:before { + content: "\e67b"; +} + +.icon-lunbo2:before { + content: "\e61e"; +} + +.icon-huaban:before { + content: "\e663"; +} + +.icon-kehuan:before { + content: "\e608"; +} + +.icon-icon02:before { + content: "\e601"; +} + +.icon-huishouzhan1:before { + content: "\e612"; +} + +.icon-huishouzhan2:before { + content: "\e63d"; +} + +.icon-sousuo:before { + content: "\e62c"; +} + +.icon-xingzhuang:before { + content: "\e625"; +} + +.icon-lunbobankuai:before { + content: "\e61f"; +} + +.icon-shangchuan:before { + content: "\e602"; +} + +.icon-yonghu:before { + content: "\e761"; +} + +.icon-tongzhi1:before { + content: "\e603"; +} + +.icon-jingsong:before { + content: "\e65c"; +} + +.icon-fenlei1:before { + content: "\e6c6"; +} + +.icon-xieshupingicon:before { + content: "\e72d"; +} + +.icon-liuyan:before { + content: "\e626"; +} + +.icon-weixuanzhong:before { + content: "\e627"; +} + +.icon-youxiang:before { + content: "\e646"; +} + +.icon-lunboguanggao:before { + content: "\e6b3"; +} + +.icon-xuanze1:before { + content: "\e60d"; +} + +.icon-chushaixuanxiang:before { + content: "\e606"; +} + +.icon-liuyanguanli1:before { + content: "\e61a"; +} + +.icon-shanchu1:before { + content: "\e609"; +} + +.icon-huishouzhan3:before { + content: "\e642"; +} + +.icon-shangchuan1:before { + content: "\e823"; +} + +.icon-huishouzhan4:before { + content: "\e61b"; +} + +.icon-chuangzuo:before { + content: "\e8ad"; +} + +.icon-dianzan:before { + content: "\e8ae"; +} + +.icon-paihangbang:before { + content: "\e8b3"; +} + +.icon-shouye:before { + content: "\e8b9"; +} + +.icon-shoucang:before { + content: "\e8c6"; +} + +.icon-addApp:before { + content: "\e60b"; +} + +.icon-huishouzhan5:before { + content: "\e63a"; +} + +.icon-add1:before { + content: "\e60e"; +} + +.icon-shoucang1:before { + content: "\e60f"; +} + +.icon-canshutongji:before { + content: "\e618"; +} + +.icon-rizhiguanli:before { + content: "\e628"; +} + +.icon-shanchu2:before { + content: "\e629"; +} + +.icon-xinzeng:before { + content: "\e62a"; +} + +.icon-zhankailiebiao:before { + content: "\e62b"; +} + +.icon-xiala-copy:before { + content: "\e610"; +} + +.icon-shangla:before { + content: "\e64e"; +} + +.icon-xianxingshezhi:before { + content: "\e611"; +} diff --git a/uni_modules/luyj-tree/components/luyj-tree-search/luyj-tree-search.vue b/uni_modules/luyj-tree/components/luyj-tree-search/luyj-tree-search.vue new file mode 100644 index 0000000..91e37a4 --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree-search/luyj-tree-search.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/uni_modules/luyj-tree/components/luyj-tree/icon.css b/uni_modules/luyj-tree/components/luyj-tree/icon.css new file mode 100644 index 0000000..83fda8f --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree/icon.css @@ -0,0 +1,342 @@ +@font-face { + font-family: "iconfont"; /* Project id 2009600 */ + src: url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff2?t=1620633089023') format('woff2'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff?t=1620633089023') format('woff'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.ttf?t=1620633089023') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-banxuanzhongshousuo1-shi:before { + content: "\e682"; +} + +.icon-xuanzhong3:before { + content: "\e6bb"; +} + +.icon-weixuanzhong2:before { + content: "\e62e"; +} + +.icon-danxuanxuanzhong:before { + content: "\e631"; +} + +.icon-xuanzhong4:before { + content: "\e63e"; +} + +.icon-xuanzhong1:before { + content: "\e62d"; +} + +.icon-xuanzhong2:before { + content: "\e656"; +} + +.icon-selected:before { + content: "\e615"; +} + +.icon-weixuanzhong1:before { + content: "\e614"; +} + +.icon-xingzhuang6kaobei3-copy-copy:before { + content: "\e613"; +} + +.icon-radio-checked:before { + content: "\e63f"; +} + +.icon-huifu:before { + content: "\e619"; +} + +.icon-dizhi:before { + content: "\e64a"; +} + +.icon-kuaijiecaidan:before { + content: "\e60a"; +} + +.icon-z043:before { + content: "\e62f"; +} + +.icon-guanbi:before { + content: "\e607"; +} + +.icon-xuanze:before { + content: "\e623"; +} + +.icon-caidanzhaolinggan:before { + content: "\e616"; +} + +.icon-xitongshezhi:before { + content: "\e60c"; +} + +.icon-xitongshezhi1:before { + content: "\e633"; +} + +.icon-lunbo:before { + content: "\e692"; +} + +.icon-shuping:before { + content: "\e659"; +} + +.icon-tongzhi:before { + content: "\e641"; +} + +.icon-pinglunguanlishezhi:before { + content: "\e6ac"; +} + +.icon-icon:before { + content: "\e600"; +} + +.icon-liuyanguanli:before { + content: "\e61d"; +} + +.icon-xuanzhong:before { + content: "\e669"; +} + +.icon--:before { + content: "\e622"; +} + +.icon-tushu:before { + content: "\e604"; +} + +.icon-huishouzhan:before { + content: "\e61c"; +} + +.icon-yonghutouxiang:before { + content: "\e617"; +} + +.icon-liebiao:before { + content: "\e630"; +} + +.icon-fenlei:before { + content: "\e621"; +} + +.icon-tushu1:before { + content: "\e605"; +} + +.icon-tubiao-:before { + content: "\e620"; +} + +.icon-weixuanze:before { + content: "\e624"; +} + +.icon-tushujieyue:before { + content: "\e690"; +} + +.icon-lunbo1:before { + content: "\e6c5"; +} + +.icon-shanchu:before { + content: "\e67b"; +} + +.icon-lunbo2:before { + content: "\e61e"; +} + +.icon-huaban:before { + content: "\e663"; +} + +.icon-kehuan:before { + content: "\e608"; +} + +.icon-icon02:before { + content: "\e601"; +} + +.icon-huishouzhan1:before { + content: "\e612"; +} + +.icon-huishouzhan2:before { + content: "\e63d"; +} + +.icon-sousuo:before { + content: "\e62c"; +} + +.icon-xingzhuang:before { + content: "\e625"; +} + +.icon-lunbobankuai:before { + content: "\e61f"; +} + +.icon-shangchuan:before { + content: "\e602"; +} + +.icon-yonghu:before { + content: "\e761"; +} + +.icon-tongzhi1:before { + content: "\e603"; +} + +.icon-jingsong:before { + content: "\e65c"; +} + +.icon-fenlei1:before { + content: "\e6c6"; +} + +.icon-xieshupingicon:before { + content: "\e72d"; +} + +.icon-liuyan:before { + content: "\e626"; +} + +.icon-weixuanzhong:before { + content: "\e627"; +} + +.icon-youxiang:before { + content: "\e646"; +} + +.icon-lunboguanggao:before { + content: "\e6b3"; +} + +.icon-xuanze1:before { + content: "\e60d"; +} + +.icon-chushaixuanxiang:before { + content: "\e606"; +} + +.icon-liuyanguanli1:before { + content: "\e61a"; +} + +.icon-shanchu1:before { + content: "\e609"; +} + +.icon-huishouzhan3:before { + content: "\e642"; +} + +.icon-shangchuan1:before { + content: "\e823"; +} + +.icon-huishouzhan4:before { + content: "\e61b"; +} + +.icon-chuangzuo:before { + content: "\e8ad"; +} + +.icon-dianzan:before { + content: "\e8ae"; +} + +.icon-paihangbang:before { + content: "\e8b3"; +} + +.icon-shouye:before { + content: "\e8b9"; +} + +.icon-shoucang:before { + content: "\e8c6"; +} + +.icon-addApp:before { + content: "\e60b"; +} + +.icon-huishouzhan5:before { + content: "\e63a"; +} + +.icon-add1:before { + content: "\e60e"; +} + +.icon-shoucang1:before { + content: "\e60f"; +} + +.icon-canshutongji:before { + content: "\e618"; +} + +.icon-rizhiguanli:before { + content: "\e628"; +} + +.icon-shanchu2:before { + content: "\e629"; +} + +.icon-xinzeng:before { + content: "\e62a"; +} + +.icon-zhankailiebiao:before { + content: "\e62b"; +} + +.icon-xiala-copy:before { + content: "\e610"; +} + +.icon-shangla:before { + content: "\e64e"; +} + +.icon-xianxingshezhi:before { + content: "\e611"; +} diff --git a/uni_modules/luyj-tree/components/luyj-tree/luyj-tree.scss b/uni_modules/luyj-tree/components/luyj-tree/luyj-tree.scss new file mode 100644 index 0000000..2577ce3 --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree/luyj-tree.scss @@ -0,0 +1,121 @@ +.flex_between_center { + display: flex; + justify-content: space-between; + align-items: center; + } + + .checkbox { + position: relative; + height: 36rpx; + margin-left: 10rpx; + margin-right: 0px; + width: 36rpx; + .color { + color: #00aaff; + background-color: #00aaff; + } + .txt { + // font-size: 30rpx; + line-height: 36rpx; + width: 100%; + height: 100%; + display: flex; + } + } + .checkBorder { + border: 1px solid #ecdee4; + } + .header { + width: 100%; + position: fixed; + background-color: #fff; + z-index: 99; + .title { + height: 90rpx; + padding: 0 32rpx; + line-height: 90rpx; + font-size: 30rpx; + background-color: #f5f5f5; + color: #606064; + .iconclass { + display: inline-block; + margin: 0 12rpx; + color: #D0D4DB; + font-size: 28rpx; + } + } + } + .container-list { + overflow-y: scroll; + overflow-x: hidden; + .common { + background-color: #fff; + border-bottom: 1rpx solid #f4f4f4; + padding-left: 10rpx; + .content { + display: flex; + align-items: center; + min-height: 60rpx; + width: 100%; + padding: 15rpx 0; + position: relative; + font-size: 32rpx; + + .right { + position: absolute; + right: 30rpx; + color: #babdc3; + font-size: 32rpx; + } + } + } + // item的数字样式 + .word { + font-size: 30rpx; + color: #5b5757; + width: 500rpx; + word-break: break-all; + } + } + .active { + color: #4297ED !important; + } + .none { + color: #666666; + } + .icon-selected{ + color: #0095F2!important; + font-size: 40rpx!important; + } + .icons{ + color: #0095F2!important; + font-size: 40rpx!important; + } + .inline-item { + display: inline-block + } + + .content-item{ + display: flex; + position: relative; + align-items: center; + } + + .box_sizing { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + + .btn { + position: fixed; + bottom: 0; + padding: 10px; + background-color: #fff; + width: 100%; + + .sureBtn { + background-color: #0095F2; + color: #fff; + } + } \ No newline at end of file diff --git a/uni_modules/luyj-tree/components/luyj-tree/luyj-tree.vue b/uni_modules/luyj-tree/components/luyj-tree/luyj-tree.vue new file mode 100644 index 0000000..7efdfe2 --- /dev/null +++ b/uni_modules/luyj-tree/components/luyj-tree/luyj-tree.vue @@ -0,0 +1,709 @@ + + + + diff --git a/uni_modules/luyj-tree/lib/css/icon.css b/uni_modules/luyj-tree/lib/css/icon.css new file mode 100644 index 0000000..cf1929d --- /dev/null +++ b/uni_modules/luyj-tree/lib/css/icon.css @@ -0,0 +1,346 @@ +@font-face { + font-family: "iconfont"; /* Project id 2009600 */ + src: url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff2?t=1620633089023') format('woff2'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.woff?t=1620633089023') format('woff'), + url('https://at.alicdn.com/t/font_2009600_gpzp7pxtnw.ttf?t=1620633089023') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* 清除图标 */ +.icon-clear:before{ + content: '\e606'; +} + +.icon-banxuanzhongshousuo1-shi:before { + content: "\e682"; +} + +.icon-xuanzhong3:before { + content: "\e6bb"; +} + +.icon-weixuanzhong2:before { + content: "\e62e"; +} + +.icon-danxuanxuanzhong:before { + content: "\e631"; +} + +.icon-xuanzhong4:before { + content: "\e63e"; +} + +.icon-xuanzhong1:before { + content: "\e62d"; +} +.icon-xuanzhong2:before { + content: "\e656"; +} + +.icon-selected:before { + content: "\e615"; +} + +.icon-weixuanzhong1:before { + content: "\e614"; +} + +.icon-xingzhuang6kaobei3-copy-copy:before { + content: "\e613"; +} + +.icon-radio-checked:before { + content: "\e63f"; +} + +.icon-huifu:before { + content: "\e619"; +} + +.icon-dizhi:before { + content: "\e64a"; +} + +.icon-kuaijiecaidan:before { + content: "\e60a"; +} + +.icon-z043:before { + content: "\e62f"; +} + +.icon-guanbi:before { + content: "\e607"; +} + +.icon-xuanze:before { + content: "\e623"; +} + +.icon-caidanzhaolinggan:before { + content: "\e616"; +} + +.icon-xitongshezhi:before { + content: "\e60c"; +} + +.icon-xitongshezhi1:before { + content: "\e633"; +} + +.icon-lunbo:before { + content: "\e692"; +} + +.icon-shuping:before { + content: "\e659"; +} + +.icon-tongzhi:before { + content: "\e641"; +} + +.icon-pinglunguanlishezhi:before { + content: "\e6ac"; +} + +.icon-icon:before { + content: "\e600"; +} + +.icon-liuyanguanli:before { + content: "\e61d"; +} + +.icon-xuanzhong:before { + content: "\e669"; +} + +.icon--:before { + content: "\e622"; +} + +.icon-tushu:before { + content: "\e604"; +} + +.icon-huishouzhan:before { + content: "\e61c"; +} + +.icon-yonghutouxiang:before { + content: "\e617"; +} + +.icon-liebiao:before { + content: "\e630"; +} + +.icon-fenlei:before { + content: "\e621"; +} + +.icon-tushu1:before { + content: "\e605"; +} + +.icon-tubiao-:before { + content: "\e620"; +} + +.icon-weixuanze:before { + content: "\e624"; +} + +.icon-tushujieyue:before { + content: "\e690"; +} + +.icon-lunbo1:before { + content: "\e6c5"; +} + +.icon-shanchu:before { + content: "\e67b"; +} + +.icon-lunbo2:before { + content: "\e61e"; +} + +.icon-huaban:before { + content: "\e663"; +} + +.icon-kehuan:before { + content: "\e608"; +} + +.icon-icon02:before { + content: "\e601"; +} + +.icon-huishouzhan1:before { + content: "\e612"; +} + +.icon-huishouzhan2:before { + content: "\e63d"; +} + +.icon-sousuo:before { + content: "\e62c"; +} + +.icon-xingzhuang:before { + content: "\e625"; +} + +.icon-lunbobankuai:before { + content: "\e61f"; +} + +.icon-shangchuan:before { + content: "\e602"; +} + +.icon-yonghu:before { + content: "\e761"; +} + +.icon-tongzhi1:before { + content: "\e603"; +} + +.icon-jingsong:before { + content: "\e65c"; +} + +.icon-fenlei1:before { + content: "\e6c6"; +} + +.icon-xieshupingicon:before { + content: "\e72d"; +} + +.icon-liuyan:before { + content: "\e626"; +} + +.icon-weixuanzhong:before { + content: "\e627"; +} + +.icon-youxiang:before { + content: "\e646"; +} + +.icon-lunboguanggao:before { + content: "\e6b3"; +} + +.icon-xuanze1:before { + content: "\e60d"; +} + +.icon-chushaixuanxiang:before { + content: "\e606"; +} + +.icon-liuyanguanli1:before { + content: "\e61a"; +} + +.icon-shanchu1:before { + content: "\e609"; +} + +.icon-huishouzhan3:before { + content: "\e642"; +} + +.icon-shangchuan1:before { + content: "\e823"; +} + +.icon-huishouzhan4:before { + content: "\e61b"; +} + +.icon-chuangzuo:before { + content: "\e8ad"; +} + +.icon-dianzan:before { + content: "\e8ae"; +} + +.icon-paihangbang:before { + content: "\e8b3"; +} + +.icon-shouye:before { + content: "\e8b9"; +} + +.icon-shoucang:before { + content: "\e8c6"; +} + +.icon-addApp:before { + content: "\e60b"; +} + +.icon-huishouzhan5:before { + content: "\e63a"; +} + +.icon-add1:before { + content: "\e60e"; +} + +.icon-shoucang1:before { + content: "\e60f"; +} + +.icon-canshutongji:before { + content: "\e618"; +} + +.icon-rizhiguanli:before { + content: "\e628"; +} + +.icon-shanchu2:before { + content: "\e629"; +} + +.icon-xinzeng:before { + content: "\e62a"; +} + +.icon-zhankailiebiao:before { + content: "\e62b"; +} + +.icon-xiala-copy:before { + content: "\e610"; +} + +.icon-shangla:before { + content: "\e64e"; +} + +.icon-xianxingshezhi:before { + content: "\e611"; +} diff --git a/uni_modules/luyj-tree/package.json b/uni_modules/luyj-tree/package.json new file mode 100644 index 0000000..b132148 --- /dev/null +++ b/uni_modules/luyj-tree/package.json @@ -0,0 +1,86 @@ +{ + "id": "luyj-tree", + "displayName": "luyj-tree 无限级树形结构。", + "version": "1.4.11", + "description": "无限极树形结构。支持搜索、面包屑导航、单项选择、多项选择。", + "keywords": [ + "uni-ui", + "uniui", + "", + "tree", + "" +], + "repository": "https://github.com/luyanjie00436/luyj-tree-app", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "u", + "Android Browser": "u", + "微信浏览器(Android)": "u", + "QQ浏览器(Android)": "u" + }, + "H5-pc": { + "Chrome": "y", + "IE": "u", + "Edge": "u", + "Firefox": "y", + "Safari": "u" + }, + "小程序": { + "微信": { + "minVersion": "2.18.1" + }, + "阿里": "u", + "百度": "u", + "字节跳动": "u", + "QQ": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "u" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/luyj-tree/readme.md b/uni_modules/luyj-tree/readme.md new file mode 100644 index 0000000..7d064b0 --- /dev/null +++ b/uni_modules/luyj-tree/readme.md @@ -0,0 +1,251 @@ +# luyj-tree +> 代码块 `luyj-tree` 内包含`luyj-tree-search`、`luyj-tree-navigation`、`luyj-tree-item` + +## 说明 + +* 本插件是基于[xiaolu-tree](https://ext.dcloud.net.cn/plugin?id=2423)进行了uni_modules模块化。并进行了一些修改。 +* 本人暂时只在微信小程序端和H5 使用Chrome浏览器测试。更改了一些内容,有可能会有一些错误 或说明与实际不一致,介意者慎用。本人会适当的抽出业余时间,把它完善,毕竟有一定的下载量了,而且自己也需要学习,再次感谢原作者。 +* 暂时,使用自定义插件渲染有问题,会出现``duplication is found under a single shadow root. The first one was accepted`` ,还未找到解决方案。 + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +### 基本用法 + +在 ``template`` 中使用组件 + +```html + + + + + + {{item.name}} + + + +``` + +``` javascript +import dataList from '@/common/data.js'; // 引用数据 +export default { + data() { + return { + tree: dataList, + max: 5, + } + }, +} +``` +### 功能说明 + +1. 树形结构展示。 +2. 包含搜索框。能够自定义搜索框的样式,能够直接搜索树形图、子文件的内容。 +3. 包含面包屑导航。 +4. 可以仅仅展示或选择树形的项内容。 +5. 可以显示选择改变,或确认选择的方法。 +6. 只需传checkList字段就可以回显默认选中。 +7. 支持自定义显示内容的插件(slot)。 +8. 支持懒加载。 + +### 属性 + +|属性名 |类型 |默认值 | 说明 | +|:-: |:-: |:-: | :-: | +|search-if |Boolean |true | 是否开启搜索 | +|search-background-color |String |#FFFFFF | 搜索框背景色 | +|search-input-background-color |String |#EEEFF0 | 搜索框的输入框背景色 | +|search-radius |Number |40 | 搜索框的圆角值,单位rpx(默认40) | +|search-placeholder |String |搜索 | 搜索框的内容物空时提示内容 | +|search-placeholder-style |String | | 搜索框的placehoder的样式 | +|search-maxlength |Number |140 | 搜索框的最大输入长度 ,设置为 -1 的时候不限制最大长度 | +|search-iconColor |String | | 搜索框的图标颜色 | +|search-clearable |Boolean |true | 搜索框是否显示清除按钮 | +|trees |Array |[] | trees 传入的树形结构,每个对象必须包含唯一的id值 | +|is-check |Boolean |false | 是否开启选择操作 | +|slot-obj |Object |null | 传入插槽的参数(自定义的slot中不能引用页面的参数,否则样式会出错)| +|check-list |Array |[] | 选中的列表 | +|parent |Boolean |false | 当子级全选时,是否选中父级数据(prop.checkStrictly为true时生效)。此参数占时失效。 | +|parent-list |Array |[] | 父级列表 | +|check-active-color |String |#00AAFF | 选中时单选框/复选框的颜色 | +|check-none-color |String |#B8B8B8 | 未选中时单选框/复选框的颜色 | +|props |Object |{id: 'id',label:'name',children:'children',hasChilren: 'user',multiple: false,checkStrictly: false ,nodes: false} | 参数配置,详细见下表。 | +|step-reload |Boolean |false | 是否懒加载数列 | +|page-size |Number |50 | 每次加载的条数,stepReload = true时生效 | + +#### props 参数说明 +|参数 |类型 |默认值 | 说明 | +|:-: |:-: |:-: | :-: | +|id |String |id | id列的属性名 | +|label |String |name | 指定选项标签为选项对象的某个属性值 | +|children |String |children | 指定选项的子选项为选项对象的某个属性值 | +|multiple |Boolean |true | 值为true时为多选,为false时是单选 | +|checkStrictly |Boolean |false | 需要在多选模式下才传该值,checkStrictly为false时,可让父子节点取消关联,选择任意一级选项。为true时关联子级,可以全选(暂时不可用) | +|nodes |Boolean |true | 在单选模式下,nodes为false时,可以选择任意一级选项,nodes为true时,只能选择叶子节点 | + +### 事件 + +|事件名 |说明 |返回值 | +|:-: |:-: |:-: | +|@clickItem |点击Item列事件 |(item : Object ,realHasChildren : Boolean) | +|@change |选项改变时触发事件 当前选中的值 | +|@sendValue |点击确认按钮时触发事件 | 参数(选中的项值) | + +``@clickItem``,当点击item列时有效。返回值说明如下: + +|返回值 |类型 | 说明 | +|:-: |:-: |:-: | +|item |Object | 当前选中的值 | +|realHasChildren |Boolean| 是否包含子级 | + +``@change`` ,``is-check``为```true```时,当选中的值改变时触发。返回值说明如下: + +|参数 |类型 | 说明 | +|:-: |:-: | :-: | +|e.detail.value |Boolean | 当前项是否选中 | +|item |Object | 当前的Item值 | + +# luyj-tree-search + +### 说明 + +``luyj-tree-search`` 是 ``luyj-tree``内的组件,作为搜索框,可以单独引用。 + +![Image text](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-c07243ab-98a3-4f90-9b4d-2fa60aba2ee9/ba6ace1d-4881-4373-8a8e-b90079d3e290.png) + +### 基本用法 +### +在 ``template`` 中使用组件 + +``` html + +``` + +### 属性 + +|属性名 |类型 |默认值 | 说明 | +|:-: |:-: |:-: | :-: | +|background-color |String |#FFFFFF | 背景色 | +|input-background-color |String |#EEEFF0 | 输入框背景色 | +|radius |Number |40 | 输入框圆角,单位rpx | +|icon-color |String |#B8B8B8 | 图标颜色 | +|placeholder |String |搜索 | 输入框为空时占位符 | +|placeholder-style |String | | placeholder的样式 | +|maxlength |Number |140 | 最大输入长度 ,设置为 -1 的时候不限制最大长度 | + +### 事件 + +|事件名 |说明 |返回值 | +|:-: |:-: |:-: | +|@input |输入框内容变化时,触发事件 | event | +|@focus |输入框获得焦点时,触发事件 | event | +|@blur |输入框失去焦点时,触发事件 | event | +|@confirm |输入框内容提交时,触发事件 | event | +|@clear |清空输入框内容时,触发事件 | '' | + +# luyj-tree-navigation + +``luyj-tree-navigation`` 是 ``luyj-tree``内的组件,作为面包屑导航栏,可以单独引用。 + +# luyj-tree-item + +``luyj-tree-item`` 是 ``luyj-tree``内的组件,是树的选择项。包含单选、多选的样式,可以单独引用。 + +### 基础用法 + +在``template``中使用组件 + +``` html + + + + + + + + + +``` + +对应的数据及方法如下: + +``` javascript +import dataItem from '../../common/item-data.js'; +export default { + data() { + return { + item : dataItem, // 当前item值 + isCheck : true, // 是否可选 + ischecked : true, // 是否选中 + multiple : false, // 是否多选 + comparison :{ + value : 'value', // 选中值 + label : 'label', // 显示名称 + children:'children', // 子级名称 + }, + test :124 + } + }, + onLoad:function(){ + }, + methods: { + // 修改change + change : function(e , item){ + console.log("修改当前值=>" ,e , item); + }, + // 点击当前项目 + clickItem : function(item , hasChildren){ + console.log("点击当前项目"); + } + } +} +``` + +### 属性 + +|属性名 |类型 |默认值 | 说明 | +|:-: |:-: |:-: | :-: | +|item |Object |{} | 当前项的值 | +|is-check |Boolean |false |判断是否可选择,与multiple组合使用。判断显示类型为展示、单选、多选| +|multiple |Boolean |false |是否多选。当isCheck值为true时有效。multiple=false时为单选,multiple=true时多选| +|checked |Boolean |false |当前项是否选中状态| +|nodes |Boolean |false |是否只能选择叶子结点| +|check-active-color |String |#00AAFF |选中状态下,单选框/复选框的颜色| +|check-none-color |String |#B8B8B8 |未选中状态下,单选框/复选框的颜色| +|comparison |Object |{value : 'value',label : 'label',children:'children'}; |当前项的列名称。 | + +#### **comparison**的值 +|参数 |类型 |默认值 | 说明 | +|:-: |:-: |:-: | :-: | +|value |String |value | value值的列名,即选中时单选按钮或复选按钮的值 | +|label |String |label | label值的列名,即当前item默认展示的名称 | +|children |String |children | children对的列名,即当前item的下一级 | + +### 事件 + +|事件名 |说明 |返回值 | +|:-: |:-: |:-: | +|@change |单选框/复选框值改变时执行方法 |(e , item) | +|@clickItem |点击当前选项 |{item , hasChildren} | + +#### **change** 的参数说明 + +|参数 |类型 | 说明 | +|:-: |:-: | :-: | +|e.detail.value |Boolean | 当前项是否选中 | +|item |Object | 当前的Item值 | + +#### **clickItem** 的参数说明 + +|参数 |类型 | 说明 | +|:-: |:-: | :-: | +|item |Object | 当前的Item值 | +|hasChildren |Boolean | 是否包含子级,即children是否包含对象 | + +### 源码地址 + +[代码csdn地址](https://codechina.csdn.net/qq_28624235/luyj-tree-app)
+[代码github地址](https://github.com/luyanjie00436/luyj-tree-app) \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/changelog.md b/uni_modules/uni-datetime-picker/changelog.md new file mode 100644 index 0000000..1e82f46 --- /dev/null +++ b/uni_modules/uni-datetime-picker/changelog.md @@ -0,0 +1,140 @@ +## 2.2.24(2023-06-02) +- 修复 部分情况修改时间,开始、结束时间显示异常的Bug [详情](https://ask.dcloud.net.cn/question/171146) +- 优化 当前月可以选择上月、下月的日期 +## 2.2.23(2023-05-02) +- 修复 部分情况修改时间,开始时间未更新 [详情](https://github.com/dcloudio/uni-ui/issues/737) +- 修复 部分平台及设备第一次点击无法显示弹框 +- 修复 ios 日期格式未补零显示及使用异常 [详情](https://ask.dcloud.net.cn/question/162979) +## 2.2.22(2023-03-30) +- 修复 日历 picker 修改年月后,自动选中当月1日 [详情](https://ask.dcloud.net.cn/question/165937) +- 修复 小程序端 低版本 ios NaN [详情](https://ask.dcloud.net.cn/question/162979) +## 2.2.21(2023-02-20) +- 修复 firefox 浏览器显示区域点击无法拉起日历弹框的Bug [详情](https://ask.dcloud.net.cn/question/163362) +## 2.2.20(2023-02-17) +- 优化 值为空依然选中当天问题 +- 优化 提供 default-value 属性支持配置选择器打开时默认显示的时间 +- 优化 非范围选择未选择日期时间,点击确认按钮选中当前日期时间 +- 优化 字节小程序日期时间范围选择,底部日期换行问题 +## 2.2.19(2023-02-09) +- 修复 2.2.18 引起范围选择配置 end 选择无效的Bug [详情](https://github.com/dcloudio/uni-ui/issues/686) +## 2.2.18(2023-02-08) +- 修复 移动端范围选择change事件触发异常的Bug [详情](https://github.com/dcloudio/uni-ui/issues/684) +- 优化 PC端输入日期格式错误时返回当前日期时间 +- 优化 PC端输入日期时间超出 start、end 限制的Bug +- 优化 移动端日期时间范围用法时间展示不完整问题 +## 2.2.17(2023-02-04) +- 修复 小程序端绑定 Date 类型报错的Bug [详情](https://github.com/dcloudio/uni-ui/issues/679) +- 修复 vue3 time-picker 无法显示绑定时分秒的Bug +## 2.2.16(2023-02-02) +- 修复 字节小程序报错的Bug +## 2.2.15(2023-02-02) +- 修复 某些情况切换月份错误的Bug +## 2.2.14(2023-01-30) +- 修复 某些情况切换月份错误的Bug [详情](https://ask.dcloud.net.cn/question/162033) +## 2.2.13(2023-01-10) +- 修复 多次加载组件造成内存占用的Bug +## 2.2.12(2022-12-01) +- 修复 vue3 下 i18n 国际化初始值不正确的Bug +## 2.2.11(2022-09-19) +- 修复 支付宝小程序样式错乱的Bug [详情](https://github.com/dcloudio/uni-app/issues/3861) +## 2.2.10(2022-09-19) +- 修复 反向选择日期范围,日期显示异常的Bug [详情](https://ask.dcloud.net.cn/question/153401?item_id=212892&rf=false) +## 2.2.9(2022-09-16) +- 可以使用 uni-scss 控制主题色 +## 2.2.8(2022-09-08) +- 修复 close事件无效的Bug +## 2.2.7(2022-09-05) +- 修复 移动端 maskClick 无效的Bug [详情](https://ask.dcloud.net.cn/question/140824) +## 2.2.6(2022-06-30) +- 优化 组件样式,调整了组件图标大小、高度、颜色等,与uni-ui风格保持一致 +## 2.2.5(2022-06-24) +- 修复 日历顶部年月及底部确认未国际化的Bug +## 2.2.4(2022-03-31) +- 修复 Vue3 下动态赋值,单选类型未响应的Bug +## 2.2.3(2022-03-28) +- 修复 Vue3 下动态赋值未响应的Bug +## 2.2.2(2021-12-10) +- 修复 clear-icon 属性在小程序平台不生效的Bug +## 2.2.1(2021-12-10) +- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的Bug +## 2.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源 [详情](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移 [https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +## 2.1.5(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 2.1.4(2021-09-10) +- 修复 hide-second 在移动端的Bug +- 修复 单选赋默认值时,赋值日期未高亮的Bug +- 修复 赋默认值时,移动端未正确显示时间的Bug +## 2.1.3(2021-09-09) +- 新增 hide-second 属性,支持只使用时分,隐藏秒 +## 2.1.2(2021-09-03) +- 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- 优化 调整字号大小,美化日历界面 +- 修复 因国际化导致的 placeholder 失效的Bug +## 2.1.1(2021-08-24) +- 新增 支持国际化 +- 优化 范围选择器在 pc 端过宽的问题 +## 2.1.0(2021-08-09) +- 新增 适配 vue3 +## 2.0.19(2021-08-09) +- 新增 支持作为 uni-forms 子组件相关功能 +- 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的Bug +## 2.0.18(2021-08-05) +- 修复 type 属性动态赋值无效的Bug +- 修复 ‘确认’按钮被 tabbar 遮盖 bug +- 修复 组件未赋值时范围选左、右日历相同的Bug +## 2.0.17(2021-08-04) +- 修复 范围选未正确显示当前值的Bug +- 修复 h5 平台(移动端)报错 'cale' of undefined 的Bug +## 2.0.16(2021-07-21) +- 新增 return-type 属性支持返回 date 日期对象 +## 2.0.15(2021-07-14) +- 修复 单选日期类型,初始赋值后不在当前日历的Bug +- 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- 优化 移动端移除显示框的清空按钮,无实际用途 +## 2.0.14(2021-07-14) +- 修复 组件赋值为空,界面未更新的Bug +- 修复 start 和 end 不能动态赋值的Bug +- 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的Bug +## 2.0.13(2021-07-08) +- 修复 范围选择不能动态赋值的Bug +## 2.0.12(2021-07-08) +- 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +## 2.0.11(2021-07-08) +- 优化 弹出层在超出视窗边缘定位不准确的问题 +## 2.0.10(2021-07-08) +- 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的Bug +- 优化 弹出层在超出视窗边缘被遮盖的问题 +## 2.0.9(2021-07-07) +- 新增 maskClick 事件 +- 修复 特殊情况日历 rpx 布局错误的Bug,rpx -> px +- 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +## 2.0.8(2021-07-07) +- 新增 日期时间显示框支持插槽 +## 2.0.7(2021-07-01) +- 优化 添加 uni-icons 依赖 +## 2.0.6(2021-05-22) +- 修复 图标在小程序上不显示的Bug +- 优化 重命名引用组件,避免潜在组件命名冲突 +## 2.0.5(2021-05-20) +- 优化 代码目录扁平化 +## 2.0.4(2021-05-12) +- 新增 组件示例地址 +## 2.0.3(2021-05-10) +- 修复 ios 下不识别 '-' 日期格式的Bug +- 优化 pc 下弹出层添加边框和阴影 +## 2.0.2(2021-05-08) +- 修复 在 admin 中获取弹出层定位错误的bug +## 2.0.1(2021-05-08) +- 修复 type 属性向下兼容,默认值从 date 变更为 datetime +## 2.0.0(2021-04-30) +- 支持日历形式的日期+时间的范围选择 + > 注意:此版本不向后兼容,不再支持单独时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker) +## 1.0.6(2021-03-18) +- 新增 hide-second 属性,时间支持仅选择时、分 +- 修复 选择跟显示的日期不一样的Bug +- 修复 chang事件触发2次的Bug +- 修复 分、秒 end 范围错误的Bug +- 优化 更好的 nvue 适配 diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue new file mode 100644 index 0000000..997e004 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue new file mode 100644 index 0000000..e2572ad --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue @@ -0,0 +1,931 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json new file mode 100644 index 0000000..024f22f --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json @@ -0,0 +1,22 @@ +{ + "uni-datetime-picker.selectDate": "select date", + "uni-datetime-picker.selectTime": "select time", + "uni-datetime-picker.selectDateTime": "select date and time", + "uni-datetime-picker.startDate": "start date", + "uni-datetime-picker.endDate": "end date", + "uni-datetime-picker.startTime": "start time", + "uni-datetime-picker.endTime": "end time", + "uni-datetime-picker.ok": "ok", + "uni-datetime-picker.clear": "clear", + "uni-datetime-picker.cancel": "cancel", + "uni-datetime-picker.year": "-", + "uni-datetime-picker.month": "", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN", + "uni-calender.confirm": "confirm" +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json new file mode 100644 index 0000000..d2df5e7 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json @@ -0,0 +1,22 @@ +{ + "uni-datetime-picker.selectDate": "选择日期", + "uni-datetime-picker.selectTime": "选择时间", + "uni-datetime-picker.selectDateTime": "选择日期时间", + "uni-datetime-picker.startDate": "开始日期", + "uni-datetime-picker.endDate": "结束日期", + "uni-datetime-picker.startTime": "开始时间", + "uni-datetime-picker.endTime": "结束时间", + "uni-datetime-picker.ok": "确定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-datetime-picker.year": "年", + "uni-datetime-picker.month": "月", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六", + "uni-calender.confirm": "确认" +} \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json new file mode 100644 index 0000000..d23fa3c --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json @@ -0,0 +1,22 @@ +{ + "uni-datetime-picker.selectDate": "選擇日期", + "uni-datetime-picker.selectTime": "選擇時間", + "uni-datetime-picker.selectDateTime": "選擇日期時間", + "uni-datetime-picker.startDate": "開始日期", + "uni-datetime-picker.endDate": "結束日期", + "uni-datetime-picker.startTime": "開始时间", + "uni-datetime-picker.endTime": "結束时间", + "uni-datetime-picker.ok": "確定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-datetime-picker.year": "年", + "uni-datetime-picker.month": "月", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六", + "uni-calender.confirm": "確認" +} \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue new file mode 100644 index 0000000..81a042a --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue @@ -0,0 +1,934 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue new file mode 100644 index 0000000..4899863 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue @@ -0,0 +1,1035 @@ + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js new file mode 100644 index 0000000..fc98623 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js @@ -0,0 +1,453 @@ +class Calendar { + constructor({ + selected, + startDate, + endDate, + range, + } = {}) { + // 当前日期 + this.date = this.getDateObj(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 起始时间 + this.startDate = startDate + // 终止时间 + this.endDate = endDate + // 是否范围选择 + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + this.lastHover = false + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + const selectDate = this.getDateObj(date) + this.getWeeks(selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + setStartDate(startDate) { + this.startDate = startDate + } + + setEndDate(endDate) { + this.endDate = endDate + } + + getPreMonthObj(date){ + date = fixIosDateFormat(date) + date = new Date(date) + + const oldMonth = date.getMonth() + date.setMonth(oldMonth - 1) + const newMonth = date.getMonth() + if(oldMonth !== 0 && newMonth - oldMonth === 0){ + date.setMonth(newMonth - 1) + } + return this.getDateObj(date) + } + getNextMonthObj(date){ + date = fixIosDateFormat(date) + date = new Date(date) + + const oldMonth = date.getMonth() + date.setMonth(oldMonth + 1) + const newMonth = date.getMonth() + if(newMonth - oldMonth > 1){ + date.setMonth(newMonth - 1) + } + return this.getDateObj(date) + } + + /** + * 获取指定格式Date对象 + */ + getDateObj(date) { + date = fixIosDateFormat(date) + date = new Date(date) + + return { + fullDate: getDate(date), + year: date.getFullYear(), + month: addZero(date.getMonth() + 1), + date: addZero(date.getDate()), + day: date.getDay() + } + } + + /** + * 获取上一个月日期集合 + */ + getPreMonthDays(amount, dateObj) { + const result = [] + for (let i = amount - 1; i >= 0; i--) { + const month = dateObj.month > 1 ? dateObj.month -1 : 12 + const year = month === 12 ? dateObj.year - 1 : dateObj.year + const date = new Date(year,month,-i).getDate() + const fullDate = `${year}-${addZero(month)}-${addZero(date)}` + let multiples = this.multipleStatus.data + let multiplesStatus = -1 + if (this.range && multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, fullDate) + }) + } + const checked = multiplesStatus !== -1 + // 获取打点信息 + const extraInfo = this.selected && this.selected.find((item) => { + if (this.dateEqual(fullDate, item.date)) { + return item + } + }) + result.push({ + fullDate, + year, + month, + date, + multiple: this.range ? checked : false, + beforeMultiple: this.isLogicBefore(fullDate, this.multipleStatus.before, this.multipleStatus.after), + afterMultiple: this.isLogicAfter(fullDate, this.multipleStatus.before, this.multipleStatus.after), + disable: (this.startDate && !dateCompare(this.startDate, fullDate)) || (this.endDate && !dateCompare(fullDate,this.endDate)), + isToday: fullDate === this.date.fullDate, + userChecked: false, + extraInfo + }) + } + return result + } + /** + * 获取本月日期集合 + */ + getCurrentMonthDays(amount, dateObj) { + const result = [] + const fullDate = this.date.fullDate + for (let i = 1; i <= amount; i++) { + const currentDate = `${dateObj.year}-${dateObj.month}-${addZero(i)}` + const isToday = fullDate === currentDate + // 获取打点信息 + const extraInfo = this.selected && this.selected.find((item) => { + if (this.dateEqual(currentDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + disableBefore = dateCompare(this.startDate, currentDate) + } + + if (this.endDate) { + disableAfter = dateCompare(currentDate, this.endDate) + } + + let multiples = this.multipleStatus.data + let multiplesStatus = -1 + if (this.range && multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, currentDate) + }) + } + const checked = multiplesStatus !== -1 + + result.push({ + fullDate: currentDate, + year: dateObj.year, + month: dateObj.month, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.isLogicBefore(currentDate, this.multipleStatus.before, this.multipleStatus.after), + afterMultiple: this.isLogicAfter(currentDate, this.multipleStatus.before, this.multipleStatus.after), + disable: (this.startDate && !dateCompare(this.startDate, currentDate)) || (this.endDate && !dateCompare(currentDate,this.endDate)), + isToday, + userChecked: false, + extraInfo + }) + } + return result + } + /** + * 获取下一个月日期集合 + */ + _getNextMonthDays(amount, dateObj) { + const result = [] + const month = dateObj.month + 1 + for (let i = 1; i <= amount; i++) { + const month = dateObj.month === 12 ? 1 : dateObj.month*1 + 1 + const year = month === 1 ? dateObj.year + 1 : dateObj.year + const fullDate = `${year}-${addZero(month)}-${addZero(i)}` + let multiples = this.multipleStatus.data + let multiplesStatus = -1 + if (this.range && multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, fullDate) + }) + } + const checked = multiplesStatus !== -1 + // 获取打点信息 + const extraInfo = this.selected && this.selected.find((item) => { + if (this.dateEqual(fullDate, item.date)) { + return item + } + }) + result.push({ + fullDate, + year, + date: i, + month, + multiple: this.range ? checked : false, + beforeMultiple: this.isLogicBefore(fullDate, this.multipleStatus.before, this.multipleStatus.after), + afterMultiple: this.isLogicAfter(fullDate, this.multipleStatus.before, this.multipleStatus.after), + disable: (this.startDate && !dateCompare(this.startDate, fullDate)) || (this.endDate && !dateCompare(fullDate,this.endDate)), + isToday: fullDate === this.date.fullDate, + userChecked: false, + extraInfo + }) + } + return result + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + + return this.calendar.find(item => item.fullDate === this.getDateObj(date).fullDate) + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + before = new Date(fixIosDateFormat(before)) + after = new Date(fixIosDateFormat(after)) + return before.valueOf() === after.valueOf() + } + + /** + * 比较真实起始日期 + */ + + isLogicBefore(currentDate, before, after) { + let logicBefore = before + if (before && after) { + logicBefore = dateCompare(before, after) ? before : after + } + return this.dateEqual(logicBefore, currentDate) + } + + isLogicAfter(currentDate, before, after) { + let logicAfter = after + if (before && after) { + logicAfter = dateCompare(before, after) ? after : before + } + return this.dateEqual(logicAfter, currentDate) + } + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDateObj(new Date(parseInt(k))).fullDate) + } + return arr + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + if (!this.range) return + + let { + before, + after + } = this.multipleStatus + if (before && after) { + if (!this.lastHover) { + this.lastHover = true + return + } + this.multipleStatus.before = fullDate + this.multipleStatus.after = '' + this.multipleStatus.data = [] + this.multipleStatus.fulldate = '' + this.lastHover = false + } else { + if (!before) { + this.multipleStatus.before = fullDate + this.lastHover = false + } else { + this.multipleStatus.after = fullDate + if (dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus + .after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus + .before); + } + this.lastHover = true + } + } + this.getWeeks(fullDate) + } + + /** + * 鼠标 hover 更新多选状态 + */ + setHoverMultiple(fullDate) { + if (!this.range || this.lastHover) return + + const { before } = this.multipleStatus + + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + this.getWeeks(fullDate) + } + + /** + * 更新默认值多选状态 + */ + setDefaultMultiple(before, after) { + this.multipleStatus.before = before + this.multipleStatus.after = after + if (before && after) { + if (dateCompare(before, after)) { + this.multipleStatus.data = this.geDateAll(before, after); + this.getWeeks(after) + } else { + this.multipleStatus.data = this.geDateAll(after, before); + this.getWeeks(before) + } + } + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + getWeeks(dateData) { + const { + year, + month, + } = this.getDateObj(dateData) + + const preMonthDayAmount = new Date(year, month - 1, 1).getDay() + const preMonthDays = this.getPreMonthDays(preMonthDayAmount, this.getDateObj(dateData)) + + const currentMonthDayAmount = new Date(year, month, 0).getDate() + const currentMonthDays = this.getCurrentMonthDays(currentMonthDayAmount, this.getDateObj(dateData)) + + const nextMonthDayAmount = 42 - preMonthDayAmount - currentMonthDayAmount + const nextMonthDays = this._getNextMonthDays(nextMonthDayAmount, this.getDateObj(dateData)) + + const calendarDays = [...preMonthDays, ...currentMonthDays, ...nextMonthDays] + + const weeks = new Array(6) + for (let i = 0; i < calendarDays.length; i++) { + const index = Math.floor(i / 7) + if(!weeks[index]){ + weeks[index] = new Array(7) + } + weeks[index][i % 7] = calendarDays[i] + } + + this.calendar = calendarDays + this.weeks = weeks + } +} + +function getDateTime(date, hideSecond){ + return `${getDate(date)} ${getTime(date, hideSecond)}` +} + +function getDate(date) { + date = fixIosDateFormat(date) + date = new Date(date) + const year = date.getFullYear() + const month = date.getMonth()+1 + const day = date.getDate() + return `${year}-${addZero(month)}-${addZero(day)}` +} + +function getTime(date, hideSecond){ + date = fixIosDateFormat(date) + date = new Date(date) + const hour = date.getHours() + const minute = date.getMinutes() + const second = date.getSeconds() + return hideSecond ? `${addZero(hour)}:${addZero(minute)}` : `${addZero(hour)}:${addZero(minute)}:${addZero(second)}` +} + +function addZero(num) { + if(num < 10){ + num = `0${num}` + } + return num +} + +function getDefaultSecond(hideSecond) { + return hideSecond ? '00:00' : '00:00:00' +} + +function dateCompare(startDate, endDate) { + startDate = new Date(fixIosDateFormat(startDate)) + endDate = new Date(fixIosDateFormat(endDate)) + return startDate <= endDate +} + +function checkDate(date){ + const dateReg = /((19|20)\d{2})(-|\/)\d{1,2}(-|\/)\d{1,2}/g + return date.match(dateReg) +} + +const dateTimeReg = /^\d{4}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])( [0-5]?[0-9]:[0-5]?[0-9]:[0-5]?[0-9])?$/ +function fixIosDateFormat(value) { + if (typeof value === 'string' && dateTimeReg.test(value)) { + value = value.replace(/-/g, '/') + } + return value +} + +export {Calendar, getDateTime, getDate, getTime, addZero, getDefaultSecond, dateCompare, checkDate, fixIosDateFormat} \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/package.json b/uni_modules/uni-datetime-picker/package.json new file mode 100644 index 0000000..cabb668 --- /dev/null +++ b/uni_modules/uni-datetime-picker/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-datetime-picker", + "displayName": "uni-datetime-picker 日期选择器", + "version": "2.2.24", + "description": "uni-datetime-picker 日期时间选择器,支持日历,支持范围选择", + "keywords": [ + "uni-datetime-picker", + "uni-ui", + "uniui", + "日期时间选择器", + "日期时间" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-datetime-picker/readme.md b/uni_modules/uni-datetime-picker/readme.md new file mode 100644 index 0000000..162fbef --- /dev/null +++ b/uni_modules/uni-datetime-picker/readme.md @@ -0,0 +1,21 @@ + + +> `重要通知:组件升级更新 2.0.0 后,支持日期+时间范围选择,组件 ui 将使用日历选择日期,ui 变化较大,同时支持 PC 和 移动端。此版本不向后兼容,不再支持单独的时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker)。若仍需使用旧版本,可在插件市场下载*非uni_modules版本*,旧版本将不再维护` + +## DatetimePicker 时间选择器 + +> **组件名:uni-datetime-picker** +> 代码块: `uDatetimePicker` + + +该组件的优势是,支持**时间戳**输入和输出(起始时间、终止时间也支持时间戳),可**同时选择**日期和时间。 + +若只是需要单独选择日期和时间,不需要时间戳输入和输出,可使用原生的 picker 组件。 + +**_点击 picker 默认值规则:_** + +- 若设置初始值 value, 会显示在 picker 显示框中 +- 若无初始值 value,则初始值 value 为当前本地时间 Date.now(), 但不会显示在 picker 显示框中 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/changelog.md b/uni_modules/uni-scss/changelog.md new file mode 100644 index 0000000..b863bb0 --- /dev/null +++ b/uni_modules/uni-scss/changelog.md @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/uni_modules/uni-scss/index.scss b/uni_modules/uni-scss/index.scss new file mode 100644 index 0000000..1744a5f --- /dev/null +++ b/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/uni_modules/uni-scss/package.json b/uni_modules/uni-scss/package.json new file mode 100644 index 0000000..7cc0ccb --- /dev/null +++ b/uni_modules/uni-scss/package.json @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-scss/readme.md b/uni_modules/uni-scss/readme.md new file mode 100644 index 0000000..b7d1c25 --- /dev/null +++ b/uni_modules/uni-scss/readme.md @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/index.scss b/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 0000000..ffac4fe --- /dev/null +++ b/uni_modules/uni-scss/styles/index.scss @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/uni_modules/uni-scss/styles/setting/_border.scss b/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 0000000..12a11c3 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_border.scss @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_color.scss b/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 0000000..1ededd9 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_color.scss @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/uni_modules/uni-scss/styles/setting/_radius.scss b/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 0000000..9a0428b --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_radius.scss @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/uni_modules/uni-scss/styles/setting/_space.scss b/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 0000000..3c89528 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_space.scss @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_styles.scss b/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 0000000..689afec --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_styles.scss @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/uni_modules/uni-scss/styles/setting/_text.scss b/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 0000000..a34d08f --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_text.scss @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/uni_modules/uni-scss/styles/setting/_variables.scss b/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 0000000..557d3d7 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_variables.scss @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/uni_modules/uni-scss/styles/tools/functions.scss b/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 0000000..ac6f63e --- /dev/null +++ b/uni_modules/uni-scss/styles/tools/functions.scss @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/uni_modules/uni-scss/theme.scss b/uni_modules/uni-scss/theme.scss new file mode 100644 index 0000000..80ee62f --- /dev/null +++ b/uni_modules/uni-scss/theme.scss @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/uni_modules/uni-scss/variables.scss b/uni_modules/uni-scss/variables.scss new file mode 100644 index 0000000..1c062d4 --- /dev/null +++ b/uni_modules/uni-scss/variables.scss @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #2979ff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/uni_modules/uni-table/changelog.md b/uni_modules/uni-table/changelog.md new file mode 100644 index 0000000..842211c --- /dev/null +++ b/uni_modules/uni-table/changelog.md @@ -0,0 +1,29 @@ +## 1.2.4(2023-12-19) +- 修复 uni-tr只有一列时minWidth计算错误,列变化实时计算更新 +## 1.2.3(2023-03-28) +- 修复 在vue3模式下可能会出现错误的问题 +## 1.2.2(2022-11-29) +- 优化 主题样式 +## 1.2.1(2022-06-06) +- 修复 微信小程序存在无使用组件的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-table](https://uniapp.dcloud.io/component/uniui/uni-table) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-07-08) +- 新增 uni-th 支持 date 日期筛选范围 +## 1.0.6(2021-07-05) +- 新增 uni-th 支持 range 筛选范围 +## 1.0.5(2021-06-28) +- 新增 uni-th 筛选功能 +## 1.0.4(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.3(2021-04-16) +- 新增 sortable 属性,是否开启单列排序 +- 优化 表格多选逻辑 +## 1.0.2(2021-03-22) +- uni-tr 添加 disabled 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-table/components/uni-table/uni-table.vue b/uni_modules/uni-table/components/uni-table/uni-table.vue new file mode 100644 index 0000000..a60559d --- /dev/null +++ b/uni_modules/uni-table/components/uni-table/uni-table.vue @@ -0,0 +1,455 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue b/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue new file mode 100644 index 0000000..fbe1bdc --- /dev/null +++ b/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-td/uni-td.vue b/uni_modules/uni-table/components/uni-td/uni-td.vue new file mode 100644 index 0000000..9ce93e9 --- /dev/null +++ b/uni_modules/uni-table/components/uni-td/uni-td.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-th/filter-dropdown.vue b/uni_modules/uni-table/components/uni-th/filter-dropdown.vue new file mode 100644 index 0000000..df22a71 --- /dev/null +++ b/uni_modules/uni-table/components/uni-th/filter-dropdown.vue @@ -0,0 +1,511 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-th/uni-th.vue b/uni_modules/uni-table/components/uni-th/uni-th.vue new file mode 100644 index 0000000..14889dd --- /dev/null +++ b/uni_modules/uni-table/components/uni-th/uni-th.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-thead/uni-thead.vue b/uni_modules/uni-table/components/uni-thead/uni-thead.vue new file mode 100644 index 0000000..0dd18cd --- /dev/null +++ b/uni_modules/uni-table/components/uni-thead/uni-thead.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tr/table-checkbox.vue b/uni_modules/uni-table/components/uni-tr/table-checkbox.vue new file mode 100644 index 0000000..1089187 --- /dev/null +++ b/uni_modules/uni-table/components/uni-tr/table-checkbox.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tr/uni-tr.vue b/uni_modules/uni-table/components/uni-tr/uni-tr.vue new file mode 100644 index 0000000..4cb85f5 --- /dev/null +++ b/uni_modules/uni-table/components/uni-tr/uni-tr.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/uni_modules/uni-table/i18n/en.json b/uni_modules/uni-table/i18n/en.json new file mode 100644 index 0000000..e32023c --- /dev/null +++ b/uni_modules/uni-table/i18n/en.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reset", + "filter-dropdown.search": "Search", + "filter-dropdown.submit": "Submit", + "filter-dropdown.filter": "Filter", + "filter-dropdown.gt": "Greater or equal to", + "filter-dropdown.lt": "Less than or equal to", + "filter-dropdown.date": "Date" +} diff --git a/uni_modules/uni-table/i18n/es.json b/uni_modules/uni-table/i18n/es.json new file mode 100644 index 0000000..9afd04b --- /dev/null +++ b/uni_modules/uni-table/i18n/es.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reiniciar", + "filter-dropdown.search": "Búsqueda", + "filter-dropdown.submit": "Entregar", + "filter-dropdown.filter": "Filtrar", + "filter-dropdown.gt": "Mayor o igual a", + "filter-dropdown.lt": "Menos que o igual a", + "filter-dropdown.date": "Fecha" +} diff --git a/uni_modules/uni-table/i18n/fr.json b/uni_modules/uni-table/i18n/fr.json new file mode 100644 index 0000000..b006237 --- /dev/null +++ b/uni_modules/uni-table/i18n/fr.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Réinitialiser", + "filter-dropdown.search": "Chercher", + "filter-dropdown.submit": "Soumettre", + "filter-dropdown.filter": "Filtre", + "filter-dropdown.gt": "Supérieur ou égal à", + "filter-dropdown.lt": "Inférieur ou égal à", + "filter-dropdown.date": "Date" +} diff --git a/uni_modules/uni-table/i18n/index.js b/uni_modules/uni-table/i18n/index.js new file mode 100644 index 0000000..2469dd0 --- /dev/null +++ b/uni_modules/uni-table/i18n/index.js @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-table/i18n/zh-Hans.json b/uni_modules/uni-table/i18n/zh-Hans.json new file mode 100644 index 0000000..862af17 --- /dev/null +++ b/uni_modules/uni-table/i18n/zh-Hans.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "确定", + "filter-dropdown.filter": "筛选", + "filter-dropdown.gt": "大于等于", + "filter-dropdown.lt": "小于等于", + "filter-dropdown.date": "日期范围" +} diff --git a/uni_modules/uni-table/i18n/zh-Hant.json b/uni_modules/uni-table/i18n/zh-Hant.json new file mode 100644 index 0000000..64f8061 --- /dev/null +++ b/uni_modules/uni-table/i18n/zh-Hant.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "確定", + "filter-dropdown.filter": "篩選", + "filter-dropdown.gt": "大於等於", + "filter-dropdown.lt": "小於等於", + "filter-dropdown.date": "日期範圍" +} diff --git a/uni_modules/uni-table/package.json b/uni_modules/uni-table/package.json new file mode 100644 index 0000000..a52821b --- /dev/null +++ b/uni_modules/uni-table/package.json @@ -0,0 +1,83 @@ +{ + "id": "uni-table", + "displayName": "uni-table 表格", + "version": "1.2.4", + "description": "表格组件,多用于展示多条结构类似的数据,如", + "keywords": [ + "uni-ui", + "uniui", + "table", + "表格" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-datetime-picker"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "n", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-table/readme.md b/uni_modules/uni-table/readme.md new file mode 100644 index 0000000..bb08c79 --- /dev/null +++ b/uni_modules/uni-table/readme.md @@ -0,0 +1,13 @@ + + +## Table 表单 +> 组件名:``uni-table``,代码块: `uTable`。 + +用于展示多条结构类似的数据 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-table) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + diff --git a/uni_modules/zero-loading/changelog.md b/uni_modules/zero-loading/changelog.md new file mode 100644 index 0000000..c8191fe --- /dev/null +++ b/uni_modules/zero-loading/changelog.md @@ -0,0 +1,12 @@ +## 1.2.1(2022-09-09) +增加齿轮动画 type=gear +## 1.2.0(2022-05-27) +1. 增加加载类型-剑气(sword),原子(atom) +2. 默认类型改为 atom +3. 遮罩透明度调整 +## 1.1.1(2022-04-02) +更新使用说明 +## 1.1.0(2022-02-23) +增加 type="love" 的心形加载动画 +## 1.0.0(2022-01-28) +首次发布 diff --git a/uni_modules/zero-loading/components/zero-loading/static/loading-atom.vue b/uni_modules/zero-loading/components/zero-loading/static/loading-atom.vue new file mode 100644 index 0000000..ef922d6 --- /dev/null +++ b/uni_modules/zero-loading/components/zero-loading/static/loading-atom.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/uni_modules/zero-loading/components/zero-loading/zero-loading.vue b/uni_modules/zero-loading/components/zero-loading/zero-loading.vue new file mode 100644 index 0000000..96e9bc1 --- /dev/null +++ b/uni_modules/zero-loading/components/zero-loading/zero-loading.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/uni_modules/zero-loading/package.json b/uni_modules/zero-loading/package.json new file mode 100644 index 0000000..3caf422 --- /dev/null +++ b/uni_modules/zero-loading/package.json @@ -0,0 +1,80 @@ +{ + "id": "zero-loading", + "displayName": "zero-loading(加载动画)", + "version": "1.2.1", + "description": "纯css加载动画, 一个标签元素即可实现炫酷的全屏loading效果", + "keywords": [ + "loading", + "加载动画", + "css动画", + "加载" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "插件不采集任何数据", + "permissions": "无" + }, + "npmurl": "", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "u" + }, + "App": { + "app-vue": "u", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "u", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "u" + }, + "H5-pc": { + "Chrome": "y", + "IE": "u", + "Edge": "u", + "Firefox": "u", + "Safari": "u" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "u", + "字节跳动": "u", + "QQ": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/zero-loading/readme.md b/uni_modules/zero-loading/readme.md new file mode 100644 index 0000000..c8a160e --- /dev/null +++ b/uni_modules/zero-loading/readme.md @@ -0,0 +1,50 @@ +# zero-loading + +## 使用方法 + +导入 `uni_modules` 后直接使用即可 + +提供多种加载动画类型,传入 type 改变 loading 样式,不传默认 circle + +### 全屏使用 + +```html + +``` + +### 局部使用 + +**父元素的 `position` 记得改为 `relative` 哦** + +```html + +``` + +## 参数说明 + +| 参数 | 类型 | 默认值 | 描述 | +| -------- | ------- | ------ | ------------ | +| type | String | atom | 样式 | +| position | String | fixed | 定位方式 | +| zIndex | Number | 9 | | +| mask | Boolean | false | 是否需要遮罩 | + +### type 可选值: + +| type 值 | 描述 | +| -------- | ---- | +| gear | 齿轮 | +| sword | 剑气 | +| atom | 原子 | +| circle | 圆环 | +| love | 爱心 | +| pulse | 脉冲 | +| sun | 太阳 | +| eyes | 眼睛 | +| triangle | 三角 | +| bounce | 弹跳 | + +插件预览: +![code](https://img.jszero.cn/mweb/we_code.jpg) + +> 预览的小程序不一定能及时更新当前插件 diff --git a/uview-ui/LICENSE b/uview-ui/LICENSE new file mode 100644 index 0000000..8e39ead --- /dev/null +++ b/uview-ui/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 www.uviewui.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/uview-ui/README.md b/uview-ui/README.md new file mode 100644 index 0000000..06d5676 --- /dev/null +++ b/uview-ui/README.md @@ -0,0 +1,106 @@ +

+ logo +

+

uView

+

多平台快速开发的UI框架

+ + +## 说明 + +uView UI,是[uni-app](https://uniapp.dcloud.io/)生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水 + +## 特性 + +- 兼容安卓,iOS,微信小程序,H5,QQ小程序,百度小程序,支付宝小程序,头条小程序 +- 60+精选组件,功能丰富,多端兼容,让您快速集成,开箱即用 +- 众多贴心的JS利器,让您飞镖在手,召之即来,百步穿杨 +- 众多的常用页面和布局,让您专注逻辑,事半功倍 +- 详尽的文档支持,现代化的演示效果 +- 按需引入,精简打包体积 + + +## 安装 + +```bash +# npm方式安装 +npm i uview-ui +``` + +## 快速上手 + +1. `main.js`引入uView库 +```js +// main.js +import uView from 'uview-ui'; +Vue.use(uView); +``` + +2. `App.vue`引入基础样式(注意style标签需声明scss属性支持) +```css +/* App.vue */ + +``` + +3. `uni.scss`引入全局scss变量文件 +```css +/* uni.scss */ +@import "uview-ui/theme.scss"; +``` + +4. `pages.json`配置easycom规则(按需引入) + +```js +// pages.json +{ + "easycom": { + // npm安装的方式不需要前面的"@/",下载安装的方式需要"@/" + // npm安装方式 + "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" + // 下载安装方式 + // "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue" + }, + // 此为本身已有的内容 + "pages": [ + // ...... + ] +} +``` + +请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容 + +## 使用方法 +配置easycom规则后,自动按需引入,无需`import`组件,直接引用即可。 + +```html + +``` + +请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容 + +## 链接 + +- [官方文档](https://uviewui.com/) +- [更新日志](https://uviewui.com/components/changelog.html) +- [升级指南](https://uviewui.com/components/changelog.html) +- [关于我们](https://uviewui.com/cooperation/about.html) + +## 预览 + +您可以通过**微信**扫码,查看最佳的演示效果。 +
+
+ + + +## 版权信息 +uView遵循[MIT](https://en.wikipedia.org/wiki/MIT_License)开源协议,意味着您无需支付任何费用,也无需授权,即可将uView应用到您的产品中。 diff --git a/uview-ui/components/u-action-sheet/u-action-sheet.vue b/uview-ui/components/u-action-sheet/u-action-sheet.vue new file mode 100644 index 0000000..722b668 --- /dev/null +++ b/uview-ui/components/u-action-sheet/u-action-sheet.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/uview-ui/components/u-alert-tips/u-alert-tips.vue b/uview-ui/components/u-alert-tips/u-alert-tips.vue new file mode 100644 index 0000000..e81fc37 --- /dev/null +++ b/uview-ui/components/u-alert-tips/u-alert-tips.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue b/uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue new file mode 100644 index 0000000..a48dd54 --- /dev/null +++ b/uview-ui/components/u-avatar-cropper/u-avatar-cropper.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/uview-ui/components/u-avatar-cropper/weCropper.js b/uview-ui/components/u-avatar-cropper/weCropper.js new file mode 100644 index 0000000..df02483 --- /dev/null +++ b/uview-ui/components/u-avatar-cropper/weCropper.js @@ -0,0 +1,1265 @@ +/** + * we-cropper v1.3.9 + * (c) 2020 dlhandsome + * @license MIT + */ +(function(global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.WeCropper = factory()); +}(this, (function() { + 'use strict'; + + var device = void 0; + var TOUCH_STATE = ['touchstarted', 'touchmoved', 'touchended']; + + function firstLetterUpper(str) { + return str.charAt(0).toUpperCase() + str.slice(1) + } + + function setTouchState(instance) { + var arg = [], + len = arguments.length - 1; + while (len-- > 0) arg[len] = arguments[len + 1]; + + TOUCH_STATE.forEach(function(key, i) { + if (arg[i] !== undefined) { + instance[key] = arg[i]; + } + }); + } + + function validator(instance, o) { + Object.defineProperties(instance, o); + } + + function getDevice() { + if (!device) { + device = uni.getSystemInfoSync(); + } + return device + } + + var tmp = {}; + + var ref = getDevice(); + var pixelRatio = ref.pixelRatio; + + var DEFAULT = { + id: { + default: 'cropper', + get: function get() { + return tmp.id + }, + set: function set(value) { + if (typeof(value) !== 'string') { + console.error(("id:" + value + " is invalid")); + } + tmp.id = value; + } + }, + width: { + default: 750, + get: function get() { + return tmp.width + }, + set: function set(value) { + if (typeof(value) !== 'number') { + console.error(("width:" + value + " is invalid")); + } + tmp.width = value; + } + }, + height: { + default: 750, + get: function get() { + return tmp.height + }, + set: function set(value) { + if (typeof(value) !== 'number') { + console.error(("height:" + value + " is invalid")); + } + tmp.height = value; + } + }, + pixelRatio: { + default: pixelRatio, + get: function get() { + return tmp.pixelRatio + }, + set: function set(value) { + if (typeof(value) !== 'number') { + console.error(("pixelRatio:" + value + " is invalid")); + } + tmp.pixelRatio = value; + } + }, + scale: { + default: 2.5, + get: function get() { + return tmp.scale + }, + set: function set(value) { + if (typeof(value) !== 'number') { + console.error(("scale:" + value + " is invalid")); + } + tmp.scale = value; + } + }, + zoom: { + default: 5, + get: function get() { + return tmp.zoom + }, + set: function set(value) { + if (typeof(value) !== 'number') { + console.error(("zoom:" + value + " is invalid")); + } else if (value < 0 || value > 10) { + console.error("zoom should be ranged in 0 ~ 10"); + } + tmp.zoom = value; + } + }, + src: { + default: '', + get: function get() { + return tmp.src + }, + set: function set(value) { + if (typeof(value) !== 'string') { + console.error(("src:" + value + " is invalid")); + } + tmp.src = value; + } + }, + cut: { + default: {}, + get: function get() { + return tmp.cut + }, + set: function set(value) { + if (typeof(value) !== 'object') { + console.error(("cut:" + value + " is invalid")); + } + tmp.cut = value; + } + }, + boundStyle: { + default: {}, + get: function get() { + return tmp.boundStyle + }, + set: function set(value) { + if (typeof(value) !== 'object') { + console.error(("boundStyle:" + value + " is invalid")); + } + tmp.boundStyle = value; + } + }, + onReady: { + default: null, + get: function get() { + return tmp.ready + }, + set: function set(value) { + tmp.ready = value; + } + }, + onBeforeImageLoad: { + default: null, + get: function get() { + return tmp.beforeImageLoad + }, + set: function set(value) { + tmp.beforeImageLoad = value; + } + }, + onImageLoad: { + default: null, + get: function get() { + return tmp.imageLoad + }, + set: function set(value) { + tmp.imageLoad = value; + } + }, + onBeforeDraw: { + default: null, + get: function get() { + return tmp.beforeDraw + }, + set: function set(value) { + tmp.beforeDraw = value; + } + } + }; + + var ref$1 = getDevice(); + var windowWidth = ref$1.windowWidth; + + function prepare() { + var self = this; + + // v1.4.0 版本中将不再自动绑定we-cropper实例 + self.attachPage = function() { + var pages = getCurrentPages(); + // 获取到当前page上下文 + var pageContext = pages[pages.length - 1]; + // 把this依附在Page上下文的wecropper属性上,便于在page钩子函数中访问 + Object.defineProperty(pageContext, 'wecropper', { + get: function get() { + console.warn( + 'Instance will not be automatically bound to the page after v1.4.0\n\n' + + 'Please use a custom instance name instead\n\n' + + 'Example: \n' + + 'this.mycropper = new WeCropper(options)\n\n' + + '// ...\n' + + 'this.mycropper.getCropperImage()' + ); + return self + }, + configurable: true + }); + }; + + self.createCtx = function() { + var id = self.id; + var targetId = self.targetId; + + if (id) { + self.ctx = self.ctx || uni.createCanvasContext(id); + self.targetCtx = self.targetCtx || uni.createCanvasContext(targetId); + } else { + console.error("constructor: create canvas context failed, 'id' must be valuable"); + } + }; + + self.deviceRadio = windowWidth / 750; + } + + var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== + 'undefined' ? self : {}; + + + + + + function createCommonjsModule(fn, module) { + return module = { + exports: {} + }, fn(module, module.exports), module.exports; + } + + var tools = createCommonjsModule(function(module, exports) { + /** + * String type check + */ + exports.isStr = function(v) { + return typeof v === 'string'; + }; + /** + * Number type check + */ + exports.isNum = function(v) { + return typeof v === 'number'; + }; + /** + * Array type check + */ + exports.isArr = Array.isArray; + /** + * undefined type check + */ + exports.isUndef = function(v) { + return v === undefined; + }; + + exports.isTrue = function(v) { + return v === true; + }; + + exports.isFalse = function(v) { + return v === false; + }; + /** + * Function type check + */ + exports.isFunc = function(v) { + return typeof v === 'function'; + }; + /** + * Quick object check - this is primarily used to tell + * Objects from primitive values when we know the value + * is a JSON-compliant type. + */ + exports.isObj = exports.isObject = function(obj) { + return obj !== null && typeof obj === 'object' + }; + + /** + * Strict object type check. Only returns true + * for plain JavaScript objects. + */ + var _toString = Object.prototype.toString; + exports.isPlainObject = function(obj) { + return _toString.call(obj) === '[object Object]' + }; + + /** + * Check whether the object has the property. + */ + var hasOwnProperty = Object.prototype.hasOwnProperty; + exports.hasOwn = function(obj, key) { + return hasOwnProperty.call(obj, key) + }; + + /** + * Perform no operation. + * Stubbing args to make Flow happy without leaving useless transpiled code + * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/) + */ + exports.noop = function(a, b, c) {}; + + /** + * Check if val is a valid array index. + */ + exports.isValidArrayIndex = function(val) { + var n = parseFloat(String(val)); + return n >= 0 && Math.floor(n) === n && isFinite(val) + }; + }); + + var tools_7 = tools.isFunc; + var tools_10 = tools.isPlainObject; + + var EVENT_TYPE = ['ready', 'beforeImageLoad', 'beforeDraw', 'imageLoad']; + + function observer() { + var self = this; + + self.on = function(event, fn) { + if (EVENT_TYPE.indexOf(event) > -1) { + if (tools_7(fn)) { + event === 'ready' ? + fn(self) : + self[("on" + (firstLetterUpper(event)))] = fn; + } + } else { + console.error(("event: " + event + " is invalid")); + } + return self + }; + } + + function wxPromise(fn) { + return function(obj) { + var args = [], + len = arguments.length - 1; + while (len-- > 0) args[len] = arguments[len + 1]; + + if (obj === void 0) obj = {}; + return new Promise(function(resolve, reject) { + obj.success = function(res) { + resolve(res); + }; + obj.fail = function(err) { + reject(err); + }; + fn.apply(void 0, [obj].concat(args)); + }) + } + } + + function draw(ctx, reserve) { + if (reserve === void 0) reserve = false; + + return new Promise(function(resolve) { + ctx.draw(reserve, resolve); + }) + } + + var getImageInfo = wxPromise(uni.getImageInfo); + + var canvasToTempFilePath = wxPromise(uni.canvasToTempFilePath); + + var base64 = createCommonjsModule(function(module, exports) { + /*! http://mths.be/base64 v0.1.0 by @mathias | MIT license */ + (function(root) { + + // Detect free variables `exports`. + var freeExports = 'object' == 'object' && exports; + + // Detect free variable `module`. + var freeModule = 'object' == 'object' && module && + module.exports == freeExports && module; + + // Detect free variable `global`, from Node.js or Browserified code, and use + // it as `root`. + var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal; + if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) { + root = freeGlobal; + } + + /*--------------------------------------------------------------------------*/ + + var InvalidCharacterError = function(message) { + this.message = message; + }; + InvalidCharacterError.prototype = new Error; + InvalidCharacterError.prototype.name = 'InvalidCharacterError'; + + var error = function(message) { + // Note: the error messages used throughout this file match those used by + // the native `atob`/`btoa` implementation in Chromium. + throw new InvalidCharacterError(message); + }; + + var TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + // http://whatwg.org/html/common-microsyntaxes.html#space-character + var REGEX_SPACE_CHARACTERS = /[\t\n\f\r ]/g; + + // `decode` is designed to be fully compatible with `atob` as described in the + // HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob + // The optimized base64-decoding algorithm used is based on @atk’s excellent + // implementation. https://gist.github.com/atk/1020396 + var decode = function(input) { + input = String(input) + .replace(REGEX_SPACE_CHARACTERS, ''); + var length = input.length; + if (length % 4 == 0) { + input = input.replace(/==?$/, ''); + length = input.length; + } + if ( + length % 4 == 1 || + // http://whatwg.org/C#alphanumeric-ascii-characters + /[^+a-zA-Z0-9/]/.test(input) + ) { + error( + 'Invalid character: the string to be decoded is not correctly encoded.' + ); + } + var bitCounter = 0; + var bitStorage; + var buffer; + var output = ''; + var position = -1; + while (++position < length) { + buffer = TABLE.indexOf(input.charAt(position)); + bitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer; + // Unless this is the first of a group of 4 characters… + if (bitCounter++ % 4) { + // …convert the first 8 bits to a single ASCII character. + output += String.fromCharCode( + 0xFF & bitStorage >> (-2 * bitCounter & 6) + ); + } + } + return output; + }; + + // `encode` is designed to be fully compatible with `btoa` as described in the + // HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa + var encode = function(input) { + input = String(input); + if (/[^\0-\xFF]/.test(input)) { + // Note: no need to special-case astral symbols here, as surrogates are + // matched, and the input is supposed to only contain ASCII anyway. + error( + 'The string to be encoded contains characters outside of the ' + + 'Latin1 range.' + ); + } + var padding = input.length % 3; + var output = ''; + var position = -1; + var a; + var b; + var c; + var buffer; + // Make sure any padding is handled outside of the loop. + var length = input.length - padding; + + while (++position < length) { + // Read three bytes, i.e. 24 bits. + a = input.charCodeAt(position) << 16; + b = input.charCodeAt(++position) << 8; + c = input.charCodeAt(++position); + buffer = a + b + c; + // Turn the 24 bits into four chunks of 6 bits each, and append the + // matching character for each of them to the output. + output += ( + TABLE.charAt(buffer >> 18 & 0x3F) + + TABLE.charAt(buffer >> 12 & 0x3F) + + TABLE.charAt(buffer >> 6 & 0x3F) + + TABLE.charAt(buffer & 0x3F) + ); + } + + if (padding == 2) { + a = input.charCodeAt(position) << 8; + b = input.charCodeAt(++position); + buffer = a + b; + output += ( + TABLE.charAt(buffer >> 10) + + TABLE.charAt((buffer >> 4) & 0x3F) + + TABLE.charAt((buffer << 2) & 0x3F) + + '=' + ); + } else if (padding == 1) { + buffer = input.charCodeAt(position); + output += ( + TABLE.charAt(buffer >> 2) + + TABLE.charAt((buffer << 4) & 0x3F) + + '==' + ); + } + + return output; + }; + + var base64 = { + 'encode': encode, + 'decode': decode, + 'version': '0.1.0' + }; + + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + typeof undefined == 'function' && + typeof undefined.amd == 'object' && + undefined.amd + ) { + undefined(function() { + return base64; + }); + } else if (freeExports && !freeExports.nodeType) { + if (freeModule) { // in Node.js or RingoJS v0.8.0+ + freeModule.exports = base64; + } else { // in Narwhal or RingoJS v0.7.0- + for (var key in base64) { + base64.hasOwnProperty(key) && (freeExports[key] = base64[key]); + } + } + } else { // in Rhino or a web browser + root.base64 = base64; + } + + }(commonjsGlobal)); + }); + + function makeURI(strData, type) { + return 'data:' + type + ';base64,' + strData + } + + function fixType(type) { + type = type.toLowerCase().replace(/jpg/i, 'jpeg'); + var r = type.match(/png|jpeg|bmp|gif/)[0]; + return 'image/' + r + } + + function encodeData(data) { + var str = ''; + if (typeof data === 'string') { + str = data; + } else { + for (var i = 0; i < data.length; i++) { + str += String.fromCharCode(data[i]); + } + } + return base64.encode(str) + } + + /** + * 获取图像区域隐含的像素数据 + * @param canvasId canvas标识 + * @param x 将要被提取的图像数据矩形区域的左上角 x 坐标 + * @param y 将要被提取的图像数据矩形区域的左上角 y 坐标 + * @param width 将要被提取的图像数据矩形区域的宽度 + * @param height 将要被提取的图像数据矩形区域的高度 + * @param done 完成回调 + */ + function getImageData(canvasId, x, y, width, height, done) { + uni.canvasGetImageData({ + canvasId: canvasId, + x: x, + y: y, + width: width, + height: height, + success: function success(res) { + done(res, null); + }, + fail: function fail(res) { + done(null, res); + } + }); + } + + /** + * 生成bmp格式图片 + * 按照规则生成图片响应头和响应体 + * @param oData 用来描述 canvas 区域隐含的像素数据 { data, width, height } = oData + * @returns {*} base64字符串 + */ + function genBitmapImage(oData) { + // + // BITMAPFILEHEADER: http://msdn.microsoft.com/en-us/library/windows/desktop/dd183374(v=vs.85).aspx + // BITMAPINFOHEADER: http://msdn.microsoft.com/en-us/library/dd183376.aspx + // + var biWidth = oData.width; + var biHeight = oData.height; + var biSizeImage = biWidth * biHeight * 3; + var bfSize = biSizeImage + 54; // total header size = 54 bytes + + // + // typedef struct tagBITMAPFILEHEADER { + // WORD bfType; + // DWORD bfSize; + // WORD bfReserved1; + // WORD bfReserved2; + // DWORD bfOffBits; + // } BITMAPFILEHEADER; + // + var BITMAPFILEHEADER = [ + // WORD bfType -- The file type signature; must be "BM" + 0x42, 0x4D, + // DWORD bfSize -- The size, in bytes, of the bitmap file + bfSize & 0xff, bfSize >> 8 & 0xff, bfSize >> 16 & 0xff, bfSize >> 24 & 0xff, + // WORD bfReserved1 -- Reserved; must be zero + 0, 0, + // WORD bfReserved2 -- Reserved; must be zero + 0, 0, + // DWORD bfOffBits -- The offset, in bytes, from the beginning of the BITMAPFILEHEADER structure to the bitmap bits. + 54, 0, 0, 0 + ]; + + // + // typedef struct tagBITMAPINFOHEADER { + // DWORD biSize; + // LONG biWidth; + // LONG biHeight; + // WORD biPlanes; + // WORD biBitCount; + // DWORD biCompression; + // DWORD biSizeImage; + // LONG biXPelsPerMeter; + // LONG biYPelsPerMeter; + // DWORD biClrUsed; + // DWORD biClrImportant; + // } BITMAPINFOHEADER, *PBITMAPINFOHEADER; + // + var BITMAPINFOHEADER = [ + // DWORD biSize -- The number of bytes required by the structure + 40, 0, 0, 0, + // LONG biWidth -- The width of the bitmap, in pixels + biWidth & 0xff, biWidth >> 8 & 0xff, biWidth >> 16 & 0xff, biWidth >> 24 & 0xff, + // LONG biHeight -- The height of the bitmap, in pixels + biHeight & 0xff, biHeight >> 8 & 0xff, biHeight >> 16 & 0xff, biHeight >> 24 & 0xff, + // WORD biPlanes -- The number of planes for the target device. This value must be set to 1 + 1, 0, + // WORD biBitCount -- The number of bits-per-pixel, 24 bits-per-pixel -- the bitmap + // has a maximum of 2^24 colors (16777216, Truecolor) + 24, 0, + // DWORD biCompression -- The type of compression, BI_RGB (code 0) -- uncompressed + 0, 0, 0, 0, + // DWORD biSizeImage -- The size, in bytes, of the image. This may be set to zero for BI_RGB bitmaps + biSizeImage & 0xff, biSizeImage >> 8 & 0xff, biSizeImage >> 16 & 0xff, biSizeImage >> 24 & 0xff, + // LONG biXPelsPerMeter, unused + 0, 0, 0, 0, + // LONG biYPelsPerMeter, unused + 0, 0, 0, 0, + // DWORD biClrUsed, the number of color indexes of palette, unused + 0, 0, 0, 0, + // DWORD biClrImportant, unused + 0, 0, 0, 0 + ]; + + var iPadding = (4 - ((biWidth * 3) % 4)) % 4; + + var aImgData = oData.data; + + var strPixelData = ''; + var biWidth4 = biWidth << 2; + var y = biHeight; + var fromCharCode = String.fromCharCode; + + do { + var iOffsetY = biWidth4 * (y - 1); + var strPixelRow = ''; + for (var x = 0; x < biWidth; x++) { + var iOffsetX = x << 2; + strPixelRow += fromCharCode(aImgData[iOffsetY + iOffsetX + 2]) + + fromCharCode(aImgData[iOffsetY + iOffsetX + 1]) + + fromCharCode(aImgData[iOffsetY + iOffsetX]); + } + + for (var c = 0; c < iPadding; c++) { + strPixelRow += String.fromCharCode(0); + } + + strPixelData += strPixelRow; + } while (--y) + + var strEncoded = encodeData(BITMAPFILEHEADER.concat(BITMAPINFOHEADER)) + encodeData(strPixelData); + + return strEncoded + } + + /** + * 转换为图片base64 + * @param canvasId canvas标识 + * @param x 将要被提取的图像数据矩形区域的左上角 x 坐标 + * @param y 将要被提取的图像数据矩形区域的左上角 y 坐标 + * @param width 将要被提取的图像数据矩形区域的宽度 + * @param height 将要被提取的图像数据矩形区域的高度 + * @param type 转换图片类型 + * @param done 完成回调 + */ + function convertToImage(canvasId, x, y, width, height, type, done) { + if (done === void 0) done = function() {}; + + if (type === undefined) { + type = 'png'; + } + type = fixType(type); + if (/bmp/.test(type)) { + getImageData(canvasId, x, y, width, height, function(data, err) { + var strData = genBitmapImage(data); + tools_7(done) && done(makeURI(strData, 'image/' + type), err); + }); + } else { + console.error('暂不支持生成\'' + type + '\'类型的base64图片'); + } + } + + var CanvasToBase64 = { + convertToImage: convertToImage, + // convertToPNG: function (width, height, done) { + // return convertToImage(width, height, 'png', done) + // }, + // convertToJPEG: function (width, height, done) { + // return convertToImage(width, height, 'jpeg', done) + // }, + // convertToGIF: function (width, height, done) { + // return convertToImage(width, height, 'gif', done) + // }, + convertToBMP: function(ref, done) { + if (ref === void 0) ref = {}; + var canvasId = ref.canvasId; + var x = ref.x; + var y = ref.y; + var width = ref.width; + var height = ref.height; + if (done === void 0) done = function() {}; + + return convertToImage(canvasId, x, y, width, height, 'bmp', done) + } + }; + + function methods() { + var self = this; + + var boundWidth = self.width; // 裁剪框默认宽度,即整个画布宽度 + var boundHeight = self.height; // 裁剪框默认高度,即整个画布高度 + + var id = self.id; + var targetId = self.targetId; + var pixelRatio = self.pixelRatio; + + var ref = self.cut; + var x = ref.x; + if (x === void 0) x = 0; + var y = ref.y; + if (y === void 0) y = 0; + var width = ref.width; + if (width === void 0) width = boundWidth; + var height = ref.height; + if (height === void 0) height = boundHeight; + + self.updateCanvas = function(done) { + if (self.croperTarget) { + // 画布绘制图片 + self.ctx.drawImage( + self.croperTarget, + self.imgLeft, + self.imgTop, + self.scaleWidth, + self.scaleHeight + ); + } + tools_7(self.onBeforeDraw) && self.onBeforeDraw(self.ctx, self); + + self.setBoundStyle(self.boundStyle); // 设置边界样式 + + self.ctx.draw(false, done); + return self + }; + + self.pushOrigin = self.pushOrign = function(src) { + self.src = src; + + tools_7(self.onBeforeImageLoad) && self.onBeforeImageLoad(self.ctx, self); + + return getImageInfo({ + src: src + }) + .then(function(res) { + var innerAspectRadio = res.width / res.height; + var customAspectRadio = width / height; + + self.croperTarget = res.path; + + if (innerAspectRadio < customAspectRadio) { + self.rectX = x; + self.baseWidth = width; + self.baseHeight = width / innerAspectRadio; + self.rectY = y - Math.abs((height - self.baseHeight) / 2); + } else { + self.rectY = y; + self.baseWidth = height * innerAspectRadio; + self.baseHeight = height; + self.rectX = x - Math.abs((width - self.baseWidth) / 2); + } + + self.imgLeft = self.rectX; + self.imgTop = self.rectY; + self.scaleWidth = self.baseWidth; + self.scaleHeight = self.baseHeight; + + self.update(); + + return new Promise(function(resolve) { + self.updateCanvas(resolve); + }) + }) + .then(function() { + tools_7(self.onImageLoad) && self.onImageLoad(self.ctx, self); + }) + }; + + self.removeImage = function() { + self.src = ''; + self.croperTarget = ''; + return draw(self.ctx) + }; + + self.getCropperBase64 = function(done) { + if (done === void 0) done = function() {}; + + CanvasToBase64.convertToBMP({ + canvasId: id, + x: x, + y: y, + width: width, + height: height + }, done); + }; + + self.getCropperImage = function(opt, fn) { + var customOptions = opt; + + var canvasOptions = { + canvasId: id, + x: x, + y: y, + width: width, + height: height + }; + + var task = function() { + return Promise.resolve(); + }; + + if ( + tools_10(customOptions) && + customOptions.original + ) { + // original mode + task = function() { + self.targetCtx.drawImage( + self.croperTarget, + self.imgLeft * pixelRatio, + self.imgTop * pixelRatio, + self.scaleWidth * pixelRatio, + self.scaleHeight * pixelRatio + ); + + canvasOptions = { + canvasId: targetId, + x: x * pixelRatio, + y: y * pixelRatio, + width: width * pixelRatio, + height: height * pixelRatio + }; + + return draw(self.targetCtx) + }; + } + + return task() + .then(function() { + if (tools_10(customOptions)) { + canvasOptions = Object.assign({}, canvasOptions, customOptions); + } + + if (tools_7(customOptions)) { + fn = customOptions; + } + + var arg = canvasOptions.componentContext ? + [canvasOptions, canvasOptions.componentContext] : + [canvasOptions]; + + return canvasToTempFilePath.apply(null, arg) + }) + .then(function(res) { + var tempFilePath = res.tempFilePath; + + return tools_7(fn) ? + fn.call(self, tempFilePath, null) : + tempFilePath + }) + .catch(function(err) { + if (tools_7(fn)) { + fn.call(self, null, err); + } else { + throw err + } + }) + }; + } + + /** + * 获取最新缩放值 + * @param oldScale 上一次触摸结束后的缩放值 + * @param oldDistance 上一次触摸结束后的双指距离 + * @param zoom 缩放系数 + * @param touch0 第一指touch对象 + * @param touch1 第二指touch对象 + * @returns {*} + */ + var getNewScale = function(oldScale, oldDistance, zoom, touch0, touch1) { + var xMove, yMove, newDistance; + // 计算二指最新距离 + xMove = Math.round(touch1.x - touch0.x); + yMove = Math.round(touch1.y - touch0.y); + newDistance = Math.round(Math.sqrt(xMove * xMove + yMove * yMove)); + + return oldScale + 0.001 * zoom * (newDistance - oldDistance) + }; + + function update() { + var self = this; + + if (!self.src) { + return + } + + self.__oneTouchStart = function(touch) { + self.touchX0 = Math.round(touch.x); + self.touchY0 = Math.round(touch.y); + }; + + self.__oneTouchMove = function(touch) { + var xMove, yMove; + // 计算单指移动的距离 + if (self.touchended) { + return self.updateCanvas() + } + xMove = Math.round(touch.x - self.touchX0); + yMove = Math.round(touch.y - self.touchY0); + + var imgLeft = Math.round(self.rectX + xMove); + var imgTop = Math.round(self.rectY + yMove); + + self.outsideBound(imgLeft, imgTop); + + self.updateCanvas(); + }; + + self.__twoTouchStart = function(touch0, touch1) { + var xMove, yMove, oldDistance; + + self.touchX1 = Math.round(self.rectX + self.scaleWidth / 2); + self.touchY1 = Math.round(self.rectY + self.scaleHeight / 2); + + // 计算两指距离 + xMove = Math.round(touch1.x - touch0.x); + yMove = Math.round(touch1.y - touch0.y); + oldDistance = Math.round(Math.sqrt(xMove * xMove + yMove * yMove)); + + self.oldDistance = oldDistance; + }; + + self.__twoTouchMove = function(touch0, touch1) { + var oldScale = self.oldScale; + var oldDistance = self.oldDistance; + var scale = self.scale; + var zoom = self.zoom; + + self.newScale = getNewScale(oldScale, oldDistance, zoom, touch0, touch1); + + // 设定缩放范围 + self.newScale <= 1 && (self.newScale = 1); + self.newScale >= scale && (self.newScale = scale); + + self.scaleWidth = Math.round(self.newScale * self.baseWidth); + self.scaleHeight = Math.round(self.newScale * self.baseHeight); + var imgLeft = Math.round(self.touchX1 - self.scaleWidth / 2); + var imgTop = Math.round(self.touchY1 - self.scaleHeight / 2); + + self.outsideBound(imgLeft, imgTop); + + self.updateCanvas(); + }; + + self.__xtouchEnd = function() { + self.oldScale = self.newScale; + self.rectX = self.imgLeft; + self.rectY = self.imgTop; + }; + } + + var handle = { + // 图片手势初始监测 + touchStart: function touchStart(e) { + var self = this; + var ref = e.touches; + var touch0 = ref[0]; + var touch1 = ref[1]; + + if (!self.src) { + return + } + + setTouchState(self, true, null, null); + + // 计算第一个触摸点的位置,并参照改点进行缩放 + self.__oneTouchStart(touch0); + + // 两指手势触发 + if (e.touches.length >= 2) { + self.__twoTouchStart(touch0, touch1); + } + }, + + // 图片手势动态缩放 + touchMove: function touchMove(e) { + var self = this; + var ref = e.touches; + var touch0 = ref[0]; + var touch1 = ref[1]; + + if (!self.src) { + return + } + + setTouchState(self, null, true); + + // 单指手势时触发 + if (e.touches.length === 1) { + self.__oneTouchMove(touch0); + } + // 两指手势触发 + if (e.touches.length >= 2) { + self.__twoTouchMove(touch0, touch1); + } + }, + + touchEnd: function touchEnd(e) { + var self = this; + + if (!self.src) { + return + } + + setTouchState(self, false, false, true); + self.__xtouchEnd(); + } + }; + + function cut() { + var self = this; + var boundWidth = self.width; // 裁剪框默认宽度,即整个画布宽度 + var boundHeight = self.height; + // 裁剪框默认高度,即整个画布高度 + var ref = self.cut; + var x = ref.x; + if (x === void 0) x = 0; + var y = ref.y; + if (y === void 0) y = 0; + var width = ref.width; + if (width === void 0) width = boundWidth; + var height = ref.height; + if (height === void 0) height = boundHeight; + + /** + * 设置边界 + * @param imgLeft 图片左上角横坐标值 + * @param imgTop 图片左上角纵坐标值 + */ + self.outsideBound = function(imgLeft, imgTop) { + self.imgLeft = imgLeft >= x ? + x : + self.scaleWidth + imgLeft - x <= width ? + x + width - self.scaleWidth : + imgLeft; + + self.imgTop = imgTop >= y ? + y : + self.scaleHeight + imgTop - y <= height ? + y + height - self.scaleHeight : + imgTop; + }; + + /** + * 设置边界样式 + * @param color 边界颜色 + */ + self.setBoundStyle = function(ref) { + if (ref === void 0) ref = {}; + var color = ref.color; + if (color === void 0) color = '#04b00f'; + var mask = ref.mask; + if (mask === void 0) mask = 'rgba(0, 0, 0, 0.3)'; + var lineWidth = ref.lineWidth; + if (lineWidth === void 0) lineWidth = 1; + + var half = lineWidth / 2; + var boundOption = [{ + start: { + x: x - half, + y: y + 10 - half + }, + step1: { + x: x - half, + y: y - half + }, + step2: { + x: x + 10 - half, + y: y - half + } + }, + { + start: { + x: x - half, + y: y + height - 10 + half + }, + step1: { + x: x - half, + y: y + height + half + }, + step2: { + x: x + 10 - half, + y: y + height + half + } + }, + { + start: { + x: x + width - 10 + half, + y: y - half + }, + step1: { + x: x + width + half, + y: y - half + }, + step2: { + x: x + width + half, + y: y + 10 - half + } + }, + { + start: { + x: x + width + half, + y: y + height - 10 + half + }, + step1: { + x: x + width + half, + y: y + height + half + }, + step2: { + x: x + width - 10 + half, + y: y + height + half + } + } + ]; + + // 绘制半透明层 + self.ctx.beginPath(); + self.ctx.setFillStyle(mask); + self.ctx.fillRect(0, 0, x, boundHeight); + self.ctx.fillRect(x, 0, width, y); + self.ctx.fillRect(x, y + height, width, boundHeight - y - height); + self.ctx.fillRect(x + width, 0, boundWidth - x - width, boundHeight); + self.ctx.fill(); + + boundOption.forEach(function(op) { + self.ctx.beginPath(); + self.ctx.setStrokeStyle(color); + self.ctx.setLineWidth(lineWidth); + self.ctx.moveTo(op.start.x, op.start.y); + self.ctx.lineTo(op.step1.x, op.step1.y); + self.ctx.lineTo(op.step2.x, op.step2.y); + self.ctx.stroke(); + }); + }; + } + + var version = "1.3.9"; + + var WeCropper = function WeCropper(params) { + var self = this; + var _default = {}; + + validator(self, DEFAULT); + + Object.keys(DEFAULT).forEach(function(key) { + _default[key] = DEFAULT[key].default; + }); + Object.assign(self, _default, params); + + self.prepare(); + self.attachPage(); + self.createCtx(); + self.observer(); + self.cutt(); + self.methods(); + self.init(); + self.update(); + + return self + }; + + WeCropper.prototype.init = function init() { + var self = this; + var src = self.src; + + self.version = version; + + typeof self.onReady === 'function' && self.onReady(self.ctx, self); + + if (src) { + self.pushOrign(src); + } else { + self.updateCanvas(); + } + setTouchState(self, false, false, false); + + self.oldScale = 1; + self.newScale = 1; + + return self + }; + + Object.assign(WeCropper.prototype, handle); + + WeCropper.prototype.prepare = prepare; + WeCropper.prototype.observer = observer; + WeCropper.prototype.methods = methods; + WeCropper.prototype.cutt = cut; + WeCropper.prototype.update = update; + + return WeCropper; + +}))); diff --git a/uview-ui/components/u-avatar/u-avatar.vue b/uview-ui/components/u-avatar/u-avatar.vue new file mode 100644 index 0000000..289b9b0 --- /dev/null +++ b/uview-ui/components/u-avatar/u-avatar.vue @@ -0,0 +1,244 @@ + + + + + diff --git a/uview-ui/components/u-back-top/u-back-top.vue b/uview-ui/components/u-back-top/u-back-top.vue new file mode 100644 index 0000000..7970fc7 --- /dev/null +++ b/uview-ui/components/u-back-top/u-back-top.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/uview-ui/components/u-badge/u-badge.vue b/uview-ui/components/u-badge/u-badge.vue new file mode 100644 index 0000000..e85b133 --- /dev/null +++ b/uview-ui/components/u-badge/u-badge.vue @@ -0,0 +1,216 @@ + + + + + \ No newline at end of file diff --git a/uview-ui/components/u-button/u-button.vue b/uview-ui/components/u-button/u-button.vue new file mode 100644 index 0000000..82c3a6f --- /dev/null +++ b/uview-ui/components/u-button/u-button.vue @@ -0,0 +1,596 @@ + + + + + diff --git a/uview-ui/components/u-calendar/u-calendar.vue b/uview-ui/components/u-calendar/u-calendar.vue new file mode 100644 index 0000000..2b30184 --- /dev/null +++ b/uview-ui/components/u-calendar/u-calendar.vue @@ -0,0 +1,639 @@ + + + + \ No newline at end of file diff --git a/uview-ui/components/u-car-keyboard/u-car-keyboard.vue b/uview-ui/components/u-car-keyboard/u-car-keyboard.vue new file mode 100644 index 0000000..84b1467 --- /dev/null +++ b/uview-ui/components/u-car-keyboard/u-car-keyboard.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/uview-ui/components/u-card/u-card.vue b/uview-ui/components/u-card/u-card.vue new file mode 100644 index 0000000..a3cb2aa --- /dev/null +++ b/uview-ui/components/u-card/u-card.vue @@ -0,0 +1,299 @@ + + + + + diff --git a/uview-ui/components/u-cell-group/u-cell-group.vue b/uview-ui/components/u-cell-group/u-cell-group.vue new file mode 100644 index 0000000..3fbca72 --- /dev/null +++ b/uview-ui/components/u-cell-group/u-cell-group.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/uview-ui/components/u-cell-item/u-cell-item.vue b/uview-ui/components/u-cell-item/u-cell-item.vue new file mode 100644 index 0000000..10d9b20 --- /dev/null +++ b/uview-ui/components/u-cell-item/u-cell-item.vue @@ -0,0 +1,316 @@ + + + + + diff --git a/uview-ui/components/u-checkbox-group/u-checkbox-group.vue b/uview-ui/components/u-checkbox-group/u-checkbox-group.vue new file mode 100644 index 0000000..6a149b3 --- /dev/null +++ b/uview-ui/components/u-checkbox-group/u-checkbox-group.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/uview-ui/components/u-checkbox/u-checkbox.vue b/uview-ui/components/u-checkbox/u-checkbox.vue new file mode 100644 index 0000000..9414461 --- /dev/null +++ b/uview-ui/components/u-checkbox/u-checkbox.vue @@ -0,0 +1,284 @@ + + + + + diff --git a/uview-ui/components/u-circle-progress/u-circle-progress.vue b/uview-ui/components/u-circle-progress/u-circle-progress.vue new file mode 100644 index 0000000..46e7c18 --- /dev/null +++ b/uview-ui/components/u-circle-progress/u-circle-progress.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/uview-ui/components/u-circle-progress/u-line-progress/u-line-progress.vue b/uview-ui/components/u-circle-progress/u-line-progress/u-line-progress.vue new file mode 100644 index 0000000..77e2da2 --- /dev/null +++ b/uview-ui/components/u-circle-progress/u-line-progress/u-line-progress.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/uview-ui/components/u-col/u-col.vue b/uview-ui/components/u-col/u-col.vue new file mode 100644 index 0000000..3b6cc64 --- /dev/null +++ b/uview-ui/components/u-col/u-col.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/uview-ui/components/u-collapse-item/u-collapse-item.vue b/uview-ui/components/u-collapse-item/u-collapse-item.vue new file mode 100644 index 0000000..ed11778 --- /dev/null +++ b/uview-ui/components/u-collapse-item/u-collapse-item.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/uview-ui/components/u-collapse/u-collapse.vue b/uview-ui/components/u-collapse/u-collapse.vue new file mode 100644 index 0000000..8572957 --- /dev/null +++ b/uview-ui/components/u-collapse/u-collapse.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/uview-ui/components/u-column-notice/u-column-notice.vue b/uview-ui/components/u-column-notice/u-column-notice.vue new file mode 100644 index 0000000..dd8bd31 --- /dev/null +++ b/uview-ui/components/u-column-notice/u-column-notice.vue @@ -0,0 +1,237 @@ + + + + + diff --git a/uview-ui/components/u-count-down/u-count-down.vue b/uview-ui/components/u-count-down/u-count-down.vue new file mode 100644 index 0000000..7285d67 --- /dev/null +++ b/uview-ui/components/u-count-down/u-count-down.vue @@ -0,0 +1,318 @@ + + + + + diff --git a/uview-ui/components/u-count-to/u-count-to.vue b/uview-ui/components/u-count-to/u-count-to.vue new file mode 100644 index 0000000..053dc5f --- /dev/null +++ b/uview-ui/components/u-count-to/u-count-to.vue @@ -0,0 +1,241 @@ + + + + + diff --git a/uview-ui/components/u-divider/u-divider.vue b/uview-ui/components/u-divider/u-divider.vue new file mode 100644 index 0000000..6f8d7e6 --- /dev/null +++ b/uview-ui/components/u-divider/u-divider.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/uview-ui/components/u-dropdown-item/u-dropdown-item.vue b/uview-ui/components/u-dropdown-item/u-dropdown-item.vue new file mode 100644 index 0000000..ba60d8f --- /dev/null +++ b/uview-ui/components/u-dropdown-item/u-dropdown-item.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/uview-ui/components/u-dropdown/u-dropdown.vue b/uview-ui/components/u-dropdown/u-dropdown.vue new file mode 100644 index 0000000..6bf5cf4 --- /dev/null +++ b/uview-ui/components/u-dropdown/u-dropdown.vue @@ -0,0 +1,302 @@ + + + + + diff --git a/uview-ui/components/u-empty/u-empty.vue b/uview-ui/components/u-empty/u-empty.vue new file mode 100644 index 0000000..2c77b24 --- /dev/null +++ b/uview-ui/components/u-empty/u-empty.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/uview-ui/components/u-field/u-field.vue b/uview-ui/components/u-field/u-field.vue new file mode 100644 index 0000000..b562798 --- /dev/null +++ b/uview-ui/components/u-field/u-field.vue @@ -0,0 +1,384 @@ +