@smallwei/avue 3.8.2 → 3.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +206 -86
- package/dist/avue.js +37302 -0
- package/dist/avue.js.map +1 -0
- package/dist/avue.min.js +6 -0
- package/dist/avue.min.mjs +2 -0
- package/dist/avue.mjs +2 -0
- package/dist/index.css +1 -0
- package/es/avue.min.mjs +2 -0
- package/es/avue.min.ts +2 -0
- package/es/avue.mjs +2 -0
- package/es/avue.ts +2 -0
- package/es/core/create.mjs +8 -0
- package/es/core/create.ts +16 -0
- package/es/core/dataformat.mjs +184 -0
- package/es/core/dataformat.ts +190 -0
- package/es/core/detail.mjs +74 -0
- package/es/core/detail.ts +81 -0
- package/es/core/dic.mjs +213 -0
- package/es/core/dic.ts +235 -0
- package/es/core/locale.mjs +8 -0
- package/es/core/locale.ts +9 -0
- package/es/core/packages.mjs +61 -0
- package/es/core/packages.ts +62 -0
- package/es/core/slot.mjs +32 -0
- package/es/core/slot.ts +30 -0
- package/es/global/variable.mjs +80 -0
- package/es/global/variable.ts +84 -0
- package/es/icon.mjs +9 -0
- package/es/icon.ts +11 -0
- package/es/index.mjs +127 -0
- package/es/index.ts +177 -0
- package/es/locale/browser/en.mjs +288 -0
- package/es/locale/browser/zh-cn.mjs +288 -0
- package/es/locale/browser/zh.mjs +288 -0
- package/es/locale/index.mjs +141 -0
- package/es/locale/index.ts +196 -0
- package/es/locale/lang/en.mjs +282 -0
- package/es/locale/lang/en.ts +282 -0
- package/es/locale/lang/zh-cn.mjs +282 -0
- package/es/locale/lang/zh-cn.ts +282 -0
- package/es/locale/lang/zh.mjs +282 -0
- package/es/locale/lang/zh.ts +282 -0
- package/es/packages/core/common/event.mjs +58 -0
- package/es/packages/core/common/event.ts +56 -0
- package/es/packages/core/common/init.mjs +134 -0
- package/es/packages/core/common/init.ts +133 -0
- package/es/packages/core/common/props.mjs +239 -0
- package/es/packages/core/common/props.ts +240 -0
- package/es/packages/core/components/dialog-form/index.mjs +29 -0
- package/es/packages/core/components/dialog-form/index.ts +29 -0
- package/es/packages/core/components/dialog-form/index.vue +108 -0
- package/es/packages/core/components/form/custom.mjs +41 -0
- package/es/packages/core/components/form/custom.ts +41 -0
- package/es/packages/core/components/form/index.vue +176 -0
- package/es/packages/core/components/icon/index.vue +37 -0
- package/es/packages/core/components/image-preview/index.mjs +34 -0
- package/es/packages/core/components/image-preview/index.ts +37 -0
- package/es/packages/core/components/image-preview/index.vue +215 -0
- package/es/packages/core/directive/contextmenu.mjs +92 -0
- package/es/packages/core/directive/contextmenu.ts +103 -0
- package/es/packages/core/directive/permission.mjs +19 -0
- package/es/packages/core/directive/permission.ts +18 -0
- package/es/packages/data/box/index.vue +66 -0
- package/es/packages/data/card/index.vue +62 -0
- package/es/packages/data/cardText/index.vue +56 -0
- package/es/packages/data/countdown/index.vue +81 -0
- package/es/packages/data/dashboard/index.vue +72 -0
- package/es/packages/data/display/index.vue +63 -0
- package/es/packages/data/icons/index.vue +68 -0
- package/es/packages/data/imgText/index.vue +72 -0
- package/es/packages/data/list/index.vue +69 -0
- package/es/packages/data/notice/index.vue +63 -0
- package/es/packages/data/operaText/index.vue +62 -0
- package/es/packages/data/panel/index.vue +62 -0
- package/es/packages/data/pay/index.vue +92 -0
- package/es/packages/data/price/index.vue +55 -0
- package/es/packages/data/product/index.vue +106 -0
- package/es/packages/data/profile/index.vue +91 -0
- package/es/packages/data/progress/index.vue +64 -0
- package/es/packages/data/rank/index.vue +92 -0
- package/es/packages/data/rotate/index.vue +69 -0
- package/es/packages/data/statistic/index.vue +71 -0
- package/es/packages/data/tabs/index.vue +64 -0
- package/es/packages/data/task/index.vue +82 -0
- package/es/packages/data/weather/index.vue +103 -0
- package/es/packages/element-plus/array/index.vue +115 -0
- package/es/packages/element-plus/article/index.vue +73 -0
- package/es/packages/element-plus/card/index.vue +103 -0
- package/es/packages/element-plus/cascader/index.vue +132 -0
- package/es/packages/element-plus/chat/index.vue +513 -0
- package/es/packages/element-plus/checkbox/index.vue +84 -0
- package/es/packages/element-plus/comment/index.vue +76 -0
- package/es/packages/element-plus/count-up/index.vue +109 -0
- package/es/packages/element-plus/crud/column/column-default.vue +128 -0
- package/es/packages/element-plus/crud/column/column-dynamic.vue +86 -0
- package/es/packages/element-plus/crud/column/column-menu.vue +267 -0
- package/es/packages/element-plus/crud/column/column-slot.vue +348 -0
- package/es/packages/element-plus/crud/column/column.vue +119 -0
- package/es/packages/element-plus/crud/column/menu.vue +78 -0
- package/es/packages/element-plus/crud/config.mjs +74 -0
- package/es/packages/element-plus/crud/config.ts +74 -0
- package/es/packages/element-plus/crud/dialog/dialog-column.vue +102 -0
- package/es/packages/element-plus/crud/dialog/dialog-excel.vue +204 -0
- package/es/packages/element-plus/crud/dialog/dialog-filter.vue +159 -0
- package/es/packages/element-plus/crud/dialog/dialog-form.vue +352 -0
- package/es/packages/element-plus/crud/grid/index.vue +271 -0
- package/es/packages/element-plus/crud/grid/item.vue +39 -0
- package/es/packages/element-plus/crud/index.vue +1018 -0
- package/es/packages/element-plus/crud/menu/header-menu.vue +175 -0
- package/es/packages/element-plus/crud/menu/header-search.vue +228 -0
- package/es/packages/element-plus/crud/menu/table-page.vue +108 -0
- package/es/packages/element-plus/date/index.vue +81 -0
- package/es/packages/element-plus/draggable/index.vue +444 -0
- package/es/packages/element-plus/dynamic/index.vue +353 -0
- package/es/packages/element-plus/flow/index.vue +339 -0
- package/es/packages/element-plus/flow/node.vue +84 -0
- package/es/packages/element-plus/form/config.mjs +6 -0
- package/es/packages/element-plus/form/config.ts +6 -0
- package/es/packages/element-plus/form/index.vue +954 -0
- package/es/packages/element-plus/form/menu.vue +63 -0
- package/es/packages/element-plus/group/index.vue +90 -0
- package/es/packages/element-plus/input/index.vue +1264 -0
- package/es/packages/element-plus/input-color/index.vue +70 -0
- package/es/packages/element-plus/input-cron/index.vue +363 -0
- package/es/packages/element-plus/input-icon/index.vue +143 -0
- package/es/packages/element-plus/input-map/index.vue +311 -0
- package/es/packages/element-plus/input-number/index.vue +91 -0
- package/es/packages/element-plus/input-table/index.vue +279 -0
- package/es/packages/element-plus/input-tag/index.vue +79 -0
- package/es/packages/element-plus/input-tree/index.vue +194 -0
- package/es/packages/element-plus/license/index.vue +155 -0
- package/es/packages/element-plus/login/index.vue +203 -0
- package/es/packages/element-plus/mention/index.vue +117 -0
- package/es/packages/element-plus/radio/index.vue +38 -0
- package/es/packages/element-plus/rate/index.vue +51 -0
- package/es/packages/element-plus/search/index.vue +129 -0
- package/es/packages/element-plus/select/index.vue +292 -0
- package/es/packages/element-plus/sign/index.vue +230 -0
- package/es/packages/element-plus/slider/index.vue +66 -0
- package/es/packages/element-plus/switch/index.vue +72 -0
- package/es/packages/element-plus/tabs/index.vue +62 -0
- package/es/packages/element-plus/text-ellipsis/index.vue +104 -0
- package/es/packages/element-plus/time/index.vue +81 -0
- package/es/packages/element-plus/title/index.vue +30 -0
- package/es/packages/element-plus/tree/index.vue +460 -0
- package/es/packages/element-plus/upload/index.vue +728 -0
- package/es/packages/element-plus/verify/index.vue +62 -0
- package/es/packages/element-plus/video/index.vue +90 -0
- package/es/plugin/ali/index.mjs +4 -0
- package/es/plugin/ali/index.ts +6 -0
- package/es/plugin/clipboard/index.mjs +61 -0
- package/es/plugin/clipboard/index.ts +67 -0
- package/es/plugin/export/_blob.mjs +151 -0
- package/es/plugin/export/_blob.ts +176 -0
- package/es/plugin/export/_export2Excel.mjs +141 -0
- package/es/plugin/export/_export2Excel.ts +166 -0
- package/es/plugin/export/index.mjs +263 -0
- package/es/plugin/export/index.ts +274 -0
- package/es/plugin/logs/index.mjs +46 -0
- package/es/plugin/logs/index.ts +66 -0
- package/es/plugin/print/index.mjs +145 -0
- package/es/plugin/print/index.ts +155 -0
- package/es/plugin/qiniu/index.mjs +78 -0
- package/es/plugin/qiniu/index.ts +88 -0
- package/es/plugin/screenshot/index.mjs +8 -0
- package/es/plugin/screenshot/index.ts +9 -0
- package/es/plugin/video/index.mjs +52 -0
- package/es/plugin/video/index.ts +60 -0
- package/es/plugin/watermark/index.mjs +114 -0
- package/es/plugin/watermark/index.ts +127 -0
- package/es/plugin/watermark/watermark.mjs +109 -0
- package/es/plugin/watermark/watermark.ts +121 -0
- package/es/ui/data/index.mjs +49 -0
- package/es/ui/data/index.ts +51 -0
- package/es/ui/element-plus/index.mjs +87 -0
- package/es/ui/element-plus/index.ts +89 -0
- package/es/ui/index.mjs +4 -0
- package/es/ui/index.ts +6 -0
- package/es/utils/bem.mjs +29 -0
- package/es/utils/bem.ts +36 -0
- package/es/utils/mock.mjs +137 -0
- package/es/utils/mock.ts +151 -0
- package/es/utils/util.mjs +370 -0
- package/es/utils/util.ts +392 -0
- package/es/utils/validate.mjs +18 -0
- package/es/utils/validate.ts +23 -0
- package/es/version.mjs +1 -0
- package/es/version.ts +1 -0
- package/lib/avue.js +11 -35880
- package/lib/avue.min.js +11 -6
- package/lib/avue.min.ts +2 -0
- package/lib/avue.ts +2 -0
- package/lib/core/create.js +14 -0
- package/lib/core/create.ts +16 -0
- package/lib/core/dataformat.js +194 -0
- package/lib/core/dataformat.ts +190 -0
- package/lib/core/detail.js +81 -0
- package/lib/core/detail.ts +81 -0
- package/lib/core/dic.js +220 -0
- package/lib/core/dic.ts +235 -0
- package/lib/core/locale.js +10 -0
- package/lib/core/locale.ts +9 -0
- package/lib/core/packages.js +66 -0
- package/lib/core/packages.ts +62 -0
- package/lib/core/slot.js +34 -0
- package/lib/core/slot.ts +30 -0
- package/lib/global/variable.js +83 -0
- package/lib/global/variable.ts +84 -0
- package/lib/icon.js +44 -0
- package/lib/icon.ts +11 -0
- package/lib/index.js +134 -0
- package/lib/index.ts +177 -0
- package/lib/locale/browser/en.js +288 -0
- package/lib/locale/browser/zh-cn.js +288 -0
- package/lib/locale/browser/zh.js +288 -0
- package/lib/locale/index.js +153 -47
- package/lib/locale/index.ts +196 -0
- package/lib/locale/lang/en.js +284 -100
- package/lib/locale/lang/en.ts +282 -0
- package/lib/locale/lang/zh-cn.js +284 -0
- package/lib/locale/lang/zh-cn.ts +282 -0
- package/lib/locale/lang/zh.js +284 -100
- package/lib/locale/lang/zh.ts +282 -0
- package/lib/packages/core/common/event.js +61 -0
- package/lib/packages/core/common/event.ts +56 -0
- package/lib/packages/core/common/init.js +140 -0
- package/lib/packages/core/common/init.ts +133 -0
- package/lib/packages/core/common/props.js +245 -0
- package/lib/packages/core/common/props.ts +240 -0
- package/lib/packages/core/components/dialog-form/index.js +35 -0
- package/lib/packages/core/components/dialog-form/index.ts +29 -0
- package/lib/packages/core/components/dialog-form/index.vue +108 -0
- package/lib/packages/core/components/form/custom.js +43 -0
- package/lib/packages/core/components/form/custom.ts +41 -0
- package/lib/packages/core/components/form/index.vue +176 -0
- package/lib/packages/core/components/icon/index.vue +37 -0
- package/lib/packages/core/components/image-preview/index.js +40 -0
- package/lib/packages/core/components/image-preview/index.ts +37 -0
- package/lib/packages/core/components/image-preview/index.vue +215 -0
- package/lib/packages/core/directive/contextmenu.js +94 -0
- package/lib/packages/core/directive/contextmenu.ts +103 -0
- package/lib/packages/core/directive/permission.js +21 -0
- package/lib/packages/core/directive/permission.ts +18 -0
- package/lib/packages/data/box/index.vue +66 -0
- package/lib/packages/data/card/index.vue +62 -0
- package/lib/packages/data/cardText/index.vue +56 -0
- package/lib/packages/data/countdown/index.vue +81 -0
- package/lib/packages/data/dashboard/index.vue +72 -0
- package/lib/packages/data/display/index.vue +63 -0
- package/lib/packages/data/icons/index.vue +68 -0
- package/lib/packages/data/imgText/index.vue +72 -0
- package/lib/packages/data/list/index.vue +69 -0
- package/lib/packages/data/notice/index.vue +63 -0
- package/lib/packages/data/operaText/index.vue +62 -0
- package/lib/packages/data/panel/index.vue +62 -0
- package/lib/packages/data/pay/index.vue +92 -0
- package/lib/packages/data/price/index.vue +55 -0
- package/lib/packages/data/product/index.vue +106 -0
- package/lib/packages/data/profile/index.vue +91 -0
- package/lib/packages/data/progress/index.vue +64 -0
- package/lib/packages/data/rank/index.vue +92 -0
- package/lib/packages/data/rotate/index.vue +69 -0
- package/lib/packages/data/statistic/index.vue +71 -0
- package/lib/packages/data/tabs/index.vue +64 -0
- package/lib/packages/data/task/index.vue +82 -0
- package/lib/packages/data/weather/index.vue +103 -0
- package/lib/packages/element-plus/array/index.vue +115 -0
- package/lib/packages/element-plus/article/index.vue +73 -0
- package/lib/packages/element-plus/card/index.vue +103 -0
- package/lib/packages/element-plus/cascader/index.vue +132 -0
- package/lib/packages/element-plus/chat/index.vue +513 -0
- package/lib/packages/element-plus/checkbox/index.vue +84 -0
- package/lib/packages/element-plus/comment/index.vue +76 -0
- package/lib/packages/element-plus/count-up/index.vue +109 -0
- package/lib/packages/element-plus/crud/column/column-default.vue +128 -0
- package/lib/packages/element-plus/crud/column/column-dynamic.vue +86 -0
- package/lib/packages/element-plus/crud/column/column-menu.vue +267 -0
- package/lib/packages/element-plus/crud/column/column-slot.vue +348 -0
- package/lib/packages/element-plus/crud/column/column.vue +119 -0
- package/lib/packages/element-plus/crud/column/menu.vue +78 -0
- package/lib/packages/element-plus/crud/config.js +76 -0
- package/lib/packages/element-plus/crud/config.ts +74 -0
- package/lib/packages/element-plus/crud/dialog/dialog-column.vue +102 -0
- package/lib/packages/element-plus/crud/dialog/dialog-excel.vue +204 -0
- package/lib/packages/element-plus/crud/dialog/dialog-filter.vue +159 -0
- package/lib/packages/element-plus/crud/dialog/dialog-form.vue +352 -0
- package/lib/packages/element-plus/crud/grid/index.vue +271 -0
- package/lib/packages/element-plus/crud/grid/item.vue +39 -0
- package/lib/packages/element-plus/crud/index.vue +1018 -0
- package/lib/packages/element-plus/crud/menu/header-menu.vue +175 -0
- package/lib/packages/element-plus/crud/menu/header-search.vue +228 -0
- package/lib/packages/element-plus/crud/menu/table-page.vue +108 -0
- package/lib/packages/element-plus/date/index.vue +81 -0
- package/lib/packages/element-plus/draggable/index.vue +444 -0
- package/lib/packages/element-plus/dynamic/index.vue +353 -0
- package/lib/packages/element-plus/flow/index.vue +339 -0
- package/lib/packages/element-plus/flow/node.vue +84 -0
- package/lib/packages/element-plus/form/config.js +8 -0
- package/lib/packages/element-plus/form/config.ts +6 -0
- package/lib/packages/element-plus/form/index.vue +954 -0
- package/lib/packages/element-plus/form/menu.vue +63 -0
- package/lib/packages/element-plus/group/index.vue +90 -0
- package/lib/packages/element-plus/input/index.vue +1264 -0
- package/lib/packages/element-plus/input-color/index.vue +70 -0
- package/lib/packages/element-plus/input-cron/index.vue +363 -0
- package/lib/packages/element-plus/input-icon/index.vue +143 -0
- package/lib/packages/element-plus/input-map/index.vue +311 -0
- package/lib/packages/element-plus/input-number/index.vue +91 -0
- package/lib/packages/element-plus/input-table/index.vue +279 -0
- package/lib/packages/element-plus/input-tag/index.vue +79 -0
- package/lib/packages/element-plus/input-tree/index.vue +194 -0
- package/lib/packages/element-plus/license/index.vue +155 -0
- package/lib/packages/element-plus/login/index.vue +203 -0
- package/lib/packages/element-plus/mention/index.vue +117 -0
- package/lib/packages/element-plus/radio/index.vue +38 -0
- package/lib/packages/element-plus/rate/index.vue +51 -0
- package/lib/packages/element-plus/search/index.vue +129 -0
- package/lib/packages/element-plus/select/index.vue +292 -0
- package/lib/packages/element-plus/sign/index.vue +230 -0
- package/lib/packages/element-plus/slider/index.vue +66 -0
- package/lib/packages/element-plus/switch/index.vue +72 -0
- package/lib/packages/element-plus/tabs/index.vue +62 -0
- package/lib/packages/element-plus/text-ellipsis/index.vue +104 -0
- package/lib/packages/element-plus/time/index.vue +81 -0
- package/lib/packages/element-plus/title/index.vue +30 -0
- package/lib/packages/element-plus/tree/index.vue +460 -0
- package/lib/packages/element-plus/upload/index.vue +728 -0
- package/lib/packages/element-plus/verify/index.vue +62 -0
- package/lib/packages/element-plus/video/index.vue +90 -0
- package/lib/plugin/ali/index.js +8 -0
- package/lib/plugin/ali/index.ts +6 -0
- package/lib/plugin/clipboard/index.js +64 -0
- package/lib/plugin/clipboard/index.ts +67 -0
- package/lib/plugin/export/_blob.js +151 -0
- package/lib/plugin/export/_blob.ts +176 -0
- package/lib/plugin/export/_export2Excel.js +145 -0
- package/lib/plugin/export/_export2Excel.ts +166 -0
- package/lib/plugin/export/index.js +268 -0
- package/lib/plugin/export/index.ts +274 -0
- package/lib/plugin/logs/index.js +48 -0
- package/lib/plugin/logs/index.ts +66 -0
- package/lib/plugin/print/index.js +147 -0
- package/lib/plugin/print/index.ts +155 -0
- package/lib/plugin/qiniu/index.js +82 -0
- package/lib/plugin/qiniu/index.ts +88 -0
- package/lib/plugin/screenshot/index.js +14 -0
- package/lib/plugin/screenshot/index.ts +9 -0
- package/lib/plugin/video/index.js +55 -0
- package/lib/plugin/video/index.ts +60 -0
- package/lib/plugin/watermark/index.js +121 -0
- package/lib/plugin/watermark/index.ts +127 -0
- package/lib/plugin/watermark/watermark.js +111 -0
- package/lib/plugin/watermark/watermark.ts +121 -0
- package/lib/ui/data/index.js +54 -0
- package/lib/ui/data/index.ts +51 -0
- package/lib/ui/element-plus/index.js +92 -0
- package/lib/ui/element-plus/index.ts +89 -0
- package/lib/ui/index.js +9 -0
- package/lib/ui/index.ts +6 -0
- package/lib/utils/bem.js +31 -0
- package/lib/utils/bem.ts +36 -0
- package/lib/utils/mock.js +142 -0
- package/lib/utils/mock.ts +151 -0
- package/lib/utils/util.js +403 -0
- package/lib/utils/util.ts +392 -0
- package/lib/utils/validate.js +21 -0
- package/lib/utils/validate.ts +23 -0
- package/lib/version.js +4 -0
- package/lib/version.ts +1 -0
- package/package.json +20 -10
- package/types/index.d.ts +139 -47
- package/types/shims-aliases.d.ts +4 -0
- package/lib/avue.js.map +0 -1
- package/lib/locale/format.js +0 -44
package/dist/avue.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avue.js","sources":["webpack://AVUE/webpack/universalModuleDefinition","webpack://AVUE/webpack/bootstrap","webpack://AVUE/./packages/core/components/dialog-form/index.vue","webpack://AVUE/./packages/core/components/form/index.vue","webpack://AVUE/./packages/core/components/icon/index.vue","webpack://AVUE/./packages/core/components/image-preview/index.vue","webpack://AVUE/./packages/data/box/index.vue","webpack://AVUE/./packages/data/card/index.vue","webpack://AVUE/./packages/data/cardText/index.vue","webpack://AVUE/./packages/data/countdown/index.vue","webpack://AVUE/./packages/data/dashboard/index.vue","webpack://AVUE/./packages/data/display/index.vue","webpack://AVUE/./packages/data/icons/index.vue","webpack://AVUE/./packages/data/imgText/index.vue","webpack://AVUE/./packages/data/list/index.vue","webpack://AVUE/./packages/data/notice/index.vue","webpack://AVUE/./packages/data/operaText/index.vue","webpack://AVUE/./packages/data/panel/index.vue","webpack://AVUE/./packages/data/pay/index.vue","webpack://AVUE/./packages/data/price/index.vue","webpack://AVUE/./packages/data/product/index.vue","webpack://AVUE/./packages/data/profile/index.vue","webpack://AVUE/./packages/data/progress/index.vue","webpack://AVUE/./packages/data/rank/index.vue","webpack://AVUE/./packages/data/rotate/index.vue","webpack://AVUE/./packages/data/statistic/index.vue","webpack://AVUE/./packages/data/tabs/index.vue","webpack://AVUE/./packages/data/task/index.vue","webpack://AVUE/./packages/data/weather/index.vue","webpack://AVUE/./packages/element-plus/array/index.vue","webpack://AVUE/./packages/element-plus/article/index.vue","webpack://AVUE/./packages/element-plus/card/index.vue","webpack://AVUE/./packages/element-plus/cascader/index.vue","webpack://AVUE/./packages/element-plus/chat/index.vue","webpack://AVUE/./packages/element-plus/checkbox/index.vue","webpack://AVUE/./packages/element-plus/comment/index.vue","webpack://AVUE/./packages/element-plus/count-up/index.vue","webpack://AVUE/./packages/element-plus/crud/column/column-default.vue","webpack://AVUE/./packages/element-plus/crud/column/column-dynamic.vue","webpack://AVUE/./packages/element-plus/crud/column/column-menu.vue","webpack://AVUE/./packages/element-plus/crud/column/column-slot.vue","webpack://AVUE/./packages/element-plus/crud/column/column.vue","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-column.vue","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-excel.vue","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-filter.vue","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-form.vue","webpack://AVUE/./packages/element-plus/crud/grid/index.vue","webpack://AVUE/./packages/element-plus/crud/grid/item.vue","webpack://AVUE/./packages/element-plus/crud/index.vue","webpack://AVUE/./packages/element-plus/crud/menu/header-menu.vue","webpack://AVUE/./packages/element-plus/crud/menu/header-search.vue","webpack://AVUE/./packages/element-plus/crud/menu/table-page.vue","webpack://AVUE/./packages/element-plus/date/index.vue","webpack://AVUE/./packages/element-plus/draggable/index.vue","webpack://AVUE/./packages/element-plus/dynamic/index.vue","webpack://AVUE/./packages/element-plus/flow/index.vue","webpack://AVUE/./packages/element-plus/flow/node.vue","webpack://AVUE/./packages/element-plus/form/index.vue","webpack://AVUE/./packages/element-plus/form/menu.vue","webpack://AVUE/./packages/element-plus/group/index.vue","webpack://AVUE/./packages/element-plus/input-color/index.vue","webpack://AVUE/./packages/element-plus/input-cron/index.vue","webpack://AVUE/./packages/element-plus/input-icon/index.vue","webpack://AVUE/./packages/element-plus/input-map/index.vue","webpack://AVUE/./packages/element-plus/input-number/index.vue","webpack://AVUE/./packages/element-plus/input-table/index.vue","webpack://AVUE/./packages/element-plus/input-tag/index.vue","webpack://AVUE/./packages/element-plus/input-tree/index.vue","webpack://AVUE/./packages/element-plus/input/index.vue","webpack://AVUE/./packages/element-plus/license/index.vue","webpack://AVUE/./packages/element-plus/login/index.vue","webpack://AVUE/./packages/element-plus/mention/index.vue","webpack://AVUE/./packages/element-plus/radio/index.vue","webpack://AVUE/./packages/element-plus/rate/index.vue","webpack://AVUE/./packages/element-plus/search/index.vue","webpack://AVUE/./packages/element-plus/select/index.vue","webpack://AVUE/./packages/element-plus/sign/index.vue","webpack://AVUE/./packages/element-plus/slider/index.vue","webpack://AVUE/./packages/element-plus/switch/index.vue","webpack://AVUE/./packages/element-plus/tabs/index.vue","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue","webpack://AVUE/./packages/element-plus/time/index.vue","webpack://AVUE/./packages/element-plus/title/index.vue","webpack://AVUE/./packages/element-plus/tree/index.vue","webpack://AVUE/./packages/element-plus/upload/index.vue","webpack://AVUE/./packages/element-plus/verify/index.vue","webpack://AVUE/./packages/element-plus/video/index.vue","webpack://AVUE/./node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/exportHelper.js","webpack://AVUE/(webpack)/buildin/global.js","webpack://AVUE/(webpack)/buildin/module.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/createClass.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/readOnlyError.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/typeof.js","webpack://AVUE/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://AVUE/./node_modules/countup.js/dist/countUp.min.js","webpack://AVUE/./node_modules/dayjs/dayjs.min.js","webpack://AVUE/./node_modules/lodash/_DataView.js","webpack://AVUE/./node_modules/lodash/_Hash.js","webpack://AVUE/./node_modules/lodash/_ListCache.js","webpack://AVUE/./node_modules/lodash/_Map.js","webpack://AVUE/./node_modules/lodash/_MapCache.js","webpack://AVUE/./node_modules/lodash/_Promise.js","webpack://AVUE/./node_modules/lodash/_Set.js","webpack://AVUE/./node_modules/lodash/_Stack.js","webpack://AVUE/./node_modules/lodash/_Symbol.js","webpack://AVUE/./node_modules/lodash/_Uint8Array.js","webpack://AVUE/./node_modules/lodash/_WeakMap.js","webpack://AVUE/./node_modules/lodash/_apply.js","webpack://AVUE/./node_modules/lodash/_arrayEach.js","webpack://AVUE/./node_modules/lodash/_arrayFilter.js","webpack://AVUE/./node_modules/lodash/_arrayLikeKeys.js","webpack://AVUE/./node_modules/lodash/_arrayMap.js","webpack://AVUE/./node_modules/lodash/_arrayPush.js","webpack://AVUE/./node_modules/lodash/_assignMergeValue.js","webpack://AVUE/./node_modules/lodash/_assignValue.js","webpack://AVUE/./node_modules/lodash/_assocIndexOf.js","webpack://AVUE/./node_modules/lodash/_baseAssign.js","webpack://AVUE/./node_modules/lodash/_baseAssignIn.js","webpack://AVUE/./node_modules/lodash/_baseAssignValue.js","webpack://AVUE/./node_modules/lodash/_baseClone.js","webpack://AVUE/./node_modules/lodash/_baseCreate.js","webpack://AVUE/./node_modules/lodash/_baseFor.js","webpack://AVUE/./node_modules/lodash/_baseGet.js","webpack://AVUE/./node_modules/lodash/_baseGetAllKeys.js","webpack://AVUE/./node_modules/lodash/_baseGetTag.js","webpack://AVUE/./node_modules/lodash/_baseIsArguments.js","webpack://AVUE/./node_modules/lodash/_baseIsMap.js","webpack://AVUE/./node_modules/lodash/_baseIsNative.js","webpack://AVUE/./node_modules/lodash/_baseIsSet.js","webpack://AVUE/./node_modules/lodash/_baseIsTypedArray.js","webpack://AVUE/./node_modules/lodash/_baseKeys.js","webpack://AVUE/./node_modules/lodash/_baseKeysIn.js","webpack://AVUE/./node_modules/lodash/_baseMerge.js","webpack://AVUE/./node_modules/lodash/_baseMergeDeep.js","webpack://AVUE/./node_modules/lodash/_baseRest.js","webpack://AVUE/./node_modules/lodash/_baseSet.js","webpack://AVUE/./node_modules/lodash/_baseSetToString.js","webpack://AVUE/./node_modules/lodash/_baseTimes.js","webpack://AVUE/./node_modules/lodash/_baseToString.js","webpack://AVUE/./node_modules/lodash/_baseUnary.js","webpack://AVUE/./node_modules/lodash/_castPath.js","webpack://AVUE/./node_modules/lodash/_cloneArrayBuffer.js","webpack://AVUE/./node_modules/lodash/_cloneBuffer.js","webpack://AVUE/./node_modules/lodash/_cloneDataView.js","webpack://AVUE/./node_modules/lodash/_cloneRegExp.js","webpack://AVUE/./node_modules/lodash/_cloneSymbol.js","webpack://AVUE/./node_modules/lodash/_cloneTypedArray.js","webpack://AVUE/./node_modules/lodash/_copyArray.js","webpack://AVUE/./node_modules/lodash/_copyObject.js","webpack://AVUE/./node_modules/lodash/_copySymbols.js","webpack://AVUE/./node_modules/lodash/_copySymbolsIn.js","webpack://AVUE/./node_modules/lodash/_coreJsData.js","webpack://AVUE/./node_modules/lodash/_createAssigner.js","webpack://AVUE/./node_modules/lodash/_createBaseFor.js","webpack://AVUE/./node_modules/lodash/_defineProperty.js","webpack://AVUE/./node_modules/lodash/_freeGlobal.js","webpack://AVUE/./node_modules/lodash/_getAllKeys.js","webpack://AVUE/./node_modules/lodash/_getAllKeysIn.js","webpack://AVUE/./node_modules/lodash/_getMapData.js","webpack://AVUE/./node_modules/lodash/_getNative.js","webpack://AVUE/./node_modules/lodash/_getPrototype.js","webpack://AVUE/./node_modules/lodash/_getRawTag.js","webpack://AVUE/./node_modules/lodash/_getSymbols.js","webpack://AVUE/./node_modules/lodash/_getSymbolsIn.js","webpack://AVUE/./node_modules/lodash/_getTag.js","webpack://AVUE/./node_modules/lodash/_getValue.js","webpack://AVUE/./node_modules/lodash/_hashClear.js","webpack://AVUE/./node_modules/lodash/_hashDelete.js","webpack://AVUE/./node_modules/lodash/_hashGet.js","webpack://AVUE/./node_modules/lodash/_hashHas.js","webpack://AVUE/./node_modules/lodash/_hashSet.js","webpack://AVUE/./node_modules/lodash/_initCloneArray.js","webpack://AVUE/./node_modules/lodash/_initCloneByTag.js","webpack://AVUE/./node_modules/lodash/_initCloneObject.js","webpack://AVUE/./node_modules/lodash/_isIndex.js","webpack://AVUE/./node_modules/lodash/_isIterateeCall.js","webpack://AVUE/./node_modules/lodash/_isKey.js","webpack://AVUE/./node_modules/lodash/_isKeyable.js","webpack://AVUE/./node_modules/lodash/_isMasked.js","webpack://AVUE/./node_modules/lodash/_isPrototype.js","webpack://AVUE/./node_modules/lodash/_listCacheClear.js","webpack://AVUE/./node_modules/lodash/_listCacheDelete.js","webpack://AVUE/./node_modules/lodash/_listCacheGet.js","webpack://AVUE/./node_modules/lodash/_listCacheHas.js","webpack://AVUE/./node_modules/lodash/_listCacheSet.js","webpack://AVUE/./node_modules/lodash/_mapCacheClear.js","webpack://AVUE/./node_modules/lodash/_mapCacheDelete.js","webpack://AVUE/./node_modules/lodash/_mapCacheGet.js","webpack://AVUE/./node_modules/lodash/_mapCacheHas.js","webpack://AVUE/./node_modules/lodash/_mapCacheSet.js","webpack://AVUE/./node_modules/lodash/_memoizeCapped.js","webpack://AVUE/./node_modules/lodash/_nativeCreate.js","webpack://AVUE/./node_modules/lodash/_nativeKeys.js","webpack://AVUE/./node_modules/lodash/_nativeKeysIn.js","webpack://AVUE/./node_modules/lodash/_nodeUtil.js","webpack://AVUE/./node_modules/lodash/_objectToString.js","webpack://AVUE/./node_modules/lodash/_overArg.js","webpack://AVUE/./node_modules/lodash/_overRest.js","webpack://AVUE/./node_modules/lodash/_root.js","webpack://AVUE/./node_modules/lodash/_safeGet.js","webpack://AVUE/./node_modules/lodash/_setToString.js","webpack://AVUE/./node_modules/lodash/_shortOut.js","webpack://AVUE/./node_modules/lodash/_stackClear.js","webpack://AVUE/./node_modules/lodash/_stackDelete.js","webpack://AVUE/./node_modules/lodash/_stackGet.js","webpack://AVUE/./node_modules/lodash/_stackHas.js","webpack://AVUE/./node_modules/lodash/_stackSet.js","webpack://AVUE/./node_modules/lodash/_stringToPath.js","webpack://AVUE/./node_modules/lodash/_toKey.js","webpack://AVUE/./node_modules/lodash/_toSource.js","webpack://AVUE/./node_modules/lodash/cloneDeep.js","webpack://AVUE/./node_modules/lodash/constant.js","webpack://AVUE/./node_modules/lodash/eq.js","webpack://AVUE/./node_modules/lodash/get.js","webpack://AVUE/./node_modules/lodash/identity.js","webpack://AVUE/./node_modules/lodash/isArguments.js","webpack://AVUE/./node_modules/lodash/isArray.js","webpack://AVUE/./node_modules/lodash/isArrayLike.js","webpack://AVUE/./node_modules/lodash/isArrayLikeObject.js","webpack://AVUE/./node_modules/lodash/isBuffer.js","webpack://AVUE/./node_modules/lodash/isFunction.js","webpack://AVUE/./node_modules/lodash/isLength.js","webpack://AVUE/./node_modules/lodash/isMap.js","webpack://AVUE/./node_modules/lodash/isObject.js","webpack://AVUE/./node_modules/lodash/isObjectLike.js","webpack://AVUE/./node_modules/lodash/isPlainObject.js","webpack://AVUE/./node_modules/lodash/isSet.js","webpack://AVUE/./node_modules/lodash/isSymbol.js","webpack://AVUE/./node_modules/lodash/isTypedArray.js","webpack://AVUE/./node_modules/lodash/keys.js","webpack://AVUE/./node_modules/lodash/keysIn.js","webpack://AVUE/./node_modules/lodash/memoize.js","webpack://AVUE/./node_modules/lodash/merge.js","webpack://AVUE/./node_modules/lodash/set.js","webpack://AVUE/./node_modules/lodash/stubArray.js","webpack://AVUE/./node_modules/lodash/stubFalse.js","webpack://AVUE/./node_modules/lodash/toPlainObject.js","webpack://AVUE/./node_modules/lodash/toString.js","webpack://AVUE/./packages/core/common/event.ts","webpack://AVUE/./packages/core/common/init.ts","webpack://AVUE/./packages/core/common/props.ts","webpack://AVUE/./packages/core/components/dialog-form/index.ts","webpack://AVUE/./packages/core/components/dialog-form/index.vue?91a2","webpack://AVUE/./packages/core/components/dialog-form/index.vue?1de7","webpack://AVUE/./packages/core/components/dialog-form/index.vue?713d","webpack://AVUE/./packages/core/components/form/custom.ts","webpack://AVUE/./packages/core/components/form/index.vue?b218","webpack://AVUE/./packages/core/components/form/index.vue?91e8","webpack://AVUE/./packages/core/components/form/index.vue?e538","webpack://AVUE/./packages/core/components/icon/index.vue?6ba8","webpack://AVUE/./packages/core/components/icon/index.vue?f9be","webpack://AVUE/./packages/core/components/icon/index.vue?bfd4","webpack://AVUE/./packages/core/components/image-preview/index.ts","webpack://AVUE/./packages/core/components/image-preview/index.vue?89ed","webpack://AVUE/./packages/core/components/image-preview/index.vue?91e8","webpack://AVUE/./packages/core/components/image-preview/index.vue?f72e","webpack://AVUE/./packages/core/directive/contextmenu.ts","webpack://AVUE/./packages/core/directive/permission.ts","webpack://AVUE/./packages/data/box/index.vue?3f4d","webpack://AVUE/./packages/data/box/index.vue?945e","webpack://AVUE/./packages/data/box/index.vue?4f6f","webpack://AVUE/./packages/data/card/index.vue?4d08","webpack://AVUE/./packages/data/card/index.vue?9943","webpack://AVUE/./packages/data/card/index.vue?05b4","webpack://AVUE/./packages/data/cardText/index.vue?2e89","webpack://AVUE/./packages/data/cardText/index.vue?9488","webpack://AVUE/./packages/data/cardText/index.vue?2df2","webpack://AVUE/./packages/data/countdown/index.vue?5b8b","webpack://AVUE/./packages/data/countdown/index.vue?5abc","webpack://AVUE/./packages/data/countdown/index.vue?7690","webpack://AVUE/./packages/data/dashboard/index.vue?c634","webpack://AVUE/./packages/data/dashboard/index.vue?b3aa","webpack://AVUE/./packages/data/dashboard/index.vue?a732","webpack://AVUE/./packages/data/display/index.vue?ccf6","webpack://AVUE/./packages/data/display/index.vue?88b5","webpack://AVUE/./packages/data/display/index.vue?8744","webpack://AVUE/./packages/data/icons/index.vue?4d54","webpack://AVUE/./packages/data/icons/index.vue?99ea","webpack://AVUE/./packages/data/icons/index.vue?8835","webpack://AVUE/./packages/data/imgText/index.vue?7f58","webpack://AVUE/./packages/data/imgText/index.vue?7d58","webpack://AVUE/./packages/data/imgText/index.vue?5cf9","webpack://AVUE/./packages/data/list/index.vue?62df","webpack://AVUE/./packages/data/list/index.vue?3c50","webpack://AVUE/./packages/data/list/index.vue?bba8","webpack://AVUE/./packages/data/notice/index.vue?36bb","webpack://AVUE/./packages/data/notice/index.vue?5884","webpack://AVUE/./packages/data/notice/index.vue?502a","webpack://AVUE/./packages/data/operaText/index.vue?4f59","webpack://AVUE/./packages/data/operaText/index.vue?d235","webpack://AVUE/./packages/data/operaText/index.vue?5174","webpack://AVUE/./packages/data/panel/index.vue?b438","webpack://AVUE/./packages/data/panel/index.vue?7f47","webpack://AVUE/./packages/data/panel/index.vue?0c51","webpack://AVUE/./packages/data/pay/index.vue?2877","webpack://AVUE/./packages/data/pay/index.vue?50e4","webpack://AVUE/./packages/data/pay/index.vue?0c78","webpack://AVUE/./packages/data/price/index.vue?6478","webpack://AVUE/./packages/data/price/index.vue?8860","webpack://AVUE/./packages/data/price/index.vue?178a","webpack://AVUE/./packages/data/product/index.vue?d628","webpack://AVUE/./packages/data/product/index.vue?bb80","webpack://AVUE/./packages/data/product/index.vue?a064","webpack://AVUE/./packages/data/profile/index.vue?dcf1","webpack://AVUE/./packages/data/profile/index.vue?0436","webpack://AVUE/./packages/data/profile/index.vue?4136","webpack://AVUE/./packages/data/progress/index.vue?9f06","webpack://AVUE/./packages/data/progress/index.vue?b195","webpack://AVUE/./packages/data/progress/index.vue?8eaf","webpack://AVUE/./packages/data/rank/index.vue?6dab","webpack://AVUE/./packages/data/rank/index.vue?4b20","webpack://AVUE/./packages/data/rank/index.vue?3daa","webpack://AVUE/./packages/data/rotate/index.vue?f4dc","webpack://AVUE/./packages/data/rotate/index.vue?3de8","webpack://AVUE/./packages/data/rotate/index.vue?a240","webpack://AVUE/./packages/data/statistic/index.vue?16cc","webpack://AVUE/./packages/data/statistic/index.vue?f617","webpack://AVUE/./packages/data/statistic/index.vue?3cbc","webpack://AVUE/./packages/data/tabs/index.vue?3b32","webpack://AVUE/./packages/data/tabs/index.vue?2199","webpack://AVUE/./packages/data/tabs/index.vue?56b9","webpack://AVUE/./packages/data/task/index.vue?536b","webpack://AVUE/./packages/data/task/index.vue?eee7","webpack://AVUE/./packages/data/task/index.vue?b313","webpack://AVUE/./packages/data/weather/index.vue?ffe1","webpack://AVUE/./packages/data/weather/index.vue?5d64","webpack://AVUE/./packages/data/weather/index.vue?b988","webpack://AVUE/./packages/element-plus/array/index.vue?ea62","webpack://AVUE/./packages/element-plus/array/index.vue?98b9","webpack://AVUE/./packages/element-plus/array/index.vue?45a0","webpack://AVUE/./packages/element-plus/article/index.vue?5450","webpack://AVUE/./packages/element-plus/article/index.vue?2372","webpack://AVUE/./packages/element-plus/article/index.vue?cb0e","webpack://AVUE/./packages/element-plus/card/index.vue?b6ba","webpack://AVUE/./packages/element-plus/card/index.vue?dc50","webpack://AVUE/./packages/element-plus/card/index.vue?d3d6","webpack://AVUE/./packages/element-plus/cascader/index.vue?9673","webpack://AVUE/./packages/element-plus/cascader/index.vue?a5e5","webpack://AVUE/./packages/element-plus/cascader/index.vue?6d8e","webpack://AVUE/./packages/element-plus/chat/index.vue?4c9f","webpack://AVUE/./packages/element-plus/chat/index.vue?6b16","webpack://AVUE/./packages/element-plus/chat/index.vue?9f56","webpack://AVUE/./packages/element-plus/checkbox/index.vue?3210","webpack://AVUE/./packages/element-plus/checkbox/index.vue?4cf2","webpack://AVUE/./packages/element-plus/checkbox/index.vue?633c","webpack://AVUE/./packages/element-plus/comment/index.vue?9491","webpack://AVUE/./packages/element-plus/comment/index.vue?20ed","webpack://AVUE/./packages/element-plus/comment/index.vue?f46e","webpack://AVUE/./packages/element-plus/count-up/index.vue?5d42","webpack://AVUE/./packages/element-plus/count-up/index.vue?42dc","webpack://AVUE/./packages/element-plus/count-up/index.vue?bcda","webpack://AVUE/./packages/element-plus/crud/column/column-default.vue?3b2b","webpack://AVUE/./packages/element-plus/crud/column/column-default.vue?d594","webpack://AVUE/./packages/element-plus/crud/column/column-default.vue?0b02","webpack://AVUE/./packages/element-plus/crud/column/column-dynamic.vue?d1f7","webpack://AVUE/./packages/element-plus/crud/column/column-dynamic.vue?e389","webpack://AVUE/./packages/element-plus/crud/column/column-dynamic.vue?3c72","webpack://AVUE/./packages/element-plus/crud/column/column-menu.vue?b5ea","webpack://AVUE/./packages/element-plus/crud/column/column-menu.vue?727f","webpack://AVUE/./packages/element-plus/crud/column/column-menu.vue?bf58","webpack://AVUE/./packages/element-plus/crud/column/column-slot.vue?1023","webpack://AVUE/./packages/element-plus/crud/column/column-slot.vue?ca50","webpack://AVUE/./packages/element-plus/crud/column/column-slot.vue?46ed","webpack://AVUE/./packages/element-plus/crud/column/column.vue?196b","webpack://AVUE/./packages/element-plus/crud/column/column.vue?d012","webpack://AVUE/./packages/element-plus/crud/column/column.vue?a367","webpack://AVUE/./packages/element-plus/crud/config.ts","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-column.vue?3b84","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-column.vue?2f76","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-column.vue?6201","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-excel.vue?99ab","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-excel.vue?6d1a","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-excel.vue?f34c","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-filter.vue?0229","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-filter.vue?6d19","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-filter.vue?a8a5","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-form.vue?64d2","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-form.vue?158b","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-form.vue?ce31","webpack://AVUE/./packages/element-plus/crud/grid/index.vue?af23","webpack://AVUE/./packages/element-plus/crud/grid/index.vue?e8bc","webpack://AVUE/./packages/element-plus/crud/grid/index.vue?0323","webpack://AVUE/./packages/element-plus/crud/grid/item.vue?4c55","webpack://AVUE/./packages/element-plus/crud/grid/item.vue?2536","webpack://AVUE/./packages/element-plus/crud/grid/item.vue?524a","webpack://AVUE/./packages/element-plus/crud/index.vue?a607","webpack://AVUE/./packages/element-plus/crud/index.vue?2557","webpack://AVUE/./packages/element-plus/crud/index.vue?35a3","webpack://AVUE/./packages/element-plus/crud/menu/header-menu.vue?8eac","webpack://AVUE/./packages/element-plus/crud/menu/header-menu.vue?674a","webpack://AVUE/./packages/element-plus/crud/menu/header-menu.vue?8a2d","webpack://AVUE/./packages/element-plus/crud/menu/header-search.vue?2a5f","webpack://AVUE/./packages/element-plus/crud/menu/header-search.vue?cdfb","webpack://AVUE/./packages/element-plus/crud/menu/header-search.vue?6d1e","webpack://AVUE/./packages/element-plus/crud/menu/table-page.vue?77e9","webpack://AVUE/./packages/element-plus/crud/menu/table-page.vue?3b9d","webpack://AVUE/./packages/element-plus/crud/menu/table-page.vue?e26e","webpack://AVUE/./packages/element-plus/date/index.vue?bc37","webpack://AVUE/./packages/element-plus/date/index.vue?534d","webpack://AVUE/./packages/element-plus/date/index.vue?aff7","webpack://AVUE/./packages/element-plus/draggable/index.vue?7d40","webpack://AVUE/./packages/element-plus/draggable/index.vue?d295","webpack://AVUE/./packages/element-plus/draggable/index.vue?7aa4","webpack://AVUE/./packages/element-plus/dynamic/index.vue?437c","webpack://AVUE/./packages/element-plus/dynamic/index.vue?c5f6","webpack://AVUE/./packages/element-plus/dynamic/index.vue?adac","webpack://AVUE/./packages/element-plus/flow/index.vue?32a1","webpack://AVUE/./packages/element-plus/flow/index.vue?fa27","webpack://AVUE/./packages/element-plus/flow/index.vue?9fe4","webpack://AVUE/./packages/element-plus/flow/node.vue?fb42","webpack://AVUE/./packages/element-plus/flow/node.vue?eea7","webpack://AVUE/./packages/element-plus/flow/node.vue?8fc2","webpack://AVUE/./packages/element-plus/form/config.ts","webpack://AVUE/./packages/element-plus/form/index.vue?6461","webpack://AVUE/./packages/element-plus/form/index.vue?cbf4","webpack://AVUE/./packages/element-plus/form/index.vue?bab2","webpack://AVUE/./packages/element-plus/form/menu.vue?82f7","webpack://AVUE/./packages/element-plus/form/menu.vue?d5c3","webpack://AVUE/./packages/element-plus/form/menu.vue?ead6","webpack://AVUE/./packages/element-plus/group/index.vue?3807","webpack://AVUE/./packages/element-plus/group/index.vue?10aa","webpack://AVUE/./packages/element-plus/group/index.vue?6733","webpack://AVUE/./packages/element-plus/input-color/index.vue?cc37","webpack://AVUE/./packages/element-plus/input-color/index.vue?f7b6","webpack://AVUE/./packages/element-plus/input-color/index.vue?d6bf","webpack://AVUE/./packages/element-plus/input-cron/index.vue?cd8b","webpack://AVUE/./packages/element-plus/input-cron/index.vue?db0c","webpack://AVUE/./packages/element-plus/input-cron/index.vue?1a63","webpack://AVUE/./packages/element-plus/input-icon/index.vue?2601","webpack://AVUE/./packages/element-plus/input-icon/index.vue?d40a","webpack://AVUE/./packages/element-plus/input-icon/index.vue?60a0","webpack://AVUE/./packages/element-plus/input-map/index.vue?1377","webpack://AVUE/./packages/element-plus/input-map/index.vue?5282","webpack://AVUE/./packages/element-plus/input-map/index.vue?7d1f","webpack://AVUE/./packages/element-plus/input-number/index.vue?976e","webpack://AVUE/./packages/element-plus/input-number/index.vue?f4fd","webpack://AVUE/./packages/element-plus/input-number/index.vue?27f0","webpack://AVUE/./packages/element-plus/input-table/index.vue?8206","webpack://AVUE/./packages/element-plus/input-table/index.vue?eb55","webpack://AVUE/./packages/element-plus/input-table/index.vue?7e4e","webpack://AVUE/./packages/element-plus/input-tag/index.vue?2f80","webpack://AVUE/./packages/element-plus/input-tag/index.vue?7f6e","webpack://AVUE/./packages/element-plus/input-tag/index.vue?8808","webpack://AVUE/./packages/element-plus/input-tree/index.vue?e4cc","webpack://AVUE/./packages/element-plus/input-tree/index.vue?d956","webpack://AVUE/./packages/element-plus/input-tree/index.vue?8c87","webpack://AVUE/./packages/element-plus/input/index.vue?d046","webpack://AVUE/./packages/element-plus/input/index.vue?9606","webpack://AVUE/./packages/element-plus/input/index.vue?d534","webpack://AVUE/./packages/element-plus/license/index.vue?7771","webpack://AVUE/./packages/element-plus/license/index.vue?573a","webpack://AVUE/./packages/element-plus/license/index.vue?ab93","webpack://AVUE/./packages/element-plus/login/index.vue?e937","webpack://AVUE/./packages/element-plus/login/index.vue?4684","webpack://AVUE/./packages/element-plus/login/index.vue?c3d4","webpack://AVUE/./packages/element-plus/mention/index.vue?256a","webpack://AVUE/./packages/element-plus/mention/index.vue?56f7","webpack://AVUE/./packages/element-plus/mention/index.vue?e0f4","webpack://AVUE/./packages/element-plus/radio/index.vue?29ff","webpack://AVUE/./packages/element-plus/radio/index.vue?1d37","webpack://AVUE/./packages/element-plus/radio/index.vue?e712","webpack://AVUE/./packages/element-plus/rate/index.vue?35c7","webpack://AVUE/./packages/element-plus/rate/index.vue?26e2","webpack://AVUE/./packages/element-plus/rate/index.vue?f107","webpack://AVUE/./packages/element-plus/search/index.vue?49ec","webpack://AVUE/./packages/element-plus/search/index.vue?7cf0","webpack://AVUE/./packages/element-plus/search/index.vue?86c4","webpack://AVUE/./packages/element-plus/select/index.vue?17a0","webpack://AVUE/./packages/element-plus/select/index.vue?c6ad","webpack://AVUE/./packages/element-plus/select/index.vue?d588","webpack://AVUE/./packages/element-plus/sign/index.vue?db2f","webpack://AVUE/./packages/element-plus/sign/index.vue?3103","webpack://AVUE/./packages/element-plus/sign/index.vue?c4ba","webpack://AVUE/./packages/element-plus/slider/index.vue?0f45","webpack://AVUE/./packages/element-plus/slider/index.vue?0b5a","webpack://AVUE/./packages/element-plus/slider/index.vue?2464","webpack://AVUE/./packages/element-plus/switch/index.vue?480b","webpack://AVUE/./packages/element-plus/switch/index.vue?ef20","webpack://AVUE/./packages/element-plus/switch/index.vue?23e2","webpack://AVUE/./packages/element-plus/tabs/index.vue?c9e6","webpack://AVUE/./packages/element-plus/tabs/index.vue?004d","webpack://AVUE/./packages/element-plus/tabs/index.vue?54a2","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?c484","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?c060","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?0369","webpack://AVUE/./packages/element-plus/time/index.vue?b809","webpack://AVUE/./packages/element-plus/time/index.vue?ea92","webpack://AVUE/./packages/element-plus/time/index.vue?3006","webpack://AVUE/./packages/element-plus/title/index.vue?844e","webpack://AVUE/./packages/element-plus/title/index.vue?4661","webpack://AVUE/./packages/element-plus/title/index.vue?545c","webpack://AVUE/./packages/element-plus/tree/index.vue?fc81","webpack://AVUE/./packages/element-plus/tree/index.vue?f63d","webpack://AVUE/./packages/element-plus/tree/index.vue?5bf6","webpack://AVUE/./packages/element-plus/upload/index.vue?2134","webpack://AVUE/./packages/element-plus/upload/index.vue?381b","webpack://AVUE/./packages/element-plus/upload/index.vue?ecf6","webpack://AVUE/./packages/element-plus/verify/index.vue?4cd2","webpack://AVUE/./packages/element-plus/verify/index.vue?8074","webpack://AVUE/./packages/element-plus/verify/index.vue?712c","webpack://AVUE/./packages/element-plus/video/index.vue?fce9","webpack://AVUE/./packages/element-plus/video/index.vue?df46","webpack://AVUE/./packages/element-plus/video/index.vue?fd7a","webpack://AVUE/./src/core/create.ts","webpack://AVUE/./src/core/dataformat.ts","webpack://AVUE/./src/core/detail.ts","webpack://AVUE/./src/core/dic.ts","webpack://AVUE/./src/core/locale.ts","webpack://AVUE/./src/core/packages.ts","webpack://AVUE/./src/core/slot.ts","webpack://AVUE/./src/global/variable.ts","webpack://AVUE/./src/icon.ts","webpack://AVUE/./src/index.ts","webpack://AVUE/./src/locale/index.ts","webpack://AVUE/./src/locale/lang/en.ts","webpack://AVUE/./src/locale/lang/zh-cn.ts","webpack://AVUE/./src/locale/lang/zh.ts","webpack://AVUE/./src/plugin/ali/index.ts","webpack://AVUE/./src/plugin/clipboard/index.ts","webpack://AVUE/./src/plugin/export/index.ts","webpack://AVUE/./src/plugin/logs/index.ts","webpack://AVUE/./src/plugin/print/index.ts","webpack://AVUE/./src/plugin/qiniu/index.ts","webpack://AVUE/./src/plugin/screenshot/index.ts","webpack://AVUE/./src/plugin/video/index.ts","webpack://AVUE/./src/plugin/watermark/index.ts","webpack://AVUE/./src/plugin/watermark/watermark.ts","webpack://AVUE/./src/ui/data/index.ts","webpack://AVUE/./src/ui/element-plus/index.ts","webpack://AVUE/./src/ui/index.ts","webpack://AVUE/./src/utils/bem.ts","webpack://AVUE/./src/utils/mock.ts","webpack://AVUE/./src/utils/util.ts","webpack://AVUE/./src/utils/validate.ts","webpack://AVUE/./src/version.ts","webpack://AVUE/external {\"root\":\"ElementPlusIconsVue\",\"commonjs2\":\"@element-plus/icons-vue\",\"commonjs\":\"@element-plus/icons-vue\",\"amd\":\"@element-plus/icons-vue\"}","webpack://AVUE/external \"axios\"","webpack://AVUE/external {\"root\":\"ElementPlus\",\"commonjs2\":\"element-plus\",\"commonjs\":\"element-plus\",\"amd\":\"element-plus\"}","webpack://AVUE/external {\"root\":\"Vue\",\"commonjs2\":\"vue\",\"commonjs\":\"vue\",\"amd\":\"vue\"}"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@element-plus/icons-vue\"), require(\"axios\"), require(\"element-plus\"), require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"AVUE\", [\"@element-plus/icons-vue\", \"axios\", \"element-plus\", \"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AVUE\"] = factory(require(\"@element-plus/icons-vue\"), require(\"axios\"), require(\"element-plus\"), require(\"vue\"));\n\telse\n\t\troot[\"AVUE\"] = factory(root[\"ElementPlusIconsVue\"], root[\"axios\"], root[\"ElementPlus\"], root[\"Vue\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__element_plus_icons_vue__, __WEBPACK_EXTERNAL_MODULE_axios__, __WEBPACK_EXTERNAL_MODULE_element_plus__, __WEBPACK_EXTERNAL_MODULE_vue__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","<template>\r\n <component :is=\"dialogType\"\r\n v-model=\"visible\"\r\n destroy-on-close\r\n class=\"avue-dialog\"\r\n :beforeClose=\"beforeClose\"\r\n v-bind=\"dialog\">\r\n <avue-form ref=\"form\"\r\n :option=\"{...deepClone(option),...{menuBtn: false}}\"\r\n v-model=\"data\"\r\n v-model:status=\"disabled\"\r\n @submit=\"handleSubmit\"\r\n @reset-change=\"close\"></avue-form>\r\n <span class=\"avue-dialog__footer\"\r\n v-if=\"validData(option.menuBtn,true)\"\r\n :class=\"'avue-dialog__footer--'+menuPosition\">\r\n <el-button @click=\"submit\"\r\n :size=\"$AVUE.size\"\r\n :icon=\"option.submitIcon\"\r\n :loading=\"disabled\"\r\n v-if=\"validData(option.submitBtn,true)\"\r\n type=\"primary\">{{option.submitText}}</el-button>\r\n <el-button @click=\"reset\"\r\n v-if=\"validData(option.emptyBtn,true)\"\r\n :disabled=\"disabled\"\r\n :size=\"$AVUE.size\"\r\n :icon=\"option.emptyIcon \">{{option.emptyText}}</el-button>\r\n </span>\r\n </component>\r\n</template>\r\n<script>\nimport locale from \"core/locale\";\nexport default {\n mixins: [locale],\n props: {\n opt: Object,\n onDestroy: Function\n },\r\n data () {\r\n return {\r\n disabled: false,\r\n callback: null,\r\n visible: true,\r\n dialog: {\n closeOnClickModal: false\n },\n isDrawer: false,\n option: {\n submitText: this.t('form.submitBtn'),\n emptyText: this.t('common.closeBtn'),\n submitIcon: 'el-icon-check',\n emptyIcon: 'el-icon-close',\n column: []\n },\r\n data: {}\r\n };\r\n },\r\n created () {\r\n this.show()\r\n },\r\n computed: {\r\n dialogType () {\r\n return this.isDrawer ? 'elDrawer' : 'elDialog'\r\n },\r\n menuPosition () {\r\n return this.opt.menuPosition || 'center'\r\n }\r\n },\r\n methods: {\r\n submit () {\r\n this.$refs.form.submit()\r\n },\r\n reset () {\r\n this.$refs.form.resetForm()\r\n },\r\n beforeClose (done) {\r\n done()\r\n this.close()\r\n },\r\n show () {\r\n let opt = this.opt;\r\n this.callback = opt.callback;\r\n let dialog = this.deepClone(opt);\r\n ['callback', 'option', 'data'].forEach(ele => delete dialog[ele])\r\n this.dialog = Object.assign(this.dialog, dialog);\r\n this.dialog.size = this.dialog.width\r\n this.isDrawer = this.dialog.type === 'drawer';\r\n this.option = Object.assign(this.option, opt.option);\r\n this.data = opt.data;\r\n this.visible = true;\r\n },\r\n close () {\r\n const callback = () => {\r\n this.visible = false;\r\n this.onDestroy()\r\n }\r\n if (typeof this.dialog.beforeClose === 'function') {\r\n this.dialog.beforeClose(callback);\r\n } else {\r\n callback()\r\n }\r\n },\r\n handleSubmit (data, done) {\r\n this.callback && this.callback({ data: data, close: this.close, done: done });\r\n }\r\n }\r\n};\r\n</script>\n","<template>\r\n <custom v-if=\"render\"\r\n :render=\"render\"\r\n :index=\"index\"\r\n :row=\"row\"\r\n :dic=\"dic\"\r\n :column=\"column\"\r\n :params=\"params\"\r\n :event=\"event\"></custom>\r\n <component v-else\r\n :is=\"getComponent(column)\"\r\n v-model=\"text\"\r\n v-bind=\"getBind(column)\"\r\n align=\"left\"\r\n v-on=\"event\"\r\n :column=\"Object.assign(column,params)\"\r\n :dic=\"dic\"\r\n :clearValidate=\"clearValidate\"\r\n :box-type=\"boxType\"\r\n ref=\"temp\"\r\n :disabled=\"column.disabled || disabled\"\r\n :readonly=\"column.readonly || readonly\"\r\n :placeholder=\"boxType == 'view' ? '' : getPlaceholder(column)\"\r\n :props=\"column.props || props\"\r\n :propsHttp=\"column.propsHttp || propsHttp\"\r\n :size=\"column.size || size\"\r\n :table-data=\"tableData\"\r\n :type=\"type || column.type\"\r\n :column-slot=\"columnSlot\"\r\n @keyup.enter=\"enterChange\">\r\n <template #=\"scope\"\r\n v-if=\"$slots.default\">\r\n <slot v-bind=\"scope\"></slot>\r\n </template>\r\n <template #\r\n v-else-if=\"params.html\">\r\n <span v-html=\"params.html\"></span>\r\n </template>\r\n <template v-for=\"item in columnSlot\"\r\n #[item]=\"scope\">\r\n <slot v-bind=\"scope\"\r\n v-if=\"!item.endsWith('-desc')\"\r\n :name=\"item\"></slot>\r\n </template>\r\n </component>\r\n <template v-if=\"!render && boxType !== 'view'\">\r\n <slot v-if=\"columnSlot.includes(column.prop + '-desc')\"\r\n :name=\"column.prop + '-desc'\"\r\n :column=\"column\"\r\n :description=\"column.description\"\r\n :descClass=\"column.descClass\"\r\n :size=\"column.size || size\"></slot>\r\n <span v-else\r\n :class=\"column.descClass ? column.descClass : 'field-desc'\">\r\n {{column.description}}\r\n </span>\r\n </template>\r\n</template>\r\n\r\n<script>\r\nimport custom from \"./custom\";\r\nimport { getComponent, getPlaceholder } from \"core/dataformat\";\r\nimport slot from 'core/slot'\r\nexport default {\r\n name: 'form-temp',\r\n mixins: [slot],\r\n emits: ['update:modelValue', 'change', 'enter'],\r\n components: {\r\n custom\r\n },\r\n props: {\r\n modelValue: {},\r\n clearValidate: Function,\r\n uploadSized: Function,\r\n uploadBefore: Function,\r\n uploadDelete: Function,\r\n uploadAfter: Function,\r\n uploadPreview: Function,\r\n uploadError: Function,\r\n uploadExceed: Function,\r\n boxType: String,\r\n row: Object,\r\n render: Function,\r\n index: [String, Number],\r\n columnSlot: {\r\n type: Array,\r\n default: () => {\r\n return []\r\n }\r\n },\r\n tableData: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n clearable: {\r\n type: Boolean\r\n },\r\n enter: {\r\n type: Boolean,\r\n default: false\r\n },\r\n type: {\r\n type: String\r\n },\r\n propsHttp: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n props: {\r\n type: Object\r\n },\r\n dic: {\r\n type: Array\r\n },\r\n placeholder: {\r\n type: String\r\n },\r\n size: {\r\n type: String\r\n },\r\n disabled: {\r\n type: Boolean\r\n },\r\n readonly: {\r\n type: Boolean\r\n },\r\n column: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n }\r\n },\r\n computed: {\r\n params () {\r\n return this.column.params || {}\r\n },\r\n event () {\r\n return this.column.event || {}\r\n },\r\n text: {\r\n get () {\r\n return this.modelValue\r\n },\r\n set (val) {\r\n this.$emit('update:modelValue', val);\r\n this.$emit('change', val)\r\n }\r\n }\r\n },\r\n methods: {\r\n getComponent (column) {\r\n return getComponent(column.type, column.component)\r\n },\r\n getPlaceholder,\r\n getBind (column) {\r\n let params = { ...column, ...this.params, ...this.$uploadFun(column) };\r\n ['value', 'className'].forEach(ele => {\r\n delete params[ele]\r\n })\r\n return params\r\n },\r\n enterChange () {\r\n if (typeof this.column.enter === 'function') {\r\n this.column.enter({ value: this.text, column: this.column })\r\n } else if (this.enter) {\r\n this.$emit('enter')\r\n }\r\n }\r\n }\r\n}\r\n</script>","<template>\r\n <span v-if=\"text\" class=\"avue-icon\"\r\n :class=\"{'avue-icon--small':small}\">\r\n <svg v-if=\"text.includes('#')\"\r\n aria-hidden=\"true\">\r\n <use :xlink:href=\"text\"></use>\r\n </svg>\r\n <el-icon v-else-if=\"text.indexOf('el-') == 0\"\r\n :size=\"size\"\r\n :color=\"color\">\r\n <component :is=\"text\" />\r\n </el-icon>\r\n <i v-else\r\n :class=\"text\"></i>\r\n </span>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'icon-temp',\r\n props: {\r\n small: Boolean,\r\n color: String,\r\n size: {\r\n type: [String, Number],\r\n default: 32\r\n },\r\n text: {\r\n type: String,\r\n default: ''\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style>\r\n</style>","<template>\r\n <div :class=\"b()\">\r\n <div :class=\"b('mask')\"\r\n v-if=\"ops.modal\"\r\n @click=\"close\"></div>\r\n <span class=\"el-image-viewer__btn el-image-viewer__close\"\r\n @click=\"close\">\r\n <el-icon-close />\r\n </span>\r\n <span class=\"el-image-viewer__btn el-image-viewer__prev\"\r\n @click=\"handlePrev()\"\r\n v-if=\"isRrrow\">\r\n <el-icon-arrow-left />\r\n </span>\r\n <span class=\"el-image-viewer__btn el-image-viewer__next\"\r\n @click=\"handleNext()\"\r\n v-if=\"isRrrow\">\r\n <el-icon-arrow-right />\r\n </span>\r\n <div :class=\"b('box')\"\r\n ref=\"box\">\r\n <el-carousel ref=\"carousel\"\r\n :show-indicators=\"false\"\r\n :initial-index=\"index\"\r\n :initial-swipe=\"index\"\r\n :interval=\"ops.interval || 0\"\r\n arrow=\"never\"\r\n @change=\"handleChange\"\r\n indicator-position=\"none\">\r\n <el-carousel-item @click.self=\"ops.closeOnClickModal?close():''\"\r\n v-for=\"(item,indexs) in datas\"\r\n :key=\"indexs\">\r\n <component @click=\"handleClick(item,indexs)\"\r\n :id=\"'avue-image-preview__'+indexs\"\r\n :src=\"item.url\"\r\n :style=\"[styleName,styleBoxName]\"\r\n ref=\"item\"\r\n @mousedown=\"move\"\r\n controls=\"controls\"\r\n :is=\"isMediaType(item)\"\r\n v-if=\"isMediaType(item)\"\r\n ondragstart=\"return false\"></component>\r\n <div v-else\r\n @click=\"handleClick(item,indexs,true)\"\r\n :id=\"'avue-image-preview__'+indexs\"\r\n :class=\"b('file')\">\r\n <span>\r\n <el-icon-document />\r\n <p>{{item.name || getName(item.url)}}</p>\r\n </span>\r\n </div>\r\n </el-carousel-item>\r\n </el-carousel>\r\n </div>\r\n <div class=\"el-image-viewer__btn el-image-viewer__actions\">\r\n <div class=\"el-image-viewer__actions__inner\">\r\n <el-icon-zoom-out @click=\"subScale\" class=\"viewer-icon\" />\r\n <el-icon-zoom-in @click=\"addScale\" class=\"viewer-icon\" />\r\n <i class=\"el-image-viewer__actions__divider\"></i>\r\n <el-icon-refresh-left @click=\"rotate=rotate-90\" class=\"viewer-icon\" />\r\n <el-icon-refresh-right @click=\"rotate=rotate+90\" class=\"viewer-icon\" />\r\n <i class=\"el-image-viewer__actions__divider\"></i>\r\n <el-icon-printer @click=\"handlePrint\" class=\"viewer-icon\" />\r\n <i class=\"el-image-viewer__actions__divider\"></i>\r\n <el-icon-d-arrow-left @click=\"handlePrev\" class=\"viewer-icon\" />\r\n <el-icon-d-arrow-right @click=\"handleNext\" class=\"viewer-icon\" />\r\n <i class=\"el-image-viewer__actions__divider\"></i>\r\n <el-icon-refresh @click=\"handleReset\" class=\"viewer-icon\" />\r\n <i class=\"el-image-viewer__actions__divider\"></i>\r\n <el-icon-download @click=\"handleDownload\" class=\"viewer-icon\" />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport { setPx, isMediaType } from 'utils/util';\r\nimport create from \"core/create\";\r\nimport $Print from 'plugin/print/';\r\nexport default create({\r\n name: \"image-preview\",\r\n props: {\r\n datas: Array,\r\n index: [Number, String],\r\n ops: Object,\r\n onDestroy: Function\r\n },\r\n data () {\r\n return {\r\n left: 0,\r\n top: 0,\r\n scale: 1,\r\n rotate: 0,\r\n count: this.index\r\n };\r\n },\r\n computed: {\r\n styleBoxName () {\r\n return {\r\n marginLeft: setPx(this.left),\r\n marginTop: setPx(this.top)\r\n }\r\n },\r\n styleName () {\r\n return {\r\n transform: `scale(${this.scale}) rotate(${this.rotate}deg)`,\r\n maxWidth: '100%',\r\n maxHeight: '100%',\r\n }\r\n },\r\n isRrrow () {\r\n return this.datas.length > 1\r\n }\r\n },\r\n mounted () {\r\n this.$refs.item.forEach((ele, index) => {\r\n this.$refs.item[index].onwheel = (e) => {\r\n if (e.wheelDelta > 0) {\r\n this.addScale()\r\n } else {\r\n this.subScale()\r\n }\r\n }\r\n })\r\n },\r\n methods: {\r\n getName (url) {\r\n return url.substring(url.lastIndexOf('/') + 1)\r\n },\r\n handlePrint () {\r\n $Print(`#avue-image-preview__${this.count}`)\r\n },\r\n handlePrev () {\r\n this.stopItem()\r\n this.$refs.carousel.prev()\r\n },\r\n handleNext () {\r\n this.stopItem()\r\n this.$refs.carousel.next()\r\n },\r\n handleReset() {\r\n this.scale = 1;\r\n this.rotate = 0;\r\n this.left = 0;\r\n this.top = 0;\r\n },\r\n handleDownload() {\r\n const currentItem = this.datas[this.count];\r\n if (!currentItem || !currentItem.url) return;\r\n \r\n const link = document.createElement('a');\r\n link.href = currentItem.url;\r\n link.download = currentItem.name || this.getName(currentItem.url);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n },\r\n stopItem () {\r\n this.left = 0;\r\n this.top = 0;\r\n },\r\n isMediaType (item) {\r\n return isMediaType(item.url, item.type)\r\n },\r\n subScale () {\r\n if (this.scale != 0.2) {\r\n this.scale = parseFloat((this.scale - 0.2).toFixed(2))\r\n }\r\n },\r\n addScale () {\r\n this.scale = parseFloat((this.scale + 0.2).toFixed(2))\r\n },\r\n handleChange (n, o) {\r\n this.scale = 1;\r\n this.rotate = 0;\r\n this.count = n\r\n\r\n },\r\n move (e) { //获取目标元素s\r\n //算出鼠标相对元素的位置\r\n let disX = e.clientX;\r\n let disY = e.clientY;\r\n let scale = 2;\r\n document.onmousemove = (e) => { //鼠标按下并移动的事件\r\n //用鼠标的位置减去鼠标相对元素的位置,得到元素的位置\r\n let left = e.clientX - disX;\r\n let top = e.clientY - disY;\r\n disX = e.clientX;\r\n disY = e.clientY;\r\n //移动当前元素\r\n this.left = this.left + (left * scale)\r\n this.top = this.top + (top * scale)\r\n\r\n };\r\n document.onmouseup = (e) => {\r\n document.onmousemove = null;\r\n document.onmouseup = null;\r\n };\r\n },\r\n handleClick (item, index, df = false) {\r\n if (typeof this.ops.click == \"function\") {\r\n this.ops.click(item, index);\r\n } else if (df) {\r\n window.open(item.url)\r\n }\r\n },\r\n close () {\r\n this.isShow = false\r\n if (typeof this.ops.beforeClose == \"function\") {\r\n this.ops.beforeClose(this.datas, this.count);\r\n }\r\n this.onDestroy()\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-box\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-icon\"\r\n :style=\"{backgroundColor:item.color}\">\r\n <el-icon>\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\r\n <div class=\"item-info\">\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n :style=\"{color:item.color}\"\r\n class=\"title\"\r\n :end=\"item.count\"></avue-count-up>\r\n <div class=\"info\">{{item.title}}</div>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-box\",\r\n data () {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n created () { },\r\n mounted () { },\r\n watch: {},\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"data-card\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <img :src=\"item.src\"\r\n class=\"item-img\" />\r\n <div class=\"item-text\"\r\n :style=\"{backgroundColor:bgText}\">\r\n <h3 :style=\"{color:colorText}\">{{item.name}}</h3>\r\n <p :style=\"{color:colorText}\">{{item.text}}</p>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-card\",\r\n data () {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n },\r\n colorText () {\r\n return this.option.colorText || \"#fff\";\r\n },\r\n bgText () {\r\n return this.option.bgText || \"#2e323f\";\r\n },\r\n borderColor () {\r\n return this.option.borderColor || \"#2e323f\";\r\n }\r\n },\r\n created () { },\r\n mounted () { },\r\n watch: {},\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"avue-data-cardText\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n {{item.title}}\r\n </div>\r\n <div class=\"item-content\">{{item.content}}</div>\r\n <div class=\"item-footer\">\r\n <span>{{item.name}}</span>\r\n <span>{{item.date}}</span>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-cardtext\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n icon () {\r\n return this.option.icon;\r\n },\r\n color () {\r\n return this.option.color || \"#333\";\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-countdown\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-countdown__item\" :style=\"getItemStyle(item)\">\r\n <div class=\"data-countdown__title\" v-if=\"item.title\">{{ item.title }}</div>\r\n <div class=\"data-countdown__timer\">\r\n <div class=\"data-countdown__block\" v-if=\"showDays\">\n <span class=\"data-countdown__number\">{{ formatNumber(item.days || 0) }}</span>\n <span class=\"data-countdown__label\">{{ t('countdown.day') }}</span>\n </div>\n <span class=\"data-countdown__separator\" v-if=\"showDays\">:</span>\n <div class=\"data-countdown__block\">\n <span class=\"data-countdown__number\">{{ formatNumber(item.hours || 0) }}</span>\n <span class=\"data-countdown__label\">{{ t('countdown.hour') }}</span>\n </div>\n <span class=\"data-countdown__separator\">:</span>\n <div class=\"data-countdown__block\">\n <span class=\"data-countdown__number\">{{ formatNumber(item.minutes || 0) }}</span>\n <span class=\"data-countdown__label\">{{ t('countdown.minute') }}</span>\n </div>\n <span class=\"data-countdown__separator\">:</span>\n <div class=\"data-countdown__block\">\n <span class=\"data-countdown__number\">{{ formatNumber(item.seconds || 0) }}</span>\n <span class=\"data-countdown__label\">{{ t('countdown.second') }}</span>\n </div>\n </div>\r\n <div class=\"data-countdown__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\nimport create from \"core/create\";\nimport locale from \"core/locale\";\nexport default create({\n name: \"data-countdown\",\n mixins: [locale],\n data() {\n return {\n timers: []\n };\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n showDays() {\r\n return this.option.showDays !== false;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n background: item.background || 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)'\r\n };\r\n },\r\n formatNumber(num) {\r\n return num < 10 ? '0' + num : num;\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-dashboard\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-dashboard__item\" :style=\"getItemStyle(item)\">\r\n <div class=\"data-dashboard__header\">\r\n <span class=\"data-dashboard__title\">{{ item.title }}</span>\r\n <el-tag v-if=\"item.status\" size=\"small\" :type=\"item.statusType || ''\">{{ item.status }}</el-tag>\r\n </div>\r\n <div class=\"data-dashboard__value\">\r\n <avue-count-up :animation=\"animation\"\r\n :decimals=\"item.decimals || 0\"\r\n :end=\"item.value\"></avue-count-up>\r\n <span class=\"data-dashboard__unit\" v-if=\"item.unit\">{{ item.unit }}</span>\r\n </div>\r\n <div class=\"data-dashboard__chart\" v-if=\"item.chartData\">\r\n <div class=\"data-dashboard__bar\"\r\n v-for=\"(bar, idx) in item.chartData\"\r\n :key=\"idx\"\r\n :style=\"{height: bar + '%', backgroundColor: item.chartColor || '#409eff'}\">\r\n </div>\r\n </div>\r\n <div class=\"data-dashboard__footer\" v-if=\"item.footerText\">\r\n <span>{{ item.footerText }}</span>\r\n <span v-if=\"item.footerValue\" :style=\"{color: item.footerColor}\">{{ item.footerValue }}</span>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-dashboard\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n animation() {\r\n return this.option.animation !== false;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n backgroundColor: item.backgroundColor || '#fff'\r\n };\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-display\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"12\"\r\n :sm=\"12\">\r\n <div class=\"item\"\r\n :style=\"{color:color}\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n class=\"count\"\r\n :style=\"{color:item.color}\"\r\n :end=\"item.count\"></avue-count-up>\r\n <span class=\"splitLine\" />\r\n <div class=\"title\"\r\n :style=\"{color:item.fontColor}\">{{item.title}}</div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-display\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n },\r\n color () {\r\n return this.option.color || \"rgb(63, 161, 255)\";\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-icons\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :xs=\"12\"\r\n :sm=\"6\"\r\n :md=\"span\"\r\n :key=\"index\">\r\n <div class=\"item\"\r\n :class=\"[{'item--easy':discount}]\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-icon\">\r\n <el-icon :color=\"item.color\">\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\r\n <div class=\"item-info\">\r\n <span>{{item.title}}</span>\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n :style=\"{color:color}\"\r\n class=\"count\"\r\n :end=\"item.count\"></avue-count-up>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-icons\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 4;\r\n },\r\n data () {\r\n return this.option.data;\r\n },\r\n color () {\r\n return this.option.color || \"rgb(63, 161, 255)\";\r\n },\r\n discount () {\r\n return this.option.discount || false;\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-imgtext\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\">\r\n <div class=\"item\"\r\n :style=\"{color:color}\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n <img :src=\"item.imgsrc\"\r\n alt=\"\">\r\n </div>\r\n <div class=\"item-content\">\r\n <span>{{item.title}}</span>\r\n <p>{{item.content}}</p>\r\n </div>\r\n <div class=\"item-footer\">\r\n <div class=\"time\"><span>{{item.time}}</span></div>\r\n <div class=\"imgs\">\r\n <ul>\r\n <li v-for=\"(imgs,index) in item.headimg\"\r\n :key=\"index\">\r\n <el-tooltip effect=\"dark\"\r\n :content=\"imgs.name\"\r\n placement=\"top-start\">\r\n <img :src='imgs.src'\r\n alt=\"\">\r\n </el-tooltip>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-imgtext\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n },\r\n color () {\r\n return this.option.color || \"rgb(63, 161, 255)\";\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"data-list\">\r\n <div class=\"data-list__header\" v-if=\"title\">\r\n <span class=\"data-list__title\">{{ title }}</span>\r\n <span class=\"data-list__extra\" v-if=\"$slots.extra\"><slot name=\"extra\"></slot></span>\r\n </div>\r\n <div class=\"data-list__content\">\r\n <div class=\"data-list__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n @click=\"handleClick(item)\">\r\n <div class=\"data-list__avatar\" v-if=\"item.avatar || item.icon\">\r\n <img v-if=\"item.avatar\" :src=\"item.avatar\" :alt=\"item.title\" />\r\n <i v-else-if=\"item.icon\" :class=\"item.icon\" :style=\"{color: item.iconColor}\"></i>\r\n </div>\r\n <div class=\"data-list__body\">\r\n <div class=\"data-list__title-row\">\r\n <span class=\"data-list__name\">{{ item.title }}</span>\r\n <el-tag v-if=\"item.tag\" size=\"small\" :type=\"item.tagType || ''\">{{ item.tag }}</el-tag>\r\n </div>\r\n <div class=\"data-list__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n </div>\r\n <div class=\"data-list__extra\" v-if=\"item.extra\">\r\n <span class=\"data-list__value\" :style=\"{color: item.valueColor}\">{{ item.extra }}</span>\r\n <span class=\"data-list__label\" v-if=\"item.label\">{{ item.label }}</span>\r\n </div>\r\n <div class=\"data-list__action\" v-if=\"item.actions && item.actions.length\">\r\n <el-button v-for=\"(action, idx) in item.actions\"\r\n :key=\"idx\"\r\n :type=\"action.type || 'text'\"\r\n size=\"small\"\r\n @click.stop=\"action.click && action.click(item)\">\r\n {{ action.text }}\r\n </el-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-list\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n handleClick(item) {\r\n this.$emit('click', item);\r\n item.click && item.click(item);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-notice\">\r\n <div class=\"data-notice__header\" v-if=\"title\">\r\n <span class=\"data-notice__title\">{{ title }}</span>\r\n <span class=\"data-notice__more\" v-if=\"showMore\" @click=\"handleMore\">{{ moreText }}</span>\r\n </div>\r\n <div class=\"data-notice__list\">\r\n <div class=\"data-notice__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n @click=\"handleClick(item)\">\r\n <div class=\"data-notice__tag\" v-if=\"item.tag\" :style=\"{backgroundColor: item.tagColor || '#409eff'}\">\r\n {{ item.tag }}\r\n </div>\r\n <div class=\"data-notice__content\">\r\n <div class=\"data-notice__text\">{{ item.title }}</div>\r\n <div class=\"data-notice__date\" v-if=\"item.date\">{{ item.date }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\nimport create from \"core/create\";\nimport locale from \"core/locale\";\nexport default create({\n name: \"data-notice\",\n mixins: [locale],\n data() {\n return {};\n },\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n showMore() {\n return this.option.showMore !== false;\n },\n moreText() {\n return this.option.moreText || this.t('common.more');\n },\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n handleClick(item) {\r\n this.$emit('click', item);\r\n item.click && item.click(item);\r\n },\r\n handleMore() {\r\n this.$emit('more');\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-operatext\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\">\r\n <div class=\"item\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\">\r\n <div class=\"item-header\"\r\n :style=\"{backgroundColor:item.color,backgroundImage:`url(${item.colorImg})`}\">\r\n <span class=\"item-title\">{{item.title}}</span>\r\n <span class=\"item-subtitle\">{{item.subtitle}}</span>\r\n </div>\r\n <div class=\"item-content\">\r\n <div class=\"item-img\">\r\n <img :src=\"item.img\"\r\n alt=\"\">\r\n </div>\r\n <div class=\"item-list\">\r\n <div class=\"item-row\"\r\n v-for=\"(citem,cindex) in item.list\"\r\n :key=\"cindex\">\r\n <span class=\"item-label\">{{citem.label}}</span>\r\n <span class=\"item-value\">{{citem.value}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-operatext\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"avue-data-panel\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\">\r\n <div class=\"item\">\r\n <div class=\"item-icon\">\r\n <el-icon :color=\"item.color\">\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\r\n <div class=\"item-info\">\r\n <div class=\"item-title\">{{item.title}}</div>\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n class=\"item-count\"\r\n :end=\"item.count\"></avue-count-up>\r\n </div>\r\n\r\n </div>\r\n </a>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-panel\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n animation () {\r\n return this.option.animation\r\n },\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\">\r\n <div class=\"top\"\r\n :style=\"{backgroundColor:item.color}\"></div>\r\n <div class=\"header\">\r\n <p class=\"title\">{{item.title}}</p>\r\n <img :src=\"item.src\"\r\n alt=\"\"\r\n class=\"img\">\r\n <template v-if=\"item.subtitle\">\r\n <p class=\"subtitle\"\r\n :style=\"{color:item.color}\">{{item.subtitle}}</p>\r\n </template>\r\n <template v-if=\"item.money || item.dismoney\">\r\n <p class=\"money\"\r\n :style=\"{color:item.color}\">\r\n <span>¥</span>\r\n <avue-count-up class=\"b\"\r\n :decimals=\"item.decimals || decimals\"\r\n :animation=\"item.animation || animation\"\r\n :end=\"item.dismoney\"></avue-count-up>\r\n <s>{{item.money}}</s>\r\n <em>{{item.tip}}</em>\r\n </p>\r\n </template>\r\n <div class=\"line\"></div>\r\n <a class=\"btn\"\r\n :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :style=\"{backgroundColor:item.color}\">{{item.subtext}}</a>\r\n </div>\r\n <div class=\"list\">\r\n <div class=\"list-item\"\r\n :key=\"cindex\"\r\n v-for=\"(citem,cindex) in item.list\">\r\n <i class=\"list-item-icon list-item--check\"\r\n :style=\"{color:item.color}\"\r\n v-if=\"citem.check\">√</i>\r\n <i class=\"list-item-icon list-item--no\"\r\n v-else>x</i>\r\n <a :href=\"citem.href?citem.href:'javascript:void(0);'\">\r\n <el-tooltip effect=\"dark\"\r\n :disabled=\"!citem.tip\"\r\n placement=\"top\">\r\n <template #content>\r\n <div v-html=\"citem.tip\"></div>\r\n </template>\r\n <span :class=\"{'list-item--link':citem.href}\">{{citem.title}}</span>\r\n </el-tooltip>\r\n\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-pay\",\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-price\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :xs=\"12\"\r\n :sm=\"6\"\r\n :md=\"span\"\r\n :key=\"index\">\r\n <div class=\"item item--active\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"title\">\r\n {{item.title}}\r\n </div>\r\n <div class=\"body\">\r\n <span class=\"price\">{{item.price}}</span>\r\n <span class=\"append\">{{item.append}}</span>\r\n </div>\r\n <div class=\"list\">\r\n <p v-for=\"(citem,cindex) in item.list\"\r\n :key=\"cindex\">\r\n {{citem}}\r\n </p>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-price\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data;\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-product\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-product__item\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-product__img\">\r\n <img :src=\"item.img\" :alt=\"item.name\" />\r\n <div class=\"data-product__tag\" v-if=\"item.tag\" :style=\"{backgroundColor: item.tagColor || '#f56c6c'}\">\r\n {{ item.tag }}\r\n </div>\r\n </div>\r\n <div class=\"data-product__content\">\r\n <div class=\"data-product__name\">{{ item.name }}</div>\r\n <div class=\"data-product__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n <div class=\"data-product__rating\" v-if=\"item.rating !== undefined\">\r\n <el-rate v-model=\"item.rating\" disabled :colors=\"ratingColors\" />\r\n <span class=\"data-product__rating-value\">{{ item.rating }}</span>\r\n <span class=\"data-product__rating-count\" v-if=\"item.ratingCount\">({{ item.ratingCount }})</span>\r\n </div>\r\n <div class=\"data-product__price\">\r\n <span class=\"data-product__price-current\">\r\n <span class=\"data-product__price-symbol\">{{ priceSymbol }}</span>\r\n {{ item.price }}\r\n </span>\r\n <span class=\"data-product__price-original\" v-if=\"item.originalPrice\">\r\n {{ priceSymbol }}{{ item.originalPrice }}\r\n </span>\r\n <span class=\"data-product__discount\" v-if=\"item.discount\">{{ item.discount }}</span>\r\n </div>\n <div class=\"data-product__info\" v-if=\"item.sales || item.stock\">\n <span v-if=\"item.sales\">{{ t('product.sold', { value: item.sales }) }}</span>\n <span v-if=\"item.stock\">{{ t('product.stock', { value: item.stock }) }}</span>\n </div>\n <div class=\"data-product__actions\" v-if=\"showActions\">\n <el-button type=\"primary\" size=\"small\" @click.stop=\"handleBuy(item)\">\n {{ buyText }}\n </el-button>\n <el-button size=\"small\" @click.stop=\"handleCart(item)\" v-if=\"showCart\">\n {{ t('product.addToCart') }}\n </el-button>\n </div>\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\nimport create from \"core/create\";\nimport locale from \"core/locale\";\nexport default create({\n name: \"data-product\",\n mixins: [locale],\n data() {\n return {};\n },\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n },\r\n priceSymbol() {\r\n return this.option.priceSymbol || '¥';\r\n },\r\n showActions() {\r\n return this.option.showActions !== false;\r\n },\r\n showCart() {\n return this.option.showCart !== false;\n },\n buyText() {\n return this.option.buyText || this.t('product.buyNow');\n },\n ratingColors() {\r\n return this.option.ratingColors || ['#F7BA2A', '#F7BA2A', '#F7BA2A'];\r\n }\r\n },\r\n methods: {\r\n handleBuy(item) {\r\n this.$emit('buy', item);\r\n item.onBuy && item.onBuy(item);\r\n },\r\n handleCart(item) {\r\n this.$emit('cart', item);\r\n item.onCart && item.onCart(item);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-profile\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-profile__item\"\r\n :style=\"getItemStyle(item)\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-profile__cover\" v-if=\"item.cover\" :style=\"{backgroundImage: 'url(' + item.cover + ')'}\"></div>\r\n <div class=\"data-profile__avatar\">\r\n <img :src=\"item.avatar\" :alt=\"item.name\" v-if=\"item.avatar\" />\r\n <span v-else class=\"data-profile__avatar-text\">{{ getAvatarText(item.name) }}</span>\r\n </div>\r\n <div class=\"data-profile__name\">{{ item.name }}</div>\r\n <div class=\"data-profile__title\" v-if=\"item.title\">{{ item.title }}</div>\r\n <div class=\"data-profile__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n <div class=\"data-profile__tags\" v-if=\"item.tags && item.tags.length\">\r\n <el-tag v-for=\"(tag, idx) in item.tags\" :key=\"idx\" size=\"small\" :type=\"tag.type || ''\">\r\n {{ tag.text || tag }}\r\n </el-tag>\r\n </div>\r\n <div class=\"data-profile__contact\" v-if=\"item.phone || item.email\">\r\n <div class=\"data-profile__contact-item\" v-if=\"item.phone\">\r\n <span class=\"data-profile__contact-icon\">📱</span>\r\n <span>{{ item.phone }}</span>\r\n </div>\r\n <div class=\"data-profile__contact-item\" v-if=\"item.email\">\r\n <span class=\"data-profile__contact-icon\">📧</span>\r\n <span>{{ item.email }}</span>\r\n </div>\r\n </div>\r\n <div class=\"data-profile__stats\" v-if=\"item.stats && item.stats.length\">\r\n <div class=\"data-profile__stat\" v-for=\"(stat, idx) in item.stats\" :key=\"idx\">\r\n <div class=\"data-profile__stat-value\">{{ stat.value }}</div>\r\n <div class=\"data-profile__stat-label\">{{ stat.label }}</div>\r\n </div>\r\n </div>\r\n <div class=\"data-profile__actions\" v-if=\"item.actions && item.actions.length\">\r\n <el-button v-for=\"(action, idx) in item.actions\"\r\n :key=\"idx\"\r\n :type=\"action.type || 'primary'\"\r\n size=\"small\"\r\n @click.stop=\"action.click && action.click(item)\">\r\n {{ action.text }}\r\n </el-button>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-profile\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n backgroundColor: item.backgroundColor || '#fff'\r\n };\r\n },\r\n getAvatarText(name) {\r\n return name ? name.charAt(0).toUpperCase() : '?';\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-progress\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n <avue-count-up class=\"item-count\"\r\n :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n :end=\"item.count\"></avue-count-up>\r\n <div class=\"item-title\"\r\n v-text=\"item.title\"></div>\r\n </div>\r\n <el-progress :stroke-width=\"15\"\r\n :percentage=\"item.count\"\r\n :color=\"item.color\"\r\n :show-text=\"false\"></el-progress>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-progress\",\r\n data () {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n created () { },\r\n mounted () { },\r\n watch: {},\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"data-rank\">\r\n <div class=\"data-rank__header\" v-if=\"title\">\r\n <span class=\"data-rank__title\">{{ title }}</span>\r\n </div>\r\n <div class=\"data-rank__list\">\r\n <div class=\"data-rank__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-rank__index\" :class=\"getRankClass(index)\">\r\n <span v-if=\"index < 3\">{{ getMedal(index) }}</span>\r\n <span v-else>{{ index + 1 }}</span>\r\n </div>\r\n <div class=\"data-rank__avatar\" v-if=\"item.avatar\">\r\n <img :src=\"item.avatar\" :alt=\"item.name\" />\r\n </div>\r\n <div class=\"data-rank__info\">\r\n <div class=\"data-rank__name\">{{ item.name }}</div>\r\n <div class=\"data-rank__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n </div>\r\n <div class=\"data-rank__value\">\r\n <avue-count-up :animation=\"animation\"\r\n :decimals=\"item.decimals || 0\"\r\n :end=\"item.value\"></avue-count-up>\r\n <span class=\"data-rank__unit\" v-if=\"item.unit || unit\">{{ item.unit || unit }}</span>\r\n </div>\r\n <div class=\"data-rank__bar\" v-if=\"showBar\">\r\n <el-progress :percentage=\"getPercentage(item.value)\"\r\n :show-text=\"false\"\r\n :stroke-width=\"6\"\r\n :color=\"item.color || barColor\"></el-progress>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-rank\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n animation() {\r\n return this.option.animation !== false;\r\n },\r\n unit() {\r\n return this.option.unit || '';\r\n },\r\n showBar() {\r\n return this.option.showBar !== false;\r\n },\r\n barColor() {\r\n return this.option.barColor || '#409eff';\r\n },\r\n data() {\r\n return this.option.data || [];\r\n },\r\n maxValue() {\r\n if (this.data.length === 0) return 100;\r\n return Math.max(...this.data.map(item => item.value || 0));\r\n }\r\n },\r\n methods: {\r\n getRankClass(index) {\r\n if (index === 0) return 'is-first';\r\n if (index === 1) return 'is-second';\r\n if (index === 2) return 'is-third';\r\n return '';\r\n },\r\n getMedal(index) {\r\n const medals = ['🥇', '🥈', '🥉'];\r\n return medals[index] || '';\r\n },\r\n getPercentage(value) {\r\n return Math.round((value / this.maxValue) * 100);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-rotate\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\"\r\n :style=\"{backgroundColor:item.color}\">\r\n <div class=\"item-box\">\r\n <avue-count-up class=\"item-count\"\r\n :decimals=\"item.decimals || decimals\"\r\n :animation=\"item.animation || animation\"\r\n :end=\"item.count\"></avue-count-up>\r\n <span class=\"item-title\">{{item.title}}</span>\r\n <el-icon :color=\"item.color\"\r\n class=\"item-icon\">\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\n <a :href=\"item.href\"\n @click=\"item.click&&item.click(item)\">\n <p class=\"item-more\">{{ t('common.more') }}\n <el-icon>\n <el-icon-arrow-right />\n </el-icon>\n </p>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n<script>\nimport create from \"core/create\";\nimport locale from \"core/locale\";\nexport default create({\n name: \"data-rotate\",\n mixins: [locale],\n data () {\n return {};\n },\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n created () { },\r\n mounted () { },\r\n watch: {},\r\n methods: {}\r\n});\r\n</script>\n","<template>\r\n <div class=\"data-statistic\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-statistic__item\"\r\n :style=\"getItemStyle(item)\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-statistic__icon\" v-if=\"item.icon\">\r\n <i :class=\"item.icon\" :style=\"{color: item.iconColor || '#409eff', fontSize: (item.iconSize || 40) + 'px'}\"></i>\r\n </div>\r\n <div class=\"data-statistic__content\">\r\n <div class=\"data-statistic__title\">{{ item.title }}</div>\r\n <div class=\"data-statistic__value\" :style=\"{color: item.valueColor}\">\r\n <span class=\"data-statistic__prefix\" v-if=\"item.prefix\">{{ item.prefix }}</span>\r\n <avue-count-up :animation=\"item.animation !== false\"\r\n :decimals=\"item.decimals || 0\"\r\n :end=\"item.value\"></avue-count-up>\r\n <span class=\"data-statistic__suffix\" v-if=\"item.suffix\">{{ item.suffix }}</span>\r\n </div>\r\n <div class=\"data-statistic__trend\" v-if=\"item.trend !== undefined\">\r\n <span :class=\"['data-statistic__trend-icon', item.trend >= 0 ? 'is-up' : 'is-down']\">\r\n {{ item.trend >= 0 ? '↑' : '↓' }}\r\n </span>\r\n <span class=\"data-statistic__trend-value\">{{ Math.abs(item.trend) }}%</span>\r\n <span class=\"data-statistic__trend-text\" v-if=\"item.trendText\">{{ item.trendText }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-statistic\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n backgroundColor: item.backgroundColor || '#fff',\r\n borderColor: item.borderColor || '#ebeef5'\r\n };\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-tabs\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\"\r\n :style=\"{background:item.color}\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n <p>{{item.title}}</p>\r\n <span>{{item.subtitle}}</span>\r\n </div>\r\n <div class=\"item-body\">\r\n <avue-count-up class=\"h2\"\r\n :decimals=\"item.decimals || decimals\"\r\n :animation=\"item.animation || animation\"\r\n :end=\"item.count\"></avue-count-up>\r\n </div>\r\n <div class=\"item-footer\">\r\n <span>{{item.allcount}}</span>\r\n <p>{{item.text}}</p>\r\n </div>\r\n <p class=\"item-tip\">{{item.key}}</p>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-tabs\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-task\">\r\n <div class=\"data-task__header\" v-if=\"title\">\r\n <span class=\"data-task__title\">{{ title }}</span>\r\n <span class=\"data-task__count\">{{ completedCount }}/{{ data.length }}</span>\r\n </div>\r\n <div class=\"data-task__progress\">\r\n <el-progress :percentage=\"progressPercent\" :stroke-width=\"8\" :show-text=\"false\"></el-progress>\r\n </div>\r\n <div class=\"data-task__list\">\r\n <div class=\"data-task__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n :class=\"{'is-completed': item.completed}\">\r\n <el-checkbox v-model=\"item.completed\" @change=\"handleChange(item, index)\"></el-checkbox>\r\n <div class=\"data-task__content\">\r\n <div class=\"data-task__text\">{{ item.title }}</div>\r\n <div class=\"data-task__meta\" v-if=\"item.deadline || item.priority\">\r\n <span class=\"data-task__deadline\" v-if=\"item.deadline\">{{ item.deadline }}</span>\r\n <el-tag v-if=\"item.priority\" size=\"small\" :type=\"getPriorityType(item.priority)\">\r\n {{ item.priority }}\r\n </el-tag>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\nimport create from \"core/create\";\nimport locale from \"core/locale\";\n\nconst PRIORITY_TYPES = {\n high: 'danger',\n medium: 'warning',\n low: 'info'\n};\n\nexport default create({\n name: \"data-task\",\n mixins: [locale],\n data() {\n return {};\n },\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n },\r\n completedCount() {\r\n return this.data.filter(item => item.completed).length;\r\n },\r\n progressPercent() {\r\n if (this.data.length === 0) return 0;\r\n return Math.round((this.completedCount / this.data.length) * 100);\r\n }\r\n },\r\n methods: {\n handleChange(item, index) {\n this.$emit('change', { item, index, completed: item.completed });\n },\n getPriorityType(priority) {\n const normalized = String(priority || '').trim().toLowerCase();\n const aliases = this.t('task.priorityAliases') || {};\n const matchedKey = Object.keys(PRIORITY_TYPES).find((key) => {\n const values = Array.isArray(aliases[key]) ? aliases[key] : [];\n return values.some((value) => String(value).trim().toLowerCase() === normalized);\n });\n return PRIORITY_TYPES[matchedKey || normalized] || '';\n }\n }\n});\n</script>\r\n","<template>\r\n <div class=\"data-weather\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-weather__item\"\r\n :style=\"getItemStyle(item)\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-weather__header\">\r\n <span class=\"data-weather__city\">{{ item.city }}</span>\r\n <span class=\"data-weather__date\">{{ item.date }}</span>\r\n </div>\r\n <div class=\"data-weather__body\">\r\n <div class=\"data-weather__icon\">\r\n <i :class=\"getWeatherIcon(item.weather)\" :style=\"{fontSize: '48px'}\"></i>\r\n </div>\r\n <div class=\"data-weather__temp\">\r\n <span class=\"data-weather__temp-value\">{{ item.temp }}</span>\r\n <span class=\"data-weather__temp-unit\">°C</span>\r\n </div>\r\n </div>\r\n <div class=\"data-weather__footer\">\r\n <span class=\"data-weather__desc\">{{ item.weather }}</span>\r\n <span class=\"data-weather__wind\" v-if=\"item.wind\">{{ item.wind }}</span>\r\n </div>\r\n <div class=\"data-weather__range\" v-if=\"item.tempLow !== undefined\">\r\n {{ item.tempLow }}° ~ {{ item.tempHigh }}°\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\nimport create from \"core/create\";\nimport locale from \"core/locale\";\n\nconst WEATHER_GRADIENTS = {\n sunny: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',\n cloudy: 'linear-gradient(135deg, #89f7fe 0%, #66a6ff 100%)',\n overcast: 'linear-gradient(135deg, #bdc3c7 0%, #2c3e50 100%)',\n rain: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',\n snow: 'linear-gradient(135deg, #e0eafc 0%, #cfdef3 100%)'\n};\n\nconst WEATHER_ICONS = {\n sunny: 'el-icon-sunny',\n cloudy: 'el-icon-partly-cloudy',\n overcast: 'el-icon-cloudy',\n rain: 'el-icon-heavy-rain',\n snow: 'el-icon-ice-cream'\n};\n\nexport default create({\n name: \"data-weather\",\n mixins: [locale],\n data() {\n return {};\n },\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\n normalizeWeatherKey(weather) {\n const normalized = String(weather || '').trim().toLowerCase();\n const aliases = this.t('weather.aliases') || {};\n const matchedKey = Object.keys(WEATHER_GRADIENTS).find((key) => {\n const values = Array.isArray(aliases[key]) ? aliases[key] : [];\n return values.some((value) => String(value).trim().toLowerCase() === normalized);\n });\n return matchedKey || normalized;\n },\n getItemStyle(item) {\n const weatherKey = this.normalizeWeatherKey(item.weather);\n return {\n background: item.background || WEATHER_GRADIENTS[weatherKey] || WEATHER_GRADIENTS.sunny\n };\n },\n getWeatherIcon(weather) {\n const weatherKey = this.normalizeWeatherKey(weather);\n return WEATHER_ICONS[weatherKey] || WEATHER_ICONS.sunny;\n }\n }\n});\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-button type=\"primary\"\r\n icon=\"el-icon-plus\"\r\n circle\r\n :size=\"size\"\r\n v-if=\"validatenull(text)\"\r\n :disabled=\"disabled\"\r\n @click=\"add()\"></el-button>\r\n <div :class=\"b('item')\"\r\n v-for=\"(item,index) in text\"\r\n :key=\"index\">\r\n <div :class=\"b('input')\">\r\n <el-tooltip placement=\"bottom\"\r\n :disabled=\"(!isImg && !isUrl) || validatenull(item)\">\r\n <template #content>\r\n <component style=\"width: 200px\"\r\n :src=\"item\"\r\n @click=\"openImg(index)\"\r\n v-if=\"isImg\"\r\n controls=\"controls\"\r\n :is=\"isMediaType(item)\"></component>\r\n <el-link type=\"primary\"\r\n :href=\"item\"\r\n v-else-if=\"isUrl\"\r\n :target=\"target\">{{item}}</el-link>\r\n </template>\r\n <el-input v-model=\"text[index]\"\r\n :size=\"size\"\r\n :maxlength=\"maxlength\"\r\n :minlength=\"minlength\"\r\n :show-word-limit=\"showWordLimit\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"></el-input>\r\n </el-tooltip>\r\n <template v-if=\"!(disabled ||readonly || alone)\">\r\n <el-button v-if=\"!isLimit\"\r\n type=\"primary\"\r\n icon=\"el-icon-plus\"\r\n circle\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n @click=\"add(index)\"></el-button>\r\n <el-button type=\"danger\"\r\n icon=\"el-icon-minus\"\r\n circle\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n @click=\"remove(index)\"></el-button>\r\n </template>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport { isMediaType } from \"utils/util\";\r\nexport default create({\r\n name: 'array',\r\n mixins: [props(), event()],\r\n data () {\r\n return {\r\n text: []\r\n }\r\n },\r\n computed: {\r\n isLimit () {\r\n if (this.validatenull(this.limit)) return false\r\n else if (this.textLen >= this.limit) return true\r\n return false\r\n },\r\n textLen () {\r\n return (this.text || []).length\r\n },\r\n isImg () {\r\n return this.type === 'img'\r\n },\r\n isUrl () {\r\n return this.type === 'url'\r\n },\r\n },\r\n props: {\r\n fileType: String,\r\n alone: Boolean,\r\n type: String,\r\n limit: Number,\r\n maxlength: [String, Number],\r\n minlength: [String, Number],\r\n showWordLimit: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n methods: {\r\n isMediaType (item) {\r\n return isMediaType(item, this.fileType)\r\n },\r\n add (index) {\r\n this.text.splice(index + 1, 0, '');\r\n },\r\n remove (index) {\r\n this.text.splice(index, 1)\r\n },\r\n openImg (index) {\r\n const list = this.text.map(ele => {\r\n return { thumbUrl: ele, url: ele, type: this.fileType }\r\n })\r\n this.$ImagePreview(list, index);\r\n },\r\n }\r\n})\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <div :class=\"b('header')\">\r\n <div :class=\"b('title')\"\r\n v-if=\"title\"\r\n v-text=\"title\"></div>\r\n <small :class=\"b('meta')\"\r\n v-if=\"meta\"\r\n v-text=\"meta\"></small>\r\n </div>\r\n <div :class=\"b('lead')\"\r\n v-text=\"lead\"\r\n v-if=\"lead\"></div>\r\n <div :class=\"b('body')\"\r\n v-if=\"body\"\r\n v-html=\"body\"></div>\r\n </div>\r\n\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nconst propsDefault = {\r\n title: \"title\",\r\n meta: \"meta\",\r\n lead: \"lead\",\r\n body: \"body\"\r\n};\r\nexport default create({\r\n name: \"article\",\r\n props: {\r\n data: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n props: {\r\n type: Object,\r\n default: () => {\r\n return propsDefault;\r\n }\r\n }\r\n },\r\n computed: {\r\n titleKey () {\r\n return this.props.title || propsDefault.title;\r\n },\r\n metaKey () {\r\n return this.props.meta || propsDefault.meta;\r\n },\r\n leadKey () {\r\n return this.props.lead || propsDefault.lead;\r\n },\r\n bodyKey () {\r\n return this.props.body || propsDefault.body;\r\n },\r\n title () {\r\n return this.data[this.titleKey];\r\n },\r\n meta () {\r\n return this.data[this.metaKey];\r\n },\r\n lead () {\r\n return this.data[this.leadKey];\r\n },\r\n body () {\r\n return this.data[this.bodyKey];\r\n }\r\n },\r\n mounted () { }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-row :span=\"24\"\r\n :gutter=\"gutter\">\r\n <el-col :span=\"span\"\r\n v-if=\"validData(option.addBtn,true)\">\r\n <div :class=\"b('item',{'add':true})\"\n @click=\"rowAdd()\">\n <el-icon>\n <el-icon-plus />\n </el-icon>\n <span>{{ t('crud.addBtn') }}</span>\n </div>\n </el-col>\n <el-col :span=\"span\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div :class=\"b('item')\"\r\n @click=\"rowClick(item,index)\">\r\n <div :class=\"b('body')\">\r\n <div :class=\"b('avatar')\">\r\n <img :src=\"item[imgKey]\"\r\n alt=\"\">\r\n </div>\r\n <div :class=\"b('detail')\">\r\n <div :class=\"b('title')\">{{item[titleKey]}}</div>\r\n <div :class=\"b('info')\">{{item[infoKey]}}</div>\r\n </div>\r\n </div>\r\n <div :class=\"b('menu')\">\r\n <slot name=\"menu\"\r\n :index=\"index\"\r\n :row=\"item\"></slot>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\nconst propsDefault = {\n img: \"img\",\n title: \"title\",\n info: \"info\"\n};\nimport create from \"core/create\";\nimport locale from \"core/locale\";\nexport default create({\n name: \"card\",\n mixins: [locale],\n props: {\n props: {\r\n type: Object,\r\n default: () => {\r\n return propsDefault;\r\n }\r\n },\r\n option: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n data: {\r\n type: Array,\r\n default: () => {\r\n return [];\r\n }\r\n }\r\n },\r\n data () {\r\n return {\r\n propsDefault: propsDefault\r\n };\r\n },\r\n computed: {\r\n imgKey: function () {\r\n return this.option.props.img || this.propsDefault.img;\r\n },\r\n titleKey: function () {\r\n return this.option.props.title || this.propsDefault.title;\r\n },\r\n infoKey: function () {\r\n return this.option.props.info || this.propsDefault.info;\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n gutter () {\r\n return this.option.gutter || 20;\r\n }\r\n },\r\n methods: {\r\n rowAdd () {\r\n this.$emit(\"row-add\");\r\n },\r\n rowClick (row, index) {\r\n this.$emit(\"row-click\", row, index);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <el-cascader\r\n ref=\"cascader\"\r\n :options=\"dic\"\r\n :class=\"b()\"\r\n @click=\"handleClick\"\r\n @change=\"handleValueChange\"\r\n v-model=\"text\"\r\n :placeholder=\"placeholder\"\r\n :props=\"allProps\"\r\n :size=\"size\"\r\n :effect=\"effect\"\r\n :clearable=\"clearableVal\"\r\n :show-all-levels=\"showAllLevels\"\r\n :filterable=\"filterable\"\r\n :popper-class=\"popperClass\"\r\n :separator=\"separator\"\r\n :disabled=\"disabled\"\r\n :show-checked-strategy=\"showCheckedStrategy\"\r\n :collapse-tags=\"tags || collapseTags\"\r\n :collapse-tags-tooltip=\"collapseTagsTooltip\"\r\n :max-collapse-tags=\"maxCollapseTags\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n >\r\n <template #=\"{ data, node }\">\r\n <slot v-if=\"$slots.default\" :data=\"data\" :node=\"node\"></slot>\r\n <span v-else>{{ data[labelKey] }}</span>\r\n </template>\r\n </el-cascader>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"cascader\",\r\n mixins: [props(), event()],\r\n props: {\r\n clearValidate: Function,\r\n effect: {\r\n type: String,\r\n default: \"light\",\r\n },\r\n showCheckedStrategy: String,\r\n checkStrictly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n emitPath: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n tags: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n collapseTags: Boolean,\r\n collapseTagsTooltip: Boolean,\r\n maxCollapseTags: Number,\r\n expandTrigger: {\r\n type: String,\r\n default: \"hover\",\r\n },\r\n showAllLevels: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n lazy: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n lazyLoad: Function,\r\n filterable: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n separator: {\r\n type: String,\r\n },\r\n },\r\n computed: {\r\n allProps() {\r\n return {\r\n label: this.labelKey,\r\n value: this.valueKey,\r\n disabled: this.disabledKey,\r\n children: this.childrenKey,\r\n checkStrictly: this.checkStrictly,\r\n multiple: this.multiple,\r\n emitPath: this.emitPath,\r\n expandTrigger: this.props.expandTrigger,\r\n hoverThreshold: this.props.hoverThreshold,\r\n leaf: this.leafKey,\r\n lazy: this.lazy,\r\n lazyLoad: (node, resolve) => {\r\n let callback = (list) => {\r\n let findDic = (list, value, children) => {\r\n list.forEach((ele) => {\r\n if (ele[this.valueKey] == value) {\r\n ele[this.childrenKey] = children;\r\n } else if (ele[this.childrenKey]) {\r\n findDic(ele[this.childrenKey]);\r\n }\r\n });\r\n };\r\n findDic(this.dic, node[this.valueKey], list);\r\n resolve(list);\r\n };\r\n this.lazyLoad && this.lazyLoad(node, callback);\r\n },\r\n expandTrigger: this.expandTrigger,\r\n };\r\n },\r\n },\r\n created() {},\r\n mounted() {},\r\n methods: {\r\n handleValueChange(val) {\r\n setTimeout(() => {\r\n if (!this.validatenull(val) && this.rules && this.clearValidate) {\r\n this.clearValidate(this.prop);\r\n }\r\n });\r\n },\r\n getCheckedNodes(leafOnly = false) {\r\n return this.$refs.cascader.getCheckedNodes(leafOnly);\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\"\r\n :style=\"heightStyleName\"\r\n @keyup.enter=\"handleSend\">\r\n <audio ref=\"chatAudio\">\r\n <source :src=\"audio[0]\"\r\n type=\"audio/ogg\">\r\n <source :src=\"audio[1]\"\r\n type=\"audio/mpeg\">\r\n <source :src=\"audio[2]\"\r\n type=\"audio/wav\">\r\n </audio>\r\n <div class=\"web__logo\">\r\n <img :src=\"config.img\"\r\n class=\"web__logo-img\"\r\n alt=\"\">\r\n <div class=\"web__logo-info\">\r\n <p class=\"web__logo-name\">{{config.name}}</p>\r\n <p class=\"web__logo-dept\">{{config.dept}}</p>\r\n </div>\r\n <slot name=\"header\"></slot>\r\n </div>\r\n <div class=\"web__content\">\r\n <div :style=\"widthStyleName\">\r\n <div class=\"web__main\"\r\n ref=\"main\">\r\n <div class=\"web__main-item\"\r\n v-for=\"(item,index) in list\"\r\n :key=\"index\"\r\n :class=\"{'web__main-item--mine':item.mine}\">\r\n <div class=\"web__main-user\">\r\n <img :src=\"item.img\">\r\n <cite>\r\n {{item.name}}\r\n <i>{{item.date}}</i>\r\n </cite>\r\n </div>\r\n <div class=\"web__main-text\">\r\n <div class=\"web__main-arrow\"></div>\r\n <span v-html=\"handleDetail(item.text.text)\"\r\n ref=\"content\"></span>\r\n <ul class=\" web__main-list\"\r\n v-if=\"!validatenull(item.text.list)\">\r\n <li @click=\"handleItemMsg(citem)\"\r\n v-for=\"(citem,cindex) in item.text.list\"\r\n :key=\"cindex\">{{citem.text}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"web__footer\"\r\n :style=\"widthStyleName\">\r\n <div class=\"web__tools\">\r\n <el-icon v-if=\"tools.img\"\r\n @click=\"handleUpload('img')\">\r\n <el-icon-picture />\r\n </el-icon>\r\n <el-icon v-if=\"tools.video\"\r\n @click=\"handleUpload('video')\">\r\n <el-icon-video-camera />\r\n </el-icon>\r\n <el-icon v-if=\"tools.file\"\r\n @click=\"handleUpload('file')\">\r\n <el-icon-folder-opened />\r\n </el-icon>\r\n <slot name=\"menu\"></slot>\r\n </div>\r\n <div class=\"web__msg\">\r\n <textarea v-model=\"msg\"\n rows=\"2\"\n :placeholder=\"messagePlaceholder\"\n class=\"web__msg-input\"></textarea>\n <div class=\"web__msg-menu\">\r\n <el-dropdown split-button\n class=\"web__msg-submit\"\n type=\"primary\"\n :size=\"size\"\n @click=\"handleSend\"\n trigger=\"click\">\n {{ t(\"chat.sendBtn\") }}\n <template #dropdown>\n <el-dropdown-menu>\n <el-dropdown-item>\n <el-popover placement=\"top\"\r\n width=\"160\"\r\n v-model=\"visible\">\r\n <div>\r\n <el-input :size=\"size\"\n style=\"margin-bottom:10px\"\n :rows=\"3\"\n show-word-limit\n :placeholder=\"t('chat.quickReplyPlaceholder')\"\n v-model=\"keys\"\n type=\"textarea\"></el-input>\n <div style=\"text-align: right; margin: 0\">\r\n <el-button :size=\"size\"\r\n text\r\n @click=\"visible = false\">{{t(\"common.cancelBtn\")}}</el-button>\r\n <el-button type=\"primary\"\r\n :size=\"size\"\r\n @click=\"addKey\">{{t(\"common.submitBtn\")}}</el-button>\r\n </div>\r\n </div>\r\n <template #reference>\r\n <el-button texts\r\n icon=\"el-icon-plus\"></el-button>\r\n </template>\r\n\r\n </el-popover>\r\n\r\n </el-dropdown-item>\r\n <el-scrollbar style=\"height:100px\">\r\n <el-dropdown-item v-for=\"(item,index) in keylist\"\r\n :key=\"index\"\r\n @click=\"sendKey(item)\">\r\n <el-tooltip effect=\"dark\"\r\n :content=\"item\"\r\n placement=\"top\">\r\n <span> {{item.substr(0,10)}}{{item.length>10?'...':''}}</span>\r\n </el-tooltip>\r\n\r\n </el-dropdown-item>\r\n </el-scrollbar>\r\n\r\n </el-dropdown-menu>\r\n </template>\r\n\r\n </el-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <slot></slot>\r\n </div>\r\n <div v-if=\"upload.box\">\r\n <el-dialog :title=\"upload.title\"\r\n destroy-on-close\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n v-model=\"upload.box\"\r\n width=\"30%\">\r\n <el-form ref=\"form\"\r\n :model=\"upload\">\r\n <el-form-item prop=\"src\"\n :rules=\"[\n { required: true, message: t('chat.addressRequired')},\n ]\">\n <el-input :size=\"size\"\n style=\"margin-bottom:10px\"\n :rows=\"4\"\n show-word-limit\n maxlength=\"100\"\n :placeholder=\"t('chat.addressPlaceholder')\"\n v-model=\"upload.src\"\n type=\"textarea\"></el-input>\n </el-form-item>\r\n </el-form>\r\n <template #footer>\r\n <span class=\"dialog-footer\">\r\n <el-button @click=\"upload.box=false\"\r\n size=\"small\">{{t(\"common.cancelBtn\")}}</el-button>\r\n <el-button type=\"primary\"\r\n @click=\"uploadSubmit\"\r\n size=\"small\">{{t(\"common.submitBtn\")}}</el-button>\r\n </span>\r\n </template>\r\n\r\n </el-dialog>\r\n </div>\r\n <div v-if=\"show\">\r\n <el-dialog v-model=\"show\"\r\n width=\"40%\"\r\n destroy-on-close\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n :before-close=\"handleClose\"\r\n class=\"web__dialog\">\r\n <img :src=\"imgSrc\"\r\n v-if=\"imgSrc\"\r\n style=\"width:100%;object-fit: cover;\">\r\n <video :src=\"videoSrc\"\r\n v-if=\"videoSrc\"\r\n style=\"width:100%;object-fit: cover;\"\r\n controls=\"controls\">\r\n </video>\r\n <audio :src=\"audioSrc\"\r\n v-if=\"audioSrc\"\r\n style=\"width:100%;object-fit: cover;\"\r\n controls=\"controls\">\r\n </audio>\r\n </el-dialog>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport dayjs from 'dayjs'\r\nexport default create({\r\n name: \"chat\",\r\n mixins: [locale],\r\n data () {\r\n return {\r\n upload: {\r\n box: false,\r\n src: \"\",\r\n type: '',\r\n title: '',\r\n },\r\n visible: false,\r\n imgSrc: '',\r\n videoSrc: '',\r\n audioSrc: '',\r\n keys: \"\",\r\n show: false\r\n }\r\n },\r\n props: {\r\n size: String,\r\n beforeOpen: Function,\r\n tools: {\r\n type: Object,\r\n default: () => {\r\n return {\r\n img: true,\r\n video: true,\r\n file: true\r\n }\r\n }\r\n },\r\n placeholder: {\n type: String,\n default: ''\n },\n width: {\r\n type: [String, Number],\r\n default: 320\r\n },\r\n height: {\r\n type: [String, Number],\r\n default: 520\r\n },\r\n modelValue: {\r\n type: String\r\n },\r\n notice: {\r\n type: Boolean,\r\n default: true\r\n },\r\n audio: {\r\n type: Array,\r\n default: () => {\r\n return [\r\n 'https://www.helloweba.net/demo/notifysound/notify.ogg',\r\n 'https://www.helloweba.net/demo/notifysound/notify.mp3',\r\n 'https://www.helloweba.net/demo/notifysound/notify.wav'\r\n ]\r\n }\r\n },\r\n config: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n keylist: {\r\n type: Array,\r\n default: () => {\r\n return []\r\n }\r\n },\r\n list: {\r\n type: Array,\r\n default: () => {\r\n return []\r\n }\r\n }\r\n },\r\n computed: {\r\n msg: {\r\n get () {\r\n return this.modelValue\r\n },\r\n set (val) {\r\n this.$emit('update:modelValue', val);\r\n this.$emit('change', val);\r\n }\r\n },\r\n heightStyleName () {\r\n return {\r\n height: this.setPx(this.height)\r\n }\r\n },\r\n widthStyleName () {\r\n return {\r\n width: this.setPx(this.width),\r\n }\r\n },\r\n msgActive () {\n return !this.validatenull(this.msg.replace(/[\\r\\n]/g, \"\"))\n },\n messagePlaceholder () {\n return this.placeholder || this.t('chat.inputPlaceholder');\n }\n },\n methods: {\n uploadSubmit () {\r\n this.$refs.form.validate((valid) => {\r\n if (valid) {\r\n this.upload.box = false;\r\n this.$emit('submit', this.getDetail(this.upload));\r\n }\r\n });\r\n },\r\n handleUpload (type) {\n this.upload.type = type;\n this.upload.src = '';\n if (type === 'img') {\n this.upload.title = this.t('chat.uploadImageTitle')\n } else if (type === 'video') {\n this.upload.title = this.t('chat.uploadVideoTitle')\n } else if (type === 'file') {\n this.upload.title = this.t('chat.uploadFileTitle')\n }\n this.upload.box = true;\n },\n handleClose (done) {\r\n this.imgSrc = undefined;\r\n this.videoSrc = undefined;\r\n this.audioSrc = undefined;\r\n done();\r\n },\r\n addKey () {\r\n if (this.keys !== '') {\r\n this.$emit('keyadd', this.keys)\r\n this.keys = '';\r\n }\r\n this.visible = false\r\n\r\n },\r\n sendKey (key) {\r\n this.$emit('keysend', key)\r\n },\r\n getAudio () {\r\n this.$refs.chatAudio.play();\r\n },\r\n getNotification (text) {\r\n const safe = this;\r\n const NotificationInstance = Notification || window.Notification;\r\n if (!!NotificationInstance) {\n const permissionNow = NotificationInstance.permission;\n if (permissionNow === 'granted') {//允许通知\n CreatNotification();\n } else if (permissionNow === 'denied') {\n console.log(this.t('chat.notificationDenied'));\n } else {\n setPermission();\n }\n function setPermission () {\n //请求获取通知权限\n NotificationInstance.requestPermission(function (PERMISSION) {\n if (PERMISSION === 'granted') {\n CreatNotification();\n } else {\n console.log(safe.t('chat.notificationRejected'));\n }\n });\n }\n function CreatNotification () {\r\n const n = new Notification(safe.config.name, {\r\n body: text,\r\n icon: safe.config.img\r\n });\r\n n.onshow = function () {\r\n safe.getAudio();\r\n setTimeout(() => {\r\n n.close();\r\n }, 2500);\r\n }\r\n n.onclick = function (e) {\r\n n.close();\r\n }\r\n }\r\n }\r\n },\r\n //mine为'我'的对话\r\n //text为内容\r\n pushMsg (params = {}) {\r\n const mine = params.mine === true ? true : false;\r\n const text = params.text || {};\r\n const date = params.date\r\n const textObj = {\r\n date: date || dayjs().format('YYYY-MM-DD HH:mm:ss'),\r\n text: (() => {\r\n if (typeof (text) != 'object') {\r\n return {\r\n text: text\r\n }\r\n }\r\n return text\r\n })(),\r\n mine: mine,\r\n img: mine ? this.config.myImg : this.config.img,\r\n name: mine ? this.config.myName : this.config.name,\r\n }\r\n this.list.push(textObj)\r\n setTimeout(() => {\r\n this.setScroll();\r\n }, 50)\r\n\r\n },\r\n setScroll (count) {\r\n //滚动条一直处于下方\r\n this.$nextTick(() => {\r\n this.$refs.main.scrollTop = count || this.$refs.main.scrollHeight\r\n })\r\n },\r\n //用户主动发送\r\n handleSend () {\r\n if (this.msgActive) {\r\n this.$emit('submit');\r\n }\r\n },\r\n //选择列表\r\n handleItemMsg (item) {\r\n this.$emit('submit', item.ask);\r\n },\r\n //处理排版\r\n handleDetail (html = '') {\r\n let result = html;\r\n setTimeout(() => {\r\n const list = this.$refs.content || [];\r\n list.forEach(ele => {\r\n for (let i = 0; i < ele.children.length; i++) {\r\n const child = ele.children[i];\r\n if (child.getAttribute('data-flag') != 0) {\r\n child.setAttribute('data-flag', 0)\r\n child.onclick = () => {\r\n this.handleEvent(child.dataset)\r\n };\r\n if (child.tagName === 'IMG') {\r\n child.className = 'web__msg--img'\r\n child.src = child.getAttribute('data-src')\r\n } else if (child.tagName === 'VIDEO') {\r\n child.className = 'web__msg--video'\r\n child.src = child.getAttribute('data-src')\r\n } else if (child.tagName === 'AUDIO') {\r\n child.className = 'web__msg--audio'\r\n child.controls = 'controls';\r\n child.src = child.getAttribute('data-src')\r\n } else if (child.tagName === 'FILE') {\n child.className = 'web__msg--file'\n child.innerHTML = `<h2>${this.t('chat.fileLabel')}</h2><span>${child.getAttribute('data-name')}</span>`\n } else if (child.tagName === 'MAP') {\n child.className = 'web__msg--file web__msg--map'\n child.innerHTML = `<h2>${this.t('chat.mapLabel')}</h2><span>${child.getAttribute('data-longitude')} , ${child.getAttribute('data-latitude')}<br />${child.getAttribute('data-address')}</span>`\n }\n this.setScroll();\r\n }\r\n }\r\n });\r\n }, 0)\r\n return result;\r\n },\r\n getDetail (params = {}) {\r\n const { type, src, name, longitude, latitude, address } = params;\r\n if (type === 'img') {\r\n return `<img data-type=\"IMG\" data-src=\"${src}\" />`\r\n } else if (type === 'video') {\r\n return `<video data-type=\"VIDEO\" data-src=\"${src}\"></video>`\r\n } else if (type === 'audio') {\r\n return `<audio data-type=\"AUDIO\" data-src=\"${src}\"></audio>`\r\n } else if (type === 'file') {\r\n return `<file data-type=\"FILE\" data-name=\"${name}\" data-src=\"${src}\"></file>`\r\n } else if (type === 'map') {\r\n return `<map data-type=\"MAP\" data-src=\"${src}\" data-address=\"${address} \"data-latitude=\"${latitude}\" data-longitude=\"${longitude}\"></map>`\r\n }\r\n },\r\n //处理事件\r\n handleEvent (params) {\r\n const callback = () => {\r\n if (params.type === 'IMG') {\r\n this.imgSrc = params.src;\r\n this.show = true;\r\n } else if (params.type === 'VIDEO') {\r\n this.videoSrc = params.src;\r\n this.show = true;\r\n } else if (params.type === 'AUDIO') {\r\n this.audioSrc = params.src;\r\n this.show = true;\r\n } else if (params.type === 'FILE') {\r\n window.open(params.src)\r\n }\r\n }\r\n if (typeof this.beforeOpen === 'function') {\r\n this.beforeOpen(params, callback)\r\n } else {\r\n callback();\r\n }\r\n\r\n },\r\n rootSendMsg (msg) {\r\n this.pushMsg({\r\n text: msg\r\n });\r\n if (this.notice) {\r\n this.getNotification(msg.text || msg);\r\n }\r\n }\r\n }\r\n});\r\n</script>\r\n\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-checkbox v-if=\"all\"\r\n :class=\"b('all')\"\r\n :disabled=\"disabled\"\r\n :indeterminate=\"isIndeterminate\"\r\n v-model=\"checkAll\"\r\n @change=\"handleCheckAll\">{{t('check.checkAll')}}</el-checkbox>\r\n <el-checkbox-group v-model=\"text\"\r\n @change=\"handleCheckChange\"\r\n :disabled=\"disabled\"\r\n :size=\"size\"\r\n :fill=\"fill\"\r\n :text-color=\"textColor\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n @click=\"handleClick\">\r\n <component :is=\"componentName\"\r\n v-for=\"(item,index) in dic\"\r\n :border=\"border\"\r\n :size=\"size\"\r\n :value=\"item[valueKey]\"\r\n :readonly=\"readonly\"\r\n :disabled=\"item[disabledKey]\"\r\n :key=\"index\">{{item[labelKey]}}\r\n </component>\r\n </el-checkbox-group>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport locale from \"core/locale\";\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"../../core/common/event\";\nexport default create({\r\n name: \"checkbox\",\r\n props: {\r\n fill: String,\r\n textColor: String,\r\n all: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n mixins: [props(), event(), locale],\r\n data () {\r\n return {\r\n checkAll: false,\r\n isIndeterminate: false,\r\n name: 'checkbox',\r\n };\r\n },\r\n watch: {\r\n dic () {\r\n this.handleCheckChange();\r\n },\r\n text: {\r\n handler (val) {\r\n this.handleCheckChange();\r\n }\r\n },\r\n },\r\n created () { },\r\n mounted () { },\r\n methods: {\r\n handleCheckAll (val) {\r\n if (!this.all) return\r\n const availableOptions = this.dic.filter(item => !item[this.disabledKey]);\r\n this.text = val ? availableOptions.map(ele => ele[this.valueKey]) : [];\r\n this.isIndeterminate = false;\r\n },\r\n handleCheckChange () {\r\n let value = this.text;\r\n if (!this.all) return\r\n const availableCount = this.dic.filter(item => !item[this.disabledKey]).length;\r\n let checkedCount = value.length;\r\n this.checkAll = checkedCount === availableCount;\r\n this.isIndeterminate = checkedCount > 0 && checkedCount < availableCount;\r\n }\r\n }\r\n});\r\n</script>\r\n\r\n","<template>\r\n <div :class=\"b({'reverse':reverse})\">\r\n <img :src=\"avatar\"\r\n alt=\"\"\r\n :class=\"b('avatar')\">\r\n <div :class=\"b('main')\">\r\n <div :class=\"b('header')\">\r\n <div :class=\"b('author')\"\r\n v-if=\"author\"\r\n v-text=\"author\"></div>\r\n <slot></slot>\r\n </div>\r\n <div :class=\"b('body')\"\r\n v-if=\"body\"\r\n v-html=\"body\"></div>\r\n </div>\r\n </div>\r\n\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nconst propsDefault = {\r\n avatar: \"avatar\",\r\n author: \"author\",\r\n body: \"body\"\r\n};\r\nexport default create({\r\n name: \"comment\",\r\n props: {\r\n reverse: {\r\n type: Boolean,\r\n default: false\r\n },\r\n data: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n props: {\r\n type: Object,\r\n default: () => {\r\n return propsDefault;\r\n }\r\n },\r\n option: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n }\r\n },\r\n computed: {\r\n avatarKey() {\r\n return this.props.avatar || propsDefault.avatar;\r\n },\r\n authorKey() {\r\n return this.props.author || propsDefault.author;\r\n },\r\n bodyKey() {\r\n return this.props.body || propsDefault.body;\r\n },\r\n avatar() {\r\n return this.data[this.avatarKey];\r\n },\r\n author() {\r\n return this.data[this.authorKey];\r\n },\r\n body() {\r\n return this.data[this.bodyKey];\r\n }\r\n },\r\n mounted() {}\r\n});\r\n</script>\r\n","<template>\r\n <span>{{end}}</span>\r\n</template>\r\n\r\n<script>\nimport * as CountUpModule from \"countup.js\";\nimport create from \"core/create\";\n\nconst CountUp = CountUpModule.default || CountUpModule;\nexport default create({\n name: \"count-up\",\r\n props: {\r\n animation: {\r\n type: Boolean,\r\n default: true\r\n },\r\n start: {\r\n type: Number,\r\n required: false,\r\n default: 0\r\n },\r\n end: {\r\n required: true\r\n },\r\n decimals: {\r\n type: Number,\r\n required: false,\r\n default: 0\r\n },\r\n duration: {\r\n type: Number,\r\n required: false,\r\n default: 2\r\n },\r\n options: {\r\n type: Object,\r\n required: false,\r\n default () {\r\n return {};\r\n }\r\n },\r\n callback: {\r\n type: Function,\r\n required: false,\r\n default: () => { }\r\n }\r\n },\r\n data () {\r\n return {\r\n c: null\r\n };\r\n },\r\n watch: {\r\n decimals () {\r\n if (this.c && this.c.update) {\r\n this.c.update(this.end);\r\n }\r\n },\r\n end (value) {\r\n if (this.c && this.c.update) {\r\n this.c.update(value);\r\n }\r\n }\r\n },\r\n mounted () {\r\n if (this.animation) {\r\n this.init();\r\n }\r\n\r\n },\r\n methods: {\r\n init () {\r\n if (!this.c) {\r\n this.c = new CountUp(\r\n this.$el,\r\n this.start,\r\n this.end,\r\n this.decimals,\r\n this.duration,\r\n this.options\r\n );\r\n this.c.start();\r\n }\r\n },\r\n pauseResume () {\r\n if (this.c && this.c.pauseResume) {\r\n this.c.pauseResume();\r\n }\r\n },\r\n reset () {\r\n if (this.c && this.c.reset) {\r\n this.c.reset();\r\n }\r\n },\r\n update (newEndVal) {\r\n if (this.c && this.c.update) {\r\n this.c.update(newEndVal);\r\n }\r\n },\r\n destroy () {\r\n this.c = null;\r\n }\r\n },\r\n beforeUnmount () {\r\n this.destroy();\r\n },\r\n\r\n});\r\n</script>\n","<template>\r\n <!-- 折叠面板 -->\r\n <component :is=\"crud.tableColumnName\"\r\n v-if=\"crud.tableOption.expand\"\r\n type=\"expand\"\r\n :class-name=\"crud.tableOption.expandClassName\"\r\n :label-class-name=\"crud.tableOption.expandLabelClassName\"\r\n :width=\"crud.tableOption.expandWidth || config.expandWidth\"\r\n :fixed=\"validData(crud.tableOption.expandFixed,config.expandFixed)\"\r\n align=\"center\">\r\n <template #=\"{row}\">\r\n <slot :row=\"row\"\r\n :index=\"row.$index\"\r\n name=\"expand\"></slot>\r\n </template>\r\n </component>\r\n\r\n <!-- 选择框 -->\r\n <component :is=\"crud.tableColumnName\"\r\n v-if=\"crud.tableOption.selection\"\r\n :fixed=\"validData(crud.tableOption.selectionFixed,config.selectionFixed)\"\r\n type=\"selection\"\r\n :class-name=\"crud.tableOption.selectionClassName\"\r\n :label-class-name=\"crud.tableOption.selectionLabelClassName\"\r\n :selectable=\"crud.tableOption.selectable\"\r\n :reserve-selection=\"validData(crud.tableOption.reserveSelection)\"\r\n :width=\"crud.tableOption.selectionWidth || config.selectionWidth\"\r\n align=\"center\"></component>\r\n <!-- 序号 -->\r\n <component :is=\"crud.tableColumnName\"\r\n v-if=\"validData(crud.tableOption.index)\"\r\n :fixed=\"validData(crud.tableOption.indexFixed,config.indexFixed)\"\r\n :label=\"crud.tableOption.indexLabel || config.indexLabel\"\r\n type=\"index\"\r\n :class-name=\"crud.tableOption.indexClassName\"\r\n :label-class-name=\"crud.tableOption.indexLabelClassName\"\r\n :width=\"crud.tableOption.indexWidth || config.indexWidth\"\r\n :index=\"indexMethod\"\r\n align=\"center\">\r\n <template #=\"{$index}\">\r\n {{ indexMethod($index)}}\r\n </template>\r\n </component>\r\n</template>\r\n\r\n<script>\r\n\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport config from \"../config\";\nimport tableItemCard from '../grid/item'\r\nexport default create({\r\n name: \"crud\",\r\n data () {\r\n return {\r\n config: config,\r\n rowSortable: null,\r\n columnSortable: null,\r\n }\r\n },\r\n components: {\r\n tableItemCard\r\n },\r\n mixins: [locale],\r\n inject: [\"crud\"],\r\n watch: {\r\n 'crud.isSortable' (val) {\r\n this.rowDrop(val)\r\n this.columnDrop(val)\r\n },\r\n 'crud.isRowSort' (val) {\r\n this.rowDrop(val)\r\n },\r\n 'crud.isColumnSort' (val) {\r\n this.columnDrop(val)\r\n }\r\n },\r\n mounted () {\r\n this.rowDrop()\r\n this.columnDrop()\r\n },\r\n methods: {\r\n indexMethod (index) {\r\n return (\r\n index +\r\n 1 +\r\n ((this.crud.page.currentPage || 1) - 1) *\r\n (this.crud.page.pageSize || 10)\r\n );\r\n },\r\n rowDrop (flag) {\r\n this.$nextTick(() => {\r\n if (flag == false) {\r\n this.rowSortable && this.rowSortable.destroy();\r\n return\r\n }\r\n if (!this.crud.$refs.table.$el) return\r\n const el = this.crud.$refs.table.$el.querySelectorAll(this.config.dropRowClass)[0]\r\n this.rowSortable = this.crud.tableDrop('row', el, evt => {\r\n const oldIndex = evt.oldIndex;\r\n const newIndex = evt.newIndex;\r\n this.crud.$emit('sortable-change', oldIndex, newIndex)\r\n })\r\n })\r\n },\r\n columnDrop (flag) {\r\n this.$nextTick(() => {\r\n if (flag == false) {\r\n this.columnSortable && this.columnSortable.destroy();\r\n return\r\n }\r\n if (!this.crud.$refs.table.$el) return\r\n const el = this.crud.$refs.table.$el.querySelector(this.config.dropColClass);\r\n let noIndexCount = 0;\r\n ['selection', 'index', 'expand'].forEach(ele => {\r\n if (this.crud.tableOption[ele]) { noIndexCount += 1 }\r\n })\r\n this.columnSortable = this.crud.tableDrop('column', el, evt => {\r\n const newIndex = evt.newIndex - noIndexCount\r\n const oldIndex = evt.oldIndex - noIndexCount\r\n this.crud.headerSort(oldIndex, newIndex)\r\n this.crud.$emit('column-sortable-change', oldIndex, newIndex)\r\n })\r\n })\r\n },\r\n }\r\n})\r\n</script>\n","<template>\r\n <component\r\n :is=\"crud.tableColumnName\"\r\n v-if=\"getColumnProp(columnOption, 'hide')\"\r\n :prop=\"columnOption.prop\"\r\n :label=\"columnOption.label\"\r\n :class-name=\"columnOption.className\"\r\n :label-class-name=\"columnOption.labelClassName\"\r\n filter-placement=\"bottom-end\"\r\n :filters=\"getColumnProp(columnOption, 'filters')\"\r\n :filter-method=\"\r\n columnOption.filters\r\n ? (value, row) =>\r\n getColumnProp(columnOption, 'filterMethod', {\r\n value,\r\n row,\r\n column: columnOption,\r\n })\r\n : undefined\r\n \"\r\n :filter-multiple=\"validData(columnOption.filterMultiple, true)\"\r\n :show-overflow-tooltip=\"\r\n columnOption.showOverflowTooltip || columnOption.overHidden\r\n \"\r\n :tooltip-formatter=\"columnOption.tooltipFormatter\"\r\n :min-width=\"columnOption.minWidth\"\r\n :sortable=\"getColumnProp(columnOption, 'sortable')\"\r\n :render-header=\"columnOption.renderHeader\"\r\n :align=\"columnOption.align || crud.tableOption.align\"\r\n :header-align=\"columnOption.headerAlign || crud.tableOption.headerAlign\"\r\n :width=\"getColumnProp(columnOption, 'width')\"\r\n :fixed=\"getColumnProp(columnOption, 'fixed')\"\r\n >\r\n <template #header=\"{ $index }\">\r\n <slot\r\n :name=\"crud.getSlotName(columnOption, 'H')\"\r\n v-if=\"crud.getSlotName(columnOption, 'H', crud.$slots)\"\r\n v-bind=\"{ column: columnOption, $index }\"\r\n ></slot>\r\n <span v-else>{{ columnOption.label }}</span>\r\n </template>\r\n <template v-for=\"column in columnOption.children\">\r\n <column-dynamic\r\n v-if=\"column.children && column.children.length > 0\"\r\n :key=\"column.label\"\r\n :columnOption=\"column\"\r\n >\r\n <template v-for=\"item in crud.mainSlot\" #[item]=\"scope\">\r\n <slot v-bind=\"scope\" :name=\"item\"></slot>\r\n </template>\r\n </column-dynamic>\r\n <column-slot\r\n v-else\r\n :key=\"column.prop\"\r\n :column=\"column\"\r\n :column-option=\"columnOption.children\"\r\n >\r\n <template v-for=\"item in crud.mainSlot\" #[item]=\"scope\">\r\n <slot v-bind=\"scope\" :name=\"item\"></slot>\r\n </template>\r\n </column-slot>\r\n </template>\r\n </component>\r\n</template>\r\n\r\n<script>\r\nimport columnSlot from \"./column-slot\";\r\nimport tableItemCard from \"../grid/item\";\r\nexport default {\r\n name: \"column-dynamic\",\r\n components: {\r\n columnSlot,\r\n tableItemCard,\r\n },\r\n inject: [\"dynamic\", \"crud\"],\r\n props: {\r\n columnOption: Object,\r\n },\r\n created() {\r\n const list = [\"getColumnProp\"];\r\n list.forEach((ele) => {\r\n if (this.dynamic) this[ele] = this.dynamic[ele];\r\n });\r\n },\r\n};\r\n</script>\r\n","<template>\r\n <!-- 操作栏 -->\r\n <component\r\n :is=\"crud.tableColumnName\"\r\n prop=\"menu\"\r\n :class-name=\"crud.tableOption.menuClassName\"\r\n :label-class-name=\"crud.tableOption.menuLabelClassName\"\r\n :fixed=\"validData(crud.tableOption.menuFixed, config.menuFixed)\"\r\n v-if=\"\r\n validData(crud.tableOption.menu, config.menu) &&\r\n crud.getPermission('menu')\r\n \"\r\n :label=\"crud.tableOption.menuTitle || t('crud.menu')\"\r\n :align=\"crud.tableOption.menuAlign || config.menuAlign\"\r\n :header-align=\"crud.tableOption.menuHeaderAlign || config.menuHeaderAlign\"\r\n :width=\"\r\n crud.isMobile\r\n ? crud.tableOption.menuXsWidth || config.menuXsWidth\r\n : crud.tableOption.menuWidth || config.menuWidth\r\n \"\r\n >\r\n <template #header=\"scope\">\r\n <slot\r\n name=\"menu-header\"\r\n v-bind=\"scope\"\r\n :size=\"crud.size\"\r\n v-if=\"crud.getSlotName({ prop: 'menu' }, 'H', crud.$slots)\"\r\n ></slot>\r\n <span v-else>{{ crud.tableOption.menuTitle || t(\"crud.menu\") }}</span>\r\n </template>\r\n <template #=\"{ row, column, $index }\">\r\n <div :class=\"b('menu')\">\r\n <slot\r\n name=\"menu-before\"\r\n v-bind=\"menuParams({ row, column, $index })\"\r\n ></slot>\r\n <el-dropdown v-if=\"isMenu\" :size=\"crud.size\">\r\n <el-button text type=\"primary\" :size=\"crud.size\">\r\n {{ crud.tableOption.menuBtnTitle || t(\"crud.menuBtn\") }}\r\n <el-icon class=\"el-icon--right"\">\r\n <el-icon-arrow-down />\r\n </el-icon>\r\n </el-button>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <slot\r\n name=\"menu-btn-before\"\r\n v-bind=\"menuParams({ row, column, $index })\"\r\n ></slot>\r\n <el-dropdown-item\r\n :icon=\"crud.getBtnIcon('viewBtn')\"\r\n :class=\"b('viewBtn')\"\r\n v-if=\"validData(crud.tableOption.viewBtn, config.viewBtn) && crud.getPermission('viewBtn', row, $index)\"\r\n @click=\"crud.rowView(row, $index)\"\r\n >{{ crud.menuIcon(\"viewBtn\") }}</el-dropdown-item\r\n >\r\n <el-dropdown-item\r\n :icon=\"crud.getBtnIcon('copyBtn')\"\r\n :class=\"b('copyBtn')\"\r\n v-if=\"validData(crud.tableOption.copyBtn, config.copyBtn) && crud.getPermission('copyBtn', row, $index)\"\r\n @click=\"crud.rowCopy(row)\"\r\n >{{ crud.menuIcon(\"copyBtn\") }}</el-dropdown-item\r\n >\r\n <el-dropdown-item\r\n :icon=\"crud.getBtnIcon('editBtn')\"\r\n :class=\"b('editBtn')\"\r\n v-if=\"validData(crud.tableOption.editBtn, config.editBtn) && crud.getPermission('editBtn', row, $index)\"\r\n @click=\"crud.rowEdit(row, $index)\"\r\n >{{ crud.menuIcon(\"editBtn\") }}</el-dropdown-item\r\n >\r\n <el-dropdown-item\r\n :icon=\"crud.getBtnIcon('delBtn')\"\r\n :class=\"b('delBtn')\"\r\n v-if=\"validData(crud.tableOption.delBtn, config.delBtn) && crud.getPermission('delBtn', row, $index)\"\r\n @click=\"crud.rowDel(row, $index)\"\r\n >{{ crud.menuIcon(\"delBtn\") }}</el-dropdown-item\r\n >\r\n <slot\r\n name=\"menu-btn\"\r\n v-bind=\"menuParams({ row, column, $index })\"\r\n ></slot>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n <template v-else-if=\"['button', 'text', 'icon'].includes(menuType)\">\r\n <template v-if=\"validData(crud.tableOption.cellBtn, config.cellBtn)\">\r\n <el-button\r\n :type=\"menuText('primary')\"\r\n :class=\"b('editBtn')\"\r\n :text=\"isTextMenu\"\r\n :icon=\"crud.getBtnIcon('editBtn')\"\r\n :size=\"crud.size\"\r\n :disabled=\"crud.btnDisabledList[$index]\"\r\n @click.stop=\"crud.rowCell(row, $index)\"\r\n v-if=\"\r\n validData(crud.tableOption.editBtn, config.editBtn) &&\r\n !row.$cellEdit\r\n \"\r\n v-permission=\"crud.getPermission('editBtn', row, $index)\"\r\n >\r\n <template v-if=\"!isIconMenu\">\r\n {{ crud.menuIcon(\"editBtn\") }}\r\n </template>\r\n </el-button>\r\n <el-button\r\n :type=\"menuText('primary')\"\r\n :class=\"b('saveBtn')\"\r\n :text=\"isTextMenu\"\r\n :icon=\"crud.getBtnIcon('saveBtn')\"\r\n :size=\"crud.size\"\r\n :disabled=\"crud.btnDisabledList[$index]\"\r\n @click.stop=\"crud.rowCell(row, $index)\"\r\n v-else-if=\"\r\n validData(crud.tableOption.saveBtn, config.saveBtn) &&\r\n row.$cellEdit\r\n \"\r\n v-permission=\"crud.getPermission('saveBtn', row, $index)\"\r\n >\r\n <template v-if=\"!isIconMenu\">\r\n {{ crud.menuIcon(\"saveBtn\") }}\r\n </template>\r\n </el-button>\r\n <el-button\r\n :type=\"menuText('primary')\"\r\n :class=\"b('cancelBtn')\"\r\n :text=\"isTextMenu\"\r\n :icon=\"crud.getBtnIcon('cancelBtn')\"\r\n :size=\"crud.size\"\r\n :disabled=\"crud.btnDisabledList[$index]\"\r\n v-permission=\"crud.getPermission('cancelBtn', row, $index)\"\r\n @click.stop=\"crud.rowCancel(row, $index)\"\r\n v-if=\"\r\n row.$cellEdit &&\r\n validData(crud.tableOption.cancelBtn, config.cancelBtn)\r\n \"\r\n >\r\n <template v-if=\"!isIconMenu\">\r\n {{ crud.menuIcon(\"cancelBtn\") }}\r\n </template>\r\n </el-button>\r\n </template>\r\n <el-button\r\n :type=\"menuText('primary')\"\r\n :class=\"b('viewBtn')\"\r\n :text=\"isTextMenu\"\r\n :icon=\"crud.getBtnIcon('viewBtn')\"\r\n :size=\"crud.size\"\r\n :disabled=\"crud.btnDisabled\"\r\n @click.stop=\"crud.rowView(row, $index)\"\r\n v-permission=\"crud.getPermission('viewBtn', row, $index)\"\r\n v-if=\"validData(crud.tableOption.viewBtn, config.viewBtn)\"\r\n >\r\n <template v-if=\"!isIconMenu\">\r\n {{ crud.menuIcon(\"viewBtn\") }}\r\n </template>\r\n </el-button>\r\n <el-button\r\n :type=\"menuText('primary')\"\r\n :class=\"b('copyBtn')\"\r\n :text=\"isTextMenu\"\r\n :icon=\"crud.getBtnIcon('copyBtn')\"\r\n :size=\"crud.size\"\r\n :disabled=\"crud.btnDisabled\"\r\n @click.stop=\"crud.rowCopy(row)\"\r\n v-permission=\"crud.getPermission('copyBtn', row, $index)\"\r\n v-if=\"validData(crud.tableOption.copyBtn, config.copyBtn)\"\r\n >\r\n <template v-if=\"!isIconMenu\">\r\n {{ crud.menuIcon(\"copyBtn\") }}\r\n </template>\r\n </el-button>\r\n <el-button\r\n :type=\"menuText('primary')\"\r\n :class=\"b('editBtn')\"\r\n :text=\"isTextMenu\"\r\n :icon=\"crud.getBtnIcon('editBtn')\"\r\n :size=\"crud.size\"\r\n :disabled=\"crud.btnDisabled\"\r\n @click.stop=\"crud.rowEdit(row, $index)\"\r\n v-permission=\"crud.getPermission('editBtn', row, $index)\"\r\n v-if=\"\r\n validData(crud.tableOption.editBtn, config.editBtn) &&\r\n !crud.tableOption.cellBtn\r\n \"\r\n >\r\n <template v-if=\"!isIconMenu\">\r\n {{ crud.menuIcon(\"editBtn\") }}\r\n </template>\r\n </el-button>\r\n <el-button\r\n :type=\"menuText('primary')\"\r\n :class=\"b('delBtn')\"\r\n :text=\"isTextMenu\"\r\n :icon=\"crud.getBtnIcon('delBtn')\"\r\n :size=\"crud.size\"\r\n :disabled=\"crud.btnDisabled\"\r\n @click.stop=\"crud.rowDel(row, $index)\"\r\n v-permission=\"crud.getPermission('delBtn', row, $index)\"\r\n v-if=\"\r\n validData(crud.tableOption.delBtn, config.delBtn) &&\r\n !row.$cellEdit\r\n \"\r\n >\r\n <template v-if=\"!isIconMenu\">\r\n {{ crud.menuIcon(\"delBtn\") }}\r\n </template>\r\n </el-button>\r\n </template>\r\n <slot name=\"menu\" v-bind=\"menuParams({ row, column, $index })\"></slot>\r\n </div>\r\n </template>\r\n </component>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport permission from \"common/directive/permission\";\r\nimport config from \"../config\";\nimport tableItemCard from \"../grid/item\";\r\nexport default create({\r\n name: \"crud\",\r\n data() {\r\n return {\r\n config: config,\r\n };\r\n },\r\n components: {\r\n tableItemCard,\r\n },\r\n mixins: [locale],\r\n inject: [\"crud\"],\r\n directives: {\r\n permission,\r\n },\r\n computed: {\r\n menuType() {\r\n return this.crud.tableOption.menuType || this.$AVUE.menuType;\r\n },\r\n isIconMenu() {\r\n return this.menuType === \"icon\";\r\n },\r\n isTextMenu() {\r\n return this.menuType === \"text\";\r\n },\r\n isMenu() {\r\n return this.menuType === \"menu\";\r\n },\r\n },\r\n methods: {\r\n menuText(value) {\r\n return value;\r\n },\r\n menuParams({ row, column, $index }) {\r\n let parent = this.crud;\r\n return {\r\n row,\r\n column,\r\n type: this.menuText(\"primary\"),\r\n disabled: parent.btnDisabled,\r\n size: parent.size,\r\n index: $index,\r\n };\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <component\r\n :is=\"crud.tableColumnName\"\r\n v-if=\"getColumnProp(column, 'hide')\"\r\n :key=\"column.prop\"\r\n :prop=\"column.prop\"\r\n :grid-row=\"column.gridRow\"\r\n :label=\"column.label\"\r\n :class-name=\"column.className\"\r\n :label-class-name=\"column.labelClassName\"\r\n :column-key=\"column.prop\"\r\n :filter-placement=\"column.filterPlacement\"\r\n :filtered-value=\"column.filteredValue\"\r\n :filtered-multiple=\"column.filterMultiple\"\r\n :filters=\"getColumnProp(column, 'filters')\"\r\n :filter-method=\"\r\n column.filters\r\n ? (value, row) =>\r\n getColumnProp(columnOption, 'filterMethod', { value, row, column })\r\n : undefined\r\n \"\r\n :filter-multiple=\"validData(column.filterMultiple, true)\"\r\n :show-overflow-tooltip=\"column.showOverflowTooltip || column.overHidden\"\r\n :tooltip-formatter=\"column.tooltipFormatter\"\r\n :min-width=\"column.minWidth\"\r\n :sortable=\"getColumnProp(column, 'sortable')\"\r\n :sort-method=\"column.sortMethod\"\r\n :sort-orders=\"column.sortOrders\"\r\n :sort-by=\"column.sortBy\"\r\n :resizable=\"column.resizable\"\r\n :render-header=\"column.renderHeader\"\r\n :align=\"column.align || crud.tableOption.align\"\r\n :header-align=\"column.headerAlign || crud.tableOption.headerAlign\"\r\n :width=\"getColumnProp(column, 'width')\"\r\n :fixed=\"getColumnProp(column, 'fixed')\"\r\n >\r\n <template #header=\"{ $index }\">\r\n <slot\r\n :name=\"crud.getSlotName(column, 'H')\"\r\n v-if=\"crud.getSlotName(column, 'H', crud.$slots)\"\r\n v-bind=\"{ column, $index }\"\r\n ></slot>\r\n <span v-else>{{ column.label }}</span>\r\n </template>\r\n <template #=\"{ row, column: tableColumn, $index }\">\r\n <el-form-item\r\n :prop=\"crud.isTree ? '' : `list.${$index}.${column.prop}`\"\r\n :label=\"validLabel(column, row, ' ')\"\r\n v-if=\"row.$cellEdit && column.cell\"\r\n :label-width=\"validLabel(column, row, '-1px')\"\r\n :rules=\"column.rules\"\r\n >\r\n <el-tooltip\r\n :content=\"(crud.listError[`list.${$index}.${column.prop}`] || {}).msg\"\r\n :disabled=\"\r\n !(crud.listError[`list.${$index}.${column.prop}`] || {}).valid\r\n \"\r\n placement=\"top\"\r\n >\r\n <div>\r\n <slot\r\n v-bind=\"{\r\n row: row,\r\n tableColumn: tableColumn,\r\n column: column,\r\n dic: crud.DIC[column.prop],\r\n size: crud.size,\r\n index: $index,\r\n disabled: crud.btnDisabledList[$index],\r\n label: handleDetail(row, column),\r\n $cell: row.$cellEdit,\r\n }\"\r\n :name=\"crud.getSlotName(column, 'F')\"\r\n v-if=\"crud.getSlotName(column, 'F', crud.$slots)\"\r\n ></slot>\r\n <form-temp\r\n v-else\r\n :column=\"column\"\r\n :size=\"crud.size\"\r\n :index=\"$index\"\r\n :row=\"row\"\r\n :prop=\"`list.${$index}.${column.prop}`\"\r\n :clearValidate=\"crud.clearValidate\"\r\n :render=\"column.renderForm\"\r\n :table-data=\"{\r\n index: $index,\r\n row: row,\r\n label: handleDetail(row, column),\r\n }\"\r\n :dic=\"\r\n (crud.cascaderDIC[$index] || {})[column.prop] ||\r\n crud.DIC[column.prop]\r\n \"\r\n :props=\"column.props || crud.tableOption.props\"\r\n :readonly=\"column.readonly\"\r\n :disabled=\"\r\n crud.disabled ||\r\n crud.tableOption.disabled ||\r\n column.disabled ||\r\n crud.btnDisabledList[$index]\r\n \"\r\n :clearable=\"validData(column.clearable, false)\"\r\n v-bind=\"$uploadFun(column, crud)\"\r\n v-model=\"row[column.prop]\"\r\n :column-slot=\"crud.mainSlot\"\r\n @change=\"columnChange(row, column, $index)\"\r\n >\r\n <template v-for=\"item in crud.mainSlot\" #[item]=\"scope\">\r\n <slot v-bind=\"scope\" :name=\"item\"></slot>\r\n </template>\r\n </form-temp>\r\n </div>\r\n </el-tooltip>\r\n </el-form-item>\r\n <custom\r\n v-else-if=\"column.render\"\r\n :column=\"column\"\r\n :row=\"row\"\r\n :index=\"$index\"\r\n :render=\"column.render\"\r\n :event=\"column.event\"\r\n :params=\"column.params\"\r\n ></custom>\r\n <slot\r\n :row=\"row\"\r\n :tableColumn=\"tableColumn\"\r\n :column=\"column\"\r\n :index=\"$index\"\r\n :dic=\"crud.DIC[column.prop]\"\r\n :size=\"crud.size\"\r\n :label=\"handleDetail(row, column)\"\r\n :name=\"column.prop\"\r\n v-else-if=\"crud.$slots[column.prop]\"\r\n ></slot>\r\n <template v-else>\r\n <span\r\n v-if=\"['img', 'upload'].includes(column.type)\"\r\n class=\"avue-crud__img\"\r\n >\r\n <template\r\n v-for=\"(item, index) in getImgList(row, column)\"\r\n :key=\"index\"\r\n >\r\n <component\r\n :src=\"item\"\r\n v-if=\"isMediaType(item, column.fileType)\"\r\n :is=\"isMediaType(item, column.fileType)\"\r\n @click.stop=\"openImg(row, column, index)\"\r\n ></component>\r\n <el-icon v-else @click.stop=\"openImg(row, column, index)\">\r\n <el-icon-document></el-icon-document>\r\n </el-icon>\r\n </template>\r\n </span>\r\n <el-link\r\n v-else-if=\"'url' === column.type\"\r\n v-for=\"(item, index) in corArray(row, column)\"\r\n type=\"primary\"\r\n :key=\"index\"\r\n :href=\"item\"\r\n :target=\"column.target || '_blank'\"\r\n >{{ item }}</el-link\r\n >\r\n <avue-rate\r\n disabled\r\n v-else-if=\"'rate' === column.type\"\r\n v-model=\"row[column.prop]\"\r\n ></avue-rate>\r\n <i\r\n v-else-if=\"'color' === column.type\"\r\n class=\"avue-crud__color\"\r\n :style=\"{ backgroundColor: row[column.prop] }\"\r\n ></i>\r\n <icon-temp\r\n v-else-if=\"'icon' === column.type\"\r\n :text=\"row[column.prop]\"\r\n ></icon-temp>\r\n <span v-else-if=\"column.html\" v-html=\"handleDetail(row, column)\"></span>\r\n <span\r\n v-else\r\n :class=\"{ 'avue-crud__ellipsis': column.ellipsis }\"\r\n :title=\"column.ellipsis ? handleDetail(row, column) : ''\"\r\n v-text=\"handleDetail(row, column)\"\r\n ></span>\r\n </template>\r\n </template>\r\n </component>\r\n</template>\r\n\r\n<script>\r\nlet count = {};\r\nimport { detail } from \"core/detail\";\r\nimport { DIC_PROPS, DIC_SHOW_SPLIT, DIC_SPLIT } from \"global/variable\";\r\nimport { sendDic } from \"core/dic\";\r\nimport { isMediaType, blankVal } from \"utils/util\";\r\nimport custom from \"common/components/form/custom\";\r\nimport formTemp from \"common/components/form/index\";\r\nimport iconTemp from \"common/components/icon/index\";\r\nimport tableItemCard from \"../grid/item\";\r\nexport default {\r\n name: \"column-slot\",\r\n inject: [\"dynamic\", \"crud\"],\r\n components: {\r\n custom,\r\n tableItemCard,\r\n formTemp,\r\n iconTemp,\r\n },\r\n props: {\r\n column: Object,\r\n columnOption: Array,\r\n },\r\n created() {\r\n const list = [\"getColumnProp\"];\r\n list.forEach((ele) => {\r\n if (this.dynamic) this[ele] = this.dynamic[ele];\r\n });\r\n },\r\n methods: {\r\n isMediaType(item, fileType) {\r\n return isMediaType(item, fileType);\r\n },\r\n validLabel(column, row, val) {\r\n if (column.rules && row.$cellEdit) {\r\n return val;\r\n }\r\n },\r\n columnChange(row, column, index) {\r\n let key = `${index}-${column.prop}`;\r\n if (!count[key]) {\r\n this.handleChange(column, row);\r\n if (typeof column.change === \"function\" && column.cell == true) {\r\n column.change({ row, column, index, value: row[column.prop] });\r\n }\r\n }\r\n count[key] = true;\r\n this.$nextTick(() => (count[key] = false));\r\n },\r\n handleChange(column, row) {\r\n if (!column.cascader) return;\r\n this.$nextTick(() => {\r\n const columnOption = [...this.crud.propOption];\r\n //本节点;\r\n const cascader = column.cascader;\r\n const str = cascader.join(\",\");\r\n cascader.forEach((item) => {\r\n const columnNextProp = item;\r\n const value = row[column.prop];\r\n const rowIndex = row.$index;\r\n // 下一个节点\r\n const columnNext = this.findObject(this.columnOption, columnNextProp);\r\n if (this.validatenull(columnNext)) return;\r\n // 如果本节点没有字典则创建节点数组\r\n if (this.validatenull(this.crud.cascaderDIC[rowIndex])) {\r\n this.crud.cascaderDIC[rowIndex] = {};\r\n }\r\n if (this.crud.cascaderIndexList.includes(rowIndex)) {\r\n //清空子类字典\r\n cascader.forEach((ele) => {\r\n this.crud.cascaderDIC[rowIndex][ele] = [];\r\n cascader.forEach((ele) => {\r\n row[ele] = blankVal(row[ele]);\r\n });\r\n });\r\n }\r\n //最后一级\r\n if (\r\n this.validatenull(cascader) ||\r\n this.validatenull(value) ||\r\n this.validatenull(columnNext)\r\n ) {\r\n return;\r\n }\r\n sendDic(\r\n {\r\n column: columnNext,\r\n value: value,\r\n form: row,\r\n },\r\n this\r\n ).then((res) => {\r\n const dic = res || [];\r\n //首次加载的放入队列记录\r\n if (!this.crud.cascaderIndexList.includes(rowIndex)) {\r\n this.crud.cascaderIndexList.push(rowIndex);\r\n }\r\n if (!this.crud.cascaderDicList[rowIndex]) {\r\n this.crud.cascaderDicList[rowIndex] = {};\r\n }\r\n if (!this.crud.cascaderDicList[rowIndex][columnNextProp]) {\r\n this.crud.cascaderDicList[rowIndex][columnNextProp] = dic;\r\n }\r\n // 修改字典\r\n this.crud.cascaderDIC[rowIndex][columnNextProp] = dic;\r\n\r\n if (\r\n !this.validatenull(dic[columnNext.cascaderIndex]) &&\r\n !this.validatenull(dic) &&\r\n !this.validatenull(columnNext.cascaderIndex)\r\n ) {\r\n row[columnNextProp] =\r\n dic[columnNext.cascaderIndex][\r\n (columnNext.props || {}).value || DIC_PROPS.value\r\n ];\r\n }\r\n });\r\n });\r\n });\r\n },\r\n handleDetail(row, column) {\r\n let result;\r\n let DIC = column.parentProp\r\n ? (this.crud.cascaderDIC[row.$index] || {})[column.prop]\r\n : this.crud.DIC[column.prop];\r\n result = detail(row, column, this.crud.tableOption, DIC);\r\n if (!this.validatenull(DIC) && this.crud.tableOption.filterDic != true) {\r\n row[\"$\" + column.prop] = result;\r\n }\r\n return result;\r\n },\r\n corArray(row, column) {\r\n let list = this.handleDetail(row, column);\r\n if (!Array.isArray(list)) {\r\n list = this.validatenull(list) ? [] : list.split(DIC_SHOW_SPLIT);\r\n }\r\n return this.deepClone(list);\r\n },\r\n openImg(row, column, index) {\r\n let list = this.getImgList(row, column);\r\n list = list.map((ele) => {\r\n return { thumbUrl: ele, url: ele, type: column.fileType };\r\n });\r\n this.$ImagePreview(list, index);\r\n },\r\n getImgList(row, column) {\r\n let url = column.propsHttp?.home || \"\";\r\n let value = column.props?.value || DIC_PROPS.value;\r\n let list = this.corArray(row, column);\r\n list.forEach((ele, index) => {\r\n list[index] = url + (ele[value] ? ele[value] : ele);\r\n });\r\n return list;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style></style>\r\n","<template>\r\n <slot name=\"header\"></slot>\r\n <!-- 动态列 -->\r\n <template v-for=\"column in list\" :key=\"column.prop\">\r\n <column-dynamic\r\n v-if=\"column.children && column.children.length > 0\"\r\n :columnOption=\"column\"\r\n >\r\n <template v-for=\"item in crud.mainSlot\" #[item]=\"scope\">\r\n <slot v-bind=\"scope\" :name=\"item\"></slot>\r\n </template>\r\n </column-dynamic>\r\n <column-slot\r\n v-else\r\n :key=\"column.prop\"\r\n :column=\"column\"\r\n :column-option=\"columnOption\"\r\n >\r\n <template v-for=\"item in crud.mainSlot\" #[item]=\"scope\">\r\n <slot v-bind=\"scope\" :name=\"item\"></slot>\r\n </template>\r\n </column-slot>\r\n </template>\r\n <slot name=\"footer\"></slot>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport columnDynamic from \"./column-dynamic\";\r\nimport columnSlot from \"./column-slot\";\r\nimport { arraySort } from \"utils/util\";\r\nimport { DIC_PROPS } from \"global/variable\";\r\nexport default create({\r\n name: \"crud\",\r\n data() {\r\n return {};\r\n },\r\n components: {\r\n columnSlot,\r\n columnDynamic,\r\n },\r\n inject: [\"crud\"],\r\n provide() {\r\n return {\r\n crud: this.crud,\r\n dynamic: this,\r\n };\r\n },\r\n props: {\r\n columnOption: Array,\r\n },\r\n computed: {\r\n list() {\r\n let result = [...this.columnOption];\r\n result = arraySort(\r\n result,\r\n \"index\",\r\n (a, b) =>\r\n this.crud.objectOption[a.prop]?.index -\r\n this.crud.objectOption[b.prop]?.index\r\n );\r\n return result;\r\n },\r\n },\r\n methods: {\r\n //表格筛选逻辑\r\n handleFilterMethod(params) {\r\n const { value, row, column } = params;\r\n if (typeof column.filterMethod === \"function\") {\r\n return column.filterMethod(value, row, column);\r\n } else {\r\n return row[column.prop] == value;\r\n }\r\n },\r\n //表格筛选字典\r\n handleFilters(column) {\r\n if (Array.isArray(column.filters))\r\n return column.filters.map((ele) => ({\r\n text: ele.label,\r\n value: ele.value,\r\n }));\r\n if (column.filters !== true) return undefined;\r\n let DIC = this.crud.DIC[column.prop] || [];\r\n let list = [];\r\n if (!this.validatenull(DIC)) {\r\n DIC.forEach((ele) => {\r\n const props = column.props || this.crud.tableOption.props || {};\r\n list.push({\r\n text: ele[props.label || DIC_PROPS.label],\r\n value: ele[props.value || DIC_PROPS.value],\r\n });\r\n });\r\n } else {\r\n this.crud.cellForm.list.forEach((ele) => {\r\n if (!list.map((item) => item.text).includes(ele[column.prop])) {\r\n list.push({\r\n text: ele[column.prop],\r\n value: ele[column.prop],\r\n });\r\n }\r\n });\r\n }\r\n return list;\r\n },\r\n getColumnProp(column, type, params) {\r\n let obj = column || {};\r\n if (type === \"filterMethod\") return this.handleFilterMethod(params);\r\n if (this.crud.isMobile && [\"fixed\"].includes(type)) return false;\r\n let result = obj?.[type];\r\n if (type == \"width\" && result == 0) {\r\n return undefined;\r\n }\r\n if (type == \"filters\") return this.handleFilters(column);\r\n if (type == \"hide\") return obj?.hide !== true;\r\n else return result;\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <el-drawer v-if=\"columnBox\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n lock-scroll\r\n :class=\"['avue-dialog',b('column')].join(' ')\"\r\n :title=\"t('crud.showTitle')\"\r\n :size=\"crud.isMobile?'100%':'40%'\"\r\n v-model=\"columnBox\">\r\n <el-table :data=\"data\"\r\n ref=\"table\"\r\n height=\"100%\"\r\n :size=\"crud.size\"\r\n border>\r\n <el-table-column align=\"center\"\r\n width=\"100\"\r\n header-align=\"center\"\r\n prop=\"label\"\r\n key=\"label\"\r\n :label=\"t('crud.column.name')\">\r\n </el-table-column>\r\n <template v-for=\"(item,index) in defaultColumn\"\r\n :key=\"item.prop\">\r\n <el-table-column :label=\"item.label\"\r\n v-if=\"item.hide!==true\"\r\n :prop=\"item.prop\"\r\n align=\"center\"\r\n header-align=\"center\">\r\n <template #=\"{row}\">\r\n <el-checkbox @change=\"handleChange(item.prop)\"\r\n v-model=\"crud.objectOption[row.prop][item.prop]\"></el-checkbox>\r\n </template>\r\n </el-table-column>\r\n </template>\r\n\r\n </el-table>\r\n\r\n </el-drawer>\r\n</template>\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport packages from \"core/packages\";\r\nimport config from \"../config\";\nexport default create({\r\n name: 'crud',\r\n mixins: [locale],\r\n inject: [\"crud\"],\r\n data () {\r\n return {\r\n data: [],\r\n columnBox: false\r\n };\r\n },\r\n computed: {\r\n defaultColumn () {\r\n return [{\r\n label: this.t('crud.column.hide'),\r\n prop: 'hide'\r\n }, {\r\n label: this.t('crud.column.fixed'),\r\n prop: 'fixed'\r\n }, {\r\n label: this.t('crud.column.filters'),\r\n prop: 'filters'\r\n }, {\r\n label: this.t('crud.column.sortable'),\r\n prop: 'sortable'\r\n }, {\r\n label: this.t('crud.column.width'),\r\n prop: 'width',\r\n hide: true\r\n }]\r\n }\r\n },\r\n methods: {\r\n handleShow () {\r\n this.data = []\r\n this.crud.propOption.forEach(column => {\r\n if (column.showColumn != false) this.data.push(column)\r\n })\r\n this.columnBox = true\r\n this.$nextTick(() => this.rowDrop())\r\n },\r\n handleChange (prop) {\r\n if (prop === 'hide') {\r\n this.crud.gridShow ? this.crud.refreshTable() : this.crud.doLayout()\r\n } else if (prop === 'filters') {\r\n this.crud.refreshTable()\r\n }\r\n },\r\n rowDrop () {\r\n const el = this.$refs.table.$el.querySelectorAll(config.dropRowClass)[0]\r\n this.crud.tableDrop('column', el, evt => {\r\n const oldIndex = evt.oldIndex;\r\n const newIndex = evt.newIndex;\r\n this.crud.headerSort(oldIndex, newIndex)\r\n })\r\n },\r\n }\r\n});\r\n</script>\r\n\r\n","<template>\r\n <div v-if=\"box\"> \r\n <el-dialog :title=\"t('crud.excelBtn')\"\r\n lock-scroll\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n class=\"avue-dialog\"\r\n v-model=\"box\"\r\n :width=\"crud.isMobile?'100%':'30%'\">\r\n <avue-form ref=\"form\"\r\n v-model=\"form\"\r\n :option=\"option\">\r\n </avue-form>\r\n <span class=\"avue-dialog__footer\">\r\n <el-button type=\"primary\"\r\n :size=\"crud.size\"\r\n @click=\"handleSubmit\">{{t('crud.filter.submitBtn')}}</el-button>\r\n <el-button @click=\"box = false\"\r\n :size=\"crud.size\">{{t('crud.filter.cancelBtn')}}</el-button>\r\n </span>\r\n\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport locale from \"core/locale\";\r\nimport { detail } from \"core/detail\";\r\nimport { uuid } from 'utils/util'\r\nexport default {\r\n name: 'crud',\r\n mixins: [locale],\r\n inject: ['crud'],\r\n data () {\r\n return {\r\n option: {},\r\n columnOption: {},\r\n box: false,\r\n form: {\r\n name: this.crud.tableOption.title\r\n }\r\n }\r\n },\r\n methods: {\r\n handleShow () {\r\n this.getColumnOption()\r\n this.getOption()\r\n this.box = true\r\n },\r\n handleSubmit () {\r\n this.$Export.excel({\r\n title: this.form.name,\r\n columns: this.getColumn(),\r\n data: this.handleSum()\r\n });\r\n this.box = false;\r\n },\r\n //计算统计\r\n handleSum () {\r\n const option = this.crud.tableOption;\r\n const columnOption = this.crud.propOption;\r\n let list = this.form.type ? this.crud.list : this.crud.tableSelect;\r\n let data = []\r\n if (this.form.params.includes('data')) {\r\n list.forEach(ele => {\r\n let row = this.deepClone(ele);\r\n columnOption.forEach(column => {\r\n let DIC = column.parentProp ? (this.crud.cascaderDIC[row.$index] || {})[column.prop] : this.crud.DIC[column.prop]\r\n row[column.prop] = detail(row, column, option, DIC);\r\n })\r\n data.push(row);\r\n })\r\n }\r\n if (this.form.params.includes('sum') && option.showSummary) {\r\n data.push(this.crud.sumsList);\r\n }\r\n return data;\r\n },\r\n getOption () {\r\n this.option = {\r\n submitBtn: false,\r\n emptyBtn: false,\r\n column: [\r\n {\r\n label: this.t('crud.excel.name'),\r\n prop: 'name',\r\n span: 24,\r\n }, {\r\n label: this.t('crud.excel.type'),\r\n prop: \"type\",\r\n span: 24,\r\n type: 'select',\r\n dicData: [{\r\n label: this.t('crud.excel.typeDic.true'),\r\n value: true\r\n }, {\r\n label: this.t('crud.excel.typeDic.false'),\r\n disabled: this.crud.tableOption.selection != true,\r\n value: false\r\n }]\r\n }, {\r\n label: this.t('crud.excel.prop'),\r\n prop: \"prop\",\r\n type: 'tree',\r\n multiple: true,\r\n checkStrictly: true,\r\n span: 24,\r\n props: {\r\n value: 'prop'\r\n },\r\n dicData: this.columnOption\r\n }, {\r\n label: this.t('crud.excel.params'),\r\n prop: 'params',\r\n type: 'checkbox',\r\n span: 24,\r\n value: ['header', 'data'].concat((() => {\r\n let result = []\r\n if (this.crud.isHeader) result.push('headers')\r\n if (this.crud.isShowSummary) result.push('sum')\r\n return result\r\n })()),\r\n dicData: [{\r\n label: this.t('crud.excel.paramsDic.header'),\r\n disabled: true,\r\n value: 'header'\r\n }, {\r\n label: this.t('crud.excel.paramsDic.data'),\r\n value: 'data'\r\n }].concat((() => {\r\n let result = []\r\n result.push({\r\n label: this.t('crud.excel.paramsDic.headers'),\r\n value: 'headers',\r\n disabled: !this.crud.isHeader\r\n })\r\n result.push({\r\n label: this.t('crud.excel.paramsDic.sum'),\r\n value: 'sum',\r\n disabled: !this.crud.isShowSummary\r\n })\r\n return result\r\n })())\r\n }\r\n ]\r\n }\r\n this.form.type = this.crud.selectLen == 0\r\n },\r\n getColumnOption () {\r\n let column = this.deepClone(this.crud.columnOption)\r\n let prop = []\r\n const findProp = (list = []) => {\r\n let count = [];\r\n list.forEach((ele, index) => {\r\n let children = ele.children\r\n if (children && !Array.isArray(children)) delete ele.children\r\n else if (ele.showColumn === false) count.push(index)\r\n else {\r\n ele.prop = ele.prop || uuid()\r\n prop.push(ele.prop)\r\n if (ele.children) findProp(children)\r\n }\r\n })\r\n for (let i = count.length - 1; i >= 0; i--) {\r\n list.splice(count[i], 1)\r\n }\r\n }\r\n findProp(column)\r\n this.columnOption = column;\r\n this.form.prop = prop\r\n },\r\n getColumn () {\r\n let columns = this.deepClone(this.columnOption);\r\n let props = this.$refs.form.getPropRef('prop').$refs.temp.getHalfList()\r\n if (!this.form.params) return []\r\n if (this.form.params.includes('headers')) {\r\n const findProp = (list = []) => {\r\n list.forEach((ele, index) => {\r\n if (!props.includes(ele.prop)) {\r\n list.splice(index, 1);\r\n } else if (ele.children) {\r\n findProp(ele.children)\r\n }\r\n })\r\n }\r\n findProp(columns);\r\n return columns\r\n } else {\r\n let result = [];\r\n const findProp = (list = []) => {\r\n list.forEach((ele, index) => {\r\n if (ele.children) {\r\n findProp(ele.children)\r\n } else if (props.includes(ele.prop)) {\r\n result.push(ele)\r\n }\r\n })\r\n }\r\n findProp(columns);\r\n return result\r\n }\r\n }\r\n }\r\n}\r\n</script>\r\n","<template>\r\n <el-drawer v-if=\"box\"\r\n lock-scroll\r\n :class=\"['avue-dialog',b('filter')].join(' ')\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n :title=\"t('crud.filterTitle')\"\r\n :size=\"crud.isMobile?'100%':'60%'\"\r\n v-model=\"box\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"24\"\r\n :class=\"b('filter-menu')\">\r\n <el-button-group>\r\n <el-button type=\"primary\"\r\n :size=\"crud.size\"\r\n @click=\"handleAdd\">{{t('crud.filter.addBtn')}}</el-button>\r\n <el-button type=\"primary\"\r\n :size=\"crud.size\"\r\n @click=\"handleClear\">{{t('crud.filter.resetBtn')}}</el-button>\r\n <el-button type=\"primary\"\r\n :size=\"crud.size\"\r\n @click=\"handleValueClear\">{{t('crud.filter.clearBtn')}}</el-button>\r\n </el-button-group>\r\n </el-col>\r\n <el-col :md=\"12\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(column,index) in list\"\r\n :key=\"index\"\r\n :class=\"b('filter-item')\">\r\n <avue-select v-model=\"column.text\"\r\n :dic=\"columnOption\"\r\n :clearable=\"false\"\r\n @change=\"handleChange(index)\"\r\n :size=\"crud.size\"\r\n :class=\"b('filter-label')\"></avue-select>\r\n <avue-select :class=\"b('filter-symbol')\"\r\n v-model=\"column.symbol\"\r\n :dic=\"symbolDic\"\r\n :clearable=\"false\"\r\n :size=\"crud.size\"></avue-select>\r\n <avue-input :size=\"crud.size\"\r\n :class=\"b('filter-value')\"\r\n v-model=\"column.value\">\r\n </avue-input>\r\n <el-button type=\"danger\"\r\n :class=\"b('filter-icon')\"\r\n :size=\"crud.size\"\r\n @click=\"handleDelete(index)\"\r\n circle\r\n icon=\"el-icon-minus\"></el-button>\r\n </el-col>\r\n </el-row>\r\n <span class=\"avue-dialog__footer\">\r\n <el-button type=\"primary\"\r\n :size=\"crud.size\"\r\n @click=\"handleSubmit\">{{t('crud.filter.submitBtn')}}</el-button>\r\n <el-button @click=\"box = false\"\r\n :size=\"crud.size\">{{t('crud.filter.cancelBtn')}}</el-button>\r\n </span>\r\n </el-drawer>\r\n</template>\r\n\r\n<script>\r\nimport locale from \"core/locale\";\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"crud\",\r\n mixins: [locale],\r\n inject: [\"crud\"],\r\n data () {\r\n return {\r\n box: false,\r\n columnObj: {},\r\n symbolDic: [\r\n {\r\n label: \"=\",\r\n value: \"=\"\r\n },\r\n {\r\n label: \"≠\",\r\n value: \"≠\"\r\n },\r\n {\r\n label: \"like\",\r\n value: \"like\"\r\n },\r\n {\r\n label: \">\",\r\n value: \">\"\r\n },\r\n {\r\n label: \"≥\",\r\n value: \"≥\"\r\n },\r\n {\r\n label: \"<\",\r\n value: \"<\"\r\n },\r\n {\r\n label: \"≤\",\r\n value: \"≤\"\r\n },\r\n {\r\n label: \"∈\",\r\n value: \"∈\"\r\n }\r\n ],\r\n list: [],\r\n columnOption: {}\r\n }\r\n },\r\n methods: {\r\n handleShow () {\r\n this.getColumnOption()\r\n this.box = true\r\n },\r\n getColumnOption () {\r\n let result = []\r\n let column = this.deepClone(this.crud.propOption)\r\n column.forEach(ele => {\r\n if (ele.showColumn !== false) result.push(Object.assign(ele, {\r\n value: ele.prop\r\n }))\r\n });\r\n this.columnOption = result\r\n this.columnObj = this.columnOption[0];\r\n },\r\n handleDelete (index) {\r\n this.list.splice(index, 1);\r\n },\r\n handleClear () {\r\n this.list = [];\r\n },\r\n handleValueClear () {\r\n this.list.forEach((ele, index) => ele.value = '');\r\n },\r\n handleSubmit () {\r\n let result = [];\r\n this.list.forEach(ele => {\r\n result.push([ele.text, ele.symbol, ele.value]);\r\n });\r\n this.crud.$emit(\"filter\", result);\r\n this.box = false;\r\n },\r\n handleChange (index) {\r\n this.list[index].value = ''\r\n },\r\n handleAdd () {\r\n const prop = this.columnObj.prop;\r\n this.list.push({\r\n text: prop,\r\n value: '',\r\n symbol: this.symbolDic[0].value\r\n });\r\n }\r\n }\r\n});\r\n</script>\r\n\r\n","<template>\r\n <component\r\n v-if=\"boxVisible\"\r\n :is=\"dialogType\"\r\n :draggable=\"validData(crud.tableOption.dialogDrag, config.dialogDrag)\"\r\n :class=\"[\r\n 'avue-dialog',\r\n b('dialog'),\r\n this.crud.tableOption.dialogCustomClass,\r\n ]\"\r\n :append-to-body=\"validData(crud.tableOption.dialogAppendToBody, true)\"\r\n :top=\"dialogTop\"\r\n :title=\"dialogTitle\"\r\n :close-on-press-escape=\"crud.tableOption.dialogEscape\"\r\n :close-on-click-modal=\"validData(crud.tableOption.dialogClickModal, false)\"\r\n :modal=\"crud.tableOption.dialogModal\"\r\n :modal-penetrable=\"crud.tableOption.modalPenetrable\"\r\n :show-close=\"crud.tableOption.dialogCloseBtn\"\r\n :header-class=\"crud.tableOption.headerClass\"\r\n :body-class=\"crud.tableOption.bodyClass\"\r\n :footer-class=\"crud.tableOption.footerClass\"\r\n v-model=\"boxVisible\"\r\n v-bind=\"params\"\r\n :before-close=\"hide\"\r\n >\r\n <template #header>\r\n <div :class=\"b('dialog__header')\">\r\n <span class=\"el-dialog__title\">{{ dialogTitle }}</span>\r\n <div :class=\"b('dialog__menu')\">\r\n <el-icon class=\"el-dialog__close\" @click=\"handleFullScreen\">\r\n <component\r\n :is=\"fullscreen ? 'el-icon-copy-document' : 'el-icon-full-screen'\"\r\n />\r\n </el-icon>\r\n </div>\r\n </div>\r\n </template>\r\n <avue-form\r\n v-model=\"crud.tableForm\"\r\n v-model:status=\"disabled\"\r\n ref=\"tableForm\"\r\n @change=\"handleChange\"\r\n @submit=\"handleSubmit\"\r\n @reset-change=\"hide\"\r\n @tab-click=\"handleTabClick\"\r\n @error=\"handleError\"\r\n v-bind=\"$uploadFun(null, crud)\"\r\n v-loading=\"loading\"\r\n :element-loading-text=\"crud.tableOption.loadingText\"\r\n :element-loading-spinner=\"crud.tableOption.loadingSpinner\"\r\n :element-loading-svg=\"crud.tableOption.loadingSvg\"\r\n :element-loading-background=\"crud.tableOption.loadingBackground\"\r\n :option=\"option\"\r\n >\r\n <!-- 循环form表单卡槽 -->\r\n <template v-for=\"item in crud.formSlot\" #[getSlotName(item)]=\"scope\">\r\n <slot\r\n :name=\"item\"\r\n v-bind=\"Object.assign(scope, { type: boxType })\"\r\n ></slot>\r\n </template>\r\n </avue-form>\r\n <span\r\n class=\"avue-dialog__footer\"\r\n :class=\"'avue-dialog__footer--' + dialogMenuPosition\"\r\n >\r\n <slot name=\"menu-form-before\" v-bind=\"menuParams()\"></slot>\r\n <el-button\r\n type=\"primary\"\r\n @click=\"($refs.tableForm || {}).handleMock\"\r\n :loading=\"disabled || loading\"\r\n :size=\"crud.size\"\r\n :icon=\"option.mockIcon\"\r\n v-if=\"validData(option.mockBtn, false) && !isView\"\r\n >\r\n {{ option.mockText }}\r\n </el-button>\r\n <el-button\r\n v-if=\"validData(option.submitBtn, true) && !isView\"\r\n @click=\"submit\"\r\n :loading=\"disabled || loading\"\r\n :size=\"crud.size\"\r\n :icon=\"option.submitIcon\"\r\n type=\"primary\"\r\n >{{ option.submitText }}</el-button\r\n >\r\n <el-button\r\n v-if=\"validData(option.emptyBtn, true) && !isView\"\r\n @click=\"reset\"\r\n :disabled=\"disabled || loading\"\r\n :size=\"crud.size\"\r\n :icon=\"option.emptyIcon\"\r\n >{{ option.emptyText }}</el-button\r\n >\r\n <slot name=\"menu-form\" v-bind=\"menuParams()\"></slot>\r\n </span>\r\n </component>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport config from \"../config\";\r\nimport { filterParams } from \"utils/util\";\r\nexport default create({\r\n name: \"crud\",\r\n mixins: [locale],\r\n emits: [\"update:modelValue\", \"change\"],\r\n inject: [\"crud\"],\r\n data() {\r\n return {\r\n loading: false,\r\n disabled: false,\r\n config: config,\r\n boxType: \"\",\r\n fullscreen: false,\r\n boxVisible: false,\r\n };\r\n },\r\n props: {\r\n modelValue: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n },\r\n computed: {\r\n isView() {\r\n return this.boxType === \"view\";\r\n },\r\n isAdd() {\r\n return this.boxType === \"add\";\r\n },\r\n isEdit() {\r\n return this.boxType === \"edit\";\r\n },\r\n width() {\r\n let dialogWidth = this.crud.tableOption.dialogWidth + \"\";\r\n let defaultWidth = this.crud.isMobile ? \"100%\" : config.dialogWidth;\r\n let result = this.validData(dialogWidth, defaultWidth);\r\n return this.setPx(result);\r\n },\r\n dialogType() {\r\n return this.isDrawer ? \"elDrawer\" : \"elDialog\";\r\n },\r\n dialogTop() {\r\n return !this.isDrawer && !this.fullscreen\r\n ? this.crud.tableOption.dialogTop\r\n : \"0\";\r\n },\r\n isDrawer() {\r\n return this.crud.tableOption.dialogType === \"drawer\";\r\n },\r\n params() {\r\n let result = this.isDrawer\r\n ? {\r\n size: this.fullscreen ? \"100%\" : this.width,\r\n direction: this.crud.tableOption.dialogDirection,\r\n }\r\n : {\r\n width: this.width,\r\n fullscreen: this.fullscreen,\r\n };\r\n return Object.assign(result, this.$uploadFun({}, this.crud));\r\n },\r\n option() {\r\n let option = this.deepClone(this.crud.tableOption);\r\n option.boxType = this.boxType;\r\n option.column = this.deepClone(this.crud.propOption);\r\n option.column.forEach((ele) => {\r\n delete ele.render;\r\n if (ele.renderForm) ele.render = ele.renderForm;\r\n });\r\n option.menuBtn = false;\r\n if (this.isAdd) {\r\n option.submitBtn = option.saveBtn;\r\n option.submitText = this.crud.menuIcon(\"saveBtn\");\r\n option.submitIcon = this.crud.getBtnIcon(\"saveBtn\");\r\n } else if (this.isEdit) {\r\n option.submitBtn = option.updateBtn;\r\n option.submitText = this.crud.menuIcon(\"updateBtn\");\r\n option.submitIcon = this.crud.getBtnIcon(\"updateBtn\");\r\n } else if (this.isView) {\r\n option.detail = true;\r\n }\r\n option.mockIcon = this.crud.getBtnIcon(\"mockBtn\");\r\n option.mockText = this.crud.menuIcon(\"mockBtn\");\r\n\r\n option.emptyBtn = option.cancelBtn;\r\n option.emptyIcon = this.crud.getBtnIcon(\"cancelBtn\");\r\n option.emptyText = this.crud.menuIcon(\"cancelBtn\");\r\n //不分组的表单不加载字典\r\n if (!this.crud.isGroup) {\r\n option.dicFlag = false;\r\n option.dicData = this.crud.DIC;\r\n }\r\n if (!this.validatenull(option.dicFlag)) {\r\n option.column.forEach((ele) => {\r\n ele.boxType = this.boxType;\r\n ele.dicFlag = ele.dicFlag || option.dicFlag;\r\n });\r\n }\r\n return option;\r\n },\r\n dialogTitle() {\r\n const key = `${this.boxType}`;\r\n if (!this.validatenull(this.boxType)) {\r\n return (\r\n this.crud.tableOption[key + \"Title\"] || this.t(`crud.${key}Title`)\r\n );\r\n }\r\n },\r\n dialogMenuPosition() {\r\n return this.crud.tableOption.dialogMenuPosition || \"right\";\r\n },\r\n },\r\n methods: {\r\n menuParams() {\r\n return {\r\n disabled: this.disabled,\r\n size: this.crud.size,\r\n type: this.boxType,\r\n };\r\n },\r\n submit() {\r\n this.$refs.tableForm.submit();\r\n },\r\n reset() {\r\n this.$refs.tableForm.resetForm(false);\r\n },\r\n getSlotName(item) {\r\n return item.replace(\"-form\", \"\");\r\n },\r\n handleChange() {\r\n this.crud.setVal();\r\n },\r\n handleTabClick(tab, event) {\r\n this.crud.$emit(\"tab-click\", tab, event);\r\n },\r\n handleFullScreen() {\r\n if (this.fullscreen) {\r\n this.fullscreen = false;\r\n } else {\r\n this.fullscreen = true;\r\n }\r\n },\r\n handleError(error) {\r\n this.crud.$emit(\"error\", error);\r\n },\r\n handleSubmit(form, hide) {\r\n if (this.isAdd) {\r\n this.rowSave(hide);\r\n } else if (this.isEdit) {\r\n this.rowUpdate(hide);\r\n }\r\n },\r\n initFun() {\r\n [\"clearValidate\", \"validate\", \"resetForm\", \"validateField\"].forEach(\r\n (ele) => {\r\n this.crud[ele] = this.$refs.tableForm[ele];\r\n }\r\n );\r\n },\r\n // 保存\r\n rowSave(hide) {\r\n this.crud.$emit(\r\n \"row-save\",\r\n filterParams(this.crud.tableForm, [\"$\"]),\r\n this.closeDialog,\r\n hide\r\n );\r\n },\r\n // 更新\r\n rowUpdate(hide) {\r\n this.crud.$emit(\r\n \"row-update\",\r\n filterParams(this.crud.tableForm, [\"$\"]),\r\n this.crud.tableIndex,\r\n this.closeDialog,\r\n hide\r\n );\r\n },\r\n closeDialog(row, index) {\r\n row = this.deepClone(row);\r\n const callback = () => {\r\n if (this.isEdit) {\r\n let { parentList, index } = this.crud.findData(row[this.crud.rowKey]);\r\n if (parentList) {\r\n const oldRow = parentList.splice(index, 1)[0];\r\n row[this.crud.childrenKey] = oldRow[this.crud.childrenKey];\r\n parentList.splice(index, 0, row);\r\n }\r\n } else if (this.isAdd) {\r\n let { item } = this.crud.findData(row[this.crud.rowParentKey]);\r\n if (item) {\r\n if (!item[this.crud.childrenKey]) {\r\n item[this.crud.childrenKey] = [];\r\n }\r\n if (this.crud.tableOption.lazy) {\r\n item[this.crud.hasChildrenKey] = true;\r\n }\r\n item[this.crud.childrenKey].push(row);\r\n } else {\r\n this.crud.list.push(row);\r\n }\r\n }\r\n };\r\n if (row) callback();\r\n this.hide();\r\n },\r\n // 隐藏表单\r\n hide(done) {\r\n const callback = () => {\r\n done && done();\r\n this.crud.tableIndex = -1;\r\n this.crud.tableForm = {};\r\n this.crud.setVal();\r\n this.boxVisible = false;\r\n };\r\n if (typeof this.crud.beforeClose === \"function\") {\r\n this.crud.beforeClose(callback, this.boxType);\r\n } else {\r\n callback();\r\n }\r\n },\r\n // 显示表单\r\n show(type) {\r\n this.boxType = type;\r\n const callback = (fn) => {\r\n this.fullscreen = this.crud.tableOption.dialogFullscreen;\r\n this.boxVisible = true;\r\n this.loading = false;\r\n this.$nextTick(() => {\r\n this.initFun();\r\n fn && fn();\r\n });\r\n };\r\n const loading = () => {\r\n callback(() => {\r\n this.loading = true;\r\n });\r\n };\r\n if (typeof this.crud.beforeOpen === \"function\") {\r\n this.crud.beforeOpen(callback, this.boxType, loading);\r\n } else {\r\n callback();\r\n }\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\" :style=\"styleName\">\r\n <div :class=\"b('hide')\">\r\n <slot></slot>\r\n </div>\r\n <el-checkbox-group\r\n v-if=\"data.length !== 0\"\r\n v-model=\"checkList\"\r\n @change=\"checkListChange\"\r\n >\r\n <el-row>\r\n <el-col\r\n v-for=\"(row, index) in data\"\r\n @click.stop=\"handleRowClick(row, index)\"\r\n @dblclick.stop=\"handleRowDblClick(row, index)\"\r\n :span=\"crud.tableOption.gridSpan || span\"\r\n :md=\"crud.tableOption.gridSpan || span\"\r\n :sm=\"crud.tableOption.gridSpan || span\"\r\n :xs=\"crud.tableOption.gridXsSpan || xsSpan\"\r\n :class=\"getRowClass(row, index)\"\r\n :key=\"index\"\r\n >\r\n <div\r\n :class=\"b('content')\"\r\n :style=\"[getGradientColor(row, index), getRowStyle(row, index)]\"\r\n >\r\n <div\r\n v-for=\"(item, columnIndex) in column\"\r\n :class=\"[\r\n b('item'),\r\n item.type || item.prop,\r\n getClass(row, index, item),\r\n ]\"\r\n :style=\"getCellStyle(row, index, item, columnIndex)\"\r\n @click.stop=\"handleCellClick(row, item)\"\r\n @dblclick.stop=\"handleCellDblClick(row, item)\"\r\n :key=\"columnIndex\"\r\n >\r\n <span v-if=\"item.type == 'selection'\">\r\n <el-checkbox\r\n :value=\"index\"\r\n :label=\"index\"\r\n :disabled=\"isDisabled(row, index)\"\r\n @click.stop\r\n > </el-checkbox\r\n >\r\n </span>\r\n <template v-else>\r\n <template\r\n v-for=\"(comp, compIndex) in item.header &&\r\n item.header({ row: row, $index: index, column: item })\"\r\n :key=\"compIndex\"\r\n >\r\n <component\r\n :class=\"[b('label'), item.labelClassName]\"\r\n :is=\"comp\"\r\n ></component>\r\n </template>\r\n <template\r\n v-for=\"(comp, compIndex) in item.default &&\r\n item.default({ row: row, $index: index, column: item })\"\r\n :key=\"compIndex\"\r\n >\r\n <component\r\n placement=\"top\"\r\n :is=\"\r\n item.overHidden || item.showOverflowTooltip\r\n ? 'elTooltip'\r\n : 'div'\r\n \"\r\n :class=\"[b('value'), item.className]\"\r\n :content=\"row[item.prop]\"\r\n >\r\n <component :is=\"comp\"></component>\r\n </component>\r\n </template>\r\n </template>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </el-checkbox-group>\r\n <template v-else>\r\n <slot name=\"empty\" v-if=\"$slots.empty\"></slot>\r\n <el-empty\r\n v-else\r\n :image-size=\"100\"\r\n :description=\"crud.tableOption.emptyText || t('crud.emptyText')\"\r\n ></el-empty>\r\n </template>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nexport default create({\r\n name: \"crud__grid\",\r\n inject: [\"crud\"],\r\n mixins: [locale],\r\n provide() {\r\n return {\r\n dynamic: this,\r\n };\r\n },\r\n props: {\r\n rowStyle: Function,\r\n cellStyle: Function,\r\n cellClassName: Function,\r\n rowClassName: Function,\r\n height: [String, Number],\r\n data: Array,\r\n },\r\n data() {\r\n return {\r\n checkList: [],\r\n span: 8,\r\n xsSpan: 12,\r\n id: \"crud-grid\",\r\n column: [],\r\n };\r\n },\r\n computed: {\r\n styleName() {\r\n return {\r\n height: this.crud.tableHeight + \"px\",\r\n };\r\n },\r\n },\r\n methods: {\r\n doLayout() {},\r\n //表格筛选逻辑\r\n handleFilterMethod(params) {\r\n const { value, row, column } = params;\r\n if (typeof column.filterMethod === \"function\") {\r\n return column.filterMethod(value, row, column);\r\n } else {\r\n return row[column.prop] == value;\r\n }\r\n },\r\n //表格筛选字典\r\n handleFilters(column) {\r\n if (Array.isArray(column.filters))\r\n return column.filters.map((ele) => ({\r\n text: ele.label,\r\n value: ele.value,\r\n }));\r\n if (column.filters !== true) return undefined;\r\n let DIC = this.crud.DIC[column.prop] || [];\r\n let list = [];\r\n if (!this.validatenull(DIC)) {\r\n DIC.forEach((ele) => {\r\n const props = column.props || this.crud.tableOption.props || {};\r\n list.push({\r\n text: ele[props.label || DIC_PROPS.label],\r\n value: ele[props.value || DIC_PROPS.value],\r\n });\r\n });\r\n } else {\r\n this.crud.cellForm.list.forEach((ele) => {\r\n if (!list.map((item) => item.text).includes(ele[column.prop])) {\r\n list.push({\r\n text: ele[column.prop],\r\n value: ele[column.prop],\r\n });\r\n }\r\n });\r\n }\r\n return list;\r\n },\r\n getColumnProp(column, type, params) {\r\n let obj = column || {};\r\n if (type === \"filterMethod\") return this.handleFilterMethod(params);\r\n if (this.crud.isMobile && [\"fixed\"].includes(type)) return false;\r\n let result = obj?.[type];\r\n if (type == \"width\" && result == 0) {\r\n return undefined;\r\n }\r\n if (type == \"filters\") return this.handleFilters(column);\r\n if (type == \"hide\") return obj?.hide !== true;\r\n else return result;\r\n },\r\n isDisabled(row, index) {\r\n return typeof this.crud.tableOption.selectable === \"function\"\r\n ? !this.crud.tableOption.selectable(row, index)\r\n : false;\r\n },\r\n clearSelection() {\r\n this.checkList = [];\r\n this.checkListChange(this.checkList);\r\n },\r\n toggleAllSelection() {\r\n if (this.checkList.length === this.crud.data.length) {\r\n this.checkList = [];\r\n } else {\r\n this.checkList = this.crud.data.map((ele, index) => index);\r\n }\r\n this.checkListChange(this.checkList);\r\n },\r\n toggleRowSelection(data, selected) {\r\n let index = this.crud.data.findIndex(\r\n (ele) => JSON.stringify(ele) == JSON.stringify(data)\r\n );\r\n if (selected && index != -1) {\r\n this.checkList.push(index);\r\n } else {\r\n let checkIndex = this.checkList.findIndex((ele) => ele == index);\r\n this.checkList.splice(checkIndex, 1);\r\n }\r\n this.checkListChange(this.checkList);\r\n },\r\n checkListChange(val) {\r\n let result = [];\r\n const data = this.crud.data;\r\n val.forEach((ele) => {\r\n result.push(data[ele]);\r\n });\r\n this.$emit(\"selection-change\", result);\r\n },\r\n handleRowDblClick(row, index) {\r\n this.$emit(\"row-dblclick\", row, index);\r\n },\r\n handleRowClick(row, index) {\r\n this.$emit(\"row-click\", row, index);\r\n },\r\n handleCellDblClick(row, column) {\r\n this.$emit(\"cell-dblclick\", row, column);\r\n },\r\n handleCellClick(row, column) {\r\n this.$emit(\"cell-click\", row, column);\r\n },\r\n getGradientColor(row, index) {\r\n let styles = {};\r\n if (typeof this.crud.tableOption.gridBackground == \"function\") {\r\n styles.background = this.crud.tableOption.gridBackground(row, index);\r\n } else if (this.crud.tableOption.gridBackgroundImage) {\r\n styles.backgroundImage = `url(${this.crud.tableOption.gridBackgroundImage})`;\r\n } else {\r\n styles.background =\r\n this.crud.tableOption.gridBackground ||\r\n \"linear-gradient(to bottom, rgba(88, 159, 248, 0.1), white)\";\r\n }\r\n return styles;\r\n },\r\n getCellStyle(row, index, column, columnIndex) {\r\n if (this.cellStyle)\r\n return this.cellStyle({ row, rowIndex: index, column, columnIndex });\r\n },\r\n getRowStyle(row, index) {\r\n if (this.rowStyle) return this.rowStyle({ row, rowIndex: index });\r\n },\r\n getRowClass(row, index) {\r\n if (this.rowClassName) return this.rowClassName({ row, rowIndex: index });\r\n },\r\n getClass(row, index, column) {\r\n let list = [];\r\n let firstIndex = this.crud.columnOption.findIndex(\r\n (item) => item.hide !== true\r\n );\r\n const columnOption = this.crud.columnOption || [];\r\n if (this.cellClassName)\r\n list.push(this.cellClassName({ row, rowIndex: index, column }));\r\n if (column.prop == (columnOption[firstIndex || 0] || {}).prop)\r\n list.push(\"title\");\r\n if (column.row) list.push(\"row\");\r\n if (column.showOverflowTooltip) list.push(\"overHidden\");\r\n return list;\r\n },\r\n },\r\n});\r\n</script>\r\n","<template></template>\r\n\r\n<script>\r\nexport default {\r\n props: {\r\n className: String,\r\n labeClassName: String,\r\n showOverflowTooltip: Boolean,\r\n gridRow: Boolean,\r\n prop: String,\r\n type: String,\r\n label: String,\r\n },\r\n computed: {\r\n parent() {\r\n let parent = this.$parent;\r\n while (parent.$parent && !parent.id) {\r\n parent = parent.$parent;\r\n }\r\n return parent;\r\n },\r\n },\r\n mounted() {\r\n this.parent.column.push({\r\n className: this.className,\r\n labeClassName: this.labeClassName,\r\n showOverflowTooltip: this.showOverflowTooltip,\r\n row: this.gridRow,\r\n label: this.label,\r\n prop: this.prop,\r\n type: this.type,\r\n header: this.$slots.header,\r\n default: this.$slots.default,\r\n });\r\n },\r\n};\r\n</script>\r\n\r\n<style></style>\r\n","<template>\r\n <div :class=\"b({ card: !option.card })\">\r\n <component\r\n :is=\"tableOption.titleSize || 'h2'\"\r\n :style=\"tableOption.titleStyle\"\r\n v-if=\"tableOption.title\"\r\n >{{ tableOption.title }}</component\r\n >\r\n <!-- 搜索组件 -->\r\n <header-search ref=\"headerSearch\">\r\n <template #search=\"scope\">\r\n <slot name=\"search\" v-bind=\"scope\"></slot>\r\n </template>\r\n <template #search-menu=\"scope\">\r\n <slot name=\"search-menu\" v-bind=\"scope\"></slot>\r\n </template>\r\n <template v-for=\"item in searchSlot\" #[item]=\"scope\">\r\n <slot v-bind=\"scope\" :name=\"item\"></slot>\r\n </template>\r\n </header-search>\r\n <el-card :shadow=\"isCard\" :class=\"b('body')\">\r\n <slot name=\"header\"></slot>\r\n <!-- 表格功能列 -->\r\n <header-menu ref=\"headerMenu\" v-if=\"validData(tableOption.header, true)\">\r\n <template #menu-left=\"scope\">\r\n <slot name=\"menu-left\" v-bind=\"scope\"></slot>\r\n </template>\r\n <template #menu-right=\"scope\">\r\n <slot name=\"menu-right\" v-bind=\"scope\"></slot>\r\n </template>\r\n </header-menu>\r\n <div\r\n class=\"avue-crud__tip\"\r\n v-if=\"validData(tableOption.tip, config.tip) && tableOption.selection\"\r\n >\r\n <span class=\"avue-crud__tip-name\">\r\n {{ t(\"crud.tipStartTitle\") }}\r\n <span class=\"avue-crud__tip-count\">{{ selectLen }}</span>\r\n {{ t(\"crud.tipEndTitle\") }}\r\n </span>\r\n <span class=\"avue-crud__tip-button\" @click=\"clearSelection\">{{\r\n t(\"crud.emptyBtn\")\r\n }}</span>\r\n <slot name=\"tip\"></slot>\r\n </div>\r\n <slot name=\"body\"></slot>\r\n <el-form :model=\"cellForm\" @validate=\"handleValidate\" ref=\"cellForm\">\r\n <component\r\n :is=\"tableName\"\r\n :key=\"reload\"\r\n :data=\"cellForm.list\"\r\n :fixed=\"tableOption.fixed\"\r\n :columns=\"columnVirtualizeOption\"\r\n :row-key=\"rowKey\"\r\n :class=\"{\r\n 'avue-crud--indeterminate': validData(\r\n tableOption.indeterminate,\r\n false\r\n ),\r\n }\"\r\n :size=\"size\"\r\n :append-filter-panel-to=\"tableOption.appendFilterPanelTo\"\r\n :allow-drag-last-column=\"tableOption.allowDragLastColumn\"\r\n :lazy=\"validData(tableOption.lazy, false)\"\r\n :load=\"treeLoad\"\r\n :tree-props=\"treeProps\"\r\n :scrollbar-always-on=\"tableOption.scrollbarAlwaysOn\"\r\n :flexible=\"tableOption.flexible\"\r\n :table-layout=\"tableOption.tableLayout\"\r\n :expand-row-keys=\"tableOption.expandRowKeys\"\r\n :default-expand-all=\"tableOption.defaultExpandAll\"\r\n :highlight-current-row=\"tableOption.highlightCurrentRow\"\r\n :tooltip-effect=\"tableOption.tooltipEffect\"\r\n :tooltip-options=\"tableOption.tooltipOptions\"\r\n :show-overflow-tooltip=\"\r\n tableOption.showOverflowTooltip || tableOption.overHidden\r\n \"\r\n :tooltip-formatter=\"tableOption.tooltipFormatter\"\r\n @current-change=\"currentRowChange\"\r\n @expand-change=\"expandChange\"\r\n @header-dragend=\"headerDragend\"\r\n :show-summary=\"tableOption.showSummary\"\r\n :summary-method=\"tableSummaryMethod\"\r\n :span-method=\"tableSpanMethod\"\r\n :stripe=\"tableOption.stripe\"\r\n :show-header=\"tableOption.showHeader\"\r\n :default-sort=\"tableOption.defaultSort\"\r\n :expand-column-key=\"tableOption.expandColumnKey\"\r\n @scroll=\"scroll\"\r\n @row-click=\"rowClick\"\r\n @row-dblclick=\"rowDblclick\"\r\n @cell-mouse-enter=\"cellMouseEnter\"\r\n @cell-mouse-leave=\"cellMouseLeave\"\r\n @cell-click=\"cellClick\"\r\n @header-click=\"headerClick\"\r\n @row-contextmenu=\"rowContextmenu\"\r\n @header-contextmenu=\"headerContextmenu\"\r\n @cell-dblclick=\"cellDblclick\"\r\n :row-class-name=\"rowClassName\"\r\n :cell-class-name=\"cellClassName\"\r\n :row-style=\"rowStyle\"\r\n :cell-style=\"cellStyle\"\r\n :fit=\"tableOption.fit\"\r\n :header-cell-class-name=\"headerCellClassName\"\r\n :header-row-class-name=\"headerRowClassName\"\r\n :header-row-style=\"headerRowStyle\"\r\n :header-cell-style=\"headerCellStyle\"\r\n :max-height=\"isAutoHeight ? tableHeight : tableOption.maxHeight\"\r\n :height=\"height ? height : tableHeight\"\r\n ref=\"table\"\r\n :width=\"width ? width : setPx(tableOption.width, config.width)\"\r\n :border=\"tableOption.border\"\r\n v-loading.lock=\"tableLoading\"\r\n :element-loading-text=\"tableOption.loadingText\"\r\n :element-loading-spinner=\"tableOption.loadingSpinner\"\r\n :element-loading-svg=\"tableOption.loadingSvg\"\r\n :element-loading-background=\"tableOption.loadingBackground\"\r\n @filter-change=\"filterChange\"\r\n @selection-change=\"selectionChange\"\r\n @select=\"select\"\r\n @select-all=\"selectAll\"\r\n @sort-change=\"sortChange\"\r\n >\r\n <template #empty>\r\n <div :class=\"b('empty')\">\r\n <slot name=\"empty\" v-if=\"$slots.empty\"></slot>\r\n <el-empty\r\n :image-size=\"100\"\r\n v-else\r\n :description=\"tableOption.emptyText || t('crud.emptyText')\"\r\n ></el-empty>\r\n </div>\r\n </template>\r\n <column v-if=\"!virtualize\" :columnOption=\"columnOption\">\r\n <template #header>\r\n <column-default ref=\"columnDefault\">\r\n <template #expand=\"{ row, index }\">\r\n <slot :row=\"row\" :index=\"index\" name=\"expand\"></slot>\r\n </template>\r\n </column-default>\r\n </template>\r\n <template v-for=\"item in mainSlot\" #[item]=\"scope\">\r\n <slot v-bind=\"scope\" :name=\"item\"></slot>\r\n </template>\r\n <template #footer>\r\n <column-menu>\r\n <template #menu-header=\"scope\">\r\n <slot name=\"menu-header\" v-bind=\"scope\"></slot>\r\n </template>\r\n <template #menu=\"scope\">\r\n <slot name=\"menu\" v-bind=\"scope\"></slot>\r\n </template>\r\n <template #menu-btn=\"scope\">\r\n <slot name=\"menu-btn\" v-bind=\"scope\"></slot>\r\n </template>\r\n <template #menu-before=\"scope\">\r\n <slot name=\"menu-before\" v-bind=\"scope\"></slot>\r\n </template>\r\n <template #menu-btn-before=\"scope\">\r\n <slot name=\"menu-btn-before\" v-bind=\"scope\"></slot>\r\n </template>\r\n </column-menu>\r\n </template>\r\n </column>\r\n </component>\r\n </el-form>\r\n <slot name=\"footer\"></slot>\r\n </el-card>\r\n <!-- 分页 -->\r\n <table-page ref=\"tablePage\">\r\n <template #page>\r\n <slot name=\"page\"></slot>\r\n </template>\r\n </table-page>\r\n <!-- 表单 -->\r\n <dialog-form ref=\"dialogForm\">\r\n <template v-for=\"item in formSlot\" #[item]=\"scope\">\r\n <slot v-bind=\"scope\" :name=\"item\"></slot>\r\n </template>\r\n <template #menu-form=\"scope\">\r\n <slot name=\"menu-form\" v-bind=\"scope\"></slot>\r\n </template>\r\n <template #menu-form-before=\"scope\">\r\n <slot name=\"menu-form-before\" v-bind=\"scope\"></slot>\r\n </template>\r\n </dialog-form>\r\n <dialog-excel ref=\"dialogExcel\"></dialog-excel>\r\n <dialog-column ref=\"dialogColumn\"></dialog-column>\r\n <dialog-filter ref=\"dialogFilter\"></dialog-filter>\r\n </div>\r\n</template>\r\n<script>\r\nimport create from \"core/create\";\r\nimport packages from \"core/packages\";\r\nimport locale from \"core/locale\";\r\nimport permission from \"common/directive/permission\";\r\nimport init from \"common/common/init\";\nimport tableCard from \"./grid/index\";\r\nimport tableItemCard from \"./grid/item\";\r\nimport tablePage from \"./menu/table-page\";\r\nimport headerSearch from \"./menu/header-search\";\r\nimport headerMenu from \"./menu/header-menu\";\r\nimport dialogColumn from \"./dialog/dialog-column\";\r\nimport dialogFilter from \"./dialog/dialog-filter\";\r\nimport dialogForm from \"./dialog/dialog-form\";\r\nimport dialogExcel from \"./dialog/dialog-excel\";\r\nimport column from \"./column/column\";\r\nimport columnMenu from \"./column/column-menu\";\r\nimport columnDefault from \"./column/column-default\";\r\nimport config from \"./config\";\nimport { calcCascader, formInitVal } from \"core/dataformat\";\r\nimport { DIC_PROPS } from \"global/variable\";\r\nimport { CommonProps } from \"element-plus\";\r\nimport { getColumn } from \"utils/util\";\r\nexport default create({\r\n name: \"crud\",\r\n mixins: [init(\"crud\"), locale],\r\n emits: [\r\n \"update:modelValue\",\r\n \"tree-load\",\r\n \"selection-clear\",\r\n \"header-dragend\",\r\n \"expand-change\",\r\n \"current-row-change\",\r\n \"refresh-change\",\r\n \"selection-change\",\r\n \"select\",\r\n \"select-all\",\r\n \"sortable-change\",\r\n \"column-sortable-change\",\r\n \"filter\",\r\n \"filter-change\",\r\n \"sort-change\",\r\n \"row-dblclick\",\r\n \"row-click\",\r\n \"cell-mouse-enter\",\r\n \"cell-mouse-leave\",\r\n \"cell-click\",\r\n \"header-click\",\r\n \"tab-click\",\r\n \"enter\",\r\n \"error\",\r\n \"date-change\",\r\n \"grid-status-change\",\r\n \"update:search\",\r\n \"update:page\",\r\n \"search-icon-change\",\r\n \"search-change\",\r\n \"search-reset\",\r\n \"on-load\",\r\n \"current-change\",\r\n \"size-change\",\r\n \"row-contextmenu\",\r\n \"header-contextmenu\",\r\n \"cell-dblclick\",\r\n \"row-del\",\r\n \"row-save\",\r\n \"row-update\",\r\n \"change\",\r\n \"scroll\",\r\n ],\r\n directives: {\r\n permission,\r\n },\r\n provide() {\r\n return {\r\n crud: this,\r\n };\r\n },\r\n components: {\r\n tableCard,\r\n tableItemCard,\r\n column,\r\n columnDefault, //其它列,\r\n columnMenu, //操作栏,\r\n tablePage, //分页\r\n headerSearch, //搜索\r\n headerMenu, //菜单头部\r\n dialogColumn, //显隐列\r\n dialogFilter, //过滤器\r\n dialogForm, //分页\r\n dialogExcel, //导出\r\n },\r\n data() {\r\n return {\r\n reload: Math.random(),\r\n cellForm: {\r\n list: [],\r\n },\r\n config: config,\r\n list: [],\r\n listError: {},\r\n tableForm: {},\r\n tableHeight: undefined,\r\n tableIndex: -1,\r\n tableSelect: [],\r\n sumsList: {},\r\n cascaderIndexList: [],\r\n cascaderDicList: {},\r\n cascaderFormList: {},\r\n btnDisabledList: {},\r\n btnDisabled: false,\r\n default: {},\r\n gridShow: false,\r\n };\r\n },\r\n mounted() {\r\n this.dataInit();\r\n this.getTableHeight();\r\n this.initFun();\r\n this.initVirtualizeFun();\r\n },\r\n computed: {\r\n columnVirtualizeOption() {\r\n return this.columnOption.map((ele) => {\r\n return {\r\n ...ele,\r\n ...{\r\n key: ele.prop,\r\n title: ele.label,\r\n dataKey: ele.prop,\r\n },\r\n };\r\n });\r\n },\r\n tableName() {\r\n if (this.virtualize) {\r\n return \"elTableV2\";\r\n }\r\n return this.gridShow ? \"tableCard\" : \"elTable\";\r\n },\r\n tableColumnName() {\r\n return this.gridShow ? \"tableItemCard\" : \"elTableColumn\";\r\n },\r\n virtualize() {\r\n return this.tableOption.virtualize;\r\n },\r\n size() {\r\n return this.tableOption.size || this.$AVUE.tableSize || this.$AVUE.size;\r\n },\r\n isSortable() {\r\n return this.tableOption.sortable;\r\n },\r\n isRowSort() {\r\n return this.tableOption.rowSort;\r\n },\r\n isColumnSort() {\r\n return this.tableOption.columnSort;\r\n },\r\n rowParentKey() {\r\n return this.option.rowParentKey || DIC_PROPS.rowParentKey;\r\n },\r\n childrenKey() {\r\n return this.treeProps.children || DIC_PROPS.children;\r\n },\r\n hasChildrenKey() {\r\n return this.treeProps.hasChildren || DIC_PROPS.hasChildren;\r\n },\r\n treeProps() {\r\n return this.tableOption.treeProps || {};\r\n },\r\n isAutoHeight() {\r\n return this.tableOption.height === \"auto\";\r\n },\r\n formSlot() {\r\n return this.getSlotList(\r\n [\"-error\", \"-label\", \"-type\", \"-form\", \"-header\", \"-desc\"],\r\n this.$slots,\r\n this.propOption\r\n );\r\n },\r\n searchSlot() {\r\n return this.getSlotList([\"-search\"], this.$slots, this.propOption);\r\n },\r\n mainSlot() {\r\n let result = [];\r\n this.propOption.forEach((item) => {\r\n let prop = item.prop;\r\n if (this.$slots[prop]) result.push(prop);\r\n });\r\n return this.getSlotList(\r\n [\"-header\", \"-form\"],\r\n this.$slots,\r\n this.propOption\r\n ).concat(result);\r\n },\r\n calcHeight() {\r\n return (this.tableOption.calcHeight || 0) + this.$AVUE.calcHeight;\r\n },\r\n propOption() {\r\n let result = [];\r\n function findProp(list = []) {\r\n if (!Array.isArray(list)) return;\r\n list.forEach((ele) => {\r\n if (Array.isArray(ele.children)) findProp(ele.children);\r\n else result.push(ele);\r\n });\r\n }\r\n findProp(this.columnOption);\r\n result = calcCascader(result);\r\n return result;\r\n },\r\n isShowSummary() {\r\n return this.option.showSummary;\r\n },\r\n isHeader() {\r\n let flag = false;\r\n this.columnOption.forEach((ele) => {\r\n if (ele.children) {\r\n flag = true;\r\n }\r\n });\r\n return flag;\r\n },\r\n isTree() {\r\n let flag = false;\r\n this.data.forEach((ele) => {\r\n if (ele.children) {\r\n flag = true;\r\n }\r\n });\r\n return this.validData(this.tableOption.tree, flag);\r\n },\r\n isCard() {\r\n return this.option.card ? \"always\" : \"never\";\r\n },\r\n expandLevel() {\r\n return this.parentOption.expandLevel || 0;\r\n },\r\n expandAll() {\r\n return this.parentOption.expandAll || false;\r\n },\r\n parentOption() {\r\n return this.tableOption || {};\r\n },\r\n columnOption() {\r\n return getColumn(this.tableOption.column);\r\n },\r\n sumColumnList() {\r\n return this.tableOption.sumColumnList || [];\r\n },\r\n selectLen() {\r\n return this.tableSelect ? this.tableSelect.length : 0;\r\n },\r\n },\r\n watch: {\r\n modelValue: {\r\n handler(val) {\r\n this.tableForm = val;\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n list: {\r\n handler() {\r\n this.cellForm.list = this.list;\r\n },\r\n deep: true,\r\n },\r\n data: {\r\n handler() {\r\n this.dataInit();\r\n },\r\n deep: true,\r\n },\r\n tableOption: {\r\n handler() {\r\n this.gridShow = this.tableOption.grid;\r\n },\r\n immediate: true,\r\n },\r\n },\r\n props: {\r\n spanMethod: Function,\r\n summaryMethod: Function,\r\n beforeClose: Function,\r\n beforeOpen: Function,\r\n rowStyle: [Function, Object],\r\n cellStyle: [Function, Object],\r\n rowClassName: [Function, String],\r\n cellClassName: [Function, String],\r\n headerCellClassName: [Function, String],\r\n headerRowClassName: [Function, String],\r\n headerRowStyle: [Function, Object],\r\n headerCellStyle: [Function, Object],\r\n uploadSized: Function,\r\n uploadBefore: Function,\r\n uploadAfter: Function,\r\n uploadDelete: Function,\r\n uploadPreview: Function,\r\n uploadError: Function,\r\n uploadExceed: Function,\r\n permission: {\r\n type: [Function, Object],\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n modelValue: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n search: {\r\n type: Object,\r\n default() {\r\n return {};\r\n },\r\n },\r\n page: {\r\n type: Object,\r\n default() {\r\n return {};\r\n },\r\n },\r\n tableLoading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n data: {\r\n type: Array,\r\n required: true,\r\n default: () => {\r\n return [];\r\n },\r\n },\r\n width: {\r\n type: [Number, String],\r\n default: null,\r\n },\r\n height: {\r\n type: [Number, String],\r\n default: null,\r\n },\r\n },\r\n methods: {\r\n initVirtualizeFun() {\r\n if (!this.virtualize) return;\r\n this.initTableMethods([\r\n \"scrollTo\",\r\n \"scrollToTop\",\r\n \"scrollToLeft\",\r\n \"scrollRow\",\r\n ]);\r\n },\r\n initFun() {\r\n this.initTableMethods([\r\n \"scrollTo\",\r\n \"setScrollTop\",\r\n \"setScrollLeft\",\r\n \"columns\",\r\n \"doLayout\",\r\n \"updateKeyChildren\",\r\n \"toggleAllSelection\",\r\n \"toggleRowSelection\",\r\n \"toggleRowExpansion\",\r\n \"setCurrentRow\",\r\n \"clearFilter\",\r\n \"clearSort\",\r\n ]);\r\n },\r\n initTableMethods(methods) {\r\n methods.forEach((ele) => {\r\n this[ele] = (...args) => {\r\n const tableRef = this.$refs.table;\r\n if (tableRef && typeof tableRef[ele] === \"function\") {\r\n return tableRef[ele](...args);\r\n }\r\n };\r\n });\r\n },\r\n handleGridShow() {\r\n this.gridShow = !this.gridShow;\r\n this.$emit(\"grid-status-change\", this.gridShow);\r\n },\r\n handleValidate(prop, valid, msg) {\r\n if (!this.listError[prop])\r\n this.listError[prop] = { valid: false, msg: \"\" };\r\n\r\n this.listError[prop].valid = !valid;\r\n this.listError[prop].msg = msg;\r\n },\r\n getPermission(key, row, index) {\r\n if (typeof this.permission === \"function\") {\r\n return this.permission(key, row, index);\r\n } else if (!this.validatenull(this.permission[key])) {\r\n return this.permission[key];\r\n } else {\r\n return true;\r\n }\r\n },\r\n getTableHeight() {\r\n this.$nextTick(() => {\r\n if (this.isAutoHeight) {\r\n const clientHeight = document.documentElement.clientHeight;\r\n const calcHeight = this.calcHeight || 0;\r\n const tableRef = this.$refs.table;\r\n const tablePageRef = this.$refs.tablePage;\r\n let tableHeight = clientHeight - calcHeight;\r\n if (tableRef) {\r\n const height = tableRef.$el.offsetTop || 0;\r\n tableHeight -= height;\r\n }\r\n if (tablePageRef) {\r\n const height = tablePageRef.$el.offsetHeight || 0;\r\n tableHeight -= height;\r\n }\r\n this.tableHeight = tableHeight;\r\n } else {\r\n this.tableHeight = this.tableOption.height;\r\n }\r\n this.doLayout();\r\n });\r\n },\r\n refreshTable(callback) {\r\n this.reload = Math.random();\r\n this.tableSelect = [];\r\n this.$nextTick(() => {\r\n callback && callback();\r\n });\r\n },\r\n //树懒加载\r\n treeLoad(tree, treeNode, resolve) {\r\n this.$emit(\"tree-load\", tree, treeNode, (data) => {\r\n tree.children = data;\r\n resolve(data);\r\n });\r\n },\r\n menuIcon(value) {\r\n return this.validData(\r\n this.tableOption[value + \"Text\"],\r\n this.t(\"crud.\" + value)\r\n );\r\n },\r\n getBtnIcon(value) {\r\n const name = value + \"Icon\";\r\n return this.tableOption[name]\r\n ? this.tableOption[name].trim()\r\n : config[name];\r\n },\r\n //对部分表单字段进行校验的方法\r\n validateField(val, fn) {\r\n return this.$refs.dialogForm.$refs.tableForm.validateField(val, fn);\r\n },\r\n clearSelection() {\r\n this.$emit(\"selection-clear\", this.deepClone(this.tableSelect));\r\n this.$refs.table.clearSelection();\r\n },\r\n dataInit() {\r\n this.list = this.data;\r\n //初始化序列的参数\r\n this.list.forEach((ele, index) => {\r\n if (ele.$cellEdit && !this.cascaderFormList[index]) {\r\n this.cascaderFormList[index] = this.deepClone(ele);\r\n }\r\n ele.$cellEdit = ele.$cellEdit || false;\r\n ele.$index = index;\r\n });\r\n },\r\n //拖动表头事件\r\n headerDragend(newWidth, oldWidth, column, event) {\r\n this.$emit(\"header-dragend\", newWidth, oldWidth, column, event);\r\n },\r\n headerSort(oldIndex, newIndex) {\r\n const visibleColumns = this.columnOption.filter(\r\n (col) => col.hide !== true\r\n );\r\n const oldProp = visibleColumns[oldIndex].prop;\r\n const newProp = visibleColumns[newIndex].prop;\r\n const allColumns = this.columnOption;\r\n const realOldIndex = allColumns.findIndex((col) => col.prop === oldProp);\r\n const realNewIndex = allColumns.findIndex((col) => col.prop === newProp);\r\n const targetRow = allColumns.splice(realOldIndex, 1)[0];\r\n allColumns.splice(realNewIndex, 0, targetRow);\r\n this.doLayout();\r\n },\r\n scroll(params) {\r\n this.$emit(\"scroll\", params);\r\n },\r\n //展开或则关闭\r\n expandChange(row, expand) {\r\n this.$emit(\"expand-change\", row, expand);\r\n },\r\n //设置单选\r\n currentRowChange(row) {\r\n this.$emit(\"current-row-change\", row);\r\n },\r\n //刷新事件\r\n refreshChange() {\r\n this.$emit(\"refresh-change\");\r\n },\r\n // 选中实例\r\n toggleSelection(rows, checked) {\r\n if (rows) {\r\n rows.forEach((row) => {\r\n this.$refs.table.toggleRowSelection(row, checked);\r\n });\r\n } else {\r\n this.$refs.table.clearSelection();\r\n }\r\n },\r\n // 选择回调\r\n selectionChange(val) {\r\n this.tableSelect = val;\r\n this.$emit(\"selection-change\", this.tableSelect);\r\n },\r\n // 单个选择回调\r\n select(selection, row) {\r\n this.$emit(\"select\", selection, row);\r\n },\r\n // 点击勾选全选 Checkbox\r\n selectAll(selection) {\r\n this.$emit(\"select-all\", selection);\r\n },\r\n //筛选回调用\r\n filterChange(filters) {\r\n this.$emit(\"filter-change\", filters);\r\n },\r\n // 排序回调\r\n sortChange(val) {\r\n this.$emit(\"sort-change\", val);\r\n },\r\n // 行双击\r\n rowDblclick(row, event) {\r\n this.$emit(\"row-dblclick\", row, event);\r\n },\r\n // 行单机\r\n rowClick(row, event, column) {\r\n this.$emit(\"row-click\", row, event, column);\r\n },\r\n //当单元格 hover 进入时会触发该事件\r\n cellMouseEnter(row, column, cell, event) {\r\n this.$emit(\"cell-mouse-enter\", row, column, cell, event);\r\n },\r\n //当单元格 hover 退出时会触发该事件\r\n cellMouseLeave(row, column, cell, event) {\r\n this.$emit(\"cell-mouse-leave\", row, column, cell, event);\r\n },\r\n //当某个单元格被点击时会触发该事件\r\n cellClick(row, column, cell, event) {\r\n this.$emit(\"cell-click\", row, column, cell, event);\r\n },\r\n //\t当某一列的表头被点击时会触发该事件\r\n headerClick(column, event) {\r\n this.$emit(\"header-click\", column, event);\r\n },\r\n //当某一行被鼠标右键点击时会触发该事件\r\n rowContextmenu(row, column, event) {\r\n this.$emit(\"row-contextmenu\", row, column, event);\r\n },\r\n //当某一列的表头被鼠标右键点击时触发该事件\r\n headerContextmenu(column, event) {\r\n this.$emit(\"header-contextmenu\", column, event);\r\n },\r\n //当某个单元格被双击击时会触发该事件\r\n cellDblclick(row, column, cell, event) {\r\n this.$emit(\"cell-dblclick\", row, column, cell, event);\r\n },\r\n //单元格新增\r\n rowCellAdd(row = {}) {\r\n let len = this.list.length;\r\n let formDefault = formInitVal(this.propOption);\r\n row = this.deepClone(\r\n Object.assign(\r\n {\r\n $cellEdit: true,\r\n $index: len,\r\n },\r\n formDefault,\r\n row\r\n )\r\n );\r\n this.list.push(row);\r\n },\r\n //行取消\r\n rowCancel(row, index) {\r\n if (this.validatenull(row[this.rowKey])) {\r\n this.list.splice(index, 1);\r\n delete this.cascaderDIC[index];\r\n } else {\r\n this.cascaderFormList[index].$cellEdit = false;\r\n this.cascaderDIC[index] = this.cascaderDicList[index];\r\n this.list[index] = this.cascaderFormList[index];\r\n }\r\n delete this.cascaderDicList[index];\r\n delete this.cascaderFormList[index];\r\n this.cascaderIndexList.splice(this.cascaderIndexList.indexOf(index), 1);\r\n },\r\n //行编辑点击\r\n rowCell(row, index) {\r\n if (row.$cellEdit) {\r\n this.rowCellUpdate(row, index);\r\n } else {\r\n this.rowCellEdit(row, index);\r\n }\r\n },\r\n rowCellUpdate(row, index) {\r\n const done = (newRow) => {\r\n row = newRow || row;\r\n this.btnDisabledList[index] = false;\r\n this.btnDisabled = false;\r\n row.$cellEdit = false;\r\n this.list[index] = row;\r\n this.cascaderIndexList.splice(this.cascaderIndexList.indexOf(index), 1);\r\n delete this.cascaderFormList[index];\r\n };\r\n const loading = () => {\r\n this.btnDisabledList[index] = false;\r\n this.btnDisabled = false;\r\n };\r\n this.validateCellField(index).then(() => {\r\n this.btnDisabledList[index] = true;\r\n this.btnDisabled = true;\r\n if (this.validatenull(row[this.rowKey])) {\r\n this.$emit(\"row-save\", row, done, loading);\r\n } else {\r\n this.$emit(\"row-update\", row, index, done, loading);\r\n }\r\n });\r\n },\r\n // 单元格编辑\r\n rowCellEdit(row, index) {\r\n row.$cellEdit = true;\r\n //缓冲行数据\r\n this.cascaderFormList[index] = this.deepClone(row);\r\n //缓冲级联字典\r\n this.cascaderDicList[index] = this.deepClone(this.cascaderDIC[index]);\r\n },\r\n // 对部分表单字段进行校验\r\n validateCellForm(cb) {\r\n return new Promise((resolve) => {\r\n this.$refs.cellForm.validate((valid, msg) => {\r\n resolve(msg);\r\n });\r\n });\r\n },\r\n validateCellField(index) {\r\n return new Promise((resolve, reject) => {\r\n this.$refs.cellForm.validate((valid, msg = {}) => {\r\n let result = true;\r\n let list = [];\r\n Object.keys(msg).forEach((ele) => {\r\n if (ele.indexOf(`list.${index}.`) !== -1) {\r\n result = false;\r\n } else {\r\n list.push(ele);\r\n }\r\n });\r\n if (!this.validatenull(list)) this.$refs.cellForm.clearValidate(list);\r\n if (result) resolve();\r\n });\r\n });\r\n },\r\n clearValidate(list) {\r\n this.$refs.cellForm.clearValidate(list);\r\n },\r\n rowAdd() {\r\n this.$refs.dialogForm.show(\"add\");\r\n },\r\n rowSave() {\r\n return this.$refs.dialogForm.$refs.tableForm.submit();\r\n },\r\n rowUpdate() {\r\n return this.$refs.dialogForm.$refs.tableForm.submit();\r\n },\r\n closeDialog() {\r\n return this.$refs.dialogForm.closeDialog();\r\n },\r\n getPropRef(prop) {\r\n return this.$refs.dialogForm.$refs.tableForm.getPropRef(prop);\r\n },\r\n setVal() {\r\n this.$emit(\"update:modelValue\", this.tableForm);\r\n this.$emit(\"change\", this.tableForm);\r\n },\r\n // 编辑\r\n rowEdit(row, index) {\r\n this.tableForm = this.deepClone(row);\r\n this.tableIndex = index;\r\n this.setVal();\r\n this.$refs.dialogForm.show(\"edit\");\r\n },\r\n //复制\r\n rowCopy(row) {\r\n this.tableForm = this.deepClone(row);\r\n delete this.tableForm[this.rowKey];\r\n this.tableIndex = -1;\r\n this.setVal();\r\n this.$refs.dialogForm.show(\"add\");\r\n },\r\n //查看\r\n rowView(row, index) {\r\n this.tableForm = this.deepClone(row);\r\n this.tableIndex = index;\r\n this.setVal();\r\n this.$refs.dialogForm.show(\"view\");\r\n },\r\n // 删除\r\n rowDel(row, index) {\r\n this.$emit(\"row-del\", row, index, () => {\r\n let { parentList, index } = this.findData(row[this.rowKey]);\r\n if (parentList) parentList.splice(index, 1);\r\n });\r\n },\r\n //合并行\r\n tableSpanMethod(param) {\r\n if (typeof this.spanMethod === \"function\") return this.spanMethod(param);\r\n },\r\n //合集统计逻辑\r\n tableSummaryMethod(param) {\r\n let sumsList = {};\r\n let sums = [];\r\n const { columns, data } = param;\r\n //如果自己写逻辑则调用summaryMethod方法\r\n if (typeof this.summaryMethod === \"function\") {\r\n sums = this.summaryMethod(param);\r\n columns.forEach((column, index) => {\r\n sumsList[column.property] = sums[index];\r\n });\r\n this.sumsList = sumsList;\r\n } else {\r\n columns.forEach((column, index) => {\r\n let currItem = this.sumColumnList.find(\r\n (item) => item.name === column.property\r\n );\r\n if (currItem) {\r\n let decimals = currItem.decimals !== void 0 ? currItem.decimals : 2;\r\n let label = currItem.label || \"\";\r\n switch (currItem.type) {\r\n case \"count\":\r\n sums[index] = label + data.length;\r\n break;\r\n case \"avg\":\r\n let avgValues = data.map((item) =>\r\n Number(item[column.property])\r\n );\r\n let nowindex = 1;\r\n sums[index] = avgValues.reduce((perv, curr) => {\r\n let value = Number(curr);\r\n if (!isNaN(value)) {\r\n return (perv * (nowindex - 1) + curr) / nowindex++;\r\n } else {\r\n return perv;\r\n }\r\n }, 0);\r\n sums[index] = label + sums[index].toFixed(decimals);\r\n break;\r\n case \"sum\":\r\n let values = data.map((item) => Number(item[column.property]));\r\n sums[index] = values.reduce((perv, curr) => {\r\n let value = Number(curr);\r\n if (!isNaN(value)) {\r\n return perv + curr;\r\n } else {\r\n return perv;\r\n }\r\n }, 0);\r\n sums[index] = label + sums[index].toFixed(decimals);\r\n break;\r\n }\r\n sumsList[column.property] = sums[index];\r\n } else {\r\n sums[index] = \"\";\r\n }\r\n });\r\n }\r\n this.sumsList = sumsList;\r\n return sums;\r\n },\r\n tableDrop(type, el, callback) {\r\n if (this.isSortable !== true) {\r\n if (type == \"row\" && !this.isRowSort) {\r\n return;\r\n } else if (type == \"column\" && !this.isColumnSort) {\r\n return;\r\n }\r\n } else if (!el) return;\r\n if (!window.Sortable) {\r\n packages.logs(\"Sortable\");\r\n return;\r\n }\r\n return window.Sortable.create(el, {\r\n ghostClass: config.ghostClass,\r\n chosenClass: config.ghostClass,\r\n animation: 100,\r\n delay: 100,\r\n onEnd: (evt) => callback(evt),\r\n filter: \".el-table-fixed-column--right\",\r\n });\r\n },\r\n findData(id) {\r\n let result = {};\r\n const callback = (parentList, parent) => {\r\n parentList.forEach((ele, index) => {\r\n if (ele[this.rowKey] == id) {\r\n result = {\r\n item: ele,\r\n index: index,\r\n parentList: parentList,\r\n parent: parent,\r\n };\r\n }\r\n if (ele[this.childrenKey]) {\r\n callback(ele[this.childrenKey], ele);\r\n }\r\n });\r\n };\r\n callback(this.list);\r\n return result;\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b('header')\">\r\n <div :class=\"b('left')\"\r\n v-if=\"validData(crud.tableOption.menuLeft,true)\">\r\n <el-button type=\"primary\"\r\n :class=\"b('addBtn')\"\r\n @click=\"crud.rowAdd\"\r\n :icon=\"crud.getBtnIcon('addBtn')\"\r\n :size=\"crud.size\"\r\n v-permission=\"crud.getPermission('addBtn')\"\r\n v-if=\"validData(crud.tableOption.addBtn,config.addBtn)\">\r\n <template v-if=\"!crud.isIconMenu\">\r\n {{crud.menuIcon('addBtn')}}\r\n </template>\r\n </el-button>\r\n <el-button type=\"primary\"\r\n :class=\"b('addBtn')\"\r\n @click=\"crud.rowCellAdd\"\r\n :icon=\"crud.getBtnIcon('addBtn')\"\r\n v-permission=\"crud.getPermission('addRowBtn')\"\r\n :size=\"crud.size\"\r\n v-if=\"validData(crud.tableOption.addRowBtn,config.addRowBtn)\">\r\n <template v-if=\"!crud.isIconMenu\">\r\n {{crud.menuIcon('addBtn')}}\r\n </template>\r\n </el-button>\r\n <slot name=\"menu-left\"\r\n :size=\"crud.size\"></slot>\r\n </div>\r\n <div :class=\"b('right')\"\r\n v-if=\"validData(crud.tableOption.menuRight,true)\">\r\n <avue-date type=\"datetimerange\"\r\n @change=\"dateChange\"\r\n value-format=\"YYYY-MM-DD HH:mm:ss\"\r\n format=\"YYYY-MM-DD HH:mm:ss\"\r\n :shortcuts=\"shortcuts\"\r\n style=\"display:inline-block;margin-right:20px;\"\r\n v-if=\"validData(crud.tableOption.dateBtn,config.dateBtn)\"\r\n :size=\"crud.size\"></avue-date>\r\n <slot name=\"menu-right\"\r\n :size=\"crud.size\"></slot>\r\n <el-button :icon=\"crud.getBtnIcon('excelBtn')\"\r\n :class=\"b('excelBtn')\"\r\n circle\r\n :size=\"crud.size\"\r\n @click=\"rowExcel\"\r\n v-permission=\"crud.getPermission('excelBtn')\"\r\n v-if=\"validData(crud.tableOption.excelBtn,config.excelBtn)\">\r\n </el-button>\r\n <el-button :icon=\"crud.getBtnIcon('printBtn')\"\r\n :class=\"b('printBtn')\"\r\n circle\r\n :size=\"crud.size\"\r\n @click=\"rowPrint\"\r\n v-permission=\"crud.getPermission('printBtn')\"\r\n v-if=\"validData(crud.tableOption.printBtn,config.printBtn)\">\r\n </el-button>\r\n <el-button :icon=\"crud.getBtnIcon('refreshBtn')\"\r\n :class=\"b('refreshBtn')\"\r\n circle\r\n :size=\"crud.size\"\r\n @click=\"crud.refreshChange\"\r\n v-permission=\"crud.getPermission('refreshBtn')\"\r\n v-if=\"validData(crud.tableOption.refreshBtn,config.refreshBtn)\"></el-button>\r\n <el-button :icon=\"crud.getBtnIcon('columnBtn')\"\r\n :class=\"b('columnBtn')\"\r\n circle\r\n :size=\"crud.size\"\r\n @click=\"crud.$refs.dialogColumn.handleShow()\"\r\n v-permission=\"crud.getPermission('columnBtn')\"\r\n v-if=\"validData(crud.tableOption.columnBtn,config.columnBtn)\"></el-button>\r\n <el-button :icon=\"crud.getBtnIcon('searchBtn')\"\r\n :class=\"b('searchBtn')\"\r\n circle\r\n :size=\"crud.size\"\r\n @click=\"crud.$refs.headerSearch.handleSearchShow()\"\r\n v-if=\"(crud.$refs.headerSearch || {}).searchFlag&&validData(crud.tableOption.searchShowBtn,true)\"></el-button>\r\n <el-button :icon=\"crud.getBtnIcon('filterBtn')\"\r\n :class=\"b('filterBtn')\"\r\n circle\r\n :size=\"crud.size\"\r\n @click=\"crud.$refs.dialogFilter.handleShow()\"\r\n v-permission=\"crud.getPermission('filterBtn')\"\r\n v-if=\"validData(crud.tableOption.filterBtn,config.filterBtn)\"></el-button>\r\n\r\n <el-button :icon=\"crud.getBtnIcon('gridBtn')\"\r\n :class=\"b('gridBtn')\"\r\n circle\r\n :size=\"crud.size\"\r\n @click=\"crud.handleGridShow()\"\r\n v-permission=\"crud.getPermission('gridBtn')\"\r\n v-if=\"validData(crud.tableOption.gridBtn,config.gridBtn)\"></el-button>\r\n\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport packages from \"core/packages\";\r\nimport permission from 'common/directive/permission';\r\nimport { validData, getAsVal } from \"utils/util\";\r\nimport config from \"../config\";\r\nexport default create({\r\n name: \"crud\",\r\n mixins: [locale],\r\n directives: {\r\n permission\r\n },\r\n inject: [\"crud\"],\r\n data () {\r\n return {\r\n dateCreate: false,\n shortcuts: [\n {\n text: this.t('date.t'),\n value: new Date(),\n },\n {\n text: this.t('date.y'),\n value: () => {\n const date = new Date();\n date.setTime(date.getTime() - 3600 * 1000 * 24);\n return date;\n },\n },\n {\n text: this.t('date.n'),\n value: () => {\n const date = new Date();\n date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);\n return date;\r\n },\r\n },\r\n ],\r\n config: config\r\n };\r\n },\r\n created () {\r\n this.initFun();\r\n\r\n },\r\n computed: {\r\n data () {\r\n if (this.crud.tableOption.selection) {\r\n return this.crud.tableSelect;\r\n } else {\r\n return this.crud.list;\r\n }\r\n }\r\n },\r\n methods: {\r\n //日期组件回调\r\n dateChange (val) {\r\n if (this.dateCreate) {\r\n this.crud.$emit(\"date-change\", val);\r\n } else {\r\n this.dateCreate = true;\r\n }\r\n\r\n },\r\n initFun () {\r\n this.crud.rowExcel = this.rowExcel;\r\n this.crud.rowPrint = this.rowPrint;\r\n },\r\n rowExcel () {\r\n this.crud.$refs.dialogExcel.handleShow()\r\n },\r\n rowPrint () {\r\n this.$Print(this.crud.$refs.table)\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <el-card :shadow=\"crud.isCard\"\r\n :class=\"b()\"\r\n v-if=\"searchFlag\"\r\n v-show=\"searchShow && searchFlag\">\r\n <slot name=\"search\"\r\n :row=\"searchForm\"\r\n :search=\"searchForm\"\r\n :size=\"crud.size\"></slot>\r\n <avue-form :option=\"option\"\r\n ref=\"form\"\r\n @submit=\"searchChange\"\r\n @reset-change=\"resetChange\"\r\n v-model=\"searchForm\">\r\n <template #menu-form=\"scope\">\r\n <slot name=\"search-menu\"\r\n v-bind=\"Object.assign(scope,{\r\n search:searchForm,\r\n row:searchForm\r\n })\"></slot>\r\n <template v-if=\"isSearchIcon\">\r\n <el-button text\r\n v-if=\"show===false\"\r\n @click=\"handleSearchIconShow\"\r\n icon=\"el-icon-arrow-down\">{{t('crud.open')}}</el-button>\r\n <el-button text\r\n v-if=\"show===true\"\r\n @click=\"handleSearchIconShow\"\r\n icon=\"el-icon-arrow-up\">{{t('crud.shrink')}}</el-button>\r\n </template>\r\n\r\n </template>\r\n <template v-for=\"item in crud.searchSlot\"\r\n #[getSlotName(item)]=\"scope\">\r\n <slot v-bind=\"scope\"\r\n :name=\"item\"></slot>\r\n </template>\r\n </avue-form>\r\n </el-card>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport { validData } from \"utils/util\";\r\nimport { validatenull } from \"utils/validate\";\r\nimport slot from 'core/slot'\r\nimport { getSearchType, getType } from \"core/dataformat\";\r\nimport { filterParams } from 'utils/util'\r\nimport config from \"../config\";\r\nexport default create({\r\n name: \"crud__search\",\r\n inject: [\"crud\"],\r\n mixins: [locale, slot],\r\n data () {\r\n return {\r\n show: false,\r\n searchShow: true\r\n };\r\n },\r\n watch: {\r\n \"crud.propOption\": {\r\n handler () {\r\n this.searchShow = validData(this.crud.tableOption.searchShow, config.searchShow);\r\n },\r\n immediate: true\r\n },\r\n show () {\r\n this.crud.getTableHeight()\r\n },\r\n searchShow () {\r\n this.crud.getTableHeight()\r\n }\r\n },\r\n created () {\r\n this.initFun();\r\n },\r\n computed: {\r\n searchForm: {\r\n get () {\r\n return this.crud.search\r\n },\r\n set (val) {\r\n this.crud.$emit('update:search', val)\r\n }\r\n },\r\n isGroup () {\r\n return !this.validatenull(this.crud.tableOption.group);\r\n },\r\n isSearchIcon () {\r\n return this.validData(this.crud.tableOption.searchIcon, this.$AVUE.searchIcon) === true && this.columnLen > this.searchIndex\r\n },\r\n searchIndex () {\r\n return this.crud.tableOption.searchIndex || 2\r\n },\r\n columnLen () {\r\n let count = 0;\r\n this.crud.propOption.forEach(ele => {\r\n if (ele.search) count++\r\n })\r\n return count\r\n },\r\n option () {\r\n const option = this.crud.tableOption;\r\n const detailColumn = (list = []) => {\r\n list = this.deepClone(list);\r\n let column = [];\r\n let count = 0;\r\n list = list.sort((a, b) => (b.searchOrder || 0) - (a.searchOrder || 0))\r\n list.forEach(ele => {\r\n if (ele.search) {\r\n let isCount = count < this.searchIndex\r\n let obj = {}\r\n Object.keys(ele).forEach(item => {\r\n let key = 'search'\r\n if (item == 'searchProp') return\r\n if (item.includes(key)) {\r\n let result = item.replace(key, '')\r\n if (result.length == 0) return\r\n result = result.replace(result, result.toLowerCase())\r\n obj[result] = ele[item];\r\n }\r\n })\r\n ele = Object.assign(ele, obj, {\r\n type: getSearchType(ele),\r\n detail: false,\r\n dicFlag: ele.cascader ? true : this.validData(ele.dicFlag, false),\r\n span: ele.searchSpan || option.searchSpan || config.searchSpan,\r\n control: ele.searchControl,\r\n labelWidth: ele.searchLabelWidth || option.searchLabelWidth || config.searchLabelWidth,\r\n labelPosition: ele.searchLabelPosition || option.searchLabelPosition,\r\n size: ele.searchSize || option.searchSize,\r\n value: ele.searchValue,\r\n rules: ele.searchRules,\r\n render: ele.renderSearch,\r\n row: ele.searchRow,\r\n bind: ele.searchBin,\r\n disabled: ele.searchDisabled,\r\n readonly: ele.searchReadonly,\r\n display: this.isSearchIcon ? (this.show ? true : isCount) : true,\r\n })\r\n column.push(ele);\r\n count = count + 1;\r\n }\r\n })\r\n return column;\r\n }\r\n const detailOption = (list) => {\r\n let result = this.deepClone(list);\r\n let obj = {}\r\n Object.keys(result).forEach(item => {\r\n let key = 'search'\r\n if (item.includes(key)) {\r\n let str = item.replace(key, '')\r\n if (str.length == 0) return\r\n str = str.replace(str[0], str[0].toLowerCase())\r\n obj[str] = result[item];\r\n }\r\n })\r\n result.column = detailColumn(this.crud.propOption)\r\n result = Object.assign(result, obj, {\r\n rowKey: option.searchRowKey || 'null',\r\n tabs: false,\r\n group: false,\r\n printBtn: false,\r\n mockBtn: false,\r\n submitText: option.searchBtnText || this.t('crud.searchBtn'),\r\n submitBtn: this.validData(option.searchBtn, config.searchSubBtn),\r\n submitIcon: this.crud.getBtnIcon('searchBtn'),\r\n emptyText: option.emptyBtnText || this.t('crud.emptyBtn'),\r\n emptyBtn: this.validData(option.emptyBtn, config.emptyBtn),\r\n emptyIcon: this.crud.getBtnIcon('emptyBtn'),\r\n menuSpan: (() => {\r\n if (this.show || !this.isSearchIcon) {\r\n return option.searchMenuSpan || option.searchSpan\r\n } else {\r\n return option.searchMenuSpan || 6\r\n }\r\n })(),\r\n menuPosition: option.searchMenuPosition || 'center',\r\n dicFlag: false,\r\n dicData: this.crud.DIC\r\n })\r\n return result;\r\n }\r\n let result = detailOption(option)\r\n return result;\r\n },\r\n searchFlag () {\r\n return !!this.crud.$slots.search || this.columnLen !== 0\r\n }\r\n },\r\n methods: {\r\n initFun () {\r\n ['searchReset', 'searchChange'].forEach(ele => this.crud[ele] = this[ele])\r\n },\r\n getSlotName (item) {\r\n return item.replace('-search', '')\r\n },\r\n // 搜索回调\r\n searchChange (form, done) {\r\n form = filterParams(form);\r\n this.crud.propOption.forEach(ele => {\r\n if (ele.searchProp) {\r\n form[ele.searchProp] = form[ele.prop]\r\n delete form[ele.prop]\r\n }\r\n })\r\n this.crud.$emit(\"search-change\", form, done);\r\n },\r\n // 搜索清空\r\n resetChange () {\r\n this.crud.$emit(\"search-reset\", this.searchForm);\r\n },\r\n // 搜索清空\r\n searchReset () {\r\n this.$refs.form.resetForm();\r\n },\r\n handleSearchIconShow () {\r\n this.show = !this.show;\r\n this.crud.$emit('search-icon-change', this.show)\r\n },\r\n handleSearchShow () {\r\n this.searchShow = !this.searchShow;\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <el-card :shadow=\"crud.isCard\"\r\n :class=\"b('pagination')\"\r\n v-if=\"pageFlag && validData(crud.tableOption.page,true)\">\r\n <slot name=\"page\"></slot>\r\n <el-pagination :size=\"crud.size\"\r\n :disabled=\"defaultPage.disabled\"\r\n :hide-on-single-page=\"defaultPage.single\"\r\n :pager-count=\"defaultPage.pagerCount\"\r\n :page-sizes=\"defaultPage.pageSizes\"\r\n :background=\"defaultPage.background\"\r\n v-model:page-size=\"defaultPage.pageSize\"\r\n v-model:current-page=\"defaultPage.currentPage\"\r\n @size-change=\"sizeChange\"\r\n @prev-click=\"prevClick\"\r\n @next-click=\"nextClick\"\r\n @current-change=\"currentChange\"\r\n :layout=\"defaultPage.layout\"\r\n :total=\"defaultPage.total\"></el-pagination>\r\n </el-card>\r\n</template>\r\n\r\n<script>\r\nimport config from \"../config\";\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"crud\",\r\n inject: [\"crud\"],\r\n props: {\r\n page: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n }\r\n },\r\n data () {\r\n return {\r\n config: config,\r\n defaultPage: {\r\n single: false,//简单分页\r\n total: 0, // 总页数\r\n pagerCount: 7,//超过多少条隐藏\r\n currentPage: 1, // 当前页数\r\n pageSize: 10, // 每页显示多少条\r\n pageSizes: [10, 20, 30, 40, 50, 100],\r\n layout: 'total, sizes, prev, pager, next, jumper',\r\n background: true // 背景颜色\r\n }\r\n };\r\n },\r\n created () {\r\n if (this.crud.isMobile) {\r\n this.defaultPage.layout = 'total, sizes, prev, pager, next'\r\n }\r\n this.pageInit();\r\n this.crud.$emit(\"on-load\", this.defaultPage);\r\n },\r\n watch: {\r\n 'crud.page': {\r\n handler () {\r\n this.pageInit();\r\n },\r\n deep: true,\r\n },\r\n pageFlag () {\r\n this.crud.getTableHeight();\r\n },\r\n },\r\n computed: {\r\n pageFlag () {\r\n return this.defaultPage.total != 0\r\n }\r\n },\r\n methods: {\r\n pageInit () {\r\n this.defaultPage = Object.assign(this.defaultPage, this.crud.page)\r\n this.updateValue();\r\n },\r\n updateValue () {\r\n this.crud.$emit('update:page', this.defaultPage)\r\n },\r\n //下一页事件\r\n nextClick (val) {\r\n this.crud.$emit(\"next-click\", val)\r\n },\r\n //上一页事件\r\n prevClick (val) {\r\n this.crud.$emit(\"prev-click\", val)\r\n },\r\n // 页大小回调\r\n sizeChange (val) {\r\n this.defaultPage.currentPage = 1;\r\n this.defaultPage.pageSize = val;\r\n this.updateValue();\r\n this.crud.$emit(\"on-load\", this.defaultPage);\r\n this.crud.$emit(\"size-change\", val);\r\n },\r\n // 页码回调\r\n currentChange (val) {\r\n this.defaultPage.currentPage = val;\r\n this.updateValue();\r\n this.crud.$emit(\"on-load\", this.defaultPage);\r\n this.crud.$emit(\"current-change\", val);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-date-picker\r\n :type=\"type\"\r\n v-model=\"text\"\r\n :popper-class=\"popperClass\"\r\n :size=\"size\"\r\n :cell-class-name=\"cellClassName\"\r\n :editable=\"editable\"\r\n :unlink-panels=\"unlinkPanels\"\r\n :default-value=\"defaultValue\"\r\n :default-time=\"defaultTime\"\r\n :range-separator=\"rangeSeparator\"\r\n :start-placeholder=\"startPlaceholder || t('date.start')\"\r\n :end-placeholder=\"endPlaceholder || t('date.end')\"\r\n :format=\"format\"\r\n :clearable=\"clearableVal\"\r\n :shortcuts=\"shortcuts\"\r\n :disabled-date=\"disabledDate\"\r\n :disabled-hours=\"disabledHours\"\r\n :disabled-minutes=\"disabledMinutes\"\r\n :disabled-seconds=\"disabledSeconds\"\r\n :value-format=\"valueFormat\"\r\n :placeholder=\"placeholder\"\r\n :prefix-icon=\"prefixIcon\"\r\n :show-now=\"showNow\"\r\n @blur=\"handleBlur\"\r\n @focus=\"handleFocus\"\r\n @click=\"handleClick\"\r\n :readonly=\"readonly\"\r\n :disabled=\"disabled\"\r\n >\r\n <template #=\"cell\">\r\n <div class=\"el-date-table-cell\">\r\n <slot :item=\"cell\" v-if=\"$slots.default\"> </slot>\r\n <span class=\"el-date-table-cell__text\" v-else>{{\r\n cell.renderText || cell.text\r\n }}</span>\r\n </div>\r\n </template>\r\n </el-date-picker>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"date\",\r\n mixins: [props(), event(), locale],\r\n props: {\r\n cellClassName: String,\r\n prefixIcon: String,\r\n disabledDate: Function,\r\n disabledHours: Function,\r\n disabledMinutes: Function,\r\n disabledSeconds: Function,\r\n showNow: Boolean,\r\n shortcuts: [Array, Function],\r\n editable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n unlinkPanels: Boolean,\r\n value: {},\r\n startPlaceholder: String,\r\n endPlaceholder: String,\r\n rangeSeparator: String,\r\n defaultValue: [String, Array],\r\n defaultTime: [String, Array],\r\n type: {\r\n type: String,\r\n default: \"date\",\r\n },\r\n valueFormat: String,\r\n format: String,\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b({'active':((active || overActive)&&!readonly),'move':moveActive,'click':disabled})\"\r\n @mousedown.stop=\"handleMove\"\r\n @mouseover.stop=\"handleOver\"\r\n @mouseout.stop=\"handleOut\"\r\n :style=\"styleName\">\r\n <el-input ref=\"input\"\r\n :class=\"b('focus')\"\r\n v-model=\"value\"></el-input>\r\n <div :class=\"b('wrapper')\"\r\n ref=\"wrapper\">\r\n <template v-if=\"(active || overActive || moveActive)&&!readonly\">\r\n <div :style=\"styleLineName\"\r\n :class=\"b('line',['left'])\"></div>\r\n <div :style=\"styleLineName\"\r\n :class=\"b('line',['top'])\"></div>\r\n <div :class=\"b('line',['label'])\"\r\n :style=\"styleLabelName\">{{baseLeft}},{{baseTop}}</div>\r\n </template>\r\n <template v-for=\"(item,index) in rangeList\"\r\n v-if=\"!readonly\">\r\n <div :class=\"b('range',[item.classname])\"\r\n :key=\"index\"\r\n v-if=\"active\"\r\n :style=\"[styleRangeName,getRangeStyle(item.classname)]\"\r\n @mousedown.stop=\"rangeMove($event,item.classname)\"></div>\r\n </template>\r\n <div :class=\"b('menu')\"\r\n :style=\"styleMenuName\"\r\n v-show=\"active || overActive\">\r\n <slot name=\"menu\"\r\n :zIndex=\"zIndex\"\r\n :index=\"index\"></slot>\r\n </div>\r\n <div :class=\"b('item')\"\r\n ref=\"item\">\r\n <slot></slot>\r\n </div>\r\n <div :class=\"b('mask')\"\r\n v-if=\"!disabled && mask\"></div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport { getFixed } from \"utils/util\";\r\nexport default create({\r\n name: \"draggable\",\r\n props: {\r\n index: {\r\n type: [String, Number],\r\n },\r\n mask: {\r\n type: Boolean,\r\n default: true\r\n },\r\n scale: {\r\n type: Number,\r\n default: 1\r\n },\r\n readonly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n resize: {\r\n type: Boolean,\r\n default: true\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n step: {\r\n type: Number,\r\n default: 1\r\n },\r\n lock: {\r\n type: Boolean,\r\n default: false\r\n },\r\n zIndex: {\r\n type: [Number, String],\r\n default: 1\r\n },\r\n left: {\r\n type: Number,\r\n default: 0\r\n },\r\n top: {\r\n type: Number,\r\n default: 0\r\n },\r\n width: {\r\n type: Number\r\n },\r\n height: {\r\n type: Number\r\n }\r\n },\r\n data () {\r\n return {\r\n first: true,\r\n value: '',\r\n baseWidth: 0,\r\n baseHeight: 0,\r\n baseLeft: 0,\r\n baseTop: 0,\r\n children: {},\r\n moveActive: false,\r\n overActive: false,\r\n rangeActive: false,\r\n active: false,\r\n keyDown: null,\r\n rangeList: [\r\n {\r\n classname: \"left\",\r\n },\r\n {\r\n classname: \"right\",\r\n },\r\n {\r\n classname: \"top\",\r\n },\r\n {\r\n classname: \"bottom\",\r\n },\r\n {\r\n classname: \"top-left\",\r\n },\r\n {\r\n classname: \"top-right\",\r\n },\r\n {\r\n classname: \"bottom-left\",\r\n },\r\n {\r\n classname: \"bottom-right\",\r\n }\r\n ]\r\n };\r\n },\r\n computed: {\r\n scaleVal () {\r\n return this.scale;\r\n },\r\n styleMenuName () {\r\n return {\r\n transformOrigin: \"0 0\",\r\n transform: `scale(${this.scaleVal})`\r\n };\r\n },\r\n styleLineName () {\r\n return {\r\n borderWidth: this.setPx(this.scaleVal)\r\n };\r\n },\r\n styleRangeName () {\r\n const calc = 10 * this.scaleVal;\r\n return {\r\n width: this.setPx(calc),\r\n height: this.setPx(calc)\r\n };\r\n },\r\n styleLabelName () {\r\n return {\r\n fontSize: this.setPx(18 * this.scaleVal)\r\n };\r\n },\r\n styleName () {\r\n return Object.assign(\r\n (() => {\r\n if (this.active) {\r\n return Object.assign(\r\n {\r\n zIndex: 9999\r\n },\r\n this.styleLineName\r\n );\r\n }\r\n return { zIndex: this.zIndex };\r\n })(),\r\n {\r\n top: this.setPx(this.baseTop),\r\n left: this.setPx(this.baseLeft),\r\n width: this.setPx(this.baseWidth),\r\n height: this.setPx(this.baseHeight)\r\n }\r\n );\r\n }\r\n },\r\n watch: {\r\n active (val) {\r\n if (val) {\r\n this.handleKeydown()\r\n } else {\r\n document.onkeydown = this.keyDown\r\n }\r\n },\r\n width (val) {\r\n this.baseWidth = getFixed(val) || this.children.offsetWidth;\r\n },\r\n height (val) {\r\n this.baseHeight = getFixed(val) || this.children.offsetHeight;\r\n },\r\n left (val) {\r\n this.baseLeft = getFixed(val);\r\n },\r\n top (val) {\r\n this.baseTop = getFixed(val);\r\n },\r\n baseWidth (val) {\r\n this.$refs.wrapper.style.width = this.setPx(val);\r\n if (this.resize && this.children.style) {\r\n this.children.style.width = this.setPx(val);\r\n }\r\n },\r\n baseHeight (val) {\r\n this.$refs.wrapper.style.height = this.setPx(val);\r\n if (this.resize && this.children.style) {\r\n this.children.style.height = this.setPx(val);\r\n }\r\n },\r\n baseLeft (n, o) {\r\n if (this.first) return\r\n this.setMove(n - o, 0);\r\n },\r\n baseTop (n, o) {\r\n if (this.first) return\r\n this.setMove(0, n - o);\r\n }\r\n },\r\n mounted () {\r\n this.init();\r\n },\r\n methods: {\r\n init () {\r\n this.children = this.$refs.item.firstChild;\r\n this.baseWidth = getFixed(this.width) || this.children.offsetWidth;\r\n this.baseHeight = getFixed(this.height) || this.children.offsetHeight;\r\n this.baseLeft = getFixed(this.left);\r\n this.baseTop = getFixed(this.top);\r\n this.keyDown = document.onkeydown\r\n this.$nextTick(() => {\r\n this.first = false\r\n })\r\n },\r\n setMove (left, top) {\r\n this.$emit('move', {\r\n index: this.index,\r\n left: left,\r\n top: top\r\n })\r\n },\r\n setLeft (left) {\r\n this.baseLeft = left;\r\n },\r\n setTop (top) {\r\n this.baseTop = top;\r\n },\r\n getRangeStyle (postion) {\r\n const calc = (10 * this.scaleVal) / 2;\r\n let result = {};\r\n let list = postion.split(\"-\");\r\n list.forEach(ele => {\r\n result[ele] = this.setPx(-calc);\r\n });\r\n return result;\r\n },\r\n setOverActive (val) {\r\n this.overActive = val;\r\n },\r\n setActive (val) {\r\n this.active = val;\r\n },\r\n rangeMove (e, position) {\r\n if (this.disabled || this.lock) return\r\n //移动的方向\r\n let x, y;\r\n //移动的位置\r\n let xp, yp;\r\n //移动的正负\r\n let xc, yc;\r\n this.rangeActive = true;\r\n this.handleMouseDown();\r\n let disX = e.clientX;\r\n let disY = e.clientY;\r\n document.onmousemove = e => {\r\n this.moveActive = true;\r\n if (position === \"right\") {\r\n x = true;\r\n y = false;\r\n } else if (position === \"left\") {\r\n x = true;\r\n xp = true;\r\n xc = true;\r\n y = false;\r\n } else if (position === \"top\") {\r\n x = false;\r\n y = true;\r\n yp = true;\r\n yc = true;\r\n } else if (position === \"bottom\") {\r\n x = false;\r\n y = true;\r\n } else if (position === \"bottom-right\") {\r\n x = true;\r\n y = true;\r\n } else if (position === \"bottom-left\") {\r\n x = true;\r\n y = true;\r\n xp = true;\r\n xc = true;\r\n } else if (position === \"top-right\") {\r\n x = true;\r\n y = true;\r\n yp = true;\r\n yc = true;\r\n } else if (position === \"top-left\") {\r\n x = true;\r\n y = true;\r\n xp = true;\r\n xc = true;\r\n yp = true;\r\n yc = true;\r\n }\r\n let left = e.clientX - disX;\r\n let top = e.clientY - disY;\r\n disX = e.clientX;\r\n disY = e.clientY;\r\n if (x) {\r\n let calc = left * this.step;\r\n if (xc) calc = -calc;\r\n if (xp) this.baseLeft = getFixed(this.baseLeft - calc);\r\n this.baseWidth = getFixed(this.baseWidth + calc);\r\n }\r\n if (y) {\r\n let calc = top * this.step;\r\n if (yc) calc = -calc;\r\n if (yp) this.baseTop = getFixed(this.baseTop - calc);\r\n this.baseHeight = getFixed(this.baseHeight + calc);\r\n }\r\n };\r\n this.handleClear()\r\n\r\n },\r\n handleOut () {\r\n this.overActive = false\r\n this.$emit(\"out\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n },\r\n handleOver () {\r\n if (this.disabled) return\r\n this.overActive = true\r\n this.$emit(\"over\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n },\r\n handleMove (e) {\r\n if (this.disabled || this.lock) return\r\n setTimeout(() => {\r\n this.$refs.input.focus()\r\n })\r\n this.active = true;\r\n this.handleMouseDown();\r\n let disX = e.clientX;\r\n let disY = e.clientY;\r\n document.onmousemove = (e) => {\r\n let left = e.clientX - disX;\r\n let top = e.clientY - disY;\r\n disX = e.clientX;\r\n disY = e.clientY;\r\n this.baseLeft = getFixed(this.baseLeft + left * this.step);\r\n this.baseTop = getFixed(this.baseTop + top * this.step);\r\n };\r\n this.handleClear()\r\n },\r\n handleClear () {\r\n document.onmouseup = () => {\r\n document.onmousemove = null;\r\n document.onmouseup = null;\r\n this.handleMouseUp();\r\n }\r\n },\r\n handleKeydown () {\r\n document.onkeydown = (event) => {\r\n var e = event || window.event || arguments.callee.caller.arguments[0];\r\n let step = 1 * this.step;\r\n if (this.$refs.input.focused) {\r\n if (e && e.keyCode == 38) {//上\r\n this.baseTop = getFixed(this.baseTop - step)\r\n } else if (e && e.keyCode == 37) {//左\r\n this.baseLeft = getFixed(this.baseLeft - step)\r\n } else if (e && e.keyCode == 40) {//下\r\n this.baseTop = getFixed(this.baseTop + step)\r\n } else if (e && e.keyCode == 39) {//右\r\n this.baseLeft = getFixed(this.baseLeft + step)\r\n }\r\n event.stopPropagation()\r\n event.preventDefault();\r\n this.$emit(\"blur\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n this.keyDown && this.keyDown(event);\r\n }\r\n };\r\n },\r\n handleMouseDown (e) {\r\n this.moveActive = true;\r\n this.$emit(\"focus\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n },\r\n handleMouseUp () {\r\n this.moveActive = false;\r\n this.rangeActive = false;\r\n this.$emit(\"blur\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div :class=\"b()\"\r\n :key=\"reload\">\r\n <template v-if=\"isForm\">\r\n <div :class=\"b('header')\">\r\n <el-button :size=\"size\"\r\n circle\r\n v-if=\"!readonly && !disabled && !addBtn\"\r\n :disabled=\"disabled\"\r\n type=\"primary\"\r\n icon=\"el-icon-plus\"\r\n @click=\"addRow\"></el-button>\r\n </div>\r\n <div>\r\n <div v-for=\"(item,index) in text\"\r\n :class=\"b('row')\"\r\n :key=\"index\"\r\n @mouseenter=\"cellMouseenter({$index:index})\"\r\n @mouseleave=\"cellMouseLeave({$index:index})\">\r\n <el-button v-if=\"!readonly && !disabled && !delBtn && hoverList[index]\"\r\n @click=\"delRow(item.$index)\"\r\n type=\"danger\"\r\n :class=\"b('menu')\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n icon=\"el-icon-delete\"\r\n circle></el-button>\r\n <avue-form :key=\"index\"\r\n ref=\"main\"\r\n :table-data=\"{row:text[index],index}\"\r\n :option=\"option\"\r\n v-bind=\"$uploadFun(null,this)\"\r\n v-model=\"text[index]\">\r\n <template #index=\"{}\">\r\n <span>{{item.$index+1}}</span>\r\n </template>\r\n <template v-for=\"item in columnSlot\"\r\n #[item]=\"scope\">\r\n <slot v-bind=\"Object.assign(scope,{\r\n row:text[index]\r\n })\"\r\n :name=\"item\"></slot>\r\n </template>\r\n </avue-form>\r\n </div>\r\n </div>\r\n </template>\r\n <avue-crud v-else-if=\"isCrud\"\r\n ref=\"main\"\r\n :option=\"option\"\r\n :disabled=\"disabled\"\r\n v-bind=\"$uploadFun(null,this)\"\r\n @cell-mouse-enter=\"cellMouseenter\"\r\n @cell-mouse-leave=\"cellMouseLeave\"\r\n @selection-change=\"handleSelectionChange\"\r\n @sortable-change=\"handleSortableChange\"\r\n :data=\"text\">\r\n <template #index-header=\"{}\">\r\n <el-button v-if=\"!(addBtn || readonly) && maxFlag\"\r\n @click=\"addRow()\"\r\n type=\"primary\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n icon=\"el-icon-plus\"\r\n circle></el-button>\r\n </template>\r\n <template #index=\"scope\">\r\n <el-button v-if=\"!readonly && !disabled && !delBtn && hoverList[scope.row.$index]\"\r\n @click=\"delRow(scope.row.$index)\"\r\n type=\"danger\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n icon=\"el-icon-delete\"\r\n circle></el-button>\r\n <div v-else>{{scope.row.$index+1}}</div>\r\n </template>\r\n <template v-for=\"item in columnSlot\"\r\n #[getSlotName({prop:item},`F`)]=\"scope\">\r\n <slot v-bind=\"scope\"\r\n :name=\"item\"></slot>\r\n </template>\r\n\r\n </avue-crud>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport { getColumn } from 'utils/util'\r\nexport default create({\r\n name: \"dynamic\",\r\n mixins: [props(), event()],\r\n data () {\r\n return {\r\n reload: Math.random(),\r\n hoverList: []\r\n }\r\n },\r\n props: {\r\n uploadSized: Function,\r\n uploadBefore: Function,\r\n uploadAfter: Function,\r\n uploadDelete: Function,\r\n uploadPreview: Function,\r\n uploadError: Function,\r\n uploadExceed: Function,\r\n max: Number,\r\n boxType: String,\r\n columnSlot: {\r\n type: Array,\r\n default: () => {\r\n return []\r\n }\r\n },\r\n children: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n }\r\n },\r\n computed: {\r\n isAdd () {\r\n return this.boxType === \"add\"\r\n },\r\n isEdit () {\r\n return this.boxType === \"edit\"\r\n },\r\n isView () {\r\n return this.boxType === \"view\"\r\n },\r\n textLen () {\r\n return this.text.length;\r\n },\r\n maxFlag () {\r\n if (this.max) {\r\n return !(this.text.length == this.max)\r\n }\r\n return true\r\n },\r\n showIndex () {\r\n return this.validData(this.children.index, true)\r\n },\r\n showType () {\r\n return this.children.type || 'crud'\r\n },\r\n isForm () {\r\n return this.showType === 'form'\r\n },\r\n isCrud () {\r\n return this.showType === 'crud'\r\n },\r\n selectionChange () {\r\n return this.children.selectionChange\r\n },\r\n sortableChange () {\r\n return this.children.sortableChange\r\n },\r\n rowAdd () {\r\n return this.children.rowAdd\r\n },\r\n rowDel () {\r\n return this.children.rowDel\r\n },\r\n viewBtn () {\r\n return this.children.viewBtn === false\r\n },\r\n addBtn () {\r\n return this.children.addBtn === false\r\n },\r\n delBtn () {\r\n return this.children.delBtn === false\r\n },\r\n valueOption () {\r\n let result = {};\r\n this.columnOption.forEach(ele => {\r\n if (ele.value) {\r\n result[ele.prop] = ele.value;\r\n }\r\n })\r\n return result;\r\n },\r\n rulesOption () {\r\n let rules = {};\r\n this.columnOption.forEach(ele => {\r\n if (ele.rules) {\r\n rules[ele.prop] = ele.rules;\r\n }\r\n })\r\n return rules;\r\n },\r\n columnOption () {\r\n return getColumn(this.children.column)\r\n },\r\n option () {\r\n // 默认选项\r\n let options = {\r\n boxType: this.boxType,\r\n border: true,\r\n header: false,\r\n menu: false,\r\n size: this.size,\r\n disabled: this.disabled,\r\n readonly: this.readonly,\r\n menuBtn: false,\r\n };\r\n\r\n // 处理子选项\r\n let childOptions = this.deepClone(this.children);\r\n delete childOptions.column;\r\n\r\n let columnOption = this.deepClone(this.columnOption);\r\n const callback = (list) => {\r\n list.forEach((ele, index) => {\r\n if (ele.children && Array.isArray(ele.children)) callback(ele.children)\r\n else {\r\n list[index] = {\r\n ...ele,\r\n ...{\r\n hide: this.validData(ele.hide, !this.validParams(ele, 'display', true)),\r\n disabled: this.validParams(ele, 'disabled', false),\r\n detail: this.validParams(ele, 'detail', false),\r\n cell: this.validData(ele.cell, this.isCrud)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n callback(columnOption)\r\n // 处理列选项\r\n columnOption.unshift({\r\n label: this.children.indexLabel || '#',\r\n prop: 'index',\r\n display: this.showIndex,\r\n hide: !this.showIndex,\r\n fixed: true,\r\n align: 'center',\r\n headerAlign: 'center',\r\n span: 24,\r\n width: 60\r\n })\r\n\r\n // 返回合并后的选项对象\r\n return {\r\n ...options,\r\n ...{ column: columnOption },\r\n ...childOptions\r\n };\r\n }\r\n },\r\n mounted () {\r\n this.initData();\r\n },\r\n methods: {\r\n validParams (column, type, value) {\r\n function replaceStr (str) { // 正则法\r\n str = str.toLowerCase();\r\n var reg = /\\b(\\w)|\\s(\\w)/g; // \\b判断边界\\s判断空格\r\n return str.replace(reg, function (m) {\r\n return m.toUpperCase()\r\n });\r\n }\r\n let key, caseKey = replaceStr(type);\r\n if (!this.validatenull(column[type])) {\r\n key = type\r\n } else if (this.isAdd) {\r\n key = 'add' + caseKey\r\n } else if (this.isEdit) {\r\n key = 'edit' + caseKey\r\n } else if (this.isView) {\r\n key = 'view' + caseKey\r\n }\r\n return this.validData(column[key], value)\r\n },\r\n handleTextValue (val) {\r\n this.initData();\r\n },\r\n handleSelectionChange (val) {\r\n this.selectionChange && this.selectionChange(val);\r\n },\r\n handleSortableChange (oldindex, newindex, row, list) {\r\n this.sortableChange && this.sortableChange(oldindex, newindex, row, list);\r\n },\r\n cellMouseenter (row) {\r\n let index = row.$index;\r\n this.mouseoverRow(index);\r\n },\r\n cellMouseLeave (row, column, cell, event) {\r\n let index = row.$index;\r\n this.mouseoutRow(index)\r\n },\r\n initData () {\r\n this.text.forEach((ele, index) => {\r\n ele = Object.assign(ele, {\r\n $cellEdit: true,\r\n $index: index,\r\n })\r\n })\r\n },\r\n mouseoverRow (index) {\r\n if (this.delBtn) return\r\n this.flagList();\r\n this.hoverList[index] = true;\r\n },\r\n mouseoutRow (index) {\r\n if (this.delBtn) return\r\n this.flagList();\r\n this.hoverList[index] = false\r\n },\r\n flagList () {\r\n this.hoverList.forEach((ele, index) => {\r\n ele = false;\r\n })\r\n },\r\n delRow (index) {\r\n const callback = () => {\r\n let list = this.deepClone(this.text)\r\n list.splice(index, 1);\r\n this.text = list;\r\n this.reload = Math.random();\r\n }\r\n if (typeof this.rowDel === 'function') {\r\n this.rowDel(this.text[index], callback);\r\n } else {\r\n callback();\r\n }\r\n },\r\n addRow () {\r\n const callback = (obj = {}) => {\r\n let row = this.deepClone({\r\n ...this.valueOption,\r\n ...obj,\r\n ...{\r\n $index: this.textLen\r\n }\r\n })\r\n if (this.isCrud) {\r\n this.$refs.main.rowCellAdd(row);\r\n } else if (this.isForm) {\r\n this.text.push(row)\r\n }\r\n }\r\n if (typeof this.rowAdd === 'function') {\r\n this.rowAdd(callback);\r\n } else {\r\n callback();\r\n }\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\"\r\n :style=\"styleName\">\r\n <div :id=\"id\"\r\n :style=\"styleName\">\r\n <div class=\"avue-grid\"></div>\r\n <template v-for=\"(node,index) in option.nodeList\">\r\n <flow-node :node=\"node\"\r\n :id=\"node.id\"\r\n v-if=\"!node.display\"\r\n @click=\"handleClick(node)\"\r\n @changeNodeSite=\"changeNodeSite\"\r\n :index=\"index\"\r\n :active=\"active\"\r\n :key=\"index\">\r\n <template #header=\"{node}\">\r\n <slot name=\"header\"\r\n :node=\"node\">\r\n </slot>\r\n </template>\r\n <template #=\"{node}\">\r\n <slot :node=\"node\"></slot>\r\n </template>\r\n </flow-node>\r\n </template>\r\n\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\nimport create from \"core/create\";\nimport locale from \"core/locale\";\nimport flowNode from './node'\nimport { randomId } from 'utils/util';\nexport default create({\n name: \"flow\",\n mixins: [locale],\n components: {\n flowNode\n },\n data () {\r\n return {\r\n active: '',\r\n jsPlumb: {},\r\n id: '',\r\n // 默认设置参数\r\n jsplumbSetting: {\r\n // 动态锚点、位置自适应\r\n Anchors: ['Top', 'TopCenter', 'TopRight', 'TopLeft', 'Right', 'RightMiddle', 'Bottom', 'BottomCenter', 'BottomRight', 'BottomLeft', 'Left', 'LeftMiddle'],\r\n Container: '',\r\n // 连线的样式 StateMachine、Flowchart\r\n Connector: 'Flowchart',\r\n // 鼠标不能拖动删除线\r\n ConnectionsDetachable: false,\r\n // 删除线的时候节点不删除\r\n DeleteEndpointsOnDetach: false,\r\n // 连线的端点\r\n // Endpoint: [\"Dot\", {radius: 5}],\r\n Endpoint: ['Rectangle', { height: 10, width: 10 }],\r\n // 线端点的样式\r\n EndpointStyle: { fill: 'rgba(255,255,255,0)', outlineWidth: 1 },\r\n LogEnabled: true, // 是否打开jsPlumb的内部日志记录\r\n // 绘制线\r\n PaintStyle: { stroke: 'black', strokeWidth: 3 },\r\n // 绘制箭头\r\n Overlays: [['Arrow', { width: 12, length: 12, location: 1 }]],\r\n RenderMode: 'svg'\r\n },\r\n // jsplumb连接参数\r\n jsplumbConnectOptions: {\r\n isSource: true,\r\n isTarget: true,\r\n // 动态锚点、提供了4个方向 Continuous、AutoDefault\r\n anchor: 'Continuous'\r\n },\r\n\r\n jsplumbSourceOptions: {\r\n filter: '.avue-flow__node-drag', /* \"span\"表示标签,\".className\"表示类,\"#id\"表示元素id*/\r\n filterExclude: false,\r\n anchor: 'Continuous',\r\n allowLoopback: false\r\n },\r\n jsplumbTargetOptions: {\r\n filter: '.avue-flow__node-drag', /*\"span\"表示标签,\".className\"表示类,\"#id\"表示元素id */\r\n filterExclude: false,\r\n anchor: 'Continuous',\r\n allowLoopback: false\r\n },\r\n loadEasyFlowFinish: false,\r\n }\r\n },\r\n props: {\r\n modelValue: {\r\n type: String,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n option: {\r\n type: Object\r\n },\r\n width: {\r\n type: [Number, String],\r\n default: '100%'\r\n },\r\n height: {\r\n type: [Number, String],\r\n default: '100%'\r\n }\r\n },\r\n created () {\r\n this.id = randomId();\r\n this.jsplumbSetting.Container = this.id;\r\n },\r\n mounted () {\r\n this.init();\r\n },\r\n watch: {\r\n modelValue: {\r\n handler (val) {\r\n this.active = val;\r\n },\r\n immediate: true\r\n },\r\n active (val) {\r\n this.$emit('update:modelValue', val)\r\n }\r\n },\r\n computed: {\r\n styleName () {\r\n return {\r\n position: 'relative',\r\n width: this.setPx(this.width),\r\n height: this.setPx(this.height)\r\n }\r\n }\r\n },\r\n methods: {\r\n init () {\r\n this.jsPlumb = jsPlumb.getInstance()\r\n this.$nextTick(() => {\r\n this.jsPlumbInit()\r\n })\r\n },\r\n handleClick (node) {\r\n this.$emit('click', node)\r\n },\r\n // 是否具有该线\r\n hasLine (from, to) {\r\n for (var i = 0; i < this.data.lineList.length; i++) {\r\n var line = this.data.lineList[i]\r\n if (line.from === from && line.to === to) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n // 是否含有相反的线\r\n hashOppositeLine (from, to) {\r\n return this.hasLine(to, from)\r\n },\r\n // 删除线\r\n deleteLine (from, to) {\r\n this.option.lineList = this.option.lineList.filter(function (line) {\r\n return line.from !== from && line.to !== to\r\n })\r\n },\r\n // 改变连线\r\n changeLine (oldFrom, oldTo) {\r\n this.deleteLine(oldFrom, oldTo)\r\n },\r\n // 改变节点的位置\r\n changeNodeSite ({ index, left, top }) {\r\n for (var i = 0; i < this.option.nodeList.length; i++) {\r\n let node = this.option.nodeList[i]\r\n if (i === index) {\r\n this.option.nodeList[i].left = left;\r\n this.option.nodeList[i].top = top\r\n }\r\n }\r\n },\r\n //删除节点\n deleteNode (nodeId) {\n this.$confirm(this.t('flow.deleteNodeConfirm', { nodeId }), this.t('common.tip'), {\n confirmButtonText: this.t('common.submitBtn'),\n cancelButtonText: this.t('common.cancelBtn'),\n type: 'warning',\n closeOnClickModal: false\n }).then(() => {\n this.option.nodeList.forEach(node => {\r\n if (node.id === nodeId) {\r\n node.display = true;\r\n }\r\n })\r\n this.$nextTick(function () {\r\n this.jsPlumb.removeAllEndpoints(nodeId);\r\n })\r\n }).catch(() => {\r\n })\r\n return true\r\n },\r\n // 添加新的节点\r\n addNode (name) {\r\n const index = this.option.nodeList.length;\r\n let nodeId = 'node' + index\r\n this.option.nodeList.push({\r\n id: 'node' + index,\r\n name: name,\r\n left: 0,\r\n top: 0,\r\n })\r\n this.$nextTick(function () {\r\n\r\n this.jsPlumb.makeSource(nodeId, this.jsplumbSourceOptions)\r\n\r\n this.jsPlumb.makeTarget(nodeId, this.jsplumbTargetOptions)\r\n\r\n this.jsPlumb.draggable(nodeId, {\r\n containment: 'parent'\r\n })\r\n\r\n })\r\n },\r\n loadEasyFlow () {\r\n // 初始化节点\r\n for (var i = 0; i < this.option.nodeList.length; i++) {\r\n let node = this.option.nodeList[i]\r\n // 设置源点,可以拖出线连接其他节点\r\n this.jsPlumb.makeSource(node.id, this.jsplumbSourceOptions)\r\n // // 设置目标点,其他源点拖出的线可以连接该节点\r\n this.jsPlumb.makeTarget(node.id, this.jsplumbTargetOptions)\r\n this.jsPlumb.draggable(node.id)\r\n }\r\n\r\n // 初始化连线\r\n for (var i = 0; i < this.option.lineList.length; i++) {\r\n let line = this.option.lineList[i]\r\n this.jsPlumb.connect({\r\n source: line.from,\r\n target: line.to\r\n }, this.jsplumbConnectOptions)\r\n }\r\n this.$nextTick(function () {\r\n this.loadEasyFlowFinish = true\r\n })\r\n },\r\n jsPlumbInit () {\r\n const _this = this\r\n this.jsPlumb.ready(function () {\r\n // 导入默认配置\r\n _this.jsPlumb.importDefaults(_this.jsplumbSetting)\r\n // 会使整个jsPlumb立即重绘。\r\n _this.jsPlumb.setSuspendDrawing(false, true)\r\n // 初始化节点\r\n _this.loadEasyFlow()\r\n\r\n // 单点击了连接线,\r\n _this.jsPlumb.bind('click', function (conn, originalEvent) {\n console.log('click', conn)\n\n _this.$confirm(_this.t('flow.deleteLineConfirm'), _this.t('common.tip'), {\n confirmButtonText: _this.t('common.submitBtn'),\n cancelButtonText: _this.t('common.cancelBtn'),\n type: 'warning'\n }).then(() => {\n _this.jsPlumb.deleteConnection(conn)\n }).catch(() => {\r\n })\r\n })\r\n // 连线\r\n _this.jsPlumb.bind('connection', function (evt) {\r\n console.log('connection', evt)\r\n let from = evt.source.id\r\n let to = evt.target.id\r\n if (_this.loadEasyFlowFinish) {\r\n _this.option.lineList.push({\r\n from: from,\r\n to: to\r\n })\r\n }\r\n })\r\n\r\n // 删除连线\r\n _this.jsPlumb.bind('connectionDetached', function (evt) {\r\n console.log('connectionDetached', evt)\r\n _this.deleteLine(evt.sourceId, evt.targetId)\r\n })\r\n\r\n // 改变线的连接节点\r\n _this.jsPlumb.bind('connectionMoved', function (evt) {\r\n console.log('connectionMoved', evt)\r\n _this.changeLine(evt.originalSourceId, evt.originalTargetId)\r\n })\r\n\r\n // 单击endpoint\r\n // jsPlumb.bind(\"endpointClick\", function (evt) {\r\n // console.log('endpointClick', evt)\r\n // })\r\n //\r\n // // 双击endpoint\r\n // jsPlumb.bind(\"endpointDblClick\", function (evt) {\r\n // console.log('endpointDblClick', evt)\r\n // })\r\n\r\n // contextmenu\r\n _this.jsPlumb.bind('contextmenu', function (evt) {\r\n console.log('contextmenu', evt)\r\n })\r\n\r\n // beforeDrop\r\n _this.jsPlumb.bind('beforeDrop', function (evt) {\r\n console.log('beforeDrop', evt)\n let from = evt.sourceId\n let to = evt.targetId\n if (from === to) {\n _this.$message.error(_this.t('flow.noSelfConnect'))\n return false\n }\n if (_this.hasLine(from, to)) {\n _this.$message.error(_this.t('flow.noDuplicateConnect'))\n return false\n }\n if (_this.hashOppositeLine(from, to)) {\n _this.$message.error(_this.t('flow.noLoopConnect'))\n return false\n }\n return true\n })\r\n\r\n // beforeDetach\r\n _this.jsPlumb.bind('beforeDetach', function (evt) {\r\n console.log('beforeDetach', evt)\r\n })\r\n })\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div ref=\"node\"\r\n :style=\"flowNodeContainer\"\r\n @mouseenter=\"showDelete\"\r\n @mouseleave=\"hideDelete\"\r\n @mouseup=\"changeNodeSite\"\r\n :left=\"node.left\"\r\n :top=\"node.top\"\r\n disabled\r\n :mask=\"false\">\r\n <div :class=\"b('node',{'active':active===node.id})\">\r\n <div :class=\"b('node-header')\">\r\n <span :class=\"b('node-drag')\">\r\n </span>\r\n <el-icon>\r\n <el-icon-rank />\r\n </el-icon>\r\n <slot name=\"header\"\r\n :node=\"node\">\r\n </slot>\r\n </div>\r\n <div :class=\"b('node-body')\">\r\n <slot :node=\"node\">\r\n </slot>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: 'flow',\r\n props: {\r\n active: [String, Number],\r\n index: [String, Number],\r\n node: Object\r\n },\r\n data () {\r\n return {\r\n // 控制节点操作显示\r\n mouseEnter: false\r\n }\r\n },\r\n computed: {\r\n // 节点容器样式\r\n flowNodeContainer: {\r\n get () {\r\n return {\r\n position: 'absolute',\r\n width: '200px',\r\n top: this.setPx(this.node.top),\r\n left: this.setPx(this.node.left),\r\n boxShadow: this.mouseEnter ? '#66a6e0 0px 0px 12px 0px' : '',\r\n backgroundColor: 'transparent'\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n // 鼠标进入\r\n showDelete () {\r\n this.mouseEnter = true\r\n },\r\n // 鼠标离开\r\n hideDelete () {\r\n this.mouseEnter = false\r\n },\r\n // 鼠标移动后抬起\r\n changeNodeSite () {\r\n // 避免抖动\r\n if (this.node.left == this.$refs.node.style.left && this.node.top == this.$refs.node.style.top) {\r\n return;\r\n }\r\n this.$emit('changeNodeSite', {\r\n index: this.index,\r\n left: Number(this.$refs.node.style.left.replace('px', '')),\r\n top: Number(this.$refs.node.style.top.replace('px', '')),\r\n })\r\n }\r\n }\r\n})\r\n</script>","<template>\r\n <div\r\n :class=\"[b(), { 'avue--detail': isDetail }]\"\r\n :style=\"{ width: setPx(tableOption.formWidth, '100%') }\"\r\n >\r\n <el-form\r\n ref=\"form\"\r\n :status-icon=\"tableOption.statusIcon\"\r\n @submit.prevent\r\n :model=\"form\"\r\n :scroll-to-error=\"tableOption.scrollToError\"\r\n :hide-required-asterisk=\"tableOption.hideRequiredAsterisk\"\r\n :require-asterisk-position=\"tableOption.requireAsteriskPosition\"\r\n :scroll-into-view-options=\"tableOption.scrollIntoViewOptions\"\r\n :label-suffix=\"labelSuffix\"\r\n :size=\"size\"\r\n :label-position=\"tableOption.labelPosition\"\r\n :label-width=\"setPx(tableOption.labelWidth, config.labelWidth)\"\r\n >\r\n <el-row\r\n :span=\"24\"\r\n :gutter=\"tableOption.gutter\"\r\n :class=\"{ 'avue-form__tabs': isTabs }\"\r\n >\r\n <avue-group\r\n v-for=\"(item, index) in columnOption\"\r\n @change=\"handleGroupClick\"\r\n :key=\"item.prop\"\r\n :tabs=\"isTabs\"\r\n :arrow=\"item.arrow\"\r\n :collapse=\"item.collapse\"\r\n :display=\"vaildDisplay(item)\"\r\n :icon=\"item.icon\"\r\n :index=\"index\"\r\n :header=\"!isTabs\"\r\n :active=\"activeName\"\r\n :label=\"item.label\"\r\n >\r\n <template #tabs>\r\n <el-tabs\r\n v-model=\"activeName\"\r\n @tab-click=\"handleTabClick\"\r\n :class=\"b('tabs')\"\r\n :type=\"tabsType\"\r\n v-if=\"isTabs && index == 1\"\r\n >\r\n <template v-for=\"(tabs, index) in columnOption\">\r\n <el-tab-pane\r\n v-if=\"vaildDisplay(tabs) && index != 0\"\r\n :key=\"index\"\r\n :name=\"index + ''\"\r\n >\r\n <template #label>\r\n <span>\r\n <slot\r\n :name=\"getSlotName(tabs, 'H')\"\r\n :column=\"tabs\"\r\n v-if=\"getSlotName(tabs, 'H', $slots)\"\r\n ></slot>\r\n <template v-else>\r\n <i :class=\"tabs.icon\"> </i>\r\n {{ tabs.label }}\r\n </template>\r\n </span>\r\n </template>\r\n </el-tab-pane>\r\n </template>\r\n </el-tabs>\r\n </template>\r\n <template #header v-if=\"getSlotName(item, 'H', $slots)\">\r\n <slot :name=\"getSlotName(item, 'H')\" :column=\"item\"></slot>\r\n </template>\r\n <div\r\n :class=\"b('group', { flex: validData(item.flex, true) })\"\r\n v-if=\"isGroupShow(item, index, isVerifyAll)\"\r\n v-show=\"isGroupShow(item, index)\"\r\n >\r\n <template v-for=\"(column, cindex) in item.column\">\r\n <el-col\r\n v-if=\"vaildDisplay(column)\"\r\n :key=\"cindex\"\r\n :span=\"getItemParams(column, item, 'span')\"\r\n :md=\"getItemParams(column, item, 'span')\"\r\n :sm=\"getItemParams(column, item, 'span')\"\r\n :xs=\"getItemParams(column, item, 'xsSpan')\"\r\n :offset=\"getItemParams(column, item, 'offset')\"\r\n :push=\"getItemParams(column, item, 'push')\"\r\n :pull=\"getItemParams(column, item, 'pull')\"\r\n :class=\"[\r\n b('row'),\r\n { 'avue--detail avue--detail__column': vaildDetail(column) },\r\n column.className,\r\n ]\"\r\n >\r\n <el-form-item\r\n :prop=\"column.prop\"\r\n :label=\"column.label\"\r\n :rules=\"column.rules\"\r\n :class=\"\r\n b(\r\n 'item--' +\r\n (column.labelPosition ||\r\n item.labelPosition ||\r\n tableOption.labelPosition ||\r\n '')\r\n )\r\n \"\r\n :label-position=\"\r\n column.labelPosition ||\r\n item.labelPosition ||\r\n tableOption.labelPosition\r\n \"\r\n :label-width=\"getItemParams(column, item, 'labelWidth', true)\"\r\n >\r\n <template #label v-if=\"getSlotName(column, 'L', $slots)\">\r\n <slot\r\n :name=\"getSlotName(column, 'L')\"\r\n :column=\"column\"\r\n :value=\"form[column.prop]\"\r\n :readonly=\"column.readonly || readonly\"\r\n :disabled=\"getDisabled(column)\"\r\n :size=\"column.size || size\"\r\n :dic=\"DIC[column.prop]\"\r\n ></slot>\r\n </template>\r\n <template #label v-else-if=\"column.labelTip\">\r\n <el-tooltip\r\n class=\"item\"\r\n effect=\"dark\"\r\n :placement=\"column.labelTipPlacement || 'top-start'\"\r\n >\r\n <template #content>\r\n <div v-html=\"column.labelTip\"></div>\r\n </template>\r\n <el-icon>\r\n <el-icon-info-filled />\r\n </el-icon>\r\n </el-tooltip>\r\n <span> {{ column.label }}{{ labelSuffix }}</span>\r\n </template>\r\n <template #error=\"scope\" v-if=\"getSlotName(column, 'E')\">\r\n <slot\r\n :name=\"getSlotName(column, 'E')\"\r\n v-bind=\"\r\n Object.assign(scope, {\r\n column,\r\n value: form[column.prop],\r\n readonly: column.readonly || readonly,\r\n disabled: getDisabled(column),\r\n size: column.size || size,\r\n dic: DIC[column.prop],\r\n })\r\n \"\r\n ></slot>\r\n </template>\r\n <component\r\n :is=\"validTip(column) ? 'div' : 'elTooltip'\"\r\n :disabled=\"validTip(column)\"\r\n :content=\"validData(column.tip, getPlaceholder(column))\"\r\n :placement=\"column.tipPlacement\"\r\n >\r\n <div>\r\n <slot\r\n :value=\"form[column.prop]\"\r\n :column=\"column\"\r\n :label=\"form['$' + column.prop]\"\r\n :size=\"column.size || size\"\r\n :readonly=\"column.readonly || readonly\"\r\n :disabled=\"getDisabled(column)\"\r\n :dic=\"DIC[column.prop]\"\r\n :name=\"column.prop\"\r\n v-if=\"$slots[column.prop]\"\r\n ></slot>\r\n <form-temp\r\n :column=\"column\"\r\n v-else\r\n :box-type=\"boxType\"\r\n :ref=\"column.prop\"\r\n :dic=\"DIC[column.prop]\"\r\n :props=\"tableOption.props\"\r\n :propsHttp=\"tableOption.propsHttp\"\r\n :render=\"column.render\"\r\n :row=\"form\"\r\n :clearValidate=\"clearValidate\"\r\n :table-data=\"tableData\"\r\n :readonly=\"column.readonly || readonly\"\r\n v-bind=\"$uploadFun(column)\"\r\n :disabled=\"getDisabled(column)\"\r\n :enter=\"tableOption.enter\"\r\n :size=\"size\"\r\n v-model=\"form[column.prop]\"\r\n @enter=\"submit\"\r\n :column-slot=\"columnSlot\"\r\n @change=\"propChange(item.column, column)\"\r\n >\r\n <template\r\n #=\"scope\"\r\n v-if=\"getSlotName(column, 'T', $slots)\"\r\n >\r\n <slot\r\n :name=\"getSlotName(column, 'T')\"\r\n v-bind=\"scope\"\r\n ></slot>\r\n </template>\r\n <template v-for=\"item in columnSlot\" #[item]=\"scope\">\r\n <slot v-bind=\"scope\" :name=\"item\"></slot>\r\n </template>\r\n </form-temp>\r\n </div>\r\n </component>\r\n </el-form-item>\r\n </el-col>\r\n <div\r\n :class=\"b('line')\"\r\n v-if=\"shouldShowDivider(column)\"\r\n :key=\"`line${cindex}`\"\r\n :style=\"{ width: (column.count / 24) * 100 + '%' }\"\r\n ></div>\r\n </template>\r\n <form-menu v-if=\"!isMenu\">\r\n <template #menu-form-before=\"scope\">\r\n <slot name=\"menu-form-before\" v-bind=\"scope\"></slot>\r\n </template>\r\n <template #menu-form=\"scope\">\r\n <slot name=\"menu-form\" v-bind=\"scope\"></slot>\r\n </template>\r\n </form-menu>\r\n </div>\r\n </avue-group>\r\n <form-menu v-if=\"isMenu\">\r\n <template #menu-form=\"scope\">\r\n <slot name=\"menu-form\" v-bind=\"scope\"></slot>\r\n </template>\r\n </form-menu>\r\n </el-row>\r\n </el-form>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n// 移除全局变量,避免内存泄露\r\nimport { detail } from \"core/detail\";\r\nimport create from \"core/create\";\r\nimport init from \"common/common/init\";\r\nimport formTemp from \"common/components/form/index\";\r\nimport formMenu from \"./menu\";\r\nimport { DIC_PROPS } from \"global/variable\";\r\nimport {\r\n getComponent,\r\n getPlaceholder,\r\n formInitVal,\r\n calcCount,\r\n calcCascader,\r\n} from \"core/dataformat\";\r\nimport { sendDic } from \"core/dic\";\r\nimport {\r\n getColumn,\r\n filterParams,\r\n clearVal,\r\n getAsVal,\r\n blankVal,\r\n setAsVal,\r\n} from \"utils/util\";\r\nimport mock from \"utils/mock\";\r\nimport config from \"./config\";\nexport default create({\r\n name: \"form\",\r\n mixins: [init(\"form\")],\r\n emits: [\r\n \"update:modelValue\",\r\n \"update:status\",\r\n \"reset-change\",\r\n \"mock-change\",\r\n \"tab-click\",\r\n \"submit\",\r\n \"error\",\r\n ],\r\n components: {\r\n formTemp,\r\n formMenu,\r\n },\r\n data() {\r\n return {\r\n config,\r\n activeName: \"\",\r\n allDisabled: false,\r\n tableOption: {},\r\n form: {},\r\n formCreate: false,\r\n formList: [],\r\n formBind: {},\r\n // 防止内存泄露的计数器,移到组件实例中\r\n count: {},\r\n // 保存定时器ID,用于清理\r\n timers: [],\r\n };\r\n },\r\n provide() {\r\n return {\r\n formSafe: this,\r\n };\r\n },\r\n watch: {\r\n modelValue: {\r\n handler(val) {\r\n if (this.formCreate) {\r\n this.setForm();\r\n }\r\n },\r\n deep: true,\r\n },\r\n form: {\r\n handler(val) {\r\n if (this.formCreate) {\r\n this.setLabel();\r\n this.setVal();\r\n }\r\n },\r\n deep: true,\r\n },\r\n tabsActive: {\r\n handler(val) {\r\n this.activeName = this.tabsActive;\r\n },\r\n immediate: true,\r\n },\r\n DIC: {\r\n handler() {\r\n this.setLabel();\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n allDisabled: {\r\n handler(val) {\r\n this.$emit(\"update:status\", val);\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n },\r\n computed: {\r\n size() {\r\n return this.tableOption.size || this.$AVUE.formSize || this.$AVUE.size;\r\n },\r\n columnSlot() {\r\n return Object.keys(this.$slots).filter(\r\n (item) => !this.propOption.map((ele) => ele.prop).includes(item)\r\n );\r\n },\r\n labelSuffix() {\r\n return this.tableOption.labelSuffix || \":\";\r\n },\r\n isMenu() {\r\n return this.columnOption.length != 1;\r\n },\r\n isDetail() {\r\n return this.detail === true;\r\n },\r\n isAdd() {\r\n return [\"parentAdd\", \"add\"].includes(this.boxType);\r\n },\r\n isTabs() {\r\n return this.tableOption.tabs === true;\r\n },\r\n isEdit() {\r\n return this.boxType === \"edit\";\r\n },\r\n isView() {\r\n return this.boxType === \"view\";\r\n },\r\n detail() {\r\n return this.tableOption.detail;\r\n },\r\n disabled() {\r\n return this.tableOption.disabled;\r\n },\r\n readonly() {\r\n return this.tableOption.readonly;\r\n },\r\n tabsType() {\r\n return this.tableOption.tabsType;\r\n },\r\n columnLen() {\r\n return this.columnOption.length;\r\n },\r\n dynamicOption() {\r\n let list = [];\r\n this.propOption.forEach((ele) => {\r\n if (ele.type == \"dynamic\" && this.vaildDisplay(ele)) {\r\n list.push(ele);\r\n }\r\n });\r\n return list;\r\n },\r\n propOption() {\r\n let list = [];\r\n this.columnOption.forEach((option) => {\r\n if (option.display !== false) {\r\n option.column.forEach((column) => list.push(column));\r\n }\r\n });\r\n return list;\r\n },\r\n columnOption() {\r\n const processColumnDetails = (list) => {\r\n list.forEach((groupItem, groupIndex) => {\r\n groupItem.column = getColumn(groupItem.column) || [];\r\n\r\n groupItem.column.forEach((column, columnIndex) => {\r\n if (column.display !== false && !this.isMobile) {\r\n column = calcCount(\r\n column,\r\n this.tableOption.span || this.config.span,\r\n columnIndex === 0\r\n );\r\n }\r\n });\r\n\r\n groupItem.column = calcCascader(groupItem.column);\r\n\r\n groupItem.column = groupItem.column.sort(\r\n (a, b) => (b.order || 0) - (a.order || 0)\r\n );\r\n });\r\n };\r\n\r\n const { tableOption } = this;\r\n\r\n const mainColumn = getColumn(tableOption.column);\r\n\r\n // 处理分组配置\r\n const processedGroups = (tableOption.group || []).map((groupItem) => ({\r\n ...groupItem,\r\n column: getColumn(groupItem.column),\r\n }));\r\n\r\n const footerColumns = tableOption.footer || [];\r\n\r\n // 添加主列组\r\n const mainGroup = [\r\n {\r\n header: false,\r\n column: mainColumn,\r\n },\r\n ];\r\n\r\n const footerGroup =\r\n footerColumns.length > 0\r\n ? [\r\n {\r\n header: false,\r\n column: footerColumns,\r\n },\r\n ]\r\n : [];\r\n\r\n // 处理所有组的详细信息\r\n processColumnDetails(mainGroup);\r\n processColumnDetails(processedGroups);\r\n if (footerColumns.length > 0) {\r\n processColumnDetails(footerGroup);\r\n }\r\n return [...mainGroup, ...processedGroups, ...footerGroup];\r\n },\r\n menuPosition: function () {\r\n if (this.tableOption.menuPosition) {\r\n return this.tableOption.menuPosition;\r\n } else {\r\n return \"center\";\r\n }\r\n },\r\n boxType: function () {\r\n return this.tableOption.boxType;\r\n },\r\n isPrint() {\r\n return this.validData(this.tableOption.printBtn, false);\r\n },\r\n tabsActive() {\r\n return this.validData(this.tableOption.tabsActive + \"\", \"1\");\r\n },\r\n isMock() {\r\n return this.validData(this.tableOption.mockBtn, false);\r\n },\r\n isVerifyAll() {\r\n return this.validData(this.tableOption.tabsVerifyAll, true);\r\n },\r\n menuSpan() {\r\n return this.tableOption.menuSpan || 24;\r\n },\r\n },\r\n props: {\r\n uploadSized: Function,\r\n uploadBefore: Function,\r\n uploadAfter: Function,\r\n uploadDelete: Function,\r\n uploadPreview: Function,\r\n uploadError: Function,\r\n uploadExceed: Function,\r\n status: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n modelValue: {\r\n type: Object,\r\n required: true,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n },\r\n mounted() {\r\n this.initFun();\r\n // 保存定时器ID,用于清理\r\n const timerId = setTimeout(() => {\r\n this.dataFormat();\r\n });\r\n this.timers.push(timerId);\r\n },\r\n methods: {\r\n getComponent,\r\n getPlaceholder,\r\n initFun() {\r\n this.initFormMethods([\r\n \"validateField\",\r\n \"scrollToField\",\r\n \"clearValidate\",\r\n \"resetFields\",\r\n \"getField\",\r\n \"fields\",\r\n ]);\r\n },\r\n initFormMethods(methods) {\r\n methods.forEach((ele) => {\r\n this[ele] = (...args) => {\r\n const formRef = this.$refs.form;\r\n if (formRef && typeof formRef[ele] === \"function\") {\r\n return formRef[ele](...args);\r\n }\r\n };\r\n });\r\n },\r\n getDisabled(column) {\r\n return (\r\n this.vaildDetail(column) ||\r\n this.isDetail ||\r\n this.vaildDisabled(column) ||\r\n this.allDisabled\r\n );\r\n },\r\n isGroupShow(item, index, verifyAll) {\r\n if (verifyAll) return true;\r\n else if (this.isTabs) {\r\n return index == this.activeName || index == 0;\r\n } else {\r\n return true;\r\n }\r\n },\r\n\r\n dataFormat() {\r\n let formDefault = formInitVal(this.propOption);\r\n let formValue = this.modelValue;\r\n let form = {};\r\n Object.entries(Object.assign(formDefault, formValue)).forEach((ele) => {\r\n let key = ele[0],\r\n value = ele[1];\r\n if (this.validatenull(formValue[key])) {\r\n form[key] = value;\r\n } else {\r\n form[key] = formValue[key];\r\n }\r\n });\r\n this.form = form;\r\n this.setLabel();\r\n this.setControl();\r\n this.setVal();\r\n // 保存定时器ID,用于清理\r\n const timerId = setTimeout(() => {\r\n this.formCreate = true;\r\n this.clearValidate();\r\n });\r\n this.timers.push(timerId);\r\n },\r\n setControl() {\r\n this.propOption.forEach((column) => {\r\n let prop = column.prop;\r\n let bind = column.bind;\r\n let control = column.control;\r\n // 防止重复创建watcher,如果已存在则先清理\r\n if (this.formBind[prop]) {\r\n this.formBind[prop].forEach((unWatch) => {\r\n if (typeof unWatch === \"function\") {\r\n unWatch();\r\n }\r\n });\r\n delete this.formBind[prop];\r\n }\r\n\r\n let bindList = [];\r\n if (bind) {\r\n let formProp = this.$watch(\"form.\" + prop, (n, o) => {\r\n setAsVal(this.form, bind, n);\r\n });\r\n let formDeep = this.$watch(\"form.\" + bind, (n, o) => {\r\n this.form[prop] = n;\r\n });\r\n bindList.push(formProp);\r\n bindList.push(formDeep);\r\n this.form[prop] = getAsVal(this.form, bind);\r\n }\r\n if (control) {\r\n const callback = () => {\r\n const controlResolve = (list) => {\r\n Object.keys(list).forEach((item) => {\r\n let ele = Object.assign(\r\n this.objectOption[item] || {},\r\n list[item]\r\n );\r\n this.objectOption[item] = ele;\r\n if (list[item].dicData) this.DIC[item] = list[item].dicData;\r\n });\r\n };\r\n let result = this.form[\"$\" + column.prop] || this.form[column.prop];\r\n let controlList =\r\n control(this.form[column.prop], this.form, result, column) || {};\r\n if (controlList instanceof Promise) {\r\n controlList.then((res) => {\r\n controlResolve(res);\r\n });\r\n } else {\r\n controlResolve(controlList);\r\n }\r\n };\r\n let formControl = this.$watch(\"form.\" + prop, (n, o) => {\r\n callback();\r\n });\r\n bindList.push(formControl);\r\n callback();\r\n }\r\n if (bindList.length > 0) {\r\n this.formBind[prop] = bindList;\r\n }\r\n });\r\n },\r\n setForm() {\r\n Object.keys(this.modelValue).forEach((ele) => {\r\n this.form[ele] = this.modelValue[ele];\r\n });\r\n },\r\n setVal() {\r\n this.$emit(\"update:modelValue\", this.form);\r\n this.$emit(\"change\", this.form);\r\n },\r\n setLabel() {\r\n if (this.tableOption.filterNull === true) {\r\n this.form = filterParams(this.form, [\"\"], false);\r\n }\r\n if (this.tableOption.filterDic == true) {\r\n this.form = filterParams(this.form, [\"$\"], false);\r\n } else {\r\n this.propOption.forEach((column) => {\r\n let result;\r\n let DIC = this.DIC[column.prop];\r\n if (this.validatenull(DIC)) return;\r\n result = detail(this.form, column, this.tableOption, DIC);\r\n if (result) {\r\n this.form[`$${column.prop}`] = result;\r\n } else {\r\n delete this.form[`$${column.prop}`];\r\n }\r\n });\r\n }\r\n },\r\n handleGroupClick(activeNames) {\r\n this.$emit(\"tab-click\", activeNames);\r\n },\r\n handleTabClick(tab, event) {\r\n this.$emit(\"tab-click\", tab, event);\r\n },\r\n getItemParams(column, item, type, isPx) {\r\n let result;\r\n if (!this.validatenull(column[type])) {\r\n result = column[type];\r\n } else if (!this.validatenull(item[type])) {\r\n result = item[type];\r\n } else {\r\n result = this.tableOption[type];\r\n }\r\n result = this.validData(result, this.config[type]);\r\n return isPx ? this.setPx(result) : result;\r\n },\r\n validTip(column) {\r\n return !column.tip || column.type === \"upload\";\r\n },\r\n getPropRef(prop) {\r\n return this.$refs[prop][0];\r\n },\r\n handleChange(list, column) {\r\n this.$nextTick(() => {\r\n const cascader = column.cascader;\r\n const str = cascader.join(\",\");\r\n cascader.forEach((item) => {\r\n const columnNextProp = item;\r\n const value = this.form[column.prop];\r\n // 下一个节点\r\n const columnNext = this.findObject(list, columnNextProp);\r\n if (this.validatenull(columnNext)) return;\r\n // 如果不是首次加载则清空全部关联节点的属性值和字典值\r\n if (this.formList.includes(str)) {\r\n //清空子类字典列表和值\r\n cascader.forEach((ele) => {\r\n this.form[ele] = blankVal(this.form[ele]);\r\n this.DIC[ele] = [];\r\n });\r\n }\r\n /**\r\n * 1.判断当前节点是否有下级节点\r\n * 2.判断当前节点是否有值\r\n */\r\n if (\r\n this.validatenull(cascader) ||\r\n this.validatenull(value) ||\r\n this.validatenull(columnNext)\r\n ) {\r\n return;\r\n }\r\n // 根据当前节点值获取下一个节点的字典\r\n sendDic(\r\n {\r\n column: columnNext,\r\n value: value,\r\n form: this.form,\r\n },\r\n this\r\n ).then((res) => {\r\n //首次加载的放入队列记录\r\n if (!this.formList.includes(str)) this.formList.push(str);\r\n // 修改字典\r\n const dic = res || [];\r\n this.DIC[columnNextProp] = dic;\r\n if (\r\n !this.validatenull(dic) &&\r\n !this.validatenull(dic) &&\r\n !this.validatenull(columnNext.cascaderIndex) &&\r\n this.validatenull(this.form[columnNextProp])\r\n ) {\r\n this.form[columnNextProp] =\r\n dic[columnNext.cascaderIndex][\r\n (columnNext.props || {}).value || DIC_PROPS.value\r\n ];\r\n }\r\n });\r\n });\r\n });\r\n },\r\n handlePrint() {\r\n this.$Print(this.$el);\r\n },\r\n propChange(option, column) {\r\n let key = column.prop;\r\n // 使用组件实例的count而不是全局变量\r\n // 当字段类型为 cascader 或 upload 时,值发生变化需要进行字段验证\r\n if (column.type === \"cascader\" || column.type === \"upload\") {\r\n this.$nextTick(() => {\r\n // 调用validateField方法验证当前字段\r\n this.validateField(key).catch((error) => {});\r\n });\r\n }\r\n if (!this.count[key]) {\r\n if (column.cascader) this.handleChange(option, column);\r\n }\r\n this.count[key] = true;\r\n this.$nextTick(() => (this.count[key] = false));\r\n },\r\n handleMock() {\r\n if (!this.isMock) return;\r\n this.columnOption.forEach((column) => {\r\n const form = mock(column.column, this.DIC, this.form, this.isMock);\r\n if (!this.validatenull(form)) {\r\n Object.keys(form).forEach((ele) => {\r\n this.form[ele] = form[ele];\r\n });\r\n }\r\n });\r\n // 保存定时器ID,用于清理\r\n this.$nextTick(() => {\r\n this.clearValidate();\r\n this.$emit(\"mock-change\", this.form);\r\n });\r\n },\r\n vaildDetail(column) {\r\n let key;\r\n if (this.detail) return false;\r\n if (!this.validatenull(column.detail)) {\r\n key = \"detail\";\r\n } else if (this.isAdd) {\r\n key = \"addDetail\";\r\n } else if (this.isEdit) {\r\n key = \"editDetail\";\r\n } else if (this.isView) {\r\n return false;\r\n }\r\n return this.validData(column[key], false);\r\n },\r\n // 验证表单是否禁止\r\n vaildDisabled(column) {\r\n let key;\r\n if (this.disabled) return true;\r\n if (!this.validatenull(column.disabled)) {\r\n key = \"disabled\";\r\n } else if (this.isAdd) {\r\n key = \"addDisabled\";\r\n } else if (this.isEdit) {\r\n key = \"editDisabled\";\r\n } else if (this.isView) {\r\n return true;\r\n }\r\n return this.validData(column[key], false);\r\n },\r\n // 验证表单是否显隐\r\n vaildDisplay(column) {\r\n let key;\r\n if (!this.validatenull(column.display)) {\r\n key = \"display\";\r\n } else if (this.isAdd) {\r\n key = \"addDisplay\";\r\n } else if (this.isEdit) {\r\n key = \"editDisplay\";\r\n } else if (this.isView) {\r\n key = \"viewDisplay\";\r\n } else {\r\n return true;\r\n }\r\n return this.validData(column[key], true);\r\n },\r\n validateCellForm() {\r\n return new Promise((resolve) => {\r\n this.$refs.form.validate((valid, msg) => {\r\n resolve(msg);\r\n });\r\n });\r\n },\r\n validate(callback) {\r\n this.$refs.form.validate((valid, msg) => {\r\n let dynamicList = [];\r\n let dynamicName = [];\r\n let dynamicError = {};\r\n this.dynamicOption.forEach((ele) => {\r\n let isForm = ele.children.type === \"form\";\r\n dynamicName.push(ele.prop);\r\n if (isForm) {\r\n if (\r\n !this.validatenull(this.$refs[ele.prop][0].$refs.temp.$refs.main)\r\n ) {\r\n this.$refs[ele.prop][0].$refs.temp.$refs.main.forEach((ele) => {\r\n dynamicList.push(ele.validateCellForm());\r\n });\r\n }\r\n } else {\r\n dynamicList.push(\r\n this.$refs[ele.prop][0].$refs.temp.$refs.main.validateCellForm()\r\n );\r\n }\r\n });\r\n Promise.all(dynamicList).then((res) => {\r\n res.forEach((error, index) => {\r\n if (!this.validatenull(error)) {\r\n dynamicError[dynamicName[index]] = error;\r\n }\r\n });\r\n let result = Object.assign(dynamicError, msg);\r\n if (this.validatenull(result)) {\r\n this.show();\r\n callback && callback(true, this.hide, result);\r\n } else {\r\n callback && callback(false, this.hide, result);\r\n }\r\n });\r\n });\r\n },\r\n resetForm(reset = true) {\r\n if (reset) {\r\n let propList = this.propOption.map((ele) => ele.prop);\r\n this.form = clearVal(\r\n this.form,\r\n propList,\r\n (this.tableOption.filterParams || []).concat([this.rowKey])\r\n );\r\n }\r\n this.$nextTick(() => {\r\n this.clearValidate();\r\n this.$emit(\"reset-change\");\r\n });\r\n },\r\n show() {\r\n this.allDisabled = true;\r\n },\r\n hide() {\r\n this.allDisabled = false;\r\n },\r\n submit() {\r\n this.validate((valid, hide, msg) => {\r\n if (valid) {\r\n this.$emit(\"submit\", filterParams(this.form, [\"$\"]), this.hide);\r\n } else {\r\n this.$emit(\"error\", msg);\r\n }\r\n });\r\n },\r\n shouldShowDivider(column) {\r\n return (\r\n this.vaildDisplay(column) && // 列是否显示\r\n column.row && // 是否需要换行\r\n column.span !== 24 && // 不是全宽\r\n column.count // 有剩余空间需要填充\r\n );\r\n },\r\n },\r\n beforeUnmount() {\r\n // 清理所有定时器,防止内存泄露\r\n this.timers.forEach((timerId) => {\r\n if (timerId) {\r\n clearTimeout(timerId);\r\n }\r\n });\r\n this.timers = [];\r\n\r\n // 清理所有watcher\r\n Object.keys(this.formBind).forEach((ele) => {\r\n this.formBind[ele].forEach((unWatch) => {\r\n if (typeof unWatch === \"function\") {\r\n unWatch();\r\n }\r\n });\r\n });\r\n\r\n // 清理formBind对象\r\n this.formBind = {};\r\n\r\n // 清理formList数组\r\n this.formList = [];\r\n\r\n // 清理count对象\r\n this.count = {};\r\n\r\n // 清理form对象的引用\r\n this.form = {};\r\n },\r\n\r\n unmounted() {\r\n // 保留原有的unmounted钩子以确保兼容性\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <el-col :span=\"menuSpan\"\r\n :md=\"menuSpan\"\r\n :xs=\"menuXsSpan\"\r\n :style=\"styleName\"\r\n :class=\"[b('menu',[formSafe.menuPosition]),'no-print']\"\r\n v-if=\"validData(formSafe.tableOption.menuBtn, true)\">\r\n <slot name=\"menu-form-before\"\r\n :disabled=\"formSafe.allDisabled\"\r\n :size=\"formSafe.size\"></slot>\r\n <el-button type=\"primary\"\r\n @click=\"formSafe.handleMock\"\r\n :size=\"formSafe.size\"\r\n icon=\"el-icon-edit\"\r\n :disabled=\"formSafe.allDisabled\"\r\n v-if=\"formSafe.isMock\">{{validData(formSafe.tableOption.mockText,t(\"form.mockBtn\"))}}</el-button>\r\n <el-button type=\"primary\"\r\n @click=\"formSafe.handlePrint\"\r\n :size=\"formSafe.size\"\r\n icon=\"el-icon-printer\"\r\n :disabled=\"formSafe.allDisabled\"\r\n v-if=\"formSafe.isPrint\">{{validData(formSafe.tableOption.printText,t(\"form.printBtn\"))}}</el-button>\r\n <el-button type=\"primary\"\r\n @click=\"formSafe.submit\"\r\n :size=\"formSafe.size\"\r\n :icon=\"formSafe.tableOption.submitIcon || 'el-icon-check'\"\r\n :loading=\"formSafe.allDisabled\"\r\n v-if=\"validData(formSafe.tableOption.submitBtn,true)\">{{validData(formSafe.tableOption.submitText,t(\"form.submitBtn\"))}}</el-button>\r\n <el-button :icon=\"formSafe.tableOption.emptyIcon || 'el-icon-delete'\"\r\n :size=\"formSafe.size\"\r\n :disabled=\"formSafe.allDisabled\"\r\n v-if=\"validData(formSafe.tableOption.emptyBtn,true)\"\r\n @click=\"formSafe.resetForm\">{{validData(formSafe.tableOption.emptyText,t(\"form.emptyBtn\"))}}</el-button>\r\n <slot name=\"menu-form\"\r\n :disabled=\"formSafe.allDisabled\"\r\n :size=\"formSafe.size\"></slot>\r\n </el-col>\r\n</template>\r\n<script>\r\nimport locale from \"core/locale\";\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: 'form',\r\n inject: [\"formSafe\"],\r\n mixins: [locale],\r\n computed: {\r\n menuXsSpan () {\r\n return this.formSafe.tableOption.menuXsSpan || this.formSafe.config.xsSpan;\r\n },\r\n menuSpan () {\r\n return this.formSafe.tableOption.menuSpan || this.formSafe.config.xsSpan;\r\n },\r\n styleName () {\r\n if (this.menuSpan !== 24) {\r\n return {\r\n padding: 0\r\n }\r\n }\r\n return {}\r\n }\r\n }\r\n})\r\n</script>","<template>\r\n <div :class=\"[b({'header':!isHeader,'arrow':!arrow})]\"\r\n v-if=\"display\">\r\n <slot name=\"tabs\"></slot>\r\n <el-collapse @change=\"handleChange\"\r\n v-model=\"activeName\">\r\n <el-collapse-item :name=\"1\"\r\n :disabled=\"!arrow\">\r\n <template #title\r\n v-if=\"$slots.header&&header\">\r\n <div :class=\"b('header')\">\r\n <slot name=\"header\"></slot>\r\n </div>\r\n </template>\r\n <template #title\r\n v-else-if=\"(label || icon)&&header\">\r\n <div :class=\"b('header')\">\r\n <i :class=\"[icon,b('icon')]\"\r\n v-if=\"icon\"></i>\r\n <h1 :class=\"b('title')\"\r\n v-if=\"label\">{{label}}</h1>\r\n </div>\r\n </template>\r\n <slot></slot>\r\n </el-collapse-item>\r\n </el-collapse>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"group\",\r\n empit: ['change'],\r\n data () {\r\n return {\r\n activeName: '',\r\n }\r\n },\r\n props: {\r\n arrow: {\r\n type: Boolean,\r\n default: true\r\n },\r\n collapse: {\r\n type: Boolean,\r\n default: true\r\n },\r\n header: {\r\n type: Boolean,\r\n default: true\r\n },\r\n icon: {\r\n type: String\r\n },\r\n display: {\r\n type: Boolean,\r\n default: true\r\n },\r\n card: {\r\n type: Boolean,\r\n default: false\r\n },\r\n label: {\r\n type: String\r\n }\r\n },\r\n watch: {\r\n text (val) {\r\n this.activeName = [val]\r\n },\r\n },\r\n computed: {\r\n text () {\r\n return this.collapse ? 1 : 0\r\n },\r\n isHeader () {\r\n return this.$slots.header && this.header || ((this.label || this.icon) && this.header)\r\n }\r\n },\r\n created () {\r\n this.activeName = [this.text]\r\n },\r\n methods: {\r\n handleChange (activeNames) {\r\n this.$emit('change', activeNames)\r\n },\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-input :prefix-icon=\"prefixIcon\"\r\n :suffix-icon=\"suffixIcon\"\r\n :placeholder=\"placeholder\"\r\n v-model=\"text\"\r\n :size=\"size\"\r\n ref=\"main\"\r\n :readonly=\"readonly\"\r\n @click=\"handleClick\"\r\n :clearable=\"clearableVal\"\r\n :disabled=\"disabled\">\r\n <template #append>\r\n <el-color-picker size=\"small\"\r\n v-model=\"text\"\r\n :color-format=\"colorFormat\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :disabled=\"disabled\"\r\n :show-alpha=\"showAlpha\"\r\n :predefine=\"predefineColors\"></el-color-picker>\r\n </template>\r\n </el-input>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"input-color\",\r\n mixins: [props(), event()],\r\n props: {\r\n prefixIcon: {\r\n type: String\r\n },\r\n suffixIcon: {\r\n type: String\r\n },\r\n colorFormat: String,\r\n predefineColors: {\r\n type: Array,\r\n default: () => {\r\n return [\r\n \"#ff4500\",\r\n \"#ff8c00\",\r\n \"#ffd700\",\r\n \"#90ee90\",\r\n \"#00ced1\",\r\n \"#1e90ff\",\r\n \"#c71585\",\r\n \"rgba(255, 69, 0, 0.68)\",\r\n \"rgb(255, 120, 0)\",\r\n \"hsv(51, 100, 98)\",\r\n \"hsva(120, 40, 94, 0.5)\",\r\n \"hsl(181, 100%, 37%)\",\r\n \"hsla(209, 100%, 56%, 0.73)\"\r\n ]\r\n }\r\n },\r\n showAlpha: {\r\n type: Boolean,\r\n default: true\r\n }\r\n }\r\n});\r\n</script>\r\n\r\n\r\n","<template>\r\n <div :class=\"b()\">\n <el-input :prefix-icon=\"prefixIcon\"\n :suffix-icon=\"suffixIcon\"\n :placeholder=\"placeholder || t('cron.placeholder')\"\n v-model=\"text\"\n :size=\"size\"\n ref=\"main\"\n @clear=\"handleClear\"\r\n :clearable=\"disabled?false:clearable\"\r\n :disabled=\"disabled\"\r\n @click=\"handleShow\"\r\n @focus=\"handleShow\">\r\n <template #append>\r\n <el-button @click=\"handleShow\" :disabled=\"disabled\">\r\n <i class=\"el-icon-setting\"></i>\r\n </el-button>\r\n </template>\r\n </el-input>\r\n \n <el-dialog class=\"avue-dialog\"\n :title=\"t('cron.title')\"\n :append-to-body=\"$AVUE.appendToBody\"\n lock-scroll\n v-model=\"box\"\n width=\"700px\">\n <div :class=\"b('container')\">\n <!-- Tabs 切换不同时间单位 -->\n <el-tabs v-model=\"activeTab\" type=\"border-card\">\n <el-tab-pane :label=\"t('cron.units.second')\" name=\"second\">\n <cron-tab v-model=\"cronData.second\" :type=\"'second'\" :max=\"59\" />\n </el-tab-pane>\n <el-tab-pane :label=\"t('cron.units.minute')\" name=\"minute\">\n <cron-tab v-model=\"cronData.minute\" :type=\"'minute'\" :max=\"59\" />\n </el-tab-pane>\n <el-tab-pane :label=\"t('cron.units.hour')\" name=\"hour\">\n <cron-tab v-model=\"cronData.hour\" :type=\"'hour'\" :max=\"23\" />\n </el-tab-pane>\n <el-tab-pane :label=\"t('cron.units.day')\" name=\"day\">\n <cron-tab v-model=\"cronData.day\" :type=\"'day'\" :max=\"31\" :min=\"1\" :show-not-specify=\"true\" />\n </el-tab-pane>\n <el-tab-pane :label=\"t('cron.units.month')\" name=\"month\">\n <cron-tab v-model=\"cronData.month\" :type=\"'month'\" :max=\"12\" :min=\"1\" />\n </el-tab-pane>\n <el-tab-pane :label=\"t('cron.units.week')\" name=\"week\">\n <cron-tab v-model=\"cronData.week\" :type=\"'week'\" :max=\"7\" :min=\"1\" :show-not-specify=\"true\" :is-week=\"true\" />\n </el-tab-pane>\n </el-tabs>\n \r\n <!-- Cron 表达式预览 -->\n <div :class=\"b('result')\">\n <div :class=\"b('expression')\">\n <span :class=\"b('label')\">{{ t('cron.expression') }}</span>\n <el-input v-model=\"cronExpression\" size=\"small\" style=\"width: 300px\" @input=\"parseCronExpression\" />\n </div>\n <div :class=\"b('preview')\">\n <span :class=\"b('label')\">{{ t('cron.nextTimes') }}</span>\n <ul :class=\"b('times')\">\n <li v-for=\"(time, index) in nextTimes\" :key=\"index\">{{ time }}</li>\n </ul>\n </div>\r\n </div>\r\n </div>\r\n \n <template #footer>\n <el-button @click=\"box = false\">{{ t('common.cancelBtn') }}</el-button>\n <el-button type=\"primary\" @click=\"handleConfirm\">{{ t('common.submitBtn') }}</el-button>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<script>\nimport create from \"core/create\";\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport locale from \"core/locale\";\n\n// Cron Tab 子组件\nconst CronTab = {\n name: 'CronTab',\n mixins: [locale],\n props: {\n modelValue: Object,\n type: String,\n max: Number,\r\n min: { type: Number, default: 0 },\r\n showNotSpecify: Boolean,\n isWeek: Boolean\n },\n emits: ['update:modelValue'],\n computed: {\n data: {\n get() { return this.modelValue; },\n set(val) { this.$emit('update:modelValue', val); }\n },\n weekLabels() {\n const labels = this.t('cron.weekLabels');\n return Array.isArray(labels) ? labels : [];\n },\n typeLabel() {\n return this.t(`cron.units.${this.type}`);\n },\n options() {\n const list = [];\n for (let i = this.min; i <= this.max; i++) {\r\n list.push({\r\n value: i,\r\n label: this.isWeek ? this.weekLabels[i - 1] : String(i)\r\n });\r\n }\r\n return list;\r\n }\r\n },\r\n methods: {\r\n updateData(key, value) {\r\n this.$emit('update:modelValue', { ...this.data, [key]: value });\r\n }\r\n },\r\n template: `\n <div class=\"avue-input-cron__tab\">\n <el-radio-group :model-value=\"data.type\" @update:model-value=\"val => updateData('type', val)\">\n <div class=\"avue-input-cron__option\">\n <el-radio label=\"every\">{{ t('cron.every', { label: typeLabel }) }}</el-radio>\n </div>\n <div class=\"avue-input-cron__option\" v-if=\"showNotSpecify\">\n <el-radio label=\"notSpecify\">{{ t('cron.notSpecify') }}</el-radio>\n </div>\n <div class=\"avue-input-cron__option\">\n <el-radio label=\"range\">{{ t('cron.range') }}</el-radio>\n <span v-if=\"data.type === 'range'\" class=\"avue-input-cron__inline\">\n {{ t('cron.from') }}\n <el-input-number v-model=\"data.rangeStart\" :min=\"min\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('rangeStart', val)\" />\n {{ t('cron.to') }}\n <el-input-number v-model=\"data.rangeEnd\" :min=\"min\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('rangeEnd', val)\" />\n {{ typeLabel }}\n </span>\n </div>\n <div class=\"avue-input-cron__option\">\n <el-radio label=\"step\">{{ t('cron.step') }}</el-radio>\n <span v-if=\"data.type === 'step'\" class=\"avue-input-cron__inline\">\n {{ t('cron.startingFrom') }}\n <el-input-number v-model=\"data.stepStart\" :min=\"min\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('stepStart', val)\" />\n {{ typeLabel }}\n {{ t('cron.everyInterval') }}\n <el-input-number v-model=\"data.stepValue\" :min=\"1\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('stepValue', val)\" />\n {{ typeLabel }}\n </span>\n </div>\n <div class=\"avue-input-cron__option\">\n <el-radio label=\"specify\">{{ t('cron.specify') }}</el-radio>\n </div>\n </el-radio-group>\n <div v-if=\"data.type === 'specify'\" class=\"avue-input-cron__specify\">\n <el-checkbox-group :model-value=\"data.values\" @update:model-value=\"val => updateData('values', val)\">\r\n <el-checkbox v-for=\"opt in options\" :key=\"opt.value\" :label=\"opt.value\">{{ opt.label }}</el-checkbox>\r\n </el-checkbox-group>\r\n </div>\r\n </div>\r\n `\r\n};\r\n\r\nexport default create({\n name: \"input-cron\",\n components: { CronTab },\n mixins: [props(), event(), locale],\n props: {\n prefixIcon: String,\n suffixIcon: String,\n dialogWidth: { type: String, default: '700px' }\r\n },\r\n data() {\r\n return {\r\n box: false,\r\n activeTab: 'second',\r\n cronData: {\r\n second: { type: 'every', rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1, values: [] },\r\n minute: { type: 'every', rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1, values: [] },\r\n hour: { type: 'every', rangeStart: 0, rangeEnd: 23, stepStart: 0, stepValue: 1, values: [] },\r\n day: { type: 'every', rangeStart: 1, rangeEnd: 31, stepStart: 1, stepValue: 1, values: [] },\r\n month: { type: 'every', rangeStart: 1, rangeEnd: 12, stepStart: 1, stepValue: 1, values: [] },\r\n week: { type: 'notSpecify', rangeStart: 1, rangeEnd: 7, stepStart: 1, stepValue: 1, values: [] }\r\n }\r\n };\r\n },\r\n computed: {\r\n cronExpression: {\r\n get() {\r\n return this.generateCron();\r\n },\r\n set(val) {\r\n // 手动输入时解析\r\n }\r\n },\r\n nextTimes() {\r\n return this.calculateNextTimes(this.cronExpression, 5);\r\n }\r\n },\r\n watch: {\r\n modelValue: {\r\n immediate: true,\r\n handler(val) {\r\n if (val) {\r\n this.parseCronExpression(val);\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n handleClear() {\r\n this.box = false;\r\n },\r\n handleShow() {\r\n this.$refs.main.blur();\r\n if (this.disabled || this.readonly) return;\r\n this.box = true;\r\n },\r\n handleConfirm() {\r\n this.text = this.cronExpression;\r\n this.box = false;\r\n },\r\n generateCron() {\r\n const parts = ['second', 'minute', 'hour', 'day', 'month', 'week'].map(key => {\r\n return this.generatePart(this.cronData[key], key);\r\n });\r\n return parts.join(' ');\r\n },\r\n generatePart(data, type) {\r\n switch (data.type) {\r\n case 'every':\r\n return '*';\r\n case 'notSpecify':\r\n return '?';\r\n case 'range':\r\n return `${data.rangeStart}-${data.rangeEnd}`;\r\n case 'step':\r\n return `${data.stepStart}/${data.stepValue}`;\r\n case 'specify':\r\n return data.values.length > 0 ? data.values.sort((a, b) => a - b).join(',') : '*';\r\n default:\r\n return '*';\r\n }\r\n },\r\n parseCronExpression(expression) {\r\n if (!expression) return;\r\n const parts = expression.trim().split(/\\s+/);\r\n if (parts.length < 6) return;\r\n \r\n const keys = ['second', 'minute', 'hour', 'day', 'month', 'week'];\r\n keys.forEach((key, index) => {\r\n this.cronData[key] = this.parsePart(parts[index], key);\r\n });\r\n },\r\n parsePart(part, type) {\r\n const defaults = {\r\n second: { rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1 },\r\n minute: { rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1 },\r\n hour: { rangeStart: 0, rangeEnd: 23, stepStart: 0, stepValue: 1 },\r\n day: { rangeStart: 1, rangeEnd: 31, stepStart: 1, stepValue: 1 },\r\n month: { rangeStart: 1, rangeEnd: 12, stepStart: 1, stepValue: 1 },\r\n week: { rangeStart: 1, rangeEnd: 7, stepStart: 1, stepValue: 1 }\r\n };\r\n \r\n const base = { ...defaults[type], values: [] };\r\n \r\n if (part === '*') {\r\n return { ...base, type: 'every' };\r\n }\r\n if (part === '?') {\r\n return { ...base, type: 'notSpecify' };\r\n }\r\n if (part.includes('/')) {\r\n const [start, step] = part.split('/');\r\n return { ...base, type: 'step', stepStart: parseInt(start) || 0, stepValue: parseInt(step) || 1 };\r\n }\r\n if (part.includes('-')) {\r\n const [start, end] = part.split('-');\r\n return { ...base, type: 'range', rangeStart: parseInt(start), rangeEnd: parseInt(end) };\r\n }\r\n if (part.includes(',')) {\r\n const values = part.split(',').map(v => parseInt(v));\r\n return { ...base, type: 'specify', values };\r\n }\r\n // 单个数字\r\n const num = parseInt(part);\r\n if (!isNaN(num)) {\r\n return { ...base, type: 'specify', values: [num] };\r\n }\r\n \r\n return { ...base, type: 'every' };\r\n },\r\n calculateNextTimes(cron, count) {\r\n if (!cron) return [];\r\n try {\n const times = [];\n const parts = cron.split(/\\s+/);\n if (parts.length < 6) return [this.t('cron.invalidFormat')];\n \r\n let current = new Date();\r\n for (let i = 0; i < count && times.length < count; i++) {\r\n current = this.getNextTime(current, parts);\r\n if (current) {\r\n times.push(this.formatDate(current));\r\n current = new Date(current.getTime() + 1000);\r\n } else {\r\n break;\r\n }\r\n }\n return times.length > 0 ? times : [this.t('cron.noNextTimes')];\n } catch (e) {\n return [this.t('cron.parseError')];\n }\n },\r\n getNextTime(date, parts) {\r\n // 简化的下次执行时间计算\r\n const [second, minute, hour, day, month, week] = parts;\r\n let next = new Date(date);\r\n \r\n // 最多尝试365天\r\n for (let i = 0; i < 365 * 24 * 60; i++) {\r\n next.setSeconds(next.getSeconds() + 1);\r\n if (this.matchCron(next, parts)) {\r\n return next;\r\n }\r\n // 跳过不匹配的分钟\r\n if (!this.matchPart(next.getMinutes(), minute)) {\r\n next.setSeconds(0);\r\n continue;\r\n }\r\n }\r\n return null;\r\n },\r\n matchCron(date, parts) {\r\n const [second, minute, hour, day, month, week] = parts;\r\n return this.matchPart(date.getSeconds(), second) &&\r\n this.matchPart(date.getMinutes(), minute) &&\r\n this.matchPart(date.getHours(), hour) &&\r\n this.matchPart(date.getDate(), day) &&\r\n this.matchPart(date.getMonth() + 1, month) &&\r\n this.matchPart(date.getDay() || 7, week);\r\n },\r\n matchPart(value, pattern) {\r\n if (pattern === '*' || pattern === '?') return true;\r\n if (pattern.includes('/')) {\r\n const [start, step] = pattern.split('/').map(v => parseInt(v) || 0);\r\n return (value - start) % step === 0 && value >= start;\r\n }\r\n if (pattern.includes('-')) {\r\n const [min, max] = pattern.split('-').map(v => parseInt(v));\r\n return value >= min && value <= max;\r\n }\r\n if (pattern.includes(',')) {\r\n return pattern.split(',').map(v => parseInt(v)).includes(value);\r\n }\r\n return parseInt(pattern) === value;\r\n },\r\n formatDate(date) {\r\n const pad = n => String(n).padStart(2, '0');\r\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-input :prefix-icon=\"prefixIcon\"\r\n :suffix-icon=\"suffixIcon\"\r\n :placeholder=\"placeholder\"\r\n v-model=\"text\"\r\n :popper-class=\"popperClass\"\r\n :size=\"size\"\r\n ref=\"main\"\r\n @clear=\"handleClear\"\r\n :clearable=\"disabled?false:clearable\"\r\n :disabled=\"disabled\"\r\n @click=\"handleClick\"\r\n @focus=\"handleShow\">\r\n <template #append>\r\n <icon-temp @click=\"handleShow\"\r\n :text=\"text\"\r\n :size=\"28\"\r\n :small=\"size==='small'\"></icon-temp>\r\n\r\n </template>\r\n </el-input>\r\n <div v-if=\"box\">\r\n <el-dialog class=\"avue-dialog\"\r\n :title=\"placeholder\"\r\n :before-close=\"beforeClose\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n lock-scroll\r\n v-model=\"box\"\r\n :width=\"dialogWidth\">\r\n <div :class=\"b('filter')\">\r\n <el-input :placeholder=\"validData(option.filterText,t('tip.input'))\"\r\n :size=\"size\"\r\n v-model=\"filterText\"></el-input>\r\n </div>\r\n <avue-tabs :option=\"option\"\r\n @change=\"handleTabs\"></avue-tabs>\r\n <div :class=\"b('list')\">\r\n <div :class=\"b('item')\"\r\n v-for=\"(item,index) in list\"\r\n @click=\"handleSubmit(item.value)\"\r\n :key=\"index\">\r\n <icon-temp :text=\"item.value\"\r\n :size=\"item.size\"\r\n :small=\"size==='small'\"\r\n :color=\"item.color\"></icon-temp>\r\n <p>{{item.label || item.value}}</p>\r\n </div> \r\n </div>\r\n </el-dialog>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport iconTemp from 'common/components/icon/index';\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"input-icon\",\r\n components: {\r\n iconTemp\r\n },\r\n mixins: [props(), event(), locale],\r\n props: {\r\n beforeClose: Function,\r\n prefixIcon: {\r\n type: String\r\n },\r\n suffixIcon: {\r\n type: String\r\n },\r\n dialogWidth: {\r\n type: String,\r\n default: '80%'\r\n },\r\n iconList: {\r\n type: Array,\r\n default: () => {\r\n return [];\r\n }\r\n }\r\n },\r\n data () {\r\n return {\r\n filterText: '',\r\n box: false,\r\n tabs: {}\r\n };\r\n },\r\n computed: {\r\n list () {\r\n let list = this.tabs.list.map(ele => {\r\n if (!ele.value && !ele.label) {\r\n return {\r\n label: ele,\r\n value: ele\r\n }\r\n }\r\n return ele\r\n });\r\n if (this.filterText) {\r\n list = list.filter(ele => ele.label.indexOf(this.filterText) !== -1)\r\n }\r\n return list\r\n },\r\n option () {\r\n return {\r\n column: this.iconList\r\n };\r\n }\r\n },\r\n created () {\r\n this.tabs = this.iconList[0]\r\n },\r\n methods: {\r\n handleClear () {\r\n setTimeout(() => {\r\n this.box = false;\r\n }, 0)\r\n },\r\n handleTabs (tabs) {\r\n this.tabs = tabs;\r\n },\r\n handleSubmit (item) {\r\n this.box = false;\r\n this.text = item;\r\n this.handleChange(item);\r\n },\r\n handleShow () {\r\n this.$refs.main.blur();\r\n if (this.disabled || this.readonly) return;\r\n this.tabs = this.iconList[0]\r\n this.box = true;\r\n }\r\n }\r\n});\r\n</script>\r\n\r\n\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-input\r\n :prefix-icon=\"prefixIcon\"\r\n :suffix-icon=\"suffixIcon\"\r\n :size=\"size\"\r\n @clear=\"handleClear\"\r\n :clearable=\"clearableVal\"\r\n :rows=\"rows\"\r\n :autosize=\"{ minRows: minRows, maxRows: maxRows }\"\r\n :disabled=\"disabled\"\r\n ref=\"main\"\r\n :model-value=\"address\"\r\n @focus=\"handleShow\"\r\n @click.=\"handleClick\"\r\n :placeholder=\"placeholder\"\r\n >\r\n </el-input>\r\n <div v-if=\"box\">\r\n <el-dialog\r\n class=\"avue-dialog\"\r\n :width=\"dialogWidth\"\r\n :before-close=\"beforeClose\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n lock-scroll\r\n :title=\"placeholder\"\r\n @close=\"handleClose\"\r\n v-model=\"box\"\r\n >\r\n <div :class=\"b('content')\" v-if=\"box\">\r\n <el-input\n :class=\"b('content-input')\"\n id=\"map__input\"\n :size=\"size\"\n @clear=\"clear\"\n :readonly=\"disabled\"\n v-model=\"formattedAddress\"\n clearable\n :placeholder=\"t('map.searchPlaceholder')\"\n ></el-input>\n <div :class=\"b('content-box')\">\r\n <div\r\n id=\"map__container\"\r\n :class=\"b('content-container')\"\r\n tabindex=\"0\"\r\n ></div>\r\n <div id=\"map__result\" :class=\"b('content-result')\"></div>\r\n </div>\r\n </div>\r\n <span class=\"avue-dialog__footer\">\r\n <el-button\r\n type=\"primary\"\r\n :size=\"size\"\r\n icon=\"el-icon-check\"\r\n v-if=\"!(disabled || readonly)\"\r\n @click=\"handleSubmit\"\r\n >{{ t(\"common.submitBtn\") }}</el-button\r\n >\r\n </span>\r\n </el-dialog>\r\n </div>\r\n </div>\r\n</template>\r\n<script>\r\nimport packages from \"core/packages\";\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport locale from \"core/locale\";\r\nexport default create({\r\n name: \"input-map\",\r\n mixins: [props(), event(), locale],\r\n props: {\r\n beforeClose: Function,\r\n mapChange: Function,\r\n prefixIcon: {\r\n type: String,\r\n },\r\n suffixIcon: {\r\n type: String,\r\n },\r\n dialogWidth: {\r\n type: String,\r\n default: \"80%\",\r\n },\r\n rows: Number,\r\n minRows: {\r\n type: Number,\r\n default: 1,\r\n },\r\n maxRows: {\r\n type: Number,\r\n },\r\n },\r\n data() {\r\n return {\r\n formattedAddress: \"\",\r\n address: \"\",\r\n poi: {}, \r\n marker: null,\r\n map: null,\r\n box: false,\r\n };\r\n },\r\n watch: {\r\n poi(val) {\r\n this.formattedAddress = val.formattedAddress;\r\n },\r\n modelValue(val) {\r\n if (this.validatenull(val)) {\r\n this.poi = {};\r\n this.address = \"\";\r\n }\r\n },\r\n text(val) {\r\n if (!this.validatenull(val)) {\r\n this.poi = {\r\n longitude: val[0],\r\n latitude: val[1],\r\n formattedAddress: val[2],\r\n };\r\n this.address = val[2];\r\n }\r\n },\r\n box: {\r\n handler() {\r\n if (this.box) {\r\n this.$nextTick(() =>\r\n this.init(() => {\r\n if (this.longitude && this.latitude) {\r\n this.addMarker(this.longitude, this.latitude);\r\n this.getAddress(this.longitude, this.latitude);\r\n }\r\n })\r\n );\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n computed: {\r\n longitude() {\r\n return this.text[0];\r\n },\r\n latitude() {\r\n return this.text[1];\r\n },\r\n title() {\n return this.disabled || this.readonly ? this.t('common.view') : this.t('common.select');\n },\n },\r\n methods: {\r\n handleTextValue(val) {\r\n if (!this.validatenull(val)) {\r\n this.poi = {\r\n longitude: val[0],\r\n latitude: val[1],\r\n formattedAddress: val[2],\r\n };\r\n this.address = val[2];\r\n }\r\n },\r\n handleModelValue(val) {\r\n if (this.validatenull(val)) this.poi = {};\r\n },\r\n clear() {\r\n this.poi = {};\r\n this.clearMarker();\r\n },\r\n handleSubmit() {\r\n this.setVal();\r\n this.box = false;\r\n },\r\n handleClear() {\r\n this.text = [];\r\n this.poi = {};\r\n this.handleChange(this.text);\r\n setTimeout(() => {\r\n this.box = false;\r\n }, 0);\r\n },\r\n setVal() {\r\n this.text = [\r\n this.poi.longitude,\r\n this.poi.latitude,\r\n this.poi.formattedAddress,\r\n ];\r\n this.handleChange(this.text);\r\n },\r\n handleShow() {\r\n this.$refs.main.blur();\r\n this.box = true;\r\n },\r\n //新增坐标\r\n addMarker(R, P) {\r\n this.clearMarker();\r\n this.marker = new window.AMap.Marker({\r\n position: [R, P],\r\n });\r\n this.marker.setMap(this.map);\r\n },\r\n //清空坐标\r\n clearMarker() {\r\n if (this.marker) {\r\n this.marker.setMap(null);\r\n this.marker = null;\r\n }\r\n },\r\n //获取坐标\r\n getAddress(R, P) {\r\n //回调函数\r\n let geocoder = new window.AMap.Geocoder({});\r\n geocoder.getAddress([R, P], (status, result) => {\r\n if (status === \"complete\" && result.info === \"OK\") {\r\n this.mapChange && this.mapChange(result);\r\n const regeocode = result.regeocode;\r\n this.poi = Object.assign(regeocode, {\r\n longitude: R,\r\n latitude: P,\r\n });\r\n // 自定义点标记内容\r\n var markerContent = document.createElement(\"div\");\r\n // 点标记中的图标\r\n var markerImg = document.createElement(\"img\");\r\n markerImg.style.width = \"25px\";\r\n markerImg.src =\r\n \"//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png\";\r\n markerContent.appendChild(markerImg);\r\n\r\n // 点标记中的文本\r\n var markerSpan = document.createElement(\"span\");\r\n markerSpan.className = \"avue-input-map__marker\";\r\n markerSpan.innerHTML = this.poi.formattedAddress;\r\n markerContent.appendChild(markerSpan);\r\n this.marker.setContent(markerContent); //更新点标记内容\r\n }\r\n });\r\n },\r\n handleClose() {\r\n window.poiPicker.clearSearchResults();\r\n },\r\n addClick() {\r\n this.map.on(\"click\", (e) => {\r\n if (this.disabled || this.readonly) return;\r\n const lnglat = e.lnglat;\r\n const P = lnglat.lat;\r\n const R = lnglat.lng;\r\n this.addMarker(R, P);\r\n this.getAddress(R, P);\r\n });\r\n },\r\n init(callback) {\r\n if (!window.AMap) {\r\n packages.logs(\"Map\");\r\n return;\r\n }\r\n this.map = new window.AMap.Map(\r\n \"map__container\",\r\n Object.assign(\r\n {\r\n zoom: 13,\r\n center: (() => {\r\n if (this.longitude && this.latitude)\r\n return [this.longitude, this.latitude];\r\n })(),\r\n },\r\n this.params\r\n )\r\n );\r\n this.initPoip();\r\n this.addClick();\r\n callback();\r\n },\r\n initPoip() {\r\n if (!window.AMapUI) {\r\n packages.logs(\"MapUi\");\r\n return;\r\n }\r\n window.AMapUI.loadUI([\"misc/PoiPicker\"], (PoiPicker) => {\r\n var poiPicker = new PoiPicker({\r\n input: \"map__input\",\r\n placeSearchOptions: {\r\n map: this.map,\r\n pageSize: 10,\r\n },\r\n searchResultsContainer: \"map__result\",\r\n });\r\n //初始化poiPicker\r\n this.poiPickerReady(poiPicker);\r\n });\r\n },\r\n poiPickerReady(poiPicker) {\r\n window.poiPicker = poiPicker;\r\n //选取了某个POI\r\n poiPicker.on(\"poiPicked\", (poiResult) => {\r\n this.clearMarker();\r\n var source = poiResult.source,\r\n poi = poiResult.item;\r\n this.poi = Object.assign(poi, {\r\n formattedAddress: poi.name,\r\n longitude: poi.location.lng,\r\n latitude: poi.location.lat,\r\n });\r\n if (source !== \"search\") {\r\n poiPicker.searchByKeyword(poi.name);\r\n }\r\n });\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <el-input-number\r\n v-model=\"text\"\r\n :class=\"b()\"\r\n @click=\"handleClick\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :precision=\"precision\"\r\n :placeholder=\"placeholder\"\r\n :step-strictly=\"stepStrictly\"\r\n :size=\"size\"\r\n :min=\"min\"\r\n :align=\"align\"\r\n :max=\"max\"\r\n :step=\"step\"\r\n :clearable=\"clearableVal\"\r\n :readonly=\"readonly\"\r\n :controls-position=\"controlsPosition\"\r\n :controls=\"controls\"\r\n :disabled-scientific=\"disabledScientific\"\r\n :disabled=\"disabled\"\r\n >\r\n <template #prefix v-if=\"prefix\">\r\n <span @click=\"prefixClick(text)\">{{ prefix }}</span>\r\n </template>\r\n <template #suffix v-if=\"suffix\">\r\n <span @click=\"suffixClick(text)\">{{ suffix }}</span>\r\n </template>\r\n </el-input-number>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"input-number\",\r\n mixins: [props(), event()],\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n align: String,\r\n disabledScientific: Boolean,\r\n stepStrictly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n controls: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n step: {\r\n type: Number,\r\n default: 1,\r\n },\r\n controlsPosition: {\r\n type: String,\r\n default: \"right\",\r\n },\r\n precision: {\r\n type: Number,\r\n },\r\n min: {\r\n type: Number,\r\n default: -Infinity,\r\n },\r\n max: {\r\n type: Number,\r\n default: Infinity,\r\n },\r\n prefix: {\r\n type: String,\r\n },\r\n prefixClick: {\r\n type: Function,\r\n default: () => {},\r\n },\r\n suffix: {\r\n type: String,\r\n },\r\n suffixClick: {\r\n type: Function,\r\n default: () => {},\r\n },\r\n },\r\n created() {},\r\n mounted() {},\r\n methods: {},\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-input\r\n :prefix-icon=\"prefixIcon\"\r\n :suffix-icon=\"suffixIcon\"\r\n :size=\"size\"\r\n :model-value=\"labelShow\"\r\n :clearable=\"disabled ? false : clearable\"\r\n :placeholder=\"placeholder\"\r\n ref=\"main\"\r\n @clear=\"handleClear\"\r\n @focus=\"handleShow\"\r\n @click=\"handleClick\"\r\n :disabled=\"disabled\"\r\n >\r\n </el-input>\r\n <el-dialog\r\n class=\"avue-dialog\"\r\n :class=\"b()\"\r\n :width=\"dialogWidth\"\r\n :before-close=\"handelBeforeClose\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n lock-scroll\r\n destroy-on-close\r\n :title=\"placeholder\"\r\n v-model=\"box\"\r\n >\r\n <avue-crud\r\n :class=\"b('crud')\"\r\n ref=\"crud\"\r\n :option=\"option\"\r\n :data=\"data\"\r\n :table-loading=\"loading\"\r\n @on-load=\"onList\"\r\n @search-change=\"handleSearchChange\"\r\n @search-reset=\"handleSearchChange\"\r\n @select-all=\"handleSelectionAllChange\"\r\n @select=\"handleSelectionChange\"\r\n :rowClassName=\"handleRowClassName\"\r\n @current-row-change=\"handleCurrentChange\"\r\n v-model:search=\"search\"\r\n v-model:page=\"page\"\r\n ></avue-crud>\r\n <span class=\"avue-dialog__footer\">\r\n <el-button\r\n type=\"primary\"\r\n :size=\"size\"\r\n icon=\"el-icon-check\"\r\n @click=\"handleSubmit()\"\r\n >{{ t(\"common.submitBtn\") }}</el-button\r\n >\r\n </span>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport locale from \"core/locale\";\r\nexport default create({\r\n name: \"input-table\",\r\n mixins: [props(), event(), locale],\r\n data() {\r\n return {\r\n object: [],\r\n active: [],\r\n search: {},\r\n page: {},\r\n loading: false,\r\n box: false,\r\n created: false,\r\n data: [],\r\n };\r\n },\r\n props: {\r\n beforeClose: Function,\r\n prefixIcon: {\r\n type: String,\r\n },\r\n suffixIcon: {\r\n type: String,\r\n },\r\n formatter: Function,\r\n onLoad: Function,\r\n children: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n dialogWidth: {\r\n type: String,\r\n default: \"80%\",\r\n },\r\n },\r\n computed: {\r\n isMultiple() {\r\n return this.multiple;\r\n },\r\n title() {\n return this.disabled || this.readonly ? this.t('common.view') : this.t('common.select');\n },\n labelShow() {\r\n if (typeof this.formatter == \"function\") {\r\n return this.formatter(\r\n this.isMultiple ? this.object : this.object[0] || {}\r\n );\r\n }\r\n return this.object.map((ele) => ele[this.labelKey]).join(\",\");\r\n },\r\n option() {\r\n return Object.assign(\r\n {\r\n menu: false,\r\n header: false,\r\n size: this.size,\r\n tip: false,\r\n headerAlign: \"center\",\r\n align: \"center\",\r\n highlightCurrentRow: !this.isMultiple,\r\n reserveSelection: this.isMultiple,\r\n selection: this.isMultiple,\r\n selectable: (row, index) => {\r\n return !row.disabled;\r\n },\r\n },\r\n this.children\r\n );\r\n },\r\n },\r\n methods: {\r\n handelBeforeClose(done) {\r\n const callback = () => {\r\n this.active = [];\r\n done();\r\n };\r\n if (typeof this.beforeClose === \"function\") {\r\n this.beforeClose(callback);\r\n } else {\r\n callback();\r\n }\r\n },\r\n handleSelectionAllChange(val) {\r\n let ids = this.data.map((ele) => ele[this.valueKey]);\r\n let list = val.filter((ele) => ids.includes(ele[this.valueKey]));\r\n this.data.forEach((row) => {\r\n let index = this.active.findIndex(\r\n (ele) => ele[this.valueKey] == row[this.valueKey]\r\n );\r\n if (list.length == 0) {\r\n if (index != -1) this.active.splice(index, 1);\r\n } else {\r\n if (index == -1) this.active.push(row);\r\n }\r\n });\r\n },\r\n handleSelectionChange(val, row) {\r\n let checkbox = val.find(\r\n (ele) => ele[this.valueKey] == row[this.valueKey]\r\n );\r\n if (checkbox) {\r\n this.active.push(row);\r\n } else {\r\n let index = this.active.findIndex(\r\n (ele) => ele[this.valueKey] == row[this.valueKey]\r\n );\r\n if (index != -1) this.active.splice(index, 1);\r\n }\r\n },\r\n handleModelValue(val) {\r\n if (this.validatenull(val)) {\r\n this.active = [];\r\n this.object = [];\r\n }\r\n },\r\n handleTextValue(val) {\r\n if (typeof this.onLoad == \"function\") {\r\n this.onLoad({ value: this.text }, (data) => {\r\n let result = Array.isArray(data) ? data : [data];\r\n const valArray = Array.isArray(val) ? val : [val];\r\n const activeObjArray = valArray && valArray.length\r\n ? result.filter((item) =>valArray.some((val) => val === item[this.valueKey]))\r\n : [];\r\n this.active = this.deepClone(activeObjArray)\r\n\r\n const activeObjArray2 = valArray && valArray.length\r\n ? valArray.map((item) =>{\r\n const resultIndex = result.findIndex((val) => item === val[this.valueKey])\r\n return resultIndex < 0 ? {[this.labelKey]: item, [this.valueKey]: item} : result[resultIndex]\r\n })\r\n : [];\r\n this.object = this.deepClone(activeObjArray2)\r\n });\r\n }\r\n },\r\n handleClear() {\r\n this.setVal([]);\r\n this.box = false;\r\n },\r\n handleShow() {\r\n this.$refs.main.blur();\r\n if (this.disabled || this.readonly) return;\r\n this.search = {};\r\n this.page = {\r\n currentPage: 1,\r\n total: 0,\r\n };\r\n this.data = [];\r\n this.box = true;\r\n },\r\n handleSubmit() {\r\n const callback = () => {\r\n this.setVal();\r\n };\r\n if (typeof this.beforeClose === \"function\") {\r\n this.beforeClose(callback);\r\n } else {\r\n callback();\r\n }\r\n },\r\n setVal(value) {\r\n this.object = this.deepClone(value || this.active);\r\n this.text = this.object.map((ele) => ele[this.valueKey]);\r\n this.box = false;\r\n },\r\n handleRowClassName({ row, rowIndex }) {\r\n if (row[this.disabledKey]) return \"disabled\";\r\n },\r\n handleCurrentChange(val) {\r\n if (!val) return;\r\n if (this.isMultiple) {\r\n this.$refs.crud.setCurrentRow(null);\r\n } else {\r\n if (val[this.disabledKey]) {\r\n this.$refs.crud.setCurrentRow(this.active[0]);\r\n } else {\r\n this.active = [val];\r\n }\r\n }\r\n },\r\n handleSearchChange(form, done) {\r\n this.loading = true;\r\n this.page.currentPage = 1;\r\n this.onList({}, () => {\r\n done && done();\r\n });\r\n },\r\n onList(params, callback) {\r\n this.loading = true;\r\n if (typeof this.onLoad == \"function\") {\r\n this.onLoad({ page: this.page, data: this.search }, (data) => {\r\n callback && callback();\r\n this.page.total = data.total;\r\n this.data = data.data;\r\n this.loading = false;\r\n if (this.isMultiple) {\r\n let ids = this.object.map((ele) => ele[this.valueKey]);\r\n let data = this.data.filter((ele) =>\r\n ids.includes(ele[this.valueKey])\r\n );\r\n this.$nextTick(() => {\r\n this.$refs.crud.toggleSelection(data, true);\r\n });\r\n } else {\r\n let active = this.data.find(\r\n (ele) => ele[this.valueKey] == this.text\r\n );\r\n setTimeout(() => {\r\n this.$refs.crud.setCurrentRow(active);\r\n });\r\n }\r\n });\r\n }\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <el-input-tag\r\n v-model=\"text\"\r\n :class=\"b()\"\r\n @click=\"handleClick\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n @change=\"handleValueChange\"\r\n :placeholder=\"placeholder\"\r\n :size=\"size\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n :draggable=\"drag\"\r\n :clearable=\"clearableVal\"\r\n :readonly=\"readonly\"\r\n :disabled=\"disabled\"\r\n >\r\n <template #prefix v-if=\"prefix\">\r\n <span @click=\"prefixClick(text)\">{{ prefix }}</span>\r\n </template>\r\n <template #suffix v-if=\"suffix\">\r\n <span @click=\"suffixClick(text)\">{{ suffix }}</span>\r\n </template>\r\n <template #tag=\"{ value }\">\r\n <slot :value=\"value\" v-if=\"$slots.default\"> </slot>\r\n <span v-else>{{ value }}</span>\r\n </template>\r\n </el-input-tag>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"input-tag\",\r\n mixins: [props(), event()],\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n clearValidate: Function,\r\n drag: Boolean,\r\n min: {\r\n type: Number,\r\n default: -Infinity,\r\n },\r\n max: {\r\n type: Number,\r\n default: Infinity,\r\n },\r\n prefix: {\r\n type: String,\r\n },\r\n prefixClick: {\r\n type: Function,\r\n default: () => {},\r\n },\r\n suffix: {\r\n type: String,\r\n },\r\n suffixClick: {\r\n type: Function,\r\n default: () => {},\r\n },\r\n },\r\n created() {},\r\n mounted() {},\r\n methods: {\r\n handleValueChange(val) {\r\n setTimeout(() => {\r\n if (!this.validatenull(val) && this.rules && this.clearValidate) {\r\n this.clearValidate(this.prop);\r\n }\r\n });\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <el-tree-select ref=\"tree\"\r\n :class=\"b()\"\r\n :cache-data=\"cacheData\"\r\n v-model=\"text\"\r\n :loading=\"loading\"\r\n :lazy=\"lazy\"\r\n :load=\"handleLoad\"\r\n :size=\"size\"\r\n @check=\"checkChange\"\r\n :filter-node-method=\"filterNodeMethod\"\r\n :render-after-expand=\"false\"\r\n :loading-text=\"loadingText\"\r\n :collapse-tags=\"tags\"\r\n :clearable=\"clearableVal\"\r\n :placeholder=\"placeholder\"\r\n :popper-class=\"popperClass\"\r\n :popper-append-to-body=\"popperAppendToBody\"\r\n :multiple=\"multiple\"\r\n :node-key=\"valueKey\"\r\n :show-checkbox=\"multiple\"\r\n :filterable=\"filterable\"\r\n :check-strictly=\"checkStrictly\"\r\n :disabled=\"disabled\"\r\n :accordion=\"accordion\"\r\n :icon-class=\"iconClass\"\r\n :indent=\"indent\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :check-on-click-leaf=\"checkOnClickLeaf\"\r\n :default-checked-keys=\"keysList\"\r\n :default-expanded-keys=\"defaultExpandedKeys?defaultExpandedKeys:keysList\"\r\n :default-expand-all=\"defaultExpandAll\"\r\n :check-on-click-node=\"checkOnClickNode\"\r\n :expand-on-click-node=\"expandOnClickNode\"\r\n @node-click.self=\"handleNodeClick\"\r\n :props=\"treeProps\"\r\n :data=\"netDic\">\r\n <template #=\"{data,node}\">\r\n <slot v-if=\"$slots.default\"\r\n :label=\"labelKey\"\r\n :value=\"valueKey\"\r\n :node=\"node\"\r\n :item=\"data\"></slot>\r\n <span v-else\r\n style=\"margin-left:8px;\">\r\n <span>{{getLabelText(data)}}</span>\r\n <span :class=\"b('desc')\"\r\n v-if=\"data[descKey]\">{{ data[descKey] }}</span>\r\n </span>\r\n </template>\r\n </el-tree-select>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport { DIC_SHOW_SPLIT } from 'global/variable';\r\nimport { DIC_PROPS } from 'global/variable';\r\nexport default create({\r\n name: \"input-tree\",\r\n mixins: [props(), event()],\r\n data () {\r\n return {\r\n netDic: [],\r\n loading: false,\r\n };\r\n },\r\n props: {\r\n cacheData: [Object, Array],\r\n indent: Number,\r\n filterNodeMethod: Function,\r\n nodeClick: Function,\r\n treeLoad: Function,\r\n checked: Function,\r\n modelValue: {},\r\n loadingText: {\r\n type: String,\r\n },\r\n lazy: {\r\n type: Boolean,\r\n default: false\r\n },\r\n leafOnly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n tags: {\r\n type: Boolean,\r\n default: false\r\n },\r\n limit: {\r\n type: Number,\r\n default: 0\r\n },\r\n checkOnClickLeaf: Boolean,\r\n filterable: {\r\n type: Boolean,\r\n default: false\r\n },\r\n checkStrictly: {\r\n type: Boolean,\r\n default: (props) => props.multiple ? false : true\r\n },\r\n accordion: {\r\n type: Boolean,\r\n default: false\r\n },\r\n parent: {\r\n type: Boolean,\r\n default: true\r\n },\r\n iconClass: {\r\n type: String,\r\n },\r\n defaultExpandedKeys: Array,\r\n checkOnClickNode: Boolean,\r\n expandOnClickNode: Boolean,\r\n defaultExpandAll: Boolean,\r\n popperAppendToBody: Boolean,\r\n },\r\n watch: {\r\n dic: {\r\n handler (val) {\r\n this.netDic = val;\r\n },\r\n immediate: true\r\n },\r\n netDic: {\r\n handler () {\r\n this.init();\r\n },\r\n immediate: true\r\n },\r\n },\r\n computed: {\r\n keysList () {\r\n return this.multiple ? this.text : [this.text || '']\r\n },\r\n treeProps () {\r\n return Object.assign(this.deepClone(DIC_PROPS), this.props, {\r\n isLeaf: this.leafKey\r\n })\r\n }\r\n },\r\n methods: {\r\n handleTextValue (value) {\r\n this.init();\r\n },\r\n getHalfList () {\r\n let list = this.$refs.tree.getCheckedNodes(false, true)\r\n list = list.map(ele => ele[this.valueKey])\r\n return list;\r\n },\r\n init () {\r\n this.disabledParentNode(this.dic, this.parent);\r\n },\r\n disabledParentNode (dic, parent) {\r\n dic.forEach(ele => {\r\n const children = ele[this.childrenKey];\r\n if (!this.validatenull(children)) {\r\n if (!parent) {\r\n ele.disabled = true;\r\n }\r\n this.disabledParentNode(children, parent);\r\n }\r\n });\r\n },\r\n checkChange (checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys) {\r\n if (typeof this.checked === \"function\") this.checked(checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys);\r\n },\r\n handleNodeClick (data, node, nodeComp) {\r\n if (typeof this.nodeClick === \"function\") this.nodeClick(data, node, nodeComp);\r\n },\r\n handleLoad (node, resolve) {\r\n let callback = (list) => {\r\n let findDic = (list, value, children) => {\r\n list.forEach(ele => {\r\n if (ele[this.valueKey] == value) {\r\n ele[this.childrenKey] = children\r\n } else if (ele[this.childrenKey]) {\r\n findDic(ele[this.childrenKey])\r\n }\r\n })\r\n }\r\n findDic(this.netDic, node.key, list)\r\n resolve(list);\r\n }\r\n this.treeLoad && this.treeLoad(node, callback)\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <!-- 手机号输入(带国际区号,需要特殊布局) -->\r\n <template v-if=\"isPhone\">\r\n <div class=\"avue-input__phone\">\r\n <el-select v-model=\"phoneCode\"\n class=\"avue-input__phone-code\"\n :size=\"size\"\n :disabled=\"disabled\"\n :placeholder=\"phoneCodePlaceholderText\"\n filterable\n style=\"width: 120px;\">\n <el-option v-for=\"item in phoneCodeList\"\r\n :key=\"item.code\"\r\n :label=\"item.label\"\r\n :value=\"item.code\">\r\n <span style=\"float: left\">{{ item.name }}</span>\r\n <span style=\"float: right; color: #8492a6; font-size: 12px\">{{ item.code }}</span>\r\n </el-option>\r\n </el-select>\r\n <el-input class=\"avue-input__phone-input\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\r\n v-model=\"phoneNumber\"\r\n @keyup.enter=\"isSearch?appendClick(text):''\"\r\n @click=\"handleClick\"\n :maxlength=\"phoneMaxLength\"\n :prefix-icon=\"prefixIcon\"\n :suffix-icon=\"suffixIcon\"\n :readonly=\"readonly\"\n :placeholder=\"phonePlaceholderText\"\n @focus=\"handleFocus\"\n @blur=\"handlePhoneBlur\"\n :disabled=\"disabled\"\n style=\"flex: 1;\">\r\n </el-input>\r\n </div>\r\n </template>\r\n\r\n <!-- 验证码输入(分段输入框) -->\r\n <template v-else-if=\"isCode\">\r\n <div class=\"avue-input__code\">\r\n <input v-for=\"(val, index) in codeValues\"\r\n :key=\"index\"\r\n type=\"text\"\r\n maxlength=\"1\"\r\n class=\"avue-input__code-item\"\r\n :class=\"{ 'is-disabled': disabled }\"\r\n :value=\"val\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n @input=\"handleCodeInput($event, index)\"\r\n @keydown=\"handleCodeKeydown($event, index)\"\r\n @paste=\"handleCodePaste($event)\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :ref=\"el => codeRefs[index] = el\" />\r\n </div>\r\n </template>\r\n\r\n <!-- 车牌号输入(省份选择 + 车牌号) -->\r\n <template v-else-if=\"isPlate\">\r\n <div class=\"avue-input__plate\">\r\n <el-select v-model=\"plateProvince\"\n class=\"avue-input__plate-province\"\n :size=\"size\"\n :disabled=\"disabled\"\n style=\"width: 70px;\">\n <el-option v-for=\"item in resolvedPlateProvinceList\"\n :key=\"item\"\n :label=\"item\"\n :value=\"item\" />\n </el-select>\r\n <el-input class=\"avue-input__plate-number\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\n v-model=\"plateNumber\"\n @click=\"handleClick\"\n :maxlength=\"7\"\n :readonly=\"readonly\"\n :placeholder=\"platePlaceholderText\"\n @focus=\"handleFocus\"\n @blur=\"handlePlateBlur\"\n @input=\"handlePlateInput\"\n :disabled=\"disabled\"\r\n style=\"flex: 1;\">\r\n </el-input>\r\n </div>\r\n </template>\r\n\r\n <!-- IP地址输入(4段输入框) -->\r\n <template v-else-if=\"isIp\">\r\n <div class=\"avue-input__ip\">\r\n <template v-for=\"(seg, index) in ipSegments\" :key=\"index\">\r\n <input type=\"text\"\r\n class=\"avue-input__ip-segment\"\r\n :class=\"{ 'is-disabled': disabled }\"\r\n maxlength=\"3\"\r\n :value=\"seg\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n @input=\"handleIpInput($event, index)\"\r\n @keydown=\"handleIpKeydown($event, index)\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :ref=\"el => ipRefs[index] = el\" />\r\n <span v-if=\"index < 3\" class=\"avue-input__ip-dot\">.</span>\r\n </template>\r\n </div>\r\n </template>\r\n\r\n <!-- MAC地址输入(6段输入框) -->\r\n <template v-else-if=\"isMac\">\r\n <div class=\"avue-input__mac\">\r\n <template v-for=\"(seg, index) in macSegments\" :key=\"index\">\r\n <input type=\"text\"\r\n class=\"avue-input__mac-segment\"\r\n :class=\"{ 'is-disabled': disabled }\"\r\n maxlength=\"2\"\r\n :value=\"seg\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n @input=\"handleMacInput($event, index)\"\r\n @keydown=\"handleMacKeydown($event, index)\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :ref=\"el => macRefs[index] = el\" />\r\n <span v-if=\"index < 5\" class=\"avue-input__mac-sep\">{{ macSeparator }}</span>\r\n </template>\r\n </div>\r\n </template>\r\n\r\n <!-- 统一输入框(货币、银行卡、身份证、邮箱、社会信用代码、默认类型) -->\r\n <template v-else>\r\n <el-input :class=\"inputClass\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\r\n v-model=\"inputValue\"\r\n @keyup.enter=\"isSearch?appendClick(text):''\"\r\n @click=\"handleClick\"\r\n :type=\"inputType\"\r\n :maxlength=\"inputMaxlength\"\r\n :minlength=\"minlength\"\r\n :show-password=\"typeParam=='password'?showPassword:false\"\r\n :rows=\"rows\"\r\n :autosize=\"{ minRows: minRows, maxRows: maxRows}\"\r\n :prefix-icon=\"inputPrefixIcon\"\r\n :suffix-icon=\"inputSuffixIcon\"\r\n :readonly=\"readonly\"\r\n :placeholder=\"inputPlaceholder\"\r\n :show-word-limit=\"isDefault && showWordLimit\"\r\n @focus=\"onFocus\"\r\n @blur=\"onBlur\"\r\n @input=\"onInput\"\r\n :disabled=\"disabled\"\r\n :autocomplete=\"autocomplete\"\r\n :formatter=\"isDefault ? formatters : undefined\"\r\n :parser=\"isDefault ? parser : undefined\">\r\n <!-- 前置内容 -->\r\n <template #prepend v-if=\"showPrepend\">\r\n <span @click=\"prependClick && prependClick(text)\">{{ prependText }}</span>\r\n </template>\r\n <!-- 后置内容 -->\r\n <template #append v-if=\"showAppend\">\r\n <span @click=\"appendClick && appendClick(text)\">{{ appendText }}</span>\r\n </template>\r\n <template #append v-else-if=\"isSearch\">\r\n <el-button icon=\"el-icon-search\" @click=\"appendClick(text)\"></el-button>\r\n </template>\r\n <!-- 后缀内容 - 银行卡类型 -->\r\n <template #suffix v-if=\"isBankCard && showBankCardType && bankCardType\">\r\n <span class=\"avue-input__bank-card-type\">{{ bankCardType }}</span>\r\n </template>\r\n <!-- 后缀内容 - 身份证信息 -->\r\n <template #suffix v-else-if=\"isIdCard && showIdCardInfo && idCardInfo\">\r\n <el-tooltip :content=\"idCardInfoText\" placement=\"top\">\r\n <span class=\"avue-input__id-card-info\">\r\n {{ idCardValid ? '✓' : '✗' }}\r\n </span>\r\n </el-tooltip>\r\n </template>\r\n <!-- 后缀内容 - 邮箱验证 -->\r\n <template #suffix v-else-if=\"isEmail && emailValid !== null\">\r\n <span class=\"avue-input__email-valid\">{{ emailValid ? '✓' : '✗' }}</span>\r\n </template>\r\n <!-- 后缀内容 - 社会信用代码验证 -->\r\n <template #suffix v-else-if=\"isUscc && usccValid !== null\">\r\n <span class=\"avue-input__uscc-valid\">{{ usccValid ? '✓' : '✗' }}</span>\r\n </template>\r\n </el-input>\r\n </template>\r\n </div>\r\n</template>\r\n\r\n<script>\nimport create from \"core/create\";\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport locale from \"core/locale\";\n\nconst defaultPhoneCodeOptions = [\n { code: '+86', flag: '🇨🇳', nameKey: 'input.countries.cn' },\n { code: '+852', flag: '🇭🇰', nameKey: 'input.countries.hk' },\n { code: '+853', flag: '🇲🇴', nameKey: 'input.countries.mo' },\n { code: '+886', flag: '🇹🇼', nameKey: 'input.countries.tw' },\n { code: '+1', flag: '🇺🇸', nameKey: 'input.countries.usca' },\n { code: '+44', flag: '🇬🇧', nameKey: 'input.countries.uk' },\n { code: '+81', flag: '🇯🇵', nameKey: 'input.countries.jp' },\n { code: '+82', flag: '🇰🇷', nameKey: 'input.countries.kr' },\n { code: '+65', flag: '🇸🇬', nameKey: 'input.countries.sg' },\n { code: '+61', flag: '🇦🇺', nameKey: 'input.countries.au' },\n { code: '+49', flag: '🇩🇪', nameKey: 'input.countries.de' },\n { code: '+33', flag: '🇫🇷', nameKey: 'input.countries.fr' },\n { code: '+39', flag: '🇮🇹', nameKey: 'input.countries.it' },\n { code: '+7', flag: '🇷🇺', nameKey: 'input.countries.ru' },\n { code: '+91', flag: '🇮🇳', nameKey: 'input.countries.in' },\n { code: '+55', flag: '🇧🇷', nameKey: 'input.countries.br' },\n { code: '+34', flag: '🇪🇸', nameKey: 'input.countries.es' },\n { code: '+31', flag: '🇳🇱', nameKey: 'input.countries.nl' },\n { code: '+41', flag: '🇨🇭', nameKey: 'input.countries.ch' },\n { code: '+46', flag: '🇸🇪', nameKey: 'input.countries.se' },\n { code: '+60', flag: '🇲🇾', nameKey: 'input.countries.my' },\n { code: '+66', flag: '🇹🇭', nameKey: 'input.countries.th' },\n { code: '+84', flag: '🇻🇳', nameKey: 'input.countries.vn' },\n { code: '+62', flag: '🇮🇩', nameKey: 'input.countries.id' },\n { code: '+63', flag: '🇵🇭', nameKey: 'input.countries.ph' }\n];\n\r\n// 货币符号映射\r\nconst currencySymbols = {\r\n CNY: '¥',\r\n USD: '$',\r\n EUR: '€',\r\n GBP: '£',\r\n JPY: '¥',\r\n HKD: 'HK$',\r\n KRW: '₩',\r\n SGD: 'S$',\r\n AUD: 'A$',\r\n CAD: 'C$'\r\n};\r\n\r\nexport default create({\n name: \"input\",\n mixins: [props(), event(), locale],\n emits: ['update:modelValue', 'click', 'focus', 'blur', 'change', 'id-card-valid', 'code-complete', 'uscc-valid'],\r\n data() {\r\n return {\r\n // 手机号相关\r\n phoneCode: '+86',\r\n phoneNumber: '',\r\n // 货币相关\r\n currencyDisplay: '',\r\n currencyEditing: false,\r\n // 银行卡相关\r\n bankCardDisplay: '',\r\n bankCardType: '',\r\n // 身份证相关\r\n idCardDisplay: '',\r\n idCardValid: null,\r\n idCardInfo: null,\r\n // 邮箱相关\r\n emailDisplay: '',\r\n emailValid: null,\r\n showEmailSuggestions: false,\n // 验证码相关\n codeValues: [],\n codeRefs: [],\n // 车牌号相关\n plateProvince: '',\n plateNumber: '',\n // IP地址相关\r\n ipSegments: ['', '', '', ''],\r\n ipRefs: [],\r\n // MAC地址相关\r\n macSegments: ['', '', '', '', '', ''],\r\n macRefs: [],\r\n // 社会信用代码相关\r\n usccDisplay: '',\r\n usccValid: null\r\n };\r\n },\r\n props: {\r\n showPassword: {\r\n type: Boolean,\r\n default: true\r\n },\r\n showWordLimit: {\r\n type: Boolean,\r\n default: false\r\n },\r\n target: {\r\n type: String,\r\n default: ' _blank'\r\n },\r\n prefixIcon: {\r\n type: String\r\n },\r\n suffixIcon: {\r\n type: String\r\n },\r\n prependClick: {\r\n type: Function\r\n },\r\n prepend: {\r\n type: String\r\n },\r\n appendClick: {\r\n type: Function\r\n },\r\n formatters: {\r\n type: Function\r\n },\r\n parser: {\r\n type: Function\r\n },\r\n append: {\r\n type: String\r\n },\r\n minlength: [String, Number],\r\n maxlength: [String, Number],\r\n rows: Number,\r\n minRows: {\r\n type: Number,\r\n default: 5\r\n },\r\n maxRows: {\r\n type: Number,\r\n default: 10\r\n },\r\n autocomplete: {\r\n type: String\r\n },\r\n // ========== 手机号相关配置 ==========\r\n // 默认区号\r\n defaultPhoneCode: {\r\n type: String,\r\n default: '+86'\r\n },\r\n // 区号列表\r\n phoneCodeOptions: {\r\n type: Array,\r\n default: () => []\r\n },\r\n // 手机号最大长度\r\n phoneMaxLength: {\r\n type: Number,\r\n default: 11\r\n },\r\n // 区号选择器占位符\r\n phoneCodePlaceholder: {\n type: String,\n default: ''\n },\n // 手机号输入框占位符\n phonePlaceholder: {\n type: String,\n default: ''\n },\n \r\n // ========== 货币相关配置 ==========\r\n // 货币类型\r\n currency: {\r\n type: String,\r\n default: 'CNY'\r\n },\r\n // 自定义货币符号\r\n currencySymbolCustom: {\r\n type: String,\r\n default: ''\r\n },\r\n // 货币单位(如:元、万元)\r\n currencyUnit: {\r\n type: String,\r\n default: ''\r\n },\r\n // 小数位数\r\n currencyPrecision: {\r\n type: Number,\r\n default: 2\r\n },\r\n // 货币占位符\r\n currencyPlaceholder: {\n type: String,\n default: ''\n },\n // 最小值\r\n currencyMin: {\r\n type: Number,\r\n default: undefined\r\n },\r\n // 最大值\r\n currencyMax: {\r\n type: Number,\r\n default: undefined\r\n },\r\n \r\n // ========== 银行卡相关配置 ==========\r\n // 分隔符\r\n bankCardSeparator: {\r\n type: String,\r\n default: ' '\r\n },\r\n // 分段长度\r\n bankCardSegment: {\r\n type: Number,\r\n default: 4\r\n },\r\n // 银行卡最大长度(不含分隔符)\r\n bankCardMaxDigits: {\r\n type: Number,\r\n default: 19\r\n },\r\n // 银行卡占位符\r\n bankCardPlaceholder: {\n type: String,\n default: ''\n },\n // 是否显示银行卡类型\r\n showBankCardType: {\r\n type: Boolean,\r\n default: true\r\n },\r\n \r\n // ========== 身份证相关配置 ==========\r\n // 身份证占位符\r\n idCardPlaceholder: {\n type: String,\n default: ''\n },\n // 是否显示身份证信息\r\n showIdCardInfo: {\r\n type: Boolean,\r\n default: true\r\n },\r\n // 是否实时校验\r\n idCardRealtimeValidate: {\r\n type: Boolean,\r\n default: true\r\n },\r\n \r\n // ========== 邮箱相关配置 ==========\r\n emailPlaceholder: {\n type: String,\n default: ''\n },\n // 邮箱后缀建议列表\r\n emailSuffixes: {\r\n type: Array,\r\n default: () => ['@qq.com', '@163.com', '@126.com', '@gmail.com', '@outlook.com', '@hotmail.com', '@sina.com', '@sohu.com', '@foxmail.com', '@icloud.com']\r\n },\r\n // 是否显示邮箱建议\r\n showEmailSuffix: {\r\n type: Boolean,\r\n default: true\r\n },\r\n \r\n // ========== 验证码相关配置 ==========\r\n codePlaceholder: {\r\n type: String,\r\n default: ''\r\n },\r\n // 验证码长度\r\n codeLength: {\r\n type: Number,\r\n default: 6\r\n },\r\n // 验证码分隔符\r\n codeSeparator: {\r\n type: String,\r\n default: ''\r\n },\r\n \r\n // ========== 车牌号相关配置 ==========\r\n platePlaceholder: {\n type: String,\n default: ''\n },\n // 默认省份\n defaultPlateProvince: {\n type: String,\n default: ''\n },\n // 省份列表\n plateProvinceList: {\n type: Array,\n default: () => []\n },\n \r\n // ========== IP地址相关配置 ==========\r\n ipPlaceholder: {\n type: String,\n default: ''\n },\n // IP版本 (4 或 6)\r\n ipVersion: {\r\n type: Number,\r\n default: 4\r\n },\r\n \r\n // ========== MAC地址相关配置 ==========\r\n macPlaceholder: {\n type: String,\n default: ''\n },\n // MAC分隔符\r\n macSeparator: {\r\n type: String,\r\n default: ':'\r\n },\r\n \r\n // ========== 社会信用代码相关配置 ==========\r\n usccPlaceholder: {\n type: String,\n default: ''\n },\n // 是否实时校验\r\n usccRealtimeValidate: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n computed: {\r\n isSearch() {\r\n return this.type === 'search';\r\n },\r\n isPhone() {\r\n return this.type === 'phone';\r\n },\r\n isCurrency() {\r\n return this.type === 'currency';\r\n },\r\n isBankCard() {\r\n return this.type === 'bankCard' || this.type === 'bank-card';\r\n },\r\n isIdCard() {\r\n return this.type === 'idCard' || this.type === 'id-card';\r\n },\r\n isEmail() {\r\n return this.type === 'email';\r\n },\r\n isCode() {\r\n return this.type === 'code';\r\n },\r\n isPlate() {\r\n return this.type === 'plate';\r\n },\r\n isIp() {\r\n return this.type === 'ip';\r\n },\r\n isMac() {\r\n return this.type === 'mac';\r\n },\r\n isUscc() {\r\n return this.type === 'uscc';\r\n },\r\n isDefault() {\r\n return !this.isPhone && !this.isCurrency && !this.isBankCard && !this.isIdCard && \r\n !this.isEmail && !this.isCode && !this.isPlate && !this.isIp && !this.isMac && !this.isUscc;\r\n },\r\n typeParam() {\r\n if (this.type === \"textarea\") {\r\n return \"textarea\";\r\n } else if (this.type === \"password\") {\r\n return \"password\";\r\n } else {\r\n return \"text\";\r\n }\r\n },\r\n // ========== 统一输入框计算属性 ==========\r\n inputClass() {\r\n if (this.isCurrency) return this.b('currency');\r\n if (this.isBankCard) return this.b('bank-card');\r\n if (this.isIdCard) return [this.b('id-card'), this.idCardValid === false ? this.b('id-card--invalid') : ''];\r\n return '';\r\n },\r\n inputValue: {\r\n get() {\r\n if (this.isCurrency) return this.currencyDisplay;\r\n if (this.isBankCard) return this.bankCardDisplay;\r\n if (this.isIdCard) return this.idCardDisplay;\r\n if (this.isEmail) return this.emailDisplay;\r\n if (this.isUscc) return this.usccDisplay;\r\n return this.text;\r\n },\r\n set(val) {\r\n if (this.isCurrency) this.currencyDisplay = val;\r\n else if (this.isBankCard) this.bankCardDisplay = val;\r\n else if (this.isIdCard) this.idCardDisplay = val;\r\n else if (this.isEmail) this.emailDisplay = val;\r\n else if (this.isUscc) this.usccDisplay = val;\r\n else this.text = val;\r\n }\r\n },\r\n inputType() {\r\n if (this.isEmail) return 'email';\r\n return this.isDefault ? this.typeParam : 'text';\r\n },\r\n inputMaxlength() {\r\n if (this.isBankCard) return this.bankCardMaxLength;\r\n if (this.isIdCard) return 18;\r\n if (this.isUscc) return 18;\r\n return this.maxlength;\r\n },\r\n inputPrefixIcon() {\r\n return this.prefixIcon;\r\n },\r\n inputSuffixIcon() {\r\n if (this.isIdCard) return this.idCardSuffixIcon;\r\n return this.suffixIcon;\r\n },\r\n inputPlaceholder() {\n if (this.isCurrency) return this.currencyPlaceholder || this.t('input.currencyPlaceholder');\n if (this.isBankCard) return this.bankCardPlaceholder || this.t('input.bankCardPlaceholder');\n if (this.isIdCard) return this.idCardPlaceholder || this.t('input.idCardPlaceholder');\n if (this.isEmail) return this.emailPlaceholder || this.t('input.emailPlaceholder');\n if (this.isUscc) return this.usccPlaceholder || this.t('input.usccPlaceholder');\n return this.placeholder;\n },\n phoneCodePlaceholderText() {\n return this.phoneCodePlaceholder || this.t('input.phoneCodePlaceholder');\n },\n phonePlaceholderText() {\n return this.phonePlaceholder || this.t('input.phonePlaceholder');\n },\n platePlaceholderText() {\n return this.platePlaceholder || this.t('input.platePlaceholder');\n },\n showPrepend() {\n if (this.isCurrency) return !!this.currencySymbol;\n return !!this.prepend;\n },\r\n prependText() {\r\n if (this.isCurrency) return this.currencySymbol;\r\n return this.prepend;\r\n },\r\n showAppend() {\r\n if (this.isCurrency) return !!this.currencyUnit;\r\n return !!this.append;\r\n },\r\n appendText() {\r\n if (this.isCurrency) return this.currencyUnit;\r\n return this.append;\r\n },\r\n showSuffix() {\r\n return (this.isBankCard && this.showBankCardType && this.bankCardType) ||\r\n (this.isIdCard && this.showIdCardInfo && this.idCardInfo) ||\r\n (this.isEmail && this.emailValid !== null) ||\r\n (this.isUscc && this.usccValid !== null);\r\n },\r\n // ========== 原有计算属性 ==========\n // 手机区号列表\n phoneCodeList() {\n const list = this.phoneCodeOptions.length > 0 ? this.phoneCodeOptions : defaultPhoneCodeOptions;\n return list.map((item) => {\n const flag = item.flag || '';\n const name = item.name || (item.nameKey ? this.t(item.nameKey) : item.code);\n return {\n ...item,\n name,\n label: item.label || [flag, item.code].filter(Boolean).join(' ')\n };\n });\n },\n localizedPlateProvinces() {\n const provinces = this.t('input.plateProvinces');\n return Array.isArray(provinces) ? provinces : [];\n },\n resolvedPlateProvinceList() {\n return this.plateProvinceList.length > 0 ? this.plateProvinceList : this.localizedPlateProvinces;\n },\n resolvedDefaultPlateProvince() {\n return this.defaultPlateProvince || this.resolvedPlateProvinceList[0] || '';\n },\n // 货币符号\r\n currencySymbol() {\r\n if (this.currencySymbolCustom) {\r\n return this.currencySymbolCustom;\r\n }\r\n return currencySymbols[this.currency] || '¥';\r\n },\r\n // 银行卡最大长度(含分隔符)\r\n bankCardMaxLength() {\r\n const digits = this.bankCardMaxDigits;\r\n const separatorCount = Math.floor((digits - 1) / this.bankCardSegment);\r\n return digits + separatorCount;\r\n },\r\n // 身份证后缀图标\r\n idCardSuffixIcon() {\r\n if (this.suffixIcon) return this.suffixIcon;\r\n if (this.idCardValid === true) return 'el-icon-success';\r\n if (this.idCardValid === false) return 'el-icon-warning';\r\n return '';\r\n },\r\n // 身份证信息文本\r\n idCardInfoText() {\r\n if (!this.idCardInfo) return '';\r\n return `${this.idCardInfo.region} | ${this.idCardInfo.birthday} | ${this.idCardInfo.gender}`;\r\n }\r\n },\r\n watch: {\r\n modelValue: {\r\n immediate: true,\r\n handler(val) {\r\n this.initSpecialValue(val);\r\n }\r\n },\r\n phoneCode(val) {\r\n this.updatePhoneValue();\r\n },\r\n phoneNumber(val) {\r\n // 只允许数字\r\n this.phoneNumber = val.replace(/\\D/g, '');\r\n this.updatePhoneValue();\r\n },\r\n defaultPhoneCode: {\r\n immediate: true,\r\n handler(val) {\r\n if (!this.modelValue) {\r\n this.phoneCode = val;\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n // ========== 统一事件处理 ==========\r\n onFocus(event) {\r\n if (this.isCurrency) {\r\n this.handleCurrencyFocus(event);\r\n } else {\r\n this.handleFocus(event);\r\n }\r\n },\r\n onBlur(event) {\r\n if (this.isCurrency) {\r\n this.handleCurrencyBlur(event);\r\n } else if (this.isIdCard) {\r\n this.handleIdCardBlur(event);\r\n } else if (this.isEmail) {\r\n this.handleEmailBlur(event);\r\n } else if (this.isUscc) {\r\n this.handleUsccBlur(event);\r\n } else {\r\n this.handleBlur(event);\r\n }\r\n },\r\n onInput(val) {\r\n if (this.isCurrency) {\r\n this.handleCurrencyInput(val);\r\n } else if (this.isBankCard) {\r\n this.handleBankCardInput(val);\r\n } else if (this.isIdCard) {\r\n this.handleIdCardInput(val);\r\n } else if (this.isEmail) {\r\n this.handleEmailInput(val);\r\n } else if (this.isUscc) {\r\n this.handleUsccInput(val);\r\n }\r\n },\r\n // 初始化特殊类型的值\r\n initSpecialValue(val) {\r\n if (this.isPhone) {\r\n this.initPhoneValue(val);\r\n } else if (this.isCurrency) {\r\n this.initCurrencyValue(val);\r\n } else if (this.isBankCard) {\r\n this.initBankCardValue(val);\r\n } else if (this.isIdCard) {\r\n this.initIdCardValue(val);\r\n } else if (this.isEmail) {\r\n this.initEmailValue(val);\r\n } else if (this.isCode) {\r\n this.initCodeValue(val);\r\n } else if (this.isPlate) {\r\n this.initPlateValue(val);\r\n } else if (this.isIp) {\r\n this.initIpValue(val);\r\n } else if (this.isMac) {\r\n this.initMacValue(val);\r\n } else if (this.isUscc) {\r\n this.initUsccValue(val);\r\n }\r\n },\r\n \r\n // ========== 手机号相关方法 ==========\r\n initPhoneValue(val) {\r\n if (!val) {\r\n this.phoneCode = this.defaultPhoneCode;\r\n this.phoneNumber = '';\r\n return;\r\n }\r\n // 支持格式:+86-13800138000 或 +8613800138000 或纯手机号\r\n const str = String(val);\r\n const match = str.match(/^(\\+\\d+)[-\\s]?(\\d+)$/);\r\n if (match) {\r\n this.phoneCode = match[1];\r\n this.phoneNumber = match[2];\r\n } else {\r\n this.phoneNumber = str.replace(/\\D/g, '');\r\n }\r\n },\r\n updatePhoneValue() {\r\n const value = this.phoneNumber ? `${this.phoneCode}-${this.phoneNumber}` : '';\r\n this.text = value;\r\n\r\n },\r\n handlePhoneBlur(event) {\r\n this.handleBlur(event);\r\n },\r\n \r\n // ========== 货币相关方法 ==========\r\n initCurrencyValue(val) {\r\n if (val === undefined || val === null || val === '') {\r\n this.currencyDisplay = '';\r\n return;\r\n }\r\n const num = parseFloat(val);\r\n if (!isNaN(num)) {\r\n this.currencyDisplay = this.formatCurrency(num);\r\n }\r\n },\r\n formatCurrency(value) {\r\n if (value === undefined || value === null || value === '') return '';\r\n const num = parseFloat(value);\r\n if (isNaN(num)) return '';\r\n // 格式化为千分位\r\n const fixed = num.toFixed(this.currencyPrecision);\r\n const parts = fixed.split('.');\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n return parts.join('.');\r\n },\r\n parseCurrency(value) {\r\n if (!value) return '';\r\n // 移除千分位分隔符\r\n return value.replace(/,/g, '');\r\n },\r\n handleCurrencyFocus(event) {\r\n this.currencyEditing = true;\r\n // 编辑时显示原始数字\r\n if (this.text) {\r\n this.currencyDisplay = this.text;\r\n }\r\n this.handleFocus(event);\r\n },\r\n handleCurrencyBlur(event) {\r\n this.currencyEditing = false;\r\n const rawValue = this.parseCurrency(this.currencyDisplay);\r\n let num = parseFloat(rawValue);\r\n \r\n // 范围限制\r\n if (!isNaN(num)) {\r\n if (this.currencyMin !== undefined && num < this.currencyMin) {\r\n num = this.currencyMin;\r\n }\r\n if (this.currencyMax !== undefined && num > this.currencyMax) {\r\n num = this.currencyMax;\r\n }\r\n this.text = num.toFixed(this.currencyPrecision);\r\n this.currencyDisplay = this.formatCurrency(num);\r\n } else {\r\n this.text = '';\r\n this.currencyDisplay = '';\r\n }\r\n \r\n\r\n this.handleBlur(event);\r\n },\r\n handleCurrencyInput(val) {\r\n // 只允许数字、小数点和逗号\r\n this.currencyDisplay = val.replace(/[^\\d.,]/g, '');\r\n },\r\n \r\n // ========== 银行卡相关方法 ==========\r\n initBankCardValue(val) {\r\n if (!val) {\r\n this.bankCardDisplay = '';\r\n this.bankCardType = '';\r\n return;\r\n }\r\n const digits = String(val).replace(/\\D/g, '');\r\n this.bankCardDisplay = this.formatBankCard(digits);\r\n this.detectBankCardType(digits);\r\n },\r\n formatBankCard(value) {\r\n if (!value) return '';\r\n const digits = value.replace(/\\D/g, '');\r\n const chunks = [];\r\n for (let i = 0; i < digits.length; i += this.bankCardSegment) {\r\n chunks.push(digits.slice(i, i + this.bankCardSegment));\r\n }\r\n return chunks.join(this.bankCardSeparator);\r\n },\r\n handleBankCardInput(val) {\r\n // 只允许数字和分隔符\r\n const digits = val.replace(/\\D/g, '').slice(0, this.bankCardMaxDigits);\r\n this.bankCardDisplay = this.formatBankCard(digits);\r\n this.text = digits;\r\n this.detectBankCardType(digits);\r\n this.$emit('bank-card-change', { value: digits, display: this.bankCardDisplay, type: this.bankCardType });\r\n },\r\n detectBankCardType(cardNumber) {\r\n if (!cardNumber || cardNumber.length < 6) {\r\n this.bankCardType = '';\r\n return;\r\n }\r\n // 根据 BIN 码判断银行卡类型(简化版)\r\n const bin = cardNumber.slice(0, 6);\r\n const bin4 = cardNumber.slice(0, 4);\r\n \r\n // 常见银行卡 BIN 码判断\n if (/^62/.test(bin)) {\n this.bankCardType = this.t('input.bankCardTypes.unionpay');\n } else if (/^4/.test(bin)) {\n this.bankCardType = 'VISA';\n } else if (/^5[1-5]/.test(bin) || /^2[2-7]/.test(bin)) {\r\n this.bankCardType = 'MasterCard';\r\n } else if (/^3[47]/.test(bin)) {\r\n this.bankCardType = 'American Express';\r\n } else if (/^35/.test(bin)) {\r\n this.bankCardType = 'JCB';\r\n } else if (/^6011|65/.test(bin)) {\r\n this.bankCardType = 'Discover';\r\n } else {\r\n this.bankCardType = '';\r\n }\r\n },\r\n \r\n // ========== 身份证相关方法 ==========\r\n initIdCardValue(val) {\r\n if (!val) {\r\n this.idCardDisplay = '';\r\n this.idCardValid = null;\r\n this.idCardInfo = null;\r\n return;\r\n }\r\n this.idCardDisplay = String(val).toUpperCase();\r\n if (this.idCardRealtimeValidate) {\r\n this.validateIdCard(this.idCardDisplay);\r\n }\r\n },\r\n handleIdCardInput(val) {\r\n // 只允许数字和 X\r\n this.idCardDisplay = val.replace(/[^\\dXx]/g, '').toUpperCase().slice(0, 18);\r\n this.text = this.idCardDisplay;\r\n \r\n if (this.idCardRealtimeValidate && this.idCardDisplay.length === 18) {\r\n this.validateIdCard(this.idCardDisplay);\r\n } else {\r\n this.idCardValid = null;\r\n this.idCardInfo = null;\r\n }\r\n \r\n this.$emit('id-card-change', { \r\n value: this.idCardDisplay, \r\n valid: this.idCardValid, \r\n info: this.idCardInfo \r\n });\r\n },\r\n handleIdCardBlur(event) {\r\n if (this.idCardDisplay && this.idCardDisplay.length === 18) {\r\n this.validateIdCard(this.idCardDisplay);\r\n }\r\n this.$emit('id-card-valid', { valid: this.idCardValid, info: this.idCardInfo });\r\n this.handleBlur(event);\r\n },\r\n validateIdCard(idCard) {\r\n if (!idCard || idCard.length !== 18) {\r\n this.idCardValid = false;\r\n this.idCardInfo = null;\r\n return false;\r\n }\r\n \r\n // 加权因子\r\n const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\r\n // 校验码对照表\r\n const checkCodes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\r\n \r\n // 计算校验和\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) {\r\n const digit = parseInt(idCard.charAt(i), 10);\r\n if (isNaN(digit)) {\r\n this.idCardValid = false;\r\n this.idCardInfo = null;\r\n return false;\r\n }\r\n sum += digit * weights[i];\r\n }\r\n \r\n // 验证校验码\r\n const checkCode = checkCodes[sum % 11];\r\n const valid = idCard.charAt(17).toUpperCase() === checkCode;\r\n \r\n this.idCardValid = valid;\r\n \r\n if (valid) {\r\n // 解析身份证信息\r\n const regionCode = idCard.slice(0, 6);\r\n const birthYear = idCard.slice(6, 10);\r\n const birthMonth = idCard.slice(10, 12);\r\n const birthDay = idCard.slice(12, 14);\r\n const genderCode = parseInt(idCard.charAt(16), 10);\r\n \r\n this.idCardInfo = {\n region: this.getRegionName(regionCode),\n birthday: `${birthYear}-${birthMonth}-${birthDay}`,\n gender: genderCode % 2 === 0 ? this.t('input.genders.female') : this.t('input.genders.male'),\n age: this.calculateAge(birthYear, birthMonth, birthDay)\n };\n } else {\r\n this.idCardInfo = null;\r\n }\r\n \r\n return valid;\r\n },\r\n getRegionName(code) {\n const regions = this.t('input.regions');\n const provinceCode = code.slice(0, 2);\n return (regions && regions[provinceCode]) || this.t('input.unknownRegion');\n },\n calculateAge(year, month, day) {\r\n const birthDate = new Date(year, month - 1, day);\r\n const today = new Date();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const monthDiff = today.getMonth() - birthDate.getMonth();\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n return age;\r\n },\r\n \r\n // ========== 邮箱相关方法 ==========\r\n initEmailValue(val) {\r\n this.emailDisplay = val || '';\r\n if (val) {\r\n this.emailValid = this.validateEmail(val);\r\n }\r\n },\r\n handleEmailInput(val) {\r\n this.emailDisplay = val;\r\n this.text = val;\r\n this.emailValid = val ? this.validateEmail(val) : null;\r\n\r\n },\r\n handleEmailBlur(event) {\r\n this.emailValid = this.emailDisplay ? this.validateEmail(this.emailDisplay) : null;\r\n this.handleBlur(event);\r\n },\r\n validateEmail(email) {\r\n const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n return regex.test(email);\r\n },\r\n \r\n // ========== 验证码相关方法 ==========\r\n initCodeValue(val) {\r\n const str = String(val || '');\r\n this.codeValues = Array(this.codeLength).fill('').map((_, i) => str[i] || '');\r\n },\r\n handleCodeInput(event, index) {\r\n const val = event.target.value.replace(/\\D/g, '');\r\n this.codeValues[index] = val.slice(-1);\r\n this.updateCodeValue();\r\n // 自动跳转下一格\r\n if (val && index < this.codeLength - 1) {\r\n this.$nextTick(() => {\r\n if (this.codeRefs[index + 1]) {\r\n this.codeRefs[index + 1].focus();\r\n }\r\n });\r\n }\r\n },\r\n handleCodeKeydown(event, index) {\r\n // 退格键处理\r\n if (event.key === 'Backspace' && !this.codeValues[index] && index > 0) {\r\n this.$nextTick(() => {\r\n if (this.codeRefs[index - 1]) {\r\n this.codeRefs[index - 1].focus();\r\n }\r\n });\r\n }\r\n },\r\n handleCodePaste(event) {\r\n event.preventDefault();\r\n const paste = (event.clipboardData || window.clipboardData).getData('text').replace(/\\D/g, '');\r\n const chars = paste.slice(0, this.codeLength).split('');\r\n chars.forEach((char, i) => {\r\n this.codeValues[i] = char;\r\n });\r\n this.updateCodeValue();\r\n // 聚焦到最后一个填入的位置\r\n const focusIndex = Math.min(chars.length, this.codeLength - 1);\r\n this.$nextTick(() => {\r\n if (this.codeRefs[focusIndex]) {\r\n this.codeRefs[focusIndex].focus();\r\n }\r\n });\r\n },\r\n updateCodeValue() {\r\n const value = this.codeValues.join(this.codeSeparator);\r\n this.text = this.codeValues.join('');\r\n\r\n if (this.codeValues.every(v => v)) {\r\n this.$emit('code-complete', { value: this.text });\r\n }\r\n },\r\n \r\n // ========== 车牌号相关方法 ==========\r\n initPlateValue(val) {\n if (!val) {\n this.plateProvince = this.resolvedDefaultPlateProvince;\n this.plateNumber = '';\n return;\n }\n const str = String(val);\r\n if (str.length > 0) {\r\n this.plateProvince = str[0];\r\n this.plateNumber = str.slice(1).toUpperCase();\r\n }\r\n },\r\n handlePlateInput(val) {\r\n this.plateNumber = val.toUpperCase().replace(/[^A-Z0-9]/g, '');\r\n this.updatePlateValue();\r\n },\r\n handlePlateBlur(event) {\r\n this.updatePlateValue();\r\n this.handleBlur(event);\r\n },\r\n updatePlateValue() {\r\n const value = this.plateProvince + this.plateNumber;\r\n this.text = value;\r\n\r\n },\r\n \r\n // ========== IP地址相关方法 ==========\r\n initIpValue(val) {\r\n if (!val) {\r\n this.ipSegments = ['', '', '', ''];\r\n return;\r\n }\r\n const parts = String(val).split('.');\r\n this.ipSegments = parts.slice(0, 4).map(p => p || '');\r\n while (this.ipSegments.length < 4) {\r\n this.ipSegments.push('');\r\n }\r\n },\r\n handleIpInput(event, index) {\r\n let val = event.target.value.replace(/\\D/g, '');\r\n // 限制范围 0-255\r\n if (val !== '' && parseInt(val, 10) > 255) {\r\n val = '255';\r\n }\r\n this.ipSegments[index] = val;\r\n this.updateIpValue();\r\n // 自动跳转\r\n if (val.length === 3 || (val.length > 0 && parseInt(val, 10) >= 26)) {\r\n if (index < 3 && this.ipRefs[index + 1]) {\r\n this.$nextTick(() => this.ipRefs[index + 1].focus());\r\n }\r\n }\r\n },\r\n handleIpKeydown(event, index) {\r\n if (event.key === '.' && index < 3) {\r\n event.preventDefault();\r\n if (this.ipRefs[index + 1]) {\r\n this.ipRefs[index + 1].focus();\r\n }\r\n }\r\n if (event.key === 'Backspace' && !this.ipSegments[index] && index > 0) {\r\n if (this.ipRefs[index - 1]) {\r\n this.ipRefs[index - 1].focus();\r\n }\r\n }\r\n },\r\n updateIpValue() {\r\n const value = this.ipSegments.join('.');\r\n this.text = value;\r\n\r\n },\r\n \r\n // ========== MAC地址相关方法 ==========\r\n initMacValue(val) {\r\n if (!val) {\r\n this.macSegments = ['', '', '', '', '', ''];\r\n return;\r\n }\r\n const str = String(val).replace(/[^A-Fa-f0-9]/g, '');\r\n this.macSegments = [];\r\n for (let i = 0; i < 6; i++) {\r\n this.macSegments.push(str.slice(i * 2, i * 2 + 2).toUpperCase());\r\n }\r\n },\r\n handleMacInput(event, index) {\r\n let val = event.target.value.replace(/[^A-Fa-f0-9]/g, '').toUpperCase();\r\n this.macSegments[index] = val.slice(0, 2);\r\n this.updateMacValue();\r\n // 自动跳转\r\n if (val.length >= 2 && index < 5) {\r\n this.$nextTick(() => {\r\n if (this.macRefs[index + 1]) {\r\n this.macRefs[index + 1].focus();\r\n }\r\n });\r\n }\r\n },\r\n handleMacKeydown(event, index) {\r\n if ((event.key === ':' || event.key === '-') && index < 5) {\r\n event.preventDefault();\r\n if (this.macRefs[index + 1]) {\r\n this.macRefs[index + 1].focus();\r\n }\r\n }\r\n if (event.key === 'Backspace' && !this.macSegments[index] && index > 0) {\r\n if (this.macRefs[index - 1]) {\r\n this.macRefs[index - 1].focus();\r\n }\r\n }\r\n },\r\n updateMacValue() {\r\n const value = this.macSegments.join(this.macSeparator);\r\n this.text = this.macSegments.join('');\r\n\r\n },\r\n \r\n // ========== 社会信用代码相关方法 ==========\r\n initUsccValue(val) {\r\n this.usccDisplay = val || '';\r\n if (val && String(val).length === 18) {\r\n this.usccValid = this.validateUscc(val);\r\n }\r\n },\r\n handleUsccInput(val) {\r\n this.usccDisplay = val.toUpperCase().replace(/[^A-Z0-9]/g, '').slice(0, 18);\r\n this.text = this.usccDisplay;\r\n if (this.usccRealtimeValidate && this.usccDisplay.length === 18) {\r\n this.usccValid = this.validateUscc(this.usccDisplay);\r\n } else {\r\n this.usccValid = null;\r\n }\r\n\r\n },\r\n handleUsccBlur(event) {\r\n if (this.usccDisplay && this.usccDisplay.length === 18) {\r\n this.usccValid = this.validateUscc(this.usccDisplay);\r\n this.$emit('uscc-valid', { valid: this.usccValid });\r\n }\r\n this.handleBlur(event);\r\n },\r\n validateUscc(code) {\r\n if (!code || code.length !== 18) return false;\r\n // 统一社会信用代码校验规则\r\n const chars = '0123456789ABCDEFGHJKLMNPQRTUWXY';\r\n const weights = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) {\r\n const charIndex = chars.indexOf(code[i]);\r\n if (charIndex === -1) return false;\r\n sum += charIndex * weights[i];\r\n }\r\n const checkIndex = (31 - (sum % 31)) % 31;\r\n return chars[checkIndex] === code[17];\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\"\r\n style=\"position:relative\">\r\n <canvas :id=\"'canvas'+id\"\r\n ref=\"canvas\"></canvas>\r\n <slot></slot>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport { downFile } from 'utils/util';\r\nexport default create({\r\n name: 'license',\r\n props: {\r\n id: {\r\n type: String,\r\n default: ''\r\n },\r\n option: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n }\r\n },\r\n watch: {\r\n option: {\r\n handler () {\r\n this.init();\r\n },\r\n deep: true\r\n }\r\n },\r\n data () {\r\n return {\r\n base64: '',\r\n draw: false,\r\n canvas: '',\r\n context: '',\r\n }\r\n },\r\n computed: {\r\n img () {\r\n return this.option.img\r\n },\r\n list () {\r\n return this.option.list || []\r\n }\r\n },\r\n mounted () {\r\n this.canvas = document.getElementById(\"canvas\" + this.id);\r\n this.context = this.canvas.getContext(\"2d\");\r\n this.init();\r\n },\r\n methods: {\r\n init () {\r\n this.draw = false;\r\n const beauty = new Image();\r\n beauty.src = this.img;\r\n beauty.onload = () => {\r\n const width = this.option.width || beauty.width;;\r\n const height = this.option.width ? ((beauty.height / beauty.width) * this.option.width) : beauty.height;\r\n this.$refs.canvas.width = width;\r\n this.$refs.canvas.height = height\r\n this.context.clearRect(0, 0, width, height);\r\n this.context.drawImage(beauty, 0, 0, width, height);\r\n this.list.forEach((ele, index) => {\r\n const callback = () => {\r\n if (index == this.list.length - 1) {\r\n setTimeout(() => {\r\n this.draw = true;\r\n }, 0)\r\n }\r\n }\r\n if (ele.img) {\r\n const img = new Image();\r\n img.src = ele.img\r\n img.onload = () => {\r\n const widths = ele.width || img.width;;\r\n const heights = ele.width ? ((img.height / img.width) * ele.width) : img.height;\r\n this.context.drawImage(img, ele.left, ele.top, widths, heights);\r\n callback();\r\n }\r\n } else {\r\n if (ele.bold) {\r\n this.context.font = `bold ${ele.size}px ${ele.style}`\r\n } else {\r\n this.context.font = `${ele.size}px ${ele.style}`\r\n }\r\n this.context.fillStyle = ele.color;\r\n\r\n this.context.fillText(ele.text, ele.left, ele.top);\r\n this.context.stroke();\r\n callback();\r\n }\r\n })\r\n\r\n };\r\n },\r\n getFile (name = new Date().getTime()) {\r\n return new Promise((resolve) => {\r\n const time = setInterval(() => {\r\n if (this.draw) {\r\n const data = this.canvas.toDataURL('image/jpeg', 1.0);\r\n const file = this.dataURLtoFile(data, name)\r\n clearInterval(time)\r\n resolve(file)\r\n }\r\n }, 1000)\r\n })\r\n return file;\r\n },\r\n downFile (filename = new Date().getTime()) {\r\n downFile(this.base64, filename)\r\n },\r\n getBase64 () {\r\n return new Promise((resolve) => {\r\n const time = setInterval(() => {\r\n if (this.draw) {\r\n const data = this.canvas.toDataURL('image/jpeg', 1.0);\r\n this.base64 = data;\r\n clearInterval(time)\r\n resolve(data)\r\n }\r\n }, 100)\r\n })\r\n },\r\n getPdf (name = new Date().getTime()) {\r\n const contentWidth = this.canvas.width;\r\n const contentHeight = this.canvas.height;\r\n const pageHeight = (contentWidth / 592.28) * 841.89;\r\n let leftHeight = contentHeight;\r\n let position = 0;\r\n const imgWidth = 595.28;\r\n const imgHeight = (592.28 / contentWidth) * contentHeight;\r\n const pageData = this.canvas.toDataURL('image/jpeg', 1.0);\r\n const PDF = new window.jsPDF('', 'pt', 'a4');\r\n if (leftHeight < pageHeight) {\r\n PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);\r\n } else {\r\n while (leftHeight > 0) {\r\n PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);\r\n leftHeight -= pageHeight;\r\n position -= 841.89;\r\n if (leftHeight > 0) {\r\n PDF.addPage();\r\n }\r\n }\r\n }\r\n PDF.save(`${name}.pdf`);\r\n }\r\n }\r\n})\r\n</script>\r\n","<template>\r\n <div :class=\"b()\"\r\n :style=\"{width:setPx(width)}\">\r\n <el-form :model=\"form\"\r\n ref=\"form\"\r\n :size=\"$AVUE.size\"\r\n label-suffix=\":\"\r\n :label-width=\"setPx(labelWidth)\">\r\n <el-form-item :label=\"username.label || t('login.usernameLabel')\"\n :rules=\"username.rules\"\n :label-width=\"setPx(username.labelWidth)\"\n v-if=\"!username.hide\"\n prop=\"username\">\n <el-tooltip :content=\"username.tip\"\n :disabled=\"username.tip===undefined\"\n placement=\"top-start\">\n <el-input v-model=\"form.username\"\n :prefix-icon=\"username.prefixIcon || 'el-icon-user'\"\n :placeholder=\"username.placeholder || t('login.usernamePlaceholder')\"\n :autocomplete=\"username.autocomplete\"></el-input>\n </el-tooltip>\n </el-form-item>\n <el-form-item :label=\"password.label || t('login.passwordLabel')\"\n :rules=\"password.rules\"\n :label-width=\"setPx(password.labelWidth)\"\n v-if=\"!password.hide\"\n prop=\"password\">\n <el-tooltip :content=\"password.tip\"\n :disabled=\"password.tip===undefined\"\n placement=\"top-start\">\n <el-input type=\"password\"\n :prefix-icon=\"password.prefixIcon || 'el-icon-unlock'\"\n :placeholder=\"password.placeholder || t('login.passwordPlaceholder')\"\n show-password\n v-model=\"form.password\"\n :autocomplete=\"password.autocomplete\"></el-input>\n </el-tooltip>\n </el-form-item>\n <el-form-item :label=\"code.label || t('login.codeLabel')\"\n :rules=\"code.rules\"\n v-if=\"!code.hide\"\n :label-width=\"setPx(code.labelWidth)\"\n prop=\"code\">\n <el-tooltip :content=\"code.tip\"\n :disabled=\"code.tip===undefined\"\n placement=\"top-start\">\n <el-input v-model=\"form.code\"\n :prefix-icon=\"code.prefixIcon || 'el-icon-c-scale-to-original'\"\n :placeholder=\"code.placeholder || t('login.codePlaceholder')\"\n :autocomplete=\"code.autocomplete\">\n\n <template #append>\n <el-button type=\"primary\"\n :class=\"b('send')\"\n v-if=\"isPhone\"\n :disabled=\"sendDisabled\"\n @click=\"onSend\">{{sendText}}</el-button>\n <span v-if=\"isImg\">\n <img :src=\"codesrc\"\n alt=\"\"\n @click=\"onRefresh\"\r\n width=\"80\"\r\n height=\"25\">\r\n </span>\r\n </template>\r\n </el-input>\r\n </el-tooltip>\r\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\"\n @click=\"onSubmit\"\n :class=\"b('submit')\">{{t('login.submitBtn')}}</el-button>\n </el-form-item>\n </el-form>\n </div>\n</template>\n\n<script>\nimport create from \"core/create\";\nimport locale from \"core/locale\";\nexport default create({\n name: 'login',\n mixins: [locale],\n emits: ['update:modelValue','send','refresh','submit'],\n props: {\n modelValue: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n codesrc: {\r\n type: String,\r\n },\r\n option: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n }\r\n },\r\n computed: {\r\n labelWidth () {\r\n return this.option.labelWidth || 80\r\n },\r\n time () {\r\n return this.option.time || 60\r\n },\r\n isImg () {\r\n return this.codeType === 'img'\r\n },\r\n isPhone () {\r\n return this.codeType === 'phone'\r\n },\r\n codeType () {\r\n return this.option.codeType || 'img'\r\n },\r\n width () {\r\n return this.option.width || '100%'\r\n },\r\n username () {\r\n return this.column.username || {}\r\n },\r\n password () {\r\n return this.column.password || {}\r\n },\r\n code () {\r\n return this.column.code || {}\r\n },\r\n column () {\r\n return this.option.column || {};\r\n },\r\n sendDisabled () {\n return !this.validatenull(this.check)\n },\n sendText () {\n return this.nowtime > 0\n ? this.t('login.resendCode', { time: this.nowtime })\n : this.t('login.sendCode');\n }\n\n },\n watch: {\r\n modelValue: {\r\n handler () {\r\n this.form = this.modelValue\r\n },\r\n deep: true\r\n },\r\n form: {\r\n handler () {\r\n this.$emit('update:modelValue', this.form)\r\n },\r\n deep: true,\r\n immediate: true\r\n }\r\n },\r\n data () {\n return {\n nowtime: 0,\n check: null,\n form: {}\n }\n },\n methods: {\n onSend () {\n const callback = () => {\n this.nowtime = this.time;\n this.check = setInterval(() => {\n this.nowtime--\n if (this.nowtime === 0) {\n clearInterval(this.check);\n this.check = null;\n }\n }, 1000)\n }\n if (this.sendDisabled) return\r\n this.$emit('send', callback)\r\n },\r\n onRefresh () {\r\n this.$emit('refresh');\r\n },\r\n onSubmit () {\r\n const onCover = () => {\r\n const form = {};\r\n for (let o in this.form) {\r\n let key = o;\r\n if (this[o].prop) {\r\n key = this[o].prop\r\n }\r\n form[key] = this.form[o]\r\n }\r\n return form;\r\n }\r\n this.$refs.form.validate((valid) => {\r\n if (valid) {\r\n this.$emit('submit', onCover())\r\n }\r\n });\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <el-mention v-model=\"text\"\r\n :class=\"b()\"\r\n @click=\"handleClick\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :placeholder=\"placeholder\"\r\n :size=\"size\"\r\n :prefix=\"prefix\"\r\n :options=\"options\"\r\n :loading=\"loading\"\r\n :split=\"split\"\r\n :whole=\"whole\"\r\n :check-is-whole=\"checkIsWhole\"\r\n @search=\"remote?handleRemoteMethod:undefined\"\r\n :clearable=\"clearableVal\"\r\n :readonly=\"readonly\"\r\n :disabled=\"disabled\">\r\n <template #prepend\r\n v-if=\"prepend\"><span @click=\"prependClick(text)\">{{prepend}}</span>\r\n </template>\r\n <template #append\r\n v-if=\"append\">\r\n <span @click=\"appendClick(text)\">{{append}}</span>\r\n </template>\r\n <template #label=\"{ item }\">\r\n <slot :item=\"item\"\r\n :label=\"labelKey\"\r\n :value=\"valueKey\"\r\n v-if=\"$slots.default\">\r\n </slot>\r\n <span v-else>{{ item.label }}</span>\r\n </template>\r\n </el-mention>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport { sendDic } from \"core/dic\";\r\nexport default create({\r\n name: \"mention\",\r\n mixins: [props(), event()],\r\n data () {\r\n return {\r\n created: false,\r\n loading: false,\r\n netDic: [],\r\n };\r\n },\r\n props: {\r\n split: {\r\n type: String,\r\n default: ','\r\n },\r\n remote: Boolean,\r\n prependClick: {\r\n type: Function,\r\n default: () => { }\r\n },\r\n prepend: {\r\n type: String\r\n },\r\n appendClick: {\r\n type: Function,\r\n default: () => { }\r\n },\r\n append: {\r\n type: String\r\n },\r\n prefix: String,\r\n whole: Boolean,\r\n checkIsWhole: Function\r\n },\r\n created () { },\r\n mounted () { },\r\n computed: {\r\n options () {\r\n return this.netDic.map(ele => {\r\n return {\r\n label: ele[this.labelKey],\r\n value: ele[this.valueKey],\r\n }\r\n })\r\n }\r\n },\r\n watch: {\r\n dic: {\r\n handler (val) {\r\n this.netDic = val;\r\n },\r\n immediate: true\r\n }\r\n },\r\n methods: {\r\n handleModelValue (val) {\r\n if (!this.validatenull(this.text)) {\r\n if (this.remote && !this.created) {\r\n this.created = true\r\n this.handleRemoteMethod(this.text)\r\n }\r\n }\r\n },\r\n handleRemoteMethod (query) {\r\n this.loading = true\r\n sendDic({\r\n column: this.column,\r\n value: query,\r\n }, this).then(res => {\r\n this.loading = false;\r\n this.netDic = res;\r\n });\r\n }\r\n }\r\n});\r\n</script>\n","<template>\r\n <div :class=\"b()\">\r\n <el-radio-group v-model=\"text\"\r\n :size=\"size\"\r\n @click=\"handleClick\"\r\n :disabled=\"disabled\">\r\n <component :is=\"componentName\"\r\n v-for=\"(item,index) in dic\"\r\n :value=\"item[valueKey]\"\r\n :border=\"border\"\r\n :readonly=\"readonly\"\r\n :disabled=\"item[disabledKey]\"\r\n :key=\"index\">{{item[labelKey]}}</component>\r\n </el-radio-group>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"radio\",\r\n mixins: [props(), event()],\r\n data () {\r\n return {\r\n name: 'radio',\r\n };\r\n },\r\n props: {\r\n modelValue: {}\r\n },\r\n watch: {},\r\n created () { },\r\n mounted () { },\r\n methods: {}\r\n});\r\n</script>\n","<template>\r\n <el-rate v-model=\"text\"\r\n @click=\"handleClick\"\r\n :max=\"max\"\r\n :readonly=\"readonly\"\r\n :texts=\"texts\"\r\n :show-text=\"showText\"\r\n :icon-classes=\"iconClasses\"\r\n :void-icon-class=\"voidIconClass\"\r\n :disabled=\"disabled\"\r\n :colors=\"colors\"></el-rate>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"rate\",\r\n mixins: [props(), event()],\r\n props: {\r\n colors: {\r\n type: Array\r\n },\r\n max: {\r\n type: Number,\r\n default: 5\r\n },\r\n iconClasses: {\r\n type: Array\r\n },\r\n texts: {\r\n type: Array\r\n },\r\n showText: {\r\n type: Boolean,\r\n default: false\r\n },\r\n voidIconClass: {\r\n type: String\r\n }\r\n },\r\n data () {\r\n return {};\r\n },\r\n watch: {},\r\n created () { },\r\n mounted () { },\r\n methods: {}\r\n});\r\n</script>\r\n","<template>\r\n <el-row :class=\"[b(),{'avue--card':isCard}]\"\r\n :span=\"24\">\r\n <el-col :span=\"column.span || 24\"\r\n v-for=\"(column,index) in columnOption\"\r\n :key=\"column.prop\"\r\n :class=\"b('item')\">\r\n <p :class=\"b('title')\">{{column.label}}:</p>\r\n <div :class=\"b('content')\">\r\n <slot :name=\"column.prop\"\r\n :dic=\"DIC[column.prop]\"\r\n v-if=\"mainSlot.includes(column.prop)\"></slot>\r\n <span v-else\r\n :class=\"[b('tags'),{'avue-search__tags--active':getActive(item,column)}]\"\r\n @click=\"handleClick(column,item)\"\r\n v-for=\"item in DIC[column.prop]\"\r\n :key=\"getKey(item,column.props,valueKey)\">{{getKey(item,column.props,labelKey)}}</span>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport { DIC_PROPS } from 'global/variable'\r\nimport init from \"../../core/common/init\";\nexport default create({\r\n name: \"search\",\r\n mixins: [init()],\r\n props: {\r\n modelValue: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n }\r\n },\r\n watch: {\r\n modelValue: {\r\n handler (val) {\r\n this.setVal(val)\r\n },\r\n deep: true\r\n }\r\n },\r\n computed: {\r\n form: {\r\n get () {\r\n return this.modelValue\r\n },\r\n set (val) {\r\n this.setVal(val)\r\n }\r\n },\r\n props () {\r\n return this.parentOption.props || {}\r\n },\r\n labelKey () {\r\n return DIC_PROPS.label\r\n },\r\n valueKey () {\r\n return DIC_PROPS.value\r\n },\r\n mainSlot () {\r\n let result = [];\r\n this.propOption.forEach(item => {\r\n if (this.$slots[item.prop]) result.push(item.prop)\r\n })\r\n return result\r\n },\r\n isCard () {\r\n return this.parentOption.card;\r\n },\r\n parentOption () {\r\n return this.tableOption;\r\n },\r\n propOption () {\r\n return this.columnOption;\r\n },\r\n columnOption () {\r\n return this.parentOption.column;\r\n }\r\n },\r\n mounted () {\r\n this.dataFormat();\r\n },\r\n methods: {\r\n setVal (val) {\r\n this.$emit('update:modelValue', val)\r\n this.$emit(\"change\", val);\r\n },\r\n getKey (item = {}, props = {}, key) {\r\n return item[props[key] || this.props[key] || key];\r\n },\r\n dataFormat () {\r\n this.columnOption.forEach(ele => {\r\n const prop = ele.prop;\r\n if (this.validatenull(this.form[prop])) {\r\n this.form[prop] = ele.multiple === false ? '' : []\r\n }\r\n });\r\n },\r\n getActive (item, column) {\r\n const value = this.getKey(item, column.props, this.valueKey);\r\n if (column.multiple === false) {\r\n return this.form[column.prop] === value;\r\n } else {\r\n return this.form[column.prop].includes(value);\r\n }\r\n },\r\n handleClick (column, item) {\r\n const value = this.getKey(item, column.props, this.valueKey);\r\n //单选\r\n if (column.multiple === false) {\r\n this.form[column.prop] = value;\r\n } else {\r\n // 多选\r\n const index = this.form[column.prop].indexOf(value);\r\n if (index === -1) {\r\n this.form[column.prop].push(value);\r\n } else {\r\n this.form[column.prop].splice(index, 1);\r\n }\r\n }\r\n }\r\n }\r\n});\r\n</script>\r\n\r\n","<template>\r\n <component\r\n :is=\"componentName\"\r\n ref=\"main\"\r\n :class=\"b()\"\r\n v-model=\"text\"\r\n :size=\"size\"\r\n :options=\"netDic\"\r\n :props=\"props\"\r\n :loading=\"loading\"\r\n :loading-text=\"loadingText\"\r\n :value-on-clear=\"valueOnClear\"\r\n :multiple=\"multiple\"\r\n :filterable=\"remote ? true : filterable\"\r\n :remote=\"remote\"\r\n :readonly=\"readonly\"\r\n :no-match-text=\"noMatchText\"\r\n :no-data-text=\"noDataText\"\r\n :remote-method=\"remote ? handleRemoteMethod : undefined\"\r\n :popper-class=\"popperClass\"\r\n :popper-append-to-body=\"popperAppendToBody\"\r\n :collapse-tags=\"tags || collapseTags\"\r\n :collapse-tags-tooltip=\"collapseTagsTooltip\"\r\n :max-collapse-tags=\"maxCollapseTags\"\r\n :clearable=\"clearableVal\"\r\n :placeholder=\"placeholder\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n @click=\"handleClick\"\r\n @remove-tag=\"handleremoveTag\"\r\n :multiple-limit=\"limit\"\r\n :allow-create=\"allowCreate\"\r\n :default-first-option=\"defaultFirstOption\"\r\n :disabled=\"disabled\"\r\n >\r\n <template #=\"scope\">\r\n <template v-if=\"virtualize\">\r\n <slot\r\n :label=\"labelKey\"\r\n :value=\"valueKey\"\r\n :item=\"scope.item\"\r\n v-if=\"$slots.default\"\r\n >\r\n </slot>\r\n <template v-else>\r\n <span>{{ getLabelText(scope.item) }}</span>\r\n <span v-if=\"scope.item[descKey]\" :class=\"b('desc')\">{{\r\n scope.item[descKey]\r\n }}</span>\r\n </template>\r\n </template>\r\n <template v-else>\r\n <template v-if=\"isGroup\">\r\n <el-option-group\r\n v-for=\"(item, index) in netDic\"\r\n :key=\"index\"\r\n :label=\"getLabelText(item)\"\r\n >\r\n <el-option\r\n v-for=\"(citem, cindex) in item[groupsKey]\"\r\n :key=\"citem[valueKey]\"\r\n :class=\"citem[classNameKey]\"\r\n :disabled=\"citem[disabledKey]\"\r\n :label=\"getLabelText(citem)\"\r\n :value=\"citem[valueKey]\"\r\n >\r\n <template #>\r\n <slot\r\n :label=\"labelKey\"\r\n :value=\"valueKey\"\r\n :item=\"citem\"\r\n v-if=\"$slots.default\"\r\n >\r\n </slot>\r\n <template v-else>\r\n <span>{{ getLabelText(citem) }}</span>\r\n <span v-if=\"citem[descKey]\" :class=\"b('desc')\">{{\r\n citem[descKey]\r\n }}</span>\r\n </template>\r\n </template>\r\n </el-option>\r\n </el-option-group>\r\n </template>\r\n <template v-else>\r\n <div :class=\"b('check')\">\r\n <el-checkbox\r\n v-if=\"all && multiple\"\n v-model=\"checked\"\n :disabled=\"disabled\"\n :indeterminate=\"indeterminate\"\n @change=\"checkChange\"\n >{{ t('check.checkAll') }}</el-checkbox\n >\n </div>\n\r\n <el-option\r\n v-for=\"(item, index) in netDic\"\r\n :key=\"item[valueKey]\"\r\n :class=\"item[classNameKey]\"\r\n :disabled=\"item[disabledKey]\"\r\n :label=\"getLabelText(item)\"\r\n :value=\"item[valueKey]\"\r\n >\r\n <template #>\r\n <slot\r\n :label=\"labelKey\"\r\n :value=\"valueKey\"\r\n :item=\"item\"\r\n v-if=\"$slots.default\"\r\n >\r\n </slot>\r\n <template v-else>\r\n <span>{{ getLabelText(item) }}</span>\r\n <span v-if=\"item[descKey]\" :class=\"b('desc')\">{{\r\n item[descKey]\r\n }}</span>\r\n </template>\r\n </template>\r\n </el-option>\r\n </template>\r\n </template>\r\n </template>\r\n </component>\r\n</template>\r\n\r\n<script>\r\nimport packages from \"core/packages\";\nimport create from \"core/create\";\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport locale from \"core/locale\";\nimport { sendDic } from \"core/dic\";\nimport { DIC_SPLIT } from \"global/variable\";\nexport default create({\n name: \"select\",\n mixins: [props(), event(), locale],\n data() {\n return {\r\n checked: false,\r\n indeterminate: false,\r\n create: false,\r\n netDic: [],\r\n loading: false,\r\n };\r\n },\r\n props: {\r\n virtualize: Boolean,\r\n valueOnClear: {\r\n type: [String, Number, Boolean, Function],\r\n default: undefined,\r\n },\r\n loadingText: {\r\n type: String,\r\n },\r\n noMatchText: {\r\n type: String,\r\n },\r\n noDataText: {\r\n type: String,\r\n },\r\n drag: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n remote: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n tags: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n removeTag: Function,\r\n collapseTags: Boolean,\r\n collapseTagsTooltip: Boolean,\r\n maxCollapseTags: Number,\r\n limit: {\r\n type: Number,\r\n default: 0,\r\n },\r\n filterable: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n allowCreate: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n defaultFirstOption: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n all: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n popperAppendToBody: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n watch: {\r\n dic: {\r\n handler(val) {\r\n this.netDic = val;\r\n },\r\n immediate: true,\r\n },\r\n },\r\n computed: {\r\n classNameKey() {\r\n return this.props.className || \"className\";\r\n },\r\n componentName() {\r\n return \"elSelect\" + (this.virtualize ? \"V2\" : \"\");\r\n },\r\n },\r\n mounted() {\r\n if (this.drag) {\r\n this.setSort();\r\n }\r\n },\r\n methods: {\r\n handleModelValue(val) {\r\n if (!this.validatenull(this.text)) {\r\n if (this.remote && !this.created) {\r\n this.created = true;\r\n this.handleRemoteMethod(\r\n this.multiple ? this.text.join(DIC_SPLIT) : this.text\r\n );\r\n }\r\n }\r\n if (this.multiple) {\r\n if (this.text.length == 0) {\r\n this.checked = false;\r\n this.indeterminate = false;\r\n } else if (this.text.length == this.netDic.length) {\r\n this.checked = true;\r\n this.indeterminate = false;\r\n } else {\r\n this.indeterminate = true;\r\n }\r\n }\r\n },\r\n setSort() {\r\n if (!window.Sortable) {\r\n packages.logs(\"Sortable\");\r\n return;\r\n }\r\n const el = this.$refs.main.$el.querySelectorAll(\r\n \".el-select__selection\"\r\n )[0];\r\n this.sortable = window.Sortable.create(el, {\r\n animation: 100,\r\n onEnd: (evt) => {\r\n const targetRow = this.modelValue.splice(evt.oldIndex, 1)[0];\r\n this.modelValue.splice(evt.newIndex, 0, targetRow);\r\n },\r\n });\r\n },\r\n handleRemoteMethod(query) {\r\n this.loading = true;\r\n sendDic(\r\n {\r\n column: this.column,\r\n value: query,\r\n },\r\n this\r\n ).then((res) => {\r\n this.loading = false;\r\n this.netDic = res;\r\n });\r\n },\r\n checkChange(val) {\r\n this.text = [];\r\n this.checked = val;\r\n this.indeterminate = false;\r\n if (val) {\r\n this.text = this.netDic\r\n .filter((ele) => !ele[this.disabledKey])\r\n .map((ele) => ele[this.valueKey]);\r\n }\r\n },\r\n handleremoveTag(tagValue) {\r\n if (this.removeTag && typeof this.removeTag === 'function') {\r\n this.removeTag(tagValue);\r\n }\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <canvas :class=\"b('canvas')\"\r\n :width=\"width\"\r\n :height=\"height\"\r\n ref=\"canvas\"></canvas>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n//绘制五角星 \r\n/** \r\n * 创建一个五角星形状. 该五角星的中心坐标为(sx,sy),中心到顶点的距离为radius,rotate=0时一个顶点在对称轴上 \r\n * rotate:绕对称轴旋转rotate弧度 \r\n */\r\nfunction create5star (context, sx, sy, radius, color, rotato) {\r\n context.save();\r\n context.fillStyle = color;\r\n context.translate(sx, sy);//移动坐标原点 \r\n context.rotate(Math.PI + rotato);//旋转 \r\n context.beginPath();//创建路径 \r\n var x = Math.sin(0);\r\n var y = Math.cos(0);\r\n var dig = Math.PI / 5 * 4;\r\n for (var i = 0; i < 5; i++) {//画五角星的五条边 \r\n var x = Math.sin(i * dig);\r\n var y = Math.cos(i * dig);\r\n context.lineTo(x * radius, y * radius);\r\n }\r\n context.closePath();\r\n context.stroke();\r\n context.fill();\r\n context.restore();\r\n}\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"sign\",\r\n props: {\r\n width: {\r\n type: Number,\r\n default: 600,\r\n },\r\n height: {\r\n type: Number,\r\n default: 400\r\n }\r\n },\r\n data () {\r\n return {\r\n disabled: false,\r\n linex: [],\r\n liney: [],\r\n linen: [],\r\n canvas: {},\r\n context: {},\r\n }\r\n },\r\n computed: {\r\n styleName () {\r\n return {\r\n width: this.setPx(this.width),\r\n height: this.setPx(this.height)\r\n }\r\n }\r\n },\r\n mounted () {\r\n this.init();\r\n },\r\n methods: {\r\n getStar (text, text1, text2) {\r\n var canvas = this.canvas;\r\n var context = this.context\r\n // 绘制印章边框 \r\n var width = canvas.width / 2;\r\n var height = canvas.height / 2;\r\n context.lineWidth = 7;\r\n context.strokeStyle = \"#f00\";\r\n context.beginPath();\r\n context.arc(width, height, 110, 0, Math.PI * 2);\r\n context.stroke();\r\n\r\n //画五角星\r\n create5star(context, width, height, 20, \"#f00\", 0);\r\n\r\n // 绘制印章名称 \r\n context.font = '18px SimHei';\n context.textBaseline = 'middle';//设置文本的垂直对齐方式\r\n context.textAlign = 'center'; //设置文本的水平对对齐方式\r\n context.lineWidth = 1;\r\n context.strokeStyle = '#f00';\r\n context.strokeText(text, width, height + 50);\r\n\r\n // 绘制印章副属性名称 \r\n context.font = '14px SimHei';\n context.textBaseline = 'middle';//设置文本的垂直对齐方式\r\n context.textAlign = 'center'; //设置文本的水平对对齐方式\r\n context.lineWidth = 1;\r\n context.strokeStyle = '#f00';\r\n context.strokeText(text2, width, height + 80);\r\n\r\n // 绘制印章单位 \r\n context.translate(width, height);// 平移到此位置,\r\n context.font = '22px SimHei'\n var count = text1.length;// 字数 \r\n var angle = 4 * Math.PI / (3 * (count - 1));// 字间角度 \r\n var chars = text1.split(\"\");\r\n var c;\r\n for (var i = 0; i < count; i++) {\r\n c = chars[i];// 需要绘制的字符 \r\n if (i == 0) context.rotate(5 * Math.PI / 6);\r\n else\r\n context.rotate(angle);// \r\n context.save();\r\n context.translate(90, 0);// 平移到此位置,此时字和x轴垂直 \r\n context.rotate(Math.PI / 2);// 旋转90度,让字平行于x轴 \r\n context.strokeText(c, 0, 0);// 此点为字的中心点 \r\n context.restore();\r\n context.save();//锁画布(为了保存之前的画布状态) \r\n }\r\n this.disabled = true\r\n },\r\n submit (width, height) {\r\n if (!width) width = this.width;\r\n if (!height) height = this.height;\r\n return this.canvas.toDataURL(\"i/png\");\r\n },\r\n clear () {\r\n this.linex = new Array();\r\n this.liney = new Array();\r\n this.linen = new Array();\r\n this.disabled = false\r\n this.canvas.width = this.canvas.width\r\n\r\n },\r\n init () {\r\n this.canvas = this.$refs.canvas;\r\n var canvas = this.canvas;\r\n var _safe = this;\r\n //注册相关事件\r\n if (typeof document.ontouchstart != \"undefined\") { //适配移动设备\r\n canvas.addEventListener('touchmove', onMouseMove, false);\r\n canvas.addEventListener('touchstart', onMouseDown, false);\r\n canvas.addEventListener('touchend', onMouseUp, false);\r\n } else { //适配电脑\r\n canvas.addEventListener('mousemove', onMouseMove, false);\r\n canvas.addEventListener('mousedown', onMouseDown, false);\r\n canvas.addEventListener('mouseup', onMouseUp, false);\r\n canvas.addEventListener('mouseleave', onMouseUp, false);\r\n }\r\n //初始化上下文和参数\r\n this.context = canvas.getContext('2d');\r\n var context = this.context;\r\n this.linex = new Array();\r\n this.liney = new Array();\r\n this.linen = new Array();\r\n var lastX = 1;\r\n var lastY = 30;\r\n var flag = 0;\r\n\r\n\r\n\r\n //根据鼠标坐标获取绘图坐标\r\n function getCanvasPos (canvas, evt) {\r\n var rect = canvas.getBoundingClientRect();\r\n var x, y;\r\n if (evt.targetTouches) {\r\n x = evt.targetTouches[0].clientX;\r\n y = evt.targetTouches[0].clientY;\r\n } else {\r\n x = evt.clientX;\r\n y = evt.clientY;\r\n }\r\n return {\r\n x: (x - rect.left) * (canvas.width / rect.width),\r\n y: (y - rect.top) * (canvas.height / rect.height)\r\n }\r\n }\r\n\r\n //鼠标移动的时候\r\n function onMouseMove (evt) {\r\n if (_safe.disabled) return\r\n var x = getCanvasPos(canvas, evt).x,\r\n y = getCanvasPos(canvas, evt).y;\r\n\r\n //判断是否处于按下状态\r\n if (flag == 1) {\r\n //如果是则画图\r\n _safe.linex.push(x);\r\n _safe.liney.push(y);\r\n _safe.linen.push(1);\r\n context.save();\r\n context.translate(context.canvas.width / 2, context.canvas.height / 2);\r\n context.translate(-context.canvas.width / 2, -context.canvas.height / 2);\r\n context.beginPath();\r\n context.lineWidth = 2;\r\n for (var i = 1; i < _safe.linex.length; i++) {\r\n lastX = _safe.linex[i];\r\n lastY = _safe.liney[i];\r\n if (_safe.linen[i] == 0)\r\n context.moveTo(lastX, lastY);\r\n else\r\n context.lineTo(lastX, lastY);\r\n }\r\n context.shadowBlur = 10;\r\n context.stroke();\r\n context.restore();\r\n }\r\n evt.preventDefault();\r\n }\r\n\r\n //当鼠标按下的时候修改按下标志,并开始记录坐标\r\n function onMouseDown (evt) {\r\n if (_safe.disabled) return\r\n var x = getCanvasPos(canvas, evt).x,\r\n y = getCanvasPos(canvas, evt).y;\r\n flag = 1;\r\n _safe.linex.push(x);\r\n _safe.liney.push(y);\r\n _safe.linen.push(0);\r\n }\r\n\r\n //鼠标松开清除标志\r\n function onMouseUp () {\r\n if (_safe.disabled) return\r\n flag = 0;\r\n }\r\n }\r\n }\r\n});\r\n</script>\n","<template>\r\n <el-slider v-model=\"text\"\r\n :disabled=\"disabled\"\r\n :vertical=\"vertical\"\r\n :height=\"setPx(height)\"\r\n :step=\"step\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n :range=\"range\"\r\n :show-stops=\"showStops\"\r\n :show-input=\"showInput\"\r\n :marks=\"marks\"\r\n :format-tooltip=\"formatTooltip\"\r\n @click=\"handleClick\"></el-slider>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"slider\",\r\n mixins: [props(), event()],\r\n props: {\r\n modelValue: {},\r\n step: {\r\n type: Number\r\n },\r\n min: {\r\n type: Number\r\n },\r\n max: {\r\n type: Number\r\n },\r\n marks: {\r\n type: Object\r\n },\r\n range: {\r\n type: Boolean,\r\n default: false\r\n },\r\n showInput: {\r\n type: Boolean,\r\n default: false\r\n },\r\n showStops: {\r\n type: Boolean,\r\n default: false\r\n },\r\n vertical: {\r\n type: Boolean,\r\n default: false\r\n },\r\n formatTooltip: Function,\r\n height: String,\r\n formatTooltip: Function\r\n },\r\n data () {\r\n return {};\r\n },\r\n watch: {},\r\n created () { },\r\n mounted () { },\r\n methods: {}\r\n});\r\n</script>\r\n","<template>\r\n <div>\r\n <el-switch v-model=\"text\"\r\n @click=\"handleClick\"\r\n :loading=\"loading\"\r\n :inline-prompt=\"inlinePrompt\"\r\n :active-icon=\"activeIcon\"\r\n :before-change=\"handleBeforeChange\"\r\n :active-action-icon=\"activeActionIcon\"\r\n :active-text=\"active[labelKey]\"\r\n :active-value=\"active[valueKey]\"\r\n :inactive-icon=\"inactiveIcon\"\r\n :inactive-action-icon=\"inactiveActionIcon\"\r\n :inactive-value=\"inactive[valueKey]\"\r\n :inactive-text=\"inactive[labelKey]\"\r\n :width=\"len\"\r\n :disabled=\"disabled\"></el-switch>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: \"switch\",\r\n mixins: [props(), event()],\r\n props: {\r\n inlinePrompt: Boolean,\r\n inactiveActionIcon: String,\r\n activeActionIcon: String,\r\n inactiveIcon: String,\r\n activeIcon: String,\r\n len: Number,\r\n beforeChange: Function\r\n },\r\n data () {\r\n return {\r\n loading: false,\r\n };\r\n },\r\n watch: {},\r\n created () { },\r\n mounted () { },\r\n computed: {\r\n active () {\r\n return this.dic[1] || {};\r\n },\r\n inactive () {\r\n return this.dic[0] || {};\r\n }\r\n },\r\n methods: {\r\n handleBeforeChange () {\r\n return new Promise((resolve) => {\r\n this.loading = true\r\n const callback = (result) => {\r\n this.loading = false\r\n return resolve(result)\r\n }\r\n if (typeof this.beforeChange == 'function') {\r\n return this.beforeChange(callback)\r\n } else {\r\n return callback(true)\r\n }\r\n })\r\n\r\n }\r\n }\r\n});\r\n</script>\r\n\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-tabs v-model=\"active\"\r\n :tab-position=\"parentOption.position\"\r\n :type=\"parentOption.type\">\r\n <el-tab-pane :name=\"index+''\"\r\n :disabled=\"column.disabled\"\r\n v-for=\"(column,index) in columnOption\"\r\n :key=\"index\">\r\n <template #label>\r\n <i :class=\"column.icon\"></i> \r\n {{column.label}}\r\n </template>\r\n </el-tab-pane>\r\n </el-tabs>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"tabs\",\r\n props: {\r\n option: {\r\n type: Object,\r\n required: true,\r\n default: () => {\r\n return {};\r\n }\r\n }\r\n },\r\n data () {\r\n return {\r\n active: \"0\",\r\n };\r\n },\r\n watch: {\r\n active () {\r\n this.$emit(\"change\", this.tabsObj);\r\n }\r\n },\r\n computed: {\r\n tabsObj () {\r\n return this.columnOption[this.active];\r\n },\r\n parentOption () {\r\n return this.option;;\r\n },\r\n columnOption () {\r\n return this.parentOption.column || [];\r\n }\r\n },\r\n methods: {\r\n changeTabs (active) {\r\n this.active = active + \"\";\r\n }\r\n }\r\n});\r\n</script>\r\n\r\n\r\n","<template>\r\n <div :class=\"b()\"\r\n :style=\"{width:setPx(width,'100%')}\">\r\n\r\n <slot name=\"before\"\r\n :class=\"b('before')\"></slot>\r\n <el-tooltip :content=\"text\"\r\n :disabled=\"!(useTooltip&&isHide)\"\r\n :placement=\"placement\">\r\n <span>\r\n <span :class=\"b('text')\"\r\n ref=\"text\"\r\n :key=\"keyIndex\">{{text}}</span>\r\n </span>\r\n </el-tooltip>\r\n <span :class=\"b('more')\"\r\n ref=\"more\">\r\n <slot name=\"more\"></slot>\r\n </span>\r\n <slot name=\"after\"\r\n :class=\"b('after')\"></slot>\r\n\r\n </div>\r\n</template>\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"text-ellipsis\",\r\n props: {\r\n text: String,\r\n height: Number,\r\n width: Number,\r\n isLimitHeight: {\r\n type: Boolean,\r\n default: true\r\n },\r\n useTooltip: {\r\n type: Boolean,\r\n default: false\r\n },\r\n placement: String\r\n },\r\n data () {\r\n return {\r\n keyIndex: 0,\r\n isHide: false\r\n };\r\n },\r\n watch: {\r\n isLimitHeight () {\r\n this.init();\r\n },\r\n text () {\r\n this.init();\r\n },\r\n height () {\r\n this.init();\r\n }\r\n },\r\n mounted () {\r\n this.init();\r\n },\r\n methods: {\r\n init () {\r\n this.keyIndex += 1;\r\n let more = this.$refs.more;\r\n more.style.display = \"none\";\r\n if (this.isLimitHeight) {\r\n this.limitShow();\r\n }\r\n },\r\n limitShow () {\r\n this.$nextTick(() => {\r\n let textDom = this.$refs.text;\r\n let title = this.$el;\r\n let more = this.$refs.more;\r\n let n = 1000;\r\n if (textDom) {\r\n if (title.offsetHeight > this.height) {\r\n more.style.display = \"inline-block\";\r\n let text = this.text;\r\n while (title.offsetHeight > this.height && n > 0) {\r\n if (title.offsetHeight > this.height * 3) {\r\n textDom.innerText = text = text.substring(\r\n 0,\r\n Math.floor(text.length / 2)\r\n );\r\n } else {\r\n textDom.innerText = text = text.substring(0, text.length - 1);\r\n }\r\n n--;\r\n }\r\n this.$emit(\"hide\");\r\n this.isHide = true;\r\n } else {\r\n this.$emit(\"show\");\r\n this.isHide = false;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <component :is=\"componentName\"\r\n v-model=\"text\"\r\n :popper-class=\"popperClass\"\r\n :is-range=\"isRange\"\r\n :size=\"size\"\r\n :editable=\"editable\"\r\n :disabled-hours=\"disabledHours\"\r\n :disabled-minutes=\"disabledMinutes\"\r\n :disabled-seconds=\"disabledSeconds\"\r\n :default-value=\"defaultValue\"\r\n :range-separator=\"rangeSeparator\"\r\n @visible-change=\"visibleChange\"\r\n :arrow-control=\"arrowControl\"\r\n :start-placeholder=\"startPlaceholder || t('time.start')\"\r\n :end-placeholder=\"endPlaceholder || t('time.end')\"\r\n :format=\"format\"\r\n :readonly=\"readonly\"\r\n :clearable=\"clearableVal\"\r\n :start=\"start\"\r\n :end=\"end\"\r\n :step=\"step\"\r\n :max-time=\"maxTime\"\r\n :min-time=\"minTime\"\r\n :value-format=\"valueFormat\"\r\n :placeholder=\"placeholder\"\r\n @click=\"handleClick\"\r\n :disabled=\"disabled\">\r\n </component>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport locale from \"core/locale\";\r\nexport default create({\r\n name: \"time\",\r\n mixins: [props(), event(), locale],\r\n data () {\r\n return {};\r\n },\r\n props: {\r\n editable: {\r\n type: Boolean,\r\n default: true\r\n },\r\n maxTime: String,\r\n minTime: String,\r\n start: String,\r\n end: String,\r\n step: String,\r\n startPlaceholder: String,\r\n endPlaceholder: String,\r\n rangeSeparator: String,\r\n defaultValue: [String, Array],\r\n valueFormat: String,\r\n arrowControl: Boolean,\r\n type: String,\r\n format: String,\r\n visibleChange: Function,\r\n disabledHours: Function,\r\n disabledMinutes: Function,\r\n disabledSeconds: Function\r\n },\r\n computed: {\r\n componentName () {\r\n if (this.start || this.end || this.step || this.maxTime || this.minTime) {\r\n return \"elTimeSelect\"\r\n } else {\r\n return \"elTimePicker\"\r\n }\r\n },\r\n isRange () {\r\n return this.type === \"timerange\";\r\n }\r\n }\r\n});\r\n</script>\n","<template>\r\n <div :class=\"b()\">\r\n <p :style=\"styles\">{{text}}</p>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nexport default create({\r\n name: 'title',\r\n mixins: [props(), event()],\r\n props: {\r\n styles: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n }\r\n },\r\n mounted () {\r\n\r\n },\r\n methods: {\r\n\r\n }\r\n})\r\n</script>\r\n\r\n","<template>\r\n <div :class=\"b()\">\r\n <div :class=\"b('filter')\"\n v-if=\"validData(option.filter,true)\">\n <el-input :placeholder=\"validData(option.filterText, t('tree.filterPlaceholder'))\"\n :size=\"size\"\n v-model=\"filterValue\">\n <template #append\r\n v-if=\"validData(option.addBtn,true)\">\r\n <slot v-if=\"$slots['add-btn']\"\r\n name=\"add-btn\"></slot>\r\n <el-button v-else\r\n :size=\"size\"\r\n @click=\"parentAdd\"\r\n v-permission=\"getPermission('addBtn')\"\r\n icon=\"el-icon-plus\"></el-button>\r\n </template>\r\n </el-input>\r\n </div>\r\n <el-scrollbar :class=\"b('content')\">\r\n <component :is=\"componentName\"\r\n ref=\"tree\"\r\n :data=\"data\"\r\n :lazy=\"lazy\"\r\n :load=\"treeLoad\"\r\n :draggable=\"option.draggable\"\r\n :height=\"option.height\"\r\n :props=\"treeProps\"\r\n :icon-class=\"iconClass\"\r\n :indent=\"indent\"\r\n :highlight-current=\"!multiple\"\r\n :show-checkbox=\"multiple\"\r\n :accordion=\"accordion\"\r\n :node-key=\"valueKey\"\r\n :check-strictly=\"checkStrictly\"\r\n :check-on-click-node=\"checkOnClickNode\"\r\n :filter-node-method=\"filterNode\"\r\n :check-on-click-leaf=\"checkOnClickLeaf\"\r\n v-loading=\"loading\"\r\n :expand-on-click-node=\"expandOnClickNode\"\r\n @check-change=\"handleCheckChange\"\r\n @node-click=\"nodeClick\"\r\n @node-expand=\"nodeExpand\"\r\n @node-drag-start=\"handleDragStart\"\r\n @node-drag-enter=\"handleDragEnter\"\r\n @node-drag-leave=\"handleDragLeave\"\r\n @node-drag-over=\"handleDragOver\"\r\n @node-drag-end=\"handleDragEnd\"\r\n @node-drop=\"handleDrop\"\r\n :allow-drop=\"option.allowDrop\"\r\n :allow-drag=\"option.allowDrag\"\r\n @node-contextmenu=\"nodeContextmenu\"\r\n :default-expand-all=\"defaultExpandAll\"\r\n :default-expanded-keys=\"defaultExpandedKeys\">\r\n <template #=\"{ node, data }\"\r\n v-if=\"$slots.default\">\r\n <slot :node=\"node\"\r\n :data=\"data\"></slot>\r\n </template>\r\n <template #=\"{ node }\"\r\n v-else>\r\n <slot :node=\"node\"\r\n :data=\"data\"></slot>\r\n <span class=\"el-tree-node__label\">{{node.label}}</span>\r\n </template>\r\n </component>\r\n </el-scrollbar>\r\n\r\n <div class=\"el-cascader-panel is-bordered\"\r\n v-if=\"client.show&&menu\"\r\n @click=\"client.show=false\"\r\n :style=\"styleName\"\r\n :class=\"b('menu')\">\r\n <div :class=\"b('item')\"\r\n v-if=\"validData(option.addBtn,true)\"\r\n v-permission=\"getPermission('addBtn')\"\r\n @click=\"rowAdd\">{{menuIcon('addBtn')}}</div>\r\n <div :class=\"b('item')\"\r\n v-if=\"validData(option.editBtn,true)\"\r\n v-permission=\"getPermission('editBtn')\"\r\n @click=\"rowEdit\">{{menuIcon('editBtn')}}</div>\r\n <div :class=\"b('item')\"\r\n v-if=\"validData(option.delBtn,true)\"\r\n v-permission=\"getPermission('delBtn')\"\r\n @click=\"rowRemove\">{{menuIcon('delBtn')}}</div>\r\n <slot name=\"menu\"\r\n :node=\"node\"></slot>\r\n </div>\r\n <el-dialog :title=\"node[labelKey] || title\"\r\n v-model=\"box\"\r\n class=\"avue-dialog avue-dialog--none\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n lock-scroll\r\n :before-close=\"hide\"\r\n :width=\"validData(option.dialogWidth,'50%')\">\r\n <avue-form v-model=\"form\"\r\n :option=\"formOption\"\r\n ref=\"form\"\r\n v-if=\"box\"\r\n @submit=\"handleSubmit\"></avue-form>\r\n </el-dialog>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { DIC_PROPS } from 'global/variable';\r\nimport locale from \"core/locale\";\r\nimport create from \"core/create\";\r\nimport permission from '../../core/directive/permission';\r\nexport default create({\r\n name: \"tree\",\r\n mixins: [locale],\r\n directives: {\r\n permission\r\n },\r\n props: {\r\n indent: Number,\r\n filterNodeMethod: Function,\r\n checkOnClickNode: Boolean,\r\n beforeClose: Function,\r\n beforeOpen: Function,\r\n permission: {\r\n type: [Function, Object],\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n iconClass: {\r\n type: String,\r\n },\r\n checkOnClickLeaf: Boolean,\r\n loading: {\r\n type: Boolean,\r\n default: false\r\n },\r\n expandOnClickNode: {\r\n type: Boolean,\r\n default: false\r\n },\r\n option: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n },\r\n data: {\r\n type: Array,\r\n default: () => {\r\n return [];\r\n }\r\n },\r\n modelValue: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n }\r\n }\r\n },\r\n data () {\r\n return {\r\n filterValue: \"\",\r\n client: {\r\n x: 0,\r\n y: 0,\r\n show: false\r\n },\r\n box: false,\r\n type: \"\",\r\n node: {},\r\n obj: {},\r\n form: {},\r\n // 存储事件监听器引用,用于销毁时清理\r\n clickListener: null,\r\n };\r\n },\r\n computed: {\r\n virtualize () {\r\n return this.option.virtualize\r\n },\r\n componentName () {\r\n return 'elTree' + (this.virtualize ? 'V2' : '')\r\n },\r\n styleName () {\r\n return {\r\n top: this.setPx(this.client.y - 10),\r\n left: this.setPx(this.client.x - 10),\r\n }\r\n },\r\n treeProps () {\r\n return Object.assign(this.deepClone(DIC_PROPS), this.props, {\r\n isLeaf: this.leafKey\r\n })\r\n },\r\n menu () {\r\n return this.validData(this.option.menu, true)\r\n },\r\n title () {\r\n return this.option.title || this.t('crud.addTitle')\r\n },\r\n treeLoad () {\r\n return this.option.treeLoad\r\n },\r\n checkStrictly () {\r\n return this.option.checkStrictly\r\n },\r\n accordion () {\r\n return this.option.accordion\r\n },\r\n multiple () {\r\n return this.option.multiple\r\n },\r\n lazy () {\r\n return this.option.lazy\r\n },\r\n addText () {\r\n return this.addFlag ? this.menuIcon('addBtn') : this.menuIcon('updateBtn');\r\n },\r\n addFlag () {\r\n return [\"add\", \"parentAdd\"].includes(this.type);\r\n },\r\n size () {\r\n return this.option.size\r\n },\r\n props () {\r\n return this.option.props || {};\r\n },\r\n leafKey () {\r\n return this.props.leaf || DIC_PROPS.leaf\r\n },\r\n valueKey () {\r\n return this.props.value || DIC_PROPS.value;\r\n },\r\n labelKey () {\r\n return this.props.label || DIC_PROPS.label;\r\n },\r\n childrenKey () {\r\n return this.props.children || DIC_PROPS.children;\r\n },\r\n nodeKey () {\r\n return this.option.nodeKey || DIC_PROPS.nodeKey;\r\n },\r\n defaultExpandAll () {\r\n return this.option.defaultExpandAll;\r\n },\r\n defaultExpandedKeys () {\r\n return this.option.defaultExpandedKeys;\r\n },\r\n formOption () {\r\n return Object.assign(\r\n this.option.formOption || {},\r\n {\r\n boxType: this.type,\r\n submitText: this.addText,\r\n }\r\n );\r\n }\r\n },\r\n mounted () {\r\n // 创建事件监听器函数并存储引用,用于后续清理\r\n this.clickListener = (e) => {\r\n // 检查点击事件是否发生在组件外部,如果是则隐藏右键菜单\r\n if (!this.$el.contains(e.target)) {\r\n this.client.show = false;\r\n }\r\n };\r\n \r\n // 注册全局点击事件监听器\r\n document.addEventListener('click', this.clickListener);\r\n \r\n // 初始化树组件的方法\r\n this.initFun();\r\n },\r\n beforeUnmount () {\r\n // 组件销毁前清理全局事件监听器,防止内存泄漏\r\n if (this.clickListener) {\r\n document.removeEventListener('click', this.clickListener);\r\n this.clickListener = null;\r\n }\r\n },\r\n watch: {\r\n filterValue (val) {\r\n this.$refs.tree.filter(val);\r\n },\r\n modelValue (val) {\r\n this.form = val;\r\n },\r\n form (val) {\r\n this.$emit('update:modelValue', val);\r\n this.$emit(\"change\", val);\r\n }\r\n },\r\n methods: {\r\n handleDragStart (node, ev) {\r\n this.$emit('node-drag-start', node, ev)\r\n },\r\n handleDragEnter (draggingNode, dropNode, ev) {\r\n this.$emit('node-drag-enter', draggingNode, dropNode, ev)\r\n },\r\n handleDragLeave (draggingNode, dropNode, ev) {\r\n this.$emit('node-drag-leave', draggingNode, dropNode, ev)\r\n },\r\n handleDragOver (draggingNode, dropNode, ev) {\r\n this.$emit('node-drag-over', draggingNode, dropNode, ev)\r\n },\r\n handleDragEnd (draggingNode, dropNode, dropType, ev) {\r\n this.$emit('node-drag-end', draggingNode, dropNode, dropType, ev)\r\n },\r\n handleDrop (draggingNode, dropNode, dropType, ev) {\r\n this.$emit('node-drop', draggingNode, dropNode, dropType, ev)\r\n },\r\n menuIcon (value) {\r\n return this.validData(this.option[value + 'Text'], this.t(\"crud.\" + value))\r\n },\r\n getPermission (key) {\r\n if (typeof this.permission === \"function\") {\r\n return this.permission(key, this.node.data || {})\r\n } else if (!this.validatenull(this.permission[key])) {\r\n return this.permission[key]\r\n } else {\r\n return true;\r\n }\r\n },\r\n /**\r\n * 初始化树组件的方法代理\r\n * 将element-plus tree组件的方法代理到当前组件实例上,\r\n * 使父组件可以直接调用这些方法\r\n */\r\n initFun () {\r\n [\r\n 'filter', 'updateKeyChildren', 'getCheckedNodes', 'setCheckedNodes', 'getCheckedKeys',\r\n 'setCheckedKeys', 'setChecked', 'getHalfCheckedNodes', 'getHalfCheckedKeys', 'getCurrentKey', 'getCurrentNode',\r\n 'setCurrentKey', 'setCurrentNode', 'getNode', 'remove', 'append', 'insertBefore', 'insertAfter'\r\n ].forEach(ele => {\r\n this[ele] = this.$refs.tree[ele];\r\n })\r\n },\r\n nodeContextmenu (e, data, node, obj) {\r\n this.node = node;\r\n this.client.x = e.clientX;\r\n this.client.y = e.clientY;\r\n this.client.show = true;\r\n this.$emit('node-contextmenu', data, node, obj)\r\n },\r\n handleCheckChange (data, checked, indeterminate) {\r\n this.$emit('check-change', data, checked, indeterminate)\r\n },\r\n handleSubmit (form, done) {\r\n this.addFlag ? this.save(form, done) : this.update(form, done)\r\n },\r\n nodeClick (data, node, nodeComp) {\r\n this.client.show = false\r\n this.$emit(\"node-click\", data, node, nodeComp);\r\n },\r\n nodeExpand (data, node, nodeComp) {\r\n this.$emit(\"node-expand\", data, node, nodeComp);\r\n },\r\n filterNode (value, data) {\r\n if (typeof this.filterNodeMethod === 'function') {\r\n return this.filterNodeMethod(value, data);\r\n }\r\n if (!value) return true;\r\n return data[this.labelKey].indexOf(value) !== -1;\r\n },\r\n hide (done) {\r\n const callback = () => {\r\n done && done()\r\n this.node = {};\r\n this.form = {}\r\n this.box = false;\r\n }\r\n if (typeof this.beforeClose === \"function\") {\r\n this.beforeClose(callback, this.type);\r\n } else {\r\n callback();\r\n }\r\n },\r\n save (data, done) {\r\n const callback = (form) => {\r\n form = this.deepClone(form || this.form);\r\n if (this.type === \"add\") {\r\n this.$refs.tree.append(form, this.node.data[this.valueKey])\r\n } else if (this.type === \"parentAdd\") {\r\n this.$refs.tree.append(form)\r\n }\r\n done()\r\n this.$nextTick(() => this.hide())\r\n };\r\n this.$emit(\"save\", this.node, data, callback, done);\r\n },\r\n update (data, done) {\r\n const callback = (form) => {\r\n form = this.deepClone(form || this.form);\r\n const rowKey = form[this.valueKey]\r\n this.node.data = form\r\n let { parentList, index } = this.findData(rowKey)\r\n if (parentList) {\r\n const oldRow = parentList.splice(index, 1)[0];\r\n form[this.childrenKey] = oldRow[this.childrenKey]\r\n parentList.splice(index, 0, this.deepClone(form))\r\n }\r\n this.hide();\r\n done()\r\n };\r\n this.$emit(\"update\", this.node, data, callback, done);\r\n },\r\n rowEdit (a) {\r\n this.type = \"edit\";\r\n this.form = this.deepClone(this.node.data);\r\n this.show();\r\n },\r\n parentAdd () {\r\n this.type = \"parentAdd\";\r\n this.show();\r\n },\r\n rowAdd () {\r\n this.type = \"add\";\r\n this.show();\r\n },\r\n show () {\r\n const callback = () => {\r\n this.client.show = false;\r\n this.box = true;\r\n }\r\n if (typeof this.beforeOpen === \"function\") {\r\n this.beforeOpen(callback, this.type);\r\n } else {\r\n callback();\r\n }\r\n },\r\n rowRemove () {\r\n this.client.show = false;\r\n const callback = () => {\r\n this.$refs.tree.remove(this.node)\r\n }\r\n this.$emit(\"del\", this.node, callback);\r\n },\r\n findData (id) {\r\n let result = {}\r\n const callback = (parentList, parent) => {\r\n parentList.forEach((ele, index) => {\r\n if (ele[this.valueKey] == id) {\r\n result = {\r\n item: ele,\r\n index: index,\r\n parentList: parentList,\r\n parent: parent\r\n }\r\n }\r\n if (ele[this.childrenKey]) {\r\n callback(ele[this.childrenKey], ele)\r\n }\r\n })\r\n }\r\n callback(this.data)\r\n return result;\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <el-upload\r\n :key=\"reload\"\r\n :class=\"[\r\n b({ list: listType == 'picture-img', disabled: disabled }),\r\n 'avue-upload--' + listType,\r\n ]\"\r\n @click=\"handleClick\"\r\n :action=\"action\"\r\n :on-remove=\"handleRemove\"\r\n :accept=\"acceptList\"\r\n :before-remove=\"beforeRemove\"\r\n :multiple=\"multiple\"\r\n :on-preview=\"handlePreview\"\r\n :limit=\"limit\"\r\n :http-request=\"httpUpload\"\r\n :drag=\"dragFile\"\r\n :readonly=\"readonly\"\r\n :directory=\"directory\"\r\n :show-file-list=\"isPictureImg ? false : showFileList\"\r\n :list-type=\"listTypeText\"\r\n :on-change=\"handleFileChange\"\r\n :on-exceed=\"handleExceed\"\r\n :disabled=\"disabled\"\r\n :file-list=\"fileList\"\r\n >\r\n <template v-if=\"listType == 'picture-card'\">\r\n <el-icon>\r\n <el-icon-plus />\r\n </el-icon>\r\n </template>\r\n <div :class=\"b('avatar')\" v-else-if=\"listType == 'picture-img'\">\r\n <el-progress\r\n type=\"circle\"\r\n @mouseover=\"handleMouseover\"\r\n v-if=\"showProgress(firstFile)\"\r\n :percentage=\"firstFile.percentage\"\r\n ></el-progress>\r\n <div\r\n v-else\r\n :element-loading-text=\"loadText\"\r\n v-loading.lock=\"firstFile.loading\"\r\n >\r\n <template v-if=\"firstFile.url\">\r\n <slot v-if=\"$slots.default\" :file=\"firstFile\"></slot>\r\n <template v-else>\r\n <component\r\n v-if=\"firstFile.type\"\r\n :src=\"firstFile.url\"\r\n controls=\"controls\"\r\n :is=\"firstFile.type\"\r\n @mouseover=\"handleMouseover\"\r\n :class=\"b('avatar')\"\r\n ></component>\r\n <el-icon\r\n v-else\r\n @mouseover=\"handleMouseover\"\r\n :src=\"firstFile.url\"\r\n :class=\"b('avatar')\"\r\n >\r\n <el-icon-document />\r\n </el-icon>\r\n </template>\r\n </template>\r\n <el-icon v-else :class=\"b('avatar')\">\r\n <el-icon-plus />\r\n </el-icon>\r\n </div>\r\n <div\r\n class=\"el-upload-list__item-actions\"\r\n :class=\"b('menu')\"\r\n v-if=\"menu\"\r\n @mouseover=\"handleMouseover\"\r\n @mouseout=\"handleMouseout\"\r\n @click.stop=\"\r\n () => {\r\n return false;\r\n }\r\n \"\r\n >\r\n <el-icon @click.stop=\"handlePreview(firstFile)\">\r\n <el-icon-zoom-in />\r\n </el-icon>\r\n <el-icon v-if=\"!disabled\" @click.stop=\"handleRemove(firstFile)\">\r\n <el-icon-delete />\r\n </el-icon>\r\n </div>\r\n </div>\r\n <template v-else-if=\"dragFile\">\r\n <el-icon>\r\n <el-icon-upload />\r\n </el-icon>\r\n <div class=\"el-upload__text\">\r\n <em>{{ fileText || t(\"upload.upload\") }}</em>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <slot name=\"button\" :disabled=\"disabled\" v-if=\"$slots.button\"></slot>\r\n <el-button\r\n v-else\r\n icon=\"el-icon-upload\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n type=\"primary\"\r\n >{{ fileText || t(\"upload.upload\") }}</el-button\r\n >\r\n </template>\r\n <template #tip>\r\n <div class=\"el-upload__tip\" v-html=\"tip\"></div>\r\n </template>\r\n <template #file=\"{ file }\">\r\n <span :element-loading-text=\"loadText\" v-loading.lock=\"file.loading\">\r\n <template v-if=\"listType === 'picture-card'\">\r\n <el-progress\r\n type=\"circle\"\r\n :percentage=\"file.percentage\"\r\n v-if=\"showProgress(file)\"\r\n ></el-progress>\r\n <template v-else>\r\n <slot :file=\"file\" v-if=\"$slots.default\"> </slot>\r\n <template v-else>\r\n <component\r\n class=\"el-upload-list__item-thumbnail\"\r\n v-if=\"file.type\"\r\n :src=\"file.url\"\r\n :is=\"file.type\"\r\n ></component>\r\n <el-icon v-else :class=\"b('avatar')\">\r\n <el-icon-document />\r\n </el-icon>\r\n </template>\r\n </template>\r\n <span class=\"el-upload-list__item-actions\">\r\n <span class=\"el-upload-list__item-preview\">\r\n <el-icon>\r\n <el-icon-zoom-in\r\n @click.stop=\"handlePreview(file)\"\r\n ></el-icon-zoom-in>\r\n </el-icon>\r\n </span>\r\n <span class=\"el-upload-list__item-delete\" v-if=\"!disabled\">\r\n <el-icon>\r\n <el-icon-delete\r\n @click.stop=\"handleRemove(file)\"\r\n ></el-icon-delete>\r\n </el-icon>\r\n </span>\r\n </span>\r\n </template>\r\n <div\r\n v-else-if=\"listType === 'picture'\"\r\n style=\"display: flex\"\r\n @click.stop=\"handlePreview(file)\"\r\n >\r\n <slot :file=\"file\" v-if=\"$slots.default\"> </slot>\r\n <template v-else>\r\n <component\r\n v-if=\"file.type\"\r\n class=\"el-upload-list__item-thumbnail\"\r\n :src=\"file.url\"\r\n controls=\"controls\"\r\n :is=\"file.type\"\r\n ></component>\r\n <div class=\"el-upload-list__item-info\">\r\n <a class=\"el-upload-list__item-name\">\r\n <el-icon>\r\n <el-icon-document></el-icon-document>\r\n </el-icon>\r\n <span class=\"el-upload-list__item-file-name\">\r\n {{ file.name }}</span\r\n >\r\n </a>\r\n </div>\r\n </template>\r\n <el-icon class=\"el-icon--close\" v-if=\"!disabled\">\r\n <el-icon-close @click.stop=\"handleRemove(file)\"></el-icon-close>\r\n </el-icon>\r\n <el-progress\r\n :class=\"b('progress')\"\r\n :percentage=\"file.percentage\"\r\n :stroke-width=\"3\"\r\n v-if=\"showProgress(file)\"\r\n ></el-progress>\r\n </div>\r\n <span v-else @click.stop=\"handlePreview(file)\">\r\n <div class=\"el-upload-list__item-info\">\r\n <a class=\"el-upload-list__item-name\">\r\n <slot :file=\"file\" v-if=\"$slots.default\"> </slot>\r\n <template v-else>\r\n <el-icon>\r\n <el-icon-document></el-icon-document>\r\n </el-icon>\r\n <span class=\"el-upload-list__item-file-name\">\r\n {{ file.name }}</span\r\n >\r\n </template>\r\n </a>\r\n <el-icon class=\"el-icon--close\" v-if=\"!disabled\">\r\n <el-icon-close @click.stop=\"handleRemove(file)\"></el-icon-close>\r\n </el-icon>\r\n <el-progress\r\n :class=\"b('progress')\"\r\n :percentage=\"file.percentage\"\r\n :stroke-width=\"3\"\r\n v-if=\"showProgress(file)\"\r\n ></el-progress>\r\n </div>\r\n </span>\r\n </span>\r\n </template>\r\n </el-upload>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport props from \"common/common/props\";\nimport event from \"common/common/event\";\nimport { getAsVal, isMediaType } from \"utils/util\";\r\nimport { detailImg } from \"plugin/watermark/\";\r\nimport { getToken } from \"plugin/qiniu/\";\r\nimport { getClient } from \"plugin/ali/\";\r\nimport packages from \"core/packages\";\r\nfunction getFileUrl(home, uri = \"\") {\r\n return uri.match(/(^http:\\/\\/|^https:\\/\\/|^\\/\\/|data:image\\/)/)\r\n ? uri\r\n : home + uri;\r\n}\r\nconst FILE_STATUS_READY = \"ready\";\r\nconst FILE_STATUS_DONE = \"done\";\r\nfunction isFileReady(file) {\r\n return file.status === FILE_STATUS_READY;\r\n}\r\nexport default create({\r\n name: \"upload\",\r\n mixins: [props(), event(), locale],\r\n data() {\r\n return {\r\n uploadCacheList: [],\r\n uploadList: [],\r\n res: \"\",\r\n menu: false,\r\n reload: Math.random(),\r\n };\r\n },\r\n props: {\r\n qiniu: Object,\r\n ali: Object,\r\n data: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n paramsList: {\r\n type: Array,\r\n default: () => {\r\n return [];\r\n },\r\n },\r\n showFileList: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n fileText: String,\r\n fileType: {\r\n type: String,\r\n },\r\n oss: {\r\n type: String,\r\n },\r\n limit: {\r\n type: Number,\r\n },\r\n headers: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n accept: {\r\n type: [String, Array],\r\n default: \"\",\r\n },\r\n canvasOption: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n cropperOption: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n fileSize: {\r\n type: Number,\r\n },\r\n dragFile: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n drag: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n directory: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n loadText: {\r\n type: String,\r\n default: \"Loading...\",\r\n },\r\n action: {\r\n type: String,\r\n default: \"\",\r\n },\r\n uploadSized: Function,\r\n uploadBefore: Function,\r\n uploadAfter: Function,\r\n uploadDelete: Function,\r\n uploadPreview: Function,\r\n uploadError: Function,\r\n uploadExceed: Function,\r\n httpRequest: Function,\r\n },\r\n computed: {\r\n listTypeText() {\r\n if (this.listType == \"picture-img\" || this.listType == \"\") {\r\n return \"text\";\r\n }\r\n return this.listType;\r\n },\r\n isObject() {\r\n let obj = this.text[0];\r\n return (\r\n typeof obj === \"object\" || this.dataType == \"object\" || this.isJson\r\n );\r\n },\r\n acceptList() {\r\n if (Array.isArray(this.accept)) {\r\n return this.accept.join(\",\");\r\n }\r\n return this.accept;\r\n },\r\n homeUrl() {\r\n return this.propsHttp.home || \"\";\r\n },\r\n fileName() {\r\n return this.propsHttp.fileName || \"file\";\r\n },\r\n isCosOss() {\r\n return this.oss === \"cos\";\r\n },\r\n isAliOss() {\r\n return this.oss === \"ali\";\r\n },\r\n isQiniuOss() {\r\n return this.oss === \"qiniu\";\r\n },\r\n isPictureImg() {\r\n return this.listType === \"picture-img\";\r\n },\r\n firstFile() {\r\n return this.fileList[0] || {};\r\n },\r\n fileList() {\r\n let list = [];\r\n const parseFile = (ele) => {\r\n let name, url, type;\r\n if (this.isObject) {\r\n name = ele[this.labelKey];\r\n url = ele[this.valueKey];\r\n type = ele[this.typeKey] || this.isMediaType(url);\r\n } else {\r\n name = ele.substring(ele.lastIndexOf(\"/\") + 1);\r\n url = ele;\r\n type = this.isMediaType(url);\r\n }\r\n url = getFileUrl(this.homeUrl, url);\r\n return { name, url, type };\r\n };\r\n this.text.forEach((ele, index) => {\r\n if (ele) {\r\n const { name, url, type } = parseFile(ele);\r\n list.push({\r\n uid: index + \"\",\r\n status: FILE_STATUS_DONE,\r\n type: type,\r\n name: name,\r\n url: url,\r\n });\r\n }\r\n });\r\n return list.concat(this.uploadList);\r\n },\r\n },\r\n mounted() {\r\n if (this.drag) {\r\n this.setSort();\r\n }\r\n },\r\n methods: {\r\n handleMouseover() {\r\n this.menu = true;\r\n },\r\n handleMouseout() {\r\n this.menu = false;\r\n },\r\n showProgress(file) {\r\n return isFileReady(file) && !this.oss;\r\n },\r\n isMediaType(url) {\r\n return isMediaType(url, this.fileType);\r\n },\r\n setSort() {\r\n if (!window.Sortable) {\r\n packages.logs(\"Sortable\");\r\n return;\r\n }\r\n const el = this.$el.querySelectorAll(\".avue-upload > ul\")[0];\r\n window.Sortable.create(el, {\r\n animation: 100,\r\n onEnd: (evt) => {\r\n const targetRow = this.text.splice(evt.oldIndex, 1)[0];\r\n this.text.splice(evt.newIndex, 0, targetRow);\r\n\r\n this.reload = Math.random();\r\n this.$nextTick(() => this.setSort());\r\n },\r\n });\r\n },\r\n handleError(error) {\r\n if (error) this.uploadError && this.uploadError(error, this.column);\r\n },\r\n handleSuccess(file) {\r\n if (this.isObject) {\r\n const obj = {\r\n [this.labelKey]: file[this.nameKey],\r\n [this.valueKey]: file[this.urlKey],\r\n [this.typeKey]: file[this.fileTypeKey],\r\n };\r\n this.paramsList.forEach((ele) => (obj[ele.label] = file[ele.value]));\r\n this.text.push(obj);\r\n } else {\r\n this.text.push(file[this.urlKey]);\r\n }\r\n },\r\n handleRemove(file) {\r\n if (isFileReady(file)) {\r\n let index = this.uploadList.findIndex((ele) => ele.raw == file);\r\n this.uploadList.splice(index, 1);\r\n } else {\r\n this.beforeRemove(file).then(() => {\r\n this.text.forEach((ele, index) => {\r\n let url = this.isObject ? ele[this.valueKey] : ele;\r\n if (getFileUrl(this.homeUrl, url) === file.url) {\r\n this.text.splice(index, 1);\r\n }\r\n });\r\n this.menu = false;\r\n });\r\n }\r\n },\r\n handleFileChange(file, fileList) {\r\n fileList.pop();\r\n this.uploadCacheList.push(file);\r\n },\r\n httpUpload(config) {\r\n let { file } = config;\r\n let fileIndex = this.uploadCacheList.findIndex((ele) => ele.raw === file);\r\n let fileState = this.uploadCacheList[fileIndex] || {};\r\n const deleteUploadCacheFile = () => {\r\n const cacheIndex = this.uploadCacheList.findIndex(\r\n (ele) => ele.raw === file\r\n );\r\n const index = this.uploadList.findIndex((ele) => ele.raw === file);\r\n if (cacheIndex !== -1) this.uploadCacheList.splice(cacheIndex, 1);\r\n if (index !== -1) this.uploadList.splice(index, 1);\r\n };\r\n\r\n const show = (data) => {\r\n deleteUploadCacheFile();\r\n this.res = data || this.res;\r\n this.handleSuccess(this.res);\r\n };\r\n const hide = (msg) => {\r\n deleteUploadCacheFile();\r\n this.handleError(msg);\r\n };\r\n if (typeof this.httpRequest === \"function\") {\r\n deleteUploadCacheFile();\r\n this.httpRequest(config, this.column);\r\n return;\r\n }\r\n const fileSize = file.size / 1024;\r\n if (!this.validatenull(fileSize) && fileSize > this.fileSize) {\r\n deleteUploadCacheFile();\r\n this.handleSized(file, this.text);\r\n return;\r\n }\r\n const headers = {\r\n ...this.headers,\r\n \"Content-Type\": \"multipart/form-data\",\r\n };\r\n //oss配置属性\r\n let oss,\r\n oss_config = {};\r\n let client = {};\r\n let param = new FormData();\r\n const done = () => {\r\n this.oss ? (fileState.loading = true) : (fileState.percentage = 0);\r\n let url = this.action;\r\n //附加属性\r\n for (let o in this.data) {\r\n param.append(o, this.data[o]);\r\n }\r\n let uploadFile;\r\n const handleUploadResult = (res) => {\r\n this.res = {};\r\n if (this.isQiniuOss) {\r\n let key = res.data.key;\r\n res.data.url = oss_config.url + key;\r\n res.data.name = key;\r\n }\r\n this.res = getAsVal(this.isAliOss ? res : res.data, this.resKey);\r\n if (typeof this.uploadAfter === \"function\") {\r\n this.uploadAfter(this.res, show, hide, this.column);\r\n } else {\r\n show();\r\n }\r\n };\r\n\r\n const handleUploadError = (error) => {\r\n hide(error);\r\n };\r\n\r\n const uploadToDefault = () => {\r\n let timer = null;\r\n this.$axios({\r\n url,\r\n method: \"post\",\r\n data: param,\r\n headers,\r\n onUploadProgress: (progressEvent) => {\r\n let complete =\r\n (progressEvent.loaded / progressEvent.total) * 100 || 0;\r\n if (complete >= 80) {\r\n if (timer) return;\r\n timer = setInterval(() => {\r\n complete += (100 - complete) * 0.2;\r\n if (fileState)\r\n fileState.percentage = parseFloat(complete.toFixed(2));\r\n if (complete > 99) {\r\n timer && clearInterval(timer);\r\n }\r\n }, 1000);\r\n } else {\r\n if (fileState)\r\n fileState.percentage = parseFloat(complete.toFixed(2));\r\n }\r\n },\r\n })\r\n .then(handleUploadResult)\r\n .catch(handleUploadError);\r\n };\r\n\r\n const uploadToCos = () => {\r\n if (!window.COS) {\r\n packages.logs(\"COS\");\r\n hide();\r\n return;\r\n }\r\n oss_config = this.cos || this.$AVUE.cos;\r\n oss = new COS({\r\n SecretId: oss_config.SecretId,\r\n SecretKey: oss_config.SecretKey,\r\n });\r\n\r\n oss.uploadFile(\r\n {\r\n Bucket: oss_config.Bucket,\r\n Region: oss_config.Region,\r\n Key: uploadFile.name,\r\n Body: uploadFile,\r\n },\r\n function (err, data) {\r\n if (err) {\r\n handleUploadError(err);\r\n } else {\r\n handleUploadResult({\r\n data: {\r\n name: data.ETag,\r\n url: location.protocol + \"//\" + data.Location,\r\n },\r\n });\r\n }\r\n }\r\n );\r\n };\r\n\r\n const uploadToQiniu = () => {\r\n if (!window.CryptoJS) {\r\n packages.logs(\"CryptoJS\");\r\n hide();\r\n return;\r\n }\r\n oss_config = this.qiniu || this.$AVUE.qiniu;\r\n const token = getToken(oss_config.AK, oss_config.SK, {\r\n scope: oss_config.scope,\r\n deadline: new Date().getTime() + oss_config.deadline * 3600,\r\n });\r\n param.append(\"token\", token);\r\n url = oss_config.bucket;\r\n uploadToDefault();\r\n };\r\n const uploadToAliOss = () => {\r\n if (!window.OSS) {\r\n packages.logs(\"AliOSS\");\r\n hide();\r\n return;\r\n }\r\n oss_config = this.ali || this.$AVUE.ali;\r\n client = getClient(oss_config);\r\n\r\n client\r\n .put(uploadFile.name, uploadFile, {\r\n headers: this.headers,\r\n })\r\n .then(handleUploadResult)\r\n .catch(handleUploadError);\r\n };\r\n const callback = (newFile) => {\r\n fileIndex = this.uploadCacheList.findIndex((ele) => ele.raw === file);\r\n if (fileIndex !== -1) {\r\n let list = this.uploadCacheList.splice(fileIndex, 1);\r\n this.uploadList = this.uploadList.concat(list);\r\n }\r\n uploadFile = newFile || file;\r\n param.append(this.fileName, uploadFile);\r\n if (this.isCosOss) {\r\n uploadToCos();\r\n } else if (this.isQiniuOss) {\r\n uploadToQiniu();\r\n } else if (this.isAliOss) {\r\n uploadToAliOss();\r\n } else {\r\n uploadToDefault();\r\n }\r\n };\r\n if (typeof this.uploadBefore === \"function\") {\r\n this.uploadBefore(file, callback, hide, this.column);\r\n } else {\r\n callback();\r\n }\r\n };\r\n if (isMediaType(file.name) != \"img\") {\r\n done();\r\n } else {\r\n //处理水印图片\r\n const canvasDone = () => {\r\n if (!this.validatenull(this.canvasOption)) {\r\n detailImg(file, this.canvasOption).then((res) => {\r\n file = res;\r\n done();\r\n });\r\n } else {\r\n done();\r\n }\r\n };\r\n //处理图片剪裁\r\n const canvasCrop = () => {\r\n fileToBase64(file, (res) => {\r\n let option = Object.assign(this.cropperOption, {\r\n img: res,\r\n type: \"file\",\r\n callback: (res) => {\r\n file = res;\r\n canvasDone();\r\n },\r\n cancel: () => {\r\n if (fileState) this.uploadList.splice(fileIndex, 1);\r\n },\r\n });\r\n this.$ImageCropper(option);\r\n });\r\n };\r\n if (!this.validatenull(this.cropperOption)) {\r\n canvasCrop();\r\n } else {\r\n canvasDone();\r\n }\r\n }\r\n },\r\n handleSized(files, fileList) {\r\n this.uploadSized &&\r\n this.uploadSized(this.fileSize, files, fileList, this.column);\r\n this.handleError(\"size\");\r\n },\r\n handleExceed(files, fileList) {\r\n this.uploadExceed &&\r\n this.uploadExceed(this.limit, files, fileList, this.column);\r\n this.handleError(\"exceed\");\r\n },\r\n handlePreview(file) {\r\n if (isFileReady(file)) return;\r\n const callback = () => {\r\n const index = this.fileList.findIndex((ele) => ele.url === file.url);\r\n this.$ImagePreview(this.fileList, index);\r\n };\r\n if (typeof this.uploadPreview === \"function\") {\r\n this.uploadPreview(file, this.column, callback);\r\n } else {\r\n callback();\r\n }\r\n },\r\n beforeRemove(file) {\r\n if (typeof this.uploadDelete === \"function\") {\r\n return this.uploadDelete(file, this.column);\r\n } else {\r\n return Promise.resolve();\r\n }\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <span :class=\"b('item')\"\r\n :style=\"styleName\"\r\n v-for=\"(item,index) in list\"\r\n :key=\"index\">\r\n {{item}}\r\n </span>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: 'verify',\r\n props: {\r\n size: {\r\n type: [Number, String],\r\n default: 50,\r\n },\r\n modelValue: [Number, String],\r\n len: {\r\n type: [Number, String],\r\n default: 6,\r\n }\r\n },\r\n computed: {\r\n data: {\r\n get () {\r\n return this.modelValue || ''\r\n },\r\n set (val) {\r\n let value = val + ''\r\n this.$emit('update:modelValue', value)\r\n this.$emit('change', value)\r\n }\r\n },\r\n styleName () {\r\n return {\r\n padding: `${this.setPx(this.size / 7)} ${this.setPx(this.size / 4)}`,\r\n fontSize: this.setPx(this.size)\r\n }\r\n },\r\n list () {\r\n return this.data.split('');\r\n }\r\n },\r\n created () {\r\n this.randomn();\r\n },\r\n methods: {\r\n randomn () {\r\n var n = this.len;\r\n if (n > 21) return null\r\n var re = new RegExp(\"(\\\\d{\" + n + \"})(\\\\.|$)\")\r\n var num = (Array(n - 1).join(0) + Math.pow(10, n) * Math.random()).match(re)[1]\r\n this.data = num;\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n","<template>\r\n <div :class=\"b()\"\r\n :style=\"styleName\">\r\n <div :class=\"b('border')\">\r\n <span :style=\"borderStyleName\"></span>\r\n <span :style=\"borderStyleName\"></span>\r\n <span :style=\"borderStyleName\"></span>\r\n <span :style=\"borderStyleName\"></span>\r\n </div>\r\n <img :style=\"imgStyleName\"\r\n :class=\"b('img')\"\r\n :src=\"background\" />\r\n <video :class=\"b('main')\"\r\n ref=\"main\"\r\n autoplay\r\n muted></video>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport RecordVideo from 'plugin/video/'\r\nexport default create({\r\n name: 'video',\r\n props: {\r\n background: {\r\n type: String\r\n },\r\n width: {\r\n type: [String, Number],\r\n default: 500\r\n }\r\n },\r\n computed: {\r\n styleName () {\r\n return {\r\n width: this.setPx(this.width)\r\n }\r\n },\r\n imgStyleName () {\r\n return {\r\n width: this.setPx(this.width / 2)\r\n }\r\n },\r\n borderStyleName () {\r\n return {\r\n width: this.setPx(this.width / 15),\r\n height: this.setPx(this.width / 15),\r\n borderWidth: this.setPx(5)\r\n }\r\n },\r\n },\r\n data () {\r\n return {\r\n videoObj: null\r\n }\r\n },\r\n mounted () {\r\n this.init();\r\n },\r\n methods: {\r\n init () {\r\n this.videoObj = new RecordVideo(this.$refs.main);\r\n const videoPromise = this.videoObj.init();\r\n videoPromise\r\n .then(() => {\r\n this.videoObj.mediaRecorder.addEventListener('stop', this.getData, false);\r\n })\r\n },\r\n startRecord () {\r\n this.videoObj.startRecord()\r\n },\r\n stopRecord () {\r\n this.videoObj.stopRecord();\r\n },\r\n getData () {\r\n const blob = new Blob(this.videoObj.chunks, {\r\n type: 'video/mp4'\r\n });\r\n const reader = new FileReader();\r\n reader.readAsDataURL(blob);\r\n reader.addEventListener('loadend', () => {\r\n var video_base64 = reader.result;\r\n this.$emit('data-change', video_base64)\r\n });\r\n }\r\n }\r\n})\r\n</script>\r\n\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _readOnlyError(r) {\n throw new TypeError('\"' + r + '\" is read-only');\n}\nmodule.exports = _readOnlyError, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","!function(a,n){\"function\"==typeof define&&define.amd?define(n):\"object\"==typeof exports?module.exports=n(require,exports,module):a.CountUp=n()}(this,function(a,n,t){var e=function(a,n,t,e,i,r){function o(a){var n,t,e,i,r,o,s=a<0;if(a=Math.abs(a).toFixed(l.decimals),a+=\"\",n=a.split(\".\"),t=n[0],e=n.length>1?l.options.decimal+n[1]:\"\",l.options.useGrouping){for(i=\"\",r=0,o=t.length;r<o;++r)0!==r&&r%3===0&&(i=l.options.separator+i),i=t[o-r-1]+i;t=i}return l.options.numerals.length&&(t=t.replace(/[0-9]/g,function(a){return l.options.numerals[+a]}),e=e.replace(/[0-9]/g,function(a){return l.options.numerals[+a]})),(s?\"-\":\"\")+l.options.prefix+t+e+l.options.suffix}function s(a,n,t,e){return t*(-Math.pow(2,-10*a/e)+1)*1024/1023+n}function u(a){return\"number\"==typeof a&&!isNaN(a)}var l=this;if(l.version=function(){return\"1.9.3\"},l.options={useEasing:!0,useGrouping:!0,separator:\",\",decimal:\".\",easingFn:s,formattingFn:o,prefix:\"\",suffix:\"\",numerals:[]},r&&\"object\"==typeof r)for(var m in l.options)r.hasOwnProperty(m)&&null!==r[m]&&(l.options[m]=r[m]);\"\"===l.options.separator?l.options.useGrouping=!1:l.options.separator=\"\"+l.options.separator;for(var d=0,c=[\"webkit\",\"moz\",\"ms\",\"o\"],f=0;f<c.length&&!window.requestAnimationFrame;++f)window.requestAnimationFrame=window[c[f]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[c[f]+\"CancelAnimationFrame\"]||window[c[f]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(a,n){var t=(new Date).getTime(),e=Math.max(0,16-(t-d)),i=window.setTimeout(function(){a(t+e)},e);return d=t+e,i}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(a){clearTimeout(a)}),l.initialize=function(){return!!l.initialized||(l.error=\"\",l.d=\"string\"==typeof a?document.getElementById(a):a,l.d?(l.startVal=Number(n),l.endVal=Number(t),u(l.startVal)&&u(l.endVal)?(l.decimals=Math.max(0,e||0),l.dec=Math.pow(10,l.decimals),l.duration=1e3*Number(i)||2e3,l.countDown=l.startVal>l.endVal,l.frameVal=l.startVal,l.initialized=!0,!0):(l.error=\"[CountUp] startVal (\"+n+\") or endVal (\"+t+\") is not a number\",!1)):(l.error=\"[CountUp] target is null or undefined\",!1))},l.printValue=function(a){var n=l.options.formattingFn(a);\"INPUT\"===l.d.tagName?this.d.value=n:\"text\"===l.d.tagName||\"tspan\"===l.d.tagName?this.d.textContent=n:this.d.innerHTML=n},l.count=function(a){l.startTime||(l.startTime=a),l.timestamp=a;var n=a-l.startTime;l.remaining=l.duration-n,l.options.useEasing?l.countDown?l.frameVal=l.startVal-l.options.easingFn(n,0,l.startVal-l.endVal,l.duration):l.frameVal=l.options.easingFn(n,l.startVal,l.endVal-l.startVal,l.duration):l.countDown?l.frameVal=l.startVal-(l.startVal-l.endVal)*(n/l.duration):l.frameVal=l.startVal+(l.endVal-l.startVal)*(n/l.duration),l.countDown?l.frameVal=l.frameVal<l.endVal?l.endVal:l.frameVal:l.frameVal=l.frameVal>l.endVal?l.endVal:l.frameVal,l.frameVal=Math.round(l.frameVal*l.dec)/l.dec,l.printValue(l.frameVal),n<l.duration?l.rAF=requestAnimationFrame(l.count):l.callback&&l.callback()},l.start=function(a){l.initialize()&&(l.callback=a,l.rAF=requestAnimationFrame(l.count))},l.pauseResume=function(){l.paused?(l.paused=!1,delete l.startTime,l.duration=l.remaining,l.startVal=l.frameVal,requestAnimationFrame(l.count)):(l.paused=!0,cancelAnimationFrame(l.rAF))},l.reset=function(){l.paused=!1,delete l.startTime,l.initialized=!1,l.initialize()&&(cancelAnimationFrame(l.rAF),l.printValue(l.startVal))},l.update=function(a){if(l.initialize()){if(a=Number(a),!u(a))return void(l.error=\"[CountUp] update() - new endVal is not a number: \"+a);l.error=\"\",a!==l.frameVal&&(cancelAnimationFrame(l.rAF),l.paused=!1,delete l.startTime,l.startVal=l.frameVal,l.endVal=a,l.countDown=l.startVal>l.endVal,l.rAF=requestAnimationFrame(l.count))}},l.initialize()&&l.printValue(l.startVal)};return e});","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","import { initVal } from 'core/dataformat';\nimport { findNode } from 'utils/util';\nexport default function () {\n return {\n methods: {\n bindEvent(name, params) {\n const item = findNode(this.dic, this.props, this.text);\n params = Object.assign(params, { column: this.column, dic: this.dic, item }, this.tableData);\n if (typeof this[name] === 'function') {\n if (name == 'change') {\n if (this.column.cell != true) {\n this[name](params);\n }\n }\n else {\n this[name](params);\n }\n }\n this.$emit(name, params);\n },\n initVal() {\n this.stringMode = typeof this.modelValue == 'string';\n this.text = initVal(this.modelValue, this);\n },\n getLabelText(item) {\n if (this.validatenull(item))\n return '';\n if (typeof this.typeformat === 'function') {\n return this.typeformat(item, this.labelKey, this.valueKey);\n }\n return item[this.labelKey];\n },\n handleFocus(event) {\n this.bindEvent('focus', { value: this.modelValue, event });\n },\n handleBlur(event) {\n this.bindEvent('blur', { value: this.modelValue, event });\n },\n handleClick(event) {\n this.bindEvent('click', { value: this.modelValue, event });\n },\n handleChange(value) {\n let result = value;\n if (this.isJson) {\n result = JSON.stringify(value);\n }\n else {\n const flag = this.isString || this.isNumber || this.stringMode || this.listType === 'picture-img';\n if (flag && Array.isArray(value)) {\n result = value.join(this.separator);\n }\n }\n this.bindEvent('change', { value: result });\n this.$emit('update:modelValue', result);\n },\n },\n };\n}\n","import { sendDic, loadDic, loadCascaderDic, loadLocalDic } from 'core/dic';\nimport { DIC_PROPS } from 'global/variable';\nimport slot from 'core/slot';\nexport default function (name) {\n return {\n mixins: [slot],\n emits: ['update:modelValue', 'change'],\n props: {\n tableData: {\n type: Object,\n default: () => {\n return {};\n },\n },\n option: {\n type: Object,\n required: true,\n default: () => {\n return {};\n },\n },\n },\n watch: {\n propOption: {\n handler(list) {\n list.forEach((ele) => (this.objectOption[ele.prop] = ele));\n },\n deep: true,\n },\n option: {\n handler() {\n this.init(false);\n },\n deep: true,\n },\n },\n data() {\n return {\n DIC: {},\n cascaderDIC: {},\n tableOption: {},\n objectOption: {},\n };\n },\n mounted() {\n this.init();\n },\n computed: {\n isMobile() {\n return document.body.clientWidth <= 768;\n },\n resultOption() {\n return {\n ...this.tableOption,\n ...{\n column: this.propOption || [],\n },\n };\n },\n rowKey() {\n return this.tableOption.rowKey || DIC_PROPS.rowKey;\n },\n formRules() {\n const result = {};\n this.propOption.forEach((ele) => {\n if (ele.rules && ele.display !== false)\n result[ele.prop] = ele.rules;\n });\n return result;\n },\n },\n methods: {\n init(type) {\n const globOption = this.deepClone(this.$AVUE[`${name}Option`]);\n const option = {\n ...globOption,\n ...this.option,\n };\n this.tableOption = option;\n this.handleLocalDic();\n if (type !== false)\n this.handleLoadDic();\n },\n dicInit(type) {\n if (type === 'cascader') {\n this.handleLoadCascaderDic();\n }\n else {\n this.handleLoadDic();\n }\n },\n updateDic(prop, list) {\n const column = this.findObject(this.propOption, prop);\n const formatter = column.dicFormatter;\n const callback = (currentList, useFormatter = true) => {\n if (useFormatter && typeof formatter === 'function') {\n this.DIC[prop] = formatter(currentList, this.tableForm || this.form);\n }\n else {\n this.DIC[prop] = currentList;\n }\n };\n if (this.validatenull(list) && this.validatenull(prop)) {\n this.handleLoadDic();\n return;\n }\n if (this.validatenull(list) && !this.validatenull(column.dicUrl)) {\n sendDic({\n column,\n }, this).then((currentList) => {\n callback(currentList, false);\n });\n }\n else {\n callback(list || []);\n }\n },\n handleSetDic(list, res = {}) {\n Object.keys(res).forEach((ele) => {\n list[ele] = res[ele];\n });\n },\n handleLocalDic() {\n loadLocalDic(this.resultOption, this);\n },\n handleLoadDic() {\n loadDic(this.resultOption, this);\n },\n handleLoadCascaderDic() {\n loadCascaderDic(this.propOption, this);\n },\n },\n };\n}\n","import { DIC_PROPS, DIC_SPLIT, DIC_HTTP_PROPS } from 'global/variable';\nimport slot from 'core/slot';\nexport default function () {\n return {\n mixins: [slot],\n emits: ['update:modelValue', 'click', 'focus', 'blur', 'change'],\n data() {\n return {\n stringMode: false,\n name: '',\n text: undefined,\n propsHttpDefault: DIC_HTTP_PROPS,\n propsDefault: DIC_PROPS,\n };\n },\n props: {\n blur: Function,\n focus: Function,\n change: Function,\n click: Function,\n typeformat: Function,\n control: Function,\n separator: {\n type: String,\n default: DIC_SPLIT,\n },\n params: {\n type: Object,\n default: () => {\n return {};\n },\n },\n listType: {\n type: String,\n default: '',\n },\n tableData: {\n type: Object,\n default: () => {\n return {};\n },\n },\n modelValue: {},\n column: {\n type: Object,\n default: () => {\n return {};\n },\n },\n label: {\n type: String,\n default: '',\n },\n readonly: {\n type: Boolean,\n default: false,\n },\n size: {\n type: String,\n default: '',\n },\n tip: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n dataType: {\n type: String,\n },\n clearable: {\n type: Boolean,\n default: true,\n },\n type: {\n type: String,\n default: '',\n },\n dicUrl: {\n type: String,\n default: '',\n },\n dicMethod: {\n type: String,\n default: '',\n },\n dicFormatter: Function,\n dicQuery: {\n type: Object,\n default: () => {\n return {};\n },\n },\n dic: {\n type: [Array, Function],\n default: () => {\n return [];\n },\n },\n placeholder: {\n type: String,\n default: '',\n },\n rules: {\n type: Array,\n },\n min: {\n type: Number,\n },\n max: {\n type: Number,\n },\n multiple: {\n type: Boolean,\n default: false,\n },\n button: {\n type: Boolean,\n default: false,\n },\n row: {\n type: Boolean,\n default: false,\n },\n prop: {\n type: String,\n default: '',\n },\n border: {\n type: Boolean,\n default: false,\n },\n popperClass: {\n type: String,\n },\n propsHttp: {\n type: Object,\n default: () => DIC_HTTP_PROPS,\n },\n props: {\n type: Object,\n default: () => DIC_PROPS,\n },\n },\n watch: {\n text: {\n handler(val) {\n this.handleChange(val);\n this.handleTextValue && this.handleTextValue(val);\n },\n deep: true,\n },\n modelValue: {\n handler(val) {\n this.initVal();\n this.handleModelValue && this.handleModelValue(val);\n },\n deep: true,\n },\n },\n computed: {\n clearableVal() {\n return this.disabled ? false : this.clearable;\n },\n componentName() {\n const type = 'el';\n return `${type}-${this.name}${this.button ? '-button' : ''}`;\n },\n required() {\n return !this.validatenull(this.rules);\n },\n isGroup() {\n let result = false;\n this.dic.forEach((ele) => {\n if (ele[this.groupsKey]) {\n result = true;\n }\n });\n return result;\n },\n isArray() {\n return this.dataType === 'array';\n },\n isString() {\n return this.dataType === 'string';\n },\n isNumber() {\n return this.dataType === 'number';\n },\n isJson() {\n return this.dataType === 'json';\n },\n nameKey() {\n return this.propsHttp.name || this.propsHttpDefault.name;\n },\n urlKey() {\n return this.propsHttp.url || this.propsHttpDefault.url;\n },\n resKey() {\n return this.propsHttp.res || this.propsHttpDefault.res;\n },\n fileTypeKey() {\n return this.propsHttp.fileType || this.propsHttpDefault.fileType;\n },\n groupsKey() {\n return this.props.groups || this.propsDefault.groups;\n },\n valueKey() {\n return this.props.value || this.propsDefault.value;\n },\n typeKey() {\n return this.props.type || this.propsDefault.type;\n },\n descKey() {\n return this.props.desc || this.propsDefault.desc;\n },\n leafKey() {\n return this.props.leaf || this.propsDefault.leaf;\n },\n labelKey() {\n return this.props.label || this.propsDefault.label;\n },\n childrenKey() {\n return this.props.children || this.propsDefault.children;\n },\n disabledKey() {\n return this.props.disabled || this.propsDefault.disabled;\n },\n idKey() {\n return this.props.id || this.propsDefault.id;\n },\n },\n created() {\n this.initVal();\n },\n };\n}\n","import { createVNode, render } from 'vue';\nimport Main from './index.vue';\nexport default function (_context) {\n const defaultContext = _context;\n return (opt) => {\n const options = {\n opt,\n };\n let appendTo = opt.appendTo;\n if (opt.appendTo) {\n appendTo = document.querySelector(opt.appendTo);\n }\n else {\n appendTo = document.body;\n }\n const parent = document.createElement('div');\n const instance = createVNode(Main, options);\n instance.appContext = defaultContext;\n const onDestroy = () => {\n render(null, parent);\n parent.remove();\n };\n instance.props.onDestroy = onDestroy;\n instance.close = onDestroy;\n render(instance, parent);\n appendTo === null || appendTo === void 0 ? void 0 : appendTo.appendChild(parent);\n return instance;\n };\n}\n","import { render } from \"./index.vue?vue&type=template&id=751f860f\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/core/components/dialog-form/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"751f860f\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('751f860f', __exports__)) {\n console.log('reload')\n api.reload('751f860f', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=751f860f\", () => {\n console.log('re-render')\n api.rerender('751f860f', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=751f860f\"","export default {\n props: {\n render: Function,\n row: Object,\n index: [String, Number],\n column: {\n type: Object,\n default: () => {\n return {};\n },\n },\n dic: {\n type: Array,\n default: () => {\n return [];\n },\n },\n params: {\n type: Object,\n default: () => {\n return {};\n },\n },\n event: {\n type: Object,\n default: () => {\n return {};\n },\n },\n },\n render() {\n return this.render.call(this, {\n column: this.column,\n dic: this.dic,\n params: this.params,\n event: this.event,\n row: this.row,\n index: this.index,\n });\n },\n};\n","import { render } from \"./index.vue?vue&type=template&id=5a7fb534\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/core/components/form/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"5a7fb534\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('5a7fb534', __exports__)) {\n console.log('reload')\n api.reload('5a7fb534', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=5a7fb534\", () => {\n console.log('re-render')\n api.rerender('5a7fb534', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=5a7fb534\"","import { render } from \"./index.vue?vue&type=template&id=4fc486a9\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/core/components/icon/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"4fc486a9\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('4fc486a9', __exports__)) {\n console.log('reload')\n api.reload('4fc486a9', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=4fc486a9\", () => {\n console.log('re-render')\n api.rerender('4fc486a9', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=4fc486a9\"","import Main from './index.vue';\nimport { createVNode, render } from 'vue';\nexport default function (_context) {\n const defaultContext = _context;\n return (datas = [], index = 0, ops = {}) => {\n const options = {\n datas,\n index,\n ops: Object.assign({\n closeOnClickModal: false,\n beforeClose: null,\n click: null,\n modal: true,\n }, ops),\n };\n let appendTo = ops.appendTo;\n if (ops.appendTo) {\n appendTo = document.querySelector(ops.appendTo);\n }\n else {\n appendTo = document.body;\n }\n const parent = document.createElement('div');\n const instance = createVNode(Main, options);\n instance.appContext = defaultContext;\n instance.props.onDestroy = () => {\n render(null, parent);\n parent.remove();\n };\n render(instance, parent);\n appendTo === null || appendTo === void 0 ? void 0 : appendTo.appendChild(parent.firstElementChild);\n return instance;\n };\n}\n","import { render } from \"./index.vue?vue&type=template&id=eea3fb88\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/core/components/image-preview/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"eea3fb88\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('eea3fb88', __exports__)) {\n console.log('reload')\n api.reload('eea3fb88', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=eea3fb88\", () => {\n console.log('re-render')\n api.rerender('eea3fb88', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=eea3fb88\"","export default (() => {\n let dialogDom;\n let closeDialog;\n function setupChildMenus(items, currentDialogDom, divTop, clientHeight) {\n items.forEach((ele, i) => {\n const childDom = ele.querySelector('ul');\n if (!childDom)\n return;\n Object.assign(childDom.style, {\n position: 'absolute',\n top: '-9999px',\n width: 'max-content',\n });\n if (ele._onEnter) {\n ele.removeEventListener('mouseenter', ele._onEnter);\n ele.removeEventListener('mouseleave', ele._onLeave);\n }\n ele._onEnter = () => {\n const calcHeight = clientHeight - (divTop + ele.clientHeight * (i + 1)) - childDom.clientHeight;\n childDom.style.left = `${currentDialogDom.clientWidth + 1}px`;\n childDom.style.top = `${calcHeight < 0 ? calcHeight : 0}px`;\n };\n ele._onLeave = () => {\n childDom.style.top = '-9999px';\n };\n ele.addEventListener('mouseenter', ele._onEnter);\n ele.addEventListener('mouseleave', ele._onLeave);\n });\n }\n function setEvent(el, binding) {\n const dom = document.getElementById(binding.value.id);\n if (dom)\n dom.style.display = 'none';\n el.oncontextmenu = function (e) {\n e.preventDefault();\n const { id, event, hide, value } = binding.value;\n dialogDom = document.getElementById(id);\n if (!dialogDom)\n return;\n const { clientWidth, clientHeight } = document.documentElement;\n let { clientX: divLeft, clientY: divTop } = e;\n dialogDom.style.display = 'block';\n const { offsetWidth: dialogDomWidth, offsetHeight: dialogDomHeight } = dialogDom;\n if (clientHeight - divTop - dialogDomHeight < 0) {\n divTop -= dialogDomHeight;\n }\n if (clientWidth - divLeft - dialogDomWidth < 0) {\n divLeft -= dialogDomWidth;\n }\n const firstLevelItems = Array.from(dialogDom.querySelectorAll('li')).filter((item) => item.parentNode === dialogDom);\n setupChildMenus(firstLevelItems, dialogDom, divTop, clientHeight);\n if (closeDialog) {\n document.removeEventListener('click', closeDialog);\n }\n closeDialog = () => {\n if (!dialogDom)\n return;\n dialogDom.style.display = 'none';\n hide && hide(value, e);\n document.removeEventListener('click', closeDialog);\n closeDialog = null;\n };\n const showDialog = () => {\n if (!dialogDom)\n return;\n Object.assign(dialogDom.style, {\n position: 'fixed',\n zIndex: 1024,\n top: `${divTop}px`,\n left: `${divLeft}px`,\n });\n document.addEventListener('click', closeDialog);\n };\n event ? event(value, showDialog) : showDialog();\n };\n }\n return {\n mounted(el, binding) {\n setEvent(el, binding);\n },\n updated(el, binding) {\n setEvent(el, binding);\n },\n unmounted(el) {\n el.oncontextmenu = null;\n if (closeDialog) {\n document.removeEventListener('click', closeDialog);\n closeDialog = null;\n }\n },\n };\n})();\n","export default (() => {\n function init(el, binding) {\n const value = binding.value;\n if (value === false) {\n el.style.display = 'none';\n }\n else {\n el.style.display = '';\n }\n }\n return {\n mounted(el, binding) {\n init(el, binding);\n },\n updated(el, binding) {\n init(el, binding);\n },\n };\n})();\n","import { render } from \"./index.vue?vue&type=template&id=7f82642d\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/box/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"7f82642d\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('7f82642d', __exports__)) {\n console.log('reload')\n api.reload('7f82642d', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=7f82642d\", () => {\n console.log('re-render')\n api.rerender('7f82642d', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=7f82642d\"","import { render } from \"./index.vue?vue&type=template&id=6c1e6e04\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/card/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"6c1e6e04\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('6c1e6e04', __exports__)) {\n console.log('reload')\n api.reload('6c1e6e04', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=6c1e6e04\", () => {\n console.log('re-render')\n api.rerender('6c1e6e04', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6c1e6e04\"","import { render } from \"./index.vue?vue&type=template&id=9fc5e2de\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/cardText/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"9fc5e2de\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('9fc5e2de', __exports__)) {\n console.log('reload')\n api.reload('9fc5e2de', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=9fc5e2de\", () => {\n console.log('re-render')\n api.rerender('9fc5e2de', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=9fc5e2de\"","import { render } from \"./index.vue?vue&type=template&id=06f253d3\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/countdown/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"06f253d3\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('06f253d3', __exports__)) {\n console.log('reload')\n api.reload('06f253d3', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=06f253d3\", () => {\n console.log('re-render')\n api.rerender('06f253d3', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=06f253d3\"","import { render } from \"./index.vue?vue&type=template&id=eb27ef14\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/dashboard/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"eb27ef14\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('eb27ef14', __exports__)) {\n console.log('reload')\n api.reload('eb27ef14', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=eb27ef14\", () => {\n console.log('re-render')\n api.rerender('eb27ef14', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=eb27ef14\"","import { render } from \"./index.vue?vue&type=template&id=225fca38\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/display/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"225fca38\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('225fca38', __exports__)) {\n console.log('reload')\n api.reload('225fca38', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=225fca38\", () => {\n console.log('re-render')\n api.rerender('225fca38', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=225fca38\"","import { render } from \"./index.vue?vue&type=template&id=f7b00608\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/icons/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"f7b00608\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('f7b00608', __exports__)) {\n console.log('reload')\n api.reload('f7b00608', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=f7b00608\", () => {\n console.log('re-render')\n api.rerender('f7b00608', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f7b00608\"","import { render } from \"./index.vue?vue&type=template&id=60c71032\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/imgText/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"60c71032\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('60c71032', __exports__)) {\n console.log('reload')\n api.reload('60c71032', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=60c71032\", () => {\n console.log('re-render')\n api.rerender('60c71032', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=60c71032\"","import { render } from \"./index.vue?vue&type=template&id=26ff8a12\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/list/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"26ff8a12\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('26ff8a12', __exports__)) {\n console.log('reload')\n api.reload('26ff8a12', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=26ff8a12\", () => {\n console.log('re-render')\n api.rerender('26ff8a12', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=26ff8a12\"","import { render } from \"./index.vue?vue&type=template&id=675644e8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/notice/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"675644e8\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('675644e8', __exports__)) {\n console.log('reload')\n api.reload('675644e8', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=675644e8\", () => {\n console.log('re-render')\n api.rerender('675644e8', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=675644e8\"","import { render } from \"./index.vue?vue&type=template&id=55f47a82\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/operaText/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"55f47a82\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('55f47a82', __exports__)) {\n console.log('reload')\n api.reload('55f47a82', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=55f47a82\", () => {\n console.log('re-render')\n api.rerender('55f47a82', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=55f47a82\"","import { render } from \"./index.vue?vue&type=template&id=212cd134\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/panel/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"212cd134\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('212cd134', __exports__)) {\n console.log('reload')\n api.reload('212cd134', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=212cd134\", () => {\n console.log('re-render')\n api.rerender('212cd134', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=212cd134\"","import { render } from \"./index.vue?vue&type=template&id=984b326c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/pay/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"984b326c\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('984b326c', __exports__)) {\n console.log('reload')\n api.reload('984b326c', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=984b326c\", () => {\n console.log('re-render')\n api.rerender('984b326c', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=984b326c\"","import { render } from \"./index.vue?vue&type=template&id=24f0ac6b\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/price/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"24f0ac6b\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('24f0ac6b', __exports__)) {\n console.log('reload')\n api.reload('24f0ac6b', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=24f0ac6b\", () => {\n console.log('re-render')\n api.rerender('24f0ac6b', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=24f0ac6b\"","import { render } from \"./index.vue?vue&type=template&id=309b3ad1\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/product/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"309b3ad1\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('309b3ad1', __exports__)) {\n console.log('reload')\n api.reload('309b3ad1', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=309b3ad1\", () => {\n console.log('re-render')\n api.rerender('309b3ad1', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=309b3ad1\"","import { render } from \"./index.vue?vue&type=template&id=520ad70b\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/profile/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"520ad70b\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('520ad70b', __exports__)) {\n console.log('reload')\n api.reload('520ad70b', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=520ad70b\", () => {\n console.log('re-render')\n api.rerender('520ad70b', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=520ad70b\"","import { render } from \"./index.vue?vue&type=template&id=2c4aa061\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/progress/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"2c4aa061\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('2c4aa061', __exports__)) {\n console.log('reload')\n api.reload('2c4aa061', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=2c4aa061\", () => {\n console.log('re-render')\n api.rerender('2c4aa061', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=2c4aa061\"","import { render } from \"./index.vue?vue&type=template&id=c8d0e7c0\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/rank/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"c8d0e7c0\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('c8d0e7c0', __exports__)) {\n console.log('reload')\n api.reload('c8d0e7c0', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=c8d0e7c0\", () => {\n console.log('re-render')\n api.rerender('c8d0e7c0', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=c8d0e7c0\"","import { render } from \"./index.vue?vue&type=template&id=61501c4f\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/rotate/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"61501c4f\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('61501c4f', __exports__)) {\n console.log('reload')\n api.reload('61501c4f', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=61501c4f\", () => {\n console.log('re-render')\n api.rerender('61501c4f', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=61501c4f\"","import { render } from \"./index.vue?vue&type=template&id=29a5479c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/statistic/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"29a5479c\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('29a5479c', __exports__)) {\n console.log('reload')\n api.reload('29a5479c', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=29a5479c\", () => {\n console.log('re-render')\n api.rerender('29a5479c', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=29a5479c\"","import { render } from \"./index.vue?vue&type=template&id=abb6161c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/tabs/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"abb6161c\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('abb6161c', __exports__)) {\n console.log('reload')\n api.reload('abb6161c', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=abb6161c\", () => {\n console.log('re-render')\n api.rerender('abb6161c', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=abb6161c\"","import { render } from \"./index.vue?vue&type=template&id=f4694b8e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/task/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"f4694b8e\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('f4694b8e', __exports__)) {\n console.log('reload')\n api.reload('f4694b8e', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=f4694b8e\", () => {\n console.log('re-render')\n api.rerender('f4694b8e', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f4694b8e\"","import { render } from \"./index.vue?vue&type=template&id=24b138d4\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/weather/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"24b138d4\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('24b138d4', __exports__)) {\n console.log('reload')\n api.reload('24b138d4', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=24b138d4\", () => {\n console.log('re-render')\n api.rerender('24b138d4', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=24b138d4\"","import { render } from \"./index.vue?vue&type=template&id=8dfdacc8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/array/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"8dfdacc8\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('8dfdacc8', __exports__)) {\n console.log('reload')\n api.reload('8dfdacc8', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=8dfdacc8\", () => {\n console.log('re-render')\n api.rerender('8dfdacc8', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=8dfdacc8\"","import { render } from \"./index.vue?vue&type=template&id=26ed2c0e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/article/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"26ed2c0e\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('26ed2c0e', __exports__)) {\n console.log('reload')\n api.reload('26ed2c0e', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=26ed2c0e\", () => {\n console.log('re-render')\n api.rerender('26ed2c0e', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=26ed2c0e\"","import { render } from \"./index.vue?vue&type=template&id=6b2d95c3\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/card/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"6b2d95c3\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('6b2d95c3', __exports__)) {\n console.log('reload')\n api.reload('6b2d95c3', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=6b2d95c3\", () => {\n console.log('re-render')\n api.rerender('6b2d95c3', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6b2d95c3\"","import { render } from \"./index.vue?vue&type=template&id=15423d71\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/cascader/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"15423d71\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('15423d71', __exports__)) {\n console.log('reload')\n api.reload('15423d71', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=15423d71\", () => {\n console.log('re-render')\n api.rerender('15423d71', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=15423d71\"","import { render } from \"./index.vue?vue&type=template&id=877c17ea\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/chat/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"877c17ea\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('877c17ea', __exports__)) {\n console.log('reload')\n api.reload('877c17ea', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=877c17ea\", () => {\n console.log('re-render')\n api.rerender('877c17ea', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=877c17ea\"","import { render } from \"./index.vue?vue&type=template&id=9844b294\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/checkbox/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"9844b294\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('9844b294', __exports__)) {\n console.log('reload')\n api.reload('9844b294', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=9844b294\", () => {\n console.log('re-render')\n api.rerender('9844b294', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=9844b294\"","import { render } from \"./index.vue?vue&type=template&id=bd22c7bc\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/comment/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"bd22c7bc\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('bd22c7bc', __exports__)) {\n console.log('reload')\n api.reload('bd22c7bc', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=bd22c7bc\", () => {\n console.log('re-render')\n api.rerender('bd22c7bc', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=bd22c7bc\"","import { render } from \"./index.vue?vue&type=template&id=1683a0e8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/count-up/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"1683a0e8\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('1683a0e8', __exports__)) {\n console.log('reload')\n api.reload('1683a0e8', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=1683a0e8\", () => {\n console.log('re-render')\n api.rerender('1683a0e8', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=1683a0e8\"","import { render } from \"./column-default.vue?vue&type=template&id=8e03887c\"\nimport script from \"./column-default.vue?vue&type=script&lang=js\"\nexport * from \"./column-default.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/column/column-default.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"8e03887c\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('8e03887c', __exports__)) {\n console.log('reload')\n api.reload('8e03887c', __exports__)\n }\n \n module.hot.accept(\"./column-default.vue?vue&type=template&id=8e03887c\", () => {\n console.log('re-render')\n api.rerender('8e03887c', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-default.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-default.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-default.vue?vue&type=template&id=8e03887c\"","import { render } from \"./column-dynamic.vue?vue&type=template&id=78c2d280\"\nimport script from \"./column-dynamic.vue?vue&type=script&lang=js\"\nexport * from \"./column-dynamic.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/column/column-dynamic.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"78c2d280\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('78c2d280', __exports__)) {\n console.log('reload')\n api.reload('78c2d280', __exports__)\n }\n \n module.hot.accept(\"./column-dynamic.vue?vue&type=template&id=78c2d280\", () => {\n console.log('re-render')\n api.rerender('78c2d280', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-dynamic.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-dynamic.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-dynamic.vue?vue&type=template&id=78c2d280\"","import { render } from \"./column-menu.vue?vue&type=template&id=707bb4a4\"\nimport script from \"./column-menu.vue?vue&type=script&lang=js\"\nexport * from \"./column-menu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/column/column-menu.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"707bb4a4\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('707bb4a4', __exports__)) {\n console.log('reload')\n api.reload('707bb4a4', __exports__)\n }\n \n module.hot.accept(\"./column-menu.vue?vue&type=template&id=707bb4a4\", () => {\n console.log('re-render')\n api.rerender('707bb4a4', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-menu.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-menu.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-menu.vue?vue&type=template&id=707bb4a4\"","import { render } from \"./column-slot.vue?vue&type=template&id=aa08da66\"\nimport script from \"./column-slot.vue?vue&type=script&lang=js\"\nexport * from \"./column-slot.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/column/column-slot.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"aa08da66\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('aa08da66', __exports__)) {\n console.log('reload')\n api.reload('aa08da66', __exports__)\n }\n \n module.hot.accept(\"./column-slot.vue?vue&type=template&id=aa08da66\", () => {\n console.log('re-render')\n api.rerender('aa08da66', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-slot.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-slot.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column-slot.vue?vue&type=template&id=aa08da66\"","import { render } from \"./column.vue?vue&type=template&id=2d011b64\"\nimport script from \"./column.vue?vue&type=script&lang=js\"\nexport * from \"./column.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/column/column.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"2d011b64\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('2d011b64', __exports__)) {\n console.log('reload')\n api.reload('2d011b64', __exports__)\n }\n \n module.hot.accept(\"./column.vue?vue&type=template&id=2d011b64\", () => {\n console.log('re-render')\n api.rerender('2d011b64', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./column.vue?vue&type=template&id=2d011b64\"","// crud 配置文件\nexport default {\n menuWidth: 220,\n menuFixed: 'right',\n menuXsWidth: 100,\n menuAlign: 'center',\n menuHeaderAlign: 'center',\n headerAlign: 'left',\n // 图标\n cancelBtnIcon: 'el-icon-circle-close',\n viewBtnIcon: 'el-icon-view',\n editBtnIcon: 'el-icon-edit',\n copyBtnIcon: 'el-icon-copy-document',\n addBtnIcon: 'el-icon-plus',\n printBtnIcon: 'el-icon-printer',\n mockBtnIcon: 'el-icon-edit',\n excelBtnIcon: 'el-icon-download',\n delBtnIcon: 'el-icon-delete',\n searchBtnIcon: 'el-icon-search',\n emptyBtnIcon: 'el-icon-delete',\n saveBtnIcon: 'el-icon-circle-plus',\n updateBtnIcon: 'el-icon-circle-check',\n columnBtnIcon: 'el-icon-operation',\n filterBtnIcon: 'el-icon-tickets',\n gridBtnIcon: 'el-icon-grid',\n refreshBtnIcon: 'el-icon-refresh',\n // 显隐\n viewBtn: false,\n editBtn: true,\n copyBtn: false,\n cancelBtn: true,\n addBtn: true,\n addRowBtn: false,\n printBtn: false,\n mockBtn: false,\n excelBtn: false,\n delBtn: true,\n cellBtn: false,\n dateBtn: false,\n updateBtn: true,\n saveBtn: true,\n refreshBtn: true,\n columnBtn: true,\n filterBtn: false,\n gridBtn: true,\n queryBtn: true,\n menuBtn: false,\n searchBtn: true,\n clearBtn: true,\n selectClearBtn: true,\n searchShow: true,\n tip: true,\n dialogWidth: '60%',\n dialogDrag: false,\n formFullscreen: false,\n pageBackground: true,\n page: true,\n menu: true,\n indexLabel: '#',\n indexWidth: 50,\n indexFixed: 'left',\n selectionWidth: 50,\n selectionFixed: 'left',\n expandWidth: 60,\n expandFixed: 'left',\n filterMultiple: true,\n calcHeight: 300,\n width: '100%',\n searchLabelWidth: 80,\n searchSpan: 6,\n dropRowClass: '.el-table__body-wrapper table tbody',\n dropColClass: '.el-table__header-wrapper tr',\n ghostClass: 'avue-crud__ghost',\n};\n","import { render } from \"./dialog-column.vue?vue&type=template&id=5d630ab6\"\nimport script from \"./dialog-column.vue?vue&type=script&lang=js\"\nexport * from \"./dialog-column.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/dialog/dialog-column.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"5d630ab6\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('5d630ab6', __exports__)) {\n console.log('reload')\n api.reload('5d630ab6', __exports__)\n }\n \n module.hot.accept(\"./dialog-column.vue?vue&type=template&id=5d630ab6\", () => {\n console.log('re-render')\n api.rerender('5d630ab6', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-column.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-column.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-column.vue?vue&type=template&id=5d630ab6\"","import { render } from \"./dialog-excel.vue?vue&type=template&id=41bcef38\"\nimport script from \"./dialog-excel.vue?vue&type=script&lang=js\"\nexport * from \"./dialog-excel.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/dialog/dialog-excel.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"41bcef38\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('41bcef38', __exports__)) {\n console.log('reload')\n api.reload('41bcef38', __exports__)\n }\n \n module.hot.accept(\"./dialog-excel.vue?vue&type=template&id=41bcef38\", () => {\n console.log('re-render')\n api.rerender('41bcef38', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-excel.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-excel.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-excel.vue?vue&type=template&id=41bcef38\"","import { render } from \"./dialog-filter.vue?vue&type=template&id=1b88dc72\"\nimport script from \"./dialog-filter.vue?vue&type=script&lang=js\"\nexport * from \"./dialog-filter.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/dialog/dialog-filter.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"1b88dc72\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('1b88dc72', __exports__)) {\n console.log('reload')\n api.reload('1b88dc72', __exports__)\n }\n \n module.hot.accept(\"./dialog-filter.vue?vue&type=template&id=1b88dc72\", () => {\n console.log('re-render')\n api.rerender('1b88dc72', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-filter.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-filter.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-filter.vue?vue&type=template&id=1b88dc72\"","import { render } from \"./dialog-form.vue?vue&type=template&id=6e07ced3\"\nimport script from \"./dialog-form.vue?vue&type=script&lang=js\"\nexport * from \"./dialog-form.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/dialog/dialog-form.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"6e07ced3\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('6e07ced3', __exports__)) {\n console.log('reload')\n api.reload('6e07ced3', __exports__)\n }\n \n module.hot.accept(\"./dialog-form.vue?vue&type=template&id=6e07ced3\", () => {\n console.log('re-render')\n api.rerender('6e07ced3', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-form.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-form.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./dialog-form.vue?vue&type=template&id=6e07ced3\"","import { render } from \"./index.vue?vue&type=template&id=668ced3a\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/grid/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"668ced3a\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('668ced3a', __exports__)) {\n console.log('reload')\n api.reload('668ced3a', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=668ced3a\", () => {\n console.log('re-render')\n api.rerender('668ced3a', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=668ced3a\"","import { render } from \"./item.vue?vue&type=template&id=b45bf14a\"\nimport script from \"./item.vue?vue&type=script&lang=js\"\nexport * from \"./item.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/grid/item.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"b45bf14a\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('b45bf14a', __exports__)) {\n console.log('reload')\n api.reload('b45bf14a', __exports__)\n }\n \n module.hot.accept(\"./item.vue?vue&type=template&id=b45bf14a\", () => {\n console.log('re-render')\n api.rerender('b45bf14a', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./item.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./item.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./item.vue?vue&type=template&id=b45bf14a\"","import { render } from \"./index.vue?vue&type=template&id=58f5f471\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"58f5f471\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('58f5f471', __exports__)) {\n console.log('reload')\n api.reload('58f5f471', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=58f5f471\", () => {\n console.log('re-render')\n api.rerender('58f5f471', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=58f5f471\"","import { render } from \"./header-menu.vue?vue&type=template&id=dda852c0\"\nimport script from \"./header-menu.vue?vue&type=script&lang=js\"\nexport * from \"./header-menu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/menu/header-menu.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"dda852c0\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('dda852c0', __exports__)) {\n console.log('reload')\n api.reload('dda852c0', __exports__)\n }\n \n module.hot.accept(\"./header-menu.vue?vue&type=template&id=dda852c0\", () => {\n console.log('re-render')\n api.rerender('dda852c0', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./header-menu.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./header-menu.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./header-menu.vue?vue&type=template&id=dda852c0\"","import { render } from \"./header-search.vue?vue&type=template&id=23b2f429\"\nimport script from \"./header-search.vue?vue&type=script&lang=js\"\nexport * from \"./header-search.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/menu/header-search.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"23b2f429\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('23b2f429', __exports__)) {\n console.log('reload')\n api.reload('23b2f429', __exports__)\n }\n \n module.hot.accept(\"./header-search.vue?vue&type=template&id=23b2f429\", () => {\n console.log('re-render')\n api.rerender('23b2f429', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./header-search.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./header-search.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./header-search.vue?vue&type=template&id=23b2f429\"","import { render } from \"./table-page.vue?vue&type=template&id=61e13cbd\"\nimport script from \"./table-page.vue?vue&type=script&lang=js\"\nexport * from \"./table-page.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/crud/menu/table-page.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"61e13cbd\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('61e13cbd', __exports__)) {\n console.log('reload')\n api.reload('61e13cbd', __exports__)\n }\n \n module.hot.accept(\"./table-page.vue?vue&type=template&id=61e13cbd\", () => {\n console.log('re-render')\n api.rerender('61e13cbd', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./table-page.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./table-page.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./table-page.vue?vue&type=template&id=61e13cbd\"","import { render } from \"./index.vue?vue&type=template&id=1d59463e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/date/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"1d59463e\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('1d59463e', __exports__)) {\n console.log('reload')\n api.reload('1d59463e', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=1d59463e\", () => {\n console.log('re-render')\n api.rerender('1d59463e', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=1d59463e\"","import { render } from \"./index.vue?vue&type=template&id=a7856060\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/draggable/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"a7856060\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('a7856060', __exports__)) {\n console.log('reload')\n api.reload('a7856060', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=a7856060\", () => {\n console.log('re-render')\n api.rerender('a7856060', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a7856060\"","import { render } from \"./index.vue?vue&type=template&id=209d93fc\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/dynamic/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"209d93fc\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('209d93fc', __exports__)) {\n console.log('reload')\n api.reload('209d93fc', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=209d93fc\", () => {\n console.log('re-render')\n api.rerender('209d93fc', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=209d93fc\"","import { render } from \"./index.vue?vue&type=template&id=464c8e61\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/flow/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"464c8e61\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('464c8e61', __exports__)) {\n console.log('reload')\n api.reload('464c8e61', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=464c8e61\", () => {\n console.log('re-render')\n api.rerender('464c8e61', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=464c8e61\"","import { render } from \"./node.vue?vue&type=template&id=49516e7a\"\nimport script from \"./node.vue?vue&type=script&lang=js\"\nexport * from \"./node.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/flow/node.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"49516e7a\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('49516e7a', __exports__)) {\n console.log('reload')\n api.reload('49516e7a', __exports__)\n }\n \n module.hot.accept(\"./node.vue?vue&type=template&id=49516e7a\", () => {\n console.log('re-render')\n api.rerender('49516e7a', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./node.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./node.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./node.vue?vue&type=template&id=49516e7a\"","// form 配置文件\nexport default {\n labelWidth: 90,\n span: 12,\n xsSpan: 24,\n};\n","import { render } from \"./index.vue?vue&type=template&id=57fb9677\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/form/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"57fb9677\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('57fb9677', __exports__)) {\n console.log('reload')\n api.reload('57fb9677', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=57fb9677\", () => {\n console.log('re-render')\n api.rerender('57fb9677', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=57fb9677\"","import { render } from \"./menu.vue?vue&type=template&id=8163526c\"\nimport script from \"./menu.vue?vue&type=script&lang=js\"\nexport * from \"./menu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/form/menu.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"8163526c\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('8163526c', __exports__)) {\n console.log('reload')\n api.reload('8163526c', __exports__)\n }\n \n module.hot.accept(\"./menu.vue?vue&type=template&id=8163526c\", () => {\n console.log('re-render')\n api.rerender('8163526c', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./menu.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./menu.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./menu.vue?vue&type=template&id=8163526c\"","import { render } from \"./index.vue?vue&type=template&id=66733642\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/group/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"66733642\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('66733642', __exports__)) {\n console.log('reload')\n api.reload('66733642', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=66733642\", () => {\n console.log('re-render')\n api.rerender('66733642', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=66733642\"","import { render } from \"./index.vue?vue&type=template&id=c3ce0fba\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-color/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"c3ce0fba\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('c3ce0fba', __exports__)) {\n console.log('reload')\n api.reload('c3ce0fba', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=c3ce0fba\", () => {\n console.log('re-render')\n api.rerender('c3ce0fba', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=c3ce0fba\"","import { render } from \"./index.vue?vue&type=template&id=36338624\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-cron/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"36338624\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('36338624', __exports__)) {\n console.log('reload')\n api.reload('36338624', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=36338624\", () => {\n console.log('re-render')\n api.rerender('36338624', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=36338624\"","import { render } from \"./index.vue?vue&type=template&id=f08e4362\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-icon/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"f08e4362\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('f08e4362', __exports__)) {\n console.log('reload')\n api.reload('f08e4362', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=f08e4362\", () => {\n console.log('re-render')\n api.rerender('f08e4362', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f08e4362\"","import { render } from \"./index.vue?vue&type=template&id=a3bbbfc8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-map/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"a3bbbfc8\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('a3bbbfc8', __exports__)) {\n console.log('reload')\n api.reload('a3bbbfc8', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=a3bbbfc8\", () => {\n console.log('re-render')\n api.rerender('a3bbbfc8', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a3bbbfc8\"","import { render } from \"./index.vue?vue&type=template&id=6c26b342\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-number/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"6c26b342\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('6c26b342', __exports__)) {\n console.log('reload')\n api.reload('6c26b342', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=6c26b342\", () => {\n console.log('re-render')\n api.rerender('6c26b342', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6c26b342\"","import { render } from \"./index.vue?vue&type=template&id=43b9bace\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-table/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"43b9bace\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('43b9bace', __exports__)) {\n console.log('reload')\n api.reload('43b9bace', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=43b9bace\", () => {\n console.log('re-render')\n api.rerender('43b9bace', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=43b9bace\"","import { render } from \"./index.vue?vue&type=template&id=10a5f64c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-tag/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"10a5f64c\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('10a5f64c', __exports__)) {\n console.log('reload')\n api.reload('10a5f64c', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=10a5f64c\", () => {\n console.log('re-render')\n api.rerender('10a5f64c', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=10a5f64c\"","import { render } from \"./index.vue?vue&type=template&id=a619a998\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-tree/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"a619a998\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('a619a998', __exports__)) {\n console.log('reload')\n api.reload('a619a998', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=a619a998\", () => {\n console.log('re-render')\n api.rerender('a619a998', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a619a998\"","import { render } from \"./index.vue?vue&type=template&id=566e9466\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"566e9466\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('566e9466', __exports__)) {\n console.log('reload')\n api.reload('566e9466', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=566e9466\", () => {\n console.log('re-render')\n api.rerender('566e9466', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=566e9466\"","import { render } from \"./index.vue?vue&type=template&id=6c28bf84\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/license/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"6c28bf84\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('6c28bf84', __exports__)) {\n console.log('reload')\n api.reload('6c28bf84', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=6c28bf84\", () => {\n console.log('re-render')\n api.rerender('6c28bf84', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6c28bf84\"","import { render } from \"./index.vue?vue&type=template&id=f024daa8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/login/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"f024daa8\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('f024daa8', __exports__)) {\n console.log('reload')\n api.reload('f024daa8', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=f024daa8\", () => {\n console.log('re-render')\n api.rerender('f024daa8', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f024daa8\"","import { render } from \"./index.vue?vue&type=template&id=78a7cc26\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/mention/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"78a7cc26\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('78a7cc26', __exports__)) {\n console.log('reload')\n api.reload('78a7cc26', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=78a7cc26\", () => {\n console.log('re-render')\n api.rerender('78a7cc26', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=78a7cc26\"","import { render } from \"./index.vue?vue&type=template&id=124ca8be\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/radio/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"124ca8be\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('124ca8be', __exports__)) {\n console.log('reload')\n api.reload('124ca8be', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=124ca8be\", () => {\n console.log('re-render')\n api.rerender('124ca8be', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=124ca8be\"","import { render } from \"./index.vue?vue&type=template&id=4b746393\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/rate/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"4b746393\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('4b746393', __exports__)) {\n console.log('reload')\n api.reload('4b746393', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=4b746393\", () => {\n console.log('re-render')\n api.rerender('4b746393', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=4b746393\"","import { render } from \"./index.vue?vue&type=template&id=f158c74a\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/search/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"f158c74a\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('f158c74a', __exports__)) {\n console.log('reload')\n api.reload('f158c74a', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=f158c74a\", () => {\n console.log('re-render')\n api.rerender('f158c74a', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f158c74a\"","import { render } from \"./index.vue?vue&type=template&id=19ec52af\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/select/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"19ec52af\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('19ec52af', __exports__)) {\n console.log('reload')\n api.reload('19ec52af', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=19ec52af\", () => {\n console.log('re-render')\n api.rerender('19ec52af', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=19ec52af\"","import { render } from \"./index.vue?vue&type=template&id=796f4430\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/sign/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"796f4430\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('796f4430', __exports__)) {\n console.log('reload')\n api.reload('796f4430', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=796f4430\", () => {\n console.log('re-render')\n api.rerender('796f4430', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=796f4430\"","import { render } from \"./index.vue?vue&type=template&id=3f2c8758\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/slider/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"3f2c8758\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('3f2c8758', __exports__)) {\n console.log('reload')\n api.reload('3f2c8758', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=3f2c8758\", () => {\n console.log('re-render')\n api.rerender('3f2c8758', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=3f2c8758\"","import { render } from \"./index.vue?vue&type=template&id=76952232\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/switch/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"76952232\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('76952232', __exports__)) {\n console.log('reload')\n api.reload('76952232', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=76952232\", () => {\n console.log('re-render')\n api.rerender('76952232', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=76952232\"","import { render } from \"./index.vue?vue&type=template&id=ad97c69e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/tabs/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"ad97c69e\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('ad97c69e', __exports__)) {\n console.log('reload')\n api.reload('ad97c69e', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=ad97c69e\", () => {\n console.log('re-render')\n api.rerender('ad97c69e', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=ad97c69e\"","import { render } from \"./index.vue?vue&type=template&id=dd801a98\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/text-ellipsis/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"dd801a98\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('dd801a98', __exports__)) {\n console.log('reload')\n api.reload('dd801a98', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=dd801a98\", () => {\n console.log('re-render')\n api.rerender('dd801a98', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=dd801a98\"","import { render } from \"./index.vue?vue&type=template&id=4d6ca540\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/time/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"4d6ca540\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('4d6ca540', __exports__)) {\n console.log('reload')\n api.reload('4d6ca540', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=4d6ca540\", () => {\n console.log('re-render')\n api.rerender('4d6ca540', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=4d6ca540\"","import { render } from \"./index.vue?vue&type=template&id=034826db\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/title/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"034826db\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('034826db', __exports__)) {\n console.log('reload')\n api.reload('034826db', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=034826db\", () => {\n console.log('re-render')\n api.rerender('034826db', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=034826db\"","import { render } from \"./index.vue?vue&type=template&id=727ab4d1\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/tree/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"727ab4d1\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('727ab4d1', __exports__)) {\n console.log('reload')\n api.reload('727ab4d1', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=727ab4d1\", () => {\n console.log('re-render')\n api.rerender('727ab4d1', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=727ab4d1\"","import { render } from \"./index.vue?vue&type=template&id=a6252d18\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/upload/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"a6252d18\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('a6252d18', __exports__)) {\n console.log('reload')\n api.reload('a6252d18', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=a6252d18\", () => {\n console.log('re-render')\n api.rerender('a6252d18', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a6252d18\"","import { render } from \"./index.vue?vue&type=template&id=7925a428\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/verify/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"7925a428\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('7925a428', __exports__)) {\n console.log('reload')\n api.reload('7925a428', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=7925a428\", () => {\n console.log('re-render')\n api.rerender('7925a428', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=7925a428\"","import { render } from \"./index.vue?vue&type=template&id=69e2093e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\project\\\\avue\\\\avue3.0\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/video/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"69e2093e\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('69e2093e', __exports__)) {\n console.log('reload')\n api.reload('69e2093e', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=69e2093e\", () => {\n console.log('re-render')\n api.rerender('69e2093e', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.5.12_vue@3.5.27_typescript@5.9.3__webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=69e2093e\"","import bem from 'utils/bem';\nimport { KEY_COMPONENT_NAME } from 'global/variable';\nexport default function create(sfc) {\n sfc.name = KEY_COMPONENT_NAME + sfc.name;\n sfc.mixins = sfc.mixins || [];\n sfc.mixins.push(bem);\n return sfc;\n}\n","import { validatenull } from 'utils/validate';\nimport { KEY_COMPONENT_NAME, DIC_SPLIT, ARRAY_LIST, DATE_LIST, INPUT_LIST, ARRAY_VALUE_LIST, MULTIPLE_LIST, SELECT_LIST, RANGE_LIST, } from 'global/variable';\nimport { detailDataType, findObject, createObj } from 'utils/util';\nimport { t } from '../locale';\nlet count = 0;\nexport const calcCascader = (list = []) => {\n list.forEach((ele) => {\n const cascader = ele.cascader;\n if (!validatenull(cascader)) {\n const parentProp = ele.prop;\n cascader.forEach((citem) => {\n const column = findObject(list, citem);\n if (column)\n column.parentProp = parentProp;\n });\n }\n });\n return list;\n};\nexport const calcCount = (ele, spanDefault = 12, init = false) => {\n const spanAll = 24;\n if (init)\n count = 0;\n const currentSpan = (ele.span || spanDefault) + (ele.offset || 0);\n count += currentSpan;\n if (ele.row && count < spanAll) {\n ele.count = spanAll - count;\n count = 0;\n }\n else if (count >= spanAll) {\n count = 0;\n }\n return ele;\n};\nexport const initVal = (value, safe) => {\n let { type, multiple, dataType, separator = DIC_SPLIT, alone, emitPath, range } = safe;\n let list = value;\n if ((MULTIPLE_LIST.includes(type) && multiple == true) ||\n (ARRAY_VALUE_LIST.includes(type) && emitPath !== false) ||\n (RANGE_LIST.includes(type) && range == true)) {\n if (!Array.isArray(list)) {\n if (validatenull(list)) {\n list = [];\n }\n else {\n if (dataType == 'json') {\n list = JSON.parse(list);\n }\n else {\n list = (list + '').split(separator) || [];\n }\n }\n }\n list.forEach((ele, index) => {\n list[index] = detailDataType(ele, dataType);\n });\n if (ARRAY_LIST.includes(type) && validatenull(list) && alone)\n list = [''];\n }\n else {\n list = detailDataType(list, dataType);\n }\n return list;\n};\nexport const getSearchType = (column) => {\n const type = column.type;\n const range = column.searchRange;\n let result = type;\n if (column.searchType)\n return column.searchType;\n if (['radio', 'checkbox', 'switch'].includes(type)) {\n result = 'select';\n }\n else if (DATE_LIST.includes(type)) {\n const rangeKey = 'range';\n if (range) {\n if (!type.includes(rangeKey)) {\n result = type + rangeKey;\n }\n else {\n result = type;\n }\n }\n else\n result = type.replace(rangeKey, '');\n }\n else if (['textarea'].includes(type)) {\n result = 'input';\n }\n return result;\n};\nexport const getComponent = (type, component) => {\n let result = type || 'input';\n if (!validatenull(component)) {\n return component;\n }\n else if (ARRAY_LIST.includes(type || '')) {\n result = 'array';\n }\n else if (['time', 'timerange'].includes(type || '')) {\n result = 'time';\n }\n else if (DATE_LIST.includes(type || '')) {\n result = 'date';\n }\n else if ([\n 'password',\n 'textarea',\n 'search',\n 'phone',\n 'currency',\n 'bankCard',\n 'bank-card',\n 'idCard',\n 'id-card',\n 'email',\n 'code',\n 'plate',\n 'ip',\n 'mac',\n 'uscc',\n ].includes(type || '')) {\n result = 'input';\n }\n else if (type === 'cron') {\n result = 'input-cron';\n }\n else if (INPUT_LIST.includes(type || '')) {\n result = 'input-' + type;\n }\n return KEY_COMPONENT_NAME + result;\n};\nexport const formInitVal = (list = []) => {\n let tableForm = {};\n list.forEach((ele) => {\n if (['rate', 'slider', 'number'].includes(ele.type) ||\n ele.dataType === 'number' ||\n (ele.type == 'select' && ele.virtualize == true)) {\n tableForm[ele.prop] = undefined;\n }\n else if ((ARRAY_VALUE_LIST.includes(ele.type) &&\n ele.emitPath !== false &&\n ele.dataType != 'json') ||\n (MULTIPLE_LIST.includes(ele.type) && ele.multiple) ||\n ele.dataType === 'array') {\n tableForm[ele.prop] = [];\n }\n else if (RANGE_LIST.includes(ele.type) && ele.range == true) {\n tableForm[ele.prop] = [0, 0];\n }\n else {\n tableForm[ele.prop] = '';\n }\n if (ele.bind) {\n tableForm = createObj(tableForm, ele.bind);\n }\n if (!validatenull(ele.value)) {\n tableForm[ele.prop] = ele.value;\n }\n });\n return tableForm;\n};\nexport const getPlaceholder = function (column, type) {\n const placeholder = column.placeholder;\n const label = column.label;\n if (type === 'search') {\n const searchPlaceholder = column.searchPlaceholder;\n if (!validatenull(searchPlaceholder)) {\n return searchPlaceholder;\n }\n else {\n return label;\n }\n }\n else if (validatenull(placeholder)) {\n if (SELECT_LIST.includes(column.type)) {\n return `${t('tip.select')} ${label}`;\n }\n else {\n return `${t('tip.input')} ${label}`;\n }\n }\n return placeholder;\n};\n","import { validatenull } from 'utils/validate';\nimport { getPasswordChar, getDicValue, getAsVal, detailDataType } from 'utils/util';\nimport { DIC_SPLIT, DIC_SHOW_SPLIT, DATE_LIST, MULTIPLE_LIST, ARRAY_VALUE_LIST, } from 'global/variable';\nimport dayjs from 'dayjs';\nexport const detail = (row = {}, column = {}, option = {}, dic = []) => {\n let result = row[column.prop];\n const type = column.type;\n const separator = column.separator;\n if (column.bind)\n result = getAsVal(row, column.bind);\n if (!validatenull(result)) {\n const selectFlag = MULTIPLE_LIST.includes(column.type) && column.multiple;\n const arrayFlag = ARRAY_VALUE_LIST.includes(column.type) && column.emitPath !== false;\n if ((selectFlag || arrayFlag) && !Array.isArray(result) && !column.dataType)\n column.dataType = 'string';\n if (column.dataType) {\n if (selectFlag || arrayFlag) {\n if (!Array.isArray(result)) {\n if (column.dataType == 'json') {\n result = JSON.parse(result);\n }\n else {\n result = result.split(separator || DIC_SPLIT);\n }\n }\n result.forEach((ele, index) => {\n result[index] = detailDataType(ele, column.dataType);\n });\n }\n else {\n result = detailDataType(result, column.dataType);\n }\n }\n if (type === 'password') {\n result = getPasswordChar(result, '*');\n }\n else if (DATE_LIST.includes(type) && column.format) {\n const format = column.format;\n const formatValue = dayjs().format('YYYY-MM-DD');\n if (['dates', 'years', 'months'].includes(type)) {\n if (typeof result === 'string') {\n result = result.split(',');\n }\n if (Array.isArray(result)) {\n result = result.map((date) => dayjs(date).format(format)).join(column.separator || ',');\n }\n }\n else if (type.indexOf('range') !== -1) {\n let [date1 = '', date2 = ''] = result;\n if (type === 'timerange') {\n date1 = `${formatValue} ${date1}`;\n date2 = `${formatValue} ${date2}`;\n }\n result = [dayjs(date1).format(format), dayjs(date2).format(format)].join(column.separator || '~');\n }\n else {\n if (type === 'time') {\n result = `${formatValue} ${result}`;\n }\n result = dayjs(result).format(format);\n }\n }\n }\n if (!validatenull(dic)) {\n result = getDicValue(dic, result, column.props || option.props);\n }\n if (typeof column.formatter === 'function') {\n result = column.formatter(row, row[column.prop], result, column);\n }\n else if (Array.isArray(result) && !validatenull(dic)) {\n result = result.join(separator || DIC_SHOW_SPLIT);\n }\n return result;\n};\n","import { detailDataType, getAsVal } from 'utils/util';\nimport { validatenull } from 'utils/validate';\nimport { DIC_PROPS } from 'global/variable';\nconst key = 'key';\nfunction getDataType(list = [], props = {}, type) {\n const valueKey = props.value || DIC_PROPS.value;\n const childrenKey = props.children || DIC_PROPS.children;\n list.forEach((ele) => {\n ele[valueKey] = detailDataType(ele[valueKey], type);\n if (ele[childrenKey])\n getDataType(ele[childrenKey], props, type);\n });\n return list;\n}\nfunction getResData(data, props, dataType) {\n const bind = props.res;\n let res = data;\n const deep = data.data;\n if (bind) {\n res = getAsVal(res, bind);\n }\n else if (deep) {\n res = Array.isArray(deep) ? deep : [deep];\n }\n if (dataType)\n res = getDataType(res, props, dataType);\n return res;\n}\nexport const loadCascaderDic = (columnOption, safe) => {\n return new Promise((resolve) => {\n const list = [];\n const result = {};\n const columnList = columnOption.filter((ele) => ele.parentProp);\n safe.data.forEach((ele, index) => {\n if (!safe.cascaderDIC[index])\n safe.cascaderDIC[index] = {};\n columnList.forEach((column) => {\n if (column.hide !== true && column.dicFlag !== false) {\n list.push(new Promise((resolve) => {\n if (ele[column.parentProp]) {\n sendDic({\n url: column.dicUrl,\n props: column.props,\n method: column.dicMethod,\n headers: column.dicHeaders,\n formatter: column.dicFormatter,\n query: column.dicQuery,\n dataType: column.dataType,\n form: ele,\n value: ele[column.parentProp],\n }, safe).then((res) => {\n const obj = {\n prop: column.prop,\n data: res,\n index,\n };\n safe.cascaderDIC[index][obj.prop] = obj.data;\n resolve(obj);\n });\n }\n else {\n const obj = {\n prop: column.prop,\n data: [],\n index,\n };\n safe.cascaderDIC[index][obj.prop] = obj.data;\n resolve(obj);\n }\n }));\n }\n });\n });\n Promise.all(list).then((data) => {\n data.forEach((ele) => {\n if (!result[ele.index])\n result[ele.index] = {};\n result[ele.index][ele.prop] = ele.data;\n });\n resolve(result);\n });\n });\n};\nexport const loadDic = (option, safe) => {\n return new Promise((resolve) => {\n const list = [];\n const result = {};\n let notList = [];\n const nameList = [];\n const column = option.column || [];\n column.forEach((ele) => {\n const url = ele.dicUrl;\n const prop = ele.prop;\n const parentProp = ele.parentProp;\n notList = notList.concat(ele.cascader || []);\n const flag = ele.dicFlag === false || ele.lazy === true || notList.includes(prop);\n if (url && !parentProp && !flag) {\n list.push(new Promise((resolve) => {\n sendDic({\n url,\n name: prop,\n method: ele.dicMethod,\n headers: ele.dicHeaders,\n formatter: ele.dicFormatter,\n props: ele.props,\n dataType: ele.dataType,\n query: ele.dicQuery,\n }, safe).then((res) => {\n safe.DIC[prop] = res;\n resolve(res);\n });\n }));\n nameList.push(prop);\n }\n });\n Promise.all(list).then((res) => {\n nameList.forEach((ele, index) => {\n result[ele] = res[index];\n });\n resolve(result);\n });\n });\n};\nexport const loadLocalDic = (option, safe) => {\n const columnData = {};\n const optionData = option.dicData || {};\n option.column.forEach((ele) => {\n const dic = ele.dicData;\n const prop = ele.prop;\n if (dic instanceof Function) {\n const dicResult = dic(ele);\n if (dicResult instanceof Promise) {\n dicResult.then((res) => {\n safe.DIC[prop] = getDataType(res, ele.props, ele.dataType);\n });\n }\n else {\n columnData[prop] = getDataType(dicResult, ele.props, ele.dataType);\n }\n }\n else if (dic instanceof Array) {\n columnData[prop] = getDataType(dic, ele.props, ele.dataType);\n }\n });\n const result = { ...optionData, ...columnData };\n Object.keys(result).forEach((ele) => {\n safe.DIC[ele] = result[ele];\n });\n return result;\n};\nexport const sendDic = (params, safe) => {\n let { url, query, method, props, formatter, headers, value, column = {}, form = {}, dataType, } = params;\n url = column.dicUrl || url;\n method = (column.dicMethod || method || 'get').toLowerCase();\n headers = column.dicHeaders || headers || {};\n query = column.dicQuery || query || {};\n formatter = column.dicFormatter || formatter;\n props = column.props || props || {};\n const list = url.match(/[^\\{\\}]+(?=\\})/g) || [];\n list.forEach((ele) => {\n let result = ele === key ? value : form[ele];\n if (validatenull(result))\n result = '';\n url = url.replace(`{{${ele}}}`, result);\n });\n const getKey = (data) => {\n const result = {};\n Object.keys(data).forEach((ele) => {\n const eleKey = data[ele];\n if (typeof eleKey === 'string' && eleKey.match(/\\{{|}}/g)) {\n const prop = eleKey.replace(/\\{{|}}/g, '');\n result[ele] = prop == key ? value : form[prop];\n }\n else {\n result[ele] = eleKey;\n }\n });\n return result;\n };\n return new Promise((resolve, reject) => {\n if (!url)\n resolve([]);\n const callback = (res) => {\n let currentList = [];\n res = res.data || {};\n if (typeof formatter === 'function') {\n currentList = formatter(res, form);\n }\n else {\n currentList = getResData(res, props, dataType);\n }\n resolve(currentList);\n };\n const getData = () => {\n const data = getKey(query);\n if (method == 'get')\n return { params: data };\n return { data };\n };\n safe\n .$axios(Object.assign({\n url,\n method,\n headers: getKey(headers),\n }, getData()))\n .then(function (res) {\n callback(res);\n })\n .catch((err) => {\n reject(err);\n });\n });\n};\n","import { t } from '../locale';\nexport default {\n methods: {\n t(...args) {\n return t.apply(this, args);\n },\n },\n};\n","import $Log from 'plugin/logs/';\nconst list = {\n AliOSS: {\n url: 'https://cdn.staticfile.org/ali-oss/6.17.1/aliyun-oss-sdk.min.js',\n title: '阿里云图片上传,需要引入 OSS 的 SDK',\n github: 'https://github.com/ali-sdk/ali-oss/',\n },\n Map: {\n url: 'https://webapi.amap.com/maps?v=1.4.11&key=xxxxx&plugin=AMap.PlaceSearch,https://webapi.amap.com/ui/1.0/main.js?v=1.0.11',\n title: '地图组件,需要引入高德 SDK',\n },\n MapUi: {\n url: 'https://webapi.amap.com/ui/1.0/main.js?v=1.0.11',\n title: '地图组件,需要引入高德 UI SDK',\n },\n Sortable: {\n url: 'https://cdn.staticfile.org/Sortable/1.10.0-rc2/Sortable.min.js',\n title: '拖拽功能,需要引入 SortableJS',\n github: 'https://github.com/SortableJS/Sortable',\n },\n Screenshot: {\n url: 'https://cdn.staticfile.org/html2canvas/0.5.0-beta4/html2canvas.min.js',\n title: '需要引入 html2canvas 依赖包',\n github: 'https://github.com/niklasvh/html2canvas/',\n },\n COS: {\n url: 'https://avuejs.com/cdn/cos-js-sdk-v5.min.js',\n title: '腾讯云图片上传,需要引入 COS',\n },\n CryptoJS: {\n url: 'https://avuejs.com/cdn/CryptoJS.js',\n title: '七牛云图片上传,需要引入 CryptoJS',\n },\n 'file-saver': {\n url: 'https://cdn.staticfile.org/FileSaver.js/2014-11-29/FileSaver.min.js',\n title: '需要引入文件操作包',\n github: 'https://github.com/eligrey/FileSaver.js',\n },\n xlsx: {\n url: 'https://cdn.staticfile.org/xlsx/0.18.2/xlsx.full.min.js',\n title: '需要引入 Excel 操作包',\n github: 'https://github.com/protobi/js-xlsx',\n },\n mock: {\n url: 'https://cdn.staticfile.org/Mock.js/1.0.1-beta3/mock-min.js',\n title: '需要引入 Mock 模拟数据包',\n github: 'https://github.com/Colingo/mock',\n },\n};\nexport default (() => {\n return {\n logs(name) {\n const obj = list[name];\n if (!obj)\n return;\n $Log.capsule(name, obj.title, 'warning');\n $Log.warning('CDN:' + (obj.url || '-'));\n $Log.warning('GITHUB:' + (obj.github || '-'));\n },\n };\n})();\n","export default {\n methods: {\n getSlotName(item = {}, type = 'D', slot) {\n const result = {\n F: '-form',\n H: '-header',\n E: '-error',\n L: '-label',\n S: '-search',\n T: '-type',\n D: '',\n };\n const name = item.prop + result[type];\n if (slot)\n return slot[name];\n return name;\n },\n getSlotList(list = [], slot, propList) {\n const propNames = propList.map((ele) => ele.prop);\n return Object.keys(slot).filter((ele) => {\n let result = false;\n if (!propNames.includes(ele)) {\n list.forEach((name) => {\n if (ele.includes(name))\n result = true;\n });\n }\n return result;\n });\n },\n },\n};\n","export const KEY_COMPONENT_NAME = 'avue-';\nexport const KEY_ECHART_NAME = 'echart-';\nexport const DIC_PROPS = {\n rowKey: 'id',\n rowParentKey: 'parentId',\n nodeKey: 'id',\n label: 'label',\n value: 'value',\n type: 'type',\n desc: 'desc',\n groups: 'groups',\n title: 'title',\n leaf: 'leaf',\n children: 'children',\n hasChildren: 'hasChildren',\n labelText: '名称',\n disabled: 'disabled',\n};\nexport const DIC_HTTP_PROPS = {\n name: 'name',\n url: 'url',\n fileType: 'type',\n fileName: 'file',\n res: '',\n};\nexport const DATE_LIST = [\n 'dates',\n 'date',\n 'datetime',\n 'datetimerange',\n 'daterange',\n 'time',\n 'timerange',\n 'week',\n 'month',\n 'months',\n 'monthrange',\n 'year',\n 'years',\n 'yearrange',\n];\nexport const CHILDREN_LIST = ['table', 'dynamic'];\nexport const INPUT_LIST = ['tree', 'number', 'icon', 'color', 'table', 'map', 'tag'];\nexport const ARRAY_LIST = ['img', 'array', 'url'];\nexport const MULTIPLE_LIST = ['cascader', 'tree', 'select', 'table'];\nexport const RANGE_LIST = ['slider'];\nexport const ARRAY_VALUE_LIST = ARRAY_LIST.concat([\n 'tag',\n 'upload',\n 'dynamic',\n 'map',\n 'checkbox',\n 'cascader',\n 'timerange',\n 'monthrange',\n 'daterange',\n 'yearrange',\n 'datetimerange',\n 'dates',\n 'months',\n 'years',\n]);\nexport const SELECT_LIST = DATE_LIST.concat([\n 'select',\n 'checkbox',\n 'radio',\n 'cascader',\n 'tree',\n 'color',\n 'icon',\n 'table',\n 'map',\n]);\nexport const DIC_SHOW_SPLIT = ' | ';\nexport const DIC_SPLIT = ',';\nexport const typeList = {\n img: /(\\.|^)(gif|jpg|jpeg|png|webp|svg|GIF|JPG|JPEG|PNG|WEBP|SVG)/,\n video: /(\\.|^)(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|ogg|mp4)/,\n audio: /(\\.|^)(mp3|wav|MP3|WAV)/,\n};\n","import * as Icons from '@element-plus/icons-vue';\nexport default (app) => {\n for (const key in Icons) {\n app.component(transElIconName(key), Icons[key]);\n }\n};\nfunction transElIconName(iconName) {\n return 'el-icon' + iconName.replace(/[A-Z]/g, (match) => '-' + match.toLowerCase());\n}\n","import components from \"./ui/index\";\nimport { version } from \"./version\";\nimport axios from \"axios\";\nimport { validatenull } from \"utils/validate\";\nimport { randomId, deepClone, dataURLtoFile, findObject, validData, findArray, findNode, setPx, isJson, downFile, loadScript, } from \"utils/util\";\nimport contextmenu from \"packages/core/directive/contextmenu\";\nimport $Export from \"plugin/export/\";\nimport $Watermark from \"plugin/watermark/\";\nimport $Log from \"plugin/logs/\";\nimport locale from \"./locale/\";\nimport $Screenshot from \"plugin/screenshot/\";\nimport $Clipboard from \"plugin/clipboard/\";\nimport $Print from \"plugin/print/\";\nimport $ImagePreview from \"packages/core/components/image-preview/\";\nimport $DialogForm from \"packages/core/components/dialog-form/\";\nimport createIcon from \"./icon\";\nconst UPLOAD_HOOK_KEYS = [\n \"uploadPreview\",\n \"uploadBefore\",\n \"uploadAfter\",\n \"uploadDelete\",\n \"uploadError\",\n \"uploadExceed\",\n \"uploadSized\",\n];\nconst plugins = {\n $DialogForm,\n $ImagePreview,\n $Export,\n $Print,\n $Clipboard,\n $Watermark,\n $Log,\n $Screenshot,\n deepClone,\n dataURLtoFile,\n isJson,\n setPx,\n validData,\n findArray,\n findNode,\n validatenull,\n downFile,\n loadScript,\n findObject,\n randomId,\n};\nconst directive = {\n contextmenu,\n};\nexport const install = function (app, opts = {}) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const defaultOption = {\n size: (_a = opts.size) !== null && _a !== void 0 ? _a : \"default\",\n calcHeight: (_b = opts.calcHeight) !== null && _b !== void 0 ? _b : 0,\n menuType: (_c = opts.menuType) !== null && _c !== void 0 ? _c : \"text\",\n formOption: (_d = opts.formOption) !== null && _d !== void 0 ? _d : {},\n crudOption: (_e = opts.crudOption) !== null && _e !== void 0 ? _e : {},\n appendToBody: validData(opts.appendToBody, true),\n canvas: {\n text: \"avuejs.com\",\n fontFamily: \"microsoft yahei\",\n color: \"#999\",\n fontSize: 16,\n opacity: 100,\n bottom: 10,\n right: 10,\n ratio: 1,\n ...((_f = opts.canvas) !== null && _f !== void 0 ? _f : {}),\n },\n qiniu: {\n AK: \"\",\n SK: \"\",\n scope: \"\",\n url: \"\",\n bucket: \"https://upload.qiniup.com\",\n deadline: 1,\n ...((_g = opts.qiniu) !== null && _g !== void 0 ? _g : {}),\n },\n ali: {\n region: \"\",\n endpoint: \"\",\n stsToken: \"\",\n accessKeyId: \"\",\n accessKeySecret: \"\",\n bucket: \"\",\n ...((_h = opts.ali) !== null && _h !== void 0 ? _h : {}),\n },\n };\n app.config.globalProperties.$AVUE = Object.assign({}, opts, defaultOption);\n Object.keys(components).forEach((key) => {\n const component = components[key];\n app.component(component.name, component);\n });\n createIcon(app);\n Object.keys(plugins).forEach((key) => {\n if ([\"$DialogForm\", \"$ImagePreview\"].includes(key)) {\n app.config.globalProperties[key] = plugins[key](app._context);\n return;\n }\n app.config.globalProperties[key] = plugins[key];\n });\n Object.keys(directive).forEach((key) => {\n app.directive(key, directive[key]);\n });\n locale.use(opts.locale);\n locale.i18n(opts.i18n);\n app.config.globalProperties.$uploadFun = function (column = {}, safe) {\n const ctx = safe !== null && safe !== void 0 ? safe : this;\n const result = {};\n UPLOAD_HOOK_KEYS.forEach((key) => {\n if (column.type === \"upload\" && !column[key]) {\n result[key] = ctx[key];\n }\n });\n return result;\n };\n app.config.globalProperties.$axios = opts.axios || axios;\n};\nconst Avue = {\n version,\n locale,\n install,\n ...components,\n ...plugins,\n};\nexport default Avue;\n","import enLang from './lang/en';\nimport zhLang from './lang/zh';\nimport defaultLang from './lang/zh-cn';\nimport _merge from 'lodash/merge';\nconst DEFAULT_LOCALE = 'zh-cn';\nconst RE_NARGS = /(%|)\\{([0-9a-zA-Z_]+)\\}/g;\nconst format = (string = '', ...args) => {\n let formatArgs = args;\n if (args.length === 1 && typeof args[0] === 'object') {\n formatArgs = args[0];\n }\n if (!formatArgs || typeof formatArgs !== 'object') {\n formatArgs = {};\n }\n return string.replace(RE_NARGS, (match, _prefix, key, index) => {\n if (string[index - 1] === '{' && string[index + match.length] === '}') {\n return key;\n }\n const result = Object.prototype.hasOwnProperty.call(formatArgs, key)\n ? formatArgs[key]\n : null;\n return result == null ? '' : String(result);\n });\n};\nconst isPlainObject = (value) => Object.prototype.toString.call(value) === '[object Object]';\nconst resolveByPath = (path, locale) => {\n return path.split('.').reduce((current, key) => {\n if (current == null)\n return undefined;\n return current[key];\n }, locale);\n};\nconst normalizeLocaleCode = (code) => code.trim().toLowerCase();\nconst getGlobalLocaleRegistry = () => {\n const globalObject = typeof globalThis !== 'undefined'\n ? globalThis\n : typeof window !== 'undefined'\n ? window\n : undefined;\n if (!globalObject)\n return {};\n if (!isPlainObject(globalObject.AVUE_LANG)) {\n globalObject.AVUE_LANG = {};\n }\n return globalObject.AVUE_LANG;\n};\nconst localeRegistry = {};\nconst rememberLocale = (code, locale) => {\n localeRegistry[code] = locale;\n const globalRegistry = getGlobalLocaleRegistry();\n globalRegistry[code] = locale;\n};\nconst resolveRegisteredLocale = (code) => {\n if (typeof code !== 'string' || !code.trim())\n return null;\n const normalizedCode = normalizeLocaleCode(code);\n const shortCode = normalizedCode.split('-')[0];\n const candidates = shortCode !== normalizedCode ? [normalizedCode, shortCode] : [normalizedCode];\n const globalRegistry = getGlobalLocaleRegistry();\n for (const candidate of candidates) {\n const registered = localeRegistry[candidate] ||\n (isPlainObject(globalRegistry[candidate]) ? globalRegistry[candidate] : undefined);\n if (registered) {\n localeRegistry[candidate] = registered;\n return {\n code: candidate,\n locale: registered\n };\n }\n }\n return null;\n};\nconst buildLocaleState = (code) => {\n const merged = _merge({}, defaultLang);\n const resolved = resolveRegisteredLocale(code);\n if (resolved) {\n return {\n code: resolved.code,\n locale: _merge({}, merged, resolved.locale)\n };\n }\n return {\n code: DEFAULT_LOCALE,\n locale: merged\n };\n};\nexport const register = function (code, locale, aliases = []) {\n if (!code || !isPlainObject(locale))\n return locale;\n [code, ...aliases]\n .map((name) => normalizeLocaleCode(name))\n .filter(Boolean)\n .forEach((name) => rememberLocale(name, locale));\n return locale;\n};\nregister('en', enLang);\nregister('zh', zhLang);\nregister(DEFAULT_LOCALE, defaultLang);\nlet currentCode = DEFAULT_LOCALE;\nlet currentLang = buildLocaleState(DEFAULT_LOCALE).locale;\nlet i18nHandler = null;\nexport const t = function (path, options) {\n if (typeof i18nHandler === 'function') {\n const translated = i18nHandler.call(this, path, options, currentLang);\n if (translated !== undefined && translated !== null && translated !== path) {\n return typeof translated === 'string'\n ? format(translated, options)\n : translated;\n }\n }\n const value = resolveByPath(path, currentLang);\n if (typeof value === 'string')\n return format(value, options);\n if (value === undefined || value === null)\n return '';\n return value;\n};\nexport const use = function (locale, override) {\n const localeState = typeof locale === 'string' ? buildLocaleState(locale) : buildLocaleState(currentCode);\n currentCode = localeState.code;\n currentLang = localeState.locale;\n const extraLocale = typeof locale === 'string' ? override : locale;\n if (isPlainObject(extraLocale)) {\n currentLang = _merge({}, currentLang, extraLocale);\n }\n return currentLang;\n};\nexport const i18n = function (fn) {\n i18nHandler = typeof fn === 'function' ? fn : null;\n return i18nHandler;\n};\nexport const getLocale = function (code) {\n if (typeof code === 'string') {\n return buildLocaleState(code).locale;\n }\n return currentLang;\n};\nexport const getLocaleCode = function () {\n return currentCode;\n};\nexport default { register, use, t, i18n, getLocale, getLocaleCode };\n","export default {\n common: {\n submitBtn: 'Confirm',\n cancelBtn: 'Cancel',\n closeBtn: 'Close',\n condition: 'Condition',\n display: 'Display',\n hide: 'Hide',\n view: 'View',\n select: 'Select',\n more: 'More',\n tip: 'Tip'\n },\n tip: {\n select: 'Please select',\n input: 'Please enter'\n },\n check: {\n checkAll: 'Select all'\n },\n upload: {\n upload: 'Click to upload',\n tip: 'Drag files here, or click to upload'\n },\n time: {\n start: 'Start Time',\n end: 'End Time'\n },\n date: {\n start: 'Start Date',\n end: 'End Date',\n t: 'Today',\n y: 'Yesterday',\n n: 'Last 7 Days',\n a: 'All'\n },\n form: {\n printBtn: 'Print',\n mockBtn: 'Mock',\n submitBtn: 'Submit',\n emptyBtn: 'Reset'\n },\n countdown: {\n day: 'Days',\n hour: 'Hours',\n minute: 'Minutes',\n second: 'Seconds'\n },\n product: {\n sold: 'Sold {value}',\n stock: 'Stock {value}',\n buyNow: 'Buy Now',\n addToCart: 'Add to Cart'\n },\n chat: {\n sendBtn: 'Send',\n quickReplyPlaceholder: 'Enter a quick reply',\n addressRequired: 'Address is required',\n addressPlaceholder: 'Enter address',\n inputPlaceholder: 'Please enter...',\n uploadImageTitle: 'Upload Image',\n uploadVideoTitle: 'Upload Video',\n uploadFileTitle: 'Upload File',\n notificationDenied: 'Notification permission was denied.',\n notificationRejected: 'Notification request was rejected.',\n fileLabel: 'File',\n mapLabel: 'Map'\n },\n flow: {\n deleteNodeConfirm: 'Are you sure you want to delete node {nodeId}?',\n deleteLineConfirm: 'Delete the selected line?',\n noSelfConnect: 'Cannot connect to itself',\n noDuplicateConnect: 'Duplicate connections are not allowed',\n noLoopConnect: 'Loop connections are not allowed'\n },\n login: {\n usernameLabel: 'Username',\n usernamePlaceholder: 'Please enter username',\n passwordLabel: 'Password',\n passwordPlaceholder: 'Please enter password',\n codeLabel: 'Verification Code',\n codePlaceholder: 'Please enter verification code',\n submitBtn: 'Login',\n sendCode: 'Send Code',\n resendCode: 'Retry in {time}s'\n },\n tree: {\n filterPlaceholder: 'Enter keywords to filter'\n },\n map: {\n searchPlaceholder: 'Enter keywords to pick a location'\n },\n cron: {\n placeholder: 'Click to configure Cron expression',\n title: 'Cron Expression',\n expression: 'Cron Expression:',\n nextTimes: 'Next execution times:',\n units: {\n second: 'Second',\n minute: 'Minute',\n hour: 'Hour',\n day: 'Day',\n month: 'Month',\n week: 'Week'\n },\n weekLabels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],\n every: 'Every {label}',\n notSpecify: 'Not specified',\n range: 'Range',\n from: 'From',\n to: 'To',\n step: 'Step',\n startingFrom: 'Starting from',\n everyInterval: 'every',\n specify: 'Specific',\n invalidFormat: 'Invalid expression format',\n noNextTimes: 'Unable to calculate execution times',\n parseError: 'Expression parse error'\n },\n input: {\n phoneCodePlaceholder: 'Code',\n phonePlaceholder: 'Please enter phone number',\n currencyPlaceholder: 'Please enter amount',\n bankCardPlaceholder: 'Please enter bank card number',\n idCardPlaceholder: 'Please enter ID number',\n emailPlaceholder: 'Please enter email',\n platePlaceholder: 'Please enter license plate',\n ipPlaceholder: 'Please enter IP address',\n macPlaceholder: 'Please enter MAC address',\n usccPlaceholder: 'Please enter unified social credit code',\n countries: {\n cn: 'China',\n hk: 'Hong Kong',\n mo: 'Macao',\n tw: 'Taiwan',\n usca: 'United States / Canada',\n uk: 'United Kingdom',\n jp: 'Japan',\n kr: 'South Korea',\n sg: 'Singapore',\n au: 'Australia',\n de: 'Germany',\n fr: 'France',\n it: 'Italy',\n ru: 'Russia',\n in: 'India',\n br: 'Brazil',\n es: 'Spain',\n nl: 'Netherlands',\n ch: 'Switzerland',\n se: 'Sweden',\n my: 'Malaysia',\n th: 'Thailand',\n vn: 'Vietnam',\n id: 'Indonesia',\n ph: 'Philippines'\n },\n plateProvinces: ['京', '津', '沪', '渝', '冀', '豫', '云', '辽', '黑', '湘', '皖', '鲁', '新', '苏', '浙', '赣', '鄂', '桂', '甘', '晋', '蒙', '陕', '吉', '闽', '贵', '粤', '川', '青', '藏', '琼', '宁', '港', '澳', '台'],\n bankCardTypes: {\n unionpay: 'UnionPay'\n },\n genders: {\n female: 'Female',\n male: 'Male'\n },\n regions: {\n '11': 'Beijing',\n '12': 'Tianjin',\n '13': 'Hebei',\n '14': 'Shanxi',\n '15': 'Inner Mongolia',\n '21': 'Liaoning',\n '22': 'Jilin',\n '23': 'Heilongjiang',\n '31': 'Shanghai',\n '32': 'Jiangsu',\n '33': 'Zhejiang',\n '34': 'Anhui',\n '35': 'Fujian',\n '36': 'Jiangxi',\n '37': 'Shandong',\n '41': 'Henan',\n '42': 'Hubei',\n '43': 'Hunan',\n '44': 'Guangdong',\n '45': 'Guangxi',\n '46': 'Hainan',\n '50': 'Chongqing',\n '51': 'Sichuan',\n '52': 'Guizhou',\n '53': 'Yunnan',\n '54': 'Tibet',\n '61': 'Shaanxi',\n '62': 'Gansu',\n '63': 'Qinghai',\n '64': 'Ningxia',\n '65': 'Xinjiang',\n '71': 'Taiwan',\n '81': 'Hong Kong',\n '82': 'Macao'\n },\n unknownRegion: 'Unknown Region'\n },\n task: {\n priorityAliases: {\n high: ['high', '高'],\n medium: ['medium', '中'],\n low: ['low', '低']\n }\n },\n weather: {\n aliases: {\n sunny: ['sunny', 'clear', '晴'],\n cloudy: ['cloudy', 'partly cloudy', '多云'],\n overcast: ['overcast', '阴'],\n rain: ['rain', 'rainy', '雨'],\n snow: ['snow', 'snowy', '雪']\n }\n },\n crud: {\n excel: {\n name: 'File Name',\n type: 'Data Scope',\n typeDic: {\n true: 'Current Page',\n false: 'Selected Rows'\n },\n prop: 'Field',\n params: 'Export Item',\n paramsDic: {\n header: 'Header',\n data: 'Data Source',\n headers: 'Complex Header',\n sum: 'Summary'\n }\n },\n filter: {\n addBtn: 'Add Condition',\n clearBtn: 'Clear',\n resetBtn: 'Reset',\n cancelBtn: 'Cancel',\n submitBtn: 'Confirm'\n },\n column: {\n name: 'Column',\n hide: 'Hide',\n fixed: 'Fixed',\n filters: 'Filter',\n sortable: 'Sort',\n index: 'Index',\n width: 'Width'\n },\n emptyText: 'No Data',\n tipStartTitle: 'Selected',\n tipEndTitle: 'item(s)',\n editTitle: 'Edit',\n copyTitle: 'Copy',\n addTitle: 'Add',\n viewTitle: 'View',\n filterTitle: 'Filter Conditions',\n showTitle: 'Column Settings',\n menu: 'Actions',\n addBtn: 'Add',\n show: 'Show',\n hide: 'Hide',\n open: 'Expand',\n shrink: 'Collapse',\n printBtn: 'Print',\n mockBtn: 'Mock',\n excelBtn: 'Export',\n updateBtn: 'Update',\n cancelBtn: 'Cancel',\n searchBtn: 'Search',\n emptyBtn: 'Reset',\n menuBtn: 'Menu',\n saveBtn: 'Save',\n viewBtn: 'View',\n editBtn: 'Edit',\n copyBtn: 'Copy',\n delBtn: 'Delete'\n }\n};\n","export default {\n common: {\n submitBtn: '确定',\n cancelBtn: '取消',\n closeBtn: '关闭',\n condition: '条件',\n display: '显示',\n hide: '隐藏',\n view: '查看',\n select: '选择',\n more: '更多',\n tip: '提示'\n },\n tip: {\n select: '请选择',\n input: '请输入'\n },\n check: {\n checkAll: '全选'\n },\n upload: {\n upload: '点击上传',\n tip: '将文件拖到此处,或点击上传'\n },\n time: {\n start: '开始时间',\n end: '结束时间'\n },\n date: {\n start: '开始日期',\n end: '结束日期',\n t: '今天',\n y: '昨天',\n n: '最近 7 天',\n a: '全部'\n },\n form: {\n printBtn: '打印',\n mockBtn: '模拟',\n submitBtn: '提交',\n emptyBtn: '清空'\n },\n countdown: {\n day: '天',\n hour: '时',\n minute: '分',\n second: '秒'\n },\n product: {\n sold: '已售 {value}',\n stock: '库存 {value}',\n buyNow: '立即购买',\n addToCart: '加入购物车'\n },\n chat: {\n sendBtn: '发送',\n quickReplyPlaceholder: '请输入快捷回复语',\n addressRequired: '地址不能为空',\n addressPlaceholder: '请输入地址',\n inputPlaceholder: '请输入...',\n uploadImageTitle: '图片上传',\n uploadVideoTitle: '视频上传',\n uploadFileTitle: '文件上传',\n notificationDenied: '用户拒绝了通知权限。',\n notificationRejected: '用户拒绝了通知权限申请。',\n fileLabel: '文件',\n mapLabel: '地图'\n },\n flow: {\n deleteNodeConfirm: '确定要删除节点 {nodeId} 吗?',\n deleteLineConfirm: '确定删除所点击的线吗?',\n noSelfConnect: '不能连接自己',\n noDuplicateConnect: '不能重复连线',\n noLoopConnect: '不能回环哦'\n },\n login: {\n usernameLabel: '用户名',\n usernamePlaceholder: '请输入用户名',\n passwordLabel: '密码',\n passwordPlaceholder: '请输入密码',\n codeLabel: '验证码',\n codePlaceholder: '请输入验证码',\n submitBtn: '登录',\n sendCode: '发送验证码',\n resendCode: '{time}s后重获取'\n },\n tree: {\n filterPlaceholder: '输入关键字进行过滤'\n },\n map: {\n searchPlaceholder: '输入关键字选取地点'\n },\n cron: {\n placeholder: '点击配置Cron表达式',\n title: 'Cron表达式配置',\n expression: 'Cron表达式:',\n nextTimes: '最近执行时间:',\n units: {\n second: '秒',\n minute: '分',\n hour: '时',\n day: '日',\n month: '月',\n week: '周'\n },\n weekLabels: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],\n every: '每{label}执行',\n notSpecify: '不指定',\n range: '周期',\n from: '从',\n to: '到',\n step: '步长',\n startingFrom: '从',\n everyInterval: '开始,每',\n specify: '指定',\n invalidFormat: '表达式格式错误',\n noNextTimes: '无法计算执行时间',\n parseError: '表达式解析错误'\n },\n input: {\n phoneCodePlaceholder: '区号',\n phonePlaceholder: '请输入手机号',\n currencyPlaceholder: '请输入金额',\n bankCardPlaceholder: '请输入银行卡号',\n idCardPlaceholder: '请输入身份证号',\n emailPlaceholder: '请输入邮箱',\n platePlaceholder: '请输入车牌号',\n ipPlaceholder: '请输入IP地址',\n macPlaceholder: '请输入MAC地址',\n usccPlaceholder: '请输入统一社会信用代码',\n countries: {\n cn: '中国',\n hk: '香港',\n mo: '澳门',\n tw: '台湾',\n usca: '美国/加拿大',\n uk: '英国',\n jp: '日本',\n kr: '韩国',\n sg: '新加坡',\n au: '澳大利亚',\n de: '德国',\n fr: '法国',\n it: '意大利',\n ru: '俄罗斯',\n in: '印度',\n br: '巴西',\n es: '西班牙',\n nl: '荷兰',\n ch: '瑞士',\n se: '瑞典',\n my: '马来西亚',\n th: '泰国',\n vn: '越南',\n id: '印尼',\n ph: '菲律宾'\n },\n plateProvinces: ['京', '津', '沪', '渝', '冀', '豫', '云', '辽', '黑', '湘', '皖', '鲁', '新', '苏', '浙', '赣', '鄂', '桂', '甘', '晋', '蒙', '陕', '吉', '闽', '贵', '粤', '川', '青', '藏', '琼', '宁', '港', '澳', '台'],\n bankCardTypes: {\n unionpay: '银联卡'\n },\n genders: {\n female: '女',\n male: '男'\n },\n regions: {\n '11': '北京',\n '12': '天津',\n '13': '河北',\n '14': '山西',\n '15': '内蒙古',\n '21': '辽宁',\n '22': '吉林',\n '23': '黑龙江',\n '31': '上海',\n '32': '江苏',\n '33': '浙江',\n '34': '安徽',\n '35': '福建',\n '36': '江西',\n '37': '山东',\n '41': '河南',\n '42': '湖北',\n '43': '湖南',\n '44': '广东',\n '45': '广西',\n '46': '海南',\n '50': '重庆',\n '51': '四川',\n '52': '贵州',\n '53': '云南',\n '54': '西藏',\n '61': '陕西',\n '62': '甘肃',\n '63': '青海',\n '64': '宁夏',\n '65': '新疆',\n '71': '台湾',\n '81': '香港',\n '82': '澳门'\n },\n unknownRegion: '未知地区'\n },\n task: {\n priorityAliases: {\n high: ['high', '高'],\n medium: ['medium', '中'],\n low: ['low', '低']\n }\n },\n weather: {\n aliases: {\n sunny: ['sunny', 'clear', '晴'],\n cloudy: ['cloudy', 'partly cloudy', '多云'],\n overcast: ['overcast', '阴'],\n rain: ['rain', 'rainy', '雨'],\n snow: ['snow', 'snowy', '雪']\n }\n },\n crud: {\n excel: {\n name: '文件名',\n type: '数据范围',\n typeDic: {\n true: '当前页数据',\n false: '勾选数据'\n },\n prop: '字段',\n params: '导出项',\n paramsDic: {\n header: '表头',\n data: '数据源',\n headers: '复杂表头',\n sum: '合计'\n }\n },\n filter: {\n addBtn: '新增条件',\n clearBtn: '清空',\n resetBtn: '重置',\n cancelBtn: '取消',\n submitBtn: '确定'\n },\n column: {\n name: '列名',\n hide: '隐藏',\n fixed: '冻结',\n filters: '筛选',\n sortable: '排序',\n index: '序号',\n width: '宽度'\n },\n emptyText: '暂无数据',\n tipStartTitle: '已选择',\n tipEndTitle: '项',\n editTitle: '编辑',\n copyTitle: '复制',\n addTitle: '新增',\n viewTitle: '查看',\n filterTitle: '筛选条件',\n showTitle: '列设置',\n menu: '操作',\n addBtn: '新增',\n show: '显示',\n hide: '隐藏',\n open: '展开',\n shrink: '收起',\n printBtn: '打印',\n mockBtn: '模拟',\n excelBtn: '导出',\n updateBtn: '更新',\n cancelBtn: '取消',\n searchBtn: '搜索',\n emptyBtn: '清空',\n menuBtn: '菜单',\n saveBtn: '保存',\n viewBtn: '查看',\n editBtn: '编辑',\n copyBtn: '复制',\n delBtn: '删除'\n }\n};\n","export default {\n common: {\n submitBtn: '确定',\n cancelBtn: '取消',\n closeBtn: '关闭',\n condition: '条件',\n display: '显示',\n hide: '隐藏',\n view: '查看',\n select: '选择',\n more: '更多',\n tip: '提示'\n },\n tip: {\n select: '请选择',\n input: '请输入'\n },\n check: {\n checkAll: '全选'\n },\n upload: {\n upload: '点击上传',\n tip: '将文件拖到此处,或'\n },\n time: {\n start: '开始',\n end: '结束'\n },\n date: {\n start: '开始日期',\n end: '结束日期',\n t: '今日',\n y: '昨日',\n n: '最近7天',\n a: '全部'\n },\n form: {\n printBtn: '打印',\n mockBtn: '模拟',\n submitBtn: '提交',\n emptyBtn: '清空'\n },\n countdown: {\n day: '天',\n hour: '时',\n minute: '分',\n second: '秒'\n },\n product: {\n sold: '已售 {value}',\n stock: '库存 {value}',\n buyNow: '立即购买',\n addToCart: '加入购物车'\n },\n chat: {\n sendBtn: '发送',\n quickReplyPlaceholder: '请输入快捷回复语',\n addressRequired: '地址不能为空',\n addressPlaceholder: '请输入地址',\n inputPlaceholder: '请输入...',\n uploadImageTitle: '图片上传',\n uploadVideoTitle: '视频上传',\n uploadFileTitle: '文件上传',\n notificationDenied: '用户拒绝了通知权限。',\n notificationRejected: '用户拒绝了通知权限申请。',\n fileLabel: '文件',\n mapLabel: '地图'\n },\n flow: {\n deleteNodeConfirm: '确定要删除节点 {nodeId} 吗?',\n deleteLineConfirm: '确定删除所点击的线吗?',\n noSelfConnect: '不能连接自己',\n noDuplicateConnect: '不能重复连线',\n noLoopConnect: '不能回环哦'\n },\n login: {\n usernameLabel: '用户名',\n usernamePlaceholder: '请输入用户名',\n passwordLabel: '密码',\n passwordPlaceholder: '请输入密码',\n codeLabel: '验证码',\n codePlaceholder: '请输入验证码',\n submitBtn: '登录',\n sendCode: '发送验证码',\n resendCode: '{time}s后重获取'\n },\n tree: {\n filterPlaceholder: '输入关键字进行过滤'\n },\n map: {\n searchPlaceholder: '输入关键字选取地点'\n },\n cron: {\n placeholder: '点击配置Cron表达式',\n title: 'Cron表达式配置',\n expression: 'Cron表达式:',\n nextTimes: '最近执行时间:',\n units: {\n second: '秒',\n minute: '分',\n hour: '时',\n day: '日',\n month: '月',\n week: '周'\n },\n weekLabels: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],\n every: '每{label}执行',\n notSpecify: '不指定',\n range: '周期',\n from: '从',\n to: '到',\n step: '步长',\n startingFrom: '从',\n everyInterval: '开始,每',\n specify: '指定',\n invalidFormat: '表达式格式错误',\n noNextTimes: '无法计算执行时间',\n parseError: '表达式解析错误'\n },\n input: {\n phoneCodePlaceholder: '区号',\n phonePlaceholder: '请输入手机号',\n currencyPlaceholder: '请输入金额',\n bankCardPlaceholder: '请输入银行卡号',\n idCardPlaceholder: '请输入身份证号',\n emailPlaceholder: '请输入邮箱',\n platePlaceholder: '请输入车牌号',\n ipPlaceholder: '请输入IP地址',\n macPlaceholder: '请输入MAC地址',\n usccPlaceholder: '请输入统一社会信用代码',\n countries: {\n cn: '中国',\n hk: '香港',\n mo: '澳门',\n tw: '台湾',\n usca: '美国/加拿大',\n uk: '英国',\n jp: '日本',\n kr: '韩国',\n sg: '新加坡',\n au: '澳大利亚',\n de: '德国',\n fr: '法国',\n it: '意大利',\n ru: '俄罗斯',\n in: '印度',\n br: '巴西',\n es: '西班牙',\n nl: '荷兰',\n ch: '瑞士',\n se: '瑞典',\n my: '马来西亚',\n th: '泰国',\n vn: '越南',\n id: '印尼',\n ph: '菲律宾'\n },\n plateProvinces: ['京', '津', '沪', '渝', '冀', '豫', '云', '辽', '黑', '湘', '皖', '鲁', '新', '苏', '浙', '赣', '鄂', '桂', '甘', '晋', '蒙', '陕', '吉', '闽', '贵', '粤', '川', '青', '藏', '琼', '宁', '港', '澳', '台'],\n bankCardTypes: {\n unionpay: '银联卡'\n },\n genders: {\n female: '女',\n male: '男'\n },\n regions: {\n '11': '北京',\n '12': '天津',\n '13': '河北',\n '14': '山西',\n '15': '内蒙古',\n '21': '辽宁',\n '22': '吉林',\n '23': '黑龙江',\n '31': '上海',\n '32': '江苏',\n '33': '浙江',\n '34': '安徽',\n '35': '福建',\n '36': '江西',\n '37': '山东',\n '41': '河南',\n '42': '湖北',\n '43': '湖南',\n '44': '广东',\n '45': '广西',\n '46': '海南',\n '50': '重庆',\n '51': '四川',\n '52': '贵州',\n '53': '云南',\n '54': '西藏',\n '61': '陕西',\n '62': '甘肃',\n '63': '青海',\n '64': '宁夏',\n '65': '新疆',\n '71': '台湾',\n '81': '香港',\n '82': '澳门'\n },\n unknownRegion: '未知地区'\n },\n task: {\n priorityAliases: {\n high: ['high', '高'],\n medium: ['medium', '中'],\n low: ['low', '低']\n }\n },\n weather: {\n aliases: {\n sunny: ['sunny', 'clear', '晴'],\n cloudy: ['cloudy', 'partly cloudy', '多云'],\n overcast: ['overcast', '阴'],\n rain: ['rain', 'rainy', '雨'],\n snow: ['snow', 'snowy', '雪']\n }\n },\n crud: {\n excel: {\n name: '文件名',\n type: '数据',\n typeDic: {\n true: '当前页数据(当前页的全部数据)',\n false: '选中数据(当前页选中的数据)'\n },\n prop: '字段',\n params: '参数',\n paramsDic: {\n header: '表头',\n data: '数据源',\n headers: '复杂表头',\n sum: '合计统计'\n }\n },\n filter: {\n addBtn: '新增条件',\n clearBtn: '清空数据',\n resetBtn: '重置条件',\n cancelBtn: '取消',\n submitBtn: '确定'\n },\n column: {\n name: '列名',\n hide: '隐藏',\n fixed: '冻结',\n filters: '过滤',\n sortable: '排序',\n index: '顺序',\n width: '宽度'\n },\n emptyText: '暂无数据',\n tipStartTitle: '当前表格已选择',\n tipEndTitle: '项',\n editTitle: '编辑',\n copyTitle: '复制',\n addTitle: '新增',\n viewTitle: '查看',\n filterTitle: '过滤条件',\n showTitle: '列显隐',\n menu: '操作',\n addBtn: '新增',\n show: '显示',\n hide: '隐藏',\n open: '展开',\n shrink: '收缩',\n printBtn: '打印',\n mockBtn: '模拟',\n excelBtn: '导出',\n updateBtn: '修改',\n cancelBtn: '取消',\n searchBtn: '搜索',\n emptyBtn: '清空',\n menuBtn: '功能',\n saveBtn: '保存',\n viewBtn: '查看',\n editBtn: '编辑',\n copyBtn: '复制',\n delBtn: '删除'\n }\n};\n","export const getClient = (params) => {\n const client = new OSS(params);\n return client;\n};\n","function select(element) {\n let selectedText = '';\n if (element.nodeName === 'SELECT') {\n element.focus();\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n const input = element;\n const isReadOnly = input.hasAttribute('readonly');\n if (!isReadOnly) {\n input.setAttribute('readonly', '');\n }\n input.select();\n input.setSelectionRange(0, input.value.length);\n if (!isReadOnly) {\n input.removeAttribute('readonly');\n }\n selectedText = input.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n const selection = window.getSelection();\n const range = document.createRange();\n range.selectNodeContents(element);\n selection === null || selection === void 0 ? void 0 : selection.removeAllRanges();\n selection === null || selection === void 0 ? void 0 : selection.addRange(range);\n selectedText = (selection === null || selection === void 0 ? void 0 : selection.toString()) || '';\n }\n return selectedText;\n}\nexport default function ({ text }) {\n return new Promise((resolve, reject) => {\n const container = document.body;\n const isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n const fakeElem = document.createElement('textarea');\n fakeElem.style.fontSize = '12pt';\n fakeElem.style.border = '0';\n fakeElem.style.padding = '0';\n fakeElem.style.margin = '0';\n fakeElem.style.position = 'absolute';\n fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n const yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElem.style.top = `${yPosition}px`;\n fakeElem.setAttribute('readonly', '');\n fakeElem.value = text;\n container.appendChild(fakeElem);\n select(fakeElem);\n try {\n document.execCommand('copy');\n resolve();\n }\n catch (err) {\n reject(err);\n }\n finally {\n container.removeChild(fakeElem);\n }\n });\n}\n","/* eslint-disable */\nimport { isJson, downFile, validData } from 'utils/util';\nimport packages from 'core/packages';\nimport dayjs from 'dayjs';\nconst XLSX = window.XLSX;\nexport default {\n buildHeader(revealList) {\n const excelHeader = [];\n this.getHeader(revealList, excelHeader, 0, 0);\n const max = Math.max(...excelHeader.map((a) => a.length));\n excelHeader\n .filter((e) => e.length < max)\n .forEach((e) => this.pushRowSpanPlaceHolder(e, max - e.length));\n return excelHeader;\n },\n getHeader(headers, excelHeader, deep, perOffset) {\n let offset = 0;\n let cur = excelHeader[deep];\n if (!cur) {\n cur = excelHeader[deep] = [];\n }\n this.pushRowSpanPlaceHolder(cur, perOffset - cur.length);\n for (let i = 0; i < headers.length; i++) {\n const head = headers[i];\n cur.push(head.label);\n if (head.hasOwnProperty('children') && Array.isArray(head.children) && head.children.length > 0) {\n const childOffset = this.getHeader(head.children, excelHeader, deep + 1, cur.length - 1);\n this.pushColSpanPlaceHolder(cur, childOffset - 1);\n offset += childOffset;\n }\n else {\n offset++;\n }\n }\n return offset;\n },\n pushRowSpanPlaceHolder(arr, count) {\n for (let i = 0; i < count; i++) {\n arr.push('!$ROW_SPAN_PLACEHOLDER');\n }\n },\n pushColSpanPlaceHolder(arr, count) {\n for (let i = 0; i < count; i++) {\n arr.push('!$COL_SPAN_PLACEHOLDER');\n }\n },\n doMerges(arr) {\n const deep = arr.length;\n const merges = [];\n for (let y = 0; y < deep; y++) {\n const row = arr[y];\n let colSpan = 0;\n for (let x = 0; x < row.length; x++) {\n if (row[x] === '!$COL_SPAN_PLACEHOLDER') {\n row[x] = undefined;\n if (x + 1 === row.length) {\n merges.push({ s: { r: y, c: x - colSpan - 1 }, e: { r: y, c: x } });\n }\n colSpan++;\n }\n else if (colSpan > 0 && x > colSpan) {\n merges.push({ s: { r: y, c: x - colSpan - 1 }, e: { r: y, c: x - 1 } });\n colSpan = 0;\n }\n else {\n colSpan = 0;\n }\n }\n }\n const colLength = arr[0].length;\n for (let x = 0; x < colLength; x++) {\n let rowSpan = 0;\n for (let y = 0; y < deep; y++) {\n if (arr[y][x] === '!$ROW_SPAN_PLACEHOLDER') {\n arr[y][x] = undefined;\n if (y + 1 === deep) {\n merges.push({ s: { r: y - rowSpan, c: x }, e: { r: y, c: x } });\n }\n rowSpan++;\n }\n else if (rowSpan > 0 && y > rowSpan) {\n merges.push({ s: { r: y - rowSpan - 1, c: x }, e: { r: y - 1, c: x } });\n rowSpan = 0;\n }\n else {\n rowSpan = 0;\n }\n }\n }\n return merges;\n },\n aoa_to_sheet(data, headerRows) {\n const ws = {};\n const range = { s: { c: 10000000, r: 10000000 }, e: { c: 0, r: 0 } };\n for (let R = 0; R !== data.length; ++R) {\n for (let C = 0; C !== data[R].length; ++C) {\n if (range.s.r > R) {\n range.s.r = R;\n }\n if (range.s.c > C) {\n range.s.c = C;\n }\n if (range.e.r < R) {\n range.e.r = R;\n }\n if (range.e.c < C) {\n range.e.c = C;\n }\n const cell = {\n v: validData(data[R][C], ''),\n s: {\n font: { name: '宋体', sz: 11, color: { auto: 1, rgb: '000000' }, bold: true },\n alignment: {\n wrapText: 1,\n horizontal: 'center',\n vertical: 'center',\n indent: 0\n }\n }\n };\n if (R < headerRows) {\n cell.s.border = {\n top: { style: 'thin', color: { rgb: 'EBEEF5' } },\n left: { style: 'thin', color: { rgb: 'EBEEF5' } },\n bottom: { style: 'thin', color: { rgb: 'EBEEF5' } },\n right: { style: 'thin', color: { rgb: 'EBEEF5' } }\n };\n cell.s.fill = {\n patternType: 'solid',\n fgColor: { theme: 3, tint: 0.3999755851924192, rgb: 'F5F7FA' },\n bgColor: { theme: 7, tint: 0.3999755851924192, rgb: 'F5F7FA' }\n };\n }\n const cell_ref = XLSX.utils.encode_cell({ c: C, r: R });\n if (typeof cell.v === 'number') {\n cell.t = 'n';\n }\n else if (typeof cell.v === 'boolean') {\n cell.t = 'b';\n }\n else {\n cell.t = 's';\n }\n ws[cell_ref] = cell;\n }\n }\n if (range.s.c < 10000000) {\n ws['!ref'] = XLSX.utils.encode_range(range);\n }\n return ws;\n },\n s2ab(s) {\n const buf = new ArrayBuffer(s.length);\n const view = new Uint8Array(buf);\n for (let i = 0; i !== s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xff;\n }\n return buf;\n },\n excel(params) {\n if (!window.XLSX) {\n packages.logs('xlsx');\n return;\n }\n return new Promise((resolve) => {\n const _params = {\n prop: []\n };\n _params.header = this.buildHeader(params.columns);\n _params.title = params.title || dayjs().format('YYYY-MM-DD HH:mm:ss');\n const callback = (list) => {\n list.forEach((ele) => {\n if (ele.children && ele.children instanceof Array) {\n callback(ele.children);\n }\n else {\n _params.prop.push(ele.prop);\n }\n });\n };\n callback(params.columns);\n _params.data = params.data.map((row) => _params.prop.map((prop) => {\n let data = row[prop];\n if (isJson(data))\n data = JSON.stringify(data);\n return data;\n }));\n const headerRows = _params.header.length;\n _params.header.push(..._params.data, []);\n const merges = this.doMerges(_params.header);\n const ws = this.aoa_to_sheet(_params.header, headerRows);\n ws['!merges'] = merges;\n ws['!freeze'] = {\n xSplit: '1',\n ySplit: '' + headerRows,\n topLeftCell: 'B' + (headerRows + 1),\n activePane: 'bottomRight',\n state: 'frozen'\n };\n ws['!cols'] = [{ wpx: 165 }];\n const workbook = {\n SheetNames: ['Sheet1'],\n Sheets: {}\n };\n workbook.Sheets.Sheet1 = ws;\n const wopts = {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary',\n cellStyles: true\n };\n const wbout = XLSX.write(workbook, wopts);\n const blob = new Blob([this.s2ab(wbout)], { type: 'application/octet-stream' });\n downFile(blob, _params.title + '.xlsx');\n resolve();\n });\n },\n xlsx(file) {\n if (!window.saveAs || !window.XLSX) {\n packages.logs('file-saver');\n packages.logs('xlsx');\n return;\n }\n const xlsx = window.XLSX;\n return new Promise((resolve) => {\n const reader = new FileReader();\n const fixdata = (data) => {\n let o = '';\n let l = 0;\n const w = 10240;\n for (; l < data.byteLength / w; ++l) {\n o += String.fromCharCode.apply(null, Array.from(new Uint8Array(data.slice(l * w, l * w + w))));\n }\n o += String.fromCharCode.apply(null, Array.from(new Uint8Array(data.slice(l * w))));\n return o;\n };\n const getHeaderRow = (sheet) => {\n const headers = [];\n const range = xlsx.utils.decode_range(sheet['!ref']);\n const R = range.s.r;\n for (let C = range.s.c; C <= range.e.c; ++C) {\n const cell = sheet[xlsx.utils.encode_cell({ c: C, r: R })];\n let hdr = 'UNKNOWN ' + C;\n if (cell && cell.t)\n hdr = xlsx.utils.format_cell(cell);\n headers.push(hdr);\n }\n return headers;\n };\n reader.onload = (e) => {\n const data = e.target.result;\n const fixedData = fixdata(data);\n const workbook = xlsx.read(btoa(fixedData), { type: 'base64' });\n const firstSheetName = workbook.SheetNames[0];\n const worksheet = workbook.Sheets[firstSheetName];\n const header = getHeaderRow(worksheet);\n const results = xlsx.utils.sheet_to_json(worksheet);\n resolve({ header, results });\n };\n reader.readAsArrayBuffer(file);\n });\n }\n};\n","const log = {};\nfunction typeColor(type = 'default') {\n let color = '';\n switch (type) {\n case 'default':\n color = '#35495E';\n break;\n case 'primary':\n color = '#3488ff';\n break;\n case 'success':\n color = '#43B883';\n break;\n case 'warning':\n color = '#e6a23c';\n break;\n case 'danger':\n color = '#f56c6c';\n break;\n default:\n break;\n }\n return color;\n}\nlog.capsule = function (title, info, type = 'primary') {\n console.log(`%c ${title} %c ${info} %c`, 'background:#35495E; padding: 1px; border-radius: 3px 0 0 3px; color: #fff;', `background:${typeColor(type)}; padding: 1px; border-radius: 0 3px 3px 0; color: #fff;`, 'background:transparent');\n};\nlog.colorful = function (textArr) {\n console.log(`%c${textArr.map((t) => t.text || '').join('%c')}`, ...textArr.map((t) => `color: ${typeColor(t.type)};`));\n};\nlog.default = function (text) {\n log.colorful([{ text }]);\n};\nlog.primary = function (text) {\n log.colorful([{ text, type: 'primary' }]);\n};\nlog.success = function (text) {\n log.colorful([{ text, type: 'success' }]);\n};\nlog.warning = function (text) {\n log.colorful([{ text, type: 'warning' }]);\n};\nlog.danger = function (text) {\n log.colorful([{ text, type: 'danger' }]);\n};\nexport default log;\n","const Print = function (dom, options) {\n if (!(this instanceof Print))\n return new Print(dom, options);\n this.options = this.extend({\n noPrint: '.no-print',\n }, options);\n if (typeof dom === 'string') {\n this.dom = document.querySelector(dom);\n }\n else {\n this.isDOM(dom);\n this.dom = this.isDOM(dom) ? dom : dom.$el;\n }\n this.init();\n};\nPrint.prototype = {\n init: function () {\n const content = this.getStyle() + this.getHtml();\n this.writeIframe(content);\n },\n extend: function (obj, obj2) {\n for (const k in obj2) {\n obj[k] = obj2[k];\n }\n return obj;\n },\n getStyle: function () {\n let str = '';\n const styles = document.querySelectorAll('style,link');\n for (let i = 0; i < styles.length; i++) {\n str += styles[i].outerHTML;\n }\n str += `<style>${this.options.noPrint ? this.options.noPrint : '.no-print'}{display:none;}</style>`;\n return str;\n },\n getHtml: function () {\n const inputs = document.querySelectorAll('input');\n const textareas = document.querySelectorAll('textarea');\n const selects = document.querySelectorAll('select');\n for (let k = 0; k < inputs.length; k++) {\n const input = inputs[k];\n if (input.type == 'checkbox' || input.type == 'radio') {\n if (input.checked == true) {\n input.setAttribute('checked', 'checked');\n }\n else {\n input.removeAttribute('checked');\n }\n }\n else {\n input.setAttribute('value', input.value);\n }\n }\n for (let k2 = 0; k2 < textareas.length; k2++) {\n if (textareas[k2].type == 'textarea') {\n textareas[k2].innerHTML = textareas[k2].value;\n }\n }\n for (let k3 = 0; k3 < selects.length; k3++) {\n if (selects[k3].type == 'select-one') {\n const child = selects[k3].children;\n for (const i in child) {\n const option = child[i];\n if (option && option.tagName == 'OPTION') {\n if (option.selected == true) {\n option.setAttribute('selected', 'selected');\n }\n else {\n option.removeAttribute('selected');\n }\n }\n }\n }\n }\n return this.wrapperRefDom(this.dom).outerHTML;\n },\n wrapperRefDom: function (refDom) {\n let prevDom = null;\n let currDom = refDom;\n if (!this.isInBody(currDom))\n return currDom;\n while (currDom) {\n if (prevDom) {\n const element = currDom.cloneNode(false);\n element.appendChild(prevDom);\n prevDom = element;\n }\n else {\n prevDom = currDom.cloneNode(true);\n }\n currDom = currDom.parentElement;\n }\n return prevDom;\n },\n writeIframe: function (content) {\n let w;\n let doc;\n const iframe = document.createElement('iframe');\n const f = document.body.appendChild(iframe);\n iframe.id = 'myIframe';\n iframe.setAttribute('style', 'position:absolute;width:0;height:0;top:-10px;left:-10px;');\n w = f.contentWindow || f.contentDocument;\n doc = f.contentDocument || f.contentWindow.document;\n doc.open();\n doc.write(content);\n doc.close();\n const _this = this;\n iframe.onload = function () {\n _this.toPrint(w);\n setTimeout(function () {\n document.body.removeChild(iframe);\n }, 100);\n };\n },\n toPrint: function (frameWindow) {\n try {\n setTimeout(function () {\n frameWindow.focus();\n try {\n if (!frameWindow.document.execCommand('print', false, null)) {\n frameWindow.print();\n }\n }\n catch (e) {\n frameWindow.print();\n }\n frameWindow.close();\n }, 10);\n }\n catch (err) {\n console.log('err', err);\n }\n },\n isInBody: function (node) {\n return node === document.body ? false : document.body.contains(node);\n },\n isDOM: typeof HTMLElement === 'object'\n ? function (obj) {\n return obj instanceof HTMLElement;\n }\n : function (obj) {\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n },\n};\nexport default Print;\n","export const getToken = (accessKey, secretKey, putPolicy) => {\n const putPolicyString = JSON.stringify(putPolicy);\n __ENV__ === 'development' && console && console.log('put_policy = ', putPolicyString);\n const encoded = base64encode(utf16to8(putPolicyString));\n __ENV__ === 'development' && console && console.log('encoded = ', encoded);\n const hash = CryptoJS.HmacSHA1(encoded, secretKey);\n const encodedSigned = hash.toString(CryptoJS.enc.Base64);\n __ENV__ === 'development' && console && console.log('encoded_signed=', encodedSigned);\n const uploadToken = accessKey + ':' + safe64(encodedSigned) + ':' + encoded;\n __ENV__ === 'development' && console && console.log('upload_token=', uploadToken);\n return uploadToken;\n};\nfunction utf16to8(str) {\n let out = '';\n const len = str.length;\n let c;\n for (let i = 0; i < len; i++) {\n c = str.charCodeAt(i);\n if (c >= 0x0001 && c <= 0x007f) {\n out += str.charAt(i);\n }\n else if (c > 0x07ff) {\n out += String.fromCharCode(0xe0 | ((c >> 12) & 0x0f));\n out += String.fromCharCode(0x80 | ((c >> 6) & 0x3f));\n out += String.fromCharCode(0x80 | (c & 0x3f));\n }\n else {\n out += String.fromCharCode(0xc0 | ((c >> 6) & 0x1f));\n out += String.fromCharCode(0x80 | (c & 0x3f));\n }\n }\n return out;\n}\nconst base64EncodeChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';\nconst base64DecodeChars = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57,\n 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,\n 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,\n 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1,\n];\nfunction base64encode(str) {\n let out = '';\n const len = str.length;\n let i = 0;\n let c1;\n let c2;\n let c3;\n while (i < len) {\n c1 = str.charCodeAt(i++) & 0xff;\n if (i == len) {\n out += base64EncodeChars.charAt(c1 >> 2);\n out += base64EncodeChars.charAt((c1 & 0x3) << 4);\n out += '==';\n break;\n }\n c2 = str.charCodeAt(i++);\n if (i == len) {\n out += base64EncodeChars.charAt(c1 >> 2);\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));\n out += base64EncodeChars.charAt((c2 & 0xf) << 2);\n out += '=';\n break;\n }\n c3 = str.charCodeAt(i++);\n out += base64EncodeChars.charAt(c1 >> 2);\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xf0) >> 4));\n out += base64EncodeChars.charAt(((c2 & 0xf) << 2) | ((c3 & 0xc0) >> 6));\n out += base64EncodeChars.charAt(c3 & 0x3f);\n }\n return out;\n}\nconst safe64 = function (base64) {\n base64 = base64.replace(/\\+/g, '-');\n base64 = base64.replace(/\\//g, '_');\n return base64;\n};\nvoid base64DecodeChars;\n","import packages from 'core/packages';\nexport default function (doc, option = {}) {\n if (!window.html2canvas) {\n packages.logs('Screenshot');\n return;\n }\n return window.html2canvas(doc, option);\n}\n","export default class RecordVideo {\n constructor(videoObj) {\n this.video = videoObj;\n this.mediaRecorder = null;\n this.chunks = [];\n }\n init() {\n return new Promise((resolve, reject) => {\n navigator.mediaDevices\n .getUserMedia({\n audio: true,\n video: true,\n })\n .then((stream) => {\n if ('srcObject' in this.video) {\n this.video.srcObject = stream;\n }\n else {\n this.video.src = window.URL.createObjectURL(stream);\n }\n this.video.addEventListener('loadmetadata', () => {\n this.video.play();\n });\n this.mediaRecorder = new MediaRecorder(stream);\n this.mediaRecorder.addEventListener('dataavailable', (e) => {\n this.chunks.push(e.data);\n });\n resolve();\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n startRecord() {\n if (this.mediaRecorder && this.mediaRecorder.state === 'inactive') {\n this.mediaRecorder.start();\n }\n }\n stopRecord() {\n if (this.mediaRecorder && this.mediaRecorder.state === 'recording') {\n this.mediaRecorder.stop();\n }\n }\n isSupport() {\n const flag = navigator.mediaDevices && navigator.mediaDevices.getUserMedia;\n if (flag) {\n return true;\n }\n return false;\n }\n}\n","import WaterMark from './watermark';\nimport { dataURLtoFile } from 'utils/util';\nlet canvas;\nlet ctx;\nconst configDefault = {\n width: 200,\n height: 200,\n};\nconst config = {\n text: 'avueJS',\n fontFamily: 'microsoft yahei',\n color: '#999',\n fontSize: 16,\n opacity: 100,\n bottom: 10,\n right: 10,\n ratio: 1,\n};\nexport default function (opt = {}) {\n return new WaterMark(opt);\n}\nexport function detailImg(file, option = {}) {\n return new Promise((resolve) => {\n const { text, fontFamily, color, fontSize, opacity, bottom, right, ratio } = option;\n initParams();\n fileToBase64(file, initImg);\n function initParams() {\n config.text = text || config.text;\n config.fontFamily = fontFamily || config.fontFamily;\n config.color = color || config.color;\n config.fontSize = fontSize || config.fontSize;\n config.opacity = opacity || config.opacity;\n config.bottom = bottom || config.bottom;\n config.right = right || config.right;\n config.ratio = ratio || config.ratio;\n }\n function initImg(data) {\n const img = new Image();\n img.src = data;\n img.onload = function () {\n const width = img.width;\n const height = img.height;\n cretedCanvas(width, height);\n ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(img, 0, 0, width, height);\n setText(width, height);\n const currentCanvas = document.getElementById('canvas');\n resolve(dataURLtoFile(currentCanvas.toDataURL(file.type, config.ratio), file.name));\n };\n }\n function cretedCanvas(width, height) {\n canvas = document.getElementById('canvas');\n if (canvas === null) {\n canvas = document.createElement('canvas');\n canvas.id = 'canvas';\n canvas.className = 'avue-canvas';\n document.body.appendChild(canvas);\n }\n ctx = canvas.getContext('2d');\n canvas.width = width;\n canvas.height = height;\n }\n function setText(width, height) {\n const txt = config.text;\n const param = calcParam(txt, width, height);\n if (!ctx)\n return;\n ctx.font = param.fontSize + 'px ' + config.fontFamily;\n ctx.fillStyle = config.color;\n ctx.globalAlpha = config.opacity / 100;\n ctx.fillText(txt, param.x, param.y);\n }\n function calcParam(txt, width, height) {\n let x;\n let y;\n const calcFontSize = config.fontSize / configDefault.width;\n const fontSize = calcFontSize * width;\n if (config.bottom) {\n y = configDefault.height - config.bottom;\n }\n else {\n y = config.top;\n }\n if (config.right) {\n x = configDefault.width - config.right;\n }\n else {\n x = config.left;\n }\n if (!ctx) {\n return { x: 0, y: 0, fontSize };\n }\n ctx.font = config.fontSize + 'px ' + config.fontFamily;\n const txtWidth = Number(ctx.measureText(txt).width);\n x = x - txtWidth;\n const calcPosX = x / configDefault.width;\n const calcPosY = y / configDefault.height;\n x = calcPosX * width;\n y = calcPosY * height;\n return {\n x,\n y,\n fontSize,\n };\n }\n function fileToBase64(rawFile, callback) {\n const reader = new FileReader();\n reader.readAsDataURL(rawFile);\n reader.onload = function (e) {\n var _a;\n callback((_a = e.target) === null || _a === void 0 ? void 0 : _a.result);\n };\n }\n });\n}\n","import { randomId } from 'utils/util';\nclass WaterMark {\n constructor(opt = {}) {\n this.CONTAINERID = randomId();\n this.drawCanvas = this.drawCanvas.bind(this);\n this.parentObserver = this.parentObserver.bind(this);\n this.Repaint = this.Repaint.bind(this);\n this.styleStr = '';\n this.isOberserve = false;\n this.init(opt);\n this.drawCanvas();\n this.parentObserver();\n }\n init(opt) {\n this.option = Object.assign({\n width: 400,\n height: 200,\n text: 'avueJS',\n fontSize: '30px',\n fontStyle: 'microsoft yahei',\n textAlign: 'center',\n color: 'rgba(100,100,100,0.15)',\n degree: -20,\n }, opt);\n }\n drawCanvas() {\n this.isOberserve = true;\n const divContainer = document.createElement('div');\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n divContainer.id = this.CONTAINERID;\n canvas.width = this.option.width;\n canvas.height = this.option.height;\n if (!context)\n return;\n context.font = `${this.option.fontSize} ${this.option.fontStyle}`;\n context.textAlign = this.option.textAlign;\n context.fillStyle = this.option.color;\n context.translate(canvas.width / 2, canvas.height / 2);\n context.rotate((this.option.degree * Math.PI) / 180);\n context.fillText(this.option.text, 0, 0);\n const backgroundUrl = canvas.toDataURL('image/png');\n const flag = this.option.id;\n let el = null;\n if (flag)\n el = document.getElementById(flag);\n this.styleStr = `\n position:${flag ? 'absolute' : 'fixed'};\n top:0;\n left:0;\n width:${flag && el ? el.offsetWidth + 'px' : '100%'};\n height:${flag && el ? el.offsetHeight + 'px' : '100%'};\n z-index:9999;\n pointer-events:none;\n background-repeat:repeat;\n background-image:url('${backgroundUrl}')`;\n divContainer.setAttribute('style', this.styleStr);\n if (flag && el) {\n el.appendChild(divContainer);\n }\n else {\n document.body.appendChild(divContainer);\n }\n this.wmObserver(divContainer);\n this.isOberserve = false;\n }\n wmObserver(divContainer) {\n const wmConf = { attributes: true, childList: true, characterData: true };\n const wmObserver = new MutationObserver((mo) => {\n if (!this.isOberserve) {\n const target = mo[0].target;\n target.setAttribute('style', this.styleStr);\n target.setAttribute('id', this.CONTAINERID);\n wmObserver.takeRecords();\n }\n });\n wmObserver.observe(divContainer, wmConf);\n }\n parentObserver() {\n var _a;\n const bodyObserver = new MutationObserver(() => {\n if (!this.isOberserve) {\n const wm = document.querySelector(`#${this.CONTAINERID}`);\n if (!wm) {\n this.drawCanvas();\n }\n else if (wm.getAttribute('style') !== this.styleStr) {\n wm.setAttribute('style', this.styleStr);\n }\n }\n });\n const parentNode = (_a = document.querySelector(`#${this.CONTAINERID}`)) === null || _a === void 0 ? void 0 : _a.parentNode;\n if (parentNode) {\n bodyObserver.observe(parentNode, { childList: true });\n }\n }\n Repaint(opt = {}) {\n this.remove();\n this.init(opt);\n this.drawCanvas();\n }\n remove() {\n var _a;\n this.isOberserve = true;\n const wm = document.querySelector(`#${this.CONTAINERID}`);\n (_a = wm === null || wm === void 0 ? void 0 : wm.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(wm);\n }\n}\nexport default WaterMark;\n","import DataTabs from 'packages/data/tabs';\nimport DataCardText from 'packages/data/cardText';\nimport DataBox from 'packages/data/box';\nimport DataProgress from 'packages/data/progress';\nimport DataIcons from 'packages/data/icons';\nimport DataCard from 'packages/data/card';\nimport DataDisplay from 'packages/data/display';\nimport DataImgText from 'packages/data/imgText';\nimport DataOperaText from 'packages/data/operaText';\nimport DataRotate from 'packages/data/rotate';\nimport DataPay from 'packages/data/pay';\nimport DataPrice from 'packages/data/price';\nimport DataPanel from 'packages/data/panel';\nimport DataStatistic from 'packages/data/statistic';\nimport DataWeather from 'packages/data/weather';\nimport DataRank from 'packages/data/rank';\nimport DataProfile from 'packages/data/profile';\nimport DataProduct from 'packages/data/product';\nimport DataCountdown from 'packages/data/countdown';\nimport DataNotice from 'packages/data/notice';\nimport DataTask from 'packages/data/task';\nimport DataList from 'packages/data/list';\nimport DataDashboard from 'packages/data/dashboard';\nconst dataComponents = {\n DataTabs,\n DataCardText,\n DataBox,\n DataProgress,\n DataIcons,\n DataCard,\n DataDisplay,\n DataImgText,\n DataOperaText,\n DataRotate,\n DataPay,\n DataPrice,\n DataPanel,\n DataStatistic,\n DataWeather,\n DataRank,\n DataProfile,\n DataProduct,\n DataCountdown,\n DataNotice,\n DataTask,\n DataList,\n DataDashboard,\n};\nexport default dataComponents;\n","import CountUp from 'packages/element-plus/count-up';\nimport Article from 'packages/element-plus/article';\nimport Crud from 'packages/element-plus/crud';\nimport Card from 'packages/element-plus/card';\nimport Chat from 'packages/element-plus/chat';\nimport Comment from 'packages/element-plus/comment';\nimport Form from 'packages/element-plus/form';\nimport Checkbox from 'packages/element-plus/checkbox';\nimport Date from 'packages/element-plus/date';\nimport Draggable from 'packages/element-plus/draggable';\nimport Flow from 'packages/element-plus/flow';\nimport Group from 'packages/element-plus/group';\nimport License from 'packages/element-plus/license';\nimport Time from 'packages/element-plus/time';\nimport Input from 'packages/element-plus/input';\nimport Radio from 'packages/element-plus/radio';\nimport Select from 'packages/element-plus/select';\nimport Cascader from 'packages/element-plus/cascader';\nimport InputColor from 'packages/element-plus/input-color';\nimport InputNumber from 'packages/element-plus/input-number';\nimport InputTree from 'packages/element-plus/input-tree';\nimport InputMap from 'packages/element-plus/input-map';\nimport InputIcon from 'packages/element-plus/input-icon';\nimport InputTag from 'packages/element-plus/input-tag';\nimport InputTable from 'packages/element-plus/input-table';\nimport InputCron from 'packages/element-plus/input-cron';\nimport Mention from 'packages/element-plus/mention';\nimport Verifys from 'packages/element-plus/verify';\nimport Switchs from 'packages/element-plus/switch';\nimport Rate from 'packages/element-plus/rate';\nimport Upload from 'packages/element-plus/upload';\nimport Sign from 'packages/element-plus/sign';\nimport Slider from 'packages/element-plus/slider';\nimport Tree from 'packages/element-plus/tree';\nimport Title from 'packages/element-plus/title';\nimport Search from 'packages/element-plus/search';\nimport Tabs from 'packages/element-plus/tabs';\nimport Dynamic from 'packages/element-plus/dynamic';\nimport Video from 'packages/element-plus/video';\nimport Login from 'packages/element-plus/login';\nimport Arrays from 'packages/element-plus/array';\nimport textEllipsis from 'packages/element-plus/text-ellipsis';\nconst elementComponents = {\n Arrays,\n Article,\n Crud,\n Card,\n Chat,\n Comment,\n Form,\n Checkbox,\n Date,\n CountUp,\n Draggable,\n Flow,\n Group,\n License,\n Time,\n Input,\n Radio,\n Select,\n Cascader,\n InputColor,\n InputNumber,\n InputTree,\n InputIcon,\n InputMap,\n InputTag,\n InputTable,\n InputCron,\n Mention,\n Switchs,\n Rate,\n Upload,\n Slider,\n Tree,\n Title,\n Search,\n Tabs,\n Dynamic,\n Video,\n Verifys,\n textEllipsis,\n Sign,\n Login,\n};\nexport default elementComponents;\n","import Element from './element-plus/';\nimport Data from './data/';\nconst components = { ...Element, ...Data };\nexport default components;\n","const ELEMENT = '__';\nconst MODS = '--';\nconst join = (name, el, symbol) => (el ? name + symbol + el : name);\nconst prefix = (name, mods) => {\n if (typeof mods === 'string') {\n return join(name, mods, MODS);\n }\n if (Array.isArray(mods)) {\n return mods.map((item) => prefix(name, item));\n }\n const ret = {};\n Object.keys(mods || {}).forEach((key) => {\n ret[name + MODS + key] = mods[key];\n });\n return ret;\n};\nexport default {\n methods: {\n b(el, mods) {\n const { name } = this.$options;\n if (el && typeof el !== 'string') {\n mods = el;\n el = '';\n }\n el = join(name, el, ELEMENT);\n return mods ? [el, prefix(el, mods)] : el;\n },\n },\n};\n","import packages from 'core/packages';\nexport default (column, dicData, defaultForm, run) => {\n if (!run)\n return;\n const win = window;\n if (!win.Mock) {\n packages.logs('mock');\n return;\n }\n const mockjs = win.Mock;\n const Random = (mockjs || {}).Random;\n const form = {};\n function createName({ en }) {\n if (en) {\n return Random.name(true);\n }\n return Random.cname();\n }\n function createImage({ size, text, base64 }) {\n const imageSize = size || Random.natural(200, 400);\n const textColor = text ? '#000000' : Random.color();\n const bgColor = text ? '#ffffff' : Random.color();\n if (base64) {\n return Random.dataImage(imageSize, text);\n }\n return Random.image(imageSize, bgColor, textColor, 'png', text || Random.name());\n }\n function createId({ uuid }) {\n if (uuid) {\n return mockjs.mock('@guid');\n }\n return mockjs.mock('@id');\n }\n function createTel() {\n return mockjs.mock(/^1[3-9]\\d{9}$/);\n }\n function createNumber({ max, min, precision }) {\n if (precision) {\n const number = Random.float(min, max, precision) + '';\n const index = number.indexOf('.') + 1;\n return Number(number.substring(0, index + precision));\n }\n return Random.integer(min, max);\n }\n function createUrl({ header }) {\n let url = Random.url();\n const index = url.indexOf('://');\n if (header === false) {\n url = url.substring(index + 3);\n }\n else {\n url = 'http://' + url.substring(index + 3);\n }\n return url;\n }\n function createDatetime({ format, now }) {\n if (now) {\n return Random.now(format);\n }\n return Random.datetime(format);\n }\n function createText({ min, max }) {\n return Random.csentence(min, max);\n }\n function createCounty() {\n return Random.county(true);\n }\n function createDic({ dic, props, columnType, multiple }) {\n const value = props.value || 'value';\n const len = dic.length;\n if (len === 0)\n return;\n if (['checkbox'].includes(columnType) || multiple) {\n const number = createNumber({\n min: 1,\n max: len,\n });\n const result = [];\n for (let i = 0; i < number; i++) {\n let flag = true;\n while (flag) {\n const numbers = createNumber({\n min: 0,\n max: len - 1,\n });\n const values = dic[numbers][value];\n if (!result.includes(values)) {\n result.push(values);\n flag = false;\n }\n }\n }\n return result;\n }\n const number = createNumber({\n min: 0,\n max: len - 1,\n });\n return dic[number][value];\n }\n function create() {\n Object.keys(column).forEach((index) => {\n const ele = column[index];\n const isObject = typeof ele.mock === 'object';\n const params = isObject ? ele.mock || {} : {};\n params.dic = dicData[ele.prop] || [];\n params.props = ele.props || {};\n params.columnType = ele.type;\n params.multiple = ele.multiple;\n const dataGenerator = {\n name: createName,\n number: createNumber,\n datetime: createDatetime,\n word: createText,\n tel: createTel,\n id: createId,\n image: createImage,\n url: createUrl,\n county: createCounty,\n dic: createDic,\n };\n if (isObject && dataGenerator[params.type]) {\n if (params.array) {\n form[ele.prop] = Array.from({ length: params.array }, () => dataGenerator[params.type](params));\n }\n else {\n form[ele.prop] = dataGenerator[params.type](params);\n }\n }\n else if (ele.mock instanceof Function) {\n form[ele.prop] = ele.mock(defaultForm, mockjs);\n }\n });\n }\n create();\n return form;\n};\n","import { validatenull } from './validate';\nimport { CHILDREN_LIST, DIC_PROPS, typeList } from 'global/variable';\nimport _get from 'lodash/get';\nimport _set from 'lodash/set';\nimport _cloneDeep from 'lodash/cloneDeep';\nexport const isMediaType = (url, type) => {\n if (validatenull(url))\n return;\n if (typeList.audio.test(url) || typeList.audio.test(type) || type == 'audio') {\n return 'audio';\n }\n else if (typeList.video.test(url) || typeList.video.test(type) || type == 'video') {\n return 'video';\n }\n else if (typeList.img.test(url) || typeList.img.test(type) || type == 'img') {\n return 'img';\n }\n return;\n};\nexport const uuid = () => {\n const s = [];\n const hexDigits = '0123456789abcdef';\n for (let i = 0; i < 36; i++) {\n s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\n }\n s[14] = '4';\n s[19] = hexDigits.substr(((s[19] & 0x3) | 0x8), 1);\n s[8] = s[13] = s[18] = s[23] = '-';\n return s.join('');\n};\nexport function getFixed(val = 0, len = 2) {\n return Number(val.toFixed(len));\n}\nexport function getAsVal(obj, bind = '') {\n const result = deepClone(obj);\n if (validatenull(bind))\n return result;\n return _get(obj, bind);\n}\nexport function setAsVal(obj, bind = '', value) {\n _set(obj, bind, value);\n return obj;\n}\nexport const loadScript = (type = 'js', url, dom = 'body') => {\n let flag = false;\n return new Promise((resolve) => {\n const head = dom == 'head' ? document.getElementsByTagName('head')[0] : document.body;\n for (let i = 0; i < head.children.length; i++) {\n const ele = head.children[i];\n if ((ele.src || '').indexOf(url) !== -1) {\n flag = true;\n resolve();\n }\n }\n if (flag)\n return;\n let script;\n if (type === 'js') {\n script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url || '';\n }\n else {\n script = document.createElement('link');\n script.rel = 'stylesheet';\n script.type = 'text/css';\n script.href = url || '';\n }\n head.appendChild(script);\n script.onload = function () {\n resolve();\n };\n });\n};\nexport function downFile(url, saveName) {\n if (typeof url === 'object' && url instanceof Blob) {\n url = URL.createObjectURL(url);\n }\n const aLink = document.createElement('a');\n aLink.href = url;\n aLink.download = saveName || '';\n let event;\n if (window.MouseEvent) {\n event = new MouseEvent('click');\n }\n else {\n event = document.createEvent('MouseEvents');\n event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n }\n aLink.dispatchEvent(event);\n}\nexport function extend(...args) {\n let target = args[0] || {};\n let deep = false;\n const arr = Array.prototype.slice.call(args);\n let i = 1;\n let options;\n let src;\n let key;\n let copy;\n let isArray = false;\n if (typeof target === 'boolean') {\n deep = target;\n i++;\n target = args[1];\n }\n for (; i < arr.length; i++) {\n if ((options = arr[i]) != null) {\n for (key in options) {\n copy = options[key];\n src = target[key];\n if (deep &&\n (Object.prototype.toString.call(copy) === '[object Object]' ||\n (isArray = Object.prototype.toString.call(copy) == '[object Array]'))) {\n if (isArray) {\n src = Object.prototype.toString.call(src) === '[object Array]' ? src : [];\n }\n else {\n src = Object.prototype.toString.call(src) === '[object Object]' ? src : {};\n }\n target[key] = extend(deep, src, copy);\n }\n else if (copy !== undefined && copy !== src) {\n target[key] = copy;\n }\n }\n }\n }\n return target;\n}\nexport function createObj(obj, bind) {\n const list = bind.split('.');\n const first = list.splice(0, 1)[0];\n const deep = {};\n deep[first] = {};\n if (list.length >= 2) {\n let start = '{';\n let end = '}';\n let result = '';\n list.forEach((ele) => {\n result = `${result}${start}\"${ele}\":`;\n });\n result = `${result}\"\"`;\n for (let i = 0; i < list.length; i++) {\n result = `${result}${end}`;\n }\n deep[first] = JSON.parse(result);\n }\n obj = extend(true, obj, deep);\n return obj;\n}\nexport function dataURLtoFile(dataurl, filename) {\n var _a;\n const arr = dataurl.split(',');\n const mime = ((_a = arr[0].match(/:(.*?);/)) === null || _a === void 0 ? void 0 : _a[1]) || '';\n const bstr = atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n return new File([u8arr], filename, { type: mime });\n}\nexport function findObject(list = [], value, prop = 'prop') {\n const props = { value: prop };\n let result = findNode(list, props, value);\n if (result)\n return result;\n for (const ele of list) {\n const column = ele.column ||\n (ele.children && CHILDREN_LIST.includes(ele.type) ? ele.children.column : null);\n if (column) {\n result = findNode(column, props, value);\n if (result)\n return result;\n }\n }\n return result;\n}\nexport function randomId() {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n const maxPos = chars.length;\n let id = '';\n for (let i = 0; i < 16; i++) {\n id += chars.charAt(Math.floor(Math.random() * maxPos));\n }\n return id;\n}\nexport const getObjType = (obj) => {\n const map = {\n '[object Boolean]': 'boolean',\n '[object Number]': 'number',\n '[object String]': 'string',\n '[object Function]': 'function',\n '[object Array]': 'array',\n '[object Date]': 'date',\n '[object RegExp]': 'regExp',\n '[object Undefined]': 'undefined',\n '[object Null]': 'null',\n '[object Object]': 'object',\n };\n if (obj instanceof Element) {\n return 'element';\n }\n return map[Object.prototype.toString.call(obj)];\n};\nexport const isJson = (str) => {\n if (Array.isArray(str)) {\n return str[0] instanceof Object;\n }\n else if (str instanceof Object) {\n return true;\n }\n return false;\n};\nexport const deepClone = (data) => {\n return _cloneDeep(data);\n};\nexport const getColumn = (column) => {\n let columnList = [];\n if (Array.isArray(column)) {\n columnList = column;\n }\n else {\n for (const o in column) {\n column[o].prop = o;\n columnList.push(column[o]);\n }\n }\n return columnList;\n};\nexport const setPx = (val, defval = '') => {\n if (validatenull(val))\n val = defval;\n if (validatenull(val))\n return '';\n val = val + '';\n if (val.indexOf('%') === -1) {\n val = val + 'px';\n }\n return val;\n};\nexport const detailDataType = (value, type) => {\n if (validatenull(value))\n return value;\n if (type === 'number') {\n return Number(value);\n }\n else if (type === 'string') {\n return value + '';\n }\n else {\n return value;\n }\n};\nexport const getDicValue = (list, value, props = {}) => {\n if (validatenull(list))\n return value;\n const isArray = Array.isArray(value);\n value = isArray ? value : [value];\n const result = [];\n const labelKey = props[DIC_PROPS.label] || DIC_PROPS.label;\n const groupsKey = props[DIC_PROPS.groups] || DIC_PROPS.groups;\n let dic = deepClone(list);\n dic.forEach((ele) => {\n if (ele[groupsKey]) {\n dic = dic.concat(ele[groupsKey]);\n delete ele[groupsKey];\n }\n });\n value.forEach((val) => {\n if (Array.isArray(val)) {\n const arrayResult = [];\n val.forEach((arrayVal) => {\n const obj = findNode(dic, props, arrayVal) || {};\n arrayResult.push(obj[labelKey] || arrayVal);\n });\n result.push(arrayResult);\n }\n else {\n const obj = findNode(dic, props, val) || {};\n result.push(obj[labelKey] || val);\n }\n });\n return isArray ? result : result.join('');\n};\nexport const filterParams = (form, list = ['', '$'], deep = true) => {\n const data = deep ? deepClone(form) : form;\n for (const o in data) {\n if (list.includes('')) {\n if (validatenull(data[o]))\n delete data[o];\n }\n if (list.includes('$')) {\n if (o.indexOf('$') !== -1)\n delete data[o];\n }\n }\n return data;\n};\nexport const findArray = (list = [], value, valueKey = DIC_PROPS.value, index = false) => {\n if (index) {\n return list.findIndex((ele) => ele[valueKey] == value);\n }\n return list.find((ele) => ele[valueKey] == value);\n};\nexport const findNode = (list = [], props = {}, value) => {\n const valueKey = props.value || DIC_PROPS.value;\n const childrenKey = props.children || DIC_PROPS.children;\n for (const ele of list) {\n if (ele[valueKey] === value) {\n return ele;\n }\n const children = ele[childrenKey];\n if (Array.isArray(children)) {\n const node = findNode(children, props, value);\n if (node)\n return node;\n }\n }\n return undefined;\n};\nexport const getPasswordChar = (result = '', char) => {\n const len = result.toString().length;\n result = '';\n for (let i = 0; i < len; i++) {\n result = result + char;\n }\n return result;\n};\nexport const arraySort = (list = [], prop, callback) => {\n return list\n .filter((ele) => !validatenull(ele[prop]))\n .sort((a, b) => callback(a, b))\n .concat(list.filter((ele) => validatenull(ele[prop])));\n};\nexport const blankVal = (value) => {\n if (validatenull(value))\n return value;\n const type = getObjType(value);\n if (type === 'array')\n value = [];\n else if (type === 'object')\n value = {};\n else if (['number', 'boolean'].includes(type))\n value = undefined;\n else\n value = '';\n return value;\n};\nexport const clearVal = (obj, propList, list = []) => {\n if (!obj)\n return {};\n propList.forEach((ele) => {\n if (list.includes(ele))\n return;\n else if (ele.includes('$'))\n delete obj[ele];\n else if (!validatenull(obj[ele])) {\n obj[ele] = blankVal(obj[ele]);\n }\n });\n return obj;\n};\nexport const validData = (val, dafult) => {\n if (typeof val === 'boolean') {\n return val;\n }\n return !validatenull(val) ? val : dafult;\n};\n","export function validatenull(val) {\n if (val instanceof Date || typeof val === 'boolean' || typeof val === 'number') {\n return false;\n }\n if (Array.isArray(val)) {\n return val.length === 0;\n }\n if (val instanceof Object) {\n for (const key in val) {\n return false;\n }\n return true;\n }\n return (val === 'null' ||\n val == null ||\n val === 'undefined' ||\n val === '');\n}\n","export const version = '3.8.4';\n","module.exports = __WEBPACK_EXTERNAL_MODULE__element_plus_icons_vue__;","module.exports = __WEBPACK_EXTERNAL_MODULE_axios__;","module.exports = __WEBPACK_EXTERNAL_MODULE_element_plus__;","module.exports = __WEBPACK_EXTERNAL_MODULE_vue__;"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC2CA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnLA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1CA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3CA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACOA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvDA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1CA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7CA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5FA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9BA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACiEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhCA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA;AAAA;AAAA;AA2BA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/dA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5DA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrEA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;AC5DA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5DA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACmIA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAKA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC7TA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAGA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;;;;;;;;;;;AC9EA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1EA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3IA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AAOA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChQA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC6JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA4CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAcA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAGA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACt5BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3MA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7DA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACnWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChUA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClTA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAKA;AACA;AAEA;AAEA;AACA;AAAA;AAEA;AACA;AAEA;AAEA;AACA;AACA;AACA;AAAA;AAEA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AAIA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAMA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAEA;;;;;;;;;;;;;ACj5BA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7DA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAyCA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AAAA;AAAA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAMA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjTA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3EA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrRA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AAEA;AAEA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtPA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtBA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACGA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpuCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3EA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpKA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjGA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtBA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxRA;AAAA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3CA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;;;;;;;;;;;ACjDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpEA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAGA;;;;;;;;;;;;;AC+EA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AAAA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAGA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1sBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ArFTA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;AAEA;AADA;;AAAA;;AAOA;AAJA;;AAAA;AACA;AACA;AACA;AAEA;;AAAA;AAAA;;;;;AAEA;AADA;;AAAA;AAEA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AAEA;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AACA;AAAA;;;;AAGA;;;AACA;AAAA;AAAA;;;;;;AAEA;;AACA;AACA;AACA;AADA;;;;;;AAKA;AAAA;AACA;AAAA;;AAEA;AACA;AACA;AACA;;AACA;;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AClDA;;;;;;;AAHA;AAAA;;AAAA;;AAEA;AAAA;AAEA;;AAEA;AAAA;;AACA;AACA;;AACA;AAAA;;;;AAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;ACyCA;AACA;AACA;;;;;;;;;;;;;;;;;;AAvDA;AAAA;;AAEA;AADA;;AAAA;AAEA;;;AACA;AAAA;AACA;;AACA;;AAIA;AAFA;;AAAA;AACA;;AAEA;;;AAIA;AAFA;;AAAA;AACA;;AAEA;;;AAEA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AADA;AAAA;AAAA;AAEA;;AACA;AAQA;AARA;;AAAA;AACA;AACA;AACA;;AACA;AACA;AACA;AAGA;;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;;;;;;;;;;AAMA;AACA;AACA;AAAA;AAAA;;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACpEA;AAOA;;AAUA;AAMA;AACA;;;;;;;AAxBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;;AACA;AACA;AAAA;;;;;AAGA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;AAOA;;;;;;;;AAPA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AAAA;AACA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;AAOA;;AAIA;AAGA;AACA;AACA;;;;;AAhBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAGA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;;;AAQA;;AACA;;;AACA;;AACA;AACA;;;AAEA;;AACA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;;;AAGA;;;;;;;AA9BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;;AACA;AACA;AAAA;AACA;AACA;;;AAEA;AAAA;;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;AAQA;AACA;AAGA;;;AAIA;;;;AAEA;;;;AAOA;;;;;;;;;AAzBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AACA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA;AACA;AAAA;AACA;AACA;;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;;;;;AAGA;AAAA;AACA;AACA;AAAA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;;;;;;;;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;;AAYA;AAKA;AACA;;;;;;;AAlBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;;AAEA;AAAA;AACA;AACA;;AACA;AACA;AAAA;;AACA;AAAA;;;;;AAGA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;;AAYA;;AAIA;AAIA;AACA;AACA;;;;;;;;AAtBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AAAA;AACA;;;AAEA;AACA;AACA;;AAEA;AACA;AAAA;;AACA;AACA;AACA;AAAA;AAEA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;;;AACA;;AACA;;;AACA;;AAEA;;;;AAKA;;;AAIA;AACA;AACA;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;AAzBA;AACA;AAAA;AACA;AACA;AAAA;AAAA;;;;;AAEA;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;AACA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;;;;;AAEA;AACA;AACA;AACA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA;AAAA;;;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;;;AACA;;AACA;AAGA;;AAQA;AACA;;;AACA;;;;AAfA;AACA;AAAA;AACA;AACA;AAAA;;AAAA;AAAA;AAAA;;;;AAEA;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AAOA;;AAKA;AACA;AAEA;AACA;;AAIA;AAIA;AACA;AACA;;;;;AA1BA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AACA;;AAEA;AACA;AACA;AAAA;AACA;;;AAEA;AACA;AAAA;AAAA;AAEA;;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;;AASA;AACA;AAKA;AACA;AACA;;;;;;;AAjBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AACA;AACA;AAAA;;AACA;AAAA;;;;;AAGA;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AAGA;AACA;;;AA0BA;;;AAOA;;;;;;;;;;;AA5CA;AAAA;;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;;AACA;AACA;AACA;AAAA;AACA;AACA;;AACA;AACA;;AAAA;AACA;AAAA;;AAEA;AACA;;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AACA;;;AAGA;AACA;AAAA;AACA;AACA;AACA;AAAA;;AAEA;AACA;AAAA;AAAA;AACA;;AAIA;AAFA;;AAAA;AACA;AACA;AACA;AAEA;AAAA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AAAA;;;AAEA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDA;AAOA;;AAIA;AAGA;AACA;AACA;AAEA;AACA;;;;;AAnBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAGA;AACA;AACA;;AAEA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;;AASA;;AAMA;AACA;;;AACA;;;;AACA;;AAEA;;;AACA;;AAEA;AACA;AACA;;;AAGA;;;;AAGA;;;;AAEA;;;;;;AAIA;;;;;;;;;AArCA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AACA;;;AAGA;AACA;AACA;AAAA;;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;;AACA;AACA;AAAA;;;;AAEA;AACA;AACA;AAAA;;AAGA;AAAA;;AAGA;AAAA;;;AAEA;AAAA;AACA;AAAA;;AACA;AAAA;;;;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;;;;AAEA;AAAA;;AAAA;AAAA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1CA;;AAWA;;;;AAEA;;AAEA;;;AACA;;;;AACA;;;;AACA;;;;AAKA;;;;AACA;;;;AAIA;;;;AAKA;;AAEA;AACA;;;AAGA;;;;;;;;;AAvCA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;;AAAA;AAAA;;;AACA;AACA;AAAA;;AAAA;AAAA;;AACA;;AAEA;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;;;AAEA;AAAA;AACA;AACA;;;;;AAGA;AAAA;AACA;AAAA;AAAA;AAAA;;AACA;AACA;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CA;AAOA;;AAIA;;;;;;;;;AAXA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AAAA;AACA;;;AAEA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;;;AACA;;AACA;AAEA;;;;;;AASA;;;AAGA;AACA;;;AACA;;AAEA;;;AAIA;;;;AAEA;;;;;;;AA1BA;AACA;AAAA;AACA;;;AAEA;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;;AACA;AAAA;AACA;;AAEA;AAAA;AACA;AAAA;AAAA;;;;AAEA;AACA;AACA;AAAA;;;AAEA;AACA;AAAA;AACA;AACA;;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;AASA;AAKA;;AAQA;AACA;;;;;;;;AAvBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;;AACA;AAAA;;;;;AAGA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBA;;;;AAUA;;AAGA;AACA;;;AAEA;;;;AAIA;;;;AAEA;;AAIA;;;AACA;;;;;;;;AA3BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AAAA;;;;AAEA;AACA;AACA;AAAA;AAAA;;AACA;AAAA;;AACA;AAAA;AACA;AACA;;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;;AAYA;AAIA;AAMA;AAIA;AACA;;;;;;AA3BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AAAA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;;;AACA;;AACA;AACA;AAEA;AAGA;AAMA;AACA;;;AACA;;;;AACA;;;;;;;;AAjBA;AACA;AAAA;AACA;AACA;;;AAEA;AACA;AAAA;AAAA;AAAA;;;AAEA;AACA;AAAA;AAAA;AAEA;;AAEA;AAAA;AAAA;AAAA;;AACA;AACA;AACA;AAAA;AACA;AAAA;;AACA;AAAA;;AAAA;AAAA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;;AAUA;AACA;AACA;AAEA;AACA;AAGA;AACA;AAIA;AACA;;;AACA;;;;AAEA;;;;;;;AA3BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AAAA;;;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;AAAA;;AAKA;AAJA;;AAAA;AACA;AACA;AACA;AAEA;AACA;;;AACA;AAAA;AAAA;AAEA;;AACA;AAAA;;AACA;AAAA;AACA;;AACA;AAIA;AAHA;;AAAA;AACA;AACA;AAEA;;AAIA;AAFA;;AAAA;AACA;AAEA;;AAAA;AAAA;;;;;;AAEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAEA;AAAA;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CA;AAAA;;AACA;AAAA;;AAEA;AADA;;AAAA;AAEA;;;AAEA;AADA;;AAAA;AAEA;;;;AAIA;AAFA;;AAAA;AACA;;;AAGA;AADA;;AAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdA;AAAA;;AACA;AAAA;AACA;;AACA;AACA;AADA;;AAAA;;AAEA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;;;;AAEA;;;;;;AAGA;AAAA;AAAA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;AACA;;;AAEA;AAAA;;AACA;AAAA;AAAA;AACA;AAAA;AAAA;;;AAGA;AAAA;;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AAAA;;AAAA;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;ACvBA;;;;AAQA;;AAIA;AACA;AACA;AAIA;;AAEA;AACA;;AAKA;;AAOA;;;;AAIA;;;AAWA;AAeA;;AAKA;AAsBA;;AA+DA;;;;;;;;;;;;;;;;;;;;;;;AA5JA;AAAA;AACA;AACA;;AACA;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;;;AAEA;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AAAA;;AACA;AAEA;AAAA;AAAA;AAEA;;AAEA;AACA;AAAA;;AACA;AACA;AACA;;;AAGA;AACA;AACA;AAAA;;AACA;;AAEA;AADA;AAEA;AAAA;AAAA;AAEA;AAAA;;;;;;;;AAKA;AAAA;AACA;;AACA;AACA;AAAA;;AACA;;AACA;AAAA;;;;;AAEA;AAAA;;AACA;;AACA;AAAA;;;;;AAEA;AAAA;;AACA;;AACA;AAAA;;;;;AAEA;;AAEA;AACA;AAAA;AACA;AACA;AACA;;AAHA;;AAIA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;;AAkBA;AACA;AAAA;AACA;;;AAnBA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;AAWA;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;AAvCA;AAAA;;;;;;;;AAqDA;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;;AAiBA;AACA;AACA;AAAA;AACA;;AAAA;AAAA;;;;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;;;AAtBA;AAAA;AAAA;AACA;;AACA;AAAA;AAAA;AACA;AAAA;;;AAGA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;;;;;;;;;;;;AAeA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AADA;;AAAA;AAEA;;;AAEA;AADA;;AAAA;AAEA;AACA;;;AAGA;AADA;;AAAA;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzLA;AAAA;;AACA;AAAA;;AACA;AACA;AACA;AACA;AAAA;AACA;;AAAA;AAAA;;;;;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AADA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;AAAA;;AACA;AAAA;AACA;AACA;;AACA;AAAA;;AACA;AAAA;;AAEA;AADA;;AAAA;AAEA;;;AACA;;AAGA;AADA;;AAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;ACbA;;;;;;;;;;;;;;;;;;;;;ACAA;AAEA;AADA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AACA;;;;;;AAKA;AAEA;AADA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAEA;AADA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AAFA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAUA;AACA;AAAA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAGA;AAFA;AAKA;;AAEA;AAAA;;AAEA;AADA;AAEA;AACA;;AAEA;;AAAA;AACA;AAAA;;;;;AAGA;AAEA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzDA;;AAOA;AAAA;;AANA;;AAEA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;;AAKA;AAKA;AAJA;AAGA;;AAGA;;AAGA;AAAA;AAAA;;AACA;AAIA;AAAA;;AAAA;;AAOA;AACA;AACA;AAAA;AAOA;AAHA;;AACA;AACA;AAEA;;AACA;AAAA;;;;;AAKA;AAHA;;AACA;AACA;AAEA;;AACA;AAAA;;;;;AAKA;AAHA;;AACA;AACA;AAEA;;AACA;AAAA;;;;;AAKA;AAHA;;AACA;AACA;AAEA;;AACA;AAAA;;;;;AAEA;;;;;AAxCA;AAAA;AAAA;AAAA;AAAA;;AACA;AAAA;AACA;AACA;AAAA;;;;;;;;;;AA4CA;AAAA;AACA;AAAA;;AASA;AAAA;;AARA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AAAA;AAAA;AACA;;;;;;AAHA;;;AAcA;AAAA;;AARA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AAAA;AAAA;AACA;;;;;;AAHA;;;;AAeA;AAAA;;AATA;;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAMA;AAAA;AAAA;AACA;;;;;;AARA;;;;;AAqBA;AATA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AAAA;AAAA;AACA;;;;;;AAJA;;;AAgBA;AATA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AAAA;AAAA;AACA;;;;;;AAJA;;;;AAgBA;AAAA;;AATA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AAAA;AAAA;AACA;;;;;;AAPA;;;;AAmBA;AAAA;;AATA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AAAA;AAAA;AACA;;;;;;AAPA;;;;;AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvEA;;;;;;;;;;;;;;;;AAtIA;AAFA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAGA;AAFA;AAKA;;AAGA;AAGA;AAHA;;AACA;AACA;AAEA;AACA;;AAEA;AAAA;AACA;AACA;AAAA;;AAGA;;AAEA;AAAA;AAcA;AAbA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAcA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;;AAKA;AAAA;AAAA;;AAIA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;;AAMA;AACA;AACA;AAAA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;;;;;;;;;;;;AAOA;AADA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAWA;AATA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AAEA;AADA;AAIA;AAEA;AAIA;AAFA;;AACA;AAGA;;AAEA;;AAAA;;AACA;AAAA;;;;;;;AAKA;AADA;AAAA;AAGA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAIA;AAFA;;AACA;AAEA;AAAA;;AAGA;AADA;;AAEA;AACA;;AAGA;AADA;;AAEA;;AAEA;AAAA;;AAAA;;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrLA;AACA;AACA;;AAAA;;AAEA;AADA;;AAEA;;AAEA;;AAAA;AACA;AAAA;;;;;AAGA;AAEA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;;;;;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AACA;;AAEA;AADA;;AAAA;AAEA;AACA;AACA;;AAEA;AAAA;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;AACA;;;;;;AAZA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;;AACA;AAAA;AAAA;AACA;AAAA;AACA;;AAEA;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;AACA;AAAA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACmCA;AACA;;;;;;;;;;AApDA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AACA;AAAA;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;;AAAA;AAAA;;;;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;AAGA;AAAA;AAAA;AACA;AACA;AAEA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AAAA;;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AAGA;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;AACA;AAAA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;AACA;;;;;;;AA1BA;AADA;;AAGA;AACA;;AAAA;AAAA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAGA;AACA;AAAA;;AACA;AACA;AAAA;;AACA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAOA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAGA;;AAAA;AACA;AAAA;;;;;AATA;;AAeA;AACA;;AAGA;AAOA;AANA;;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;;;;;AAGA;AADA;;AAEA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAGA;AADA;;AAEA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7FA;AAAA;AAAA;;AACA;AAAA;;AACA;;AAGA;AADA;;AAEA;AAAA;AACA;;AAEA;AAAA;AAEA;AADA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AACA;AACA;;AAEA;AAAA;AAEA;AAAA;AAAA;AAAA;;AAKA;AACA;AACA;AACA;;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAGA;AACA;AACA;AAIA;AAFA;AAGA;;;AAIA;AACA;AAIA;AAEA;;;;AAJA;AAGA;AAMA;AACA;;AAEA;AAAA;;;;;;;;;;;;;;;;;;;AASA;AACA;AAAA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEvDA;;AAGA;AAEA;AACA;;;;;;;;;;;;;;;;;AArCA;AAAA;;AAIA;AAHA;;AAEA;;AAEA;AAAA;;;;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;AAEA;;AAAA;AACA;AAAA;;;;;AAGA;AAAA;AAAA;;AACA;AAAA;AACA;AACA;AAAA;;AAAA;;AACA;AACA;;AAEA;AACA;;;;;AAKA;AAFA;AAIA;AACA;AACA;AAAA;;AAGA;AAAA;AAAA;AACA;AAEA;;;AAEA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AAAA;;AACA;AAAA;AACA;;AACA;AAEA;;;;AAIA;AAAA;AAAA;;AAAA;;AACA;AACA;AACA;AACA;AAAA;AAAA;;;;;;AAOA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;AAlBA;;AAAA;AACA;AAAA;;;;;;;;;;;AA9BA;;AAAA;;;;;;AAsDA;;;;AAEA;AACA;AACA;AACA;;;;AAGA;AACA;AAIA;AACA;;AAEA;AACA;;;;AAPA;;AAAA;AACA;AAAA;;;;;AASA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC3LA;AAAA;;AAEA;AADA;;AAAA;;AAQA;AANA;;AAAA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AAAA;AACA;;;;;;AAHA;;;AAYA;AANA;;AAAA;AACA;AACA;AACA;AAEA;;AAEA;AAAA;AAAA;AACA;;;;;;AAJA;;;AAOA;AACA;;;;AAGA;AADA;;AAAA;;AAQA;AANA;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;;;AACA;AACA;;AAOA;AANA;;AAAA;AACA;AACA;AACA;AACA;;AACA;;;AASA;AANA;;AAAA;AACA;AACA;AACA;AACA;;AACA;;;AASA;AANA;;AAAA;AACA;AACA;AACA;AACA;;AACA;;;AAQA;AANA;;AAAA;AACA;AACA;AACA;AACA;;AACA;;;AAOA;AALA;;AAAA;AACA;AACA;AACA;AACA;;;AAQA;AANA;;AAAA;AACA;AACA;AACA;AACA;;AACA;;;AASA;AANA;;AAAA;AACA;AACA;AACA;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvFA;AAFA;;AAAA;AACA;;AAGA;AAAA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;;AACA;AACA;AACA;AAAA;;AAIA;AAAA;AAEA;AADA;;AAAA;AAEA;AACA;;AAAA;AAAA;;;;;AAEA;AADA;;AAAA;AAEA;AACA;;AAAA;AAAA;;;;;;;;;;AAIA;;AACA;AACA;AAAA;;;;;;;;AA9BA;;;;;;;;;;;;;;;;;;;;;;;;;ACDA;AAFA;;AAAA;AACA;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACeA;;;AAEA;;;;;;AAlCA;AAAA;;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AACA;AAAA;;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AAAA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;;;AAGA;AADA;;AAIA;AAFA;AAAA;AACA;AAEA;AACA;;;;;;AAEA;AAAA;AACA;;AAEA;AACA;AACA;;;AAHA;;AAKA;AAAA;AACA;;AACA;;AAGA;AADA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;;AAGA;AAFA;;AAAA;AACA;AAEA;AACA;AACA;AACA;;;;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AAAA;;AACA;AACA;;;;AAEA;;AACA;AACA;AAAA;AAAA;;;;;;;;;;AASA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAEA;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;;AAEA;;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7EA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AACA;;AAGA;AAFA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;;AACA;AACA;;AAKA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;;AAEA;AACA;AAAA;;;;AAEA;;AAIA;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AACA;AACA;AACA;;AAGA;AADA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAMA;AALA;;AACA;AAAA;AACA;AACA;AACA;;AAGA;AAAA;;AAEA;AADA;AAEA;AACA;;AAEA;AACA;AAIA;AAHA;;AAEA;;AAGA;AACA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;AAYA;AAEA;AAFA;;AACA;;AAIA;;AAEA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;;;AAMA;AAAA;AACA;AACA;AACA;AACA;AAAA;;AAAA;AAAA;AAAA;;;;AASA;AAAA;AAAA;AAAA;;AAKA;;AA2CA;AAAA;AAEA;AACA;AACA;;AAEA;AAAA;AAUA;AATA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;;AACA;AAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;AAIA;;;AAEA;AAAA;;;;;AAKA;;AAAA;AACA;AAAA;;;;;;;;;;;;AA3FA;;AAAA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAGA;;AAAA;AACA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;;;;;;;AAGA;;;;;AAEA;;AAAA;AACA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;AAuEA;AAFA;AACA;AAEA;AACA;;;;;AAGA;AAAA;AACA;AACA;;AAEA;AACA;;;;;;AArJA;;;;;;AANA;;AAAA;AACA;AAAA;;;;;;;AA+JA;AAAA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjOA;AALA;;AAAA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AACA;AACA;;AAMA;AALA;;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAMA;AALA;;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAMA;AALA;;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAIA;AAHA;;AAAA;AACA;AACA;AAEA;;AAAA;AAAA;;;;;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCA;AADA;;AAAA;;AAEA;AACA;AAAA;AACA;AAAA;;AACA;AAAA;AAAA;AACA;;AAgBA;AAAA;;;;AAdA;;AADA;AAEA;AAAA;AAAA;;AACA;;;;;AAIA;;AADA;AAEA;AAAA;AAAA;;AAEA;AADA;;AAAA;;;AAGA;AADA;;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAKA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;;AAuCA;AACA;AAAA;;AAAA;AAAA;;;;AACA;AAAA;AAAA;;AAAA;AAAA;;;;;AAxCA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;AAIA;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAEA;AAAA;;AACA;AAAA;AAAA;AACA;AAAA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzDA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;AAIA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;AACA;AAAA;AAAA;;AACA;AAAA;AACA;AACA;AAAA;;;AAEA;AAAA;AACA;;AACA;AAAA;;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;AACA;AACA;AACA;;AACA;;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEA;AACA;;;;;;AAjDA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AAEA;AAAA;AAAA;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;;AAEA;AAAA;;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;;;;;AAGA;AAKA;AAJA;;AACA;AACA;AACA;AAEA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACiBA;AACA;;;;;;;AA3CA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AAAA;;AAAA;;AACA;;;;AARA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACwBA;;;;;;AA5CA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;;AACA;AACA;AACA;AACA;;AACA;AAEA;AAEA;AADA;;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CA;;AAYA;AACA;AAwBA;;AAqBA;AA8BA;;;;AAcA;;AAOA;;;;AAcA;;AA4CA;AAKA;AAOA;AAIA;AACA;;;;;;;;AA3LA;AAAA;;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;;AACA;AAAA;AACA;;;;;;;;AAGA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAMA;AAAA;AADA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;;;AAKA;AAAA;AADA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;;;;;;AAEA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAMA;AAAA;AADA;AAEA;AACA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;AAAA;;;;;;AAMA;AAAA;AADA;AAEA;AACA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;AAAA;;;;;;AAMA;AADA;AAEA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;AAGA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;;AAGA;;AAAA;AACA;AAAA;;;;AAGA;;AAAA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAMA;;AAAA;AACA;AAAA;;;;AAGA;;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1LA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAGA;AAHA;;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;;;;;;;;AAMA;AAHA;;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;;;;;;;;;AAKA;AAFA;;AAAA;AACA;AAEA;AACA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AAGA;AAFA;;AAAA;AACA;AAEA;AACA;;AAAA;AAAA;;;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AAMA;AACA;AAAA;AAAA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AAIA;AAHA;;AAAA;AACA;AACA;;AAGA;;;;AAZA;;AADA;AACA;AAAA;AAAA;AAAA;;;;;AAGA;;AADA;AAEA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;AAAA;;AACA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AADA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AAAA;AACA;;AAEA;AADA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AAAA;;AAGA;AAFA;;AACA;;AAEA;AAAA;AACA;AACA;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AAAA;AAKA;AAJA;;AACA;AACA;AACA;;AAIA;AACA;AACA;AAAA;;AAAA;AACA;;;;AAIA;AACA;AACA;AAAA;AAEA;AACA;;AAGA;AADA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AAGA;AAIA;AAJA;;AACA;AACA;AACA;;AAIA;AACA;AACA;AAAA;;AAAA;AACA;;;;;;;;;;;AAOA;AACA;AAAA;;AAEA;AADA;;AAEA;AAAA;AACA;AACA;AACA;;AACA;AAAA;;;;;;AAIA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AAGA;AAIA;AAJA;;AACA;AACA;AACA;;AAIA;AACA;AACA;AAAA;;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClHA;AAAA;;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACZA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AAAA;;AACA;AAAA;AAAA;AACA;AACA;;AAGA;AAFA;AAAA;AAAA;AACA;AAEA;;AACA;AACA;AAAA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AAAA;AACA;;AAEA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AACA;AACA;AAAA;;;;;AAGA;AAAA;AACA;;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACnBA;AAAA;;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC3BA;AAAA;;AACA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;AC6DA;AACA;;;;;;;;;;AA/DA;AAAA;;AAEA;AADA;;AAAA;;AAEA;AAAA;AACA;AACA;AAAA;;AAEA;;AADA;AAEA;AAAA;AAAA;AAEA;;AACA;AACA;AAEA;;AADA;;;;;;;;;AAKA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AACA;AAAA;AAAA;AACA;;;;;;;AAIA;AAAA;AAAA;AACA;;AACA;;;;;AAzBA;;;;;AA+BA;AADA;;AAAA;AAEA;AACA;;AAGA;AADA;;AAAA;AAGA;;AAAA;;AADA;;;AAGA;AADA;;AAAA;AAGA;;AAAA;;AADA;;;AAGA;AADA;;AAAA;AAGA;;AAAA;;AADA;;;AAEA;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AACA;AAGA;AAHA;;AAAA;AAAA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;;;AAwCA;AACA;;;AAOA;;;AAuBA;AACA;AAIA;;AAiBA;AACA;AAMA;AACA;;;;;;;;;;;;;;AAhMA;AACA;AACA;AAAA;AAAA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmFA;AACA;AAAA;AAAA;;;AAEA;AACA;AACA;AAAA;AAIA;AAHA;;AACA;AACA;;AAGA;AACA;AAAA;;AAAA;;AACA;AAGA;AAFA;;AACA;AAEA;;AAGA;;AAAA;;AACA;AAAA;;;;;;AAIA;AACA;AACA;AACA;AAAA;AACA;;;;;;AAIA;AAAA;AACA;AACA;AAAA;AACA;;;;;;;;;AAOA;AADA;;AAEA;AACA;;AAEA;AAAA;;AAAA;;AACA;AAEA;AADA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AAAA;;;;AAEA;;;;AAMA;AAAA;;AAAA;;AACA;AAAA;AAAA;;;;;;AAMA;AAJA;;AACA;AACA;AACA;;;;AAIA;;AAAA;;AACA;AACA;AACA;AAAA;;AAAA;;AACA;AACA;AACA;AAAA;;;;AAEA;;;AAKA;AAAA;;AAAA;;AACA;AAAA;AAAA;;;;;;AAMA;AAJA;;AACA;AACA;AACA;;;;;;;;AA5FA;;AAAA;;;;AArFA;AAAA;AACA;AACA;AAAA;;;;AAGA;AAAA;;AAAA;;AAIA;AAHA;;AACA;AACA;AAEA;;AAEA;;AAEA;;AAGA;AAAA;AACA;AAAA;;AAAA;;AACA;AAEA;AADA;;AAEA;AACA;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AAAA;;;;;;AAIA;;AAAA;;AACA;AAAA;;;;;;;AAxBA;;AAAA;;;AA8BA;AAHA;;AACA;AAGA;AACA;AACA;;;;AAIA;;AAEA;AAAA;;AACA;AAAA;;;;AAEA;AAAA;;AAAA;;AACA;AAAA;;;;;;;;AAIA;AAAA;AACA;AACA;AAAA;;;;AAEA;AACA;;;AAGA;AACA;AAAA;;AAAA;;AACA;;AAEA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvGA;AAAA;;AACA;AAAA;AAAA;AACA;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACLA;AAAA;AACA;;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;;;AAEA;AAAA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;AEfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC3BA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrIA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9OA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3FA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzEA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAkBA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAGA;AACA;AAMA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACvLA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACpNA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5DA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAgBA;AACA;AACA;AACA;AACA;AACA;AAgBA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/EA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAKA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAAA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzRA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtQA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;;;;;;;;;;;;;;;;AC7CA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;AChJA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7EA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACPA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACjHA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAUA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAEA;;;;;;;;;;;;;AC5GA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACtFA;AACA;AACA;AACA;;;;;;;;;;;;;ACHA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AAQA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjXA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;;;;;;;;;;;;;ACjBA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;;;;;A","sourceRoot":""}
|