From e5721eaf9f03f9bf774dcd3f5fb02c4bec864fae Mon Sep 17 00:00:00 2001 From: kola-web Date: Fri, 17 Jul 2026 14:37:45 +0800 Subject: [PATCH] first commit --- .editorconfig | 12 + .gitignore | 5 + .neoconf.json | 10 + .prettierrc | 28 + README.md | 50 + babel.config.json | 11 + dist.nu | 5 + dist.ps1 | 10 + dist.sh | 5 + eslint.config.mjs | 29 + package.json | 32 + pnpm-lock.yaml | 3857 + project.config.json | 76 + project.private.config.json | 162 + src/api/request.ts | 82 + src/app.json | 72 + src/app.scss | 35 + src/app.ts | 253 + src/components/calendar/core.js | 144 + src/components/calendar/helper.js | 12 + src/components/calendar/index.d.ts | 1 + src/components/calendar/index.js | 258 + src/components/calendar/index.json | 3 + src/components/calendar/index.wxml | 116 + src/components/calendar/index.wxss | 249 + .../calendar/plugins/holidays/holidays-map.js | 212 + .../calendar/plugins/holidays/index.d.ts | 1 + src/components/calendar/plugins/holidays/index.js | 201 + src/components/calendar/plugins/index.js | 18 + src/components/calendar/plugins/preset/base.js | 277 + .../calendar/plugins/preset/get-calendar-data.js | 69 + src/components/calendar/plugins/preset/index.d.ts | 1 + src/components/calendar/plugins/preset/index.js | 9 + src/components/calendar/plugins/selectable.d.ts | 1 + src/components/calendar/plugins/selectable.js | 221 + .../plugins/solarLunar/convertSolarLunar.js | 1036 + .../calendar/plugins/solarLunar/index.d.ts | 1 + .../calendar/plugins/solarLunar/index.js | 59 + src/components/calendar/plugins/time-range.js | 305 + src/components/calendar/plugins/todo.d.ts | 1 + src/components/calendar/plugins/todo.js | 135 + src/components/calendar/plugins/week.js | 432 + src/components/calendar/render.js | 49 + src/components/calendar/theme/iconfont.wxss | 29 + src/components/calendar/theme/theme-default.wxss | 61 + src/components/calendar/theme/theme-elegant.wxss | 58 + src/components/calendar/theme/theme-geneB.wxss | 95 + .../calendar/theme/theme-geneDoctorB.wxss | 95 + src/components/calendar/theme/theme-nuohe.wxss | 90 + src/components/calendar/utils/index.js | 275 + src/components/calendar/utils/logger.js | 23 + src/components/calendar/utils/wxData.js | 30 + src/components/customPoster/README.md | 160 + src/components/customPoster/index.js | 101 + src/components/customPoster/index.json | 3 + src/components/customPoster/index.scss | 53 + src/components/customPoster/index.wxml | 43 + src/components/customPoster/wxml2canvas/README.md | 0 src/components/customPoster/wxml2canvas/index.js | 1692 + .../customPoster/wxml2canvas/index.js.map | 1 + src/components/ec-canvas/ec-canvas.js | 269 + src/components/ec-canvas/ec-canvas.json | 4 + src/components/ec-canvas/ec-canvas.wxml | 4 + src/components/ec-canvas/ec-canvas.wxss | 5 + src/components/ec-canvas/echarts.js | 25 + src/components/ec-canvas/wx-canvas.js | 111 + src/components/navbar/index.json | 6 + src/components/navbar/index.scss | 0 src/components/navbar/index.ts | 50 + src/components/navbar/index.wxml | 17 + src/components/pagination/index.js | 21 + src/components/pagination/index.json | 6 + src/components/pagination/index.scss | 6 + src/components/pagination/index.wxml | 6 + src/components/pickerArea/index.json | 7 + src/components/pickerArea/index.scss | 128 + src/components/pickerArea/index.ts | 316 + src/components/pickerArea/index.wxml | 81 + src/components/popup/index.json | 6 + src/components/popup/index.scss | 1259 + src/components/popup/index.ts | 165 + src/components/popup/index.wxml | 43 + src/components/uploadFile/index.js | 289 + src/components/uploadFile/index.json | 9 + src/components/uploadFile/index.scss | 115 + src/components/uploadFile/index.wxml | 50 + src/custom-tab-bar/index.json | 7 + src/custom-tab-bar/index.scss | 25 + src/custom-tab-bar/index.ts | 65 + src/custom-tab-bar/index.wxml | 21 + src/doc/pages/doc1/index.json | 6 + src/doc/pages/doc1/index.scss | 3 + src/doc/pages/doc1/index.ts | 10 + src/doc/pages/doc1/index.wxml | 3 + src/doc/pages/doc2/index.json | 6 + src/doc/pages/doc2/index.scss | 3 + src/doc/pages/doc2/index.ts | 10 + src/doc/pages/doc2/index.wxml | 3 + src/doc/pages/doc3/index.json | 6 + src/doc/pages/doc3/index.scss | 3 + src/doc/pages/doc3/index.ts | 10 + src/doc/pages/doc3/index.wxml | 3 + src/doc/pages/doc4/index.json | 6 + src/doc/pages/doc4/index.scss | 3 + src/doc/pages/doc4/index.ts | 10 + src/doc/pages/doc4/index.wxml | 3 + src/doc/pages/doc5/index.json | 6 + src/doc/pages/doc5/index.scss | 3 + src/doc/pages/doc5/index.ts | 10 + src/doc/pages/doc5/index.wxml | 3 + src/images/bg1.png | Bin 0 -> 784862 bytes src/images/bg10.png | Bin 0 -> 1212331 bytes src/images/bg11.png | Bin 0 -> 7877 bytes src/images/bg2.png | Bin 0 -> 400972 bytes src/images/bg3.png | Bin 0 -> 214451 bytes src/images/bg4.png | Bin 0 -> 172969 bytes src/images/bg5.png | Bin 0 -> 3430113 bytes src/images/bg6.png | Bin 0 -> 254154 bytes src/images/bg7.png | Bin 0 -> 297732 bytes src/images/bg8.png | Bin 0 -> 2751 bytes src/images/bg9.png | Bin 0 -> 337018 bytes src/images/btn1.png | Bin 0 -> 22188 bytes src/images/icon1.png | Bin 0 -> 528 bytes src/images/icon10.png | Bin 0 -> 356 bytes src/images/icon11.png | Bin 0 -> 343 bytes src/images/icon12.png | Bin 0 -> 2263 bytes src/images/icon13.png | Bin 0 -> 679 bytes src/images/icon14.png | Bin 0 -> 1042 bytes src/images/icon15.png | Bin 0 -> 1121 bytes src/images/icon16.png | Bin 0 -> 411 bytes src/images/icon17.png | Bin 0 -> 796 bytes src/images/icon18.png | Bin 0 -> 1770 bytes src/images/icon19.png | Bin 0 -> 1309 bytes src/images/icon2.png | Bin 0 -> 491 bytes src/images/icon20.png | Bin 0 -> 1546 bytes src/images/icon21.png | Bin 0 -> 750 bytes src/images/icon22.png | Bin 0 -> 700 bytes src/images/icon23.png | Bin 0 -> 1107 bytes src/images/icon24.png | Bin 0 -> 327 bytes src/images/icon25.png | Bin 0 -> 267 bytes src/images/icon26.png | Bin 0 -> 587 bytes src/images/icon27.png | Bin 0 -> 397 bytes src/images/icon28-1.png | Bin 0 -> 816 bytes src/images/icon28.png | Bin 0 -> 1375 bytes src/images/icon29-1.png | Bin 0 -> 713 bytes src/images/icon29.png | Bin 0 -> 1181 bytes src/images/icon3.png | Bin 0 -> 694 bytes src/images/icon4.png | Bin 0 -> 1423 bytes src/images/icon5.png | Bin 0 -> 1462 bytes src/images/icon6.png | Bin 0 -> 1527 bytes src/images/icon7.png | Bin 0 -> 438 bytes src/images/icon8-1.png | Bin 0 -> 822 bytes src/images/icon8.png | Bin 0 -> 815 bytes src/images/icon9-1.png | Bin 0 -> 500 bytes src/images/icon9.png | Bin 0 -> 692 bytes src/images/logo1.png | Bin 0 -> 8679 bytes src/images/logo2.png | Bin 0 -> 5515 bytes src/images/tabbar-center.png | Bin 0 -> 25090 bytes src/miniprogram_npm/@galacean/effects/index.js | 37435 ++++++++ src/miniprogram_npm/@galacean/effects/index.js.map | 1 + .../video-swiper/index.js | 254 + .../video-swiper/index.json | 4 + .../video-swiper/index.wxml | 37 + .../video-swiper/index.wxss | 1 + .../@vant/weapp/action-sheet/index.d.ts | 1 + .../@vant/weapp/action-sheet/index.js | 78 + .../@vant/weapp/action-sheet/index.json | 8 + .../@vant/weapp/action-sheet/index.wxml | 70 + .../@vant/weapp/action-sheet/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/area/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/area/index.js | 235 + src/miniprogram_npm/@vant/weapp/area/index.json | 6 + src/miniprogram_npm/@vant/weapp/area/index.wxml | 20 + src/miniprogram_npm/@vant/weapp/area/index.wxs | 8 + src/miniprogram_npm/@vant/weapp/area/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/button/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/button/index.js | 67 + src/miniprogram_npm/@vant/weapp/button/index.json | 7 + src/miniprogram_npm/@vant/weapp/button/index.wxml | 56 + src/miniprogram_npm/@vant/weapp/button/index.wxs | 39 + src/miniprogram_npm/@vant/weapp/button/index.wxss | 1 + .../@vant/weapp/calendar/calendar.wxml | 70 + .../weapp/calendar/components/header/index.d.ts | 1 + .../weapp/calendar/components/header/index.js | 45 + .../weapp/calendar/components/header/index.json | 3 + .../weapp/calendar/components/header/index.wxml | 16 + .../weapp/calendar/components/header/index.wxss | 1 + .../weapp/calendar/components/month/index.d.ts | 6 + .../@vant/weapp/calendar/components/month/index.js | 158 + .../weapp/calendar/components/month/index.json | 3 + .../weapp/calendar/components/month/index.wxml | 39 + .../weapp/calendar/components/month/index.wxs | 71 + .../weapp/calendar/components/month/index.wxss | 1 + .../@vant/weapp/calendar/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/calendar/index.js | 383 + .../@vant/weapp/calendar/index.json | 10 + .../@vant/weapp/calendar/index.wxml | 27 + src/miniprogram_npm/@vant/weapp/calendar/index.wxs | 37 + .../@vant/weapp/calendar/index.wxss | 1 + .../@vant/weapp/calendar/utils.d.ts | 12 + src/miniprogram_npm/@vant/weapp/calendar/utils.js | 97 + src/miniprogram_npm/@vant/weapp/calendar/utils.wxs | 25 + src/miniprogram_npm/@vant/weapp/card/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/card/index.js | 51 + src/miniprogram_npm/@vant/weapp/card/index.json | 6 + src/miniprogram_npm/@vant/weapp/card/index.wxml | 56 + src/miniprogram_npm/@vant/weapp/card/index.wxss | 1 + .../@vant/weapp/cascader/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/cascader/index.js | 228 + .../@vant/weapp/cascader/index.json | 8 + .../@vant/weapp/cascader/index.wxml | 55 + src/miniprogram_npm/@vant/weapp/cascader/index.wxs | 24 + .../@vant/weapp/cascader/index.wxss | 1 + .../@vant/weapp/cell-group/index.d.ts | 1 + .../@vant/weapp/cell-group/index.js | 13 + .../@vant/weapp/cell-group/index.json | 3 + .../@vant/weapp/cell-group/index.wxml | 11 + .../@vant/weapp/cell-group/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/cell/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/cell/index.js | 40 + src/miniprogram_npm/@vant/weapp/cell/index.json | 6 + src/miniprogram_npm/@vant/weapp/cell/index.wxml | 47 + src/miniprogram_npm/@vant/weapp/cell/index.wxs | 17 + src/miniprogram_npm/@vant/weapp/cell/index.wxss | 1 + .../@vant/weapp/checkbox-group/index.d.ts | 1 + .../@vant/weapp/checkbox-group/index.js | 39 + .../@vant/weapp/checkbox-group/index.json | 3 + .../@vant/weapp/checkbox-group/index.wxml | 5 + .../@vant/weapp/checkbox-group/index.wxss | 1 + .../@vant/weapp/checkbox/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/checkbox/index.js | 79 + .../@vant/weapp/checkbox/index.json | 6 + .../@vant/weapp/checkbox/index.wxml | 31 + src/miniprogram_npm/@vant/weapp/checkbox/index.wxs | 20 + .../@vant/weapp/checkbox/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/circle/canvas.d.ts | 4 + src/miniprogram_npm/@vant/weapp/circle/canvas.js | 47 + src/miniprogram_npm/@vant/weapp/circle/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/circle/index.js | 207 + src/miniprogram_npm/@vant/weapp/circle/index.json | 3 + src/miniprogram_npm/@vant/weapp/circle/index.wxml | 9 + src/miniprogram_npm/@vant/weapp/circle/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/col/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/col/index.js | 11 + src/miniprogram_npm/@vant/weapp/col/index.json | 3 + src/miniprogram_npm/@vant/weapp/col/index.wxml | 9 + src/miniprogram_npm/@vant/weapp/col/index.wxs | 18 + src/miniprogram_npm/@vant/weapp/col/index.wxss | 1 + .../@vant/weapp/collapse-item/animate.d.ts | 2 + .../@vant/weapp/collapse-item/animate.js | 43 + .../@vant/weapp/collapse-item/index.d.ts | 1 + .../@vant/weapp/collapse-item/index.js | 63 + .../@vant/weapp/collapse-item/index.json | 6 + .../@vant/weapp/collapse-item/index.wxml | 45 + .../@vant/weapp/collapse-item/index.wxss | 1 + .../@vant/weapp/collapse/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/collapse/index.js | 48 + .../@vant/weapp/collapse/index.json | 3 + .../@vant/weapp/collapse/index.wxml | 3 + .../@vant/weapp/collapse/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/common/color.d.ts | 7 + src/miniprogram_npm/@vant/weapp/common/color.js | 10 + .../@vant/weapp/common/component.d.ts | 4 + .../@vant/weapp/common/component.js | 49 + src/miniprogram_npm/@vant/weapp/common/index.wxss | 1 + .../@vant/weapp/common/relation.d.ts | 15 + src/miniprogram_npm/@vant/weapp/common/relation.js | 65 + .../@vant/weapp/common/style/clearfix.wxss | 1 + .../@vant/weapp/common/style/ellipsis.wxss | 1 + .../@vant/weapp/common/style/hairline.wxss | 1 + .../@vant/weapp/common/style/mixins/clearfix.wxss | 0 .../@vant/weapp/common/style/mixins/ellipsis.wxss | 0 .../@vant/weapp/common/style/mixins/hairline.wxss | 0 .../@vant/weapp/common/style/var.wxss | 0 src/miniprogram_npm/@vant/weapp/common/utils.d.ts | 21 + src/miniprogram_npm/@vant/weapp/common/utils.js | 109 + .../@vant/weapp/common/validator.d.ts | 9 + .../@vant/weapp/common/validator.js | 43 + .../@vant/weapp/common/version.d.ts | 15 + src/miniprogram_npm/@vant/weapp/common/version.js | 70 + .../@vant/weapp/config-provider/index.d.ts | 1 + .../@vant/weapp/config-provider/index.js | 11 + .../@vant/weapp/config-provider/index.json | 3 + .../@vant/weapp/config-provider/index.wxml | 5 + .../@vant/weapp/config-provider/index.wxs | 29 + .../@vant/weapp/count-down/index.d.ts | 1 + .../@vant/weapp/count-down/index.js | 104 + .../@vant/weapp/count-down/index.json | 3 + .../@vant/weapp/count-down/index.wxml | 4 + .../@vant/weapp/count-down/index.wxss | 1 + .../@vant/weapp/count-down/utils.d.ts | 10 + .../@vant/weapp/count-down/utils.js | 64 + .../@vant/weapp/datetime-picker/index.d.ts | 1 + .../@vant/weapp/datetime-picker/index.js | 329 + .../@vant/weapp/datetime-picker/index.json | 6 + .../@vant/weapp/datetime-picker/index.wxml | 16 + .../@vant/weapp/datetime-picker/index.wxss | 1 + .../@vant/weapp/definitions/index.d.ts | 29 + .../@vant/weapp/definitions/index.js | 2 + src/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts | 55 + src/miniprogram_npm/@vant/weapp/dialog/dialog.js | 92 + src/miniprogram_npm/@vant/weapp/dialog/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/dialog/index.js | 136 + src/miniprogram_npm/@vant/weapp/dialog/index.json | 9 + src/miniprogram_npm/@vant/weapp/dialog/index.wxml | 126 + src/miniprogram_npm/@vant/weapp/dialog/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/divider/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/divider/index.js | 14 + src/miniprogram_npm/@vant/weapp/divider/index.json | 4 + src/miniprogram_npm/@vant/weapp/divider/index.wxml | 9 + src/miniprogram_npm/@vant/weapp/divider/index.wxs | 18 + src/miniprogram_npm/@vant/weapp/divider/index.wxss | 1 + .../@vant/weapp/dropdown-item/index.d.ts | 1 + .../@vant/weapp/dropdown-item/index.js | 136 + .../@vant/weapp/dropdown-item/index.json | 8 + .../@vant/weapp/dropdown-item/index.wxml | 50 + .../@vant/weapp/dropdown-item/index.wxss | 1 + .../@vant/weapp/dropdown-item/shared.d.ts | 5 + .../@vant/weapp/dropdown-item/shared.js | 2 + .../@vant/weapp/dropdown-menu/index.d.ts | 1 + .../@vant/weapp/dropdown-menu/index.js | 122 + .../@vant/weapp/dropdown-menu/index.json | 3 + .../@vant/weapp/dropdown-menu/index.wxml | 23 + .../@vant/weapp/dropdown-menu/index.wxs | 16 + .../@vant/weapp/dropdown-menu/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/empty/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/empty/index.js | 12 + src/miniprogram_npm/@vant/weapp/empty/index.json | 4 + src/miniprogram_npm/@vant/weapp/empty/index.wxml | 22 + src/miniprogram_npm/@vant/weapp/empty/index.wxs | 15 + src/miniprogram_npm/@vant/weapp/empty/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/field/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/field/index.js | 152 + src/miniprogram_npm/@vant/weapp/field/index.json | 7 + src/miniprogram_npm/@vant/weapp/field/index.wxml | 56 + src/miniprogram_npm/@vant/weapp/field/index.wxs | 18 + src/miniprogram_npm/@vant/weapp/field/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/field/input.wxml | 31 + src/miniprogram_npm/@vant/weapp/field/props.d.ts | 4 + src/miniprogram_npm/@vant/weapp/field/props.js | 59 + .../@vant/weapp/field/textarea.wxml | 32 + src/miniprogram_npm/@vant/weapp/field/types.d.ts | 8 + src/miniprogram_npm/@vant/weapp/field/types.js | 2 + .../@vant/weapp/goods-action-button/index.d.ts | 1 + .../@vant/weapp/goods-action-button/index.js | 46 + .../@vant/weapp/goods-action-button/index.json | 6 + .../@vant/weapp/goods-action-button/index.wxml | 35 + .../@vant/weapp/goods-action-button/index.wxss | 1 + .../@vant/weapp/goods-action-icon/index.d.ts | 1 + .../@vant/weapp/goods-action-icon/index.js | 29 + .../@vant/weapp/goods-action-icon/index.json | 7 + .../@vant/weapp/goods-action-icon/index.wxml | 41 + .../@vant/weapp/goods-action-icon/index.wxss | 1 + .../@vant/weapp/goods-action/index.d.ts | 1 + .../@vant/weapp/goods-action/index.js | 17 + .../@vant/weapp/goods-action/index.json | 3 + .../@vant/weapp/goods-action/index.wxml | 5 + .../@vant/weapp/goods-action/index.wxss | 1 + .../@vant/weapp/grid-item/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/grid-item/index.js | 54 + .../@vant/weapp/grid-item/index.json | 6 + .../@vant/weapp/grid-item/index.wxml | 27 + .../@vant/weapp/grid-item/index.wxs | 32 + .../@vant/weapp/grid-item/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/grid/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/grid/index.js | 57 + src/miniprogram_npm/@vant/weapp/grid/index.json | 3 + src/miniprogram_npm/@vant/weapp/grid/index.wxml | 8 + src/miniprogram_npm/@vant/weapp/grid/index.wxs | 13 + src/miniprogram_npm/@vant/weapp/grid/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/icon/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/icon/index.js | 23 + src/miniprogram_npm/@vant/weapp/icon/index.json | 6 + src/miniprogram_npm/@vant/weapp/icon/index.wxml | 20 + src/miniprogram_npm/@vant/weapp/icon/index.wxs | 43 + src/miniprogram_npm/@vant/weapp/icon/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/image/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/image/index.js | 66 + src/miniprogram_npm/@vant/weapp/image/index.json | 7 + src/miniprogram_npm/@vant/weapp/image/index.wxml | 35 + src/miniprogram_npm/@vant/weapp/image/index.wxs | 32 + src/miniprogram_npm/@vant/weapp/image/index.wxss | 1 + .../@vant/weapp/index-anchor/index.d.ts | 1 + .../@vant/weapp/index-anchor/index.js | 28 + .../@vant/weapp/index-anchor/index.json | 3 + .../@vant/weapp/index-anchor/index.wxml | 14 + .../@vant/weapp/index-anchor/index.wxss | 1 + .../@vant/weapp/index-bar/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/index-bar/index.js | 243 + .../@vant/weapp/index-bar/index.json | 3 + .../@vant/weapp/index-bar/index.wxml | 22 + .../@vant/weapp/index-bar/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/info/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/info/index.js | 10 + src/miniprogram_npm/@vant/weapp/info/index.json | 3 + src/miniprogram_npm/@vant/weapp/info/index.wxml | 7 + src/miniprogram_npm/@vant/weapp/info/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/loading/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/loading/index.js | 18 + src/miniprogram_npm/@vant/weapp/loading/index.json | 3 + src/miniprogram_npm/@vant/weapp/loading/index.wxml | 19 + src/miniprogram_npm/@vant/weapp/loading/index.wxs | 22 + src/miniprogram_npm/@vant/weapp/loading/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/mixins/basic.d.ts | 1 + src/miniprogram_npm/@vant/weapp/mixins/basic.js | 30 + src/miniprogram_npm/@vant/weapp/mixins/button.d.ts | 1 + src/miniprogram_npm/@vant/weapp/mixins/button.js | 54 + src/miniprogram_npm/@vant/weapp/mixins/link.d.ts | 1 + src/miniprogram_npm/@vant/weapp/mixins/link.js | 27 + .../@vant/weapp/mixins/page-scroll.d.ts | 6 + .../@vant/weapp/mixins/page-scroll.js | 47 + src/miniprogram_npm/@vant/weapp/mixins/touch.d.ts | 1 + src/miniprogram_npm/@vant/weapp/mixins/touch.js | 40 + .../@vant/weapp/mixins/transition.d.ts | 1 + .../@vant/weapp/mixins/transition.js | 144 + src/miniprogram_npm/@vant/weapp/nav-bar/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/nav-bar/index.js | 68 + src/miniprogram_npm/@vant/weapp/nav-bar/index.json | 6 + src/miniprogram_npm/@vant/weapp/nav-bar/index.wxml | 42 + src/miniprogram_npm/@vant/weapp/nav-bar/index.wxs | 13 + src/miniprogram_npm/@vant/weapp/nav-bar/index.wxss | 1 + .../@vant/weapp/notice-bar/index.d.ts | 1 + .../@vant/weapp/notice-bar/index.js | 132 + .../@vant/weapp/notice-bar/index.json | 6 + .../@vant/weapp/notice-bar/index.wxml | 38 + .../@vant/weapp/notice-bar/index.wxs | 15 + .../@vant/weapp/notice-bar/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/notify/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/notify/index.js | 68 + src/miniprogram_npm/@vant/weapp/notify/index.json | 6 + src/miniprogram_npm/@vant/weapp/notify/index.wxml | 21 + src/miniprogram_npm/@vant/weapp/notify/index.wxs | 22 + src/miniprogram_npm/@vant/weapp/notify/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/notify/notify.d.ts | 22 + src/miniprogram_npm/@vant/weapp/notify/notify.js | 67 + src/miniprogram_npm/@vant/weapp/overlay/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/overlay/index.js | 32 + src/miniprogram_npm/@vant/weapp/overlay/index.json | 6 + src/miniprogram_npm/@vant/weapp/overlay/index.wxml | 7 + src/miniprogram_npm/@vant/weapp/overlay/index.wxss | 1 + .../@vant/weapp/overlay/overlay.wxml | 10 + src/miniprogram_npm/@vant/weapp/panel/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/panel/index.js | 11 + src/miniprogram_npm/@vant/weapp/panel/index.json | 6 + src/miniprogram_npm/@vant/weapp/panel/index.wxml | 19 + src/miniprogram_npm/@vant/weapp/panel/index.wxss | 1 + .../@vant/weapp/picker-column/index.d.ts | 1 + .../@vant/weapp/picker-column/index.js | 122 + .../@vant/weapp/picker-column/index.json | 3 + .../@vant/weapp/picker-column/index.wxml | 23 + .../@vant/weapp/picker-column/index.wxs | 36 + .../@vant/weapp/picker-column/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/picker/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/picker/index.js | 161 + src/miniprogram_npm/@vant/weapp/picker/index.json | 7 + src/miniprogram_npm/@vant/weapp/picker/index.wxml | 37 + src/miniprogram_npm/@vant/weapp/picker/index.wxs | 42 + src/miniprogram_npm/@vant/weapp/picker/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/picker/shared.d.ts | 21 + src/miniprogram_npm/@vant/weapp/picker/shared.js | 24 + .../@vant/weapp/picker/toolbar.wxml | 23 + src/miniprogram_npm/@vant/weapp/popup/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/popup/index.js | 99 + src/miniprogram_npm/@vant/weapp/popup/index.json | 7 + src/miniprogram_npm/@vant/weapp/popup/index.wxml | 21 + src/miniprogram_npm/@vant/weapp/popup/index.wxs | 18 + src/miniprogram_npm/@vant/weapp/popup/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/popup/popup.wxml | 16 + .../@vant/weapp/progress/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/progress/index.js | 55 + .../@vant/weapp/progress/index.json | 3 + .../@vant/weapp/progress/index.wxml | 20 + src/miniprogram_npm/@vant/weapp/progress/index.wxs | 36 + .../@vant/weapp/progress/index.wxss | 1 + .../@vant/weapp/radio-group/index.d.ts | 1 + .../@vant/weapp/radio-group/index.js | 24 + .../@vant/weapp/radio-group/index.json | 3 + .../@vant/weapp/radio-group/index.wxml | 5 + .../@vant/weapp/radio-group/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/radio/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/radio/index.js | 68 + src/miniprogram_npm/@vant/weapp/radio/index.json | 6 + src/miniprogram_npm/@vant/weapp/radio/index.wxml | 30 + src/miniprogram_npm/@vant/weapp/radio/index.wxs | 33 + src/miniprogram_npm/@vant/weapp/radio/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/rate/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/rate/index.js | 93 + src/miniprogram_npm/@vant/weapp/rate/index.json | 6 + src/miniprogram_npm/@vant/weapp/rate/index.wxml | 35 + src/miniprogram_npm/@vant/weapp/rate/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/row/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/row/index.js | 26 + src/miniprogram_npm/@vant/weapp/row/index.json | 3 + src/miniprogram_npm/@vant/weapp/row/index.wxml | 5 + src/miniprogram_npm/@vant/weapp/row/index.wxs | 18 + src/miniprogram_npm/@vant/weapp/row/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/search/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/search/index.js | 100 + src/miniprogram_npm/@vant/weapp/search/index.json | 6 + src/miniprogram_npm/@vant/weapp/search/index.wxml | 54 + src/miniprogram_npm/@vant/weapp/search/index.wxss | 1 + .../@vant/weapp/share-sheet/index.d.ts | 1 + .../@vant/weapp/share-sheet/index.js | 61 + .../@vant/weapp/share-sheet/index.json | 7 + .../@vant/weapp/share-sheet/index.wxml | 47 + .../@vant/weapp/share-sheet/index.wxs | 12 + .../@vant/weapp/share-sheet/index.wxss | 1 + .../@vant/weapp/share-sheet/options.d.ts | 1 + .../@vant/weapp/share-sheet/options.js | 27 + .../@vant/weapp/share-sheet/options.json | 3 + .../@vant/weapp/share-sheet/options.wxml | 20 + .../@vant/weapp/share-sheet/options.wxs | 14 + .../@vant/weapp/share-sheet/options.wxss | 1 + .../@vant/weapp/sidebar-item/index.d.ts | 1 + .../@vant/weapp/sidebar-item/index.js | 32 + .../@vant/weapp/sidebar-item/index.json | 6 + .../@vant/weapp/sidebar-item/index.wxml | 18 + .../@vant/weapp/sidebar-item/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/sidebar/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/sidebar/index.js | 36 + src/miniprogram_npm/@vant/weapp/sidebar/index.json | 3 + src/miniprogram_npm/@vant/weapp/sidebar/index.wxml | 3 + src/miniprogram_npm/@vant/weapp/sidebar/index.wxss | 1 + .../@vant/weapp/skeleton/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/skeleton/index.js | 48 + .../@vant/weapp/skeleton/index.json | 4 + .../@vant/weapp/skeleton/index.wxml | 29 + .../@vant/weapp/skeleton/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/slider/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/slider/index.js | 206 + src/miniprogram_npm/@vant/weapp/slider/index.json | 3 + src/miniprogram_npm/@vant/weapp/slider/index.wxml | 68 + src/miniprogram_npm/@vant/weapp/slider/index.wxs | 14 + src/miniprogram_npm/@vant/weapp/slider/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/stepper/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/stepper/index.js | 199 + src/miniprogram_npm/@vant/weapp/stepper/index.json | 3 + src/miniprogram_npm/@vant/weapp/stepper/index.wxml | 43 + src/miniprogram_npm/@vant/weapp/stepper/index.wxs | 22 + src/miniprogram_npm/@vant/weapp/stepper/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/steps/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/steps/index.js | 35 + src/miniprogram_npm/@vant/weapp/steps/index.json | 6 + src/miniprogram_npm/@vant/weapp/steps/index.wxml | 54 + src/miniprogram_npm/@vant/weapp/steps/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/sticky/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/sticky/index.js | 126 + src/miniprogram_npm/@vant/weapp/sticky/index.json | 3 + src/miniprogram_npm/@vant/weapp/sticky/index.wxml | 8 + src/miniprogram_npm/@vant/weapp/sticky/index.wxs | 25 + src/miniprogram_npm/@vant/weapp/sticky/index.wxss | 1 + .../@vant/weapp/submit-bar/index.d.ts | 1 + .../@vant/weapp/submit-bar/index.js | 58 + .../@vant/weapp/submit-bar/index.json | 7 + .../@vant/weapp/submit-bar/index.wxml | 44 + .../@vant/weapp/submit-bar/index.wxss | 1 + .../@vant/weapp/swipe-cell/index.d.ts | 1 + .../@vant/weapp/swipe-cell/index.js | 135 + .../@vant/weapp/swipe-cell/index.json | 3 + .../@vant/weapp/swipe-cell/index.wxml | 20 + .../@vant/weapp/swipe-cell/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/switch/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/switch/index.js | 38 + src/miniprogram_npm/@vant/weapp/switch/index.json | 6 + src/miniprogram_npm/@vant/weapp/switch/index.wxml | 16 + src/miniprogram_npm/@vant/weapp/switch/index.wxs | 26 + src/miniprogram_npm/@vant/weapp/switch/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/tab/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/tab/index.js | 58 + src/miniprogram_npm/@vant/weapp/tab/index.json | 3 + src/miniprogram_npm/@vant/weapp/tab/index.wxml | 8 + src/miniprogram_npm/@vant/weapp/tab/index.wxss | 1 + .../@vant/weapp/tabbar-item/index.d.ts | 1 + .../@vant/weapp/tabbar-item/index.js | 70 + .../@vant/weapp/tabbar-item/index.json | 7 + .../@vant/weapp/tabbar-item/index.wxml | 28 + .../@vant/weapp/tabbar-item/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/tabbar/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/tabbar/index.js | 68 + src/miniprogram_npm/@vant/weapp/tabbar/index.json | 3 + src/miniprogram_npm/@vant/weapp/tabbar/index.wxml | 10 + src/miniprogram_npm/@vant/weapp/tabbar/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/tabs/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/tabs/index.js | 327 + src/miniprogram_npm/@vant/weapp/tabs/index.json | 7 + src/miniprogram_npm/@vant/weapp/tabs/index.wxml | 63 + src/miniprogram_npm/@vant/weapp/tabs/index.wxs | 83 + src/miniprogram_npm/@vant/weapp/tabs/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/tag/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/tag/index.js | 23 + src/miniprogram_npm/@vant/weapp/tag/index.json | 6 + src/miniprogram_npm/@vant/weapp/tag/index.wxml | 15 + src/miniprogram_npm/@vant/weapp/tag/index.wxs | 13 + src/miniprogram_npm/@vant/weapp/tag/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/toast/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/toast/index.js | 31 + src/miniprogram_npm/@vant/weapp/toast/index.json | 9 + src/miniprogram_npm/@vant/weapp/toast/index.wxml | 36 + src/miniprogram_npm/@vant/weapp/toast/index.wxss | 1 + src/miniprogram_npm/@vant/weapp/toast/toast.d.ts | 28 + src/miniprogram_npm/@vant/weapp/toast/toast.js | 83 + .../@vant/weapp/transition/index.d.ts | 1 + .../@vant/weapp/transition/index.js | 15 + .../@vant/weapp/transition/index.json | 3 + .../@vant/weapp/transition/index.wxml | 10 + .../@vant/weapp/transition/index.wxs | 17 + .../@vant/weapp/transition/index.wxss | 1 + .../@vant/weapp/tree-select/index.d.ts | 1 + .../@vant/weapp/tree-select/index.js | 70 + .../@vant/weapp/tree-select/index.json | 8 + .../@vant/weapp/tree-select/index.wxml | 41 + .../@vant/weapp/tree-select/index.wxs | 12 + .../@vant/weapp/tree-select/index.wxss | 1 + .../@vant/weapp/uploader/index.d.ts | 1 + src/miniprogram_npm/@vant/weapp/uploader/index.js | 185 + .../@vant/weapp/uploader/index.json | 7 + .../@vant/weapp/uploader/index.wxml | 85 + src/miniprogram_npm/@vant/weapp/uploader/index.wxs | 17 + .../@vant/weapp/uploader/index.wxss | 1 + .../@vant/weapp/uploader/shared.d.ts | 61 + src/miniprogram_npm/@vant/weapp/uploader/shared.js | 68 + .../@vant/weapp/uploader/utils.d.ts | 24 + src/miniprogram_npm/@vant/weapp/uploader/utils.js | 112 + src/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs | 12 + src/miniprogram_npm/@vant/weapp/wxs/array.wxs | 5 + src/miniprogram_npm/@vant/weapp/wxs/bem.wxs | 39 + src/miniprogram_npm/@vant/weapp/wxs/memoize.wxs | 55 + src/miniprogram_npm/@vant/weapp/wxs/object.wxs | 13 + src/miniprogram_npm/@vant/weapp/wxs/style.wxs | 42 + src/miniprogram_npm/@vant/weapp/wxs/utils.wxs | 10 + src/miniprogram_npm/a-calc/index.js | 14 + src/miniprogram_npm/a-calc/index.js.map | 1 + src/miniprogram_npm/dayjs/index.js | 13 + src/miniprogram_npm/dayjs/index.js.map | 1 + src/miniprogram_npm/echarts/index.js | 85965 +++++++++++++++++++ src/miniprogram_npm/echarts/index.js.map | 1 + src/miniprogram_npm/miniprogram-licia/Benchmark.js | 244 + .../miniprogram-licia/BloomFilter.js | 46 + src/miniprogram_npm/miniprogram-licia/Caseless.js | 35 + src/miniprogram_npm/miniprogram-licia/Channel.js | 48 + src/miniprogram_npm/miniprogram-licia/Class.js | 64 + src/miniprogram_npm/miniprogram-licia/Color.js | 95 + src/miniprogram_npm/miniprogram-licia/Delegator.js | 48 + .../miniprogram-licia/Dispatcher.js | 55 + src/miniprogram_npm/miniprogram-licia/Emitter.js | 65 + src/miniprogram_npm/miniprogram-licia/Enum.js | 31 + src/miniprogram_npm/miniprogram-licia/HashTable.js | 61 + src/miniprogram_npm/miniprogram-licia/Heap.js | 79 + .../miniprogram-licia/HeapSnapshot.js | 111 + src/miniprogram_npm/miniprogram-licia/I18n.js | 38 + .../miniprogram-licia/JsonTransformer.js | 68 + .../miniprogram-licia/LinkedList.js | 112 + src/miniprogram_npm/miniprogram-licia/Logger.js | 69 + src/miniprogram_npm/miniprogram-licia/Lru.js | 63 + .../miniprogram-licia/PriorityQueue.js | 39 + src/miniprogram_npm/miniprogram-licia/Promise.js | 178 + src/miniprogram_npm/miniprogram-licia/PseudoMap.js | 64 + src/miniprogram_npm/miniprogram-licia/Queue.js | 35 + src/miniprogram_npm/miniprogram-licia/QuickLru.js | 49 + src/miniprogram_npm/miniprogram-licia/Readiness.js | 59 + .../miniprogram-licia/ReduceStore.js | 41 + src/miniprogram_npm/miniprogram-licia/Semaphore.js | 28 + .../miniprogram-licia/SingleEmitter.js | 48 + src/miniprogram_npm/miniprogram-licia/Stack.js | 35 + src/miniprogram_npm/miniprogram-licia/State.js | 45 + src/miniprogram_npm/miniprogram-licia/Store.js | 58 + src/miniprogram_npm/miniprogram-licia/Trace.js | 157 + src/miniprogram_npm/miniprogram-licia/Tracing.js | 227 + src/miniprogram_npm/miniprogram-licia/Trie.js | 90 + src/miniprogram_npm/miniprogram-licia/Tween.js | 98 + src/miniprogram_npm/miniprogram-licia/Url.js | 125 + src/miniprogram_npm/miniprogram-licia/Validator.js | 82 + src/miniprogram_npm/miniprogram-licia/Wrr.js | 86 + src/miniprogram_npm/miniprogram-licia/abbrev.js | 28 + src/miniprogram_npm/miniprogram-licia/after.js | 7 + src/miniprogram_npm/miniprogram-licia/allKeys.js | 42 + src/miniprogram_npm/miniprogram-licia/arrToMap.js | 14 + src/miniprogram_npm/miniprogram-licia/atob.js | 21 + src/miniprogram_npm/miniprogram-licia/average.js | 9 + src/miniprogram_npm/miniprogram-licia/base64.js | 83 + src/miniprogram_npm/miniprogram-licia/before.js | 10 + .../miniprogram-licia/binarySearch.js | 24 + src/miniprogram_npm/miniprogram-licia/bind.js | 8 + src/miniprogram_npm/miniprogram-licia/btoa.js | 23 + .../miniprogram-licia/bubbleSort.js | 18 + .../miniprogram-licia/bytesToStr.js | 22 + .../miniprogram-licia/bytesToWords.js | 9 + .../miniprogram-licia/callbackify.js | 17 + src/miniprogram_npm/miniprogram-licia/camelCase.js | 16 + .../miniprogram-licia/capitalize.js | 5 + src/miniprogram_npm/miniprogram-licia/castPath.js | 16 + .../miniprogram-licia/centerAlign.js | 21 + src/miniprogram_npm/miniprogram-licia/char.js | 5 + src/miniprogram_npm/miniprogram-licia/chunk.js | 12 + src/miniprogram_npm/miniprogram-licia/clamp.js | 12 + src/miniprogram_npm/miniprogram-licia/className.js | 20 + src/miniprogram_npm/miniprogram-licia/clone.js | 9 + src/miniprogram_npm/miniprogram-licia/cloneDeep.js | 19 + .../miniprogram-licia/cmpVersion.js | 16 + src/miniprogram_npm/miniprogram-licia/combine.js | 9 + src/miniprogram_npm/miniprogram-licia/compact.js | 8 + src/miniprogram_npm/miniprogram-licia/compose.js | 11 + src/miniprogram_npm/miniprogram-licia/concat.js | 11 + src/miniprogram_npm/miniprogram-licia/contain.js | 11 + .../miniprogram-licia/convertBase.js | 5 + .../miniprogram-licia/convertBin.js | 60 + src/miniprogram_npm/miniprogram-licia/crc1.js | 19 + src/miniprogram_npm/miniprogram-licia/crc16.js | 276 + src/miniprogram_npm/miniprogram-licia/crc32.js | 29 + src/miniprogram_npm/miniprogram-licia/crc8.js | 276 + src/miniprogram_npm/miniprogram-licia/create.js | 11 + .../miniprogram-licia/createAssigner.js | 16 + src/miniprogram_npm/miniprogram-licia/css.js | 329 + .../miniprogram-licia/cssPriority.js | 63 + src/miniprogram_npm/miniprogram-licia/curry.js | 15 + src/miniprogram_npm/miniprogram-licia/dataUrl.js | 68 + src/miniprogram_npm/miniprogram-licia/dataView.js | 75 + .../miniprogram-licia/dateFormat.js | 142 + src/miniprogram_npm/miniprogram-licia/debounce.js | 15 + src/miniprogram_npm/miniprogram-licia/deburr.js | 206 + .../miniprogram-licia/decodeUriComponent.js | 31 + src/miniprogram_npm/miniprogram-licia/defaults.js | 5 + src/miniprogram_npm/miniprogram-licia/define.js | 17 + .../miniprogram-licia/defineProp.js | 26 + src/miniprogram_npm/miniprogram-licia/defined.js | 8 + src/miniprogram_npm/miniprogram-licia/delay.js | 8 + src/miniprogram_npm/miniprogram-licia/deprecate.js | 36 + .../miniprogram-licia/detectBrowser.js | 51 + .../miniprogram-licia/detectMocha.js | 11 + src/miniprogram_npm/miniprogram-licia/detectOs.js | 39 + .../miniprogram-licia/difference.js | 12 + src/miniprogram_npm/miniprogram-licia/dotCase.js | 6 + .../miniprogram-licia/durationFormat.js | 39 + src/miniprogram_npm/miniprogram-licia/each.js | 18 + src/miniprogram_npm/miniprogram-licia/easing.js | 63 + src/miniprogram_npm/miniprogram-licia/endWith.js | 6 + src/miniprogram_npm/miniprogram-licia/escape.js | 20 + .../miniprogram-licia/escapeJsStr.js | 24 + .../miniprogram-licia/escapeRegExp.js | 5 + src/miniprogram_npm/miniprogram-licia/every.js | 15 + src/miniprogram_npm/miniprogram-licia/extend.js | 5 + .../miniprogram-licia/extendDeep.js | 28 + src/miniprogram_npm/miniprogram-licia/extendOwn.js | 5 + .../miniprogram-licia/extractBlockCmts.js | 17 + .../miniprogram-licia/extractUrls.js | 15 + src/miniprogram_npm/miniprogram-licia/fibonacci.js | 6 + src/miniprogram_npm/miniprogram-licia/fileSize.js | 25 + src/miniprogram_npm/miniprogram-licia/fileType.js | 148 + src/miniprogram_npm/miniprogram-licia/fileUrl.js | 13 + src/miniprogram_npm/miniprogram-licia/fill.js | 11 + src/miniprogram_npm/miniprogram-licia/filter.js | 12 + src/miniprogram_npm/miniprogram-licia/find.js | 11 + src/miniprogram_npm/miniprogram-licia/findIdx.js | 14 + src/miniprogram_npm/miniprogram-licia/findKey.js | 13 + .../miniprogram-licia/findLastIdx.js | 6 + src/miniprogram_npm/miniprogram-licia/flatten.js | 16 + src/miniprogram_npm/miniprogram-licia/fnArgs.js | 68 + src/miniprogram_npm/miniprogram-licia/fnParams.js | 26 + src/miniprogram_npm/miniprogram-licia/fnv1a.js | 11 + src/miniprogram_npm/miniprogram-licia/format.js | 45 + src/miniprogram_npm/miniprogram-licia/fraction.js | 17 + src/miniprogram_npm/miniprogram-licia/freeze.js | 14 + .../miniprogram-licia/freezeDeep.js | 13 + .../miniprogram-licia/fuzzySearch.js | 55 + src/miniprogram_npm/miniprogram-licia/gcd.js | 6 + src/miniprogram_npm/miniprogram-licia/getProto.js | 14 + .../miniprogram-licia/getUrlParam.js | 6 + src/miniprogram_npm/miniprogram-licia/golangify.js | 26 + src/miniprogram_npm/miniprogram-licia/has.js | 6 + src/miniprogram_npm/miniprogram-licia/heapSort.js | 19 + src/miniprogram_npm/miniprogram-licia/hex.js | 23 + src/miniprogram_npm/miniprogram-licia/highlight.js | 135 + src/miniprogram_npm/miniprogram-licia/hookFn.js | 40 + src/miniprogram_npm/miniprogram-licia/hslToRgb.js | 40 + src/miniprogram_npm/miniprogram-licia/html.js | 84 + src/miniprogram_npm/miniprogram-licia/identity.js | 5 + src/miniprogram_npm/miniprogram-licia/idxOf.js | 5 + src/miniprogram_npm/miniprogram-licia/indent.js | 16 + src/miniprogram_npm/miniprogram-licia/index.js | 361 + src/miniprogram_npm/miniprogram-licia/inherits.js | 6 + src/miniprogram_npm/miniprogram-licia/ini.js | 90 + .../miniprogram-licia/insertionSort.js | 20 + src/miniprogram_npm/miniprogram-licia/intersect.js | 19 + .../miniprogram-licia/intersectRange.js | 11 + src/miniprogram_npm/miniprogram-licia/invariant.js | 35 + src/miniprogram_npm/miniprogram-licia/invert.js | 10 + .../miniprogram-licia/isAbsoluteUrl.js | 6 + src/miniprogram_npm/miniprogram-licia/isArgs.js | 6 + src/miniprogram_npm/miniprogram-licia/isArr.js | 10 + .../miniprogram-licia/isArrBuffer.js | 6 + src/miniprogram_npm/miniprogram-licia/isArrLike.js | 10 + src/miniprogram_npm/miniprogram-licia/isAsyncFn.js | 6 + src/miniprogram_npm/miniprogram-licia/isBool.js | 5 + src/miniprogram_npm/miniprogram-licia/isBrowser.js | 6 + src/miniprogram_npm/miniprogram-licia/isBuffer.js | 12 + src/miniprogram_npm/miniprogram-licia/isClose.js | 10 + src/miniprogram_npm/miniprogram-licia/isCyclic.js | 38 + src/miniprogram_npm/miniprogram-licia/isDataUrl.js | 8 + src/miniprogram_npm/miniprogram-licia/isDate.js | 6 + src/miniprogram_npm/miniprogram-licia/isEmail.js | 6 + src/miniprogram_npm/miniprogram-licia/isEmpty.js | 14 + src/miniprogram_npm/miniprogram-licia/isEqual.js | 75 + src/miniprogram_npm/miniprogram-licia/isErr.js | 12 + src/miniprogram_npm/miniprogram-licia/isEven.js | 7 + src/miniprogram_npm/miniprogram-licia/isFinite.js | 8 + src/miniprogram_npm/miniprogram-licia/isFn.js | 11 + .../miniprogram-licia/isFullWidth.js | 29 + .../miniprogram-licia/isGeneratorFn.js | 6 + src/miniprogram_npm/miniprogram-licia/isInt.js | 6 + src/miniprogram_npm/miniprogram-licia/isIp.js | 54 + src/miniprogram_npm/miniprogram-licia/isJson.js | 10 + .../miniprogram-licia/isLeapYear.js | 5 + src/miniprogram_npm/miniprogram-licia/isMac.js | 4 + src/miniprogram_npm/miniprogram-licia/isMap.js | 6 + src/miniprogram_npm/miniprogram-licia/isMatch.js | 14 + .../miniprogram-licia/isMiniProgram.js | 5 + src/miniprogram_npm/miniprogram-licia/isMobile.js | 10 + src/miniprogram_npm/miniprogram-licia/isNaN.js | 6 + src/miniprogram_npm/miniprogram-licia/isNative.js | 23 + src/miniprogram_npm/miniprogram-licia/isNil.js | 5 + src/miniprogram_npm/miniprogram-licia/isNode.js | 5 + src/miniprogram_npm/miniprogram-licia/isNull.js | 5 + src/miniprogram_npm/miniprogram-licia/isNum.js | 6 + src/miniprogram_npm/miniprogram-licia/isNumeric.js | 11 + src/miniprogram_npm/miniprogram-licia/isObj.js | 6 + src/miniprogram_npm/miniprogram-licia/isOdd.js | 7 + .../miniprogram-licia/isPlainObj.js | 13 + src/miniprogram_npm/miniprogram-licia/isPrime.js | 11 + .../miniprogram-licia/isPrimitive.js | 6 + src/miniprogram_npm/miniprogram-licia/isPromise.js | 7 + src/miniprogram_npm/miniprogram-licia/isRegExp.js | 6 + .../miniprogram-licia/isRelative.js | 6 + src/miniprogram_npm/miniprogram-licia/isSet.js | 6 + src/miniprogram_npm/miniprogram-licia/isSorted.js | 17 + src/miniprogram_npm/miniprogram-licia/isStr.js | 6 + .../miniprogram-licia/isStrBlank.js | 18 + src/miniprogram_npm/miniprogram-licia/isSymbol.js | 5 + .../miniprogram-licia/isTypedArr.js | 24 + src/miniprogram_npm/miniprogram-licia/isUndef.js | 5 + src/miniprogram_npm/miniprogram-licia/isUrl.js | 6 + src/miniprogram_npm/miniprogram-licia/isWeakMap.js | 6 + src/miniprogram_npm/miniprogram-licia/isWeakSet.js | 6 + src/miniprogram_npm/miniprogram-licia/isWindows.js | 4 + src/miniprogram_npm/miniprogram-licia/jsonClone.js | 5 + src/miniprogram_npm/miniprogram-licia/kebabCase.js | 6 + src/miniprogram_npm/miniprogram-licia/keyCode.js | 61 + src/miniprogram_npm/miniprogram-licia/keys.js | 14 + src/miniprogram_npm/miniprogram-licia/last.js | 6 + .../miniprogram-licia/levenshtein.js | 59 + src/miniprogram_npm/miniprogram-licia/linkify.js | 16 + src/miniprogram_npm/miniprogram-licia/longest.js | 16 + src/miniprogram_npm/miniprogram-licia/lowerCase.js | 6 + src/miniprogram_npm/miniprogram-licia/lpad.js | 11 + src/miniprogram_npm/miniprogram-licia/ltrim.js | 30 + src/miniprogram_npm/miniprogram-licia/map.js | 16 + src/miniprogram_npm/miniprogram-licia/mapObj.js | 15 + src/miniprogram_npm/miniprogram-licia/matcher.js | 10 + src/miniprogram_npm/miniprogram-licia/max.js | 10 + src/miniprogram_npm/miniprogram-licia/md5.js | 140 + .../miniprogram-licia/memStorage.js | 53 + src/miniprogram_npm/miniprogram-licia/memoize.js | 13 + src/miniprogram_npm/miniprogram-licia/mergeArr.js | 14 + src/miniprogram_npm/miniprogram-licia/mergeSort.js | 26 + src/miniprogram_npm/miniprogram-licia/methods.js | 10 + src/miniprogram_npm/miniprogram-licia/mime.js | 83 + src/miniprogram_npm/miniprogram-licia/min.js | 10 + src/miniprogram_npm/miniprogram-licia/moment.js | 256 + src/miniprogram_npm/miniprogram-licia/morse.js | 80 + src/miniprogram_npm/miniprogram-licia/ms.js | 31 + .../miniprogram-licia/naturalSort.js | 61 + src/miniprogram_npm/miniprogram-licia/negate.js | 7 + src/miniprogram_npm/miniprogram-licia/nextTick.js | 18 + src/miniprogram_npm/miniprogram-licia/noop.js | 3 + .../miniprogram-licia/normalizeHeader.js | 21 + .../miniprogram-licia/normalizePath.js | 6 + .../miniprogram-licia/normalizePhone.js | 22 + src/miniprogram_npm/miniprogram-licia/now.js | 9 + src/miniprogram_npm/miniprogram-licia/objToStr.js | 6 + src/miniprogram_npm/miniprogram-licia/omit.js | 6 + src/miniprogram_npm/miniprogram-licia/once.js | 5 + .../miniprogram-licia/optimizeCb.js | 23 + src/miniprogram_npm/miniprogram-licia/ordinal.js | 17 + src/miniprogram_npm/miniprogram-licia/pad.js | 15 + src/miniprogram_npm/miniprogram-licia/pairs.js | 12 + src/miniprogram_npm/miniprogram-licia/parallel.js | 26 + src/miniprogram_npm/miniprogram-licia/parseArgs.js | 72 + src/miniprogram_npm/miniprogram-licia/parseHtml.js | 105 + src/miniprogram_npm/miniprogram-licia/partial.js | 12 + .../miniprogram-licia/pascalCase.js | 7 + src/miniprogram_npm/miniprogram-licia/perfNow.js | 26 + src/miniprogram_npm/miniprogram-licia/pick.js | 26 + src/miniprogram_npm/miniprogram-licia/pluck.js | 7 + src/miniprogram_npm/miniprogram-licia/precision.js | 11 + src/miniprogram_npm/miniprogram-licia/promisify.js | 18 + src/miniprogram_npm/miniprogram-licia/property.js | 15 + src/miniprogram_npm/miniprogram-licia/query.js | 50 + src/miniprogram_npm/miniprogram-licia/quickSort.js | 32 + src/miniprogram_npm/miniprogram-licia/raf.js | 39 + src/miniprogram_npm/miniprogram-licia/random.js | 18 + .../miniprogram-licia/randomBytes.js | 26 + .../miniprogram-licia/randomColor.js | 60 + src/miniprogram_npm/miniprogram-licia/randomId.js | 20 + .../miniprogram-licia/randomItem.js | 6 + src/miniprogram_npm/miniprogram-licia/range.js | 13 + src/miniprogram_npm/miniprogram-licia/rc4.js | 46 + src/miniprogram_npm/miniprogram-licia/reduce.js | 38 + .../miniprogram-licia/reduceRight.js | 4 + src/miniprogram_npm/miniprogram-licia/reject.js | 9 + src/miniprogram_npm/miniprogram-licia/remove.js | 18 + src/miniprogram_npm/miniprogram-licia/repeat.js | 12 + .../miniprogram-licia/replaceAll.js | 6 + src/miniprogram_npm/miniprogram-licia/restArgs.js | 24 + src/miniprogram_npm/miniprogram-licia/reverse.js | 11 + src/miniprogram_npm/miniprogram-licia/rgbToHsl.js | 37 + src/miniprogram_npm/miniprogram-licia/root.js | 4 + src/miniprogram_npm/miniprogram-licia/rpad.js | 11 + src/miniprogram_npm/miniprogram-licia/rtrim.js | 28 + src/miniprogram_npm/miniprogram-licia/safeCb.js | 15 + src/miniprogram_npm/miniprogram-licia/safeDel.js | 16 + src/miniprogram_npm/miniprogram-licia/safeGet.js | 15 + src/miniprogram_npm/miniprogram-licia/safeSet.js | 29 + .../miniprogram-licia/sameOrigin.js | 14 + src/miniprogram_npm/miniprogram-licia/sample.js | 18 + .../miniprogram-licia/seedRandom.js | 18 + .../miniprogram-licia/selectionSort.js | 23 + src/miniprogram_npm/miniprogram-licia/selector.js | 137 + src/miniprogram_npm/miniprogram-licia/shebang.js | 9 + src/miniprogram_npm/miniprogram-licia/shellSort.js | 25 + src/miniprogram_npm/miniprogram-licia/shuffle.js | 6 + src/miniprogram_npm/miniprogram-licia/singleton.js | 23 + src/miniprogram_npm/miniprogram-licia/size.js | 7 + src/miniprogram_npm/miniprogram-licia/sizeof.js | 47 + src/miniprogram_npm/miniprogram-licia/sleep.js | 7 + src/miniprogram_npm/miniprogram-licia/slice.js | 22 + src/miniprogram_npm/miniprogram-licia/slugify.js | 27 + src/miniprogram_npm/miniprogram-licia/snakeCase.js | 6 + src/miniprogram_npm/miniprogram-licia/some.js | 15 + src/miniprogram_npm/miniprogram-licia/sortBy.js | 28 + src/miniprogram_npm/miniprogram-licia/sortKeys.js | 56 + src/miniprogram_npm/miniprogram-licia/spaceCase.js | 6 + src/miniprogram_npm/miniprogram-licia/splitCase.js | 13 + src/miniprogram_npm/miniprogram-licia/splitPath.js | 11 + src/miniprogram_npm/miniprogram-licia/startWith.js | 5 + src/miniprogram_npm/miniprogram-licia/strHash.js | 10 + .../miniprogram-licia/strToBytes.js | 21 + src/miniprogram_npm/miniprogram-licia/strTpl.js | 10 + src/miniprogram_npm/miniprogram-licia/strWidth.js | 17 + src/miniprogram_npm/miniprogram-licia/stringify.js | 44 + .../miniprogram-licia/stringifyAll.js | 403 + src/miniprogram_npm/miniprogram-licia/stripAnsi.js | 6 + src/miniprogram_npm/miniprogram-licia/stripBom.js | 8 + src/miniprogram_npm/miniprogram-licia/stripCmt.js | 56 + .../miniprogram-licia/stripColor.js | 6 + .../miniprogram-licia/stripHtmlTag.js | 6 + .../miniprogram-licia/stripIndent.js | 40 + src/miniprogram_npm/miniprogram-licia/stripNum.js | 7 + src/miniprogram_npm/miniprogram-licia/sum.js | 8 + src/miniprogram_npm/miniprogram-licia/swap.js | 8 + src/miniprogram_npm/miniprogram-licia/table.js | 232 + src/miniprogram_npm/miniprogram-licia/throttle.js | 6 + src/miniprogram_npm/miniprogram-licia/timeAgo.js | 42 + src/miniprogram_npm/miniprogram-licia/timeTaken.js | 8 + src/miniprogram_npm/miniprogram-licia/times.js | 11 + src/miniprogram_npm/miniprogram-licia/toArr.js | 12 + src/miniprogram_npm/miniprogram-licia/toAsync.js | 52 + src/miniprogram_npm/miniprogram-licia/toBool.js | 10 + src/miniprogram_npm/miniprogram-licia/toDate.js | 14 + src/miniprogram_npm/miniprogram-licia/toInt.js | 8 + src/miniprogram_npm/miniprogram-licia/toNum.js | 15 + src/miniprogram_npm/miniprogram-licia/toSrc.js | 14 + src/miniprogram_npm/miniprogram-licia/toStr.js | 5 + src/miniprogram_npm/miniprogram-licia/topoSort.js | 43 + src/miniprogram_npm/miniprogram-licia/trim.js | 10 + src/miniprogram_npm/miniprogram-licia/truncate.js | 27 + src/miniprogram_npm/miniprogram-licia/tryIt.js | 12 + src/miniprogram_npm/miniprogram-licia/type.js | 24 + src/miniprogram_npm/miniprogram-licia/types.js | 3 + src/miniprogram_npm/miniprogram-licia/ucs2.js | 37 + src/miniprogram_npm/miniprogram-licia/unescape.js | 15 + src/miniprogram_npm/miniprogram-licia/union.js | 8 + src/miniprogram_npm/miniprogram-licia/uniqId.js | 7 + src/miniprogram_npm/miniprogram-licia/unique.js | 16 + .../miniprogram-licia/universalify.js | 31 + src/miniprogram_npm/miniprogram-licia/unzip.js | 18 + src/miniprogram_npm/miniprogram-licia/upperCase.js | 6 + .../miniprogram-licia/upperFirst.js | 6 + src/miniprogram_npm/miniprogram-licia/use.js | 29 + src/miniprogram_npm/miniprogram-licia/utf8.js | 127 + src/miniprogram_npm/miniprogram-licia/uuid.js | 34 + src/miniprogram_npm/miniprogram-licia/values.js | 10 + src/miniprogram_npm/miniprogram-licia/vlq.js | 69 + src/miniprogram_npm/miniprogram-licia/waitUntil.js | 36 + src/miniprogram_npm/miniprogram-licia/waterfall.js | 27 + src/miniprogram_npm/miniprogram-licia/wordWrap.js | 49 + .../miniprogram-licia/wordsToBytes.js | 9 + src/miniprogram_npm/miniprogram-licia/wrap.js | 6 + src/miniprogram_npm/miniprogram-licia/wx.js | 69 + src/miniprogram_npm/miniprogram-licia/zip.js | 5 + src/miniprogram_npm/mp-html/index.js | 8 + src/miniprogram_npm/mp-html/index.json | 1 + src/miniprogram_npm/mp-html/index.wxml | 1 + src/miniprogram_npm/mp-html/index.wxss | 1 + src/miniprogram_npm/mp-html/node/node.js | 1 + src/miniprogram_npm/mp-html/node/node.json | 1 + src/miniprogram_npm/mp-html/node/node.wxml | 1 + src/miniprogram_npm/mp-html/node/node.wxss | 1 + src/miniprogram_npm/mp-html/parser.js | 1 + src/miniprogram_npm/number-precision/index.js | 177 + src/miniprogram_npm/number-precision/index.js.map | 1 + src/miniprogram_npm/tslib/index.js | 319 + src/miniprogram_npm/tslib/index.js.map | 1 + src/pages/articleDetail/index.json | 6 + src/pages/articleDetail/index.scss | 208 + src/pages/articleDetail/index.ts | 10 + src/pages/articleDetail/index.wxml | 67 + src/pages/confirmInfo/index.json | 4 + src/pages/confirmInfo/index.scss | 248 + src/pages/confirmInfo/index.ts | 16 + src/pages/confirmInfo/index.wxml | 105 + src/pages/drugMap/index.json | 7 + src/pages/drugMap/index.scss | 23 + src/pages/drugMap/index.ts | 8 + src/pages/drugMap/index.wxml | 12 + src/pages/followDetail/index.json | 9 + src/pages/followDetail/index.scss | 134 + src/pages/followDetail/index.ts | 103 + src/pages/followDetail/index.wxml | 55 + src/pages/followForm/index.json | 9 + src/pages/followForm/index.scss | 131 + src/pages/followForm/index.ts | 95 + src/pages/followForm/index.wxml | 59 + src/pages/health/index.json | 10 + src/pages/health/index.scss | 269 + src/pages/health/index.ts | 226 + src/pages/health/index.wxml | 125 + src/pages/heartDetail/index.json | 9 + src/pages/heartDetail/index.scss | 160 + src/pages/heartDetail/index.ts | 95 + src/pages/heartDetail/index.wxml | 37 + src/pages/heartForm/index.json | 9 + src/pages/heartForm/index.scss | 164 + src/pages/heartForm/index.ts | 95 + src/pages/heartForm/index.wxml | 39 + src/pages/hotTopic/index.json | 7 + src/pages/hotTopic/index.scss | 75 + src/pages/hotTopic/index.ts | 80 + src/pages/hotTopic/index.wxml | 20 + src/pages/hotTopicDetail/index.json | 7 + src/pages/hotTopicDetail/index.scss | 217 + src/pages/hotTopicDetail/index.ts | 80 + src/pages/hotTopicDetail/index.wxml | 74 + src/pages/index/index.json | 7 + src/pages/index/index.scss | 328 + src/pages/index/index.ts | 80 + src/pages/index/index.wxml | 84 + src/pages/login/index.json | 5 + src/pages/login/index.scss | 99 + src/pages/login/index.ts | 191 + src/pages/login/index.wxml | 45 + src/pages/my/index.json | 7 + src/pages/my/index.scss | 7 + src/pages/my/index.ts | 130 + src/pages/my/index.wxml | 3 + src/pages/start/index.json | 4 + src/pages/start/index.scss | 4 + src/pages/start/index.ts | 19 + src/pages/start/index.wxml | 1 + src/pages/videoDetail/index.json | 7 + src/pages/videoDetail/index.scss | 132 + src/pages/videoDetail/index.ts | 272 + src/pages/videoDetail/index.wxml | 84 + src/pages/videoList/index.json | 7 + src/pages/videoList/index.scss | 125 + src/pages/videoList/index.ts | 80 + src/pages/videoList/index.wxml | 36 + src/pages/wall/index.json | 7 + src/pages/wall/index.scss | 252 + src/pages/wall/index.ts | 80 + src/pages/wall/index.wxml | 84 + src/pages/wallDetail/index.json | 7 + src/pages/wallDetail/index.scss | 419 + src/pages/wallDetail/index.ts | 89 + src/pages/wallDetail/index.wxml | 159 + src/pages/wallForm/index.json | 9 + src/pages/wallForm/index.scss | 240 + src/pages/wallForm/index.ts | 98 + src/pages/wallForm/index.wxml | 78 + src/pages/wechatWork/index.json | 7 + src/pages/wechatWork/index.scss | 59 + src/pages/wechatWork/index.ts | 8 + src/pages/wechatWork/index.wxml | 17 + src/sitemap.json | 7 + src/utils/dayjs/day-zh-cn.js | 2 + src/utils/dayjs/relativeTime.d.ts | 24 + src/utils/dayjs/relativeTime.js | 1 + src/utils/page.ts | 105 + src/utils/tools.wxs | 12 + src/utils/util.ts | 29 + tsconfig.json | 37 + typings/index.d.ts | 73 + 1100 files changed, 169725 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .neoconf.json create mode 100644 .prettierrc create mode 100644 README.md create mode 100644 babel.config.json create mode 100644 dist.nu create mode 100644 dist.ps1 create mode 100644 dist.sh create mode 100644 eslint.config.mjs create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 project.config.json create mode 100644 project.private.config.json create mode 100644 src/api/request.ts create mode 100644 src/app.json create mode 100644 src/app.scss create mode 100644 src/app.ts create mode 100644 src/components/calendar/core.js create mode 100644 src/components/calendar/helper.js create mode 100644 src/components/calendar/index.d.ts create mode 100644 src/components/calendar/index.js create mode 100644 src/components/calendar/index.json create mode 100644 src/components/calendar/index.wxml create mode 100644 src/components/calendar/index.wxss create mode 100644 src/components/calendar/plugins/holidays/holidays-map.js create mode 100644 src/components/calendar/plugins/holidays/index.d.ts create mode 100644 src/components/calendar/plugins/holidays/index.js create mode 100644 src/components/calendar/plugins/index.js create mode 100644 src/components/calendar/plugins/preset/base.js create mode 100644 src/components/calendar/plugins/preset/get-calendar-data.js create mode 100644 src/components/calendar/plugins/preset/index.d.ts create mode 100644 src/components/calendar/plugins/preset/index.js create mode 100644 src/components/calendar/plugins/selectable.d.ts create mode 100644 src/components/calendar/plugins/selectable.js create mode 100644 src/components/calendar/plugins/solarLunar/convertSolarLunar.js create mode 100644 src/components/calendar/plugins/solarLunar/index.d.ts create mode 100644 src/components/calendar/plugins/solarLunar/index.js create mode 100644 src/components/calendar/plugins/time-range.js create mode 100644 src/components/calendar/plugins/todo.d.ts create mode 100644 src/components/calendar/plugins/todo.js create mode 100644 src/components/calendar/plugins/week.js create mode 100644 src/components/calendar/render.js create mode 100644 src/components/calendar/theme/iconfont.wxss create mode 100644 src/components/calendar/theme/theme-default.wxss create mode 100644 src/components/calendar/theme/theme-elegant.wxss create mode 100644 src/components/calendar/theme/theme-geneB.wxss create mode 100644 src/components/calendar/theme/theme-geneDoctorB.wxss create mode 100644 src/components/calendar/theme/theme-nuohe.wxss create mode 100644 src/components/calendar/utils/index.js create mode 100644 src/components/calendar/utils/logger.js create mode 100644 src/components/calendar/utils/wxData.js create mode 100644 src/components/customPoster/README.md create mode 100644 src/components/customPoster/index.js create mode 100644 src/components/customPoster/index.json create mode 100644 src/components/customPoster/index.scss create mode 100644 src/components/customPoster/index.wxml create mode 100644 src/components/customPoster/wxml2canvas/README.md create mode 100644 src/components/customPoster/wxml2canvas/index.js create mode 100644 src/components/customPoster/wxml2canvas/index.js.map create mode 100644 src/components/ec-canvas/ec-canvas.js create mode 100644 src/components/ec-canvas/ec-canvas.json create mode 100644 src/components/ec-canvas/ec-canvas.wxml create mode 100644 src/components/ec-canvas/ec-canvas.wxss create mode 100644 src/components/ec-canvas/echarts.js create mode 100644 src/components/ec-canvas/wx-canvas.js create mode 100644 src/components/navbar/index.json create mode 100644 src/components/navbar/index.scss create mode 100644 src/components/navbar/index.ts create mode 100644 src/components/navbar/index.wxml create mode 100644 src/components/pagination/index.js create mode 100644 src/components/pagination/index.json create mode 100644 src/components/pagination/index.scss create mode 100644 src/components/pagination/index.wxml create mode 100644 src/components/pickerArea/index.json create mode 100644 src/components/pickerArea/index.scss create mode 100644 src/components/pickerArea/index.ts create mode 100644 src/components/pickerArea/index.wxml create mode 100644 src/components/popup/index.json create mode 100644 src/components/popup/index.scss create mode 100644 src/components/popup/index.ts create mode 100644 src/components/popup/index.wxml create mode 100644 src/components/uploadFile/index.js create mode 100644 src/components/uploadFile/index.json create mode 100644 src/components/uploadFile/index.scss create mode 100644 src/components/uploadFile/index.wxml create mode 100644 src/custom-tab-bar/index.json create mode 100644 src/custom-tab-bar/index.scss create mode 100644 src/custom-tab-bar/index.ts create mode 100644 src/custom-tab-bar/index.wxml create mode 100644 src/doc/pages/doc1/index.json create mode 100644 src/doc/pages/doc1/index.scss create mode 100644 src/doc/pages/doc1/index.ts create mode 100644 src/doc/pages/doc1/index.wxml create mode 100644 src/doc/pages/doc2/index.json create mode 100644 src/doc/pages/doc2/index.scss create mode 100644 src/doc/pages/doc2/index.ts create mode 100644 src/doc/pages/doc2/index.wxml create mode 100644 src/doc/pages/doc3/index.json create mode 100644 src/doc/pages/doc3/index.scss create mode 100644 src/doc/pages/doc3/index.ts create mode 100644 src/doc/pages/doc3/index.wxml create mode 100644 src/doc/pages/doc4/index.json create mode 100644 src/doc/pages/doc4/index.scss create mode 100644 src/doc/pages/doc4/index.ts create mode 100644 src/doc/pages/doc4/index.wxml create mode 100644 src/doc/pages/doc5/index.json create mode 100644 src/doc/pages/doc5/index.scss create mode 100644 src/doc/pages/doc5/index.ts create mode 100644 src/doc/pages/doc5/index.wxml create mode 100644 src/images/bg1.png create mode 100644 src/images/bg10.png create mode 100644 src/images/bg11.png create mode 100644 src/images/bg2.png create mode 100644 src/images/bg3.png create mode 100644 src/images/bg4.png create mode 100644 src/images/bg5.png create mode 100644 src/images/bg6.png create mode 100644 src/images/bg7.png create mode 100644 src/images/bg8.png create mode 100644 src/images/bg9.png create mode 100644 src/images/btn1.png create mode 100644 src/images/icon1.png create mode 100644 src/images/icon10.png create mode 100644 src/images/icon11.png create mode 100644 src/images/icon12.png create mode 100644 src/images/icon13.png create mode 100644 src/images/icon14.png create mode 100644 src/images/icon15.png create mode 100644 src/images/icon16.png create mode 100644 src/images/icon17.png create mode 100644 src/images/icon18.png create mode 100644 src/images/icon19.png create mode 100644 src/images/icon2.png create mode 100644 src/images/icon20.png create mode 100644 src/images/icon21.png create mode 100644 src/images/icon22.png create mode 100644 src/images/icon23.png create mode 100644 src/images/icon24.png create mode 100644 src/images/icon25.png create mode 100644 src/images/icon26.png create mode 100644 src/images/icon27.png create mode 100644 src/images/icon28-1.png create mode 100644 src/images/icon28.png create mode 100644 src/images/icon29-1.png create mode 100644 src/images/icon29.png create mode 100644 src/images/icon3.png create mode 100644 src/images/icon4.png create mode 100644 src/images/icon5.png create mode 100644 src/images/icon6.png create mode 100644 src/images/icon7.png create mode 100644 src/images/icon8-1.png create mode 100644 src/images/icon8.png create mode 100644 src/images/icon9-1.png create mode 100644 src/images/icon9.png create mode 100644 src/images/logo1.png create mode 100644 src/images/logo2.png create mode 100644 src/images/tabbar-center.png create mode 100644 src/miniprogram_npm/@galacean/effects/index.js create mode 100644 src/miniprogram_npm/@galacean/effects/index.js.map create mode 100644 src/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.js create mode 100644 src/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.json create mode 100644 src/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.wxml create mode 100644 src/miniprogram_npm/@miniprogram-component-plus/video-swiper/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/action-sheet/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/action-sheet/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/action-sheet/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/action-sheet/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/action-sheet/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/area/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/area/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/area/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/area/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/area/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/area/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/button/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/button/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/button/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/button/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/button/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/button/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/calendar.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/header/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/header/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/month/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/month/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/utils.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/utils.js create mode 100644 src/miniprogram_npm/@vant/weapp/calendar/utils.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/card/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/card/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/card/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/card/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/card/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/cascader/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/cascader/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/cascader/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/cascader/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/cascader/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/cascader/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/cell-group/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/cell-group/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/cell-group/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/cell-group/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/cell-group/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/cell/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/cell/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/cell/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/cell/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/cell/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/cell/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox-group/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox-group/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox-group/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/checkbox/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/circle/canvas.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/circle/canvas.js create mode 100644 src/miniprogram_npm/@vant/weapp/circle/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/circle/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/circle/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/circle/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/circle/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/col/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/col/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/col/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/col/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/col/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/col/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/collapse-item/animate.js create mode 100644 src/miniprogram_npm/@vant/weapp/collapse-item/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/collapse-item/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/collapse-item/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/collapse-item/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/collapse-item/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/collapse/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/collapse/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/collapse/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/collapse/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/collapse/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/common/color.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/common/color.js create mode 100644 src/miniprogram_npm/@vant/weapp/common/component.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/common/component.js create mode 100644 src/miniprogram_npm/@vant/weapp/common/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/common/relation.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/common/relation.js create mode 100644 src/miniprogram_npm/@vant/weapp/common/style/clearfix.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/common/style/hairline.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/common/style/var.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/common/utils.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/common/utils.js create mode 100644 src/miniprogram_npm/@vant/weapp/common/validator.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/common/validator.js create mode 100644 src/miniprogram_npm/@vant/weapp/common/version.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/common/version.js create mode 100644 src/miniprogram_npm/@vant/weapp/config-provider/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/config-provider/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/config-provider/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/config-provider/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/config-provider/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/count-down/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/count-down/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/count-down/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/count-down/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/count-down/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/count-down/utils.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/count-down/utils.js create mode 100644 src/miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/datetime-picker/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/datetime-picker/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/datetime-picker/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/definitions/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/definitions/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/dialog/dialog.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/dialog/dialog.js create mode 100644 src/miniprogram_npm/@vant/weapp/dialog/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/dialog/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/dialog/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/dialog/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/dialog/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/divider/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/divider/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/divider/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/divider/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/divider/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/divider/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-item/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-item/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-item/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-item/shared.js create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-menu/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-menu/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/empty/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/empty/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/empty/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/empty/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/empty/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/empty/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/field/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/field/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/field/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/field/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/field/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/field/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/field/input.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/field/props.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/field/props.js create mode 100644 src/miniprogram_npm/@vant/weapp/field/textarea.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/field/types.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/field/types.js create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-button/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-button/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-button/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-button/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-button/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-icon/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-icon/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-icon/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action-icon/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/goods-action/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/grid-item/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/grid-item/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/grid-item/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/grid-item/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/grid-item/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/grid-item/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/grid/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/grid/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/grid/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/grid/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/grid/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/grid/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/icon/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/icon/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/icon/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/icon/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/icon/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/icon/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/image/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/image/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/image/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/image/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/image/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/image/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/index-anchor/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/index-anchor/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/index-anchor/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/index-anchor/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/index-anchor/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/index-bar/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/index-bar/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/index-bar/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/index-bar/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/index-bar/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/info/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/info/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/info/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/info/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/info/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/loading/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/loading/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/loading/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/loading/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/loading/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/loading/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/basic.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/basic.js create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/button.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/button.js create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/link.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/link.js create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/page-scroll.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/page-scroll.js create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/touch.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/touch.js create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/transition.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/mixins/transition.js create mode 100644 src/miniprogram_npm/@vant/weapp/nav-bar/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/nav-bar/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/nav-bar/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/nav-bar/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/nav-bar/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/nav-bar/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/notice-bar/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/notice-bar/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/notice-bar/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/notice-bar/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/notice-bar/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/notice-bar/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/notify/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/notify/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/notify/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/notify/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/notify/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/notify/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/notify/notify.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/notify/notify.js create mode 100644 src/miniprogram_npm/@vant/weapp/overlay/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/overlay/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/overlay/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/overlay/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/overlay/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/overlay/overlay.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/panel/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/panel/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/panel/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/panel/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/panel/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/picker-column/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/picker-column/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/picker-column/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/picker-column/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/picker-column/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/picker-column/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/picker/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/picker/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/picker/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/picker/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/picker/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/picker/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/picker/shared.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/picker/shared.js create mode 100644 src/miniprogram_npm/@vant/weapp/picker/toolbar.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/popup/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/popup/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/popup/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/popup/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/popup/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/popup/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/popup/popup.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/progress/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/progress/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/progress/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/progress/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/progress/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/progress/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/radio-group/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/radio-group/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/radio-group/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/radio-group/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/radio-group/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/radio/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/radio/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/radio/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/radio/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/radio/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/radio/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/rate/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/rate/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/rate/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/rate/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/rate/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/row/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/row/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/row/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/row/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/row/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/row/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/search/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/search/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/search/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/search/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/search/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/options.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/options.js create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/options.json create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/options.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/options.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/share-sheet/options.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar-item/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar-item/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar-item/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar-item/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar-item/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/sidebar/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/skeleton/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/skeleton/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/skeleton/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/skeleton/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/skeleton/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/slider/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/slider/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/slider/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/slider/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/slider/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/slider/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/stepper/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/stepper/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/stepper/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/stepper/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/stepper/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/stepper/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/steps/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/steps/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/steps/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/steps/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/steps/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/sticky/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/sticky/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/sticky/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/sticky/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/sticky/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/sticky/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/submit-bar/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/submit-bar/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/submit-bar/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/submit-bar/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/submit-bar/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/swipe-cell/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/swipe-cell/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/swipe-cell/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/swipe-cell/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/swipe-cell/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/switch/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/switch/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/switch/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/switch/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/switch/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/switch/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/tab/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/tab/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/tab/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/tab/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/tab/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar-item/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar-item/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar-item/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar-item/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar-item/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/tabbar/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/tabs/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/tabs/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/tabs/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/tabs/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/tabs/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/tabs/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/tag/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/tag/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/tag/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/tag/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/tag/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/tag/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/toast/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/toast/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/toast/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/toast/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/toast/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/toast/toast.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/toast/toast.js create mode 100644 src/miniprogram_npm/@vant/weapp/transition/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/transition/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/transition/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/transition/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/transition/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/transition/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/tree-select/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/tree-select/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/tree-select/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/tree-select/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/tree-select/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/tree-select/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/index.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/index.js create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/index.json create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/index.wxml create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/index.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/index.wxss create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/shared.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/shared.js create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/utils.d.ts create mode 100644 src/miniprogram_npm/@vant/weapp/uploader/utils.js create mode 100644 src/miniprogram_npm/@vant/weapp/wxs/add-unit.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/wxs/array.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/wxs/bem.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/wxs/memoize.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/wxs/object.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/wxs/style.wxs create mode 100644 src/miniprogram_npm/@vant/weapp/wxs/utils.wxs create mode 100644 src/miniprogram_npm/a-calc/index.js create mode 100644 src/miniprogram_npm/a-calc/index.js.map create mode 100644 src/miniprogram_npm/dayjs/index.js create mode 100644 src/miniprogram_npm/dayjs/index.js.map create mode 100644 src/miniprogram_npm/echarts/index.js create mode 100644 src/miniprogram_npm/echarts/index.js.map create mode 100644 src/miniprogram_npm/miniprogram-licia/Benchmark.js create mode 100644 src/miniprogram_npm/miniprogram-licia/BloomFilter.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Caseless.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Channel.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Class.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Color.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Delegator.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Dispatcher.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Emitter.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Enum.js create mode 100644 src/miniprogram_npm/miniprogram-licia/HashTable.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Heap.js create mode 100644 src/miniprogram_npm/miniprogram-licia/HeapSnapshot.js create mode 100644 src/miniprogram_npm/miniprogram-licia/I18n.js create mode 100644 src/miniprogram_npm/miniprogram-licia/JsonTransformer.js create mode 100644 src/miniprogram_npm/miniprogram-licia/LinkedList.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Logger.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Lru.js create mode 100644 src/miniprogram_npm/miniprogram-licia/PriorityQueue.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Promise.js create mode 100644 src/miniprogram_npm/miniprogram-licia/PseudoMap.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Queue.js create mode 100644 src/miniprogram_npm/miniprogram-licia/QuickLru.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Readiness.js create mode 100644 src/miniprogram_npm/miniprogram-licia/ReduceStore.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Semaphore.js create mode 100644 src/miniprogram_npm/miniprogram-licia/SingleEmitter.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Stack.js create mode 100644 src/miniprogram_npm/miniprogram-licia/State.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Store.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Trace.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Tracing.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Trie.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Tween.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Url.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Validator.js create mode 100644 src/miniprogram_npm/miniprogram-licia/Wrr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/abbrev.js create mode 100644 src/miniprogram_npm/miniprogram-licia/after.js create mode 100644 src/miniprogram_npm/miniprogram-licia/allKeys.js create mode 100644 src/miniprogram_npm/miniprogram-licia/arrToMap.js create mode 100644 src/miniprogram_npm/miniprogram-licia/atob.js create mode 100644 src/miniprogram_npm/miniprogram-licia/average.js create mode 100644 src/miniprogram_npm/miniprogram-licia/base64.js create mode 100644 src/miniprogram_npm/miniprogram-licia/before.js create mode 100644 src/miniprogram_npm/miniprogram-licia/binarySearch.js create mode 100644 src/miniprogram_npm/miniprogram-licia/bind.js create mode 100644 src/miniprogram_npm/miniprogram-licia/btoa.js create mode 100644 src/miniprogram_npm/miniprogram-licia/bubbleSort.js create mode 100644 src/miniprogram_npm/miniprogram-licia/bytesToStr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/bytesToWords.js create mode 100644 src/miniprogram_npm/miniprogram-licia/callbackify.js create mode 100644 src/miniprogram_npm/miniprogram-licia/camelCase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/capitalize.js create mode 100644 src/miniprogram_npm/miniprogram-licia/castPath.js create mode 100644 src/miniprogram_npm/miniprogram-licia/centerAlign.js create mode 100644 src/miniprogram_npm/miniprogram-licia/char.js create mode 100644 src/miniprogram_npm/miniprogram-licia/chunk.js create mode 100644 src/miniprogram_npm/miniprogram-licia/clamp.js create mode 100644 src/miniprogram_npm/miniprogram-licia/className.js create mode 100644 src/miniprogram_npm/miniprogram-licia/clone.js create mode 100644 src/miniprogram_npm/miniprogram-licia/cloneDeep.js create mode 100644 src/miniprogram_npm/miniprogram-licia/cmpVersion.js create mode 100644 src/miniprogram_npm/miniprogram-licia/combine.js create mode 100644 src/miniprogram_npm/miniprogram-licia/compact.js create mode 100644 src/miniprogram_npm/miniprogram-licia/compose.js create mode 100644 src/miniprogram_npm/miniprogram-licia/concat.js create mode 100644 src/miniprogram_npm/miniprogram-licia/contain.js create mode 100644 src/miniprogram_npm/miniprogram-licia/convertBase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/convertBin.js create mode 100644 src/miniprogram_npm/miniprogram-licia/crc1.js create mode 100644 src/miniprogram_npm/miniprogram-licia/crc16.js create mode 100644 src/miniprogram_npm/miniprogram-licia/crc32.js create mode 100644 src/miniprogram_npm/miniprogram-licia/crc8.js create mode 100644 src/miniprogram_npm/miniprogram-licia/create.js create mode 100644 src/miniprogram_npm/miniprogram-licia/createAssigner.js create mode 100644 src/miniprogram_npm/miniprogram-licia/css.js create mode 100644 src/miniprogram_npm/miniprogram-licia/cssPriority.js create mode 100644 src/miniprogram_npm/miniprogram-licia/curry.js create mode 100644 src/miniprogram_npm/miniprogram-licia/dataUrl.js create mode 100644 src/miniprogram_npm/miniprogram-licia/dataView.js create mode 100644 src/miniprogram_npm/miniprogram-licia/dateFormat.js create mode 100644 src/miniprogram_npm/miniprogram-licia/debounce.js create mode 100644 src/miniprogram_npm/miniprogram-licia/deburr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/decodeUriComponent.js create mode 100644 src/miniprogram_npm/miniprogram-licia/defaults.js create mode 100644 src/miniprogram_npm/miniprogram-licia/define.js create mode 100644 src/miniprogram_npm/miniprogram-licia/defineProp.js create mode 100644 src/miniprogram_npm/miniprogram-licia/defined.js create mode 100644 src/miniprogram_npm/miniprogram-licia/delay.js create mode 100644 src/miniprogram_npm/miniprogram-licia/deprecate.js create mode 100644 src/miniprogram_npm/miniprogram-licia/detectBrowser.js create mode 100644 src/miniprogram_npm/miniprogram-licia/detectMocha.js create mode 100644 src/miniprogram_npm/miniprogram-licia/detectOs.js create mode 100644 src/miniprogram_npm/miniprogram-licia/difference.js create mode 100644 src/miniprogram_npm/miniprogram-licia/dotCase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/durationFormat.js create mode 100644 src/miniprogram_npm/miniprogram-licia/each.js create mode 100644 src/miniprogram_npm/miniprogram-licia/easing.js create mode 100644 src/miniprogram_npm/miniprogram-licia/endWith.js create mode 100644 src/miniprogram_npm/miniprogram-licia/escape.js create mode 100644 src/miniprogram_npm/miniprogram-licia/escapeJsStr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/escapeRegExp.js create mode 100644 src/miniprogram_npm/miniprogram-licia/every.js create mode 100644 src/miniprogram_npm/miniprogram-licia/extend.js create mode 100644 src/miniprogram_npm/miniprogram-licia/extendDeep.js create mode 100644 src/miniprogram_npm/miniprogram-licia/extendOwn.js create mode 100644 src/miniprogram_npm/miniprogram-licia/extractBlockCmts.js create mode 100644 src/miniprogram_npm/miniprogram-licia/extractUrls.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fibonacci.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fileSize.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fileType.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fileUrl.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fill.js create mode 100644 src/miniprogram_npm/miniprogram-licia/filter.js create mode 100644 src/miniprogram_npm/miniprogram-licia/find.js create mode 100644 src/miniprogram_npm/miniprogram-licia/findIdx.js create mode 100644 src/miniprogram_npm/miniprogram-licia/findKey.js create mode 100644 src/miniprogram_npm/miniprogram-licia/findLastIdx.js create mode 100644 src/miniprogram_npm/miniprogram-licia/flatten.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fnArgs.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fnParams.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fnv1a.js create mode 100644 src/miniprogram_npm/miniprogram-licia/format.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fraction.js create mode 100644 src/miniprogram_npm/miniprogram-licia/freeze.js create mode 100644 src/miniprogram_npm/miniprogram-licia/freezeDeep.js create mode 100644 src/miniprogram_npm/miniprogram-licia/fuzzySearch.js create mode 100644 src/miniprogram_npm/miniprogram-licia/gcd.js create mode 100644 src/miniprogram_npm/miniprogram-licia/getProto.js create mode 100644 src/miniprogram_npm/miniprogram-licia/getUrlParam.js create mode 100644 src/miniprogram_npm/miniprogram-licia/golangify.js create mode 100644 src/miniprogram_npm/miniprogram-licia/has.js create mode 100644 src/miniprogram_npm/miniprogram-licia/heapSort.js create mode 100644 src/miniprogram_npm/miniprogram-licia/hex.js create mode 100644 src/miniprogram_npm/miniprogram-licia/highlight.js create mode 100644 src/miniprogram_npm/miniprogram-licia/hookFn.js create mode 100644 src/miniprogram_npm/miniprogram-licia/hslToRgb.js create mode 100644 src/miniprogram_npm/miniprogram-licia/html.js create mode 100644 src/miniprogram_npm/miniprogram-licia/identity.js create mode 100644 src/miniprogram_npm/miniprogram-licia/idxOf.js create mode 100644 src/miniprogram_npm/miniprogram-licia/indent.js create mode 100644 src/miniprogram_npm/miniprogram-licia/index.js create mode 100644 src/miniprogram_npm/miniprogram-licia/inherits.js create mode 100644 src/miniprogram_npm/miniprogram-licia/ini.js create mode 100644 src/miniprogram_npm/miniprogram-licia/insertionSort.js create mode 100644 src/miniprogram_npm/miniprogram-licia/intersect.js create mode 100644 src/miniprogram_npm/miniprogram-licia/intersectRange.js create mode 100644 src/miniprogram_npm/miniprogram-licia/invariant.js create mode 100644 src/miniprogram_npm/miniprogram-licia/invert.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isAbsoluteUrl.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isArgs.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isArr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isArrBuffer.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isArrLike.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isAsyncFn.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isBool.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isBrowser.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isBuffer.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isClose.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isCyclic.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isDataUrl.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isDate.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isEmail.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isEmpty.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isEqual.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isErr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isEven.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isFinite.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isFn.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isFullWidth.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isGeneratorFn.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isInt.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isIp.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isJson.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isLeapYear.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isMac.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isMap.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isMatch.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isMiniProgram.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isMobile.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isNaN.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isNative.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isNil.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isNode.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isNull.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isNum.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isNumeric.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isObj.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isOdd.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isPlainObj.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isPrime.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isPrimitive.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isPromise.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isRegExp.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isRelative.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isSet.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isSorted.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isStr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isStrBlank.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isSymbol.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isTypedArr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isUndef.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isUrl.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isWeakMap.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isWeakSet.js create mode 100644 src/miniprogram_npm/miniprogram-licia/isWindows.js create mode 100644 src/miniprogram_npm/miniprogram-licia/jsonClone.js create mode 100644 src/miniprogram_npm/miniprogram-licia/kebabCase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/keyCode.js create mode 100644 src/miniprogram_npm/miniprogram-licia/keys.js create mode 100644 src/miniprogram_npm/miniprogram-licia/last.js create mode 100644 src/miniprogram_npm/miniprogram-licia/levenshtein.js create mode 100644 src/miniprogram_npm/miniprogram-licia/linkify.js create mode 100644 src/miniprogram_npm/miniprogram-licia/longest.js create mode 100644 src/miniprogram_npm/miniprogram-licia/lowerCase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/lpad.js create mode 100644 src/miniprogram_npm/miniprogram-licia/ltrim.js create mode 100644 src/miniprogram_npm/miniprogram-licia/map.js create mode 100644 src/miniprogram_npm/miniprogram-licia/mapObj.js create mode 100644 src/miniprogram_npm/miniprogram-licia/matcher.js create mode 100644 src/miniprogram_npm/miniprogram-licia/max.js create mode 100644 src/miniprogram_npm/miniprogram-licia/md5.js create mode 100644 src/miniprogram_npm/miniprogram-licia/memStorage.js create mode 100644 src/miniprogram_npm/miniprogram-licia/memoize.js create mode 100644 src/miniprogram_npm/miniprogram-licia/mergeArr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/mergeSort.js create mode 100644 src/miniprogram_npm/miniprogram-licia/methods.js create mode 100644 src/miniprogram_npm/miniprogram-licia/mime.js create mode 100644 src/miniprogram_npm/miniprogram-licia/min.js create mode 100644 src/miniprogram_npm/miniprogram-licia/moment.js create mode 100644 src/miniprogram_npm/miniprogram-licia/morse.js create mode 100644 src/miniprogram_npm/miniprogram-licia/ms.js create mode 100644 src/miniprogram_npm/miniprogram-licia/naturalSort.js create mode 100644 src/miniprogram_npm/miniprogram-licia/negate.js create mode 100644 src/miniprogram_npm/miniprogram-licia/nextTick.js create mode 100644 src/miniprogram_npm/miniprogram-licia/noop.js create mode 100644 src/miniprogram_npm/miniprogram-licia/normalizeHeader.js create mode 100644 src/miniprogram_npm/miniprogram-licia/normalizePath.js create mode 100644 src/miniprogram_npm/miniprogram-licia/normalizePhone.js create mode 100644 src/miniprogram_npm/miniprogram-licia/now.js create mode 100644 src/miniprogram_npm/miniprogram-licia/objToStr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/omit.js create mode 100644 src/miniprogram_npm/miniprogram-licia/once.js create mode 100644 src/miniprogram_npm/miniprogram-licia/optimizeCb.js create mode 100644 src/miniprogram_npm/miniprogram-licia/ordinal.js create mode 100644 src/miniprogram_npm/miniprogram-licia/pad.js create mode 100644 src/miniprogram_npm/miniprogram-licia/pairs.js create mode 100644 src/miniprogram_npm/miniprogram-licia/parallel.js create mode 100644 src/miniprogram_npm/miniprogram-licia/parseArgs.js create mode 100644 src/miniprogram_npm/miniprogram-licia/parseHtml.js create mode 100644 src/miniprogram_npm/miniprogram-licia/partial.js create mode 100644 src/miniprogram_npm/miniprogram-licia/pascalCase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/perfNow.js create mode 100644 src/miniprogram_npm/miniprogram-licia/pick.js create mode 100644 src/miniprogram_npm/miniprogram-licia/pluck.js create mode 100644 src/miniprogram_npm/miniprogram-licia/precision.js create mode 100644 src/miniprogram_npm/miniprogram-licia/promisify.js create mode 100644 src/miniprogram_npm/miniprogram-licia/property.js create mode 100644 src/miniprogram_npm/miniprogram-licia/query.js create mode 100644 src/miniprogram_npm/miniprogram-licia/quickSort.js create mode 100644 src/miniprogram_npm/miniprogram-licia/raf.js create mode 100644 src/miniprogram_npm/miniprogram-licia/random.js create mode 100644 src/miniprogram_npm/miniprogram-licia/randomBytes.js create mode 100644 src/miniprogram_npm/miniprogram-licia/randomColor.js create mode 100644 src/miniprogram_npm/miniprogram-licia/randomId.js create mode 100644 src/miniprogram_npm/miniprogram-licia/randomItem.js create mode 100644 src/miniprogram_npm/miniprogram-licia/range.js create mode 100644 src/miniprogram_npm/miniprogram-licia/rc4.js create mode 100644 src/miniprogram_npm/miniprogram-licia/reduce.js create mode 100644 src/miniprogram_npm/miniprogram-licia/reduceRight.js create mode 100644 src/miniprogram_npm/miniprogram-licia/reject.js create mode 100644 src/miniprogram_npm/miniprogram-licia/remove.js create mode 100644 src/miniprogram_npm/miniprogram-licia/repeat.js create mode 100644 src/miniprogram_npm/miniprogram-licia/replaceAll.js create mode 100644 src/miniprogram_npm/miniprogram-licia/restArgs.js create mode 100644 src/miniprogram_npm/miniprogram-licia/reverse.js create mode 100644 src/miniprogram_npm/miniprogram-licia/rgbToHsl.js create mode 100644 src/miniprogram_npm/miniprogram-licia/root.js create mode 100644 src/miniprogram_npm/miniprogram-licia/rpad.js create mode 100644 src/miniprogram_npm/miniprogram-licia/rtrim.js create mode 100644 src/miniprogram_npm/miniprogram-licia/safeCb.js create mode 100644 src/miniprogram_npm/miniprogram-licia/safeDel.js create mode 100644 src/miniprogram_npm/miniprogram-licia/safeGet.js create mode 100644 src/miniprogram_npm/miniprogram-licia/safeSet.js create mode 100644 src/miniprogram_npm/miniprogram-licia/sameOrigin.js create mode 100644 src/miniprogram_npm/miniprogram-licia/sample.js create mode 100644 src/miniprogram_npm/miniprogram-licia/seedRandom.js create mode 100644 src/miniprogram_npm/miniprogram-licia/selectionSort.js create mode 100644 src/miniprogram_npm/miniprogram-licia/selector.js create mode 100644 src/miniprogram_npm/miniprogram-licia/shebang.js create mode 100644 src/miniprogram_npm/miniprogram-licia/shellSort.js create mode 100644 src/miniprogram_npm/miniprogram-licia/shuffle.js create mode 100644 src/miniprogram_npm/miniprogram-licia/singleton.js create mode 100644 src/miniprogram_npm/miniprogram-licia/size.js create mode 100644 src/miniprogram_npm/miniprogram-licia/sizeof.js create mode 100644 src/miniprogram_npm/miniprogram-licia/sleep.js create mode 100644 src/miniprogram_npm/miniprogram-licia/slice.js create mode 100644 src/miniprogram_npm/miniprogram-licia/slugify.js create mode 100644 src/miniprogram_npm/miniprogram-licia/snakeCase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/some.js create mode 100644 src/miniprogram_npm/miniprogram-licia/sortBy.js create mode 100644 src/miniprogram_npm/miniprogram-licia/sortKeys.js create mode 100644 src/miniprogram_npm/miniprogram-licia/spaceCase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/splitCase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/splitPath.js create mode 100644 src/miniprogram_npm/miniprogram-licia/startWith.js create mode 100644 src/miniprogram_npm/miniprogram-licia/strHash.js create mode 100644 src/miniprogram_npm/miniprogram-licia/strToBytes.js create mode 100644 src/miniprogram_npm/miniprogram-licia/strTpl.js create mode 100644 src/miniprogram_npm/miniprogram-licia/strWidth.js create mode 100644 src/miniprogram_npm/miniprogram-licia/stringify.js create mode 100644 src/miniprogram_npm/miniprogram-licia/stringifyAll.js create mode 100644 src/miniprogram_npm/miniprogram-licia/stripAnsi.js create mode 100644 src/miniprogram_npm/miniprogram-licia/stripBom.js create mode 100644 src/miniprogram_npm/miniprogram-licia/stripCmt.js create mode 100644 src/miniprogram_npm/miniprogram-licia/stripColor.js create mode 100644 src/miniprogram_npm/miniprogram-licia/stripHtmlTag.js create mode 100644 src/miniprogram_npm/miniprogram-licia/stripIndent.js create mode 100644 src/miniprogram_npm/miniprogram-licia/stripNum.js create mode 100644 src/miniprogram_npm/miniprogram-licia/sum.js create mode 100644 src/miniprogram_npm/miniprogram-licia/swap.js create mode 100644 src/miniprogram_npm/miniprogram-licia/table.js create mode 100644 src/miniprogram_npm/miniprogram-licia/throttle.js create mode 100644 src/miniprogram_npm/miniprogram-licia/timeAgo.js create mode 100644 src/miniprogram_npm/miniprogram-licia/timeTaken.js create mode 100644 src/miniprogram_npm/miniprogram-licia/times.js create mode 100644 src/miniprogram_npm/miniprogram-licia/toArr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/toAsync.js create mode 100644 src/miniprogram_npm/miniprogram-licia/toBool.js create mode 100644 src/miniprogram_npm/miniprogram-licia/toDate.js create mode 100644 src/miniprogram_npm/miniprogram-licia/toInt.js create mode 100644 src/miniprogram_npm/miniprogram-licia/toNum.js create mode 100644 src/miniprogram_npm/miniprogram-licia/toSrc.js create mode 100644 src/miniprogram_npm/miniprogram-licia/toStr.js create mode 100644 src/miniprogram_npm/miniprogram-licia/topoSort.js create mode 100644 src/miniprogram_npm/miniprogram-licia/trim.js create mode 100644 src/miniprogram_npm/miniprogram-licia/truncate.js create mode 100644 src/miniprogram_npm/miniprogram-licia/tryIt.js create mode 100644 src/miniprogram_npm/miniprogram-licia/type.js create mode 100644 src/miniprogram_npm/miniprogram-licia/types.js create mode 100644 src/miniprogram_npm/miniprogram-licia/ucs2.js create mode 100644 src/miniprogram_npm/miniprogram-licia/unescape.js create mode 100644 src/miniprogram_npm/miniprogram-licia/union.js create mode 100644 src/miniprogram_npm/miniprogram-licia/uniqId.js create mode 100644 src/miniprogram_npm/miniprogram-licia/unique.js create mode 100644 src/miniprogram_npm/miniprogram-licia/universalify.js create mode 100644 src/miniprogram_npm/miniprogram-licia/unzip.js create mode 100644 src/miniprogram_npm/miniprogram-licia/upperCase.js create mode 100644 src/miniprogram_npm/miniprogram-licia/upperFirst.js create mode 100644 src/miniprogram_npm/miniprogram-licia/use.js create mode 100644 src/miniprogram_npm/miniprogram-licia/utf8.js create mode 100644 src/miniprogram_npm/miniprogram-licia/uuid.js create mode 100644 src/miniprogram_npm/miniprogram-licia/values.js create mode 100644 src/miniprogram_npm/miniprogram-licia/vlq.js create mode 100644 src/miniprogram_npm/miniprogram-licia/waitUntil.js create mode 100644 src/miniprogram_npm/miniprogram-licia/waterfall.js create mode 100644 src/miniprogram_npm/miniprogram-licia/wordWrap.js create mode 100644 src/miniprogram_npm/miniprogram-licia/wordsToBytes.js create mode 100644 src/miniprogram_npm/miniprogram-licia/wrap.js create mode 100644 src/miniprogram_npm/miniprogram-licia/wx.js create mode 100644 src/miniprogram_npm/miniprogram-licia/zip.js create mode 100644 src/miniprogram_npm/mp-html/index.js create mode 100644 src/miniprogram_npm/mp-html/index.json create mode 100644 src/miniprogram_npm/mp-html/index.wxml create mode 100644 src/miniprogram_npm/mp-html/index.wxss create mode 100644 src/miniprogram_npm/mp-html/node/node.js create mode 100644 src/miniprogram_npm/mp-html/node/node.json create mode 100644 src/miniprogram_npm/mp-html/node/node.wxml create mode 100644 src/miniprogram_npm/mp-html/node/node.wxss create mode 100644 src/miniprogram_npm/mp-html/parser.js create mode 100644 src/miniprogram_npm/number-precision/index.js create mode 100644 src/miniprogram_npm/number-precision/index.js.map create mode 100644 src/miniprogram_npm/tslib/index.js create mode 100644 src/miniprogram_npm/tslib/index.js.map create mode 100644 src/pages/articleDetail/index.json create mode 100644 src/pages/articleDetail/index.scss create mode 100644 src/pages/articleDetail/index.ts create mode 100644 src/pages/articleDetail/index.wxml create mode 100644 src/pages/confirmInfo/index.json create mode 100644 src/pages/confirmInfo/index.scss create mode 100644 src/pages/confirmInfo/index.ts create mode 100644 src/pages/confirmInfo/index.wxml create mode 100644 src/pages/drugMap/index.json create mode 100644 src/pages/drugMap/index.scss create mode 100644 src/pages/drugMap/index.ts create mode 100644 src/pages/drugMap/index.wxml create mode 100644 src/pages/followDetail/index.json create mode 100644 src/pages/followDetail/index.scss create mode 100644 src/pages/followDetail/index.ts create mode 100644 src/pages/followDetail/index.wxml create mode 100644 src/pages/followForm/index.json create mode 100644 src/pages/followForm/index.scss create mode 100644 src/pages/followForm/index.ts create mode 100644 src/pages/followForm/index.wxml create mode 100644 src/pages/health/index.json create mode 100644 src/pages/health/index.scss create mode 100644 src/pages/health/index.ts create mode 100644 src/pages/health/index.wxml create mode 100644 src/pages/heartDetail/index.json create mode 100644 src/pages/heartDetail/index.scss create mode 100644 src/pages/heartDetail/index.ts create mode 100644 src/pages/heartDetail/index.wxml create mode 100644 src/pages/heartForm/index.json create mode 100644 src/pages/heartForm/index.scss create mode 100644 src/pages/heartForm/index.ts create mode 100644 src/pages/heartForm/index.wxml create mode 100644 src/pages/hotTopic/index.json create mode 100644 src/pages/hotTopic/index.scss create mode 100644 src/pages/hotTopic/index.ts create mode 100644 src/pages/hotTopic/index.wxml create mode 100644 src/pages/hotTopicDetail/index.json create mode 100644 src/pages/hotTopicDetail/index.scss create mode 100644 src/pages/hotTopicDetail/index.ts create mode 100644 src/pages/hotTopicDetail/index.wxml create mode 100644 src/pages/index/index.json create mode 100644 src/pages/index/index.scss create mode 100644 src/pages/index/index.ts create mode 100644 src/pages/index/index.wxml create mode 100644 src/pages/login/index.json create mode 100644 src/pages/login/index.scss create mode 100644 src/pages/login/index.ts create mode 100644 src/pages/login/index.wxml create mode 100644 src/pages/my/index.json create mode 100644 src/pages/my/index.scss create mode 100644 src/pages/my/index.ts create mode 100644 src/pages/my/index.wxml create mode 100644 src/pages/start/index.json create mode 100644 src/pages/start/index.scss create mode 100644 src/pages/start/index.ts create mode 100644 src/pages/start/index.wxml create mode 100644 src/pages/videoDetail/index.json create mode 100644 src/pages/videoDetail/index.scss create mode 100644 src/pages/videoDetail/index.ts create mode 100644 src/pages/videoDetail/index.wxml create mode 100644 src/pages/videoList/index.json create mode 100644 src/pages/videoList/index.scss create mode 100644 src/pages/videoList/index.ts create mode 100644 src/pages/videoList/index.wxml create mode 100644 src/pages/wall/index.json create mode 100644 src/pages/wall/index.scss create mode 100644 src/pages/wall/index.ts create mode 100644 src/pages/wall/index.wxml create mode 100644 src/pages/wallDetail/index.json create mode 100644 src/pages/wallDetail/index.scss create mode 100644 src/pages/wallDetail/index.ts create mode 100644 src/pages/wallDetail/index.wxml create mode 100644 src/pages/wallForm/index.json create mode 100644 src/pages/wallForm/index.scss create mode 100644 src/pages/wallForm/index.ts create mode 100644 src/pages/wallForm/index.wxml create mode 100644 src/pages/wechatWork/index.json create mode 100644 src/pages/wechatWork/index.scss create mode 100644 src/pages/wechatWork/index.ts create mode 100644 src/pages/wechatWork/index.wxml create mode 100644 src/sitemap.json create mode 100644 src/utils/dayjs/day-zh-cn.js create mode 100644 src/utils/dayjs/relativeTime.d.ts create mode 100644 src/utils/dayjs/relativeTime.js create mode 100644 src/utils/page.ts create mode 100644 src/utils/tools.wxs create mode 100644 src/utils/util.ts create mode 100644 tsconfig.json create mode 100644 typings/index.d.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..5d47c21 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4257947 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.svn +.vscode +node_modules +.idea +.DS_Store diff --git a/.neoconf.json b/.neoconf.json new file mode 100644 index 0000000..437bfce --- /dev/null +++ b/.neoconf.json @@ -0,0 +1,10 @@ +{ + "emmet_language_server": { + "init_options": { + "preferences": { + "css.intUnit": "rpx", + "css.floatUnitr": "rpx" + } + } + } +} diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..f20f145 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,28 @@ +{ + "$schema": "http://json.schemastore.org/prettierrc", + "printWidth": 120, + "tabWidth": 2, + "useTabs": false, + "semi": false, + "singleQuote": true, + "bracketSpacing": true, + "trailingComma": "all", + "arrowParens": "always", + "endOfLine": "lf", + "htmlWhitespaceSensitivity": "ignore", + "singleAttributePerLine": false, + "overrides": [ + { + "files": "*.wxml", + "options": { "parser": "html" } + }, + { + "files": "*.wxss", + "options": { "parser": "css" } + }, + { + "files": "*.wxs", + "options": { "parser": "babel" } + } + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..9a6c9f0 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +## global color + + + +svn://39.106.86.127:28386/projects/wutian_xueyoubing_b/proj_src/shop/frontend/web/GeneB + +### vscode + +(/images/)(\S\*(?=["|'])) +{{imageUrl}}$2?t={{Timestamp}} + +### neovim + +(/images/)([^\"|']\*) +{{imageUrl}}${2}?t={{Timestamp}} + +https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c26e567 + +### conform + +```js +wx.showModal({ + title: '确认解绑?', + confirmColor: 'rgba(246, 74, 58, 1)', + // confirmColor: 'rgba(29, 107, 255, 1)', +}) +``` + +## 游客端 + +1. 个人信息及隐私政策 + /doc/pages/doc1/index + +## 患者端 + +1. 个人信息共享知情同意书 + /doc/pages/doc2/index + +2. 个人信息及隐私政策 + /doc/pages/doc3/index + +3. 用户协议 + /doc/pages/doc4/index + +## 医生端 + +1. 个人信息及隐私政策 + /doc/pages/doc5/index + +1. 患者端 知识库的长图替换 diff --git a/babel.config.json b/babel.config.json new file mode 100644 index 0000000..5f36c55 --- /dev/null +++ b/babel.config.json @@ -0,0 +1,11 @@ +{ + "plugins": [ + [ + "@babel/plugin-transform-react-jsx", + { + "runtime": "automatic", + "importSource": "@antv/f2" + } + ] + ] +} diff --git a/dist.nu b/dist.nu new file mode 100644 index 0000000..5f298e8 --- /dev/null +++ b/dist.nu @@ -0,0 +1,5 @@ +cd ./src/images/ +svn add . --no-ignore --force +svn ci -m "版本更新" +cd .. +cd .. diff --git a/dist.ps1 b/dist.ps1 new file mode 100644 index 0000000..56abc95 --- /dev/null +++ b/dist.ps1 @@ -0,0 +1,10 @@ +# Change to the src/images directory, or exit if the directory doesn't exist +Set-Location -Path ./src/images/ -ErrorAction Stop + +# Add all files to svn, including ignored files and forced additions +svn add . --no-ignore --force + +# Commit the changes with a message +svn ci -m "版本更新" + +ssh hb127 "cd /data1/wwwroot/default/wutian_xueyoubing_b/shop/frontend/web/ && svn up && exit" diff --git a/dist.sh b/dist.sh new file mode 100644 index 0000000..1874050 --- /dev/null +++ b/dist.sh @@ -0,0 +1,5 @@ +#!/bin/bash +cd ./src/images/ || exit +svn add . --no-ignore --force +svn ci -m "版本更新" +exit diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..dc39439 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,29 @@ +// eslint.config.mjs +import antfu from '@antfu/eslint-config' +import prettierConfig from 'eslint-config-prettier' + +export default antfu( + { + env: { + es6: true, + }, + stylistic: false, + parserOptions: { project: ['./tsconfig.json'] }, + globals: { + wx: true, + App: true, + Page: true, + getCurrentPages: true, + getApp: true, + Component: true, + requirePlugin: true, + requireMiniProgram: true, + }, + rules: { + 'eslint-comments/no-unlimited-disable': 'off', + 'ts/no-require-imports': 'off', + eqeqeq: 'off', + }, + }, + prettierConfig, +) diff --git a/package.json b/package.json new file mode 100644 index 0000000..0722056 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "geneb", + "version": "1.0.0", + "description": "", + "author": "", + "license": "", + "keywords": [], + "scripts": { + "beforeCompile": "babel src/pages --out-dir src/pages --only **/*.jsx", + "lint:fix": "eslint . --fix" + }, + "dependencies": { + "@miniprogram-component-plus/video-swiper": "^1.0.1", + "@vant/weapp": "^1.11.2", + "a-calc": "^2.2.14", + "dayjs": "^1.11.10", + "echarts": "^5.4.3", + "miniprogram-licia": "^1.39.2", + "mp-html": "^2.4.2" + }, + "devDependencies": { + "@antfu/eslint-config": "^3.2.0", + "@babel/cli": "^7.23.4", + "@babel/core": "^7.23.6", + "@babel/plugin-transform-react-jsx": "^7.23.4", + "eslint": "^9.9.1", + "eslint-config-prettier": "^9.1.0", + "miniprogram-api-typings": "^3.12.3", + "prettier": "^3.3.3", + "typescript": "^5.8.3" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..4047f89 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3857 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@miniprogram-component-plus/video-swiper': + specifier: ^1.0.1 + version: 1.0.1 + '@vant/weapp': + specifier: ^1.11.2 + version: 1.11.7 + a-calc: + specifier: ^2.2.14 + version: 2.2.14 + dayjs: + specifier: ^1.11.10 + version: 1.11.13 + echarts: + specifier: ^5.4.3 + version: 5.6.0 + miniprogram-licia: + specifier: ^1.39.2 + version: 1.48.0 + mp-html: + specifier: ^2.4.2 + version: 2.5.1 + devDependencies: + '@antfu/eslint-config': + specifier: ^3.2.0 + version: 3.16.0(@vue/compiler-sfc@3.5.14)(eslint@9.27.0)(typescript@5.8.3) + '@babel/cli': + specifier: ^7.23.4 + version: 7.27.2(@babel/core@7.27.1) + '@babel/core': + specifier: ^7.23.6 + version: 7.27.1 + '@babel/plugin-transform-react-jsx': + specifier: ^7.23.4 + version: 7.27.1(@babel/core@7.27.1) + eslint: + specifier: ^9.9.1 + version: 9.27.0 + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@9.27.0) + miniprogram-api-typings: + specifier: ^3.12.3 + version: 3.12.3 + prettier: + specifier: ^3.3.3 + version: 3.5.3 + typescript: + specifier: ^5.8.3 + version: 5.8.3 + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@antfu/eslint-config@3.16.0': + resolution: {integrity: sha512-g6RAXUMeow9vexoOMYwCpByY2xSDpAD78q+rvQLvVpY6MFcxFD/zmdrZGYa/yt7LizK86m17kIYKOGLJ3L8P0w==} + hasBin: true + peerDependencies: + '@eslint-react/eslint-plugin': ^1.19.0 + '@prettier/plugin-xml': ^3.4.1 + '@unocss/eslint-plugin': '>=0.50.0' + astro-eslint-parser: ^1.0.2 + eslint: ^9.10.0 + eslint-plugin-astro: ^1.2.0 + eslint-plugin-format: '>=0.1.0' + eslint-plugin-react-hooks: ^5.0.0 + eslint-plugin-react-refresh: ^0.4.4 + eslint-plugin-solid: ^0.14.3 + eslint-plugin-svelte: '>=2.35.1' + prettier-plugin-astro: ^0.14.0 + prettier-plugin-slidev: ^1.0.5 + svelte-eslint-parser: '>=0.37.0' + peerDependenciesMeta: + '@eslint-react/eslint-plugin': + optional: true + '@prettier/plugin-xml': + optional: true + '@unocss/eslint-plugin': + optional: true + astro-eslint-parser: + optional: true + eslint-plugin-astro: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-solid: + optional: true + eslint-plugin-svelte: + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-slidev: + optional: true + svelte-eslint-parser: + optional: true + + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@babel/cli@7.27.2': + resolution: {integrity: sha512-cfd7DnGlhH6OIyuPSSj3vcfIdnbXukhAyKY8NaZrFadC7pXyL9mOL5WgjcptiEJLi5k3j8aYvLIVCzezrWTaiA==} + engines: {node: '>=6.9.0'} + hasBin: true + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.27.2': + resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.27.1': + resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.27.1': + resolution: {integrity: sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.1': + resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.27.1': + resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.27.1': + resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.27.2': + resolution: {integrity: sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.27.1': + resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.27.1': + resolution: {integrity: sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.27.1': + resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.0': + resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} + engines: {node: '>=6.9.0'} + + '@clack/core@0.4.1': + resolution: {integrity: sha512-Pxhij4UXg8KSr7rPek6Zowm+5M22rbd2g1nfojHJkxp5YkFqiZ2+YLEM/XGVIzvGOcM0nqjIFxrpDwWRZYWYjA==} + + '@clack/prompts@0.9.1': + resolution: {integrity: sha512-JIpyaboYZeWYlyP0H+OoPPxd6nqueG/CmN6ixBiNFsIDHREevjIf0n0Ohh5gr5C8pEDknzgvz+pIJ8dMhzWIeg==} + + '@emnapi/core@1.4.3': + resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + + '@emnapi/wasi-threads@1.0.2': + resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + + '@es-joy/jsdoccomment@0.50.2': + resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} + engines: {node: '>=18'} + + '@eslint-community/eslint-plugin-eslint-comments@4.5.0': + resolution: {integrity: sha512-MAhuTKlr4y/CE3WYX26raZjy+I/kS2PLKSzvfmDCGrBLTFHOYwqROZdr4XwPgXwX3K9rjzMr4pSmUWGnzsUyMg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/compat@1.2.9': + resolution: {integrity: sha512-gCdSY54n7k+driCadyMNv8JSPzYLeDVM/ikZRtvtROBpRdFSkS8W9A82MqsaY7lZuwL0wiapgD0NT1xT0hyJsA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/config-array@0.20.0': + resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.2.2': + resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.13.0': + resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.14.0': + resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.27.0': + resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/markdown@6.4.0': + resolution: {integrity: sha512-J07rR8uBSNFJ9iliNINrchilpkmCihPmTVotpThUeKEn5G8aBBZnkjNBy/zovhJA5LBk1vWU9UDlhqKSc/dViQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.8': + resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.3.1': + resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/sourcemap-codec@1.5.4': + resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@miniprogram-component-plus/video-swiper@1.0.1': + resolution: {integrity: sha512-1rlmsS3/TR0Zu0nZHwEwb9UCQWY/ofPv73zU56FLfZh72Xw+BcIzfohrDxrGs5QpoL4KCLl9G7UB5w+3ZRSZzQ==} + + '@napi-rs/wasm-runtime@0.2.10': + resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==} + + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': + resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgr/core@0.2.4': + resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@stylistic/eslint-plugin@2.13.0': + resolution: {integrity: sha512-RnO1SaiCFHn666wNz2QfZEFxvmiNRqhzaMXHXxXXKt+MEP7aajlPxUSMIQpKAaJfverpovEYqjBOXDq6dDcaOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@typescript-eslint/eslint-plugin@8.32.1': + resolution: {integrity: sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/parser@8.32.1': + resolution: {integrity: sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.32.1': + resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.32.1': + resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/types@8.32.1': + resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.32.1': + resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/utils@8.32.1': + resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/visitor-keys@8.32.1': + resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@unrs/resolver-binding-darwin-arm64@1.7.2': + resolution: {integrity: sha512-vxtBno4xvowwNmO/ASL0Y45TpHqmNkAaDtz4Jqb+clmcVSSl8XCG/PNFFkGsXXXS6AMjP+ja/TtNCFFa1QwLRg==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.7.2': + resolution: {integrity: sha512-qhVa8ozu92C23Hsmv0BF4+5Dyyd5STT1FolV4whNgbY6mj3kA0qsrGPe35zNR3wAN7eFict3s4Rc2dDTPBTuFQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.7.2': + resolution: {integrity: sha512-zKKdm2uMXqLFX6Ac7K5ElnnG5VIXbDlFWzg4WJ8CGUedJryM5A3cTgHuGMw1+P5ziV8CRhnSEgOnurTI4vpHpg==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.2': + resolution: {integrity: sha512-8N1z1TbPnHH+iDS/42GJ0bMPLiGK+cUqOhNbMKtWJ4oFGzqSJk/zoXFzcQkgtI63qMcUI7wW1tq2usZQSb2jxw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.2': + resolution: {integrity: sha512-tjYzI9LcAXR9MYd9rO45m1s0B/6bJNuZ6jeOxo1pq1K6OBuRMMmfyvJYval3s9FPPGmrldYA3mi4gWDlWuTFGA==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.7.2': + resolution: {integrity: sha512-jon9M7DKRLGZ9VYSkFMflvNqu9hDtOCEnO2QAryFWgT6o6AXU8du56V7YqnaLKr6rAbZBWYsYpikF226v423QA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.7.2': + resolution: {integrity: sha512-c8Cg4/h+kQ63pL43wBNaVMmOjXI/X62wQmru51qjfTvI7kmCy5uHTJvK/9LrF0G8Jdx8r34d019P1DVJmhXQpA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.2': + resolution: {integrity: sha512-A+lcwRFyrjeJmv3JJvhz5NbcCkLQL6Mk16kHTNm6/aGNc4FwPHPE4DR9DwuCvCnVHvF5IAd9U4VIs/VvVir5lg==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.2': + resolution: {integrity: sha512-hQQ4TJQrSQW8JlPm7tRpXN8OCNP9ez7PajJNjRD1ZTHQAy685OYqPrKjfaMw/8LiHCt8AZ74rfUVHP9vn0N69Q==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.7.2': + resolution: {integrity: sha512-NoAGbiqrxtY8kVooZ24i70CjLDlUFI7nDj3I9y54U94p+3kPxwd2L692YsdLa+cqQ0VoqMWoehDFp21PKRUoIQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.7.2': + resolution: {integrity: sha512-KaZByo8xuQZbUhhreBTW+yUnOIHUsv04P8lKjQ5otiGoSJ17ISGYArc+4vKdLEpGaLbemGzr4ZeUbYQQsLWFjA==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.7.2': + resolution: {integrity: sha512-dEidzJDubxxhUCBJ/SHSMJD/9q7JkyfBMT77Px1npl4xpg9t0POLvnWywSk66BgZS/b2Hy9Y1yFaoMTFJUe9yg==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.7.2': + resolution: {integrity: sha512-RvP+Ux3wDjmnZDT4XWFfNBRVG0fMsc+yVzNFUqOflnDfZ9OYujv6nkh+GOr+watwrW4wdp6ASfG/e7bkDradsw==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.7.2': + resolution: {integrity: sha512-y797JBmO9IsvXVRCKDXOxjyAE4+CcZpla2GSoBQ33TVb3ILXuFnMrbR/QQZoauBYeOFuu4w3ifWLw52sdHGz6g==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.7.2': + resolution: {integrity: sha512-gtYTh4/VREVSLA+gHrfbWxaMO/00y+34htY7XpioBTy56YN2eBjkPrY1ML1Zys89X3RJDKVaogzwxlM1qU7egg==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.7.2': + resolution: {integrity: sha512-Ywv20XHvHTDRQs12jd3MY8X5C8KLjDbg/jyaal/QLKx3fAShhJyD4blEANInsjxW3P7isHx1Blt56iUDDJO3jg==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.7.2': + resolution: {integrity: sha512-friS8NEQfHaDbkThxopGk+LuE5v3iY0StruifjQEt7SLbA46OnfgMO15sOTkbpJkol6RB+1l1TYPXh0sCddpvA==} + cpu: [x64] + os: [win32] + + '@vant/weapp@1.11.7': + resolution: {integrity: sha512-Rwn9BBnb4kHSV4XmvBicwtd42J+amEUfnFDcXJsGNPNX4a9c/DoT6YLsm4X1wB2+sQbdiQsbFBLAvGRBxCkD8g==} + + '@vitest/eslint-plugin@1.2.1': + resolution: {integrity: sha512-JQr1jdVcrsoS7Sdzn83h9sq4DvREf9Q/onTZbJCqTVlv/76qb+TZrLv/9VhjnjSMHweQH5FdpMDeCR6aDe2fgw==} + peerDependencies: + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + + '@vue/compiler-core@3.5.14': + resolution: {integrity: sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==} + + '@vue/compiler-dom@3.5.14': + resolution: {integrity: sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==} + + '@vue/compiler-sfc@3.5.14': + resolution: {integrity: sha512-9T6m/9mMr81Lj58JpzsiSIjBgv2LiVoWjIVa7kuXHICUi8LiDSIotMpPRXYJsXKqyARrzjT24NAwttrMnMaCXA==} + + '@vue/compiler-ssr@3.5.14': + resolution: {integrity: sha512-Y0G7PcBxr1yllnHuS/NxNCSPWnRGH4Ogrp0tsLA5QemDZuJLs99YjAKQ7KqkHE0vCg4QTKlQzXLKCMF7WPSl7Q==} + + '@vue/shared@3.5.14': + resolution: {integrity: sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==} + + a-calc@2.2.14: + resolution: {integrity: sha512-Lp6xxnZ1G+qgO4EeLGSYjKRYrYR5qnxE566sYo37KO2dIKYe+ZY5tQJ2MetR3uFhfyC2KcgeDDBH1AKg/rKdyA==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.5: + resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001718: + resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + ci-info@4.2.0: + resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + engines: {node: '>=8'} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + core-js-compat@3.42.0: + resolution: {integrity: sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.1.0: + resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + echarts@5.6.0: + resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==} + + electron-to-chromium@1.5.157: + resolution: {integrity: sha512-/0ybgsQd1muo8QlnuTpKwtl0oX5YMlUGbm8xyqgDU00motRkKFFbUJySAQBWcY79rVqNLWIWa87BGVGClwAB2w==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + engines: {node: '>=10.13.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-compat-utils@0.6.5: + resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-config-flat-gitignore@1.0.1: + resolution: {integrity: sha512-wjBmJ8TAb67G2or/gBp/H62uCIkDCjpCmlGPSG41/7QagUjMgh+iegVB3gY8eNYhTAmecjKtclT4wGAjHz5yWA==} + peerDependencies: + eslint: ^9.5.0 + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-flat-config-utils@1.1.0: + resolution: {integrity: sha512-W49wz7yQJGRfg4QSV3nwdO/fYcWetiSKhLV5YykfQMcqnIATNpoS7EPdINhLB9P3fmdjNmFtOgZjiKnCndWAnw==} + + eslint-import-context@0.1.5: + resolution: {integrity: sha512-jalO1mLiEvTv0io0koz1AE4LwkHQxDBFLaSXWweWtJR0y/NC1yyxvU61Z54bghIFNeM1M4TvwRwVRhLunQJ3gw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + peerDependencies: + unrs-resolver: ^1.0.0 + peerDependenciesMeta: + unrs-resolver: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-json-compat-utils@0.2.1: + resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} + engines: {node: '>=12'} + peerDependencies: + '@eslint/json': '*' + eslint: '*' + jsonc-eslint-parser: ^2.4.0 + peerDependenciesMeta: + '@eslint/json': + optional: true + + eslint-merge-processors@1.0.0: + resolution: {integrity: sha512-4GybyHmhXtT7/W8RAouQzNM0791sYasJCTYHIAYjuiJvbNFY0jMKkoESREhX+mjX37dxiN6v4EqhZ1nc0tJF7A==} + peerDependencies: + eslint: '*' + + eslint-plugin-antfu@2.7.0: + resolution: {integrity: sha512-gZM3jq3ouqaoHmUNszb1Zo2Ux7RckSvkGksjLWz9ipBYGSv1EwwBETN6AdiUXn+RpVHXTbEMPAPlXJazcA6+iA==} + peerDependencies: + eslint: '*' + + eslint-plugin-command@2.1.0: + resolution: {integrity: sha512-S3gvDSCRHLdRG7NYaevLvGA0g/txOju7NEB2di7SE80NtbCwsvpi/fft045YuTZpOzqCRUfuye39raldmpXXYQ==} + peerDependencies: + eslint: '*' + + eslint-plugin-es-x@7.8.0: + resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + + eslint-plugin-import-x@4.13.1: + resolution: {integrity: sha512-Ua4HZBmG5TNr18q3Is+nT6mKCzNNpycqtv/+TkIK7E3w4LBlPlZI6vLwmDjXdIZtJPP2Z1Oh5+wksWwlcCjMpA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + eslint-plugin-jsdoc@50.6.17: + resolution: {integrity: sha512-hq+VQylhd12l8qjexyriDsejZhqiP33WgMTy2AmaGZ9+MrMWVqPECsM87GPxgHfQn0zw+YTuhqjUfk1f+q67aQ==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-jsonc@2.20.1: + resolution: {integrity: sha512-gUzIwQHXx7ZPypUoadcyRi4WbHW2TPixDr0kqQ4miuJBU0emJmyGTlnaT3Og9X2a8R1CDayN9BFSq5weGWbTng==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-n@17.18.0: + resolution: {integrity: sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.23.0' + + eslint-plugin-no-only-tests@3.3.0: + resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} + engines: {node: '>=5.0.0'} + + eslint-plugin-perfectionist@4.13.0: + resolution: {integrity: sha512-dsPwXwV7IrG26PJ+h1crQ1f5kxay/gQAU0NJnbVTQc91l5Mz9kPjyIZ7fXgie+QSgi8a+0TwGbfaJx+GIhzuoQ==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + eslint: '>=8.45.0' + + eslint-plugin-regexp@2.7.0: + resolution: {integrity: sha512-U8oZI77SBtH8U3ulZ05iu0qEzIizyEDXd+BWHvyVxTOjGwcDcvy/kEpgFG4DYca2ByRLiVPFZ2GeH7j1pdvZTA==} + engines: {node: ^18 || >=20} + peerDependencies: + eslint: '>=8.44.0' + + eslint-plugin-toml@0.12.0: + resolution: {integrity: sha512-+/wVObA9DVhwZB1nG83D2OAQRrcQZXy+drqUnFJKymqnmbnbfg/UPmEMCKrJNcEboUGxUjYrJlgy+/Y930mURQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-unicorn@56.0.1: + resolution: {integrity: sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==} + engines: {node: '>=18.18'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-plugin-unused-imports@4.1.4: + resolution: {integrity: sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + + eslint-plugin-vue@9.33.0: + resolution: {integrity: sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-plugin-yml@1.18.0: + resolution: {integrity: sha512-9NtbhHRN2NJa/s3uHchO3qVVZw0vyOIvWlXWGaKCr/6l3Go62wsvJK5byiI6ZoYztDsow4GnS69BZD3GnqH3hA==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + eslint-processor-vue-blocks@1.0.0: + resolution: {integrity: sha512-q+Wn9bCml65NwYtuINVCE5dUqZa/uVoY4jfc8qEDwWbcGqdRyfJJmAONNZsreA4Q9EJqjYGjk8Hk1QuwAktgkw==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: ^8.50.0 || ^9.0.0 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.27.0: + resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + exsolve@1.0.5: + resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + + fs-readdir-recursive@1.1.0: + resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.4: + resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-eslint-parser@2.4.0: + resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + local-pkg@1.1.1: + resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} + engines: {node: '>=14'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + miniprogram-api-typings@3.12.3: + resolution: {integrity: sha512-o7bOfrU28MEMCBWo83nXv0ROQSBFxJcfCl4f2wTYqah64ipC5RGqLJfvWJTWhlQt2ECVwspSzM8LgvnfMo7TEQ==} + + miniprogram-licia@1.48.0: + resolution: {integrity: sha512-pe+l/+cIYIWZkLMKCANUQkqwiqrgEw0/Sm9juulXM/teUumG7mm9A9zTXzIlImpv84iizbkYxKZ32WE0U6qSxA==} + + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + + mp-html@2.5.1: + resolution: {integrity: sha512-7BEH8dnQ89kOIyjdoYni8zcc0QAg+lgEWg0n9or9q2D4l26JNG+KPzHfttDyisC/5S7aPBblpXrFTYQv475w/Q==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + napi-postinstall@0.2.4: + resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + natural-orderby@5.0.0: + resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + engines: {node: '>=18'} + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-manager-detector@1.3.0: + resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + + parse-imports-exports@0.2.4: + resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-statements@1.0.11: + resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.1.0: + resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + quansync@0.2.10: + resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + refa@0.12.1: + resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-ast-analysis@0.7.1: + resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + scslre@0.3.0: + resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} + engines: {node: ^14.0.0 || >=16.0.0} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + synckit@0.11.6: + resolution: {integrity: sha512-2pR2ubZSV64f/vqm9eLPz/KOvR9Dm+Co/5ChLgeHl0yEDRc6h5hXHoxEQH8Y5Ljycozd3p1k5TTSVdzYGkPvLw==} + engines: {node: ^14.18.0 || >=16.0.0} + + tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + engines: {node: '>=6'} + + tinyexec@1.0.1: + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toml-eslint-parser@0.10.0: + resolution: {integrity: sha512-khrZo4buq4qVmsGzS5yQjKe/WsFvV8fGfOjDQN0q4iy9FjRfPWRgTFrU8u1R2iu/SfWLhY9WnCi4Jhdrcbtg+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + typescript-treasure@0.0.9: + resolution: {integrity: sha512-QPmpqJvQqZ7rt2iVNzPrtQNSFs1zVuTuP+jzE3np7qytEUcfSKtAW8RTDslldeAwaJjVJa0UM3ps1uVddpEMqQ==} + + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + unrs-resolver@1.7.2: + resolution: {integrity: sha512-BBKpaylOW8KbHsu378Zky/dGh4ckT/4NW/0SHRABdqRLcQJ2dAOjDo9g97p04sWflm0kqPqpUatxReNV/dqI5A==} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml-eslint-parser@1.3.0: + resolution: {integrity: sha512-E/+VitOorXSLiAqtTd7Yqax0/pAS3xaYMP+AUUJGOK1OZG3rhcj9fcJOM5HJ2VrP1FrStVCWr1muTfQCdj4tAA==} + engines: {node: ^14.17.0 || >=16.0.0} + + yaml@2.8.0: + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zrender@5.6.1: + resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@antfu/eslint-config@3.16.0(@vue/compiler-sfc@3.5.14)(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@clack/prompts': 0.9.1 + '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.27.0) + '@eslint/markdown': 6.4.0 + '@stylistic/eslint-plugin': 2.13.0(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@vitest/eslint-plugin': 1.2.1(eslint@9.27.0)(typescript@5.8.3) + eslint: 9.27.0 + eslint-config-flat-gitignore: 1.0.1(eslint@9.27.0) + eslint-flat-config-utils: 1.1.0 + eslint-merge-processors: 1.0.0(eslint@9.27.0) + eslint-plugin-antfu: 2.7.0(eslint@9.27.0) + eslint-plugin-command: 2.1.0(eslint@9.27.0) + eslint-plugin-import-x: 4.13.1(eslint@9.27.0)(typescript@5.8.3) + eslint-plugin-jsdoc: 50.6.17(eslint@9.27.0) + eslint-plugin-jsonc: 2.20.1(eslint@9.27.0) + eslint-plugin-n: 17.18.0(eslint@9.27.0) + eslint-plugin-no-only-tests: 3.3.0 + eslint-plugin-perfectionist: 4.13.0(eslint@9.27.0)(typescript@5.8.3) + eslint-plugin-regexp: 2.7.0(eslint@9.27.0) + eslint-plugin-toml: 0.12.0(eslint@9.27.0) + eslint-plugin-unicorn: 56.0.1(eslint@9.27.0) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0) + eslint-plugin-vue: 9.33.0(eslint@9.27.0) + eslint-plugin-yml: 1.18.0(eslint@9.27.0) + eslint-processor-vue-blocks: 1.0.0(@vue/compiler-sfc@3.5.14)(eslint@9.27.0) + globals: 15.15.0 + jsonc-eslint-parser: 2.4.0 + local-pkg: 1.1.1 + parse-gitignore: 2.0.0 + picocolors: 1.1.1 + toml-eslint-parser: 0.10.0 + vue-eslint-parser: 9.4.3(eslint@9.27.0) + yaml-eslint-parser: 1.3.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@eslint/json' + - '@vue/compiler-sfc' + - supports-color + - typescript + - vitest + + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.3.0 + tinyexec: 1.0.1 + + '@antfu/utils@0.7.10': {} + + '@babel/cli@7.27.2(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@jridgewell/trace-mapping': 0.3.25 + commander: 6.2.1 + convert-source-map: 2.0.0 + fs-readdir-recursive: 1.1.0 + glob: 7.2.3 + make-dir: 2.1.0 + slash: 2.0.0 + optionalDependencies: + '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3 + chokidar: 3.6.0 + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.27.2': {} + + '@babel/core@7.27.1': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/helpers': 7.27.1 + '@babel/parser': 7.27.2 + '@babel/template': 7.27.2 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + convert-source-map: 2.0.0 + debug: 4.4.1 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.27.1': + dependencies: + '@babel/parser': 7.27.2 + '@babel/types': 7.27.1 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.1': + dependencies: + '@babel/types': 7.27.1 + + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.27.2 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.5 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.27.1': {} + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.27.1': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.27.1 + + '@babel/parser@7.27.2': + dependencies: + '@babel/types': 7.27.1 + + '@babel/parser@7.28.0': + dependencies: + '@babel/types': 7.28.0 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.1)': + dependencies: + '@babel/core': 7.27.1 + '@babel/helper-annotate-as-pure': 7.27.1 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/types': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.2 + '@babel/types': 7.27.1 + + '@babel/traverse@7.27.1': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.1 + '@babel/parser': 7.27.2 + '@babel/template': 7.27.2 + '@babel/types': 7.27.1 + debug: 4.4.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.27.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@babel/types@7.28.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@clack/core@0.4.1': + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@clack/prompts@0.9.1': + dependencies: + '@clack/core': 0.4.1 + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@emnapi/core@1.4.3': + dependencies: + '@emnapi/wasi-threads': 1.0.2 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.0.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@es-joy/jsdoccomment@0.50.2': + dependencies: + '@types/estree': 1.0.7 + '@typescript-eslint/types': 8.32.1 + comment-parser: 1.4.1 + esquery: 1.6.0 + jsdoc-type-pratt-parser: 4.1.0 + + '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.27.0)': + dependencies: + escape-string-regexp: 4.0.0 + eslint: 9.27.0 + ignore: 5.3.2 + + '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0)': + dependencies: + eslint: 9.27.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/compat@1.2.9(eslint@9.27.0)': + optionalDependencies: + eslint: 9.27.0 + + '@eslint/config-array@0.20.0': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.1 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.2.2': {} + + '@eslint/core@0.10.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/core@0.13.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/core@0.14.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.1 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.27.0': {} + + '@eslint/markdown@6.4.0': + dependencies: + '@eslint/core': 0.10.0 + '@eslint/plugin-kit': 0.2.8 + mdast-util-from-markdown: 2.0.2 + mdast-util-frontmatter: 2.0.1 + mdast-util-gfm: 3.1.0 + micromark-extension-frontmatter: 2.0.0 + micromark-extension-gfm: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.2.8': + dependencies: + '@eslint/core': 0.13.0 + levn: 0.4.1 + + '@eslint/plugin-kit@0.3.1': + dependencies: + '@eslint/core': 0.14.0 + levn: 0.4.1 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/sourcemap-codec@1.5.4': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@miniprogram-component-plus/video-swiper@1.0.1': {} + + '@napi-rs/wasm-runtime@0.2.10': + dependencies: + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.4.3 + '@tybys/wasm-util': 0.9.0 + optional: true + + '@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3': + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@pkgr/core@0.2.4': {} + + '@stylistic/eslint-plugin@2.13.0(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + eslint: 9.27.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + transitivePeerDependencies: + - supports-color + - typescript + + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree@1.0.7': {} + + '@types/json-schema@7.0.15': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/ms@2.1.0': {} + + '@types/normalize-package-data@2.4.4': {} + + '@types/unist@3.0.3': {} + + '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.32.1 + eslint: 9.27.0 + graphemer: 1.4.0 + ignore: 7.0.4 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.32.1 + debug: 4.4.1 + eslint: 9.27.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.32.1': + dependencies: + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/visitor-keys': 8.32.1 + + '@typescript-eslint/type-utils@8.32.1(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + debug: 4.4.1 + eslint: 9.27.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.32.1': {} + + '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': + dependencies: + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/visitor-keys': 8.32.1 + debug: 4.4.1 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.32.1(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + eslint: 9.27.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.32.1': + dependencies: + '@typescript-eslint/types': 8.32.1 + eslint-visitor-keys: 4.2.0 + + '@unrs/resolver-binding-darwin-arm64@1.7.2': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.7.2': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.7.2': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.7.2': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.7.2': + dependencies: + '@napi-rs/wasm-runtime': 0.2.10 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.7.2': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.7.2': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.7.2': + optional: true + + '@vant/weapp@1.11.7': {} + + '@vitest/eslint-plugin@1.2.1(eslint@9.27.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + eslint: 9.27.0 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.5.14': + dependencies: + '@babel/parser': 7.28.0 + '@vue/shared': 3.5.14 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.14': + dependencies: + '@vue/compiler-core': 3.5.14 + '@vue/shared': 3.5.14 + + '@vue/compiler-sfc@3.5.14': + dependencies: + '@babel/parser': 7.28.0 + '@vue/compiler-core': 3.5.14 + '@vue/compiler-dom': 3.5.14 + '@vue/compiler-ssr': 3.5.14 + '@vue/shared': 3.5.14 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.14': + dependencies: + '@vue/compiler-dom': 3.5.14 + '@vue/shared': 3.5.14 + + '@vue/shared@3.5.14': {} + + a-calc@2.2.14: + dependencies: + typescript-treasure: 0.0.9 + + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + + acorn@8.14.1: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + optional: true + + are-docs-informative@0.0.2: {} + + argparse@2.0.1: {} + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: + optional: true + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.5: + dependencies: + caniuse-lite: 1.0.30001718 + electron-to-chromium: 1.5.157 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.24.5) + + builtin-modules@3.3.0: {} + + callsites@3.1.0: {} + + caniuse-lite@1.0.30001718: {} + + ccount@2.0.1: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + character-entities@2.0.2: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + optional: true + + ci-info@4.2.0: {} + + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + commander@6.2.1: {} + + comment-parser@1.4.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + confbox@0.2.2: {} + + convert-source-map@2.0.0: {} + + core-js-compat@3.42.0: + dependencies: + browserslist: 4.24.5 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + dayjs@1.11.13: {} + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.1: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.1.0: + dependencies: + character-entities: 2.0.2 + + deep-is@0.1.4: {} + + dequal@2.0.3: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + echarts@5.6.0: + dependencies: + tslib: 2.3.0 + zrender: 5.6.1 + + electron-to-chromium@1.5.157: {} + + emoji-regex@8.0.0: {} + + enhanced-resolve@5.18.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.2 + + entities@4.5.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + escalade@3.2.0: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-compat-utils@0.5.1(eslint@9.27.0): + dependencies: + eslint: 9.27.0 + semver: 7.7.2 + + eslint-compat-utils@0.6.5(eslint@9.27.0): + dependencies: + eslint: 9.27.0 + semver: 7.7.2 + + eslint-config-flat-gitignore@1.0.1(eslint@9.27.0): + dependencies: + '@eslint/compat': 1.2.9(eslint@9.27.0) + eslint: 9.27.0 + + eslint-config-prettier@9.1.0(eslint@9.27.0): + dependencies: + eslint: 9.27.0 + + eslint-flat-config-utils@1.1.0: + dependencies: + pathe: 2.0.3 + + eslint-import-context@0.1.5(unrs-resolver@1.7.2): + dependencies: + get-tsconfig: 4.10.1 + stable-hash: 0.0.5 + optionalDependencies: + unrs-resolver: 1.7.2 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + eslint-json-compat-utils@0.2.1(eslint@9.27.0)(jsonc-eslint-parser@2.4.0): + dependencies: + eslint: 9.27.0 + esquery: 1.6.0 + jsonc-eslint-parser: 2.4.0 + + eslint-merge-processors@1.0.0(eslint@9.27.0): + dependencies: + eslint: 9.27.0 + + eslint-plugin-antfu@2.7.0(eslint@9.27.0): + dependencies: + '@antfu/utils': 0.7.10 + eslint: 9.27.0 + + eslint-plugin-command@2.1.0(eslint@9.27.0): + dependencies: + '@es-joy/jsdoccomment': 0.50.2 + eslint: 9.27.0 + + eslint-plugin-es-x@7.8.0(eslint@9.27.0): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + '@eslint-community/regexpp': 4.12.1 + eslint: 9.27.0 + eslint-compat-utils: 0.5.1(eslint@9.27.0) + + eslint-plugin-import-x@4.13.1(eslint@9.27.0)(typescript@5.8.3): + dependencies: + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + comment-parser: 1.4.1 + debug: 4.4.1 + eslint: 9.27.0 + eslint-import-context: 0.1.5(unrs-resolver@1.7.2) + eslint-import-resolver-node: 0.3.9 + is-glob: 4.0.3 + minimatch: 10.0.1 + semver: 7.7.2 + stable-hash: 0.0.5 + tslib: 2.8.1 + unrs-resolver: 1.7.2 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-jsdoc@50.6.17(eslint@9.27.0): + dependencies: + '@es-joy/jsdoccomment': 0.50.2 + are-docs-informative: 0.0.2 + comment-parser: 1.4.1 + debug: 4.4.1 + escape-string-regexp: 4.0.0 + eslint: 9.27.0 + espree: 10.3.0 + esquery: 1.6.0 + parse-imports-exports: 0.2.4 + semver: 7.7.2 + spdx-expression-parse: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-jsonc@2.20.1(eslint@9.27.0): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + eslint: 9.27.0 + eslint-compat-utils: 0.6.5(eslint@9.27.0) + eslint-json-compat-utils: 0.2.1(eslint@9.27.0)(jsonc-eslint-parser@2.4.0) + espree: 10.3.0 + graphemer: 1.4.0 + jsonc-eslint-parser: 2.4.0 + natural-compare: 1.4.0 + synckit: 0.11.6 + transitivePeerDependencies: + - '@eslint/json' + + eslint-plugin-n@17.18.0(eslint@9.27.0): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + enhanced-resolve: 5.18.1 + eslint: 9.27.0 + eslint-plugin-es-x: 7.8.0(eslint@9.27.0) + get-tsconfig: 4.10.1 + globals: 15.15.0 + ignore: 5.3.2 + minimatch: 9.0.5 + semver: 7.7.2 + + eslint-plugin-no-only-tests@3.3.0: {} + + eslint-plugin-perfectionist@4.13.0(eslint@9.27.0)(typescript@5.8.3): + dependencies: + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3) + eslint: 9.27.0 + natural-orderby: 5.0.0 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-regexp@2.7.0(eslint@9.27.0): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + '@eslint-community/regexpp': 4.12.1 + comment-parser: 1.4.1 + eslint: 9.27.0 + jsdoc-type-pratt-parser: 4.1.0 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + scslre: 0.3.0 + + eslint-plugin-toml@0.12.0(eslint@9.27.0): + dependencies: + debug: 4.4.1 + eslint: 9.27.0 + eslint-compat-utils: 0.6.5(eslint@9.27.0) + lodash: 4.17.21 + toml-eslint-parser: 0.10.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-unicorn@56.0.1(eslint@9.27.0): + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + ci-info: 4.2.0 + clean-regexp: 1.0.0 + core-js-compat: 3.42.0 + eslint: 9.27.0 + esquery: 1.6.0 + globals: 15.15.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.1.0 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.7.2 + strip-indent: 3.0.0 + + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0): + dependencies: + eslint: 9.27.0 + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3) + + eslint-plugin-vue@9.33.0(eslint@9.27.0): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + eslint: 9.27.0 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.2 + semver: 7.7.2 + vue-eslint-parser: 9.4.3(eslint@9.27.0) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-plugin-yml@1.18.0(eslint@9.27.0): + dependencies: + debug: 4.4.1 + escape-string-regexp: 4.0.0 + eslint: 9.27.0 + eslint-compat-utils: 0.6.5(eslint@9.27.0) + natural-compare: 1.4.0 + yaml-eslint-parser: 1.3.0 + transitivePeerDependencies: + - supports-color + + eslint-processor-vue-blocks@1.0.0(@vue/compiler-sfc@3.5.14)(eslint@9.27.0): + dependencies: + '@vue/compiler-sfc': 3.5.14 + eslint: 9.27.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-scope@8.3.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.27.0: + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.20.0 + '@eslint/config-helpers': 0.2.2 + '@eslint/core': 0.14.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.27.0 + '@eslint/plugin-kit': 0.3.1 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.1 + escape-string-regexp: 4.0.0 + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.3.0: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 4.2.0 + + espree@9.6.1: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 3.4.3 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + exsolve@1.0.5: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fault@2.0.1: + dependencies: + format: 0.2.2 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + + format@0.2.2: {} + + fs-readdir-recursive@1.1.0: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-tsconfig@4.10.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@11.12.0: {} + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@14.0.0: {} + + globals@15.15.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + has-flag@4.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hosted-git-info@2.8.9: {} + + ignore@5.3.2: {} + + ignore@7.0.4: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + optional: true + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + isexe@2.0.0: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsdoc-type-pratt-parser@4.1.0: {} + + jsesc@0.5.0: {} + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + jsonc-eslint-parser@2.4.0: + dependencies: + acorn: 8.14.1 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + semver: 7.7.2 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lines-and-columns@1.2.4: {} + + local-pkg@1.1.1: + dependencies: + mlly: 1.7.4 + pkg-types: 2.1.0 + quansync: 0.2.10 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + longest-streak@3.1.0: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.4 + + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + + markdown-table@3.0.4: {} + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.1.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.1.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + merge2@1.4.1: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.1.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.1 + decode-named-character-reference: 1.1.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + min-indent@1.0.1: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + miniprogram-api-typings@3.12.3: {} + + miniprogram-licia@1.48.0: {} + + mlly@1.7.4: + dependencies: + acorn: 8.14.1 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + + mp-html@2.5.1: {} + + ms@2.1.3: {} + + nanoid@3.3.11: {} + + napi-postinstall@0.2.4: {} + + natural-compare@1.4.0: {} + + natural-orderby@5.0.0: {} + + node-releases@2.0.19: {} + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.10 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: + optional: true + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-try@2.2.0: {} + + package-manager-detector@1.3.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-gitignore@2.0.0: {} + + parse-imports-exports@0.2.4: + dependencies: + parse-statements: 1.0.11 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-statements@1.0.11: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + pathe@2.0.3: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pify@4.0.1: {} + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 + + pkg-types@2.1.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.5 + pathe: 2.0.3 + + pluralize@8.0.0: {} + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier@3.5.3: {} + + punycode@2.3.1: {} + + quansync@0.2.10: {} + + queue-microtask@1.2.3: {} + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + optional: true + + refa@0.12.1: + dependencies: + '@eslint-community/regexpp': 4.12.1 + + regexp-ast-analysis@0.7.1: + dependencies: + '@eslint-community/regexpp': 4.12.1 + refa: 0.12.1 + + regexp-tree@0.1.27: {} + + regjsparser@0.10.0: + dependencies: + jsesc: 0.5.0 + + require-directory@2.1.1: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + scslre@0.3.0: + dependencies: + '@eslint-community/regexpp': 4.12.1 + refa: 0.12.1 + regexp-ast-analysis: 0.7.1 + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.7.2: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + sisteransi@1.0.5: {} + + slash@2.0.0: {} + + source-map-js@1.2.1: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.21 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 + + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 + + spdx-license-ids@3.0.21: {} + + stable-hash@0.0.5: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + synckit@0.11.6: + dependencies: + '@pkgr/core': 0.2.4 + + tapable@2.2.2: {} + + tinyexec@1.0.1: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toml-eslint-parser@0.10.0: + dependencies: + eslint-visitor-keys: 3.4.3 + + ts-api-utils@2.1.0(typescript@5.8.3): + dependencies: + typescript: 5.8.3 + + tslib@2.3.0: {} + + tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + typescript-treasure@0.0.9: {} + + typescript@5.8.3: {} + + ufo@1.6.1: {} + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + unrs-resolver@1.7.2: + dependencies: + napi-postinstall: 0.2.4 + optionalDependencies: + '@unrs/resolver-binding-darwin-arm64': 1.7.2 + '@unrs/resolver-binding-darwin-x64': 1.7.2 + '@unrs/resolver-binding-freebsd-x64': 1.7.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.7.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.7.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.7.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.7.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.7.2 + '@unrs/resolver-binding-linux-x64-musl': 1.7.2 + '@unrs/resolver-binding-wasm32-wasi': 1.7.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.7.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.7.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.7.2 + + update-browserslist-db@1.1.3(browserslist@4.24.5): + dependencies: + browserslist: 4.24.5 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + vue-eslint-parser@9.4.3(eslint@9.27.0): + dependencies: + debug: 4.4.1 + eslint: 9.27.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + lodash: 4.17.21 + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + xml-name-validator@4.0.0: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yaml-eslint-parser@1.3.0: + dependencies: + eslint-visitor-keys: 3.4.3 + yaml: 2.8.0 + + yaml@2.8.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@0.1.0: {} + + zrender@5.6.1: + dependencies: + tslib: 2.3.0 + + zwitch@2.0.4: {} diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..d105a55 --- /dev/null +++ b/project.config.json @@ -0,0 +1,76 @@ +{ + "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "miniprogramRoot": "src/", + "compileType": "miniprogram", + "setting": { + "useCompilerPlugins": [ + "typescript", + "sass" + ], + "urlCheck": true, + "coverView": true, + "es6": true, + "postcss": true, + "lazyloadPlaceholderEnable": false, + "preloadBackgroundData": false, + "minified": true, + "autoAudits": false, + "uglifyFileName": false, + "uploadWithSourceMap": true, + "enhance": true, + "useMultiFrameRuntime": true, + "showShadowRootInWxmlPanel": true, + "packNpmManually": true, + "packNpmRelationList": [ + { + "packageJsonPath": "package.json", + "miniprogramNpmDistDir": "./src" + } + ], + "minifyWXSS": true, + "useStaticServer": true, + "showES6CompileOption": false, + "checkInvalidKey": true, + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "disableUseStrict": false, + "minifyWXML": true, + "localPlugins": false, + "condition": false, + "ignoreUploadUnusedFiles": true, + "compileWorklet": false, + "swc": false, + "disableSWC": true + }, + "simulatorType": "wechat", + "simulatorPluginLibVersion": {}, + "condition": {}, + "srcMiniprogramRoot": "src/", + "editorSetting": { + "tabIndent": "insertSpaces", + "tabSize": 2 + }, + "packOptions": { + "ignore": [ + { + "value": "/images/*.*", + "type": "glob" + }, + { + "value": "/images/**/*.*", + "type": "glob" + } + ], + "include": [] + }, + "appid": "wxfc95e2961d481f58", + "scripts": { + "beforeCompile": "pnpm run beforeCompile", + "beforePreview": "pnpm run beforeCompile", + "beforeUpload": "pnpm run beforeCompile" + }, + "libVersion": "3.5.8" +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..4f154fc --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,162 @@ +{ + "projectname": "minporgram", + "setting": { + "compileHotReLoad": true, + "urlCheck": true, + "coverView": true, + "lazyloadPlaceholderEnable": false, + "skylineRenderEnable": false, + "preloadBackgroundData": false, + "autoAudits": false, + "useApiHook": true, + "useApiHostProcess": true, + "showShadowRootInWxmlPanel": true, + "useStaticServer": true, + "useLanDebug": false, + "showES6CompileOption": false, + "checkInvalidKey": true, + "ignoreDevUnusedFiles": true, + "bigPackageSizeSupport": false + }, + "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", + "condition": { + "miniprogram": { + "list": [ + { + "name": "我的", + "pathName": "pages/my/index", + "query": "", + "scene": null, + "launchMode": "default" + }, + { + "name": "视频详情", + "pathName": "pages/videoDetail/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "文章详情", + "pathName": "pages/articleDetail/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "科普视频", + "pathName": "pages/videoList/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "心率记录详情", + "pathName": "pages/heartDetail/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "心率记录", + "pathName": "pages/heartForm/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "复诊记录详情", + "pathName": "pages/followDetail/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "复诊记录", + "pathName": "pages/followForm/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "健康管理", + "pathName": "pages/health/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "热门话题详情", + "pathName": "pages/hotTopicDetail/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "热门话题", + "pathName": "pages/hotTopic/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "交流墙-发布页", + "pathName": "pages/wallForm/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "交流墙详情", + "pathName": "pages/wallDetail/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "交流墙", + "pathName": "pages/wall/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "用药地图", + "pathName": "pages/drugMap/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "企微关注页", + "pathName": "pages/wechatWork/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "首页", + "pathName": "pages/index/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "录入信息页", + "pathName": "pages/confirmInfo/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "登录", + "pathName": "pages/login/index", + "query": "", + "launchMode": "default", + "scene": null + } + ] + } + }, + "libVersion": "3.5.8" +} \ No newline at end of file diff --git a/src/api/request.ts b/src/api/request.ts new file mode 100644 index 0000000..0eaa79a --- /dev/null +++ b/src/api/request.ts @@ -0,0 +1,82 @@ +interface IGlobalParams { + gUrl: string + version: string +} + +export const request = function ( + { gUrl, version }: IGlobalParams, + { + url, + method, + data, + header, + showMsg = true, + loading = false, + loadingText = '加载中...', + isJSON = false, + ...options + }: IAgaxParams, +): Promise { + return new Promise((resolve, reject) => { + if (loading) { + wx.showLoading({ + title: loadingText, + mask: true, + }) + } + wx.request({ + header: { + loginState: getApp().globalData.loginState, + ...header, + }, + url: gUrl + url, + method, + data: { + loginState: getApp().globalData.loginState, + ...(data as object), + }, + ...options, + success(res: any) { + const { code, data } = res.data + if (isJSON) { + resolve(res.data) + } else if (code === 0) { + resolve(data) + } else if (showMsg) { + const msg = errPicker(res.data) + if (loading) { + setTimeout(() => { + wx.showToast({ + title: msg, + icon: 'none', + }) + }, 30) + } else { + wx.showToast({ + title: msg, + icon: 'none', + }) + reject(res) + } + } else { + reject(res) + } + }, + fail(err) { + reject(err) + }, + complete() { + if (loading) { + wx.hideLoading() + } + }, + }) + }) +} + +function errPicker(err) { + if (typeof err === 'string') { + return err + } + return err.data || err.msg || err.errMsg || (err.detail && err.detail.errMsg) || '未知错误' +} diff --git a/src/app.json b/src/app.json new file mode 100644 index 0000000..ba0fff1 --- /dev/null +++ b/src/app.json @@ -0,0 +1,72 @@ +{ + "$schema": "https://dldir1.qq.com/WechatWebDev/editor-extension/wx-json/app.schema.json", + "pages": [ + "pages/start/index", + "pages/login/index", + "pages/index/index", + "pages/wall/index", + "pages/my/index", + "pages/wallDetail/index", + "pages/wallForm/index", + "pages/confirmInfo/index", + "pages/wechatWork/index", + "pages/drugMap/index", + "pages/hotTopic/index", + "pages/hotTopicDetail/index", + "pages/health/index", + "pages/followForm/index", + "pages/followDetail/index", + "pages/heartForm/index", + "pages/heartDetail/index", + "pages/videoList/index", + "pages/videoDetail/index", + "pages/articleDetail/index" + ], + "subPackages": [ + { + "root": "doc", + "pages": ["pages/doc1/index", "pages/doc2/index", "pages/doc3/index", "pages/doc4/index", "pages/doc5/index"] + } + ], + "tabBar": { + "custom": true, + "list": [ + { + "pagePath": "pages/index/index", + "text": "首页" + }, + { + "pagePath": "pages/wall/index", + "text": "交流墙" + }, + { + "pagePath": "pages/health/index", + "text": "健康管理" + }, + { + "pagePath": "pages/my/index", + "text": "我的" + } + ] + }, + "window": { + "backgroundTextStyle": "light", + "navigationBarBackgroundColor": "#fff", + "navigationBarTitleText": "Weixin", + "navigationBarTextStyle": "black" + }, + "sitemapLocation": "sitemap.json", + "resolveAlias": { + "@/*": "/*" + }, + "usingComponents": { + "pagination": "/components/pagination/index", + "van-icon": "@vant/weapp/icon/index" + }, + "requiredPrivateInfos": [], + "permission": { + "scope.userFuzzyLocation": { + "desc": "获取您的当前位置,用于模糊匹配您附近的活动" + } + } +} diff --git a/src/app.scss b/src/app.scss new file mode 100644 index 0000000..8e1b4f5 --- /dev/null +++ b/src/app.scss @@ -0,0 +1,35 @@ +.clearfix:after { + content: '020'; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.clearfix { + /* 触发 hasLayout */ + zoom: 1; +} + +.scroll::-webkit-scrollbar { + width: 0; + height: 0; + color: transparent; +} + +.extend-via-pseudo-elem { + position: relative; + overflow: visible; + &::before { + content: ''; + position: absolute; + top: -20rpx; + right: -20rpx; + bottom: -20rpx; + left: -20rpx; + } +} + +view { + word-break: break-all; +} diff --git a/src/app.ts b/src/app.ts new file mode 100644 index 0000000..31faf44 --- /dev/null +++ b/src/app.ts @@ -0,0 +1,253 @@ +/* eslint-disable */ +// app.ts +import { request } from './api/request' +import { parseScene } from './utils/util' +const licia = require('miniprogram-licia') + +import plugin from './components/calendar/plugins/index' +import selectable from './components/calendar/plugins/selectable' +import solarLunar from './components/calendar/plugins/solarLunar/index' +import todo from './components/calendar/plugins/todo' +import week from './components/calendar/plugins/week.js' + +plugin.use(todo).use(solarLunar).use(selectable).use(week) + +const dayjs = require('dayjs') +require('/utils/dayjs/day-zh-cn.js') +const relativeTime = require('/utils/dayjs/relativeTime.js') +dayjs.locale('zh-cn') // 全局使用 +dayjs.extend(relativeTime) + +// page +import page from '@/utils/page' + +App({ + globalData: { + // dev + // appid:wx903aa29742dad363 + // url: 'https://m.wtx.hbraas.com', + // upFileUrl: 'https://m.wtx.hbraas.com/', + // imageUrl: 'https://m.wtx.hbraas.com/GeneB/', + + // pro + // appid:wxfc95e2961d481f58 + url: 'https://m.hbgene.hbsaas.com', + upFileUrl: 'https://m.hbgene.hbsaas.com/', + imageUrl: 'https://m.hbgene.hbsaas.com/GeneB/', + + Timestamp: new Date().getTime(), + + waitBindDoctorId: '', + scene: {}, + + loginState: '', + initLoginInfo: {}, + + // anyWhere: true, + anyWhere: false, + + userInfo: {}, + }, + onLaunch() { + this.autoUpdate() + + Page = page as WechatMiniprogram.Page.Constructor + + wx.ajax = licia.curry(request)({ gUrl: this.globalData.url }) + + wx.setInnerAudioOption({ + obeyMuteSwitch: false, + mixWithOther: false, + }) + }, + onShow(options) { + if (options.query.scene) { + this.globalData.scene = parseScene(options.query.scene) as { workerId: string } + } + this.startLogin() + }, + startLogin(callback?: () => void) { + wx.login({ + success: (res) => { + wx.ajax({ + method: 'GET', + url: '?r=wtx/user/init-login', + data: { + code: res.code, + }, + }).then((res) => { + this.globalData.loginState = res.loginState + this.globalData.initLoginInfo = res + if (callback) { + callback() + } + }) + }, + }) + }, + updateLoginInfo(callback?: () => void) { + wx.ajax({ + method: 'GET', + url: '?r=wtx/user/init-info', + data: {}, + }).then((res) => { + this.globalData.initLoginInfo = res + if (callback) { + callback() + } + }) + }, + waitLogin({ type = 0 } = { type: 'any' }) { + return new Promise((resolve) => { + const checkLogin = () => { + if (this.globalData.loginState) { + if (this.checkLoginType(type)) { + resolve() + } + return + } + setTimeout(() => { + checkLogin() + }, 500) + } + checkLogin() + }) + }, + checkLoginType(type: 0 | 1 | 2 | 'any') { + const { loginType, isLogin, isReg } = this.globalData.initLoginInfo + + if (type === 'any') { + return true + } + + if (isLogin !== 1) { + if (type === 0) { + return true + } + wx.reLaunch({ + url: '/pages/index/index', + }) + return false + } + + if (isReg !== 1) { + const typePageUrl = { + 1: '/patient/pages/entryInfo/index', + 2: '/doctor/pages/login/index', + }[loginType as 1 | 2] + wx.reLaunch({ + url: typePageUrl, + }) + return false + } + + if (loginType !== type) { + const typePageUrl = { + 1: '/patient/pages/index/index', + 2: '/doctor/pages/index/index', + }[loginType as 1 | 2] + wx.reLaunch({ + url: typePageUrl, + }) + return false + } + + return true + }, + mpBehavior(data: { PageName: string }) { + const { loginType } = this.globalData.initLoginInfo + const url = { + 1: '?r=wtx/mp-behavior/add', + 2: '?r=wtx/doctor/mp-behavior/add', + }[loginType as 1 | 2] + wx.ajax({ + method: 'POST', + url, + data: data, + loading: false, + showMsg: false, + }).then((res) => { + console.log('res: ', res) + }) + }, + + getUserInfo(type: 0 | 1 | 2 = 0) { + const url = { + 0: '?r=wtx/user/userinfo', + 1: '?r=wtx/account/info', + 2: '?r=wtx/doctor/account/info', + }[type] + return wx.ajax({ + method: 'GET', + url: url, + }) + }, + getDoctorInfo(doctorId: string) { + return wx.ajax({ + method: 'GET', + url: '?r=wtx/doctor/get-info', + data: { + doctorId, + }, + }) + }, + autoUpdate: function () { + var self = this + // 获取小程序更新机制兼容 + if (wx.canIUse('getUpdateManager')) { + const updateManager = wx.getUpdateManager() + //1. 检查小程序是否有新版本发布 + updateManager.onCheckForUpdate(function (res) { + // 请求完新版本信息的回调 + if (res.hasUpdate) { + //检测到新版本,需要更新,给出提示 + wx.showModal({ + title: '更新提示', + content: '检测到新版本,是否下载新版本并重启小程序?', + success: function (res) { + if (res.confirm) { + //2. 用户确定下载更新小程序,小程序下载及更新静默进行 + self.downLoadAndUpdate(updateManager) + } else if (res.cancel) { + //用户点击取消按钮的处理,如果需要强制更新,则给出二次弹窗,如果不需要,则这里的代码都可以删掉了 + wx.showModal({ + title: '温馨提示~', + content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~', + showCancel: false, //隐藏取消按钮 + confirmText: '确定更新', //只保留确定更新按钮 + success: function (res) { + if (res.confirm) { + //下载新版本,并重新应用 + self.downLoadAndUpdate(updateManager) + } + }, + }) + } + }, + }) + } + }) + } else { + // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示 + wx.showModal({ + title: '提示', + content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。', + }) + } + }, + downLoadAndUpdate: function (updateManager) { + //静默下载更新小程序新版本 + updateManager.onUpdateReady(function () { + wx.hideLoading() + //新的版本已经下载好,调用 applyUpdate 应用新版本并重启 + updateManager.applyUpdate() + }) + updateManager.onUpdateFailed(function () { + // 新的版本下载失败 + wx.showModal({ + title: '新版本更新失败', + content: '您可删除当前小程序,重新打开尝试', + }) + }) + }, +}) diff --git a/src/components/calendar/core.js b/src/components/calendar/core.js new file mode 100644 index 0000000..d71c4e4 --- /dev/null +++ b/src/components/calendar/core.js @@ -0,0 +1,144 @@ +import { dateUtil, getCalendarConfig } from './utils/index' + +/** + * 计算当前月份前后两月应占的格子 + * @param {number} year 年份 + * @param {number} month 月份 + */ +function calculateEmptyGrids(year, month, config) { + const prevMonthGrids = calculatePrevMonthGrids(year, month, config) + const nextMonthGrids = calculateNextMonthGrids(year, month, config) + return { + prevMonthGrids, + nextMonthGrids + } +} + +/** + * 计算上月应占的格子 + * @param {number} year 年份 + * @param {number} month 月份 + */ +function calculatePrevMonthGrids(year, month, config) { + let emptyGrids = [] + const prevMonthDays = dateUtil.getDatesCountOfMonth(year, month - 1) + let firstDayOfWeek = dateUtil.firstDayOfWeek(year, month) + if (config.firstDayOfWeek === 'Mon') { + if (firstDayOfWeek === 0) { + firstDayOfWeek = 6 + } else { + firstDayOfWeek -= 1 + } + } + if (firstDayOfWeek > 0) { + const len = prevMonthDays - firstDayOfWeek + const { onlyShowCurrentMonth } = config + const YMInfo = dateUtil.getPrevMonthInfo({ year, month }) + for (let i = prevMonthDays; i > len; i--) { + if (onlyShowCurrentMonth) { + emptyGrids.push('') + } else { + const week = dateUtil.getDayOfWeek(+year, +month, i) + emptyGrids.push({ + ...YMInfo, + date: i, + week + }) + } + } + emptyGrids.reverse() + } + return emptyGrids +} +/** + * 计算下一月日期是否需要多展示的日期 + * 某些月份日期为5排,某些月份6排,统一为6排 + * @param {number} year + * @param {number} month + * @param {object} config + */ +function calculateExtraEmptyDate(year, month, config) { + let extDate = 0 + if (+month === 2) { + extDate += 7 + let firstDayofMonth = dateUtil.getDayOfWeek(year, month, 1) + if (config.firstDayOfWeek === 'Mon') { + if (+firstDayofMonth === 1) extDate += 7 + } else { + if (+firstDayofMonth === 0) extDate += 7 + } + } else { + let firstDayofMonth = dateUtil.getDayOfWeek(year, month, 1) + if (config.firstDayOfWeek === 'Mon') { + if (firstDayofMonth !== 0 && firstDayofMonth < 6) { + extDate += 7 + } + } else { + if (firstDayofMonth <= 5) { + extDate += 7 + } + } + } + return extDate +} +/** + * 计算下月应占的格子 + * @param {number} year 年份 + * @param {number} month 月份 + */ +function calculateNextMonthGrids(year, month, config) { + let emptyGrids = [] + const datesCount = dateUtil.getDatesCountOfMonth(year, month) + let lastDayWeek = dateUtil.getDayOfWeek(year, month, datesCount) + if (config.firstDayOfWeek === 'Mon') { + if (lastDayWeek === 0) { + lastDayWeek = 6 + } else { + lastDayWeek -= 1 + } + } + let len = 7 - (lastDayWeek + 1) + const { onlyShowCurrentMonth } = config + if (!onlyShowCurrentMonth) { + len = len + calculateExtraEmptyDate(year, month, config) + } + const YMInfo = dateUtil.getNextMonthInfo({ year, month }) + for (let i = 1; i <= len; i++) { + const week = dateUtil.getDayOfWeek(+year, +month, i) + if (onlyShowCurrentMonth) { + emptyGrids.push('') + } else { + emptyGrids.push({ + id: i - 1, + ...YMInfo, + date: i, + week: week || 7 + }) + } + } + return emptyGrids +} +/** + * 设置日历面板数据 + * @param {number} year 年份 + * @param {number} month 月份 + * @param {number} curDate 日期 + */ +function calculateCurrentMonthDates(year, month) { + return dateUtil.calcDates(year, month) +} + +export function calcJumpData({ dateInfo, config, component }) { + dateInfo = dateInfo || dateUtil.todayFMD() + const { year, month, date } = dateInfo + const calendarConfig = config || getCalendarConfig(component) + const emptyGrids = calculateEmptyGrids(year, month, calendarConfig) + const calendar = { + curYear: year, + curMonth: month, + curDate: date, + dates: calculateCurrentMonthDates(year, month), + ...emptyGrids + } + return calendar +} diff --git a/src/components/calendar/helper.js b/src/components/calendar/helper.js new file mode 100644 index 0000000..981c452 --- /dev/null +++ b/src/components/calendar/helper.js @@ -0,0 +1,12 @@ +import { dateUtil } from './utils/index' + +export function calcTargetYMInfo() { + return { + right: dateUtil.getPrevMonthInfo, + left: dateUtil.getNextMonthInfo, + prev_month: dateUtil.getPrevMonthInfo, + next_month: dateUtil.getNextMonthInfo, + prev_year: dateUtil.getPrevYearInfo, + next_year: dateUtil.getNextYearInfo + } +} diff --git a/src/components/calendar/index.d.ts b/src/components/calendar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/components/calendar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/components/calendar/index.js b/src/components/calendar/index.js new file mode 100644 index 0000000..1d4cad6 --- /dev/null +++ b/src/components/calendar/index.js @@ -0,0 +1,258 @@ +import plugins from './plugins/index' +import { calcJumpData } from './core' +import { renderCalendar } from './render' +import { calcTargetYMInfo } from './helper' +import { dateUtil, calendarGesture, logger } from './utils/index' + +Component({ + options: { + styleIsolation: 'apply-shared', + multipleSlots: true // 在组件定义时的选项中启用多slot支持 + }, + properties: { + config: { + type: Object, + value: {} + } + }, + lifetimes: { + attached: function() { + this.initComp() + } + }, + methods: { + initComp() { + const calendarConfig = this.setDefaultDisableDate() + this.setConfig(calendarConfig) + }, + // 禁用某天日期配置默认为今天 + setDefaultDisableDate() { + const calendarConfig = this.properties.config || {} + if (calendarConfig.disableMode && !calendarConfig.disableMode.date) { + calendarConfig.disableMode.date = dateUtil.toTimeStr( + dateUtil.todayFMD() + ) + } + return calendarConfig + }, + initCalendar(config) { + const { defaultDate } = config + let date = dateUtil.todayFMD() + if (defaultDate && typeof defaultDate === 'string') { + const dateInfo = defaultDate.split('-') + if (dateInfo.length < 3) { + return logger.warn('defaultDate配置格式应为: 2018-4-2 或 2018-04-02') + } else { + date = { + year: +dateInfo[0], + month: +dateInfo[1], + date: +dateInfo[2] + } + } + } + const waitRenderData = calcJumpData({ + dateInfo: date, + config + }) + const timestamp = dateUtil.todayTimestamp() + if (config.autoChoosedWhenJump) { + const target = waitRenderData.dates.filter( + item => dateUtil.toTimeStr(item) === dateUtil.toTimeStr(date) + ) + if (target && target.length) { + if (!waitRenderData.selectedDates) { + waitRenderData.selectedDates = target + } else { + waitRenderData.selectedDates.push(target[0]) + } + } + } + return { + ...waitRenderData, + todayTimestamp: timestamp, + weeksCh: dateUtil.getWeekHeader(config.firstDayOfWeek) + } + }, + setConfig(config) { + if (config.markToday && typeof config.markToday === 'string') { + config.highlightToday = true + } + config.theme = config.theme || 'default' + this.setData( + { + config + }, + () => { + for (let plugin of plugins.installed) { + const [, p] = plugin + if (typeof p.install === 'function') { + p.install(this) + } + if (typeof p.methods === 'function') { + const methods = p.methods(this) + for (let fnName in methods) { + if (fnName.startsWith('__')) continue + const fn = methods[fnName] + if (typeof fn === 'function') { + if (!this.calendar) this.calendar = {} + this.calendar[fnName] = fn + } + } + } + } + const initData = this.initCalendar(config) + renderCalendar.call(this, initData, config) + } + ) + }, + tapDate(e) { + const { info } = e.currentTarget.dataset + const { date, disable } = info || {} + if (disable || !date) return + const { calendar, config } = this.data + let calendarData = calendar + let calendarConfig = config + if (config.takeoverTap) { + return this.triggerEvent('takeoverTap', info) + } + for (let plugin of plugins.installed) { + const [, p] = plugin + if (typeof p.onTapDate === 'function') { + const { + calendarData: __calendarData, + calendarConfig: __calendarConfig + } = p.onTapDate(info, calendarData, calendarConfig) + calendarData = __calendarData + calendarConfig = __calendarConfig + } + } + renderCalendar.call(this, calendarData, calendarConfig).then(() => { + this.triggerEvent('afterTapDate', info) + }) + }, + /** + * 日历滑动开始 + * @param {object} e + */ + calendarTouchstart(e) { + const t = e.touches[0] + const startX = t.clientX + const startY = t.clientY + this.swipeLock = true + this.setData({ + 'gesture.startX': startX, + 'gesture.startY': startY + }) + }, + /** + * 日历滑动中 + * @param {object} e + */ + calendarTouchmove(e) { + const { gesture } = this.data + const { preventSwipe } = this.properties.config + if (!this.swipeLock || preventSwipe) return + if (calendarGesture.isLeft(gesture, e.touches[0])) { + this.handleSwipe('left') + this.swipeLock = false + } + if (calendarGesture.isRight(gesture, e.touches[0])) { + this.handleSwipe('right') + this.swipeLock = false + } + }, + calendarTouchend(e) { + this.setData({ + 'calendar.leftSwipe': 0, + 'calendar.rightSwipe': 0 + }) + }, + handleSwipe(direction) { + let swipeKey = 'calendar.leftSwipe' + if (direction === 'right') { + swipeKey = 'calendar.rightSwipe' + } + this.setData({ + [swipeKey]: 1 + }) + const { calendar } = this.data + let calendarData = calendar + const { curYear, curMonth } = calendarData + const getMonthInfo = calcTargetYMInfo()[direction] + const target = getMonthInfo({ + year: +curYear, + month: +curMonth + }) + target.direction = direction + this.renderCalendar(target) + }, + changeDate(e) { + const { type } = e.currentTarget.dataset + const { calendar: calendarData } = this.data + const { curYear, curMonth } = calendarData + const getMonthInfo = calcTargetYMInfo()[type] + const target = getMonthInfo({ + year: +curYear, + month: +curMonth + }) + target.direction = type + this.renderCalendar(target) + }, + renderCalendar(target) { + let { calendar: calendarData, config } = this.data + const { curYear, curMonth } = calendarData || {} + for (let plugin of plugins.installed) { + const [, p] = plugin + if (typeof p.onSwitchCalendar === 'function') { + calendarData = p.onSwitchCalendar(target, calendarData, this) + } + } + return renderCalendar.call(this, calendarData, config).then(() => { + let triggerEventName = 'whenChangeMonth' + if (config.weekMode) { + triggerEventName = 'whenChangeWeek' + } + this.triggerEvent(triggerEventName, { + current: { + year: +curYear, + month: +curMonth + }, + next: target + }) + this.triggerEvent('onSwipe', { + current: { + year: +curYear, + month: +curMonth + }, + next: target, + type: triggerEventName + }) + }) + }, + doubleClickJumpToToday() { + const { multi, weekMode } = this.calendar.getCalendarConfig() || {} + if (multi || weekMode) return + if (this.count === undefined) { + this.count = 1 + } else { + this.count += 1 + } + if (this.lastClick) { + const difference = new Date().getTime() - this.lastClick + if ( + difference < 500 && + this.count >= 2 && + typeof this.calendar.jump === 'function' + ) { + const today = dateUtil.todayFMD() + this.calendar.jump(today) + } + this.count = undefined + this.lastClick = undefined + } else { + this.lastClick = new Date().getTime() + } + this.triggerEvent('jumpToToday') + } + } +}) diff --git a/src/components/calendar/index.json b/src/components/calendar/index.json new file mode 100644 index 0000000..32640e0 --- /dev/null +++ b/src/components/calendar/index.json @@ -0,0 +1,3 @@ +{ + "component": true +} \ No newline at end of file diff --git a/src/components/calendar/index.wxml b/src/components/calendar/index.wxml new file mode 100644 index 0000000..186b758 --- /dev/null +++ b/src/components/calendar/index.wxml @@ -0,0 +1,116 @@ + + + + + + + + + {{calendar.curYear || "--"}} 年 {{calendar.curMonth || "--"}} 月 + + + + + + + + + {{item}} + + + + + + + + + {{item.date}} + + + + + + + + {{config.markToday && item.isToday ? config.markToday : item.date}} + + {{item.label || item.lunar.Term || item.lunar.IDayCn}} + + + + {{item.todoText}} + + + + + + + + + + {{item.date}} + + + + + + diff --git a/src/components/calendar/index.wxss b/src/components/calendar/index.wxss new file mode 100644 index 0000000..7ba3305 --- /dev/null +++ b/src/components/calendar/index.wxss @@ -0,0 +1,249 @@ +@import "./theme/iconfont.wxss"; +@import "./theme/theme-default.wxss"; +@import "./theme/theme-elegant.wxss"; +@import "./theme/theme-nuohe.wxss"; +@import "./theme/theme-geneB.wxss"; +@import "./theme/theme-geneDoctorB.wxss"; + +.blod { + font-weight: bold; +} + +.b { + display: flex; +} + +.lr { + flex-direction: row; +} + +.tb { + flex-direction: column; +} + +.pc { + justify-content: center; +} + +.ac { + align-items: center; +} + +.cc { + align-items: center; + justify-content: center; +} + +.wrap { + flex-wrap: wrap; +} + +.flex { + flex-grow: 1; +} + +.bg { + background-image: linear-gradient(to bottom, #faefe7, #ffcbd7); + overflow: hidden; +} + +.white-color { + color: #fff; +} + +.fs24 { + font-size: 24rpx; +} + +.fs28 { + font-size: 28rpx; +} + +.fs32 { + font-size: 32rpx; +} + +.fs36 { + font-size: 36rpx; +} + +.calendar { + width: 100%; + box-sizing: border-box; +} + +/* 日历操作栏 */ + +.handle { + height: 80rpx; +} + +.prev-handle, +.next-handle { + padding: 20rpx; +} + +.date-in-handle { + height: 80rpx; +} + +/* 星期栏 */ + +.weeks { + height: 50rpx; + line-height: 50rpx; + opacity: 0.5; +} + +.week { + text-align: center; +} + +.grid, +.week { + width: 14.286014285714286%; +} + +.date-wrap { + width: 100%; + height: 80rpx; + position: relative; + left: 0; + top: 0; +} + +.date { + position: relative; + left: 0; + top: 0; + width: 55rpx; + height: 55rpx; + text-align: center; + line-height: 55rpx; + font-size: 28rpx; + font-weight: 200; + border-radius: 50%; + transition: all 0.3s; + font-weight: bold; + + animation-name: choosed; + + animation-duration: 0.5s; + + animation-timing-function: linear; + + animation-iteration-count: 1; +} + +.date-area-mode { + width: 100%; + + border-radius: 0; +} + +.date-desc { + width: 150%; + + height: 32rpx; + + font-size: 20rpx; + + line-height: 32rpx; + + position: absolute; + + left: 50%; + + transform: translateX(-50%); + + overflow: hidden; + + word-break: break-all; + + text-overflow: ellipsis; + + white-space: nowrap; + + -webkit-line-clamp: 1; + + text-align: center; +} + +@keyframes choosed { + from { + transform: scale(1); + } + + 50% { + transform: scale(0.9); + } + + to { + transform: scale(1); + } +} + +/* 日期圆圈标记 */ + +.todo-circle { + border-width: 1rpx; + + border-style: solid; + + box-sizing: border-box; +} + +/* 待办点标记相关样式 */ + +.todo-dot { + width: 16rpx; + + height: 16rpx; + + border-radius: 50%; + + position: absolute; + + left: 50%; + bottom: -10rpx !important; + + transform: translateX(-50%); +} + +.todo-dot-top { + top: 3rpx; +} + +.todo-dot.todo-dot-top-always { + top: -8rpx; +} + +.todo-dot.todo-dot-bottom { + bottom: 0; +} + +.todo-dot.todo-dot-bottom-always { + bottom: -10rpx; +} + +/* 日期描述文字(待办文字/农历)相关样式 */ + +.date-desc.date-desc-top { + top: -6rpx; +} + +.date-desc.date-desc-top-always { + top: -20rpx; +} + +.date-desc.date-desc-bottom { + bottom: -14rpx; +} + +.todo-circle .date-desc.date-desc-bottom { + bottom: -30rpx; +} + +.date-desc.date-desc-bottom-always { + bottom: -28rpx; +} diff --git a/src/components/calendar/plugins/holidays/holidays-map.js b/src/components/calendar/plugins/holidays/holidays-map.js new file mode 100644 index 0000000..0bc5e04 --- /dev/null +++ b/src/components/calendar/plugins/holidays/holidays-map.js @@ -0,0 +1,212 @@ +/* * + @Author: drfu* + @Description: 数据来源于国务院办公厅关于2020年部分节假日安排的通知(国办发明电〔2019〕16号)_政府信息公开专栏,http://www.gov.cn/zhengce/content/2019-11/21/content_5454164.htm + @Date: 2020-10-12 14:29:45* + * @Last Modified by: drfu + * @Last Modified time: 2020-10-16 17:38:08 +*/ + +// 节日列表 +export const festival = { + // 农历固定日期节日 + lunar: { + 1: { + 1: { + type: 'festival', + name: '春节', + label: '春节' + }, + 8: { + type: 'festival', + name: '腊八节', + label: '腊八' + }, + 15: { + type: 'festival', + name: '元宵节', + label: '元宵' + } + }, + 7: { + 7: { + type: 'festival', + name: '七夕节', + label: '七夕' + }, + 15: { + type: 'festival', + name: '中元节', + label: '中元节' + } + }, + 9: { + 9: { + type: 'festival', + name: '重阳节', + label: '重阳节' + } + } + }, + // 阳历固定日期节日 + solar: { + 2: { + 14: { + type: 'festival', + name: '情人节', + label: '情人节' + } + }, + 3: { + 12: { + type: 'festival', + name: '植树节', + label: '植树节' + } + }, + 4: { + 1: { + type: 'festival', + name: '愚人节', + label: '愚人节' + }, + 5: { + type: 'festival', + name: '清明节', + label: '清明节' + } + }, + 5: { + 1: { + type: 'festival', + name: '劳动节', + label: '劳动节' + } + }, + 6: { + 1: { + type: 'festival', + name: '儿童节', + label: '儿童节' + } + }, + 7: { + 1: { + type: 'festival', + name: '建党节', + label: '建党节' + } + }, + 8: { + 1: { + type: 'festival', + name: '建军节', + label: '建军节' + } + }, + 9: { + 10: { + type: 'festival', + name: '教师节', + label: '教师节' + } + }, + 10: { + 1: { + type: 'festival', + name: '国庆节', + label: '国庆节' + } + }, + 12: { + 25: { + type: 'festival', + name: '圣诞节', + label: '圣诞节' + } + } + } +} + +export const holidays = { + 2020: { + 1: { + 1: { + type: 'holiday', + name: '元旦', + label: '休' + }, + 19: { + type: 'work', + name: '调班', + label: '班' + }, + '24-30': { + type: 'holiday', + name: '春节', + label: '休' + } + }, + 2: { + 1: { + type: 'work', + name: '调班', + label: '班' + } + }, + 4: { + '4-6': { + type: 'holiday', + name: '清明节', + label: '休' + }, + 26: { + type: 'work', + name: '调班', + label: '班' + } + }, + 5: { + '1-5': { + type: 'holiday', + name: '劳动节', + label: '休' + }, + 9: { + type: 'work', + name: '调班', + label: '班' + } + }, + 6: { + '25-27': { + type: 'holiday', + name: '端午节', + label: '休' + }, + 28: { + type: 'work', + name: '调班', + label: '班' + } + }, + 9: { + 27: { + type: 'work', + name: '调班', + label: '班' + } + }, + 10: { + '1-8': { + type: 'holiday', + name: '国庆节/中秋节', + label: '休' + }, + 10: { + type: 'work', + name: '调班', + label: '班' + } + } + } +} diff --git a/src/components/calendar/plugins/holidays/index.d.ts b/src/components/calendar/plugins/holidays/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/components/calendar/plugins/holidays/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/components/calendar/plugins/holidays/index.js b/src/components/calendar/plugins/holidays/index.js new file mode 100644 index 0000000..ee4ae77 --- /dev/null +++ b/src/components/calendar/plugins/holidays/index.js @@ -0,0 +1,201 @@ +/* * + @Author: drfu* + @Description: 显示法定节假日班/休情况 + @Date: 2020-10-12 14:29:45* + * @Last Modified by: drfu + * @Last Modified time: 2020-10-16 17:34:13 +*/ + +import { holidays, festival } from './holidays-map' +import { dateUtil, getCalendarData, logger } from '../../utils/index' + +/** + * 当前是否在休假期内 + * @param {object} { year, month } + * @param {object} { start, end, current } + * @returns + */ +function inHolidays({ year, month }, { start, end, current }) { + const getTimeStamp = dateUtil.getTimeStamp + const startTimestamp = getTimeStamp({ + year, + month, + date: start + }) + const endTimestamp = getTimeStamp({ + year, + month, + date: end + }) + const currentDateTimestamp = getTimeStamp({ + year, + month, + date: current + }) + if ( + currentDateTimestamp >= startTimestamp && + currentDateTimestamp <= endTimestamp + ) { + return true + } + return false +} + +function addSpecialFestival(date, component) { + const { convertlLunar2Solar, convertSolarLunar } = component.calendar || {} + const lunarDateInfo = convertSolarLunar(date) + const { lYear, lMonth } = lunarDateInfo || {} + // 春节 + const info = { + type: 'festival', + name: '除夕', + label: '除夕' + } + if (lMonth === 12) { + if (!festival.lunar['12']) festival.lunar['12'] = {} + if (convertlLunar2Solar(`${lYear}-12-30`) === -1) { + festival.lunar['12']['29'] = info + } else { + festival.lunar['12']['30'] = info + } + } +} + +/** + * 是否匹配到节日 + * @param {object} [dateInfo={}] + * @param {object} [component={}] + * @returns {object|boolean} 匹配到的节日数据或者false + */ +function hasFestivalDate(dateInfo = {}, component = {}) { + const { month, date } = dateInfo + let festivalDate = festival.solar[month] && festival.solar[month][date] + if (!festivalDate) { + const { convertSolarLunar } = component.calendar || {} + const lunarDateInfo = convertSolarLunar(dateInfo) + const { lMonth, lDay } = lunarDateInfo + festivalDate = festival.lunar[lMonth] && festival.lunar[lMonth][lDay] + if (!festivalDate) { + const festivalOfMonth = festival.lunar[lMonth] || {} + const festivalDateKey = Object.keys(festivalOfMonth).find(item => + item.match(new RegExp(`\\b${lDay}\\b`)) + ) + if (!festivalDateKey) { + festivalDate = false + } else { + const festivalInfo = festival.lunar[lMonth][festivalDateKey] + if (!festivalInfo) { + festivalDate = false + } else { + const { condition } = festivalInfo + if (typeof condition === 'function') { + festivalDate = condition(lunarDateInfo) + } else { + festivalDate = false + } + } + } + } + } + return festivalDate +} + +export default () => { + return { + name: 'holidays', + beforeRender(calendarData = {}, calendarConfig = {}, component) { + let { dates = [] } = calendarData + if (calendarConfig.showHolidays || calendarConfig.showFestival) { + dates = dates.map(d => { + let item = { ...d } + const { year, month, date } = item + const holidaysOfMonth = + (holidays[year] && holidays[year][month]) || {} + const holidayDate = holidaysOfMonth[date] + if (holidayDate) { + item = { + ...item, + ...holidayDate + } + } else { + const holidayKeys = Object.keys(holidaysOfMonth).filter(item => + item.includes('-') + ) + let target = '' + for (let v of holidayKeys) { + const [start, end] = v.split('-') + if (+d.date >= +start && +d.date <= +end) { + target = v + break + } + } + const [start, end] = target.split('-') + const isInHolidays = inHolidays( + { + year, + month + }, + { + start, + end, + current: date + } + ) + if (isInHolidays) { + item = { + ...item, + ...holidaysOfMonth[target] + } + } else if (calendarConfig.showFestival) { + const { convertSolarLunar, convertlLunar2Solar } = + component.calendar || {} + if ( + typeof convertSolarLunar !== 'function' || + typeof convertlLunar2Solar !== 'function' + ) { + return logger.warn( + '农历节日显示需要引入农历插件(/component/v2/plugins/solarLunar)' + ) + } + addSpecialFestival(item, component) + const festivalDate = hasFestivalDate(item, component) + if (festivalDate) { + item = { + ...item, + ...festivalDate + } + } + } + } + return item + }) + } + return { + calendarData: { + ...calendarData, + dates: dates + }, + calendarConfig + } + }, + methods(component) { + return { + getHolidaysOfCurrentYear() { + const calendar = getCalendarData('calendar', component) + const { curYear } = calendar + return this.methods(component).getHolidaysOfYear(curYear) + }, + getHolidaysOfYear(year) { + if (!year) return logger.warn('getHolidaysOfCurrentYear() 入参错误') + if (!holidays[year]) { + logger.warn('未匹配到当前年份节假日信息,请自行补充') + return { + err: 'not match' + } + } + return holidays[year] + } + } + } + } +} diff --git a/src/components/calendar/plugins/index.js b/src/components/calendar/plugins/index.js new file mode 100644 index 0000000..238425d --- /dev/null +++ b/src/components/calendar/plugins/index.js @@ -0,0 +1,18 @@ +import preset from './preset/index' + +export default { + installed: [...preset], + use(plugin) { + if (typeof plugin !== 'function') return + const info = plugin() || {} + const { name } = info + if ( + name && + name !== 'methods' && + !this.installed.some(p => p[0] === name) + ) { + this.installed.unshift([name, info]) + } + return this + } +} diff --git a/src/components/calendar/plugins/preset/base.js b/src/components/calendar/plugins/preset/base.js new file mode 100644 index 0000000..3be7d51 --- /dev/null +++ b/src/components/calendar/plugins/preset/base.js @@ -0,0 +1,277 @@ +/** + * @Author: drfu* + * @Description: 基础功能 + * @Date: 2020-10-08 21:22:09* + * @Last Modified by: drfu + * @Last Modified time: 2020-10-11 13:28:52 + * */ + +import { calcJumpData } from '../../core' +import { renderCalendar } from '../../render' +import { + dateUtil, + getCalendarData, + setCalendarData, + getCalendarConfig +} from '../../utils/index' + +export default () => { + return { + name: 'base', + beforeRender(calendarData = {}, calendarConfig) { + const calendar = calendarData + const { selectedDates = [], dates } = calendar + let _dates = [...dates] + if (selectedDates.length) { + const selectedDatesStr = selectedDates.map(date => + dateUtil.toTimeStr(date) + ) + _dates.forEach(date => { + const dateStr = dateUtil.toTimeStr(date) + if (selectedDatesStr.includes(dateStr)) { + date.choosed = true + } + }) + } + return { + calendarData: { + ...calendarData, + dates: _dates + }, + calendarConfig + } + }, + onTapDate(tapedDate, calendarData = {}, calendarConfig = {}) { + const calendar = { + ...calendarData + } + const dateIndex = dateUtil.findDateIndexInArray( + tapedDate, + calendarData.dates + ) + const { multi, inverse } = calendarConfig + let dates = [...calendar.dates] + const { selectedDates = [] } = calendar + if (!multi) { + let preSelectedDate = {} + if (selectedDates.length) { + preSelectedDate = [...selectedDates].pop() || {} + } + const timeStr = dateUtil.toTimeStr + if (!inverse && timeStr(preSelectedDate) === timeStr(tapedDate)) { + return calendar + } + let _tapedDate = { ...tapedDate, choosed: !tapedDate.choosed } + + dates[dateIndex] = _tapedDate + if (preSelectedDate.date) { + const idx = dateUtil.findDateIndexInArray(preSelectedDate, dates) + const date = dates[idx] + if (date) { + date.choosed = false + } + } + if (dates[dateIndex].choosed) { + calendar.selectedDates = [dates[dateIndex]] + } else { + calendar.selectedDates = [] + } + } else { + dates[dateIndex] = { + ...dates[dateIndex], + choosed: !dates[dateIndex].choosed + } + if (!calendar.selectedDates) { + calendar.selectedDates = [] + } + if (dates[dateIndex].choosed) { + calendar.selectedDates.push(dates[dateIndex]) + } else { + calendar.selectedDates = calendar.selectedDates.filter( + date => + dateUtil.toTimeStr(date) !== dateUtil.toTimeStr(dates[dateIndex]) + ) + } + } + return { + calendarData: { + ...calendar, + dates + }, + calendarConfig + } + }, + onSwitchCalendar(date, calendarData = {}, component) { + const calendarConfig = getCalendarConfig(component) + if (calendarConfig.weekMode) { + return calendarData + } + const updatedRenderData = calcJumpData({ + dateInfo: date, + config: calendarConfig + }) + return { + ...calendarData, + ...updatedRenderData + } + }, + methods(component) { + return { + jump: dateInfo => { + if (Object.prototype.toString.call(dateInfo) !== '[object Object]') + return + const updatedRenderData = calcJumpData({ + dateInfo, + component + }) + const existCalendarData = getCalendarData('calendar', component) + const config = getCalendarConfig(component) + if (config.autoChoosedWhenJump) { + const target = updatedRenderData.dates[dateInfo.date - 1] + if (!updatedRenderData.selectedDates) { + updatedRenderData.selectedDates = [target] + } else { + updatedRenderData.selectedDates.push(target) + } + } + return renderCalendar.call(component, { + ...existCalendarData, + ...updatedRenderData + }) + }, + getCalendarConfig() { + return getCalendarConfig(component) + }, + setCalendarConfig(config) { + return new Promise((resolve, reject) => { + if (!component || !component.data.config) { + reject('异常:未找到组件配置信息') + return + } + let conf = { ...component.config, ...config } + component.config = conf + setCalendarData({ config: conf }, component) + .then(resolve) + .catch(reject) + }) + }, + cancelSelectedDates(cancelDates = []) { + const existCalendarData = getCalendarData('calendar', component) || {} + const { dates = [], selectedDates = [] } = existCalendarData + let updatedRenderData = {} + const config = getCalendarConfig(component) + let chooseAreaData = {} + if (config.chooseAreaMode) { + chooseAreaData = { + chooseAreaTimestamp: [], + tempChooseAreaTimestamp: [] + } + } + if (!cancelDates.length) { + dates.forEach(item => { + item.choosed = false + }) + updatedRenderData = { + dates, + selectedDates: [] + } + } else { + const cancelDatesStr = cancelDates.map(date => + dateUtil.toTimeStr(date) + ) + const filterSelectedDates = selectedDates.filter( + date => !cancelDatesStr.includes(dateUtil.toTimeStr(date)) + ) + dates.forEach(date => { + if (cancelDatesStr.includes(dateUtil.toTimeStr(date))) { + date.choosed = false + } + }) + updatedRenderData = { + dates, + selectedDates: filterSelectedDates + } + } + + return renderCalendar.call(component, { + ...existCalendarData, + ...updatedRenderData, + ...chooseAreaData + }) + }, + setSelectedDates: targetDates => { + const existCalendarData = getCalendarData('calendar', component) + let { dates, selectedDates = [] } = existCalendarData || {} + let __selectedDates = [] + let __dates = dates + if (!targetDates) { + __dates = dates.map(item => { + const date = { ...item } + date.choosed = true + if (existCalendarData.showLabelAlways && date.showTodoLabel) { + date.showTodoLabel = true + } else { + date.showTodoLabel = false + } + return date + }) + __selectedDates = dates + } else if (targetDates && targetDates.length) { + const allSelected = dateUtil.uniqueArrayByDate( + selectedDates.concat(targetDates) + ) + const allSelectedDateStr = allSelected.map(d => + dateUtil.toTimeStr(d) + ) + __dates = dates.map(item => { + const date = { ...item } + if (allSelectedDateStr.includes(dateUtil.toTimeStr(date))) { + date.choosed = true + __selectedDates.push(date) + } + if (existCalendarData.showLabelAlways && date.showTodoLabel) { + date.showTodoLabel = true + } else { + date.showTodoLabel = false + } + return date + }) + } + return renderCalendar.call(component, { + ...existCalendarData, + dates: __dates, + selectedDates: __selectedDates + }) + }, + setDateStyle: toSetDates => { + if (!Array.isArray(toSetDates)) return Promise.reject() + const existCalendarData = getCalendarData('calendar', component) + const { dates = [], specialStyleDates } = existCalendarData || {} + if (Array.isArray(specialStyleDates)) { + toSetDates = dateUtil.uniqueArrayByDate([ + ...specialStyleDates, + ...toSetDates + ]) + } + const toSetDatesStr = toSetDates.map(item => dateUtil.toTimeStr(item)) + const _dates = dates.map(item => { + const idx = toSetDatesStr.indexOf(dateUtil.toTimeStr(item)) + if (idx > -1) { + return { + ...item, + class: toSetDates[idx].class + } + } else { + return item + } + }) + return renderCalendar.call(component, { + ...existCalendarData, + dates: _dates, + specialStyleDates: toSetDates + }) + } + } + } + } +} diff --git a/src/components/calendar/plugins/preset/get-calendar-data.js b/src/components/calendar/plugins/preset/get-calendar-data.js new file mode 100644 index 0000000..463082a --- /dev/null +++ b/src/components/calendar/plugins/preset/get-calendar-data.js @@ -0,0 +1,69 @@ +/** + * @Author: drfu* + * @Description: 获取日历数据 + * @Date: 2020-10-08 21:22:09* + * @Last Modified by: drfu + * @Last Modified time: 2020-10-11 13:42:37 + * */ + +import { getCalendarData, logger, getCalendarConfig } from '../../utils/index' + +function wrapDateWithLunar(dates = [], convertFn) { + const datesWithLunar = JSON.parse(JSON.stringify(dates)).map(date => ({ + ...date, + lunar: convertFn(date) + })) + return datesWithLunar +} + +export default () => { + return { + name: 'getData', + methods(component) { + return { + getCurrentYM: () => { + const { curYear, curMonth } = getCalendarData('calendar', component) + return { + year: curYear, + month: curMonth + } + }, + getSelectedDates: (options = {}) => { + const dates = + getCalendarData('calendar.selectedDates', component) || [] + const config = getCalendarConfig(component) || {} + if (options.lunar && !config.showLunar) { + const injectedFns = component.calendar || {} + if (typeof injectedFns.convertSolarLunar === 'function') { + return wrapDateWithLunar(dates, injectedFns.convertSolarLunar) + } else { + logger.warn('获取农历信息需引入农历插件') + } + } else { + return dates + } + }, + getCalendarDates: (options = {}) => { + const config = getCalendarConfig(component) || {} + const dates = getCalendarData('calendar.dates', component) + if (options.lunar && !config.showLunar) { + const injectedFns = component.calendar || {} + if (typeof injectedFns.convertSolarLunar === 'function') { + return wrapDateWithLunar(dates, injectedFns.convertSolarLunar) + } else { + logger.warn('获取农历信息需引入农历插件') + } + } else { + return dates + } + }, + getCalendarAllData: () => { + return { + data: getCalendarData('calendar', component) || {}, + config: getCalendarConfig(component) || {} + } + } + } + } + } +} diff --git a/src/components/calendar/plugins/preset/index.d.ts b/src/components/calendar/plugins/preset/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/components/calendar/plugins/preset/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/components/calendar/plugins/preset/index.js b/src/components/calendar/plugins/preset/index.js new file mode 100644 index 0000000..70cde39 --- /dev/null +++ b/src/components/calendar/plugins/preset/index.js @@ -0,0 +1,9 @@ +import base from './base' +import getCalendarData from './get-calendar-data' + +const preset = [ + ['base', base()], + ['get-calendar-data', getCalendarData()] +] + +export default preset diff --git a/src/components/calendar/plugins/selectable.d.ts b/src/components/calendar/plugins/selectable.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/components/calendar/plugins/selectable.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/components/calendar/plugins/selectable.js b/src/components/calendar/plugins/selectable.js new file mode 100644 index 0000000..3734983 --- /dev/null +++ b/src/components/calendar/plugins/selectable.js @@ -0,0 +1,221 @@ +/** + * @Author: drfu* + * @Description: 禁用、启用日期选择 + * @Date: 2020-10-08 21:22:09* + * @Last Modified by: drfu + * @Last Modified time: 2020-10-08 21:25:00 + * */ + +import { getCalendarData, dateUtil, logger } from '../utils/index' +import { renderCalendar } from '../render' + +function convertEnableAreaToTimestamp(timearea = []) { + const start = timearea[0].split('-') + const end = timearea[1].split('-') + if (start.length !== 3 || end.length !== 3) { + logger.warn('enableArea() 参数格式为: ["2018-2-1", "2018-3-1"]') + return {} + } + const startTimestamp = dateUtil + .newDate(start[0], start[1], start[2]) + .getTime() + const endTimestamp = dateUtil.newDate(end[0], end[1], end[2]).getTime() + return { + start, + end, + startTimestamp, + endTimestamp + } +} + +function isValiditeOfDateArea(dateArea) { + const { + start, + end, + startTimestamp, + endTimestamp + } = convertEnableAreaToTimestamp(dateArea) + if (!start || !end) return + const datesCountOfStart = dateUtil.getDatesCountOfMonth(start[0], start[1]) + const datesCountOfEnd = dateUtil.getDatesCountOfMonth(end[0], end[1]) + if (start[2] > datesCountOfStart || start[2] < 1) { + logger.warn('enableArea() 开始日期错误,指定日期不在指定月份天数范围内') + return false + } else if (start[1] > 12 || start[1] < 1) { + logger.warn('enableArea() 开始日期错误,月份超出1-12月份') + return false + } else if (end[2] > datesCountOfEnd || end[2] < 1) { + logger.warn('enableArea() 截止日期错误,指定日期不在指定月份天数范围内') + return false + } else if (end[1] > 12 || end[1] < 1) { + logger.warn('enableArea() 截止日期错误,月份超出1-12月份') + return false + } else if (startTimestamp > endTimestamp) { + logger.warn('enableArea()参数最小日期大于了最大日期') + return false + } else { + return true + } +} + +function handleDisableMode(calendarConfig) { + const { disableMode } = calendarConfig + if (!disableMode) return {} + const disableBound = + dateUtil.getTimeStamp(disableMode.date) || dateUtil.todayTimestamp() + return { + disableBound, + disableType: disableMode.type + } +} + +function disabledByConfig(dateInfo, currentDate, calendarConfig) { + const date = { ...dateInfo } + const { disableType, disableBound } = handleDisableMode(calendarConfig) + if ( + (disableType === 'before' && disableBound && currentDate < disableBound) || + (disableType === 'after' && disableBound && currentDate > disableBound) + ) { + date.disable = true + } else { + date.disable = false + } + return date +} + +export default () => { + return { + name: 'enable', + beforeRender(calendarData = {}, calendarConfig = {}) { + const { + dates, + enableArea, + enableDates, + disableDates, + renderCausedBy + } = calendarData + const _dates = [...dates].map(date => { + let item = { ...date } + const timeStr = dateUtil.toTimeStr(date) + const timestamp = +dateUtil.getTimeStamp(item) + if (renderCausedBy === 'enableDates') { + if (enableDates && enableDates.length) { + if (enableDates.includes(timeStr)) { + item.disable = false + } else { + item.disable = true + } + return item + } + } else if (renderCausedBy === 'enableArea') { + if (enableArea && enableArea.length) { + const [startTimestamp, endTimestamp] = enableArea || [] + const ifOutofArea = + +startTimestamp > timestamp || timestamp > +endTimestamp + item.disable = ifOutofArea + return item + } + } else if (renderCausedBy === 'disableDates') { + if (disableDates && disableDates.length) { + if (disableDates && disableDates.includes(timeStr)) { + item.disable = true + } else { + item.disable = false + } + return item + } + } + return disabledByConfig(item, timestamp, calendarConfig) + }) + + return { + calendarData: { + ...calendarData, + dates: _dates + }, + calendarConfig + } + }, + methods(component) { + return { + enableArea: (dateArea = []) => { + if (dateArea.length === 2) { + const validate = isValiditeOfDateArea(dateArea) + if (validate) { + const existCalendarData = getCalendarData('calendar', component) + const { + startTimestamp, + endTimestamp + } = convertEnableAreaToTimestamp(dateArea) + + return renderCalendar.call(component, { + ...existCalendarData, + renderCausedBy: 'enableArea', + enableArea: [startTimestamp, endTimestamp] + }) + } + } else { + return Promise.inject( + 'enableArea()参数需为时间范围数组,形如:["2018-8-4" , "2018-8-24"]' + ) + } + }, + enableDates: (toSet = []) => { + if (!toSet.length) return + const existCalendarData = getCalendarData('calendar', component) + const { enableDates = [] } = existCalendarData || {} + let toSetDates = toSet.map(item => { + if (typeof item === 'string') { + return dateUtil.transformDateRow2Dict(item) + } + return item + }) + if (enableDates.length) { + toSetDates = dateUtil.uniqueArrayByDate([ + ...toSetDates, + ...enableDates.map(d => dateUtil.transformDateRow2Dict(d)) + ]) + } + return renderCalendar.call(component, { + ...existCalendarData, + renderCausedBy: 'enableDates', + enableDates: toSetDates.map(date => { + if (typeof date !== 'string') { + return dateUtil.toTimeStr(date) + } + return date + }) + }) + }, + disableDates: toSet => { + const existCalendarData = getCalendarData('calendar', component) + const { disableDates = [], dates = [] } = existCalendarData || {} + let toSetDates = toSet.map(item => { + let date = { ...item } + if (typeof date === 'string') { + return dateUtil.transformDateRow2Dict(item) + } + return item + }) + if (disableDates && disableDates.length) { + toSetDates = dateUtil.uniqueArrayByDate([ + ...toSetDates, + ...disableDates.map(d => dateUtil.transformDateRow2Dict(d)) + ]) + } + return renderCalendar.call(component, { + ...existCalendarData, + renderCausedBy: 'disableDates', + dates, + disableDates: toSetDates.map(date => { + if (typeof date !== 'string') { + return dateUtil.toTimeStr(date) + } + return date + }) + }) + } + } + } + } +} diff --git a/src/components/calendar/plugins/solarLunar/convertSolarLunar.js b/src/components/calendar/plugins/solarLunar/convertSolarLunar.js new file mode 100644 index 0000000..4ee3d8e --- /dev/null +++ b/src/components/calendar/plugins/solarLunar/convertSolarLunar.js @@ -0,0 +1,1036 @@ +/** + * @1900-2100区间内的公历、农历互转 + * @Version 1.0.3 + * @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] + * @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] + */ +/* 公历年月日转农历数据 返回json */ +// calendar.solar2lunar(1987,11,01); +/** 农历年月日转公历年月日 **/ +// calendar.lunar2solar(1987,9,10); +// 调用以上方法后返回类似如下object(json)具体以上就不需要解释了吧! +// c开头的是公历各属性值 l开头的自然就是农历咯 gz开头的就是天干地支纪年的数据啦~ +// { +// Animal: "兔", +// IDayCn: "初十", +// IMonthCn: "九月", +// Term: null, +// astro: "天蝎座", +// cDay: 1, +// cMonth: 11, +// cYear: 1987, +// gzDay: "甲寅", +// gzMonth: "庚戌", +// gzYear: "丁卯", +// isLeap: false, +// isTerm: false, +// isToday: false, +// lDay: 10, +// lMonth: 9, +// lYear: 1987, +// nWeek: 7, +// ncWeek: "星期日" +// } +// 该代码还有其它可以调用的方法,请自己查看代码中的详细注释 +const calendar = { + /** + * 农历1900-2100的润大小信息表 + * @Array Of Property + * @return Hex + */ + lunarInfo: [ + 0x04bd8, + 0x04ae0, + 0x0a570, + 0x054d5, + 0x0d260, + 0x0d950, + 0x16554, + 0x056a0, + 0x09ad0, + 0x055d2, // 1900-1909 + 0x04ae0, + 0x0a5b6, + 0x0a4d0, + 0x0d250, + 0x1d255, + 0x0b540, + 0x0d6a0, + 0x0ada2, + 0x095b0, + 0x14977, // 1910-1919 + 0x04970, + 0x0a4b0, + 0x0b4b5, + 0x06a50, + 0x06d40, + 0x1ab54, + 0x02b60, + 0x09570, + 0x052f2, + 0x04970, // 1920-1929 + 0x06566, + 0x0d4a0, + 0x0ea50, + 0x06e95, + 0x05ad0, + 0x02b60, + 0x186e3, + 0x092e0, + 0x1c8d7, + 0x0c950, // 1930-1939 + 0x0d4a0, + 0x1d8a6, + 0x0b550, + 0x056a0, + 0x1a5b4, + 0x025d0, + 0x092d0, + 0x0d2b2, + 0x0a950, + 0x0b557, // 1940-1949 + 0x06ca0, + 0x0b550, + 0x15355, + 0x04da0, + 0x0a5b0, + 0x14573, + 0x052b0, + 0x0a9a8, + 0x0e950, + 0x06aa0, // 1950-1959 + 0x0aea6, + 0x0ab50, + 0x04b60, + 0x0aae4, + 0x0a570, + 0x05260, + 0x0f263, + 0x0d950, + 0x05b57, + 0x056a0, // 1960-1969 + 0x096d0, + 0x04dd5, + 0x04ad0, + 0x0a4d0, + 0x0d4d4, + 0x0d250, + 0x0d558, + 0x0b540, + 0x0b6a0, + 0x195a6, // 1970-1979 + 0x095b0, + 0x049b0, + 0x0a974, + 0x0a4b0, + 0x0b27a, + 0x06a50, + 0x06d40, + 0x0af46, + 0x0ab60, + 0x09570, // 1980-1989 + 0x04af5, + 0x04970, + 0x064b0, + 0x074a3, + 0x0ea50, + 0x06b58, + 0x055c0, + 0x0ab60, + 0x096d5, + 0x092e0, // 1990-1999 + 0x0c960, + 0x0d954, + 0x0d4a0, + 0x0da50, + 0x07552, + 0x056a0, + 0x0abb7, + 0x025d0, + 0x092d0, + 0x0cab5, // 2000-2009 + 0x0a950, + 0x0b4a0, + 0x0baa4, + 0x0ad50, + 0x055d9, + 0x04ba0, + 0x0a5b0, + 0x15176, + 0x052b0, + 0x0a930, // 2010-2019 + 0x07954, + 0x06aa0, + 0x0ad50, + 0x05b52, + 0x04b60, + 0x0a6e6, + 0x0a4e0, + 0x0d260, + 0x0ea65, + 0x0d530, // 2020-2029 + 0x05aa0, + 0x076a3, + 0x096d0, + 0x04afb, + 0x04ad0, + 0x0a4d0, + 0x1d0b6, + 0x0d250, + 0x0d520, + 0x0dd45, // 2030-2039 + 0x0b5a0, + 0x056d0, + 0x055b2, + 0x049b0, + 0x0a577, + 0x0a4b0, + 0x0aa50, + 0x1b255, + 0x06d20, + 0x0ada0, // 2040-2049 + /** Add By JJonline@JJonline.Cn **/ + 0x14b63, + 0x09370, + 0x049f8, + 0x04970, + 0x064b0, + 0x168a6, + 0x0ea50, + 0x06b20, + 0x1a6c4, + 0x0aae0, // 2050-2059 + 0x0a2e0, + 0x0d2e3, + 0x0c960, + 0x0d557, + 0x0d4a0, + 0x0da50, + 0x05d55, + 0x056a0, + 0x0a6d0, + 0x055d4, // 2060-2069 + 0x052d0, + 0x0a9b8, + 0x0a950, + 0x0b4a0, + 0x0b6a6, + 0x0ad50, + 0x055a0, + 0x0aba4, + 0x0a5b0, + 0x052b0, // 2070-2079 + 0x0b273, + 0x06930, + 0x07337, + 0x06aa0, + 0x0ad50, + 0x14b55, + 0x04b60, + 0x0a570, + 0x054e4, + 0x0d160, // 2080-2089 + 0x0e968, + 0x0d520, + 0x0daa0, + 0x16aa6, + 0x056d0, + 0x04ae0, + 0x0a9d4, + 0x0a2d0, + 0x0d150, + 0x0f252, // 2090-2099 + 0x0d520 + ], // 2100 + + /** + * 公历每个月份的天数普通表 + * @Array Of Property + * @return Number + */ + solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + + /** + * 天干地支之天干速查表 + * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] + * @return Cn string + */ + Gan: [ + '\u7532', + '\u4e59', + '\u4e19', + '\u4e01', + '\u620a', + '\u5df1', + '\u5e9a', + '\u8f9b', + '\u58ec', + '\u7678' + ], + + /** + * 天干地支之地支速查表 + * @Array Of Property + * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] + * @return Cn string + */ + Zhi: [ + '\u5b50', + '\u4e11', + '\u5bc5', + '\u536f', + '\u8fb0', + '\u5df3', + '\u5348', + '\u672a', + '\u7533', + '\u9149', + '\u620c', + '\u4ea5' + ], + + /** + * 天干地支之地支速查表<=>生肖 + * @Array Of Property + * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] + * @return Cn string + */ + Animals: [ + '\u9f20', + '\u725b', + '\u864e', + '\u5154', + '\u9f99', + '\u86c7', + '\u9a6c', + '\u7f8a', + '\u7334', + '\u9e21', + '\u72d7', + '\u732a' + ], + + /** + * 24节气速查表 + * @Array Of Property + * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] + * @return Cn string + */ + solarTerm: [ + '\u5c0f\u5bd2', + '\u5927\u5bd2', + '\u7acb\u6625', + '\u96e8\u6c34', + '\u60ca\u86f0', + '\u6625\u5206', + '\u6e05\u660e', + '\u8c37\u96e8', + '\u7acb\u590f', + '\u5c0f\u6ee1', + '\u8292\u79cd', + '\u590f\u81f3', + '\u5c0f\u6691', + '\u5927\u6691', + '\u7acb\u79cb', + '\u5904\u6691', + '\u767d\u9732', + '\u79cb\u5206', + '\u5bd2\u9732', + '\u971c\u964d', + '\u7acb\u51ac', + '\u5c0f\u96ea', + '\u5927\u96ea', + '\u51ac\u81f3' + ], + + /** + * 1900-2100各年的24节气日期速查表 + * @Array Of Property + * @return 0x string For splice + */ + sTermInfo: [ + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf97c3598082c95f8c965cc920f', + '97bd0b06bdb0722c965ce1cfcc920f', + 'b027097bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', + '97bd0b06bdb0722c965ce1cfcc920f', + 'b027097bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', + '97bd0b06bdb0722c965ce1cfcc920f', + 'b027097bd097c36b0b6fc9274c91aa', + '9778397bd19801ec9210c965cc920e', + '97b6b97bd19801ec95f8c965cc920f', + '97bd09801d98082c95f8e1cfcc920f', + '97bd097bd097c36b0b6fc9210c8dc2', + '9778397bd197c36c9210c9274c91aa', + '97b6b97bd19801ec95f8c965cc920e', + '97bd09801d98082c95f8e1cfcc920f', + '97bd097bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', + '97b6b97bd19801ec95f8c965cc920e', + '97bcf97c3598082c95f8e1cfcc920f', + '97bd097bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf97c3598082c95f8c965cc920f', + '97bd097bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf97c3598082c95f8c965cc920f', + '97bd097bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', + '97bd097bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', + '97bd097bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', + '97bd097bd07f595b0b6fc920fb0722', + '9778397bd097c36b0b6fc9210c8dc2', + '9778397bd19801ec9210c9274c920e', + '97b6b97bd19801ec95f8c965cc920f', + '97bd07f5307f595b0b0bc920fb0722', + '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c920e', + '97b6b97bd19801ec95f8c965cc920f', + '97bd07f5307f595b0b0bc920fb0722', + '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bd07f1487f595b0b0bc920fb0722', + '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c9274c920e', + '97bcf7f0e47f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', + '97b6b97bd197c36c9210c9274c920e', + '97bcf7f0e47f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c920e', + '97b6b7f0e47f531b0723b0b6fb0722', + '7f0e37f5307f595b0b0bc920fb0722', + '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36b0b70c9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0787b0721', + '7f0e27f0e47f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', + '97b6b7f0e47f149b0723b0787b0721', + '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c8dc2', + '977837f0e37f149b0723b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', + '7f0e37f5307f595b0b0bc920fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', + '977837f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', + '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', + '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', + '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', + '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', + '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f149b0723b0787b0721', + '7f0e27f0e47f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', + '977837f0e37f14998082b0723b06bd', + '7f07e7f0e37f149b0723b0787b0721', + '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', + '977837f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', + '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e37f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', + '7f0e37f1487f531b0b0bb0b6fb0722', + '7f0e37f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e37f1487f531b0b0bb0b6fb0722', + '7f0e37f0e37f14898082b072297c35', + '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e37f0e37f14898082b072297c35', + '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', + '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f149b0723b0787b0721', + '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', + '7ec967f0e37f14998082b0723b06bd', + '7f07e7f0e47f149b0723b0787b0721', + '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', + '7ec967f0e37f14998082b0723b06bd', + '7f07e7f0e37f14998083b0787b0721', + '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', + '7ec967f0e37f14898082b0723b02d5', + '7f07e7f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', + '7f0e36665b66aa89801e9808297c35', + '665f67f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', + '7f0e36665b66a449801e9808297c35', + '665f67f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e36665b66a449801e9808297c35', + '665f67f0e37f14898082b072297c35', + '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e26665b66a449801e9808297c35', + '665f67f0e37f1489801eb072297c35', + '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722' + ], + + /** + * 数字转中文速查表 + * @Array Of Property + * @trans ['日','一','二','三','四','五','六','七','八','九','十'] + * @return Cn string + */ + nStr1: [ + '\u65e5', + '\u4e00', + '\u4e8c', + '\u4e09', + '\u56db', + '\u4e94', + '\u516d', + '\u4e03', + '\u516b', + '\u4e5d', + '\u5341' + ], + + /** + * 日期转农历称呼速查表 + * @Array Of Property + * @trans ['初','十','廿','卅'] + * @return Cn string + */ + nStr2: ['\u521d', '\u5341', '\u5eff', '\u5345'], + + /** + * 月份转农历称呼速查表 + * @Array Of Property + * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] + * @return Cn string + */ + nStr3: [ + '\u6b63', + '\u4e8c', + '\u4e09', + '\u56db', + '\u4e94', + '\u516d', + '\u4e03', + '\u516b', + '\u4e5d', + '\u5341', + '\u51ac', + '\u814a' + ], + + /** + * 返回农历y年一整年的总天数 + * @param lunar Year + * @return Number + * @eg:var count = calendar.lYearDays(1987) ;//count=387 + */ + lYearDays: function(y) { + let i + let sum = 348 + for (i = 0x8000; i > 0x8; i >>= 1) { + sum += calendar.lunarInfo[y - 1900] & i ? 1 : 0 + } + return sum + calendar.leapDays(y) + }, + + /** + * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 + * @param lunar Year + * @return Number (0-12) + * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 + */ + leapMonth: function(y) { + // 闰字编码 \u95f0 + return calendar.lunarInfo[y - 1900] & 0xf + }, + + /** + * 返回农历y年闰月的天数 若该年没有闰月则返回0 + * @param lunar Year + * @return Number (0、29、30) + * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 + */ + leapDays: function(y) { + if (calendar.leapMonth(y)) { + return calendar.lunarInfo[y - 1900] & 0x10000 ? 30 : 29 + } + return 0 + }, + + /** + * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 + * @param lunar Year + * @return Number (-1、29、30) + * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 + */ + monthDays: function(y, m) { + if (m > 12 || m < 1) return -1 // 月份参数从1至12,参数错误返回-1 + return calendar.lunarInfo[y - 1900] & (0x10000 >> m) ? 30 : 29 + }, + + /** + * 返回公历(!)y年m月的天数 + * @param solar Year + * @return Number (-1、28、29、30、31) + * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 + */ + solarDays: function(y, m) { + if (m > 12 || m < 1) return -1 // 若参数错误 返回-1 + const ms = m - 1 + if (+ms === 1) { + // 2月份的闰平规律测算后确认返回28或29 + return (y % 4 === 0 && y % 100 !== 0) || y % 400 === 0 ? 29 : 28 + } else { + return calendar.solarMonth[ms] + } + }, + + /** + * 农历年份转换为干支纪年 + * @param lYear 农历年的年份数 + * @return Cn string + */ + toGanZhiYear: function(lYear) { + let ganKey = (lYear - 3) % 10 + let zhiKey = (lYear - 3) % 12 + if (+ganKey === 0) ganKey = 10 // 如果余数为0则为最后一个天干 + if (+zhiKey === 0) zhiKey = 12 // 如果余数为0则为最后一个地支 + return calendar.Gan[ganKey - 1] + calendar.Zhi[zhiKey - 1] + }, + + /** + * 公历月、日判断所属星座 + * @param cMonth [description] + * @param cDay [description] + * @return Cn string + */ + toAstro: function(cMonth, cDay) { + const s = + '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf' + const arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22] + return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7' // 座 + }, + + /** + * 传入offset偏移量返回干支 + * @param offset 相对甲子的偏移量 + * @return Cn string + */ + toGanZhi: function(offset) { + return calendar.Gan[offset % 10] + calendar.Zhi[offset % 12] + }, + + /** + * 传入公历(!)y年获得该年第n个节气的公历日期 + * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 + * @return day Number + * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 + */ + getTerm: function(y, n) { + if (y < 1900 || y > 2100) return -1 + if (n < 1 || n > 24) return -1 + const _table = calendar.sTermInfo[y - 1900] + const _info = [ + parseInt('0x' + _table.substr(0, 5)).toString(), + parseInt('0x' + _table.substr(5, 5)).toString(), + parseInt('0x' + _table.substr(10, 5)).toString(), + parseInt('0x' + _table.substr(15, 5)).toString(), + parseInt('0x' + _table.substr(20, 5)).toString(), + parseInt('0x' + _table.substr(25, 5)).toString() + ] + const _calday = [ + _info[0].substr(0, 1), + _info[0].substr(1, 2), + _info[0].substr(3, 1), + _info[0].substr(4, 2), + + _info[1].substr(0, 1), + _info[1].substr(1, 2), + _info[1].substr(3, 1), + _info[1].substr(4, 2), + + _info[2].substr(0, 1), + _info[2].substr(1, 2), + _info[2].substr(3, 1), + _info[2].substr(4, 2), + + _info[3].substr(0, 1), + _info[3].substr(1, 2), + _info[3].substr(3, 1), + _info[3].substr(4, 2), + + _info[4].substr(0, 1), + _info[4].substr(1, 2), + _info[4].substr(3, 1), + _info[4].substr(4, 2), + + _info[5].substr(0, 1), + _info[5].substr(1, 2), + _info[5].substr(3, 1), + _info[5].substr(4, 2) + ] + return parseInt(_calday[n - 1]) + }, + + /** + * 传入农历数字月份返回汉语通俗表示法 + * @param lunar month + * @return Cn string + * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' + */ + toChinaMonth: function(m) { + // 月 => \u6708 + if (m > 12 || m < 1) return -1 // 若参数错误 返回-1 + let s = calendar.nStr3[m - 1] + s += '\u6708' // 加上月字 + return s + }, + + /** + * 传入农历日期数字返回汉字表示法 + * @param lunar day + * @return Cn string + * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' + */ + toChinaDay: function(d) { + // 日 => \u65e5 + let s + switch (d) { + case 10: + s = '\u521d\u5341' + break + case 20: + s = '\u4e8c\u5341' + break + case 30: + s = '\u4e09\u5341' + break + default: + s = calendar.nStr2[Math.floor(d / 10)] + s += calendar.nStr1[d % 10] + } + return s + }, + + /** + * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” + * @param y year + * @return Cn string + * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' + */ + getAnimal: function(y) { + return calendar.Animals[(y - 4) % 12] + }, + + /** + * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + * @param y solar year + * @param m solar month + * @param d solar day + * @return JSON object + * @eg:console.log(calendar.solar2lunar(1987,11,01)); + */ + solar2lunar: function(y, m, d) { + // 参数区间1900.1.31~2100.12.31 + // 年份限定、上限 + if (y < 1900 || y > 2100) { + return -1 // undefined转换为数字变为NaN + } + // 公历传参最下限 + if (+y === 1900 && +m === 1 && +d < 31) { + return -1 + } + // 未传参 获得当天 + let objDate + if (!y) { + objDate = new Date() + } else { + objDate = new Date(y, parseInt(m) - 1, d) + } + let i + let leap = 0 + let temp = 0 + // 修正ymd参数 + y = objDate.getFullYear() + m = objDate.getMonth() + 1 + d = objDate.getDate() + let offset = + (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - + Date.UTC(1900, 0, 31)) / + 86400000 + for (i = 1900; i < 2101 && offset > 0; i++) { + temp = calendar.lYearDays(i) + offset -= temp + } + if (offset < 0) { + offset += temp + i-- + } + + // 是否今天 + const isTodayObj = new Date() + let isToday = false + if ( + isTodayObj.getFullYear() === +y && + isTodayObj.getMonth() + 1 === +m && + isTodayObj.getDate() === +d + ) { + isToday = true + } + // 星期几 + let nWeek = objDate.getDay() + const cWeek = calendar.nStr1[nWeek] + // 数字表示周几顺应天朝周一开始的惯例 + if (+nWeek === 0) { + nWeek = 7 + } + // 农历年 + const year = i + leap = calendar.leapMonth(i) // 闰哪个月 + let isLeap = false + + // 效验闰月 + for (i = 1; i < 13 && offset > 0; i++) { + // 闰月 + if (leap > 0 && i === leap + 1 && isLeap === false) { + --i + isLeap = true + temp = calendar.leapDays(year) // 计算农历闰月天数 + } else { + temp = calendar.monthDays(year, i) // 计算农历普通月天数 + } + // 解除闰月 + if (isLeap === true && i === leap + 1) isLeap = false + offset -= temp + } + // 闰月导致数组下标重叠取反 + if (offset === 0 && leap > 0 && i === leap + 1) { + if (isLeap) { + isLeap = false + } else { + isLeap = true + --i + } + } + if (offset < 0) { + offset += temp + --i + } + // 农历月 + const month = i + // 农历日 + const day = offset + 1 + // 天干地支处理 + const sm = m - 1 + const gzY = calendar.toGanZhiYear(year) + + // 当月的两个节气 + // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year` + const firstNode = calendar.getTerm(y, m * 2 - 1) // 返回当月「节」为几日开始 + const secondNode = calendar.getTerm(y, m * 2) // 返回当月「节」为几日开始 + + // 依据12节气修正干支月 + let gzM = calendar.toGanZhi((y - 1900) * 12 + m + 11) + if (d >= firstNode) { + gzM = calendar.toGanZhi((y - 1900) * 12 + m + 12) + } + + // 传入的日期的节气与否 + let isTerm = false + let Term = null + if (+firstNode === d) { + isTerm = true + Term = calendar.solarTerm[m * 2 - 2] + } + if (+secondNode === d) { + isTerm = true + Term = calendar.solarTerm[m * 2 - 1] + } + // 日柱 当月一日与 1900/1/1 相差天数 + const dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10 + const gzD = calendar.toGanZhi(dayCyclical + d - 1) + // 该日期所属的星座 + const astro = calendar.toAstro(m, d) + + return { + lYear: year, + lMonth: month, + lDay: day, + Animal: calendar.getAnimal(year), + IMonthCn: (isLeap ? '\u95f0' : '') + calendar.toChinaMonth(month), + IDayCn: calendar.toChinaDay(day), + cYear: y, + cMonth: m, + cDay: d, + gzYear: gzY, + gzMonth: gzM, + gzDay: gzD, + isToday: isToday, + isLeap: isLeap, + nWeek: nWeek, + ncWeek: '\u661f\u671f' + cWeek, + isTerm: isTerm, + Term: Term, + astro: astro + } + }, + + /** + * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON + * @param y lunar year + * @param m lunar month + * @param d lunar day + * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] + * @return JSON object + * @eg:console.log(calendar.lunar2solar(1987,9,10)); + */ + lunar2solar: function(y, m, d, isLeapMonth) { + // 参数区间1900.1.31~2100.12.1 + isLeapMonth = !!isLeapMonth + // let leapOffset = 0; + const leapMonth = calendar.leapMonth(y) + // let leapDay = calendar.leapDays(y); + if (isLeapMonth && leapMonth !== m) return -1 // 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同 + if ( + (+y === 2100 && +m === 12 && +d > 1) || + (+y === 1900 && +m === 1 && +d < 31) + ) + return -1 // 超出了最大极限值 + const day = calendar.monthDays(y, m) + let _day = day + // bugFix 2016-9-25 + // if month is leap, _day use leapDays method + if (isLeapMonth) { + _day = calendar.leapDays(y, m) + } + if (y < 1900 || y > 2100 || d > _day) return -1 // 参数合法性效验 + + // 计算农历的时间差 + let offset = 0 + for (let i = 1900; i < y; i++) { + offset += calendar.lYearDays(i) + } + let leap = 0 + let isAdd = false + for (let i = 1; i < m; i++) { + leap = calendar.leapMonth(y) + if (!isAdd) { + // 处理闰月 + if (leap <= i && leap > 0) { + offset += calendar.leapDays(y) + isAdd = true + } + } + offset += calendar.monthDays(y, i) + } + // 转换闰月农历 需补充该年闰月的前一个月的时差 + if (isLeapMonth) offset += day + // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点) + const stmap = Date.UTC(1900, 1, 30, 0, 0, 0) + const calObj = new Date((offset + d - 31) * 86400000 + stmap) + const cY = calObj.getUTCFullYear() + const cM = calObj.getUTCMonth() + 1 + const cD = calObj.getUTCDate() + + return calendar.solar2lunar(cY, cM, cD) + } +} + +const { + Gan, + Zhi, + nStr1, + nStr2, + nStr3, + Animals, + solarTerm, + lunarInfo, + sTermInfo, + solarMonth, + ...rest +} = calendar + +export default rest diff --git a/src/components/calendar/plugins/solarLunar/index.d.ts b/src/components/calendar/plugins/solarLunar/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/components/calendar/plugins/solarLunar/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/components/calendar/plugins/solarLunar/index.js b/src/components/calendar/plugins/solarLunar/index.js new file mode 100644 index 0000000..79ffbfd --- /dev/null +++ b/src/components/calendar/plugins/solarLunar/index.js @@ -0,0 +1,59 @@ +import { dateUtil } from '../../utils/index' +import convertSolarLunar from './convertSolarLunar' + +function getDateRow2Dict(dateInfo) { + if (!dateInfo) return dateInfo + if (typeof dateInfo === 'string' && dateInfo.includes('-')) { + dateInfo = dateUtil.transformDateRow2Dict(dateInfo) + } + return dateInfo +} + +export default () => { + return { + name: 'convertSolarLunar', + beforeRender(calendarData = {}, calendarConfig = {}) { + let { dates = [], selectedDates = [] } = calendarData + if (calendarConfig.showLunar) { + dates = dates.map(dataInfo => { + const { year, month, date } = dataInfo + return { + ...dataInfo, + lunar: convertSolarLunar.solar2lunar(year, month, date) + } + }) + selectedDates = selectedDates.map(dataInfo => { + const { year, month, date } = dataInfo + return { + ...dataInfo, + lunar: convertSolarLunar.solar2lunar(year, month, date) + } + }) + } + return { + calendarData: { + ...calendarData, + dates: dates, + selectedDates: selectedDates + }, + calendarConfig + } + }, + methods() { + return { + convertSolarLunar: dateInfo => { + dateInfo = getDateRow2Dict(dateInfo) + if (!dateInfo) return dateInfo + const { year, month, date } = dateInfo + return convertSolarLunar.solar2lunar(year, month, date) + }, + convertlLunar2Solar: (dateInfo, isLeapMonth) => { + dateInfo = getDateRow2Dict(dateInfo) + if (!dateInfo) return dateInfo + const { year, month, date } = dateInfo + return convertSolarLunar.lunar2solar(year, month, date, isLeapMonth) + } + } + } + } +} diff --git a/src/components/calendar/plugins/time-range.js b/src/components/calendar/plugins/time-range.js new file mode 100644 index 0000000..ef4dd41 --- /dev/null +++ b/src/components/calendar/plugins/time-range.js @@ -0,0 +1,305 @@ +/** + * @Author: drfu* + * @Description: 时间区域选择 + * @Date: 2020-10-08 21:22:09* + * @Last Modified by: drfu + * @Last Modified time: 2020-10-11 13:56:32 + * */ + +import { renderCalendar } from '../render' +import { + logger, + dateUtil, + getCalendarConfig, + getCalendarData +} from '../utils/index' + +function pusheNextMonthDateArea( + dateInfo = {}, + startTimestamp, + endTimestamp, + selectedDates = [] +) { + let tempOfSelectedDate = [...selectedDates] + const dates = dateUtil.calcDates(dateInfo.year, dateInfo.month) + let datesLen = dates.length + for (let i = 0; i < datesLen; i++) { + const date = dates[i] + const timeStamp = dateUtil.getTimeStamp(date) + if (timeStamp <= endTimestamp && timeStamp >= startTimestamp) { + tempOfSelectedDate.push({ + ...date, + choosed: true + }) + } + if (i === datesLen - 1 && timeStamp < endTimestamp) { + pusheNextMonthDateArea( + dateUtil.getNextMonthInfo(date), + startTimestamp, + endTimestamp, + tempOfSelectedDate + ) + } + } + return tempOfSelectedDate +} +function pushPrevMonthDateArea( + dateInfo = {}, + startTimestamp, + endTimestamp, + selectedDates = [] +) { + let tempOfSelectedDate = [...selectedDates] + const dates = dateUtil.sortDatesByTime( + dateUtil.calcDates(dateInfo.year, dateInfo.month), + 'desc' + ) + let datesLen = dates.length + let firstDate = dateUtil.getTimeStamp(dates[0]) + for (let i = 0; i < datesLen; i++) { + const date = dates[i] + const timeStamp = dateUtil.getTimeStamp(date) + if (timeStamp >= startTimestamp && timeStamp <= endTimestamp) { + tempOfSelectedDate.push({ + ...date, + choosed: true + }) + } + if (i === datesLen - 1 && firstDate > startTimestamp) { + pushPrevMonthDateArea( + dateUtil.getPrevMonthInfo(date), + startTimestamp, + endTimestamp, + tempOfSelectedDate + ) + } + } + return tempOfSelectedDate +} +/** + * 当设置日期区域非当前时保存其它月份的日期至已选日期数组 + * @param {object} info + */ +function calcDateWhenNotInOneMonth(info) { + const { firstDate, lastDate, startTimestamp, endTimestamp } = info + let { selectedDate } = info + if (dateUtil.getTimeStamp(firstDate) > startTimestamp) { + selectedDate = pushPrevMonthDateArea( + dateUtil.getPrevMonthInfo(firstDate), + startTimestamp, + endTimestamp, + selectedDate + ) + } + if (dateUtil.getTimeStamp(lastDate) < endTimestamp) { + selectedDate = pusheNextMonthDateArea( + dateUtil.getNextMonthInfo(lastDate), + startTimestamp, + endTimestamp, + selectedDate + ) + } + return [...selectedDate] +} + +/** + * 指定日期区域转时间戳 + * @param {array} timearea 时间区域 + */ +export function convertTimeRangeToTimestamp(timearea = []) { + const start = timearea[0].split('-') + const end = timearea[1].split('-') + if (start.length !== 3 || end.length !== 3) { + logger.warn('enableArea() 参数格式为: ["2018-2-1", "2018-3-1"]') + return {} + } + const startTimestamp = dateUtil + .newDate(start[0], start[1], start[2]) + .getTime() + const endTimestamp = dateUtil.newDate(end[0], end[1], end[2]).getTime() + return { + start, + end, + startTimestamp, + endTimestamp + } +} + +/** + * 校验时间区域是否合法 + * @param {array} dateArea 时间区域 + */ +function validateTimeRange(dateArea) { + const { + start, + end, + startTimestamp, + endTimestamp + } = convertTimeRangeToTimestamp(dateArea) + if (!start || !end) return + const startMonthDays = dateUtil.getDatesCountOfMonth(start[0], start[1]) + const endMonthDays = dateUtil.getDatesCountOfMonth(end[0], end[1]) + if (start[2] > startMonthDays || start[2] < 1) { + logger.warn('enableArea() 开始日期错误,指定日期不在当前月份天数范围内') + return false + } else if (start[1] > 12 || start[1] < 1) { + logger.warn('enableArea() 开始日期错误,月份超出1-12月份') + return false + } else if (end[2] > endMonthDays || end[2] < 1) { + logger.warn('enableArea() 截止日期错误,指定日期不在当前月份天数范围内') + return false + } else if (end[1] > 12 || end[1] < 1) { + logger.warn('enableArea() 截止日期错误,月份超出1-12月份') + return false + } else if (startTimestamp > endTimestamp) { + logger.warn('enableArea()参数最小日期大于了最大日期') + return false + } else { + return true + } +} + +export default () => { + return { + name: 'timeRange', + beforeRender(calendarData = {}, calendarConfig = {}) { + const { + chooseAreaTimestamp = [], + dates = [], + selectedDates = [] + } = calendarData + let __dates = dates + let __selectedDates = selectedDates + const [startDateTimestamp, endDateTimestamp] = chooseAreaTimestamp + if (chooseAreaTimestamp.length === 2) { + __selectedDates = [] + __dates = dates.map(d => { + const date = { ...d } + const dateTimeStamp = dateUtil.getTimeStamp(date) + if ( + dateTimeStamp >= startDateTimestamp && + endDateTimestamp >= dateTimeStamp + ) { + date.choosed = true + __selectedDates.push(date) + } else { + date.choosed = false + __selectedDates = __selectedDates.filter( + item => dateUtil.getTimeStamp(item) !== dateTimeStamp + ) + } + return date + }) + const monthOfStartDate = new Date(startDateTimestamp).getMonth() + const monthOfEndDate = new Date(endDateTimestamp).getMonth() + if (monthOfStartDate !== monthOfEndDate) { + __selectedDates = calcDateWhenNotInOneMonth({ + firstDate: __dates[0], + lastDate: __dates[__dates.length - 1], + startTimestamp: startDateTimestamp, + endTimestamp: endDateTimestamp, + selectedDate: __selectedDates + }) + } + } + return { + calendarData: { + ...calendarData, + dates: __dates, + selectedDates: dateUtil.sortDatesByTime( + dateUtil.uniqueArrayByDate(__selectedDates) + ) + }, + calendarConfig + } + }, + onTapDate(tapedDate, calendarData = {}, calendarConfig = {}) { + if (!calendarConfig.chooseAreaMode) { + return { + calendarData, + calendarConfig + } + } + let { + tempChooseAreaTimestamp = [], + chooseAreaTimestamp: existChooseAreaTimestamp = [], + selectedDates = [], + dates = [] + } = calendarData + const timestamp = dateUtil.getTimeStamp(tapedDate) + let __dates = [...dates] + let __selectedDates = [...selectedDates] + if ( + tempChooseAreaTimestamp.length === 2 || + existChooseAreaTimestamp.length === 2 + ) { + tempChooseAreaTimestamp = [tapedDate] + __selectedDates = [] + __dates.forEach(d => (d.choosed = false)) + } else if (tempChooseAreaTimestamp.length === 1) { + const preChoosedDate = tempChooseAreaTimestamp[0] + const preTimestamp = dateUtil.getTimeStamp(preChoosedDate) + if (preTimestamp <= timestamp) { + tempChooseAreaTimestamp.push(tapedDate) + } else if (preTimestamp > timestamp) { + tempChooseAreaTimestamp.unshift(tapedDate) + } + } else { + tempChooseAreaTimestamp = [tapedDate] + } + let chooseAreaTimestamp = [] + if (tempChooseAreaTimestamp.length === 2) { + const [startDate, endDate] = tempChooseAreaTimestamp + const startDateTimestamp = dateUtil.getTimeStamp(startDate) + const endDateTimestamp = dateUtil.getTimeStamp(endDate) + chooseAreaTimestamp = [startDateTimestamp, endDateTimestamp] + } + return { + calendarData: { + ...calendarData, + chooseAreaTimestamp, + tempChooseAreaTimestamp, + dates: __dates, + selectedDates: __selectedDates + }, + calendarConfig: { + ...calendarConfig, + multi: true + } + } + }, + methods(component) { + return { + /** + * 设置连续日期选择区域 + * @param {array} dateArea 区域开始结束日期数组 + */ + chooseDateArea: (dateArea = []) => { + if (dateArea.length === 1) { + dateArea = dateArea.concat(dateArea) + } + if (dateArea.length !== 2) return + const isRight = validateTimeRange(dateArea) + if (!isRight) return + const config = getCalendarConfig(component) || {} + const { startTimestamp, endTimestamp } = convertTimeRangeToTimestamp( + dateArea + ) + const existCalendarData = getCalendarData('calendar', component) + return renderCalendar.call( + component, + { + ...existCalendarData, + chooseAreaTimestamp: [startTimestamp, endTimestamp] + }, + { + ...config, + multi: true, + chooseAreaMode: true + } + ) + } + } + } + } +} diff --git a/src/components/calendar/plugins/todo.d.ts b/src/components/calendar/plugins/todo.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/components/calendar/plugins/todo.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/components/calendar/plugins/todo.js b/src/components/calendar/plugins/todo.js new file mode 100644 index 0000000..1559c6c --- /dev/null +++ b/src/components/calendar/plugins/todo.js @@ -0,0 +1,135 @@ +/** + * @Author: drfu* + * @Description: 代办事项 + * @Date: 2020-10-08 21:22:09* + * @Last Modified by: drfu + * @Last Modified time: 2020-10-11 14:23:02 + * */ + +import { getCalendarData, dateUtil } from '../utils/index' +import { renderCalendar } from '../render' + +function updateDatePropertyOfTodoLabel(todos, dates, showLabelAlways) { + const datesInfo = [...dates] + for (let todo of todos) { + let targetIdx = datesInfo.findIndex( + item => dateUtil.toTimeStr(item) === dateUtil.toTimeStr(todo) + ) + let target = datesInfo[targetIdx] + if (!target) continue + if (showLabelAlways) { + target.showTodoLabel = true + } else { + target.showTodoLabel = !target.choosed + } + if (target.showTodoLabel) { + target.todoText = todo.todoText + } + target.color = todo.color + } + return datesInfo +} + +export default () => { + return { + name: 'todo', + beforeRender(calendarData = {}, calendarConfig = {}, component) { + const { todos = [], dates = [], showLabelAlways } = calendarData + const dateWithTodoInfo = updateDatePropertyOfTodoLabel( + todos, + dates, + showLabelAlways + ) + return { + calendarData: { + ...calendarData, + dates: dateWithTodoInfo + }, + calendarConfig + } + }, + methods(component) { + return { + setTodos: (options = {}) => { + const calendar = getCalendarData('calendar', component) + if (!calendar || !calendar.dates) { + return Promise.reject('请等待日历初始化完成后再调用该方法') + } + const { + circle, + dotColor = '', + pos = 'bottom', + showLabelAlways, + dates: todoDates = [] + } = options + const { todos = [] } = calendar + const tranformStr2NumOfTodo = todoDates.map(date => + dateUtil.tranformStr2NumOfDate(date) + ) + const calendarData = { + dates: calendar.dates, + todos: dateUtil.uniqueArrayByDate( + todos.concat(tranformStr2NumOfTodo) + ) + } + if (!circle) { + calendarData.todoLabelPos = pos + calendarData.todoLabelColor = dotColor + } + calendarData.todoLabelCircle = circle || false + calendarData.showLabelAlways = showLabelAlways || false + const existCalendarData = getCalendarData('calendar', component) + return renderCalendar.call(component, { + ...existCalendarData, + ...calendarData + }) + }, + deleteTodos(todos = []) { + if (!(todos instanceof Array) || !todos.length) + return Promise.reject('deleteTodos()应为入参为非空数组') + const existCalendarData = getCalendarData('calendar', component) + const allTodos = existCalendarData.todos || [] + const toDeleteTodos = todos.map(item => dateUtil.toTimeStr(item)) + const remainTodos = allTodos.filter( + item => !toDeleteTodos.includes(dateUtil.toTimeStr(item)) + ) + const { dates, curYear, curMonth } = existCalendarData + const _dates = [...dates] + const currentMonthTodos = dateUtil.filterDatesByYM( + { + year: curYear, + month: curMonth + }, + remainTodos + ) + _dates.forEach(item => { + item.showTodoLabel = false + }) + currentMonthTodos.forEach(item => { + _dates[item.date - 1].showTodoLabel = !_dates[item.date - 1].choosed + }) + return renderCalendar.call(component, { + ...existCalendarData, + dates: _dates, + todos: remainTodos + }) + }, + clearTodos() { + const existCalendarData = getCalendarData('calendar', component) + const _dates = [...existCalendarData.dates] + _dates.forEach(item => { + item.showTodoLabel = false + }) + return renderCalendar.call(component, { + ...existCalendarData, + dates: _dates, + todos: [] + }) + }, + getTodos() { + return getCalendarData('calendar.todos', component) || [] + } + } + } + } +} diff --git a/src/components/calendar/plugins/week.js b/src/components/calendar/plugins/week.js new file mode 100644 index 0000000..673fb7e --- /dev/null +++ b/src/components/calendar/plugins/week.js @@ -0,0 +1,432 @@ +/** + * @Author: drfu* + * @Description: 周视图 + * @Date: 2020-10-08 21:22:09* + * @Last Modified by: drfu + * @Last Modified time: 2020-10-12 14:39:45 + * */ + +import { renderCalendar } from '../render' +import { + getCalendarConfig, + getCalendarData, + logger, + dateUtil +} from '../utils/index' +import { calcJumpData } from '../core' + +/** + * 当月第一周所有日期 + */ +function firstWeekInMonth( + target = {}, + calendarDates = [], + calendarConfig = {} +) { + const { firstDayOfWeek } = calendarConfig + const firstDayOfWeekIsMon = firstDayOfWeek === 'Mon' + const { year, month } = target + let firstDay = dateUtil.getDayOfWeek(year, month, 1) + if (firstDayOfWeekIsMon && firstDay === 0) { + firstDay = 7 + } + const [, end] = [0, 7 - firstDay] + return calendarDates.slice(0, firstDayOfWeekIsMon ? end + 1 : end) +} + +/** + * 当月最后一周所有日期 + */ +function lastWeekInMonth(target = {}, calendarDates = [], calendarConfig = {}) { + const { firstDayOfWeek } = calendarConfig + const firstDayOfWeekIsMon = firstDayOfWeek === 'Mon' + const { year, month } = target + const lastDay = dateUtil.getDatesCountOfMonth(year, month) + let lastDayWeek = dateUtil.getDayOfWeek(year, month, lastDay) + if (firstDayOfWeekIsMon && lastDayWeek === 0) { + lastDayWeek = 7 + } + const [start, end] = [lastDay - lastDayWeek, lastDay] + return calendarDates.slice(firstDayOfWeekIsMon ? start : start - 1, end) +} + +/** + * 判断目标日期是否在某些指定日历内 + */ +function dateIsInDatesRange(target, dates) { + if (!target || !dates || !dates.length) return false + const targetDateStr = dateUtil.toTimeStr(target) + let rst = false + for (let date of dates) { + const dateStr = dateUtil.toTimeStr(date) + if (dateStr === targetDateStr) { + rst = true + return rst + } + rst = false + } + return rst +} + +function getDatesWhenTargetInFirstWeek(target, firstWeekDates) { + const { year, month } = target + const prevMonthInfo = dateUtil.getPrevMonthInfo({ year, month }) + let lastMonthDatesCount = dateUtil.getDatesCountOfMonth( + prevMonthInfo.year, + prevMonthInfo.month + ) + let dates = firstWeekDates + let firstWeekCount = firstWeekDates.length + for (let i = 0; i < 7 - firstWeekCount; i++) { + const week = dateUtil.getDayOfWeek(+year, +month, lastMonthDatesCount) + dates.unshift({ + year: prevMonthInfo.year, + month: prevMonthInfo.month, + date: lastMonthDatesCount, + week + }) + lastMonthDatesCount -= 1 + } + return dates +} + +function getDatesWhenTargetInLastWeek(target, lastWeekDates) { + const { year, month } = target + const prevMonthInfo = dateUtil.getNextMonthInfo({ year, month }) + let dates = lastWeekDates + let lastWeekCount = lastWeekDates.length + for (let i = 0; i < 7 - lastWeekCount; i++) { + const week = dateUtil.getDayOfWeek(+year, +month, i + 1) + dates.push({ + year: prevMonthInfo.year, + month: prevMonthInfo.month, + date: i + 1, + week + }) + } + return dates +} + +function getDates(target, calendarDates = [], calendarConfig = {}) { + const { year, month, date } = target + const targetDay = dateUtil.getDayOfWeek(year, month, date) + const { firstDayOfWeek } = calendarConfig + const firstDayOfWeekIsMon = firstDayOfWeek === 'Mon' + if (firstDayOfWeekIsMon) { + const startIdx = date - (targetDay || 7) + return calendarDates.splice(startIdx, 7) + } else { + const startIdx = date - targetDay - 1 + return calendarDates.splice(startIdx, 7) + } +} + +function getTargetWeekDates(target, calendarConfig) { + if (!target) return + const { year, month } = target + const calendarDates = dateUtil.calcDates(year, month) + const firstWeekDates = firstWeekInMonth(target, calendarDates, calendarConfig) + const lastWeekDates = lastWeekInMonth(target, calendarDates, calendarConfig) + if (dateIsInDatesRange(target, firstWeekDates)) { + return getDatesWhenTargetInFirstWeek(target, firstWeekDates) + } else if (dateIsInDatesRange(target, lastWeekDates)) { + return getDatesWhenTargetInLastWeek(target, lastWeekDates) + } else { + return getDates(target, calendarDates, calendarConfig) + } +} + +/** + * 计算周视图下当前这一周最后一天 + */ +function calculateLastDateOfCurrentWeek(calendarData = {}) { + const { dates = [] } = calendarData + return dates[dates.length - 1] +} +/** + * 计算周视图下当前这一周第一天 + */ +function calculateFirstDateOfCurrentWeek(calendarData = {}) { + const { dates } = calendarData + return dates[0] +} + +/** + * 计算下一周的日期 + */ +function calculateNextWeekDates(calendarData = {}) { + let { curYear, curMonth } = calendarData + let calendarDates = [] + let lastDateInThisWeek = calculateLastDateOfCurrentWeek(calendarData) + const { year: LYear, month: LMonth } = lastDateInThisWeek + if (curYear !== LYear || curMonth !== LMonth) { + calendarDates = dateUtil.calcDates(LYear, LMonth) + curYear = LYear + curMonth = LMonth + } else { + calendarDates = dateUtil.calcDates(curYear, curMonth) + } + const lastDateInThisMonth = dateUtil.getDatesCountOfMonth(curYear, curMonth) + const count = lastDateInThisMonth - lastDateInThisWeek.date + const lastDateIdx = calendarDates.findIndex( + date => dateUtil.toTimeStr(date) === dateUtil.toTimeStr(lastDateInThisWeek) + ) + const startIdx = lastDateIdx + 1 + if (count >= 7) { + return { + dates: calendarDates.splice(startIdx, 7), + year: curYear, + month: curMonth + } + } else { + const nextMonth = dateUtil.getNextMonthInfo({ + year: curYear, + month: curMonth + }) + const { year, month } = nextMonth || {} + const calendarDatesOfNextMonth = dateUtil.calcDates(year, month) + const remainDatesOfThisMonth = calendarDates.splice(startIdx) + const patchDatesOfNextMonth = calendarDatesOfNextMonth.splice( + 0, + 7 - remainDatesOfThisMonth.length + ) + return { + dates: [...remainDatesOfThisMonth, ...patchDatesOfNextMonth], + ...nextMonth + } + } +} + +/** + * 计算上一周的日期 + */ +function calculatePrevWeekDates(calendarData = {}) { + let { curYear, curMonth } = calendarData + let firstDateInThisWeek = calculateFirstDateOfCurrentWeek(calendarData) + let calendarDates = [] + const { year: FYear, month: FMonth } = firstDateInThisWeek + if (curYear !== FYear || curMonth !== FMonth) { + calendarDates = dateUtil.calcDates(FYear, FMonth) + curYear = FYear + curMonth = FMonth + } else { + calendarDates = dateUtil.calcDates(curYear, curMonth) + } + const firstDateIdx = calendarDates.findIndex( + date => dateUtil.toTimeStr(date) === dateUtil.toTimeStr(firstDateInThisWeek) + ) + if (firstDateIdx - 7 >= 0) { + const startIdx = firstDateIdx - 7 + return { + dates: calendarDates.splice(startIdx, 7), + year: curYear, + month: curMonth + } + } else { + const prevMonth = dateUtil.getPrevMonthInfo({ + year: curYear, + month: curMonth + }) + const { year, month } = prevMonth || {} + const calendarDatesOfPrevMonth = dateUtil.calcDates(year, month) + const remainDatesOfThisMonth = calendarDates.splice( + 0, + firstDateInThisWeek.date - 1 + ) + const patchDatesOfPrevMonth = calendarDatesOfPrevMonth.splice( + -(7 - remainDatesOfThisMonth.length) + ) + return { + dates: [...patchDatesOfPrevMonth, ...remainDatesOfThisMonth], + ...prevMonth + } + } +} + +export default () => { + return { + name: 'week', + beforeRender(calendarData = {}, calendarConfig = {}, component) { + const { initializedWeekMode, selectedDates } = calendarData + if (calendarConfig.weekMode && !initializedWeekMode) { + const { defaultDate } = calendarConfig + const target = + (selectedDates && selectedDates[0]) || + (defaultDate && dateUtil.transformDateRow2Dict(defaultDate)) || + dateUtil.todayFMD() + const waitRenderData = this.methods( + component + ).__calcDatesWhenSwitchView('week', target) + const { data, config } = waitRenderData || {} + const setSelectDates = this.methods( + component + ).__selectTargetDateWhenJump(target, data.dates, config) + return { + calendarData: { + ...data, + ...setSelectDates, + weeksCh: dateUtil.getWeekHeader(calendarConfig.firstDayOfWeek), + initializedWeekMode: true + }, + calendarConfig + } + } + return { + calendarData, + calendarConfig + } + }, + onSwitchCalendar(target = {}, calendarData = {}, component) { + const { direction } = target + const { curYear, curMonth } = calendarData + const calendarConfig = getCalendarConfig(component) + let waitRenderData = {} + if (calendarConfig.weekMode) { + if (direction === 'left') { + waitRenderData = calculateNextWeekDates(calendarData) + } else { + waitRenderData = calculatePrevWeekDates(calendarData) + } + const { dates, year, month } = waitRenderData + return { + ...calendarData, + dates, + curYear: year || curYear, + curMonth: month || curMonth + } + } + return calendarData + }, + methods(component) { + return { + __selectTargetDateWhenJump: (target = {}, dates = [], config = {}) => { + let selectedDate = target + const weekDates = dates.map((date, idx) => { + const tmp = { ...date } + tmp.id = idx + const isTarget = + dateUtil.toTimeStr(target) === dateUtil.toTimeStr(tmp) + if (isTarget && !target.choosed && config.autoChoosedWhenJump) { + tmp.choosed = true + selectedDate = tmp + } + return tmp + }) + return { + dates: weekDates, + selectedDates: [selectedDate] + } + }, + __calcDatesForWeekMode(target, config = {}, calendarData = {}) { + const { year, month } = target || {} + const weekDates = getTargetWeekDates(target, config) + weekDates.forEach((date, idx) => (date.id = idx)) + return { + data: { + ...calendarData, + prevMonthGrids: null, + nextMonthGrids: null, + dates: weekDates, + curYear: year, + curMonth: month + }, + config: { + ...config, + weekMode: true + } + } + }, + __calcDatesForMonthMode(target, config = {}, calendarData = {}) { + const { year, month } = target || {} + const waitRenderData = calcJumpData({ + dateInfo: target, + config + }) + return { + data: { + ...calendarData, + ...waitRenderData, + curYear: year, + curMonth: month + }, + config: { + ...config, + weekMode: false + } + } + }, + /** + * 周、月视图切换 + * @param {string} view 视图 [week, month] + * @param {object} target + */ + __calcDatesWhenSwitchView: (view, target) => { + const calendarConfig = getCalendarConfig(component) + if (calendarConfig.multi) + return logger.warn('多选模式不能切换周月视图') + const existCalendarData = getCalendarData('calendar', component) || {} + const { + selectedDates = [], + dates = [], + curYear, + curMonth + } = existCalendarData + const currentMonthSelected = selectedDates.filter( + item => curYear === +item.year || curMonth === +item.month + ) + let jumpTarget = {} + if (target) { + jumpTarget = target + } else { + if (currentMonthSelected.length) { + jumpTarget = currentMonthSelected.pop() + } else { + jumpTarget = dates[0] + } + } + if (view === 'week') { + return this.methods(component).__calcDatesForWeekMode( + jumpTarget, + calendarConfig, + existCalendarData + ) + } else { + return this.methods(component).__calcDatesForMonthMode( + jumpTarget, + calendarConfig, + existCalendarData + ) + } + }, + weekModeJump: dateInfo => { + const target = dateInfo || dateUtil.todayFMD() + const existCalendarData = getCalendarData('calendar', component) || {} + const waitRenderData = this.methods( + component + ).__calcDatesWhenSwitchView('week', target) + const { data, config } = waitRenderData || {} + const setSelectDates = this.methods( + component + ).__selectTargetDateWhenJump(target, data.dates, config) + return renderCalendar.call( + component, + { + ...existCalendarData, + ...data, + ...setSelectDates + }, + config + ) + }, + switchView: (view, target) => { + const waitRenderData = this.methods( + component + ).__calcDatesWhenSwitchView(view, target) + const { data, config } = waitRenderData || {} + if (!data) return logger.warn('当前状态不能切换为周视图') + return renderCalendar.call(component, data, config) + } + } + } + } +} diff --git a/src/components/calendar/render.js b/src/components/calendar/render.js new file mode 100644 index 0000000..ea5a1fa --- /dev/null +++ b/src/components/calendar/render.js @@ -0,0 +1,49 @@ +import plugins from "./plugins/index"; +import { getCalendarConfig } from "./utils/index"; + +/** + * 渲染日历 + */ +export function renderCalendar(calendarData, calendarConfig) { + return new Promise((resolve) => { + const Component = this; + if (Component.firstRender === void 0) { + Component.firstRender = true; + } else { + Component.firstRender = false; + } + const exitData = Component.data.calendar || {}; + for (let plugin of plugins.installed) { + const [, p] = plugin; + if (typeof p.beforeRender === "function") { + const { calendarData: newData, calendarConfig: newConfig } = + p.beforeRender( + { ...exitData, ...calendarData }, + calendarConfig || getCalendarConfig(Component), + Component + ); + calendarData = newData; + calendarConfig = newConfig; + } + } + + Component.setData( + { + config: calendarConfig, + calendar: calendarData, + }, + () => { + const rst = { + calendar: calendarData, + config: calendarConfig, + firstRender: Component.firstRender, + }; + resolve(rst); + if (Component.firstRender) { + Component.triggerEvent("afterCalendarRender", rst); + Component.firstRender = false; + } + } + ); + }); +} diff --git a/src/components/calendar/theme/iconfont.wxss b/src/components/calendar/theme/iconfont.wxss new file mode 100644 index 0000000..9b909a8 --- /dev/null +++ b/src/components/calendar/theme/iconfont.wxss @@ -0,0 +1,29 @@ +@font-face { + font-family: 'iconfont'; + src: url(data:font/truetype;charset=utf-8;base64,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) format('truetype'); + font-weight: normal; + font-style: normal; +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; +} + +.icon-right::before { + content: "\e7eb"; +} + +.icon-left::before { + content: "\e7ec"; +} + +.icon-doubleleft::before { + content: "\e7ed"; +} + +.icon-doubleright::before { + content: "\e7ee"; +} diff --git a/src/components/calendar/theme/theme-default.wxss b/src/components/calendar/theme/theme-default.wxss new file mode 100644 index 0000000..08de663 --- /dev/null +++ b/src/components/calendar/theme/theme-default.wxss @@ -0,0 +1,61 @@ + +/* 日历主要颜色相关样式 */ + +.default_color, +.default_weekend-color, +.default_handle-color, +.default_week-color { + color: #ff629a; +} + +.default_today { + color: #fff; + background-color: #874fb4; +} + +.default_choosed { + color: #fff; + background-color: #ff629a; +} + +.default_date-disable { + color: #c7c7c7; +} + +.default_choosed.default_date-disable { + color: #e2e2e2; + background-color: #c2afb6; +} + +.default_prev-month-date, +.default_next-month-date { + color: #e2e2e2; +} + +.default_normal-date { + color: #88d2ac; +} + +.default_todo-circle { + border-color: #88d2ac; +} + +.default_todo-dot { + background-color: #e54d42; +} + +.default_date-desc { + color: #c2c2c2; +} + +.default_date-desc-lunar { + color: #e54d42; +} + +.default_date-desc-disable { + color: #e2e2e2; +} + +.default_festival { + color: #c2c2c2; +} diff --git a/src/components/calendar/theme/theme-elegant.wxss b/src/components/calendar/theme/theme-elegant.wxss new file mode 100644 index 0000000..6296701 --- /dev/null +++ b/src/components/calendar/theme/theme-elegant.wxss @@ -0,0 +1,58 @@ +.elegant_color, +.elegant_weekend-color, +.elegant_handle-color, +.elegant_week-color { + color: #333; +} + +.elegant_today { + color: #000; + background-color: #e1e7f5; +} + +.elegant_choosed { + color: #000; + background-color: #e2e2e2; +} + +.elegant_date-disable { + color: #c7c7c7; +} + +.elegant_choosed.elegant_date-disable { + color: #999; + background-color: #ebebeb; +} + +.elegant_prev-month-date, +.elegant_next-month-date { + color: #e2e2e2; +} + +.elegant_normal-date { + color: #777; +} + +.elegant_todo-circle { + border-color: #161035; +} + +.elegant_todo-dot { + background-color: #161035; +} + +.elegant_date-desc { + color: #c2c2c2; +} + +.elegant_date-desc-lunar { + color: #161035; +} + +.elegant_date-desc-disable { + color: #e2e2e2; +} + +.elegant_festival { + color: #c2c2c2; +} diff --git a/src/components/calendar/theme/theme-geneB.wxss b/src/components/calendar/theme/theme-geneB.wxss new file mode 100644 index 0000000..ab8def7 --- /dev/null +++ b/src/components/calendar/theme/theme-geneB.wxss @@ -0,0 +1,95 @@ +/* 日历主要颜色相关样式 */ + +.geneb_color, +.geneb_weekend-color, +.geneb_handle-color, +.geneb_week-color { + color: rgba(51, 51, 51, 1); +} + +.geneb_choosed { + color:#fff; + background-color: rgba(246, 74, 58, 1); +} + +.geneb_today { + color: rgba(246, 74, 58, 1); + background-color: rgba(255, 237, 235, 1); +} + +.geneb_today.geneb_choosed { + color: #fff; + background-color: rgba(246, 74, 58, 1); +} + +.geneb_date-disable { + color: #c7c7c7; +} + +.geneb_choosed.geneb_date-disable { + color: #e2e2e2; + background-color: #c2afb6; +} + +.geneb_prev-month-date, +.geneb_next-month-date { + color: #e2e2e2; +} + +.geneb_normal-date { + color: rgba(1, 1, 5, 1); +} + +.geneb_todo-circle { + border-color: #88d2ac; +} + +.geneb_todo-dot { + background-color: #e54d42; +} + +.geneb_date-desc { + color: #c2c2c2; +} + +.geneb_date-desc-lunar { + color: #e54d42; +} + +.geneb_date-desc-disable { + color: #e2e2e2; +} + +.geneb_festival { + color: #c2c2c2; +} + +.date.doc { + position: relative; + background-color: #e5e5e5; +} + +.date.doc::after { + position: absolute; + z-index: 1; + top: -5rpx; + right: -5rpx; + content: ''; + width: 17rpx; + height: 24rpx; + background-repeat: no-repeat; + background-size: cover; + background-image: url('data:image/png;base64,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'); +} + +.date.error { + background-color: rgba(207, 83, 117, 1); + border-radius: 50%; + color: #fff; +} + +.date.primary { + background-color: rgba(37, 217, 200, 1); + color: #fff; + border-radius: 50%; +} diff --git a/src/components/calendar/theme/theme-geneDoctorB.wxss b/src/components/calendar/theme/theme-geneDoctorB.wxss new file mode 100644 index 0000000..b006fd6 --- /dev/null +++ b/src/components/calendar/theme/theme-geneDoctorB.wxss @@ -0,0 +1,95 @@ +/* 日历主要颜色相关样式 */ + +.geneb_doctor_color, +.geneb_doctor_weekend-color, +.geneb_doctor_handle-color, +.geneb_doctor_week-color { + color: rgba(51, 51, 51, 1); +} + +.geneb_doctor_choosed { + color:#fff; + background-color: rgba(28, 107, 255, 1); +} + +.geneb_doctor_today { + color: #fff; + background-color: rgba(28, 107, 255, 1); +} + +.geneb_doctor_today.geneb_choosed { + color: #fff; + background-color: rgba(28, 107, 255, 1); +} + +.geneb_doctor_date-disable { + color: #c7c7c7; +} + +.geneb_doctor_choosed.geneb_date-disable { + color: #e2e2e2; + background-color: #c2afb6; +} + +.geneb_doctor_prev-month-date, +.geneb_doctor_next-month-date { + color: #e2e2e2; +} + +.geneb_doctor_normal-date { + color: rgba(1, 1, 5, 1); +} + +.geneb_doctor_todo-circle { + border-color: #88d2ac; +} + +.geneb_doctor_todo-dot { + background-color: #e54d42; +} + +.geneb_doctor_date-desc { + color: #c2c2c2; +} + +.geneb_doctor_date-desc-lunar { + color: #e54d42; +} + +.geneb_doctor_date-desc-disable { + color: #e2e2e2; +} + +.geneb_doctor_festival { + color: #c2c2c2; +} + +.date.doc { + position: relative; + background-color: #e5e5e5; +} + +.date.doc::after { + position: absolute; + z-index: 1; + top: -5rpx; + right: -5rpx; + content: ''; + width: 17rpx; + height: 24rpx; + background-repeat: no-repeat; + background-size: cover; + background-image: url('data:image/png;base64,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'); +} + +.date.error { + background-color: rgba(207, 83, 117, 1); + border-radius: 50%; + color: #fff; +} + +.date.primary { + background-color: rgba(37, 217, 200, 1); + color: #fff; + border-radius: 50%; +} diff --git a/src/components/calendar/theme/theme-nuohe.wxss b/src/components/calendar/theme/theme-nuohe.wxss new file mode 100644 index 0000000..57489a4 --- /dev/null +++ b/src/components/calendar/theme/theme-nuohe.wxss @@ -0,0 +1,90 @@ +/* 日历主要颜色相关样式 */ + +.nuohe_color, +.nuohe_weekend-color, +.nuohe_handle-color, +.nuohe_week-color { + color: rgba(51, 51, 51, 1); +} + +.nuohe_today { + color: #fff; + background-color: #874fb4; +} + +.nuohe_choosed { + color: rgba(51, 51, 51, 1); + background-color: rgba(189, 189, 189, 0.3); +} + +.nuohe_date-disable { + color: #c7c7c7; +} + +.nuohe_choosed.nuohe_date-disable { + color: #e2e2e2; + background-color: #c2afb6; +} + +.nuohe_prev-month-date, +.nuohe_next-month-date { + color: #e2e2e2; +} + +.nuohe_normal-date { + color: rgba(51, 51, 51, 1); +} + +.nuohe_todo-circle { + border-color: #88d2ac; +} + +.nuohe_todo-dot { + background-color: #e54d42; +} + +.nuohe_date-desc { + color: #c2c2c2; +} + +.nuohe_date-desc-lunar { + color: #e54d42; +} + +.nuohe_date-desc-disable { + color: #e2e2e2; +} + +.nuohe_festival { + color: #c2c2c2; +} + +.date.doc { + position: relative; + background-color: #e5e5e5; +} + +.date.doc::after { + position: absolute; + z-index: 1; + top: -5rpx; + right: -5rpx; + content: ""; + width: 17rpx; + height: 24rpx; + background-repeat: no-repeat; + background-size: cover; + background-image: url("data:image/png;base64,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"); +} + +.date.error { + background-color: rgba(207, 83, 117, 1); + border-radius: 50%; + color: #fff; +} + +.date.primary { + background-color: rgba(37, 217, 200, 1); + color: #fff; + border-radius: 50%; +} diff --git a/src/components/calendar/utils/index.js b/src/components/calendar/utils/index.js new file mode 100644 index 0000000..5d5da50 --- /dev/null +++ b/src/components/calendar/utils/index.js @@ -0,0 +1,275 @@ +import Logger from "./logger"; +import WxData from "./wxData"; + +let systemInfo; +export function getSystemInfo() { + if (systemInfo) return systemInfo; + systemInfo = wx.getSystemInfoSync(); + return systemInfo; +} + +export function isIos() { + const sys = getSystemInfo(); + return /iphone|ios/i.test(sys.platform); +} + +class Gesture { + /** + * 左滑 + * @param {object} e 事件对象 + * @returns {boolean} 布尔值 + */ + isLeft(gesture = {}, touche = {}) { + const { startX, startY } = gesture; + const deltaX = touche.clientX - startX; + const deltaY = touche.clientY - startY; + if (deltaX < -60 && deltaY < 20 && deltaY > -20) { + return true; + } else { + return false; + } + } + /** + * 右滑 + * @param {object} e 事件对象 + * @returns {boolean} 布尔值 + */ + isRight(gesture = {}, touche = {}) { + const { startX, startY } = gesture; + const deltaX = touche.clientX - startX; + const deltaY = touche.clientY - startY; + + if (deltaX > 60 && deltaY < 20 && deltaY > -20) { + return true; + } else { + return false; + } + } +} + +class DateUtil { + newDate(year, month, date) { + let cur = `${+year}-${+month}-${+date}`; + if (isIos()) { + cur = `${+year}/${+month}/${+date}`; + } + return new Date(cur); + } + /** + * 计算指定日期时间戳 + * @param {object} date + */ + getTimeStamp(dateInfo) { + if (typeof dateInfo === "string") { + dateInfo = this.transformDateRow2Dict(dateInfo); + } + if (Object.prototype.toString.call(dateInfo) !== "[object Object]") return; + const dateUtil = new DateUtil(); + return dateUtil.newDate(dateInfo.year, dateInfo.month, dateInfo.date).getTime(); + } + /** + * 计算指定月份共多少天 + * @param {number} year 年份 + * @param {number} month 月份 + */ + getDatesCountOfMonth(year, month) { + return new Date(Date.UTC(year, month, 0)).getUTCDate(); + } + /** + * 计算指定月份第一天星期几 + * @param {number} year 年份 + * @param {number} month 月份 + */ + firstDayOfWeek(year, month) { + return new Date(Date.UTC(year, month - 1, 1)).getUTCDay(); + } + /** + * 计算指定日期星期几 + * @param {number} year 年份 + * @param {number} month 月份 + * @param {number} date 日期 + */ + getDayOfWeek(year, month, date) { + return new Date(Date.UTC(year, month - 1, date)).getUTCDay(); + } + todayFMD() { + const _date = new Date(); + const year = _date.getFullYear(); + const month = _date.getMonth() + 1; + const date = _date.getDate(); + return { + year: +year, + month: +month, + date: +date, + }; + } + todayTimestamp() { + const { year, month, date } = this.todayFMD(); + const timestamp = this.newDate(year, month, date).getTime(); + return timestamp; + } + toTimeStr(dateInfo = {}) { + return `${+dateInfo.year}-${+dateInfo.month}-${+dateInfo.date}`; + } + transformDateRow2Dict(dateStr) { + if (typeof dateStr === "string" && dateStr.includes("-")) { + const [year, month, date] = dateStr.split("-"); + return this.tranformStr2NumOfDate({ + year, + month, + date, + }); + } + return {}; + } + tranformStr2NumOfDate(date = {}) { + const target = { ...date }; + // 可能传入字符串 + target.year = +target.year; + target.month = +target.month; + target.date = +target.date; + return target; + } + sortDatesByTime(dates = [], sortType) { + return dates.sort((a, b) => { + const at = this.getTimeStamp(a); + const bt = this.getTimeStamp(b); + if (at < bt && sortType !== "desc") { + return -1; + } else { + return 1; + } + }); + } + getPrevMonthInfo(date = {}) { + const prevMonthInfo = + Number(date.month) > 1 + ? { + year: +date.year, + month: Number(date.month) - 1, + } + : { + year: Number(date.year) - 1, + month: 12, + }; + return prevMonthInfo; + } + getNextMonthInfo(date = {}) { + const nextMonthInfo = + Number(date.month) < 12 + ? { + year: +date.year, + month: Number(date.month) + 1, + } + : { + year: Number(date.year) + 1, + month: 1, + }; + return nextMonthInfo; + } + getPrevYearInfo(date = {}) { + return { + year: Number(date.year) - 1, + month: +date.month, + }; + } + getNextYearInfo(date = {}) { + return { + year: Number(date.year) + 1, + month: +date.month, + }; + } + findDateIndexInArray(target, dates) { + return dates.findIndex((item) => dateUtil.toTimeStr(item) === dateUtil.toTimeStr(target)); + } + calcDates(year, month) { + const datesCount = this.getDatesCountOfMonth(year, month); + const dates = []; + const today = dateUtil.todayFMD(); + for (let i = 1; i <= datesCount; i++) { + const week = dateUtil.getDayOfWeek(+year, +month, i); + const date = { + year: +year, + id: i - 1, + month: +month, + date: i, + week, + isToday: +today.year === +year && +today.month === +month && i === +today.date, + }; + dates.push(date); + } + return dates; + } + /** + * 日期数组根据日期去重 + * @param {array} array 数组 + */ + uniqueArrayByDate(array = []) { + let uniqueObject = {}; + let uniqueArray = []; + array.forEach((item) => { + uniqueObject[dateUtil.toTimeStr(item)] = item; + }); + for (let i in uniqueObject) { + uniqueArray.push(uniqueObject[i]); + } + return uniqueArray; + } + /** + * 筛选指定年月日期 + * @param {object} target 指定年月 + * @param {array} dates 待筛选日期 + */ + filterDatesByYM(target, dates) { + if (target) { + const { year, month } = target; + const _dates = dates.filter((item) => +item.year === +year && +item.month === +month); + return _dates; + } + return dates; + } + getWeekHeader(firstDayOfWeek) { + let weeksCh = ["日", "一", "二", "三", "四", "五", "六"]; + if (firstDayOfWeek === "Mon") { + weeksCh = ["一", "二", "三", "四", "五", "六", "日"]; + } + return weeksCh; + } +} + +/** + * 获取当前页面实例 + */ +export function getCurrentPage() { + const pages = getCurrentPages() || []; + const last = pages.length - 1; + return pages[last] || {}; +} + +export function getComponentById(componentId) { + const logger = new Logger(); + let page = getCurrentPage() || {}; + if (page.selectComponent && typeof page.selectComponent === "function") { + if (componentId) { + return page.selectComponent(componentId); + } else { + logger.warn("请传入组件ID"); + } + } else { + logger.warn("该基础库暂不支持多个小程序日历组件"); + } +} + +export const logger = new Logger(); +export const calendarGesture = new Gesture(); +export const dateUtil = new DateUtil(); +export const getCalendarData = (key, component) => new WxData(component).getData(key); +export const setCalendarData = (data, component) => new WxData(component).setData(data); +export const getCalendarConfig = (component) => getCalendarData("config", component); +export const setCalendarConfig = (config, component) => + setCalendarData( + { + config, + }, + component, + ); diff --git a/src/components/calendar/utils/logger.js b/src/components/calendar/utils/logger.js new file mode 100644 index 0000000..b440ba6 --- /dev/null +++ b/src/components/calendar/utils/logger.js @@ -0,0 +1,23 @@ +export default class Logger { + info(msg) { + console.log( + '%cInfo: %c' + msg, + 'color:#FF0080;font-weight:bold', + 'color: #FF509B' + ) + } + warn(msg) { + console.log( + '%cWarn: %c' + msg, + 'color:#FF6600;font-weight:bold', + 'color: #FF9933' + ) + } + tips(msg) { + console.log( + '%cTips: %c' + msg, + 'color:#00B200;font-weight:bold', + 'color: #00CC33' + ) + } +} diff --git a/src/components/calendar/utils/wxData.js b/src/components/calendar/utils/wxData.js new file mode 100644 index 0000000..43b254d --- /dev/null +++ b/src/components/calendar/utils/wxData.js @@ -0,0 +1,30 @@ +class WxData { + constructor(component) { + this.Component = component + } + getData(key) { + const data = this.Component.data + if (!key) return data + if (key.includes('.')) { + let keys = key.split('.') + const tmp = keys.reduce((prev, next) => { + return prev[next] + }, data) + return tmp + } else { + return this.Component.data[key] + } + } + setData(data) { + return new Promise((resolve, reject) => { + if (!data) return reject('no data to set') + if (typeof data === 'object') { + this.Component.setData(data, () => { + resolve(data) + }) + } + }) + } +} + +export default WxData diff --git a/src/components/customPoster/README.md b/src/components/customPoster/README.md new file mode 100644 index 0000000..7fed6ab --- /dev/null +++ b/src/components/customPoster/README.md @@ -0,0 +1,160 @@ +# 海报插件 + +## 基于[wxml2canvas](https://github.com/wg-front/wxml2canvas)插件 + +### 插件引入 + +```json +{ + "customPoster": "/components/customPoster/index" +} +``` + +```wxml + +``` + +### 参数示例 + +```js +const data = { + params: { + info: { id: 'circle-note_mp', title: '动态页', desc: '指定动态的页面,mp' }, + body: { + bgImg: + 'https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/a74018e725861534f1644cff04780f4e_16273677601587.png', + width: '750', + height: '1254', + }, + elements: [ + { + id: 'circle-name', + desc: '圈名称', + type: 1, + text: '治疗讨论', + font: '宋体', + 'font-size': '42', + color: '#FFFFFF', + 'single-line': true, + halign: 'center', + top: '106', + }, + { + id: 'master-name', + desc: '专家名称', + type: 1, + text: '健康小贴士', + font: '宋体', + 'font-size': '38', + color: '#FFFFFF', + 'single-line': true, + halign: 'center', + top: '237', + }, + { + id: 'master-avatar', + desc: '专家头像', + type: 0, + picType: 'avatar', + src: 'https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/ceb31ac6137e873225b8cc826389a267_16655329078962.jpg', + width: '120', + height: '120', + halign: 'center', + shape: 'circle', + top: '328', + }, + { + id: 'note-content', + desc: '动态内容', + type: 1, + text: '11月5日上海组织进口博览会CIIE大会,邀请大家来我们的展馆现场交流。', + font: '宋体', + 'font-size': '45', + color: '#18191A', + width: '630', + height: '348', + left: '60', + top: '495', + }, + { + id: 'note-title', + desc: '长文标题', + type: 1, + text: '', + font: '宋体', + 'font-size': '42', + color: '#18191A', + width: '659', + height: '116', + left: '46', + top: '495', + 'font-weight': 'bold', + }, + { + id: 'note-summary', + desc: '长文摘要 ', + type: 1, + text: '', + font: '宋体', + 'font-size': '42', + color: '#18191A', + width: '672', + height: '232', + left: '39', + top: '646', + }, + { + id: 'note-more', + desc: '还有', + type: 1, + text: '还有3条精彩附件>', + font: '宋体', + 'font-size': '31', + color: '#666666', + 'single-line': true, + width: '292', + height: '46', + left: '60', + top: '1024', + }, + { + id: 'scanText', + desc: '扫描二维码查看详情', + type: 1, + text: '扫描二维码查看详情', + font: '宋体', + 'font-size': '31', + color: '#666666', + 'single-line': true, + width: '279', + height: '43', + left: '60', + top: '1087', + }, + { + id: 'note-qrcode', + desc: '专家列表的二维码', + type: 0, + picType: 'qrcode', + src: 'https://family.devred.hbraas.com/proxy/mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQHJ8TwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyUWhDdGhTWVNlTjMxMDAwMDAwN3gAAgSonPxjAwQAAAAA', + width: '130', + height: '130', + left: '554', + top: '1012', + }, + { + id: 'brand', + desc: 'brand×华秉科技', + type: 1, + text: '做企业数字化转型的亲密伙伴×华秉科技', + font: '宋体', + 'font-size': '24', + color: '#B2B3B4', + 'single-line': true, + halign: 'center', + top: '1192', + }, + ], + }, +} +``` diff --git a/src/components/customPoster/index.js b/src/components/customPoster/index.js new file mode 100644 index 0000000..7344bf8 --- /dev/null +++ b/src/components/customPoster/index.js @@ -0,0 +1,101 @@ +import Wxml2Canvas from "./wxml2canvas/index.js"; // 根据具体路径修改,node_modules会被忽略 + +Component({ + properties: { + params: { + type: Object, + observer(newVal, _olVal) { + if (Object.keys(newVal).length > 0) { + this.paramsFormat(newVal); + this.setData({ + width: newVal.body.width, + height: newVal.body.height, + bgImg: newVal.body.bgImg, + elementsMp: newVal.elements, + }); + this.drawImage1(); + } + }, + }, + }, + data: { + imgUrl: "", + width: "", + height: "", + imgheight: "", + bgImg: "", + elementsMp: [], + }, + lifetimes: { + attached() {}, + }, + methods: { + paramsFormat(params) { + params.elements.forEach((item) => { + if (item.type === 0) { + // 图片居中 + if (item.halign === "center") { + item.left = (params.body.width - item.width) / 2; + } + } else { + item.text = item.text.replace(/[\r\n]/g, ""); + // 文字居中(使文字标签宽度等于画布宽度,文字加上居中的className) + if (item.halign === "center") { + item.width = item.width || params.body.width; + item.left = (params.body.width - item.width) / 2; + } + if (item.halign === "right") { + item.width = params.body.width; + } + if (item.id === "shareText" && item.text.length > 30) { + item.text = item.text.slice(0, 30) + "..."; + } + if (item.id === "note-title" && item.text.length > 28) { + item.text = item.text.slice(0, 28) + "..."; + } + if (item.id === "note-content" && item.text.length > 90) { + item.text = item.text.slice(0, 90) + "..."; + } + let len = params.elements.some((x) => x.id === "note-title" && x.text.length); + if (len && item.id === "note-summary" && item.text.length > 62) { + item.text = item.text.slice(0, 62) + "..."; + } else if (item.id === "note-summary" && item.text.length > 76) { + item.text = item.text.slice(0, 76) + "..."; + } + } + }); + }, + drawImage1() { + let self = this; + this.drawImage1 = new Wxml2Canvas({ + obj: self, + width: this.data.width, // 宽, 以iphone6为基准,传具体数值,其它机型自动适配 + height: this.data.height, // 高 + element: "canvas1", + background: "transparent", + progress(percent) {}, + finish(url) { + self.setData({ + imgUrl: url, + }); + self.triggerEvent("finish", url); + }, + error(res) {}, + }); + + let data = { + list: [ + { + type: "wxml", + class: "#canvas-bill-body-mp .draw_canvas", + limit: "#canvas-bill-body-mp", + x: 0, + y: 0, + }, + ], + }; + + this.drawImage1.draw(data); + }, + }, +}); diff --git a/src/components/customPoster/index.json b/src/components/customPoster/index.json new file mode 100644 index 0000000..a97367d --- /dev/null +++ b/src/components/customPoster/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} diff --git a/src/components/customPoster/index.scss b/src/components/customPoster/index.scss new file mode 100644 index 0000000..5dce05f --- /dev/null +++ b/src/components/customPoster/index.scss @@ -0,0 +1,53 @@ +.canvas-box { + position: fixed; + left: 1000000rpx; + top: -1000000rpx; +} +.canvas-body { + background-position: center; + background-repeat: no-repeat; + background-size: cover; + background-color: #fff; +} +.draw_canvas { + position: absolute; +} +.canvas-bill { + position: fixed; + width: 750rpx; + left: 1000000rpx; + top: -1000000rpx; + visibility: hidden; +} +.lineOne { + // overflow: hidden; + // text-overflow: ellipsis; + // white-space: nowrap; +} +.textCenter { + text-align: center; +} +.textRight { + text-align: right; +} +.billImg-box { + position: fixed; + left: 0; + top: 0; + z-index: 10; + width: 750rpx; + height: 100vh; + display: flex; + justify-content: center; + align-items: center; + background-color: rgba(0, 0, 0, 0.75); +} +.image-load-text { + width: 750rpx; + text-align: center; + color: #fff; + line-height: 50rpx; + margin-top: 20rpx; + font-size: 28rpx; + letter-spacing: 2rpx; +} diff --git a/src/components/customPoster/index.wxml b/src/components/customPoster/index.wxml new file mode 100644 index 0000000..511c91a --- /dev/null +++ b/src/components/customPoster/index.wxml @@ -0,0 +1,43 @@ + + + + + + {{item.text}} + + + + + + + + + + + + + + diff --git a/src/components/customPoster/wxml2canvas/README.md b/src/components/customPoster/wxml2canvas/README.md new file mode 100644 index 0000000..e69de29 diff --git a/src/components/customPoster/wxml2canvas/index.js b/src/components/customPoster/wxml2canvas/index.js new file mode 100644 index 0000000..97b0ab6 --- /dev/null +++ b/src/components/customPoster/wxml2canvas/index.js @@ -0,0 +1,1692 @@ +module.exports = (function () { + var __MODS__ = {}; + var __DEFINE__ = function (modId, func, req) { + var m = { exports: {}, _tempexports: {} }; + __MODS__[modId] = { status: 0, func: func, req: req, m: m }; + }; + var __REQUIRE__ = function (modId, source) { + if (!__MODS__[modId]) return require(source); + if (!__MODS__[modId].status) { + var m = __MODS__[modId].m; + m._exports = m._tempexports; + var desp = Object.getOwnPropertyDescriptor(m, "exports"); + if (desp && desp.configurable) + Object.defineProperty(m, "exports", { + set: function (val) { + if (typeof val === "object" && val !== m._exports) { + m._exports.__proto__ = val.__proto__; + Object.keys(val).forEach(function (k) { + m._exports[k] = val[k]; + }); + } + m._tempexports = val; + }, + get: function () { + return m._tempexports; + }, + }); + __MODS__[modId].status = 1; + __MODS__[modId].func(__MODS__[modId].req, m, m.exports); + } + return __MODS__[modId].m.exports; + }; + var __REQUIRE_WILDCARD__ = function (obj) { + if (obj && obj.__esModule) { + return obj; + } else { + var newObj = {}; + if (obj != null) { + for (var k in obj) { + if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; + } + } + newObj.default = obj; + return newObj; + } + }; + var __REQUIRE_DEFAULT__ = function (obj) { + return obj && obj.__esModule ? obj.default : obj; + }; + __DEFINE__( + 1685064731946, + function (require, module, exports) { + var __TEMP__ = require("./src/index"); + var Wxml2Canvas = __REQUIRE_DEFAULT__(__TEMP__); + + if (!exports.__esModule) Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = Wxml2Canvas; + }, + function (modId) { + var map = { "./src/index": 1685064731947 }; + return __REQUIRE__(map[modId], modId); + }, + ); + __DEFINE__( + 1685064731947, + function (require, module, exports) { + var __TEMP__ = require("./util"); + var Util = __REQUIRE_DEFAULT__(__TEMP__); + + const imageMode = [ + "scaleToFill", + "aspectFit", + "aspectFill", + "widthFix", + "top", + "bottom", + "center", + "left", + "right", + "top left", + "top right", + "bottom left", + "bottom right", + ]; + + class Wxml2Canvas { + constructor(options = {}) { + this.device = (wx.getSystemInfoSync && wx.getSystemInfoSync()) || {}; + + if (!options.zoom) { + this.zoom = this.device.windowWidth / 375; + } else { + this.zoom = options.zoom || 1; + } + + this.element = options.element; + this.object = options.obj; + this.width = options.width * this.zoom || 0; + this.height = options.height * this.zoom || 0; + this.destZoom = options.destZoom || 3; + this.destWidth = this.width * this.destZoom; + this.destHeight = this.height * this.destZoom; + this.translateX = options.translateX * this.zoom || 0; + this.translateY = options.translateY * this.zoom || 0; + this.gradientBackground = options.gradientBackground || null; + this.background = options.background || "#ffffff"; + this.finishDraw = options.finish || function finish(params) {}; + this.errorHandler = options.error || function error(params) {}; + this.progress = options.progress || function progress(params) {}; + this.textAlign = options.textAlign || "left"; + this.fullText = options.fullText || false; + this.font = options.font || "14px PingFang SC"; + + this._init(); + } + + draw(data = {}, that) { + let self = this; + this.data = data; + this.fef = that; + + this.progress(10); + this._preloadImage(data.list) + .then((result) => { + this.progress(30); + self._draw(); + }) + .catch((res) => { + self.errorHandler(res); + }); + } + + measureWidth(text, font) { + if (font) { + this.ctx.font = font; + } + let res = this.ctx.measureText(text) || {}; + return res.width || 0; + } + + _init() { + this.progressPercent = 0; // 绘制进度百分比 + this.data = null; + this.ref = null; + this.allPic = []; + this.screenList = []; + this.asyncList = []; + this.imgUrl = ""; + this.progressPercent = 0; + this.distance = 0; + this.progress(0); + + this.ctx = wx.createCanvasContext(this.element, this.object); + this.ctx.font = this.font; + this.ctx.setTextBaseline("top"); + this.ctx.setStrokeStyle("white"); + + this.debug = this.device.platform === "devtools" ? true : false; + + this._drawBakcground(); + } + + _drawBakcground() { + if (this.gradientBackground) { + let line = this.gradientBackground.line || [0, 0, 0, this.height]; + let color = this.gradientBackground.color || ["#fff", "#fff"]; + let style = { fill: { line, color } }; + this._drawRectToCanvas(0, 0, this.width, this.height, style); + } else { + let style = { fill: this.background }; + this._drawRectToCanvas(0, 0, this.width, this.height, style); + } + } + + _draw() { + let self = this; + let list = this.data.list || []; + let index = 0; + let all = []; + let count = 0; + + list.forEach((item) => { + if (item.type === "wxml") { + count += 3; + } else { + count += 1; + } + }); + + this.distance = 60 / (count || 1); // 进度条的间距 + this.progressPercent = 30; + this.asyncList = list.filter((item) => item.delay == true); + list = list.filter((item) => item.delay != true); + drawList(list); + + Promise.all(all) + .then((results) => { + index = 0; + drawList(self.asyncList, true); + + Promise.all(all).then((results) => { + self.progress(90); + self._saveCanvasToImage(); + }); + }) + .catch((e) => { + console.log(e); + self.errorHandler(e); + }); + + function drawList(list = [], noDelay) { + list.forEach((item, i) => { + all[index++] = new Promise((resolve, reject) => { + let attr = item.style; + item.progress = self.distance; + if (noDelay) { + item.delay = 0; + } + if (item.type === "radius-image") { + self._drawCircle(item, attr, resolve, reject, "image"); + } else if (item.type === "text") { + self._drawText(item, attr, resolve, reject); + } else if (item.type === "line") { + self._drawLine(item, attr, resolve, reject); + } else if (item.type === "circle") { + self._drawCircle(item, attr, resolve, reject); + } else if (item.type === "rect") { + self._drawRect(item, attr, resolve, reject); + } else if (item.type === "image") { + self._drawRect(item, attr, resolve, reject, "image"); + } else if (item.type === "wxml") { + self._drawWxml(item, attr, resolve, reject); + } else { + resolve(); + } + }); + }); + } + } + + _saveCanvasToImage() { + let self = this; + + // 延时保存有两个原因,一个是等待绘制delay的元素,另一个是安卓上样式会错乱 + setTimeout( + () => { + self.progress(95); + + let obj = { + x: 0, + y: 0, + width: self.width, + height: self.height, + canvasId: self.element, + success: function (res) { + self.progress(100); + self.imgUrl = res.tempFilePath; + self.finishDraw(self.imgUrl); + }, + fail: function (res) { + self.errorHandler({ errcode: 1000, errmsg: "save canvas error", e: res }); + }, + }; + + if (self.destZoom !== 3) { + obj.destWidth = self.destWidth; + obj.destHeight = self.destHeight; + } + + wx.canvasToTempFilePath(obj, self.object); + }, + self.device.system.indexOf("iOS") === -1 ? 300 : 100, + ); + } + + _preloadImage(list = []) { + let self = this; + let all = []; + let count = 0; + + list.forEach((item, i) => { + if (item.url && self._findPicIndex(item.url) === -1) { + // 避免重复下载同一图片 + self.allPic.push({ + url: item.url, + local: "", + }); + all[count++] = new Promise((resolve, reject) => { + // 非http(s)域名的就不下载了 + if ( + !/^http/.test(item.url) || + /^http:\/\/(tmp)|(usr)\//.test(item.url) || + /^http:\/\/127\.0\.0\.1/.test(item.url) + ) { + if (item.isBase64) { + let fileManager = wx.getFileSystemManager(); + + fileManager.writeFile({ + filePath: item.url, + data: item.isBase64.replace(/data:image\/(.*);base64,/, ""), + encoding: "base64", + success(res) { + imageInfo(item.url); + }, + fail(res) { + reject(res); + }, + }); + } else { + imageInfo(item.url); + } + + function imageInfo(url) { + wx.getImageInfo({ + src: url, + success(res) { + let index = self._findPicIndex(url); + if (index > -1) { + self.allPic[index].local = url; + self.allPic[index].width = res.width; + self.allPic[index].height = res.height; + } + resolve({ tempFilePath: url }); + }, + fail(res) { + reject(res); + }, + }); + } + } else { + wx.downloadFile({ + url: item.url.replace(/^https?/, "https"), + success: function (res) { + wx.getImageInfo({ + src: res.tempFilePath, + success(img) { + let index = self._findPicIndex(item.url); + if (index > -1) { + self.allPic[index].local = res.tempFilePath; + self.allPic[index].width = img.width; + self.allPic[index].height = img.height; + } + resolve(res); + }, + fail(res) { + reject(res); + }, + }); + }, + fail: (res) => { + reject({ errcode: 1001, errmsg: "download pic error" }); + }, + }); + } + }); + } + }); + + return Promise.all(all) + .then((results) => { + return new Promise((resolve) => { + resolve(); + }); + }) + .catch((results) => { + return new Promise((resolve, reject) => { + reject(results); + }); + }); + } + + _findPicIndex(url) { + let index = this.allPic.findIndex((pic) => pic.url === url); + return index; + } + + _drawRect(item, style, resolve, reject, isImage, isWxml) { + let zoom = this.zoom; + let leftOffset = 0; + let topOffset = 0; + let width = style.width; + let height = style.height; + let imgWidth = style.width; + let imgHeight = style.height; + let mode = null; + + try { + item.x = this._resetPositionX(item, style); + item.y = this._resetPositionY(item, style); + + let url; + if (isImage) { + let index = this._findPicIndex(item.url); + if (index > -1) { + url = this.allPic[index].local; + imgWidth = this.allPic[index].width; + imgHeight = this.allPic[index].height; + } else { + url = item.url; + } + } + + style.padding = style.padding || []; + if (isWxml === "inline-wxml") { + item.x = item.x + ((style.padding[3] && style.padding[3]) || 0); + item.y = item.y + ((style.padding[0] && style.padding[0]) || 0); + } + + leftOffset = item.x + style.width + ((style.padding[1] && style.padding[1]) || 0); + + if (!isWxml) { + width = width * zoom; + height = height * zoom; + } + + if (style.dataset && style.dataset.mode && imageMode.indexOf(style.dataset.mode) > -1) { + mode = { + type: style.dataset.mode, + width: imgWidth, + height: imgHeight, + }; + } + + this._drawRectToCanvas(item.x, item.y, width, height, style, url, mode); + this._updateProgress(item.progress); + + if (resolve) { + resolve(); + } else { + return { + leftOffset, + topOffset, + }; + } + } catch (e) { + reject && + reject({ errcode: isImage ? 1003 : 1002, errmsg: isImage ? "drawImage error" : "drawRect error", e }); + } + } + + _drawRectToCanvas(x, y, width, height, style, url, mode) { + let { fill, border, boxShadow } = style; + this.ctx.save(); + this._drawBoxShadow(boxShadow, (res) => { + // 真机上填充渐变色时,没有阴影,先画个相等大小的纯色矩形来实现阴影 + if (fill && typeof fill !== "string" && !this.debug) { + this.ctx.setFillStyle(res.color || "#ffffff"); + this.ctx.fillRect(x, y, width, height); + } + }); + + if (url) { + // 开发者工具有bug,先不裁剪 + if (mode) { + this._resetImageByMode(url, x, y, width, height, mode); + } else { + this.ctx.drawImage(url, x, y, width, height); + } + } else { + this._setFill(fill, () => { + this.ctx.fillRect(x, y, width, height); + }); + } + + this._drawBorder(border, style, (border) => { + let fixBorder = border.width; + this.ctx.strokeRect(x - fixBorder / 2, y - fixBorder / 2, width + fixBorder, height + fixBorder); + }); + + this.ctx.draw(true); + this.ctx.restore(); + this.ctx.strokeStyle = "#fff"; + } + + _resetImageByMode(url, x, y, width, height, mode) { + let self = this; + let offsetX = 0; + let offsetY = 0; + let imgWidth = mode.width; + let imgHeight = mode.height; + + switch (mode.type) { + case "scaleToFill": + imgWidth = width; + imgHeight = height; + self.ctx.drawImage(url, x, y, width, height); + break; + case "widthFix": + height = width / ((imgWidth || 1) / (imgHeight || 1)); + self.ctx.drawImage(url, x, y, width, height); + break; + case "aspectFit": + if (imgWidth > imgHeight) { + let realHeight = width / ((imgWidth || 1) / (imgHeight || 1)); + offsetY = -(height - realHeight) / 2; + imgWidth = width; + imgHeight = realHeight; + } else { + let realWidth = height / ((imgHeight || 1) / (imgWidth || 1)); + offsetX = -(width - realWidth) / 2; + imgWidth = realWidth; + imgHeight = height; + } + + _clip(); + break; + case "aspectFill": + if (imgWidth > imgHeight) { + let realWidth = imgWidth / ((imgHeight || 1) / (height || 1)); + offsetX = (realWidth - width) / 2; + imgWidth = realWidth; + imgHeight = height; + } else { + let realHeight = imgHeight / ((imgWidth || 1) / (width || 1)); + offsetY = (realHeight - height) / 2; + imgWidth = width; + imgHeight = realHeight; + } + + _clip(); + break; + case "top left": + _clip(); + break; + case "top": + offsetX = (mode.width - width) / 2; + _clip(); + break; + case "top right": + offsetX = mode.width - width; + _clip(); + break; + case "left": + offsetY = (mode.height - height) / 2; + _clip(); + break; + case "center": + offsetX = (mode.width - width) / 2; + offsetY = (mode.height - height) / 2; + _clip(); + break; + case "right": + offsetX = mode.width - width; + offsetY = (mode.height - height) / 2; + _clip(); + break; + case "bottom left": + offsetY = mode.height - height; + _clip(); + break; + case "bottom": + offsetX = (mode.width - width) / 2; + offsetY = mode.height - height; + _clip(); + break; + case "bottom right": + offsetX = mode.width - width; + offsetY = mode.height - height; + _clip(); + break; + default: + imgWidth = width; + imgHeight = height; + break; + } + + function _clip() { + self.ctx.save(); + self.ctx.beginPath(); + self.ctx.rect(x, y, width, height); + self.ctx.clip(); + self.ctx.drawImage(url, x - offsetX, y - offsetY, imgWidth, imgHeight); + self.ctx.closePath(); + self.ctx.restore(); + } + } + + _drawText(item, style, resolve, reject, type, isWxml) { + let zoom = this.zoom; + let leftOffset = 0; + let topOffset = 0; + + try { + style.fontSize = this._parseNumber(style.fontSize); + let fontSize = Math.ceil((style.fontSize || 14) * zoom); + this.ctx.setTextBaseline("top"); + this.ctx.font = `${style.fontWeight ? style.fontWeight : "normal"} ${fontSize}px ${ + style.fontFamily || "PingFang SC" + }`; + this.ctx.setFillStyle(style.color || "#454545"); + + let text = item.text || ""; + let textWidth = Math.floor(this.measureWidth(text, style.font || this.ctx.font)); + let lineHeight = this._getLineHeight(style); + let textHeight = Math.ceil(textWidth / (style.width || textWidth)) * lineHeight; + let width = Math.ceil((style.width || textWidth) * (!isWxml ? zoom : 1)); + let whiteSpace = style.whiteSpace || "wrap"; + let x = 0; + let y = 0; + + if (typeof style.padding === "string") { + style.padding = Util.transferPadding(style.padding); + } + item.x = this._resetPositionX(item, style); + item.y = this._resetPositionY(item, style, textHeight); + this._drawBoxShadow(style.boxShadow); + + if (style.background || style.border) { + this._drawTextBackgroud(item, style, textWidth, textHeight, isWxml); + } + + // 行内文本 + if (type === "inline-text") { + width = item.maxWidth; + if (item.leftOffset + textWidth > width) { + // 如果上一个行内元素换行了,这个元素要继续在后面补足一行 + let lineNum = Math.max(Math.floor(textWidth / width), 1); + let length = text.length; + let singleLength = Math.floor(length / lineNum); + let widthOffset = item.leftOffset ? item.leftOffset - item.originX : 0; + let { + endIndex: currentIndex, + single, + singleWidth, + } = this._getTextSingleLine(text, width, singleLength, 0, widthOffset); + x = this._resetTextPositionX(item, style, singleWidth); + y = this._resetTextPositionY(item, style); + this.ctx.fillText(single, x, y); + leftOffset = x + singleWidth; + topOffset = y; + + // 去除第一行补的内容,然后重置 + text = text.substring(currentIndex, text.length); + currentIndex = 0; + lineNum = Math.max(Math.floor(textWidth / width), 1); + textWidth = Math.floor(this.measureWidth(text, style.font || this.ctx.font)); + item.x = item.originX; // 还原换行后的x + for (let i = 0; i < lineNum; i++) { + let { endIndex, single, singleWidth } = this._getTextSingleLine( + text, + width, + singleLength, + currentIndex, + ); + currentIndex = endIndex; + if (single) { + x = this._resetTextPositionX(item, style, singleWidth, width); + y = this._resetTextPositionY(item, style, i + 1); + this.ctx.fillText(single, x, y); + if (i === lineNum - 1) { + leftOffset = x + singleWidth; + topOffset = lineHeight * lineNum; + } + } + } + + let last = text.substring(currentIndex, length); + let lastWidth = this.measureWidth(last); + + if (last) { + x = this._resetTextPositionX(item, style, lastWidth, width); + y = this._resetTextPositionY(item, style, lineNum + 1); + this.ctx.fillText(last, x, y); + leftOffset = x + lastWidth; + topOffset = lineHeight * (lineNum + 1); + } + } else { + x = this._resetTextPositionX(item, style, textWidth, width); + y = this._resetTextPositionY(item, style); + this.ctx.fillText(item.text, x, y); + leftOffset = x + textWidth; + topOffset = lineHeight; + } + } else { + // block文本,如果文本长度超过宽度换行 + if (width && textWidth > width && whiteSpace !== "nowrap") { + let lineNum = Math.max(Math.floor(textWidth / width), 1); + let length = text.length; + let singleLength = Math.floor(length / lineNum); + let currentIndex = 0; + + // lineClamp参数限制最多行数 + if (style.lineClamp && lineNum + 1 > style.lineClamp) { + lineNum = style.lineClamp - 1; + } + + for (let i = 0; i < lineNum; i++) { + let { endIndex, single, singleWidth } = this._getTextSingleLine( + text, + width, + singleLength, + currentIndex, + ); + currentIndex = endIndex; + x = this._resetTextPositionX(item, style, singleWidth, width); + y = this._resetTextPositionY(item, style, i); + this.ctx.fillText(single, x, y); + } + + // 换行后剩余的文字,超过一行则截断增加省略号 + let last = text.substring(currentIndex, length); + let lastWidth = this.measureWidth(last); + if (lastWidth > width) { + let { single, singleWidth } = this._getTextSingleLine(last, width, singleLength); + lastWidth = singleWidth; + last = single.substring(0, single.length - 1) + "..."; + } + + x = this._resetTextPositionX(item, style, lastWidth, width); + y = this._resetTextPositionY(item, style, lineNum); + this.ctx.fillText(last, x, y); + } else { + x = this._resetTextPositionX(item, style, textWidth, width); + y = this._resetTextPositionY(item, style); + this.ctx.fillText(item.text, x, y); + } + } + + this.ctx.draw(true); + + this._updateProgress(item.progress); + + if (resolve) { + resolve(); + } else { + return { + leftOffset, + topOffset, + }; + } + } catch (e) { + reject && reject({ errcode: 1004, errmsg: "drawText error", e: e }); + } + } + + _drawTextBackgroud(item, style, textWidth, textHeight, isWxml) { + if (!style.width) return; + let zoom = isWxml ? 1 : this.zoom; + let width = style.width || textWidth; + let height = style.height || textHeight; + let rectStyle = { + fill: style.background, + border: style.border, + }; + style.padding = style.padding || [0, 0, 0, 0]; + width += (style.padding[1] || 0) + (style.padding[3] || 0); + height += (style.padding[0] || 0) + (style.padding[2] || 0); + width = width * zoom; + height = height * zoom; + this._drawRectToCanvas(item.x, item.y, width, height, rectStyle); + } + + _drawCircle(item, style, resolve, reject, isImage, isWxml) { + let zoom = this.zoom; + let r = style.r; + try { + item.x = this._resetPositionX(item, style); + item.y = this._resetPositionY(item, style); + + let url; + if (isImage) { + let index = this._findPicIndex(item.url); + if (index > -1) { + url = this.allPic[index].local; + } else { + url = item.url; + } + } + + if (!isWxml) { + r = r * zoom; + } + + this._drawCircleToCanvas(item.x, item.y, r, style, url); + + this._updateProgress(item.progress); + resolve && resolve(); + } catch (e) { + reject && + reject({ + errcode: isImage ? 1006 : 1005, + errmsg: isImage ? "drawCircleImage error" : "drawCircle error", + e, + }); + } + } + + _drawCircleToCanvas(x, y, r, style, url) { + let { fill, border, boxShadow } = style; + + this.ctx.save(); + + this._drawBoxShadow(boxShadow, (res) => { + // 真机上填充渐变色时,没有阴影,先画个相等大小的纯色矩形来实现阴影 + if ((fill && typeof fill !== "string") || (url && res.color)) { + this.ctx.setFillStyle(res.color || "#ffffff"); + this.ctx.beginPath(); + this.ctx.arc(x + r, y + r, r, 0, 2 * Math.PI); + this.ctx.closePath(); + this.ctx.fill(); + } + }); + + if (url) { + this.ctx.save(); + this.ctx.beginPath(); + this.ctx.arc(x + r, y + r, r, 0, 2 * Math.PI); + this.ctx.clip(); + this.ctx.drawImage(url, x, y, r * 2, r * 2); + this.ctx.closePath(); + this.ctx.restore(); + } else { + this._setFill(fill, () => { + this.ctx.beginPath(); + this.ctx.arc(x + r, y + r, r, 0, 2 * Math.PI); + this.ctx.closePath(); + this.ctx.fill(); + }); + } + + this._drawBorder(border, style, (border) => { + this.ctx.beginPath(); + this.ctx.arc(x + r, y + r, r + border.width / 2, 0, 2 * Math.PI); + this.ctx.stroke(); + this.ctx.closePath(); + }); + + this.ctx.draw(true); + this.ctx.restore(); + } + + _drawLine(item, style, resolve, reject, isWxml) { + let zoom = this.zoom; + try { + let x1 = item.x * zoom + this.translateX; + let y1 = item.y * zoom + this.translateY; + let x2 = item.x2 * zoom + this.translateX; + let y2 = item.y2 * zoom + this.translateY; + this._drawLineToCanvas(x1, y1, x2, y2, style); + + this._updateProgress(item.progress); + resolve && resolve(); + } catch (e) { + reject && reject({ errcode: 1007, errmsg: "drawLine error", e }); + } + } + + _drawLineToCanvas(x1, y1, x2, y2, style) { + let { stroke, dash, boxShadow } = style; + + this.ctx.save(); + if (stroke) { + this._setStroke(stroke); + } + + this._drawBoxShadow(boxShadow); + + if (dash) { + let dash = [style.dash[0] || 5, style.dash[1] || 5]; + let offset = style.dash[2] || 0; + this.ctx.setLineDash(dash, offset || 0); + } + + this.ctx.moveTo(x1, y1); + this.ctx.setLineWidth((style.width || 1) * this.zoom); + this.ctx.lineTo(x2, y2); + this.ctx.stroke(); + this.ctx.draw(true); + this.ctx.restore(); + } + + // 废弃,合并到_drawRect + _drawImage(item, style, resolve, reject, isWxml) { + let zoom = this.zoom; + try { + item.x = this._resetPositionX(item, style); + item.y = this._resetPositionY(item, style); + item.x = item.x + (style.padding[3] || 0); + item.y = item.y + (style.padding[0] || 0); + + let index = this._findPicIndex(item.url); + let url = index > -1 ? this.allPic[index].local : item.url; + this._drawImageToCanvas(url, item.x, item.y, style.width * zoom, style.height * zoom, style); + + this._updateProgress(item.progress); + resolve && resolve(); + } catch (e) { + reject && reject({ errcode: 1012, errmsg: "drawRect error", e }); + } + } + + // 废弃,合并到_drawRect + _drawImageToCanvas(url, x, y, width, height, style) { + let { fill, border, boxShadow } = style; + this.ctx.save(); + + this._drawBoxShadow(boxShadow); + this.ctx.drawImage(url, x, y, width, height); + + this._drawBorder(border, style, (border) => { + let fixBorder = border.width; + this.ctx.strokeRect(x - fixBorder / 2, y - fixBorder / 2, width + fixBorder, height + fixBorder); + }); + this.ctx.draw(true); + this.ctx.restore(); + } + + _drawWxml(item, style, resolve, reject) { + let self = this; + let all = []; + try { + this._getWxml(item, style).then((results) => { + // 上 -> 下 + let sorted = self._sortListByTop(results[0]); + let count = 0; + let progress = 0; + Object.keys(sorted).forEach((item) => { + count += sorted[item].length; + }); + progress = (this.distance * 3) / (count || 1); + + all = this._drawWxmlBlock(item, sorted, all, progress, results[1]); + all = this._drawWxmlInline(item, sorted, all, progress, results[1]); + + Promise.all(all) + .then((results) => { + resolve && resolve(); + }) + .catch((e) => { + reject && reject(e); + }); + }); + } catch (e) { + reject && reject({ errcode: 1008, errmsg: "drawWxml error" }); + } + } + + _drawWxmlBlock(item, sorted, all, progress, results) { + let self = this; + // 用来限定位置范围,取相对位置 + let limitLeft = results ? results.left : 0; + let limitTop = results ? results.top : 0; + Object.keys(sorted).forEach((top, topIndex) => { + // 左 -> 右 + let list = sorted[top].sort((a, b) => { + return a.left - b.left; + }); + + list = list.filter((sub) => sub.dataset.type && sub.dataset.type.indexOf("inline") === -1); + + list.forEach((sub, index) => { + all[index] = new Promise((resolve2, reject2) => { + sub = self._transferWxmlStyle(sub, item, limitLeft, limitTop); + sub.progress = progress; + let type = sub.dataset.type; + if (sub.dataset.delay) { + setTimeout(() => { + drawWxmlItem(); + }, sub.dataset.delay); + } else { + drawWxmlItem(); + } + function drawWxmlItem() { + if (type === "text") { + self._drawWxmlText(sub, resolve2, reject2); + } else if (type === "image") { + self._drawWxmlImage(sub, resolve2, reject2); + } else if (type === "radius-image") { + self._drawWxmlCircleImage(sub, resolve2, reject2); + } else if (type === "background-image") { + self._drawWxmlBackgroundImage(sub, resolve2, reject2); + } + } + }); + }); + }); + + return all; + } + + _drawWxmlInline(item, sorted, all, progress, results) { + let self = this; + let topOffset = 0; + let leftOffset = 0; + let lastTop = 0; + let limitLeft = results ? results.left : 0; + let limitTop = results ? results.top : 0; + let p = new Promise((resolve2, reject2) => { + let maxWidth = 0; + let minLeft = Infinity; + let maxRight = 0; + + // 找出同一top下的最小left和最大right,得到最大的宽度,用于换行 + Object.keys(sorted).forEach((top) => { + let inlineList = sorted[top].filter((sub) => sub.dataset.type && sub.dataset.type.indexOf("inline") > -1); + inlineList.forEach((sub) => { + if (sub.left < minLeft) { + minLeft = sub.left; + } + if (sub.right > maxRight) { + maxRight = sub.right; + } + }); + }); + maxWidth = Math.ceil(maxRight - minLeft || self.width); + + Object.keys(sorted).forEach((top, topIndex) => { + // 左 -> 右 + let list = sorted[top].sort((a, b) => { + return a.left - b.left; + }); + + // 换行的行内元素left放到后面,version2.0.6后无法获取高度,改用bottom值来判断是否换行了 + let position = -1; + for (let i = 0, len = list.length; i < len; i++) { + if (list[i] && list[i + 1]) { + if (list[i].bottom > list[i + 1].bottom) { + position = i; + break; + } + } + } + + if (position > -1) { + list.push(list.splice(position, 1)[0]); + } + + let inlineList = list.filter((sub) => sub.dataset.type && sub.dataset.type.indexOf("inline") > -1); + let originLeft = inlineList[0] ? inlineList[0].left : 0; + // 换行后和top不相等时,认为是换行了,要清除左边距;当左偏移量大于最大宽度时,也要清除左边距; 当左偏移小于左边距时,也要清除 + if ( + Math.abs(topOffset + lastTop - top) > 2 || + leftOffset - originLeft - limitLeft >= maxWidth || + leftOffset <= originLeft - limitLeft - 2 + ) { + leftOffset = 0; + } + + lastTop = +top; + topOffset = 0; + + inlineList.forEach((sub, index) => { + sub = self._transferWxmlStyle(sub, item, limitLeft, limitTop); + sub.progress = progress; + let type = sub.dataset.type; + if (type === "inline-text") { + let drawRes = self._drawWxmlInlineText(sub, leftOffset, maxWidth); + leftOffset = drawRes.leftOffset; + topOffset = drawRes.topOffset; + } else if (type === "inline-image") { + let drawRes = self._drawWxmlImage(sub) || {}; + leftOffset = drawRes.leftOffset || 0; + topOffset = drawRes.topOffset || 0; + } + }); + }); + resolve2(); + }); + + all.push(p); + return all; + } + + _drawWxmlInlineText(sub, leftOffset = 0, maxWidth) { + let text = sub.dataset.text || ""; + if (sub.dataset.maxlength && text.length > sub.dataset.maxlength) { + text = text.substring(0, sub.dataset.maxlength) + "..."; + } + + let textData = { + text, + originX: sub.left, + x: leftOffset ? leftOffset : sub.left, + y: sub.top, + progress: sub.progress, + leftOffset: leftOffset, + maxWidth: maxWidth, // 行内元素的最大宽度,取决于limit的宽度 + }; + + if (sub.backgroundColor !== "rgba(0, 0, 0, 0)") { + sub.background = sub.backgroundColor; + } else { + sub.background = "rgba(0, 0, 0, 0)"; + } + + if (sub.dataset.background) { + sub.background = sub.dataset.background; + } + + let res = this._drawText(textData, sub, null, null, "inline-text", "wxml"); + + return res; + } + + _drawWxmlText(sub, resolve, reject) { + let text = sub.dataset.text || ""; + if (sub.dataset.maxlength && text.length > sub.dataset.maxlength) { + text = text.substring(0, sub.dataset.maxlength) + "..."; + } + + let textData = { + text, + x: sub.left, + y: sub.top, + progress: sub.progress, + }; + if (sub.backgroundColor !== "rgba(0, 0, 0, 0)") { + sub.background = sub.backgroundColor; + } else { + sub.background = "rgba(0, 0, 0, 0)"; + } + + if (sub.dataset.background) { + sub.background = sub.dataset.background; + } + + this._drawText(textData, sub, resolve, reject, "text", "wxml"); + } + + _drawWxmlImage(sub, resolve, reject) { + let imageData = { + url: sub.dataset.url, + x: sub.left, + y: sub.top, + progress: sub.progress, + }; + + let res = this._drawRect(imageData, sub, resolve, reject, "image", "inline-wxml"); + + return res; + } + + _drawWxmlCircleImage(sub, resolve, reject) { + let imageData = { + url: sub.dataset.url, + x: sub.left, + y: sub.top, + progress: sub.progress, + }; + sub.r = sub.width / 2; + + this._drawCircle(imageData, sub, resolve, reject, true, "wxml"); + } + + _drawWxmlBackgroundImage(sub, resolve, reject) { + let url = sub.dataset.url; + let index = this._findPicIndex(url); + url = index > -1 ? this.allPic[index].local : url; + let size = sub.backgroundSize.replace(/px/g, "").split(" "); + + let imageData = { + url: url, + x: sub.left, + y: sub.top, + progress: sub.progress, + }; + + this._drawRect(imageData, sub, resolve, reject, "image", "wxml"); + } + + _getWxml(item, style) { + let self = this; + let query; + // if (this.obj) { + // query = wx.createSelectorQuery().in(this.obj); + // } else { + // query = wx.createSelectorQuery(); + // } + if (this.object) { + query = wx.createSelectorQuery().in(this.object); + } else { + query = wx.createSelectorQuery(); + } + + let p1 = new Promise((resolve, reject) => { + // 会触发两次,要限制 + let count = 0; + query + .selectAll(`${item.class}`) + .fields( + { + dataset: true, + size: true, + rect: true, + computedStyle: [ + "width", + "height", + "font", + "fontSize", + "fontFamily", + "fontWeight", + "fontStyle", + "textAlign", + "color", + "lineHeight", + "border", + "borderColor", + "borderStyle", + "borderWidth", + "verticalAlign", + "boxShadow", + "background", + "backgroundColor", + "backgroundImage", + "backgroundPosition", + "backgroundSize", + "paddingLeft", + "paddingTop", + "paddingRight", + "paddingBottom", + ], + }, + (res) => { + if (count++ === 0) { + let formated = self._formatImage(res); + let list = formated.list; + res = formated.res; + + self + ._preloadImage(list) + .then((result) => { + resolve(res); + }) + .catch((res) => { + reject && reject({ errcode: 1009, errmsg: "drawWxml preLoadImage error" }); + }); + } + }, + ) + .exec(); + }); + + let p2 = new Promise((resolve, reject) => { + if (!item.limit) { + resolve({ top: 0, width: self.width / self.zoom }); + } + + query + .select(`${item.limit}`) + .fields( + { + dataset: true, + size: true, + rect: true, + }, + (res) => { + resolve(res); + }, + ) + .exec(); + }); + + return Promise.all([p1, p2]); + } + + _getLineHeight(style) { + let zoom = this.zoom; + if (style.dataset && style.dataset.type) { + zoom = 1; + } + let lineHeight; + if (!isNaN(style.lineHeight) && style.lineHeight > style.fontSize) { + lineHeight = style.lineHeight; + } else { + style.lineHeight = (style.lineHeight || "") + ""; + lineHeight = +style.lineHeight.replace("px", ""); + lineHeight = lineHeight ? lineHeight : (style.fontSize || 14) * 1.2; + } + return lineHeight * zoom; + } + + _formatImage(res = []) { + let list = []; + res.forEach((item, index) => { + let dataset = item.dataset; + let uid = Util.getUid(); + let filename = `${wx.env.USER_DATA_PATH}/${uid}.png`; + if ((dataset.type === "image" || dataset.type === "radius-image") && dataset.url) { + let sub = { + url: dataset.base64 ? filename : dataset.url, + isBase64: dataset.base64 ? dataset.url : false, + }; + + res[index].dataset = Object.assign(res[index].dataset, sub); + list.push(sub); + } else if (dataset.type === "background-image" && item.backgroundImage.indexOf("url") > -1) { + let url = item.backgroundImage.replace(/url\((\"|\')?/, "").replace(/(\"|\')?\)$/, ""); + let sub = { + url: dataset.base64 ? filename : url, + isBase64: dataset.base64 ? url : false, + }; + res[index].dataset = Object.assign(res[index].dataset, sub); + list.push(sub); + } + }); + + return { list, res }; + } + + _updateProgress(distance) { + this.progressPercent += distance; + this.progress(this.progressPercent); + } + + _sortListByTop(list = []) { + let sorted = {}; + + // 粗略地认为2px相差的元素在同一行 + list.forEach((item, index) => { + let top = item.top; + if (!sorted[top]) { + if (sorted[top - 2]) { + top = top - 2; + } else if (sorted[top - 1]) { + top = top - 1; + } else if (sorted[top + 1]) { + top = top + 1; + } else if (sorted[top + 2]) { + top = top + 2; + } else { + sorted[top] = []; + } + } + sorted[top].push(item); + }); + + return sorted; + } + + _parseNumber(number) { + return isNaN(number) ? +(number || "").replace("px", "") : number; + } + + _transferWxmlStyle(sub, item, limitLeft, limitTop) { + let leftFix = +sub.dataset.left || 0; + let topFix = +sub.dataset.top || 0; + + sub.width = this._parseNumber(sub.width); + sub.height = this._parseNumber(sub.height); + sub.left = this._parseNumber(sub.left) - limitLeft + (leftFix + (item.x || 0)) * this.zoom; + sub.top = this._parseNumber(sub.top) - limitTop + (topFix + (item.y || 0)) * this.zoom; + + let padding = sub.dataset.padding || "0 0 0 0"; + if (typeof padding === "string") { + padding = Util.transferPadding(padding); + } + let paddingTop = Number(sub.paddingTop.replace("px", "")) + Number(padding[0]); + let paddingRight = Number(sub.paddingRight.replace("px", "")) + Number(padding[1]); + let paddingBottom = Number(sub.paddingBottom.replace("px", "")) + Number(padding[2]); + let paddingLeft = Number(sub.paddingLeft.replace("px", "")) + Number(padding[3]); + sub.padding = [paddingTop, paddingRight, paddingBottom, paddingLeft]; + + return sub; + } + + /** + * 支持负值绘制,从右边计算 + * @param {*} item + * @param {*} style + */ + _resetPositionX(item, style) { + let zoom = this.zoom; + let x = 0; + + if (style.dataset && style.dataset.type) { + zoom = 1; + } + + // 通过wxml获取的不需要重置坐标 + if (item.x < 0 && item.type) { + x = this.width + item.x * zoom - style.width * zoom; + } else { + x = item.x * zoom; + } + + if (parseInt(style.borderWidth)) { + x += parseInt(style.borderWidth); + } + + return x + this.translateX; + } + + /** + * 支持负值绘制,从底部计算 + * @param {*} item + * @param {*} style + */ + _resetPositionY(item, style, textHeight) { + let zoom = this.zoom; + let y = 0; + + if (style.dataset && style.dataset.type) { + zoom = 1; + } + + if (item.y < 0) { + y = this.height + item.y * zoom - (textHeight ? textHeight : style.height * zoom); + } else { + y = item.y * zoom; + } + + if (parseInt(style.borderWidth)) { + y += parseInt(style.borderWidth); + } + + return y + this.translateY; + } + + /** + * 文字的padding、text-align + * @param {*} item + * @param {*} style + * @param {*} textWidth + */ + _resetTextPositionX(item, style, textWidth, width) { + let textAlign = style.textAlign || "left"; + let x = item.x; + if (textAlign === "center") { + x = (width - textWidth) / 2 + item.x; + } else if (textAlign === "right") { + x = width - textWidth + item.x; + } + + let left = style.padding ? style.padding[3] || 0 : 0; + + return x + left + this.translateX; + } + + /** + * 文字的padding、text-align + * @param {*} item + * @param {*} style + * @param {*} textWidth + */ + _resetTextPositionY(item, style, lineNum = 0) { + let zoom = this.zoom; + if (style.dataset && style.dataset.type) { + zoom = 1; + } + + let lineHeight = this._getLineHeight(style); + let fontSize = Math.ceil((style.fontSize || 14) * zoom); + + let blockLineHeightFix = + ((style.dataset && style.dataset.type) || "").indexOf("inline") > -1 ? 0 : (lineHeight - fontSize) / 2; + + let top = style.padding ? style.padding[0] || 0 : 0; + + // y + lineheight偏移 + 行数 + paddingTop + 整体画布位移 + return item.y + blockLineHeightFix + lineNum * lineHeight + top + this.translateY; + } + + /** + * 当文本超过宽度时,计算每一行应该绘制的文本 + * @param {*} text + * @param {*} width + * @param {*} singleLength + * @param {*} currentIndex + * @param {*} widthOffset + */ + _getTextSingleLine(text, width, singleLength, currentIndex = 0, widthOffset = 0) { + let offset = 0; + let endIndex = currentIndex + singleLength + offset; + let single = text.substring(currentIndex, endIndex); + let singleWidth = this.measureWidth(single); + + while (Math.round(widthOffset + singleWidth) > width) { + offset--; + endIndex = currentIndex + singleLength + offset; + single = text.substring(currentIndex, endIndex); + singleWidth = this.measureWidth(single); + } + + return { + endIndex, + single, + singleWidth, + }; + } + + _drawBorder(border, style, callback) { + let zoom = this.zoom; + if (style.dataset && style.dataset.type) { + zoom = 1; + } + border = Util.transferBorder(border); + + if (border && border.width) { + // 空白阴影,清空掉边框的阴影 + this._drawBoxShadow(); + if (border) { + this.ctx.setLineWidth(border.width * zoom); + + if (border.style === "dashed") { + let dash = style.dash || [5, 5, 0]; + let offset = dash[2] || 0; + let array = [dash[0] || 5, dash[1] || 5]; + this.ctx.setLineDash(array, offset); + } + this.ctx.setStrokeStyle(border.color); + } + callback && callback(border); + } + } + + _drawBoxShadow(boxShadow, callback) { + boxShadow = Util.transferBoxShadow(boxShadow); + if (boxShadow) { + this.ctx.setShadow(boxShadow.offsetX, boxShadow.offsetY, boxShadow.blur, boxShadow.color); + } else { + this.ctx.setShadow(0, 0, 0, "#ffffff"); + } + + callback && callback(boxShadow || {}); + } + + _setFill(fill, callback) { + if (fill) { + if (typeof fill === "string") { + this.ctx.setFillStyle(fill); + } else { + let line = fill.line; + let color = fill.color; + let grd = this.ctx.createLinearGradient(line[0], line[1], line[2], line[3]); + grd.addColorStop(0, color[0]); + grd.addColorStop(1, color[1]); + this.ctx.setFillStyle(grd); + } + callback && callback(); + } + } + + _setStroke(stroke, callback) { + if (stroke) { + if (typeof stroke === "string") { + this.ctx.setStrokeStyle(stroke); + } else { + let line = stroke.line; + let color = stroke.color; + let grd = this.ctx.createLinearGradient(line[0], line[1], line[2], line[3]); + grd.addColorStop(0, color[0]); + grd.addColorStop(1, color[1]); + this.ctx.setStrokeStyle(grd); + } + + callback && callback(); + } + } + } + + if (!exports.__esModule) Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = Wxml2Canvas; + }, + function (modId) { + var map = { "./util": 1685064731948 }; + return __REQUIRE__(map[modId], modId); + }, + ); + __DEFINE__( + 1685064731948, + function (require, module, exports) { + /** + * 获取字符的长度,full为true时,一个汉字算两个长度 + * @param {String} str + * @param {Boolean} full + */ + + function getTextLength(str, full) { + let len = 0; + for (let i = 0; i < str.length; i++) { + let c = str.charCodeAt(i); + //单字节加1 + if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) { + len++; + } else { + len += full ? 2 : 1; + } + } + return len; + } + + /** + * rgba(255, 255, 255, 1) => #ffffff + * @param {String} color + */ + function transferColor(color = "") { + let res = "#"; + color = color.replace(/^rgba?\(/, "").replace(/\)$/, ""); + color = color.split(", "); + + color.length > 3 ? (color.length = 3) : ""; + for (let item of color) { + item = parseInt(item || 0); + if (item < 10) { + res += "0" + item; + } else { + res += item.toString(16); + } + } + + return res; + } + + function transferBorder(border = "") { + let res = border.match(/(\w+)px\s(\w+)\s(.*)/); + let obj = {}; + + if (res) { + obj = { + width: +res[1], + style: res[2], + color: res[3], + }; + } + + return res ? obj : null; + } + + /** + * 内边距,依次为上右下左 + * @param {*} padding + */ + function transferPadding(padding = "0 0 0 0") { + padding = padding.split(" "); + for (let i = 0, len = padding.length; i < len; i++) { + padding[i] = +padding[i].replace("px", ""); + } + + return padding; + } + /** + * type1: 0, 25, 17, rgba(0, 0, 0, 0.3) + * type2: rgba(0, 0, 0, 0.3) 0px 25px 17px 0px => (0, 25, 17, rgba(0, 0, 0, 0.3)) + * @param {*} shadow + */ + function transferBoxShadow(shadow = "", type) { + if (!shadow || shadow === "none") return; + let color; + let split; + + split = shadow.match(/(\w+)\s(\w+)\s(\w+)\s(rgb.*)/); + + if (split) { + split.shift(); + shadow = split; + color = split[3] || "#ffffff"; + } else { + split = shadow.split(") "); + color = split[0] + ")"; + shadow = split[1].split("px "); + } + + return { + offsetX: +shadow[0] || 0, + offsetY: +shadow[1] || 0, + blur: +shadow[2] || 0, + color, + }; + } + + function getUid(prefix) { + prefix = prefix || ""; + + return ( + prefix + + "xxyxxyxx".replace(/[xy]/g, (c) => { + let r = (Math.random() * 16) | 0; + let v = c === "x" ? r : (r & 0x3) | 0x8; + return v.toString(16); + }) + ); + } + + if (!exports.__esModule) Object.defineProperty(exports, "__esModule", { value: true }); + exports.default = { + getTextLength, + transferBorder, + transferColor, + transferPadding, + transferBoxShadow, + getUid, + }; + }, + function (modId) { + var map = {}; + return __REQUIRE__(map[modId], modId); + }, + ); + return __REQUIRE__(1685064731946); +})(); +//miniprogram-npm-outsideDeps=[] +//# sourceMappingURL=index.js.map diff --git a/src/components/customPoster/wxml2canvas/index.js.map b/src/components/customPoster/wxml2canvas/index.js.map new file mode 100644 index 0000000..68e773e --- /dev/null +++ b/src/components/customPoster/wxml2canvas/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.js","src/index.js","src/util.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;ACFA;AACA;AACA;AACA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA,ACHA;ADIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.js","sourcesContent":["var __TEMP__ = require('./src/index');var Wxml2Canvas = __REQUIRE_DEFAULT__(__TEMP__);\n\nif (!exports.__esModule) Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = Wxml2Canvas;","var __TEMP__ = require('./util');var Util = __REQUIRE_DEFAULT__(__TEMP__);\n\nconst imageMode = ['scaleToFill', 'aspectFit', 'aspectFill', 'widthFix', 'top', 'bottom', 'center', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right']\n\nclass Wxml2Canvas {\n constructor (options = {}) {\n this.device = wx.getSystemInfoSync && wx.getSystemInfoSync() || {};\n \n if (!options.zoom) {\n this.zoom = this.device.windowWidth / 375;\n } else {\n this.zoom = options.zoom || 1;\n } \n \n this.element = options.element;\n this.object = options.obj;\n this.width = options.width * this.zoom || 0;\n this.height = options.height * this.zoom || 0;\n this.destZoom = options.destZoom || 3;\n this.destWidth = this.width * this.destZoom;\n this.destHeight = this.height * this.destZoom;\n this.translateX = options.translateX * this.zoom || 0;\n this.translateY = options.translateY * this.zoom || 0;\n this.gradientBackground = options.gradientBackground || null;\n this.background = options.background || '#ffffff';\n this.finishDraw = options.finish || function finish(params) {}\n this.errorHandler = options.error || function error(params) {}\n this.progress = options.progress || function progress(params) {}\n this.textAlign = options.textAlign || 'left';\n this.fullText = options.fullText || false;\n this.font = options.font || '14px PingFang SC';\n\n this._init();\n }\n\n draw (data = {}, that) {\n let self = this;\n this.data = data;\n this.fef = that;\n\n this.progress(10);\n this._preloadImage(data.list).then((result) => {\n this.progress(30);\n self._draw();\n }).catch((res) => {\n self.errorHandler(res);\n })\n }\n\n measureWidth (text, font) {\n if(font) {\n this.ctx.font = font;\n }\n let res = this.ctx.measureText(text) || {};\n return res.width || 0;\n }\n\n _init () {\n this.progressPercent = 0; // 绘制进度百分比\n this.data = null;\n this.ref = null;\n this.allPic = [];\n this.screenList = []; \n this.asyncList = [];\n this.imgUrl = '';\n this.progressPercent = 0;\n this.distance = 0;\n this.progress(0);\n\n this.ctx = wx.createCanvasContext(this.element, this.obj);\n this.ctx.font = this.font;\n this.ctx.setTextBaseline('top');\n this.ctx.setStrokeStyle('white');\n\n this.debug = this.device.platform === 'devtools' ? true : false;\n\n this._drawBakcground();\n }\n\n _drawBakcground () {\n if (this.gradientBackground) {\n let line = this.gradientBackground.line || [0, 0, 0, this.height];\n let color = this.gradientBackground.color || ['#fff', '#fff'];\n let style = { fill: { line, color } }\n this._drawRectToCanvas(0, 0, this.width, this.height, style);\n } else {\n let style = { fill: this.background }\n this._drawRectToCanvas(0, 0, this.width, this.height, style);\n }\n }\n\n _draw () {\n let self = this;\n let list = this.data.list || [];\n let index = 0;\n let all = [];\n let count = 0;\n\n list.forEach(item => {\n if(item.type === 'wxml') {\n count += 3;\n } else {\n count += 1;\n }\n })\n\n this.distance = 60 / (count || 1); // 进度条的间距\n this.progressPercent = 30;\n this.asyncList = list.filter( item => item.delay == true );\n list = list.filter( item => item.delay != true );\n drawList(list);\n\n Promise.all(all).then(results => {\n index = 0;\n drawList(self.asyncList, true);\n\n Promise.all(all).then(results => {\n self.progress(90);\n self._saveCanvasToImage();\n });\n }).catch (e => {\n console.log(e)\n self.errorHandler(e);\n });\n\n function drawList(list = [], noDelay) {\n list.forEach((item, i) => {\n all[index++] = new Promise((resolve, reject) => {\n let attr = item.style;\n item.progress = self.distance;\n if (noDelay) {\n item.delay = 0;\n }\n if (item.type === 'radius-image') {\n self._drawCircle(item, attr, resolve, reject, 'image');\n } else if (item.type === 'text') {\n self._drawText(item, attr, resolve, reject);\n } else if (item.type === 'line') {\n self._drawLine(item, attr, resolve, reject);\n } else if (item.type === 'circle') {\n self._drawCircle(item, attr, resolve, reject);\n } else if (item.type === 'rect') {\n self._drawRect(item, attr, resolve, reject);\n } else if (item.type === 'image') {\n self._drawRect(item, attr, resolve, reject, 'image');\n } else if (item.type === 'wxml') {\n self._drawWxml(item, attr, resolve, reject);\n }else {\n resolve();\n }\n });\n });\n }\n }\n\n _saveCanvasToImage () {\n let self = this; \n\n // 延时保存有两个原因,一个是等待绘制delay的元素,另一个是安卓上样式会错乱\n setTimeout(() => {\n self.progress(95);\n\n let obj = {\n x: 0,\n y: 0,\n width: self.width,\n height: self.height,\n canvasId: self.element,\n success: function (res) {\n\n self.progress(100);\n self.imgUrl = res.tempFilePath;\n self.finishDraw(self.imgUrl);\n },\n fail: function (res) {\n\n self.errorHandler({errcode: 1000, errmsg: 'save canvas error', e: res});\n }\n }\n\n if(self.destZoom !== 3) {\n obj.destWidth = self.destWidth;\n obj.destHeight = self.destHeight;\n }\n\n wx.canvasToTempFilePath(obj, self.object);\n }, self.device.system.indexOf('iOS') === -1 ? 300 : 100);\n }\n\n _preloadImage (list = []) {\n let self = this;\n let all = [];\n let count = 0;\n\n list.forEach((item, i) => {\n if (item.url && self._findPicIndex(item.url) === -1) {\n \n // 避免重复下载同一图片\n self.allPic.push({\n url: item.url,\n local: ''\n });\n all[count++] = new Promise((resolve, reject) => {\n // 非http(s)域名的就不下载了\n if (!/^http/.test(item.url) || /^http:\\/\\/(tmp)|(usr)\\//.test(item.url) || /^http:\\/\\/127\\.0\\.0\\.1/.test(item.url)) {\n if(item.isBase64) {\n let fileManager = wx.getFileSystemManager();\n\n fileManager.writeFile({\n filePath: item.url,\n data: item.isBase64.replace(/data:image\\/(.*);base64,/, ''),\n encoding: 'base64',\n success (res) {\n imageInfo(item.url);\n },\n fail (res) {\n reject(res);\n },\n })\n \n }else {\n imageInfo(item.url);\n }\n\n function imageInfo (url) {\n wx.getImageInfo({\n src: url,\n success (res) {\n let index = self._findPicIndex(url);\n if(index > -1) {\n self.allPic[index].local = url;\n self.allPic[index].width = res.width;\n self.allPic[index].height = res.height;\n }\n resolve({ tempFilePath: url });\n }, \n fail (res) {\n reject(res);\n }\n })\n }\n } else {\n wx.downloadFile({\n url: item.url.replace(/^https?/, 'https'),\n success: function (res) {\n wx.getImageInfo({\n src: res.tempFilePath,\n success (img) {\n let index = self._findPicIndex(item.url);\n if (index > -1) {\n self.allPic[index].local = res.tempFilePath;\n self.allPic[index].width = img.width;\n self.allPic[index].height = img.height;\n }\n resolve(res);\n },\n fail (res) {\n reject(res);\n }\n })\n },\n fail: (res) => {\n reject({errcode: 1001, errmsg: 'download pic error'});\n }\n })\n }\n }) \n }\n });\n\n return Promise.all(all).then(results => {\n return new Promise(resolve => { resolve() })\n }).catch((results) => {\n return new Promise((resolve, reject) => { reject(results) })\n })\n }\n\n _findPicIndex (url) {\n let index = this.allPic.findIndex(pic => pic.url === url);\n return index;\n }\n\n _drawRect (item, style, resolve, reject, isImage, isWxml) {\n let zoom = this.zoom;\n let leftOffset = 0;\n let topOffset = 0;\n let width = style.width;\n let height = style.height;\n let imgWidth = style.width;\n let imgHeight = style.height;\n let mode = null;\n\n try {\n item.x = this._resetPositionX(item, style);\n item.y = this._resetPositionY(item, style);\n \n let url;\n if(isImage) {\n let index = this._findPicIndex(item.url);\n if(index > -1) {\n url = this.allPic[index].local\n imgWidth = this.allPic[index].width\n imgHeight = this.allPic[index].height\n }else {\n url = item.url;\n }\n }\n\n style.padding = style.padding || [];\n if(isWxml === 'inline-wxml') {\n item.x = item.x + (style.padding[3] && style.padding[3] || 0)\n item.y = item.y + (style.padding[0] && style.padding[0] || 0)\n }\n\n leftOffset = item.x + style.width + (style.padding[1] && style.padding[1] || 0);\n\n if(!isWxml) {\n width = width * zoom;\n height = height * zoom;\n }\n\n if(style.dataset && style.dataset.mode && imageMode.indexOf(style.dataset.mode) > -1) {\n mode = {\n type: style.dataset.mode,\n width: imgWidth,\n height: imgHeight\n };\n }\n\n this._drawRectToCanvas(item.x, item.y, width, height, style, url, mode);\n this._updateProgress(item.progress);\n\n if(resolve) {\n resolve();\n }else {\n return {\n leftOffset,\n topOffset\n }\n }\n } catch (e) {\n reject && reject({ errcode: (isImage ? 1003 : 1002), errmsg: (isImage ? 'drawImage error' : 'drawRect error'), e });\n }\n }\n\n _drawRectToCanvas (x, y, width, height, style, url, mode) {\n let { fill, border, boxShadow } = style;\n this.ctx.save();\n this._drawBoxShadow(boxShadow, (res) => {\n // 真机上填充渐变色时,没有阴影,先画个相等大小的纯色矩形来实现阴影\n if(fill && typeof fill !== 'string' && !this.debug) {\n this.ctx.setFillStyle(res.color || '#ffffff');\n this.ctx.fillRect(x, y, width, height);\n }\n });\n \n if(url) {\n // 开发者工具有bug,先不裁剪\n if(mode) {\n this._resetImageByMode(url, x, y, width, height, mode);\n }else {\n this.ctx.drawImage(url, x, y, width, height)\n }\n }else {\n this._setFill(fill, () => {\n this.ctx.fillRect(x, y, width, height);\n });\n }\n\n this._drawBorder(border, style, (border) => {\n let fixBorder = border.width;\n this.ctx.strokeRect(x - fixBorder / 2, y - fixBorder / 2, width + fixBorder, height + fixBorder);\n });\n\n this.ctx.draw(true);\n this.ctx.restore();\n }\n\n _resetImageByMode (url, x, y, width, height, mode) {\n let self = this;\n let offsetX = 0;\n let offsetY = 0;\n let imgWidth = mode.width;\n let imgHeight = mode.height;\n\n switch (mode.type) {\n case 'scaleToFill': \n imgWidth = width;\n imgHeight = height;\n self.ctx.drawImage(url, x, y, width, height)\n break;\n case 'widthFix': \n height = width / ((imgWidth || 1) / (imgHeight || 1))\n self.ctx.drawImage(url, x, y, width, height)\n break; \n case 'aspectFit': \n if(imgWidth > imgHeight) {\n let realHeight = width / ((imgWidth || 1) / (imgHeight || 1))\n offsetY = -(height - realHeight) / 2\n imgWidth = width;\n imgHeight = realHeight;\n }else {\n let realWidth = height / ((imgHeight || 1) / (imgWidth || 1))\n offsetX = -(width - realWidth) / 2\n imgWidth = realWidth;\n imgHeight = height;\n }\n\n _clip();\n break;\n case 'aspectFill': \n if(imgWidth > imgHeight) {\n let realWidth = imgWidth / ((imgHeight || 1) / (height || 1))\n offsetX = (realWidth - width) / 2\n imgWidth = realWidth;\n imgHeight = height;\n }else {\n let realHeight = imgHeight / ((imgWidth || 1) / (width || 1))\n offsetY = (realHeight - height) / 2\n imgWidth = width;\n imgHeight = realHeight;\n }\n\n _clip();\n break;\n case 'top left': \n _clip();\n break;\n case 'top': \n offsetX = (mode.width - width) / 2;\n _clip();\n break;\n case 'top right': \n offsetX = (mode.width - width);\n _clip();\n break;\n case 'left': \n offsetY = (mode.height - height) / 2;\n _clip();\n break;\n case 'center': \n offsetX = (mode.width - width) / 2;\n offsetY = (mode.height - height) / 2;\n _clip();\n break;\n case 'right': \n offsetX = (mode.width - width);\n offsetY = (mode.height - height) / 2;\n _clip();\n break;\n case 'bottom left': \n offsetY = (mode.height - height)\n _clip();\n break;\n case 'bottom': \n offsetX = (mode.width - width) / 2;\n offsetY = (mode.height - height)\n _clip();\n break;\n case 'bottom right': \n offsetX = (mode.width - width);\n offsetY = (mode.height - height)\n _clip();\n break;\n default: \n imgWidth = width;\n imgHeight = height;\n break; \n }\n\n function _clip () {\n self.ctx.save();\n self.ctx.beginPath()\n self.ctx.rect(x, y, width, height)\n self.ctx.clip();\n self.ctx.drawImage(url, x - offsetX, y - offsetY, imgWidth, imgHeight)\n self.ctx.closePath();\n self.ctx.restore();\n }\n }\n\n _drawText (item, style, resolve, reject, type, isWxml) {\n let zoom = this.zoom;\n let leftOffset = 0;\n let topOffset = 0;\n\n try {\n style.fontSize = this._parseNumber(style.fontSize);\n let fontSize = Math.ceil((style.fontSize || 14) * zoom)\n this.ctx.setTextBaseline('top');\n this.ctx.font = (`${style.fontWeight ? (style.fontWeight) : 'normal'} ${ fontSize }px ${ style.fontFamily || 'PingFang SC' }`);\n this.ctx.setFillStyle(style.color || '#454545');\n\n let text = item.text || '';\n let textWidth = Math.floor(this.measureWidth(text, style.font || this.ctx.font));\n let lineHeight = this._getLineHeight(style);\n let textHeight = Math.ceil(textWidth / (style.width || textWidth)) * lineHeight;\n let width = Math.ceil((style.width || textWidth) * (!isWxml ? zoom : 1));\n let whiteSpace = style.whiteSpace || 'wrap';\n let x = 0;\n let y = 0; \n\n if(typeof style.padding === 'string') {\n style.padding = Util.transferPadding(style.padding);\n }\n item.x = this._resetPositionX(item, style);\n item.y = this._resetPositionY(item, style, textHeight);\n this._drawBoxShadow(style.boxShadow);\n\n if(style.background || style.border) {\n this._drawTextBackgroud(item, style, textWidth, textHeight, isWxml);\n }\n \n // 行内文本\n if(type === 'inline-text') {\n width = item.maxWidth;\n if(item.leftOffset + textWidth > width) {\n // 如果上一个行内元素换行了,这个元素要继续在后面补足一行\n let lineNum = Math.max(Math.floor(textWidth / width), 1);\n let length = text.length;\n let singleLength = Math.floor(length / lineNum);\n let widthOffset = item.leftOffset ? item.leftOffset - item.originX : 0;\n let { endIndex: currentIndex, single, singleWidth } = this._getTextSingleLine(text, width, singleLength, 0, widthOffset)\n x = this._resetTextPositionX(item, style, singleWidth);\n y = this._resetTextPositionY(item, style);\n this.ctx.fillText(single, x, y);\n leftOffset = x + singleWidth;\n topOffset = y;\n\n // 去除第一行补的内容,然后重置\n text = text.substring(currentIndex, text.length);\n currentIndex = 0;\n lineNum = Math.max(Math.floor(textWidth / width), 1);\n textWidth = Math.floor(this.measureWidth(text, style.font || this.ctx.font));\n item.x = item.originX; // 还原换行后的x\n for (let i = 0; i < lineNum; i++) {\n let { endIndex, single, singleWidth } = this._getTextSingleLine(text, width, singleLength, currentIndex);\n currentIndex = endIndex;\n if(single) {\n x = this._resetTextPositionX(item, style, singleWidth, width);\n y = this._resetTextPositionY(item, style, i + 1);\n this.ctx.fillText(single, x, y);\n if(i === lineNum - 1) {\n leftOffset = x + singleWidth;\n topOffset = lineHeight * lineNum;\n }\n }\n }\n\n let last = text.substring(currentIndex, length);\n let lastWidth = this.measureWidth(last);\n\n if(last) {\n x = this._resetTextPositionX(item, style, lastWidth, width);\n y = this._resetTextPositionY(item, style, lineNum + 1);\n this.ctx.fillText(last, x, y);\n leftOffset = x + lastWidth;\n topOffset = lineHeight * (lineNum + 1);\n }\n }else {\n x = this._resetTextPositionX(item, style, textWidth, width);\n y = this._resetTextPositionY(item, style);\n this.ctx.fillText(item.text, x, y);\n leftOffset = x + textWidth;\n topOffset = lineHeight;\n }\n }else {\n // block文本,如果文本长度超过宽度换行\n if (width && textWidth > width && whiteSpace !== 'nowrap') {\n let lineNum = Math.max(Math.floor(textWidth / width), 1);\n let length = text.length;\n let singleLength = Math.floor(length / lineNum);\n let currentIndex = 0;\n\n // lineClamp参数限制最多行数\n if (style.lineClamp && lineNum + 1 > style.lineClamp) {\n lineNum = style.lineClamp - 1;\n }\n\n for (let i = 0; i < lineNum; i++) {\n let { endIndex, single, singleWidth } = this._getTextSingleLine(text, width, singleLength, currentIndex);\n currentIndex = endIndex;\n x = this._resetTextPositionX(item, style, singleWidth, width);\n y = this._resetTextPositionY(item, style, i);\n this.ctx.fillText(single, x, y);\n\n }\n\n // 换行后剩余的文字,超过一行则截断增加省略号\n let last = text.substring(currentIndex, length);\n let lastWidth = this.measureWidth(last);\n if(lastWidth > width) {\n let { single, singleWidth } = this._getTextSingleLine(last, width, singleLength);\n lastWidth = singleWidth;\n last = single.substring(0, single.length - 1) + '...';\n }\n\n x = this._resetTextPositionX(item, style, lastWidth, width);\n y = this._resetTextPositionY(item, style, lineNum);\n this.ctx.fillText(last, x, y);\n\n }else {\n x = this._resetTextPositionX(item, style, textWidth, width);\n y = this._resetTextPositionY(item, style);\n this.ctx.fillText(item.text, x, y);\n }\n }\n \n this.ctx.draw(true);\n \n this._updateProgress(item.progress);\n\n if(resolve) {\n resolve();\n }else {\n return {\n leftOffset,\n topOffset\n }\n }\n } catch(e) {\n reject && reject({ errcode: 1004, errmsg: 'drawText error', e: e });\n }\n }\n\n _drawTextBackgroud (item, style, textWidth, textHeight, isWxml) {\n if(!style.width) return;\n let zoom = isWxml ? 1 : this.zoom;\n let width = style.width || textWidth;\n let height = style.height || textHeight;\n let rectStyle = {\n fill: style.background,\n border: style.border\n }\n style.padding = style.padding || [0, 0, 0, 0];\n width += (style.padding[1] || 0) + (style.padding[3] || 0);\n height += (style.padding[0] || 0) + (style.padding[2] || 0);\n width = width * zoom\n height = height * zoom\n this._drawRectToCanvas(item.x, item.y, width, height, rectStyle);\n }\n\n _drawCircle (item, style, resolve, reject, isImage, isWxml) {\n let zoom = this.zoom;\n let r = style.r;\n try {\n \n item.x = this._resetPositionX(item, style);\n item.y = this._resetPositionY(item, style);\n\n let url;\n if(isImage) {\n let index = this._findPicIndex(item.url);\n if (index > -1) {\n url = this.allPic[index].local;\n } else {\n url = item.url;\n }\n }\n\n if(!isWxml) {\n r = r * zoom;\n }\n\n this._drawCircleToCanvas(item.x, item.y, r, style, url);\n \n this._updateProgress(item.progress);\n resolve && resolve();\n } catch (e) {\n reject && reject({ errcode: (isImage ? 1006 : 1005), errmsg: (isImage ? 'drawCircleImage error' : 'drawCircle error'), e });\n }\n }\n\n _drawCircleToCanvas (x, y, r, style, url) {\n let { fill, border, boxShadow } = style;\n\n this.ctx.save();\n\n this._drawBoxShadow(boxShadow, (res) => {\n // 真机上填充渐变色时,没有阴影,先画个相等大小的纯色矩形来实现阴影\n if((fill && typeof fill !== 'string') || (url && res.color)) {\n this.ctx.setFillStyle(res.color || '#ffffff');\n this.ctx.beginPath();\n this.ctx.arc(x + r, y + r, r, 0, 2 * Math.PI);\n this.ctx.closePath();\n this.ctx.fill();\n }\n });\n\n if(url) {\n this.ctx.save();\n this.ctx.beginPath();\n this.ctx.arc(x + r, y + r, r, 0, 2 * Math.PI);\n this.ctx.clip();\n this.ctx.drawImage(url, x, y, r * 2, r * 2);\n this.ctx.closePath();\n this.ctx.restore();\n }else {\n this._setFill(fill, () => {\n this.ctx.beginPath();\n this.ctx.arc(x + r, y + r, r, 0, 2 * Math.PI);\n this.ctx.closePath();\n this.ctx.fill();\n });\n }\n\n this._drawBorder(border, style, (border) => {\n this.ctx.beginPath()\n this.ctx.arc(x + r, y + r, r + border.width / 2, 0, 2 * Math.PI)\n this.ctx.stroke()\n this.ctx.closePath();\n });\n\n this.ctx.draw(true);\n this.ctx.restore();\n }\n\n _drawLine (item, style, resolve, reject, isWxml) {\n let zoom = this.zoom;\n try {\n let x1 = item.x * zoom + this.translateX;\n let y1 = item.y * zoom + this.translateY;\n let x2 = item.x2 * zoom + this.translateX;\n let y2 = item.y2 * zoom + this.translateY;\n this._drawLineToCanvas(x1, y1, x2, y2, style);\n\n this._updateProgress(item.progress);\n resolve && resolve();\n } catch (e) {\n reject && reject({ errcode: 1007, errmsg: 'drawLine error', e });\n }\n }\n\n _drawLineToCanvas (x1, y1, x2, y2, style) {\n let { stroke, dash, boxShadow } = style;\n\n this.ctx.save();\n if(stroke) {\n this._setStroke(stroke);\n }\n\n this._drawBoxShadow(boxShadow);\n\n if(dash) {\n let dash = [style.dash[0] || 5, style.dash[1] || 5];\n let offset = style.dash[2] || 0;\n this.ctx.setLineDash(dash, offset || 0);\n }\n\n this.ctx.moveTo(x1, y1);\n this.ctx.setLineWidth((style.width || 1) * this.zoom);\n this.ctx.lineTo(x2, y2);\n this.ctx.stroke();\n this.ctx.draw(true);\n this.ctx.restore();\n }\n\n // 废弃,合并到_drawRect\n _drawImage (item, style, resolve, reject, isWxml) {\n let zoom = this.zoom;\n try {\n \n item.x = this._resetPositionX(item, style);\n item.y = this._resetPositionY(item, style);\n item.x = item.x + (style.padding[3] || 0);\n item.y = item.y + (style.padding[0] || 0);\n\n let index = this._findPicIndex(item.url);\n let url = index > -1 ? this.allPic[index].local : item.url;\n this._drawImageToCanvas(url, item.x, item.y, style.width * zoom, style.height * zoom, style);\n\n this._updateProgress(item.progress);\n resolve && resolve();\n } catch (e) {\n reject && reject({ errcode: 1012, errmsg: 'drawRect error', e });\n }\n }\n\n // 废弃,合并到_drawRect\n _drawImageToCanvas (url, x, y, width, height, style) {\n let { fill, border, boxShadow } = style;\n this.ctx.save();\n\n this._drawBoxShadow(boxShadow);\n this.ctx.drawImage(url, x, y, width, height);\n\n this._drawBorder(border, style, (border) => {\n let fixBorder = border.width;\n this.ctx.strokeRect(x - fixBorder / 2, y - fixBorder / 2, width + fixBorder, height + fixBorder);\n });\n this.ctx.draw(true);\n this.ctx.restore();\n }\n\n _drawWxml (item, style, resolve, reject) {\n let self = this;\n let all = [];\n try {\n this._getWxml(item, style).then((results) => {\n \n // 上 -> 下\n let sorted = self._sortListByTop(results[0]);\n let count = 0;\n let progress = 0;\n Object.keys(sorted).forEach(item => {\n count += sorted[item].length;\n })\n progress = this.distance * 3 / (count || 1);\n\n all = this._drawWxmlBlock(item, sorted, all, progress, results[1]);\n all = this._drawWxmlInline(item, sorted, all, progress, results[1]);\n\n Promise.all(all).then(results => {\n resolve && resolve();\n }).catch (e => {\n reject && reject(e);\n });\n });\n } catch (e) {\n reject && reject({ errcode: 1008, errmsg: 'drawWxml error' });\n }\n }\n\n _drawWxmlBlock (item, sorted, all, progress, results) {\n let self = this;\n // 用来限定位置范围,取相对位置\n let limitLeft = (results ? results.left : 0);\n let limitTop = (results ? results.top : 0);\n Object.keys(sorted).forEach((top, topIndex) => {\n // 左 -> 右\n let list = sorted[top].sort((a, b) => {\n return (a.left - b.left);\n });\n\n list = list.filter(sub => sub.dataset.type && sub.dataset.type.indexOf('inline') === -1);\n\n list.forEach((sub, index) => {\n all[index] = new Promise((resolve2, reject2) => {\n sub = self._transferWxmlStyle(sub, item, limitLeft, limitTop);\n sub.progress = progress;\n let type = sub.dataset.type;\n if(sub.dataset.delay) {\n setTimeout(() => {\n drawWxmlItem();\n }, sub.dataset.delay)\n } else {\n drawWxmlItem();\n }\n function drawWxmlItem () {\n if (type === 'text') {\n self._drawWxmlText(sub, resolve2, reject2);\n } else if (type === 'image') {\n self._drawWxmlImage(sub, resolve2, reject2);\n } else if (type === 'radius-image') {\n self._drawWxmlCircleImage(sub, resolve2, reject2);\n } else if (type === 'background-image') {\n self._drawWxmlBackgroundImage(sub, resolve2, reject2);\n }\n }\n });\n });\n });\n\n return all;\n\n }\n\n _drawWxmlInline (item, sorted, all, progress, results) {\n let self = this;\n let topOffset = 0;\n let leftOffset = 0;\n let lastTop = 0;\n let limitLeft = (results ? results.left : 0);\n let limitTop = (results ? results.top : 0);\n let p = new Promise((resolve2, reject2) => {\n let maxWidth = 0;\n let minLeft = Infinity;\n let maxRight = 0;\n\n // 找出同一top下的最小left和最大right,得到最大的宽度,用于换行\n Object.keys(sorted).forEach(top => {\n let inlineList = sorted[top].filter(sub => sub.dataset.type && sub.dataset.type.indexOf('inline') > -1);\n inlineList.forEach(sub => {\n if(sub.left < minLeft) {\n minLeft = sub.left\n }\n if(sub.right > maxRight) {\n maxRight = sub.right;\n }\n })\n });\n maxWidth = Math.ceil((maxRight - minLeft) || self.width);\n\n Object.keys(sorted).forEach((top, topIndex) => {\n // 左 -> 右\n let list = sorted[top].sort((a, b) => {\n return (a.left - b.left);\n });\n\n // 换行的行内元素left放到后面,version2.0.6后无法获取高度,改用bottom值来判断是否换行了\n let position = -1;\n for(let i = 0, len = list.length; i < len; i++) {\n if(list[i] && list[i + 1]) {\n if(list[i].bottom > list[i + 1].bottom) {\n position = i;\n break;\n }\n }\n }\n\n if(position > -1) {\n list.push(list.splice(position, 1)[0]);\n }\n\n let inlineList = list.filter(sub => sub.dataset.type && sub.dataset.type.indexOf('inline') > -1);\n let originLeft = (inlineList[0] ? inlineList[0].left : 0);\n // 换行后和top不相等时,认为是换行了,要清除左边距;当左偏移量大于最大宽度时,也要清除左边距; 当左偏移小于左边距时,也要清除\n if (Math.abs(topOffset + lastTop - top) > 2 || leftOffset - originLeft - limitLeft >= maxWidth || leftOffset <= originLeft - limitLeft - 2) {\n leftOffset = 0;\n }\n\n lastTop = +top;\n topOffset = 0;\n \n inlineList.forEach((sub, index) => {\n sub = self._transferWxmlStyle(sub, item, limitLeft, limitTop);\n sub.progress = progress;\n let type = sub.dataset.type;\n if (type === 'inline-text') {\n let drawRes = self._drawWxmlInlineText(sub, leftOffset, maxWidth);\n leftOffset = drawRes.leftOffset;\n topOffset = drawRes.topOffset;\n } else if (type === 'inline-image') {\n let drawRes = self._drawWxmlImage(sub) || {};\n leftOffset = drawRes.leftOffset || 0;\n topOffset = drawRes.topOffset || 0;\n }\n });\n });\n resolve2();\n })\n\n all.push(p); \n return all;\n }\n\n _drawWxmlInlineText (sub, leftOffset = 0, maxWidth) {\n let text = sub.dataset.text || '';\n if(sub.dataset.maxlength && text.length > sub.dataset.maxlength) {\n text = text.substring(0, sub.dataset.maxlength) + '...';\n }\n \n let textData = {\n text,\n originX: sub.left,\n x: leftOffset ? leftOffset : sub.left,\n y: sub.top,\n progress: sub.progress,\n leftOffset: leftOffset,\n maxWidth: maxWidth // 行内元素的最大宽度,取决于limit的宽度\n }\n\n if (sub.backgroundColor !== 'rgba(0, 0, 0, 0)') {\n sub.background = sub.backgroundColor;\n }else {\n sub.background = 'rgba(0, 0, 0, 0)';\n }\n\n if(sub.dataset.background) {\n sub.background = sub.dataset.background;\n }\n\n let res = this._drawText(textData, sub, null, null, 'inline-text', 'wxml');\n\n return res\n }\n\n _drawWxmlText (sub, resolve, reject) {\n let text = sub.dataset.text || '';\n if(sub.dataset.maxlength && text.length > sub.dataset.maxlength) {\n text = text.substring(0, sub.dataset.maxlength) + '...';\n }\n \n let textData = {\n text,\n x: sub.left,\n y: sub.top,\n progress: sub.progress\n }\n if (sub.backgroundColor !== 'rgba(0, 0, 0, 0)') {\n sub.background = sub.backgroundColor;\n }else {\n sub.background = 'rgba(0, 0, 0, 0)';\n }\n\n if(sub.dataset.background) {\n sub.background = sub.dataset.background;\n }\n\n this._drawText(textData, sub, resolve, reject, 'text', 'wxml');\n }\n\n _drawWxmlImage (sub, resolve, reject) {\n let imageData = {\n url: sub.dataset.url,\n x: sub.left,\n y: sub.top,\n progress: sub.progress\n }\n\n let res = this._drawRect(imageData, sub, resolve, reject, 'image', 'inline-wxml');\n\n return res\n }\n\n _drawWxmlCircleImage (sub, resolve, reject) {\n let imageData = {\n url: sub.dataset.url,\n x: sub.left,\n y: sub.top,\n progress: sub.progress\n }\n sub.r = sub.width / 2;\n\n this._drawCircle(imageData, sub, resolve, reject, true, 'wxml');\n }\n\n _drawWxmlBackgroundImage (sub, resolve, reject) {\n let url = sub.dataset.url;\n let index = this._findPicIndex(url);\n url = index > -1 ? this.allPic[index].local : url;\n let size = sub.backgroundSize.replace(/px/g, '').split(' ');\n\n let imageData = {\n url: url,\n x: sub.left,\n y: sub.top,\n progress: sub.progress\n }\n\n this._drawRect(imageData, sub, resolve, reject, 'image', 'wxml');\n }\n\n _getWxml (item, style) {\n let self = this;\n let query;\n if(this.obj) {\n query = wx.createSelectorQuery().in(this.obj);\n }else {\n query = wx.createSelectorQuery();\n }\n\n let p1 = new Promise((resolve, reject) => {\n // 会触发两次,要限制\n let count = 0;\n query.selectAll(`${item.class}`).fields({\n dataset: true,\n size: true,\n rect: true,\n computedStyle: ['width', 'height', 'font', 'fontSize', 'fontFamily', 'fontWeight', 'fontStyle', 'textAlign', \n 'color', 'lineHeight', 'border', 'borderColor', 'borderStyle', 'borderWidth', 'verticalAlign', 'boxShadow',\n 'background', 'backgroundColor', 'backgroundImage', 'backgroundPosition', 'backgroundSize', 'paddingLeft', 'paddingTop',\n 'paddingRight', 'paddingBottom'\n ]\n }, (res) => {\n if(count++ === 0) {\n let formated = self._formatImage(res);\n let list = formated.list;\n res = formated.res;\n\n self._preloadImage(list).then(result => {\n resolve(res);\n }).catch((res) => {\n reject && reject({ errcode: 1009, errmsg: 'drawWxml preLoadImage error' });\n });\n }\n }).exec();\n });\n\n let p2 = new Promise((resolve, reject) => {\n if (!item.limit) {\n resolve({ top: 0, width: self.width / self.zoom });\n }\n\n query.select(`${item.limit}`).fields({\n dataset: true,\n size: true,\n rect: true,\n }, (res) => {\n resolve(res);\n }).exec();\n });\n\n return Promise.all([p1, p2]);\n }\n\n _getLineHeight (style) {\n let zoom = this.zoom;\n if(style.dataset && style.dataset.type) {\n zoom = 1;\n }\n let lineHeight;\n if(!isNaN(style.lineHeight) && style.lineHeight > style.fontSize) {\n lineHeight = style.lineHeight;\n }else {\n style.lineHeight = (style.lineHeight || '') + '';\n lineHeight = +style.lineHeight.replace('px', '');\n lineHeight = lineHeight ? lineHeight : (style.fontSize || 14) * 1.2;\n }\n return lineHeight * zoom;\n }\n\n _formatImage (res = []) {\n let list = [];\n res.forEach((item, index) => {\n let dataset = item.dataset;\n let uid = Util.getUid();\n let filename = `${wx.env.USER_DATA_PATH}/${uid}.png`;\n if ((dataset.type === \"image\" || dataset.type === \"radius-image\") && dataset.url) {\n let sub = {\n url: dataset.base64 ? filename : dataset.url,\n isBase64: dataset.base64 ? dataset.url : false\n }\n\n res[index].dataset = Object.assign(res[index].dataset, sub);\n list.push(sub)\n } else if (dataset.type === 'background-image' && item.backgroundImage.indexOf('url') > -1) {\n let url = item.backgroundImage.replace(/url\\((\\\"|\\')?/, '').replace(/(\\\"|\\')?\\)$/, '');\n let sub = {\n url: dataset.base64 ? filename : url,\n isBase64: dataset.base64 ? url : false\n }\n res[index].dataset = Object.assign(res[index].dataset, sub);\n list.push(sub)\n }\n });\n\n return { list, res };\n }\n\n _updateProgress (distance) {\n this.progressPercent += distance;\n this.progress(this.progressPercent);\n }\n\n _sortListByTop (list = []) {\n let sorted = {};\n\n // 粗略地认为2px相差的元素在同一行\n list.forEach((item, index) => {\n let top = item.top;\n if (!sorted[top]) {\n if (sorted[top - 2]) {\n top = top - 2;\n }else if (sorted[top - 1]) {\n top = top - 1;\n } else if (sorted[top + 1]) {\n top = top + 1;\n } else if (sorted[top + 2]) {\n top = top + 2;\n } else {\n sorted[top] = [];\n }\n }\n sorted[top].push(item);\n });\n\n return sorted;\n }\n\n _parseNumber (number) {\n return isNaN(number) ? +(number || '').replace('px', '') : number;\n }\n\n _transferWxmlStyle (sub, item, limitLeft, limitTop) {\n let leftFix = (+sub.dataset.left || 0);\n let topFix = (+sub.dataset.top || 0);\n\n sub.width = this._parseNumber(sub.width);\n sub.height = this._parseNumber(sub.height);\n sub.left = this._parseNumber(sub.left) - limitLeft + (leftFix + (item.x || 0)) * this.zoom;\n sub.top = this._parseNumber(sub.top) - limitTop + (topFix + (item.y || 0)) * this.zoom;\n\n let padding = sub.dataset.padding || '0 0 0 0';\n if (typeof padding === 'string') {\n padding = Util.transferPadding(padding);\n }\n let paddingTop = Number(sub.paddingTop.replace('px', '')) + Number(padding[0]);\n let paddingRight = Number(sub.paddingRight.replace('px', '')) + Number(padding[1]);\n let paddingBottom = Number(sub.paddingBottom.replace('px', '')) + Number(padding[2]);\n let paddingLeft = Number(sub.paddingLeft.replace('px', '')) + Number(padding[3]);\n sub.padding = [paddingTop, paddingRight, paddingBottom, paddingLeft];\n \n return sub;\n }\n\n /**\n * 支持负值绘制,从右边计算\n * @param {*} item \n * @param {*} style \n */\n _resetPositionX (item, style) {\n let zoom = this.zoom;\n let x = 0;\n\n if(style.dataset && style.dataset.type) {\n zoom = 1;\n }\n\n // 通过wxml获取的不需要重置坐标\n if (item.x < 0 && item.type) {\n x = this.width + item.x * zoom - style.width * zoom;\n } else {\n x = item.x * zoom;\n }\n\n if (parseInt(style.borderWidth)) {\n x += parseInt(style.borderWidth)\n }\n\n return x + this.translateX;\n }\n\n /**\n * 支持负值绘制,从底部计算\n * @param {*} item \n * @param {*} style \n */\n _resetPositionY (item, style, textHeight) {\n let zoom = this.zoom;\n let y = 0;\n\n if(style.dataset && style.dataset.type) {\n zoom = 1;\n }\n\n if (item.y < 0) {\n y = this.height + item.y * zoom - (textHeight ? textHeight : style.height * zoom)\n } else {\n y = item.y * zoom;\n }\n\n if (parseInt(style.borderWidth)) {\n y += parseInt(style.borderWidth)\n }\n \n return y + this.translateY;\n }\n\n /**\n * 文字的padding、text-align\n * @param {*} item \n * @param {*} style \n * @param {*} textWidth\n */\n _resetTextPositionX (item, style, textWidth, width) {\n let textAlign = style.textAlign || 'left';\n let x = item.x;\n if (textAlign === 'center') {\n x = (width - textWidth) / 2 + item.x;\n } else if (textAlign === 'right') {\n x = width - textWidth + item.x;\n }\n\n let left = style.padding ? (style.padding[3] || 0) : 0;\n\n return x + left + this.translateX;\n }\n\n /**\n * 文字的padding、text-align\n * @param {*} item \n * @param {*} style \n * @param {*} textWidth\n */\n _resetTextPositionY (item, style, lineNum = 0) {\n let zoom = this.zoom;\n if(style.dataset && style.dataset.type) {\n zoom = 1;\n }\n\n let lineHeight = this._getLineHeight(style);\n let fontSize = Math.ceil((style.fontSize || 14) * zoom)\n\n let blockLineHeightFix = (style.dataset && style.dataset.type || '').indexOf('inline') > -1 ? 0 : (lineHeight - fontSize) / 2\n\n let top = style.padding ? (style.padding[0] || 0) : 0;\n\n // y + lineheight偏移 + 行数 + paddingTop + 整体画布位移\n return item.y + blockLineHeightFix + lineNum * lineHeight + top + this.translateY;\n }\n\n /**\n * 当文本超过宽度时,计算每一行应该绘制的文本\n * @param {*} text \n * @param {*} width \n * @param {*} singleLength \n * @param {*} currentIndex \n * @param {*} widthOffset\n */\n _getTextSingleLine(text, width, singleLength, currentIndex = 0, widthOffset = 0) {\n let offset = 0;\n let endIndex = currentIndex + singleLength + offset;\n let single = text.substring(currentIndex, endIndex);\n let singleWidth = this.measureWidth(single);\n\n while (Math.round(widthOffset + singleWidth) > width) {\n offset--;\n endIndex = currentIndex + singleLength + offset;\n single = text.substring(currentIndex, endIndex);\n singleWidth = this.measureWidth(single);\n }\n\n return {\n endIndex, \n single, \n singleWidth\n }\n }\n\n _drawBorder (border, style, callback) {\n let zoom = this.zoom;\n if(style.dataset && style.dataset.type) {\n zoom = 1;\n }\n border = Util.transferBorder(border);\n\n if (border && border.width) {\n // 空白阴影,清空掉边框的阴影\n this._drawBoxShadow();\n if (border) {\n \n this.ctx.setLineWidth(border.width * zoom);\n\n if (border.style === 'dashed') {\n let dash = style.dash || [5, 5, 0];\n let offset = dash[2] || 0;\n let array = [dash[0] || 5, dash[1] || 5];\n this.ctx.setLineDash(array, offset);\n }\n this.ctx.setStrokeStyle(border.color);\n }\n callback && callback(border);\n }\n } \n\n _drawBoxShadow (boxShadow, callback) {\n boxShadow = Util.transferBoxShadow(boxShadow);\n if (boxShadow) {\n this.ctx.setShadow(boxShadow.offsetX, boxShadow.offsetY, boxShadow.blur, boxShadow.color);\n }else {\n this.ctx.setShadow(0, 0, 0, '#ffffff');\n }\n\n callback && callback(boxShadow || {});\n }\n\n _setFill (fill, callback) {\n if(fill) {\n if (typeof fill === 'string') {\n this.ctx.setFillStyle(fill);\n } else {\n let line = fill.line;\n let color = fill.color;\n let grd = this.ctx.createLinearGradient(line[0], line[1], line[2], line[3]);\n grd.addColorStop(0, color[0]);\n grd.addColorStop(1, color[1]);\n this.ctx.setFillStyle(grd);\n }\n callback && callback();\n }\n }\n\n _setStroke (stroke, callback) {\n if(stroke) {\n if (typeof stroke === 'string') {\n this.ctx.setStrokeStyle(stroke);\n } else {\n let line = stroke.line;\n let color = stroke.color;\n let grd = this.ctx.createLinearGradient(line[0], line[1], line[2], line[3]);\n grd.addColorStop(0, color[0]);\n grd.addColorStop(1, color[1]);\n this.ctx.setStrokeStyle(grd);\n }\n\n callback && callback();\n }\n }\n}\n\nif (!exports.__esModule) Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = Wxml2Canvas;","/**\n * 获取字符的长度,full为true时,一个汉字算两个长度\n * @param {String} str \n * @param {Boolean} full \n */\n\nfunction getTextLength (str, full) {\n let len = 0;\n for (let i = 0; i < str.length; i++) {\n let c = str.charCodeAt(i);\n //单字节加1 \n if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {\n len++;\n }\n else {\n len += (full ? 2 : 1);\n }\n }\n return len;\n}\n\n/**\n * rgba(255, 255, 255, 1) => #ffffff\n * @param {String} color \n */\nfunction transferColor (color = '') {\n let res = '#';\n color = color.replace(/^rgba?\\(/, '').replace(/\\)$/, '');\n color = color.split(', ');\n \n color.length > 3 ? color.length = 3 : '';\n for(let item of color) {\n item = parseInt(item || 0);\n if(item < 10) {\n res += ('0' + item)\n }else {\n res += (item.toString(16))\n }\n }\n\n return res;\n}\n\nfunction transferBorder (border = '') {\n let res = border.match(/(\\w+)px\\s(\\w+)\\s(.*)/);\n let obj = {};\n\n if(res) {\n obj = {\n width: +res[1],\n style: res[2],\n color: res[3]\n }\n }\n \n return res ? obj : null;\n}\n\n\n/**\n * 内边距,依次为上右下左\n * @param {*} padding \n */\nfunction transferPadding (padding = '0 0 0 0') {\n padding = padding.split(' ');\n for(let i = 0, len = padding.length; i < len; i++) {\n padding[i] = +padding[i].replace('px', '');\n }\n\n return padding;\n}\n/**\n * type1: 0, 25, 17, rgba(0, 0, 0, 0.3)\n * type2: rgba(0, 0, 0, 0.3) 0px 25px 17px 0px => (0, 25, 17, rgba(0, 0, 0, 0.3))\n * @param {*} shadow \n */\nfunction transferBoxShadow(shadow = '', type) {\n if(!shadow || shadow === 'none') return;\n let color;\n let split;\n\n split = shadow.match(/(\\w+)\\s(\\w+)\\s(\\w+)\\s(rgb.*)/);\n\n if (split) {\n split.shift();\n shadow = split;\n color = split[3] || '#ffffff';\n } else {\n split = shadow.split(') ');\n color = split[0] + ')'\n shadow = split[1].split('px ');\n }\n\n return {\n offsetX: +shadow[0] || 0,\n offsetY: +shadow[1] || 0,\n blur: +shadow[2] || 0,\n color\n }\n}\n\nfunction getUid(prefix) {\n prefix = prefix || '';\n\n return (\n prefix +\n 'xxyxxyxx'.replace(/[xy]/g, c => {\n let r = (Math.random() * 16) | 0;\n let v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n })\n );\n}\n\nif (!exports.__esModule) Object.defineProperty(exports, \"__esModule\", { value: true });exports.default = {\n getTextLength,\n transferBorder,\n transferColor,\n transferPadding,\n transferBoxShadow,\n getUid\n};"]} diff --git a/src/components/ec-canvas/ec-canvas.js b/src/components/ec-canvas/ec-canvas.js new file mode 100644 index 0000000..085c902 --- /dev/null +++ b/src/components/ec-canvas/ec-canvas.js @@ -0,0 +1,269 @@ +import WxCanvas from './wx-canvas' +const echarts = require('./echarts.js') + +let ctx + +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]) + const num2 = parseInt(v2[i]) + + if (num1 > num2) { + return 1 + } else if (num1 < num2) { + return -1 + } + } + return 0 +} + +Component({ + properties: { + canvasId: { + type: String, + value: 'ec-canvas', + }, + + ec: { + type: Object, + }, + + forceUseOldCanvas: { + type: Boolean, + value: false, + }, + }, + + data: { + isUseNewCanvas: false, + }, + + ready: async function () { + // Disable prograssive because drawImage doesn't support DOM as parameter + // See https://developers.weixin.qq.com/miniprogram/dev/api/canvas/CanvasContext.drawImage.html + 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 + } + } + }) + + if (!this.data.ec) { + console.warn( + '组件需绑定 ec 变量,例:', + ) + return + } + + if (!this.data.ec.lazyLoad) { + this.init() + } + }, + + methods: { + init: async function (callback) { + const version = wx.getSystemInfoSync().SDKVersion + + const canUseNewCanvas = compareVersion(version, '2.9.0') >= 0 + const forceUseOldCanvas = this.data.forceUseOldCanvas + const isUseNewCanvas = canUseNewCanvas && !forceUseOldCanvas + this.setData({ isUseNewCanvas }) + + if (forceUseOldCanvas && canUseNewCanvas) { + console.warn('开发者强制使用旧canvas,建议关闭') + } + + if (isUseNewCanvas) { + // console.log('微信基础库版本大于2.9.0,开始使用'); + // 2.9.0 可以使用 + this.initByNewWay(callback) + } else { + const isValid = compareVersion(version, '1.9.91') >= 0 + if (!isValid) { + console.error( + '微信基础库版本过低,需大于等于 1.9.91。' + + '参见:https://github.com/ecomfe/echarts-for-weixin' + + '#%E5%BE%AE%E4%BF%A1%E7%89%88%E6%9C%AC%E8%A6%81%E6%B1%82', + ) + return + } else { + console.warn('建议将微信基础库调整大于等于2.9.0版本。升级后绘图将有更好性能') + this.initByOldWay(callback) + } + } + }, + + initByOldWay(callback) { + // 1.9.91 <= version < 2.9.0:原来的方式初始化 + ctx = wx.createCanvasContext(this.data.canvasId, this) + const canvas = new WxCanvas(ctx, this.data.canvasId, false) + + echarts.setCanvasCreator(() => { + return canvas + }) + // const canvasDpr = wx.getSystemInfoSync().pixelRatio // 微信旧的canvas不能传入dpr + const canvasDpr = 1 + var query = wx.createSelectorQuery().in(this) + query + .select('.ec-canvas') + .boundingClientRect((res) => { + if (typeof callback === 'function') { + this.chart = callback(canvas, res.width, res.height, canvasDpr) + } else if (this.data.ec && typeof this.data.ec.onInit === 'function') { + this.chart = this.data.ec.onInit(canvas, res.width, res.height, canvasDpr) + } else { + this.triggerEvent('init', { + canvas: canvas, + width: res.width, + height: res.height, + canvasDpr: canvasDpr, // 增加了dpr,可方便外面echarts.init + }) + } + }) + .exec() + }, + + initByNewWay(callback) { + // version >= 2.9.0:使用新的方式初始化 + const query = wx.createSelectorQuery().in(this) + query + .select('.ec-canvas') + .fields({ node: true, size: true }) + .exec((res) => { + const canvasNode = res[0].node + this.canvasNode = canvasNode + + const canvasDpr = wx.getSystemInfoSync().pixelRatio + const canvasWidth = res[0].width + const canvasHeight = res[0].height + + const ctx = canvasNode.getContext('2d') + + const canvas = new WxCanvas(ctx, this.data.canvasId, true, canvasNode) + echarts.setCanvasCreator(() => { + return canvas + }) + + if (typeof callback === 'function') { + this.chart = callback(canvas, canvasWidth, canvasHeight, canvasDpr) + } else if (this.data.ec && typeof this.data.ec.onInit === 'function') { + this.chart = this.data.ec.onInit(canvas, canvasWidth, canvasHeight, canvasDpr) + } else { + this.triggerEvent('init', { + canvas: canvas, + width: canvasWidth, + height: canvasHeight, + dpr: canvasDpr, + }) + } + }) + }, + canvasToTempFilePath(opt) { + if (this.data.isUseNewCanvas) { + // 新版 + const query = wx.createSelectorQuery().in(this) + query + .select('.ec-canvas') + .fields({ node: true, size: true }) + .exec((res) => { + const canvasNode = res[0].node + opt.canvas = canvasNode + wx.canvasToTempFilePath(opt) + }) + } else { + // 旧的 + if (!opt.canvasId) { + opt.canvasId = this.data.canvasId + } + ctx.draw(true, () => { + wx.canvasToTempFilePath(opt, this) + }) + } + }, + + touchStart(e) { + if (this.chart && e.touches.length > 0) { + var touch = e.touches[0] + var handler = this.chart.getZr().handler + handler.dispatch('mousedown', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {}, + }) + handler.dispatch('mousemove', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {}, + }) + handler.processGesture(wrapTouch(e), 'start') + } + }, + + touchMove(e) { + if (this.chart && e.touches.length > 0) { + var touch = e.touches[0] + var handler = this.chart.getZr().handler + handler.dispatch('mousemove', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {}, + }) + handler.processGesture(wrapTouch(e), 'change') + } + }, + + touchEnd(e) { + if (this.chart) { + const touch = e.changedTouches ? e.changedTouches[0] : {} + var handler = this.chart.getZr().handler + handler.dispatch('mouseup', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {}, + }) + handler.dispatch('click', { + zrX: touch.x, + zrY: touch.y, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {}, + }) + handler.processGesture(wrapTouch(e), 'end') + } + }, + }, +}) + +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 +} diff --git a/src/components/ec-canvas/ec-canvas.json b/src/components/ec-canvas/ec-canvas.json new file mode 100644 index 0000000..e8cfaaf --- /dev/null +++ b/src/components/ec-canvas/ec-canvas.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} \ No newline at end of file diff --git a/src/components/ec-canvas/ec-canvas.wxml b/src/components/ec-canvas/ec-canvas.wxml new file mode 100644 index 0000000..88826d9 --- /dev/null +++ b/src/components/ec-canvas/ec-canvas.wxml @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/ec-canvas/ec-canvas.wxss b/src/components/ec-canvas/ec-canvas.wxss new file mode 100644 index 0000000..5307021 --- /dev/null +++ b/src/components/ec-canvas/ec-canvas.wxss @@ -0,0 +1,5 @@ +.ec-canvas { + width: 100%; + height: 100%; + z-index: 1; +} diff --git a/src/components/ec-canvas/echarts.js b/src/components/ec-canvas/echarts.js new file mode 100644 index 0000000..69cc654 --- /dev/null +++ b/src/components/ec-canvas/echarts.js @@ -0,0 +1,25 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).echarts={})}(this,(function(t){"use strict"; +/*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */var e=function(t,n){return(e=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,n)};function n(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},r=new function(){this.browser=new i,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};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(r.wxa=!0,r.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?r.worker=!0:"undefined"==typeof navigator?(r.node=!0,r.svgSupported=!0):function(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}(navigator.userAgent,r);var s,l,a="12px sans-serif",u=function(t){var e={};if("undefined"==typeof JSON)return e;for(var n=0;n<95;n++){var i=String.fromCharCode(n+32),r=(t.charCodeAt(n)-20)/100;e[i]=r}return e}("007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N"),h={createCanvas:function(){return"undefined"!=typeof document&&document.createElement("canvas")},measureText:function(t,e){if(!s){var n=h.createCanvas();s=n&&n.getContext("2d")}if(s)return l!==e&&(l=s.font=e||a),s.measureText(t);t=t||"";var i=/^([0-9]*?)px$/.exec(e=e||a),r=+(i&&i[1])||12,o=0;if(e.indexOf("mono")>=0)o=r*t.length;else for(var c=0;c>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,a),a,o);if(s)return s(t,n,i),!0}return!1}function Jt(t){return"CANVAS"===t.nodeName.toUpperCase()}var Qt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,te=[],ee=r.browser.firefox&&+r.browser.version.split(".")[0]<39;function ne(t,e,n,i){return n=n||{},i?ie(t,e,n):ee&&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):ie(t,e,n),n}function ie(t,e,n){if(r.domSupported&&t.getBoundingClientRect){var i=e.clientX,o=e.clientY;if(Jt(t)){var a=t.getBoundingClientRect();return n.zrX=i-a.left,void(n.zrY=o-a.top)}if($t(te,t,i,o))return n.zrX=te[0],void(n.zrY=te[1])}n.zrX=n.zrY=0}function re(t){return t||window.event}function oe(t,e,n){if(null!=(e=re(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&ne(t,r,e,n)}else{ne(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;return null==n||null==i?e:3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&Qt.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function ae(t,e,n,i){t.addEventListener(e,n,i)}var se=function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0};function le(t){return 2===t.which||3===t.which}var ue=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;o1&&r&&r.length>1){var a=he(r)/he(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}};function de(){se(this.event)}var fe=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return n(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Xt),ge=function(t,e){this.x=t,this.y=e},ye=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],ve=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o._hovered=new ge(0,0),o.storage=e,o.painter=n,o.painterRoot=r,i=i||new fe,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new Ut(o),o}return n(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(E(ye,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=xe(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new ge(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)},e.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})},e.prototype.resize=function(){this._hovered=new ge(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(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:de}}(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)})))}},e.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new ge(t,e),o=i.length-1;o>=0;o--){var a=void 0;if(i[o]!==n&&!i[o].ignore&&(a=me(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),"silent"!==a)){r.target=i[o];break}}return r},e.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new ue);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 ge;o.target=i.target,this.dispatchToElement(o,r,i.event)}},e}(Xt);function me(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)}i=i.__hostTarget||i.parent}return!r||"silent"}return!1}function xe(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}function _e(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r=0;)r++;return r-e}function be(t,e,n,i,r){for(i===e&&i++;i>>1])<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 we(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;ls&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function Se(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;ls&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function Ie(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var o=0;if(r<32)be(t,n,i,n+(o=_e(t,n,i,e)),e);else{var a=function(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=Se(t[h],t,l,u,0,e);l+=p,0!=(u-=p)&&0!==(c=we(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l=7||d>=7);if(f)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l=0;l--)t[d+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!=(y=s-we(t[u],a,0,s,s-1,e))){for(s-=y,d=1+(c-=y),p=1+(h-=y),l=0;l=7||y>=7);if(v)break;f<0&&(f=0),f+=2}if((r=f)<1&&(r=1),1===s){for(d=1+(c-=i),p=1+(u-=i),l=i-1;l>=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else for(p=c-(s-1),l=0;l1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=_e(t,n,i,e))s&&(l=s),be(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}E(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){ve.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=xe(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).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||Et(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var Te=!1;function Ce(){Te||(Te=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function De(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var Ae=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=De}return t.prototype.traverse=function(t,e){for(var n=0;n0&&(u.__clipPaths=[]),isNaN(u.z)&&(Ce(),u.z=0),isNaN(u.z2)&&(Ce(),u.z2=0),isNaN(u.zlevel)&&(Ce(),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;e=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}(),ke=r.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},Le={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*(2-Math.pow(2,-10*(t-1)))},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;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*.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?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Le.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*Le.bounceIn(2*t):.5*Le.bounceOut(2*t-1)+.5}},Pe=Math.pow,Oe=Math.sqrt,Re=1e-8,Ne=1e-4,Ee=Oe(3),ze=1/3,Ve=wt(),Be=wt(),Fe=wt();function Ge(t){return t>-1e-8&&tRe||t<-1e-8}function He(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 Ye(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function Ue(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(Ge(h)&&Ge(c))Ge(s)?o[0]=0:(M=-l/s)>=0&&M<=1&&(o[d++]=M);else{var f=c*c-4*h*p;if(Ge(f)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y)}else if(f>0){var v=Oe(f),m=h*s+1.5*a*(-c+v),x=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-Pe(-m,ze):Pe(m,ze))+(x=x<0?-Pe(-x,ze):Pe(x,ze))))/(3*a))>=0&&M<=1&&(o[d++]=M)}else{var _=(2*h*s-3*a*c)/(2*Oe(h*h*h)),b=Math.acos(_)/3,w=Oe(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),I=(y=(-s+w*(S+Ee*Math.sin(b)))/(3*a),(-s+w*(S-Ee*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y),I>=0&&I<=1&&(o[d++]=I)}}return d}function Xe(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(Ge(a))We(o)&&(h=-s/o)>=0&&h<=1&&(r[l++]=h);else{var u=o*o-4*a*s;if(Ge(u))r[0]=-o/(2*a);else if(u>0){var h,c=Oe(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function Ze(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 je(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;Ve[0]=l,Ve[1]=u;for(var m=0;m<1;m+=.05)Be[0]=He(t,n,r,a,m),Be[1]=He(e,i,o,s,m),(f=Vt(Ve,Be))=0&&f=0&&y=1?1:Ue(0,i,o,1,t,s)&&He(0,r,a,1,s[0])}}}var on=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||xt,this.ondestroy=t.ondestroy||xt,this.onrestart=t.onrestart||xt,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){var n=this._life,i=t-this._startTime-this._pausedTime,r=i/n;r<0&&(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}this._pausedTime+=e},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t.prototype.setEasing=function(t){this.easing=t,this.easingFunc=U(t)?t:Le[t]||rn(t)},t}(),an=function(t){this.value=t},sn=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new an(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}(),ln=function(){function t(t){this._list=new sn,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 an(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;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),un={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]};function hn(t){return(t=Math.round(t))<0?0:t>255?255:t}function cn(t){return t<0?0:t>1?1:t}function pn(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?hn(parseFloat(e)/100*255):hn(parseInt(e,10))}function dn(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?cn(parseFloat(e)/100):cn(parseFloat(e))}function fn(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function gn(t,e,n){return t+(e-t)*n}function yn(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function vn(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var mn=new ln(20),xn=null;function _n(t,e){xn&&vn(xn,e),xn=mn.put(t,xn||e.slice())}function bn(t,e){if(t){e=e||[];var n=mn.get(t);if(n)return vn(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in un)return vn(e,un[i]),_n(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(yn(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),_n(t,e),e):void yn(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(yn(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),_n(t,e),e):void yn(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?yn(e,+u[0],+u[1],+u[2],1):yn(e,0,0,0,1);h=dn(u.pop());case"rgb":return 3!==u.length?void yn(e,0,0,0,1):(yn(e,pn(u[0]),pn(u[1]),pn(u[2]),h),_n(t,e),e);case"hsla":return 4!==u.length?void yn(e,0,0,0,1):(u[3]=dn(u[3]),wn(u,e),_n(t,e),e);case"hsl":return 3!==u.length?void yn(e,0,0,0,1):(wn(u,e),_n(t,e),e);default:return}}yn(e,0,0,0,1)}}function wn(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=dn(t[1]),r=dn(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return yn(e=e||[],hn(255*fn(a,o,n+1/3)),hn(255*fn(a,o,n)),hn(255*fn(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Sn(t,e){var n=bn(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?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 kn(n,4===n.length?"rgba":"rgb")}}function Mn(t,e,n){if(e&&e.length&&t>=0&&t<=1){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]=hn(gn(a[0],s[0],l)),n[1]=hn(gn(a[1],s[1],l)),n[2]=hn(gn(a[2],s[2],l)),n[3]=cn(gn(a[3],s[3],l)),n}}var In=Mn;function Tn(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=bn(e[r]),s=bn(e[o]),l=i-r,u=kn([hn(gn(a[0],s[0],l)),hn(gn(a[1],s[1],l)),hn(gn(a[2],s[2],l)),cn(gn(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var Cn=Tn;function Dn(t,e,n,i){var r=bn(t);if(t)return r=function(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=u<.5?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),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}(r),null!=e&&(r[0]=function(t){return(t=Math.round(t))<0?0:t>360?360:t}(e)),null!=n&&(r[1]=dn(n)),null!=i&&(r[2]=dn(i)),kn(wn(r),"rgba")}function An(t,e){var n=bn(t);if(n&&null!=e)return n[3]=cn(e),kn(n,"rgba")}function kn(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 Ln(t,e){var n=bn(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var Pn=Object.freeze({__proto__:null,parse:bn,lift:Sn,toHex:function(t){var e=bn(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)},fastLerp:Mn,fastMapToColor:In,lerp:Tn,mapToColor:Cn,modifyHSL:Dn,modifyAlpha:An,stringify:kn,lum:Ln,random:function(){return kn([Math.round(255*Math.random()),Math.round(255*Math.random()),Math.round(255*Math.random())],"rgb")}}),On=Math.round;function Rn(t){var e;if(t&&"transparent"!==t){if("string"==typeof t&&t.indexOf("rgba")>-1){var n=bn(t);n&&(t="rgb("+n[0]+","+n[1]+","+n[2]+")",e=n[3])}}else t="none";return{color:t,opacity:null==e?1:e}}var Nn=1e-4;function En(t){return t-1e-4}function zn(t){return On(1e3*t)/1e3}function Vn(t){return On(1e4*t)/1e4}var Bn={left:"start",right:"end",center:"middle",middle:"middle"};function Fn(t){return t&&!!t.image}function Gn(t){return"linear"===t.type}function Wn(t){return"radial"===t.type}function Hn(t){return"url(#"+t+")"}function Yn(t){var e=t.getGlobalScale(),n=Math.max(e[0],e[1]);return Math.max(Math.ceil(Math.log(n)/Math.log(10)),1)}function Un(t){var e=t.x||0,n=t.y||0,i=(t.rotation||0)*_t,r=rt(t.scaleX,1),o=rt(t.scaleY,1),a=t.skewX||0,s=t.skewY||0,l=[];return(e||n)&&l.push("translate("+e+"px,"+n+"px)"),i&&l.push("rotate("+i+")"),1===r&&1===o||l.push("scale("+r+","+o+")"),(a||s)&&l.push("skew("+On(a*_t)+"deg, "+On(s*_t)+"deg)"),l.join(" ")}var Xn=r.hasGlobalWindow&&U(window.btoa)?function(t){return window.btoa(unescape(t))}:"undefined"!=typeof Buffer?function(t){return Buffer.from(t).toString("base64")}:function(t){return null},Zn=Array.prototype.slice;function jn(t,e,n){return(e-t)*n+t}function qn(t,e,n,i){for(var r=e.length,o=0;oi?e:t,o=Math.min(n,i),a=r[o-1]||{color:[0,0,0,0],offset:0},s=o;sa)i.length=a;else for(var s=o;s=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=6,s=e;if(N(e)){var l=function(t){return N(t&&t[0])?2:1}(e);a=l,(1===l&&!j(e[0])||2===l&&!j(e[0][0]))&&(o=!0)}else if(j(e)&&!nt(e))a=0;else if(X(e))if(isNaN(+e)){var u=bn(e);u&&(s=u,a=3)}else a=0;else if(Q(e)){var h=A({},s);h.colorStops=z(e.colorStops,(function(t){return{offset:t.offset,color:bn(t.color)}})),Gn(e)?a=4:Wn(e)&&(a=5),s=h}0===r?this.valType=a:a===this.valType&&6!==a||(o=!0),this.discrete=this.discrete||o;var c={time:t,value:s,rawValue:e,percent:0};return n&&(c.easing=n,c.easingFunc=U(n)?n:Le[n]||rn(n)),i.push(c),c},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=ii(i),l=ni(i),u=0;u=0&&!(l[n].percent<=e);n--);n=d(n,u-2)}else{for(n=p;ne);n++);n=d(n-1,u-2)}r=l[n+1],i=l[n]}if(i&&r){this._lastFr=n,this._lastFrP=e;var f=r.percent-i.percent,g=0===f?1:d((e-i.percent)/f,1);r.easingFunc&&(g=r.easingFunc(g));var y=o?this._additiveValue:c?ri:t[h];if(!ii(s)&&!c||y||(y=this._additiveValue=[]),this.discrete)t[h]=g<1?i.rawValue:r.rawValue;else if(ii(s))1===s?qn(y,i[a],r[a],g):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a0&&s.addKeyframe(0,ti(l),i),this._trackKeys.push(a)}s.addKeyframe(t,ti(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;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}();function si(){return(new Date).getTime()}var li,ui,hi=function(t){function e(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 n(e,t),e.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},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.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}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=si()-this._pausedTime,n=e-this._time,i=this._head;i;){var r=i.next;i.step(e,n)?(i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,ke((function e(){t._running&&(ke(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=si(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=si(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=si()-this._pauseStart,this._paused=!1)},e.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},e.prototype.isFinished=function(){return null==this._head},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new ai(t,e.loop);return this.addAnimator(n),n},e}(Xt),ci=r.domSupported,pi=(ui={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:li=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:z(li,(function(t){var e=t.replace("mouse","pointer");return ui.hasOwnProperty(e)?e:t}))}),di=["mousemove","mouseup"],fi=["pointermove","pointerup"],gi=!1;function yi(t){var e=t.pointerType;return"pen"===e||"touch"===e}function vi(t){t&&(t.zrByTouch=!0)}function mi(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}var xi=function(t,e){this.stopPropagation=xt,this.stopImmediatePropagation=xt,this.preventDefault=xt,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},_i={mousedown:function(t){t=oe(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=oe(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=oe(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){mi(this,(t=oe(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){gi=!0,t=oe(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){gi||(t=oe(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){vi(t=oe(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),_i.mousemove.call(this,t),_i.mousedown.call(this,t)},touchmove:function(t){vi(t=oe(this.dom,t)),this.handler.processGesture(t,"change"),_i.mousemove.call(this,t)},touchend:function(t){vi(t=oe(this.dom,t)),this.handler.processGesture(t,"end"),_i.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&_i.click.call(this,t)},pointerdown:function(t){_i.mousedown.call(this,t)},pointermove:function(t){yi(t)||_i.mousemove.call(this,t)},pointerup:function(t){_i.mouseup.call(this,t)},pointerout:function(t){yi(t)||_i.mouseout.call(this,t)}};E(["click","dblclick","contextmenu"],(function(t){_i[t]=function(e){e=oe(this.dom,e),this.trigger(t,e)}}));var bi={pointermove:function(t){yi(t)||bi.mousemove.call(this,t)},pointerup:function(t){bi.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function Mi(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,ae(t.domTarget,e,n,i)}function Ii(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],e.removeEventListener(n,i,r));t.mounted={}}var Ti=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},Ci=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new Ti(e,_i),ci&&(i._globalHandlerScope=new Ti(document,bi)),function(t,e){var n=e.domHandlers;r.pointerEventsSupported?E(pi.pointer,(function(i){Mi(e,i,(function(e){n[i].call(t,e)}))})):(r.touchEventsSupported&&E(pi.touch,(function(i){Mi(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),E(pi.mouse,(function(i){Mi(e,i,(function(r){r=re(r),e.touching||n[i].call(t,r)}))})))}(i,i._localHandlerScope),i}return n(e,t),e.prototype.dispose=function(){Ii(this._localHandlerScope),ci&&Ii(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,ci&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?function(t,e){function n(n){Mi(e,n,(function(i){i=re(i),mi(t,i.target)||(i=function(t,e){return oe(t.dom,new xi(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}r.pointerEventsSupported?E(fi,n):r.touchEventsSupported||E(di,n)}(this,e):Ii(e)}},e}(Xt),Di=1;r.hasGlobalWindow&&(Di=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var Ai=Di,ki="#333",Li="#ccc";function Oi(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function Ri(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 Ni(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 Ei(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 zi(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 Vi(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 Bi(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 Fi(t){var e=[1,0,0,1,0,0];return Ri(e,t),e}var Gi=Object.freeze({__proto__:null,create:function(){return[1,0,0,1,0,0]},identity:Oi,copy:Ri,mul:Ni,translate:Ei,rotate:zi,scale:Vi,invert:Bi,clone:Fi}),Wi=Oi;function Yi(t){return t>5e-5||t<-5e-5}var Ui=[],Xi=[],Zi=[1,0,0,1,0,0],ji=Math.abs,qi=function(){function t(){}return t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return Yi(this.rotation)||Yi(this.x)||Yi(this.y)||Yi(this.scaleX-1)||Yi(this.scaleY-1)||Yi(this.skewX)||Yi(this.skewY)},t.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,e=this.needLocalTransform(),n=this.transform;e||t?(n=n||[1,0,0,1,0,0],e?this.getLocalTransform(n):Wi(n),t&&(e?Ni(n,t,n):Ri(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)):n&&Wi(n)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(Ui);var n=Ui[0]<0?-1:1,i=Ui[1]<0?-1:1,r=((Ui[0]-n)*e+n)/Ui[0]||0,o=((Ui[1]-i)*e+i)/Ui[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],Bi(this.invTransform,t)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],i=Math.atan2(t[1],t[0]),r=Math.PI/2+i-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(r),e=Math.sqrt(e),this.skewX=r,this.skewY=0,this.rotation=-i,this.x=+t[4],this.y=+t[5],this.scaleX=e,this.scaleY=n,this.originX=0,this.originY=0}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(Ni(Xi,t.invTransform,e),e=Xi);var n=this.originX,i=this.originY;(n||i)&&(Zi[4]=n,Zi[5]=i,Ni(Xi,e,Zi),Xi[4]-=n,Xi[5]-=i,e=Xi),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Ft(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Ft(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&ji(t[0]-1)>1e-10&&ji(t[3]-1)>1e-10?Math.sqrt(ji(t[0]*t[3]-t[2]*t[1])):1},t.prototype.copyTransform=function(t){$i(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&&zi(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}(),Ki=["x","y","originX","originY","anchorX","anchorY","rotation","scaleX","scaleY","skewX","skewY"];function $i(t,e){for(var n=0;nf&&(f=x,gf&&(f=_,v=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){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))}er.x=ir.x=n.x,er.y=rr.y=n.y,nr.x=rr.x=n.x+n.width,nr.y=ir.y=n.y+n.height,er.transform(i),rr.transform(i),nr.transform(i),ir.transform(i),e.x=Qi(er.x,nr.x,ir.x,rr.x),e.y=Qi(er.y,nr.y,ir.y,rr.y);var l=tr(er.x,nr.x,ir.x,rr.x),u=tr(er.y,nr.y,ir.y,rr.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),lr={};function ur(t,e){var n=lr[e=e||a];n||(n=lr[e]=new ln(500));var i=n.get(t);return null==i&&(i=h.measureText(t,e).width,n.put(t,i)),i}function hr(t,e,n,i){var r=ur(t,e),o=fr(e),a=pr(0,r,n),s=dr(0,o,i);return new sr(a,s,r,o)}function cr(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return hr(r[0],e,n,i);for(var o=new sr(0,0,0,0),a=0;a=0?parseFloat(t)/100*e:parseFloat(t):t}function yr(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+=gr(i[0],n.width),u+=gr(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||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var vr="__zr_normal__",mr=Ki.concat(["ignore"]),xr=V(Ki,(function(t,e){return t[e]=!0,t}),{ignore:!1}),_r={},br=new sr(0,0,0,0),wr=function(){function t(t){this.id=M(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.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=br;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(_r,n,u):yr(_r,n,u),r.x=_r.x,r.y=_r.y,o=_r.align,a=_r.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=gr(h[0],u.width),p=gr(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")===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|=1,s&&e.dirtyStyle(!0)}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Li:ki},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&bn(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,kn(n,"rgba")},t.prototype.traverse=function(t,e){},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||{},A(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(q(t))for(var n=G(t),i=0;i0},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(vr,!1,t)},t.prototype.useState=function(t,e,n,i){var r=t===vr;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(P(o,t)>=0)||!e&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(t)),s||(s=this.states&&this.states[t]),s||r){r||this.saveCurrentToNormalState(s);var l=!!(s&&s.hoverLayer||i);l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,s,this._normalState,e,!n&&!this.__inHover&&a&&a.duration>0,a);var u=this._textContent,h=this._textGuide;return u&&u.useState(t,e,n,l),h&&h.useState(t,e,n,l),r?(this.currentStates=[],this._normalState={}):e?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=-2),s}I("State "+t+" not exists.")}}},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;s0,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&=-2)}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(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p0||r.force&&!a.length){var w,S=void 0,M=void 0,I=void 0;if(s)for(M={},p&&(S={}),_=0;_=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replace=function(t,e){var n=P(this._children,t);return n>=0&&this.replaceAt(e,n),this},e.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},e.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()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=P(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.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){if(t<=r)return a;if(t>=o)return s}else{if(t>=r)return a;if(t<=o)return s}else{if(t===r)return a;if(t===o)return s}return(t-r)/l*u+a}function Er(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 X(t)?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function zr(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Vr(t){return t.sort((function(t,e){return t-e})),t}function Br(t){if(t=+t,isNaN(t))return 0;if(t>1e-14)for(var e=1,n=0;n<15;n++,e*=10)if(Math.round(t*e)/e===t)return n;return Fr(t)}function Fr(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=o<0?0:r-1-o;return Math.max(0,a-i)}function Gr(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 Wr(t,e,n){if(!t[e])return 0;var i=V(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),o=z(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),a=100*r,s=z(o,(function(t){return Math.floor(t)})),l=V(s,(function(t,e){return t+e}),0),u=z(o,(function(t,e){return t-s[e]}));lh&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function Hr(t,e){var n=Math.max(Br(t),Br(e)),i=t+e;return n>20?i:zr(i,n)}var Yr=9007199254740991;function Ur(t){var e=2*Math.PI;return(t%e+e)%e}function Xr(t){return t>-1e-4&&t<1e-4}var Zr=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function jr(t){if(t instanceof Date)return t;if(X(t)){var e=Zr.exec(t);if(!e)return new Date(NaN);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 null==t?new Date(NaN):new Date(Math.round(t))}function qr(t){return Math.pow(10,Kr(t))}function Kr(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 $r(t,e){var n=Kr(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function Jr(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 Qr(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i=0||r&&P(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var Ho=Wo([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Yo=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Ho(this,t,e)},t}(),Uo=new ln(50);function Xo(t){if("string"==typeof t){var e=Uo.get(t);return e&&e.image}return t}function Zo(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Uo.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!qo(e=o.image)&&o.pending.push(a):((e=h.loadImage(t,jo,jo)).__zrImageSrc=t,Uo.put(t,e.__cachedImgObj={image:e,pending:[a]})),e}return t}return e}function jo(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e=a;l++)s-=a;var u=ur(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 Qo(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=ur(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?ta(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=ur(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function ta(t,e,n,i){for(var r=0,o=0,a=t.length;o0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=sa(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&&e<=383}(t)||!!oa[t]}function sa(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="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=d):(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}}var la="__zr_style_"+Math.round(10*Math.random()),ua={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},ha={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};ua[la]=!0;var ca=["z","z2","invisible"],pa=["invisible"],da=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype._init=function(e){for(var n=G(e),i=0;i1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(ba[0]=xa(r)*n+t,ba[1]=ma(r)*i+e,wa[0]=xa(o)*n+t,wa[1]=ma(o)*i+e,u(s,ba,wa),h(l,ba,wa),(r%=_a)<0&&(r+=_a),(o%=_a)<0&&(o+=_a),r>o&&!a?o+=_a:rr&&(Sa[0]=xa(d)*n+t,Sa[1]=ma(d)*i+e,u(s,Sa,s),h(l,Sa,l))}var La={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Pa=[],Oa=[],Ra=[],Na=[],Ea=[],za=[],Va=Math.min,Ba=Math.max,Fa=Math.cos,Ga=Math.sin,Wa=Math.abs,Ha=Math.PI,Ya=2*Ha,Ua="undefined"!=typeof Float32Array,Xa=[];function Za(t){return Math.round(t/Ha*1e8)/1e8%2*Ha}function ja(t,e){var n=Za(t[0]);n<0&&(n+=Ya);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=Ya?r=n+Ya:e&&n-r>=Ya?r=n-Ya:!e&&n>r?r=n+(Ya-Za(n-r)):e&&n0&&(this._ux=Wa(n/Ai/t)||0,this._uy=Wa(n/Ai/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(La.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=Wa(t-this._xi),i=Wa(e-this._yi),r=n>this._ux||i>this._uy;if(this.addData(La.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(La.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(La.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(),Xa[0]=i,Xa[1]=r,ja(Xa,o),i=Xa[0];var a=(r=Xa[1])-i;return this.addData(La.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=Fa(r)*n+t,this._yi=Ga(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(La.R,t,e,n,i),this},t.prototype.closePath=function(){this._drawPendingPt(),this.addData(La.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||!Ua||(this.data=new Float32Array(e));for(var n=0;nu.length&&(this._expandData(),u=this.data);for(var h=0;h0&&(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(){Ra[0]=Ra[1]=Ea[0]=Ea[1]=Number.MAX_VALUE,Na[0]=Na[1]=za[0]=za[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;tn||Wa(y)>i||c===e-1)&&(f=Math.sqrt(A*A+y*y),r=g,o=x);break;case La.C:var v=t[c++],m=t[c++],x=(g=t[c++],t[c++]),_=t[c++],b=t[c++];f=qe(r,o,v,m,g,x,_,b,10),r=_,o=b;break;case La.Q:f=en(r,o,v=t[c++],m=t[c++],g=t[c++],x=t[c++],10),r=g,o=x;break;case La.A:var w=t[c++],S=t[c++],M=t[c++],I=t[c++],T=t[c++],C=t[c++],D=C+T;c+=1,t[c++],d&&(a=Fa(T)*M+w,s=Ga(T)*I+S),f=Ba(M,I)*Va(Ya,Math.abs(C)),r=Fa(D)*M+w,o=Ga(D)*I+S;break;case La.R:a=r=t[c++],s=o=t[c++],f=2*t[c++]+2*t[c++];break;case La.Z:var A=a-r;y=s-o,f=Math.sqrt(A*A+y*y),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=this.data,d=this._ux,f=this._uy,g=this._len,y=e<1,v=0,m=0,x=0;if(!y||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var _=0;_0&&(t.lineTo(h,c),x=0),b){case La.M:n=r=p[_++],i=o=p[_++],t.moveTo(r,o);break;case La.L:a=p[_++],s=p[_++];var S=Wa(a-r),M=Wa(s-o);if(S>d||M>f){if(y){if(v+(j=l[m++])>u){var I=(u-v)/j;t.lineTo(r*(1-I)+a*I,o*(1-I)+s*I);break t}v+=j}t.lineTo(a,s),r=a,o=s,x=0}else{var T=S*S+M*M;T>x&&(h=a,c=s,x=T)}break;case La.C:var C=p[_++],D=p[_++],A=p[_++],k=p[_++],L=p[_++],P=p[_++];if(y){if(v+(j=l[m++])>u){Ze(r,C,A,L,I=(u-v)/j,Pa),Ze(o,D,k,P,I,Oa),t.bezierCurveTo(Pa[1],Oa[1],Pa[2],Oa[2],Pa[3],Oa[3]);break t}v+=j}t.bezierCurveTo(C,D,A,k,L,P),r=L,o=P;break;case La.Q:if(C=p[_++],D=p[_++],A=p[_++],k=p[_++],y){if(v+(j=l[m++])>u){Qe(r,C,A,I=(u-v)/j,Pa),Qe(o,D,k,I,Oa),t.quadraticCurveTo(Pa[1],Oa[1],Pa[2],Oa[2]);break t}v+=j}t.quadraticCurveTo(C,D,A,k),r=A,o=k;break;case La.A:var O=p[_++],R=p[_++],N=p[_++],E=p[_++],z=p[_++],V=p[_++],B=p[_++],F=!p[_++],G=N>E?N:E,W=Wa(N-E)>.001,H=z+V,Y=!1;if(y&&(v+(j=l[m++])>u&&(H=z+V*(u-v)/j,Y=!0),v+=j),W&&t.ellipse?t.ellipse(O,R,N,E,B,z,H,F):t.arc(O,R,G,z,H,F),Y)break t;w&&(n=Fa(z)*N+O,i=Ga(z)*E+R),r=Fa(H)*N+O,o=Ga(H)*E+R;break;case La.R:n=r=p[_],i=o=p[_+1],a=p[_++],s=p[_++];var U=p[_++],X=p[_++];if(y){if(v+(j=l[m++])>u){var Z=u-v;t.moveTo(a,s),t.lineTo(a+Va(Z,U),s),(Z-=U)>0&&t.lineTo(a+U,s+Va(Z,X)),(Z-=X)>0&&t.lineTo(a+Ba(U-Z,0),s+X),(Z-=U)>0&&t.lineTo(a,s+Ba(X-Z,0));break t}v+=j}t.rect(a,s,U,X);break;case La.Z:if(y){var j;if(v+(j=l[m++])>u){I=(u-v)/j,t.lineTo(r*(1-I)+n*I,o*(1-I)+i*I);break t}v+=j}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=La,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._ux=0,e._uy=0,e._pendingPtDist=0,e._version=0}(),t}();function Ka(t,e,n,i,r,o,a){if(0===r)return!1;var l,s=r;if(a>e+s&&a>i+s||at+s&&o>n+s||oe+c&&h>i+c&&h>o+c&&h>s+c||ht+c&&u>n+c&&u>r+c&&u>a+c||ue+u&&l>i+u&&l>o+u||lt+u&&s>n+u&&s>r+u||sn||h+ur&&(r+=es);var p=Math.atan2(l,s);return p<0&&(p+=es),p>=i&&p<=r||p+es>=i&&p+es<=r}function is(t,e,n,i,r,o){if(o>e&&o>i||or?s:0}var rs=qa.CMD,os=2*Math.PI,as=[-1,-1,-1],ss=[-1,-1];function ls(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u1&&(void 0,h=ss[0],ss[0]=ss[1],ss[1]=h),f=He(e,i,o,s,ss[0]),d>1&&(g=He(e,i,o,s,ss[1]))),2===d?ve&&s>i&&s>o||s=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(Ge(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=Oe(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,as);if(0===l)return 0;var u=Je(e,i,o);if(u>=0&&u<=1){for(var h=0,c=Ke(e,i,o,u),p=0;pn||s<-n)return 0;var l=Math.sqrt(n*n-s*s);as[0]=-l,as[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=os-1e-4){i=0,r=os;var h=o?1:-1;return a>=as[0]+t&&a<=as[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=os,r+=os);for(var p=0,d=0;d<2;d++){var f=as[d];if(f+t>a){var g=Math.atan2(s,f);h=o?1:-1,g<0&&(g=os+g),(g>=i&&g<=r||g+os>=i&&g+os<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function cs(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,d=0,f=0,g=0,y=0;y1&&(n||(c+=is(p,d,f,g,i,r))),m&&(f=p=u[y],g=d=u[y+1]),v){case rs.M:p=f=u[y++],d=g=u[y++];break;case rs.L:if(n){if(Ka(p,d,u[y],u[y+1],e,i,r))return!0}else c+=is(p,d,u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case rs.C:if(n){if($a(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=ls(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case rs.Q:if(n){if(Ja(p,d,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=us(p,d,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case rs.A:var x=u[y++],_=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var I=!!(1-u[y++]);o=Math.cos(S)*b+x,a=Math.sin(S)*w+_,m?(f=o,g=a):c+=is(p,d,o,a,i,r);var T=(i-x)*w/b+x;if(n){if(ns(x,_,w,S,S+M,I,e,T,r))return!0}else c+=hs(x,_,w,S,S+M,I,T,r);p=Math.cos(S+M)*b+x,d=Math.sin(S+M)*w+_;break;case rs.R:if(f=p=u[y++],g=d=u[y++],o=f+u[y++],a=g+u[y++],n){if(Ka(f,g,o,g,e,i,r)||Ka(o,g,o,a,e,i,r)||Ka(o,a,f,a,e,i,r)||Ka(f,a,f,g,e,i,r))return!0}else c+=is(o,g,o,a,i,r),c+=is(f,a,f,g,i,r);break;case rs.Z:if(n){if(Ka(p,d,f,g,e,i,r))return!0}else c+=is(p,d,f,g,i,r);p=f,d=g}}return n||(s=d,l=g,Math.abs(s-l)<1e-4)||(c+=is(p,d,f,g,i,r)||0),0!==c}var ps=k({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},ua),ds={style:k({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},ha.style)},fs=Ki.concat(["invisible","culling","z","z2","zlevel","parent"]),gs=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.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?ki:e>.2?"#eee":Li}if(t)return Li}return ki},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(X(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())==Ln(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=-5},e.prototype.getUpdatedPathProxy=function(t){return!this.path&&this.createPathProxy(),this.path.beginPath(),this.buildPath(this.path,this.shape,t),this.path},e.prototype.createPathProxy=function(){this.path=new qa(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.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||4&this.__dirty)&&(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},e.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)),function(t,e,n,i){return cs(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return cs(t,0,!1,e,n)}(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=4,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:A(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(4&this.__dirty)},e.prototype.createStyle=function(t){return yt(ps,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=A({},this.shape))},e.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=A({},i.shape),A(s,n.shape)):(s=A({},r?this.shape:i.shape),A(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=A({},this.shape);for(var u={},h=G(s),c=0;c0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return yt(ys,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=cr(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},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}(da);vs.prototype.type="tspan";var ms=k({x:0,y:0},ua),xs={style:k({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},ha.style)},_s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.createStyle=function(t){return yt(ms,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return xs},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new sr(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(da);_s.prototype.type="image";var bs=Math.round;function ws(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?(bs(2*i)===bs(2*r)&&(t.x1=t.x2=Ms(i,s,!0)),bs(2*o)===bs(2*a)&&(t.y1=t.y2=Ms(o,s,!0)),t):t}}function Ss(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=Ms(i,s,!0),t.y=Ms(r,s,!0),t.width=Math.max(Ms(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(Ms(r+a,s,!1)-t.y,0===a?0:1),t):t}}function Ms(t,e,n){if(!e)return t;var i=bs(2*t);return(i+bs(e))%2==0?i/2:(i+(n?1:-1))/2}var Is=function(){this.x=0,this.y=0,this.width=0,this.height=0},Ts={},Cs=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Is},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Ss(Ts,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?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(gs);Cs.prototype.type="rect";var Ds={fill:"#000"},As={style:k({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},ha.style)},ks=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Ds,n.attr(e),n}return n(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){t.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var e=0;ed&&h){var f=Math.floor(d/l);n=n.slice(0,f)}if(t&&a&&null!=c)for(var g=Jo(c,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),y=0;y0,T=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),C=i.calculatedLineHeight,D=0;Dl&&ra(n,t.substring(l,u),e,s),ra(n,i[2],e,s,i[1]),l=Ko.lastIndex}lo){b>0?(m.tokens=m.tokens.slice(0,b),y(m,_,x),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var C=w.width,D=null==C||"auto"===C;if("string"==typeof C&&"%"===C.charAt(C.length-1))P.percentWidth=C,h.push(P),P.contentWidth=ur(P.text,I);else{if(D){var A=w.backgroundColor,k=A&&A.image;k&&qo(k=Xo(k))&&(P.width=Math.max(P.width,k.width*T/k.height))}var L=f&&null!=r?r-_:null;null!=L&&L=0&&"right"===(C=x[T]).align;)this._placeToken(C,t,b,f,I,"right",y),w-=C.width,I-=C.width,T--;for(M+=(n-(M-d)-(g-I)-w)/2;S<=T;)C=x[S],this._placeToken(C,t,b,f,M+C.width/2,"center",y),M+=C.width,S++;f+=b}},e.prototype._placeToken=function(t,e,n,i,r,o,s){var l=e.rich[t.styleName]||{};l.text=t.text;var u=t.verticalAlign,h=i+n/2;"top"===u?h=i+t.height/2:"bottom"===u&&(h=i+n-t.height/2),!t.isLineHolder&&Ws(l)&&this._renderBackground(l,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,h-t.height/2,t.width,t.height);var c=!!l.backgroundColor,p=t.textPadding;p&&(r=Fs(r,o,p),h-=t.height/2-p[0]-t.innerHeight/2);var d=this._getOrCreateChild(vs),f=d.createStyle();d.useStyle(f);var g=this._defaultStyle,y=!1,v=0,m=Bs("fill"in l?l.fill:"fill"in e?e.fill:(y=!0,g.fill)),x=Vs("stroke"in l?l.stroke:"stroke"in e?e.stroke:c||s||g.autoStroke&&!y?null:(v=2,g.stroke)),_=l.textShadowBlur>0||e.textShadowBlur>0;f.text=t.text,f.x=r,f.y=h,_&&(f.shadowBlur=l.textShadowBlur||e.textShadowBlur||0,f.shadowColor=l.textShadowColor||e.textShadowColor||"transparent",f.shadowOffsetX=l.textShadowOffsetX||e.textShadowOffsetX||0,f.shadowOffsetY=l.textShadowOffsetY||e.textShadowOffsetY||0),f.textAlign=o,f.textBaseline="middle",f.font=t.font||a,f.opacity=ot(l.opacity,e.opacity,1),Ns(f,l),x&&(f.lineWidth=ot(l.lineWidth,e.lineWidth,v),f.lineDash=rt(l.lineDash,e.lineDash),f.lineDashOffset=e.lineDashOffset||0,f.stroke=x),m&&(f.fill=m);var b=t.contentWidth,w=t.contentHeight;d.setBoundingRect(new sr(pr(f.x,b,f.textAlign),dr(f.y,w,f.textBaseline),b,w))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=u&&u.image,d=u&&!p,f=t.borderRadius,g=this;if(d||t.lineHeight||h&&c){(a=this._getOrCreateChild(Cs)).useStyle(a.createStyle()),a.style.fill=null;var y=a.shape;y.x=n,y.y=i,y.width=r,y.height=o,y.r=f,a.dirtyShape()}if(d)(l=a.style).fill=u||null,l.fillOpacity=rt(t.fillOpacity,1);else if(p){(s=this._getOrCreateChild(_s)).onload=function(){g.dirtyStyle()};var v=s.style;v.image=u.image,v.x=n,v.y=i,v.width=r,v.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=rt(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.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=ot(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";return Es(t)&&(e=[t.fontStyle,t.fontWeight,Rs(t.fontSize),t.fontFamily||"sans-serif"].join(" ")),e&&ut(e)||t.textFont||t.font},e}(da),Ls={left:!0,right:1,center:1},Ps={top:1,bottom:1,middle:1},Os=["fontStyle","fontWeight","fontSize","fontFamily"];function Rs(t){return"string"!=typeof t||-1===t.indexOf("px")&&-1===t.indexOf("rem")&&-1===t.indexOf("em")?isNaN(+t)?"12px":t+"px":t}function Ns(t,e){for(var n=0;n=0,o=!1;if(t instanceof gs){var a=Zs(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(il(s)||il(l)){var u=(i=i||{}).style||{};"inherit"===u.fill?(o=!0,i=A({},i),(u=A({},u)).fill=s):!il(u.fill)&&il(s)?(o=!0,i=A({},i),(u=A({},u)).fill=ol(s)):!il(u.stroke)&&il(l)&&(o||(i=A({},i),u=A({},u)),u.stroke=ol(l)),i.style=u}}if(i&&null==i.z2){o||(i=A({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:$s)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=P(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function Ol(t,e,n){Bl(t,!0),fl(t,vl),Nl(t,e,n)}function Rl(t,e,n,i){i?function(t){Bl(t,!1)}(t):Ol(t,e,n)}function Nl(t,e,n){var i=Hs(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}var El=["emphasis","blur","select"],zl={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Vl(t,e,n,i){n=n||"itemStyle";for(var r=0;r1&&(a*=jl(f),s*=jl(f));var g=(r===o?-1:1)*jl((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+Kl(c)*y-ql(c)*v,x=(e+i)/2+ql(c)*y+Kl(c)*v,_=tu([1,0],[(p-y)/a,(d-v)/s]),b=[(p-y)/a,(d-v)/s],w=[(-1*p-y)/a,(-1*d-v)/s],S=tu(b,w);if(Ql(b,w)<=-1&&(S=$l),Ql(b,w)>=1&&(S=0),S<0){var M=Math.round(S/$l*1e6)/1e6;S=2*$l+M%2*$l}h.addData(u,m,x,a,s,_,S,c,o)}var nu=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,iu=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g,ru=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.applyTransform=function(t){},e}(gs);function ou(t){return null!=t.setData}function au(t,e){var n=function(t){var e=new qa;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=qa.CMD,l=t.match(nu);if(!l)return e;for(var u=0;uk*k+L*L&&(M=T,I=C),{cx:M,cy:I,x0:-h,y0:-c,x1:M*(r/b-1),y1:I*(r/b-1)}}var Tu=function(){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},Cu=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Tu},e.prototype.buildPath=function(t,e){!function(t,e){var n,i=bu(e.r,0),r=bu(e.r0||0,0),o=i>0;if(o||r>0){if(o||(i=r,r=0),r>i){var a=i;i=r,r=a}var s=e.startAngle,l=e.endAngle;if(!isNaN(s)&&!isNaN(l)){var u=e.cx,h=e.cy,c=!!e.clockwise,p=xu(l-s),d=p>fu&&p%fu;if(d>Su&&(p=d),i>Su)if(p>fu-Su)t.moveTo(u+i*yu(s),h+i*gu(s)),t.arc(u,h,i,s,l,!c),r>Su&&(t.moveTo(u+r*yu(l),h+r*gu(l)),t.arc(u,h,r,l,s,c));else{var f=void 0,g=void 0,y=void 0,v=void 0,m=void 0,x=void 0,_=void 0,b=void 0,w=void 0,S=void 0,M=void 0,I=void 0,T=void 0,C=void 0,D=void 0,A=void 0,k=i*yu(s),L=i*gu(s),P=r*yu(l),O=r*gu(l),R=p>Su;if(R){var N=e.cornerRadius;N&&(f=(n=function(t){var e;if(Y(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}(N))[0],g=n[1],y=n[2],v=n[3]);var E=xu(i-r)/2;if(m=wu(E,y),x=wu(E,v),_=wu(E,f),b=wu(E,g),M=w=bu(m,x),I=S=bu(_,b),(w>Su||S>Su)&&(T=i*yu(l),C=i*gu(l),D=r*yu(s),A=r*gu(s),pSu){var U=wu(y,M),X=wu(v,M),Z=Mu(D,A,k,L,i,U,c),j=Mu(T,C,P,O,i,X,c);t.moveTo(u+Z.cx+Z.x0,h+Z.cy+Z.y0),M0&&t.arc(u+Z.cx,h+Z.cy,U,mu(Z.y0,Z.x0),mu(Z.y1,Z.x1),!c),t.arc(u,h,i,mu(Z.cy+Z.y1,Z.cx+Z.x1),mu(j.cy+j.y1,j.cx+j.x1),!c),X>0&&t.arc(u+j.cx,h+j.cy,X,mu(j.y1,j.x1),mu(j.y0,j.x0),!c))}else t.moveTo(u+k,h+L),t.arc(u,h,i,s,l,!c);else t.moveTo(u+k,h+L);r>Su&&R?I>Su?(U=wu(f,I),Z=Mu(P,O,T,C,r,-(X=wu(g,I)),c),j=Mu(k,L,D,A,r,-U,c),t.lineTo(u+Z.cx+Z.x0,h+Z.cy+Z.y0),I0&&t.arc(u+Z.cx,h+Z.cy,X,mu(Z.y0,Z.x0),mu(Z.y1,Z.x1),!c),t.arc(u,h,r,mu(Z.cy+Z.y1,Z.cx+Z.x1),mu(j.cy+j.y1,j.cx+j.x1),c),U>0&&t.arc(u+j.cx,h+j.cy,U,mu(j.y1,j.x1),mu(j.y0,j.x0),!c))):(t.lineTo(u+P,h+O),t.arc(u,h,r,l,s,c)):t.lineTo(u+P,h+O)}else t.moveTo(u,h);t.closePath()}}}(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(gs);Cu.prototype.type="sector";var Du=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},Au=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Du},e.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)},e}(gs);function ku(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i){var o=function(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;pqu[1]){if(a=!1,r)return a;var u=Math.abs(qu[0]-ju[1]),h=Math.abs(ju[0]-qu[1]);Math.min(u,h)>i.len()&&(u0){var c={duration:h.duration,delay:h.delay||0,easing:h.easing,done:o,force:!!o||!!a,setToFinal:!u,scope:t,during:a};l?e.animateFrom(n,c):e.animateTo(n,c)}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function rh(t,e,n,i,r,o){ih("update",t,e,n,i,r,o)}function oh(t,e,n,i,r,o){ih("enter",t,e,n,i,r,o)}function ah(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 Dh(t){return!t.isGroup}function Ah(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){Dh(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(Dh(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),rh(t,i,n,Hs(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=A({},t.shape)),e}}function kh(t,e){return z(t,(function(t){var n=t[0];n=ch(n,e.x),n=ph(n,e.x+e.width);var i=t[1];return i=ch(i,e.y),[n,i=ph(i,e.y+e.height)]}))}function Lh(t,e){var n=ch(t.x,e.x),i=ph(t.x+t.width,e.x+e.width),r=ch(t.y,e.y),o=ph(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function Ph(t,e,n){var i=A({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),k(r,n),new _s(i)):xh(t.replace("path://",""),i,n,"center")}function Oh(t,e,n,i,r){for(var o=0,a=r[r.length-1];o=-1e-6)return!1;var f=t-r,g=e-o,y=Nh(f,g,u,h)/d;if(y<0||y>1)return!1;var v=Nh(f,g,c,p)/d;return!(v<0||v>1)}function Nh(t,e,n,i){return t*i-n*e}function Eh(t){var e=t.itemTooltipOption,n=t.componentModel,i=t.itemName,r=X(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&&E(G(l),(function(t){mt(s,t)||(s[t]=l[t],s.$vars.push(t))}));var u=Hs(t.el);u.componentMainType=o,u.componentIndex=a,u.tooltipConfig={name:i,option:k({content:i,formatterParams:s},r)}}function zh(t,e){var n;t.isGroup&&(n=e(t)),n||t.traverse(e)}function Vh(t,e){if(t)if(Y(t))for(var n=0;n-1?"ZH":"EN";function Sc(t,e){t=t.toUpperCase(),bc[t]=new dc(e),_c[t]=e}function Mc(t){return bc[t]}Sc("EN",{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Gauge",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),Sc("ZH",{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var Dc=864e5,Ac=31536e6,kc={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}"},Pc={year:"{yyyy}",month:"{yyyy}-{MM}",day:"{yyyy}-{MM}-{dd}",hour:"{yyyy}-{MM}-{dd} "+kc.hour,minute:"{yyyy}-{MM}-{dd} "+kc.minute,second:"{yyyy}-{MM}-{dd} "+kc.second,millisecond:kc.none},Oc=["year","month","day","hour","minute","second","millisecond"],Rc=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Nc(t,e){return"0000".substr(0,e-(t+="").length)+t}function Ec(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 zc(t){return t===Ec(t)}function Vc(t,e,n,i){var r=jr(t),o=r[Gc(n)](),a=r[Wc(n)]()+1,s=Math.floor((a-1)/3)+1,l=r[Hc(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[Yc(n)](),c=(h-1)%12+1,p=r[Uc(n)](),d=r[Xc(n)](),f=r[Zc(n)](),g=(i instanceof dc?i:Mc(i||wc)||bc.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),x=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,Nc(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,Nc(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,x[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Nc(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,Nc(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Nc(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,Nc(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,Nc(f,3)).replace(/{S}/g,f+"")}function Bc(t,e){var n=jr(t),i=n[Wc(e)]()+1,r=n[Hc(e)](),o=n[Yc(e)](),a=n[Uc(e)](),s=n[Xc(e)](),l=0===n[Zc(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function Fc(t,e,n){var i=j(t)?jr(t):t;switch(e=e||Bc(t,n)){case"year":return i[Gc(n)]();case"half-year":return i[Wc(n)]()>=6?1:0;case"quarter":return Math.floor((i[Wc(n)]()+1)/4);case"month":return i[Wc(n)]();case"day":return i[Hc(n)]();case"half-day":return i[Yc(n)]()/24;case"hour":return i[Yc(n)]();case"minute":return i[Uc(n)]();case"second":return i[Xc(n)]();case"millisecond":return i[Zc(n)]()}}function Gc(t){return t?"getUTCFullYear":"getFullYear"}function Wc(t){return t?"getUTCMonth":"getMonth"}function Hc(t){return t?"getUTCDate":"getDate"}function Yc(t){return t?"getUTCHours":"getHours"}function Uc(t){return t?"getUTCMinutes":"getMinutes"}function Xc(t){return t?"getUTCSeconds":"getSeconds"}function Zc(t){return t?"getUTCMilliseconds":"getMilliseconds"}function jc(t){return t?"setUTCFullYear":"setFullYear"}function qc(t){return t?"setUTCMonth":"setMonth"}function Kc(t){return t?"setUTCDate":"setDate"}function $c(t){return t?"setUTCHours":"setHours"}function Jc(t){return t?"setUTCMinutes":"setMinutes"}function Qc(t){return t?"setUTCSeconds":"setSeconds"}function tp(t){return t?"setUTCMilliseconds":"setMilliseconds"}function ep(t){if(!eo(t))return X(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function np(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}var ip=st,rp=/([&<>"'])/g,op={"&":"&","<":"<",">":">",'"':""","'":"'"};function ap(t){return null==t?"":(t+"").replace(rp,(function(t,e){return op[e]}))}function sp(t,e,n){function i(t){return t&&ut(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="time"===e,a=t instanceof Date;if(o||a){var s=o?jr(t):t;if(!isNaN(+s))return Vc(s,"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}",n);if(a)return"-"}if("ordinal"===e)return Z(t)?i(t):j(t)&&r(t)?t+"":"-";var l=to(t);return r(l)?ep(l):Z(t)?i(t):"boolean"==typeof t?t+"":"-"}var lp=["a","b","c","d","e","f","g"],up=function(t,e){return"{"+t+(null==e?"":e)+"}"};function hp(t,e,n){Y(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o':'':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|} ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""}function pp(t,e){return e=e||"transparent",X(t)?t:q(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function dp(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var fp=E,gp=["left","right","top","bottom","width","height"],yp=[["width","left","right"],["height","top","bottom"]];function vp(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)>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)>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)}))}var mp=vp;function xp(t,e,n){n=ip(n||0);var i=e.width,r=e.height,o=Er(t.left,i),a=Er(t.top,r),s=Er(t.right,i),l=Er(t.bottom,r),u=Er(t.width,i),h=Er(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 sr(o+n[3],a+n[0],u,h);return f.margin=n,f}function _p(t,e,n,i,r,o){var a,s=!r||!r.hv||r.hv[0],l=!r||!r.hv||r.hv[1],u=r&&r.boundingMode||"all";if((o=o||t).x=t.x,o.y=t.y,!s&&!l)return!1;if("raw"===u)a="group"===t.type?new sr(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(a=t.getBoundingRect(),t.needLocalTransform()){var h=t.getLocalTransform();(a=a.clone()).applyTransform(h)}var c=xp(k({width:a.width,height:a.height},e),n,i),p=s?c.x-a.x:0,d=l?c.y-a.y:0;return"raw"===u?(o.x=p,o.y=d):(o.x+=p,o.y+=d),o===t&&t.markRedraw(),!0}function bp(t){var e=t.layoutMode||t.constructor.layoutMode;return q(e)?e:e?{type:e}:null}function wp(t,e,n){var i=n&&n.ignoreSize;!Y(i)&&(i=[i,i]);var r=a(yp[0],0),o=a(yp[1],1);function a(n,r){var o={},a=0,u={},h=0;if(fp(n,(function(e){u[e]=t[e]})),fp(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c=0;a--)o=C(o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return Ao(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.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")}},e.prototype.getZLevelKey=function(){return""},e.prototype.setZLevel=function(t){this.option.zlevel=t},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(dc);zo(Tp,dc),Go(Tp),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=No(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=No(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(Tp),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return E(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return E(t,(function(t){P(e,t)>=0&&n.push(t)})),n}(a.originalDeps=function(t){var e=[];return E(Tp.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=z(e,(function(t){return No(t).main})),"dataset"!==t&&P(e,"dataset")<=0&&e.unshift("dataset"),e}(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),E(s,(function(t){P(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);P(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(E(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),E(c.successor,p?f:d)}E(u,(function(){throw new Error("")}))}function d(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function f(t){u[t]=!0,d(t)}}}(Tp);var Cp="";"undefined"!=typeof navigator&&(Cp=navigator.platform||"");var Dp="rgba(0, 0, 0, 0.2)",Ap={darkMode:"auto",colorBy:"series",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Dp,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Dp,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Dp,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Dp,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Dp,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Dp,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:Cp.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},kp=ft(["tooltip","label","itemName","itemId","itemGroupId","seriesName"]),Lp="original",Pp="arrayRows",Op="objectRows",Rp="keyedColumns",Np="typedArray",Ep="unknown",zp="column",Vp="row",Bp=1,Fp=2,Gp=3,Wp=So();function Hp(t,e,n){var i={},r=Up(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=Wp(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;E(t=t.slice(),(function(e,n){var r=q(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=f(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;ie)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var id=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new dc(i),this._locale=new dc(r),this._optionManager=o},e.prototype.setOption=function(t,e,n){var i=ad(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,ad(e))},e.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)):$p(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&&E(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=ft(),s=e&&e.replaceMergeMainTypeMap;Wp(this).datasetMap=ft(),E(t,(function(t,e){null!=t&&(Tp.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?T(t):C(n[e],t,!0))})),s&&s.each((function(t,e){Tp.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),Tp.topologicalTravel(o,Tp.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=jp.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,ho(t[e])),a=i.get(e),u=yo(a,o,a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll");(function(t,e,n){E(t,(function(t){var i=t.newOption;q(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,Tp),n[e]=null,i.set(e,null),r.set(e,0);var h,c=[],p=[],d=0;E(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o="series"===e,a=Tp.getClass(e,t.keyInfo.subType,!o);if(!a)return;if("tooltip"===e){if(h)return;h=!0}if(i&&i.constructor===a)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var s=A({componentIndex:n},t.keyInfo);A(i=new a(r,this,this,s),s),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(c.push(i.option),p.push(i),d++):(c.push(void 0),p.push(void 0))}),this),n[e]=c,i.set(e,p),r.set(e,d),"series"===e&&qp(this)}),this),this._seriesIndices||qp(this)},e.prototype.getOption=function(){var t=T(this.option);return E(t,(function(e,n){if(Tp.hasClass(n)){for(var i=ho(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!bo(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.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;r=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var fd=E,gd=q,yd=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function vd(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=yd.length;n=0;g--){var y=t[g];if(s||(p=y.data.rawIndexOf(y.stackedByDimension,c)),p>=0){var v=y.data.getByRawIndex(y.stackResultDimension,p);if("all"===l||"positive"===l&&v>0||"negative"===l&&v<0||"samesign"===l&&d>=0&&v>0||"samesign"===l&&d<=0&&v<0){d=Hr(d,v),f=v;break}}}return i[0]=d,i[1]=f,i}))}))}var Nd,Ed,zd,Vd,Bd,Fd=function(t){this.data=t.data||(t.sourceFormat===Rp?{}:[]),this.sourceFormat=t.sourceFormat||Ep,this.seriesLayoutBy=t.seriesLayoutBy||zp,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;nu&&(u=d)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e=0&&(s=o.interpolatedValue[l])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return af(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function uf(t){var e,n;return q(t)?t.type&&(n=t):e=t,{text:e,frag:n}}function hf(t){return new cf(t)}var cf=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){var e,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),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=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&&(o||p1&&i>0?s:a}};return o;function a(){return e=t?null:oe},gte:function(t,e){return t>=e}},vf=function(){function t(t,e){if(!j(e)){ao("")}this._opFn=yf[t],this._rvalFloat=to(e)}return t.prototype.evaluate=function(t){return j(t)?this._opFn(t,this._rvalFloat):this._opFn(to(t),this._rvalFloat)},t}(),mf=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=j(t)?t:to(t),i=j(e)?e:to(e),r=isNaN(n),o=isNaN(i);if(r&&(n=this._incomparable),o&&(i=this._incomparable),r&&o){var a=X(t),s=X(e);a&&(n=s?t:0),s&&(i=a?e:0)}return ni?-this._resultLT:0},t}(),xf=function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=to(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=to(t)===this._rvalFloat)}return this._isEQ?e:!e},t}();function _f(t,e){return"eq"===t||"ne"===t?new xf("eq"===t,e):mt(yf,t)?new vf(t,e):null}var bf=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return df(t,e)},t}();function wf(t){if(!Df(t.sourceFormat)){ao("")}return t.data}function Sf(t){var e=t.sourceFormat,n=t.data;if(!Df(e)){ao("")}if(e===Pp){for(var r=[],o=0,a=n.length;o65535?Lf:Pf}function zf(t,e,n,i,r){var o=Nf[n||"float"];if(r){var a=t[e],s=a&&a.length;if(s!==i){for(var l=new o(i),u=0;ug[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=z(o,(function(t){return t.property})),u=0;uy[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&&e=0&&e=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._chunks[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},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;r=u&&x<=h||isNaN(x))&&(a[s++]=d),d++;p=!0}else if(2===r){f=c[i[0]];var y=c[i[1]],v=t[i[1]][0],m=t[i[1]][1];for(g=0;g=u&&x<=h||isNaN(x))&&(_>=v&&_<=m||isNaN(_))&&(a[s++]=d),d++}p=!0}}if(!p)if(1===r)for(g=0;g=u&&x<=h||isNaN(x))&&(a[s++]=b)}else for(g=0;gt[M][1])&&(w=!1)}w&&(a[s++]=e.getRawIndex(g))}return sy[1]&&(y[1]=g)}}},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=this.clone([t],!0),a=o._chunks[t],s=this.count(),l=0,u=Math.floor(1/e),h=this.getRawIndex(0),c=new(Ef(this._rawCount))(Math.min(2*(Math.ceil(s/u)+2),s));c[l++]=h;for(var p=1;pn&&(n=i,r=I)}M>0&&M<_-x&&(c[l++]=Math.min(S,r),r=Math.max(S,r)),c[l++]=r,h=r}return c[l++]=this.getRawIndex(s-1),o._count=l,o._indices=c,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]=[1/0,-1/0],c=new(Ef(this._rawCount))(Math.ceil(u/s)),p=0,d=0;du-d&&(s=u-d,a.length=s);for(var f=0;fh[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();ra&&(a=l)}return i=[o,a],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;r=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 df(t[i],this._dimensions[i])}Af={arrayRows:t,objectRows:function(t,e,n,i){return df(t[e],this._dimensions[i])},keyedColumns:t,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return df(r instanceof Array?r[i]:r,this._dimensions[i])},typedArray:function(t,e,n,i){return t[i]}}}(),t}(),Bf=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(Gf(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=$(a=o.get("data",!0))?Np:Lp,e=[];var h=this._getSourceMetaRawOption()||{},c=l&&l.metaRawOption||{},p=rt(h.seriesLayoutBy,c.seriesLayoutBy)||null,d=rt(h.sourceHeader,c.sourceHeader),f=rt(h.dimensions,c.dimensions);t=p!==c.seriesLayoutBy||!!d!=!!c.sourceHeader||f?[Wd(a,{seriesLayoutBy:p,sourceHeader:d,dimensions:f},s)]:[]}else{var g=n;if(r){var y=this._applyTransform(i);t=y.sourceList,e=y.upstreamSignList}else t=[Wd(g.get("source",!0),this._getSourceMetaRawOption(),null)],e=[]}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){1!==t.length&&Wf("")}var a,s=[],l=[];return E(t,(function(t){t.prepareSource();var e=t.getSource(r||0);null==r||e||Wf(""),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=ho(t),r=i.length;r||ao("");for(var a=0,s=r;a1||n>0&&!t.noHeader;return E(t.blocks,(function(t){var n=qf(t);n>=e&&(e=n+ +(i&&(!n||Zf(t)&&!t.noHeader)))})),e}return 0}function Kf(t,e,n,i){var r,o=e.noHeader,a=(r=qf(e),{html:Yf[r],richText:Uf[r]}),s=[],l=e.blocks||[];lt(!l||Y(l)),l=l||[];var u=t.orderMode;if(e.sortBlocks&&u){l=l.slice();var h={valueAsc:"asc",valueDesc:"desc"};if(mt(h,u)){var c=new mf(h[u],null);l.sort((function(t,e){return c.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===u&&l.reverse()}E(l,(function(n,r){var o=e.valueFormatter,l=jf(n)(o?A(A({},t),{valueFormatter:o}):t,n,r>0?a.html:0,i);null!=l&&s.push(l)}));var p="richText"===t.renderMode?s.join(a.richText):Qf(s.join(""),o?n:a.html);if(o)return p;var d=sp(e.header,"ordinal",t.useUTC),f=Hf(i,t.renderMode).nameStyle;return"richText"===t.renderMode?tg(t,d,f)+a.richText+p:Qf('
'+ap(d)+"
"+p,n)}function $f(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 z(t=Y(t)?t:[t],(function(t,e){return sp(t,Y(d)?d[e]:d,u)}))};if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":sp(l,"ordinal",u),d=e.valueType,f=a?[]:h(e.value),g=!s||!o,y=!s&&o,v=Hf(i,r),m=v.nameStyle,x=v.valueStyle;return"richText"===r?(s?"":c)+(o?"":tg(t,p,m))+(a?"":function(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(Y(e)?e.join(" "):e,o)}(t,f,g,y,x)):Qf((s?"":c)+(o?"":function(t,e,n){return''+ap(t)+""}(p,!s,m))+(a?"":function(t,e,n,i){return''+z(t=Y(t)?t:[t],(function(t){return ap(t)})).join("  ")+""}(f,g,y,x)),n)}}function Jf(t,e,n,i,r,o){if(t)return jf(t)({useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e,valueFormatter:t.valueFormatter},t,0,o)}function Qf(t,e){return'
'+t+'
'}function tg(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function eg(t,e){return pp(t.getData().getItemVisual(e,"style")[t.visualDrawType])}function ng(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var ig=function(){function t(){this.richTextStyles={},this._nextStyleNameId=no()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=cp({color:e,type:t,renderMode:n,markerId:i});return X(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};Y(e)?E(e,(function(t){return A(n,t)})):A(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function rg(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=Y(c),d=eg(o,a);if(h>1||p&&!h){var f=function(t,e,n,i,r){var o=e.getData(),a=V(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(Xf("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?E(i,(function(t){h(af(o,n,t),t)})):E(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(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=af(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=_o(o),v=y&&o.name||"",m=l.getName(a),x=s?v:m;return Xf("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[Xf("nameValue",{markerType:"item",markerColor:d,name:x,noName:!ut(x),value:e,valueType:n})].concat(i||[])})}var og=So();function ag(t,e){return t.getName(e)||t.getId(e)}var sg=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return n(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=hf({count:ug,reset:hg}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(og(this).sourceManager=new Bf(this)).prepareSource();var i=this.getInitialData(t,n);pg(i,this),this.dataTask.context.data=i,og(this).dataBeforeProcessed=i,lg(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=bp(this),i=n?Sp(t):{},r=this.subType;Tp.hasClass(r)&&(r+="Series"),C(t,e.getTheme().get(this.subType)),C(t,this.getDefaultOption()),co(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&wp(t,i,n)},e.prototype.mergeOption=function(t,e){t=C(this.option,t,!0),this.fillDataTextStyle(t.data);var n=bp(this);n&&wp(this.option,t,n);var i=og(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);pg(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,og(this).dataBeforeProcessed=r,lg(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!$(t))for(var e=["show"],n=0;nthis.getShallow("animationThreshold")&&(e=!1),!!e},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=td.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.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},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;if(!n)return!1;var i=this.getData(e);return("all"===n||n[ag(i,t)])&&!i.getItemModel(t).get(["select","disabled"])},e.prototype.isUniversalTransitionEnabled=function(){if(this.__universalTransitionEnabled)return!0;var t=this.option.universalTransition;return!!t&&(!0===t||t&&t.enabled)},e.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){q(r.selectedMap)||(r.selectedMap={});for(var s=r.selectedMap,l=0;l0&&this._innerSelect(t,e)}},e.registerClass=function(t){return Tp.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(Tp);function lg(t){var e=t.name;_o(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return E(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function ug(t){return t.model.getRawData().count()}function hg(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),cg}function cg(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function pg(t,e){E(gt(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,H(dg,e))}))}function dg(t,e){var n=fg(t);return n&&n.setOutputEnd((e||this).count()),e}function fg(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}}R(sg,lf),R(sg,td),zo(sg,Tp);var gg=function(){function t(){this.group=new Cr,this.uid=gc("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.toggleBlurSeries=function(t,e,n){},t.prototype.eachRendered=function(t){var e=this.group;e&&e.traverse(t)},t}();function yg(){var t=So();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"}}Eo(gg),Go(gg);var vg=So(),mg=yg(),xg=function(){function t(){this.group=new Cr,this.uid=gc("viewChart"),this.renderTask=hf({plan:wg,reset:Sg}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){var r=t.getData(i&&i.dataType);r&&bg(r,i,"emphasis")},t.prototype.downplay=function(t,e,n,i){var r=t.getData(i&&i.dataType);r&&bg(r,i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},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){Vh(this.group,t)},t.markUpdateMethod=function(t,e){vg(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function _g(t,e,n){t&&Fl(t)&&("emphasis"===e?_l:bl)(t,n)}function bg(t,e,n){var i=wo(t,e),r=e&&null!=e.highlightKey?function(t){var e=Xs[t];return null==e&&Us<=32&&(e=Xs[t]=Us++),e}(e.highlightKey):null;null!=i?E(ho(i),(function(e){_g(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){_g(t,n,r)}))}function wg(t){return mg(t.model)}function Sg(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&vg(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),Mg[l]}Eo(xg),Go(xg);var Mg={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)}}},Ig="\0__throttleOriginMethod",Tg="\0__throttleRate",Cg="\0__throttleType";function Dg(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}function Ag(t,e,n,i){var r=t[e];if(r){var o=r[Ig]||r,a=r[Cg];if(r[Tg]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=Dg(o,n,"debounce"===i))[Ig]=o,r[Cg]=i,r[Tg]=n}return r}}function kg(t,e){var n=t[e];n&&n[Ig]&&(n.clear&&n.clear(),t[e]=n[Ig])}var Lg=So(),Pg={itemStyle:Wo(hc,!0),lineStyle:Wo(sc,!0)},Og={lineStyle:"stroke",itemStyle:"fill"};function Rg(t,e){return t.visualStyleMapper||Pg[e]||(console.warn("Unkown style type '"+e+"'."),Pg.itemStyle)}function Ng(t,e){return t.visualDrawType||Og[e]||(console.warn("Unkown style type '"+e+"'."),"fill")}var Eg={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=Rg(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=Ng(t,i),l=o[s],u=U(l)?l:null,h="auto"===o.fill||"auto"===o.stroke;if(!o[s]||u||h){var c=t.getColorFromPalette(t.name,null,e.getSeriesCount());o[s]||(o[s]=c,n.setVisual("colorFromPalette",!0)),o.fill="auto"===o.fill||U(o.fill)?c:o.fill,o.stroke="auto"===o.stroke||U(o.stroke)?c:o.stroke}if(n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=A({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},zg=new dc,Vg={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=Rg(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){zg.option=n[i];var a=r(zg);A(t.ensureUniqueItemVisual(e,"style"),a),zg.option.decal&&(t.setItemVisual(e,"decal",zg.option.decal),zg.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},Bg={performRawSeries:!0,overallReset:function(t){var e=ft();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)),Lg(t).scope=r}})),t.eachSeries((function(e){if(!e.isColorBySeries()&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=Lg(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=Ng(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},Fg=Math.PI,Gg=function(){function t(t,e,n,i){this._stageTaskMap=ft(),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?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},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().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=ft();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;E(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{});lt(!(i.reset&&i.overallReset),""),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){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}E(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||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){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=ft(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||hf({plan:Xg,reset:Zg,count:Kg}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||hf({reset:Wg});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=ft(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1;function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,hf({reset:Hg,onDirty:Ug})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}lt(!t.createOnAllSeries,""),l?n.eachRawSeriesByType(l,d):u?u(n,i).each(d):(h=!1,E(n.getSeries(),d)),c&&o.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 U(t)&&(t={overallReset:t,seriesType:$g(t)}),t.uid=gc("stageHandler"),e&&(t.visualType=e),t},t}();function Wg(t){t.overallReset(t.ecModel,t.api,t.payload)}function Hg(t){return t.overallProgress&&Yg}function Yg(){this.agent.dirty(),this.getDownstream().dirty()}function Ug(){this.agent&&this.agent.dirty()}function Xg(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function Zg(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=ho(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?z(e,(function(t,e){return qg(e)})):jg}var jg=qg(0);function qg(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o0&&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){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),hy=["symbol","symbolSize","symbolRotate","symbolOffset"],cy=hy.concat(["symbolKeepAspect"]),py={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendIcon&&n.setVisual("legendIcon",t.legendIcon),t.hasSymbolVisual){for(var i={},r={},o=!1,a=0;a=0&&Ry(l)?l:.5,t.createRadialGradient(a,s,0,a,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=Ry(i)?i:0,r=Ry(r)?r:1,o=Ry(o)?o:0,a=Ry(a)?a:0,t.createLinearGradient(i,o,r,a)}(t,e,n),r=e.colorStops,o=0;o0&&(e=i.lineDash,n=i.lineWidth,e&&"solid"!==e&&n>0?"dashed"===e?[4*n,2*n]:"dotted"===e?[n]:j(e)?[e]:Y(e)?e:null:null),o=i.lineDashOffset;if(r){var a=i.strokeNoScale&&t.getLineScale?t.getLineScale():1;a&&1!==a&&(r=z(r,(function(t){return t/a})),o/=a)}return[r,o]}var By=new qa(!0);function Fy(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function Gy(t){return"string"==typeof t&&"none"!==t}function Wy(t){var e=t.fill;return null!=e&&"none"!==e}function Hy(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 Yy(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 Uy(t,e,n){var i=Zo(e.image,e.__image,n);if(qo(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)*_t),o.scaleSelf(e.scaleX||1,e.scaleY||1),r.setTransform(o)}return r}}var Xy=["shadowBlur","shadowOffsetX","shadowOffsetY"],Zy=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function jy(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;if(i||e.opacity!==n.opacity){$y(t,r),o=!0;var a=Math.max(Math.min(e.opacity,1),0);t.globalAlpha=isNaN(a)?ua.opacity:a}(i||e.blend!==n.blend)&&(o||($y(t,r),o=!0),t.globalCompositeOperation=e.blend||ua.blend);for(var s=0;s0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.isSSR=function(){return this._ssr},e.prototype.setOption=function(t,e,n){if(!this.__flagInMainProcess)if(this._disposed)Hv(this.id);else{var i,r,o;if(q(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new pd(this._api),s=this._theme,l=this._model=new id;l.scheduler=this._scheduler,l.ssr=this._ssr,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},Zv);var u={seriesTransition:o,optionChanged:!0};if(n)this.__pendingUpdate={silent:i,updateParams:u},this.__flagInMainProcess=!1,this.getZr().wakeUp();else{try{_v(this),Sv.update.call(this,null,u)}catch(t){throw this.__pendingUpdate=null,this.__flagInMainProcess=!1,t}this._ssr||this._zr.flush(),this.__pendingUpdate=null,this.__flagInMainProcess=!1,Cv.call(this,i),Dv.call(this,i)}}},e.prototype.setTheme=function(){},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||cv&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){return this.renderToCanvas(t)},e.prototype.renderToCanvas=function(t){return t=t||{},this._zr.painter.getRenderedCanvas({backgroundColor:t.backgroundColor||this._model.get("backgroundColor"),pixelRatio:t.pixelRatio||this.getDevicePixelRatio()})},e.prototype.renderToSVGString=function(t){return t=t||{},this._zr.painter.renderToString({useViewBox:t.useViewBox})},e.prototype.getSvgDataURL=function(){if(r.svgSupported){var t=this._zr;return E(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;E(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 E(i,(function(t){t.group.ignore=!1})),o}Hv(this.id)},e.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(Jv[n]){var a=o,s=o,l=-1/0,u=-1/0,c=[],p=t&&t.pixelRatio||this.getDevicePixelRatio();E($v,(function(o,h){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.renderToCanvas(T(t)),d=o.getDom().getBoundingClientRect();a=i(d.left,a),s=i(d.top,s),l=r(d.right,l),u=r(d.bottom,u),c.push({dom:p,left:d.left,top:d.top})}}));var d=(l*=p)-(a*=p),f=(u*=p)-(s*=p),g=h.createCanvas(),y=Lr(g,{renderer:e?"svg":"canvas"});if(y.resize({width:d,height:f}),e){var v="";return E(c,(function(t){var e=t.left-a,n=t.top-s;v+=''+t.dom+""})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new Cs({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),E(c,(function(t){var e=new _s({style:{x:t.left*p-a,y:t.top*p-s,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}Hv(this.id)},e.prototype.convertToPixel=function(t,e){return Mv(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return Mv(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){var n;if(!this._disposed)return E(Io(this._model,t),(function(t,i){i.indexOf("Models")>=0&&E(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;Hv(this.id)},e.prototype.getVisual=function(t,e){var n=Io(this._model,t,{defaultMainType:"series"}),r=n.seriesModel.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?fy(r,o,e):gy(r,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t,e,n,i=this;E(Wv,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target;if("globalout"===t?n={}:o&&xy(o,(function(t){var e=Hs(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=A({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),E(Uv,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),E(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(my("map","selectchanged",e,i,t),my("pie","selectchanged",e,i,t)):"select"===t.fromAction?(my("map","selected",e,i,t),my("pie","selected",e,i,t)):"unselect"===t.fromAction&&(my("map","unselected",e,i,t),my("pie","unselected",e,i,t))}))},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?Hv(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)Hv(this.id);else{this._disposed=!0,this.getDom()&&ko(this.getDom(),em,"");var t=this,e=t._api,n=t._model;E(t._componentsViews,(function(t){t.dispose(n,e)})),E(t._chartsViews,(function(t){t.dispose(n,e)})),t._zr.dispose(),t._dom=t._model=t._chartsMap=t._componentsMap=t._chartsViews=t._componentsViews=t._scheduler=t._api=t._zr=t._throttledZrFlush=t._theme=t._coordSysMgr=t._messageCenter=null,delete $v[t.id]}},e.prototype.resize=function(t){if(!this.__flagInMainProcess)if(this._disposed)Hv(this.id);else{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.__pendingUpdate&&(null==i&&(i=this.__pendingUpdate.silent),n=!0,this.__pendingUpdate=null),this.__flagInMainProcess=!0;try{n&&_v(this),Sv.update.call(this,{type:"resize",animation:A({duration:0},t&&t.animation)})}catch(t){throw this.__flagInMainProcess=!1,t}this.__flagInMainProcess=!1,Cv.call(this,i),Dv.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)Hv(this.id);else if(q(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Kv[t]){var n=Kv[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?Hv(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=A({},t);return e.type=Uv[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)Hv(this.id);else if(q(e)||(e={silent:!!e}),Yv[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;Tv.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&r.browser.weChat&&this._throttledZrFlush(),Cv.call(this,n),Dv.call(this,n)}},e.prototype.updateLabelLayout=function(){lv.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},e.prototype.appendData=function(t){if(this._disposed)Hv(this.id);else{var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))}function e(t){for(var e=[],n=t.currentStates,i=0;i0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.eachRendered((function(t){if(t.states&&t.states.emphasis){if(ah(t))return;if(t instanceof gs&&function(t){var e=Zs(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}(t),t.__dirty){var n=t.prevStates;n&&t.useStates(n)}if(r){t.stateTransition=a;var i=t.getTextContent(),o=t.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}t.__dirty&&e(t)}}))}_v=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),bv(t,!0),bv(t,!1),e.plan()},bv=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;le.get("hoverLayerThreshold")&&!r.node&&!r.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)}))}}))}(t,e),lv.trigger("series:afterupdate",e,n,l)},Ev=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},zv=function(t){t.__needsUpdateStatus&&(t.getZr().storage.traverse((function(t){ah(t)||e(t)})),t.__needsUpdateStatus=!1)},Rv=function(t){return new(function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){_l(e,n),Ev(t)},i.prototype.leaveEmphasis=function(e,n){bl(e,n),Ev(t)},i.prototype.enterBlur=function(e){wl(e),Ev(t)},i.prototype.leaveBlur=function(e){Sl(e),Ev(t)},i.prototype.enterSelect=function(e){Ml(e),Ev(t)},i.prototype.leaveSelect=function(e){Il(e),Ev(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(ld))(t)},Nv=function(t){function e(t,e){for(var n=0;n=0)){gm.push(n);var o=Gg.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function vm(t,e){Kv[t]=e}function mm(t,e,n){var i=hv("registerMap");i&&i(t,e,n)}var xm=function(t){var e=(t=T(t)).type;e||ao("");var i=e.split(":");2!==i.length&&ao("");var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,Tf.set(e,t)};fm(2e3,Eg),fm(4500,Vg),fm(4500,Bg),fm(2e3,py),fm(4500,dy),fm(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=rv(n,e))}));var r=i.getVisual("decal");r&&(i.getVisual("style").decal=rv(r,e))}}))})),am(Od),sm(900,(function(t){var e=ft();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(Rd)})),vm("default",(function(t,e){k(e=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 Cr,i=new Cs({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new ks({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily},zlevel:e.zlevel,z:10001}),a=new Cs({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new Hu({shape:{startAngle:-Fg/2,endAngle:-Fg/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*Fg/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*Fg/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.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&&r.setShape({cx:l,cy:u}),a.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})),cm({type:Js,event:Js,update:Js},xt),cm({type:Qs,event:Qs,update:Qs},xt),cm({type:tl,event:tl,update:tl},xt),cm({type:el,event:el,update:el},xt),cm({type:nl,event:nl,update:nl},xt),om("light",iy),om("dark",ly);var _m=[],bm={registerPreprocessor:am,registerProcessor:sm,registerPostInit:lm,registerPostUpdate:um,registerUpdateLifecycle:hm,registerAction:cm,registerCoordinateSystem:pm,registerLayout:dm,registerVisual:fm,registerTransform:xm,registerLoading:vm,registerMap:mm,registerImpl:function(t,e){uv[t]=e},PRIORITY:fv,ComponentModel:Tp,ComponentView:gg,SeriesModel:sg,ChartView:xg,registerComponentModel:function(t){Tp.registerClass(t)},registerComponentView:function(t){gg.registerClass(t)},registerSeriesModel:function(t){sg.registerClass(t)},registerChartView:function(t){xg.registerClass(t)},registerSubTypeDefaulter:function(t,e){Tp.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Pr(t,e)}};function wm(t){Y(t)?E(t,(function(t){wm(t)})):P(_m,t)>=0||(_m.push(t),U(t)&&(t={install:t}),t.install(bm))}function Sm(t){return null==t?0:t.length||1}function Mm(t){return t}var Im=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||Mm,this._newKeyGetter=i||Mm,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o1){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;p1)for(var a=0;a30}var zm,Vm,Bm,Fm,Gm,Wm,Hm,Ym=q,Um=z,Xm="undefined"==typeof Int32Array?Array:Int32Array,Zm=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_dimSummary","userOutput","_rawData","_dimValueGetter","_nameDimIdx","_idDimIdx","_nameRepeatCount"],jm=["_approximateExtent"],qm=function(){function t(t,e){var n;this.type="list",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"];var i=!1;Om(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(i=!0,n=t),n=n||["x","y"];for(var r={},o=[],a={},s=!1,l={},u=0;u=e)){var n=this._store.getProvider();this._updateOrdinalMeta();var i=this._nameList,r=this._idList;if(n.getSource().sourceFormat===Lp&&!n.pure)for(var o=[],a=t;a0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(Y(r=this.getVisual(e))?r=r.slice():Ym(r)&&(r=A({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Ym(e)?A(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){Ym(t)?A(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?A(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;Ys(n,this.dataType,t,e),this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){E(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:Um(this.dimensions,this._getDimInfo,this),this.hostModel)),Gm(e,this),e._store=this._store,e},t.prototype.wrapMethod=function(t,e){var n=this[t];U(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(at(arguments)))})},t.internalField=(zm=function(t){var e=t._invertedIndicesMap;E(e,(function(n,i){var r=t._dimInfos[i],o=r.ordinalMeta,a=t._store;if(o){n=e[i]=new Xm(o.categories.length);for(var s=0;s1&&(s+="__ec__"+u),i[e]=s}})),t}();function Km(t,e){Gd(t)||(t=Hd(t));var n=(e=e||{}).coordDimensions||[],i=e.dimensionsDefine||t.dimensionsDefine||[],r=ft(),o=[],a=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return E(e,(function(t){var e;q(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(t,n,i,e.dimensionsCount),s=e.canOmitUnusedDimensions&&Em(a),l=i===t.dimensionsDefine,u=l?Nm(t):Rm(i),h=e.encodeDefine;!h&&e.encodeDefaulter&&(h=e.encodeDefaulter(t,a));for(var c=ft(h),p=new Of(a),d=0;d0&&(i.name=r+(o-1)),o++,e.set(r,o)}}(o),new Pm({source:t,dimensions:o,fullDimensionCount:a,dimensionOmitted:s})}function $m(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}var Jm=function(t){this.coordSysDims=[],this.axisMap=ft(),this.categoryAxisMap=ft(),this.coordSysName=t},Qm={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",Co).models[0],o=t.getReferringComponents("yAxis",Co).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),tx(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),tx(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",Co).models[0];e.coordSysDims=["single"],n.set("single",r),tx(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",Co).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),tx(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),tx(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){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();E(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),tx(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function tx(t){return"category"===t.get("type")}function ex(t,e,n){var i,r,o,a=(n=n||{}).byIndex,s=n.stackedCoordDimension;!function(t){return!Om(t.schema)}(e)?(r=e.schema,i=r.dimensions,o=e.store):i=e;var l,u,h,c,p=!(!t||!t.get("stack"));if(E(i,(function(t,e){X(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="__\0ecstackresult_"+t.id,c="__\0ecstackedover_"+t.id,l&&(l.createInvertedIndices=!0);var d=u.coordDim,f=u.type,g=0;E(i,(function(t){t.coordDim===d&&g++}));var y={name:h,coordDim:d,coordDimIndex:g,type:f,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length},v={name:c,coordDim:c,coordDimIndex:g+1,type:f,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};r?(o&&(y.storeDimIndex=o.ensureCalculationDimension(c,f),v.storeDimIndex=o.ensureCalculationDimension(h,f)),r.appendCalculationDimension(y),r.appendCalculationDimension(v)):(i.push(y),i.push(v))}return{stackedDimension:u&&u.name,stackedByDimension:l&&l.name,isStackedByIndex:a,stackedOverDimension:c,stackResultDimension:h}}function nx(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function ix(t,e){return nx(t,e)?t.getCalculationInfo("stackResultDimension"):e}function rx(t,e,n){n=n||{};var i,r=e.getSourceManager(),o=!1;t?(o=!0,i=Hd(t)):o=(i=r.getSource()).sourceFormat===Lp;var a=function(t){var e=t.get("coordinateSystem"),n=new Jm(e),i=Qm[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e),s=function(t,e){var n,i=t.get("coordinateSystem"),r=hd.get(i);return e&&e.coordSysDims&&(n=z(e.coordSysDims,(function(t){var n={name:t},i=e.axisMap.get(t);if(i){var r=i.get("type");n.type=Dm(r)}return n}))),n||(n=r&&(r.getDimensionsInfo?r.getDimensionsInfo():r.dimensions.slice())||["x","y"]),n}(e,a),l=n.useEncodeDefaulter,u=U(l)?l:l?H(Hp,s,e):null,h=Km(i,{coordDimensions:s,generateCoord:n.generateCoord,encodeDefine:e.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!o}),c=function(t,e,n){var i,r;return n&&E(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}(h.dimensions,n.createInvertedIndices,a),p=o?null:r.getSharedDataStore(h),d=ex(e,{schema:h,store:p}),f=new qm(h,e);f.setCalculationInfo(d);var g=null!=c&&function(t){if(t.sourceFormat===Lp)return!Y(fo(function(t){for(var e=0;ee[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}();Go(ox);var ax=0,sx=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++ax}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&z(i,lx);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if(!X(t)&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=ft(this.categories))},t}();function lx(t){return q(t)&&null!=t.value?t.value:t+""}function ux(t){return"interval"===t.type||"log"===t.type}function cx(t){var e=Math.pow(10,Kr(t)),n=t/e;return n?2===n?n=3:3===n?n=5:n*=2:n=1,zr(n*e)}function px(t){return Br(t)+2}function dx(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function fx(t,e){return t>=e[0]&&t<=e[1]}function gx(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function yx(t,e){return t*(e[1]-e[0])+e[0]}var vx=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new sx({})),Y(i)&&(i=new sx({categories:z(i,(function(t){return q(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return n(e,t),e.prototype.parse=function(t){return null==t?NaN:X(t)?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return fx(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return gx(t=this._getTickNumber(this.parse(t)),this._extent)},e.prototype.scale=function(t){return t=Math.round(yx(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r=0&&t=0&&t=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.calcNiceTicks=function(){},e.prototype.calcNiceExtent=function(){},e.type="ordinal",e}(ox);ox.registerClass(vx);var mx=zr,xx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return n(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return fx(t,this._extent)},e.prototype.normalize=function(t){return gx(t,this._extent)},e.prototype.scale=function(t){return yx(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=px(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:mx(s+e,r)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&hi&&(a=r.interval=i);var s=r.intervalPrecision=px(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),dx(t,0,e),dx(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[zr(Math.ceil(t[0]/a)*a,s),zr(Math.floor(t[1]/a)*a,s)],t),r}(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},e.prototype.calcNiceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax||(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]=mx(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=mx(Math.ceil(e[1]/r)*r))},e.prototype.setNiceExtent=function(t,e){this._niceExtent=[t,e]},e.type="interval",e}(ox);ox.registerClass(xx);var _x="undefined"!=typeof Float32Array,bx=_x?Float32Array:Array;function Sx(t){return Y(t)?_x?new Float32Array(t):t:new bx(t)}var Mx="__ec_stack_";function Ix(t){return t.get("stack")||Mx+t.seriesIndex}function Tx(t){return t.dim+t.index}function Cx(t,e){var n=[];return e.eachSeriesByType(t,(function(t){Px(t)&&n.push(t)})),n}function Dx(t){var e=function(t){var e={};E(t,(function(t){var n=t.coordinateSystem.getBaseAxis();if("time"===n.type||"value"===n.type)for(var i=t.getData(),r=n.dim+"_"+n.index,o=i.getDimensionIndex(i.mapDimension(n.dim)),a=i.getStore(),s=0,l=a.count();s0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return E(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=Er(t.get("barWidth"),i),d=Er(t.get("barMaxWidth"),i),f=Er(t.get("barMinWidth")||(Ox(t)?.5:1),i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:d,barMinWidth:f,barGap:g,barCategoryGap:y,axisKey:Tx(r),stackId:Ix(t)})})),Ax(n)}function Ax(t){var e={};E(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return E(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=G(i).length;o=Math.max(35-4*a,15)+"%"}var s=Er(o,r),l=Er(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),E(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width)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&&ei&&(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;E(i,(function(t,e){t.width||(t.width=c),p=t,d+=t.width*(1+l)})),p&&(d-=p.width*l);var f=-d/2;E(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)}))})),n}function kx(t,e){var n=Cx(t,e),i=Dx(n);E(n,(function(t){var e=t.getData(),n=t.coordinateSystem.getBaseAxis(),r=Ix(t),o=i[Tx(n)][r],a=o.offset,s=o.width;e.setLayout({bandWidth:o.bandWidth,offset:a,size:s})}))}function Lx(t){return{seriesType:t,plan:yg(),reset:function(t){if(Px(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=nx(e,l)&&!!e.getCalculationInfo("stackedOnSeries"),c=r.isHorizontal(),p=function(t,e){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}(0,r),d=Ox(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&&Sx(3*r),u=d&&s&&Sx(3*r),m=d&&Sx(r),x=n.master.getRect(),_=c?x.width:x.height,b=e.getStore(),w=0;null!=(i=t.next());){var S=b.get(h?g:o,i),M=b.get(a,i),I=p,T=void 0;h&&(T=+S-b.get(o,i));var C=void 0,D=void 0,A=void 0,k=void 0;if(c){var L=n.dataToPoint([S,M]);h&&(I=n.dataToPoint([T,M])[0]),C=I,D=L[1]+v,A=L[0]-I,k=y,Math.abs(A)0)for(var s=0;s=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(Y(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return Vc(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},e.prototype.getTicks=function(){var t=this._interval,e=this._extent,n=[];if(!t)return n;n.push({value:e[0],level:0});var i=this.getSetting("useUTC"),r=function(t,e,n,i){var o=Rc,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[d])break}h=[]}}var x=B(z(u,(function(t){return B(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),_=[],b=x.length-1;for(d=0;dn&&(this._approxInterval=n);var o=Nx.length,a=Math.min(function(t,e,n,i){for(;n>>1;t[r][1]16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function zx(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function Vx(t){return(t/=36e5)>12?12:t>6?6:t>3.5?4:t>2?2:1}function Bx(t,e){return(t/=e?6e4:1e3)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function Fx(t){return $r(t,!0)}function Gx(t,e,n){var i=new Date(t);switch(Ec(e)){case"year":case"month":i[qc(n)](0);case"day":i[Kc(n)](1);case"hour":i[$c(n)](0);case"minute":i[Jc(n)](0);case"second":i[Qc(n)](0),i[tp(n)](0)}return i.getTime()}ox.registerClass(Rx);var Wx=ox.prototype,Hx=xx.prototype,Yx=zr,Ux=Math.floor,Xx=Math.ceil,Zx=Math.pow,jx=Math.log,qx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new xx,e._interval=0,e}return n(e,t),e.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return z(Hx.getTicks.call(this,t),(function(t){var e=t.value,r=zr(Zx(this.base,e));return r=e===n[0]&&this._fixMin?$x(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?$x(r,i[1]):r}}),this)},e.prototype.setExtent=function(t,e){var n=this.base;t=jx(t)/jx(n),e=jx(e)/jx(n),Hx.setExtent.call(this,t,e)},e.prototype.getExtent=function(){var t=this.base,e=Wx.getExtent.call(this);e[0]=Zx(t,e[0]),e[1]=Zx(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=$x(e[0],n[0])),this._fixMax&&(e[1]=$x(e[1],n[1])),e},e.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=jx(t[0])/jx(e),t[1]=jx(t[1])/jx(e),Wx.unionExtent.call(this,t)},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.calcNiceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=qr(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[zr(Xx(e[0]/i)*i),zr(Ux(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},e.prototype.calcNiceExtent=function(t){Hx.calcNiceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return fx(t=jx(t)/jx(this.base),this._extent)},e.prototype.normalize=function(t){return gx(t=jx(t)/jx(this.base),this._extent)},e.prototype.scale=function(t){return t=yx(t,this._extent),Zx(this.base,t)},e.type="log",e}(ox),Kx=qx.prototype;function $x(t,e){return Yx(t,Br(e))}Kx.getMinorTicks=Hx.getMinorTicks,Kx.getLabel=Hx.getLabel,ox.registerClass(qx);var Jx=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),a<0&&s<0&&!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[t_[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){this[Qx[t]]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),Qx={min:"_determinedMin",max:"_determinedMax"},t_={min:"_dataMin",max:"_dataMax"};function e_(t,e,n){var i=t.rawExtentInfo;return i||(i=new Jx(t,e,n),t.rawExtentInfo=i,i)}function n_(t,e){return null==e?null:nt(e)?NaN:t.parse(e)}function i_(t,e){var n=t.type,i=e_(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=Cx("bar",a),l=!1;if(E(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=Dx(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=function(t,e,n){if(t&&e){var i=t[Tx(e)];return i}}(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;E(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;E(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function r_(t,e){var n=e,i=i_(t,n),r=i.extent,o=n.get("splitNumber");t instanceof qx&&(t.base=n.get("logBase"));var a=t.type,s=n.get("interval"),l="interval"===a||"time"===a;t.setExtent(r[0],r[1]),t.calcNiceExtent({splitNumber:o,fixMin:i.fixMin,fixMax:i.fixMax,minInterval:l?n.get("minInterval"):null,maxInterval:l?n.get("maxInterval"):null}),null!=s&&t.setInterval&&t.setInterval(s)}function o_(t,e){if(e=e||t.get("type"))switch(e){case"category":return new vx({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new Rx({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(ox.getClass(e)||xx)}}function a_(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):X(i)?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):U(i)?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(s_(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function s_(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function l_(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));return new sr(t.x,t.y,o,a)}function u_(t){var e=t.get("interval");return null==e?"auto":e}function h_(t){return"category"===t.type&&0===u_(t.getLabelModel())}function c_(t,e){var n={};return E(t.mapDimensionsAll(e),(function(e){n[ix(t,e)]=!0})),G(n)}var p_=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}(),d_={isDimensionStacked:nx,enableDataStack:ex,getStackedDimension:ix},f_=Object.freeze({__proto__:null,createList:function(t){return rx(null,t)},getLayoutRect:xp,dataStack:d_,createScale:function(t,e){var n=e;e instanceof dc||(n=new dc(e));var i=o_(n);return i.setExtent(t[0],t[1]),r_(i,n),i},mixinAxisModelCommonMethods:function(t){R(t,p_)},getECData:Hs,createTextStyle:function(t,e){return Uh(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:function(t,e){return Km(t,e).dimensions},createSymbol:Ly,enableHoverEmphasis:Ol});function g_(t,e){return Math.abs(t-e)<1e-8}function y_(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;on&&(t=r,n=a)}if(t)return function(t){for(var e=0,n=0,i=0,r=t.length,o=t[r-1][0],a=t[r-1][1],s=0;s>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function C_(t,e){return z(B((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;return null==n&&(n=1024),E(e.features,(function(t){var e=t.geometry,i=e.encodeOffsets,r=e.coordinates;if(i)switch(e.type){case"LineString":e.coordinates=T_(r,i,n);break;case"Polygon":case"MultiLineString":I_(r,i,n);break;case"MultiPolygon":E(r,(function(t,e){return I_(t,i[e],n)}))}})),e.UTF8Encoding=!1,e}(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 b_(o[0],o.slice(1)));break;case"MultiPolygon":E(i.coordinates,(function(t){t[0]&&r.push(new b_(t[0],t.slice(1)))}));break;case"LineString":r.push(new w_([i.coordinates]));break;case"MultiLineString":r.push(new w_(i.coordinates))}var a=new S_(n[e||"name"],r,n.cp);return a.properties=n,a}))}var D_=Object.freeze({__proto__:null,linearMap:Nr,round:zr,asc:Vr,getPrecision:Br,getPrecisionSafe:Fr,getPixelPrecision:Gr,getPercentWithPrecision:Wr,MAX_SAFE_INTEGER:Yr,remRadian:Ur,isRadianAroundZero:Xr,parseDate:jr,quantity:qr,quantityExponent:Kr,nice:$r,quantile:Jr,reformIntervals:Qr,isNumeric:eo,numericToNumber:to}),A_=Object.freeze({__proto__:null,parse:jr,format:Vc}),k_=Object.freeze({__proto__:null,extendShape:fh,extendPath:yh,makePath:xh,makeImage:_h,mergePath:wh,resizePath:Sh,createIcon:Ph,updateProps:rh,initProps:oh,getTransform:Ih,clipPointsByRect:kh,clipRectByRect:Lh,registerShape:vh,getShapeClass:mh,Group:Cr,Image:_s,Text:ks,Circle:hu,Ellipse:pu,Sector:Cu,Ring:Au,Polygon:Pu,Polyline:Ru,Rect:Cs,Line:zu,BezierCurve:Gu,Arc:Hu,IncrementalDisplayable:th,CompoundPath:Yu,LinearGradient:Xu,RadialGradient:Zu,BoundingRect:sr}),L_=Object.freeze({__proto__:null,addCommas:ep,toCamelCase:np,normalizeCssArray:ip,encodeHTML:ap,formatTpl:hp,getTooltipMarker:cp,formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=jr(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.replace("MM",Nc(a,2)).replace("M",a).replace("yyyy",o).replace("yy",Nc(o%100+"",2)).replace("dd",Nc(s,2)).replace("d",s).replace("hh",Nc(l,2)).replace("h",l).replace("mm",Nc(u,2)).replace("m",u).replace("ss",Nc(h,2)).replace("s",h).replace("SSS",Nc(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:$o,getTextRect:function(t,e,n,i,r,o,a,s){return new ks({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),P_=Object.freeze({__proto__:null,map:z,each:E,indexOf:P,inherits:O,reduce:V,filter:B,bind:W,curry:H,isArray:Y,isString:X,isObject:q,isFunction:U,extend:A,defaults:k,clone:T,merge:C}),O_=So();function E_(t,e){var n,i,r=z_(t,"labels"),o=u_(e);return V_(r,o)||(U(o)?n=G_(t,o):(i="auto"===o?function(t){var e=O_(t).autoInterval;return null!=e?e:O_(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=F_(t,i)),B_(r,o,{labels:n,labelCategoryInterval:i}))}function z_(t,e){return O_(t)[e]||(O_(t)[e]=[])}function V_(t,e){for(var n=0;n1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=h_(t),p=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var f=u;f<=o[1];f+=l)g(f);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&f-l!==o[1]&&g(o[1]),s}function G_(t,e,n){var i=t.scale,r=a_(t),o=[];return E(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}var W_=[0,1],H_=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Gr(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&&Y_(n=n.slice(),i.count()),Nr(t,W_,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&Y_(n=n.slice(),i.count());var r=Nr(t,n,W_,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=z(function(t,e){return"category"===t.type?function(t,e){var n,i,r=z_(t,"ticks"),o=u_(e),a=V_(r,o);if(a)return a;if(e.get("show")&&!t.scale.isBlank()||(n=[]),U(o))n=G_(t,o,!0);else if("auto"===o){var s=E_(t,t.getLabelModel());i=s.labelCategoryInterval,n=z(s.labels,(function(t){return t.tickValue}))}else n=F_(t,i=o,!0);return B_(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:z(t.scale.getTicks(),(function(t){return t.value}))}}(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(t.onBand&&!n&&r){var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;E(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift()),i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]}),c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop()),i&&c(o.coord,s[1])&&e.push({coord:s[1]})}function c(t,e){return t=zr(t),e=zr(e),h?t>e:t0&&t<100||(t=5),z(this.scale.getMinorTicks(t),(function(t){return z(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return function(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=E_(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=a_(t);return{labels:z(e,(function(e,i){return{level:e.level,formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}(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 function(t){var e=function(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()}}(t),n=a_(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(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,g,y=cr(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 x=Math.max(0,Math.floor(Math.min(v,m))),_=O_(t.model),b=t.getExtent(),w=_.lastAutoInterval,S=_.lastTickCount;return null!=w&&null!=S&&Math.abs(w-x)<=1&&Math.abs(S-a)<=1&&w>x&&_.axisExtent0===b[0]&&_.axisExtent1===b[1]?x=w:(_.lastTickCount=a,_.lastAutoInterval=x,_.axisExtent0=b[0],_.axisExtent1=b[1]),x}(this)},t}();function Y_(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}var U_=2*Math.PI,X_=qa.CMD,Z_=["top","right","bottom","left"];function j_(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 q_(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%U_<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=ts(r),r=ts(p)}else i=ts(i),r=ts(r);i>r&&(r+=U_);var d=Math.atan2(s,a);if(d<0&&(d+=U_),d>=i&&d<=r||d+U_>=i&&d+U_<=r)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),x=(y-a)*(y-a)+(v-s)*(v-s);return m0){e=e/180*Math.PI,eb.fromArray(t[0]),nb.fromArray(t[1]),ib.fromArray(t[2]),Ji.sub(rb,eb,nb),Ji.sub(ob,ib,nb);var n=rb.len(),i=ob.len();if(!(n<.001||i<.001)){rb.scale(1/n),ob.scale(1/i);var r=rb.dot(ob);if(Math.cos(e)1&&Ji.copy(lb,ib),lb.toArray(t[1])}}}}function hb(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,eb.fromArray(t[0]),nb.fromArray(t[1]),ib.fromArray(t[2]),Ji.sub(rb,nb,eb),Ji.sub(ob,ib,nb);var i=rb.len(),r=ob.len();if(!(i<.001||r<.001)&&(rb.scale(1/i),ob.scale(1/r),rb.dot(e)=a)Ji.copy(lb,ib);else{lb.scaleAndAdd(ob,o/Math.tan(Math.PI/2-s));var l=ib.x!==nb.x?(lb.x-nb.x)/(ib.x-nb.x):(lb.y-nb.y)/(ib.y-nb.y);if(isNaN(l))return;l<0?Ji.copy(lb,nb):l>1&&Ji.copy(lb,ib)}lb.toArray(t[1])}}}function cb(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(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 pb(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=Et(i[0],i[1]),o=Et(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=Bt([],i[1],i[0],a/r),l=Bt([],i[1],i[2],a/o),u=Bt([],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;h0&&o&&_(-h/a,0,a);var f,g,y=t[0],v=t[a-1];return m(),f<0&&b(-f,.8),g<0&&b(g,.8),m(),x(f,g,1),x(g,f,-1),m(),f<0&&w(-f),g<0&&w(g),u}function m(){f=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function x(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){_(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function _(n,i,r){0!==n&&(u=!0);for(var o=i;o0)for(l=0;l0;l--)_(-o[l-1]*c,l,a)}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i0?_(n,0,i+1):_(-n,a-i-1,a),(t-=n)<=0)return}}function vb(t,e,n,i){return yb(t,"y","height",e,n,i)}function mb(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new sr(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r=0&&n.attr(d.oldLayoutSelect),P(u,"emphasis")>=0&&n.attr(d.oldLayoutEmphasis)),rh(n,s,e,a)}else if(n.attr(s),!Jh(n).valueAnimation){var h=rt(n.style.opacity,1);n.style.opacity=0,oh(n,{style:{opacity:h}},e,a)}if(d.oldLayout=s,n.states.select){var c=d.oldLayoutSelect={};Ib(c,s,Tb),Ib(c,n.states.select,Tb)}if(n.states.emphasis){var p=d.oldLayoutEmphasis={};Ib(p,s,Tb),Ib(p,n.states.emphasis,Tb)}tc(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(d=Mb(i)).oldLayout;var d,f={points:i.shape.points};r?(i.attr({shape:r}),rh(i,{shape:f},e)):(i.setShape(f),i.style.strokePercent=0,oh(i,{style:{strokePercent:1}},e)),d.oldLayout=f}},t}(),Db=So(),Ab=Math.sin,kb=Math.cos,Lb=Math.PI,Pb=2*Math.PI,Ob=180/Lb,Rb=function(){function t(){}return t.prototype.reset=function(t){this._start=!0,this._d=[],this._str="",this._p=Math.pow(10,t||4)},t.prototype.moveTo=function(t,e){this._add("M",t,e)},t.prototype.lineTo=function(t,e){this._add("L",t,e)},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){this._add("C",t,e,n,i,r,o)},t.prototype.quadraticCurveTo=function(t,e,n,i){this._add("Q",t,e,n,i)},t.prototype.arc=function(t,e,n,i,r,o){this.ellipse(t,e,n,n,0,i,r,o)},t.prototype.ellipse=function(t,e,n,i,r,o,a,s){var d,l=a-o,u=!s,h=Math.abs(l),c=En(h-Pb)||(u?l>=Pb:-l>=Pb),p=l>0?l%Pb:l%Pb+Pb;d=!!c||!En(h)&&p>=Lb==!!u;var f=t+n*kb(o),g=e+i*Ab(o);this._start&&this._add("M",f,g);var y=Math.round(r*Ob);if(c){var v=1/this._p,m=(u?1:-1)*(Pb-v);this._add("A",n,i,y,1,+u,t+n*kb(o+m),e+i*Ab(o+m)),v>.01&&this._add("A",n,i,y,0,+u,f,g)}else{var x=t+n*kb(a),_=e+i*Ab(a);this._add("A",n,i,y,+d,+u,x,_)}},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("l",n,0),this._add("l",0,i),this._add("l",-n,0),this._add("Z")},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,l){for(var u=[],h=this._p,c=1;c"}(r,e.attrs)+(e.text||"")+(i?""+n+z(i,(function(e){return t(e)})).join(n)+n:"")+""}(t)}function Ub(t){return{zrId:t,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssClassIdx:0,cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function Xb(t,e,n,i){return Hb("svg","root",{width:t,height:e,xmlns:Fb,"xmlns:xlink":Gb,version:"1.1",baseProfile:"full",viewBox:!!i&&"0 0 "+t+" "+e},n)}var Zb={cubicIn:"0.32,0,0.67,0",cubicOut:"0.33,1,0.68,1",cubicInOut:"0.65,0,0.35,1",quadraticIn:"0.11,0,0.5,0",quadraticOut:"0.5,1,0.89,1",quadraticInOut:"0.45,0,0.55,1",quarticIn:"0.5,0,0.75,0",quarticOut:"0.25,1,0.5,1",quarticInOut:"0.76,0,0.24,1",quinticIn:"0.64,0,0.78,0",quinticOut:"0.22,1,0.36,1",quinticInOut:"0.83,0,0.17,1",sinusoidalIn:"0.12,0,0.39,0",sinusoidalOut:"0.61,1,0.88,1",sinusoidalInOut:"0.37,0,0.63,1",exponentialIn:"0.7,0,0.84,0",exponentialOut:"0.16,1,0.3,1",exponentialInOut:"0.87,0,0.13,1",circularIn:"0.55,0,1,0.45",circularOut:"0,0.55,0.45,1",circularInOut:"0.85,0,0.15,1"},jb="transform-origin";function qb(t,e,n){var i=A({},t.shape);A(i,e),t.buildPath(n,i);var r=new Rb;return r.reset(Yn(t)),n.rebuildPath(r,1),r.generateStr(),r.getStr()}function Kb(t,e){var n=e.originX,i=e.originY;(n||i)&&(t[jb]=n+"px "+i+"px")}var $b={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function Jb(t,e){var n=e.zrId+"-ani-"+e.cssAnimIdx++;return e.cssAnims[n]=t,n}function Qb(t){return X(t)?Zb[t]?"cubic-bezier("+Zb[t]+")":rn(t)?t:"":""}function tw(t,e,n,i){var r=t.animators,o=r.length,a=[];if(t instanceof Yu){if(y=function(t,e,n){var i,r,o=t.shape.paths,a={};if(E(o,(function(t){var e=Ub(n.zrId);e.animation=!0,tw(t,{},e,!0);var o=e.cssAnims,s=e.cssNodes,l=G(o),u=l.length;if(u){var h=o[r=l[u-1]];for(var c in h){var p=h[c];a[c]=a[c]||{d:""},a[c].d+=p.d||""}for(var d in s){var f=s[d].animation;f.indexOf(r)>=0&&(i=f)}}})),i){e.d=!1;var s=Jb(a,n);return i.replace(r,s)}}(t,e,n))a.push(y);else if(!o)return}else if(!o)return;for(var s={},l=0;l0})).length)return Jb(h,n)+" "+r[0]+" both"}for(var g in s){var y;(y=f(s[g]))&&a.push(y)}if(a.length){var v=n.zrId+"-cls-"+n.cssClassIdx++;n.cssNodes["."+v]={animation:a.join(",")},e.class=v}}var ew=Math.round;function nw(t){return t&&X(t.src)}function iw(t){return t&&U(t.toDataURL)}function rw(t,e,n,i){(function(t,e,n,i){var r=null==e.opacity?1:e.opacity;if(n instanceof _s)t("opacity",r);else{if(function(t){var e=t.fill;return null!=e&&e!==Nb}(e)){var o=Rn(e.fill);t("fill",o.color);var a=null!=e.fillOpacity?e.fillOpacity*o.opacity*r:o.opacity*r;(i||a<1)&&t("fill-opacity",a)}else t("fill",Nb);if(function(t){var e=t.stroke;return null!=e&&e!==Nb}(e)){var s=Rn(e.stroke);t("stroke",s.color);var l=e.strokeNoScale?n.getLineScale():1,u=l?(e.lineWidth||0)/l:0,h=null!=e.strokeOpacity?e.strokeOpacity*s.opacity*r:s.opacity*r,c=e.strokeFirst;if((i||1!==u)&&t("stroke-width",u),(i||c)&&t("paint-order",c?"stroke":"fill"),(i||h<1)&&t("stroke-opacity",h),e.lineDash){var p=Vy(n),d=p[0],f=p[1];d&&(f=Eb(f||0),t("stroke-dasharray",d.join(",")),(f||i)&&t("stroke-dashoffset",f))}else i&&t("stroke-dasharray",Nb);for(var g=0;gl?Dw(t,null==n[c+1]?null:n[c+1].elm,n,s,c):Aw(t,e,a,l))}(n,i,r):Mw(r)?(Mw(t.text)&&bw(n,""),Dw(n,null,r,0,r.length-1)):Mw(i)?Aw(n,i,0,i.length-1):Mw(t.text)&&bw(n,""):t.text!==e.text&&(Mw(i)&&Aw(n,i,0,i.length-1),bw(n,e.text)))}var Pw=0,Ow=function(){function t(t,e,n){if(this.type="svg",this.refreshHover=function(){},this.configLayer=function(){},this.storage=e,this._opts=n=A({},n),this.root=t,this._id="zr"+Pw++,this._oldVNode=Xb(n.width,n.height),t&&!n.ssr){var i=this._viewport=document.createElement("div");i.style.cssText="position:relative;overflow:hidden";var r=this._svgDom=this._oldVNode.elm=Wb("svg");kw(null,this._oldVNode),i.appendChild(r),t.appendChild(i)}this.resize(n.width,n.height)}return t.prototype.getType=function(){return this.type},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.refresh=function(){if(this.root){var t=this.renderToVNode({willUpdate:!0});t.attrs.style="position:absolute;left:0;top:0;user-select:none",function(t,e){if(Tw(t,e))Lw(t,e);else{var n=t.elm,i=xw(n);Cw(e),null!==i&&(yw(i,e.elm,_w(n)),Aw(i,[t],0,0))}}(this._oldVNode,t),this._oldVNode=t}},t.prototype.renderOneToVNode=function(t){return dw(t,Ub(this._id))},t.prototype.renderToVNode=function(t){t=t||{};var e=this.storage.getDisplayList(!0),n=this._backgroundColor,i=this._width,r=this._height,o=Ub(this._id);o.animation=t.animation,o.willUpdate=t.willUpdate,o.compress=t.compress;var a=[];if(n&&"none"!==n){var s=Rn(n),l=s.color,u=s.opacity;this._bgVNode=Hb("rect","bg",{width:i,height:r,x:"0",y:"0",id:"0",fill:l,"fill-opacity":u}),a.push(this._bgVNode)}else this._bgVNode=null;var h=t.compress?null:this._mainVNode=Hb("g","main",{},[]);this._paintList(e,o,h?h.children:a),h&&a.push(h);var c=z(G(o.defs),(function(t){return o.defs[t]}));if(c.length&&a.push(Hb("defs","defs",{},c)),t.animation){var p=function(t,e,n){var i=(n=n||{}).newline?"\n":"",r=" {"+i,o=i+"}",a=z(G(t),(function(e){return e+r+z(G(t[e]),(function(n){return n+":"+t[e][n]+";"})).join(i)+o})).join(i),s=z(G(e),(function(t){return"@keyframes "+t+r+z(G(e[t]),(function(n){return n+r+z(G(e[t][n]),(function(i){var r=e[t][n][i];return"d"===i&&(r='path("'+r+'")'),i+":"+r+";"})).join(i)+o})).join(i)+o})).join(i);return a||s?[""].join(i):""}(o.cssNodes,o.cssAnims,{newline:!0});if(p){var d=Hb("style","stl",{},[],p);a.push(d)}}return Xb(i,r,a,t.useViewBox)},t.prototype.renderToString=function(t){return t=t||{},Yb(this.renderToVNode({animation:rt(t.cssAnimation,!0),willUpdate:!1,compress:!0,useViewBox:rt(t.useViewBox,!0)}),{newline:!0})},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t;var e=this._bgVNode;if(e&&e.elm){var n=Rn(t),i=n.color,r=n.opacity;e.elm.setAttribute("fill",i),r<1&&e.elm.setAttribute("fill-opacity",r)}},t.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},t.prototype._paintList=function(t,e,n){for(var i,r,o=t.length,a=[],s=0,l=0,u=0;u=0&&(!c||!r||c[f]!==r[f]);f--);for(var g=d-1;g>f;g--)i=a[--s-1];for(var y=f+1;y=a)}}for(var h=this.__startIndex;h15)break}n.prevElClipPaths&&u.restore()};if(p)if(0===p.length)s=l.__endIndex;else for(var _=d.dpr,b=0;b0&&t>i[0]){for(s=0;st);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?.01:0),this._needsManuallyCompositing),u.__builtin__||I("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),1&s.__dirty&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!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,E(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?C(n[t],e,!0):n[t]=e;for(var i=0;i-1&&(s.style.stroke=s.style.fill,s.style.fill="#fff",s.style.lineWidth=2),e},e.type="series.line",e.dependencies=["grid","polar"],e.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},e}(sg);function Ww(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=af(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(" ")}var Yw=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return n(e,t),e.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=Ly(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=Uw,this._symbolType=t,this.add(o)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolType=function(){return this._symbolType},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){_l(this.childAt(0))},e.prototype.downplay=function(){bl(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t,e){var n=this.childAt(0);n.draggable=t,n.cursor=!e&&t?"move":n.cursor},e.prototype.updateData=function(t,n,i,r){this.silent=!1;var o=t.getItemVisual(n,"symbol")||"circle",a=t.hostModel,s=e.getSymbolSize(t,n),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,t,n,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):rh(p,c,a,n),hh(p)}if(this._updateCommon(t,n,s,i,r),l){var p=this.childAt(0);u||(c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}},p.scaleX=p.scaleY=0,p.style.opacity=0,oh(p,c,a,n))}u&&this.childAt(0).stopAnimation("leave")},e.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,c=i.labelStatesModels,p=i.hoverScale,d=i.cursorStyle,h=i.emphasisDisabled),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");o=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=v.get("disabled"),c=Yh(y),p=v.getShallow("scale"),d=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");f.attr("rotation",(m||0)*Math.PI/180||0);var x=Oy(t.getItemVisual(e,"symbolOffset"),n);x&&(f.x=x[0],f.y=x[1]),d&&f.attr("cursor",d);var _=t.getItemVisual(e,"style"),b=_.fill;if(f instanceof _s){var w=f.style;f.useStyle(A({image:w.image,x:w.x,y:w.y,width:w.width,height:w.height},_))}else f.__isEmptyBrush?f.useStyle(A({},_)):f.useStyle(_),f.style.decal=null,f.setColor(b,r&&r.symbolInnerColor),f.style.strokeNoScale=!0;var S=t.getItemVisual(e,"liftZ"),M=this._z2;null!=S?null==M&&(this._z2=f.z2,f.z2+=S):null!=M&&(f.z2=M,this._z2=null);var I=r&&r.useNameLabel;Hh(f,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return I?t.getName(e):Ww(t,e)},inheritColor:b,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var T=f.ensureState("emphasis");if(T.style=o,f.ensureState("select").style=s,f.ensureState("blur").style=a,p){var C=Math.max(j(p)?p:1.1,3/this._sizeY);T.scaleX=this._sizeX*C,T.scaleY=this._sizeY*C}this.setSymbolScale(1),Rl(this,l,u,h)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e,n){var i=this.childAt(0),r=Hs(this).dataIndex,o=n&&n.animation;if(this.silent=i.silent=!0,n&&n.fadeLabel){var a=i.getTextContent();a&&sh(a,{style:{opacity:0}},e,{dataIndex:r,removeOpt:o,cb:function(){i.removeTextContent()}})}else i.removeTextContent();sh(i,{style:{opacity:0},scaleX:0,scaleY:0},e,{dataIndex:r,cb:t,removeOpt:o})},e.getSymbolSize=function(t,e){return Py(t.getItemVisual(e,"symbolSize"))},e}(Cr);function Uw(t,e){this.parent.drift(t,e)}function Xw(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 Zw(t){return null==t||q(t)||(t={isIgnore:t}),t||{}}function jw(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:Yh(e),cursorStyle:e.get("cursor")}}var qw=function(){function t(t){this.group=new Cr,this._SymbolCtor=t||Yw}return t.prototype.updateData=function(t,e){this._progressiveEls=null,e=Zw(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=jw(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(Xw(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(Xw(t,d,h,e)){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)).setPosition(d);else{p.updateData(t,h,s,l);var y={x:d[0],y:d[1]};a?p.attr(y):rh(p,y,i)}n.add(p),t.setItemGraphicEl(h,p)}else n.remove(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=jw(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=Zw(n);for(var r=t.start;r0?n=i[0]:i[1]<0&&(n=i[1]),n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=z(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,d=e.getCalculationInfo("stackResultDimension");return nx(e,c[0])&&(p=!0,c[0]=d),nx(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 $w(t,e,n,i){var r=NaN;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)}var Jw=Math.min,Qw=Math.max;function tS(t,e){return isNaN(t)||isNaN(e)}function eS(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,d,f,g=n,y=0;y=r||g<0)break;if(tS(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var x=v-u,_=m-h;if(x*x+_*_<.5){g+=o;continue}if(a>0){for(var b=g+o,w=e[2*b],S=e[2*b+1];w===v&&S===m&&y=i||tS(w,S))d=v,f=m;else{T=w-u,C=S-h;var k=v-u,L=w-v,P=m-h,O=S-m,R=void 0,N=void 0;if("x"===s){var E=T>0?1:-1;d=v-E*(R=Math.abs(k))*a,f=m,D=v+E*(N=Math.abs(L))*a,A=m}else if("y"===s){var z=C>0?1:-1;d=v,f=m-z*(R=Math.abs(P))*a,D=v,A=m+z*(N=Math.abs(O))*a}else R=Math.sqrt(k*k+P*P),d=v-T*a*(1-(I=(N=Math.sqrt(L*L+O*O))/(N+R))),f=m-C*a*(1-I),A=m+C*a*I,D=Jw(D=v+T*a*I,Qw(w,v)),A=Jw(A,Qw(S,m)),D=Qw(D,Jw(w,v)),f=m-(C=(A=Qw(A,Jw(S,m)))-m)*R/N,d=Jw(d=v-(T=D-v)*R/N,Qw(u,v)),f=Jw(f,Qw(h,m)),D=v+(T=v-(d=Qw(d,Jw(u,v))))*N/R,A=m+(C=m-(f=Qw(f,Jw(h,m))))*N/R}t.bezierCurveTo(c,p,d,f,v,m),c=D,p=A}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var nS=function(){this.smooth=0,this.smoothConstraint=!0},iS=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new nS},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&tS(n[2*r-2],n[2*r-1]);r--);for(;i=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],d=r[l++],f=r[l++];var v=a?Ue(n,u,c,d,t,s):Ue(i,h,p,f,t,s);if(v>0)for(var m=0;m=0)return y=a?He(i,h,p,f,x):He(n,u,c,d,x),a?[t,y]:[y,t]}n=d,i=f}}},e}(gs),rS=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(nS),oS=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return n(e,t),e.prototype.getDefaultShape=function(){return new rS},e.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&&tS(n[2*o-2],n[2*o-1]);o--);for(;r=0;a--){var s=t.getDimensionInfo(i[a].dimension);if("x"===(r=s&&s.coordDim)||"y"===r){o=i[a];break}}if(o){var l=e.getAxis(r),u=z(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=function(t,e){var n,i,r=[],o=t.length;function a(t,e,n){var i=t.coord;return{coord:n,color:Tn((n-i)/(e.coord-i),[t.color,e.color])}}for(var s=0;se){i?r.push(a(i,l,e)):n&&r.push(a(n,l,0),a(n,l,e));break}n&&(r.push(a(n,l,0)),n=null),r.push(l),i=l}}return r}(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=p[0].coord-10,g=p[d-1].coord+10,y=g-f;if(y<.001)return"transparent";E(p,(function(t){t.offset=(t.coord-f)/y})),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 v=new Xu(0,0,0,0,p,!0);return v[r]=f,v[r+"2"]=g,v}}}function yS(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!function(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;ai)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return E(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function vS(t,e){return[t[2*e],t[2*e+1]]}function mS(t){if(t.get(["endLabel","show"]))return!0;for(var e=0;e0&&"bolder"===t.get(["emphasis","lineStyle","width"])&&(d.getState("emphasis").style.lineWidth=+d.style.lineWidth+1),Hs(d).seriesIndex=t.seriesIndex,Rl(d,L,P,O);var R=dS(t.get("smooth")),N=t.get("smoothMonotone");if(d.setShape({smooth:R,smoothMonotone:N,connectNulls:w}),f){var E=a.getCalculationInfo("stackedOnSeries"),z=0;f.useStyle(k(l.getAreaStyle(),{fill:C,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),E&&(z=dS(E.get("smooth"))),f.setShape({smooth:R,stackedOnSmooth:z,smoothMonotone:N,connectNulls:w}),Vl(f,t,"areaStyle"),Hs(f).seriesIndex=t.seriesIndex,Rl(f,L,P,O)}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=_,this._points=u,this._step=T,this._valueOrigin=m,t.get("triggerLineEvent")&&(this.packEventData(t,d),f&&this.packEventData(t,f))},e.prototype.packEventData=function(t,e){Hs(e).eventData={componentType:"series",componentSubType:"line",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:"line"}},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=wo(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"),c=t.get("z");(s=new Yw(r,o)).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 xg.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=wo(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 xg.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;gl(this._polyline,t),e&&gl(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new iS({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new oS({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.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");U(l)&&(l=l(null));var u=s.get("animationDelay")||0,h=U(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 x=U(u)?u(o):l*m+h,_=s.getSymbolPath(),b=_.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:x}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:x}),_.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e,n){var i=t.getModel("endLabel");if(mS(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 ks({z2:200})).ignoreClip=!0,o.setTextContent(this._endLabel),o.disableLabelAnimation=!0);var l=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(a);l>=0&&(Hh(o,Yh(t,"endLabel"),{inheritColor:n,labelFetcher:t,labelDataIndex:l,defaultText:function(t,e,n){return null!=n?Hw(r,n):Ww(r,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(i,e)),o.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&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,x=(g?d:0)*(y?-1:1),_=(g?0:-d)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],I=void 0;if(M>=1){if(M>1&&!c){var T=vS(u,S[0]);s.attr({x:T[0]+x,y:T[1]+_}),r&&(I=h.getRawValue(S[0]))}else{(T=l.getPointOn(m,b))&&s.attr({x:T[0]+x,y:T[1]+_});var C=h.getRawValue(S[0]),D=h.getRawValue(S[1]);r&&(I=Po(n,p,C,D,w.t))}i.lastFrameIndex=S[0]}else{var A=1===t||i.lastFrameIndex>0?S[0]:0;T=vS(u,A),r&&(I=h.getRawValue(A)),s.attr({x:T[0]+x,y:T[1]+_})}r&&Jh(s).setLabelText(I)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,o,a){var s=this._polyline,l=this._polygon,u=t.hostModel,h=function(t,e,n,i,r,o,a,s){for(var l=function(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}(t,e),u=[],h=[],c=[],p=[],d=[],f=[],g=[],y=Kw(r,e,a),v=t.getLayout("points")||[],m=e.getLayout("points")||[],x=0;x3e3||l&&pS(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(),rh(s,g,u),l&&(l.setShape({points:c,stackedOnPoints:p}),l.stopAnimation(),rh(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;me&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n10&&"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;X(r)?d=wS[r]:U(r)&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,SS))}}}}}var IS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return rx(null,this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e&&e.clampData){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(sg);sg.registerClass(IS);var TS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(){return rx(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=yc(IS.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}),e}(IS),CS=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},DS=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return n(e,t),e.prototype.getDefaultShape=function(){return new CS},e.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?u-lo)return!0;o=u}return!1},e.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);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.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}))}},e.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})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.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){uh(e,t,Hs(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(xg),RS={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=LS(e.x,t.x),s=PS(e.x+e.width,r),l=LS(e.y,t.y),u=PS(e.y+e.height,o),h=sr?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=PS(e.r,t.r),o=LS(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;return n<0&&(i=e.r,e.r=e.r0,e.r0=i),a}},NS={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new Cs({shape:A({},i),z2:1});return u.__dataIndex=n,u.name="item",o&&(u.shape[r?"height":"width"]=0),u},polar:function(t,e,n,i,r,o,a,s,l){var u=!r&&l?DS:Cu,h=new u({shape:i,z2:1});h.name="item";var c,p,d=WS(r);if(h.calculateTextPosition=(c=d,p=({isRoundCap:u===DS}||{}).isRoundCap,function(t,e,n){var i=e.position;if(!i||i instanceof Array)return yr(t,e,n);var r=c(i),o=null!=e.distance?e.distance:5,a=this.shape,s=a.cx,l=a.cy,u=a.r,h=a.r0,d=(u+h)/2,f=a.startAngle,g=a.endAngle,y=(f+g)/2,v=p?Math.abs(u-h)/2:0,m=Math.cos,x=Math.sin,_=s+u*m(f),b=l+u*x(f),w="left",S="top";switch(r){case"startArc":_=s+(h-o)*m(y),b=l+(h-o)*x(y),w="center",S="top";break;case"insideStartArc":_=s+(h+o)*m(y),b=l+(h+o)*x(y),w="center",S="bottom";break;case"startAngle":_=s+d*m(f)+AS(f,o+v,!1),b=l+d*x(f)+kS(f,o+v,!1),w="right",S="middle";break;case"insideStartAngle":_=s+d*m(f)+AS(f,-o+v,!1),b=l+d*x(f)+kS(f,-o+v,!1),w="left",S="middle";break;case"middle":_=s+d*m(y),b=l+d*x(y),w="center",S="middle";break;case"endArc":_=s+(u+o)*m(y),b=l+(u+o)*x(y),w="center",S="bottom";break;case"insideEndArc":_=s+(u-o)*m(y),b=l+(u-o)*x(y),w="center",S="top";break;case"endAngle":_=s+d*m(g)+AS(g,o+v,!0),b=l+d*x(g)+kS(g,o+v,!0),w="left",S="middle";break;case"insideEndAngle":_=s+d*m(g)+AS(g,-o+v,!0),b=l+d*x(g)+kS(g,-o+v,!0),w="right",S="middle";break;default:return yr(t,e,n)}return(t=t||{}).x=_,t.y=b,t.align=w,t.verticalAlign=S,t}),o){var f=r?"r":"endAngle",g={};h.shape[f]=r?0:i.startAngle,g[f]=i[f],(s?rh:oh)(h,{shape:g},o)}return h}};function ES(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?rh:oh)(n,{shape:l},e,r,null),(a?rh:oh)(n,{shape:u},e?t.baseAxis.model:null,r)}function zS(t,e){for(var n=0;n0?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,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}}};function WS(t){return function(t){var e=t?"Arc":"Angle";return function(t){switch(t){case"start":case"insideStart":case"end":case"insideEnd":return t+e;default:return t}}}(t)}function HS(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(["itemStyle","borderRadius"])||0),t.useStyle(l);var u=i.getShallow("cursor");u&&t.attr("cursor",u);var h=s?a?r.r>=r.r0?"endArc":"startArc":r.endAngle>=r.startAngle?"endAngle":"startAngle":a?r.height>=0?"bottom":"top":r.width>=0?"right":"left",c=Yh(i);Hh(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:Ww(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||null,function(t,e,n,i){if(j(i))t.setTextConfig({rotation:i});else if(Y(e))t.setTextConfig({rotation:0});else{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})}}(t,"outside"===d?h:d,WS(a),i.get(["label","rotate"]))}Qh(p,c,o.getRawValue(n),(function(t){return Hw(e,t)}));var f=i.getModel(["emphasis"]);Rl(t,f.get("focus"),f.get("blurScope"),f.get("disabled")),Vl(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",E(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var YS=function(){},US=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return n(e,t),e.prototype.getDefaultShape=function(){return new YS},e.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=s[0]&&e<=s[0]+l[0]&&n>=s[1]&&n<=s[1]+l[1])return a[h]}return-1}(this,t.offsetX,t.offsetY);Hs(this).dataIndex=e>=0?e:null}),30,!1);function jS(t,e,n){if(uS(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 o=e;return{cx:(r=n.getArea()).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}}var qS=2*Math.PI,KS=Math.PI/180;function $S(t,e){return xp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function JS(t,e){var n=$S(t,e),i=t.get("center"),r=t.get("radius");Y(r)||(r=[0,r]),Y(i)||(i=[i,i]);var o=Er(n.width,e.getWidth()),a=Er(n.height,e.getHeight()),s=Math.min(o,a);return{cx:Er(i[0],o)+n.x,cy:Er(i[1],a)+n.y,r0:Er(r[0],s/2),r:Er(r[1],s/2)}}function QS(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=$S(t,n),o=JS(t,n),a=o.cx,s=o.cy,l=o.r,u=o.r0,h=-t.get("startAngle")*KS,c=t.get("minAngle")*KS,p=0;e.each(i,(function(t){!isNaN(t)&&p++}));var d=e.getSum(i),f=Math.PI/(d||p)*2,g=t.get("clockwise"),y=t.get("roseType"),v=t.get("stillShowZeroSum"),m=e.getDataExtent(i);m[0]=0;var x=qS,_=0,b=h,w=g?1:-1;if(e.setLayout({viewRect:r,r:l}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:g,cx:a,cy:s,r0:u,r:y?NaN:l});else{(i="area"!==y?0===d&&v?f:t*f:qS/p)n?a:o,h=Math.abs(l.label.y-n);if(h>=u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,f=Math.abs(c)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 rM(t){return"center"===t.position}function aM(t,e,n){var i=t.get("borderRadius");if(null==i)return n?{cornerRadius:0}:null;Y(i)||(i=[i,i,i,i]);var r=Math.abs(e.r||0-e.r0||0);return{cornerRadius:z(i,(function(t){return gr(t,r)}))}}var sM=function(t){function e(e,n,i){var r=t.call(this)||this;r.z2=2;var o=new ks;return r.setTextContent(o),r.updateData(e,n,i,!0),r}return n(e,t),e.prototype.updateData=function(t,e,n,i){var r=this,o=t.hostModel,a=t.getItemModel(e),s=a.getModel("emphasis"),l=t.getItemLayout(e),u=A(aM(a.getModel("itemStyle"),l,!0),l);if(isNaN(u.startAngle))r.setShape(u);else{if(i){r.setShape(u);var h=o.getShallow("animationType");o.ecModel.ssr?(oh(r,{scaleX:0,scaleY:0},o,{dataIndex:e,isFrom:!0}),r.originX=u.cx,r.originY=u.cy):"scale"===h?(r.shape.r=l.r0,oh(r,{shape:{r:l.r}},o,e)):null!=n?(r.setShape({startAngle:n,endAngle:n}),oh(r,{shape:{startAngle:l.startAngle,endAngle:l.endAngle}},o,e)):(r.shape.endAngle=l.startAngle,rh(r,{shape:{endAngle:l.endAngle}},o,e))}else hh(r),rh(r,{shape:u},o,e);r.useStyle(t.getItemVisual(e,"style")),Vl(r,a);var c=(l.startAngle+l.endAngle)/2,p=o.get("selectedOffset"),d=Math.cos(c)*p,f=Math.sin(c)*p,g=a.getShallow("cursor");g&&r.attr("cursor",g),this._updateLabel(o,t,e),r.ensureState("emphasis").shape=A({r:l.r+(s.get("scale")&&s.get("scaleSize")||0)},aM(s.getModel("itemStyle"),l)),A(r.ensureState("select"),{x:d,y:f,shape:aM(a.getModel(["select","itemStyle"]),l)}),A(r.ensureState("blur"),{shape:aM(a.getModel(["blur","itemStyle"]),l)});var y=r.getTextGuideLine(),v=r.getTextContent();y&&A(y.ensureState("select"),{x:d,y:f}),A(v.ensureState("select"),{x:d,y:f}),Rl(this,s.get("focus"),s.get("blurScope"),s.get("disabled"))}},e.prototype._updateLabel=function(t,e,n){var i=this,r=e.getItemModel(n),o=r.getModel("labelLine"),a=e.getItemVisual(n,"style"),s=a&&a.fill,l=a&&a.opacity;Hh(i,Yh(r),{labelFetcher:e.hostModel,labelDataIndex:n,inheritColor:s,defaultOpacity:l,defaultText:t.getFormattedLabel(n,"normal")||e.getName(n)});var u=i.getTextContent();i.setTextConfig({position:null,rotation:null}),u.attr({z2:10});var h=t.get(["label","position"]);if("outside"!==h&&"outer"!==h)i.removeTextGuideLine();else{var c=this.getTextGuideLine();c||(c=new Ru,this.setTextGuideLine(c)),db(this,fb(r),{stroke:s,opacity:ot(o.get(["lineStyle","opacity"]),l,1)})}},e}(Cu),lM=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ignoreLabelLineUpdate=!0,e}return n(e,t),e.prototype.render=function(t,e,n,i){var r,o=t.getData(),a=this._data,s=this.group;if(!a&&o.count()>0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u0?"right":"left":k>0?"left":"right"}var B=Math.PI,F=0,G=y.get("rotate");if(j(G))F=G*(B/180);else if("center"===v)F=0;else if("radial"===G||!0===G)F=k<0?-A+B:-A;else if("tangential"===G&&"outside"!==v&&"outer"!==v){var W=Math.atan2(k,L);W<0&&(W=2*B+W),L>0&&(W=B+W),F=W-B}if(o=!!F,p.x=I,p.y=T,p.rotation=F,p.setStyle({verticalAlign:"middle"}),P){p.setStyle({align:D});var H=p.states.select;H&&(H.x+=p.x,H.y+=p.y)}else{var Y=p.getBoundingRect().clone();Y.applyTransform(p.getComputedTransform());var U=(p.style.margin||0)+2.1;Y.y-=U/2,Y.height+=U,r.push({label:p,labelLine:f,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new Ji(k,L),linePoints:C,textAlign:D,labelDistance:m,labelAlignTo:x,edgeDistance:_,bleedMargin:b,rect:Y,unconstrainedWidth:Y.width,labelStyleWidth:p.style.width})}s.setTextConfig({inside:P})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p=n.r0}},e.type="pie",e}(xg);function uM(t,e,n){e=Y(e)&&{coordDimensions:e}||A({encodeDefine:t.getEncode()},e);var i=t.getSource(),r=Km(i,e).dimensions,o=new qm(r,t);return o.initData(i,n),o}var hM=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){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),cM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new hM(W(this.getData,this),W(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return uM(this,{coordDimensions:["value"],encodeDefaulter:H(Yp,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=Wr(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},e.prototype._defaultLabelLine=function(t){co(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},e.type="series.pie",e.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"},e}(sg),pM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return rx(null,this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:""},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}},universalTransition:{divideShape:"clone"}},e}(sg),dM=function(){},fM=function(t){function e(e){var n=t.call(this,e)||this;return n._off=0,n.hoverDataIdx=-1,n}return n(e,t),e.prototype.getDefaultShape=function(){return new dM},e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.buildPath=function(t,e){var n,i=e.points,r=e.size,o=this.symbolProxy,a=o.shape,s=t.getContext?t.getContext():t,l=s&&r[0]<4,u=this.softClipShape;if(l)this._ctx=s;else{for(this._ctx=null,n=this._off;n=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect();return t=n[0],e=n[1],i.contain(t,e)?(this.hoverDataIdx=this.findDataIndex(t,e))>=0:(this.hoverDataIdx=-1,!1)},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var e=this.shape,n=e.points,i=e.size,r=i[0],o=i[1],a=1/0,s=1/0,l=-1/0,u=-1/0,h=0;h=0&&(l.dataIndex=n+(t.startIndex||0))}))},t.prototype.remove=function(){this._clear()},t.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},t}(),yM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4)return{update:!0};var r=bS("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype.eachRendered=function(t){this._symbolDraw&&this._symbolDraw.eachRendered(t)},e.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},e.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new gM:new qw,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(xg),vM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.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"},e}(Tp),mM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Co).models[0]},e.type="cartesian2dAxis",e}(Tp);R(mM,p_);var xM={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)"]}}},_M=C({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},xM),bM=C({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}}},xM),wM={category:_M,value:bM,time:C({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},bM),log:k({logBase:10},bM)},SM={value:1,category:1,time:1,log:1};function MM(t,e,i,r){E(SM,(function(o,a){var s=C(C({},wM[a],!0),r,!0),l=function(t){function i(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e+"Axis."+a,n}return n(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=bp(this),i=n?Sp(t):{};C(t,e.getTheme().get(a+"Axis")),C(t,this.getDefaultOption()),t.type=IM(t),n&&wp(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=sx.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=e+"Axis."+a,i.defaultOption=s,i}(i);t.registerComponentModel(l)})),t.registerSubTypeDefaulter(e+"Axis",IM)}function IM(t){return t.type||(t.data?"category":"value")}var TM=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 z(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),B(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}(),CM=["x","y"];function DM(t){return"interval"===t.type||"time"===t.type}var AM=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=CM,e}return n(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(DM(t)&&DM(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=Bi([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.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]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.containZone=function(t,e){var n=this.dataToPoint(t),i=this.dataToPoint(e),r=this.getArea(),o=new sr(n[0],n[1],i[0]-n[0],i[1]-n[1]);return r.intersect(o)},e.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 Ft(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},e.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||[])[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},e.prototype.pointToData=function(t,e){var n=[];if(this._invTransform)return Ft(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},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.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 sr(n,i,r,o)},e}(TM),kM=function(t){function e(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 n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.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},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(H_);function LM(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),o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),it(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}function PM(t){return"cartesian2d"===t.get("coordinateSystem")}function OM(t){var e={xAxisModel:null,yAxisModel:null};return E(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,Co).models[0];e[i]=o})),e}var RM=Math.log;function NM(t,e,n){var i=xx.prototype,r=i.getTicks.call(n),o=i.getTicks.call(n,!0),a=r.length-1,s=i.getInterval.call(n),l=i_(t,e),u=l.extent,h=l.fixMin,c=l.fixMax;if("log"===t.type){var p=RM(t.base);u=[RM(u[0])/p,RM(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=cx(f),g=u[1]-f*a;else{t.getTicks().length-1>a&&(f=cx(f));var v=f*a;(g=zr((y=Math.ceil(u[1]/f)*f)-v))<0&&u[0]>=0?(g=0,y=zr(v)):y>0&&u[1]<=0&&(y=0,g=-zr(v))}var m=(r[0].value-o[0].value)/s,x=(r[a].value-o[a].value)/s;i.setExtent.call(t,g+f*m,y+f*x),i.setInterval.call(t,f),(m||x)&&i.setNiceExtent.call(t,g+f,y-f)}var EM=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=CM,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;function i(t){var e,n=G(t),i=n.length;if(i){for(var r=[],o=i-1;o>=0;o--){var a=t[+n[o]],s=a.model,l=a.scale;ux(l)&&s.get("alignTicks")&&null==s.get("interval")?r.push(a):(r_(l,s),ux(l)&&(e=a))}r.length&&(e||r_((e=r.pop()).scale,e.model),E(r,(function(t){NM(t.scale,t.model,e.scale)})))}}this._updateScale(t,this.model),i(n.x),i(n.y);var r={};E(n.x,(function(t){VM(n,"y",t,r)})),E(n.y,(function(t){VM(n,"x",t,r)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=xp(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){E(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(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}}(t,e?o.x:o.y)}))}s(),r&&(E(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof vx?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=a_(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h0&&i>0||n<0&&i<0)}(t)}var FM=Math.PI,GM=function(){function t(t,e){this.group=new Cr,this.opt=e,this.axisModel=t,k(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new Cr({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!WM[t]},t.prototype.add=function(t){WM[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=Ur(e-t);return Xr(o)?(r=n>0?"top":"bottom",i="center"):Xr(o-FM)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o0?"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}(),WM={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];a&&(Ft(s,s,a),Ft(l,l,a));var u=A({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new zu({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]);if(null!=c){var p=e.get(["axisLine","symbolSize"]);X(c)&&(c=[c,c]),(X(p)||j(p))&&(p=[p,p]);var d=Oy(e.get(["axisLine","symbolOffset"])||0,p),f=p[0],g=p[1];E([{rotate:t.rotation+Math.PI/2,offset:d[0],r:0},{rotate:t.rotation-Math.PI/2,offset:d[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"!==c[i]&&null!=c[i]){var r=Ly(c[i],-f/2,-g/2,f,g,u.stroke,!0),o=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+o*Math.cos(t.rotation),y:s[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");if("auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick")),a&&!r.scale.isBlank()){for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=XM(r.getTicksCoords(),e.transform,l,k(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;hc[1]?-1:1,d=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,UM(s)?t.labelOffset+l*h:0],f=e.get("nameRotate");null!=f&&(f=f*FM/180),UM(s)?o=GM.innerTextLayout(t.rotation,null!=f?f:t.rotation,l):(o=function(t,e,n,i){var r,o,a=Ur(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;return Xr(a-FM/2)?(o=l?"bottom":"top",r="center"):Xr(a-1.5*FM)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*FM&&a>FM/2?l?"left":"right":l?"right":"left"),{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,f||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=it(t.nameTruncateMaxWidth,y.maxWidth,a),x=new ks({x:d[0],y:d[1],rotation:o.rotation,silent:GM.isLabelSilent(e),style:Uh(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(Eh({el:x,componentModel:e,itemName:r}),x.__fullText=r,x.anid="name",e.get("triggerEvent")){var _=GM.makeAxisEventDataBase(e);_.targetType="axisName",_.name=r,Hs(x).eventData=_}i.add(x),x.updateTransform(),n.add(x),x.decomposeTransform()}}};function HM(t){t&&(t.ignore=!0)}function YM(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=Oi([]);return zi(r,r,-t.rotation),n.applyTransform(Ni([],r,t.getLocalTransform())),i.applyTransform(Ni([],r,e.getLocalTransform())),n.intersect(i)}}function UM(t){return"middle"===t||"center"===t}function XM(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l=0||t===e}function KM(t){var e=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return e&&e.axesInfo[JM(t)]}function $M(t){return!!t.get(["handle","show"])}function JM(t){return t.type+"||"+t.id}var QM={},tI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(e,n,i,r){this.axisPointerClass&&function(t){var e=KM(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=$M(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&&!c.min?c.min=0:null!=c.min&&c.min<0&&!c.max&&(c.max=0);var p=a;null!=c.color&&(p=k({color:c.color},a));var d=C(T(c),{boundaryGap:t,splitNumber:e,scale:n,axisLine:i,axisTick:r,axisLabel:o,name:c.text,showName:s,nameLocation:"end",nameGap:u,nameTextStyle:p,triggerEvent:h},!1);if(X(l)){var f=d.name;d.name=l.replace("{value}",null!=f?f:"")}else U(l)&&(d.name=l(d.name,d));var g=new dc(d,null,this.ecModel);return R(g,p_.prototype),g.mainType="radar",g.componentIndex=this.componentIndex,g}),this);this._indicatorModels=c},e.prototype.getIndicatorModels=function(){return this._indicatorModels},e.type="radar",e.defaultOption={z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:C({lineStyle:{color:"#bbb"}},xI.axisLine),axisLabel:_I(xI.axisLabel,!1),axisTick:_I(xI.axisTick,!1),splitLine:_I(xI.splitLine,!0),splitArea:_I(xI.splitArea,!0),indicator:[]},e}(Tp),wI=["axisLine","axisTickLabel","axisName"],SI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},e.prototype._buildAxes=function(t){var e=t.coordinateSystem;E(z(e.getIndicatorAxes(),(function(t){var n=t.model.get("showName")?t.name:"";return new GM(t.model,{axisName:n,position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})})),(function(t){E(wI,t.add,t),this.group.add(t.getGroup())}),this)},e.prototype._buildSplitLineAndArea=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes();if(n.length){var i=t.get("shape"),r=t.getModel("splitLine"),o=t.getModel("splitArea"),a=r.getModel("lineStyle"),s=o.getModel("areaStyle"),l=r.get("show"),u=o.get("show"),h=a.get("color"),c=s.get("color"),p=Y(h)?h:[h],d=Y(c)?c:[c],f=[],g=[];if("circle"===i)for(var y=n[0].getTicksCoords(),v=e.cx,m=e.cy,x=0;x3?1.4:r>1?1.2:1.1;LI(this,"zoom","zoomOnMouseWheel",t,{scale:i>0?s:1/s,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i);LI(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(i>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:o,originY:a,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){DI(this._zr,"globalPan")||LI(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})},e}(Xt);function LI(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(se(i.event),PI(t,e,n,i,r))}function PI(t,e,n,i,r){r.isAvailableBehavior=W(OI,null,n,i),t.trigger(e,r)}function OI(t,e,n){var i=n[t];return!t||i&&(!X(i)||e.event[i+"Key"])}function RI(t,e,n){var i=t.target;i.x+=e,i.y+=n,i.dirty()}function NI(t,e,n,i){var r=t.target,o=t.zoomLimit,a=t.zoom=t.zoom||1;if(a*=e,o){var s=o.min||0,l=o.max||1/0;a=Math.max(Math.min(l,a),s)}var u=a/t.zoom;t.zoom=a,r.x-=(n-r.x)*(u-1),r.y-=(i-r.y)*(u-1),r.scaleX*=u,r.scaleY*=u,r.dirty()}var EI,zI={axisPointer:1,tooltip:1,brush:1};function VI(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!zI.hasOwnProperty(i.mainType)&&r&&r.model!==n}function BI(t){X(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}var FI={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-anchor":"textAlign",visibility:"visibility",display:"display"},GI=G(FI),WI={"alignment-baseline":"textBaseline","stop-color":"stopColor"},HI=G(WI),YI=function(){function t(){this._defs={},this._root=null}return t.prototype.parse=function(t,e){e=e||{};var n=BI(t);this._defsUsePending=[];var i=new Cr;this._root=i;var r=[],o=n.getAttribute("viewBox")||"",a=parseFloat(n.getAttribute("width")||e.width),s=parseFloat(n.getAttribute("height")||e.height);isNaN(a)&&(a=null),isNaN(s)&&(s=null),KI(n,i,null,!0,!1);for(var l,u,h=n.firstChild;h;)this._parseNode(h,i,r,null,!1,!1),h=h.nextSibling;if(function(t,e){for(var n=0;n=4&&(l={x:parseFloat(c[0]||0),y:parseFloat(c[1]||0),width:parseFloat(c[2]),height:parseFloat(c[3])})}if(l&&null!=a&&null!=s&&(u=oT(l,{x:0,y:0,width:a,height:s}),!e.ignoreViewBox)){var p=i;(i=new Cr).add(p),p.scaleX=p.scaleY=u.scale,p.x=u.x,p.y=u.y}return e.ignoreRootClip||null==a||null==s||i.setClipPath(new Cs({shape:{x:0,y:0,width:a,height:s}})),{root:i,width:a,height:s,viewBoxRect:l,viewBoxTransform:u,named:r}},t.prototype._parseNode=function(t,e,n,i,r,o){var a,s=t.nodeName.toLowerCase(),l=i;if("defs"===s&&(r=!0),"text"===s&&(o=!0),"defs"===s||"switch"===s)a=e;else{if(!r){var u=EI[s];if(u&&mt(EI,s)){a=u.call(this,t,e);var h=t.getAttribute("name");if(h){var c={name:h,namedFrom:null,svgNodeTagLower:s,el:a};n.push(c),"g"===s&&(l=c)}else i&&n.push({name:i.name,namedFrom:i,svgNodeTagLower:s,el:a});e.add(a)}}var p=UI[s];if(p&&mt(UI,s)){var d=p.call(this,t),f=t.getAttribute("id");f&&(this._defs[f]=d)}}if(a&&a.isGroup)for(var g=t.firstChild;g;)1===g.nodeType?this._parseNode(g,a,n,l,r,o):3===g.nodeType&&o&&this._parseText(g,a),g=g.nextSibling},t.prototype._parseText=function(t,e){var n=new vs({style:{text:t.textContent},silent:!0,x:this._textX||0,y:this._textY||0});jI(e,n),KI(t,n,this._defsUsePending,!1,!1),function(t,e){var n=e.__selfStyle;if(n){var i=n.textBaseline,r=i;i&&"auto"!==i?"baseline"===i?r="alphabetic":"before-edge"===i||"text-before-edge"===i?r="top":"after-edge"===i||"text-after-edge"===i?r="bottom":"central"!==i&&"mathematical"!==i||(r="middle"):r="alphabetic",t.style.textBaseline=r}var o=e.__inheritedStyle;if(o){var a=o.textAlign,s=a;a&&("middle"===a&&(s="center"),t.style.textAlign=s)}}(n,e);var i=n.style,r=i.fontSize;r&&r<9&&(i.fontSize=9,n.scaleX*=r/9,n.scaleY*=r/9);var o=(i.fontSize||i.fontFamily)&&[i.fontStyle,i.fontWeight,(i.fontSize||12)+"px",i.fontFamily||"sans-serif"].join(" ");i.font=o;var a=n.getBoundingRect();return this._textX+=a.width,e.add(n),n},t.internalField=void(EI={g:function(t,e){var n=new Cr;return jI(e,n),KI(t,n,this._defsUsePending,!1,!1),n},rect:function(t,e){var n=new Cs;return jI(e,n),KI(t,n,this._defsUsePending,!1,!1),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n.silent=!0,n},circle:function(t,e){var n=new hu;return jI(e,n),KI(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n.silent=!0,n},line:function(t,e){var n=new zu;return jI(e,n),KI(t,n,this._defsUsePending,!1,!1),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n.silent=!0,n},ellipse:function(t,e){var n=new pu;return jI(e,n),KI(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n.silent=!0,n},polygon:function(t,e){var n,i=t.getAttribute("points");i&&(n=qI(i));var r=new Pu({shape:{points:n||[]},silent:!0});return jI(e,r),KI(t,r,this._defsUsePending,!1,!1),r},polyline:function(t,e){var n,i=t.getAttribute("points");i&&(n=qI(i));var r=new Ru({shape:{points:n||[]},silent:!0});return jI(e,r),KI(t,r,this._defsUsePending,!1,!1),r},image:function(t,e){var n=new _s;return jI(e,n),KI(t,n,this._defsUsePending,!1,!1),n.setStyle({image:t.getAttribute("xlink:href")||t.getAttribute("href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n.silent=!0,n},text:function(t,e){var n=t.getAttribute("x")||"0",i=t.getAttribute("y")||"0",r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(r),this._textY=parseFloat(i)+parseFloat(o);var a=new Cr;return jI(e,a),KI(t,a,this._defsUsePending,!1,!0),a},tspan:function(t,e){var n=t.getAttribute("x"),i=t.getAttribute("y");null!=n&&(this._textX=parseFloat(n)),null!=i&&(this._textY=parseFloat(i));var r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0",a=new Cr;return jI(e,a),KI(t,a,this._defsUsePending,!1,!0),this._textX+=parseFloat(r),this._textY+=parseFloat(o),a},path:function(t,e){var n=su(t.getAttribute("d")||"");return jI(e,n),KI(t,n,this._defsUsePending,!1,!1),n.silent=!0,n}}),t}(),UI={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||"0",10),n=parseInt(t.getAttribute("y1")||"0",10),i=parseInt(t.getAttribute("x2")||"10",10),r=parseInt(t.getAttribute("y2")||"0",10),o=new Xu(e,n,i,r);return XI(t,o),ZI(t,o),o},radialgradient:function(t){var e=parseInt(t.getAttribute("cx")||"0",10),n=parseInt(t.getAttribute("cy")||"0",10),i=parseInt(t.getAttribute("r")||"0",10),r=new Zu(e,n,i);return XI(t,r),ZI(t,r),r}};function XI(t,e){"userSpaceOnUse"===t.getAttribute("gradientUnits")&&(e.global=!0)}function ZI(t,e){for(var n=t.firstChild;n;){if(1===n.nodeType&&"stop"===n.nodeName.toLocaleLowerCase()){var r,i=n.getAttribute("offset");r=i&&i.indexOf("%")>0?parseInt(i,10)/100:i?parseFloat(i):0;var o={};rT(n,o,o);var a=o.stopColor||n.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:r,color:a})}n=n.nextSibling}}function jI(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),k(e.__inheritedStyle,t.__inheritedStyle))}function qI(t){for(var e=tT(t),n=[],i=0;i0;o-=2){var a=i[o],s=i[o-1],l=tT(a);switch(r=r||[1,0,0,1,0,0],s){case"translate":Ei(r,r,[parseFloat(l[0]),parseFloat(l[1]||"0")]);break;case"scale":Vi(r,r,[parseFloat(l[0]),parseFloat(l[1]||l[0])]);break;case"rotate":zi(r,r,-parseFloat(l[0])*nT);break;case"skewX":Ni(r,[1,0,Math.tan(parseFloat(l[0])*nT),1,0,0],r);break;case"skewY":Ni(r,[1,Math.tan(parseFloat(l[0])*nT),0,1,0,0],r);break;case"matrix":r[0]=parseFloat(l[0]),r[1]=parseFloat(l[1]),r[2]=parseFloat(l[2]),r[3]=parseFloat(l[3]),r[4]=parseFloat(l[4]),r[5]=parseFloat(l[5])}}e.setLocalTransform(r)}}(t,e),rT(t,a,s),i||function(t,e,n){for(var i=0;i0,f={api:n,geo:s,mapOrGeoModel:t,data:a,isVisualEncodedByVisualMap:d,isGeo:o,transformInfoRaw:c};"geoJSON"===s.resourceType?this._buildGeoJSON(f):"geoSVG"===s.resourceType&&this._buildSVG(f),this._updateController(t,e,n),this._updateMapSelectHandler(t,l,n,i)},t.prototype._buildGeoJSON=function(t){var e=this._regionsGroupByName=ft(),n=ft(),i=this._regionsGroup,r=t.transformInfoRaw,o=t.mapOrGeoModel,a=t.data,s=t.geo.projection,l=s&&s.stream;function u(t,e){return e&&(t=e(t)),t&&[t[0]*r.scaleX+r.x,t[1]*r.scaleY+r.y]}function h(t){for(var e=[],n=!l&&s&&s.project,i=0;i=0)&&(p=r);var d=a?{normal:{align:"center",verticalAlign:"middle"}}:null;Hh(e,Yh(i),{labelFetcher:p,labelDataIndex:c,defaultText:n},d);var f=e.getTextContent();if(f&&(TT(f).ignore=f.ignore,e.textConfig&&a)){var g=e.getBoundingRect().clone();e.textConfig.layoutRect=g,e.textConfig.position=[(a[0]-g.x)/g.width*100+"%",(a[1]-g.y)/g.height*100+"%"]}e.disableLabelAnimation=!0}else e.removeTextContent(),e.removeTextConfig(),e.disableLabelAnimation=null}function PT(t,e,n,i,r,o){t.data?t.data.setItemGraphicEl(o,e):Hs(e).eventData={componentType:"geo",componentIndex:r.componentIndex,geoIndex:r.componentIndex,name:n,region:i&&i.option||{}}}function OT(t,e,n,i,r){t.data||Eh({el:e,componentModel:r,itemName:n,itemTooltipOption:i.get("tooltip")})}function RT(t,e,n,i,r){e.highDownSilentOnTouch=!!r.get("selectedMode");var o=i.getModel("emphasis"),a=o.get("focus");return Rl(e,a,o.get("blurScope"),o.get("disabled")),t.isGeo&&function(t,e,n){var i=Hs(t);i.componentMainType=e.mainType,i.componentIndex=e.componentIndex,i.componentHighDownName=n}(e,r,n),a}function NT(t,e,n){var i,r=[];function o(){i=[]}function a(){i.length&&(r.push(i),i=[])}var s=e({polygonStart:o,polygonEnd:a,lineStart:o,lineEnd:a,point:function(t,e){isFinite(t)&&isFinite(e)&&i.push([t,e])},sphere:function(){}});return!n&&s.polygonStart(),E(t,(function(t){s.lineStart();for(var e=0;e-1&&(n.style.stroke=n.style.fill,n.style.fill="#fff",n.style.lineWidth=2),n},e.type="series.map",e.dependencies=["geo"],e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},e}(sg);function VT(t){var e={};t.eachSeriesByType("map",(function(t){var n=t.getHostGeoModel(),i=n?"o"+n.id:"i"+t.getMapType();(e[i]=e[i]||[]).push(t)})),E(e,(function(t,e){for(var n,i,r,o=(n=z(t,(function(t){return t.getData()})),i=t[0].get("mapValueCalculation"),r={},E(n,(function(t){t.each(t.mapDimension("value"),(function(e,n){var i="ec-"+t.getName(n);r[i]=r[i]||[],isNaN(e)||r[i].push(e)}))})),n[0].map(n[0].mapDimension("value"),(function(t,e){for(var o="ec-"+n[0].getName(e),a=0,s=1/0,l=-1/0,u=r[o].length,h=0;h1?(d.width=p,d.height=p/x):(d.height=p,d.width=p*x),d.y=c[1]-d.height/2,d.x=c[0]-d.width/2;else{var b=t.getBoxLayoutParams();b.aspect=x,d=xp(b,{width:v,height:m})}this.setViewRect(d.x,d.y,d.width,d.height),this.setCenter(t.get("center"),e),this.setZoom(t.get("zoom"))}R(UT,GT);var jT=new(function(){function t(){this.dimensions=YT}return t.prototype.create=function(t,e){var n=[];function i(t){return{nameProperty:t.get("nameProperty"),aspectScale:t.get("aspectScale"),projection:t.get("projection")}}t.eachComponent("geo",(function(t,r){var o=t.get("map"),a=new UT(o+r,o,A({nameMap:t.get("nameMap")},i(t)));a.zoomLimit=t.get("scaleLimit"),n.push(a),t.coordinateSystem=a,a.model=t,a.resize=ZT,a.resize(t,e)})),t.eachSeries((function(t){if("geo"===t.get("coordinateSystem")){var e=t.get("geoIndex")||0;t.coordinateSystem=n[e]}}));var r={};return t.eachSeriesByType("map",(function(t){if(!t.getHostGeoModel()){var e=t.getMapType();r[e]=r[e]||[],r[e].push(t)}})),E(r,(function(t,r){var o=z(t,(function(t){return t.get("nameMap")})),a=new UT(r,r,A({nameMap:D(o)},i(t[0])));a.zoomLimit=it.apply(null,z(t,(function(t){return t.get("scaleLimit")}))),n.push(a),a.resize=ZT,a.resize(t[0],e),E(t,(function(t){t.coordinateSystem=a,function(t,e){E(e.get("geoCoord"),(function(e,n){t.addGeoCoord(n,e)}))}(a,t)}))})),n},t.prototype.getFilledRegions=function(t,e,n,i){for(var r=(t||[]).slice(),o=ft(),a=0;a=0;){var o=e[n];o.hierNode.prelim+=i,o.hierNode.modifier+=i,r+=o.hierNode.change,i+=o.hierNode.shift+r}}(t);var o=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-o):t.hierNode.prelim=o}else r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r));t.parentNode.hierNode.defaultAncestor=function(t,e,n,i){if(e){for(var r=t,o=t,a=o.parentNode.children[0],s=e,l=r.hierNode.modifier,u=o.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;s=oC(s),o=aC(o),s&&o;){r=oC(r),a=aC(a),r.hierNode.ancestor=t;var p=s.hierNode.prelim+c-o.hierNode.prelim-u+i(s,o);p>0&&(lC(sC(s,t,n),t,p),u+=p,l+=p),c+=s.hierNode.modifier,u+=o.hierNode.modifier,l+=r.hierNode.modifier,h+=a.hierNode.modifier}s&&!oC(r)&&(r.hierNode.thread=s,r.hierNode.modifier+=c-l),o&&!aC(a)&&(a.hierNode.thread=o,a.hierNode.modifier+=u-h,n=t)}return n}(t,r,t.parentNode.hierNode.defaultAncestor||i[0],e)}function nC(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function iC(t){return arguments.length?t:uC}function rC(t,e){return t-=Math.PI/2,{x:e*Math.cos(t),y:e*Math.sin(t)}}function oC(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function aC(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function sC(t,e,n){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:n}function lC(t,e,n){var i=n/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=i,e.hierNode.shift+=n,e.hierNode.modifier+=n,e.hierNode.prelim+=n,t.hierNode.change+=i}function uC(t,e){return t.parentNode===e.parentNode?1:2}var hC=function(){this.parentPoint=[],this.childPoints=[]},cC=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new hC},e.prototype.buildPath=function(t,e){var n=e.childPoints,i=n.length,r=e.parentPoint,o=n[0],a=n[i-1];if(1===i)return t.moveTo(r[0],r[1]),void t.lineTo(o[0],o[1]);var s=e.orient,l="TB"===s||"BT"===s?0:1,u=1-l,h=Er(e.forkPosition,1),c=[];c[l]=r[l],c[u]=r[u]+(a[u]-r[u])*h,t.moveTo(r[0],r[1]),t.lineTo(c[0],c[1]),t.moveTo(o[0],o[1]),c[l]=o[l],t.lineTo(c[0],c[1]),c[l]=a[l],t.lineTo(c[0],c[1]),t.lineTo(a[0],a[1]);for(var p=1;pm.x)||(_-=Math.PI);var S=b?"left":"right",M=s.getModel("label"),I=M.get("rotate"),T=I*(Math.PI/180),C=y.getTextContent();C&&(y.setTextConfig({position:M.get("position")||S,rotation:null==I?-_:T,origin:"center"}),C.setStyle("verticalAlign","middle"))}var D=s.get(["emphasis","focus"]),A="relative"===D?gt(a.getAncestorsIndices(),a.getDescendantIndices()):"ancestor"===D?a.getAncestorsIndices():"descendant"===D?a.getDescendantIndices():null;A&&(Hs(n).focus=A),function(t,e,n,i,r,o,a,s){var l=e.getModel(),u=t.get("edgeShape"),h=t.get("layout"),c=t.getOrient(),p=t.get(["lineStyle","curveness"]),d=t.get("edgeForkPosition"),f=l.getModel("lineStyle").getLineStyle(),g=i.__edge;if("curve"===u)e.parentNode&&e.parentNode!==n&&(g||(g=i.__edge=new Gu({shape:mC(h,c,p,r,r)})),rh(g,{shape:mC(h,c,p,o,a)},t));else if("polyline"===u&&"orthogonal"===h&&e!==n&&e.children&&0!==e.children.length&&!0===e.isExpand){for(var y=e.children,v=[],m=0;me&&(e=i.height)}this.height=e+1},t.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},t.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostTree.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},t.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},t.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},t.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},t.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},t.prototype.getChildIndex=function(){if(this.parentNode){for(var t=this.parentNode.children,e=0;e=0){var i=n.getData().tree.root,r=t.targetNode;if(X(r)&&(r=i.getNodeById(r)),r&&i.contains(r))return{node:r};var o=t.targetNodeId;if(null!=o&&(r=i.getNodeById(o)))return{node:r}}}function LC(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function PC(t,e){return P(LC(t),e)>=0}function OC(t,e){for(var n=[];t;){var i=t.dataIndex;n.push({name:t.name,dataIndex:i,value:e.getRawValue(i)}),t=t.parentNode}return n.reverse(),n}var RC=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return n(e,t),e.prototype.getInitialData=function(t){var e={name:t.name,children:t.data},n=t.leaves||{},i=new dc(n,this,this.ecModel),r=AC.createTree(e,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e);return n&&n.children.length&&n.isExpand||(t.parentModel=i),t}))})),o=0;r.eachNode("preorder",(function(t){t.depth>o&&(o=t.depth)}));var a=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:o;return r.root.eachNode("preorder",(function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=a})),r.data},e.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.formatTooltip=function(t,e,n){for(var i=this.getData().tree,r=i.root.children[0],o=i.getNodeByDataIndex(t),a=o.getValue(),s=o.name;o&&o!==r;)s=o.parentNode.name+"."+s,o=o.parentNode;return Xf("nameValue",{name:s,value:a,noValue:isNaN(a)||null==a})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treeAncestors=OC(i,this),n.collapsed=!i.isExpand,n},e.type="series.tree",e.layoutMode="box",e.defaultOption={z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},e}(sg);function NC(t,e){for(var n,i=[t];n=i.pop();)if(e(n),n.isExpand){var r=n.children;if(r.length)for(var o=r.length-1;o>=0;o--)i.push(r[o])}}function EC(t,e){t.eachSeriesByType("tree",(function(t){!function(t,e){var n=function(t,e){return xp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=n;var i=t.get("layout"),r=0,o=0,a=null;"radial"===i?(r=2*Math.PI,o=Math.min(n.height,n.width)/2,a=iC((function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth}))):(r=n.width,o=n.height,a=iC());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){var e=t;e.hierNode={defaultAncestor:null,ancestor:e,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var n,i,r=[e];n=r.pop();)if(i=n.children,n.isExpand&&i.length)for(var o=i.length-1;o>=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},r.push(a)}}(s),function(t,e,n){for(var i,r=[t],o=[];i=r.pop();)if(o.push(i),i.isExpand){var a=i.children;if(a.length)for(var s=0;sh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}));var p=u===h?1:a(u,h)/2,d=p-u.getLayout().x,f=0,g=0,y=0,v=0;if("radial"===i)f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),NC(l,(function(t){y=(t.getLayout().x+d)*f,v=(t.depth-1)*g;var e=rC(y,v);t.setLayout({x:e.x,y:e.y,rawX:y,rawY:v},!0)}));else{var m=t.getOrient();"RL"===m||"LR"===m?(g=o/(h.getLayout().x+p+d),f=r/(c.depth-1||1),NC(l,(function(t){v=(t.getLayout().x+d)*g,y="LR"===m?(t.depth-1)*f:r-(t.depth-1)*f,t.setLayout({x:y,y:v},!0)}))):"TB"!==m&&"BT"!==m||(f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),NC(l,(function(t){y=(t.getLayout().x+d)*f,v="TB"===m?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:y,y:v},!0)})))}}}(t,e)}))}function zC(t){t.eachSeriesByType("tree",(function(t){var e=t.getData();e.tree.eachNode((function(t){var n=t.getModel().getModel("itemStyle").getItemStyle();A(e.ensureUniqueItemVisual(t.dataIndex,"style"),n)}))}))}var VC=["treemapZoomToNode","treemapRender","treemapMove"];function BC(t){var e=t.getData().tree,n={};e.eachNode((function(e){for(var i=e;i&&i.depth>1;)i=i.parentNode;var r=ed(t.ecModel,i.name||i.dataIndex+"",n);e.setVisual("decal",r)}))}var FC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.preventUsingHoverLayer=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};GC(n);var i=t.levels||[],r=this.designatedVisualItemStyle={},o=new dc({itemStyle:r},this,e),a=z((i=t.levels=function(t,e){var n,i,r=ho(e.get("color")),o=ho(e.get(["aria","decal","decals"]));if(r){E(t=t||[],(function(t){var e=new dc(t),r=e.get("color"),o=e.get("decal");(e.get(["itemStyle","color"])||r&&"none"!==r)&&(n=!0),(e.get(["itemStyle","decal"])||o&&"none"!==o)&&(i=!0)}));var a=t[0]||(t[0]={});return n||(a.color=r.slice()),!i&&o&&(a.decal=o.slice()),t}}(i,e))||[],(function(t){return new dc(t,o,e)}),this),s=AC.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=s.getNodeByDataIndex(e),i=n?a[n.depth]:null;return t.parentModel=i||o,t}))}));return s.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t);return Xf("nameValue",{name:i.getName(t),value:r})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treeAncestors=OC(i,this),n.treePathInfo=n.treeAncestors,n},e.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},A(this.layoutInfo,t)},e.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=ft(),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){BC(this)},e.type="series.treemap",e.layoutMode="box",e.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],overflow:"truncate",verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},e}(sg);function GC(t){var e=0;E(t.children,(function(t){GC(t);var n=t.value;Y(n)&&(n=n[0]),e+=n}));var n=t.value;Y(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),Y(t.value)?t.value[0]=n:t.value=n}var WC=function(){function t(t){this.group=new Cr,t.add(this.group)}return t.prototype.render=function(t,e,n,i){var r=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),r.get("show")&&n){var a=r.getModel("itemStyle"),s=a.getModel("textStyle"),l={pos:{left:r.get("left"),right:r.get("right"),top:r.get("top"),bottom:r.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:r.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,l,s),this._renderContent(t,l,a,s,i),_p(o,l.pos,l.box)}},t.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var r=xo(i.getModel().get("name"),""),o=n.getTextRect(r),a=Math.max(o.width+16,e.emptyItemWidth);e.totalWidth+=a+8,e.renderList.push({node:i,text:r,width:a})}},t.prototype._renderContent=function(t,e,n,i,r){for(var o,a,s,l,u,h,c,p,d,f=0,g=e.emptyItemWidth,y=t.get(["breadcrumb","height"]),v=(o=e.pos,l=(a=e.box).width,u=a.height,h=Er(o.left,l),c=Er(o.top,u),p=Er(o.right,l),d=Er(o.bottom,u),(isNaN(h)||isNaN(parseFloat(o.left)))&&(h=0),(isNaN(p)||isNaN(parseFloat(o.right)))&&(p=l),(isNaN(c)||isNaN(parseFloat(o.top)))&&(c=0),(isNaN(d)||isNaN(parseFloat(o.bottom)))&&(d=u),s=ip(s||0),{width:Math.max(p-h-s[1]-s[3],0),height:Math.max(d-c-s[0]-s[2],0)}),m=e.totalWidth,x=e.renderList,_=x.length-1;_>=0;_--){var b=x[_],w=b.node,S=b.width,M=b.text;m>v.width&&(m-=S-g,S=g,M=null);var I=new Pu({shape:{points:HC(f,0,S,y,_===x.length-1,0===_)},style:k(n.getItemStyle(),{lineJoin:"bevel"}),textContent:new ks({style:{text:M,fill:i.getTextColor(),font:i.getFont()}}),textConfig:{position:"inside"},z2:1e5,onclick:H(r,w)});I.disableLabelAnimation=!0,this.group.add(I),YC(I,t,w),f+=S+8}},t.prototype.remove=function(){this.group.removeAll()},t}();function HC(t,e,n,i,r,o){var a=[[r?t:t-5,e],[t+n,e],[t+n,e+i],[r?t:t-5,e+i]];return!o&&a.splice(2,0,[t+n+5,e+i/2]),!r&&a.push([t,e+i/2]),a}function YC(t,e,n){Hs(t).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.seriesIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&OC(n,e)}}var UC=function(){function t(){this._storage=[],this._elExistsMap={}}return t.prototype.add=function(t,e,n,i,r){return!this._elExistsMap[t.id]&&(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:n,delay:i,easing:r}),!0)},t.prototype.finished=function(t){return this._finishedCallback=t,this},t.prototype.start=function(){for(var t=this,e=this._storage.length,n=function(){--e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},i=0,r=this._storage.length;i3||Math.abs(t.dy)>3)){var e=this.seriesModel.getData().tree.root;if(!e)return;var n=e.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},e.prototype._onZoom=function(t){var e=t.originX,n=t.originY;if("animating"!==this._state){var i=this.seriesModel.getData().tree.root;if(!i)return;var r=i.getLayout();if(!r)return;var o=new sr(r.x,r.y,r.width,r.height),a=this.seriesModel.layoutInfo,s=[1,0,0,1,0,0];Ei(s,s,[-(e-=a.x),-(n-=a.y)]),Vi(s,s,[t.scale,t.scale]),Ei(s,s,[e,n]),o.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x,y:o.y,width:o.width,height:o.height}})}},e.prototype._initEvents=function(t){var e=this;t.on("click",(function(t){if("ready"===e._state){var n=e.seriesModel.get("nodeClick",!0);if(n){var i=e.findTarget(t.offsetX,t.offsetY);if(i){var r=i.node;if(r.getLayout().isLeafRoot)e._rootToNode(i);else if("zoomToNode"===n)e._zoomToNode(i);else if("link"===n){var o=r.hostTree.data.getItemModel(r.dataIndex),a=o.get("link",!0),s=o.get("target",!0)||"blank";a&&dp(a,s)}}}}}),this)},e.prototype._renderBreadcrumb=function(t,e,n){var i=this;n||(n=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(n={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new WC(this.group))).render(t,e,n.node,(function(e){"animating"!==i._state&&(PC(t.getViewRoot(),e)?i._rootToNode({node:e}):i._zoomToNode({node:e}))}))},e.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},e.prototype.dispose=function(){this._clearController()},e.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype.findTarget=function(t,e){var n;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},(function(i){var r=this._storage.background[i.getRawIndex()];if(r){var o=r.transformCoordToLocal(t,e),a=r.shape;if(!(a.x<=o[0]&&o[0]<=a.x+a.width&&a.y<=o[1]&&o[1]<=a.y+a.height))return!1;n={node:i,offsetX:o[0],offsetY:o[1]}}}),this),n},e.type="treemap",e}(xg),tD=E,eD=q,nD=-1,iD=function(){function t(e){var n=e.mappingMethod,i=e.type,r=this.option=T(e);this.type=i,this.mappingMethod=n,this._normalizeData=dD[n];var o=t.visualHandlers[i];this.applyVisual=o.applyVisual,this.getColorMapper=o.getColorMapper,this._normalizedToVisual=o._normalizedToVisual[n],"piecewise"===n?(rD(r),function(t){var e=t.pieceList;t.hasSpecialVisual=!1,E(e,(function(e,n){e.originIndex=n,null!=e.visual&&(t.hasSpecialVisual=!0)}))}(r)):"category"===n?r.categories?function(t){var e=t.categories,n=t.categoryMap={},i=t.visual;if(tD(e,(function(t,e){n[t]=e})),!Y(i)){var r=[];q(i)?tD(i,(function(t,e){var i=n[e];r[null!=i?i:nD]=t})):r[-1]=i,i=pD(t,r)}for(var o=e.length-1;o>=0;o--)null==i[o]&&(delete n[e[o]],e.pop())}(r):rD(r,!0):(lt("linear"!==n||r.dataExtent),rD(r))}return t.prototype.mapValueToVisual=function(t){var e=this._normalizeData(t);return this._normalizedToVisual(e,t)},t.prototype.getNormalizer=function(){return W(this._normalizeData,this)},t.listVisualTypes=function(){return G(t.visualHandlers)},t.isValidType=function(e){return t.visualHandlers.hasOwnProperty(e)},t.eachVisual=function(t,e,n){q(t)?E(t,e,n):e.call(n,t)},t.mapVisual=function(e,n,i){var r,o=Y(e)?[]:q(e)?{}:(r=!0,null);return t.eachVisual(e,(function(t,e){var a=n.call(i,t,e);r?o=a:o[e]=a})),o},t.retrieveVisuals=function(e){var n,i={};return e&&tD(t.visualHandlers,(function(t,r){e.hasOwnProperty(r)&&(i[r]=e[r],n=!0)})),n?i:null},t.prepareVisualTypes=function(t){if(Y(t))t=t.slice();else{if(!eD(t))return[];var e=[];tD(t,(function(t,n){e.push(n)})),t=e}return t.sort((function(t,e){return"color"===e&&"color"!==t&&0===t.indexOf("color")?1:-1})),t},t.dependsOn=function(t,e){return"color"===e?!(!t||0!==t.indexOf(e)):t===e},t.findPieceIndex=function(t,e,n){for(var i,r=1/0,o=0,a=e.length;ou[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:u,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var p=new iD(c);return gD(p).drColorMappingBy=h,p}}}(0,r,o,0,u,d);E(d,(function(t,e){if(t.depth>=n.length||t===n[t.depth]){var o=function(t,e,n,i,r,o){var a=A({},e);if(r){var s=r.type,l="color"===s&&gD(r).drColorMappingBy,u="index"===l?i:"id"===l?o.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension"));a[s]=r.mapValueToVisual(u)}return a}(r,u,t,e,f,i);vD(t,o,n,i)}}))}else s=mD(u),h.fill=s}}function mD(t){var e=xD(t,"color");if(e){var n=xD(t,"colorAlpha"),i=xD(t,"colorSaturation");return i&&(e=Dn(e,null,null,i)),n&&(e=An(e,n)),e}}function xD(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function _D(t,e){var n=t.get(e);return Y(n)&&n.length?{name:e,range:n}:null}var bD=Math.max,wD=Math.min,SD=it,MD=E,ID=["itemStyle","borderWidth"],TD=["itemStyle","gapWidth"],CD=["upperLabel","show"],DD=["upperLabel","height"],AD={seriesType:"treemap",reset:function(t,e,n,i){var r=n.getWidth(),o=n.getHeight(),a=t.option,s=xp(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),l=a.size||[],u=Er(SD(s.width,l[0]),r),h=Er(SD(s.height,l[1]),o),c=i&&i.type,p=kC(i,["treemapZoomToNode","treemapRootToNode"],t),d="treemapRender"===c||"treemapMove"===c?i.rootRect:null,f=t.getViewRoot(),g=LC(f);if("treemapMove"!==c){var y="treemapZoomToNode"===c?function(t,e,n,i,r){var o,a=(e||{}).node,s=[i,r];if(!a||a===n)return s;for(var l=i*r,u=l*t.option.zoomToNodeRatio;o=a.parentNode;){for(var h=0,c=o.children,p=0,d=c.length;pYr&&(u=Yr),a=o}ua[1]&&(a[1]=e)}))):a=[NaN,NaN],{sum:i,dataExtent:a}}(e,a,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,n,i,r){if(!i)return n;for(var o=t.get("visibleMin"),a=r.length,s=a,l=a-1;l>=0;l--){var u=r["asc"===i?a-l-1:l].getValue();u/n*ei&&(i=a));var l=t.area*t.area,u=e*e*n;return l?bD(u*i/l,l/(u*r)):1/0}function PD(t,e,n,i,r){var o=e===n.width?0:1,a=1-o,s=["x","y"],l=["width","height"],u=n[s[o]],h=e?t.area/e:0;(r||h>n[l[a]])&&(h=n[l[a]]);for(var c=0,p=t.length;ci&&(i=e);var o=i%2?i+2:i+3;r=[];for(var a=0;a0&&(m[0]=-m[0],m[1]=-m[1]);var _=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var b=-Math.atan2(v[1],v[0]);u[0].8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*f+l[0],i.y=-h[1]*g+l[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=f*_+l[0],i.y=l[1]+w,c=v[0]<0?"right":"left",i.originX=-f*_,i.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=x[0],i.y=x[1]+w,c="center",i.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-f*_+u[0],i.y=u[1]+w,c=v[0]>=0?"right":"left",i.originX=f*_,i.originY=-w}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||p,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},e}(Cr),gA=function(){function t(t){this.group=new Cr,this._LineCtor=t||fA}return t.prototype.updateData=function(t){var e=this;this._progressiveEls=null;var n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=yA(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=yA(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||function(t){return t.animators&&t.animators.length>0}(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}this._progressiveEls=[];for(var i=t.start;i=0?i+=u:i-=u:f>=0?i-=u:i+=u}return i}function TA(t,e){var n=[],i=Qe,r=[[],[],[]],o=[[],[]],a=[];e/=2,t.eachEdge((function(t,s){var l=t.getLayout(),u=t.getVisual("fromSymbol"),h=t.getVisual("toSymbol");l.__original||(l.__original=[Mt(l[0]),Mt(l[1])],l[2]&&l.__original.push(Mt(l[2])));var c=l.__original;if(null!=l[2]){if(St(r[0],c[0]),St(r[1],c[2]),St(r[2],c[1]),u&&"none"!==u){var p=KD(t.node1),d=IA(r,c[0],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[0][0]=n[3],r[1][0]=n[4],i(r[0][1],r[1][1],r[2][1],d,n),r[0][1]=n[3],r[1][1]=n[4]}h&&"none"!==h&&(p=KD(t.node2),d=IA(r,c[1],p*e),i(r[0][0],r[1][0],r[2][0],d,n),r[1][0]=n[1],r[2][0]=n[2],i(r[0][1],r[1][1],r[2][1],d,n),r[1][1]=n[1],r[2][1]=n[2]),St(l[0],r[0]),St(l[1],r[2]),St(l[2],r[1])}else St(o[0],c[0]),St(o[1],c[1]),Dt(a,o[1],o[0]),Rt(a,a),u&&"none"!==u&&(p=KD(t.node1),Ct(o[0],o[0],a,p*e)),h&&"none"!==h&&(p=KD(t.node2),Ct(o[1],o[1],a,-p*e)),St(l[0],o[0]),St(l[1],o[1])}))}function CA(t){return"view"===t.type}var DA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){var n=new qw,i=new gA,r=this.group;this._controller=new kI(e.getZr()),this._controllerHost={target:r},r.add(n.group),r.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem;this._model=t;var o=this._symbolDraw,a=this._lineDraw,s=this.group;if(CA(r)){var l={x:r.x,y:r.y,scaleX:r.scaleX,scaleY:r.scaleY};this._firstRender?s.attr(l):rh(s,l,t)}TA(t.getGraph(),qD(t));var u=t.getData();o.updateData(u);var h=t.getEdgeData();a.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,e,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,p=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,p),u.graph.eachNode((function(t){var e=t.dataIndex,n=t.getGraphicEl(),r=t.getModel();if(n){n.off("drag").off("dragend");var o=r.get("draggable");o&&n.on("drag",(function(){c&&(c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,p),c.setFixed(e),u.setItemLayout(e,[n.x,n.y]))})).on("dragend",(function(){c&&c.setUnfixed(e)})),n.setDraggable(o&&!!c,!!r.get("cursor")),"adjacency"===r.get(["emphasis","focus"])&&(Hs(n).focus=t.getAdjacentDataIndices())}})),u.graph.eachEdge((function(t){var e=t.getGraphicEl(),n=t.getModel().get(["emphasis","focus"]);e&&"adjacency"===n&&(Hs(e).focus={edge:[t.dataIndex],node:[t.node1.dataIndex,t.node2.dataIndex]})}));var d="circular"===t.get("layout")&&t.get(["circular","rotateLabel"]),f=u.getLayout("cx"),g=u.getLayout("cy");u.eachItemGraphicEl((function(t,e){var n=u.getItemModel(e).get(["label","rotate"])||0,i=t.getSymbolPath();if(d){var r=u.getItemLayout(e),o=Math.atan2(r[1]-g,r[0]-f);o<0&&(o=2*Math.PI+o);var a=r[0]=0&&t.call(e,n[r],r)},t.prototype.eachEdge=function(t,e){for(var n=this.edges,i=n.length,r=0;r=0&&n[r].node1.dataIndex>=0&&n[r].node2.dataIndex>=0&&t.call(e,n[r],r)},t.prototype.breadthFirstTraverse=function(t,e,n,i){if(e instanceof LA||(e=this._nodesMap[AA(e)]),e){for(var r="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o=0&&n.node2.dataIndex>=0})),r=0,o=i.length;r=0&&this[t][e].setItemVisual(this.dataIndex,n,i)},getVisual:function(n){return this[t][e].getItemVisual(this.dataIndex,n)},setLayout:function(n,i){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,n,i)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}}function RA(t,e,n,i,r){for(var o=new kA(i),a=0;a "+p)),u++)}var d,f=n.get("coordinateSystem");if("cartesian2d"===f||"polar"===f)d=rx(t,n);else{var g=hd.get(f),y=g&&g.dimensions||[];P(y,"value")<0&&y.concat(["value"]);var v=Km(t,{coordDimensions:y,encodeDefine:n.getEncode()}).dimensions;(d=new qm(v,n)).initData(t)}var m=new qm(["value"],n);return m.initData(l,s),r&&r(d,m),_C({mainData:d,struct:o,structAttr:"graph",datas:{node:d,edge:m},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}R(LA,OA("hostGraph","data")),R(PA,OA("hostGraph","edgeData"));var NA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments);var n=this;function i(){return n._categoriesData}this.legendVisualProvider=new hM(i,i),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeDefaultAndTheme=function(e){t.prototype.mergeDefaultAndTheme.apply(this,arguments),co(e,"edgeLabel",["show"])},e.prototype.getInitialData=function(t,e){var n,i=t.edges||t.links||[],r=t.data||t.nodes||[],o=this;if(r&&i){FD(n=this)&&(n.__curvenessList=[],n.__edgeMap={},GD(n));var a=RA(r,i,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t}));var n=dc.prototype.getModel;function i(t,e){var i=n.call(this,t,e);return i.resolveParentPath=r,i}function r(t){if(t&&("label"===t[0]||"label"===t[1])){var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}return t}e.wrapMethod("getItemModel",(function(t){return t.resolveParentPath=r,t.getModel=i,t}))}));return E(a.edges,(function(t){!function(t,e,n,i){if(FD(n)){var r=WD(t,e,n),o=n.__edgeMap,a=o[HD(r)];o[r]&&!a?o[r].isForward=!0:a&&o[r]&&(a.isForward=!0,o[r].isForward=!1),o[r]=o[r]||[],o[r].push(i)}}(t.node1,t.node2,this,t.dataIndex)}),this),a.data}},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.getCategoriesData=function(){return this._categoriesData},e.prototype.formatTooltip=function(t,e,n){if("edge"===n){var i=this.getData(),r=this.getDataParams(t,n),o=i.graph.getEdgeByIndex(t),a=i.getName(o.node1.dataIndex),s=i.getName(o.node2.dataIndex),l=[];return null!=a&&l.push(a),null!=s&&l.push(s),Xf("nameValue",{name:l.join(" > "),value:r.value,noValue:null==r.value})}return rg({series:this,dataIndex:t,multipleSeries:e})},e.prototype._updateCategoriesData=function(){var t=z(this.option.categories||[],(function(t){return null!=t.value?t:A({value:0},t)})),e=new qm(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray((function(t){return e.getItemModel(t)}))},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.isAnimationEnabled=function(){return t.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},e.type="series.graph",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={z:2,coordinateSystem:"view",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(sg),EA={type:"graphRoam",event:"graphRoam",update:"none"},zA=function(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0},VA=function(t){function e(e){var n=t.call(this,e)||this;return n.type="pointer",n}return n(e,t),e.prototype.getDefaultShape=function(){return new zA},e.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)},e}(gs);function BA(t,e){var n=null==t?"":t+"";return e&&(X(e)?n=e.replace("{value}",n):U(e)&&(n=e(t))),n}var FA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),r=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r);return{cx:Er(n[0],e.getWidth()),cy:Er(n[1],e.getHeight()),r:Er(t.get("radius"),o/2)}}(t,n);this._renderMain(t,e,n,i,r),this._data=t.getData()},e.prototype.dispose=function(){},e.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")?DS:Cu,c=u.get("show"),p=u.getModel("lineStyle"),d=p.get("width"),f=[s,l];ja(f,!a);for(var g=(l=f[1])-(s=f[0]),y=s,v=0;c&&v=t&&(0===e?0:i[e-1][0]).8?"bottom":"middle",align:u<-.4?"left":u>.4?"right":"center"},{inheritColor:R}),silent:!0}))}if(m.get("show")&&k!==_){P=(P=m.get("distance"))?P+l:l;for(var N=0;N<=b;N++){u=Math.cos(M),h=Math.sin(M);var E=new zu({shape:{x1:u*(f-P)+p,y1:h*(f-P)+d,x2:u*(f-S-P)+p,y2:h*(f-S-P)+d},silent:!0,style:D});"auto"===D.stroke&&E.setStyle({stroke:i((k+N/b)/_)}),c.add(E),M+=T}M-=T}else M+=I}},e.prototype._renderPointer=function(t,e,n,i,r,o,a,s,l){var u=this.group,h=this._data,c=this._progressEls,p=[],d=t.get(["pointer","show"]),f=t.getModel("progress"),g=f.get("show"),y=t.getData(),v=y.mapDimension("value"),m=+t.get("min"),x=+t.get("max"),_=[m,x],b=[o,a];function w(e,n){var i,o=y.getItemModel(e).getModel("pointer"),a=Er(o.get("width"),r.r),s=Er(o.get("length"),r.r),l=t.get(["pointer","icon"]),u=o.get("offsetCenter"),h=Er(u[0],r.r),c=Er(u[1],r.r),p=o.get("keepAspect");return(i=l?Ly(l,h-a/2,c-s,a,s,null,p):new VA({shape:{angle:-Math.PI/2,width:a,r:s,x:h,y:c}})).rotation=-(n+Math.PI/2),i.x=r.cx,i.y=r.cy,i}function S(t,e){var n=f.get("roundCap")?DS:Cu,i=f.get("overlap"),a=i?f.get("width"):l/y.count(),u=i?r.r-a:r.r-(t+1)*a,h=i?r.r:r.r-t*a,c=new n({shape:{startAngle:o,endAngle:e,cx:r.cx,cy:r.cy,clockwise:s,r0:u,r:h}});return i&&(c.z2=x-y.get(v,t)%x),c}(g||d)&&(y.diff(h).add((function(e){var n=y.get(v,e);if(d){var i=w(e,o);oh(i,{rotation:-((isNaN(+n)?b[0]:Nr(n,_,b,!0))+Math.PI/2)},t),u.add(i),y.setItemGraphicEl(e,i)}if(g){var r=S(e,o),a=f.get("clip");oh(r,{shape:{endAngle:Nr(n,_,b,a)}},t),u.add(r),Ys(t.seriesIndex,y.dataType,e,r),p[e]=r}})).update((function(e,n){var i=y.get(v,e);if(d){var r=h.getItemGraphicEl(n),a=r?r.rotation:o,s=w(e,a);s.rotation=a,rh(s,{rotation:-((isNaN(+i)?b[0]:Nr(i,_,b,!0))+Math.PI/2)},t),u.add(s),y.setItemGraphicEl(e,s)}if(g){var l=c[n],m=S(e,l?l.shape.endAngle:o),x=f.get("clip");rh(m,{shape:{endAngle:Nr(i,_,b,x)}},t),u.add(m),Ys(t.seriesIndex,y.dataType,e,m),p[e]=m}})).execute(),y.each((function(t){var e=y.getItemModel(t),n=e.getModel("emphasis"),r=n.get("focus"),o=n.get("blurScope"),a=n.get("disabled");if(d){var s=y.getItemGraphicEl(t),l=y.getItemVisual(t,"style"),u=l.fill;if(s instanceof _s){var h=s.style;s.useStyle(A({image:h.image,x:h.x,y:h.y,width:h.width,height:h.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(Nr(y.get(v,t),_,[0,1],!0))),s.z2EmphasisLift=0,Vl(s,e),Rl(s,r,o,a)}if(g){var c=p[t];c.useStyle(y.getItemVisual(t,"style")),c.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),c.z2EmphasisLift=0,Vl(c,e),Rl(c,r,o,a)}})),this._progressEls=p)},e.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor");if(n.get("show")){var i=n.get("size"),r=n.get("icon"),o=n.get("offsetCenter"),a=n.get("keepAspect"),s=Ly(r,e.cx-i/2+Er(o[0],e.r),e.cy-i/2+Er(o[1],e.r),i,i,null,a);s.z2=n.get("showAbove")?1:0,s.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(s)}},e.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 Cr,c=[],p=[],d=t.isAnimationEnabled(),f=t.get(["pointer","showAbove"]);a.diff(this._data).add((function(t){c[t]=new ks({silent:!0}),p[t]=new ks({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 Cr,y=i(Nr(o,[l,u],[0,1],!0)),v=n.getModel("title");if(v.get("show")){var m=v.get("offsetCenter"),x=r.cx+Er(m[0],r.r),_=r.cy+Er(m[1],r.r);(D=c[e]).attr({z2:f?0:2,style:Uh(v,{x:x,y:_,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:y})}),g.add(D)}var b=n.getModel("detail");if(b.get("show")){var w=b.get("offsetCenter"),S=r.cx+Er(w[0],r.r),M=r.cy+Er(w[1],r.r),I=Er(b.get("width"),r.r),T=Er(b.get("height"),r.r),C=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:y,D=p[e],A=b.get("formatter");D.attr({z2:f?0:2,style:Uh(b,{x:S,y:M,text:BA(o,A),width:isNaN(I)?null:I,height:isNaN(T)?null:T,align:"center",verticalAlign:"middle"},{inheritColor:C})}),Qh(D,{normal:b},o,(function(t){return BA(t,A)})),d&&tc(D,e,a,t,{getFormattedLabel:function(t,e,n,i,r,a){return BA(a?a.interpolatedValue:o,A)}}),g.add(D)}h.add(g)})),this.group.add(h),this._titleEls=c,this._detailEls=p},e.type="gauge",e}(xg),GA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="itemStyle",n}return n(e,t),e.prototype.getInitialData=function(t,e){return uM(this,["value"])},e.type="series.gauge",e.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},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}},e}(sg),WA=["itemStyle","opacity"],HA=function(t){function e(e,n){var i=t.call(this)||this,r=i,o=new Ru,a=new ks;return r.setTextContent(a),i.setTextGuideLine(o),i.updateData(e,n,!0),i}return n(e,t),e.prototype.updateData=function(t,e,n){var i=this,r=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e),s=o.getModel("emphasis"),l=o.get(WA);l=null==l?1:l,n||hh(i),i.useStyle(t.getItemVisual(e,"style")),i.style.lineJoin="round",n?(i.setShape({points:a.points}),i.style.opacity=0,oh(i,{style:{opacity:l}},r,e)):rh(i,{style:{opacity:l},shape:{points:a.points}},r,e),Vl(i,o),this._updateLabel(t,e),Rl(this,s.get("focus"),s.get("blurScope"),s.get("disabled"))},e.prototype._updateLabel=function(t,e){var n=this,i=this.getTextGuideLine(),r=n.getTextContent(),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e).label,l=t.getItemVisual(e,"style"),u=l.fill;Hh(r,Yh(a),{labelFetcher:t.hostModel,labelDataIndex:e,defaultOpacity:l.opacity,defaultText:t.getName(e)},{normal:{align:s.textAlign,verticalAlign:s.verticalAlign}}),n.setTextConfig({local:!0,inside:!!s.inside,insideStroke:u,outsideFill:u});var h=s.linePoints;i.setShape({points:h}),n.textGuideLineConfig={anchor:h?new Ji(h[0][0],h[0][1]):null},rh(r,{style:{x:s.x,y:s.y}},o,e),r.attr({rotation:s.rotation,originX:s.x,originY:s.y,z2:10}),db(n,fb(a),{stroke:u})},e}(Pu),YA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreLabelLineUpdate=!0,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this._data,o=this.group;i.diff(r).add((function(t){var e=new HA(i,t);i.setItemGraphicEl(t,e),o.add(e)})).update((function(t,e){var n=r.getItemGraphicEl(e);n.updateData(i,t),o.add(n),i.setItemGraphicEl(t,n)})).remove((function(e){uh(r.getItemGraphicEl(e),t,e)})).execute(),this._data=i},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.prototype.dispose=function(){},e.type="funnel",e}(xg),UA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new hM(W(this.getData,this),W(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.getInitialData=function(t,e){return uM(this,{coordDimensions:["value"],encodeDefaulter:H(Yp,this)})},e.prototype._defaultLabelLine=function(t){co(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},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=n.mapDimension("value"),o=n.getSum(r);return i.percent=o?+(n.get(r,e)/o*100).toFixed(2):0,i.$vars.push("percent"),i},e.type="series.funnel",e.defaultOption={z:2,legendHoverLink:!0,colorBy:"data",left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(sg);function XA(t,e){t.eachSeriesByType("funnel",(function(t){var n=t.getData(),i=n.mapDimension("value"),r=t.get("sort"),o=function(t,e){return xp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e),a=t.get("orient"),s=o.width,l=o.height,u=function(t,e){for(var n=t.mapDimension("value"),i=t.mapArray(n,(function(t){return t})),r=[],o="ascending"===e,a=0,s=t.count();a5)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&ok(this,"mousemove")){var e=this._model,n=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i?null:{duration:0}})}}};function ok(t,e){var n=t._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===e}var ak=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){t.prototype.init.apply(this,arguments),this.mergeOption({})},e.prototype.mergeOption=function(t){var e=this.option;t&&C(e,t,!0),this._initDimensions()},e.prototype.contains=function(t,e){var n=t.get("parallelIndex");return null!=n&&e.getComponent("parallel",n)===this},e.prototype.setAxisExpand=function(t){E(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],(function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])}),this)},e.prototype._initDimensions=function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[];E(B(this.ecModel.queryComponents({mainType:"parallelAxis"}),(function(t){return(t.get("parallelIndex")||0)===this.componentIndex}),this),(function(n){t.push("dim"+n.get("dim")),e.push(n.componentIndex)}))},e.type="parallel",e.dependencies=["parallelAxis"],e.layoutMode="box",e.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},e}(Tp),sk=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.axisIndex=o,a}return n(e,t),e.prototype.isHorizontal=function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")},e}(H_);function lk(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=hk(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=hk(s,[0,a]),r=o=hk(s,[r,o]),i=0}e[0]=hk(e[0],n),e[1]=hk(e[1],n);var l=uk(e,i);e[i]+=t;var u,h=r||0,c=n.slice();return l.sign<0?c[0]+=h:c[1]-=h,e[i]=hk(e[i],c),u=uk(e,i),null!=r&&(u.sign!==l.sign||u.spano&&(e[1-i]=e[i]+u.sign*o),e}function uk(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function hk(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var ck=E,pk=Math.min,dk=Math.max,fk=Math.floor,gk=Math.ceil,yk=zr,vk=Math.PI,mk=function(){function t(t,e,n){this.type="parallel",this._axesMap=ft(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=t.dimensions,r=t.parallelAxisIndex;ck(i,(function(t,n){var i=r[n],o=e.getComponent("parallelAxis",i),a=this._axesMap.set(t,new sk(t,o_(o),[0,0],o.get("type"),i)),s="category"===a.type;a.onBand=s&&o.get("boundaryGap"),a.inverse=o.get("inverse"),o.axis=a,a.model=o,a.coordinateSystem=o.coordinateSystem=this}),this)},t.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},t.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),n=e.axisBase,i=e.layoutBase,r=e.pixelDimIndex,o=t[1-r],a=t[r];return o>=n&&o<=n+e.axisLength&&a>=i&&a<=i+e.layoutLength},t.prototype.getModel=function(){return this._model},t.prototype._updateAxesFromSeries=function(t,e){e.eachSeries((function(n){if(t.contains(n,e)){var i=n.getData();ck(this.dimensions,(function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(i,i.mapDimension(t)),r_(e.scale,e.model)}),this)}}),this)},t.prototype.resize=function(t,e){this._rect=xp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},t.prototype.getRect=function(){return this._rect},t.prototype._makeLayoutInfo=function(){var t,e=this._model,n=this._rect,i=["x","y"],r=["width","height"],o=e.get("layout"),a="horizontal"===o?0:1,s=n[r[a]],l=[0,s],u=this.dimensions.length,h=xk(e.get("axisExpandWidth"),l),c=xk(e.get("axisExpandCount")||0,[0,u]),p=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,d=e.get("axisExpandWindow");d?(t=xk(d[1]-d[0],l),d[1]=d[0]+t):(t=xk(h*(c-1),l),(d=[h*(e.get("axisExpandCenter")||fk(u/2))-t/2])[1]=d[0]+t);var f=(s-t)/(u-c);f<3&&(f=0);var g=[fk(yk(d[0]/h,1))+1,gk(yk(d[1]/h,1))-1],y=f/h*d[0];return{layout:o,pixelDimIndex:a,layoutBase:n[i[a]],layoutLength:s,axisBase:n[i[1-a]],axisLength:n[r[1-a]],axisExpandable:p,axisExpandWidth:h,axisCollapseWidth:f,axisExpandWindow:d,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:y}},t.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,n=this.dimensions,i=this._makeLayoutInfo(),r=i.layout;e.each((function(t){var e=[0,i.axisLength],n=t.inverse?1:0;t.setExtent(e[n],e[1-n])})),ck(n,(function(e,n){var o=(i.axisExpandable?bk:_k)(n,i),a={horizontal:{x:o.position,y:i.axisLength},vertical:{x:0,y:o.position}},s={horizontal:vk/2,vertical:0},l=[a[r].x+t.x,a[r].y+t.y],u=s[r],h=[1,0,0,1,0,0];zi(h,h,u),Ei(h,h,l),this._axesLayout[e]={position:l,rotation:u,transform:h,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}}),this)},t.prototype.getAxis=function(t){return this._axesMap.get(t)},t.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},t.prototype.eachActiveState=function(t,e,n,i){null==n&&(n=0),null==i&&(i=t.count());var r=this._axesMap,o=this.dimensions,a=[],s=[];E(o,(function(e){a.push(t.mapDimension(e)),s.push(r.get(e).model)}));for(var l=this.hasAxisBrushed(),u=n;ur*(1-h[0])?(l="jump",a=s-r*(1-h[2])):(a=s-r*h[1])>=0&&(a=s-r*(1-h[1]))<=0&&(a=0),(a*=e.axisExpandWidth/u)?lk(a,i,o,"all"):l="none";else{var p=i[1]-i[0];(i=[dk(0,o[1]*s/p-p/2)])[1]=pk(o[1],i[0]+p),i[0]=i[1]-p}return{axisExpandWindow:i,behavior:l}},t}();function xk(t,e){return pk(dk(t,e[0]),e[1])}function _k(t,e){var n=e.layoutLength/(e.axisCount-1);return{position:n*t,axisNameAvailableWidth:n,axisLabelShow:!0}}function bk(t,e){var n,i,r=e.layoutLength,o=e.axisExpandWidth,a=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return t=0;n--)Vr(e[n])},e.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,r=e.length;i6}(t)||o){if(a&&!o){"single"===s.brushMode&&Wk(t);var l=T(s);l.brushType=oL(l.brushType,a),l.panelId=a===Mk?null:a.panelId,o=t._creatingCover=Rk(t,l),t._covers.push(o)}if(o){var u=lL[oL(t._brushType,a)];o.__brushOption.range=u.getCreatingRange(eL(t,o,t._track)),i&&(Nk(t,o),u.updateCommon(t,o)),Ek(t,o),r={isEnd:i}}}else i&&"single"===s.brushMode&&s.removeOnClick&&Fk(t,e,n)&&Wk(t)&&(r={isEnd:i,removeOnClick:!0});return r}function oL(t,e){return"auto"===t?e.defaultBrushType:t}var aL={mousedown:function(t){if(this._dragging)sL(this,t);else if(!t.target||!t.target.draggable){nL(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=Fk(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,n=t.offsetY,i=this.group.transformCoordToLocal(e,n);if(function(t,e,n){if(t._brushType&&!function(t,e,n){var i=t._zr;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=Fk(t,e,n);if(!t._dragging)for(var a=0;a=0&&(o[r[a].depth]=new dc(r[a],this,e));if(i&&n)return RA(i,n,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getData().getItemLayout(e);if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t})),e.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getGraph().getEdgeByIndex(e).node1.getLayout();if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t}))})).data},e.prototype.setNodePosition=function(t,e){var n=(this.option.data||this.option.nodes)[t];n.localX=e[0],n.localY=e[1]},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.formatTooltip=function(t,e,n){function i(t){return isNaN(t)||null==t}if("edge"===n){var r=this.getDataParams(t,n),o=r.data,a=r.value;return Xf("nameValue",{name:o.source+" -- "+o.target,value:a,noValue:i(a)})}var s=this.getGraph().getNodeByIndex(t).getLayout().value,l=this.getDataParams(t,n).data.name;return Xf("nameValue",{name:null!=l?l+"":null,value:s,noValue:i(s)})},e.prototype.optionUpdated=function(){},e.prototype.getDataParams=function(e,n){var i=t.prototype.getDataParams.call(this,e,n);if(null==i.value&&"node"===n){var r=this.getGraph().getNodeByIndex(e).getLayout().value;i.value=r}return i},e.type="series.sankey",e.defaultOption={z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},e}(sg);function SL(t,e){t.eachSeriesByType("sankey",(function(t){var n=t.get("nodeWidth"),i=t.get("nodeGap"),r=function(t,e){return xp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=r;var o=r.width,a=r.height,s=t.getGraph(),l=s.nodes,u=s.edges;!function(t){E(t,(function(t){var e=OL(t.outEdges,PL),n=OL(t.inEdges,PL),i=t.getValue()||0,r=Math.max(e,n,i);t.setLayout({value:r},!0)}))}(l),function(t,e,n,i,r,o,a,s,l){(function(t,e,n,i,r,o,a){for(var s=[],l=[],u=[],h=[],c=0,p=0;p=0;v&&y.depth>d&&(d=y.depth),g.setLayout({depth:v?y.depth:c},!0),"vertical"===o?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var m=0;mc-1?d:c-1;a&&"left"!==a&&function(t,e,n,i){if("right"===e){for(var r=[],o=t,a=0;o.length;){for(var s=0;s0;o--)TL(s,l*=.99,a),IL(s,r,n,i,a),RL(s,l,a),IL(s,r,n,i,a)}(t,e,o,r,i,a,s),function(t,e){var n="vertical"===e?"x":"y";E(t,(function(t){t.outEdges.sort((function(t,e){return t.node2.getLayout()[n]-e.node2.getLayout()[n]})),t.inEdges.sort((function(t,e){return t.node1.getLayout()[n]-e.node1.getLayout()[n]}))})),E(t,(function(t){var e=0,n=0;E(t.outEdges,(function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy})),E(t.inEdges,(function(t){t.setLayout({ty:n},!0),n+=t.getLayout().dy}))}))}(t,s)}(l,u,n,i,o,a,0!==B(l,(function(t){return 0===t.getLayout().value})).length?0:t.get("layoutIterations"),t.get("orient"),t.get("nodeAlign"))}))}function ML(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function IL(t,e,n,i,r){var o="vertical"===r?"x":"y";E(t,(function(t){var a,s,l;t.sort((function(t,e){return t.getLayout()[o]-e.getLayout()[o]}));for(var u=0,h=t.length,c="vertical"===r?"dx":"dy",p=0;p0&&(a=s.getLayout()[o]+l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]+s.getLayout()[c]+e;if((l=u-e-("vertical"===r?i:n))>0)for(a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0),u=a,p=h-2;p>=0;--p)(l=(s=t[p]).getLayout()[o]+s.getLayout()[c]+e-u)>0&&(a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]}))}function TL(t,e,n){E(t.slice().reverse(),(function(t){E(t,(function(t){if(t.outEdges.length){var i=OL(t.outEdges,CL,n)/OL(t.outEdges,PL);if(isNaN(i)){var r=t.outEdges.length;i=r?OL(t.outEdges,DL,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-LL(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-LL(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function CL(t,e){return LL(t.node2,e)*t.getValue()}function DL(t,e){return LL(t.node2,e)}function AL(t,e){return LL(t.node1,e)*t.getValue()}function kL(t,e){return LL(t.node1,e)}function LL(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function PL(t){return t.getValue()}function OL(t,e,n){for(var i=0,r=t.length,o=-1;++oi&&(i=e)})),E(e,(function(e){var r=new iD({type:"color",mappingMethod:"linear",dataExtent:[n,i],visual:t.get("color")}).mapValueToVisual(e.getLayout().value),o=e.getModel().get(["itemStyle","color"]);null!=o?(e.setVisual("color",o),e.setVisual("style",{fill:o})):(e.setVisual("color",r),e.setVisual("style",{fill:r}))}))}}))}var EL=function(){function t(){}return t.prototype.getInitialData=function(t,e){var n,i,r=e.getComponent("xAxis",this.get("xAxisIndex")),o=e.getComponent("yAxis",this.get("yAxisIndex")),a=r.get("type"),s=o.get("type");"category"===a?(t.layout="horizontal",n=r.getOrdinalMeta(),i=!0):"category"===s?(t.layout="vertical",n=o.getOrdinalMeta(),i=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,h=this._baseAxisDim=l[u],c=l[1-u],p=[r,o],d=p[u].get("type"),f=p[1-u].get("type"),g=t.data;if(g&&i){var y=[];E(g,(function(t,e){var n;Y(t)?(n=t.slice(),t.unshift(e)):Y(t.value)?((n=A({},t)).value=n.value.slice(),t.value.unshift(e)):n=t,y.push(n)})),t.data=y}var v=this.defaultValueDimensions,m=[{name:h,type:Dm(d),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:Dm(f),dimsDef:v.slice()}];return uM(this,{coordDimensions:m,dimensionsCount:v.length+1,encodeDefaulter:H(Hp,m,this)})},t.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},t}(),zL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],n.visualDrawType="stroke",n}return n(e,t),e.type="series.boxplot",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},e}(sg);R(zL,EL,!0);var VL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this.group,o=this._data;this._data||r.removeAll();var a="horizontal"===t.get("layout")?1:0;i.diff(o).add((function(t){if(i.hasValue(t)){var e=GL(i.getItemLayout(t),i,t,a,!0);i.setItemGraphicEl(t,e),r.add(e)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(i.hasValue(t)){var s=i.getItemLayout(t);n?(hh(n),WL(s,n,i,t)):n=GL(s,i,t,a),r.add(n),i.setItemGraphicEl(t,n)}else r.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)})).execute(),this._data=i},e.prototype.remove=function(t){var e=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl((function(t){t&&e.remove(t)}))},e.type="boxplot",e}(xg),BL=function(){},FL=function(t){function e(e){var n=t.call(this,e)||this;return n.type="boxplotBoxPath",n}return n(e,t),e.prototype.getDefaultShape=function(){return new BL},e.prototype.buildPath=function(t,e){var n=e.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();ig){var _=[v,x];i.push(_)}}}return{boxData:n,outliers:i}}(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:i.boxData},{data:i.outliers}]}},jL=["color","borderColor"],qL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},e.prototype.incrementalPrepareRender=function(t,e,n){this._clear(),this._updateDrawMode(t)},e.prototype.incrementalRender=function(t,e,n,i){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(t,e):this._incrementalRenderNormal(t,e)},e.prototype.eachRendered=function(t){Vh(this._progressiveEls||this.group,t)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t){var e=t.getData(),n=this._data,i=this.group,r=e.getLayout("isSimpleBox"),o=t.get("clip",!0),a=t.coordinateSystem,s=a.getArea&&a.getArea();this._data||i.removeAll(),e.diff(n).add((function(n){if(e.hasValue(n)){var a=e.getItemLayout(n);if(o&&QL(s,a))return;var l=JL(a,n,!0);oh(l,{shape:{points:a.ends}},t,n),tP(l,e,n,r),i.add(l),e.setItemGraphicEl(n,l)}})).update((function(a,l){var u=n.getItemGraphicEl(l);if(e.hasValue(a)){var h=e.getItemLayout(a);o&&QL(s,h)?i.remove(u):(u?(rh(u,{shape:{points:h.ends}},t,a),hh(u)):u=JL(h),tP(u,e,a,r),i.add(u),e.setItemGraphicEl(a,u))}else i.remove(u)})).remove((function(t){var e=n.getItemGraphicEl(t);e&&i.remove(e)})).execute(),this._data=e},e.prototype._renderLarge=function(t){this._clear(),rP(t,this.group);var e=t.get("clip",!0)?lS(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._incrementalRenderNormal=function(t,e){for(var n,i=e.getData(),r=i.getLayout("isSimpleBox");null!=(n=t.next());){var o=JL(i.getItemLayout(n));tP(o,i,n,r),o.incremental=!0,this.group.add(o),this._progressiveEls.push(o)}},e.prototype._incrementalRenderLarge=function(t,e){rP(e,this.group,this._progressiveEls,!0)},e.prototype.remove=function(t){this._clear()},e.prototype._clear=function(){this.group.removeAll(),this._data=null},e.type="candlestick",e}(xg),KL=function(){},$L=function(t){function e(e){var n=t.call(this,e)||this;return n.type="normalCandlestickBox",n}return n(e,t),e.prototype.getDefaultShape=function(){return new KL},e.prototype.buildPath=function(t,e){var n=e.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},e}(gs);function JL(t,e,n){var i=t.ends;return new $L({shape:{points:n?eP(i,t):i},z2:100})}function QL(t,e){for(var n=!0,i=0;i0?"borderColor":"borderColor0"])||n.get(["itemStyle",t>0?"color":"color0"]),o=n.getModel("itemStyle").getItemStyle(jL);e.useStyle(o),e.style.fill=null,e.style.stroke=r}var aP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],n}return n(e,t),e.prototype.getShadowDim=function(){return"open"},e.prototype.brushSelector=function(t,e,n){var i=e.getItemLayout(t);return i&&n.rect(i.brushRect)},e.type="series.candlestick",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},e}(sg);function sP(t){t&&Y(t.series)&&E(t.series,(function(t){q(t)&&"k"===t.type&&(t.type="candlestick")}))}R(aP,EL,!0);var lP=["itemStyle","borderColor"],uP=["itemStyle","borderColor0"],hP=["itemStyle","color"],cP=["itemStyle","color0"],pP={seriesType:"candlestick",plan:yg(),performRawSeries:!0,reset:function(t,e){function n(t,e){return e.get(t>0?hP:cP)}function i(t,e){return e.get(t>0?lP:uP)}if(!e.isSeriesFiltered(t))return!t.pipelineContext.large&&{progress:function(t,e){for(var r;null!=(r=t.next());){var o=e.getItemModel(r),a=e.getItemLayout(r).sign,s=o.getItemStyle();s.fill=n(a,o),s.stroke=i(a,o)||s.fill,A(e.ensureUniqueItemVisual(r,"style"),s)}}}}},dP={seriesType:"candlestick",plan:yg(),reset:function(t){var e=t.coordinateSystem,n=t.getData(),i=function(t,e){var n,i=t.getBaseAxis(),r="category"===i.type?i.getBandWidth():(n=i.getExtent(),Math.abs(n[1]-n[0])/e.count()),o=Er(rt(t.get("barMaxWidth"),r),r),a=Er(rt(t.get("barMinWidth"),1),r),s=t.get("barWidth");return null!=s?Er(s,r):Math.max(Math.min(r/2,o),a)}(t,n),r=["x","y"],o=n.getDimensionIndex(n.mapDimension(r[0])),a=z(n.mapDimensionsAll(r[1]),n.getDimensionIndex,n),s=a[0],l=a[1],u=a[2],h=a[3];if(n.setLayout({candleWidth:i,isSimpleBox:i<=1.3}),!(o<0||a.length<4))return{progress:t.pipelineContext.large?function(t,n){for(var i,r,a=Sx(4*t.count),c=0,p=[],d=[],f=n.getStore();null!=(r=t.next());){var g=f.get(o,r),y=f.get(s,r),v=f.get(l,r),m=f.get(u,r),x=f.get(h,r);isNaN(g)||isNaN(m)||isNaN(x)?(a[c++]=NaN,c+=3):(a[c++]=fP(f,r,y,v,l),p[0]=g,p[1]=m,i=e.dataToPoint(p,null,d),a[c++]=i?i[0]:NaN,a[c++]=i?i[1]:NaN,p[1]=x,i=e.dataToPoint(p,null,d),a[c++]=i?i[1]:NaN)}n.setLayout("largePoints",a)}:function(t,n){for(var r,a=n.getStore();null!=(r=t.next());){var c=a.get(o,r),p=a.get(s,r),d=a.get(l,r),f=a.get(u,r),g=a.get(h,r),y=Math.min(p,d),v=Math.max(p,d),m=S(y,c),x=S(v,c),_=S(f,c),b=S(g,c),w=[];M(w,x,0),M(w,m,1),w.push(T(b),T(x),T(_),T(m)),n.setItemLayout(r,{sign:fP(a,r,p,d,l),initBaseline:p>d?x[1]:m[1],ends:w,brushRect:I(f,g,c)})}function S(t,n){var i=[];return i[0]=n,i[1]=t,isNaN(n)||isNaN(t)?[NaN,NaN]:e.dataToPoint(i)}function M(t,e,n){var r=e.slice(),o=e.slice();r[0]=Mh(r[0]+i/2,1,!1),o[0]=Mh(o[0]-i/2,1,!0),n?t.push(r,o):t.push(o,r)}function I(t,e,n){var r=S(t,n),o=S(e,n);return r[0]-=i/2,o[0]-=i/2,{x:r[0],y:r[1],width:i,height:o[1]-r[1]}}function T(t){return t[0]=Mh(t[0],1),t}}}}};function fP(t,e,n,i,r){return n>i?-1:n0?t.get(r,e-1)<=i?1:-1:1}function gP(t,e){var n=e.rippleEffectColor||e.color;t.eachChild((function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?n:null,fill:"fill"===e.brushType?n:null}})}))}var yP=function(t){function e(e,n){var i=t.call(this)||this,r=new Yw(e,n),o=new Cr;return i.add(r),i.add(o),i.updateData(e,n),i}return n(e,t),e.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},e.prototype.startEffectAnimation=function(t){for(var e=t.symbolType,n=t.color,i=t.rippleNumber,r=this.childAt(1),o=0;o0&&(o=this._getLineLength(i)/s*1e3),o!==this._period||a!==this._loop){i.stopAnimation();var u=void 0;u=U(l)?l(n):l,i.__t>0&&(u=-o*i.__t),this._animateSymbol(i,o,u,a)}this._period=o,this._loop=a}},e.prototype._animateSymbol=function(t,e,n,i){if(e>0){t.__t=0;var r=this,o=t.animate("",i).when(e,{__t:1}).delay(n).during((function(){r._updateSymbolPosition(t)}));i||o.done((function(){r.remove(t)})),o.start()}},e.prototype._getLineLength=function(t){return Et(t.__p1,t.__cp1)+Et(t.__cp1,t.__p2)},e.prototype._updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},e.prototype.updateData=function(t,e,n){this.childAt(0).updateData(t,e,n),this._updateEffectSymbol(t,e)},e.prototype._updateSymbolPosition=function(t){var e=t.__p1,n=t.__p2,i=t.__cp1,r=t.__t,o=[t.x,t.y],a=o.slice(),s=Ke,l=$e;o[0]=s(e[0],i[0],n[0],r),o[1]=s(e[1],i[1],n[1],r);var u=l(e[0],i[0],n[0],r),h=l(e[1],i[1],n[1],r);t.rotation=-Math.atan2(h,u)-Math.PI/2,"line"!==this._symbolType&&"rect"!==this._symbolType&&"roundRect"!==this._symbolType||(void 0!==t.__lastT&&t.__lastT=0&&!(i[o]<=e);o--);o=Math.min(o,r-2)}else{for(o=a;oe);o++);o=Math.min(o-1,r-2)}var s=(e-i[o])/(i[o+1]-i[o]),l=n[o],u=n[o+1];t.x=l[0]*(1-s)+s*u[0],t.y=l[1]*(1-s)+s*u[1];var h=u[0]-l[0],c=u[1]-l[1];t.rotation=-Math.atan2(c,h)-Math.PI/2,this._lastFrame=o,this._lastFramePercent=e,t.ignore=!1}},e}(xP),wP=function(){this.polyline=!1,this.curveness=0,this.segs=[]},SP=function(t){function e(e){var n=t.call(this,e)||this;return n._off=0,n.hoverDataIdx=-1,n}return n(e,t),e.prototype.reset=function(){this.notClear=!1,this._off=0},e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new wP},e.prototype.buildPath=function(t,e){var n,i=e.segs,r=e.curveness;if(e.polyline)for(n=this._off;n0){t.moveTo(i[n++],i[n++]);for(var a=1;a0){var c=(s+u)/2-(l-h)*r,p=(l+h)/2-(u-s)*r;t.quadraticCurveTo(c,p,u,h)}else t.lineTo(u,h)}this.incremental&&(this._off=n,this.notClear=!0)},e.prototype.findDataIndex=function(t,e){var n=this.shape,i=n.segs,r=n.curveness,o=this.style.lineWidth;if(n.polyline)for(var a=0,s=0;s0)for(var u=i[s++],h=i[s++],c=1;c0){if(Ja(u,h,(u+p)/2-(h-d)*r,(h+d)/2-(p-u)*r,p,d,o,t,e))return a}else if(Ka(u,h,p,d,o,t,e))return a;a++}return-1},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect();return t=n[0],e=n[1],i.contain(t,e)?(this.hoverDataIdx=this.findDataIndex(t,e))>=0:(this.hoverDataIdx=-1,!1)},e.prototype.getBoundingRect=function(){var t=this._rect;if(!t){for(var e=this.shape.segs,n=1/0,i=1/0,r=-1/0,o=-1/0,a=0;a0&&(o.dataIndex=n+t.__startIndex)}))},t.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},t}(),IP={seriesType:"lines",plan:yg(),reset:function(t){var e=t.coordinateSystem;if(e){var n=t.get("polyline"),i=t.pipelineContext.large;return{progress:function(r,o){var a=[];if(i){var s=void 0,l=r.end-r.start;if(n){for(var u=0,h=r.start;h0&&(l||s.configLayer(o,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(a/10+.9,1),0)})),r.updateData(i);var u=t.get("clip",!0)&&lS(t.coordinateSystem,!1,t);u?this.group.setClipPath(u):this.group.removeClipPath(),this._lastZlevel=o,this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateLineDraw(i,t).incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._lineDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},e.prototype.eachRendered=function(t){this._lineDraw&&this._lineDraw.eachRendered(t)},e.prototype.updateTransform=function(t,e,n){var i=t.getData(),r=t.pipelineContext;if(!this._finished||r.large||r.progressiveRender)return{update:!0};var o=IP.reset(t,e,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},e.prototype._updateLineDraw=function(t,e){var n=this._lineDraw,i=this._showEffect(e),r=!!e.get("polyline"),o=e.pipelineContext.large;return n&&i===this._hasEffet&&r===this._isPolyline&&o===this._isLargeDraw||(n&&n.remove(),n=this._lineDraw=o?new MP:new gA(r?i?bP:_P:i?xP:fA),this._hasEffet=i,this._isPolyline=r,this._isLargeDraw=o),this.group.add(n.group),n},e.prototype._showEffect=function(t){return!!t.get(["effect","show"])},e.prototype._clearLayer=function(t){var e=t.getZr();"svg"===e.painter.getType()||null==this._lastZlevel||e.painter.getLayer(this._lastZlevel).clear(!0)},e.prototype.remove=function(t,e){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(e)},e.prototype.dispose=function(t,e){this.remove(t,e)},e.type="lines",e}(xg),CP="undefined"==typeof Uint32Array?Array:Uint32Array,DP="undefined"==typeof Float64Array?Array:Float64Array;function AP(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=z(e,(function(t){var e={coords:[t[0].coord,t[1].coord]};return t[0].name&&(e.fromName=t[0].name),t[1].name&&(e.toName=t[1].name),D([e,t[0],t[1]])})))}var kP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="lineStyle",n.visualDrawType="stroke",n}return n(e,t),e.prototype.init=function(e){e.data=e.data||[],AP(e);var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count)),t.prototype.init.apply(this,arguments)},e.prototype.mergeOption=function(e){if(AP(e),e.data){var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count))}t.prototype.mergeOption.apply(this,arguments)},e.prototype.appendData=function(t){var e=this._processFlatCoordsArray(t.data);e.flatCoords&&(this._flatCoords?(this._flatCoords=gt(this._flatCoords,e.flatCoords),this._flatCoordsOffset=gt(this._flatCoordsOffset,e.flatCoordsOffset)):(this._flatCoords=e.flatCoords,this._flatCoordsOffset=e.flatCoordsOffset),t.data=new Float32Array(e.count)),this.getRawData().appendData(t.data)},e.prototype._getCoordsFromItemModel=function(t){var e=this.getData().getItemModel(t);return e.option instanceof Array?e.option:e.getShallow("coords")},e.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[2*t+1]:this._getCoordsFromItemModel(t).length},e.prototype.getLineCoords=function(t,e){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[2*t],i=this._flatCoordsOffset[2*t+1],r=0;r ")})},e.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},e.prototype.getZLevelKey=function(){var t=this.getModel("effect"),e=t.get("trailLength");return this.getData().count()>this.getProgressiveThreshold()?this.id:t.get("show")&&e>0?e+"":""},e.type="series.lines",e.dependencies=["grid","polar","geo","calendar"],e.defaultOption={coordinateSystem:"geo",z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},e}(sg);function LP(t){return t instanceof Array||(t=[t,t]),t}var PP={seriesType:"lines",reset:function(t){var e=LP(t.get("symbol")),n=LP(t.get("symbolSize")),i=t.getData();return i.setVisual("fromSymbol",e&&e[0]),i.setVisual("toSymbol",e&&e[1]),i.setVisual("fromSymbolSize",n&&n[0]),i.setVisual("toSymbolSize",n&&n[1]),{dataEach:i.hasItemOption?function(t,e){var n=t.getItemModel(e),i=LP(n.getShallow("symbol",!0)),r=LP(n.getShallow("symbolSize",!0));i[0]&&t.setItemVisual(e,"fromSymbol",i[0]),i[1]&&t.setItemVisual(e,"toSymbol",i[1]),r[0]&&t.setItemVisual(e,"fromSymbolSize",r[0]),r[1]&&t.setItemVisual(e,"toSymbolSize",r[1])}:null}}},OP=function(){function t(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=h.createCanvas();this.canvas=t}return t.prototype.update=function(t,e,n,i,r,o){var a=this._getBrush(),s=this._getGradient(r,"inRange"),l=this._getGradient(r,"outOfRange"),u=this.pointSize+this.blurSize,h=this.canvas,c=h.getContext("2d"),p=t.length;h.width=e,h.height=n;for(var d=0;d0){var I=o(v)?s:l;v>0&&(v=v*S+w),x[_++]=I[M],x[_++]=I[M+1],x[_++]=I[M+2],x[_++]=I[M+3]*v*256}else _+=4}return c.putImageData(m,0,0),h},t.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=h.createCanvas()),e=this.pointSize+this.blurSize,n=2*e;t.width=n,t.height=n;var i=t.getContext("2d");return i.clearRect(0,0,n,n),i.shadowOffsetX=n,i.shadowBlur=this.blurSize,i.shadowColor="#000",i.beginPath(),i.arc(-e,e,this.pointSize,0,2*Math.PI,!0),i.closePath(),i.fill(),t},t.prototype._getGradient=function(t,e){for(var n=this._gradientPixels,i=n[e]||(n[e]=new Uint8ClampedArray(1024)),r=[0,0,0,0],o=0,a=0;a<256;a++)t[e](a/255,!0,r),i[o++]=r[0],i[o++]=r[1],i[o++]=r[2],i[o++]=r[3];return i},t}();function RP(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var NP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i;e.eachComponent("visualMap",(function(e){e.eachTargetSeries((function(n){n===t&&(i=e)}))})),this._progressiveEls=null,this.group.removeAll();var r=t.coordinateSystem;"cartesian2d"===r.type||"calendar"===r.type?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):RP(r)&&this._renderOnGeo(r,t,i,n)},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll()},e.prototype.incrementalRender=function(t,e,n,i){var r=e.coordinateSystem;r&&(RP(r)?this.render(e,n,i):(this._progressiveEls=[],this._renderOnCartesianAndCalendar(e,i,t.start,t.end,!0)))},e.prototype.eachRendered=function(t){Vh(this._progressiveEls||this.group,t)},e.prototype._renderOnCartesianAndCalendar=function(t,e,n,i,r){var o,a,s,l,u=t.coordinateSystem,h=uS(u,"cartesian2d");if(h){var c=u.getAxis("x"),p=u.getAxis("y");o=c.getBandWidth()+.5,a=p.getBandWidth()+.5,s=c.scale.getExtent(),l=p.scale.getExtent()}for(var d=this.group,f=t.getData(),g=t.getModel(["emphasis","itemStyle"]).getItemStyle(),y=t.getModel(["blur","itemStyle"]).getItemStyle(),v=t.getModel(["select","itemStyle"]).getItemStyle(),m=t.get(["itemStyle","borderRadius"]),x=Yh(t),_=t.getModel("emphasis"),b=_.get("focus"),w=_.get("blurScope"),S=_.get("disabled"),M=h?[f.mapDimension("x"),f.mapDimension("y"),f.mapDimension("value")]:[f.mapDimension("time"),f.mapDimension("value")],I=n;Is[1]||Al[1])continue;var k=u.dataToPoint([D,A]);T=new Cs({shape:{x:k[0]-o/2,y:k[1]-a/2,width:o,height:a},style:C})}else{if(isNaN(f.get(M[1],I)))continue;T=new Cs({z2:1,shape:u.dataToRect([f.get(M[0],I)]).contentShape,style:C})}if(f.hasItemOption){var L=f.getItemModel(I),P=L.getModel("emphasis");g=P.getModel("itemStyle").getItemStyle(),y=L.getModel(["blur","itemStyle"]).getItemStyle(),v=L.getModel(["select","itemStyle"]).getItemStyle(),m=L.get(["itemStyle","borderRadius"]),b=P.get("focus"),w=P.get("blurScope"),S=P.get("disabled"),x=Yh(L)}T.shape.r=m;var O=t.getRawValue(I),R="-";O&&null!=O[2]&&(R=O[2]+""),Hh(T,x,{labelFetcher:t,labelDataIndex:I,defaultOpacity:C.opacity,defaultText:R}),T.ensureState("emphasis").style=g,T.ensureState("blur").style=y,T.ensureState("select").style=v,Rl(T,b,w,S),T.incremental=r,r&&(T.states.emphasis.hoverLayer=!0),d.add(T),f.setItemGraphicEl(I,T),this._progressiveEls&&this._progressiveEls.push(T)}},e.prototype._renderOnGeo=function(t,e,n,i){var r=n.targetVisuals.inRange,o=n.targetVisuals.outOfRange,a=e.getData(),s=this._hmLayer||this._hmLayer||new OP;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var l=t.getViewRect().clone(),u=t.getRoamTransform();l.applyTransform(u);var h=Math.max(l.x,0),c=Math.max(l.y,0),p=Math.min(l.width+l.x,i.getWidth()),d=Math.min(l.height+l.y,i.getHeight()),f=p-h,g=d-c,y=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],v=a.mapArray(y,(function(e,n,i){var r=t.dataToPoint([e,n]);return r[0]-=h,r[1]-=c,r.push(i),r})),m=n.getExtent(),x="visualMap.continuous"===n.type?function(t,e){var n=t[1]-t[0];return e=[(e[0]-t[0])/n,(e[1]-t[0])/n],function(t){return t>=e[0]&&t<=e[1]}}(m,n.option.range):function(t,e,n){var i=t[1]-t[0],r=(e=z(e,(function(e){return{interval:[(e.interval[0]-t[0])/i,(e.interval[1]-t[0])/i]}}))).length,o=0;return function(t){var i;for(i=o;i=0;i--){var a;if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}}return i>=0&&i0?1:-1}(n,o,r,i,c),function(t,e,n,i,r,o,a,s,l,u){var h,c=l.valueDim,p=l.categoryDim,d=Math.abs(n[p.wh]),f=t.getItemVisual(e,"symbolSize");(h=Y(f)?f.slice():null==f?["100%","100%"]:[f,f])[p.index]=Er(h[p.index],d),h[c.index]=Er(h[c.index],i?d:Math.abs(o)),u.symbolSize=h,(u.symbolScale=[h[0]/s,h[1]/s])[c.index]*=(l.isHorizontal?-1:1)*a}(t,e,r,o,0,c.boundingLength,c.pxSign,u,i,c),function(t,e,n,i,r){var o=t.get(zP)||0;o&&(BP.attr({scaleX:e[0],scaleY:e[1],rotation:n}),BP.updateTransform(),o/=BP.getLineScale(),o*=e[i.valueDim.index]),r.valueLineWidth=o||0}(n,c.symbolScale,l,i,c);var p=c.symbolSize,d=Oy(n.get("symbolOffset"),p);return function(t,e,n,i,r,o,a,s,l,u,h,c){var p=h.categoryDim,d=h.valueDim,f=c.pxSign,g=Math.max(e[d.index]+s,0),y=g;if(i){var v=Math.abs(l),m=it(t.get("symbolMargin"),"15%")+"",x=!1;m.lastIndexOf("!")===m.length-1&&(x=!0,m=m.slice(0,m.length-1));var _=Er(m,e[d.index]),b=Math.max(g+2*_,0),w=x?0:2*_,S=eo(i),M=S?i:iO((v+w)/b);b=g+2*(_=(v-M*g)/2/(x?M:Math.max(M-1,1))),w=x?0:2*_,S||"fixed"===i||(M=u?iO((Math.abs(u)+w)/b):0),y=M*b-w,c.repeatTimes=M,c.symbolMargin=_}var I=f*(y/2),T=c.pathPosition=[];T[p.index]=n[p.wh]/2,T[d.index]="start"===a?I:"end"===a?l-I:l/2,o&&(T[0]+=o[0],T[1]+=o[1]);var C=c.bundlePosition=[];C[p.index]=n[p.xy],C[d.index]=n[d.xy];var D=c.barRectShape=A({},n);D[d.wh]=f*Math.max(Math.abs(n[d.wh]),Math.abs(T[d.index]+I)),D[p.wh]=n[p.wh];var k=c.clipShape={};k[p.xy]=-n[p.xy],k[p.wh]=h.ecSize[p.wh],k[d.xy]=0,k[d.wh]=n[d.wh]}(n,p,r,o,0,d,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,i,c),c}function WP(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function HP(t){var e=t.symbolPatternSize,n=Ly(t.symbolType,-e/2,-e/2,e,e);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function YP(t,e,n,i){var r=t.__pictorialBundle,o=n.symbolSize,a=n.valueLineWidth,s=n.pathPosition,l=e.valueDim,u=n.repeatTimes||0,h=0,c=o[e.valueDim.index]+a+2*n.symbolMargin;for(tO(t,(function(t){t.__pictorialAnimationIndex=h,t.__pictorialRepeatTimes=u,h0:i<0)&&(r=u-1-t),e[l.index]=c*(r-u/2+.5)+s[l.index],{x:e[0],y:e[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function UP(t,e,n,i){var r=t.__pictorialBundle,o=t.__pictorialMainPath;o?eO(o,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,i):(o=t.__pictorialMainPath=HP(n),r.add(o),eO(o,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,i))}function XP(t,e,n){var i=A({},e.barRectShape),r=t.__pictorialBarRect;r?eO(r,null,{shape:i},e,n):((r=t.__pictorialBarRect=new Cs({z2:2,shape:i,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}})).disableMorphing=!0,t.add(r))}function ZP(t,e,n,i){if(n.symbolClip){var r=t.__pictorialClipPath,o=A({},n.clipShape),a=e.valueDim,s=n.animationModel,l=n.dataIndex;if(r)rh(r,{shape:o},s,l);else{o[a.wh]=0,r=new Cs({shape:o}),t.__pictorialBundle.setClipPath(r),t.__pictorialClipPath=r;var u={};u[a.wh]=n.clipShape[a.wh],Bh[i?"updateProps":"initProps"](r,{shape:u},s,l)}}}function jP(t,e){var n=t.getItemModel(e);return n.getAnimationDelayParams=qP,n.isAnimationEnabled=KP,n}function qP(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function KP(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function $P(t,e,n,i){var r=new Cr,o=new Cr;return r.add(o),r.__pictorialBundle=o,o.x=n.bundlePosition[0],o.y=n.bundlePosition[1],n.symbolRepeat?YP(r,e,n):UP(r,0,n),XP(r,n,i),ZP(r,e,n,i),r.__pictorialShapeStr=QP(t,n),r.__pictorialSymbolMeta=n,r}function JP(t,e,n,i){var r=i.__pictorialBarRect;r&&r.removeTextContent();var o=[];tO(i,(function(t){o.push(t)})),i.__pictorialMainPath&&o.push(i.__pictorialMainPath),i.__pictorialClipPath&&(n=null),E(o,(function(t){sh(t,{scaleX:0,scaleY:0},n,e,(function(){i.parent&&i.parent.remove(i)}))})),t.setItemGraphicEl(e,null)}function QP(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function tO(t,e,n){E(t.__pictorialBundle.children(),(function(i){i!==t.__pictorialBarRect&&e.call(n,i)}))}function eO(t,e,n,i,r,o){e&&t.attr(e),i.symbolClip&&!r?n&&t.attr(n):n&&Bh[r?"updateProps":"initProps"](t,n,i.animationModel,i.dataIndex,o)}function nO(t,e,n){var i=n.dataIndex,r=n.itemModel,o=r.getModel("emphasis"),a=o.getModel("itemStyle").getItemStyle(),s=r.getModel(["blur","itemStyle"]).getItemStyle(),l=r.getModel(["select","itemStyle"]).getItemStyle(),u=r.getShallow("cursor"),h=o.get("focus"),c=o.get("blurScope"),p=o.get("scale");tO(t,(function(t){if(t instanceof _s){var e=t.style;t.useStyle(A({image:e.image,x:e.x,y:e.y,width:e.width,height:e.height},n.style))}else t.useStyle(n.style);var i=t.ensureState("emphasis");i.style=a,p&&(i.scaleX=1.1*t.scaleX,i.scaleY=1.1*t.scaleY),t.ensureState("blur").style=s,t.ensureState("select").style=l,u&&(t.cursor=u),t.z2=n.z2}));var d=e.valueDim.posDesc[+(n.boundingLength>0)];Hh(t.__pictorialBarRect,Yh(r),{labelFetcher:e.seriesModel,labelDataIndex:i,defaultText:Ww(e.seriesModel.getData(),i),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:d}),Rl(t,h,c,o.get("disabled"))}function iO(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var rO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.defaultSymbol="roundRect",n}return n(e,t),e.prototype.getInitialData=function(e){return e.stack=null,t.prototype.getInitialData.apply(this,arguments)},e.type="series.pictorialBar",e.dependencies=["grid"],e.defaultOption=yc(IS.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),e}(IS),oO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._layers=[],n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this,o=this.group,a=t.getLayerSeries(),s=i.getLayout("layoutInfo"),l=s.rect,u=s.boundaryGap;function h(t){return t.name}o.x=0,o.y=l.y+u[0];var c=new Im(this._layersSeries||[],a,h,h),p=[];function d(e,n,s){var l=r._layers;if("remove"!==e){for(var u,h,c=[],d=[],f=a[n].indices,g=0;go&&(o=s),i.push(s)}for(var u=0;uo&&(o=c)}return{y0:r,max:o}}(l),h=u.y0,c=n/u.max,p=o.length,d=o[0].indices.length,f=0;fMath.PI/2?"right":"left"):S&&"center"!==S?"left"===S?(m=r.r0+w,a>Math.PI/2&&(S="right")):"right"===S&&(m=r.r-w,a>Math.PI/2&&(S="left")):(m=o===2*Math.PI&&0===r.r0?0:(r.r+r.r0)/2,S="center"),g.style.align=S,g.style.verticalAlign=f(p,"verticalAlign")||"middle",g.x=m*s+r.cx,g.y=m*l+r.cy;var M=f(p,"rotate"),I=0;"radial"===M?(I=-a)<-Math.PI/2&&(I+=Math.PI):"tangential"===M?(I=Math.PI/2-a)>Math.PI/2?I-=Math.PI:I<-Math.PI/2&&(I+=Math.PI):j(M)&&(I=M*Math.PI/180),g.rotation=I})),h.dirtyStyle()},e}(Cu),hO="sunburstRootToNode",cO="sunburstHighlight",pO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this;this.seriesModel=t,this.api=n,this.ecModel=e;var o=t.getData(),a=o.tree.root,s=t.getViewRoot(),l=this.group,u=t.get("renderLabelForZeroData"),h=[];s.eachNode((function(t){h.push(t)}));var c=this._oldChildren||[];!function(i,r){function s(t){return t.getId()}function h(s,h){!function(i,r){if(u||!i||i.getValue()||(i=null),i!==a&&r!==a)if(r&&r.piece)i?(r.piece.updateData(!1,i,t,e,n),o.setItemGraphicEl(i.dataIndex,r.piece)):function(t){t&&t.piece&&(l.remove(t.piece),t.piece=null)}(r);else if(i){var s=new uO(i,t,e,n);l.add(s),o.setItemGraphicEl(i.dataIndex,s)}}(null==s?null:i[s],null==h?null:r[h])}0===i.length&&0===r.length||new Im(r,i,s,s).add(h).update(h).remove(H(h,null)).execute()}(h,c),function(i,o){o.depth>0?(r.virtualPiece?r.virtualPiece.updateData(!1,i,t,e,n):(r.virtualPiece=new uO(i,t,e,n),l.add(r.virtualPiece)),o.piece.off("click"),r.virtualPiece.on("click",(function(t){r._rootToNode(o.parentNode)}))):r.virtualPiece&&(l.remove(r.virtualPiece),r.virtualPiece=null)}(a,s),this._initEvents(),this._oldChildren=h},e.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",(function(e){var n=!1;t.seriesModel.getViewRoot().eachNode((function(i){if(!n&&i.piece&&i.piece===e.target){var r=i.getModel().get("nodeClick");if("rootToNode"===r)t._rootToNode(i);else if("link"===r){var o=i.getModel(),a=o.get("link");a&&dp(a,o.get("target",!0)||"_blank")}n=!0}}))}))},e.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:hO,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="sunburst",e}(xg),dO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreStyleOnData=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};fO(n);var i=this._levelModels=z(t.levels||[],(function(t){return new dc(t,this,e)}),this),r=AC.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e),o=i[n.depth];return o&&(t.parentModel=o),t}))}));return r.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=OC(i,this),n},e.prototype.getLevelModel=function(t){return this._levelModels&&this._levelModels[t.depth]},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){BC(this)},e.type="series.sunburst",e.defaultOption={z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],sort:"desc"},e}(sg);function fO(t){var e=0;E(t.children,(function(t){fO(t);var n=t.value;Y(n)&&(n=n[0]),e+=n}));var n=t.value;Y(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),Y(t.value)?t.value[0]=n:t.value=n}var gO=Math.PI/180;function yO(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.get("center"),i=t.get("radius");Y(i)||(i=[0,i]),Y(e)||(e=[e,e]);var r=n.getWidth(),o=n.getHeight(),a=Math.min(r,o),s=Er(e[0],r),l=Er(e[1],o),u=Er(i[0],a/2),h=Er(i[1],a/2),c=-t.get("startAngle")*gO,p=t.get("minAngle")*gO,d=t.getData().tree.root,f=t.getViewRoot(),g=f.depth,y=t.get("sort");null!=y&&vO(f,y);var v=0;E(f.children,(function(t){!isNaN(t.getValue())&&v++}));var m=f.getValue(),x=Math.PI/(m||v)*2,_=f.depth>0,b=f.height-(_?-1:1),w=(h-u)/(b||1),S=t.get("clockwise"),M=t.get("stillShowZeroSum"),I=S?1:-1,T=function(e,n){if(e){var i=n;if(e!==d){var r=e.getValue(),o=0===m&&M?x:r*x;o1;)r=r.parentNode;var o=n.getColorFromPalette(r.name||r.dataIndex+"",e);return t.depth>1&&X(o)&&(o=Sn(o,(t.depth-1)/(i-1)*.5)),o}(r,t,i.root.height)),A(n.ensureUniqueItemVisual(r.dataIndex,"style"),o)}))}))}var xO={color:"fill",borderColor:"stroke"},_O={symbol:1,symbolSize:1,symbolKeepAspect:1,legendIcon:1,visualMeta:1,liftZ:1,decal:1},bO=So(),wO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},e.prototype.getInitialData=function(t,e){return rx(null,this)},e.prototype.getDataParams=function(e,n,i){var r=t.prototype.getDataParams.call(this,e,n);return i&&(r.info=bO(i).info),r},e.type="series.custom",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",z:2,legendHoverLink:!0,clip:!1},e}(sg);function SO(t,e){return e=e||[0,0],z(["x","y"],(function(n,i){var r=this.getAxis(n),o=e[i],a=t[i]/2;return"category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a))}),this)}function MO(t,e){return e=e||[0,0],z([0,1],(function(n){var i=e[n],r=t[n]/2,o=[],a=[];return o[n]=i-r,a[n]=i+r,o[1-n]=a[1-n]=e[1-n],Math.abs(this.dataToPoint(o)[n]-this.dataToPoint(a)[n])}),this)}function IO(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,r=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-r)-n.dataToCoord(i+r))}function TO(t,e){return e=e||[0,0],z(["Radius","Angle"],(function(n,i){var r=this["get"+n+"Axis"](),o=e[i],a=t[i]/2,s="category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a));return"Angle"===n&&(s=s*Math.PI/180),s}),this)}function CO(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||mt(t,"text")))}function DO(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},mt(a,"text")&&(o.text=a.text),mt(a,"rich")&&(o.rich=a.rich),mt(a,"textFill")&&(o.fill=a.textFill),mt(a,"textStroke")&&(o.stroke=a.textStroke),mt(a,"fontFamily")&&(o.fontFamily=a.fontFamily),mt(a,"fontSize")&&(o.fontSize=a.fontSize),mt(a,"fontStyle")&&(o.fontStyle=a.fontStyle),mt(a,"fontWeight")&&(o.fontWeight=a.fontWeight),r={type:"text",style:o,silent:!0},i={};var s=mt(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),mt(a,"textPosition")&&(i.position=a.textPosition),mt(a,"textOffset")&&(i.offset=a.textOffset),mt(a,"textRotation")&&(i.rotation=a.textRotation),mt(a,"textDistance")&&(i.distance=a.textDistance)}return AO(o,t),E(o.rich,(function(t){AO(t,t)})),{textConfig:i,textContent:r}}function AO(t,e){e&&(e.font=e.textFont||e.font,mt(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),mt(e,"textAlign")&&(t.align=e.textAlign),mt(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),mt(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),mt(e,"textWidth")&&(t.width=e.textWidth),mt(e,"textHeight")&&(t.height=e.textHeight),mt(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),mt(e,"textPadding")&&(t.padding=e.textPadding),mt(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),mt(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),mt(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),mt(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),mt(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),mt(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),mt(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}function kO(t,e,n){var i=t;i.textPosition=i.textPosition||n.position||"inside",null!=n.offset&&(i.textOffset=n.offset),null!=n.rotation&&(i.textRotation=n.rotation),null!=n.distance&&(i.textDistance=n.distance);var r=i.textPosition.indexOf("inside")>=0,o=t.fill||"#000";LO(i,e);var a=null==i.textFill;return r?a&&(i.textFill=n.insideFill||"#fff",!i.textStroke&&n.insideStroke&&(i.textStroke=n.insideStroke),!i.textStroke&&(i.textStroke=o),null==i.textStrokeWidth&&(i.textStrokeWidth=2)):(a&&(i.textFill=t.fill||n.outsideFill||"#000"),!i.textStroke&&n.outsideStroke&&(i.textStroke=n.outsideStroke)),i.text=e.text,i.rich=e.rich,E(e.rich,(function(t){LO(t,t)})),i}function LO(t,e){e&&(mt(e,"fill")&&(t.textFill=e.fill),mt(e,"stroke")&&(t.textStroke=e.fill),mt(e,"lineWidth")&&(t.textStrokeWidth=e.lineWidth),mt(e,"font")&&(t.font=e.font),mt(e,"fontStyle")&&(t.fontStyle=e.fontStyle),mt(e,"fontWeight")&&(t.fontWeight=e.fontWeight),mt(e,"fontSize")&&(t.fontSize=e.fontSize),mt(e,"fontFamily")&&(t.fontFamily=e.fontFamily),mt(e,"align")&&(t.textAlign=e.align),mt(e,"verticalAlign")&&(t.textVerticalAlign=e.verticalAlign),mt(e,"lineHeight")&&(t.textLineHeight=e.lineHeight),mt(e,"width")&&(t.textWidth=e.width),mt(e,"height")&&(t.textHeight=e.height),mt(e,"backgroundColor")&&(t.textBackgroundColor=e.backgroundColor),mt(e,"padding")&&(t.textPadding=e.padding),mt(e,"borderColor")&&(t.textBorderColor=e.borderColor),mt(e,"borderWidth")&&(t.textBorderWidth=e.borderWidth),mt(e,"borderRadius")&&(t.textBorderRadius=e.borderRadius),mt(e,"shadowColor")&&(t.textBoxShadowColor=e.shadowColor),mt(e,"shadowBlur")&&(t.textBoxShadowBlur=e.shadowBlur),mt(e,"shadowOffsetX")&&(t.textBoxShadowOffsetX=e.shadowOffsetX),mt(e,"shadowOffsetY")&&(t.textBoxShadowOffsetY=e.shadowOffsetY),mt(e,"textShadowColor")&&(t.textShadowColor=e.textShadowColor),mt(e,"textShadowBlur")&&(t.textShadowBlur=e.textShadowBlur),mt(e,"textShadowOffsetX")&&(t.textShadowOffsetX=e.textShadowOffsetX),mt(e,"textShadowOffsetY")&&(t.textShadowOffsetY=e.textShadowOffsetY))}var PO={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},OO=G(PO),RO=(V(Ki,(function(t,e){return t[e]=1,t}),{}),Ki.join(", "),["","style","shape","extra"]),NO=So();function EO(t,e,n,i,r){var o=t+"Animation",a=nh(t,i,r)||{},s=NO(e).userDuring;return a.duration>0&&(a.during=s?W(HO,{el:e,userDuring:s}):null,a.setToFinal=!0,a.scope=t),A(a,n[o]),a}function zO(t,e,n,i){var r=(i=i||{}).dataIndex,o=i.isInit,a=i.clearStyle,s=n.isAnimationEnabled(),l=NO(t),u=e.style;l.userDuring=e.during;var h={},c={};if(function(t,e,n){for(var i=0;i=0)){var c=t.getAnimationStyleProps(),p=c?c.style:null;if(p){!r&&(r=i.style={});var d=G(n);for(u=0;u0&&t.animateFrom(p,d)}else!function(t,e,n,i,r){if(r){var o=EO("update",t,e,i,n);o.duration>0&&t.animateFrom(r,o)}}(t,e,r||0,n,h);VO(t,e),u?t.dirty():t.markRedraw()}function VO(t,e){for(var n=NO(t).leaveToProps,i=0;i=0){!o&&(o=i[t]={});var p=G(a);for(h=0;hi[1]&&i.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:i[1],r0:i[0]},api:{coord:function(i){var r=e.dataToRadius(i[0]),o=n.dataToAngle(i[1]),a=t.coordToPoint([r,o]);return a.push(r,o*Math.PI/180),a},size:W(TO,t)}}},calendar:function(t){var e=t.getRect(),n=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(e,n){return t.dataToPoint(e,n)}}}}};function sR(t){return t instanceof gs}function lR(t){return t instanceof da}var uR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){this._progressiveEls=null;var r=this._data,o=t.getData(),a=this.group,s=fR(t,o,e,n);r||a.removeAll(),o.diff(r).add((function(e){yR(n,null,e,s(e,i),t,a,o)})).remove((function(e){var n=r.getItemGraphicEl(e);BO(n,bO(n).option,t)})).update((function(e,l){var u=r.getItemGraphicEl(l);yR(n,u,e,s(e,i),t,a,o)})).execute();var l=t.get("clip",!0)?lS(t.coordinateSystem,!1,t):null;l?a.setClipPath(l):a.removeClipPath(),this._data=o},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll(),this._data=null},e.prototype.incrementalRender=function(t,e,n,i,r){var o=e.getData(),a=fR(e,o,n,i),s=this._progressiveEls=[];function l(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var u=t.start;u=0?e.getStore().get(r,n):void 0}var o=e.get(i.name,n),a=i&&i.ordinalMeta;return a?a.categories[o]:o},styleEmphasis:function(n,i){null==i&&(i=s);var r=m(i,$O).getItemStyle(),o=x(i,$O),a=Uh(o,null,null,!0,!0);a.text=o.getShallow("show")?ot(t.getFormattedLabel(i,$O),t.getFormattedLabel(i,JO),Ww(e,i)):null;var l=Xh(o,null,!0);return b(n,r),r=kO(r,a,l),n&&_(r,n),r.legacy=!0,r},visual:function(t,n){if(null==n&&(n=s),mt(xO,t)){var i=e.getItemVisual(n,"style");return i?i[xO[t]]:null}if(mt(_O,t))return e.getItemVisual(n,t)},barLayout:function(t){if("cartesian2d"===o.type)return function(t){var e=[],n=t.axis;if("category"===n.type){for(var r=n.getBandWidth(),o=0;o=c;p--)BO(e.childAt(p),bO(e).option,r)}}(t,c,n,i,r),a>=0?o.replaceAt(c,a):o.add(c),c}function mR(t,e,n){var i,r=bO(t),o=e.type,a=e.shape,s=e.style;return n.isUniversalTransitionEnabled()||null!=o&&o!==r.customGraphicType||"path"===o&&(i=a)&&(mt(i,"pathData")||mt(i,"d"))&&IR(a)!==r.customPathData||"image"===o&&mt(s,"image")&&s.image!==r.customImagePath}function xR(t,e,n){var i=e?_R(t,e):t,r=e?bR(t,i,$O):t.style,o=t.type,a=i?i.textConfig:null,s=t.textContent,l=s?e?_R(s,e):s:null;if(r&&(n.isLegacy||CO(r,o,!!a,!!l))){n.isLegacy=!0;var u=DO(r,o,!e);!a&&u.textConfig&&(a=u.textConfig),!l&&u.textContent&&(l=u.textContent)}if(!e&&l){var h=l;!h.type&&(h.type="text")}var c=e?n[e]:n.normal;c.cfg=a,c.conOpt=l}function _R(t,e){return e?t?t[e]:null:t}function bR(t,e,n){var i=e&&e.style;return null==i&&n===$O&&t&&(i=t.styleEmphasis),i}function wR(t,e){var n=t&&t.name;return null!=n?n:"e\0\0"+e}function SR(t,e){var n=this.context,i=null!=t?n.newChildren[t]:null,r=null!=e?n.oldChildren[e]:null;vR(n.api,r,n.dataIndex,i,n.seriesModel,n.group)}function MR(t){var e=this.context,n=e.oldChildren[t];BO(n,bO(n).option,e.seriesModel)}function IR(t){return t&&(t.pathData||t.d)}var TR=So(),CR=T,DR=W,AR=function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=H(kR,e,h);this.updatePointerEl(a,l,c),this.updateLabelEl(a,l,c,e)}else a=this._group=new Cr,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);RR(a,e,!0),this._renderHandle(r)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=KM(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=TR(t).pointerEl=new Bh[r.type](CR(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=TR(t).labelEl=new ks(CR(e.label));t.add(r),PR(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=TR(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=TR(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),PR(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=Ph(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){se(t.event)},onmousedown:DR(this._onHandleDragMove,this,0,0),drift:DR(this._onHandleDragMove,this),ondragend:DR(this._onHandleDragEnd,this)}),i.add(r)),RR(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");Y(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,Ag(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){kR(this._axisPointerModel,!e&&this._moveAnimation,this._handle,OR(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(OR(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(OR(i)),TR(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),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),kg(this,"_doDispatchAxisPointer")},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},t}();function kR(t,e,n,i){LR(TR(n).lastProp,i)||(TR(n).lastProp=i,e?rh(n,i,t):(n.stopAnimation(),n.attr(i)))}function LR(t,e){if(q(t)&&q(e)){var n=!0;return E(e,(function(e,i){n=n&&LR(t[i],e)})),!!n}return t===e}function PR(t,e){t[e.get(["label","show"])?"show":"hide"]()}function OR(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function RR(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}function NR(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function ER(t,e,n,i,r){var o=zR(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=ip(a.get("padding")||0),l=a.getFont(),u=cr(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f=r.verticalAlign;"bottom"===f&&(h[1]-=p),"middle"===f&&(h[1]-=p/2),function(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}(h,c,p,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:Uh(a,{text:o,font:l,fill:a.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function zR(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:s_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};E(i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),X(a)?o=a.replace("{value}",o):U(a)&&(o=a(s))}return o}function VR(t,e,n){var i=[1,0,0,1,0,0];return zi(i,i,n.rotation),Ei(i,i,n.position),Th([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function BR(t,e,n,i,r,o){var a=GM.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),ER(e,i,r,o,{position:VR(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function FR(t,e,n){return{x1:t[n=n||0],y1:t[1-n],x2:e[n],y2:e[1-n]}}function GR(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}function WR(t,e,n,i,r,o){return{cx:t,cy:e,r0:n,r:i,startAngle:r,endAngle:o,clockwise:!0}}var HR=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=YR(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=NR(i),c=UR[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}BR(e,t,LM(a.model,n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=LM(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=VR(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=YR(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];return c[l]=u[l],{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},e}(AR);function YR(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var UR={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:FR([e,n[0]],[e,n[1]],XR(t))}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:GR([e-i/2,n[0]],[i,r],XR(t))}}};function XR(t){return"x"===t.dim?0:1}var ZR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="axisPointer",e.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}},e}(Tp),jR=So(),qR=E;function KR(t,e,n){if(!r.node){var i=e.getZr();jR(i).records||(jR(i).records={}),function(t,e){function n(n,i){t.on(n,(function(n){var r=function(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}(e);qR(jR(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),function(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]),n&&(n.dispatchAction=null,e.dispatchAction(n))}(r.pendings,e)}))}jR(t).initialized||(jR(t).initialized=!0,n("click",H(JR,"click")),n("mousemove",H(JR,"mousemove")),n("globalout",$R))}(i,e),(jR(i).records[t]||(jR(i).records[t]={})).handler=n}}function $R(t,e,n){t.handler("leave",null,n)}function JR(t,e,n,i){e.handler(t,n,i)}function QR(t,e){if(!r.node){var n=e.getZr();(jR(n).records||{})[t]&&(jR(n).records[t]=null)}}var tN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";KR("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})}))},e.prototype.remove=function(t,e){QR("axisPointer",e)},e.prototype.dispose=function(t,e){QR("axisPointer",e)},e.type="axisPointer",e}(gg);function eN(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=wo(o,t);if(null==a||a<0||Y(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).dim,c=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(c),f=[];f[p]=o.get(d,a),f[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(f)||[]}else i=l.dataToPoint(o.getValues(z(l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),i=[g.x+g.width/2,g.y+g.height/2]}return{point:i,el:s}}var nN=So();function iN(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||W(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){lN(r)&&(r=eN({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=lN(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||lN(r),p={},d={},f={list:[],map:{}},g={showPointer:H(oN,d),showTooltip:H(aN,f)};E(s.coordSysMap,(function(t,e){var n=l||t.containPoint(r);E(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=function(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}}(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&rN(t,a,g,!1,p)}}))}));var y={};return E(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&E(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,sN(e),sN(t)))),y[t.key]=o}}))})),E(y,(function(t,e){rN(h[e],t,g,!0,p)})),function(t,e,n){var i=n.axesInfo=[];E(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})}))}(d,h,p),function(t,e,n,i){if(!lN(e)&&t.list.length){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})}else i({type:"hideTip"})}(f,r,t,a),function(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=nN(i)[r]||{},a=nN(i)[r]={};E(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&E(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];E(o,(function(t,e){!a[e]&&l.push(t)})),E(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})}(h,0,n),p}}function rN(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=function(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return E(e.seriesModels,(function(e,l){var u,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var p=e.getAxisTooltipData(c,t,n);h=p.dataIndices,u=p.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var d=t-u,f=Math.abs(d);f<=a&&((f=0&&s<0)&&(a=f,s=d,r=u,o.length=0),E(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&A(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function oN(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function aN(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=JM(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 sN(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 lN(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function uN(t){tI.registerAxisPointerClass("CartesianAxisPointer",HR),t.registerComponentModel(ZR),t.registerComponentView(tN),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!Y(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=function(t,e){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return function(t,e,n){var i=e.getComponent("tooltip"),r=e.getComponent("axisPointer"),o=r.get("link",!0)||[],a=[];E(n.getCoordinateSystems(),(function(n){if(n.axisPointerEnabled){var s=JM(n.model),l=t.coordSysAxesInfo[s]={};t.coordSysMap[s]=n;var u=n.model.getModel("tooltip",i);if(E(n.getAxes(),H(d,!1,null)),n.getTooltipAxes&&i&&u.get("show")){var h="axis"===u.get("trigger"),c="cross"===u.get(["axisPointer","type"]),p=n.getTooltipAxes(u.get(["axisPointer","axis"]));(h||c)&&E(p.baseAxes,H(d,!c||"cross",h)),c&&E(p.otherAxes,H(d,"cross",!1))}}function d(i,s,h){var c=h.model.getModel("axisPointer",r),p=c.get("show");if(p&&("auto"!==p||i||$M(c))){null==s&&(s=c.get("triggerTooltip"));var d=(c=i?function(t,e,n,i,r,o){var a=e.getModel("axisPointer"),s={};E(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],(function(t){s[t]=T(a.get(t))})),s.snap="category"!==t.type&&!!o,"cross"===a.get("type")&&(s.type="line");var l=s.label||(s.label={});if(null==l.show&&(l.show=!1),"cross"===r){var u=a.get(["label","show"]);if(l.show=null==u||u,!o){var h=s.lineStyle=a.get("crossStyle");h&&k(l,h.textStyle)}}return t.model.getModel("axisPointer",new dc(s,n,i))}(h,u,r,e,i,s):c).get("snap"),f=JM(h.model),g=s||d||"category"===h.type,y=t.axesInfo[f]={key:f,axis:h,coordSys:n,axisPointerModel:c,triggerTooltip:s,involveSeries:g,snap:d,useHandle:$M(c),seriesModels:[],linkGroup:null};l[f]=y,t.seriesInvolved=t.seriesInvolved||g;var v=function(t,e){for(var n=e.model,i=e.dim,r=0;ry?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,n,0,a,i.get(["label","margin"]));ER(t,n,i,r,p)},e}(AR),cN={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:FR(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var r=Math.max(1,t.getBandWidth()),o=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:WR(e.cx,e.cy,i[0],i[1],(-n-r/2)*o,(r/2-n)*o)}:{type:"Sector",shape:WR(e.cx,e.cy,n-r/2,n+r/2,0,2*Math.PI)}}},pN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.findAxisModel=function(t){var e;return this.ecModel.eachComponent(t,(function(t){t.getCoordSysModel()===this&&(e=t)}),this),e},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={z:0,center:["50%","50%"],radius:"80%"},e}(Tp),dN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",Co).models[0]},e.type="polarAxis",e}(Tp);R(dN,p_);var fN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="angleAxis",e}(dN),gN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="radiusAxis",e}(dN),yN=function(t){function e(e,n){return t.call(this,"radius",e,n)||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e}(H_);yN.prototype.dataToRadius=H_.prototype.dataToCoord,yN.prototype.radiusToData=H_.prototype.coordToData;var vN=So(),mN=function(t){function e(e,n){return t.call(this,"angle",e,n||[0,360])||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,e=t.getLabelModel(),n=t.scale,i=n.getExtent(),r=n.count();if(i[1]-i[0]<1)return 0;var o=i[0],a=t.dataToCoord(o+1)-t.dataToCoord(o),s=Math.abs(a),l=cr(null==o?"":o+"",e.getFont(),"center","top"),u=Math.max(l.height,7)/s;isNaN(u)&&(u=1/0);var h=Math.max(0,Math.floor(u)),c=vN(t.model),p=c.lastAutoInterval,d=c.lastTickCount;return null!=p&&null!=d&&Math.abs(p-h)<=1&&Math.abs(d-r)<=1&&p>h?h=p:(c.lastTickCount=r,c.lastAutoInterval=h),h},e}(H_);mN.prototype.dataToAngle=H_.prototype.dataToCoord,mN.prototype.angleToData=H_.prototype.coordToData;var xN=["radius","angle"],_N=function(){function t(t){this.dimensions=xN,this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new yN,this._angleAxis=new mN,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return t.prototype.containPoint=function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},t.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},t.prototype.getAxis=function(t){return this["_"+t+"Axis"]},t.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},t.prototype.getAxesByScale=function(t){var e=[],n=this._angleAxis,i=this._radiusAxis;return n.scale.type===t&&e.push(n),i.scale.type===t&&e.push(i),e},t.prototype.getAngleAxis=function(){return this._angleAxis},t.prototype.getRadiusAxis=function(){return this._radiusAxis},t.prototype.getOtherAxis=function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},t.prototype.getTooltipAxes=function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},t.prototype.dataToPoint=function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},t.prototype.pointToData=function(t,e){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],e),this._angleAxis.angleToData(n[1],e)]},t.prototype.pointToCoord=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=this.getAngleAxis(),r=i.getExtent(),o=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);i.inverse?o=a-360:a=o+360;var s=Math.sqrt(e*e+n*n);e/=s,n/=s;for(var l=Math.atan2(-n,e)/Math.PI*180,u=la;)l+=360*u;return[s,l]},t.prototype.coordToPoint=function(t){var e=t[0],n=t[1]/180*Math.PI;return[Math.cos(n)*e+this.cx,-Math.sin(n)*e+this.cy]},t.prototype.getArea=function(){var t=this.getAngleAxis(),e=this.getRadiusAxis().getExtent().slice();e[0]>e[1]&&e.reverse();var n=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,r=n*n+i*i-1e-4,o=this.r,a=this.r0;return r<=o*o&&r>=a*a}}},t.prototype.convertToPixel=function(t,e,n){return bN(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return bN(e)===this?this.pointToData(n):null},t}();function bN(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function wN(t,e){var n=this,i=n.getAngleAxis(),r=n.getRadiusAxis();if(i.scale.setExtent(1/0,-1/0),r.scale.setExtent(1/0,-1/0),t.eachSeries((function(t){if(t.coordinateSystem===n){var e=t.getData();E(c_(e,"radius"),(function(t){r.scale.unionExtentFromData(e,t)})),E(c_(e,"angle"),(function(t){i.scale.unionExtentFromData(e,t)}))}})),r_(i.scale,i.model),r_(r.scale,r.model),"category"===i.type&&!i.onBand){var o=i.getExtent(),a=360/i.scale.count();i.inverse?o[1]+=a:o[1]-=a,i.setExtent(o[0],o[1])}}function SN(t,e){if(t.type=e.get("type"),t.scale=o_(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),function(t){return"angleAxis"===t.mainType}(e)){t.inverse=t.inverse!==e.get("clockwise");var n=e.get("startAngle");t.setExtent(n,n+(t.inverse?-360:360))}e.axis=t,t.model=e}var MN={dimensions:xN,create:function(t,e){var n=[];return t.eachComponent("polar",(function(t,i){var r=new _N(i+"");r.update=wN;var o=r.getRadiusAxis(),a=r.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");SN(o,s),SN(a,l),function(t,e,n){var i=e.get("center"),r=n.getWidth(),o=n.getHeight();t.cx=Er(i[0],r),t.cy=Er(i[1],o);var a=t.getRadiusAxis(),s=Math.min(r,o)/2,l=e.get("radius");null==l?l=[0,"100%"]:Y(l)||(l=[0,l]);var u=[Er(l[0],s),Er(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}(r,t,e),n.push(r),t.coordinateSystem=r,r.model=t})),t.eachSeries((function(t){if("polar"===t.get("coordinateSystem")){var e=t.getReferringComponents("polar",Co).models[0];t.coordinateSystem=e.coordinateSystem}})),n}},IN=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function TN(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),r=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:r[0],y2:r[1]}}function CN(t){return t.getRadiusAxis().inverse?0:1}function DN(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var AN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="PolarAxisPointer",n}return n(e,t),e.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,i=n.polar,r=i.getRadiusAxis().getExtent(),o=n.getTicksCoords(),a=n.getMinorTicksCoords(),s=z(n.getViewLabels(),(function(t){t=T(t);var e=n.scale,i="ordinal"===e.type?e.getRawOrdinalNumber(t.tickValue):t.tickValue;return t.coord=n.dataToCoord(i),t}));DN(s),DN(o),E(IN,(function(e){!t.get([e,"show"])||n.scale.isBlank()&&"axisLine"!==e||kN[e](this.group,t,i,o,a,r,s)}),this)}},e.type="angleAxis",e}(tI),kN={axisLine:function(t,e,n,i,r,o){var a,s=e.getModel(["axisLine","lineStyle"]),l=CN(n),u=l?0:1;(a=0===o[u]?new hu({shape:{cx:n.cx,cy:n.cy,r:o[l]},style:s.getLineStyle(),z2:1,silent:!0}):new Au({shape:{cx:n.cx,cy:n.cy,r:o[l],r0:o[u]},style:s.getLineStyle(),z2:1,silent:!0})).style.fill=null,t.add(a)},axisTick:function(t,e,n,i,r,o){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=o[CN(n)],u=z(i,(function(t){return new zu({shape:TN(n,[l,l+s],t.coord)})}));t.add(wh(u,{style:k(a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=o[CN(n)],h=[],c=0;cf?"left":"right",v=Math.abs(d[1]-g)/p<.3?"middle":d[1]>g?"top":"bottom";if(s&&s[c]){var m=s[c];q(m)&&m.textStyle&&(a=new dc(m.textStyle,l,l.ecModel))}var x=new ks({silent:GM.isLabelSilent(e),style:Uh(a,{x:d[0],y:d[1],fill:a.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:i.formattedLabel,align:y,verticalAlign:v})});if(t.add(x),h){var _=GM.makeAxisEventDataBase(e);_.targetType="axisLabel",_.value=i.rawLabel,Hs(x).eventData=_}}),this)},splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h=0?"p":"n",T=_;m&&(i[s][M]||(i[s][M]={p:_,n:_}),T=i[s][M][I]);var C=void 0,D=void 0,A=void 0,k=void 0;if("radius"===c.dim){var L=c.dataToCoord(S)-_,P=o.dataToCoord(M);Math.abs(L)=k})}}}))}var VN={startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:0}},BN={splitNumber:5},FN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="polar",e}(gg);function GN(t,e){e=e||{};var n=t.coordinateSystem,i=t.axis,r={},o=i.position,a=i.orient,s=n.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};r.position=["vertical"===a?u.vertical[o]:l[0],"horizontal"===a?u.horizontal[o]:l[3]],r.rotation=Math.PI/2*{horizontal:0,vertical:1}[a],r.labelDirection=r.tickDirection=r.nameDirection={top:-1,bottom:1,right:1,left:-1}[o],t.get(["axisTick","inside"])&&(r.tickDirection=-r.tickDirection),it(e.labelInside,t.get(["axisLabel","inside"]))&&(r.labelDirection=-r.labelDirection);var h=e.rotate;return null==h&&(h=t.get(["axisLabel","rotate"])),r.labelRotation="top"===o?-h:h,r.z2=1,r}var WN=["axisLine","axisTickLabel","axisName"],HN=["splitArea","splitLine"],YN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="SingleAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){var o=this.group;o.removeAll();var a=this._axisGroup;this._axisGroup=new Cr;var s=GN(e),l=new GM(e,s);E(WN,l.add,l),o.add(this._axisGroup),o.add(l.getGroup()),E(HN,(function(t){e.get([t,"show"])&&UN[t](this,this.group,this._axisGroup,e)}),this),Ah(a,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)},e.prototype.remove=function(){iI(this)},e.type="singleAxis",e}(tI),UN={splitLine:function(t,e,n,i){var r=i.axis;if(!r.scale.isBlank()){var o=i.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=s instanceof Array?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=[],c=0,p=r.getTicksCoords({tickModel:o}),d=[],f=[],g=0;g=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},t.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},t.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],r="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[r]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-r]=0===r?n.y+n.height/2:n.x+n.width/2,i},t.prototype.convertToPixel=function(t,e,n){return KN(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return KN(e)===this?this.pointToData(n):null},t}();function KN(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var $N={create:function(t,e){var n=[];return t.eachComponent("singleAxis",(function(i,r){var o=new qN(i,t,e);o.name="single_"+r,o.resize(i,e),i.coordinateSystem=o,n.push(o)})),t.eachSeries((function(t){if("singleAxis"===t.get("coordinateSystem")){var e=t.getReferringComponents("singleAxis",Co).models[0];t.coordinateSystem=e&&e.coordinateSystem}})),n},dimensions:jN},JN=["x","y"],QN=["width","height"],tE=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.coordinateSystem,s=iE(a,1-nE(o)),l=a.dataToPoint(e)[0],u=i.get("type");if(u&&"none"!==u){var h=NR(i),c=eE[u](o,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}BR(e,t,GN(n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=GN(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=VR(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.coordinateSystem,a=nE(r),s=iE(o,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=iE(o,1-a),h=(u[1]+u[0])/2,c=[h,h];return c[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},e}(AR),eE={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:FR([e,n[0]],[e,n[1]],nE(t))}},shadow:function(t,e,n){var i=t.getBandWidth(),r=n[1]-n[0];return{type:"Rect",shape:GR([e-i/2,n[0]],[i,r],nE(t))}}};function nE(t){return t.isHorizontal()?0:1}function iE(t,e){var n=t.getRect();return[n[JN[e]],n[JN[e]]+n[QN[e]]]}var rE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="single",e}(gg),oE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e,n,i){var r=Sp(e);t.prototype.init.apply(this,arguments),aE(e,r)},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),aE(this.option,e)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(Tp);function aE(t,e){var n,i=t.cellSize;1===(n=Y(i)?i:t.cellSize=[i,i]).length&&(n[1]=n[0]);var r=z([0,1],(function(t){return function(t,e){return null!=t[yp[e][0]]||null!=t[yp[e][1]]&&null!=t[yp[e][2]]}(e,t)&&(n[t]="auto"),null!=n[t]&&"auto"!==n[t]}));wp(t,e,{type:"box",ignoreSize:r})}var sE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var r=t.coordinateSystem,o=r.getRangeInfo(),a=r.getOrient(),s=e.getLocaleModel();this._renderDayRect(t,o,i),this._renderLines(t,o,a,i),this._renderYearText(t,o,a,i),this._renderMonthText(t,s,a,i),this._renderWeekText(t,s,o,a,i)},e.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,r=t.getModel("itemStyle").getItemStyle(),o=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var l=i.dataToRect([s],!1).tl,u=new Cs({shape:{x:l[0],y:l[1],width:o,height:a},cursor:"default",style:r});n.add(u)}},e.prototype._renderLines=function(t,e,n,i){var r=this,o=t.coordinateSystem,a=t.getModel(["splitLine","lineStyle"]).getLineStyle(),s=t.get(["splitLine","show"]),l=a.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=e.start,h=0;u.time<=e.end.time;h++){p(u.formatedDate),0===h&&(u=o.getDateInfo(e.start.y+"-"+e.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=o.getDateInfo(c)}function p(e){r._firstDayOfMonth.push(o.getDateInfo(e)),r._firstDayPoints.push(o.dataToRect([e],!1).tl);var l=r._getLinePointsOfOneWeek(t,e,n);r._tlpoints.push(l[0]),r._blpoints.push(l[l.length-1]),s&&r._drawSplitline(l,a,i)}p(o.getNextNDay(e.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,l,n),a,i),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,l,n),a,i)},e.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],r="horizontal"===n?0:1;return i[0][r]=i[0][r]-e/2,i[1][r]=i[1][r]+e/2,i},e.prototype._drawSplitline=function(t,e,n){var i=new Ru({z2:20,shape:{points:t},style:e});n.add(i)},e.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,r=i.getDateInfo(e),o=[],a=0;a<7;a++){var s=i.getNextNDay(r.time,a),l=i.dataToRect([s.time],!1);o[2*s.day]=l.tl,o[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return o},e.prototype._formatterLabel=function(t,e){return X(t)&&t?(n=t,E(e,(function(t,e){n=n.replace("{"+e+"}",t)})),n):U(t)?t(e):e.nameMap;var n},e.prototype._yearTextPositionControl=function(t,e,n,i,r){var o=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=r,s=["center","top"]):"left"===i?o-=r:"right"===i?(o+=r,s=["center","top"]):a-=r;var l=0;return"left"!==i&&"right"!==i||(l=Math.PI/2),{rotation:l,x:o,y:a,style:{align:s[0],verticalAlign:s[1]}}},e.prototype._renderYearText=function(t,e,n,i){var r=t.getModel("yearLabel");if(r.get("show")){var o=r.get("margin"),a=r.get("position");a||(a="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===n?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},p=e.start.y;+e.end.y>+e.start.y&&(p=p+"-"+e.end.y);var d=r.get("formatter"),f={start:e.start.y,end:e.end.y,nameMap:p},g=this._formatterLabel(d,f),y=new ks({z2:30,style:Uh(r,{text:g})});y.attr(this._yearTextPositionControl(y,c[a],n,a,o)),i.add(y)}},e.prototype._monthTextPositionControl=function(t,e,n,i,r){var o="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=r,e&&(o="center"),"start"===i&&(a="bottom")):(s+=r,e&&(a="middle"),"start"===i&&(o="right")),{x:s,y:l,align:o,verticalAlign:a}},e.prototype._renderMonthText=function(t,e,n,i){var r=t.getModel("monthLabel");if(r.get("show")){var o=r.get("nameMap"),a=r.get("margin"),s=r.get("position"),l=r.get("align"),u=[this._tlpoints,this._blpoints];o&&!X(o)||(o&&(e=Mc(o)||e),o=e.get(["time","monthAbbr"])||[]);var h="start"===s?0:1,c="horizontal"===n?0:1;a="start"===s?-a:a;for(var p="center"===l,d=0;d=i.start.time&&n.timea.end.time&&t.reverse(),t},t.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/lE)-Math.floor(n[0].time/lE)+1,r=new Date(n[0].time),o=r.getDate(),a=n[1].date.getDate();r.setDate(o+i-1);var s=r.getDate();if(s!==a)for(var l=r.getTime()-n[1].time>0?1:-1;(s=r.getDate())!==a&&(r.getTime()-n[1].time)*l>0;)i-=l,r.setDate(s-l);var u=Math.floor((i+n[0].day+6)/7),h=e?1-u:u-1;return e&&n.reverse(),{range:[n[0].formatedDate,n[1].formatedDate],start:n[0],end:n[1],allDay:i,weeks:u,nthWeek:h,fweek:n[0].day,lweek:n[1].day}},t.prototype._getDateByWeeksAndDay=function(t,e,n){var i=this._getRangeInfo(n);if(t>i.weeks||0===t&&ei.lweek)return null;var r=7*(t-1)-i.fweek+e,o=new Date(i.start.time);return o.setDate(+i.start.d+r),this.getDateInfo(o)},t.create=function(e,n){var i=[];return e.eachComponent("calendar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeries((function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])})),i},t.dimensions=["time","value"],t}();function hE(t){var e=t.calendarModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem:null}function cE(t,e){var n;return E(e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}var pE=["transition","enterFrom","leaveTo"],dE=pE.concat(["enterAnimation","updateAnimation","leaveAnimation"]);function fE(t,e,n){if(n&&(!t[n]&&e[n]&&(t[n]={}),t=t[n],e=e[n]),t&&e)for(var i=n?pE:dE,r=0;r=0;l--){var p,d,f;if(f=null!=(d=xo((p=n[l]).id,null))?r.get(d):null){var g=f.parent,y=(c=vE(g),{}),v=_p(f,p,g===i?{width:o,height:a}:{width:c.width,height:c.height},null,{hv:p.hv,boundingMode:p.bounding},y);if(!vE(f).isNew&&v){for(var m=p.transition,x={},_=0;_=0)?x[b]=w:f[b]=w}rh(f,x,t,0)}else f.attr(y)}}},e.prototype._clear=function(){var t=this,e=this._elMap;e.each((function(n){bE(n,vE(n).option,e,t._lastGraphicModel)})),this._elMap=ft()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(gg);function xE(t){var n=new(mt(yE,t)?yE[t]:mh(t))({});return vE(n).type=t,n}function _E(t,e,n,i){var r=xE(n);return e.add(r),i.set(t,r),vE(r).id=t,vE(r).isNew=!0,r}function bE(t,e,n,i){t&&t.parent&&("group"===t.type&&t.traverse((function(t){bE(t,e,n,i)})),BO(t,e,i),n.removeKey(vE(t).id))}function wE(t,e,n,i){t.isGroup||E([["cursor",da.prototype.cursor],["zlevel",i||0],["z",n||0],["z2",0]],(function(n){var i=n[0];mt(e,i)?t[i]=rt(e[i],n[1]):null==t[i]&&(t[i]=n[1])})),E(G(e),(function(n){if(0===n.indexOf("on")){var i=e[n];t[n]=U(i)?i:null}})),mt(e,"draggable")&&(t.draggable=e.draggable),null!=e.name&&(t.name=e.name),null!=e.id&&(t.id=e.id)}var SE=["x","y","radius","angle","single"],ME=["cartesian2d","polar","singleAxis"];function IE(t){return t+"Axis"}function CE(t){var e=t.ecModel,n={infoList:[],infoMap:ft()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(IE(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var DE=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),AE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return n(e,t),e.prototype.init=function(t,e,n){var i=kE(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var e=kE(t);C(this.option,t,!0),C(this.settledOption,e,!0),this._doInit(e)},e.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;E([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=ft();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},e.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return E(SE,(function(n){var i=this.getReferringComponents(IE(n),Do);if(i.specified){e=!0;var r=new DE;E(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},e.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x";o(n.findComponents({mainType:r+"Axis"}),r)}function o(e,n){var r=e[0];if(r){var o=new DE;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponents("grid",Co).models[0];a&&E(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",Co).models[0]&&o.add(t.componentIndex)}))}}}i&&o(n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single"),i&&E(SE,(function(e){if(i){var r=n.findComponents({mainType:IE(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new DE;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");E([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(IE(e),n))}),this),t},e.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){E(n.indexList,(function(n){t.call(e,i,n)}))}))},e.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(IE(t),e)},e.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;E([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var e=this.option;E(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;i=0}(e)){var n=IE(this._dimName),i=e.getReferringComponents(n,Co).models[0];i&&this._axisIndex===i.componentIndex&&t.push(e)}}),this),t},t.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},t.prototype.getMinMaxSpan=function(){return T(this._minMaxSpan)},t.prototype.calculateDataWindow=function(t){var e,n=this._dataExtent,i=this.getAxisModel().axis.scale,r=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[],s=[];RE(["start","end"],(function(l,u){var h=t[l],c=t[l+"Value"];"percent"===r[u]?(null==h&&(h=o[u]),c=i.parse(Nr(h,o,n))):(e=!0,h=Nr(c=null==c?n[u]:i.parse(c),n,o)),s[u]=c,a[u]=h})),NE(s),NE(a);var l=this._minMaxSpan;function u(t,e,n,r,o){var a=o?"Span":"ValueSpan";lk(0,t,n,"all",l["min"+a],l["max"+a]);for(var s=0;s<2;s++)e[s]=Nr(t[s],n,r,!0),o&&(e[s]=i.parse(e[s]))}return e?u(s,a,n,o,!1):u(a,s,o,n,!0),{valueWindow:s,percentWindow:a}},t.prototype.reset=function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=function(t,e,n){var i=[1/0,-1/0];RE(n,(function(t){!function(t,e,n){e&&E(c_(e,n),(function(n){var i=e.getApproximateExtent(n);i[0]t[1]&&(t[1]=i[1])}))}(i,t.getData(),e)}));var r=t.getAxisModel(),o=e_(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},t.prototype.filterData=function(t,e){if(t===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=t.get("filterMode"),o=this._valueWindow;"none"!==r&&RE(i,(function(t){var e=t.getData(),i=e.mapDimensionsAll(n);if(i.length){if("weakFilter"===r){var a=e.getStore(),s=z(i,(function(t){return e.getDimensionIndex(t)}),e);e.filterSelf((function(t){for(var e,n,r,l=0;lo[1];if(h&&!c&&!p)return!0;h&&(r=!0),c&&(e=!0),p&&(n=!0)}return r&&e&&n}))}else RE(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return function(t){return t>=o[0]&&t<=o[1]}(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}}));RE(i,(function(t){e.setApproximateExtent(o,t)}))}}))}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;RE(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=Nr(n[0]+o,n,[0,100],!0):null!=r&&(o=Nr(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=Gr(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}(),zE={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(IE(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new EE(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=ft();return E(n,(function(t){E(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}},VE=!1;function BE(t){VE||(VE=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,zE),function(t){t.registerAction("dataZoom",(function(t,e){E(function(t,e){var n,i=ft(),r=[],o=ft();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&function(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}(e,t),(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function FE(t){t.registerComponentModel(LE),t.registerComponentView(OE),BE(t)}var GE=function(){},WE={};function HE(t,e){WE[t]=e}function YE(t){return WE[t]}var UE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;E(this.option.feature,(function(t,n){var i=YE(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),C(t,i.defaultOption))}))},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1,position:"bottom"}},e}(Tp);function XE(t,e){var n=ip(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),new Cs({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}var ZE=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a="vertical"===t.get("orient"),s=t.get("feature")||{},l=this._features||(this._features={}),u=[];E(s,(function(t,e){u.push(e)})),new Im(this._featureNames||[],u).add(h).update(h).remove(H(h,null)).execute(),this._featureNames=u,function(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=xp(i,o,r);mp(e.get("orient"),t,e.get("itemGap"),a.width,a.height),_p(t,i,o,r)}(r,t,n),r.add(XE(r.getBoundingRect(),t)),a||r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),l=s&&s.ensureState("emphasis");if(l&&!U(l)&&e){var u=l.style||(l.style={}),h=cr(e,ks.makeFont(u)),c=t.x+r.x,p=!1;t.y+r.y+o+h.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-h.height:o+10;c+h.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):c-h.width/2<0&&(a.position=[0,d],u.align="left")}}))}function h(h,c){var p,d=u[h],f=u[c],g=s[d],y=new dc(g,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===d&&(g.title=i.newTitle),d&&!f){if(function(t){return 0===t.indexOf("my")}(d))p={onclick:y.option.onclick,featureName:d};else{var v=YE(d);if(!v)return;p=new v}l[d]=p}else if(!(p=l[f]))return;p.uid=gc("toolbox-feature"),p.model=y,p.ecModel=e,p.api=n;var m=p instanceof GE;d||!f?!y.get("show")||m&&p.unusable?m&&p.remove&&p.remove(e,n):(function(i,s,l){var u,h,c=i.getModel("iconStyle"),p=i.getModel(["emphasis","iconStyle"]),d=s instanceof GE&&s.getIcons?s.getIcons():i.get("icon"),f=i.get("title")||{};X(d)?(u={})[l]=d:u=d,X(f)?(h={})[l]=f:h=f;var g=i.iconPaths={};E(u,(function(l,u){var d=Ph(l,{},{x:-o/2,y:-o/2,width:o,height:o});d.setStyle(c.getItemStyle()),d.ensureState("emphasis").style=p.getItemStyle();var f=new ks({style:{text:h[u],align:p.get("textAlign"),borderRadius:p.get("textBorderRadius"),padding:p.get("textPadding"),fill:null},ignore:!0});d.setTextContent(f),Eh({el:d,componentModel:t,itemName:u,formatterParamsExtra:{title:h[u]}}),d.__title=h[u],d.on("mouseover",(function(){var e=p.getItemStyle(),i=a?null==t.get("right")&&"right"!==t.get("left")?"right":"left":null==t.get("bottom")&&"bottom"!==t.get("top")?"bottom":"top";f.setStyle({fill:p.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:p.get("textBackgroundColor")}),d.setTextConfig({position:p.get("textPosition")||i}),f.ignore=!t.get("showTitle"),n.enterEmphasis(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconStatus",u])&&n.leaveEmphasis(this),f.hide()})),("emphasis"===i.get(["iconStatus",u])?_l:bl)(d),r.add(d),d.on("click",W(s.onclick,s,e,n,u)),g[u]=d}))}(y,p,d),y.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&("emphasis"===e?_l:bl)(i[t])},p instanceof GE&&p.render&&p.render(y,e,n,i)):m&&p.dispose&&p.dispose(e,n)}},e.prototype.updateView=function(t,e,n,i){E(this._features,(function(t){t instanceof GE&&t.updateView&&t.updateView(t.model,e,n,i)}))},e.prototype.remove=function(t,e){E(this._features,(function(n){n instanceof GE&&n.remove&&n.remove(t,e)})),this.group.removeAll()},e.prototype.dispose=function(t,e){E(this._features,(function(n){n instanceof GE&&n.dispose&&n.dispose(t,e)}))},e.type="toolbox",e}(gg),jE=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",o="svg"===e.getZr().painter.getType(),a=o?"svg":n.get("type",!0)||"png",s=e.getConnectedDataURL({type:a,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")}),l=r.browser;if(U(MouseEvent)&&(l.newEdge||!l.ie&&!l.edge)){var u=document.createElement("a");u.download=i+"."+a,u.target="_blank",u.href=s;var h=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});u.dispatchEvent(h)}else if(window.navigator.msSaveOrOpenBlob||o){var c=s.split(","),p=c[0].indexOf("base64")>-1,d=o?decodeURIComponent(c[1]):c[1];p&&(d=window.atob(d));var f=i+"."+a;if(window.navigator.msSaveOrOpenBlob){for(var g=d.length,y=new Uint8Array(g);g--;)y[g]=d.charCodeAt(g);var v=new Blob([y]);window.navigator.msSaveOrOpenBlob(v,f)}else{var m=document.createElement("iframe");document.body.appendChild(m);var x=m.contentWindow,_=x.document;_.open("image/svg+xml","replace"),_.write(d),_.close(),x.focus(),_.execCommand("SaveAs",!0,f),document.body.removeChild(m)}}else{var b=n.get("lang"),w='',S=window.open();S.document.write(w),S.document.title=i}},e.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocaleModel().get(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],lang:t.getLocaleModel().get(["toolbox","saveAsImage","lang"])}},e}(GE),qE="__ec_magicType_stack__",KE=[["line","bar"],["stack"]],$E=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return E(t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},e.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocaleModel().get(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},e.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(JE[n]){var o,a={series:[]};E(KE,(function(t){P(t,n)>=0&&E(t,(function(t){i.setIconStatus(t,"normal")}))})),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},(function(t){var e=t.subType,r=t.id,o=JE[n](e,r,t,i);o&&(k(o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim+"Axis",h=t.getReferringComponents(u,Co).models[0].componentIndex;a[u]=a[u]||[];for(var c=0;c<=h;c++)a[u][h]=a[u][h]||{};a[u][h].boundaryGap="bar"===n}}}));var s=n;"stack"===n&&(o=C({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title),"emphasis"!==i.get(["iconStatus",n])&&(s="tiled")),e.dispatchAction({type:"changeMagicType",currentType:s,newOption:a,newTitle:o,featureName:"magicType"})}},e}(GE),JE={line:function(t,e,n,i){if("bar"===t)return C({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return C({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===qE;if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),C({id:e,stack:r?"":qE},i.get(["option","stack"])||{},!0)}};cm({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var QE=new Array(60).join("-");function ez(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var nz=new RegExp("[\t]+","g");var rz=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){setTimeout((function(){e.dispatchAction({type:"hideTip"})}));var n=e.getDom(),i=this.model;this._dom&&n.removeChild(this._dom);var r=document.createElement("div");r.style.cssText="position:absolute;top:0;bottom:0;left:0;right:0;padding:5px",r.style.backgroundColor=i.get("backgroundColor")||"#fff";var o=document.createElement("h4"),a=i.get("lang")||[];o.innerHTML=a[0]||i.get("title"),o.style.cssText="margin:10px 20px",o.style.color=i.get("textColor");var s=document.createElement("div"),l=document.createElement("textarea");s.style.cssText="overflow:auto";var u=i.get("optionToContent"),h=i.get("contentToOption"),c=function(t){var e,n,i,r=function(t){var e={},n=[],i=[];return t.eachRawSeries((function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}})),{seriesGroupByCategoryAxis:e,other:n,meta:i}}(t);return{value:B([(n=r.seriesGroupByCategoryAxis,i=[],E(n,(function(t,e){var n=t.categoryAxis,r=t.valueAxis.dim,o=[" "].concat(z(t.series,(function(t){return t.name}))),a=[n.model.getCategories()];E(t.series,(function(t){var e=t.getRawData();a.push(t.getRawData().mapArray(e.mapDimension(r),(function(t){return t})))}));for(var s=[o.join("\t")],l=0;l=0)return!0}(t)){var r=function(t){for(var e=t.split(/\n+/g),n=[],i=z(ez(e.shift()).split(nz),(function(t){return{name:t,data:[]}})),r=0;r=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=vz[t.brushType](0,n,e);t.__rangeOffset={offset:xz[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){E(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&E(i.coordSyses,(function(i){var r=vz[t.brushType](1,i,t.range,!0);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){E(t,(function(t){var n,i,r,o,a,s=this.findTargetInfo(t,e);if(t.range=t.range||[],s&&!0!==s){t.panelId=s.panelId;var l=vz[t.brushType](0,s.coordSys,t.coordRange),u=t.__rangeOffset;t.range=u?xz[t.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=bz(n),o=bz(i),a=[r[0]/o[0],r[1]/o[1]],isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a)):l.values}}),this)},t.prototype.makePanelOpts=function(t,e){return z(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:hL(i),isTargetByCursor:pL(i,t,n.coordSysModel),getLinearBrushOtherExtent:cL(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&P(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=dz(e,t),r=0;rt[1]&&t.reverse(),t}function dz(t,e){return Io(t,e,{includeMainTypes:hz})}var fz={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=ft(),a={},s={};(n||i||r)&&(E(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),E(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),E(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];E(r.getCartesians(),(function(t,e){(P(n,t.getAxis("x").model)>=0||P(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:yz.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){E(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:yz.geo})}))}},gz=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],yz={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Ih(t)),e}},vz={lineX:H(mz,0),lineY:H(mz,1),rect:function(t,e,n,i){var r=t?e.pointToData([n[0][0],n[1][0]],i):e.dataToPoint([n[0][0],n[1][0]],i),o=t?e.pointToData([n[0][1],n[1][1]],i):e.dataToPoint([n[0][1],n[1][1]],i),a=[pz([r[0],o[0]]),pz([r[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(t,e,n,i){var r=[[1/0,-1/0],[1/0,-1/0]];return{values:z(n,(function(n){var o=t?e.pointToData(n,i):e.dataToPoint(n,i);return r[0][0]=Math.min(r[0][0],o[0]),r[1][0]=Math.min(r[1][0],o[1]),r[0][1]=Math.max(r[0][1],o[0]),r[1][1]=Math.max(r[1][1],o[1]),o})),xyMinMax:r}}};function mz(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=pz(z([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t]),!0):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var xz={lineX:H(_z,0),lineY:H(_z,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return z(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function _z(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function bz(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var wz,Sz,Mz=E,Iz=uo+"toolbox-dataZoom_",Tz=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){this._brushController||(this._brushController=new Ok(n.getZr()),this._brushController.on("brush",W(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n._isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive),n._isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new cz(Dz(t),e,{include:["grid"]}).makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n._brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}(t,e,this,i,n),function(t,e){t.setIconStatus("back",function(t){return lz(t).length}(e)>1?"emphasis":"normal")}(t,e)},e.prototype.onclick=function(t,e,n){Cz[n].call(this)},e.prototype.remove=function(t,e){this._brushController&&this._brushController.unmount()},e.prototype.dispose=function(t,e){this._brushController&&this._brushController.dispose()},e.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this._brushController.updateCovers([]),new cz(Dz(this.model),i,{include:["grid"]}).matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(r("x",n,e[0]),r("y",n,e[1])):r({lineX:"x",lineY:"y"}[i],n,e)}})),function(t,e){var n=lz(t);az(e,(function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}})),n.push(e)}(i,n),this._dispatchZoomAction(n)}function r(t,e,r){var o=e.getAxis(t),a=o.model,s=function(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)})),i}(t,a,i),l=s.findRepresentativeAxisProxy(a).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=lk(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},e.prototype._dispatchZoomAction=function(t){var e=[];Mz(t,(function(t,n){e.push(T(t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},e.getDefaultOption=function(t){return{show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocaleModel().get(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}}},e}(GE),Cz={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(function(t){var e=lz(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return az(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}})),i}(this.ecModel))}};function Dz(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}wz="dataZoom",Sz=function(t){var e=t.getComponent("toolbox",0),n=["feature","dataZoom"];if(e&&null!=e.get(n)){var i=e.getModel(n),r=[],o=Io(t,Dz(i));return Mz(o.xAxisModels,(function(t){return a(t,"xAxis","xAxisIndex")})),Mz(o.yAxisModels,(function(t){return a(t,"yAxis","yAxisIndex")})),r}function a(t,e,n){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:i.get("filterMode",!0)||"filter",id:Iz+e+o};a[n]=o,r.push(a)}},lt(null==jp.get(wz)&&Sz),jp.set(wz,Sz);var Az=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="tooltip",e.dependencies=["axisPointer"],e.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}},e}(Tp);function kz(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}function Lz(t){if(r.domSupported)for(var e=document.documentElement.style,n=0,i=t.length;n-1?(u+="top:50%",h+="translateY(-50%) rotate("+(a="left"===s?-225:-45)+"deg)"):(u+="left:50%",h+="translateX(-50%) rotate("+(a="top"===s?225:45)+"deg)");var c=a*Math.PI/180,p=l+r,d=p*Math.abs(Math.cos(c))+p*Math.abs(Math.sin(c)),f=e+" solid "+r+"px;";return'
'}(n,i,r)),X(t))o.innerHTML=t+a;else if(t){o.innerHTML="",Y(t)||(t=[t]);for(var s=0;s=0?this._tryShow(n,i):"leave"===e&&this._hide(i))}),this))},e.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})}))}},e.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!r.node&&n.getDom()){var o=jz(i,n);this._ticket="";var a=i.dataByCoordSys,s=function(t,e,n){var i=To(t).queryOptionMap,r=i.keys()[0];if(r&&"series"!==r){var o,a=Ao(e,r,i.get(r),{useDefault:!1,enableAll:!1,enableNone:!1}).models[0];if(a)return n.getViewOfComponentModel(a).group.traverse((function(e){var n=Hs(e).tooltipConfig;if(n&&n.name===t.name)return o=e,!0})),o?{componentMainType:r,componentIndex:a.componentIndex,el:o}:void 0}}(i,e,n);if(s){var l=s.el.getBoundingRect().clone();l.applyTransform(s.el.transform),this._tryShow({offsetX:l.x+l.width/2,offsetY:l.y+l.height/2,target:s.el,position:i.position,positionDefault:"bottom"},o)}else if(i.tooltip&&null!=i.x&&null!=i.y){var u=Uz;u.x=i.x,u.y=i.y,u.update(),Hs(u).tooltipConfig={name:null,option:i.tooltip},this._tryShow({offsetX:i.x,offsetY:i.y,target:u},o)}else if(a)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:a,tooltipOption:i.tooltipOption},o);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var h=eN(i,e),c=h.point[0],p=h.point[1];null!=c&&null!=p&&this._tryShow({offsetX:c,offsetY:p,target:h.el,position:i.position,positionDefault:"bottom"},o)}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},o))}},e.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(jz(i,n))},e.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&&"axis"===Zz([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model],this._tooltipModel).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},e.prototype._tryShow=function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;if(i&&i.length)this._showAxisTooltip(i,t);else if(n){var r,o;this._lastDataByCoordSys=null,xy(n,(function(t){return null!=Hs(t).dataIndex?(r=t,!0):null!=Hs(t).tooltipConfig?(o=t,!0):void 0}),!0),r?this._showSeriesItemTooltip(t,r,e):o?this._showComponentItemTooltip(t,o,e):this._hide(e)}else this._lastDataByCoordSys=null,this._hide(e)}},e.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=W(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},e.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=Zz([e.tooltipOption],i),a=this._renderMode,s=[],l=Xf("section",{blocks:[],noHeader:!0}),u=[],h=new ig;E(t,(function(t){E(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),r=t.value;if(e&&null!=r){var o=zR(r,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),c=Xf("section",{header:o,noHeader:!ut(o),sortBlocks:!0,blocks:[]});l.blocks.push(c),E(t.seriesDataIndices,(function(l){var p=n.getSeriesByIndex(l.seriesIndex),d=l.dataIndexInside,f=p.getDataParams(d);if(!(f.dataIndex<0)){f.axisDim=t.axisDim,f.axisIndex=t.axisIndex,f.axisType=t.axisType,f.axisId=t.axisId,f.axisValue=s_(e.axis,{value:r}),f.axisValueLabel=o,f.marker=h.makeTooltipMarker("item",pp(f.color),a);var g=uf(p.formatTooltip(d,!0,null)),y=g.frag;if(y){var v=Zz([p],i).get("valueFormatter");c.blocks.push(v?A({valueFormatter:v},y):y)}g.text&&u.push(g.text),s.push(f)}}))}}))})),l.blocks.reverse(),u.reverse();var c=e.position,p=o.get("order"),d=Jf(l,h,a,p,n.get("useUTC"),o.get("textStyle"));d&&u.unshift(d);var f="richText"===a?"\n\n":"
",g=u.join(f);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t,s)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},e.prototype._showSeriesItemTooltip=function(t,e,n){var i=this._ecModel,r=Hs(e),o=r.seriesIndex,a=i.getSeriesByIndex(o),s=r.dataModel||a,l=r.dataIndex,u=r.dataType,h=s.getData(u),c=this._renderMode,p=t.positionDefault,d=Zz([h.getItemModel(l),s,a&&(a.coordinateSystem||{}).model],this._tooltipModel,p?{position:p}:null),f=d.get("trigger");if(null==f||"item"===f){var g=s.getDataParams(l,u),y=new ig;g.marker=y.makeTooltipMarker("item",pp(g.color),c);var v=uf(s.formatTooltip(l,!1,u)),m=d.get("order"),x=d.get("valueFormatter"),_=v.frag,b=_?Jf(x?A({valueFormatter:x},_):_,y,c,m,i.get("useUTC"),d.get("textStyle")):v.text,w="item_"+s.name+"_"+l;this._showOrMove(d,(function(){this._showTooltipContent(d,b,g,w,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:l,dataIndex:h.getRawIndex(l),seriesIndex:o,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,e,n){var i=Hs(e),r=i.tooltipConfig.option||{};X(r)&&(r={content:r,formatter:r});var o=[r],a=this._ecModel.getComponent(i.componentMainType,i.componentIndex);a&&o.push(a),o.push({formatter:r.content});var s=t.positionDefault,l=Zz(o,this._tooltipModel,s?{position:s}:null),u=l.get("content"),h=Math.random()+"",c=new ig;this._showOrMove(l,(function(){var n=T(l.get("formatterParams")||{});this._showTooltipContent(l,u,n,h,t.offsetX,t.offsetY,t.position,e,c)})),n({type:"showTip",from:this.uid})},e.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")).color;if(h)if(X(h)){var d=t.ecModel.get("useUTC"),f=Y(n)?n[0]:n;c=h,f&&f.axisType&&f.axisType.indexOf("time")>=0&&(c=Vc(f.axisValue,c,d)),c=hp(c,n,!0)}else if(U(h)){var g=W((function(e,i){e===this._ticket&&(u.setContent(i,l,t,p,a),this._updatePosition(t,a,r,o,u,n,s))}),this);this._ticket=i,c=h(n,i,g)}else c=h;u.setContent(c,l,t,p,a),u.show(t,p),this._updatePosition(t,a,r,o,u,n,s)}},e.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||Y(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:Y(e)?void 0:{color:i||e.color||e.borderColor}},e.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),U(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),Y(e))n=Er(e[0],s),i=Er(e[1],l);else if(q(e)){var d=e;d.width=u[0],d.height=u[1];var f=xp(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(X(e)&&a){var g=function(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]}(e,p,u,t.get("borderWidth"));n=g[0],i=g[1]}else g=function(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]}(n,i,r,s,l,h?null:20,c?null:20),n=g[0],i=g[1];h&&(n-=qz(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=qz(c)?u[1]/2:"bottom"===c?u[1]:0),kz(t)&&(g=function(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)]}(n,i,r,s,l),n=g[0],i=g[1]),r.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t,e){var n=this._lastDataByCoordSys,i=this._cbParamsList,r=!!n&&n.length===t.length;return r&&E(n,(function(n,o){var a=n.dataByAxis||[],s=(t[o]||{}).dataByAxis||[];(r=r&&a.length===s.length)&&E(a,(function(t,n){var o=s[n]||{},a=t.seriesDataIndices||[],l=o.seriesDataIndices||[];(r=r&&t.value===o.value&&t.axisType===o.axisType&&t.axisId===o.axisId&&a.length===l.length)&&E(a,(function(t,e){var n=l[e];r=r&&t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})),i&&E(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},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,e){!r.node&&e.getDom()&&(kg(this,"_updatePosition"),this._tooltipContent.dispose(),QR("itemTooltip",e))},e.type="tooltip",e}(gg);function Zz(t,e,n){var i,r=e.ecModel;n?(i=new dc(n,r,r),i=new dc(e.option,i,r)):i=e;for(var o=t.length-1;o>=0;o--){var a=t[o];a&&(a instanceof dc&&(a=a.get("tooltip",!0)),X(a)&&(a={formatter:a}),a&&(i=new dc(a,i,r)))}return i}function jz(t,e){return t.dispatchAction||W(e.dispatchAction,e)}function qz(t){return"center"===t||"middle"===t}var Kz=["rect","polygon","keep","clear"];function $z(t,e){var n=ho(t?t.brush:[]);if(n.length){var i=[];E(n,(function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(i=i.concat(e))}));var r=t&&t.toolbox;Y(r)&&(r=r[0]),r||(r={feature:{}},t.toolbox=[r]);var o=r.feature||(r.feature={}),a=o.brush||(o.brush={}),s=a.type||(a.type=[]);s.push.apply(s,i),function(t){var e={};E(t,(function(t){e[t]=1})),t.length=0,E(e,(function(e,n){t.push(n)}))}(s),e&&!s.length&&s.push.apply(s,Kz)}}var Jz=E;function Qz(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function tV(t,e,n){var i={};return Jz(e,(function(e){var r,o=i[e]=((r=function(){}).prototype.__hidden=r.prototype,new r);Jz(t[e],(function(t,i){if(iD.isValidType(i)){var r={type:i,visual:t};n&&n(r,e),o[i]=new iD(r),"opacity"===i&&((r=T(r)).type="colorAlpha",o.__hidden.__alphaForOpacity=new iD(r))}}))})),i}function eV(t,e,n){var i;E(n,(function(t){e.hasOwnProperty(t)&&Qz(e[t])&&(i=!0)})),i&&E(n,(function(n){e.hasOwnProperty(n)&&Qz(e[n])?t[n]=T(e[n]):delete t[n]}))}var nV={lineX:iV(0),lineY:iV(1),rect:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])},rect:function(t,e,n){return t&&n.boundingRect.intersect(t)}},polygon:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])&&y_(n.range,t[0],t[1])},rect:function(t,e,n){var i=n.range;if(!t||i.length<=1)return!1;var r=t.x,o=t.y,a=t.width,s=t.height,l=i[0];return!!(y_(i,r,o)||y_(i,r+a,o)||y_(i,r,o+s)||y_(i,r+a,o+s)||sr.create(t).contain(l[0],l[1])||Oh(r,o,r+a,o,i)||Oh(r,o,r,o+s,i)||Oh(r+a,o,r+a,o+s,i)||Oh(r,o+s,r+a,o+s,i))||void 0}}};function iV(t){var e=["x","y"],n=["width","height"];return{point:function(e,n,i){if(e){var r=i.range;return rV(e[t],r)}},rect:function(i,r,o){if(i){var a=o.range,s=[i[e[t]],i[e[t]]+i[n[t]]];return s[1]e[0][1]&&(e[0][1]=o[0]),o[1]e[1][1]&&(e[1][1]=o[1])}return e&&dV(e)}};function dV(t){return new sr(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var fV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new Ok(e.getZr())).on("brush",W(this._onBrush,this)).mount()},e.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},e.prototype.updateTransform=function(t,e,n,i){lV(e),this._updateController(t,e,n,i)},e.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},e.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},e.prototype._updateController=function(t,e,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:e,areas:T(n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:T(n),$from:e})},e.type="brush",e}(gg),gV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.areas=[],n.brushOption={},n}return n(e,t),e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&eV(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:"#ddd"},i.hasOwnProperty("liftZ")||(i.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=z(t,(function(t){return yV(this.option,t)}),this))},e.prototype.setBrushOption=function(t){this.brushOption=yV(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(Tp);function yV(t,e){return C({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new dc(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}var vV=["rect","polygon","lineX","lineY","keep","clear"],mV=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n){var i,r,o;e.eachComponent({mainType:"brush"},(function(t){i=t.brushType,r=t.brushOption.brushMode||"single",o=o||!!t.areas.length})),this._brushType=i,this._brushMode=r,E(t.get("type",!0),(function(e){t.setIconStatus(e,("keep"===e?"multiple"===r:"clear"===e?o:e===i)?"emphasis":"normal")}))},e.prototype.updateView=function(t,e,n){this.render(t,e,n)},e.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return E(t.get("type",!0),(function(t){e[t]&&(n[t]=e[t])})),n},e.prototype.onclick=function(t,e,n){var i=this._brushType,r=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===r?"single":"multiple":r}})},e.getDefaultOption=function(t){return{show:!0,type:vV.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocaleModel().get(["toolbox","brush","title"])}},e}(GE),xV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.type="title",e.defaultOption={z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(Tp),_V=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=rt(t.get("textBaseline"),t.get("textVerticalAlign")),l=new ks({style:Uh(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new ks({style:Uh(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0);l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",(function(){dp(p,"_"+t.get("target"))})),d&&c.on("click",(function(){dp(d,"_"+t.get("subtarget"))})),Hs(l).eventData=Hs(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c);var g=i.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var v=xp(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?v.x+=v.width:"center"===a&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),i.x=v.x,i.y=v.y,i.markRedraw();var m={align:a,verticalAlign:s};l.setStyle(m),c.setStyle(m),g=i.getBoundingRect();var x=v.margin,_=t.getItemStyle(["color","opacity"]);_.fill=t.get("backgroundColor");var b=new Cs({shape:{x:g.x-x[3],y:g.y-x[0],width:g.width+x[1]+x[3],height:g.height+x[0]+x[2],r:t.get("borderRadius")},style:_,subPixelOptimize:!0,silent:!0});i.add(b)}},e.type="title",e}(gg),bV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode="box",n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t,e=this.option,n=e.data||[],i=e.axisType,r=this._names=[];"category"===i?(t=[],E(n,(function(e,n){var i,o=xo(fo(e),"");q(e)?(i=T(e)).value=n:i=n,t.push(i),r.push(o)}))):t=n;var o={category:"ordinal",time:"time",value:"number"}[i]||"number";(this._data=new qm([{name:"value",type:o}],this)).initData(t,r)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},e.type="timeline",e.defaultOption={z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(Tp),wV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline.slider",e.defaultOption=yc(bV.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(bV);R(wV,lf.prototype);var SV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline",e}(gg),MV=function(t){function e(e,n,i,r){var o=t.call(this,e,n,i)||this;return o.type=r||"value",o}return n(e,t),e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},e}(H_),IV=Math.PI,TV=So(),CV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.api=e},e.prototype.render=function(t,e,n){if(this.model=t,this.api=n,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),r=this._createGroup("_mainGroup"),o=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,t);t.formatTooltip=function(t){return Xf("nameValue",{noName:!0,value:a.scale.getLabel({value:t})})},E(["AxisLine","AxisTick","Control","CurrentPointer"],(function(e){this["_render"+e](i,r,a,t)}),this),this._renderAxisLabel(i,o,a,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,e){var n,i,r,o,a=t.get(["label","position"]),s=t.get("orient"),l=function(t,e){return xp(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e),u={horizontal:"center",vertical:(n=null==a||"auto"===a?"horizontal"===s?l.y+l.height/2=0||"+"===n?"left":"right"},h={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},c={horizontal:0,vertical:IV/2},p="vertical"===s?l.height:l.width,d=t.getModel("controlStyle"),f=d.get("show",!0),g=f?d.get("itemSize"):0,y=f?d.get("itemGap"):0,v=g+y,m=t.get(["label","rotate"])||0;m=m*IV/180;var x=d.get("position",!0),_=f&&d.get("showPlayBtn",!0),b=f&&d.get("showPrevBtn",!0),w=f&&d.get("showNextBtn",!0),S=0,M=p;"left"===x||"bottom"===x?(_&&(i=[0,0],S+=v),b&&(r=[S,0],S+=v),w&&(o=[M-g,0],M-=v)):(_&&(i=[M-g,0],M-=v),b&&(r=[0,0],S+=v),w&&(o=[M-g,0],M-=v));var I=[S,M];return t.get("inverse")&&I.reverse(),{viewRect:l,mainLength:p,orient:s,rotation:c[s],labelRotation:m,labelPosOpt:n,labelAlign:t.get(["label","align"])||u[s],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||h[s],playPosition:i,prevBtnPosition:r,nextBtnPosition:o,axisExtent:I,controlSize:g,controlGap:y}},e.prototype._position=function(t,e){var n=this._mainGroup,i=this._labelGroup,r=t.viewRect;if("vertical"===t.orient){var o=[1,0,0,1,0,0],a=r.x,s=r.y+r.height;Ei(o,o,[-a,-s]),zi(o,o,-IV/2),Ei(o,o,[a,s]),(r=r.clone()).applyTransform(o)}var l=y(r),u=y(n.getBoundingRect()),h=y(i.getBoundingRect()),c=[n.x,n.y],p=[i.x,i.y];p[0]=c[0]=l[0][0];var d,f=t.labelPosOpt;function g(t){t.originX=l[0][0]-t.x,t.originY=l[1][0]-t.y}function y(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function v(t,e,n,i,r){t[i]+=n[i][r]-e[i][r]}null==f||X(f)?(v(c,u,l,1,d="+"===f?0:1),v(p,h,l,1,1-d)):(v(c,u,l,1,d=f>=0?0:1),p[1]=c[1]+f),n.setPosition(c),i.setPosition(p),n.rotation=i.rotation=t.rotation,g(n),g(i)},e.prototype._createAxis=function(t,e){var n=e.getData(),i=e.get("axisType"),r=function(t,e){if(e=e||t.get("type"))switch(e){case"category":return new vx({ordinalMeta:t.getCategories(),extent:[1/0,-1/0]});case"time":return new Rx({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new xx}}(e,i);r.getTicks=function(){return n.mapArray(["value"],(function(t){return{value:t}}))};var o=n.getDataExtent("value");r.setExtent(o[0],o[1]),r.calcNiceTicks();var a=new MV("value",r,t.axisExtent,i);return a.model=e,a},e.prototype._createGroup=function(t){var e=this[t]=new Cr;return this.group.add(e),e},e.prototype._renderAxisLine=function(t,e,n,i){var r=n.getExtent();if(i.get(["lineStyle","show"])){var o=new zu({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:A({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});e.add(o);var a=this._progressLine=new zu({shape:{x1:r[0],x2:this._currentPointer?this._currentPointer.x:r[0],y1:0,y2:0},style:k({lineCap:"round",lineWidth:o.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});e.add(a)}},e.prototype._renderAxisTick=function(t,e,n,i){var r=this,o=i.getData(),a=n.scale.getTicks();this._tickSymbols=[],E(a,(function(t){var a=n.dataToCoord(t.value),s=o.getItemModel(t.value),l=s.getModel("itemStyle"),u=s.getModel(["emphasis","itemStyle"]),h=s.getModel(["progress","itemStyle"]),c={x:a,y:0,onclick:W(r._changeTimeline,r,t.value)},p=DV(s,l,e,c);p.ensureState("emphasis").style=u.getItemStyle(),p.ensureState("progress").style=h.getItemStyle(),Ol(p);var d=Hs(p);s.get("tooltip")?(d.dataIndex=t.value,d.dataModel=i):d.dataIndex=d.dataModel=null,r._tickSymbols.push(p)}))},e.prototype._renderAxisLabel=function(t,e,n,i){var r=this;if(n.getLabelModel().get("show")){var o=i.getData(),a=n.getViewLabels();this._tickLabels=[],E(a,(function(i){var a=i.tickValue,s=o.getItemModel(a),l=s.getModel("label"),u=s.getModel(["emphasis","label"]),h=s.getModel(["progress","label"]),c=n.dataToCoord(i.tickValue),p=new ks({x:c,y:0,rotation:t.labelRotation-t.rotation,onclick:W(r._changeTimeline,r,a),silent:!1,style:Uh(l,{text:i.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});p.ensureState("emphasis").style=Uh(u),p.ensureState("progress").style=Uh(h),e.add(p),Ol(p),TV(p).dataIndex=a,r._tickLabels.push(p)}))}},e.prototype._renderControl=function(t,e,n,i){var r=t.controlSize,o=t.rotation,a=i.getModel("controlStyle").getItemStyle(),s=i.getModel(["emphasis","controlStyle"]).getItemStyle(),l=i.getPlayState(),u=i.get("inverse",!0);function h(t,n,l,u){if(t){var h=gr(rt(i.get(["controlStyle",n+"BtnSize"]),r),r),c=function(t,e,n,i){var r=i.style,o=Ph(t.get(["controlStyle",e]),i||{},new sr(n[0],n[1],n[2],n[3]));return r&&o.setStyle(r),o}(i,n+"Icon",[0,-h/2,h,h],{x:t[0],y:t[1],originX:r/2,originY:0,rotation:u?-o:0,rectHover:!0,style:a,onclick:l});c.ensureState("emphasis").style=s,e.add(c),Ol(c)}}h(t.nextBtnPosition,"next",W(this._changeTimeline,this,u?"-":"+")),h(t.prevBtnPosition,"prev",W(this._changeTimeline,this,u?"+":"-")),h(t.playPosition,l?"stop":"play",W(this._handlePlayClick,this,!l),!0)},e.prototype._renderCurrentPointer=function(t,e,n,i){var r=i.getData(),o=i.getCurrentIndex(),a=r.getItemModel(o).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=W(s._handlePointerDrag,s),t.ondragend=W(s._handlePointerDragend,s),AV(t,s._progressLine,o,n,i,!0)},onUpdate:function(t){AV(t,s._progressLine,o,n,i)}};this._currentPointer=DV(a,a,this._mainGroup,{},this._currentPointer,l)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,e,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,e){var n=this._toAxisCoord(t)[0],i=Vr(this._axis.getExtent().slice());n>i[1]&&(n=i[1]),n=0&&(a[o]=+a[o].toFixed(c)),[a,h]}var FV={min:H(BV,"min"),max:H(BV,"max"),average:H(BV,"average"),median:H(BV,"median")};function GV(t,e){var n=t.getData(),i=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!Y(e.coord)&&i){var r=i.dimensions,o=WV(e,n,i,t);if((e=T(e)).type&&FV[e.type]&&o.baseAxis&&o.valueAxis){var a=P(r,o.baseAxis.dim),s=P(r,o.valueAxis.dim),l=FV[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)FV[u[h]]&&(u[h]=UV(n,n.mapDimension(r[h]),u[h]));e.coord=u}}return e}function WV(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData().getDimensionInfo(e);return n&&n.coordDim}(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function HV(t,e){return!(t&&t.containData&&e.coord&&!VV(e))||t.containData(e.coord)}function YV(t,e){return t?function(t,n,i,r){return df(r<2?t.coord&&t.coord[r]:t.value,e[r])}:function(t,n,i,r){return df(t.value,e[r])}}function UV(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,(function(t,e){isNaN(t)||(i+=t,r++)})),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var XV=So(),ZV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this.markerGroupMap=ft()},e.prototype.render=function(t,e,n){var i=this,r=this.markerGroupMap;r.each((function(t){XV(t).keep=!1})),e.eachSeries((function(t){var r=EV.getMarkerModelFromSeries(t,i.type);r&&i.renderSeries(t,r,e,n)})),r.each((function(t){!XV(t).keep&&i.group.remove(t.group)}))},e.prototype.markKeep=function(t){XV(t).keep=!0},e.prototype.toggleBlurSeries=function(t,e){var n=this;E(t,(function(t){var i=EV.getMarkerModelFromSeries(t,n.type);i&&i.getData().eachItemGraphicEl((function(t){t&&(e?wl(t):Sl(t))}))}))},e.type="marker",e}(gg);function jV(t,e,n){var i=e.coordinateSystem;t.each((function(r){var o,a=t.getItemModel(r),s=Er(a.get("x"),n.getWidth()),l=Er(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var u=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([u,h])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(r,o)}))}var qV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=EV.getMarkerModelFromSeries(t,"markPoint");e&&(jV(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new qw),u=function(t,e,n){var i;i=t?z(t&&t.dimensions,(function(t){return A(A({},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{}),{name:t,ordinalMeta:null})})):[{name:"value",type:"float"}];var r=new qm(i,n),o=z(n.get("data"),H(GV,e));t&&(o=B(o,H(HV,t)));var a=YV(!!t,i);return r.initData(o,null,a),r}(r,t,e);e.setData(u),jV(e.getData(),t,i),u.each((function(t){var n=u.getItemModel(t),i=n.getShallow("symbol"),r=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate"),s=n.getShallow("symbolOffset"),l=n.getShallow("symbolKeepAspect");if(U(i)||U(r)||U(o)||U(s)){var h=e.getRawValue(t),c=e.getDataParams(t);U(i)&&(i=i(h,c)),U(r)&&(r=r(h,c)),U(o)&&(o=o(h,c)),U(s)&&(s=s(h,c))}var p=n.getModel("itemStyle").getItemStyle(),d=gy(a,"color");p.fill||(p.fill=d),u.setItemVisual(t,{symbol:i,symbolSize:r,symbolRotate:o,symbolOffset:s,symbolKeepAspect:l,style:p})})),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl((function(t){t.traverse((function(t){Hs(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markPoint",e}(ZV),KV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markLine",e.defaultOption={z:5,symbol:["circle","arrow"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(EV),$V=So(),JV=function(t,e,n,i){var r,o=t.getData();if(Y(i))r=i;else{var a=i.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=i.xAxis||null!=i.yAxis){var s=void 0,l=void 0;if(null!=i.yAxis||null!=i.xAxis)s=e.getAxis(null!=i.yAxis?"y":"x"),l=it(i.yAxis,i.xAxis);else{var u=WV(i,o,e,t);s=u.valueAxis,l=UV(o,ix(o,u.valueDataDim),a)}var h="x"===s.dim?0:1,c=1-h,p=T(i),d={coord:[]};p.type=null,p.coord=[],p.coord[c]=-1/0,d.coord[c]=1/0;var f=n.get("precision");f>=0&&j(l)&&(l=+l.toFixed(Math.min(f,20))),p.coord[h]=d.coord[h]=l,r=[p,d,{type:a,valueIndex:i.valueIndex,value:l}]}else r=[]}var g=[GV(t,r[0]),GV(t,r[1]),A({},r[2])];return g[2].type=g[2].type||null,C(g[2],g[0]),C(g[2],g[1]),g};function QV(t){return!isNaN(t)&&!isFinite(t)}function tB(t,e,n,i){var r=1-t,o=i.dimensions[t];return QV(e[r])&&QV(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function eB(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(tB(1,n,i,t)||tB(0,n,i,t)))return!0}return HV(t,e[0])&&HV(t,e[1])}function nB(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Er(s.get("x"),r.getWidth()),u=Er(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),p=t.get(h[1],e);o=a.dataToPoint([c,p])}if(uS(a,"cartesian2d")){var d=a.getAxis("x"),f=a.getAxis("y");h=a.dimensions,QV(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):QV(t.get(h[1],e))&&(o[1]=f.toGlobalCoord(f.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var iB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=EV.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=$V(e).from,o=$V(e).to;r.each((function(e){nB(r,e,!0,t,n),nB(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new gA);this.group.add(l.group);var u=function(t,e,n){var i;i=t?z(t&&t.dimensions,(function(t){return A(A({},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{}),{name:t,ordinalMeta:null})})):[{name:"value",type:"float"}];var r=new qm(i,n),o=new qm(i,n),a=new qm([],n),s=z(n.get("data"),H(JV,e,t,n));t&&(s=B(s,H(eB,t)));var l=YV(!!t,i);return r.initData(z(s,(function(t){return t[0]})),null,l),o.initData(z(s,(function(t){return t[1]})),null,l),a.initData(z(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}(r,t,e),h=u.from,c=u.to,p=u.line;$V(e).from=h,$V(e).to=c,e.setData(p);var d=e.get("symbol"),f=e.get("symbolSize"),g=e.get("symbolRotate"),y=e.get("symbolOffset");function v(e,n,r){var o=e.getItemModel(n);nB(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=gy(a,"color")),e.setItemVisual(n,{symbolKeepAspect:o.get("symbolKeepAspect"),symbolOffset:rt(o.get("symbolOffset",!0),y[r?0:1]),symbolRotate:rt(o.get("symbolRotate",!0),g[r?0:1]),symbolSize:rt(o.get("symbolSize"),f[r?0:1]),symbol:rt(o.get("symbol",!0),d[r?0:1]),style:s})}Y(d)||(d=[d,d]),Y(f)||(f=[f,f]),Y(g)||(g=[g,g]),Y(y)||(y=[y,y]),u.from.each((function(t){v(h,t,!0),v(c,t,!1)})),p.each((function(t){var e=p.getItemModel(t).getModel("lineStyle").getLineStyle();p.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),p.setItemVisual(t,{fromSymbolKeepAspect:h.getItemVisual(t,"symbolKeepAspect"),fromSymbolOffset:h.getItemVisual(t,"symbolOffset"),fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolKeepAspect:c.getItemVisual(t,"symbolKeepAspect"),toSymbolOffset:c.getItemVisual(t,"symbolOffset"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),l.updateData(p),u.line.eachItemGraphicEl((function(t){Hs(t).dataModel=e,t.traverse((function(t){Hs(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markLine",e}(ZV),rB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markArea",e.defaultOption={z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(EV),oB=So(),aB=function(t,e,n,i){var r=GV(t,i[0]),o=GV(t,i[1]),a=r.coord,s=o.coord;a[0]=it(a[0],-1/0),a[1]=it(a[1],-1/0),s[0]=it(s[0],1/0),s[1]=it(s[1],1/0);var l=D([{},r,o]);return l.coord=[r.coord,o.coord],l.x0=r.x,l.y0=r.y,l.x1=o.x,l.y1=o.y,l};function sB(t){return!isNaN(t)&&!isFinite(t)}function lB(t,e,n,i){var r=1-t;return sB(e[r])&&sB(n[r])}function uB(t,e){var n=e.coord[0],i=e.coord[1],r={coord:n,x:e.x0,y:e.y0},o={coord:i,x:e.x1,y:e.y1};return uS(t,"cartesian2d")?!(!n||!i||!lB(1,n,i)&&!lB(0,n,i))||function(t,e,n){return!(t&&t.containZone&&e.coord&&n.coord&&!VV(e)&&!VV(n))||t.containZone(e.coord,n.coord)}(t,r,o):HV(t,r)||HV(t,o)}function hB(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Er(s.get(n[0]),r.getWidth()),u=Er(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(n,e));else{var h=[d=t.get(n[0],e),f=t.get(n[1],e)];a.clampData&&a.clampData(h,h),o=a.dataToPoint(h,!0)}if(uS(a,"cartesian2d")){var c=a.getAxis("x"),p=a.getAxis("y"),d=t.get(n[0],e),f=t.get(n[1],e);sB(d)?o[0]=c.toGlobalCoord(c.getExtent()["x0"===n[0]?0:1]):sB(f)&&(o[1]=p.toGlobalCoord(p.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var cB=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],pB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=EV.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=z(cB,(function(r){return hB(i,e,r,t,n)}));i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)}))}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new Cr});this.group.add(l.group),this.markKeep(l);var u=function(t,e,n){var i,r;if(t){var a=z(t&&t.dimensions,(function(t){var n=e.getData();return A(A({},n.getDimensionInfo(n.mapDimension(t))||{}),{name:t,ordinalMeta:null})}));r=z(["x0","y0","x1","y1"],(function(t,e){return{name:t,type:a[e%2].type}})),i=new qm(r,n)}else i=new qm(r=[{name:"value",type:"float"}],n);var s=z(n.get("data"),H(aB,e,t,n));t&&(s=B(s,H(uB,t)));var l=t?function(t,e,n,i){return df(t.coord[Math.floor(i/2)][i%2],r[i])}:function(t,e,n,i){return df(t.value,r[i])};return i.initData(s,null,l),i.hasItemOption=!0,i}(r,t,e);e.setData(u),u.each((function(e){var n=z(cB,(function(n){return hB(u,e,n,t,i)})),o=r.getAxis("x").scale,s=r.getAxis("y").scale,l=o.getExtent(),h=s.getExtent(),c=[o.parse(u.get("x0",e)),o.parse(u.get("x1",e))],p=[s.parse(u.get("y0",e)),s.parse(u.get("y1",e))];Vr(c),Vr(p);var d=!!(l[0]>c[1]||l[1]p[1]||h[1]=0},e.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.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}},e}(Tp),fB=H,gB=E,yB=Cr,vB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!1,n}return n(e,t),e.prototype.init=function(){this.group.add(this._contentGroup=new yB),this.group.add(this._selectorGroup=new yB),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.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"),c=xp(l,u,h),p=this.layoutInner(t,r,c,i,a,s),d=xp(k({width:p.width,height:p.height},l),u,h);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=XE(p,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=ft(),u=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),gB(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new yB;return c.newline=!0,void s.add(c)}var p=n.getSeriesByName(a)[0];if(!l.get(a))if(p){var d=p.getData(),f=d.getVisual("legendLineStyle")||{},g=d.getVisual("legendIcon"),y=d.getVisual("style");this._createItem(p,a,o,r,e,t,f,y,g,u,i).on("click",fB(mB,a,null,i,h)).on("mouseover",fB(_B,p.name,null,i,h)).on("mouseout",fB(bB,p.name,null,i,h)),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 c=s.indexOfName(a),p=s.getItemVisual(c,"style"),d=s.getItemVisual(c,"legendIcon"),f=bn(p.fill);f&&0===f[3]&&(f[3]=.2,p=A(A({},p),{fill:kn(f,"rgba")})),this._createItem(n,a,o,r,e,t,{},p,d,u,i).on("click",fB(mB,null,a,i,h)).on("mouseover",fB(_B,null,a,i,h)).on("mouseout",fB(bB,null,a,i,h)),l.set(a,!0)}}),this)}),this),r&&this._createSelector(r,e,i,o,a)},e.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();gB(t,(function(t){var i=t.type,r=new ks({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r),Hh(r,{normal:e.getModel("selectorLabel"),emphasis:e.getModel(["emphasis","selectorLabel"])},{defaultText:t.title}),Ol(r)}))},e.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"),m=function(t,e,n,i,r,o,a){function s(t,e){"auto"===t.lineWidth&&(t.lineWidth=e.lineWidth>0?2:0),gB(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?rv(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}}(l=v||l||"roundRect",i,a,s,c,f,h),x=new yB,_=i.getModel("textStyle");if(!U(t.getLegendIcon)||v&&"inherit"!==v){var b="inherit"===v&&t.getData().getVisual("symbol")?"inherit"===g?t.getData().getVisual("symbolRotate"):g:0;x.add(function(t){var e=t.icon||"roundRect",n=Ly(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}({itemWidth:p,itemHeight:d,icon:l,iconRotate:b,itemStyle:m.itemStyle,lineStyle:m.lineStyle,symbolKeepAspect:y}))}else x.add(t.getLegendIcon({itemWidth:p,itemHeight:d,icon:l,iconRotate:g,itemStyle:m.itemStyle,lineStyle:m.lineStyle,symbolKeepAspect:y}));var w="left"===o?p+5:-5,S=o,M=r.get("formatter"),I=e;X(M)&&M?I=M.replace("{name}",null!=e?e:""):U(M)&&(I=M(e));var T=i.get("inactiveColor");x.add(new ks({style:Uh(_,{text:I,x:w,y:d/2,fill:f?_.getTextColor():T,align:S,verticalAlign:"middle"})}));var C=new Cs({shape:x.getBoundingRect(),invisible:!0}),D=i.getModel("tooltip");return D.get("show")&&Eh({el:C,componentModel:r,itemName:e,itemTooltipOption:D.option}),x.add(C),x.eachChild((function(t){t.silent=!0})),C.silent=!u,this.getContentGroup().add(x),Ol(x),x.__legendDataIndex=n,x},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();mp(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){mp("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()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(gg);function mB(t,e,n,i){bB(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),_B(t,e,n,i)}function xB(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;in[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=rt(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?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 m={x:0,y:0};if(m[r]=d?n[r]:c[r],m[o]=Math.max(c[o],p[o]),m[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]=m[o],u.setClipPath(new Cs({shape:x})),u.__rectSize=x[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var _=this._getPageInfo(t);return null!=_.pageIndex&&rh(l,{x:_.contentPosition[0],y:_.contentPosition[1]},d?t:null),this._updatePageInfoView(t,_),m},e.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},e.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;E(["pagePrev","pageNext"],(function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"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",X(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},e.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=DB[r],a=AB[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=m(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,v=null;f<=h;++f)(!(v=m(l[f]))&&y.e>g.s+i||v&&!x(v,g.s))&&(g=y.i>g.i?y:v)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=v;for(f=s-1,g=d,y=d,v=null;f>=-1;--f)(v=m(l[f]))&&x(y,v.s)||!(g.i=e&&t.s<=e+i}},e.prototype._findTargetItemIndex=function(t){return this._showController?(this.getContentGroup().eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n):0;var e,n},e.type="legend.scroll",e}(vB);function LB(t){wm(MB),t.registerComponentModel(IB),t.registerComponentView(kB),function(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}(t)}var PB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.inside",e.defaultOption=yc(AE.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(AE),OB=So();function NB(t,e){if(e){t.removeKey(e.model.uid);var n=e.controller;n&&n.dispose()}}function EB(t,e){t.isDisposed()||t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function zB(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}var BB=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return n(e,t),e.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),function(t,e,n){OB(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}(i,e,{pan:W(FB.pan,this),zoom:W(FB.zoom,this),scrollMove:W(FB.scrollMove,this)}))},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){!function(t,e){for(var n=OB(t).coordSysRecordMap,i=n.keys(),r=0;r0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/i.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return lk(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:GB((function(t,e,n,i,r,o){var a=WB[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:GB((function(t,e,n,i,r,o){return WB[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n).signal*(t[1]-t[0])*o.scrollDelta}))};function GB(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s)return lk(t(a,s,e,n,i,r),a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}var WB={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};function HB(t){BE(t),t.registerComponentModel(PB),t.registerComponentView(BB),function(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=OB(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=ft());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){E(CE(t).infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,function(t,e){var n={model:e,containsPoint:H(zB,e),dispatchAction:H(EB,t),dataZoomInfoMap:null,controller:null},i=n.controller=new kI(t.getZr());return E(["pan","zoom","scrollMove"],(function(t){i.on(t,(function(e){var i=[];n.dataZoomInfoMap.each((function(r){if(e.isAvailableBehavior(r.model.option)){var o=(r.getRange||{})[t],a=o&&o(r.dzReferCoordSysInfo,n.model.mainType,n.controller,e);!r.model.get("disabled",!0)&&a&&i.push({dataZoomId:r.model.id,start:a[0],end:a[1]})}})),i.length&&n.dispatchAction(i)}))})),n}(e,n.model));(o.dataZoomInfoMap||(o.dataZoomInfoMap=ft())).set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=function(t){var e,n="type_",i={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return t.each((function(t){var o=t.model,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i[n+a]>i[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),Ag(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else NB(i,t)}))}))}(t)}var YB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=yc(AE.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(AE),UB=Cs,XB="horizontal",ZB="vertical",jB=["line","bar","candlestick","scatter"],qB={easing:"cubicOut",duration:100,delay:0},KB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._displayables={},n}return n(e,t),e.prototype.init=function(t,e){this.api=e,this._onBrush=W(this._onBrush,this),this._onBrushEnd=W(this._onBrushEnd,this)},e.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),Ag(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){kg(this,"_dispatchZoomAction");var t=this.api.getZr();t.off("mousemove",this._onBrush),t.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Cr;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),r={width:e.getWidth(),height:e.getHeight()},o=this._orient===XB?{right:r.width-i.x-i.width,top:r.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=Sp(t.option);E(["right","top","width","height"],(function(t){"ph"===a[t]&&(a[t]=o[t])}));var s=xp(a,r);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],this._orient===ZB&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==XB||r?n===XB&&r?{scaleY:a?1:-1,scaleX:-1}:n!==ZB||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new UB({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new UB({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:W(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=this._shadowSize||[],i=t.series,r=i.getRawData(),o=i.getShadowDim?i.getShadowDim():t.otherDim;if(null!=o){var a=this._shadowPolygonPts,s=this._shadowPolylinePts;if(r!==this._shadowData||o!==this._shadowDim||e[0]!==n[0]||e[1]!==n[1]){var l=r.getDataExtent(o),u=.3*(l[1]-l[0]);l=[l[0]-u,l[1]+u];var h,c=[0,e[1]],p=[0,e[0]],d=[[e[0],0],[0,0]],f=[],g=p[1]/(r.count()-1),y=0,v=Math.round(r.count()/e[0]);r.each([o],(function(t,e){if(v>0&&e%v)y+=g;else{var n=null==t||isNaN(t)||""===t,i=n?0:Nr(t,l,c,!0);n&&!h&&e?(d.push([d[d.length-1][0],0]),f.push([f[f.length-1][0],0])):!n&&h&&(d.push([y,0]),f.push([y,0])),d.push([y,i]),f.push([y,i]),y+=g,h=n}})),a=this._shadowPolygonPts=d,s=this._shadowPolylinePts=f}this._shadowData=r,this._shadowDim=o,this._shadowSize=[e[0],e[1]];for(var m=this.dataZoomModel,x=0;x<3;x++){var _=b(1===x);this._displayables.sliderGroup.add(_),this._displayables.dataShadowSegs.push(_)}}}function b(t){var e=m.getModel(t?"selectedDataBackground":"dataBackground"),n=new Cr,i=new Pu({shape:{points:a},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new Ru({shape:{points:s},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){E(t.getAxisProxy(r,o).getTargetSeriesModels(),(function(t){if(!(n||!0!==e&&P(jB,t.get("type"))<0)){var a,s=i.getComponent(IE(r),o).axis,l={x:"y",y:"x",radius:"angle",angle:"radius"}[r],u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:r,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},e.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),h=e.filler=new UB({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new UB({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})),E([0,1],(function(e){var o=a.get("handleIcon");!Dy[o]&&o.indexOf("path://")<0&&o.indexOf("image://")<0&&(o="path://"+o);var s=Ly(o,-1,0,2,2,null,!0);s.attr({cursor:$B(this._orient),draggable:!0,drift:W(this._onDragMove,this,e),ondragend:W(this._onDragEnd,this),onmouseover:W(this._showDataInfo,this,!0),onmouseout:W(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=Er(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),Ol(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new ks({silent:!0,invisible:!0,style:Uh(c,{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()}),z2:10}))}),this);var c=h;if(u){var p=Er(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new Cs({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:p}}),f=.8*p,g=e.moveHandleIcon=Ly(a.get("moveHandleIcon"),-f/2,-f/2,f,f,"#fff",!0);g.silent=!0,g.y=o[1]+p/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(p,10));(c=e.moveZone=new Cs({invisible:!0,shape:{y:o[1]-y,height:p+y}})).on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:$B(this._orient),drift:W(this._onDragMove,this,"all"),ondragstart:W(this._showDataInfo,this,!0),ondragend:W(this._onDragEnd,this),onmouseover:W(this._showDataInfo,this,!0),onmouseout:W(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Nr(t[0],[0,100],e,!0),Nr(t[1],[0,100],e,!0)]},e.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];lk(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Nr(o.minSpan,a,r,!0):null,null!=o.maxSpan?Nr(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=Vr([Nr(i[0],r,a,!0),Nr(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},e.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=Vr(n.slice()),r=this._size;E([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],l=0;le[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new Ji(e,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),r=[0,100];this._range=Vr([Nr(n.x,i,r,!0),Nr(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(se(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new UB({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},e.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?qB:null,start:e[0],end:e[1]})},e.prototype._findCoordRect=function(){var t,e=CE(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},e.type="dataZoom.slider",e}(PE);function $B(t){return"vertical"===t?"ns-resize":"ew-resize"}function JB(t){t.registerComponentModel(YB),t.registerComponentView(KB),BE(t)}var QB=function(t,e,n){var i=T((tF[t]||{})[e]);return n&&Y(i)?i[i.length-1]:i},tF={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},eF=iD.mapVisual,nF=iD.eachVisual,iF=Y,rF=E,oF=Vr,aF=Nr,sF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.stateList=["inRange","outOfRange"],n.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],n.layoutMode={type:"box",ignoreSize:!0},n.dataBound=[-1/0,1/0],n.targetVisuals={},n.controllerVisuals={},n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&eV(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var e=this.stateList;t=W(t,this),this.controllerVisuals=tV(this.option.controller,e,t),this.targetVisuals=tV(this.option.target,e,t)},e.prototype.getItemSymbol=function(){return null},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries((function(t,n){e.push(n)})):e=ho(t),e},e.prototype.eachTargetSeries=function(t,e){E(this.getTargetSeriesIndices(),(function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(e,i)}),this)},e.prototype.isTargetSeries=function(t){var e=!1;return this.eachTargetSeries((function(n){n===t&&(e=!0)})),e},e.prototype.formatValueText=function(t,e,n){var i,r=this.option,o=r.precision,a=this.dataBound,s=r.formatter;n=n||["<",">"],Y(t)&&(t=t.slice(),i=!0);var l=e?t:i?[u(t[0]),u(t[1])]:u(t);return X(s)?s.replace("{value}",i?l[0]:l).replace("{value2}",i?l[1]:l):U(s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,e=oF([t.min,t.max]);this._dataExtent=e},e.prototype.getDataDimensionIndex=function(t){var e=this.option.dimension;if(null!=e)return t.getDimensionIndex(e);for(var n=t.dimensions,i=n.length-1;i>=0;i--){var r=n[i],o=t.getDimensionInfo(r);if(!o.isCalculationCoord)return o.storeDimIndex}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,e=this.option,n={inRange:e.inRange,outOfRange:e.outOfRange},i=e.target||(e.target={}),r=e.controller||(e.controller={});C(i,n),C(r,n);var o=this.isCategory();function a(n){iF(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")}}a.call(this,i),a.call(this,r),function(t,e,n){var i=t[e],r=t[n];i&&!r&&(r=t[n]={},rF(i,(function(t,e){if(iD.isValidType(e)){var n=QB(e,"inactive",o);null!=n&&(r[e]=n,"color"!==e||r.hasOwnProperty("opacity")||r.hasOwnProperty("colorAlpha")||(r.opacity=[0,0]))}})))}.call(this,i,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,i=this.get("inactiveColor"),r=this.getItemSymbol()||"roundRect";rF(this.stateList,(function(a){var s=this.itemSize,l=t[a];l||(l=t[a]={color:o?i:[i]}),null==l.symbol&&(l.symbol=e&&T(e)||(o?r:[r])),null==l.symbolSize&&(l.symbolSize=n&&T(n)||(o?s[0]:[s[0],s[0]])),l.symbol=eF(l.symbol,(function(t){return"none"===t?r:t}));var u=l.symbolSize;if(null!=u){var h=-1/0;nF(u,(function(t){t>h&&(h=t)})),l.symbolSize=eF(u,(function(t){return aF(t,[0,h],[0,s[0]],!0)}))}}),this)}.call(this,r)},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(Tp),lF=[20,140],uF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual((function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()})),this._resetRange()},e.prototype.resetItemSize=function(){t.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(null==e[0]||isNaN(e[0]))&&(e[0]=lF[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=lF[1])},e.prototype._resetRange=function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):Y(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},e.prototype.completeVisualOption=function(){t.prototype.completeVisualOption.apply(this,arguments),E(this.stateList,(function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)}),this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),e=Vr((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=n[1]||t<=e[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[];return this.eachTargetSeries((function(n){var i=[],r=n.getData();r.each(this.getDataDimensionIndex(r),(function(e,n){t[0]<=e&&e<=t[1]&&i.push(n)}),this),e.push({seriesId:n.id,dataIndex:i})}),this),e},e.prototype.getVisualMeta=function(t){var e=hF(this,"outOfRange",this.getExtent()),n=hF(this,"inRange",this.option.range.slice()),i=[];function r(e,n){i.push({value:e,color:t(e,n)})}for(var o=0,a=0,s=n.length,l=e.length;at[1])break;n.push({color:this.getControllerVisual(o,"color",e),offset:r/100})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},e.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},e.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Cr("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},e.prototype._updateHandle=function(t,e){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,r=n.handleThumbs,o=n.handleLabels,a=i.itemSize,s=i.getExtent();yF([0,1],(function(l){var u=r[l];u.setStyle("fill",e.handlesColor[l]),u.y=t[l];var h=gF(t[l],[0,a[1]],s,!0),c=this.getControllerVisual(h,"symbolSize");u.scaleX=u.scaleY=c/a[0],u.x=a[0]-c/2;var p=Th(n.handleLabelPoints[l],Ih(u,this.group));o[l].setStyle({x:p[0],y:p[1],text:i.formatValueText(this._dataInterval[l]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",n.mainGroup):"center"})}),this)}},e.prototype._showIndicator=function(t,e,n,i){var r=this.visualMapModel,o=r.getExtent(),a=r.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var h=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0}),c=this.getControllerVisual(t,"symbolSize"),p=gF(t,o,s,!0),d=a[0]-c/2,f={x:u.x,y:u.y};u.y=p,u.x=d;var g=Th(l.indicatorLabelPoint,Ih(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var v=this._applyTransform("left",l.mainGroup),m="horizontal"===this._orient;y.setStyle({text:(n||"")+r.formatValueText(e),verticalAlign:m?v:"middle",align:m?"center":v});var x={x:d,y:p,style:{fill:h}},_={style:{x:g[0],y:g[1]}};if(r.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var b={duration:100,easing:"cubicInOut",additive:!0};u.x=f.x,u.y=f.y,u.animateTo(x,b),y.animateTo(_,b)}else u.attr(x),y.attr(_);this._firstShowIndicator=!1;var w=this._shapes.handleLabels;if(w)for(var S=0;Sr[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",a):u[1]===1/0?this._showIndicator(l,u[0],"> ",a):this._showIndicator(l,l,"≈ ",a));var h=this._hoverLinkDataIndices,c=[];(e||bF(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(u));var p=function(t,e){var n={},i={};return r(t||[],n),r(e||[],i,n),[o(n),o(i)];function r(t,e,n){for(var i=0,r=t.length;i=0&&(r.dimension=o,i.push(r))}})),t.getData().setVisual("visualMeta",i)}}];function TF(t,e,n,i){for(var r=e.targetVisuals[i],o=iD.prepareVisualTypes(r),a={color:gy(t.getData(),"color")},s=0,l=o.length;s0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})),t.registerAction(SF,MF),E(IF,(function(e){t.registerVisual(t.PRIORITY.VISUAL.COMPONENT,e)})),t.registerPreprocessor(DF))}function PF(t){t.registerComponentModel(uF),t.registerComponentView(xF),LF(t)}var OF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._pieceList=[],n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],RF[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var r=this.option.categories;this.resetVisual((function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=T(r)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=z(this._pieceList,(function(t){return t=T(t),"inRange"!==e&&(t.visual=null),t})))}))},e.prototype.completeVisualOption=function(){var e=this.option,n={},i=iD.listVisualTypes(),r=this.isCategory();function o(t,e,n){return t&&t[e]&&t[e].hasOwnProperty(n)}E(e.pieces,(function(t){E(i,(function(e){t.hasOwnProperty(e)&&(n[e]=1)}))})),E(n,(function(t,n){var i=!1;E(this.stateList,(function(t){i=i||o(e,t,n)||o(e.target,t,n)}),this),!i&&E(this.stateList,(function(t){(e[t]||(e[t]={}))[n]=QB(n,"inRange"===t?"active":"inactive",r)}))}),this),t.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,e){var n=this.option,i=this._pieceList,r=(e?n:t).selected||{};if(n.selected=r,E(i,(function(t,e){var n=this.getSelectedMapKey(t);r.hasOwnProperty(n)||(r[n]=!0)}),this),"single"===n.selectedMode){var o=!1;E(i,(function(t,e){var n=this.getSelectedMapKey(t);r[n]&&(o?r[n]=!1:o=!0)}),this)}},e.prototype.getItemSymbol=function(){return this.get("itemSymbol")},e.prototype.getSelectedMapKey=function(t){return"categories"===this._mode?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=T(t)},e.prototype.getValueState=function(t){var e=iD.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[],n=this._pieceList;return this.eachTargetSeries((function(i){var r=[],o=i.getData();o.each(this.getDataDimensionIndex(o),(function(e,i){iD.findPieceIndex(e,n)===t&&r.push(i)}),this),e.push({seriesId:i.id,dataIndex:r})}),this),e},e.prototype.getRepresentValue=function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var n=t.interval||[];e=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return e},e.prototype.getVisualMeta=function(t){if(!this.isCategory()){var e=[],n=["",""],i=this,r=this._pieceList.slice();if(r.length){var o=r[0].interval[0];o!==-1/0&&r.unshift({interval:[-1/0,o]}),(o=r[r.length-1].interval[1])!==1/0&&r.push({interval:[o,1/0]})}else r.push({interval:[-1/0,1/0]});var a=-1/0;return E(r,(function(t){var e=t.interval;e&&(e[0]>a&&s([a,e[0]],"outOfRange"),s(e.slice()),a=e[1])}),this),{stops:e,outerColors:n}}function s(r,o){var a=i.getRepresentValue({interval:r});o||(o=i.getValueState(a));var s=t(a,o);r[0]===-1/0?n[0]=s:r[1]===1/0?n[1]=s:e.push({value:r[0],color:s},{value:r[1],color:s})}},e.type="visualMap.piecewise",e.defaultOption=yc(sF.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(sF),RF={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),r=e.splitNumber;r=Math.max(parseInt(r,10),1),e.splitNumber=r;for(var o=(i[1]-i[0])/r;+o.toFixed(n)!==o&&n<5;)n++;e.precision=n,o=+o.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)}),this)}};function NF(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}var EF=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.doRender=function(){var t=this.group;t.removeAll();var e=this.visualMapModel,n=e.get("textGap"),i=e.textStyleModel,r=i.getFont(),o=i.getTextColor(),a=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=it(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,a),E(l.viewPieceList,(function(i){var l=i.piece,u=new Cr;u.onclick=W(this._onItemClick,this,l),this._enableHoverLink(u,i.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var p=this.visualMapModel.getValueState(c);u.add(new ks({style:{x:"right"===a?-n:s[0]+n,y:s[1]/2,text:l.text,verticalAlign:"middle",align:a,font:r,fill:o,opacity:"outOfRange"===p?.5:1}}))}t.add(u)}),this),u&&this._renderEndsText(t,u[1],s,h,a),mp(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,e){var n=this;t.on("mouseover",(function(){return i("highlight")})).on("mouseout",(function(){return i("downplay")}));var i=function(t){var i=n.visualMapModel;i.option.hoverLink&&n.api.dispatchAction({type:t,batch:fF(i.findTargetDataIndices(e),i)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return dF(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},e.prototype._renderEndsText=function(t,e,n,i,r){if(e){var o=new Cr,a=this.visualMapModel.textStyleModel;o.add(new ks({style:Uh(a,{x:i?"right"===r?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?r:"center",text:e})})),t.add(o)}},e.prototype._getViewData=function(){var t=this.visualMapModel,e=z(t.getPieceList(),(function(t,e){return{piece:t,indexInModelPieceList:e}})),n=t.get("text"),i=t.get("orient"),r=t.get("inverse");return("horizontal"===i?r:!r)?e.reverse():n&&(n=n.slice().reverse()),{viewPieceList:e,endsText:n}},e.prototype._createItemSymbol=function(t,e,n){t.add(Ly(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},e.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=n.selectedMode;if(i){var r=T(n.selected),o=e.getSelectedMapKey(t);"single"===i||!0===i?(r[o]=!0,E(r,(function(t,e){r[e]=e===o}))):r[o]=!r[o],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:r})}},e.type="visualMap.piecewise",e}(cF);function zF(t){t.registerComponentModel(OF),t.registerComponentView(EF),LF(t)}var VF={label:{enabled:!0},decal:{show:!1}},BF=So(),FF={};function GF(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=T(VF);C(i.label,t.getLocaleModel().get("aria"),!1),C(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=ft();t.eachSeries((function(t){if(!t.isColorBySeries()){var n=e.get(t.type);n||(n={},e.set(t.type,n)),BF(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if(U(e.enableAriaDecal))e.enableAriaDecal();else{var n=e.getData();if(e.isColorBySeries()){var i=ed(e.ecModel,e.name,FF,t.getSeriesCount()),r=n.getVisual("decal");n.setVisual("decal",u(r,i))}else{var o=e.getRawData(),a={},s=BF(e).scope;n.each((function(t){var e=n.getRawIndex(t);a[e]=t}));var l=o.count();o.each((function(t){var i=a[t],r=o.getName(t)||t+"",h=ed(e.ecModel,r,s,l),c=n.getItemVisual(i,"decal");n.setItemVisual(i,"decal",u(c,h))}))}}function u(t,e){var n=t?A(A({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=k(o.option,i),o.get("enabled")){var a=e.getZr().dom;if(o.get("description"))a.setAttribute("aria-label",o.get("description"));else{var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(!(l<1)){var p=function(){var e=t.get("title");return e&&e.length&&(e=e[0]),e&&e.text}();if(p)s=r(o.get(["general","withTitle"]),{title:p});else s=o.get(["general","withoutTitle"]);var f=[];s+=r(l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]),{seriesCount:l}),t.eachSeries((function(e,n){if(n1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(x=e.subType,t.getLocaleModel().get(["series","typeNames"])[x]||"自定义图")});var s=e.getData();s.count()>u?i+=r(o.get(["data","partialData"]),{displayCnt:u}):i+=o.get(["data","allData"]);for(var h=o.get(["data","separator","middle"]),p=o.get(["data","separator","end"]),d=[],g=0;g":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},YF=function(){function t(t){if(null==(this._condVal=X(t)?new RegExp(t):et(t)?t:null)){ao("")}}return t.prototype.evaluate=function(t){var e=typeof t;return X(e)?this._condVal.test(t):!!j(e)&&this._condVal.test(t+"")},t}(),UF=function(){function t(){}return t.prototype.evaluate=function(){return this.value},t}(),XF=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e2&&l.push(e),e=[t,n]}function f(t,n,i,r){oG(t,i)&&oG(n,r)||e.push(t,n,i,r,i,r)}function g(t,n,i,r,o,a){var s=Math.abs(n-t),l=4*Math.tan(s/4)/3,u=nM:C2&&l.push(e),l}function sG(t,e,n,i,r,o,a,s,l,u){if(oG(t,n)&&oG(e,i)&&oG(r,a)&&oG(o,s))l.push(a,s);else{var h=2/u,c=h*h,p=a-t,d=s-e,f=Math.sqrt(p*p+d*d);p/=f,d/=f;var g=n-t,y=i-e,v=r-a,m=o-s,x=g*g+y*y,_=v*v+m*m;if(x=0&&_-w*w=0)l.push(a,s);else{var S=[],M=[];Ze(t,n,r,a,.5,S),Ze(e,i,o,s,.5,M),sG(S[0],M[0],S[1],M[1],S[2],M[2],S[3],M[3],l,u),sG(S[4],M[4],S[5],M[5],S[6],M[6],S[7],M[7],l,u)}}}}function lG(t,e,n){var i=t[e],r=t[1-e],o=Math.abs(i/r),a=Math.ceil(Math.sqrt(o*n)),s=Math.floor(n/a);0===s&&(s=1,a=n);for(var l=[],u=0;u0)for(u=0;uMath.abs(u),c=lG([l,u],h?0:1,e),p=(h?s:u)/c.length,d=0;d1?null:new Ji(d*l+t,d*u+e)}function pG(t,e,n){var i=new Ji;Ji.sub(i,n,e),i.normalize();var r=new Ji;return Ji.sub(r,t,e),r.dot(i)}function dG(t,e){var n=t[t.length-1];n&&n[0]===e[0]&&n[1]===e[1]||t.push(e)}function fG(t){var e=t.points,n=[],i=[];Ma(e,n,i);var r=new sr(n[0],n[1],i[0]-n[0],i[1]-n[1]),o=r.width,a=r.height,s=r.x,l=r.y,u=new Ji,h=new Ji;return o>a?(u.x=h.x=s+o/2,u.y=l,h.y=l+a):(u.y=h.y=l+a/2,u.x=s,h.x=s+o),function(t,e,n){for(var i=t.length,r=[],o=0;o0;l/=2){var u=0,h=0;(t&l)>0&&(u=1),(e&l)>0&&(h=1),s+=l*l*(3*u^h),0===h&&(1===u&&(t=l-1-t,e=l-1-e),a=t,t=e,e=a)}return s}function LG(t){var e=1/0,n=1/0,i=-1/0,r=-1/0,o=z(t,(function(t){var o=t.getBoundingRect(),a=t.getComputedTransform(),s=o.x+o.width/2+(a?a[4]:0),l=o.y+o.height/2+(a?a[5]:0);return e=Math.min(s,e),n=Math.min(l,n),i=Math.max(s,i),r=Math.max(l,r),[s,l]}));return z(o,(function(o,a){return{cp:o,z:kG(o[0],o[1],e,n,i,r),path:t[a]}})).sort((function(t,e){return t.z-e.z})).map((function(t){return t.path}))}function PG(t){return function(t,e){var n,i=[],r=t.shape;switch(t.type){case"rect":!function(t,e,n){for(var i=t.width,r=t.height,o=i>r,a=lG([i,r],o?0:1,e),s=o?"width":"height",l=o?"height":"width",u=o?"x":"y",h=o?"y":"x",c=t[s]/a.length,p=0;p=0;r--)if(!n[r].many.length){var l=n[s].many;if(l.length<=1){if(!s)return n;s=0}o=l.length;var u=Math.ceil(o/2);n[r].many=l.slice(u,o),n[s].many=l.slice(0,u),s++}return n}var NG={clone:function(t){for(var e=[],n=1-Math.pow(1-t.path.style.opacity,1/t.count),i=0;i0){var s,l,u=i.getModel("universalTransition").get("delay"),h=Object.assign({setToFinal:!0},a);OG(t)&&(s=t,l=e),OG(e)&&(s=e,l=t);for(var c=s?s===t:t.length>e.length,p=s?RG(l,s):RG(c?e:t,[c?t:e]),d=0,f=0;f1e4))for(var i=n.getIndices(),r=function(t){for(var e=t.dimensions,n=0;n0&&i.group.traverse((function(t){t instanceof gs&&!t.animators.length&&t.animateFrom({style:{opacity:0}},r)}))}))}function UG(t){return t.getModel("universalTransition").get("seriesKey")||t.id}function XG(t){return Y(t)?t.sort().join(","):t}function ZG(t){if(t.hostModel)return t.hostModel.getModel("universalTransition").get("divideShape")}function jG(t,e){for(var n=0;n=0&&r.push({data:e.oldData[n],divide:ZG(e.oldData[n]),dim:t.dimension})})),E(ho(t.to),(function(t){var e=jG(n.updatedSeries,t);if(e>=0){var i=n.updatedSeries[e].getData();o.push({data:i,divide:ZG(i),dim:t.dimension})}})),r.length>0&&o.length>0&&YG(r,o,i)}(t,i,n,e)}));else{var o=function(t,e){var n=ft(),i=ft(),r=ft();return E(t.oldSeries,(function(e,n){var o=t.oldData[n],a=UG(e),s=XG(a);i.set(s,o),Y(a)&&E(a,(function(t){r.set(t,{data:o,key:s})}))})),E(e.updatedSeries,(function(t){if(t.isUniversalTransitionEnabled()&&t.isAnimationEnabled()){var e=t.getData(),o=UG(t),a=XG(o),s=i.get(a);if(s)n.set(a,{oldSeries:[{divide:ZG(s),data:s}],newSeries:[{divide:ZG(e),data:e}]});else if(Y(o)){var l=[];E(o,(function(t){var e=i.get(t);e&&l.push({divide:ZG(e),data:e})})),l.length&&n.set(a,{oldSeries:l,newSeries:[{data:e,divide:ZG(e)}]})}else{var u=r.get(o);if(u){var h=n.get(u.key);h||(h={oldSeries:[{data:u.data,divide:ZG(u.data)}],newSeries:[]},n.set(u.key,h)),h.newSeries.push({data:e,divide:ZG(e)})}}}})),n}(i,n);E(o.keys(),(function(t){var n=o.get(t);YG(n.oldSeries,n.newSeries,e)}))}E(n.updatedSeries,(function(t){t.__universalTransitionEnabled&&(t.__universalTransitionEnabled=!1)}))}for(var a=t.getSeries(),s=i.oldSeries=[],l=i.oldData=[],u=0;u { + return ctx.createCircularGradient(arguments); + }; + } + + _initEvent() { + 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, + preventDefault: () => {}, + stopImmediatePropagation: () => {}, + stopPropagation: () => {} + }); + }; + }); + } + + set width(w) { + if (this.canvasNode) this.canvasNode.width = w + } + set height(h) { + if (this.canvasNode) this.canvasNode.height = h + } + + get width() { + if (this.canvasNode) + return this.canvasNode.width + return 0 + } + get height() { + if (this.canvasNode) + return this.canvasNode.height + return 0 + } +} diff --git a/src/components/navbar/index.json b/src/components/navbar/index.json new file mode 100644 index 0000000..9017265 --- /dev/null +++ b/src/components/navbar/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-nav-bar": "@vant/weapp/nav-bar/index" + } +} diff --git a/src/components/navbar/index.scss b/src/components/navbar/index.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/components/navbar/index.ts b/src/components/navbar/index.ts new file mode 100644 index 0000000..0370c8c --- /dev/null +++ b/src/components/navbar/index.ts @@ -0,0 +1,50 @@ +const app = getApp() + +Component({ + options: { + multipleSlots: true, // 在组件定义时的选项中启用多slot支持 + }, + properties: { + title: String, + fixed: Boolean, + placeholder: Boolean, + leftText: String, + rightText: String, + customStyle: String, + leftArrow: Boolean, + border: { + type: Boolean, + value: false, + }, + zIndex: { + type: Number, + value: 100, + }, + + back: { + type: Boolean, + value: true, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + imageUrl: app.globalData.imageUrl, + Timestamp:app.globalData.Timestamp + }, + + /** + * 组件的方法列表 + */ + methods: { + onClickLeft() { + if(this.data.back) + this.triggerEvent('clickLeft', {}, {}) + }, + onClickRight() { + this.triggerEvent('clickRight', {}, {}) + }, + }, +}) diff --git a/src/components/navbar/index.wxml b/src/components/navbar/index.wxml new file mode 100644 index 0000000..26fabe6 --- /dev/null +++ b/src/components/navbar/index.wxml @@ -0,0 +1,17 @@ + + + + + diff --git a/src/components/pagination/index.js b/src/components/pagination/index.js new file mode 100644 index 0000000..60d4803 --- /dev/null +++ b/src/components/pagination/index.js @@ -0,0 +1,21 @@ +const app = getApp(); + +Component({ + properties: { + pagination: { + type: Object, + value() { + return {}; + }, + }, + }, + data: { + imageUrl: app.globalData.imageUrl, + Timestamp:app.globalData.Timestamp + }, + methods: { + handleTouchmove() { + return false; + }, + }, +}); diff --git a/src/components/pagination/index.json b/src/components/pagination/index.json new file mode 100644 index 0000000..24029b0 --- /dev/null +++ b/src/components/pagination/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-divider": "@vant/weapp/divider/index" + } +} diff --git a/src/components/pagination/index.scss b/src/components/pagination/index.scss new file mode 100644 index 0000000..08a9dea --- /dev/null +++ b/src/components/pagination/index.scss @@ -0,0 +1,6 @@ +/* components/pagination/index.wxss */ +.none { + display: block; + margin: 30rpx auto; + width: 80%; +} diff --git a/src/components/pagination/index.wxml b/src/components/pagination/index.wxml new file mode 100644 index 0000000..6bf20b8 --- /dev/null +++ b/src/components/pagination/index.wxml @@ -0,0 +1,6 @@ + + + + 加载中... + +没有更多了 diff --git a/src/components/pickerArea/index.json b/src/components/pickerArea/index.json new file mode 100644 index 0000000..cf286db --- /dev/null +++ b/src/components/pickerArea/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "@vant/weapp/popup/index", + "van-icon": "@vant/weapp/icon/index" + } +} diff --git a/src/components/pickerArea/index.scss b/src/components/pickerArea/index.scss new file mode 100644 index 0000000..cbd27b5 --- /dev/null +++ b/src/components/pickerArea/index.scss @@ -0,0 +1,128 @@ +.aside-share { + position: fixed; + right: 22rpx; + bottom: 120rpx; + width: 136rpx; + height: 136rpx; +} + +.popup { + position: relative; + background-color: #fff; + .close { + position: absolute; + top: 52rpx; + right: 32rpx; + color: rgba(72, 72, 72, 1); + font-size: 34rpx; + } + .p-header { + padding: 46rpx 30rpx 0; + .title { + text-align: center; + font-size: 36rpx; + color: rgba(72, 72, 72, 1); + font-weight: bold; + } + .tip { + text-align: center; + margin-top: 16rpx; + font-size: 32rpx; + color: rgba(72, 72, 72, 1); + } + .area { + margin-top: 48rpx; + display: flex; + align-items: center; + justify-content: space-between; + gap: 14rpx; + .item { + flex: 1; + padding: 18rpx 30rpx; + box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 0, 0, 0.11); + border-radius: 12rpx 12rpx 12rpx 12rpx; + border: 2rpx solid #f23a2f; + display: flex; + align-items: center; + justify-content: space-between; + .content { + font-size: 32rpx; + color: rgba(72, 72, 72, 1); + max-width: 5em; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + .icon { + width: 32rpx; + height: 32rpx; + } + } + .picker { + flex: 1; + } + .btn { + width: 126rpx; + height: 76rpx; + font-size: 32rpx; + color: rgba(255, 255, 255, 1); + display: flex; + align-items: center; + justify-content: center; + background: #f23a2f; + border-radius: 12rpx 12rpx 12rpx 12rpx; + } + } + } + .select { + margin-top: 44rpx; + padding: 0 30rpx 0; + display: grid; + grid-template-columns: repeat(auto-fit, 68rpx); + gap: 26rpx 20rpx; + .s-item { + width: 68rpx; + height: 68rpx; + text-align: center; + line-height: 68rpx; + font-size: 28rpx; + color: rgba(158, 158, 158, 1); + border-radius: 50%; + background: #f7f8f9; + &.active { + color: #fff; + background-color: #f23a2f; + } + } + } + .scroll { + padding: 0 30rpx; + height: 45vh; + box-sizing: border-box; + .item { + padding: 32rpx 0; + font-size: 28rpx; + color: rgba(72, 72, 72, 1); + border-bottom: 2px solid #fbfbfb; + display: flex; + align-items: center; + justify-content: space-between; + .word { + margin-right: 24rpx; + display: inline-block; + width: 1em; + color: rgba(158, 158, 158, 1); + } + .icon { + width: 36rpx; + height: 36rpx; + } + &.active { + color: #f23a2f; + .word { + color: #f23a2f; + } + } + } + } +} diff --git a/src/components/pickerArea/index.ts b/src/components/pickerArea/index.ts new file mode 100644 index 0000000..eeccd32 --- /dev/null +++ b/src/components/pickerArea/index.ts @@ -0,0 +1,316 @@ +const app = getApp() + +Component({ + properties: { + // 省份名称 + pname: { + type: String, + value: '', + }, + // 省份ID + pid: { + type: String, + value: '', + }, + // 城市名称 + cname: { + type: String, + value: '', + }, + // 城市ID + cid: { + type: String, + value: '', + }, + }, + observers: { + show(newVal: boolean) { + this.triggerEvent('show', newVal) + }, + }, + data: { + show: false, + word: '', + imageUrl: app.globalData.imageUrl, + Timestamp: app.globalData.Timestamp, + + active: 0, + ProvinceName: '', + ProvinceId: '', + CityName: '', + CityId: '', + proList: { + A: [ + { + name: '安徽省', + code: '340000', + }, + { + name: '澳门特别行政区', + code: '820000', + }, + ], + B: [ + { + name: '北京市', + code: '110000', + }, + ], + C: [ + { + name: '重庆市', + code: '500000', + }, + ], + F: [ + { + name: '福建省', + code: '350000', + }, + ], + G: [ + { + name: '甘肃省', + code: '620000', + }, + { + name: '广东省', + code: '440000', + }, + { + name: '广西壮族自治区', + code: '450000', + }, + { + name: '贵州省', + code: '520000', + }, + ], + H: [ + { + name: '海南省', + code: '460000', + }, + { + name: '河北省', + code: '130000', + }, + { + name: '河南省', + code: '410000', + }, + { + name: '黑龙江省', + code: '230000', + }, + { + name: '湖北省', + code: '420000', + }, + { + name: '湖南省', + code: '430000', + }, + ], + J: [ + { + name: '吉林省', + code: '220000', + }, + { + name: '江苏省', + code: '320000', + }, + { + name: '江西省', + code: '360000', + }, + ], + L: [ + { + name: '辽宁省', + code: '210000', + }, + ], + N: [ + { + name: '宁夏回族自治区', + code: '640000', + }, + { + name: '内蒙古自治区', + code: '150000', + }, + ], + Q: [ + { + name: '青海省', + code: '630000', + }, + ], + S: [ + { + name: '山东省', + code: '370000', + }, + { + name: '山西省', + code: '140000', + }, + { + name: '陕西省', + code: '610000', + }, + { + name: '上海市', + code: '310000', + }, + { + name: '四川省', + code: '510000', + }, + ], + T: [ + { + name: '天津市', + code: '120000', + }, + { + name: '台湾省', + code: '710000', + }, + ], + X: [ + { + name: '西藏自治区', + code: '540000', + }, + { + name: '新疆维吾尔自治区', + code: '650000', + }, + { + name: '香港特别行政区', + code: '810000', + }, + ], + Y: [ + { + name: '云南省', + code: '530000', + }, + ], + Z: [ + { + name: '浙江省', + code: '330000', + }, + ], + }, + area: [] as any, + range: [], + + scrollIntoView0: '', + scrollIntoView1: '', + }, + methods: { + handleShow() { + this.setData({ + show: true, + ProvinceName: this.data.pname || '', + ProvinceId: this.data.pid || '', + CityName: this.data.cname || '', + CityId: this.data.cid || '', + + scrollIntoView0: this.data.pid || '', + scrollIntoView1: this.data.cid || '', + }) + this.getArea() + }, + getArea() { + wx.ajax({ + method: 'GET', + url: '/js/area.json', + isJSON: true, + }).then((res) => { + this.setData({ + area: res, + }) + this.getRangeList() + }) + }, + handleItem(e: any) { + const { code, name } = e.currentTarget.dataset + this.setData({ + ProvinceId: code, + ProvinceName: name, + CityId: '', + CityName: '', + }) + this.getRangeList() + }, + handleChangeCity(e: any) { + const { code, name } = e.currentTarget.dataset + this.setData({ + CityId: code, + CityName: name, + }) + }, + handleShare() { + this.setData({ + show: false, + }) + this.triggerEvent('change', [ + { + label: this.data.ProvinceName, + value: this.data.ProvinceId, + }, + { + label: this.data.CityName, + value: this.data.CityId, + }, + ]) + }, + handleSelect(e) { + const { id } = e.currentTarget.dataset + this.setData({ + word: id, + scrollIntoView0: id, + }) + }, + getRangeList() { + const { area, ProvinceId } = this.data + if (!ProvinceId) return + const range = area.filter((item: any) => item.value == ProvinceId)[0].children + this.setData({ + range, + active: 1, + scrollIntoView0: '', + scrollIntoView1: `id${this.data.CityId}`, + }) + }, + handleProvince() { + this.setData({ + active: 0, + scrollIntoView0: this.data.word || `id${this.data.ProvinceId}`, + scrollIntoView1: '', + }) + }, + handleCity() { + const { ProvinceId } = this.data + if (!ProvinceId) { + wx.showToast({ + title: '请先选择省份', + icon: 'none', + }) + return + } + this.getRangeList() + }, + handleClose() { + this.setData({ + show: false, + }) + }, + }, +}) diff --git a/src/components/pickerArea/index.wxml b/src/components/pickerArea/index.wxml new file mode 100644 index 0000000..f4b30a8 --- /dev/null +++ b/src/components/pickerArea/index.wxml @@ -0,0 +1,81 @@ + + + + + + + 选择省份和地区 + + + + {{ProvinceName || '请选择省份'}} + + + + {{CityName || '请选择城市'}} + + + 确定 + + + + + + {{item.label}} + + + + + + + {{index}} + + + + + + + + + {{index===0 ? key : ''}} + {{item.name}} + + + + + + + + diff --git a/src/components/popup/index.json b/src/components/popup/index.json new file mode 100644 index 0000000..074f50b --- /dev/null +++ b/src/components/popup/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "@vant/weapp/popup/index" + } +} diff --git a/src/components/popup/index.scss b/src/components/popup/index.scss new file mode 100644 index 0000000..7363368 --- /dev/null +++ b/src/components/popup/index.scss @@ -0,0 +1,1259 @@ +.popup1 { + padding: 84rpx 60rpx; + background: linear-gradient(6deg, #ffffff 0%, #ffe6e4 100%); + max-height: 75vh; + overflow-y: auto; + overflow-x: hidden; + .logo { + display: block; + margin: 0 auto; + width: 164rpx; + height: 164rpx; + border-radius: 32rpx; + } + .title { + margin-top: 32rpx; + font-size: 48rpx; + color: #f23a2f; + font-weight: bold; + text-align: center; + } + .content { + margin-top: 30rpx; + font-size: 32rpx; + color: #010105; + line-height: 52rpx; + } + .check { + margin-top: 64rpx; + font-size: 32rpx; + color: rgba(1, 1, 5, 0.3); + display: flex; + .checkbox { + transform: scale(0.8); + } + .c-content { + padding-top: 5rpx; + line-height: 48rpx; + } + } + .link { + color: #f23a2f; + } + .btn1 { + margin-top: 40rpx; + height: 88rpx; + border-radius: 84rpx; + font-size: 32rpx; + color: #ffffff; + text-align: center; + line-height: 88rpx; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + } + .btn2 { + margin-top: 20rpx; + height: 88rpx; + text-align: center; + line-height: 88rpx; + font-size: 32rpx; + color: rgba(1, 1, 5, 0.4); + } +} + +.popup2 { + padding: 36rpx 34rpx 58rpx; + background-color: #fff; + .photo { + width: 492rpx; + height: 492rpx; + } + .content { + font-size: 40rpx; + color: rgba(0, 0, 0, 1); + text-align: center; + } +} + +.popup3 { + .icon { + position: relative; + z-index: 1; + margin: 0 auto; + display: block; + width: 144rpx; + height: 144rpx; + } + .container { + margin-top: -94rpx; + padding: 124rpx 32rpx 32rpx; + width: 604rpx; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + display: block; + margin: 0 auto; + text-align: center; + font-size: 36rpx; + font-weight: bold; + transform: skew(-10deg); + color: transparent; + background: linear-gradient(356deg, rgba(225, 36, 42, 1) 0%, rgba(255, 116, 64, 1) 100%); + background-clip: text; + -webkit-background-clip: text; + } + .card { + position: relative; + margin-top: 32rpx; + padding: 32rpx; + background: #ffffff; + display: flex; + gap: 16rpx; + justify-content: space-between; + box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(0, 0, 0, 0.05); + border-radius: 24rpx 24rpx 24rpx 24rpx; + &::after { + position: absolute; + bottom: -24rpx; + left: 32rpx; + content: ''; + width: 476rpx; + height: 24rpx; + background: #ffebea; + border-radius: 0 0 24rpx 24rpx; + } + .avatar { + flex-shrink: 0; + width: 92rpx; + height: 92rpx; + border-radius: 50%; + } + .wrap { + flex: 1; + .name { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } + .hostipal { + margin-top: 16rpx; + line-height: 28rpx; + .content { + display: inline; + margin-right: 8rpx; + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + } + .tag { + vertical-align: 2rpx; + display: inline-block; + font-size: 20rpx; + color: rgba(255, 255, 255, 1); + padding: 0 8rpx; + background-color: rgba(255, 186, 1, 1); + border-radius: 6rpx; + } + } + } + } + .btn { + margin-top: 66rpx; + height: 88rpx; + line-height: 88rpx; + font-size: 32rpx; + color: rgba(255, 255, 255, 1); + text-align: center; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx 84rpx 84rpx 84rpx; + } + } +} + +.popup4 { + .icon { + position: relative; + z-index: 1; + margin: 0 auto; + display: block; + width: 144rpx; + height: 144rpx; + } + .container { + margin-top: -94rpx; + padding: 124rpx 32rpx 32rpx; + width: 604rpx; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + display: block; + margin: 0 auto; + width: 146rpx; + height: 34rpx; + } + .content { + margin-top: 16rpx; + font-size: 32rpx; + color: rgba(161, 164, 172, 1); + text-align: center; + } + .btn { + margin-top: 32rpx; + height: 88rpx; + line-height: 88rpx; + font-size: 32rpx; + color: rgba(255, 255, 255, 1); + text-align: center; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx 84rpx 84rpx 84rpx; + } + } +} + +.popup5 { + .container { + padding: 36rpx 32rpx 32rpx; + width: 604rpx; + background: linear-gradient(4deg, #f7f7fa 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + display: block; + margin: 0 auto; + width: 242rpx; + height: 38rpx; + } + .row { + margin-top: 32rpx; + padding: 26rpx 32rpx; + display: flex; + gap: 22rpx; + align-items: center; + background: #ffffff; + border-radius: 16rpx 16rpx 16rpx 16rpx; + &:last-of-type { + margin-top: 24rpx; + } + .avatar { + flex-shrink: 0; + width: 96rpx; + height: 103rpx; + } + .wrap { + flex: 1; + line-height: 44rpx; + .name { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } + .content { + font-size: 32rpx; + color: rgba(161, 164, 172, 1); + } + } + .icon { + width: 40rpx; + height: 40rpx; + } + } + } +} + +.popup6 { + .container { + padding: 420rpx 0 0; + width: 610rpx; + height: 600rpx; + box-sizing: border-box; + text-align: center; + .title { + font-size: 40rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } + .content { + margin-top: 20rpx; + font-size: 36rpx; + color: rgba(1, 1, 5, 1); + } + } +} + +.popup7 { + .container { + padding: 64rpx 66rpx 136rpx; + background: linear-gradient(6deg, #ffffff 0%, #ffdcd9 100%); + .title { + font-size: 36rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + text-align: center; + } + .content { + margin-top: 24rpx; + font-size: 28rpx; + color: rgba(167, 169, 177, 1); + text-align: center; + } + .status-wrap { + margin-top: 28rpx; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 20rpx; + .s-item { + .icon { + display: block; + width: 192rpx; + height: 192rpx; + } + .s-content { + position: relative; + margin: 0 auto; + padding: 16rpx; + font-size: 28rpx; + color: rgba(137, 141, 151, 1); + background: rgba(247, 247, 250, 1); + line-height: 36rpx; + border-radius: 12rpx; + text-align: center; + border: 1px solid rgba(247, 247, 250, 1); + .radio { + display: none; + position: absolute; + right: -1px; + bottom: -1px; + width: 32rpx; + height: 32rpx; + border-radius: 12rpx 0 12rpx 0; + background-color: rgba(246, 74, 58, 1); + .r-icon { + width: 24rpx; + height: 24rpx; + } + } + } + &.active { + .s-content { + background-color: rgba(255, 242, 240, 1); + border-color: rgba(246, 74, 58, 1); + color: rgba(246, 74, 58, 1); + .radio { + display: block; + } + } + } + } + } + } +} + +.popup8 { + .bg { + position: relative; + margin: 0 auto; + width: 492rpx; + height: 434rpx; + .header { + position: absolute; + top: 0; + left: 0; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + gap: 12rpx; + .icon1 { + width: 36rpx; + height: 36rpx; + } + .icon2 { + width: 35rpx; + height: 43rpx; + } + .name { + font-size: 48rpx; + color: rgba(255, 255, 255, 1); + font-weight: bold; + line-height: 64rpx; + text-align: center; + } + } + } + .container { + margin-top: -180rpx; + position: relative; + padding: 178rpx 36rpx 36rpx; + width: 610rpx; + height: 390rpx; + box-sizing: border-box; + background: linear-gradient(180deg, #ffd6d4 0%, #ffffff 100%); + border-radius: 32rpx; + .icon { + position: absolute; + top: -110rpx; + left: 50%; + transform: translateX(-50%); + width: 280rpx; + height: 280rpx; + } + .title { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + text-align: center; + } + .footer { + margin-top: 48rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup9 { + .container { + width: 630rpx; + padding: 48rpx 32rpx 34rpx; + box-sizing: border-box; + background: linear-gradient(to top, #ffffff 0%, #ffffff 86%, #ffedeb 100%); + .title { + font-size: 36rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + text-align: center; + } + .list { + .list-item { + padding: 32rpx 0; + display: flex; + align-items: center; + gap: 24rpx; + border-bottom: 1px solid rgba(247, 247, 250, 1); + &:last-of-type { + border: none; + } + .radio { + flex-shrink: 0; + width: 32rpx; + height: 32rpx; + background-color: rgba(247, 247, 250, 1); + border-radius: 50%; + .r-icon { + width: 100%; + height: 100%; + border-radius: 50%; + } + } + .content { + font-size: 32rpx; + color: rgba(137, 141, 151, 1); + line-height: 1; + } + } + } + .footer { + margin-top: 48rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup10 { + .status { + position: relative; + z-index: 1; + display: block; + margin: 0 auto; + width: 144rpx; + height: 144rpx; + } + .container { + margin-top: -72rpx; + padding: 106rpx 0 0; + width: 604rpx; + height: 244rpx; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + display: block; + margin: 0 auto; + width: 306rpx; + height: 40rpx; + } + } +} + +.popup11 { + .container { + width: 630rpx; + padding: 48rpx 32rpx 34rpx; + box-sizing: border-box; + background: linear-gradient(to top, #ffffff 0%, #ffffff 86%, #ffedeb 100%); + .title { + font-size: 36rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + text-align: center; + } + .list { + margin-top: 20rpx; + max-height: 40vh; + overflow-y: ayto; + overflow-x: hidden; + .list-item { + padding: 32rpx 0; + display: flex; + align-items: center; + gap: 24rpx; + border-bottom: 1px solid rgba(247, 247, 250, 1); + &:last-of-type { + border: none; + } + .radio { + width: 32rpx; + height: 32rpx; + background-color: rgba(247, 247, 250, 1); + border-radius: 50%; + .r-icon { + width: 100%; + height: 100%; + border-radius: 50%; + } + } + .content { + font-size: 32rpx; + color: rgba(137, 141, 151, 1); + line-height: 1; + } + } + } + .texcarea { + padding: 24rpx 32rpx; + border-radius: 12rpx; + width: 100%; + height: 150rpx; + box-sizing: border-box; + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + background-color: rgba(247, 247, 250, 1); + } + .footer { + margin-top: 48rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup12 { + .icon { + position: relative; + z-index: 1; + margin: 0 auto; + display: block; + width: 144rpx; + height: 144rpx; + } + .container { + margin-top: -94rpx; + padding: 108rpx 32rpx 32rpx; + width: 604rpx; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + display: block; + margin: 0 auto; + width: 308rpx; + height: 34rpx; + } + .content { + margin-top: 16rpx; + font-size: 32rpx; + line-height: 48rpx; + color: rgba(161, 164, 172, 1); + text-align: center; + } + .tip { + margin-top: 24rpx; + padding: 10rpx 22rpx; + font-size: 28rpx; + color: rgba(246, 74, 58, 1); + text-align: center; + border-radius: 24rpx; + background-color: rgba(255, 231, 228, 1); + } + .footer { + margin-top: 32rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup13 { + .icon { + position: relative; + z-index: 1; + margin: 0 auto; + display: block; + width: 144rpx; + height: 144rpx; + } + .container { + margin-top: -94rpx; + padding: 106rpx 32rpx 32rpx; + width: 604rpx; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + display: block; + margin: 0 auto; + width: 495rpx; + height: 78rpx; + } + .card { + position: relative; + margin-top: 32rpx; + padding: 32rpx; + background: #ffffff; + display: flex; + gap: 16rpx; + justify-content: space-between; + box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(0, 0, 0, 0.05); + border-radius: 24rpx 24rpx 24rpx 24rpx; + &::after { + position: absolute; + bottom: -24rpx; + left: 32rpx; + content: ''; + width: 476rpx; + height: 24rpx; + background: #ffebea; + border-radius: 0 0 24rpx 24rpx; + } + .avatar { + flex-shrink: 0; + width: 92rpx; + height: 92rpx; + border-radius: 50%; + } + .wrap { + flex: 1; + .name { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } + .hostipal { + margin-top: 16rpx; + line-height: 28rpx; + .content { + margin-right: 8rpx; + display: inline-block; + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + } + .tag { + display: inline-block; + font-size: 20rpx; + color: rgba(255, 255, 255, 1); + padding: 0 8rpx; + background-color: rgba(255, 186, 1, 1); + border-radius: 6rpx; + } + } + } + } + .footer { + margin-top: 52rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup14 { + .container { + padding: 48rpx 32rpx 32rpx; + width: 604rpx; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + display: block; + margin: 0 auto; + width: 365rpx; + height: 34rpx; + } + .picker-content { + margin-top: 24rpx; + padding: 28rpx; + background-color: rgba(255, 255, 255, 1); + border-radius: 24rpx; + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + text-align: center; + &:empty::after { + color: rgba(161, 164, 172, 0.5); + content: attr(data-place); + } + } + .footer { + margin-top: 32rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup15 { + .icon { + position: relative; + z-index: 1; + margin: 0 auto; + display: block; + width: 144rpx; + height: 144rpx; + } + .container { + margin-top: -94rpx; + padding: 106rpx 32rpx 32rpx; + width: 604rpx; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + display: block; + margin: 0 auto; + width: 495rpx; + height: 78rpx; + } + .card { + position: relative; + margin-top: 32rpx; + padding: 32rpx; + background: #ffffff; + display: flex; + gap: 16rpx; + justify-content: space-between; + box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(0, 0, 0, 0.05); + border-radius: 24rpx 24rpx 24rpx 24rpx; + &::after { + position: absolute; + bottom: -24rpx; + left: 32rpx; + content: ''; + width: 476rpx; + height: 24rpx; + background: #ffebea; + border-radius: 0 0 24rpx 24rpx; + } + .avatar { + flex-shrink: 0; + width: 92rpx; + height: 92rpx; + border-radius: 50%; + } + .wrap { + flex: 1; + .name { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } + .hostipal { + margin-top: 16rpx; + line-height: 28rpx; + .content { + margin-right: 8rpx; + display: inline-block; + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + } + .tag { + vertical-align: 2rpx; + display: inline-block; + font-size: 20rpx; + color: rgba(255, 255, 255, 1); + padding: 0 8rpx; + background-color: rgba(255, 186, 1, 1); + border-radius: 6rpx; + } + } + } + } + .footer { + margin-top: 52rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup16 { + .container { + width: 630rpx; + padding: 48rpx 32rpx 34rpx; + box-sizing: border-box; + background: linear-gradient(to top, rgba(247, 247, 250, 1) 0%, rgba(247, 247, 250, 1) 86%, #ffedeb 100%); + .title { + display: block; + margin: 0 auto; + width: 320rpx; + height: 38rpx; + } + .list { + margin-top: 20rpx; + max-height: 50vh; + overflow-y: auto; + &::-webkit-scrollbar { + display: none; + } + .list-item { + position: relative; + margin-top: 32rpx; + padding: 32rpx; + background: rgba(255, 255, 255, 1); + display: flex; + align-items: center; + gap: 16rpx; + justify-content: space-between; + box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(0, 0, 0, 0.05); + border-radius: 24rpx 24rpx 24rpx 24rpx; + &:last-of-type { + border: none; + } + .radio { + width: 32rpx; + height: 32rpx; + background-color: rgba(247, 247, 250, 1); + border-radius: 50%; + .r-icon { + width: 100%; + height: 100%; + border-radius: 50%; + } + } + .avatar { + flex-shrink: 0; + width: 92rpx; + height: 92rpx; + border-radius: 50%; + } + .wrap { + flex: 1; + .name { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } + .hostipal { + margin-top: 16rpx; + line-height: 36rpx; + .content { + margin-right: 8rpx; + display: inline; + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + } + .tag { + vertical-align: 2rpx; + display: inline-block; + font-size: 20rpx; + color: rgba(255, 255, 255, 1); + padding: 0 8rpx; + background-color: rgba(255, 186, 1, 1); + border-radius: 6rpx; + } + } + } + } + } + .footer { + margin-top: 48rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup17 { + .icon { + position: relative; + z-index: 1; + margin: 0 auto; + display: block; + width: 144rpx; + height: 144rpx; + } + .container { + margin-top: -94rpx; + padding: 108rpx 32rpx 32rpx; + width: 604rpx; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + text-align: center; + } + .hostipal { + margin-top: 32rpx; + font-size: 36rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + text-align: center; + } + .address { + margin-top: 12rpx; + text-align: center; + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + } + .footer { + margin-top: 32rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup18 { + .container { + padding: 54rpx 32rpx 32rpx; + width: 590rpx; + height: 688rpx; + background: linear-gradient(5deg, #ffffff 0%, #ffe7e2 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title { + display: block; + margin: 0 auto; + width: 287rpx; + height: 98rpx; + } + .code-wrap { + margin: 40rpx auto 0; + padding-top: 60rpx; + width: 382rpx; + height: 430rpx; + .code { + margin: 0 auto; + display: block; + width: 296rpx; + height: 296rpx; + border-radius: 36rpx; + } + } + } +} + +.popup19 { + .badge { + position: relative; + z-index: 1; + margin: 0 auto; + display: block; + width: 194rpx; + height: 167rpx; + } + .container { + margin-top: -87rpx; + padding: 116rpx 36rpx 34rpx; + width: 610rpx; + height: 370rpx; + box-sizing: border-box; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + border: 2rpx solid #ffffff; + .title { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + line-height: 48rpx; + font-weight: bold; + text-align: center; + } + .footer { + margin-top: 32rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + +.popup20 { + .badge { + position: relative; + z-index: 1; + display: block; + margin: 0 auto; + width: 220rpx; + height: 278rpx; + } + .container { + margin-top: -150rpx; + padding: 166rpx 60rpx 48rpx; + background: linear-gradient(180deg, #ffe8e4 0%, #ffffff 56.28%, #ffffff 100%); + border-radius: 48rpx; + .title { + text-align: center; + font-size: 32rpx; + color: #010105; + } + .submit { + margin: 32rpx auto 0; + width: 440rpx; + height: 88rpx; + font-size: 32rpx; + color: #ffffff; + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(184deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx 84rpx 84rpx 84rpx; + } + } +} + +.close { + margin: 32rpx auto 0; + display: block; + width: 64rpx; + height: 64rpx; +} diff --git a/src/components/popup/index.ts b/src/components/popup/index.ts new file mode 100644 index 0000000..1e69b34 --- /dev/null +++ b/src/components/popup/index.ts @@ -0,0 +1,165 @@ +const app = getApp() + +Component({ + properties: { + show: { + type: Boolean, + value: false, + }, + type: String, + params: { + type: Object, + value() { + return {} + }, + }, + top: { + type: Number, + value: 50, + }, + }, + observers: { + show(val) { + if (val) { + if (this.data.type === 'TCenter') { + this.setData({ + TCenterId: this.data.params.hospitalId, + }) + } + if (this.data.type === 'inhibitors') { + this.setData({ + inhibitorsId: this.data.params.drugId || '', + inhibitorsName: this.data.params.drugName || '', + inhibitorsContent: this.data.params.content || '', + }) + } + if (this.data.type === 'publicCard') { + this.getCodeImg() + } + } + }, + }, + + data: { + popup1Check1: false, + + TCenterId: '', + + inhibitorsId: '', + inhibitorsName: '', + inhibitorsContent: '', + + selectDoctorId: '', + + codeImg: '', + + imageUrl: app.globalData.imageUrl, + Timestamp: app.globalData.Timestamp, + }, + methods: { + handleOk() { + const { type, inhibitorsId, inhibitorsName, inhibitorsContent } = this.data + if (type === 'argument' && !this.data.popup1Check1) { + wx.showToast({ + title: '请同意隐私政策', + icon: 'none', + }) + return + } + if (type === 'TCenter') { + if (!this.data.TCenterId) { + wx.showToast({ + title: '请选择治疗中心', + icon: 'none', + }) + return + } + this.triggerEvent('ok', { id: this.data.TCenterId }) + return + } + + if (type === 'inhibitors') { + if (!inhibitorsId) { + wx.showToast({ + title: '请选择抑制剂', + icon: 'none', + }) + return + } + if (inhibitorsName === '其他' && !inhibitorsContent) { + wx.showToast({ + title: '请填写其他抑制剂', + icon: 'none', + }) + return + } + + this.triggerEvent('ok', { id: inhibitorsId, name: inhibitorsName, content: inhibitorsContent }) + return + } + + if (type === 'selectDoctor') { + if (!this.data.selectDoctorId) { + wx.showToast({ + title: '请选择医生', + icon: 'none', + }) + return + } + this.triggerEvent('ok', { id: this.data.selectDoctorId }) + return + } + this.triggerEvent('ok') + }, + handleCancel() { + this.triggerEvent('cancel') + }, + routerTo(e: any) { + const { url } = e.currentTarget.dataset + wx.navigateTo({ + url, + }) + }, + handlePopup1Check1() { + if (this.data.popup1Check1) { + app.mpBehavior({ PageName: 'BTN_PATIENTPRIVACY' }) + } + }, + handleSelectStatus(e) { + const { status } = e.currentTarget.dataset + this.triggerEvent('ok', { type: 'selectStatusComplete', status }) + }, + handleSelectTCenter(e) { + const { id } = e.currentTarget.dataset + this.setData({ + TCenterId: id, + }) + }, + handleSelectDoctor(e) { + const { id } = e.currentTarget.dataset + this.setData({ + selectDoctorId: id, + }) + }, + handleSelectInhibitors(e) { + const { id, name } = e.currentTarget.dataset + this.setData({ + inhibitorsId: id, + inhibitorsName: name, + }) + }, + getCodeImg() { + wx.ajax({ + method: 'GET', + url: '?r=wtx/common/get-channel-wx-code', + data: { + ChannelType: 2, + }, + }).then((res) => { + this.setData({ + codeImg: res, + }) + }) + }, + }, +}) diff --git a/src/components/popup/index.wxml b/src/components/popup/index.wxml new file mode 100644 index 0000000..2f6ff03 --- /dev/null +++ b/src/components/popup/index.wxml @@ -0,0 +1,43 @@ + + + + 欢迎加入“愈见守护” + + 亲爱的用户,为了更好地向您提供平台服务保护您的权益,我们完善了 + 《个人信息及隐私政策》 + ,请您仔细阅读。一旦您开始使用,即表示您已充分理解并同意协议内容。 + + + + + 我特此同意 + 《个人信息及隐私政策》 + 规定收集我的相关敏感个人信息 + + + 同意并继续 + 不同意 + + + + diff --git a/src/components/uploadFile/index.js b/src/components/uploadFile/index.js new file mode 100644 index 0000000..7a38772 --- /dev/null +++ b/src/components/uploadFile/index.js @@ -0,0 +1,289 @@ +// components/uploadFile/index.js +const app = getApp() +Component({ + /** + * 组件的属性列表 + */ + properties: { + // 是否可以上传 + upload: { + type: Boolean, + value: true, + }, + // 是否可以删除 + delete: { + type: Boolean, + value: true, + }, + // 附件data + fileList: { + type: Array, + value: [], + }, + // 最大上传数量, -1为不限制 + maxNum: { + type: Number, + value: -1, + }, + isSlot: { + type: Boolean, + value: false, + }, + count: { + type: Number, + value: 0, + }, + }, + + /** + * 组件的初始数据 + */ + data: { + Timestamp: app.globalData.Timestamp, + imageUrl: app.globalData.imageUrl, + + show: false, + actions: [ + { + id: 1, + name: '选择视频或图片', + }, + { + id: 2, + name: '选择聊天文件', + }, + ], + }, + + /** + * 组件的方法列表 + */ + methods: { + viewFile(e) { + const { index } = e.currentTarget.dataset + const { fileList } = this.properties + const params = fileList[index] + if (['image', 'video'].includes(params.fileType)) { + let sources = [] + + fileList.forEach((item) => { + let obj = {} + if (item.fileType === 'image') { + obj = { + url: item.url, + type: item.fileType, + poster: item.url, + } + } + if (item.fileType === 'video') { + obj = { + url: item.vidoeUrl, + type: item.fileType, + poster: item.url, + } + } + sources.push(obj) + }) + wx.previewMedia({ + current: index, + sources: sources, + }) + } else if (params.fileType !== 'audio') { + wx.downloadFile({ + url: params.url, + success(res) { + wx.openDocument({ + filePath: res.tempFilePath, + showMenu: true, + fail() { + wx.showToast({ + title: '该文件无法预览', + icon: 'none', + }) + }, + }) + }, + }) + } + }, + deleteFile(e) { + const { index, item } = e.currentTarget.dataset + this.triggerEvent('deleteFile', { + index, + item, + }) + }, + downFile(e) { + const { item } = e.currentTarget.dataset + wx.showToast({ + title: '正在下载,请稍后...', + icon: 'none', + }) + wx.downloadFile({ + url: item.fileUrl, + success(res) { + if (item.type === 'image') { + wx.saveImageToPhotosAlbum({ + filePath: res.tempFilePath, + success: () => { + wx.showToast({ + title: '下载成功', + }) + }, + }) + } else if (item.type === 'video') { + wx.saveVideoToPhotosAlbum({ + filePath: res.tempFilePath, + success: () => { + wx.showToast({ + title: '下载成功', + }) + }, + }) + } else { + wx.showToast({ + title: '附件请到pc端下载!', + icon: 'none', + }) + } + }, + }) + }, + uploadFile(item) { + return new Promise((resolve, resject) => { + let url = `${app.globalData.upFileUrl}?r=file-service/upload-` + if (item.type === 'image') { + url += 'img' + } + if (item.type === 'video') { + url += 'video' + } + if (item.type === 'file') { + url += 'doc' + } + wx.uploadFile({ + filePath: item.tempFilePath, + name: 'file', + url: url, + success: (res) => { + let data = JSON.parse(res.data) + let expandJson = { + name: item.name, + fileType: item.fileType, + } + if (item.type === 'image') { + expandJson.url = data.data.Url + } + if (item.type === 'video') { + expandJson.url = data.data.SnapshotUrl + expandJson.videoUrl = data.data.Url + expandJson.duration = data.data.Duration + } + if (item.type === 'file') { + expandJson.url = data.data.Url + } + resolve(expandJson) + }, + fail() { + resject() + }, + }) + }) + }, + GetExtensionFileName(pathfilename) { + var reg = /(\\+)/g + var pString = pathfilename.replace(reg, '#') //用正则表达式来将\或\\替换成# + var arr = pString.split('#') // 以“#”为分隔符,将字符分解为数组 例如 D Program Files bg.png + var lastString = arr[arr.length - 1] //取最后一个字符 + var arr2 = lastString.split('.') // 再以"."作为分隔符 + return arr2[arr2.length - 1] //将后缀名返回出来 + }, + upFile(data) { + wx.showLoading({ + title: '正在上传', + }) + let apiArr = [] + data.map((e) => { + apiArr.push(this.uploadFile(e)) + }) + Promise.all(apiArr) + .then((res) => { + wx.hideLoading({ + success: () => { + this.triggerEvent('setData', res) + }, + }) + }) + .catch(() => { + wx.showToast({ + title: '上传失败', + icon: 'error', + }) + }) + }, + handleAction() { + this.setData({ + show: true, + }) + }, + onSelect(e) { + const { id } = e.currentTarget.dataset + if (id == 1) { + this.setData({ + show: false, + }) + this.selectMedia() + } + if (id == 2) { + this.setData({ + show: false, + }) + this.selectFiles() + } + }, + selectMedia() { + let { fileList, maxNum, count = 0 } = this.properties + if (maxNum >= 0 && count == 0) { + count = maxNum - fileList.length + } + wx.chooseMedia({ + mediaType: ['image', 'video'], + count: count, + sourceType: ['album', 'camera'], + sizeType: ['original'], + success: (res) => { + res.tempFiles.map((e) => { + e.name = e.tempFilePath + e.extend = this.GetExtensionFileName(e.tempFilePath) + e.tempFilePath = e.tempFilePath + e.type = e.fileType + e.fileType = e.fileType + }) + this.upFile(res.tempFiles) + }, + }) + }, + selectFiles() { + let { fileList, maxNum, count = 0 } = this.properties + if (maxNum >= 0 && count == 0) { + count = maxNum - fileList.length + } + wx.chooseMessageFile({ + count: count, + type: 'file', + extension: ['doc', 'docx', 'pdf', 'xlsx', 'xls', 'ppt', 'pptx'], + success: (res) => { + res.tempFiles.map((e) => { + e.type = 'file' + e.tempFilePath = e.path + e.fileType = this.GetExtensionFileName(e.path) + }) + this.upFile(res.tempFiles) + }, + }) + }, + onClose() { + this.setData({ show: false }) + }, + }, +}) diff --git a/src/components/uploadFile/index.json b/src/components/uploadFile/index.json new file mode 100644 index 0000000..5e9e3fd --- /dev/null +++ b/src/components/uploadFile/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "van-image": "@vant/weapp/image/index", + "van-action-sheet": "@vant/weapp/action-sheet/index", + "van-popup": "@vant/weapp/popup/index" + } +} diff --git a/src/components/uploadFile/index.scss b/src/components/uploadFile/index.scss new file mode 100644 index 0000000..270aae0 --- /dev/null +++ b/src/components/uploadFile/index.scss @@ -0,0 +1,115 @@ +/* components/uploadFile/index.wxss */ +.upload-list { + display: grid; + grid-template-columns: repeat(3, 194rpx); + gap: 18rpx; + + .item { + height: 194rpx; + position: relative; + line-height: 0; + background-color: rgba(247, 247, 250, 1); + border-radius: 12rpx; + display: flex; + align-items: center; + justify-content: center; + .item_mask { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + display: flex; + justify-content: center; + align-items: center; + .item_mask_icon { + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + width: 48rpx; + height: 48rpx; + } + .clear { + position: absolute; + right: 0; + top: 0; + width: 40rpx; + height: 40rpx; + z-index: 9; + background-color: rgba(4, 4, 4, 0.31); + border-radius: 0 16rpx; + color: #fff; + font-size: 28rpx; + display: flex; + align-items: center; + justify-content: center; + } + .order { + position: absolute; + bottom: 8rpx; + left: 8rpx; + width: 40rpx; + height: 40rpx; + border-radius: 78rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 28rpx; + color: rgba(255, 255, 255, 1); + background: var(--, linear-gradient(270deg, #439fc7 0%, #2f82a9 100%)); + box-sizing: border-box; + } + } + .image { + width: 100%; + height: 100%; + border-radius: 16rpx; + } + .sub-image { + width: 104rpx; + height: 104rpx; + } + } + + .btn { + width: 194rpx; + height: 194rpx; + border: 1px dashed rgba(203, 213, 225, 1); + border-radius: 16rpx; + display: flex; + align-items: center; + justify-content: center; + background-color: rgba(252, 254, 255, 1); + box-sizing: border-box; + .icon { + width: 84rpx; + height: 84rpx; + } + } +} + +.popup { + padding: 102rpx 48rpx calc(102rpx + env(safe-area-inset-bottom)); + display: flex; + align-items: center; + gap: 30rpx; + justify-content: space-between; + background-color: rgba(247, 247, 250, 1); + .item { + padding: 32rpx; + flex: 1; + border-radius: 36rpx; + background-color: #fff; + text-align: center; + .title { + margin-top: 16rpx; + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + } + .icon { + width: 136rpx; + height: 136rpx; + } + } +} diff --git a/src/components/uploadFile/index.wxml b/src/components/uploadFile/index.wxml new file mode 100644 index 0000000..ef31db0 --- /dev/null +++ b/src/components/uploadFile/index.wxml @@ -0,0 +1,50 @@ + + + + + + + + + + + + {{index+1}} + + + + + + + + + + + + + + + + + 选择视频或图片 + + + + 选择聊天文件 + + + + diff --git a/src/custom-tab-bar/index.json b/src/custom-tab-bar/index.json new file mode 100644 index 0000000..4573acb --- /dev/null +++ b/src/custom-tab-bar/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "van-tabbar": "@vant/weapp/tabbar/index", + "van-tabbar-item": "@vant/weapp/tabbar-item/index" + } +} diff --git a/src/custom-tab-bar/index.scss b/src/custom-tab-bar/index.scss new file mode 100644 index 0000000..916ca02 --- /dev/null +++ b/src/custom-tab-bar/index.scss @@ -0,0 +1,25 @@ +/* custom-tab-bar/index.wxss */ + +.custom { + position: relative; + z-index: 1; + margin-top: -38rpx; + width: 126rpx; + height: 116rpx; + filter: drop-shadow(0 12rpx 24rpx rgba(47, 130, 169, 0.25)); + + .icon { + display: block; + width: 100%; + height: 100%; + } +} +.tab-item { + .name { + font-size: 24rpx; + color: rgba(148, 163, 184, 1); + &.active { + color: rgba(47, 130, 169, 1); + } + } +} diff --git a/src/custom-tab-bar/index.ts b/src/custom-tab-bar/index.ts new file mode 100644 index 0000000..80564b1 --- /dev/null +++ b/src/custom-tab-bar/index.ts @@ -0,0 +1,65 @@ +import { getCurrentPageUrl } from '@/utils/util' +const app = getApp() + +Component({ + properties: {}, + data: { + imageUrl: app.globalData.imageUrl, + Timestamp: app.globalData.Timestamp, + + isChild: 0, + active: 0, + list: [ + { + pagePath: '/pages/index/index', + text: '首页', + icon: 'tabbar1-1', + iconActive: 'tabbar1-1-active', + }, + { + pagePath: '/pages/wall/index', + text: '交流墙', + icon: 'tabbar1-2', + iconActive: 'tabbar1-2-active', + }, + { + pagePath: '/pages/knowledge/index', + custom: true, + }, + { + pagePath: '/pages/health/index', + text: '健康管理', + icon: 'tabbar1-2', + iconActive: 'tabbar1-2-active', + }, + { + pagePath: '/pages/my/index', + text: '我的', + icon: 'tabbar1-3', + iconActive: 'tabbar1-3-active', + }, + ], + }, + observers: {}, + lifetimes: { + ready() { + const pagePath = getCurrentPageUrl() + const active = this.data.list.findIndex((item) => item.pagePath === pagePath) + this.setData({ + active, + anyWhere: app.globalData.anyWhere, + }) + }, + }, + methods: { + onChange() {}, + handleNav(e) { + const { index } = e.currentTarget.dataset + const { list } = this.data + const pagePath = list[index].pagePath + wx.switchTab({ + url: pagePath, + }) + }, + }, +}) diff --git a/src/custom-tab-bar/index.wxml b/src/custom-tab-bar/index.wxml new file mode 100644 index 0000000..bf9cfe4 --- /dev/null +++ b/src/custom-tab-bar/index.wxml @@ -0,0 +1,21 @@ + + + + + + + {{item.text}} + + + diff --git a/src/doc/pages/doc1/index.json b/src/doc/pages/doc1/index.json new file mode 100644 index 0000000..2be56ec --- /dev/null +++ b/src/doc/pages/doc1/index.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "个人信息及隐私政策", + "usingComponents": { + "mp-html": "mp-html" + } +} diff --git a/src/doc/pages/doc1/index.scss b/src/doc/pages/doc1/index.scss new file mode 100644 index 0000000..0b69ddc --- /dev/null +++ b/src/doc/pages/doc1/index.scss @@ -0,0 +1,3 @@ +.page{ + padding: 0 40rpx; +} diff --git a/src/doc/pages/doc1/index.ts b/src/doc/pages/doc1/index.ts new file mode 100644 index 0000000..bd632eb --- /dev/null +++ b/src/doc/pages/doc1/index.ts @@ -0,0 +1,10 @@ +const _app = getApp(); + +Page({ + data: { + doc:`


生效日期:2025年6月

【血友病B患者支持项目“愈见守护”】(以下简称“我们”)非常注重保护用户(“您”)的个人信息及隐私。我们希望通过本《个人信息及隐私保护政策》(以下简称本“隐私政策”或本“政策”)向您清晰地介绍在使用我们的产品/服务时,我们如何处理您的个人信息的方式。

我们提供的服务包括愈见守护医生端小程序、微信公众号向您提供的各项服务(以下简称“本服务”),适用本隐私政策。

请您在使用本服务前,务必仔细阅读并充分理解本隐私政策。我们将逐一说明我们收集您的个人信息的类型及其对应的用途,以便您了解我们针对某一特定功能或服务所收集的具体个人信息的类别、使用理由及收集方式。

本隐私政策将帮您了解以下信息:

1. 我们如何收集和使用您的个人信息

2. 我们基于何种目的或场景,收集和使用您的个人信息

3. 我们如何使用Cookie等同类技术

4. 我们如何委托处理、共享、转让、公开披露您的个人信息

5. 我们如何保存、保护您的个人信息

6. 您查阅、更正、删除、注销个人信息的权利

7. 未成年人保护

8. 本隐私政策变更及通知

9. 如何联系我们

10. 名词定义和解释

一、 我们如何收集和使用您的个人信息

(一) 我们会根据本隐私政策的约定,为实现本平台服务而对所收集的个人信息进行使用。

(二) 我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:合法、正当、必要和诚信原则,目的明确和直接相关原则,公开透明原则、准确性原则、问责性原则、数据安全原则等。同时,我们承诺采取必要的措施保障您的个人信息的安全。

二、 我们基于何种目的或场景,收集和使用您的个人信息

出于本隐私政策所描述的目的或场景,当您使用本平台服务时,我们可能会收集有关您的如下个人信息。若您不同意提供下列信息,有权拒绝提供或撤回同意,但您可能无法继续使用本平台的全部或部分服务:

(一) 注册登录账号

1. 当您关注愈见守护微信公众号时,我们会收集您的微信openID以及您关注、取消关注本公众号的行为数据,以便我们识别用户身份。

2. 当您登录使用愈见守护小程序时,您需要输入您的手机号码,通过手机号码加短信验证码的方式进行登录;或通过您的微信openID获取手机号进行手机号快捷登录。

(二) 向您提供本平台服务

1. 注册成为用户:

为完成创建账号,您需提供您的姓名、手机号码,年龄,所在地,完成账号注册,您后续可以自主在【我的】-【个人信息】中填写或更正您的信息;

2. 常见问题解答

平台提供您的常见问题解答功能,当您点击特定问题后,系统会通过已有问答库自动回答,帮助您提供知识内容;

3. 基因全知道:教育服务:

我们为您提供疾病知识服务,我们将记录您在使用本服务期间的内容浏览状态;

4. 预报名

平台为您提供患者教育活动的的报名服务,您需提供您的姓名、年龄、所在地、

5. 医患互动

您在绑定专属医生后,您可使用医患互动服务。您可以从统提供的标准问答库内选择问题发送给医生,并接收医生从标准问答库内选择的问答回复;

(三) 如果您对我们收集和使用您的个人信息的法律依据有任何疑问或需要提供进一步的信息,请通过本隐私政策第九章节「如何联系我们」提供的联系方式与我们联系。

(四) 本平台向您提供的服务可能将不断更新和发展,如果您选择使用本隐私政策中尚未列明的其他功能或服务时,我们会在收集您的个人信息前通过推送通知、更为显著的弹窗等方式向您详细说明信息收集的目的、方式、范围并征求您的同意。

三、 我们如何使用小程序原生能力技术

(一) 依托于微信小程序提供的原生能力

为了帮助提升您的产品体验,我们会使用微信提供的账号体系能力来避免您重复登录。所有的信息获取都会经过您的授权同意才会使用。

四、 我们如何委托处理、共享、转让、公开披露您的个人信息

(一) 委托处理

我们会聘请服务提供商来协助我们提供客户支持。对我们委托的公司、组织和个人,我们会要求他们按照本个人信息保护政策来处理您的个人信息。

(二) 共享

我们不会将任何个人信息出售给第三方。我们不会向愈见守护小程序、微信公众号运营公司以外的任何公司、组织和个人提供您的个人信息,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下共享:获得您的单独同意后,我们会与我们所披露的有关个人信息处理者共享您的相关个人信息;

(三) 转让

我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下转让:获得您的单独同意后,我们会向我们所披露的有关个人信息处理者转让您的相关个人信息;

(四) 公开披露

我们仅会在获得您明确同意后,公开披露您的个人信息。

五、 我们如何保存、保护您的个人信息

(一) 保存地点

我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前,我们不会将上述信息传输至其他地区。

(二) 保存时间

我们会采取一切合理可行的措施,确保未收集无关的个人信息。 愈见守护小程序、微信公众号中个人信息储存必要期限是愈见守护小程序、微信公众号为您终止服务后3年。超出必要期限后,我们将对您的个人信息进行删除或匿名化处理,但法律法规另有规定的除外。

(三) 保护措施

我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。我们会部署访问控制机制,确保只有授权人员才可访问个人信息。

(四) 安全事件处理

在发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您。

六、 您查阅、更正、删除、注销个人信息的权利

我们非常重视并保护您对于个人信息处理活动中的知情权、决定权、限制权、拒绝权等权利,并为您提供了行使在个人信息处理活动中相关权利的方法。

(一) 查阅权和更正权

除法律法规规定的情形除外,您有权随时查阅和更正您的个人信息,您可以通过在本平台的【我的】-【个人信息】查阅或更正您的个人信息,包括手机号、姓名、头像等信息。

(二) 删除权

1. 您可通过微信的缓存清理功能,删除您在本平台的缓存记录提供的相关个人信息。

2. 如果您需要删除您在使用本平台过程中产生的其他个人信息,在您的合理要求并经验证核实您的身份后,我们会处理您的请求。您可以通过本隐私政策「第九章节、如何联系我们」方式向我们进行反馈。

3. 在以下情形中,您可以向我们提出删除个人信息的请求:

(1) 我们永久不再为您提供产品或服务;

(2) 您撤回对我们收集、使用您的个人信息的同意;

(3) 我们处理个人信息的行为违反法律、行政法规;

(4) 我们处理个人信息的行为违反了与您的约定;

(5) 您注销了用户帐号;

(6) 法律、行政法规规定的其他情形。

4. 您同意并理解,您删除某些您已提交的个人信息可能导致您无法使用本平台的部分或者全部服务。

(三) 注销权

如您希望注销本平台及服务,您可以通过发送邮件到supportpr@hbraas.com进行账号的注销。

一旦您注销账户,我们将停止为您提供服务。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。当您选择注销账户后,我们将停止为您提供服务,并依据您的要求,删除您的个人信息。

七、 未成年人保护

我们非常重视对未成年人个人信息的保护,本平台的注册用户仅包括供医疗卫生专业人士。不涉及18周岁以下的未成年人注册为本平台账户。若您是未成年人,不得予以注册。

八、 本隐私政策变更及通知

(一) 为了向您提供更好的功能与/或服务,我们的产品/服务将不时更新与变化,因此,我们将适时修订及变更隐私政策。

(二) 未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。我们会在本页面上发布对本政策所做的任何变更。

(三) 对于重大变更,我们可能还会提供本平台公告、推送通知或更为显著的弹窗等方式,向您发送隐私政策的最新版本。

九、 如何联系我们

若您对本服务有任何疑问、意见或建议,您可以通过以下方式与我们联系:

邮箱:supportpr@hbraas.com

一般情况下,我们将在7天内回复。

十、 名词定义与解释

本平台:通过电子化信息平台运营和提供的数字化产品和服务,电子化信息平台包括但不限于 愈见守护小程序、微信公众号提供数字化产品和服务的系统或平台等,具体以用户实际注册、访问或使用为准(对于该等数字化产品和服务,本协议统称为“电子化信息平台”或“平台”或“本平台”)

个人信息:以电子或者其他方式记录的与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如姓名等;

OPENID:OPENID是微信用户在注册公众号后的唯一独立加密用户身份标识,此处OPENID是指本平台用户注册后的唯一加密用户身份标识。

` + }, + onLoad() {}, +}); + +export {} diff --git a/src/doc/pages/doc1/index.wxml b/src/doc/pages/doc1/index.wxml new file mode 100644 index 0000000..68e15cb --- /dev/null +++ b/src/doc/pages/doc1/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/src/doc/pages/doc2/index.json b/src/doc/pages/doc2/index.json new file mode 100644 index 0000000..41ae86a --- /dev/null +++ b/src/doc/pages/doc2/index.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "个人信息共享知情同意书", + "usingComponents": { + "mp-html": "mp-html" + } +} diff --git a/src/doc/pages/doc2/index.scss b/src/doc/pages/doc2/index.scss new file mode 100644 index 0000000..0b69ddc --- /dev/null +++ b/src/doc/pages/doc2/index.scss @@ -0,0 +1,3 @@ +.page{ + padding: 0 40rpx; +} diff --git a/src/doc/pages/doc2/index.ts b/src/doc/pages/doc2/index.ts new file mode 100644 index 0000000..3937c2b --- /dev/null +++ b/src/doc/pages/doc2/index.ts @@ -0,0 +1,10 @@ +const _app = getApp(); + +Page({ + data: { + doc:`
个人信息共享知情同意书

【血友病B患者支持项目“愈见守护”】(以下简称“本平台”)非常注重保护用户(“您”)的个人信息及隐私。为保障您的合法权益,请您在使用本平台过程中,仔细阅读并确认您已充分理解并同意本知情同意书的所有内容。

一、信息共享目的

本平台旨在为血友病 B 患者提供便捷、高效的健康管理服务。将您的个人信息共享给您主动绑定的专属医生,是为了使医生能够更全面、及时地了解您的健康状况,包括但不限于病史、诊断进展、检查项目等。

二、共享信息范围

1. 基本个人信息:您注册本平台时填写的姓名、年龄、入组日期。

2. 健康档案信息:您在平台上录入或系统自动记录的疾病诊断信息、检查检验项目、治疗过程进展、就诊记录等。

三、信息共享主体

仅当您在本平台主动完成专属医生绑定操作后,您的上述个人信息将被共享给您绑定的专属医生。本平台承诺不会将您的个人信息共享给未经您主动绑定的任何第三方。

四、信息接收方的责任与义务

您绑定的专属医生需严格遵守国家相关法律法规及医疗行业规范,对获取的您的个人信息予以保密。在使用您的个人信息时,仅可将其用于为您提供医疗服务相关目的,不得用于任何其他商业或非医疗用途,不得泄露、篡改、损毁您的个人信息。如因专属医生违反相关规定导致您的个人信息泄露或遭受其他损害,其将承担相应的法律责任。

五、您的权利

1. 自主选择权:您有权自主决定是否在本平台绑定专属医生,从而决定是否将个人信息进行共享。若您选择不绑定专属医生,您仍可正常使用本平台除与医生信息交互相关的其他功能。

2. 信息查询与更正权:您可随时登录本平台,查询已共享给专属医生的个人信息,并对其中存在错误或需要更新的信息进行更正。

3. 撤回同意权:您可以通过本平台提供的“解绑”功能,随时撤回您对专属医生共享个人信息的同意。撤回同意后,专属医生将无法再查看您的信息。

六、信息安全保障

本平台高度重视您的个人信息安全,采取了一系列合理且必要的技术与管理措施,包括但不限于数据加密、访问控制等,以防止您的个人信息被泄露、篡改或丢失。

七、其他条款

1. 本知情同意书的签订、生效、履行、解释及争议解决均适用中华人民共和国法律。

2. 如您在使用本平台过程中与我们就本知情同意书或个人信息共享事宜发生任何争议,双方应首先友好协商解决;协商不成的,任何一方均有权向本平台运营方所在地有管辖权的人民法院提起诉讼。

3. 本平台有权根据法律法规的变化、业务发展需求等情况对本知情同意书进行修订。修订后的内容将通过在本平台显著位置发布公告等方式通知您。若您继续使用本平台及相关服务,即视为您已充分阅读、理解并接受修订后的内容。

` + }, + onLoad() {}, +}); + +export {} diff --git a/src/doc/pages/doc2/index.wxml b/src/doc/pages/doc2/index.wxml new file mode 100644 index 0000000..68e15cb --- /dev/null +++ b/src/doc/pages/doc2/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/src/doc/pages/doc3/index.json b/src/doc/pages/doc3/index.json new file mode 100644 index 0000000..0af6714 --- /dev/null +++ b/src/doc/pages/doc3/index.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "个人信息及隐私保护政策", + "usingComponents": { + "mp-html": "mp-html" + } +} diff --git a/src/doc/pages/doc3/index.scss b/src/doc/pages/doc3/index.scss new file mode 100644 index 0000000..0b69ddc --- /dev/null +++ b/src/doc/pages/doc3/index.scss @@ -0,0 +1,3 @@ +.page{ + padding: 0 40rpx; +} diff --git a/src/doc/pages/doc3/index.ts b/src/doc/pages/doc3/index.ts new file mode 100644 index 0000000..5f3a94f --- /dev/null +++ b/src/doc/pages/doc3/index.ts @@ -0,0 +1,10 @@ +const _app = getApp(); + +Page({ + data: { + doc:`

个人信息及隐私保护政策

生效日期:2025年6月

【血友病B患者支持项目“愈见守护”】(以下简称“我们”)非常注重保护用户(“您”)的个人信息及隐私。我们希望通过本《个人信息及隐私保护政策》(以下简称本“隐私政策”或本“政策”)向您清晰地介绍在使用我们的产品/服务时,我们如何处理您的个人信息的方式。

我们提供的服务包括愈见守护医生端小程序、微信公众号向您提供的各项服务(以下简称“本服务”),适用本隐私政策。

请您在使用本服务前,务必仔细阅读并充分理解本隐私政策。我们将逐一说明我们收集您的个人信息的类型及其对应的用途,以便您了解我们针对某一特定功能或服务所收集的具体个人信息的类别、使用理由及收集方式。

本隐私政策将帮您了解以下信息:

1. 我们如何收集和使用您的个人信息

2. 我们基于何种目的或场景,收集和使用您的个人信息

3. 我们如何使用Cookie等同类技术

4. 我们如何委托处理、共享、转让、公开披露您的个人信息

5. 我们如何保存、保护您的个人信息

6. 您查阅、更正、删除、注销个人信息的权利

7. 未成年人保护

8. 本隐私政策变更及通知

9. 如何联系我们

10. 名词定义和解释

一、 我们如何收集和使用您的个人信息

(一) 我们会根据本隐私政策的约定,为实现本平台服务而对所收集的个人信息进行使用。

(二) 我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:合法、正当、必要和诚信原则,目的明确和直接相关原则,公开透明原则、准确性原则、问责性原则、数据安全原则等。同时,我们承诺采取必要的措施保障您的个人信息的安全。

二、 我们基于何种目的或场景,收集和使用您的个人信息

出于本隐私政策所描述的目的或场景,当您使用本平台服务时,我们可能会收集有关您的如下个人信息。若您不同意提供下列信息,有权拒绝提供或撤回同意,但您可能无法继续使用本平台的全部或部分服务:

(一) 注册登录账号

1. 当您关注愈见守护微信公众号时,我们会收集您的微信openID以及您关注、取消关注本公众号的行为数据,以便我们识别用户身份。

2. 当您登录使用愈见守护小程序时,您需要输入您的手机号码,通过手机号码加短信验证码的方式进行登录;或通过您的微信openID获取手机号进行手机号快捷登录。

(二) 向您提供本平台服务

1. 注册成为用户:

为完成创建账号,您需提供您的姓名、手机号码,年龄,所在地,完成账号注册,您后续可以自主在【我的】-【个人信息】中填写或更正您的信息;

2. 常见问题解答

平台提供您的常见问题解答功能,当您点击特定问题后,系统会通过已有问答库自动回答,帮助您提供知识内容;

3. 基因全知道:教育服务:

我们为您提供疾病知识服务,我们将记录您在使用本服务期间的内容浏览状态;

4. 预报名

平台为您提供咨询基因诊疗服务的报名服务,您需提供您的姓名、年龄、所在地、

5. 医患互动

您在绑定专属医生后,您可使用医患互动服务。您可以从统提供的标准问答库内选择问题发送给医生,并接收医生从标准问答库内选择的问答回复;

6. 健康档案

我们为您提供专属的健康诊疗计划旅程,您可以了解健康诊疗过程中需要完成的检查内容及健康档案记录功能。您可以提交本人的病史信息包括确诊时间、体重、病情情况、既往病史信息、出血情况记录等信息;您还可以提交本人的检查项目及检查报告,我们将为您生成完整的健康档案;

7. 随访计划

基于您主动录入的注射日期,平台会自动帮您生成随访计划日历,您可以了解后续定期完成复诊的日期信息及需完成的检查项目并上传本人的检查报告;

(三) 如果您对我们收集和使用您的个人信息的法律依据有任何疑问或需要提供进一步的信息,请通过本隐私政策第九章节「如何联系我们」提供的联系方式与我们联系。

(四) 本平台向您提供的服务可能将不断更新和发展,如果您选择使用本隐私政策中尚未列明的其他功能或服务时,我们会在收集您的个人信息前通过推送通知、更为显著的弹窗等方式向您详细说明信息收集的目的、方式、范围并征求您的同意。

三、 我们如何使用小程序原生能力技术

(一) 依托于微信小程序提供的原生能力

为了帮助提升您的产品体验,我们会使用微信提供的账号体系能力来避免您重复登录。所有的信息获取都会经过您的授权同意才会使用。

四、 我们如何委托处理、共享、转让、公开披露您的个人信息

(一) 委托处理

我们会聘请服务提供商来协助我们提供客户支持。对我们委托的公司、组织和个人,我们会要求他们按照本个人信息保护政策来处理您的个人信息。

(二) 共享

我们不会将任何个人信息出售给第三方。我们不会向愈见守护小程序、微信公众号运营公司以外的任何公司、组织和个人提供您的个人信息,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下共享:获得您的单独同意后,我们会与我们所披露的有关个人信息处理者共享您的相关个人信息;

(三) 转让

我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下转让:获得您的单独同意后,我们会向我们所披露的有关个人信息处理者转让您的相关个人信息;

(四) 公开披露

我们仅会在获得您明确同意后,公开披露您的个人信息。

五、 我们如何保存、保护您的个人信息

(一) 保存地点

我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前,我们不会将上述信息传输至其他地区。

(二) 保存时间

我们会采取一切合理可行的措施,确保未收集无关的个人信息。 愈见守护小程序、微信公众号中个人信息储存必要期限是愈见守护小程序、微信公众号为您终止服务后3年。超出必要期限后,我们将对您的个人信息进行删除或匿名化处理,但法律法规另有规定的除外。

(三) 保护措施

我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。我们会部署访问控制机制,确保只有授权人员才可访问个人信息。

(四) 安全事件处理

在发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您。

六、 您查阅、更正、删除、注销个人信息的权利

我们非常重视并保护您对于个人信息处理活动中的知情权、决定权、限制权、拒绝权等权利,并为您提供了行使在个人信息处理活动中相关权利的方法。

(一) 查阅权和更正权

除法律法规规定的情形除外,您有权随时查阅和更正您的个人信息,您可以通过在本平台的【我的】-【个人信息】查阅或更正您的个人信息,包括手机号、姓名、头像等信息。

(二) 删除权

1. 您可通过微信的缓存清理功能,删除您在本平台的缓存记录提供的相关个人信息。

2. 如果您需要删除您在使用本平台过程中产生的其他个人信息,在您的合理要求并经验证核实您的身份后,我们会处理您的请求。您可以通过本隐私政策「第九章节、如何联系我们」方式向我们进行反馈。

3. 在以下情形中,您可以向我们提出删除个人信息的请求:

(1) 我们永久不再为您提供产品或服务;

(2) 您撤回对我们收集、使用您的个人信息的同意;

(3) 我们处理个人信息的行为违反法律、行政法规;

(4) 我们处理个人信息的行为违反了与您的约定;

(5) 您注销了用户帐号;

(6) 法律、行政法规规定的其他情形。

4. 您同意并理解,您删除某些您已提交的个人信息可能导致您无法使用本平台的部分或者全部服务。

(三) 注销权

如您希望注销本平台及服务,您可以通过发送邮件到supportpr@hbraas.com进行账号的注销。

一旦您注销账户,我们将停止为您提供服务。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。当您选择注销账户后,我们将停止为您提供服务,并依据您的要求,删除您的个人信息。

七、 未成年人保护

我们非常重视对未成年人个人信息的保护,本平台的注册用户仅包括供医疗卫生专业人士。不涉及18周岁以下的未成年人注册为本平台账户。若您是未成年人,不得予以注册。

八、 本隐私政策变更及通知

(一) 为了向您提供更好的功能与/或服务,我们的产品/服务将不时更新与变化,因此,我们将适时修订及变更隐私政策。

(二) 未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。我们会在本页面上发布对本政策所做的任何变更。

(三) 对于重大变更,我们可能还会提供本平台公告、推送通知或更为显著的弹窗等方式,向您发送隐私政策的最新版本。

九、 如何联系我们

若您对本服务有任何疑问、意见或建议,您可以通过以下方式与我们联系:

邮箱:supportpr@hbraas.com

一般情况下,我们将在7天内回复。

十、 名词定义与解释

本平台:通过电子化信息平台运营和提供的数字化产品和服务,电子化信息平台包括但不限于 愈见守护小程序、微信公众号提供数字化产品和服务的系统或平台等,具体以用户实际注册、访问或使用为准(对于该等数字化产品和服务,本协议统称为“电子化信息平台”或“平台”或“本平台”)

个人信息:以电子或者其他方式记录的与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如姓名等;

OPENID:OPENID是微信用户在注册公众号后的唯一独立加密用户身份标识,此处OPENID是指本平台用户注册后的唯一加密用户身份标识。

` + }, + onLoad() {}, +}); + +export {} diff --git a/src/doc/pages/doc3/index.wxml b/src/doc/pages/doc3/index.wxml new file mode 100644 index 0000000..68e15cb --- /dev/null +++ b/src/doc/pages/doc3/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/src/doc/pages/doc4/index.json b/src/doc/pages/doc4/index.json new file mode 100644 index 0000000..a1ad376 --- /dev/null +++ b/src/doc/pages/doc4/index.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "用户协议", + "usingComponents": { + "mp-html": "mp-html" + } +} diff --git a/src/doc/pages/doc4/index.scss b/src/doc/pages/doc4/index.scss new file mode 100644 index 0000000..0b69ddc --- /dev/null +++ b/src/doc/pages/doc4/index.scss @@ -0,0 +1,3 @@ +.page{ + padding: 0 40rpx; +} diff --git a/src/doc/pages/doc4/index.ts b/src/doc/pages/doc4/index.ts new file mode 100644 index 0000000..fd5a8f5 --- /dev/null +++ b/src/doc/pages/doc4/index.ts @@ -0,0 +1,10 @@ +const _app = getApp(); + +Page({ + data: { + doc:`

用户协议

欢迎您使用愈见守护平台(以下简称 “本平台” 或 “平台”)为保障您在使用平台服务过程中的合法权益,规范双方权利与义务,请您在注册、使用本平台服务前,仔细阅读本用户协议(以下简称 “本协议”)全部内容。一旦您注册、登录或使用本平台,即视为您已阅读、理解并同意本协议的所有内容。

一、定义与适用范围

1. 本平台:指为血友病 B 患者提供健康管理、医疗信息服务等功能的数字化服务平台,包括但不限于对应的小程序、公众号等。

2. 用户:指注册、登录并使用本平台服务的自然人,即血友病 B 患者或经患者授权使用平台服务的相关人员。

3. 平台服务:指我们通过本平台向用户提供的所有功能与服务,包括但不限于健康档案管理、专属医生绑定与信息交互、医疗知识科普等服务。

本协议适用于用户对本平台所有服务的使用行为,用户在使用平台不同服务时,除需遵守本协议外,还应遵守我们针对具体服务制定的相关规则与指引。

二、用户注册与账号管理

1. 注册要求:用户在注册平台账号时,应提供真实、准确、完整的个人信息,包括但不限于姓名、出生日期、联系方式、疾病诊断信息等。若用户提供的信息发生变更,应及时更新,确保信息的有效性与准确性。

2. 账号安全:您的账户为您自行设置并由您保管,建议您务必保管好您的账户。 账户因您主动泄露或因您遭受他人攻击、诈骗等行为导致的损失及后果,本公司不承担责任,您应通过司法、行政等救济途径向侵权行为人追偿。

3. 如发现账号存在异常登录或使用情况,应立即通知我们,并配合采取必要的措施保障账号安全。因用户自身原因导致账号信息泄露或账号被盗用产生的后果,由用户自行承担。

4. 账号注销:用户有权根据自身需求申请注销账号。账号注销后,除法律法规另有规定或为履行相关义务外,我们将对用户的个人信息进行删除或匿名化处理,且无法恢复。

三、平台服务内容与使用规则

1. 服务内容

健康档案管理:用户可在平台录入、查看和管理个人健康档案信息,包括但不限于病史、诊断结果、治疗记录、健康数据等。平台将为用户提供便捷的档案管理功能,帮助用户系统地记录和跟踪健康状况。

专属医生绑定与信息交互:用户可自主选择绑定专属医生,绑定后,平台将按照《个人信息共享知情同意书》的约定,将用户相关信息共享给绑定医生。

医疗知识科普:平台将定期发布与血友病 B 相关的医疗知识、治疗进展、护理方法等科普内容,帮助用户更好地了解疾病,提升自我管理能力。

2. 使用规则

◦ 用户应在法律法规允许的范围内使用平台服务,不得利用平台从事任何违法违规活动,包括但不限于传播虚假信息、进行诈骗、侵犯他人知识产权等。

◦ 用户在使用平台服务过程中,不得干扰、破坏平台的正常运行,不得实施任何可能影响平台服务质量、安全或稳定性的行为,如恶意攻击、数据篡改、滥用接口等。

◦ 用户不得将平台服务用于商业目的或未经我们书面许可的其他用途。若用户违反上述使用规则,我们有权立即停止向其提供服务,并保留追究其法律责任的权利。

四、双方权利与义务

1. 用户权利

◦ 用户有权自主选择使用平台提供的各项服务,有权对平台服务提出意见和建议。

◦ 用户有权按照本协议约定,查询、更正个人在平台的相关信息,有权撤回对个人信息共享的同意(具体规则详见《个人信息共享知情同意书》)。

◦ 用户在使用平台服务过程中,若合法权益受到侵害,有权要求我们采取合理措施予以解决。

2. 用户义务

◦ 用户应遵守本协议及平台相关规则,按照平台指引正确使用服务,不得违反法律法规及社会公序良俗。

◦ 用户应妥善保管个人账号及信息,对使用该账号进行的所有活动和行为负责。

◦ 用户应积极配合我们开展的服务优化、安全保障等工作,如实提供相关信息和反馈。

3. 我们的权利

◦ 我们有权根据法律法规变化、业务发展需求等情况,对平台服务内容、功能、本协议及相关规则进行调整、修改或更新。

◦ 若用户违反本协议或平台相关规则,我们有权采取包括但不限于限制账号功能、暂停或终止服务、删除违规内容等措施,并保留追究其法律责任的权利。

4. 我们的义务

◦ 我们将按照法律法规要求,采取合理的技术和管理措施,保障平台服务的正常运行,确保用户信息安全。

◦ 我们将持续优化平台服务,为用户提供准确、有用的医疗信息和服务,及时处理用户的咨询、投诉和建议。

五、隐私保护

我们非常重视用户的个人信息保护,将严格按照《中华人民共和国个人信息保护法》及其他相关法律法规的规定,处理用户的个人信息。具体信息收集、使用、共享、存储、保护等规则详见《隐私政策》,请您在使用平台服务前仔细阅读。

六、免责声明

1. 由于不可抗力(包括但不限于自然灾害、政府行为、网络攻击、病毒侵袭等)或其他不可预见、不可避免的原因,导致平台服务中断、数据丢失或其他异常情况,我们不承担责任,但将尽力减少损失并及时通知用户。

2. 对于用户通过平台获取的任何信息内容,仅供参考,不构成具体的医疗诊断或治疗方案。用户应根据自身实际情况,结合专业医生的诊断进行治疗,因用户依据平台信息进行自我诊断或治疗产生的一切后果,由用户自行承担。

3. 我们对平台上第三方提供的链接、内容或服务不承担任何责任。用户通过平台访问第三方内容或服务时,应自行注意相关风险,并遵守第三方的相关规定。

` + }, + onLoad() {}, +}); + +export {} diff --git a/src/doc/pages/doc4/index.wxml b/src/doc/pages/doc4/index.wxml new file mode 100644 index 0000000..68e15cb --- /dev/null +++ b/src/doc/pages/doc4/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/src/doc/pages/doc5/index.json b/src/doc/pages/doc5/index.json new file mode 100644 index 0000000..0af6714 --- /dev/null +++ b/src/doc/pages/doc5/index.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "个人信息及隐私保护政策", + "usingComponents": { + "mp-html": "mp-html" + } +} diff --git a/src/doc/pages/doc5/index.scss b/src/doc/pages/doc5/index.scss new file mode 100644 index 0000000..0b69ddc --- /dev/null +++ b/src/doc/pages/doc5/index.scss @@ -0,0 +1,3 @@ +.page{ + padding: 0 40rpx; +} diff --git a/src/doc/pages/doc5/index.ts b/src/doc/pages/doc5/index.ts new file mode 100644 index 0000000..416c62d --- /dev/null +++ b/src/doc/pages/doc5/index.ts @@ -0,0 +1,10 @@ +const _app = getApp(); + +Page({ + data: { + doc:`


个人信息及隐私保护政策

生效日期:2025年6月

愈见守护(以下简称“我们”)非常注重保护用户(“您”)的个人信息及隐私。我们希望通过本《个人信息及隐私保护政策》(以下简称本“隐私政策”或本“政策”)向您清晰地介绍在使用我们的产品/服务时,我们如何处理您的个人信息的方式。

我们提供的服务包括愈见守护医生端小程序、微信公众号向您提供的各项服务(以下简称“本服务”),适用本隐私政策。

请您在使用本服务前,务必仔细阅读并充分理解本隐私政策。我们将逐一说明我们收集您的个人信息的类型及其对应的用途,以便您了解我们针对某一特定功能或服务所收集的具体个人信息的类别、使用理由及收集方式。

本隐私政策将帮您了解以下信息:

1. 我们如何收集和使用您的个人信息

2. 我们基于何种目的或场景,收集和使用您的个人信息

3. 我们如何使用Cookie等同类技术

4. 我们如何委托处理、共享、转让、公开披露您的个人信息

5. 我们如何保存、保护您的个人信息

6. 您查阅、更正、删除、注销个人信息的权利

7. 未成年人保护

8. 本隐私政策变更及通知

9. 如何联系我们

10. 名词定义和解释

一、 我们如何收集和使用您的个人信息

(一) 我们会根据本隐私政策的约定,为实现本平台服务而对所收集的个人信息进行使用。

(二) 我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:合法、正当、必要和诚信原则,目的明确和直接相关原则,公开透明原则、准确性原则、问责性原则、数据安全原则等。同时,我们承诺采取必要的措施保障您的个人信息的安全。

二、 我们基于何种目的或场景,收集和使用您的个人信息

出于本隐私政策所描述的目的或场景,当您使用本平台服务时,我们可能会收集有关您的如下个人信息。若您不同意提供下列信息,有权拒绝提供或撤回同意,但您可能无法继续使用本平台的全部或部分服务:

(一) 注册登录账号

1. 当您关注愈见守护微信公众号时,我们会收集您的微信openID以及您关注、取消关注本公众号的行为数据,以便我们识别用户身份。

2. 当您登录使用愈见守护小程序时,您需要输入您的手机号码,通过手机号码加短信验证码的方式进行登录;或通过您的微信openID获取手机号进行手机号快捷登录。

(二) 向您提供本平台服务

您仅能查看本人管理患者的信息和数据。

1. 患者看板

当您在愈见守护平台登录后,您可以查看您本人管理的患者看板,可查看您本人管理的患者信息;

2. 患者诊疗进度及检查项目完成情况

您可以查看本人管理的患者目前的诊疗进度及各个阶段完成的检查项目完成情况;

3. 医患互动

您可以查看用户通过系统标准问答库内选择点击后发送给您的问题,您可以从标准问答库内选择合适文本内容进行应答;

4. 随访计划查看

您可以查看您管理的患者在其主动录入注射日后系统自动生成的标准随访计划

(三) 如果您对我们收集和使用您的个人信息的法律依据有任何疑问或需要提供进一步的信息,请通过本隐私政策第九章节「如何联系我们」提供的联系方式与我们联系。

(四) 本平台向您提供的服务可能将不断更新和发展,如果您选择使用本隐私政策中尚未列明的其他功能或服务时,我们会在收集您的个人信息前通过推送通知、更为显著的弹窗等方式向您详细说明信息收集的目的、方式、范围并征求您的同意。

三、 我们如何使用小程序原生能力技术

(一) 依托于微信小程序提供的原生能力

为了帮助提升您的产品体验,我们会使用微信提供的账号体系能力来避免您重复登录。所有的信息获取都会经过您的授权同意才会使用。

四、 我们如何委托处理、共享、转让、公开披露您的个人信息

(一) 委托处理

我们会聘请服务提供商来协助我们提供客户支持。对我们委托的公司、组织和个人,我们会要求他们按照本个人信息保护政策来处理您的个人信息。

(二) 共享

我们不会将任何个人信息出售给第三方。我们不会向愈见守护小程序、微信公众号运营公司以外的任何公司、组织和个人提供您的个人信息,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下共享:获得您的单独同意后,我们会与我们所披露的有关个人信息处理者共享您的相关个人信息;

(三) 转让

我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下转让:获得您的单独同意后,我们会向我们所披露的有关个人信息处理者转让您的相关个人信息;

(四) 公开披露

我们仅会在获得您明确同意后,公开披露您的个人信息。

五、 我们如何保存、保护您的个人信息

(一) 保存地点

我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前,我们不会将上述信息传输至其他地区。

(二) 保存时间

我们会采取一切合理可行的措施,确保未收集无关的个人信息。 愈见守护小程序、微信公众号中个人信息储存必要期限是愈见守护小程序、微信公众号为您终止服务后3年。超出必要期限后,我们将对您的个人信息进行删除或匿名化处理,但法律法规另有规定的除外。

(三) 保护措施

我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。我们会部署访问控制机制,确保只有授权人员才可访问个人信息。

(四) 安全事件处理

在发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您。

六、 您查阅、更正、删除、注销个人信息的权利

我们非常重视并保护您对于个人信息处理活动中的知情权、决定权、限制权、拒绝权等权利,并为您提供了行使在个人信息处理活动中相关权利的方法。

(一) 查阅权和更正权

除法律法规规定的情形除外,您有权随时查阅和更正您的个人信息,您可以通过在本平台的【我的】-【个人信息】查阅或更正您的个人信息,包括手机号、姓名、头像、个人简介等信息。

(二) 删除权

1. 您可通过微信的缓存清理功能,删除您在本平台的缓存记录提供的相关个人信息。

2. 如果您需要删除您在使用本平台过程中产生的其他个人信息,在您的合理要求并经验证核实您的身份后,我们会处理您的请求。您可以通过本隐私政策「第九章节、如何联系我们」方式向我们进行反馈。

3. 在以下情形中,您可以向我们提出删除个人信息的请求:

(1) 我们永久不再为您提供产品或服务;

(2) 您撤回对我们收集、使用您的个人信息的同意;

(3) 我们处理个人信息的行为违反法律、行政法规;

(4) 我们处理个人信息的行为违反了与您的约定;

(5) 您注销了用户帐号;

(6) 法律、行政法规规定的其他情形。

4. 您同意并理解,您删除某些您已提交的个人信息可能导致您无法使用本平台的部分或者全部服务。

(三) 注销权

如您希望注销本平台及服务,您可以通过发送邮件到supportpr@hbraas.com进行账号的注销。

一旦您注销账户,我们将停止为您提供服务。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。当您选择注销账户后,我们将停止为您提供服务,并依据您的要求,删除您的个人信息。

七、 未成年人保护

我们非常重视对未成年人个人信息的保护,本平台的注册用户仅包括供医疗卫生专业人士。不涉及18周岁以下的未成年人注册为本平台账户。若您是未成年人,不得予以注册。

八、 本隐私政策变更及通知

(一) 为了向您提供更好的功能与/或服务,我们的产品/服务将不时更新与变化,因此,我们将适时修订及变更隐私政策。

(二) 未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。我们会在本页面上发布对本政策所做的任何变更。

(三) 对于重大变更,我们可能还会提供本平台公告、推送通知或更为显著的弹窗等方式,向您发送隐私政策的最新版本。

九、 如何联系我们

若您对本服务有任何疑问、意见或建议,您可以通过以下方式与我们联系:

邮箱:supportpr@hbraas.com

一般情况下,我们将在7天内回复。

十、 名词定义与解释

本平台:通过电子化信息平台运营和提供的数字化产品和服务,电子化信息平台包括但不限于 愈见守护小程序、微信公众号提供数字化产品和服务的系统或平台等,具体以用户实际注册、访问或使用为准(对于该等数字化产品和服务,本协议统称为“电子化信息平台”或“平台”或“本平台”)

个人信息:以电子或者其他方式记录的与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如姓名等;

OPENID:OPENID是微信用户在注册公众号后的唯一独立加密用户身份标识,此处OPENID是指本平台用户注册后的唯一加密用户身份标识。

` + }, + onLoad() {}, +}); + +export {} diff --git a/src/doc/pages/doc5/index.wxml b/src/doc/pages/doc5/index.wxml new file mode 100644 index 0000000..68e15cb --- /dev/null +++ b/src/doc/pages/doc5/index.wxml @@ -0,0 +1,3 @@ + + + diff --git a/src/images/bg1.png b/src/images/bg1.png new file mode 100644 index 0000000000000000000000000000000000000000..eb5422e1cb636357cb5822d5226215247f8eab1e GIT binary patch literal 784862 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

?7D8n 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

_}Q@PIk@ z#e`g$IOijjeIy8LH5bPm2U;xn@O(J>=M@fPEcS|jJym8~L7kx{N@!yeTePnA(9ZOl z8QYEac5uBovfeY;;DaF_9p-TFU&^5aHlb7h#BRk)b(21?oZCI-mSFGxxN}suaz6+O z^#t3zI>UBrQ-jvCU6YAiguf$+lKt)NE)0Zp2Y?IS%;07PE8l%e(ruYyXFWP z%%!U0P3}#%;p0>QaHi;ccB_JXHsp!Y4jAp9>)Z}TC16LrcscYV-#Z9T$7|m#j~+hC z*WY|gxNA1~hHP&CNyx_!soM#CkhlJ^tDHN6lBaR$HxFC*%jfJD4)i(nwAR_U#>4Ds zU+Fj%h+*oE7S%D=*^7{jQn|~yZxDG@lc%^}DsYu!IGP`JF}iM*(uck-in!{M%J&ZN z-mc;IESuWY&ada;K%b+vj|fSw4zS-jSO?l3(mGG~OmiWmPY2dffx8h?-`PmpMS%80 z*+E>?(dZg3S|m1>bGngBQV+0?^s;Bc-tfQ?UZKsYqAAQrHyY86d?r+HCa>(XS z9{8c|Te{bE_qPTU>`mGO=lyg@Tw^p3^yVgZ%8{Yx#J0WQ5YT+k(w)v1+uL}mX)Ly? zVj9YzMbUmCkkcUzR%}5!LjuoKIClpdB_4FlM-y@cudv_ZI2;zl!I>XG?YG7nL|gly zH#T>ULT4OJYi$(Q>?F}h8TH8)gsi~P3^>5O9T)UlAXgabaipHTjL_F`V2eDnd& z)g@p2;SX8iJ-;`%r23DxvK`J_>CvtPhs0$D?`g$f61N;msGY5edxZ{sfs3va?NE-LT8_ijG? z;Qc&$_#l7(`kVaWPk+jnUw@SsZ(e5wdy_#Q7{>swaNHzW$r17u`hnoWC>)S=Z&XrM zyNpnVj8sPJaz3hR?~AC+9{0TIX)WSfD$%`C32Wu{pVV(oVraLuUa`*3Gs?WmY+ai5 zO!UPTj;g|T2nx(x@!?vCC;qDE5nqfri+Z#p{bevav04%u1ReV9xq{!pvEy11x+D@y zQ3rm7SmLlmiAUL+v8j}rUFOzyv(iVz82HeB&lT%7#+fq=s`HE_#os{e&6p>B)W)&v zJkjhzU9xI(oYejo5A)h8#buYe>w}u1SMX^zn6$1!1-cgwCd4M*Zd&{Nbk{!-5K)-V zC*$rjiQXU!<+NXoRA4C6ySEZ2SP)egY#aVa{K?1k*$;fvx8D`P^4t(a8yFY~x+AasjbB=7GOq4Tn zO#8r3tRHghT*RE?0X7#OX43Vj9dAtyg@8gwh=u}t(%Yl~bNRz0bGF-%^hm-TWWYynOX4D?jP_KfD=m8~jYA6#cZ>?b=7C#?O>=FpbhtjQ-BE{1TF*sQxyJ1SwmAM&Wi9&#NvFZ}PG`_Z_>>-VRb{j9 z92>6*W(!uoW6N<~qBovqcboq25|(5cBloWE<=gLGhR-zY8IgEiQ4V=85)$DPLc#01yC4L_t*M zf}&bK(|T~X7njPpj&uoQ%$3-fS1xzzIO#iOpBdj-UD`(_qQ0@|Lv->cWRhdLcjTu;eC+#KaNKSW z`6)ib6~QKG@Bl03BUVjMvd8jP@a0}ByghMim#s!VSM@m(+SYDIzvH+rkzdP9c_dQ>_deZ*(ITXFXpp5tJCK2O?*Je-H6+w1!Q~Yw>w?CVoXHN9I;!b#6l* ze3AXqI1HUxCC20)wZHLdXuUl^*Iyttz zaO9rZ?`sD8iBI3B>prG2lt!91XF2pLgtOg+YGLIp3Re)Q?t4LkGzpS)pckYNe5aY{ zmYXK{w1lHA+!vER`nHD*lZc6KKhYPO7Vvg0P3>aC!wtWF0mX+d1@!hiaOuNwnp^0d zTks9on`Ari>&@*XqqAyT#hjEwm0eqfzB!eEz42%YSTS-&T=9eZvhM;vI2n_#od;F9!Z&vtW6)CYxRjUl#wD(zfAMd_I~#kmEf-SMrKpq1yelQ1HD z_eUpwi#|xJNK9;YDPpSi25t-qJF>kiVvn$tpl*7vdIpRHPGDn%KsXq4RULAl z?-_h2%86}rCp&rFlPlosWUO7|otErGcoK=f^Xj=X%sDAJiBlyCPzGQ{!wFnMe$LeX zhk{chMZ=hba1Jbm9-G((W6KCBv;=2@L{H5V=;snu#qsJ4IZDKb>hk zTl!M?7oG}TbQAn(3m%lQspt7ceCy-5XPkcagnq+-LBK>%;l}As1!9Yl;4lgcwzXa-8pR3Qq9Y;m0izIOSK1ST4ez(t69m_A*<@}_h@bEXQur6@ z;z2lFP<$qz#0wiz&3X#^KV`_WD|!>C4t|>H%NuQ3fDDp zK3sEPv>lxO1^_4RojaLb1DxlEjfMdjJ*KOgCLk+Dx73nq{DqK_;=@4YHm+eL2X0Y= zK^yAx=)raWQ=->5x4Gek|5U68Kr3rg)cET1D&9wvUlvS#@>{ZM0Y}xs!IP2`{?)vqxw_+3B?TH*e8;d@v(nO)lFiaX~P2*p0lMA=3Uet z=rBN%a@>-<)x*^~ixCb&6E5W0+DQcU>p9apPx5c|BgjJNOSfptbu_nt_sUXd9=Iv2kiyk)zibw8=6d0{9{Iz9*fqzdLG`IyRW>%#h zdm(zUXM(MT@pRt!uoL2gcP5#wrv+O*Lv-9b+%-Xm%XU(a$fX=kE^uVr_cpmVSM-H2 zs4Ac;p$+p0zC~L}V4b)5sasv3R9JU8;sK*fH~>X^M1^BwoqKyqtfe*A5jWG(;Dd?# zALzz=v@dhv#p^sHDck*S0d2C4<+nsbBMR9!nlvU+2RQp5>E| zKfr&T zAB22SCYn+P<|Ppy3R7u*W-2#1ojD@C&|# zct#7PX!&4^X3`7x!mr4eKrkHCZ@PCB>Z5ux?^#Byp&P;x{h15?Imgd*%|}wyulkY1pQxAVgu`{uwe9HqVJaLzfgI5@=F`vBq%LR`cSmIMwshX-r=0ZgH5;;n!L zO!PNl3;tMpQS9PkvdPaPXhw*PH58~l1f z3P8@neg_99l%6c4SY1P64vq&GU6jVYNqT|?=kewXo7Ok#f#Y}2zs)1wxa&7YQrN2J0k^Ip%8(e}o&((+hg{r8ZQGSj`>a2B z{$Q<-Iuf$-2H4z6?yj9aU=`T?u=atCG>7H`ue){J{egUY7Tw+>@L&%zdV8wp1(+1* zD$kxi%l2Q~@db#7yV@$=)1P?Yzs!RNmn=K$;ksEDMIP*tD7{Xuh2na2@9UtQQD|{&G=Z1b~AJ+)S^R(zR1{}?$91m7Z={V;KzwWm(v4(JT?@s14;pp^1 z-cET=yTpp$b7icaChFi9>y&&T}Q~ zhxZ;nyb+pkoXlxXT#j?^n|G_(dRS;N%CFZN?4Ad9cy9DMF@F1LZSTqx}N!!f--cHAPraf+(`aBB_ZfbuY#Q!%d`<=6Q5Y((wsLeTD8JoEa6 znHT5uI_e_!F<08j7A!j-*1tNr%_S zocV#<{KUp)FkWv@bkDXr~Kh~V3$sns*&=|jIuDkIHeToSA2*mTZI>uVS1k3wM=4w9{8g_`?WuBv~WCQ z7Cwr;#`QmUnCYXEbzO5hy+K~{n)W6amzAea9`T0#-CSN==IgJ&i{Gw)^WAru>&)fV zl6CUF1PS{-?EhFt*0M1JwzcSaQVYjz7+ev3l@w!7{B0O+oM(zXSvAux=+nn3`C%P< zAK}-I*$#$9Y-4~k*pGvIdQd}v(+BqSv*DD2XH}*4Iwo**PA%2$InRM%t4>LCVSYW% zcJ%&XowXf%QJq$61-Bgj-R{2bu_JHyI{;2AGSmN@MLgnX+XuJ($h3~);$9>8)+SYn z{@xq5#G%+uYO--RxAR!zhps`)pauh=tzR2e=i+_SdDwvF49Oa8rg-j@d$NTXFv?oD z5B^=p-M^NR@gllMcvN#7nRv%Z4Fj1E+L1OEidI6ZaxQAprG#9z6_2?S9j7;Dq zUN!EHPyWfg)#IIZY!D32NnWiapLMKoU=xEp9oM^J)B^U!B7iE^-uG zOz^vwbA}U7>|8y`l6Ae|P3OJ5etnZy{ugCd{8p?Q!Fc`VRj%$`gnb)%R%u`!a;v>% zPUjrP6BiHj`>=yUPv1~QJNhl=#7JQ+AxJpmtq&7W2oT3Q9w6k4f{6u*>r~z(M9MM2 z(9^U<Y*A1Wjt8F1cZ#RrGvzpEvdosIOf?=#8r90iH0jD9qsrR+*&%H>z6xk&+;$7`)yv|zQKLsA#VDZ-ZOCQ)Tmpz=fs)ehQ0L}QbgUVxK742 zn~geRi$aFLw;Ql#__K}@q8|;$EA2mkK(rNB1)oBqPe0dItl)4Bhw6Ubfgf?H;Z|#m zah)K?se7Snf96RScQoWJI9Ac;jE)LE1!jS97HZzU?H??=5UWr6SkZ6%eA8Z4yjfpz z|Nd3pefLTHZ>`^+Zt}Ok|1ICX_%65nimG=N2o>Jo6Hf{JVln6fzob&^M~B7yCiCq5 z49AUcB|-F6@C_UTf9*5;xsRa{8XD4t0x*paPb}n!w)pfKof!<>zN~(KD#*Gi}2Gp{ATZK6Kr`W z#u=+3CwsPQswx9Mr3Bw@YkOXZ5#@&4zfCgkN}*pSF*2@w$`^{jhJU)Uj?2h zlS(!}TKfvhs!CO%#7xqzG3`)Q;p&T|8xZMaXB1*E>q3vyfz0XB1cP8yHb5hst*3PY zieqrY#3Kn7WGX8@tuH#1iklQp^a3TL%pah@l#T%&tty+}=tA$UwVHCzW4l&As7YFpIW8rfa7N$Bb+o4<89bT9Ojk=zv z1_$VV(4{({5YzLgWpoaPZ+eWr`?NdEF};Wnmn{Zw<~sNk`S{_Ze8~gt#MeVB#h-{i zlW#3vzIv1Ed-t+Z=W?fj&6#3TO0QA?Wj|I@tn|sPUYfk^QV}aiTZn90yLEt+Q?Q%2lboUbd(# zmX73%cnVz7W9-LSbXvCo*4??{KlcZ7#M7mP%bgey`V^{#OI4+6m$tIr#LU#jlfK=p z?&###Lf>yRw09hriGa0nV8A^Se0whK$Nc3NY`C6JZLLS6NugW4c62<|DIE(=lNxZ` z#QTT=XW`AreX38_sWRlHDIRtJ>zwq>uP<%q#MDDtPBL*T+fRLg?4!dX3?to{J z%~{a97A?dSlCFU~z==|DQq>^t8QrZyk%FTN}Bkqq%$f1{L@e+|Cj?SVQh5auwqmOA4RPPg_-~s)RGP)L^ns zvvZ>)E(&$&wN2u4)tZfzBV<1vws0x((zNAhqYl}zt3W{3xyCwPUR>qj{fGJB-S_hF z!Gk=1{wiO7^>tppe3f-2PB1yzg0+HE83|HjWK=S^^czYLs|B+k#%vBLJ6z;w_mED( z1wH|LI&TG>z6Yi@;v9#(XPdeMgjSBIwr1cxRI;upv(g8LYoDr+36}5O=ETOy^zcvm z-TDX<;~>W2Cfhaot7olA14?b)0=F!T(P128 zq^fqAv_XnX_QTom3~N^CgEV&N;ZLrDW64j!7A1F&3Mo>kN`D34Y7rx88%|Z#{os@1 zsGzGUpp|pis(#ioJ_hU7dvCdUlz_LZ6UKxoo*$y>TUXv=@$`21B_M|v$ z3$@^bdfd<=1q05s0O0?t)V##DpQyqjMSs4Xh?_=}{vG5%Or&4H!9MGm8iXesM~Oc% z_P-Gl)VM=-j!{p%I2NSf7v#vPd(Q)Y2S<4*0Ym?Tqflpk2XYacpKH8HnYS)=&bjLk zj___1QGK2{6pH|k80`Q*^Xi1jCdM{Dc&a$`a?{uLjHd%c+s6yoY}RxQcAMkQXN|Rk z+xYtHvkNeh6S2Hcr+bn2dBFYsn=f-o2*g=FZWjC|es5kU%ecxVKQCrxKkn4=P`1sB zqMIBP__UAu!k`Y3tN*KTIl5k0&S&Av8S*Fi!nND3i?zha*=8^9N5y_PN;xI%Piubt z<3XqKbvm%&s7^og$?eFA`_B80Qmw`eptQ zu)hOPF#c0S%SD$aVGtZUb$r~>ydHJJ2x>ZGcm3m@`MI8OHC zWR14x5I~r@a!!O(9DD;t3XbON+8lO#LXaGleYi~#pa0o@#Qn^LH7Z_ACis>bavOsZIXw^fiAA2ln-HFy5##!*^7&6b z$-n;QH@W3OyP{Q}J>ESw;ZnH(isYQ3m#zz($XoEM{`a^``l!Bg+0b(M%Mbs4_Q-S3 zkvK0dfKK1S8f8Qxjps2=`t{_23}6F--rxG0gEf`5%Q zn`!9r?Ql`s(6bYKY6&+b`Y2kCl3)r)#@8rE_&$95q{_Eeq z$yZ;0$D8$$QTLKs5YF23f>Qu11KWV#@EP8Fi@MaBw+Ash$Er#=yHsFouQT}XoYDsz zbthX!Re#hmPHbTU7l`ZRxB(d3ien2<$Kngmt%lTv{8g2zO){^D6Q>N?W#;%N zHla4>$O&g%W=YC>kc9>Qq;1#jwjSC4)d+5)Yzr>w0`)X zb=poTYFfO+>@U#tT2?If=RQd_m2d>9SZP!!=AH%s3bm-kkWq7M`}NGeAWqLV4pCdMk2E z9~)=-#nnzF;KhwgYqiw!ZrWJPw7rt>=%mmq zJ}X!&IacDM$;-Ug^Wgh%|4-OXk&I5iO3$jiU6-OU9 zPToYQp5|%&v2f%9G3~eEbbqd74cG%~Ap;L3wB+YH@tM?SGOw*4{KZqm5>tvnBn3<Q$o!f z4^{9DYZ!c6+IixS8~7FaEtP`5f+c}V3waqNw2vO#1FiDI^f!0sRXw|A4@S5beZILg$Fp$1z zCX)2kn(L3x6r4QOzFU?FujWAAwus6~;ELbMJ=6C!Xp^~4bJ7N>s&J+{%S?K{azrW| zT*w)6Z&FF&2ZxD%S|eg7svJJ(n*&@52^=O4lR7BsDoK@DS!?3Mv!V4EioIX)Z{a!+ z`;)XQeOhqZ7u-tF7kXr0L)0;6nj76#5DSNbTftKlIq6rOpE}MY@U5c;g#wNtX2aUo zG91)S_^zjR7@$o$hPeKBp=-ns!)PZaKJ($JYRapUxVE<8C_5w3*ONrh``SXU?lu4l;;ex#7Sgdul@tPH0x3_TR+}Q5`01yC4L_t)z z^?nxfHrw8%Kh?8ZHq>X{^$*B}EizCTzp$6~ct8TI)>}OK$s{Q!H4$#wo(je0KUaAb_a*u8zkmOlH|y`_$vaQ;`sS2B zfB9wqbC`+E4^shrrC;(XF}y5v6q??r@W3y85b1pIo7N@z>Z2Xuo(WiC?r3SoChkXK z0#_8>Ok!uYzm2J!S#R}l={hp!&4Z}!^FE_nwdMxjMvk4=tP7}xfaTh-uOfFaYgB4M z2;1o3SBF2X_Y5%;n5J44*Ocsi#vnyK8A8rE*C<@V8-|2uj8fQ&5oxpaZ!&oAv!x!X zDr9f<1FxtbtTTum%xQ}YWLIS z*ck<`>4RkvDzp@4wrD6Wh<-(@;DeHrare1#;1C5&o5^LvfDfJ_4tRQ#E;>R>Om2#V z0r|q4rP!`%R3PYRQ*!5+33E!(c5G!fJ}u+fGNA)dCcdYLJ$(a@FxYU#Fkg#)SWMcu zj2VW_xw7FV{Yi}{9Ix+P<^I)m{3kJ!T&Gzn-?)eTmAvM~==SzD?>xLuwbww6Xbj*4 zO?a~!=3P1d27D$y@GM#dTfoIYZ^m`raB$1aHup8!qaS!lan2MsTKlI`rHuG6<{EEw zR2`N+CRe3sYx57SQX~5Ih#ZYsYl?am-l5mIGovl)G5BKq&f~{<^LovjHzb+)s@iwq8387K#fQla0}Bp)uN>== zbT(4Z(q~SM!>H~GZ(52v^=p8b3Dz~m{EK-R6YMQ%MhP`5uB6;G6MtgVwJ&RJtDiWw zA%Ziu%%fVu$k?K-WJgPnD!u;9$8q4v#G_9cTgkzXZh|f;&KZ4@mG;ib{H^6=&&}qx zV8q{?a13*e@$o>fPgOWktU2+0GZC7!VVB5qo!kHH5j?kYi zXCUOtg%UF&pw~PRrl`ZC2lw;-drxxz`d+?!{vuy~^-W&9d=-il%V8_*OffF> zA^XgBFy>8qz`>je2Q8CvRZvw5km|90teoj%jTJ(hDz22i@Jma@EXpL_km;OSW@dpr)e}M)(=sOQihuxijM`@t`rYiw(Z-%1T<;Ltu^ zAWxHCyGc(eTJ+>f%NjyB=O*mWQsCZZUT2Ib$GoQ)%%SikYgc5@-{6VoeMiA_lM|K` zJ`)K-TSZIX7Vyol@FSKrDn0}j`gkxGszh(yg@&_g^ACJtE@}|&!8EeIx9NE$;3E3B zPh~sw*?Iv(4%?{OKl)S4C>rE5?GSgDW1+(bcS7baN%@De20EqCnI9b{2FbY{N!qp~ zK4=cH-)vsu$)N(PQ^p3-`9k#k*(7t;#%ZH7jw3+thkwYgFSh`PByI?;o{1G z(Z2e3TsT(bl*m!O^3=B~eUPSGUYw&G9M$V0KY!vezqsa5ItXn0yKU0Hyj&vf*Kb}X z%%RNLxnb&BIO61Y`;Ma2jPhaBNRuaga!x}1*Lv7P8yxaAm33lXSD_2~| z%9T2*Lnd~^q*CT${itYWdBwFk;otQ;S|i|wZ#u@YVseBt3@5eibvgE@{!RbL7+q{K!x8JwIa*=GA-ej0IPDGN+KE zW3nI9mU_DK;;n&N>Oa!=>f zx&i}iu5VAV*pK+N%fYevU7*5WY~|q6HQ4p&W=rs$TTW`zIor=ndtNbkHUxjY6oW!w? zw)(mr`kGrzCHRVMs6yn1x!1AB#|4huGtJQ$_K|(VnoHjYTbGMMqaArh|Q{?9o2jNo-4jhpR|g8UTg zq)^8+UtM%KxY^2o*Y{l4oa+*gN*V)SF}jcb>aYAt|j>! zb4l@qPx(tIAFLDd^6cDlFX@A|Zf;^Bld*8qeNpg>qOWa4NWrtHr80>Dwf{o_@4x3i zhgstPtLeATzsc>%f4^?MiR)U2DS^{-22+kL^xIBm$DLC@L~wHCt`vSiMUH2GFpSfG zYPaUp39gA_4DD~=F8{OrsH^-~0PjE$zw1(JNp*XXq8?S1>O2du@YB~Ab2OfL6_lL8 zJ91RmGo^@87@M2Ei1CMS<<8+8ZqqgIxT259sb6OeO(%MX)O53tud*Y{i;+|{IahY_a1ehqN}R( ze(b#PltVnMH6ll1(k*(|`mXQUzY@-tcrXX=>-{;Qrfu>%?wP(f;3)6Sn5M(MQ+K76 zjj&zrl!e=Z^+@%5iO`0F5m!$o54u-UBPPM+7nUGx9l`U}shnDf=4faH*zJ0J_ z1e7SwhGTR-!HY`C+IGRn!#OD$=N_&i9Dt}4_bk|mos6+&vK}p5#Bio(>3KQR!&?h| z0w*tEbEU6z4$^Tl9j+k*c@Dmeq7QMotHY(IlKmjx-`u=zKTSM$gEdu^qW+@>-)8uq zJA9BZ=7KN5&5IVyD0pkz`t&fFyX$DD(0QV_iE}1Ll*YwDU3vz%FeZ0G8xAnGJ+x-! zSAb3Mb$yKyx8w2W+`?LE@FwS>9aP8JH={u)_J$tk=;_?My2nqiyfC04RR(*)7E072 zx#f-f&Fv}ouKlM&D_-DR6NOQF9(3fVNX|TM$5*hk;OE&kS7K%*(dweM-pe6^jBQXy zpSE*|i>dqQ%*in9ziy6vU}yK4;g2v=ZQ>Y(TomkG5LAs}tR3NP#Xf93-Y<-H)W2N>K=i}bIh+qF`}$34Zn_DFZt>e%I_ToSR%x!4s>4gppIp*ouj!l>&=F7U1}S)j`Kb+kV1pH*vTaYS(OW6T39g$2 zRD!0@M*|tR%@&#afG8Y`(Jo+DRqKLwx(~vTJ%Bcv9CbYz)E$mnA1_XMP4dUMeVkO6 z)_X)@CaR(jmjt}rJ-R-JqCptg&b_6NPjh4`=Hx4KK$Ur z{OcFLqcW!y+hF72b!~nD1LP=up;OF5{mPt_*25xnP<7n7g@(B&3eL9a7mgK48I{FR)-`Jk%9B!Gscy#{{D5oeg2$&`d5!h z)&1v+zFy7Na_Qhf$FsN~t+REgCw*!($v!7D=VBe{;eg^?3;Z~PuhN#gzVtPB9m!F} zh!fbfgoCx&a4~Sc)mOwzD=?6wsu-cIaB#60Xo4OEO+{4|BXY-i@__|8;D1~WS!r1o- z4(RLAypBBTftj=|-q+%52Rr+Lxue5=CLvmlNc#p=rT>WQmQnU&^2}*$UYC45+tTk^Ce@5Eo)=~}>1VZ$PZ$TLgxdF%SP&{{X4hn5FF{gNqgW}LP4)bX{`tO|!qq8G(vkxvDDl9yb{$w-~2~fbEZ_k+x&^*C5 zhoRYz?xQcTc9r2IpjnW1aJWhP;4hAS!*-X*L7h@u&hx{`&93w}9vIt3Yu%Vbx_0;- zW5P-PHm5#&&Rbq|-hK8oUw!>eiciX2F6T>3RmC)6zOP=t=G&xeqGo)kV!>lU3gI+e z?AuYS-7eO$v?10|0W+W#TztH=*)X8Cb4{pY>%-ADE`B=g`R+PZbbHR=*)4b+688pU z^(_rZkiPIL>}SDN)V=zfJoaRBTyxF0=vVhH^0#mKR>!ymFD}-%eV7S_d;a1@{}&7< z>r&(dE;Q)_d)nXJXlxX^fkQX@xCrXl&NWi3OUbncZX-o2$F5!1&srgJ7v|>D000mG zNklaG zpWbisYpy)cLP@~)K^gVtM0fWramA}7N;qtHyt59R^kC!IP_4^;Oswz$E7Wk(R%=Fv z`?2${_)dhjXjyBnjJMPM5Oj@Q=rne_Fred@-uaYcJD)XlimVG_ixkqMa9t_UNZ=Rd zZChwJIiEaoesryR5{iTd*PRH}FT-xv@7UZS6q?uyPF5BdP!a4?AZCynuzF zsxTqlPWtHs4g0>feqH9#g9mx<>C;q=_znAuS1+j>bz+@)2}^+)I9jG+G~noZ7Za)i zmvLHxRgXq_vo&X5I^+(>;ixKlWiS1FVXkQrbHT>k8CUZG z4}MYPp*RVmk2Hm?1zizcRjEpfIhQ!}Jlh{C@pVS*?1wu2;aFuSsj5v<40IT*4+3V8 zQV(_-hdK*>@F+rv*QK~@GU+MU=w&~uvBq0XB{7zHI;ZqF+1jG9K9xRflpatgtdSF# zL5gv){w0>u{DKx9_QNp|&Kdvqc`!bo75vS)aV$pZqqv%L2VevQSH}x2c2DL~9aHIA zdGEm~@Jn;86yt*($!vtf^&zAx^TeymPWywlL055eyy)C zI-k9<@a>-~&d!*bkpD|uh%)#ePm`NjJDVuoKinvin}mmddgFo5VmQf|qV!Xzpx{&! zXCOZ%cMl!#?Vs-LAGQJH1p`_!HQA!sP6ybU8}ku=GjN4tbEECKgD*!z#K9w-55047 z+8n1*ifIjbh{X-kEgpq5A2%o>wm;XXGe)zm zdh3k;kaGYTHQ{?^o_o?0N7pv(!!<}0_q;b|4w&ZH^Kq|b zJM`^&;MbZZRTnANx?Jl+U3TE;UTZGQ-+sp?X&iNk^$mw1ZMa~dv=e<#jN(}L#zu!K zhkws2J$J6#d4w08uJ?kTKG%rReBekOd!5B^9l*NLw7zrhYi%qt`2aNiRu*Xr=yU~;sBR(CY z9&__+o?tsZMBkR(k)}HElIukV_rrjgH%&sH1P#$5QS7_`zj9eE*&N?vH=U;+uJVJF zb7Ypb*3tjLxqbGcE-mt_8@l)jdE_|iBBpvgn%4e&)U8HkjD;_Y?&sO#XY{Y~moLBS zXY9I89s`?Hl4=}#@>8-OsnhvbKk@Y5 zF(Z!i($W0tT|+tY?5prsyHMw!sAt3t1|FLw?Z5j$ zAgxPMcrj5r6oNh*&g*1h=J6(y&60WpLS^7Ph_9@S6}~N_0RGn~R$~2sK3nsKythDO z=Rs2F2ODd!pab9HVN$sv9_jv?#H`G35{plIJ_)J9&k@MjCA4e~9{_|Dg(`DU7cn;+ z4BE*Vg}muGz=^i>RnHB(62CGh8IYY>feqj0C^to}@|hKX9+}uD9DUIyH7U)fu#EUb zrT=!a+kt&S!hsLDx#yx>;=7=F^yoqU{^GlwYGy9vAS7@LybDJ;zI^#Q%P0inX$@Tp zag)F=tWDq;*ayste=FCSnz&@}H|ZnvN}0j#Tq|*N&xIE3vRS#n11!rJ=PtHw1J1ZE zfm`5N=ms@Z+MpkG4s&f@a4cR}CLDY3nnPgb7e#C`%HPmh@1^E7nvoiB@`w*CH#ajc zpWpJKWyy)U-V$$J_~k06%s7Q_`9}Wny{lONd0=jUU@<55bb9U;5=8FNKCsDEF^+l1 ze^1!=| zOBFe+i(8SGZ@>wX*N?jCMUSlZoI){!r%v z*D2bDzSsr6<9^0~J^e3i$g?>ayC!g?2d`ot>n6lc=Gpbh#Jr|4;az0iB=}BbMOa7f zlho_PRv|u(J%R(WB9%~|kd4Hg*yNI=s6QoYU9rxEJ|5sqCblZ6G$-mf@$bHNwB1La zgCqBL884`MWUx2QV{O}i>M=k?@GHcSFvm%U-JTVn>9~^4NgM8~^b7Yuhn}1hzaD_r z_W=3A^Te2y*Osu3*B6!3s~363v-7;DI!12P zZsIe|53gw+*T8<@o{`|oNjtM0=#R}H5gq^(SdGwgQ@6&oQAC_O z@5$bu)MrJ;GIHZuB~418w%bNz~3htTckEFjp4K#{N{$jtBsJ%vu0aV~*V zx5l{_dGArom9%({R3QUbLO4@!Vw4SA4Ms*G#wPMptYxsPH%5VXK?cYuDLJf!(MGYa z5Es@5%a+IaGgoRp<=cWEXYebqE0b)~5wg&S7khb2M8C1tL_YDT_9-|Nd%RE;k%cyW ztRNma?N6wz8Tb!tr^)k)*1!_3Ht1m10oVHk0vWl$>qstqOmQvDt#L z3Y|hsv>{tP&?l*66FUk0YDorD-K5ZH>Gr8= zZVO}k>H>x$rfo4E2{(RrRqzhnBc4*>@PdFJxTD}??A%%ywjLcZflnHzxW1KyBwa6R zScv0rpbphY*N#1DEgkENIgL%nT+tcf4CwJF2Ssm}!@o7Ny^3q0FLjek^JG+reMEck z(Ofl&Q1C^kKA8-7IAf!*X;Fn|SnJ?d2#c0Ju$97K!z(-yau$BowgQ$;5Eb~^Z8`e1 zrN6C09g6ytHAH|z8?eK%(w-1n?&+e2?F)RsXm032eAKOk(3XOth%DB>@a;Zk+e8P% z7F+NOZRtzxwsGzp_`)-+Wo6<$cUy%)s%Bb$v=g;>yl#}OlHgO6xsvX2Ena-+hrEm$ zIep+$GdME>tbORx7X02ywZ?Jih2n8brsro^DnS>TSffJO^Psigh9&71C(h^}I^Bk2 zrpht*7H#GDW6X>7!W;I5?s_`q>7$2v|LK$b+wcCEi>rG{f$d)M0~NeO9Z+Ulw@I5m zCYV+ttbdx<%+`jZ(m2MqB)G?;?1*WMt##}cD-c}Yo|RNp{G-PSX-0IoRuwM)2W~TXGxDA z`TvJe`R3c_`S!c#Io+-uz4jMImF=ih^I&8h$+s1FqTsYP{ef&jji4e;45>=0D!qrf z7QR)5pOS8Sk281MXxpU#I3)BFYEVTG=iUIY4=VlFI4e5j*pHEC;R-kMM^A=jJHVt> z=f0?_#60Ngdomei6S&k_@FJ$Fk|4Hkn>b9@tms#)y)RkC8`8ivmF=+4pjekf5{#VT zDD!1x!y5^HVI1aDw8|N;!r^6;YTrs#o%NNX&$%}gC&6BgRd$gTVcxY%!kFAVdqQ4D z>7!;+oU}AaKM&}^IbzaQw!idR;NR`0tIj#_K=h}lCEZ7t%6_Jbes;0x@>lSg000mG zNklSR^8(0LU}~z2i9|(*>wdDKdgJfI zZU$f%2(7`b^TN1)-Y`Z3;~*B2!ZjP+&T>l+(MIne5%c*^ZB+EeIwiKv3tY~e4+nBl z&dQCOTzr5YYF*`W==fp127Q zMeAD`biojd-Wj|3ptla)*YA*t8!{79xA?+J{&T(+V?4mHj_tH_bTeskzK0v*d-v|~ z%pU!pIb?X}H19>*+?SJY22ZD(Jm$q}@{Ld({KVrXh-35R&S4%t=|(y7ALgDrJY8$% zkqOW4>tOD(6DFN_Is50%fuDM7j61InX$U%nzSavOM@!&Y>TzI|-eNSz6XV6NUAvo7 z9*7u+O{3hEaA>26dqAB6w@|-LDu%>^ZqHLJzqvc^YxRfS^=S;9jyl3oyFjYD@5Mm) z>HkB0>#*sfYs*nzUuWzO5C?@p+RjBBg>GD9Ia;S4?-#M<*~6XVR#Y^Vq84M9^!|j0 zG3%r}(dLf@24;|QppuzJ<31dy0z(rs8W6>v5*o$$WZw`r&IgXv9 zbreTw)1I?b=(D1w-(vviqS#Ny*4(^zz%9Ga>Z_{J>o?(Zs zsz@M;&+?`gEds_ zGmM9OLLIWL`ySJAaBS}I`X0}uMj>O9s`!ol@c&?Nfop+r7GuE~ffF|7QV8%FeE8~i z!G_2`&1c}d3l5{`%LA#ZRBdwB|FDj7h2OxheZZ)y6(;&p17gDvpwm;-ZL{)*Z)v*SB_M|-f zz7B!d(~`G`SZ_yL57(^|@GNxgLxWTNNe*2ho=1Q;k$pvdi%xe$j24|%ZbHR=JEzGW z!z0YGF=XC~G5I$5l(pZ~;RHwD5UlHpPTR~>7rdvzba1O0DK>oQx1iq6L8D+GE{9OS zxWESnURxaa>xS){5Jp-M-ujVl@(`GCJMnF_-v)Ge^T)-r`{ZJQC&n56Y+J;Yi;la1 z857IPmUvu4icBxWXFsgL#5j4A)N0cxyFJ9JZy)MKw#}js0+Sv;d-5dyGnm`kPTsmB zF7jZltBQKBdG+RX9zM8FA2)OfK#G305rcwtJ(E_&10ANLhMn8ccA(S#Iv~1>CqAYg zGS3z4l@AP#l_Iw2RB>g!XSXU6;f7oKMAT`fjN?Uj5HrAvwY1HhgCKu`jxFnIdkO9( z52Xk9@8#=n{!a7^mzXNp9E>7=3dl8YZfc|Gwmbx zL!O<3-CjfZPG6if<%frH7~mcQ6jhBy2a^$vgKe6tZD@BJJx(}s#btxB-vWmI#vzlK zNe$&Q;W<^bpBIcadx+f@;v$B66ExRwP&@Qf9V5D2b&?D14u=v>_)@RlN8~)W#Ofx7 zEkj@`WsX`io9kws#I4lv9LqQby274G3n<14gef{S|GYiQE*#xkb`h~BF%#bjM33og zZMbg=kx$@s2#(ZnQvl-WzG(bHJv*k=ys#9{HO)k$G8WMn<;rcgGS|1yhDkga=r<1d z5|#FcyM0vE3J1kSq3JrBUV5*5_&d)uD6Y%lVa!M&0Fm`AQ3 z;-D{Z4!GT&2JZTT7kzN>O+={URIIt{VBfW7%5%%=W*^`-phC2y~sD;eU~Z%I7yMl zr$Y#HF+B#(SP%4S!nmqvW=u&ZXE}GQ%S>EcrMtx#;cT}<$1^6a$lF63I#c#swA2v@ zwq5KwbdE;{CH4=IxB0`Nj;7DvC*W*@9Cf4vWou^EnW{>SLAziY>7%$F5_JqX(Q?w6 zG_9vC#zD-d-U%IiFuN|3_Y}4aw-fgm(-`6#sAg;J6?Ry1MaMIjj_T$f57aiT2d9b% zq;)FG-iWFSe{`yB(eq(uQn$C93Z;MwU57LwF6Rx9ID|m9W6&rx`1}0drmYSIr{f~N ztS|ew!e1q&B(#-^{-L$M$utmYKb~u9_2@MWM;mC*XF|BzIP7t0)~}ED~eQ`0w;;0?@thXVl{~yk_o04XeACICOjlF?N4&nS?Hw2N&6|E zH?nDxm3Y&4oY=-H==HV9e(10C5MN`?f}^~Sar2sZ%3VDDZ4u|8pZSyuk?zGQBX#BDShha5#iXVy#SSGmrdYDAuuCFtrgEK9$FQ-&ENS za}dwI$ifTA;-~s>^TMHOq&hDcVjY4l@~i}h^uZXIKql+F$>T@&^Zdnkm`pHQALiI1 z7iuzDqXPfM%jf-nbW!Rix#UPc9)zc*FA3k4w8)XzGy#d6f^ipp&FMT)ozKF1q>7fC zw)dI&m{);SB&x2F943BLpBha3`x7kui?zDEz`NE=ek~Z-2uq6>c@q=xS|+G`bG_yw zjtBZm<(e0idzTOR$@Ufc;&9`wkx#op^m8&_r-FU|JsF}cT6ZLyN zT93)IxHxvs#=s@+N81+d#F-cTFvs+_1Pg{cCv%D--cc_x^$*H|OJji5dksG3JM`M@ zcMg2)6K3e!EMOSZLVjC0n%8+Y2DqJ*dTA#liXiQ`fmZwAYg{|1*OA=n+U^*A&jY>q z?Q5LEUI5qW=sE4kzw?sc{n)hxqbCA}*!r{_K7e@YreE_^fq(NLmmJzgCV40a7yaAs zgyt3@uD|KG#a}3!#%Ew{t(($ZH7N2S1}y8Nr1?{8!rq?xB4V=ldrvr@gCh*id#?NN zHNyEqKNEyjiK#&wPTLD&FKp$S02Kx5pJz%|XeB4#ny2^J2F51*Wm8u&#) zg>U-#Gh;4Gb-670_@npo&%ge4cnoJO`YQ5S34%WydFaq*Y@c3qnRFO8f9h7OW5KVe zW2K;k+}(@4cXy7)CU{j#_Hhn>Y7^$QS-CpywU@(6%s`B%kF5YWOR47~CbH@AgJTpp zrlpeJ*UXVzT^n1GnM;UmNzhaZU#|4QDyzQ5N$c|RBJc3pbA5f0@1B3h^YvRwR`EEk zx8%W>m=YhpC^WqlY-xR^;8^f$vCl^6IAae%AAI6bTv`fli2h{7e1BHKV+sS3cq3vi`TzmV^%1hE1+USmO^o4efwtyXc(rpsscB!f`oeXN%LX8H3HbI-C9-VXU zx(&aofZ8Rr_!s^$7ydCH`WVLjUg!#2p{Vu^)-`7xwk;p}9eZ@^c&3O6QgGd*NHMa- zuZi*A0I7s}=X(b_^)}zr|6dP8-mEnfCa{V9Y)2;}u@8#gxSKi_;doPE-=8LJnfT!$ z4<|QVTqc#41@nkJ+x5t6tP^U%4uu>?9i5$rz6N_UX%a)7#ks4u&w@nm%HYAEpZYVV z0DCevahfCfC0N+Np2SZ7Ie@~#M2>7)tlMcgi`WBWI)_}>SU%rG%=3%eDcd4uKNy4G z_3St}_BdJPPN|EvK1DJzTr*p1;V0``373Z?16cJO=GzZ0`?!3i9M8UxXQ%O%dbBFao&CUFze|JWm|I> zHXejUZk>P0AuF0e8hsEOe|WWeRu7#Jghyn z%lR-CQE&eCC+C?r_-$jYjguGV4!3`f8K@9BT9?K_rQN(ef9-Ijj#}EJpZ+TB>t}9r z9(o-Q-C3_Qyc-*iw${-W{|V0IUg?Dp8(plCm~wR8!$FN)r|CW20&edIxMJ=TRkwX{ z^5knil-gegBtl2o)uDRgLlFvT=C|~eR`{k9-ixVi+tZ|5$Vk6c7 zzUeyNf;AIPI&V+h1NRu)H5!{uzn(w1VrZL7lHIOX?U!y1z!xUbe>ZhPanvcgwGDpF zlNj{}N7h1f#8i5~r8$z@wLCb0Rm2WunJMZY?Q+c|$dk5XxBklh4|Tb`u9Z;y000mG zNklaAw?E7()HhhRpDt*vw z`2E<8nO*+i-nC=SOz!w;M>#kzqD~;F)(|E;; zF#yD^Ddu0)Yx05{>eBktuD5pBdgD`V$20z<`q=0GPz0S zsI1g&GN=1XqOAesF}(grnc`DW^Wik%6j{ij!{|hB(C*1gS(Er2KmoH!S|Jq-?g1))3&(CqeF`%T@ zWV}w6m#O6@RfYEnxkd1h3v*wsbKbCKHyPX%gY_ABxR)A3J~gq8^dC3m1RD)mDz4FihkG%jY+@d2sJC^Hf<+tltTaGvv4C z$UG5?B1Pzej1me`#!Z4P%&90C z+ahj*%y0~(5KerH+H`K#wDKZl%bdc!)c>U%xJ(7VS#N+~jo>r026ZOus89d^VMD(4 zgjK2xC(nxs-aN6E%s1?l^jh7f0FcdKo}*uI7*R)kC(oWxt4x6)PM+{ADEY}7tRlW# zFKRS=b}-3NYf3xwKjzjqJ}?9J+R2g$$9X$x!$A!9^{8vcm)pF^6`mRHVNwN9WI-;H z+}osVFB1!#;tw46<9JE`bqapr+0^m88c*ifwRAu1YcsPZc!zl_tSWIU8s_ZD-U|Ea zWX(IzRpPS;U6^NT4GQEqnI*PK(#gJE!9C%!?)iL^QapR+@+xz$`69jz6i_%%;qCgTh) z4rtl8Vf_MMeJT^{$Y5>*euJBEur>t~%9r9&taVBV$S^PCLR@;@Ah1^^IX598YY^s? zP#g8_cLe~Vo^{?ZR&@I*AN-7o9J#lfBSqNOkUZ?M^m=o@tp$adf;X19=ZahdpF##- zhACB376B%c+O6DYD{FhnmrW0@ALKr-H@Dm)FJ9k-my?9ow>2PAhd5XEOOa}z8*oI;`1DWip3@%gSqBac>OXLo9VgTv8cH zcr8Ruqq0(u^geRVr;RHf(7~6y?8SmFJ;o<2xA0qudzF><6f5`kx;dv77*Ov>c2?s2 zsUum4oe8=Ui@A?calHc?j!E+x=;-1d-gA{w>Q1pXW8l>?GRRX%uNTkz6`o;_CG3Ye zv0or7aW|=2Q`Dtp%oK6OhoY*HwxMh6rHJ9a^`3_7nl!t$l38_@ObqCP6qhQl2$2H| z!UQvmJ||=%j74G?9BmTq_(Ck96|`gQn3}dW&+Up&`|ipEFZk)uxcVHT645LNijcT~ z#53`*5Lh|eAz`u7KKa3cfBP;uQf(bMA|10~6!R$NzO|Jiu8uhsKAcG<_-)b(#+=%% zlN^bQ!kk#nDBsJ8J4&yh740tgla#TzYi8LZoO)o$!s7q*vmfWp%}xII|MuVW+uwY_ zx9%V2oyUAD%&XTzZ3@Z3k=Pv49p`)kXS7^hUIDx2`SX{wI9kV^2Yoc2_U4ZFEpPDs z*6E6$Iln(Az3}d)=(vtFeXcprtLGFBeGuw9CvzpIZD_Z(yiKr$^@z1hMQA1GH3J5{ z25W3aHZk9jU*~`M$+x8W80#Ri4jE}aVD1;M%_jp z07EU09=wz1uUpGL#g@;y}-;%(w?1TT3Z`?1q8N-X#=9}#xOuyXCt1e!wkwX7G zze@U{KzOM~=r&1A-8PoC@SND)XDtE05d5RGKZ!UK z^wvas_meiaANe(VpDOK>w7oCdk>=W9o2~trv-gZPI7Ym7;UZ?+^ijfro@@JwjsGO) zWL+lwCjKof+%{f$^NFo;DAM(AfOpP{1FjxvAk%$8-c( z#1y!eZSjT74!W4zSo@>GHip|hC6 zT7lK!to6!swW{)?Pd~~Z|NY-XiY&Yd4M!2F1phR)0EOi^@ph;js-8RbX@3lz2qRst zoOZxzJAUNw#J~w2`#jdN?Ym!NVuokhj-N1xo?#jU|JGsTY*k@Y!l91l?R-#RR<(%( z1a-{iyckM`_!+#vu?*RbmthKJu7JZ(3xDzVPsV&Px5 z8k2Nxz#S?%4hQ%Z{;k4?R=7>HYeUKpfsS$T1hdFraO^1dVw^AQUT~@6imhsfZXzG^ z6nf@djH~^N`Bf^3KdN6~zhHF9yT*lffH!ypx)9T2ZmYq%F5oVFAiLnh$}kW6>VlRh zMvB+c;=Z>Xd@x&h23~OAY;v0m#)A*<#g`f*Hz40;!B3nEaF)OsZM9UYkZ_c8O30a_ zk6++X?2}>*TSa{Oo>`+!mk=MYTAZ`}N`ll#+Rr!?B@VSN3{{ow53B}Cf}Tr44RT-+ z)8nda$BdY+4*;C%k+VO2&Un}=ctu_C@JD72bMWI z2Uy)6T#Y496@*DwBVqO>dhNI2)xSF#sfFDhs49+C4o*t z`0!a)7~GulAOGPOe9?Z&fBTnz$#OaJm#@Ce$~Qcp|K!uG{L(;qQ{u_5+e#msp}RP2 zsaWR+_aEi!Z@N(S5;oWewBw0?qzWs$(1!s`;o_-%qQkm zIwv^JrTtF0I>}0mA%E~I+Cd(kwdwrb9~meH>oNESCFE|>mHiM4iTn^SVqbXn9e;}yYG2U_%{iXa1yYcJ?}0^I)ygH`jCH9?pSh+ z$Ha9_u_ue#w9GIrWFSk@xJA2$#l0i9$qAmQBhTiCe`Dj{_0IXIstoq`u#VB5*rX3| zcmcBvlNZlv&YrhM36Vs+Lpl(Q3>=P}_VE=&zn=FIxBJRbX>4`aL1;Ka?MA!zjC0Zj zsjB#b=(k{LXLBtXynK#P86(M^oV|C6Ne$E^7yef}m{$=|@(an>7w3DsV@c$^dk^h% zY7T1_Ob@Ou^W@QkTwN?F^kRiJ$1&|NAJ@7F5X-q_(U7W{OS-yT*$#4$@ZgAUz{}^v_5CFed6PM) z^DVzvgnRqbPd?7?{`99zo}K3No8+)319}U!jQox^9`J-?Tx)&d8S}M}zvoWdF{=Ta z)YioMC=P+L+2lmS{%$|w#p$}Jz|ow_kyDO^t$px6T2K=F@AB&yeD!Z$)QI_~=LW~p zzXSIRcJ^7!k?mM{4Vt`J3tw#9ySkSL_aA2A8TIPTZC<>5&9nFv_u&6f$8%iK?z|Uh%8-1#jRL z-?(3q_iCNFoME;DhRZJWiCuV;Q@oHDd#A>2%C?I63}ngJql!BAe8N!(cw9LLHC~wO z$e?CQRb_yqRE-oFTc~-B3g)Eu*NJvbdhKZ1FcQ~}d`y_0ji;sc`J%?AtxtQE*1VE7UCRM=*P+uO012-|->p5vDLxT&rLbG@Nk~ zEN-C0Q;_RK9961qb%cAVt3)eJb4HnZ`f>C7F4f**RhqvB;f!q zaG6ZbhvuXo(0DpyTvPs4QspI~gSC)}v}Y1*@mRgIsF8P(vudQOkdZJB4*}<#N(%mN zsIalJ7go+K@Lu_5LH=ekqjYD;Khc2GI?{Fvqpj73^f(-q!DjN!7&Jn7v<^Ch-bF@! z_M^}82i~lI=bLSG;RgGcU;ic#`1$cCpL~)F<`DQa_kP932@YI2nFv=gPuxJz;zjaN zUc7jfl@A7|;~NkSa4OcbYNQZjgz-OvcFPTa$v5tkHB7+N5DvPLIJIJw?qd^9-<~rA z`^_&N2H`}$KHHvjN)?(D_|2@?R(LbyoInugi4=SEf)|X>-hV&uJ$=fX_J7L_^?u1u z+{HZp^^4!-qYvNj|6%Py9R~<~61(vv5%`sg^&d5|jFHQ$i(K#y{LO2Aa>uTF@R1s< zQbmN4iZQtG^Y5z^IWI1j4BBu^4CM`58$$3$)pO7m_$P-g9PAyg%o3liA7a|4D&6Ye zAPmnoFgQ08(bQy8GjmM$1%6fH@sMK82YiZqDm>6vYUQJcs8kg)cBzCjeP~6%a{0xa zodX^AEj4}T19l|Rg0Vq14@WI`aL;bU7Ihm-sHsvJgbBAvfiz=(;5*_UK9%i}Tw(1h z3v*a%vo((yj@pCDjoE!|EC8ysk$BE<6yq~T#xZ{-?$gVQ%if>MvJkzpR}g$E)z_E{9_eus zIBt8gsL_)5o;}S++%q44@In8NuqSH?NYegICfgyN(*z$p&iK4r*#sXvdzxSU_(%Ed zgZJ}`AAgp6S4*n&XWrPIH$7m)Lk=Av+T?!4efEz(`+0u!@ke|K@nd*BfySB|Bj#vY zASB|#V<@AiS5?%a;D420@&(2(ct-x?=bz`@cizdszgRO^XFF!9Dg)gZ3pJ?J7=R_t z=l%Dd@$1|te7pW}e);)Nvn(U;zxQsw;@7)3{_kYqzViGFZO%s}%q6i!Y`dB0?a*dF z$}z$^=$5`P4u@_^yde6t9b4;wBM%lv%m@w)>0=jH7-A}es7kB2RM|&YK{vc4aS#sB z+#?%Gin>(C;};IiyP!^0ZGwp&S2(Q-PULO{mxcX!|Nd1!KW}eOdHv=lx3@SJzW7xw zS;ol41#9Reg5Kw&Jmf>31ZPff{!vSY+!SmzMymUGRfTJ!f573rfqSO+9Jx@T^sYwJ zHM3Or z%}J^X8A$r58d=7Ys>&E4Ka#;SZOPK@;I%&Vi*K@nh7|lVbfVVtR19X8T5@%9!5i@F zJbv&X&)#{I_ntn@2khrhK6sB`>fg_&AAXomxc5K% z=GoJC^5Of>^6`i7hquEKm6k7`H#py{lh=x zA8CK}^PlGDKmAdD{K<#;n0xEJ#}D$DFZ~`aR~vtxhwK3OPh?H;q2d@9uS>;RDi(UN z7O51qAKedIW2y;5q&Bf&6^@A{lV`BckKPl!=K0J?Z~%wxkO_y7y{f2nrACDvl8HTS z3r8iTBq?yUO4BZ49+)e_Qm&N&d9smOJf3{|GGh4t0#{s4x6N&Tv#!sy2yhrw{r$XV4-um(=`! z`NhxjyWjtN{{Hm~A}be{*O}D)o9~|IJARq?>8GD&^1?f@uB_8a9mD`CfKacrtn(Dt z`u@GkEKBjL2H&`IS5A3RtF$b{oD#6OoX#F8;-w?H*#{#v9o8 z6I;Qc@Gau1eRi9DYSDSI=cpro?a_4<3x4fOK5FBBU03@_;j^%I#dyrg!++)q%*oh! zuf2C5k>e;jJ086_RN&b8&3)HhA8RE)>vM3_Uq9Ec<-lB%_RaSX|2-ytMZ&_;Lat&y zg@2F1+uDH#c;-dNAg1e!`H5@Y`9c(PPV+PWzBY#+dDH76rr3hwcaGmX=X<7h#olzz z-TyEhm~zxjNLz`v|E{o6n0NGLpKd(i2;bft#0~a#SjWh-vCW4RMunzNpC|aR)ZDj| zeL3^+{)6zk&NJmE?u+|;dp3A+SlAoUzwtVHyOe~;Z{4jM`1*hH-uqekrR$nEVON*M z8-S-N)@O1LCB!s;YADafLPQ>_ai>Onsa;{&rE3F6lb1N$1UW zXjeK$8zSBr7eF{B;%zcUWdJ>B8#f%dZ9W*N0h;X;_l&ivwrkOdr$1d!RSoD`H=x>G zG$LTtm|1#GO3zV|SLy?JxheBs%pd06C-3BAK0JT=5pSqJ{(v{u@8%=!qxYUZ$s@iUzvM&y99_22U4*WctzbbtQptNi6}-{!A>dzrs}^AU}fBgQ>`B(hD`0LmC z^ViSw{MBu0T;`p}kKy!D{(%qI|LIr1%>U~@{UZO*|M<)N(=R^H=iFzX!u`E>9_R5T z`)3SZkCfWJ0G~i$zn!;kJWq;s9921_Sj%%A*@wL!YNn7V8T6N=5c{l~YuC0)q9ioS zCgLR#ztFUwF@@Z*O79)O|Wxtb3PKpl-4)aMZ|vcBp3{U832v0$soDk0Q~ndaBO z{e3QY(fZj>enbljn>Qelp*gtIMQzn{6ZGF3E_XseZukn^}_%~yjmL1 zu8VVC9fc_*T|a8ygD}=#IbnJec}(yzB&_=mnm)v9p-zX7204n`9Ld-9o*8V)38EMa zZ$dtP@_zn*|J(mJ|NsB;U--uKgIp3@)ZLtAu0zm=dPdyt%MU5BZ_uopIANt2Iv-rp zKKj9N=Mfi8ZgOl)?TB+Q);J&rAAkzGs>)0Y_{G{4buawu(Bog!z4V_s`v#xjAN+IV z2SbnGm%i-$^=W?$CIzMaGPvRFmQ?4#A zxGmOjnJvX>3Zyen3-V=TUeL1*a3A}eX(jWTRLmS^Bd>3;!t~F7}1vNkD z0-1SRx#olR#aMb?iE%hscWN`sezxW6?ve?ntS*)%3o@A3^~J~~Z3&uWSfdPjm4;;A zQI5Tk?O4HFcm|&M_4M}kbzZ%G$*+;m^EGc~#h6s@&(-vXCD2$W;53vARY@v{5# zCaj05I=5@2FR`2~MkAds%y+Bb?z0=J1~XYQ%I5_&biKvf?OU@Xa!e=NR7H~ZCFY08 z^i}l7t<7Bm+qPZOOd{Bl1eRe78UR{6n6aGjW9V5Md%!9V5rC|fm zF&6G6M@zgvudhd*@QwBRPoL%|d;#_IpZqwV|M+M9X86fFPh$OVZf^3NFQ~r$=5P6m zH{yTeP5D<}f8DRy{*&78UcJc+*5)m+if1dyCpZ*{DFaP;}&Hwu!|6~5? zXP@V1AAgb$`PTozed++OOYX&m{0lW7Mg6+AGuCd56YIOu53TFCquyA;0L`e7${ zG{#6VhnCo{ph#&KkGjy!+XMTtH>Ul=vL@cQRIE^s8X4@RN`(Sq3kN=NKPnSFg4F=@ zZU6uf07*naRCa(jYRQ1d!n%(T!-*+&!!ZEmWLQ}S5xa~KoY1t801~B)H>r9B2_!dI zC$a}F^q1QV7QT`!6y}m|#V>2k6>s#eFO%zwnfsTQd9Xal!{uQfUOeLGk_UOhH#|@7 zUF6BtWuEdW{k{87^Zo_UpS_=-J$n~sot=^ZV_9BJ}+YNfyArY zi4Q=x<5j+U^=%$Md_d+()rw@3LCYquB*nM-gEw6l#9r|NdY`-(^L6|mval_(aDy-S zENuKG)mRIDHE&aVkeQRc#s`nVcradwUD$(5UK0BPc}~o?xtK3gyvRObe*UcY-+%M# zyks7)5g$ZMJ?lkF>|xN$;%ht=Hb1{I-h64eWiB1*U7Tt z#yl75u`suVy22uvZ?ceetgrZn;T1f-Vf-2y$byWFtO$P0ZNYcR%tCz^YnftB1qGy% zQMakOL0*H6pAW8iFPGz9F1X<@mzfXWdzAmrfBID()W{WEUFHY1e*M$s02rM~ck!>C|evS8n&c8)9UZ5Ey#3(uFO!dx!0 zVb2|4C*?l&4Ba5vuhbQv0qq=S}7wl1FS)P z+O}2(FEmTbl44ED#bV7yV}U`A0p=#R8RT7%i{?&!$XnFqatZ4&_PJD+%q-MlkxPOe zImWeOQ%+g1jr9Wi)g~EP+D_{(sW-pU;vc zNtQ2m)I8$en>@2Jt164r?qbcSyLT6h*|&T^L?HMlArJr`AP*uBAFzO6mQp(xYnTG_tag>c-vM>g1Qv#K$#m(hnql3g>`c zgF?#0Z&%wVDVkV{+SwWO&9!f|8b%%H5Yw*jZ+=g%n2yXA`i|3?i#6xT2)n^+ zFdHXg$M-md?j1Z*F2F#oayX^$ZamO>LuEMsM(hB=-k>Ek6eWHVEC%8S{qL@QuN*fz z;NfPIOMP{X+^CVd6vS!Z7xOpOaiiK;SE?EG2y~nS)|Z0ahEVH_5*i^9d%*$f5Ob}n z?^rd;PR`7AI*;lzc8q9>2uKS2$#%wOGOpQ2`SQHSN}^^QBz&oS2>Vg3rCQkEpx|0i z1TO-N%wgwb-g0-WU;7DpHEhUj7wZ_6d3HeBlBQNG7HSVQ5sB9(;rE`gelCgbm zxQ`|N6_SwozSxJupaO6B5|EOKE3gs{^857_4gltq2GV>p+5QgE8Ttg z01u-sQv?6CwO_yYzW(C95A^P9Z|DV{;m+<3+`C6;BX04aYHHvc2pU?*xg_HbDp)c_ zPs3q3CDbL$SofkD!5sU3;x?>|ZTUepsZ&ss2ulV9HYQOUQI{ac2)i33*O7aP%)n=0 z*SOF%=DBH)3PG`pc%cAiFfR#?j-O7P&Px?e)UY3*M*N0rAS(FNAk-`LpvE6FP_#~X zp)nDHqMQ#3^8gSLY6M#hJ6iB%bHN+-V!6=n?h@M3?%r;-d$fCdr?j_s8rsw8GkZGA zgY9`9w9oONdiKIOo#W@7bC)jYJapli3%c;kdFY%j@Zfw*<{`g$=_33Kx>$M_u(>o5 z58oG<$n(`+(nb0gcu+T;r*FFO%w=7=@=Vd?XD{pWbIPvd%wHKim^wKNOpP;MgzMz+1egPlPAJdCG zaKHG{3wrUzmvr@otI!L2{)HFx+zZdqKCc&Ed`?%dUe)u@UzLBRz2cvXp1TaLXLRLR zi2jx5_$hh_efj-OX|WKilZ)F%;YGs?)^&|JxpwoW=T?`={e$=3)=xk9k^bUmALzHg z_^JNlr|;`u{N^uoda-1It0sMKcL#S1J$`b47f#l4)IL{P;ci5O3YTEqY(S{V}<`1O1r(JMZhCF#c!n{Y3w>_utoFyz`Fk zKiJo;dk>|ykP45cEkPP|;a$IVhc9WP-h1OMUEV#VpS|&h{^vjYseb*VclED+`D?w- z+^Bah&ZEZFN*B+cJ_vLE>aj&X)}r&r^G6)aa`=E2o0` z1huRdTXuA$(>ptQ7cB4ah2fpo-_-kWy{ivids9Do?NxoimzAHs{+fOc<|5=jfBmf* z|AH?Rzj*Tv{Sx}co3GQpsbBEZ<1gU<@~yY^%eQ`{zxXlow_nq*X@B$1Tl&pAZ}Tnm%~> zb#T3@pS=1b{e+9?PhNdZKP!B1=;v>~1ulGp^%wMi`PN(dW%XxVh3$>P_;WBipPwQB z$?LD^1Aa02fOG37uf43FzQ&jrtRKDphJJ+H?VJ3>`WCf#i`L^G5!>zC#DBZ^ujq}J zUzY#AGBUf{gD`s_u$aD~2kS1!}PqN}u5ueiOUXSvo~xp+xe+&*)KbIx>G7kC-Jz%^~6 zOS-^^fb-`s>fG6LI>*cZ*>h**zn*3~bLNar^I_ujsdKcap&gw%y<4=$M-9{N?jG0E zoryT-e2v}N8yGLN+!@3@khK{axDGElx0hUpcZ!x0tF4F|q*#|??M-bI+c%0^ckb&p zKZAdN{kER$AK0{lwdtco`)F;f1o(*Z{J?s)z zfWh?e@u5EY;v0SP&DZ+<#~m2M9463tu<{$IuI83=y@Ic*5rLpXDDgnSNNq8w zwT3QiOZH;7hEGCpe1Xj=>_YOUlA-5MhcWGG9a zX>$t{6{AV`5dC2OB9dO}O=3f_uu+k`m4THTqM;~=5#T5STSSPx zFpKpN(Nyyin%WkMfZPh1^Ki?9TM*MPON(L9g7w7Wws#?_d(8rj=TGhGxo0l&kp7%r zy85i1xpYB0tiLrcO!xUJef$1>&b52G|L}>P931g$hQxbPQSTuMVi#L7$4UHDC_OHk zd&H8-`ruQwT_mkzzEz8_Vsli<$U{7g>O>t&t>SWU{!*RS38w6g!2pLAMY~O6a|O}# z5)hn;wreg4AH6pGB5*qW(_}c$GA79T=za7E^FP8%!eHLIHc#&Fyciwu=xC+=gMIDuQ1@hipM|y0 z1L3|NK87A0>fXagy3NlvH}2fljoY_${njmAyK$@jRg|x;-_V!P=X~w>{MxrNefHfq z`t)0<+OO$_*ApFaOqfBNDp{So@z zXJ6@e+z|er_HRG=Tz~t?r~2DZp-(>3-?&fvcb|Nrzy9zG{SEZ@AAT;=-~Hof`rALk z`_q?l|L;EhM1S|;$NF37Z~pN^bpKI*|H()C-KQVxcb`C?exl!V)B63VU(kMfOuu8% z{qEB*(fbM>GBEu9lP~oLc>nO(XYfs5;On!Z-}4jF?^&R~2jlNP{zSjy2J}1HKfvE` z^wbyB=#Zbw7Q4Gj7RHmqLw$eiHa|;!u3%DMe(rf*D!G8s z-{Zx~Kdp7wCA?ng8!iH+1914c%ld+`MslWYhEIFrj&9w&3*Cnv zLT)FzdE+iNx9jhA1Lt$RWbQ0>)%YrI;uMqr>d$6%r1jB} zR-9w&!;y1sqa(gl938B*|Kt#Q!q20R^yKm5qJ7%^C;Qree4zbDD;*v@<`;kmIyii& z{ey?t?&Iq~Ir7D8v(cJ0(y{|@4ev-hi_>ZWcF!eWvjo;4*KiAY%(YQ{9ZEjsbbzi3 z-x0ZNpwx;_uf}%>#-qbEF%O}A9UZuZXjg|v=&gu9YRyf5y?&yiqsKZr0wZ7UYT(zf(H#vJB+Qrh>+Jq`RuBj?UD=qz$;Jm9YtHJ4G=8@DMA!bo%(gory>Qb zCX4*9Ihi`XIyg(t(&$LLzqlm%B_qpG+Wdevtnsx*Zbbevljx4)Y96OBgJ=_nV)I%9 zy`nKN4RcFVdjlufz!B7=;~*M(fzU)FWD-1b5ExCtxg8-nOd>nrn&WFdmlCm%5cH`< zPse0THj>H}!vI$ZOyFFtM?GTAvLt0JLRH}dv8kibDH4W7I^G)dw^^rFs3Z?V8(n?wIepLd$dUcv)Tl=kMsSd;jKyQH%Uk)J zW#*a8H%2=txfu+w4e=*ZVQO>BdWtar1YsY(?vxJr7*ALeX93N-hwkEACSxpeU5yK2 zpk!Pp<+F>301L!5F^prI+dOaeHGYAQS_e`Dy3oSs(XuI7i>viftwG~sH7O*hDI(Nn zk~hbPVybS63UCD1im45Sye(+AINc99Y*T2PYs0qj^}1o-sC^Ohn5?(nQv>Vu z^v*87^j^{%FTJEUUwKKFFP>Fv(!uJ0XQjKk%kz>S*!Q`Ht~MhNtcf+}Had7v=X~hQ zNrKg+YQ^Scti;@)Bhe4orYel(GhriqXj>D`|LT*AiZpFy+v(4BbiHk3N_>?M#B@2< zp74^BFde^WfDaaq3KSii2m8+TIvKi#5lwwC4H{u|*4P+JtY8bvZtv6da0} zrzm1RV^BmuQos`wtW$vjhNOhp17eR1McFh3zI|RRh*5gY8qkS7Z11%Qm0p)^fI{1# zP^}};Hpp$vt^4qFVrv3GjqTW#tbv0h>Y-#D!m$krm`pOeyaiDk&ciE@R*m%V!!j$o zB(X#%S+Jgv5rytzl)ghZmO#^}&<3X+-HxA;pdH;Y;rGzUNir?QT8ATJbXMlm-+*b8p^ft@-%TTJC*GJrU+UmVu$e3~b>y*FO2a}4&S3GH zALvc>7IjTEY#R$}ga6(JJ>cv4KYsp|{`m1{`U5W|f8?d*({HZn`t7^=l85?N`Rbos z1pHt6pE-3}hdd0f{8KqjBb#bYmGZ@9Bp=_%y$C6d2;rdo{5)2Fv1E~h%{qxq$x#eC z4Soo9YIlh*2RHcAef_}$U3>gU-|`dK_dHyF&lj<4kMHZN`}g(DgM0c8ei3im-#vV& zZ|*+OH}~!qeal7c+Xwgc?Y;Z@n*P`K?&&M&3%>S!dGC%szja-G2-c32)Fdkx5D*_2 z0+Pg<93!jdf6oilfB5Ua(SPA*xi9YC(Ia(z!W;g*$B*=5zH-Z7%&GlAO&=c}QkUSy z)Tv9?@#Yu|lNiaGb&N*-jX;m_bBeE~0n^mLWV;l9&=-1A$hB)j=mmcL`Q0D?q(6Q9 zss04EfB5JN{qd`B^+#S_Km7hX{o^&$H~JGVwja{}2%hQV>)-3+8>a8{DPJQ#y?LGX zx<0%4Jw!`gKK}liOds+R{HJfe(x3Pu`Nyxm*8le({-7gpd%c?)^ZEb!yT8-leet>e znzi#gbbj~MSNeyqzt$hV`34N%>L2m(As9Zsflp$8h;QTjlz5+jBH;S^bz#2 zX_kNF_WHMS`;oC*kJh>$;>Wt5lu!K5zCPuJ?yGCp^)+8Uzoz}_yYIPZL$qIh`@O#A zCGcx5++Wgu`R#RmMf(+F+Z3Vm)weg$yQ!~vS^S0#}zxUt?{JXlt z8otZ=_6LgltlbBX9_SG-PmlNtT*SwVM~@ElmCZQYt8>3 zfI}XH`~rT&xw#(KoO7EKwB{z>`BFX7LVZ-{`qa7BcukG;M;>6!6YEXM3S`|!xDAPQ zCvSldCFeu3`lW7B3ypjf=p#J)V0|PyG#pWI41C!|M5u9{O53!C{h*!=OcEyyDgj9m z!9nmOps9nW_oVHpWyzxrN*-*CA@Qf7DY5HD=imx8Vzl5SPWu^^{(~Q%d(JnIjmbF` zgSwiyd@1d)+Xf8i>v)^SnJERHXxG&GMSlIfe&e_~o{NC> z6lg(UsIGbLyM;2HuapTMH0jl`4yETF!Q7aLW1YZR)OeQFz&=bC{E%O9`jk_&ric)w zLD6~v5>fj}E=IsoGBJsb#|p8Zuw!h#tx;E_F1tK*F8wu_x2zSv+F8~jN|w~p*EKm$ z*IsP!I10y-8t!aCxAsu+177KQ9Exa)a4Yn~hayS)wnTMRQzxYMn7bUE$rJANJ4TvTmUEOBPE^Cpd7P!JKRsM zT)3z=Uw%bzz48h#h?lj?N1}Z`V%*`rc9;9wV}AAWKbx5Z@Aw^wxuK4D6pdWl(dRpp z#*_(Q(6o1&Kp!*oI6tbEFz2-uoE4VwEUd=4mYnCoHNf>4TGK$T4GNQ-iM_LCDRSpz zs^m)o#xT0diNL`+jjsn)I|6tzHM=jCbo2Z?b-1BWDm)FB{;f? z03Rw{PoHKGJ^l`Iq{Z55P%)m-)rwCqI5$Kl#xcy2>x8d%H`K z79K(|rj`sE^=M%5g(B$#LJ@&pP>UueO@fcb#0O7n)M*HG2B;N3!R?qyoijy#9K_}Z z9zAvj>YBFYVj*Mk2n!q7`zW%L06o!0HMYnq^5((J z-wtWbO*N+?fALMeY7`N*Yl%l>B%d?M2}Gkt3k|V^cAzEW9cTejC?3`aCd;H4q-YWg zk1%sf)L}y(+=wQ=)jIB1YP@X|RsMU;iwOKfG9~@7sDU#;C*GK{t)*eDm`V5y;f&_guD@D`*3@$3 zWopHVxYD4tDF+@Pn^qyM^pw{0*QCy43NK|Nw2}Y5-b!n&h_j-mBegt2XQk8z9&WM1 z5x8XX1Qav5S$Tb=M(4;wYNIZ(+?8M6Ha3CxIbYvjxN=#i7P~sTca|^b8@^PpmG%M7 z$tNL>cM=K@=KM9HGHUW6ey@ubWw)VpuDfZi(=u&1$2RC}$i+0p67inWrX}^*Xrzu~PzPdf zpb^?I-y`eLw24k!aFXXb2dz@95vhZ5ED9OtXpGQ?Ys)y3`y1mkF?ZDu@^ZXdcO4Ai zpcZNydEKY@LkxC$QpN~%C72SsiJB5WiOxT{Kz;k^Ij#;MiX$9oQ2ZBil zUj0fmXaFZG8N{uSMN0*>4=}1Yg94n%wW_D|%rlqtm=6j-gC9~&(l&ouaCB{m1Z^Kq zP(x9L-#GBYU}7<+ZvW zf^#OQY1Vv)#IEgz?bIc<>tk{)wq#t#`o!4s>Hffv2gTd^A!i&&;Z^;Uhj>OB1!IdRAYGs!u2a;+&ae@B?a)*nA?ecm~#4!_MuwQ>XOO z^DpY{*I(1CFJ9Fd#*ZIA(M>)`-Qr`_BOW|gJQVxmUUv<-PNvr+Yal(}CI#oSMUr1i1vb#2gDu z9i2qC2yE7oH(a6ao@8wJl*xVLaI1MUMt6hjX6e}23>DO1-3M_R7$Q^Q7D;D)b=G{k zAHgbx@YTWC8E@b};g{$e_a5jAKG^)})35X$9}IVSIeLrw|KcYf=z}-k($$NXw1@tZ z7m6hh?hE{TzM|$F@5mxT4T^BBOj50ZARrVGVuvh)Vzy(AMKnbqZ!-n9)H-#+W@ZYTm0M2q6nJ?HMWorm@|cRTF}Z6u1G6xSEiBnj%sNvzsx3}9*Y6vY-X zHEr-M$A@61Cm)akP(;woq^T7PK`aV+;#k0q8$fFdm462YR%~4|j@}hu3yL4y1cF6v z5))B`+;3E-0bVdstWyP7Y4^9(ux&h;2CZglJVvxwtML%e@=#%`*iEe_XHXcY@j?S! zI7~}ZV}Uo2nPQGxZ7nsN6fZU55H=l3>=IsJIg#jzIuTsL79p+o!G|KBI3^{-5Kwrg z%K!in07*naR81(U;|PWhZNRlwXx*hlz9`+`%i)`EzAoQ9{ouWSaG+q}CzxuUiIb2_ ziPLGv?+6E?rha?&zXWlLix5#2L0~k*T!^_aFNvLs`gh`2tF;ax;g55JJVQ(7cBv&d z*MZ#WFd+mV6M!&F_S07Ij^sr&aIXrHg4FFyO6c6eYtJoH2RpkO`9>sL6iA5B}*Ow{Fb zMZqY#*5gWxrF3d&gK6P}SpQPYA4kVRi;fs-ZqEm@b#;_YhDx3r|c)R0T9$;Wi<{$qW8`$7Fn0BhHT zdN$mf{IZL7&CG!QfbW4hX(dnmga#gz2JD)vNZbKx#P+#1wSxj2&SL9~YZ1DXRcA}szrl#Hk>Ka?h57g5*7@JQ^T`7tDA482pSIL>bdMGEJ%V+9J zjgrQ2i(m2{nWPS`B-eC{Jdvkc$3>0{e5UHbymh5IQi#6LMMXu$$I?7A!mGffX)8W< zF$yQ_1E)yPA}(209}l#)YY1inM7loJmN~YFz1zUC?W2eoB8GWIr7#)I{IH(c%xxH} z{S=vrtuZ<@H4*aC390gBENU0jOw?JdgJ8wD)vT}D?5jG&p884ri8?ttPS;d{NzMR+ z5gGD;7+La^TqBRLt=v!`e#0;#II5_*Z;XYf5x)T)LYGU4&Yd}<0iC1OYHOg{;K{k$ zx8rkvNS~V!4oYP@5Ffcp4^BXa<(6(uj^*VG%)OBlnWE!sfvJF6*EV348E#$I!fk$P0BX`UD84U!<%4;}WH2@$;%W9M%FMJMXTwGb8dKhsHAwVPj^=}`7vKdA(fomWzw_-7z6(iDSynHsMA-emDvfMXrcNO4V}=E zI{D%Jh378o?KfVozpuU+c6IOm6WzJ@kYC}R)L+M9Mr0UX*}gZ|^#~tX=QP&=ye7C( z)GveMyu+yL4(E-)DYwj*z*Ih|Wul+((|i;6_L!->lsg<@<24cyB3ndmX=+EQW;#k=q5 zgSX$%i&vh}sU^|;{Kxa-FeH&@3Ms%Jks`Rle~5#&f;bUykOjF$Y!uaB&<+qXtWcTz zjBC(v6-XL<>zU{)_#-GJj^4!<;V~WWbPEY_lFFH7J*>HCG2x;B#q^z*WTYK}4X^_8 zzM#mWLzj4v>J+gHywrYmFzVdSDMlUtO%0tQ8yFAs zAYPQNT)L=x4<73XY#R0yd>Iz;#_ZZ4PxKlmi+Dlmaj2xGf~N?L@ceLA4_x3ITZgxi zm_r#GITmKHcH>UgDL6=9CSMRbofMn-+J(Q+q75+YXDtO66O(-nqgGsazxeK&-gx=4 z&Yq(_2lu3oE_j3bgy*F2*{l7yr6#PIto7DFliKI%;rQov7h1vz)|~hch(_HPYUM{#qy%4J6c{IBU4*FT zppKu;S}0ms2*?CDO*iAx9^o2}dt~Mmc_1}S2 zNY2-~9bFJf&d2)l28SA#K5anq`BI`m0mh)VCV36iHDIIgya6Q0Eyyzn6vPkv#ie@J zL=4aodC6VYL%P*Qg2;$f7q-HK6c%DC*0jck4?!?kld>Nk&}=7TB))jz2>gV)0-Jzm zpML2Vp0m8BTDTXCm`j-k95ZIlf}1h|#;iLfEj#+goLUnWay)ee$lKf!&+2J@z>CpC zs4MA9=z>9B|1Bi1@7R<0^+GiVAsLGs+cQ5fFasO)75=003Av33#E#Qw=Nzb)b9a6X zu~pno6xiX*FpLpOYBgb_{+>_r!x?*1L@F>0V=COR3zP3F!GN{v^+8Xrne(Fl2~L4i z%&pQwe1j`FkH)cU>?&)*GYHBTMQ^6mRL-<}nt)tFK?7VMXh#h{4L<=-m2Vf54u`hJ z=yQz-<}X~If$@+k%*=Dl=LcK`F@5b!;lh1tNqUq9U&Ij_QdjaolAWBWQ5a)eQ2Rj< zAaOn6i&`iG-Gu~hMKWZKaSkLtc6OH9k3cIQcTGExPixe`s@##?%_U#YBk0cIMNEiEc{Z^)aze z^j(vVPI^7jitCIPoM&7oEKBO(^LW6)!2C5ZR}|KddMJE7U|kJ7iww-spr*n2Tqm!? zF$mdocJGW{c>Wpv=#4kzFYF8E@$S9*x_;-D9vtjz%{m>4(TUe1sC8qs#D7zR7mVPl zbN+W?nUXf;IkYs<3ur++lkhQ08lVu4U~oRj8)LAA&uws4+N|?|XMrGZ5hHuYvWfCD zT=C2D9ezQ%t)rv+-0t?Jajoc~e$*KsNaJHx*pU{jiG^#3j{*6D{OcOn(BYgXHS87> z0VTZF!J=d!e1XFs{#;g>uLkZ=)*7Wt>+^R*t?Pvbvypzs_rUu1dD|EVID%_Rpx;>U z&3Seyh%?0;spST8jbO5GD9`=0~rRKy$!qp;EIj{^{>~y^0VB2@sGGoNQ+^^OVP_kSc z<{=!F|1CysH!DEpht}+BIGAUmJK2s%I|RcxEz_T2j5#JMD6%7;Pau`9^9ogpsLJ&c z8?55hc%zC}a!Fw!ejLwvZux>=Jo}W&hDCks6TLt`9GBX3FdrNq%735t%9SfxEEamS ze<02B;G!k;RXzj$c6ZM1hrC`KcK_h9E}T298Tl*y{61BJu8{8<3yKz z7=p?2@;fNF;D2}h7B3ajg-e&f{urk_O3O{Q({?Lka+t^Dl2yAwYu@zNTzSr%KC9r* zq%`ZJ9-MSZ-F9~eojSF{%gsY=dMA!VN!80&pvmsWYryfnmSD*>+~zmC?O-cHuba?I zCC7QUA7d$uuIC9lR-?l{ThK7@Ia9G1dIw8Tr{G5C_Gt(L5Lc`b(Vwr_^DKCr9v z#$%IZQ0bv>mKWCS+e3jT!Dy28wiHOA%5Fg9=6Oi>PuLYkVprUm?`ErJ-=#B<5qgZXbhp5)3>^<`*kM5K(wlY^ zIIol3dybqxCe9}dYn>wB=0-O&716ZdS2h0=d;S_K;=(4+dG=EC1}K?Ov zR&-M=usN3NQR7(+|DJ2P4S3d3>$T!V69QMjAJk$|By#&sk;rHM4~N58SocKOJ2^~xo^`_?OZ?WO0m+*#`O{rmE-+K>3v zw&Sbu0PhFYloVhPb0RP>q82!EZqzcu8e(hkAwkFa%`!JdfB>6J)+rjW4JZ|W9e6nn zu4zQjig|gmJgp~-(^{_%)z^m_4^K>x0S88UlPU z75>)%&Yn3>e()^zI!7g-v@PxBXU^%-lSdNFh*0loEogdBvfh?ZlIo(LROip?2riLB zQonR-QYgc^KoYHEx{l~fej0))C%Gnghrtmgu+d?s4;mFQJl?S_ES{5zNd%%0)4s5; zb?CX?o-@=>;7pVI)LCGxb>J{!!;T|6eyO>vhraFP3w7yn2nem(gJX1+pXy6?E8CvL zxHZ|X0V|cAZ6VjkHYIm{+uDSf#K|XJ9dBSP|C6r3+5I3}ejLnntgJe(9Z&OCzBq91 zi8%@I6md}&eVNZZMx;!tIYj)_jy8I0hQ=f?JdA4JyJ>QD1G z!h$SAg#o(<&ec8`!uOh_$4-ry^$A;7a?WMpM3*=)(6Oz_eyB5?+8N@Cu62=9yGA|@ zjKN$ZE@(BcXdUmw(8)TM03VefR@~q@ksQ59gv{hXCs~iJCDY0I!#uz6{PVhT^Dgk4 zf;t7}jr!9_b&zBxxP)Bx=s0f8({`IO*^We^r5s=84_E zXoz{Kr5)JJb1>lztQ^|}K4XC69IS7Qc2s?8mnFCEL`gjBm=q`K7+6)T?nEboxAi0J z&^WP&9zA-fJ9qEs;iD&f@EH~O>de>3FL|3$YC}`-r?Up_KdT0$Lk$yr zGL@i7*a@sE9iLmFVBZa@1P?xIp9kkiLoDxWqq5s&!2qm!nwe)$kD zq$}pav{qFaNA>7!4-*1bEA_41YH^-CV$-+BF2o!i^ff|@q!*@8#@q97DL z;dksizvd_3>J3{4U7g@azHVZaipZ}pf{pqp5zhG~SbRRw=m%TQBUDS~c4m2uCpdO$ za&_E7VF>`OBs(#Y1juJ|>@2hnZ2)Mpk*bvxbc)IsV@VMKHHcO-ZF%-@3_7uaD$Lshxma94m#{M!WK=rxYe3%K7-;h8DeZdHieBw z?PeD)cZ|E_=vv49xhrElmLo8}@;&#D?QLL!Z@FzOs~U)2v*)K|RdPvVLu!Hhrqz0- z-+%m>KKuT#SYK$69;a?2IUm{#Hk7UY4r@2pMpgpAdqFZfV{kc${P zxdnr&tu5(e7w8ocID}!vw0uh#p$9k}lWXjArc`{8!uB<(k}#3C6K!eDhk!p39bX5E zZ-bfe@7gBync!H@Bt1(6{Mz@vcd^ug)8E1$ZCbB>^oP*$r07=)fqZj3uh-7We_t;N`S<&QoP z6%p#lEn888F*jQF1GW9zdgV;l|N5W)RDbnv|BcREc}@TC&-V4-|L&3gZ=a_AaQBpM zJlWNgeojx;XLZQe^L3unMi(^Z74F|xba2GE^57YL`g!Vq{LlCG51&w{({F3{;ww5D znzUSjc!auoj?e~pkl-<904z{aPn6i{lMfwsn5-eeV!-ZkV$zl5lYLaFS_h@1vc)S| zD!oSN%SuJKKu@?4HHipB=ux*+6Q?`)qzyJBG5z=8{VU=I+aunz?mynwKYsqDKK$Y< zB5m}+kKfX-fBL@OxcY+5E_by=&;LQ|f`zdlMuVhKQ1ie);q;Vd{w!-Oun2exQ4m$5 zc>{~rxFvxgCdZ=74###gIlTl&A3G7f%UhRxF#@*ymf+%7s}oz&hpLzj3I{n@{L+MYKKd9xgs2BmFGcm}v7oy54sXaBqfmCe@Awl$85VQgEB?gttU z1{V7Rvs1^W09FB$&Nh6x3QHDezq7L)?!nsn&A$(d_q@_^c}?b z%Ll%U$7;57-(=Yj>NqR7DYqN6iOtb_CpXvf0gLnct-E+YseI77@b+cATYDQ7Ssox7 z)L4W^ha2s(h(oO|^u2EsU=4hAPNcp`JT)?=PmY)q5uk}1GtZ0ngke~@i)XU;_P!1cF`eC0XzIaBQkjAg)> zU7lwX^^{|p!UFIZhe?bJ2R!Om^(-A?c5<@}6`QIy@HuATD8_t1-#b17(yY_{_lUX8 zWnq7+I@O4A`Jd}(tR7c<@Yv6B9Gq8w=9kPoFdEzmjMMqXd|IE0Zp=;6T21Aj94s>x zE{`GNS}!7)d)6ef&fP1jekU+a0JT6$zmBAu2jd|)wmQkTZ{Y)RQpXWLVv7iExI6mG zcGcQ?P6Ju(xT===1wK1-;?}W(oRjMZZiUDVsu+|#_*_5HnkrAr0DxU*U6&D7j=fw+ z;TZ4(-Q??ADAaq`GnX#v@soWW9v+}XUBEcG*j&%T8d7;823V?(f0Z5v=Ha*a#q(S{KOJwuFIH1bDTrGXq2Rh211*?TKBhXT z=8Sm6E#0jRZfgv-h(Y0NF@3xeJ{foI?hab;G;(yr$CeHL@KOF;gGdQ2l?~23G>NU^ zk92H96A*huD8kegJm>^IA|%hxlv5~<@kQaljJ9DnAX`jrFjlDS?Z*^i48PHOJX1rr z@oQZ;#|TBtguH>%u^TaqkWKm_%Yr<|zLuzAFgF*^pVm8XzOHxPdPApA?aBXa<9D}i z>ha;B68}ZiV`P01NSqD!0C9cgn$Yp%=}ykGWF1b#J;F@v1XhBPZyh;w35+KgjKwe@ zTFXpCuwD`)Ie+ZG^ANXO@)ewQJj9VUn?qfC=7Rp}-~Bti_sjoIAKl&6|M0t;`s;63 zdYBibwq@Eyj|}NY{A#~ zpgs{H|B+i#E*)C0!60S?Qnx1ek4ZwJ2#zNSy(x2fOAaOq!-5mQC<#2qfTAN6Kq4v_ zx*cduxWSbCr$UKA5n|hz=+#6?fFF)3n#;HFy? zQj`%pL5WV*7;LmE(!6!m!oUvi^d;Hvc7YV%`LSrhDHd5W@r6gppR&>qct40a$){tg zS|*i_L<&MzOzd%6F^1nmfc&a_MwP{1~yIC zh>&~FDw=J<^Zc&|ayJt;?7~7T}Oa|%-mdhbut6Y|$l~V;6qhg}N#rFKUbMn90 z>wj@4xp*}6qDs^8V?vLfuq)r-(~Lc3+<`P?wl$~u@_7K;dx?>__1I+P%B3@6uI;aC zf*zbH76zU)V`aU|E%9``p&KU0G8MWL2m1yWHd(faaGBVL^*^d6?(_@oyyM_ZAZoyOW0ZPPacR%3Pq`(S- zPvi_8D4A=S(i{je4$+-$925@<1l6DUXiPgeF~}luG>%E)k;K?}ZReqUggCu4@E~&W z+*w^@9X0e^tH~Rd*4xfAxvSC?LU+_QTA$`#BThJmM$Y->C8o;$1?x`5CBO;K~!E8&yHAFOK4zYJLj~m15!&w-2>a;CcQI+o_pq;e*M8a`t8p@ z(DTn+LdCY5(iYe4p)Gh>-j)AFEMLP?UI)%gY@x@C{%Tih~ijYbCwtt zHvG{dE_rD&h-iuy6(>YLn!F9vZg+Rd!`@1VM+Zdg3e+0%P@vLh60+%h5elTr*u1%p zRzS3(>beWIv|jg@6L(OpLK9?B&B_ zljYck{mf)6yclJz?^L5^dyA&$E??Bo-g{ebzxf(pX4mrnF!Jub2Yh{IEwusTrXGWm z3w_f1-j-s+x8#FI%se@>SL%#pk~%8Z!4JAgx3pBYNW^<$^`RwXI|Mo9`sh|GpSNhv)qyEE32l`_Fg4U;=Q=H z)%1A3^D?{9`ml3PZxRo)8Xqb96JB;%6a7$${~ol=pLAMJ4$kQxKR(dG`m)r{2!PZO zEI}6v@C&@hRAc1cD=Czyf$F>_rXaKIXxn0+P-kp&n|0(>19+YKCq8~sy(vh_7taZkm@aS5b!pEW3+n*w~197Dtvqb?nz6XTHAvDoNw6yuP$ zh@dZp1cewXq@u=5O77-D^51QDOF+4`mJEtu1XuBw=%GtLfD*P9Tbcry7bbH5s{qJl zazA&GnRb-e6ftorbhU%=4(Tk_gBIPSO)j{}!c-wf51zD#?jAmNm=9B<4@-gn1s$l0 z7RV_j6C>v!awtvoz%G;X#lpo_;l!4=BpH)qIyNV4B1`I#eSy#AOpeXCWH<>E_FIhP zAm>%N4;D)Hi4Qrh$#JrQ8)J4lDy&IUV;=_Mkq7wGbHEKF*n!7g-7-y{IkpBpc9D`e7WJo5WIjFEb`=pSW(Nv^?}aq4P@=ycQq16 z=r`W7pS^ru4aUV_{2u7yg&p0we^;(WVe3R8ufTtR zB`T(w#<`I2YkRMN1gGbrC!@4AYd=vj4zDY8Bk<4?FCC&^ydC;Wh+K#xdMqlMu4!vD z5I%z*E)>xf+zjeV)evedo{;}6>L}KNDmQ#OKNIy9xvP!jmlC_s78vAnLA&sFq{1N9 z1jKsi%th*y6wEj0PkLNylKeurVXehdlMh;Kq$UM52;{V?@c<9GV}X|{k>&vToLxx7 zO<`jyIr^SI){)n%YR&B;g@`w_Cc6&oEX#3+o7)bl-uXLB{xVmumyw2^M(%HqHu3S2YYkscwT!>h% zfpHm!eK-#2P{P|tFLZkEj4oezMtj4K&g|^!>g8v&WUWW7=?!`&0vU5Kblc2Jyf+EI z<7T5*pTDd(u3XZy{JM0N7l{|}Gqfm-V!pH1twWrr# zdQltys~FTYxv>sOea4lZfA)&Lzj0gZF=c$Bronn_the*$&TD8*%Vn#Fci*(7r6Nq^ z0A?v9atP)#A{4A2nO`j;u8#trYA(72HVz2dMAXKrflb&qYcyEnxKc#QGI^uE;=D?V zmDDLchudp4@f$QK@Ur0AvI8w4$5==a;&!FN!BO}M<|4xKP_RZi7?W%DFi4BVzyte{ zM&KHY(4Y)J4<)w9X@PIVF+ zV=zi(sjwRHA^=4^(J!WBlC`{1>mbp_+{Lzz@NHu+q^1EZg9bHxH_olbc`*=w7(xTr zsK_G?)L|z=uRs5Se$5N$YtKEWJCB~|vv0qpeW0U$BtOJ$$TRWNsfE`@resV^5w#MD z4hkX#^D5#b`hFnnaFdt;PPL^<-)p%^BCg0)=n7l07DNmYgY=ZlQ}ALcYLGm=cJxLZ zjAEl5+Cr^0NLsHC_13Fb^zZ-WztbnTNBuuOyro;rN!#1gk~*E@IzDh7q>gmRujCI` zgC6WJbg)0_hzIs@EzVmiHzv>RgT|vJElK*Jlb52-5&~z-RLc&LCAs;ZEe1K61|+C651pi-$SO%t4@)Bk8!5@5lW$TZ z&U$s%j+}6ZTu_r`lirfbE!6QkDpU{TvC_z#kCDI(jhJkd^8YVpqfT!Fjm+f;&QNsh zz}};2)k60+2m0*RHT~hkk93cF_q%Vrq<{9a_w?3tS9G4w?r2rC!MNxZ7GevpN&X`L zpbg^6d;_2F*EI%%btjrQ5rH+Fp0c=X=}t^hA+ec317gVw%fv#F0|2Cy#YXT+PLb^m zmiNF-P}GTbH+6+X9!YIk6C zN=|FcX*=t%5W+2E^JtDuY*qs>YC{hOyWz=tjtK?WqNNNajH?L0Sk#_A5*J+=gX_4( zSTf7qaUAQp56^h4TQ#3Cioh0=gBO5F^kv^HM7dU&TCH$8USYT2+5aTa)Xe^DV_W;N zjpG_)IYNkrxQ?Z$2`Z} z`gI(~D~-7`HxhgORL%HvmT~ANBKg!;iu-#MQm@62Rw2N+tu8X6!_1dyP&)G9|2*B8!!eK zw{qh!p^9+c!9snj7BfesV{98ZmP5xig;o0rC$6#O&I1gpdYq8kpXK0{Ddyyi%j=?p z5yUcCR-~s})c`DIhF{y6?AI|(_FFhg30w5otzx&bkHRo2swULNa~@Vgy%a}HdMA8X zhn&(lO%|02ooY30_HP{3!a^*|&8xT_=9VmE=p0O?$JjYo-&8d;M(EEmmfq~cW-~^W zjcZvv-@3c^eY%qlRT@>7U45Q{&r)L#M7gW#d?;fmor4z-Ay4 zb!=TL?%2Dm(+xL=Xaj*}UG${D2B!hBi_O=c&UukMP&{+-JRGT^yFm9WeuA5P#Rj2@ zFpN^04h-EHTH`D4kuF|5txiokHTJ(?va|3@i{$A)_T%{4Za8DE#qB<6JM+D>w=2SH z5b3n39feK4=% zNXOJ@O|DVUXHSSZsXYHHjOhBIgWRlDlo+sAzYfH={npkp_l=DgUzN-{CJW1GI?NF2 zT-fSULy5T5L@tQD+0OX8qI|>asWYd}Xm`1%qoYy1!?T*Ha%LP*?FjK7@IB8(EvQvL zreM8I_rp|e*hU2LAanyrF?5;q-@-^;g0&cRPt6l{1AWti*3@Y686mMZN$%E%1?p8T zjAlaEz}1FP;W{$Mq7Bw$j_|NwGC%(RcKqgNKh>2hm-YRf+xqhQcRDy+3l$|;CrYL5 zcp*!CByGoE&lC+5%F=DLg5YNYPPHZd&Uw*!Ax&(Pu?a=w*4xk>pAsVg{Q($1o(QJds^S@Upy zbd)+e9JT-CNc)fWwL0L%WVM!SlH9-382c#y5}ce%ZhMW<;UPYG5l-jgmLhG|qdx!g zj!vJx1mp!k$%pHMVnv@xsP#|FsCII%HA@~MA9+odfCR0}IW0VSS8e!1R9$9ave`(i zN&R5!lJAjK-;J``PMbxYHQ$-6tag;=qW6`OYeo`xYQ@<4BfjuAW9;}6YijJN18U;` z(bFG3{#@5?+|u)xFY8zDzpFQ1ctNMAHLp9&$x6HAKQK?4b7Xla!JPg8!hF12>9#jJYVb{Jp`7?s1o7z(N4*&lh! zajGvibjd^LCl5=tpsW*#Y~HP6%(km`=2tVvEIxhbaqQa|@nidA@)$kGECQb|{ICmS z#jqU0Pxh`SPoC)9xzmck33{%DVlD1_x_JJ)9zF5jA6-ZmvpCBSeUIf0Kk~_4zFnWm zw?#4rd=`8&g2PsSJAdFy^pcv?JfHMab1lqcBG=J`8|!9vgalxR#qN$T1n?O>#Rx9f z9WN^X$jcU`@|Q@k1z&PPCntBJzu|%X@aU-i1FzkkJ;^rU5939BXJ!y6Jd{GP}Hyr{K%2$6GRwm_pyNO^%n?rY}gv&k1MQkOTTj9kcKd(`zgV zWZ$N$Uq{;nw$gJg(KSxnvIZPOct%mcR`qMG;mZtk<<>q+&wOfX%#Ig*U!< z$F2+5SU$4vPK-4-P*Ep&3m+id3Vr!TX2-|)26gc5AMDH5Zr5;UccI4zPoxNKxGAZ8 zF)#jFZaZS@m?VXFACiau6$nymZtQ-6I66E;JSxa5OEStaQUD@%LTK9Hu!e-2TX%2C zU%iSb+y3DZDqZ$b#99e*cD@n@)NcBk<@zlY)bY{dC-Q%2#xp2i>q8Ho?AL!Feze+` zALgFD@=W~-D7FAw*dO(o+El>nJcM|TS3JZl_zJyTEYSAerEMLFEw4qlh7ySkIk^gd zPcc=r3T^-Z5CBO;K~z#d)~{SY^piGAj=pOlHru;jzU{*@_}-1re79xSHPw-p`AN;X zHTEXgG^8CwB2piN>YwlMLx z<)LF9l=xRrr$~{WLd{C*j7`?`Gg9LvXw5GHd#5;`H%I#4{?%XV>)VI=&!0Td^7M;Z zEH3F(JEy%|YRN~W#>4e`Gw5&~dcqg>M~_xII#_Fcv{7Ggl$%i1%?wHCoa^X76fjtE7>%$%AgA$7kBh;Z9hfh{;msoCptVy!K4I}S1lvNn&Pt98Bdv?vVe{jluc|%4&z!elWC4%0?y;TZ#zPAKS%t+!P)w>W^4R zF2gZ}=B>@`)8@g$$2!GNa9+&T4^GacZm0N}+W+y+{?Q6=oCvIwgoH03(6pkgykTy! zx|{fSi-zo!q3|i|y0rsY$pYxO>rPXd>Cd+g1F{OeGEWao1hd~Vq;H|?UV4lj*D}Xt zXtsydRtF#OgB%h+$uK!gt2uaZUu$o7j|&FbBqZ@*wAQ(^r*!MiT^^uDDG+R9>f~lV zRB;+d$T$ik{OUKHLP$k?!L|o34e;riXC|0r9dJ%9pnZWWKB{i94RiyYK(~k(5uw_A zaw2zr*@<8qW*BS4=s1=MTh!orhwr&Ba(~8Z5%H`lY#g`hKwreqY6G#AL~HWcBtix> z$w~;zyUz``CQD5yGNd>AbUa~n9FzPS=YUMa4zNZMz6*v;NKKhx<=-|Iy=GOS~&$ zlZvqJ34HQ6oJ23H?5m@?rHzvP~YFYsoQt&vQATN@WV>4yirq;yls61tfq)2 zf1UpDi!b!)HEvwD?&y=RztMNMZWTUCHTkgVOhJATA#X`OEF%rPfjoNjSYKbiriZ*t z9IcOZ{q}7hJQlKM#Gt4@#H=6vSwDqpk-Q}b&%fu4uEK{C zWSMy;>zZn9xC7I^)i5x@v%a110I1@JWZw>oR_&;j3lEY(<$`_r3QZ3Iv>`mjMAT{A zq`b~|mW%ppKnMP?zysQJ-suNhFbaZ%8ulm1g5rBl%%5B4Akajl+JGgGLn{CDUGtnV zigQWxRx0!zPa32Mc1RP6u@Z;u3d9^DLhMi?!qR?O0|Kwurt@j2xi-({i-GT;O#Xse zJb(F;KKSw5x^V7nt=Dg_-_(k^PHH`lA^+)|A02%YQSd4`W;)h3(HRpG$-JOp&$NYw z9qtH5q&2hxgdC2l4EARk#0+T);wI=qo;~e$*yR!&oTj+oJzxcQMzx;o` z(6vYW%5?f7UwRijus7|nHinh>p4K#OLi@as?jLM;a9?Y6nBs>h9@@b-j_TvI{*A<$iUr zt(JpjMc`mATsD)aiELn5#R`0zL<=F02t|YkMUx#lqQ6~>=9y%ki9zL9Eiv&=dXxgY z;<-heKGLa7gy6MDkN99w5AfgL)Wx&s^xL2QL~p+QqR#9L+T-DT2VYACU*a3+ICp%` zfY0&77RZ8nMbMiGwyHis4||T&_(Z==9E;o?7(yQMwjqDorymiDfMnSM9SHvMUJoFA zh4R}4$tjRj5FenLEc=JbN0v$iikvj^R{~Rg>A|=8xTqZ!QQYd=%6cZspc5D;Imhz1 z#00F#*!FJi!*7BvyD=8e^0{M-<=1xLjFWuE##Y!Z2cz{df4a~5#%R6L$IdZLj(MyM zDBe(2@n)vYT}SI0$PZ%n&ocFmKgSj#nasv0oG&9Ig0Ehi@9Sv`z$-x ztfZ2870*1d`tPBc%%4psO$O{zQ*Z$dzR(1HdH#s`&hemh zL(La8atXdp1SfZEp@@l|_6K+amXPBI-OAk^^Gpq<^M@Rtkt}v=UH5J4oQhx&SFYuD zJ;GAegL9_pfpN|hbgcW|T8~0j!N6hPe&`?vRXp(6SJe)`ZfmZMclJ%A$np?A+76qv zFUK@a#|SH$=y=T(G0vIrAzuf4?Xf=WX-~XDGp4|Amj9UesCy!v008(HY$A1Une%}pj#MEunVtc_HCk;<=g!&pO|2j<5ELEb3J}? z$XDb?th8h;1rDuCWnAM;X35 zU2+}45MXGW`~Lf)*YDlY=ih&?Z+Lj$Fn?r--V)Uv1-f>ldZ|fMEHn)-L;7gP`dSM*B%MYX1Zr;|n*Kdt0J)2*NUP(;YJ(Yx8Gy6t>!81dEP0 z24GY@2}#kSNFjN>%Nzbxc)${&(ut;kMg(Bhv z4I1Dz$n|{o(iQ#W$3N0D7tiTi*6WR1x3yvcZd%i(t^tF>e@~k))5&-DqVzgqb#R?b zsICp3Z-r{BJULK9nTk0buwo5zM4UgUfo)-ykA|{okUZb4$uvJ zS1^~Sc?tXNU;JGE=l|(@^>eRlIP)y`n^RgYkJN@EWvsMf{XO9%dARP{=fT?N$m(#^ z=)bGZPh5zVd|6K(+WVSnbI)F^8(5_2HRMQ+wra27z2B(OQt$xV8pR{6<`4 zo+EHtWlNsF1b3p}$!8++{UYA zn0am+Vc`Rgn@R#nwGAAR5Hzq1HI7oah#@gMqDoMQ=vmcX(C>0V;2rxy#dhcjnee4; zVJQaMvfmI}0kt9&T~nOWuy>^~!Y7OpKglr}q_DQF*uq?FU?s!kki?tx;WNoKE<1Fq zg}>D=zg~O|Yj*q<4z~Hv%>!ip=$gGc*XEOykQX#oXz8(6MfxuTnQxJfRlokYn(!Aasg66`*C$WWeZvB8o; zQs6ttUv9}CX4Q-vk!30@gQe(h<+Not*F)auJ1-i^jy->@jrE_GhXwG2vxS@wz+)C-O8O9Z+xpI*5q7RCnQQ}~+*_Hp0Z6W89d;-b$w+SW$!CJnJ6^Sn%nGR}#dFFnCe$Fdr0 zx5A*Gs5wv9@u@H8ilF>cBf5!V&h;1uc+QNR+Q8Z^Ob&t_K2>9kL@>^85tp5YF%MbE zd?z=oj$X&48xIdkwy4~KUeSbz&^U+Js0sS?B=m)S@FlTxUiFIWYnmj7vAvQ$HZ*jq z^1(42yLgRf2y$r)1wKsUMtbFiS9I#1anpa1I;E5 zlIsY+26f(vEr1<}(ZN;r&cob}&YnG^`~14$UlbB4Y>D{tyg~_%6kFKbwWPI+ppQ%j zoCv|@bzJj{dIoaqfg`C|$yz9|2}uDjkh!lOoZI-7TR8X(bQ|_zLbv?71x!S!(MJV~ zfD#%Z!EX?#saZ&v4U7j3wo#|;VkULv;zj-RT^`skoM$cEtY4@|0Ur%5uwXy(FqVu` z-UhignKQrO(6B;7KJiJQ)R_K-Tcbj}+P(HHr`L@xA?2^~vn>^}9F zFmLN`-bd;Yq(0rSi__bpiF#9j1%f)lTQi%JsIPUM%kG| zXvAj3W&?AB&T6yKhW_EE>kA&>zxwvNE}T85fBK7`=(Vd?v}B#_n26sX5ur0qzd%Dl zDs7Ak0JA4cvCQ;r##M>rk0qXG7fCYK+0+NA5;X_hX3v8S)lF;o? zGI0|bMh6Na_ymxuXkrTmyuhcmf&_xq5|vC!)sBjaAz3edlL%yfD~q+6P*ZZoo5UoD zzCtRR4)n2cpNo_1gNL{*T54*87C$AUZ+o!G{!9^)l0V~2>xDo( z=h?Ox;p4Arg1>a%E^TijZ!vjd;&DQ#1}!Gy=BOeYK-7z3NUi}G0EC|B39`%#*U0%Y z5Ap^avqfByxBRwine~jbbWg-9x&1Xo1f(K`WEbMg)uG?k@v-C$d%=R+p$6wp?P-DR z2|pX9bAs=jq646?1rF#l*CK8>cXO~6VTeWMrN|E=aLu#lWIN!$BT)mjfy;O@H7)T_6080dKuuO z17_KuseIaIDN!%gW;=8(3-`fjEGGLiCTb+(E-c6^hUeN2oW}|+a)6)CpBxej#&#Ly z3pgz$ztp*{_+TM!xQ0+f*cwIV7~8D;@$YjCQ~MNr6eMGUf?8XzgEgsnk+8QX=EuE> zH(@N7#8eS^mp|O$tNh|m_^E!$8lHpoF<~vcu)fK>RA3X~7J>634>4Bd4Sst_slhi^ zx)={?^E{as)~)q8)e&uU8U)53w6+?FWn`U}K6MH4hde`#-Y^sWkYp^Lcek=#u%wza zdR+{lqN`LOZw&+Xs-x$*jaXnq4HEy!D9jr+%7LmjV(~H=oTnK(>YUp$hCmUYQm5l} zUX}{{G=(+j4-!3CilJ5Ce~lopd-1vFb^F$RErvZt1M-ku->q4G5<+~OmU3tS57!}UY(2qXo&^KGHh4aU?=*0&D! zGCtR*up;*wHxHZ?9XsP#C?sfiG%N?*zJE{7UjY(grLRB6 zW{mU`JFjUfB9%Q27-UTNF)x~9TVq6MVs3)2b%suwCXZd8g{<9JkHLBj<43(?-ihBU zUWlO_!*1kwl}}frE)9GGv4`qg!!(jYhls&2u(6kho+Gy2wS;%+?4CY&>lIzSbWY#j zxUM_*?yA;ZvgT40VIldN)){b3O71iDAW5uL)AkylRhvOTmN-u|ug8$>?1vu01W~d! zL>~?Uc5>vXvcs0p3;~U<7-Y@csGv^-RW7a<^AAc(K|)p$iq;t)X}RqB7ysl}`oI6} zZMD72x^QZ#^TS%Fsqsz{iZA0EXvG)w^`>dPNp05B`lxAKHzns9P-tQDyyt1j&a(|Q z5Q6}VQ%qkg7^nH12jMwpteJvLS_=(>h#fk+v*6kmY%>f8=d4q{Tn@H#`EWa0Ih zh#M(jLxY5+SbJf8T5Y$gBYIpQ8D^rNi7)Ua>n5qt@fh6J1p!_LG#5~Vs5i9= z*O?gQ2mhY$DZ9i7fEmLq;QAjDG1{EpPdx~g{6R6p>c(}}j~T`PP&S$BQ; z{Vjd*-M6}Q@s$4AFW=SGi+eiNR$A&%3+AnUfeNg^TUZkZ0eN>zeO&wCI#4a=S#aHS zzlj7UqDyMFk(~j2YHhj`0;C zXSZcdXf1kjKH>WZ7#$bvS+vC{#kP*Fix*l4DGNYbKdz%f(>7y7S49A@U(2^DRxErQ zdY03aj6>bTspE0(TfEk>?o>yCQRR2$pTH>B!0{|U*0Wv67=ZrCFTN~84Xf_8>LlfM@PWs6RBYe(tM?8;< zjlA+eSNM@)7IldePS*8YvsPfRBWI^0tE%#L9nm+xg3&2_#<|7e7F>wrd$2CTe&36v2wegua?_?jIV^isa z!}?p8Ww$+821e^zZmJ}lGdS&&7zw^@9X*3#9c1PO*F2A1emP#@>;y2;V6QDk{7Au0 zAjkAI1qxH$(2!BnfEHXw&YnH3Y@;^(e81sZC2yF@K0MdkIyy%A2DjMk+cC`tr`*D> z+H5ger)p(EAfnc#Yafi+MXh}uC<+3btX}cyz~ZRmYft%<>{izCTJ%eivGD+)@=u)d zZDaby8x-Ulte~wQzL}vc#p!? z@YQ&6YF-;51$k6_=VW5s$hEaVKaVNM#V-f;d-~KVz4`iUdg+Ddb@%>begS^S!>fqK zgR393f);okjzkb+hLU-&>jvkk{Rp3;CdoKiSL_mc#}px(C-Oiy%3qg+a|EHL;|nCr&t&6)0E%`#fN1Pa!q<)Gh zO##;ET}AHaoMhDq2q$(feNtvXjSh(?04f0+b*U!I{jD{v6EX!hvpkucVb3;NV$Hd+*FccQfpJNOlnDAvEt|Pe= zM&t8>^4Nr$8~d4Bsq{)mKit3~`y--^;g|wF09E4yYiKys|(6y|AD1 zoAQP8{-gWyzbrEh(|Wmb=`vq6?#tr{w4;dzBBt!i6`BbaUd$vk{*N)ESU6~lXIW!_ zYS<|8_q2{G9mEb)eRPe{x~7wL^w@g1tU6-my-qmm)xd`>dF|m(p@;y0`zHGAj_vse z5eD$BQ!$bnNUPO~8^&7x4^+doQ|Qu#3%YUZF1~`1*gBLD?QE-ALSfL;L^NV;yOGu1 z2@cd)v+ru1dr@FVt#NC!w2k?&%WpX;rsTOc_KF+WLHJC@S#?PQ;fQ{+Hq6VCCAyH+ z(SXH~3m?AIM9`_WR-=|k(@G~XlQU{akTZW-WNYRa;OUq%$+qBf8}2)wBB^r1SD>p* z5fKVmP2T8MpFD#cfX8kEbKl2kn-8?J0eD-pxl>l`jML3kPwKXX(OsEX%A%-w2)(a~O^@>B;ui zCEujA4^!2Thoq-=K?LvEx`86#k*{@ZV}gw-y*YN^Q`Mj9IO&EWf-bl%w~?`jePhe~ zh5K6_p<9HH!fONTvCirqGPULob!;#tasXYOzsB) z6Zz5;5)m^@U<|x^$53*-BEdoezI1$a6T8AjOcW)qD@i|HD|D0~IYHgEWv;ob$bWUF z6KezS;r^jM`|6sGj@J6sdq36(Z@i`*>b@IIJB=EmBiE{MfSDMA@UGnYM<-37B*PK3 zDGt!Ir;QD28cxTUn$kP&PdxnM9Hu)HtJLsMYY>)g2?bbBW%HnHjRQHV9H$*VrJVay zLoMl87x?sQ_mB?isse0%Y+K8j5N$W}DQXQ}Fy~ux`?L^A*>u9CsP9DR24WWz4Iz}b zI%(ZW4kj9smu#qc!>)QIuY<~d?p96yT;I6FMqF7raAKUrr*9q;EEbfkW5Q8Me9*jA ze;a^lw(bA`5CBO;K~zYJ2-TkuFrBmJF${KGNGw1OwFeiGKtquKm4;J$r{ryKcUKqA zpV!@c_a)X%Yr}kkBM3{-TLQbLylcvosO9_SQ z!**+;t8jce+i}&)WAw2L`!g|&uoC1NlEXB&i556hwMB#?pc=uS!N8Ka5g`%7CvGR1 zqty`)?zM2?q z$2J}sQf-_A@iuJ*qmIL>9XcoR zTITw>EuyZd;$n)4sc;nN01Y+_%T0{5#aR9AAtdtt0dCADhsZ2&Q#^N|iXBLrg7p|+ z#EHCxQl@Pk%THJWCA95>5mgvy)Xhig+_++kkvznfwDz@Kzhz@T$ee49%O^~5b=G9F(A51uJb9hDWA`Z@rv9nRf}n#xTGTZkQX zj_8|5@9B$CepU$oUwe%KW@Q*9~Gt`UkDo&89$^{ZQFV> zhzLalJ<)cER@2yxT?P-(!63xugNZRgU`P@1l$uvn$Xi4l^IJI@wQy1huReQ4AN=TT zv7~hU_8sl74ndcUJ2TvsU@VgTC1Z@JYf|qb!J~$7fstsrE+Ik|3o)(7Ny|=?)~B^c zDauaUt@xpuKd{D@L{P=7MSXBQ*%Ke|_Gz+8M1VgvEJm&Pa{HJ6{I~iq|Hwz5oeSDM zbymw^(2|GY=D+TOd_&B`v1xyuQ0JvZTG8L|@ZJ$}iYPbKVuZTkrW`9d|0sjRdQC96 zmF0|OL0uAuK!JM>Vp~Vtfq|TiQEx_o%ZZ_hpM+3g8(*`7wirky1iC_>uIhseq z&X}D}?VzJNGs8HH$K>-R10ATwojwFMVNo?FM1T{)w4*A&AbZZ>#1;*Dbm6cEH17e^ z*B<+mZGcg=G7e-BQJTdgX2Pp}VliX0naepc=X}do2hWE3tkJ)D|Ditl`kMB3cJ$AF z@qwPZz;o2N&#z;_wKX-lPhxC|?!0d~_7D7x7Q{N z40n^hb;!vWogwNLiz3SU#%P|^+dWa<-%D-#XT<_;66O*cXYQ6O~9K#a45Z$()7#9llftZ#CEi^X$UYnSukSl6CVsN7+)233R(7%g=U@|tnojLU8L?ufDFSbO1P z?i|w$i*Tu`%L0xEH0E2!K1}YLSK>yvrNmF;XiCKsn-w5-6)x)yhzB*!@o1@NUH%Fe zk*b>3`3OeF4uKP?YJCEu*aGr7P&kA0BWL0PqyFBiZ+nT-yoU`2i8)78$rDLbjIQUe zJfjEP6q6hJIEIq-km!}AbzD1BbjetZv1)qKKlogi(wF3L@R=zy>{lsQjQ0aMcDzsWBv%PFqYXbG{U|8Kbcj#!{FLmKWdp(t-!6(JwBn zuk&Xv))&2fuE(7Rh2Vj~_(a|yBi`gf&chg~kvS2eh>+NyDmA($FnV3e8!@S$=R2w$ ze02Kgx0v9KW@hNkuEfqwg| zxAfPa+|k4FoQ9n^5*!=vwXjUZB|kBeXtMkRsCqa9*HGKV@}2Tc0IG^bfxTLnOj^P za*$(+Jhn``^|hzSIhW>ipsuAKR)R(Nq}#_qo$I6L$W-efJ02nA*{#TZhGKO3yer8s zG$ZS94aPAyTE$Y2H%;H%xT&wc{X%cPa#_Fn$*bDsMQCVA?M5wV2V$EVc}9dHen=o@ zcOgWJ5SRkV+%WM*T#PAcI5jE-_o6Fk1HGU?;jzh+QGP=LguK~5lT#vWl1{=)Lg71^fXqIr*U`>XLMHpt?56A!4eMHN@}zdjx@iUSc8eWW?C@A1 zXkusEAR2^z2a9TJ95PYP5}?7wuIeCU_)Fqt zwE<^PQj?VX_TuqUS@wy{e8};rBb=GXB1-r~&GKbiC}D^L`XX*bC?doGf{(6hgNHp9 zjNpSQTIg`S(a!Et1Lx3%^XGK;;S(KE*3KGorG=R|1SD^n9F4<-hB3lp3UM8hW6N7t z_zz>pas5QhBKU$VS8ezNKSvqj)FyrW%dKhDaUE@gV&Ve{qa?NztVgkB`2rt09N}Qg zQRs`j1SW+f@L(yE9i;Q1UI|4^mYuIbhwGKj^7YF)r}%Z^&Vz?aF2qSF<)4|JliqEB2o2Ca2F{0_Sllm;7)5ws@v?T4Y|34ZJt0SVt0GqAd| zo2bKKw|Nm!yk0o>C^hJiu@^@3s2v*c9S2*mB4(drSw=AAu)rM^A1-)Q<5ZN5d1#tn zWPSX(QOLXJC>r`uslZMN1RWZouHwV1mfGajH@rZ@+V;Z`-KQ9{bfpB7eS(I5C~LjI zu^-M=+nL}XA0fWucwnaScOjNpnJV?*Czs0sMR zMrq&~m5KVo$4V+c9KfQPqL?AMH4jUfiiLgI(&8YwktbM*H05g^b~IJq%tjmXgI3L5 zV%McaN6sT9fm=P{guJqQE=*aALy|`q z8*pO6U?!C`%e<3R>?;sDN1OJ|8H7-QxivI#b6% z8Qa!Z3EIF0PU1MZ*Qs!#{{#QCamlzx`bFDvv&mP~NeZb*|J62KgQyYborQ_rR3AF7 z5kN=U&U)=`U4ImNVWNXPp^jk|kK{Vn!;U@O$dcBBe2+nE>a~9q`i7Uz!@~pp=KUY* zmCKhjFi!&*7Yo+Q0D*fTk478tgHR?a=;A<57@>+ntRf0XP{7EWyVW+1vE`z}kR1!$ zCT1O?Wfb;B(P2m|HfBsVa0*#H!UHPNHPOJGJcVt=Mu9SkcVeRL!;};`Gg0c$(>+ZjWDOvYZI9dlU*hP$z*?Y zp6*PZ@GX&BDTcf`MlB++RO`6RjTdZM7bRFAwB6)2@smHOqh*lw@tw9|u~iP_n=_vV zNeGrAG?C)zA94}FGIhL-)clZ(f+L^WTk67vbGmW+K57eXtXrC$BN}B$KRj$whtLuJ z*lEDXI4YtP(aFS1bf{KrF%yk2s3wp~mU#Va=~ygWPNYPQ_-@h9V>@H(a($iqv8D5+ zju@eB|43$ML2FL9j!5&EtOIGcXx{#Bh##3 zJXl2cZYP1GsDWcZ_)0Eh$-E`~;~chi1g}gn`C;kcrUo!N>H#%8h8j4VRDG1#4M5XI zHzC4P)jQ9ibkP*g$Z- zcYY>MzT&9l)(x{Kol@%pyc{Yt{h^UcpV){Af}OLY(y@CrXf#8e9;o~ZAxzL zEz<5au&zhZa3@*-01yC4L_t&@7(Dj%I179zh!a8E&~v|hHF{vpc?Nn zs1vgAd4Q(MSAub(s72HnL)_#X_v~4&LH?IRhExoa>lF48?nC&A*v=4l_A&%gGoL`Y0PtjzrcPmL`A)P{=EL;{r9!A*wM8cH*~;D%Lcs-K6=>Nv>^V1 zvQkT8WQSMx9Wa0?O~ewi%9S=Ee3Z8&?=2bIw4TWyKO!%osoG|n(9G#Vi#-@Okej4n zo`bao3i{7mB>C3Qv61WYhX47fhR zmgqMg+*=E^cBE5#Yt|g~<=jpD3cbeK^_)fd8x#?$KS3Np)ZKdWgE#AF>Q8eb*VTlL zYQqwrvK})pJW1g4j$YO{U@aypoq@jN(3ah{wH|%PHCbjXUpsHDGtZN3^z4x zv{a8$a716cJQ2(#Wv#g%VkkeGv26pfDf(uQv0jWoqLaU z{n~ZC_WTw7@|_>)?Cy^ISDUz;$?LySm!UPejR-{xwZgA?qbO5hU67eqO(QZqC+%@^ zfRY7}OqfhA#aSVZ3#tzxo%wHs9(ebQ*VSzvq9Tu0aPSO;GdI86=uXqs!|(!3cOIq;L!~s8Ft8~F-|NbIyoCA3{cj_P_ zcrRymRPmW_>U7K#g36JYNgYeaEmTUx*kUy3llqopZkDKvjHU2fu%!kJ`}Peml=F>G zKCfe|LtDOSYaYQ^_!*ZDhm#ns6UJvk$FTz)ckRb`xB6zAia%p1oG6=byQ-J*xpoja zB=t=E7L2k*-z|+CpP%CehKNuEq(Cy|8C7(z2QI+$ZDwCW52bm3sy{O%vxq6f8sK^WLsU zbZjnT!o|}aeaGah(+&@!XLk4GpYTT>ID%_Tf)kfunJhZ@8T(G3Gt^J6CAi12*S}G| z;emCBb8LYxKqwku2hSxf`{X5PoFk;f{RnluBrUQob^IZca|kd8I7~uA#~ZrvRTyA0 z6GD%>!SXQJnH>!EuNX&VOLi2`i`@k%~_5b7R zPrqeJuIx^1AM=QN@0;`Ghy)UeIWZ*W0$40mfgo4|*;F^#TuqkPO;KDeElNw@qz}?x z+0s(0S*xnZDvUX2zVVJRxE=lWarb!lCD85HkK3^`ZaZe~Vd3$R2s&q_@BF6}|cT>-x>R@9DwQCu~^v ziXZ`XOukSiJEQs>>8#Q&CC{v6y_D>rAC<|vN3X*e#X%g#BNM&lOd+REzbj|pWxK-E zpD#nT0rqJyQbb%MsWF)Fe6}cg!#22Qf*Q!Rr@wiml=gj#gST=R<3fLi@3cm+EZR2W@sMZTQ(?3+*?25$0aX{UA}l^gop;qMJ|^ z+qG~9s$x)-diIPqm?+4?+{tstj0~;mUECS`s!dT}nru6I&m6~7xGN_72w_58wFt;W(PE1tf;c`Ka9Vx9o%06yXuam4vDbEY zrG~26&JLQ6#$1;S_YyBHu>+h0!;mZiaSEeuGA<|rha!Skiv?|9BVtH{>IfoX?{Rxf z9#51_pn!@e0S|2is;=gvWbihlv9Bq?$5g_0B{o!wHld0@n{uv+B-b%XfkWxGyPeG6 zy>nOoFC9cQ5Ql)TfD?U1NNz=Iazn0e>YbRqVr7o1!+JBcQRKP^&pELZii4P8YN3FT zOlO1$tpw=vL>yZjAgY%^q?&`HyU)Bk~ z=(HGW+=rav2$OR%E-<>@);nO5`z~*&-}vn7di}LmHLwvdl##{GXw0(i5|YZ#l1u_# zJL%uOeM?_@;|+cG)mQcA=RT`7Z+;`ZiIM!g^7FvMl@D?vG*^_=SPBho(6_$&Rekpx zU)K-b_M6ldZ=$+{uIfncYRQ-8fzd}en_x4n)_VEH7xdPbzCfI>=xt*8zuweH>>Lpk zqDaDAgpgpG2^F)YMoX1+|AqT{3A)9bPJf9&tS0e<8L$pKa~wJn}WD_eII65}a@;)A|PI@~i; zS9L7+Om&D!+i~`EbuRwjd-P=-$R(VqnS4|}GZ3{4=M@JgTsdKo3!HT7?8NNENZX?B z=t_pX#=xA|(4i+B=1gFtE~9-g7?s|pYw_*$N9JV&Yp`ziooKXA&(8J1`ycAdpL<>3 z{>m41gTfEkH0-H#tyM7}?vufZ*c=!H6eN=x=`8QGvkvD;ZrSf6F~pdNAfC>NSao~@ z7LP$yVMr+x!wHCuNwRFSat0bsr=}6nL@fEhR@i}_UWdRK7+P*BeC}J0-jh62%&igTyyCfiu9_Sd`u%i};06i8<2>9vIOTVI*G)w^X)Z znUq~3PTAJCx~_;s##s#)Y)j_W_@FDkAqGF$K6vm%t6?n#C-QKtBI;y}3}nF=_6Lw_ zAaKiep$P_!2om77D2!#XkF*9#i8`4)<|sLJbWCh57re|DVeViwI7_xSQHOADC?Q0s z0!U*~malU)!a?G2*W^Ie`ZA)QiM(D$2;jO#o}hkk-r!Bi^q*z3X2csm61oOKo*;A} zUC35q>;mI;vcBrbTN{skvP(Q&=Lw^2imHYUoqJs(PZ7xIOs-YOQBwyS>Tuw_mLkz1 zw=djt=b|%4`?)pQh!2#)?=d(>*)~E$)-M$COve2$+ZH)5y21*+84D|#@iZtECF8k) zP2l4?E@7*+yLDg>)>(k@8ChvsVlzf;)A&ugeuTpQAqC@^^4K1t#;UOq2c3u^u!vkT z|7ncYrKTgM#&(Vw_yoC&%u}1Fyj_z%72I1Q=gpIwYHi@de5E^V+)^CKW#)PvdDyGu zR*d+N4cRf9{kwPX;-vb|$-VN@Jtf$@*$}N2_Rs-i*EG&h@a#$EckHQ`@7-sw5qyvz zfo0I0TQ~6Lxu=kP-@A37pc`C_g+|mR!Rhh5bpIYd3*SK0d4_~ue(447n=K!1kzkIuPhoZK@I5WNjZu zy+A#NX!8Aaa&n9hz_VALV2(o#Sy^j|A*v?gsBZc$k0%1P37vVI^xWZ?u7mxkk&0qA zVI5JMipyLFcqT#*oJK(Zawq(UVbJYcH*|J(M*6+@yjRM0iTenb6NOu_S3G#eA3Q&T zR!gpwBBDq>O5UVs3O;87jPa@Qhy7hoj{^#+{3Am3M=QwlEZbop#^RX5!hGRya%n)` zLK@mk=ucLBse9`S`pj!D>euhSuP5gh+Tpvyr4z5?lg`cHBUTa^GecST;wWKLxv`N+ zzvm#9%D$r&_5Q#B01yC4L_t)XD2Pjkb5uA6l!2jRCoSVy~NWM2J*tgIY9s-y+wTdp@0;_zXaz zt|hOwPksEf9KbWq0CPlBXpl_&s^@u^8hr-u*w_e4o=uYuRX{$22+W;mRkmH>mUSKx z@PfL;yb9Tb%drtHGTWzZoDX1})-Dv}7CEx=(=$)hbemmCoFe!sf^9_9&WnmsJLYRo zc>h{r{$jh;FWz}aY_IeKzQld@{tG%HR?F0iaSz090{jFZ6*XD36fj(@W_4;B%t#Bb zqghTuPAp92!1j7< z;ylBF&1B4VRLmHiOUq9|loI81J{QM%p<2kHG9z5DxV!)xw#}vELE%LyADFp05H?Xc z*;v3ole=D!@h3qKidjYuS$DvQfnzUZ7bvNnm^`_TRa5MIvM45h;-Qm&)+sxb_)!R$ z<+NbbWDn0NAI9J~g&!enVDf{n8Z)Mv=dS&@)A9O9kDi=SrpEj^02EN=rHv)gySG8^Ww2x+Cv@fi^bf))tMex<>u`` z;YFN~{cHTLBV%wKZRb2Do7lG~6)m;gA5rxR1@k`koh~;Q8hF_HOHLb_8oWIIg)s-{Dp0xXP%~XV5=C^;rG?iu`r!Z9C&C>7`q~xA_78QwRFwkCu6St897H` z{FKdg^JP66hp`6krW%+191r}iqxFmL(qev?>+-RE2_@IXGUg+_9<&@?)7-NjjnQ*m z?Q=neQH56JZ4&EI#lzOwxq{JkC^_rVEmAquLhc)ja}*x?SqNEPGRMIokk#206?ewS z2e0gJd(6sYx!8w!QRQ~6j1{GA9m9U)Xy8vioP!UDk)K!BJlO|D{b9{XVB1EQOqvhw zpFJPoqK?B5YUJ`}Vb47rgT!a7CTx3J$h9UEf$585?)W|cL#XjLXpQ5J51BQuM!nvX zwUS;B*Vlqwc|EN55_Z)%)eaV&1U3S{^vG9tpj`} z)$_0dNHcDsn|RF!G4T;Ec~teMhF+60pxLB+;hm_k!jNAk?njHn*o%l2Oib{TesjIi z_oTYaIZgd1AI~n%)cLvH^O@L7#1lu5(-=x-T*y5qj(w214hvz=iKk@Wg}0Am8lTC$ zIG&5+*aJc)Z1JV?cFww~vx7!1yKmNWh+O0jgHJv2_^ikMr`n%p1YO{;1fPW~LA(J)Aj(lzQev|~1K zp|8I6CH>;#tv0LMIzC?O&W+Tqqn%DzPXqCjdn>7z->UoN(8yc$9qVGp4!$pS0CVP^ zF+$W%@Tz;0y41KtJ(7#h;4;hv7}lGDHbQ}zM~vDK+?%Nr-nQR3N%ejSZM54#tUoqV}$RA9-0Zs`o^ewXUytF7LT--hKRuo;-P^ zZ+!l9`sNouuah<~JJgluTT=~&$$%K77%U>5!8v%jg5LF)N3pQ%7!)}@H-AShNvS7PU>!- zOvYt9>}>-MTQ_RfoC=#j9*nzW=%+RqB~;;kAx8bXFUOIlJRQ$e5KAGBplOh8)>w{cmDhhEB!+mNPY9fJ> zS}=Oaag=C75h0N`Aypk+Cq&rPoMA2e#0?n6VLN0QNd((A5djHf!Y9DudIs2nc?#yI zMS=iwF8To`&#m$FlsfB0o^v8y?XLJ~cdLD}La39-66(a~tlSL|^(4L)x#M!9D|lPN znsQx?Zo&^nvM(6zllB9X$XDdJ;T(|VUI?=;ktcl5wL10bY41G`3?3ll0;Qv=gQ44w zT%CKcR||6d#TbNMY(@jBFSR^W1gMVgU|alNeTnN__@!ep-cGEE5*x=3CHjhwjld{! zgR6_X)t6p7pc#sE`*d$JMnn1AXcV+41{&TFXL zSx1LHHlWk$=$N&HU#xU-MQvGoy`_=|ebP?zCL)m`lD0u>MLQB{`7(LV2gSCqu2xN# z7ne3x@cb6o1jaV6-BP4DSfA0A%z@2X9P7OgAMlp1YqdJjew(^DyV9BjD-0r%aoI5> z`l6nefk+LVKhQ@8`S8i9+VQ~1Li~WIk3N2^qhUq8c!rQqCbGH~o!Hq!L-5>bH+1v( zjy9L0KK$sR{9jVpDkN&~kPo{?JJ7E=AfIYn)Y*{8Ca(!%XC$?eE=Yd4-D}Gm%AkfL z(&V1W0I>-S&foiy>b@bi*X@LlSs_l{o3P4|7Lg!961|+Rhl#n1~q> za{l1?lsqd!0Omw0AQ5%o7lxaR_na3ednrPD7BVK14HOdVq4EY&kJEC-im5bRXd5gf zY7M3EBUjLdcWc-S3~~&z;=qYjvrkhU#$Wox6CJVbuWT~zAa85P%h;OG;Q#DnV9)vy z)QG*J7DvNgYjPe9gTDRMFX_$CzNBCL_V4xRe4{<%84F|6cDteeqlAnLYiy^^#*`9} z4G9Y+ssBVN)%dZumb@aLz*nthMc8qw4p3)D8p`louf&p*;{@_huaX2K6h4T=?F!+; zIQoGk;U7a&u#Q?VQe%!mUJ_zY)#5}e?#XqN?w#DyJ${+}=2t$ej~?u_-Q83hj@YoL zZt`XDMo2@Zh7OUp!|$VM%kyyqfGt2q?#+>nbov1|cI8N&0iTdXxesY1KlVw%&{97! z4AxQGNX(4}NdpO5D)=H1?Un{(MAjJF@o`FR%YAa8tKFq`{Hna?1=Y^~!`MCY9mGAf zC;yJk=Z@FNJHq?l;qTet@5d{N&t37X6L`~WJi4ZXLKuJx#2mWNg^^lkFo(ldo(BNX zhI}NpCSjwB1HK5x6za@#s=<3u9TSM2M@$FKF|cKM#PL@0=3Qlx@9AiyOgVgYtnqMxTGde!1SPkb8J)Ch6{rVY)le;aad1-BUd^MP}pd}QT>oSp{QZN)ue+z zy0WJ&JZ>=&L_bZ~+BFNK$4)Og77*r@8#|FJcyNe#2@wGmL%9~I&@de9F~3GUK08(Nfn=GGM@quK z#uD(z`EVages0W9GBpnGDZnq5%nNnfLHW+G$`wj5rI8R zW{H&8xoQKc8#LyV*7uB!sy|o&CB0xuz=eI_8*U{zR!HbV)1NrZUBl?PMk*|n;vf!dOP(iF zNS{1@%$vw7ef035o}8bntydCjUgVL$QGOvg#)2{2AH?UW#vJwjho8v*FTU@-_mLhx zexks?_ms^du!TbWg`+geyM~$~m{))3Fs=vKl26;do}Dr;_7i1i6ez16kvV* zwa@6|PaX>h+ViIIum1KI`n%t}umAF!-%_6k67$zRSU3e2aLcusItZSfF@&C;ooUNP z(FSSpAa zG4*H^{v>WIVEZ|74%T9m%?@Fg+;Widu(U z8#JyGGK}FQ>l=L&yf~I7QjTGgENomGtoey*lZYKc&OriqIxgeTfdYBpE3NuawC4U? z@jNjNuHVp=jLjQe4Obf0JDots%+pDe?j9ZKbNBD*TVMQ~-gxZ=z4Gckt?#^`cOG48 zWT$<++UR(l8digX-94c-azF3c`0m|ue{H+i{)YDZ2&T^x~jaEFTfD`srdO zX86h&>)DDPX2+HQ01yC4L_t)5cmiv*WQbisKU#xlu4z|8YCTBD#|`JM`;*6v7`moLQX3r66Vr%FvuOgBd6l{;~+CgWkH8B)3fw5@&@1oNAab znW0|PrWUJ7#uq>IT~aWA0anKl`hY}VDaqLBw@4%qvL@jJnk{2pCb3I!1j&tG*Rq^I}T{M10w%;$8Rgn7U#uJwAKFTelBD z+94L7Ygj(mmtV-%T%JFvp-h!yQIXg9Ow>Y-Q}p{Vb`UZ{xMam}KG(+^AX?W1i(owp zWC@ABu+54Ybg`rU_D}1|N7IpRs9~)~Y~6L^xiCJH;~a1<7>QIjZi;0^*3<_N9`Xj| ziJA+>lQ+mIf!DFHkjXghXB-NZ^HNLOhh?e5abUsdI+iV3%%*#WR~&`W0&*E=%or{5 z`l@x-aaw|*uw9XD@iQLR#rTZV{UU5V2Is{-;S-+G6OYsCC2ZjXr^khAX~f5k7L3GD zk@MOJI^^t9%)!W^vSaR8UkRUKT@u!I^SS_|B`REu13S5n^aJ}q?^Db1X^c55c*CRx zBfe>JUewcAeZO?cwIr_U2(IMBR&!2OGJ@6|+aA8`qij7686&ZUUqmvV6c^PIzET@- zy3WypH*&j*Dn4w-zL`?st0HXeLL7OnYwkK9Sfd)gjkPfHL9^R+@p&N8_nWh3*kwD7 zE6Lz|Q_PSYn>h#!BZ!<>3{n4#A^249$a}2RJJ>l7_^;2koTRCdlYqRe8nqj@8gmae z$>IQG1a=7tve2!h&X*99 zw@O9CbJVC|(^{H!6+F{|{EcK0mWBLFYGX~dXrc!VYUB_1nm@H@7_4l7e4!nzQUMazIU&F@p^RjR5$Lwp#SNY4|UmY zYIU;GjiJ{QBm|1&;*)1c=NE=O_radc{gzkRev{qVkmuMi9A;{~aaY}6?C7h0;vN&v zgCs@`s}s=UFS4Kgky+`nvwj=%#PrH^w3b%LJG;r4>s7F*ztp6X5yv5f23sw44EiMx zuGo5H&TBs;WoKLP)mpQCxh(eff$U>Z>2NepBg?sGrq%*SOm)WGd70L|KD=hIOTK7j zPioR<^7?`bFTOP%j|0M9h0zIJFsSTC4B@$2pNu{6%d!omjt}*j?Cw~+*)O|94gmmL zuSfDTFG!~<^v*MJB4c;99kHICUGRe99o@TkmrTyXQj;m@aJqQC0(Ge-!I=Xt)Ct-N zVyfJg%K8KcHyD29!$5GBLkd3RKZ+knOXyZ5<)YvrV80}&Nr%I*-6==Oz6*(?#8ZCB z9dd|+oT|QMU=udPc8;QOKPC&}MFjXw_ChBPH$l6cj=A*R;=@Udu4==%A=}yadTq$> zaTx;TqmC)J!Zs931~@yK5YYsBI3S0d1CdPKfl4u7EHqp8b0-j(s>|Gv&~7Hl3Q4sP zF$luNl z)DIVT$S)ha#m0>a4{Jyq2=>HC*7fMY&`jZSN!h#(f{j4>31o(VA>*{(6PhHXQovOypYY9h!vlZ$DpH9)iwcJ_hn z9ubNN3#GYv&Xjnp5FY5MhgNZB#WcX7Muvr~kI1}<&UC${3atj~lrl(;jrNkyD$sdG@*3`fh z#EfVPlaOJ%=GTQACnq}PS1dnwP=UWOCaFG;q{5I9@|U`#_MUUMsHW3S=E4{J7_*88 zBleB_fdCeRkmoIBv?fgl@xyUYOQA5YFk6(wOyBeN^LoTyCSj8^nJ=9r>j<9|=8zZP ztQgX*TQ{_0lXh`=PR*v8BymWC74A*bQSp*mj8O6%4SD>8mFr_74e7W7Lo;DH#aRU4 z32LtD>$xKnYZK+N!XfCIov90V_@EsWu4lj_NieUN*Hz!~mU^dS_#b@hn|kqu7xZ_( z{t^zUzFShufO<; z-u&E~dgYbRYO`;8=i?{(`}ZH{{U=wt?9#)_l^$K*R&TeZVXema*BUhRkanrqCkeV@ z?Anj1E$xm?wBNQTUt)rMz*2TW$>SCKPDc=I0z6AOqQfSME68n;y|JY(fjpvf9aUel z;BOr_t!cScB{Y~xOU>M;9)d!lDGy0wBKI@F)HNN>hn*q~vwStNHVL?=oyIM9MoMHo2FEUNWoCv=DuY6=!aM2J&CR0bwcYQk%OO$V&7 zpE^Mlo}rnTqXp6Adxp;ZG1aV>o%Y1Ljn85O1S@*9T%Vm*LIELkXj@FJ3qvfv*@QSU=f9@NuX8DCozl>Noe|mg(D}m>2M=C zI|J;vrQbT*p7gexC}>b(3p1UF0&K2Lwdf+kS8lo+pN5o|BI>OaiK9*B=`<0MOVRY>Io6^kaG>8M;>sKlB?Ga@k$i*eY&kNnX$lRp4h&x-Gw4T5n+z}o;~ohCguAI zymDM91wKAhG6p4WpbP3-u6WBKz!}V4uom163z3PV6Em@gB~L0?r?MV#=GYo@2=O3wR5AI2LgtrdUGC8_SM9!H~!&l4?8>EfI-5 zvPtoO0`sFsPvv_nLsTWSXG7u*RA;@7NQ^WUaNe)aw%_ND_*Nyg1pyd{-J_0IaP+UQfqDA%gSDv`rPva&_zH3cjUw(7W%vr;k4RP)|=E>*DHErx#E4#+z^GfBC!jHL^>KMvT=) zZGECxA4#jVdK?4E%V~a_q;1>gBLxLIWu|?`=WuF}xQ$ehV5K97^t_TP&BDiu^vy!l*Cskh@ zW&ptR2c-}k&ba=3OvE;=wu^+S!!k2V%bduuoF5WnFRHv4c?^F3@N9_4f)Nq4Cef~- zX`D6ol#Ds3V-PRs$}+b_E6Fjfu-sGzjLB=vHkO$zr$7~l{1h22W0^4~nG>7~EgEKn z?8)Xm86A`m_m+Ph-7&9Qn5*50Bz6ScLv~GC6UaQ^qFF@4nAL`^29OABI1x{SDO-vF zn3C0n0g+w>wgdvNWShm;I*KHd5}i0uxL5+p0T!$$TNGZ5`KLs}NP~9N#sv%({|u;dEE%WQ;Wq}fN**d)Li2!p&q9i!@r zy$y<(V`HqCV5~Uk@hP=0&RJwz1P2`$ZBHHj7X0?DTMEX}*|2193jVOJGs&M~6Otoy zMt~@>#677xEF&*t(C=Whal?vQF$Otj+2F&8LMnXL+ZKuCW^HS70o_L>FgC4OjVsbS zuJDH{CS$7B0g%~;8p6%zsMRX)OLaC(w>)MdojyHBzGh>Gna5yq&ZNJb3r6xsbBu{v zOBKb`w|PWUi#4=T1ad)cBNeQ%s8;B0H&KYckSZ3>CU54#u|wDmiWsVGv|b0c3ou3m zDO3I;(t7Hot@NeOenxM9{VV+J|GpldZ#Bk=*r}?c7xNgoRb%|=jeAiNV?M#Bs(D8+ z%jX8cRBPMF>y7mQZ*>t^vg+Lw9)l_HGSS#ZOC8maghnuhLIe9AzJJg*ty)8pY*|L# z;ETwu-gO(?ru#$c{z=!pn>*cDovU9x;M4L{_iv{@fB#rtd-;~${_H)y{l;B=_Y3#+ zv+sU^c|8a1DfVaFDIaOSe_szTKGyr^kM#cKsUGaNdK#(C$y%FZ=4?g1;z;8>7J63YWM0TSN`JRmB7ZKH89 znx>nUen8~G6n#!q#kU*~o+$f+N!9W&1dAA&>cFl5Irkn6doYxOv2~a^X8C%;iOHgt zH(VwXcjq7;8tjQz6U!LDmE70~o~#_g+VQ%Q0$DE0E4FjF2F_1C`Bpw^s{~QtWlyDj z(K8k}spR&fEa;Lr2@Z>coFcc3H6-B^MX=xs-)u492!S`@6M4tB%UL^yjK%defkQ>q zAkaAvH)bvJ0z;fy)IoX#bu%zm7({;h2$h8^c{ggR*>y zUpT-dDX=k~o?HR#xE)Mcv{&cms|SrAHq3VtrSgG6A&FWf_;DwPlpYg7Y?pJ4QrO;g zq@HDKAAd*)%aW}K2R860_&WC8V>e9aX(?eL*zexu+}&61V*t=1HCd7iw!;wQ6wmL6sC;#m3G#S*HnBde~qKFXDL)QvA7I zD5v`dlk#;8*AC*jlRRt#c|?GbJmqg&a2qGAKyIG|&QMN1lPz0o;1*ZZI{ImkgMC5l}s)joWER8V-^Vk*YA&51Lym(0?zNSvJgimyW z59|Y9DdfIbkB;YFFgAfv)izBZrqqEvVXP?*Fv2G!<7Tcypr|!NL~@0|ODlycp2ut+ zI|Q7T6IUFLNp0XnLe)X+^n5ZHN~k2BY0@`LSj&!SKWtTagScQLM>5xbzVmWVUc!@K zqS=F@<4^0kCN5sc921UHRpYMLUU|9x2dN1FZ{!oJB$%VvtdYM_E4Km8h>k^9{$JhZH6_eQ|bcbXaF;p14g3W_T$RY@8 zEN%j0>MJ%)?CBL@A(-$BVzwa_!-$+VR*HIF4F)Vl*A!pKkx^rbme^Ab0u=U3N@kQh z>>%nALsO#`jnBSyvN6?#zVo%u=`)|XU;jhm%iWI3G1u7ay6=}z@^(4d7-s=Z37wZ! z_ZosSjRzlaWDasS8AoSsMm}FhY)0Hh2`L)zkHb!Vb*VmF5Pzp+O@*~ykf2Qx)W1YA zZylTTO3xUF;Y8hYy*bkf@n1U`^tG36=#RhplK$emuj;?~!!PUK{^RfJzyJ9U_3!@d z5A;9$1^i!pPk;HRKhj_R8T3zosQ>n#d{6)NKl+aT>7TrCb=imj3)7zNJ6? z@z?c7-}<8d@!Ox*|Lec|1N}e$#TWH||BEl_KmO!P`pX}@tbg*goBGzP(hJ9z+U*|e zlc$gL-org&yKkF7duDVaH5^OM(cFs^vwV15jMI29DXMx2Je zF=sMS*C{dPV7AQjS_JOSm^z<9S#uQ1Wbe>T@aRgeEV=AodlE1ZH<(Lx#)lpQiTM;q zItF4+dW_Q;;U*ki5yU1|U+~!w+^OzJgc`86kVcHT*t#HCNu6IuOvFHd&!{BF9y}wt zN3fYXZP%bqzD}4P$tb%-p9^`!7cxjQ?P*!iBg8anpVAI$;)2b55^3fn^9zY%<_p+> z8-0?NnYHe^wE(b!5FvS%;F>vBp0JolCwb)XS0 zs@yC{FJ!QW{MRH})e&4xENJvvI%ix<+uxOH4wV=&GIA0oS% zf*OV&E@fi{RQbeV-Za2N1!3th(`4yzUX z4Kp<{ba-^Xa|V(I`CKrXhj1z!c*Y?Ia@md=g0t47`)L_E=2X}h9ef;rqCn@dgnV$V zb!J^?l840U6*iGL5Y$*f1Ewh_;yTIe+%zJ$8~eL<{*dYQ2nDOsVmXJfE7BA*z_gx^k4<584I%Son?xz& zDno!x6^9y-W9d&8q6FrQ(f4-frTZ`F;^Io<*wxt7MFjD%^A&&5)+ocADOkg)s$+)HXv(zSy&7A>X`zBGwVxgz9Eas*v2K@M0w zqmVZ@eH?Xsw9<`}V?8~4DjBCk;6q0WI^_i$0rw1p&_$6BM=;N!rdZ@5g;FY-nutKw zB)5??rs^srMT8nmM8IRG5CvAW4yBquXY7Y6Fl=p&o(?tTsx`XX$7}ucM?X+wWB#jm zKI8zcKvKW0AsZI-BRlV;m2Am;6T24~VQ0PMOrWM_Hnlxc43a#e^@%NckTA08DmG3l z9MJYh6l`>Nd92+4&6}uZ+}IC%Noub7c%fVEOkaMn>*wEjP5<`Kf1v;P zFaJpY?!Wq>{`pV8rSE;6XM2sCQAfM3`>VCSaPNk`|KeIdfAgmP zji!PtGD^(BJ|2D8{K*7sgCYG)Ns2?N9^>DLb2kr z8(dI5i9^(r1(sGsk6W>~9LoONu;HE}9SPE1&y} z-OotR9c@&blez5{vT6AYa1EMU>q}0K!e$-(f(gqyOXQ373z6GOi>HjLaF#&{O((Sm zn@r%FT5A>y2bjo`B$nsE^WqmDi7CsO?Pt<%9V?8@n%BCVRFA( zgRm3%Ei*=1XSMWsvdu8V03-Nhst|!GWS)kOtSyQ(%etGb{Uha1bPcB8`hz*?BEkI6QeA5LQ` zaxJcrx{4k9Nrl~NPzkq!?)>KL{I>j7hp zcebA!$@omp(-@g!@?a}$Wrs~Av0|pO^TmFaO&F8s2Y%eX{jgSG2k@b>Z5mC3Ok}(&awex;c-qVA=@%1`t;mUw+W+d zAoq>2;(^btnv+b(8VqVB8@j*9Y3&{*2aiM2goBlTsB#`Kf`wS} zVOx{=!sgof-mwh?#!@+!>qw|93`m(b);LjZtLOW$MWWiNn!{~ zQUcZ-xSjJEr>SCDPPn;|F)sH^+2B(xHpb}2p%;7Ob9`elIcBvsG%=5sEmVF4a7*Km z-l(>=QiN^ie9mc->%FU4000mGNkl4687Vg9%)TrYS zO{PX0)G=a>d{Ag28Kcds*5q(swA?dVjyWez)DvBe)k4o-Dk9a$6_ukYA`aAe-c0|+ z5o`tsoDKVk&@il7NrR-&s!0PIzL##@(VzUmkMz-_3w`|PTzgV<^xgRC%`ArUbJG;~ zC--A#suXxxifW=526>F@p=+&6-QsQh z&3LNUZc0D=%FFsUKmVTo&;RPD`d9ztJNm&}ujt;5wH`k`)o(sJ)qnZmRDbv2Lce@E z>bIv&?_I8;mEONP()*VudVh1G51{w1j`hCj@>st;J7%*!=vR+Jzjze-)zd-0e%kc+ zk4F97N2%XD9P}>q!Q-Y6k$v#sO7A|}>D>o=ef(sv(=&c4U{imaqJHcCpdWwsmj3ZK zU)0aO`=WmSQaMsmFCsHEJLG zy^>!&l2&Zo#pfu6XFcqh4QU8zV6JbRguLPRdT2~lL{n&h)>2v0xb{Koeyyb@dEJ?J zYn5zd`5+Oa^yOo@ro(-7sTJ1P*4pn<%{47qQ4m|xQTCSa=|g^=%YBpMV!(;=+DU%! zSAOF)Ut|;3ocRSeSYk=&I1XvE@|(wB*hZu#=f%+Lkp|&>A}?&%EcVqBFl-2M&c>>i zzMq#&RgJfJW5K1VoG=S|G}DQP4MYn7J5Ej{w;WlZ3l9o^^W|ql>)pX7nXrz`AF3{g z#X_clL(a9%${eYPI8Z4RG);}w(pu1lFo8mfrW%dRLvE3%CN1Ft34|T4GDUa_jAVK! zh`!`Fm~%GzmB%vh*m4<;0s}fz1=IoKgeqk6};x76(3Eswxb>j z5ttL6adxm6KSE9nOAkvPuG9ll%lxn?f&C#)fxG6-H)Q9Uk`yljy*?gbGCg(`PwI;d}ghvA56LAEHm8pCSQ6lN;1Q>P+Ah_Ow= zLy5e`Vi6sh>749r8xg8lBA%qyLYx(Akq1M*YSH_7*fGl`HZu7@rbRaAiwGH~u~}uDh(t<>ONe!5!hll^WwcNPa$+?4 z_76KN1TeYY5uu2QGpFKhe5Bkq0ty5!Moec`c5< z*QsmZ@h6jvdC*u=7o&%H3 zOszGUBBuM-=7HV4ySMe^?5P&pM$JR>5sZ`d)+;7?ET(bS|KnZ9NMjo!ZNoZ_`0aIL5OrXoX=w}H5V&rDsKS@4bj*b?%5)bdh?YR^~1N{ z(%=2^T|GR#(3YS4Qv-Du@H(+a`04WiiGsgsLki+Vn9+PtE9a(%R3=yn8_!!Z)@1x% zTO*U%A^)Ef?OM~0FBl`6^j&P!R~xOzCpy_b(!F-BufB4ufAak=>OcJRKhnSd^FPo( z{Q8?(^Tzsv$5;9LN$R}|Z_ZcxaCf2)_jmN+=7yebQfF6PXItsXMc31d z)MMI5Y_uPq?)32KRu7);^!RktgVU}@XQLjUL$syG?&(H4-L9Y`Jz=B&*GD*9T6{p{QK^`q~< zpl^QvuDy^F!j*+v;ctq zPhEDNt66>)hN3~_j|f}JF#PPag9nZSn(~A$&zzB zr;P#=^N!=>=KVH>dI~$uSXF>*JCl8jo#M;byxNV=eCe)T7I`3BNDJd&UMD8vF@Cu& z)ne~6e8Dat<2n%aE{tw5vf5PU^xZnQYvk70mUgkTO%b`R{~bAVR(a7oj%{3z`lW^( zzhiGfV|0zE+!lq;JQ$HwncbQWW4so7sbk@^k>qr;qh;2M!)Zt_`C>v)I_hYQmRD|c zsN`dAy%K}_B<6We*Sl&8#@WW^Djt8%=kG@=x=JPvcTKRW+~|s*FAN}vA1&pd#g{c3 zLEr_WK7Awt*KHxN6;8LP4ks}jr~1yjjNd%unqgAv!v%TaJP2k6!>Zw|ulYvx`!I4Z zEp-%Q6ZMqwabH)9+x0WVUx=$?U&C1VkfEFEEe^(R`E`tlP)J@g;f{TlICgejXsxm# zEXJG&?6Y8GER8p-0xv_5AM`e#2q(;IUOo1z1%l;QOu*lju6dJdnN_%(RpqmQ zXOG9=Sf!XS+H4|Uv16=>kEz89OqSc$RF3n-@|ktq!}HM_HlA1hkMb6cnRfcI%Xu-)O!^wZNz+`Sb>tB9D|M^$%)PD`dA5mn}mU(oY(=~)i>Ydnk zcoPk4Nl;(`##%4-GzkTDBqtnvT@^Hrm&i>)D-)P{?iBpWJMd=xIL>tMc%yHA{+|BD zpL|#U_MiP!fA*6f>y=kNqfbuvyiI=$o#}nvq2QJUgba8&JC!5g23vAAtF3wV$b4h%GxHE3` z%4)ASZjbuqy`D`W=1oYxni)S62)ks?iinBw*-5M^4kEiH ztnC_5`X*EU4wu8B;5L*Uc6u&Mjm?aIR6L&P9v5L@7To<3#n`=M-RIj$22 z!#U-iaEjW=&lj&X>n20421>oGqmF4}j7dMMP4&6v9u5xFE}y5K*yQiXkT@FycaHKV z5rb0=&JR?;xo^FxY><0kQ3937Sr^cNQ4N|{02C81r>V)cp=tJoP2^$yQh4}4)}pD1 z8&8fC;;=Pw3mgZR0#Y`S96J2n_2N+IQB9SbAm6kDQBWw(M` zY2e$aRg*Q>fP7MyC_D=;>SesHqisx%J?HoTP|a==S!n_W53*_DcUvRyf<(tT3G6Y0 zH4y5h!a1Orsm4b4aN5}&{0a{k-5%;?x%DRaMeaFu*JPFRRolS@dAt?cd0i)zwl#$> z^y@@tj3yoqlI^23zk9KtW6u~p*GnB2W5>QOzaGkb5ivYQlS6vmD*qD1trcz=4mAsA zSlFc3WD&UadycRl@fTdi;(2vFY;LvNrH-CBW3sGTE}XKx@tLe6XOQ1)QQ6GF;1gZx zX%kzSJpY~-^v`_ECDIwAaT<$T=UQx)(t_P`%?IM*+_DC0U88qb%w3Sb^uB~Ilg6B^ zGr5-7${4F(+D~2V2S(S%`ALQ5~Vqjb`V9sD9uvIPXCm(~N>SBH-%x6w2 zKjyY@4fIX)4+htnR5*U&bAImY13%jtqwBcTcNR<6l2#1-s};wmawej~iCEy>R!QZl2uKxK9my*dNwo;l_}23StIdW2xBO*W_tzJdci=Dzz`xW47O4 z>BSfC=)uDW=t9l93Q-ryVhYUpUa z){43gt*LT3KKQDh=E;Slo;y6(t~HqJvnpoaT&y|_<1AlT-v=V6v5>PGT5p!_-Mu6K zKce!kMhfPad6w;sIV9VXMghK{6A@~Ry+zVW!Iz5wOSm84z^+B0V4WJjoi!iet96iU z0kRVfjJCnN@#V0Q-{Xl05lXGmhQz6ogDYZy9~8wmc(~RSz03c($M3)OMZNygUH$zp zf61>=$%-4aL)WQkG;xK%(IM48eHoQ>fFwh8`;5v+!Yj#`{_JpFkO*Us1u?yJR}FoF zORU#nH|mHD?R`r6?a#fWzx+o((Es=sKhZz_gYW9(#tVA);Z}e3E^pO8-s_jANBaBi zUA^01)CZfJdT@Cp_RBhFLw|ZTu&EARvFW}%-)M7s!G?On2KxwF>FIXh?R#TWJ2%k02AysLnb0@-1GFl-+HU3lbFHh*hWI=3>{V~@ccDkSl^*Sn^k92ZZ{Qzn zZ-a@LyuJ4u{zu!6e5X(LqdwksJ*6FYd)>}auf|Say_NdLs~7tI7o_ih^+ezO`aQk% z_51qbTQBRiuf3_4fsPRz000mGNklNVJ=no zYPj<}l_-eHf@0RC0lkTSz%B$*dYq}`9;q=nzpfzKRr5LzmIrb`?Tl6DD#5R~qJcgQRWX2if3&!C^GCjb_R1ff!#}LL@ zc>^FTxRDW{p&p%lDa6=oS#-=#GC!_)XOWHA6)A{kYP9$eDM^~tzgl8+Fgf~|og7_> ztSEyl)Q1@MRFDyMBb8zF_;#a{hnd$Bu#3U0uyb-R>`_dfF-dy^8qY%a(6IQdSW+n zdF>DATkC};7(>*08x)=^i~~Q-aT0(3KTZmr>|+970Ey2*wT1$*VUsWIbjp}_b{}Y0q=oyh1bE5ZHl6>ZSdW4Jxj8#W4x=w}BwjQT*l|8t~7mQ`{ zm%=gWHwAwyiFym1qK*+wjhaS;P^jeBG1fgWs)Nrc6kV#hP6fVp3$F(gIn3X@wbrfM zYu&wfL&M7VBen3@Qp6u7f)%kGq8i;_NhF<6JQ?&kZU+udgo3 zsg!x@G=yU4`od>l*H_>CtiHgeYUO;)8B?KKx9;i6ZzTD$5@1f&NYol74rqgWzaHNh z`~P|KE3dt#uf6d(y~qZ*6Qj$|6mpO+qA3`Uz$R+pF~u+{z?azFym><}+`CUrZ&6#m zgp87NiM0{fH-I;4+^~(@DoE^5s`?IEuhu#mpjazdlM!7l2Ixo)-1ZG{2J_4w7(|kJ z%aR$VP zHak7tN~gO)-iV)WvE6NTy4mZ3jq~Nc%XG#Uh6^_B=i8Oe@IPlmeYp=^Zr9LCS9}rJ z5NEr!-%4j}&d+wzIsO~g{3V{+Z`8IWawU_@1&g1iy z9z0#^(fOc<=cz}RBVRhUdcs@yOTI9)Jkkx`tiOD7r!T+Q^_|ZQ`r#Lj^@ndA>wDik z*4N*@t2f_%RjU_=phqeBS&2__PbE_)^hNlJbuav6UMQ;_ zRcoC5*-3@GVbi!*f@f8IPS<+aqOon0aVYR-eHmNvUb`er)<}aFK3dlLyuXd!FbxH3 zFACRmU&(yk1dh2^`4t%V0Y#i-Or1S-$2Rd#_pvc{F|MwiOycU;QTOUVy+gL2aty>q z2JVqMjpTIOX&V}e8$tvY0&xRPPN>{>fyEI}oime352|9)avoyX55QA@GE?Q4W6B2u z1hiyF_f3;N?QeUFOipPsU%IAXAc7{_rZTTkp#XDW7h&GQu4j1yp2^HcOJU?bEM|d^ zV-}Sdp)m$6r+ko8wlfjmA{}%=*90EhnQTX!6o0Zq&nf%5=J@)C5Q|UFRS__#F$|ck zkPwfn&rs0NCniOZT>qk!Lz?oC({|W%%45)SSTNAB9-8gtn2FeDn8A*-aJxU}v0BEi z(3FcSPvfflS*jLL!W~0$re^oca z>^#O=SS*Ap1{iHOXIJq{OmXy?aKxoT%{EzcXCWqY11GuIrE?tOd(9go`3ylm%H9_f z0xJq*mvbPYwQi0f^Cg|-^oh$AAwH~;a13DDG{_}#rg30VXVi7RxC1t9L>$?!TIZWh z+$?o89|T`8h6NB~O~)vIgqX+#h=f!zu>;@l%=L_MvccD8=?g?$mA~;oWeZ-%Gig4` zjSJ@_A%HPXAmk9LF*pYPC6J~DC+Dfyk^r&Dhb=5#o@C1~ac0 zVj5%B4&L$HSE#Y!TdfBT4H_B})dnlb)!8)42e~596%C5=m0+Nd+$ZL(8#nln*|YK5 z$@z~@j+Gr}>rL25p*k!!;}&B-4muyaC&xE+>*gKeG##%`^cgna!Uhw)^x}Ozc=T8v zrp%>ZW;LvJd~^ffW7%h9b9DRWP2x$dHg^~?Hh`&O5L-S9TZ1!&j@D~xy4QXj z75uG+m2#Pvl;L;_wA3Tl=yW!-NXEh=xZ~u-S?j0Ct-N_ZWdnb<9d!u<^{5Lr%4hhULl@r2vnfA^&d702t}|ks z^H%+w9s9*@hdn;%FTit#{&JVvjH#=AY6G#HwdKpe)n=y+dCYHl3%_GyPk8)O7vwsF zo?h(rm@ggPxIZ`>^~vd|kNGC>(HZiK#wNdM$0k0Ae`5&UKMuWiZ_t-tyP>zga8uv; z(oKEuYd7?rx9;jY-*`%wyx8K`j*~+e2g#HR>$$&ZTH_DpM_bWPTo)N@h7US6hNt9S+V7A`hr|l2i*S z8-y=VwPfYC5d%Y_ieY)#Qy9k(hh;RXxRyH>z6>nYH>C91TdB zSZr*cj!Ur==_rbbA_acLmlu)??{0D_^0>f44kXu3 zKeU)sU|LMLV&^L{T)V}Nd|GlXb~Y=rfE#kDW68LbFL6NPvk0*q*L8GWkIVB=+HM`cDC``7u!Gy$u%z%j~m8j zG3h6DNH9g&kiYzK&JJm#nxAKAW+&NE?0zw!274gy9M4U=D_ zt{)L3BF3JLN(9ewD9P6uU!r^Ir5E+|^jt%0YHY@)+{`n1CSHnQ_PU5a$p3GGd)C{Q zH|;32UL7fUYgV?%{S24uWE@HE8Uy13V`w#*p|>Vlu%UEddSDc|im;XYZb>^knVTuq zhK?^AoLMs2IM0B@EzNw6Y@mkWSSKe(y0|#Uml`n-2@W`{Y!4Z0xJ49`22Kib_%bjw zNG9xz&qRGx05J1u*YcmAkJU#(8!@Qn!MPCmbmWl#R&{NBJ~cL34UCOAjrarewt|kR z%Pqb{{q%?5)z#&dKK$gVVmQ*SCmZ+9h=RvvNPJmKuu&=M)IjIac3MD%(dk*=ZzSO^M-)?ozru~dxSkAa- z&Utfw<;^&6Wv937(j_^z#J(g3FV*?QqOq9|Ht&PB<4PBskZm{Qx!i{?i0>Rvc#Hp- zP5PsYl^$LC?fXCtnjW04p{9qYsV8jeFD`fToBqap+>FqRJWAfUIqIz!Mt$oup>KZS zNMC>RL|^{gO}+h%ktFe}000mGNklKqUE6g`e0evh&J^v)BMW%&XMGDd55_ zaatpwtQ#r99x_(Y;Zm5e#k4GJ1%qUYfE7H~Iljo9P-i^769D6A!Dt562b?%U(BBAJg&G+Z*7V{WKPhR~)8l*MpC z##muE14Pil&pO1mSA(HnS0hWL%rzc9#W=#akk)k2`dkvF{aC-rYbC;K>RU^!l8rU) zNnv9!g3Gu)re%$&f*OlBDvC-(ei7dhZI(*BBFh3Z=w2f@^~~(HC}9so-zGPl|wFh=(GfghT-o5vl{NhGOx-US5wDA1L5(WO&+V<$F}+< z6Q&3q*7<2&<}6(=b1XO~o1{)M(G9fCu?mMxLUIh(kvMedHq}vbI820}sKKxwYj+(^z%Rbfj)ZhfDPig##pmy4~@>71oW8UM=C`)B%J zKHTYVo*wJ{iz7Cy!%V@(ReUK-J-q08$cEkjL(ivdp6j2z>{dGE`vNbj*`Q;$)!a{A z5Z9aRbM%+I@itvCz^k!|{Xd)Q&<5~Z*2@OkF`#XRw#YWLwz-188rhiRcg|WlI$4A!lUhJ>&CqA+(*4VcE8!~AFhAXga-R{N4KIKjP`F7A5Ur^52 z#Gh}>H$CRpgh%H=yV65izm4}M{?TdZ^kUG}#ag-LmlMWvV~}nhjkg=^eC9TIN|D zOJ>z4i;QK#3|rO|4HmgHNkbJ?fs9j!XA^l;$7ENmuvog(JLngMg;5cwmt6^#4yD>4 z4KaBOd!OR-QH)2+VRw@w5Ld*j`yM;v67#HbOu0W10||o5NBSa#B$OB~ zxo>i8`}o@mz$>;x76XQ|sm^r4J+NcUT&@krSP*9!BR$!+A#+T}D+)B!QEp+E)Bcs;aTcMl3W)Z4oaf?cI_wr^VW^Fa z&tz;%%L72hV1MUwF|0H1_{MJDKA!8!?3gnJvCH2rvbmA-RqlDL6@wbO<$es}9Eh5P zQV~dk+L1piAG}*~MB&4qTxE+qitkeCy6~13i~*aFTkPb##6dEhr95F3aJ>pjkj zLoT-^!^mg&0tI<#WLyV)4d{W?I(!{x_6^43I?6I|%5i1eYwOWnyj{b~%X2m!XS}7o zV1qg;0;R`EGx?5KlEZN-=KLHeJt|uNmnlAZ@K{fuoGUaaf?WLKAffd5?PnrJ(htVs zG`;WrK>Pvh6s2>U127h|evh z&L*m}xe|RT(M+`}e}6XCdO*$>synxD=$yHvr=cCG{QH~(VGuibHh8!Zp@^9j#O3t- z7@vt+1Z~+{wb)`BlptCtf;v`yTIRe(Q#gnHic*M>+15N{{fwd6M@=hY4H2SYkF(KB zcaQYbAAM85dgp!K@@}+cL%nY+5H%{7N^mCgWa`>$r0)$odsj^@QpU}`RC{VSQoE71 zLsc@RJl7LZAMoV3)!pGzKl|1z`ak^BAM1N>e?uRgkNT_kF7$T~_WF>GsOkNSV?E#v z^y9146E^9mm)@vCyk);&gL}@K?sIR7nYW8E|H^> z(iNNAD_-{(nP)?P#TUP;agS~X?b&dT^%ne+SeN6DSP&ca%d!n!(fVz=|4sY_Hs#N+ zMb#P)diL~ePiP{ak6|;Y7Mp~< zL~BEI;md4J zTlWh#ZW}(OOJ5IzAvw$RFi7j1ge;4_if?EJh{#R?Cx9gbNLtaic=DMCMvk<Y#Ur` z>Ar|PwU!LTo+k_&`zDiLgs=O6pqV1uWa7Y6W1uBoV%wp#vBTo=?6jaMyg&=1L|HT~ zUi+tPAs@vctA#;}VS0RC9Hqmk+EMl=l2Tkfz~bl}&JKqi@?@^lIKga;DalF8SNM}h zV3Tv1#|NpV9K^uS{j%qhj5UnW^0IHJgOCtd!%uzkRjq9!j(~`ZyBT2&86$*E)!Z$y zy~rmbtRS4S9Gr(WNzNpePhnqqDqmvFSq*V5Bc`yQ#s>)V#3~c(i?E#pi?ifD6vPkP zus&5cB=zw63Y1uvo!cVf2N+#P(_({v)xTOJUwp|+d==q~Pk^mL9WLa(-+8Eqs+CGip2G*m;)fz46^B^h;%Dio z7^)-F;TZ$|G7d~+I>f*Xn?M({O%}cpvvE>#^;xm7O*A^-3sqMfg~L96es$G4Ml5nA z@r#lk<4R++BmFXoRO5+l9PT$JFI`i@yFXEk-k6D3WwP+%3&wBI9eE+OGW z%-JDg*cS(jO4@*Oeir;BX z5)5Z39H(NYJg-fIkn*)Ww2sg!q}N}%ryqUiE&b;G57<<)*~8*eVgn8;@^tu4k&^Kz zbDYdok?$QBut=1r%QhVc%n=aWbzrO=!H6PiEnew3FZD-Xdqw}@&wi-yefe{G$m{X{ z^ubPl^=PeMUEbA)+uQo&@<`sKZ?E<`XEXVfjrh}D=k0mw4E~(W@x@G+v}fCWZMHXk zWW&AF1smh5ag=Gt++5+i#qW||cR1NRON7=2-wkVZq8;)r@-6L7TW_SHebGowAePad zXV1O|ed@%LA~g1UV%eW|-|2TY<0F_lSoXRayY|%KiZ!!gGreV#KhZebb~fnntfxI+ zAQIb7{TzGCIJUVV#4ujhP8Ipd4RlWo_-%{g=hZS{z8JS6uM>UFjq<$u%fF9jF; zL~zO`|LOi%kH%wt%mjb%bfZ0AHvjae|3LqjfBhHw>36=OBfd=W^;1dwapXk+_oQDu zX0=QtYhjvhc&1mZ6|tsNYjV)DgGJzb20uZG6CSlb+*j#rjZbpFIF1c0!hX{C@}dmY z+N9LiAKpfPcSB5E)twcpd`?QsiW`oXt`#HJ{s=ZBpxD8 z@D)aM^eTSo?dM3yX*e|z{%{kI&OYwrXbs)z#Gt8e2>O6i9>J_3iXw`S!8A}O0$DVP zZ_}bJpblz(7Ysn+c+XH1000mGNkluXMylNI-H) zihyc@R!Y8QCwM_4|69IECk~9{T-cC5JLB=UJ{y1lN8({N%QX#u_G+Cor$QN)<N6x2vU zr?up{r0-g#=Msz<$TgTq(?NbQXR?jwO(f)$i0?7m$~N#p?9efqmBO;cKBO={Q&_iF z*cJ>n3%_m6osEz;{EyW5*)^zv@BtJ9p-#r(+$C$sG#!D^_)OS1cZ8E-!~7QOF5?Za zBaa`vQ-GCh!>I2^Lvn@LC$~6I}W6O0s)EoZ=BR6Dc+*-!U zc!D`k1+ho29TGG^E2t>~o#RtO)qOLs3Co}$Cwo&(WWP1BRuZvc6!xR1s2*H{VO&cc zU9*&e`q(z)Ki~I9*sbYdk1fzK0w3`Ld*SC=CTqtZ1Q?fI))ytdfee3afl5uglJR#x zcOVHI=~eLTIbc~)60rxD0SaQJ!gXY>9LxC+b)*KteN#1P)F-&FFtS(Kp;rJUQo=t> zJZHl;7C8^N0=r@vui`|>GbNetUS7%Sz!Q6qK|G(sHTGO%BMsmS1vx?-#FFKC%$Qj> z*mvxEkd;m1E3dtvcR&1ym`#13l22+O`~^OFKC&xNL~!jyWlf8E$CwJ@WnYu%7~i#` zHAVS$WC^vI23pnw>rB*$&TNMbYc{+VyJL91vGdqPE@LRN2Qjdf$5cfohmw$*Z05nb^Yo$kMxu`xZAv;HmvKP&WH_gcT(nh9FMeTPDa-D$Qb-qF|#Yc zplAy5nIGiyeLP%9I#=eEdf!T{+oVQ&;zZx*`(L`D|I z&~MpTK4N)4WdnXbiVgZ+=d6dP^-o4Z=T}YsXCs%Ce8a|a)4R60XEVFk0F&&H2?f*dUMEBHMv$#}~uxenWr9*t+)AcE{Z8dulYXMtW}HcTg&c zonxacd+qmE8p+wI#mF;YWUja5-Egm6vEki7TWmMPxgzE!6D(APUk5Jz@8=oAkDpuF+ex&k7U2A{YsbnHLGAH#M&~?JN7C&a_#yan=NnUQ@h89Z%oraq=11Upaxv(^V@qheh z`q_6rrx({nDb!n>8M3225Y+nR@H$WHp#ssY9O~- zWA6Krwrubz`=p2c9Jg^#w>ZXj1qC|WjSAR6C!Rg3SSuwyiF>kElRQZ$!7gx56r}D- zp0V9yV2zH9r$;KeN6Md8zGun@Y&;)Do`_&<9ZJt z9kRw@#)M4vBfbJB_Yc(J!0FgEe)kuf+1ZUn_H~@HBUk06CBk&tmsr?LA1sqJjjL>_ zJ2-2+j_G(dDIUi7jAM~k&RK3Rfgf zXgrLieKd=W>_@0YD8`-^Vi80&DH7SgPYCh0M*bw~8 z)5IgJ6O6XMj?t!NUj~}$MSSD1PV-^jvL$cfvz-;#c&=x*aFiYl_=M{L#&kOmrEsBB z*>ycTz*zVgkL{P3vtQXE%Su9gx7L}E%X3?Cts^e+D_1$%sF?X;J$Bef9ihvuA%*G21SH8b>rkj7nhf6L#nw>3r0JKFI_d)9y^<5 zxm|3~M}(q50g)!KF-dfa*sv&62XhtV2>dZuL_or7P_Pz*&3V)_wJ9PXDI~$F;WKUU zM-9|~ZH|I?o|`Yf`MSRG*5~z$ciz>d|1*I+hqt_O-7|M(;(9RVq?6Rh)cI^z)uTxo z)VcrtZ*{#dNH){#W!cCCn_$)hZ*%*w(zdaQA0Ox&pFPpP`=@`b?|tpNdT_eduO9C8 z&eN`s*_iv^s-ImY8}m_qQ+&Q1Wx8VHxnZNa8TZ)Nro=TvQevGcDW zsnE!J#D&f69^H=q$Y#62H`<}vWCNCb!OQVP+Cw{tH`2+*x$g#bmfy%myR#whteei5 zlfovo$?S~3Q_4N@i0|5gbTp#&SeCw9(wkxeRXF6d_ zLjp3S9?U&!No;`SmbD@3AvJ~9AvFqr5m%Hn1=x_piYYt$m@F^ZaN?SU>*g=tiI+W=hoh-k+F{2;c5RxWgEvucEImG z^1vp2fjDd6h^lqp{PlL`L2S)J4zvWf1!{veIZ_qF2_c}##3GjqK=D;H5Dcop!`hFq z)i5ZQ5JLOY98UN568dFAli20vL4~>5xOm%xbIu#iTNouRdgregof{;GZEBP}prHt% z>PX^q8l&(L51FL%JQ0V<4#zc>9XRkyW5nJkfmN;bwwp1E377fA0fRtq@=cuBWz{i& zGhx&+rr93FwUfMHsYDJJi)xY6CR8~RNH%~XCqvk(6M5xDj)ja3j7c3QE3OAUV`pxX zahhaoCT!(zsFlm1@uBfG$(_`(@>qbp@CLXFdnYS%NWW~cNhD>HWvuF=H^#VjWBcZg z2$d~)G~Wz4V-z^2@iZk5P8p~2*JhdFiwaRn%b!`zlZHm77-A;4*9;O zCAN%#*a$fTyD5%6s#Cg=4>f8t=S=cCx@`h|5GQHnSXMYuVRhXhj|qKNz%qbyFBSO4 z_4sCsdeWT0nHTGb)}9KlQrqM=Fy9o0GvQ$zZD+yXD9V$Or@JK$~nUpsiY2R zj7y6+D~JuI8p`&<)&S5iClVzXYh5dA2$PPSydf2Fix!Ml)|g=eI-FelYL3gX(o2)@Q@XUO9<)@r>T=YY@Q#D}rTeuAG(rapBn-CRfKu-@?&Q@5m2 z>1;pOglCY7%0ZKUij%~&TYA13j~vgou79LDo3Y!sZtC*tiVfjTLHwSy#)saGd^jid z74hox&||QS&9NLyVXL}2Mxc+XIT)R@Xs!#U-qZ*FMZ7tTXo?02f*11~;0)qNgaRxB zV1|%d$@W@-5~bE&uZwA?Z38s*LUj%8Uy?Ysfs?02gFBPTZa+oHW% z8_3bL*(SOUiM0nY)*YLCe?i#wq&{6+WLE^f+I4C@=wh>C^M8cTns%k9Y})-l;62+6 zIz{*Ra;3-TYkkD886U8j|Lx}SbD6pPLBBp(rVMXh=JHu`R9mJ^-0 z$5KIda(TX3cR}BA6I?}Lt$RG|$R!-h_5<_Yl*CC?$s$SdM=N~Amld~2kYZ3LmgE%o ziyYT>Ci_%e5fds~w|HBJ+Y+SmAVZ_pz!C+RYcxfXz3t%^GHZerdWSVTQApECGc)3V zm4U$u&4D~gK`>Lv#ZkrzVu$#PK*ougTvWPI@+RSLF^m)wr{y?wvD4fMluNwp_EuYm zoms+T$Vq(BNw6n6pC;->VUbvG2YlU_WSPuCoc328DTbtofIyrOa-v99l#eE%0*2Fx zXs(}u%JbC9C-6dmeRw=3ctHuN4#q#3RL|n58zW_2;0^jgXNoH|k_3HSI~q5Tv=c9%4Wb)16OrYQ(SU6j=%vci>Hepc=jfK>1ge1 zaxmNvr}KGTn5?r6K2sdyAr66=5w%8~a%^>dc8ST{S8Uys4)f$eoPH250_P|qwhf)D z`WVwjG=-qTq3JM2)&_&7KiLT@)xk#;gHOoeN@Sim?neZcP;00HGC(OJzxUDhKB8r&qCu6P#{)H~2s z8#U3h)^JFw8Oyo zN{4KK8gtDWO!PjB&>x;9@DX^kF*`Y4Yscnlv)QWgT(xa$=opWAOgV|EM!p7bqK{1j zOOf*hDi;H*WUZuI0{EE`*hbhuGLN|$n@@4{1ZBe18M3|bcQ?ZQPy@?E5)vU+NLsrt z`;ET%`fK{)8?Wov?|q;RJKQbf+M^%Qdu3pn_ z-i?Jd!d{ec+Ow%1$7C~}ys1y^;rEPx#1B*L=#O18?by{{U2e78bosv8ZTH&n_IpvSS{0_+Jsn|89RGHt&21x}ug>{CaS~7bDX-H9y-)PcFOs-@Sj#oA{@@ zD?Nf9V*l`Jt@j@_z5g*IJi4v_-OvA6fBNI^>fT9c-8VH8BA?g2_!6lAY@}pjZDi8d zbVNwaa_mczK?7Bb4^@)a)^)PZj(TBUQ&))OOD!_n=-NR@e~a)$T$2(^E*clfzFwpZLe4B74oXg@R7L#ES2khg zfr3f(c!L;G{?2bdW1J^DG#ws?V^y3%iR>_4kQO~Oo$uUJ%mbfX7w#6 zuj6u4ISk4gqQgw%G>6^)8b+&=i!nNm$%#yeD;Rb3lvnq<+{y3@@CZL+GQL0_&&g+u zu7QIDm&z$T6LK50;H)^J^u{}M4aWxN0T*P&o1dr3{VJJfjax}@<$Ti!XYtNs9;V#d> zHTWE7!_Jn=2BY;D3RRRDaVJqP@d2r0|7H(Lu3r#e#BIixz5@kLtC*rP@M*qtfvjhY zNmfE`v3yx$gq3-^b!UTdt!|bvMl?l){3GK?-yRKo8F%v5ag7uGjoWMoXSfRpJ^aXe z#^<<}w?T8bf-&Wc%*RYTW0ktp9rosQs0iu^!y66RcjAFzzaUTEx{k76llfLTCI|8W ze8=;_GlI>{b=RKbZTrKD2uM6P&`lrUw8@47zH>5G^E`BG94TXv_=u7Aj4ksTNV30; zjJ|nRF{Q7(FtW~?oU7|%N?(XKCvRA_i4$vP;3IX1I#xdGx~|jK)*=QkvMRzFN<+ z_hu;~h#KnnoEt&?e6Cw>d9t4Rgd27Dy$|sQmp8O*lzV*l#P=Q2gR8Qa@J6+<^T~}3 z8$uyh=F%~*D=OI2`tz1GRZY^WR*gufuwlPur|N58`D}gO({IveuPk-vrG-9yQ1sAr ztm!l~pZ1zA7nr`%Z0$IHbr+&t?omI=pRTubKD;(`YDgd zCB&|mH?ZM1!qg|IXAmc2dHqmB<)7Rz*Nhu$vN4VRHy%SR!2!k=BQ@GeZeqQ(the}r zQF9Z|3v}}7*t8egrhe7f=$m@pvd^?)lipY0vAOq#zbE+~JPYz#aX7p&{bMt-b^4<~x?Xsmnpnm&DLPCM5V zZ@yXI_SIjm=Re~nmH8D_@(YD3@jOBxdN#U{*AOdG%*8-)m2Vk!5p|X2 z)KK`>$)n+edWqP%7HcQjjxS$K6q?96>8wxBMaSHshOO7K@iykZF_#tIRjSNOB_Hc{ z*qaJ1Cwej#$2ETAq|P$Nwml+H@s}Q@a)=z&X#oom(xDo zxWza53k5v4V0z`=ksW457=1jzMya`B18jsJ$(T)!0Dp6)F9v2eF0t<0o_;AsUFmf8%xN|^hw9kCo9B4x*S?cb z<}`@rnBYt7#)#XT4}^3HfFh@Y(OOqL!&=UDJ=UTl3PDp85ej?;HWBV4N{kJ@7&I<5 zTQ&sn(1{LLwlswYp8-QcSEv^%s(7kk z6g{z7bp92)o~W$^cHZDl_4J!A=&Qcyg(|!mzx$Cr-OcOY`+0Nzz^v2$v}k#-f~Go} z&2$JIv1y+!dd-&&s`4gu#twGD=9IlWZb!UueX&c8juy5uAwA@$aw-^nq%{2jc;|q@zoK+|Qt*W`6 z6sq;)z;7E|^V*wV(X6T!!bf$XHIf>7d|9!p)~}GS1|P^tRjbX0o(;SI9|(R6Kb!ZO z%~xW7E`Pb{*_^JRW$U%X_p0xatu$v7KjSw>w(;N2AF*+t@r7zOoiHcCmng~qqbmOw zY95(YJ+QyfeV1q2J6h?LFT73P{?%Ws3)^E={6u4IvBpSGfQFb8zlHZ^T8%Mvpz>nP zCc#Ozc_!9z^0P&^LFQ8xC5Zz+oOC$dskEH7ajnv!c`bX^$ey2_P{UutuSxEE{bHUc z_=W6IMBHY(HU?TJhRWO=&$>|MA4<_>XMyL)^k5DVD2g zXniBE6czt9Sa_Xsaf@F|ff0eE0xwA1w82;5ub`$urxyyG=<+SA5mzQ`5lGya2qocz z2VXGu8;25%!3P{f_yA)-@}dG~+JR%Zxf|XB4@D78(JioXFZZdhy^m|HV1sMiQW z4Zbp;h9Bk_KMfKT;0^h(uc}5(oO`fnBP=mS&&NP0;IPLpF+5j(2$7di4PWq=I@mYI zO~NtKE7^n5tWcz3eVubxrug2VoHsG3?G>JbayT4M|qSwpsG4j#K63%Xs5xsFw6gZYgBBSwXK zxu%6TRK>Q;Nu>;|RLbW2gBV)RPXGWA07*naRJv%cA?GUl9{MW<_JOaK)Fhrgh50V{ zE;6POIuLKq!ejJ}v4OLZr+7Q#u@uBA@*I0z1Q?5P!7{c0dBy^tTu0YEb4NiSWlof} zp^jPWl?LBST5yq*@WDXFC@=~PveV>uh(=P_pCsxp;>Z~7*Kr*)b^4?0Ey_D-3uA!(?n7rxoy<;}@X*g>5cNz`5fkJ|p#GEOgJFZzT>x(?nx95rH zqo`xUyHq7G3XCG3WZ4gM(pH^{V@nG3@?J#8c?K~800BOs8`N;c^4i_rWm7a$&*n$e z)HdOoCxxUU^I0TP=1M)uK>D^GHykzOxskf`5d2gbSziIyFfo_5n&-F)M9y8q!r9eQ(D!6y!G zq^?O(nIm|OI5n#>Qf0mLt!hObSJZK-6+h@QXW_pU@3t9-P}8bSb!t4&k4dhx>&t67R}FI$Di2TaJ0dKGA$R(qbN3F}*$W zQmL2Y_bZRM=M9D}dbP~JxVN2S!EjAl}qO1woc;O*+3#>;zjZTpCxJ$|>oxV!0)B36Be?~ud+o$wPFZihb`3pa)U;X?~>epWMDgF9O@6@lo?9cTp zulR_5^<^K_uf600Nx$-<59*)1@FV(#+diy+^xO~X$DjLdz5dzn)Ze=0oqFxf@79-I zd%Hfjd!L@P`k1bn-leUBhor-OiOsFRU%;p~0ePng<~^FC?W(ON>gQE$xm1`3)qbw( ze{Zm;lJoSv!TN6O9V(wQ{h||MEh&`$lxDRI)@9XVIj4?Gs8Z9ydL3!Lpr(t^f-gpk z9_|P zi^}WK#5zPKY-PQqHt6};LNDNnFJZ0O2lioNldUZw(EXT!$>ATSmHS8 z4Cf@6p4Q3+nfeLLHn_7a0OO*CjUi4Xm?GTt?K1)6*Se|Ti*@+GV4}oBMaE$s1>7#XW7obyICeV~65W6B(}iiDMckKG@4lrrZ) zE{di+Y$kMkPbbckzTHnPF4kfED2&8gV@%&@`HYhoH|sIuSfBc2VceG-I)}K|`exumbbUhDYgty^gYPxqx7N>-#+&YdD;=%5lirdtVNOE6rMkKRu?Z_5}(<4V-8~zaE&o& zZG&~5Ss&`RZXj@Oa&KSoGP0qDPJvI%K2n|0>Gfbgm=5Fid%c?*HccbkQ{D4f}#O$8`D1*lXDq zeC?=-D>tX}PL(fN&GX%{A&Umy8JpdywBmlR=cU?IuokwX)kC^|^#Q$f@>YGv)9%tg zcH?pM1tg_4>!ZL*IDKpXw_nf1p?Of2^0x-m2U7->X~q->+v(->F*; z-=-(;zfDg$d?)R@q4(>lhac6`5C2@xoPJoh&OfZruOHPHcJJ1g@4Q7{edf*j8#lZ| z-}l6~>4%>F4*kOO-=klA!Jp}8Ui5ao;kI|`o1c8UUU}->dP00m-N8pSTHLMDUm=GD zL~hHeZsrXh(J?K)ak&6X>9P7Zjxel!#FRGGI`(sbJE=&0AhVXsH_ z7J6`hu6r&mbY;=$WiR+Vef<|dUuXL(8m|s`vVo&*sn&_A*Gz)%rNTW-8XiVSL2kh& zK3GHYL8@-VOe&v09XUfe_PsMmWe50`$?H;rV`E}?)dcOvr#Q%0)=T|>!5Js?U3*x= ziJUY0Zn+1Vk|XE>sLxuvGu)Xf`C53jQ2Zo_vYxrW`^7oef7#%#2s)F(0