@smallwei/avue 3.7.3 → 3.8.0
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 +1 -1
- package/lib/avue.js +31384 -6668
- package/lib/avue.js.map +1 -0
- package/lib/avue.min.js +1 -7
- package/lib/index.css +1 -1
- package/lib/locale/format.js +6 -8
- package/package.json +2 -1
package/lib/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/display/index.vue","webpack://AVUE/./packages/data/icons/index.vue","webpack://AVUE/./packages/data/imgText/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/progress/index.vue","webpack://AVUE/./packages/data/rotate/index.vue","webpack://AVUE/./packages/data/tabs/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-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.12_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/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/_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/_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/_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/_baseSet.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/_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/_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/_root.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/eq.js","webpack://AVUE/./node_modules/lodash/get.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/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/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/set.js","webpack://AVUE/./node_modules/lodash/stubArray.js","webpack://AVUE/./node_modules/lodash/stubFalse.js","webpack://AVUE/./node_modules/lodash/toString.js","webpack://AVUE/./packages/core/common/event.js","webpack://AVUE/./packages/core/common/init.js","webpack://AVUE/./packages/core/common/props.js","webpack://AVUE/./packages/core/components/dialog-form/index.js","webpack://AVUE/./packages/core/components/dialog-form/index.vue?b04f","webpack://AVUE/./packages/core/components/dialog-form/index.vue?bf5f","webpack://AVUE/./packages/core/components/dialog-form/index.vue?da5b","webpack://AVUE/./packages/core/components/form/custom.js","webpack://AVUE/./packages/core/components/form/index.vue?fe8e","webpack://AVUE/./packages/core/components/form/index.vue?35fb","webpack://AVUE/./packages/core/components/form/index.vue?d55c","webpack://AVUE/./packages/core/components/icon/index.vue?6020","webpack://AVUE/./packages/core/components/icon/index.vue?ffb4","webpack://AVUE/./packages/core/components/icon/index.vue?41c3","webpack://AVUE/./packages/core/components/image-preview/index.js","webpack://AVUE/./packages/core/components/image-preview/index.vue?029e","webpack://AVUE/./packages/core/components/image-preview/index.vue?bb07","webpack://AVUE/./packages/core/components/image-preview/index.vue?a96b","webpack://AVUE/./packages/core/directive/contextmenu.js","webpack://AVUE/./packages/core/directive/permission.js","webpack://AVUE/./packages/data/box/index.vue?024d","webpack://AVUE/./packages/data/box/index.vue?f842","webpack://AVUE/./packages/data/box/index.vue?acf9","webpack://AVUE/./packages/data/card/index.vue?f691","webpack://AVUE/./packages/data/card/index.vue?46cf","webpack://AVUE/./packages/data/card/index.vue?7aed","webpack://AVUE/./packages/data/cardText/index.vue?a083","webpack://AVUE/./packages/data/cardText/index.vue?afbe","webpack://AVUE/./packages/data/cardText/index.vue?18a6","webpack://AVUE/./packages/data/display/index.vue?06bf","webpack://AVUE/./packages/data/display/index.vue?9c63","webpack://AVUE/./packages/data/display/index.vue?756d","webpack://AVUE/./packages/data/icons/index.vue?284d","webpack://AVUE/./packages/data/icons/index.vue?5b94","webpack://AVUE/./packages/data/icons/index.vue?b652","webpack://AVUE/./packages/data/imgText/index.vue?afc9","webpack://AVUE/./packages/data/imgText/index.vue?ae80","webpack://AVUE/./packages/data/imgText/index.vue?6100","webpack://AVUE/./packages/data/operaText/index.vue?de18","webpack://AVUE/./packages/data/operaText/index.vue?dffb","webpack://AVUE/./packages/data/operaText/index.vue?4bd2","webpack://AVUE/./packages/data/panel/index.vue?f536","webpack://AVUE/./packages/data/panel/index.vue?5181","webpack://AVUE/./packages/data/panel/index.vue?b1fe","webpack://AVUE/./packages/data/pay/index.vue?5dbd","webpack://AVUE/./packages/data/pay/index.vue?9c3e","webpack://AVUE/./packages/data/pay/index.vue?ffd4","webpack://AVUE/./packages/data/price/index.vue?a30e","webpack://AVUE/./packages/data/price/index.vue?d052","webpack://AVUE/./packages/data/price/index.vue?b0a4","webpack://AVUE/./packages/data/progress/index.vue?2695","webpack://AVUE/./packages/data/progress/index.vue?5f3e","webpack://AVUE/./packages/data/progress/index.vue?0311","webpack://AVUE/./packages/data/rotate/index.vue?0da0","webpack://AVUE/./packages/data/rotate/index.vue?59f0","webpack://AVUE/./packages/data/rotate/index.vue?6f66","webpack://AVUE/./packages/data/tabs/index.vue?3f98","webpack://AVUE/./packages/data/tabs/index.vue?8738","webpack://AVUE/./packages/data/tabs/index.vue?3897","webpack://AVUE/./packages/element-plus/array/index.vue?b30c","webpack://AVUE/./packages/element-plus/array/index.vue?c979","webpack://AVUE/./packages/element-plus/array/index.vue?ba14","webpack://AVUE/./packages/element-plus/article/index.vue?688f","webpack://AVUE/./packages/element-plus/article/index.vue?0e69","webpack://AVUE/./packages/element-plus/article/index.vue?436c","webpack://AVUE/./packages/element-plus/card/index.vue?ee91","webpack://AVUE/./packages/element-plus/card/index.vue?d443","webpack://AVUE/./packages/element-plus/card/index.vue?5a73","webpack://AVUE/./packages/element-plus/cascader/index.vue?9a1f","webpack://AVUE/./packages/element-plus/cascader/index.vue?d0ef","webpack://AVUE/./packages/element-plus/cascader/index.vue?1949","webpack://AVUE/./packages/element-plus/chat/index.vue?cc7a","webpack://AVUE/./packages/element-plus/chat/index.vue?d763","webpack://AVUE/./packages/element-plus/chat/index.vue?2e8c","webpack://AVUE/./packages/element-plus/checkbox/index.vue?c653","webpack://AVUE/./packages/element-plus/checkbox/index.vue?d660","webpack://AVUE/./packages/element-plus/checkbox/index.vue?d1fe","webpack://AVUE/./packages/element-plus/comment/index.vue?7d6c","webpack://AVUE/./packages/element-plus/comment/index.vue?d620","webpack://AVUE/./packages/element-plus/comment/index.vue?2c78","webpack://AVUE/./packages/element-plus/count-up/index.vue?4b34","webpack://AVUE/./packages/element-plus/count-up/index.vue?3e96","webpack://AVUE/./packages/element-plus/count-up/index.vue?b41a","webpack://AVUE/./packages/element-plus/crud/column/column-default.vue?0432","webpack://AVUE/./packages/element-plus/crud/column/column-default.vue?245b","webpack://AVUE/./packages/element-plus/crud/column/column-default.vue?5890","webpack://AVUE/./packages/element-plus/crud/column/column-dynamic.vue?61a0","webpack://AVUE/./packages/element-plus/crud/column/column-dynamic.vue?e89e","webpack://AVUE/./packages/element-plus/crud/column/column-dynamic.vue?e373","webpack://AVUE/./packages/element-plus/crud/column/column-menu.vue?df2e","webpack://AVUE/./packages/element-plus/crud/column/column-menu.vue?2097","webpack://AVUE/./packages/element-plus/crud/column/column-menu.vue?7eef","webpack://AVUE/./packages/element-plus/crud/column/column-slot.vue?4409","webpack://AVUE/./packages/element-plus/crud/column/column-slot.vue?f354","webpack://AVUE/./packages/element-plus/crud/column/column-slot.vue?735c","webpack://AVUE/./packages/element-plus/crud/column/column.vue?16b7","webpack://AVUE/./packages/element-plus/crud/column/column.vue?8b8a","webpack://AVUE/./packages/element-plus/crud/column/column.vue?4529","webpack://AVUE/./packages/element-plus/crud/config.js","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-column.vue?ce57","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-column.vue?278e","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-column.vue?8913","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-excel.vue?209a","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-excel.vue?b3db","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-excel.vue?f626","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-filter.vue?9b65","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-filter.vue?4a1a","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-filter.vue?3a8f","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-form.vue?8a96","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-form.vue?4033","webpack://AVUE/./packages/element-plus/crud/dialog/dialog-form.vue?7953","webpack://AVUE/./packages/element-plus/crud/grid/index.vue?9c1a","webpack://AVUE/./packages/element-plus/crud/grid/index.vue?caee","webpack://AVUE/./packages/element-plus/crud/grid/index.vue?2139","webpack://AVUE/./packages/element-plus/crud/grid/item.vue?0708","webpack://AVUE/./packages/element-plus/crud/grid/item.vue?48c3","webpack://AVUE/./packages/element-plus/crud/grid/item.vue?9e0f","webpack://AVUE/./packages/element-plus/crud/index.vue?724f","webpack://AVUE/./packages/element-plus/crud/index.vue?e6db","webpack://AVUE/./packages/element-plus/crud/index.vue?f756","webpack://AVUE/./packages/element-plus/crud/menu/header-menu.vue?b7ce","webpack://AVUE/./packages/element-plus/crud/menu/header-menu.vue?f001","webpack://AVUE/./packages/element-plus/crud/menu/header-menu.vue?bc3e","webpack://AVUE/./packages/element-plus/crud/menu/header-search.vue?3275","webpack://AVUE/./packages/element-plus/crud/menu/header-search.vue?0512","webpack://AVUE/./packages/element-plus/crud/menu/header-search.vue?3859","webpack://AVUE/./packages/element-plus/crud/menu/table-page.vue?2a63","webpack://AVUE/./packages/element-plus/crud/menu/table-page.vue?41ce","webpack://AVUE/./packages/element-plus/crud/menu/table-page.vue?8075","webpack://AVUE/./packages/element-plus/date/index.vue?9b25","webpack://AVUE/./packages/element-plus/date/index.vue?bf67","webpack://AVUE/./packages/element-plus/date/index.vue?86e8","webpack://AVUE/./packages/element-plus/draggable/index.vue?05cb","webpack://AVUE/./packages/element-plus/draggable/index.vue?97d6","webpack://AVUE/./packages/element-plus/draggable/index.vue?4d8d","webpack://AVUE/./packages/element-plus/dynamic/index.vue?8c65","webpack://AVUE/./packages/element-plus/dynamic/index.vue?a022","webpack://AVUE/./packages/element-plus/dynamic/index.vue?7915","webpack://AVUE/./packages/element-plus/flow/index.vue?a414","webpack://AVUE/./packages/element-plus/flow/index.vue?a157","webpack://AVUE/./packages/element-plus/flow/index.vue?f670","webpack://AVUE/./packages/element-plus/flow/node.vue?6202","webpack://AVUE/./packages/element-plus/flow/node.vue?ec09","webpack://AVUE/./packages/element-plus/flow/node.vue?6a13","webpack://AVUE/./packages/element-plus/form/config.js","webpack://AVUE/./packages/element-plus/form/index.vue?0172","webpack://AVUE/./packages/element-plus/form/index.vue?e005","webpack://AVUE/./packages/element-plus/form/index.vue?a217","webpack://AVUE/./packages/element-plus/form/menu.vue?72d6","webpack://AVUE/./packages/element-plus/form/menu.vue?be28","webpack://AVUE/./packages/element-plus/form/menu.vue?8033","webpack://AVUE/./packages/element-plus/group/index.vue?4ccf","webpack://AVUE/./packages/element-plus/group/index.vue?21d0","webpack://AVUE/./packages/element-plus/group/index.vue?b393","webpack://AVUE/./packages/element-plus/input-color/index.vue?03a1","webpack://AVUE/./packages/element-plus/input-color/index.vue?9ee1","webpack://AVUE/./packages/element-plus/input-color/index.vue?8bf9","webpack://AVUE/./packages/element-plus/input-icon/index.vue?79ea","webpack://AVUE/./packages/element-plus/input-icon/index.vue?7fca","webpack://AVUE/./packages/element-plus/input-icon/index.vue?fac2","webpack://AVUE/./packages/element-plus/input-map/index.vue?838d","webpack://AVUE/./packages/element-plus/input-map/index.vue?9b00","webpack://AVUE/./packages/element-plus/input-map/index.vue?2e22","webpack://AVUE/./packages/element-plus/input-number/index.vue?4ad2","webpack://AVUE/./packages/element-plus/input-number/index.vue?573f","webpack://AVUE/./packages/element-plus/input-number/index.vue?d745","webpack://AVUE/./packages/element-plus/input-table/index.vue?2aad","webpack://AVUE/./packages/element-plus/input-table/index.vue?c2cf","webpack://AVUE/./packages/element-plus/input-table/index.vue?be57","webpack://AVUE/./packages/element-plus/input-tag/index.vue?ba7a","webpack://AVUE/./packages/element-plus/input-tag/index.vue?8482","webpack://AVUE/./packages/element-plus/input-tag/index.vue?de9f","webpack://AVUE/./packages/element-plus/input-tree/index.vue?5cf9","webpack://AVUE/./packages/element-plus/input-tree/index.vue?bf89","webpack://AVUE/./packages/element-plus/input-tree/index.vue?99f3","webpack://AVUE/./packages/element-plus/input/index.vue?375c","webpack://AVUE/./packages/element-plus/input/index.vue?13bc","webpack://AVUE/./packages/element-plus/input/index.vue?90a8","webpack://AVUE/./packages/element-plus/license/index.vue?b6a0","webpack://AVUE/./packages/element-plus/license/index.vue?80a9","webpack://AVUE/./packages/element-plus/license/index.vue?e964","webpack://AVUE/./packages/element-plus/login/index.vue?99c5","webpack://AVUE/./packages/element-plus/login/index.vue?3bb0","webpack://AVUE/./packages/element-plus/login/index.vue?7561","webpack://AVUE/./packages/element-plus/mention/index.vue?01dd","webpack://AVUE/./packages/element-plus/mention/index.vue?3145","webpack://AVUE/./packages/element-plus/mention/index.vue?7963","webpack://AVUE/./packages/element-plus/radio/index.vue?664f","webpack://AVUE/./packages/element-plus/radio/index.vue?d7d9","webpack://AVUE/./packages/element-plus/radio/index.vue?cb2f","webpack://AVUE/./packages/element-plus/rate/index.vue?06c8","webpack://AVUE/./packages/element-plus/rate/index.vue?623b","webpack://AVUE/./packages/element-plus/rate/index.vue?3fd7","webpack://AVUE/./packages/element-plus/search/index.vue?4043","webpack://AVUE/./packages/element-plus/search/index.vue?6c76","webpack://AVUE/./packages/element-plus/search/index.vue?5dae","webpack://AVUE/./packages/element-plus/select/index.vue?64b5","webpack://AVUE/./packages/element-plus/select/index.vue?421b","webpack://AVUE/./packages/element-plus/select/index.vue?9223","webpack://AVUE/./packages/element-plus/sign/index.vue?90c8","webpack://AVUE/./packages/element-plus/sign/index.vue?250b","webpack://AVUE/./packages/element-plus/sign/index.vue?d73f","webpack://AVUE/./packages/element-plus/slider/index.vue?bcaf","webpack://AVUE/./packages/element-plus/slider/index.vue?dfdf","webpack://AVUE/./packages/element-plus/slider/index.vue?3509","webpack://AVUE/./packages/element-plus/switch/index.vue?1004","webpack://AVUE/./packages/element-plus/switch/index.vue?779f","webpack://AVUE/./packages/element-plus/switch/index.vue?05b4","webpack://AVUE/./packages/element-plus/tabs/index.vue?8b1b","webpack://AVUE/./packages/element-plus/tabs/index.vue?3469","webpack://AVUE/./packages/element-plus/tabs/index.vue?af00","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?4bff","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?a991","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?2ee2","webpack://AVUE/./packages/element-plus/time/index.vue?883b","webpack://AVUE/./packages/element-plus/time/index.vue?9e33","webpack://AVUE/./packages/element-plus/time/index.vue?c516","webpack://AVUE/./packages/element-plus/title/index.vue?c1b9","webpack://AVUE/./packages/element-plus/title/index.vue?38d3","webpack://AVUE/./packages/element-plus/title/index.vue?388d","webpack://AVUE/./packages/element-plus/tree/index.vue?799c","webpack://AVUE/./packages/element-plus/tree/index.vue?0492","webpack://AVUE/./packages/element-plus/tree/index.vue?b66a","webpack://AVUE/./packages/element-plus/upload/index.vue?bb2a","webpack://AVUE/./packages/element-plus/upload/index.vue?b668","webpack://AVUE/./packages/element-plus/upload/index.vue?58b8","webpack://AVUE/./packages/element-plus/verify/index.vue?e4db","webpack://AVUE/./packages/element-plus/verify/index.vue?8308","webpack://AVUE/./packages/element-plus/verify/index.vue?39e0","webpack://AVUE/./packages/element-plus/video/index.vue?53ea","webpack://AVUE/./packages/element-plus/video/index.vue?b5a3","webpack://AVUE/./packages/element-plus/video/index.vue?0861","webpack://AVUE/./src/core/create.js","webpack://AVUE/./src/core/dataformat.js","webpack://AVUE/./src/core/detail.js","webpack://AVUE/./src/core/dic.js","webpack://AVUE/./src/core/locale.js","webpack://AVUE/./src/core/packages.js","webpack://AVUE/./src/core/slot.js","webpack://AVUE/./src/global/variable.js","webpack://AVUE/./src/icon.js","webpack://AVUE/./src/index.js","webpack://AVUE/./src/locale/format.js","webpack://AVUE/./src/locale/index.js","webpack://AVUE/./src/locale/lang/zh.js","webpack://AVUE/./src/plugin/ali/index.js","webpack://AVUE/./src/plugin/clipboard/index.js","webpack://AVUE/./src/plugin/export/index.js","webpack://AVUE/./src/plugin/logs/index.js","webpack://AVUE/./src/plugin/print/index.js","webpack://AVUE/./src/plugin/qiniu/index.js","webpack://AVUE/./src/plugin/screenshot/index.js","webpack://AVUE/./src/plugin/video/index.js","webpack://AVUE/./src/plugin/watermark/index.js","webpack://AVUE/./src/plugin/watermark/watermark.js","webpack://AVUE/./src/ui/data/index.js","webpack://AVUE/./src/ui/element-plus/index.js","webpack://AVUE/./src/ui/index.js","webpack://AVUE/./src/utils/bem.js","webpack://AVUE/./src/utils/mock.js","webpack://AVUE/./src/utils/util.js","webpack://AVUE/./src/utils/validate.js","webpack://AVUE/./src/version.js","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>\r\nexport default {\r\n props: {\r\n opt: Object,\r\n onDestroy: Function\r\n },\r\n data () {\r\n return {\r\n disabled: false,\r\n callback: null,\r\n visible: true,\r\n dialog: {\r\n closeOnClickModal: false\r\n },\r\n isDrawer: false,\r\n option: {\r\n submitText: '提交',\r\n emptyText: '关闭',\r\n submitIcon: 'el-icon-check',\r\n emptyIcon: 'el-icon-close',\r\n column: []\r\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>","<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=\"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=\"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-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=\"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>\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\">\r\n <p class=\"item-more\">更多\r\n <el-icon>\r\n <el-icon-arrow-right />\r\n </el-icon>\r\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>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-rotate\",\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=\"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=\"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.js\";\r\nimport event from \"common/common/event.js\";\r\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})\"\r\n @click=\"rowAdd()\">\r\n <el-icon>\r\n <el-icon-plus />\r\n </el-icon>\r\n <span>添加</span>\r\n </div>\r\n </el-col>\r\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>\r\nconst propsDefault = {\r\n img: \"img\",\r\n title: \"title\",\r\n info: \"info\"\r\n};\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"card\",\r\n props: {\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 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.js\";\r\nimport event from \"common/common/event.js\";\r\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\"\r\n rows=\"2\"\r\n :placeholder=\"placeholder\"\r\n class=\"web__msg-input\"></textarea>\r\n <div class=\"web__msg-menu\">\r\n <el-dropdown split-button\r\n class=\"web__msg-submit\"\r\n type=\"primary\"\r\n :size=\"size\"\r\n @click=\"handleSend\"\r\n trigger=\"click\">\r\n 发送\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item>\r\n <el-popover placement=\"top\"\r\n width=\"160\"\r\n v-model=\"visible\">\r\n <div>\r\n <el-input :size=\"size\"\r\n style=\"margin-bottom:10px\"\r\n :rows=\"3\"\r\n show-word-limit\r\n placeholder=\"请输入快捷回复语\"\r\n v-model=\"keys\"\r\n type=\"textarea\"></el-input>\r\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\"\r\n :rules=\"[\r\n { required: true, message: '地址不能为空'},\r\n ]\">\r\n <el-input :size=\"size\"\r\n style=\"margin-bottom:10px\"\r\n :rows=\"4\"\r\n show-word-limit\r\n maxlength=\"100\"\r\n placeholder=\"请输入地址\"\r\n v-model=\"upload.src\"\r\n type=\"textarea\"></el-input>\r\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: {\r\n type: String,\r\n default: '请输入...'\r\n },\r\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 () {\r\n return !this.validatenull(this.msg.replace(/[\\r\\n]/g, \"\"))\r\n }\r\n },\r\n methods: {\r\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) {\r\n this.upload.type = type;\r\n this.upload.src = '';\r\n if (type === 'img') {\r\n this.upload.title = \"图片上传\"\r\n } else if (type === 'video') {\r\n this.upload.title = \"视频上传\"\r\n } else if (type === 'file') {\r\n this.upload.title = \"文件上传\"\r\n }\r\n this.upload.box = true;\r\n },\r\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) {\r\n const permissionNow = NotificationInstance.permission;\r\n if (permissionNow === 'granted') {//允许通知\r\n CreatNotification();\r\n } else if (permissionNow === 'denied') {\r\n console.log('用户拒绝了你!!!');\r\n } else {\r\n setPermission();\r\n }\r\n function setPermission () {\r\n //请求获取通知权限\r\n NotificationInstance.requestPermission(function (PERMISSION) {\r\n if (PERMISSION === 'granted') {\r\n CreatNotification();\r\n } else {\r\n console.log('用户无情残忍的拒绝了你!!!');\r\n }\r\n });\r\n }\r\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') {\r\n child.className = 'web__msg--file'\r\n child.innerHTML = `<h2>File</h2><span>${child.getAttribute('data-name')}</span>`\r\n } else if (child.tagName === 'MAP') {\r\n child.className = 'web__msg--file web__msg--map'\r\n child.innerHTML = `<h2>Map</h2><span>${child.getAttribute('data-longitude')} , ${child.getAttribute('data-latitude')}<br />${child.getAttribute('data-address')}</span>`\r\n }\r\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.js\";\r\nimport event from \"../../core/common/event.js\";\r\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>\r\nimport CountUp from \"countup.js\";\r\nimport create from \"core/create\";\r\nexport default create({\r\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>","<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.js\";\r\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>","<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 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.js\";\r\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 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 (column.filters !== true) return undefined;\r\n if (Array.isArray(column.filters)) return column.filters;\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 }\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.js\";\r\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()\"\r\n :style=\"styleName\">\r\n <div :class=\"b('hide')\">\r\n <slot></slot>\r\n </div>\r\n <el-checkbox-group v-if=\"data.length!==0\"\r\n v-model=\"checkList\"\r\n @change=\"checkListChange\">\r\n <el-row>\r\n <el-col 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 <div :class=\"b('content')\"\r\n :style=\"[getGradientColor(row,index),getRowStyle(row,index)]\">\r\n <div v-for=\"(item,columnIndex) in column\"\r\n :class=\"[b('item'),(item.type || item.prop),getClass(row,index,item)]\"\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 <span v-if=\"item.type=='selection'\">\r\n <el-checkbox :value=\"index\" :label=\"index\"\r\n :disabled=\"isDisabled(row, index)\"\r\n @click.stop> </el-checkbox>\r\n </span>\r\n <template v-else>\r\n <template v-for=\"(comp,compIndex) in item.header && item.header({row:row,$index:index,column:item})\"\r\n :key=\"compIndex\">\r\n <component :class=\"[b('label'),item.labelClassName]\"\r\n :is=\"comp\"></component>\r\n </template>\r\n <template v-for=\"(comp,compIndex) in item.default &&item.default({row:row,$index:index,column:item})\"\r\n :key=\"compIndex\">\r\n <component placement=\"top\"\r\n :is=\"(item.overHidden||item.showOverflowTooltip)?'elTooltip':'div'\"\r\n :class=\"[b('value'),item.className]\"\r\n :content=\"row[item.prop]\">\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\"\r\n v-if=\"$slots.empty\"></slot>\r\n <el-empty v-else\r\n :image-size=\"100\"\r\n :description=\"crud.tableOption.emptyText || t('crud.emptyText')\"></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 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 },\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(ele => JSON.stringify(ele) == JSON.stringify(data))\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 = this.crud.tableOption.gridBackground || '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) 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(item => item.hide !== true)\r\n const columnOption = this.crud.columnOption || []\r\n if (this.cellClassName) list.push(this.cellClassName({ row, rowIndex: index, column }))\r\n if (column.prop == (columnOption[firstIndex || 0] || {}).prop) 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>\r\n\r\n</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>\r\n</style>","<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.js\";\r\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.js\";\r\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,\r\n shortcuts: [\r\n {\r\n text: '今天',\r\n value: new Date(),\r\n },\r\n {\r\n text: '昨天',\r\n value: () => {\r\n const date = new Date();\r\n date.setTime(date.getTime() - 3600 * 1000 * 24);\r\n return date;\r\n },\r\n },\r\n {\r\n text: '一周前',\r\n value: () => {\r\n const date = new Date();\r\n date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);\r\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 :small=\"crud.size=='small'\"\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 :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 :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 <template #=\"cell\">\r\n <div class=\"el-date-table-cell\">\r\n <slot :item=\"cell\"\r\n v-if=\"$slots.default\">\r\n </slot>\r\n <span class=\"el-date-table-cell__text\"\r\n v-else>{{ cell.renderText || cell.text }}</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.js\";\r\nimport event from \"common/common/event.js\";\r\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 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\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.js\";\r\nimport event from \"common/common/event.js\";\r\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>\r\nimport create from \"core/create\";\r\nimport flowNode from './node'\r\nimport { randomId } from 'utils/util';\r\nexport default create({\r\n name: \"flow\",\r\n components: {\r\n flowNode\r\n },\r\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 //删除节点\r\n deleteNode (nodeId) {\r\n this.$confirm('确定要删除节点' + nodeId + '?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n closeOnClickModal: false\r\n }).then(() => {\r\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) {\r\n console.log('click', conn)\r\n\r\n _this.$confirm('确定删除所点击的线吗?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n _this.jsPlumb.deleteConnection(conn)\r\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)\r\n let from = evt.sourceId\r\n let to = evt.targetId\r\n if (from === to) {\r\n _this.$message.error('不能连接自己')\r\n return false\r\n }\r\n if (_this.hasLine(from, to)) {\r\n _this.$message.error('不能重复连线')\r\n return false\r\n }\r\n if (_this.hashOppositeLine(from, to)) {\r\n _this.$message.error('不能回环哦')\r\n return false\r\n }\r\n return true\r\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.js\";\r\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.js\";\r\nimport event from \"common/common/event.js\";\r\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()\">\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.js\";\r\nimport event from \"common/common/event.js\";\r\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\r\n :class=\"b('content-input')\"\r\n id=\"map__input\"\r\n :size=\"size\"\r\n @clear=\"clear\"\r\n :readonly=\"disabled\"\r\n v-model=\"formattedAddress\"\r\n clearable\r\n placeholder=\"输入关键字选取地点\"\r\n ></el-input>\r\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.js\";\r\nimport event from \"common/common/event.js\";\r\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() {\r\n return this.disabled || this.readonly ? \"查看\" : \"选择\";\r\n },\r\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.js\";\r\nimport event from \"common/common/event.js\";\r\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.js\";\r\nimport event from \"common/common/event.js\";\r\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() {\r\n return this.disabled || this.readonly ? \"查看\" : \"选择\";\r\n },\r\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 (this.created || this.validatenull(val)) return;\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 value = this.text;\r\n const valueArray = result.filter((item) =>\r\n value.some((val) => val == item[this.valueKey])\r\n );\r\n\r\n this.object = this.deepClone(valueArray);\r\n this.active = this.deepClone(valueArray);\r\n\r\n this.created = true;\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.js\";\r\nimport event from \"common/common/event.js\";\r\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.js\";\r\nimport event from \"common/common/event.js\";\r\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>\r\n <el-input :class=\"b()\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\r\n v-model=\"text\"\r\n @keyup.enter=\"isSearch?appendClick(text):''\"\r\n @click.=\"handleClick\"\r\n :type=\"typeParam\"\r\n :maxlength=\"maxlength\"\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=\"prefixIcon\"\r\n :suffix-icon=\"suffixIcon\"\r\n :readonly=\"readonly\"\r\n :placeholder=\"placeholder\"\r\n :show-word-limit=\"showWordLimit\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :disabled=\"disabled\"\r\n :autocomplete=\"autocomplete\"\r\n :formatter=\"formatters\"\r\n :parser=\"parser\"\r\n>\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 #append\r\n v-else-if=\"isSearch\">\r\n <el-button icon=\"el-icon-search\"\r\n @click=\"appendClick(text)\"></el-button>\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.js\";\r\nimport event from \"common/common/event.js\";\r\nexport default create({\r\n name: \"input\",\r\n mixins: [props(), event()],\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 computed: {\r\n isSearch () {\r\n return this.type == 'search'\r\n },\r\n typeParam: function () {\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});\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 || '用户名'\"\r\n :rules=\"username.rules\"\r\n :label-width=\"setPx(username.labelWidth)\"\r\n v-if=\"!username.hide\"\r\n prop=\"username\">\r\n <el-tooltip :content=\"username.tip\"\r\n :disabled=\"username.tip===undefined\"\r\n placement=\"top-start\">\r\n <el-input v-model=\"form.username\"\r\n :prefix-icon=\"username.prefixIcon || 'el-icon-user'\"\r\n :placeholder=\"username.placeholder || '请输入用户名'\"\r\n :autocomplete=\"username.autocomplete\"></el-input>\r\n </el-tooltip>\r\n </el-form-item>\r\n <el-form-item :label=\"password.label || '密码'\"\r\n :rules=\"password.rules\"\r\n :label-width=\"setPx(password.labelWidth)\"\r\n v-if=\"!password.hide\"\r\n prop=\"password\">\r\n <el-tooltip :content=\"password.tip\"\r\n :disabled=\"password.tip===undefined\"\r\n placement=\"top-start\">\r\n <el-input type=\"password\"\r\n :prefix-icon=\"password.prefixIcon || 'el-icon-unlock'\"\r\n :placeholder=\"password.placeholder || '请输入密码'\"\r\n show-password\r\n v-model=\"form.password\"\r\n :autocomplete=\"password.autocomplete\"></el-input>\r\n </el-tooltip>\r\n </el-form-item>\r\n <el-form-item :label=\"code.label || '验证码'\"\r\n :rules=\"code.rules\"\r\n v-if=\"!code.hide\"\r\n :label-width=\"setPx(code.labelWidth)\"\r\n prop=\"code\">\r\n <el-tooltip :content=\"code.tip\"\r\n :disabled=\"code.tip===undefined\"\r\n placement=\"top-start\">\r\n <el-input v-model=\"form.code\"\r\n :prefix-icon=\"code.prefixIcon || 'el-icon-c-scale-to-original'\"\r\n :placeholder=\"code.placeholder || '请输入验证码'\"\r\n :autocomplete=\"code.autocomplete\">\r\n\r\n <template #append>\r\n <el-button type=\"primary\"\r\n :class=\"b('send')\"\r\n v-if=\"isPhone\"\r\n :disabled=\"sendDisabled\"\r\n @click=\"onSend\">{{text}}</el-button>\r\n <span v-if=\"isImg\">\r\n <img :src=\"codesrc\"\r\n alt=\"\"\r\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>\r\n <el-form-item>\r\n <el-button type=\"primary\"\r\n @click=\"onSubmit\"\r\n :class=\"b('submit')\">登录</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nconst INIT_TEXT = '发送验证码'\r\nconst TIP_TEXT = '{{time}}s后重获取'\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: 'login',\r\n emits: ['update:modelValue','send','refresh','submit'],\r\n props: {\r\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 () {\r\n return !this.validatenull(this.check)\r\n }\r\n\r\n },\r\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 () {\r\n return {\r\n text: INIT_TEXT,\r\n nowtime: '',\r\n check: {},\r\n form: {}\r\n }\r\n },\r\n methods: {\r\n onSend () {\r\n const callback = () => {\r\n this.nowtime = this.time;\r\n this.text = TIP_TEXT.replace('{{time}}', this.nowtime);\r\n this.check = setInterval(() => {\r\n this.nowtime--\r\n if (this.nowtime === 0) {\r\n this.text = INIT_TEXT;\r\n clearInterval(this.check);\r\n this.check = null;\r\n } else {\r\n this.text = TIP_TEXT.replace('{{time}}', this.nowtime);\r\n }\r\n }, 1000)\r\n }\r\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.js\";\r\nimport event from \"common/common/event.js\";\r\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>","<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.js\";\r\nimport event from \"common/common/event.js\";\r\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>","<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.js\";\r\nimport event from \"common/common/event.js\";\r\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.js\";\r\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\"\r\n v-model=\"checked\"\r\n :disabled=\"disabled\"\r\n :indeterminate=\"indeterminate\"\r\n @change=\"checkChange\"\r\n >全选</el-checkbox\r\n >\r\n </div>\r\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\";\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props.js\";\r\nimport event from \"common/common/event.js\";\r\nimport { sendDic } from \"core/dic\";\r\nimport { DIC_SPLIT } from \"global/variable\";\r\nexport default create({\r\n name: \"select\",\r\n mixins: [props(), event()],\r\n data() {\r\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 黑体';\r\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 黑体';\r\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 黑体'\r\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>","<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.js\";\r\nimport event from \"common/common/event.js\";\r\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.js\";\r\nimport event from \"common/common/event.js\";\r\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.js\";\r\nimport event from \"common/common/event.js\";\r\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>","<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.js\";\r\nimport event from \"common/common/event.js\";\r\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')\"\r\n v-if=\"validData(option.filter,true)\">\r\n <el-input :placeholder=\"validData(option.filterText,'输入关键字进行过滤')\"\r\n :size=\"size\"\r\n v-model=\"filterValue\">\r\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.js\";\r\nimport event from \"common/common/event.js\";\r\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;","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 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/** 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 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 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","/**\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 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 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 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","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 * 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","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 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 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 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 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';\r\nimport { findNode } from 'utils/util'\r\nexport default function () {\r\n return {\r\n methods: {\r\n bindEvent (name, params) {\r\n let item = findNode(this.dic, this.props, this.text)\r\n params = Object.assign(params, { column: this.column, dic: this.dic, item }, this.tableData)\r\n if (typeof this[name] === 'function') {\r\n if (name == 'change') {\r\n if (this.column.cell != true) {\r\n this[name](params)\r\n }\r\n } else {\r\n this[name](params)\r\n }\r\n }\r\n this.$emit(name, params)\r\n },\r\n initVal () {\r\n this.stringMode = typeof (this.modelValue) == 'string'\r\n this.text = initVal(this.modelValue, this);\r\n },\r\n getLabelText (item) {\r\n if (this.validatenull(item)) return ''\r\n if (typeof this.typeformat === 'function') {\r\n return this.typeformat(item, this.labelKey, this.valueKey);\r\n }\r\n return item[this.labelKey]\r\n },\r\n handleFocus (event) {\r\n this.bindEvent('focus', { value: this.modelValue, event })\r\n },\r\n handleBlur (event) {\r\n this.bindEvent('blur', { value: this.modelValue, event })\r\n },\r\n handleClick (event) {\r\n this.bindEvent('click', { value: this.modelValue, event })\r\n },\r\n handleChange (value) {\r\n let result = value;\r\n if (this.isJson) {\r\n result = JSON.stringify(value);\r\n } else {\r\n let flag = this.isString || this.isNumber || this.stringMode || this.listType === \"picture-img\";\r\n if (flag && Array.isArray(value)) {\r\n result = value.join(this.separator)\r\n }\r\n }\r\n this.bindEvent('change', { value: result })\r\n this.$emit('update:modelValue', result);\r\n }\r\n }\r\n };\r\n}\r\n","import {\r\n sendDic,\r\n loadDic,\r\n loadCascaderDic,\r\n loadLocalDic\r\n} from 'core/dic';\r\nimport {\r\n DIC_PROPS\r\n} from 'global/variable';\r\nimport slot from 'core/slot'\r\nexport default function (name) {\r\n return {\r\n mixins: [slot],\r\n emits: ['update:modelValue', 'change'],\r\n props: {\r\n tableData: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\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 watch: {\r\n propOption: {\r\n handler (list) {\r\n list.forEach(ele => this.objectOption[ele.prop] = ele);\r\n },\r\n deep: true,\r\n },\r\n option: {\r\n handler () {\r\n this.init(false);\r\n },\r\n deep: true,\r\n },\r\n },\r\n data () {\r\n return {\r\n DIC: {},\r\n cascaderDIC: {},\r\n tableOption: {},\r\n objectOption: {}\r\n };\r\n },\r\n mounted () {\r\n this.init();\r\n },\r\n computed: {\r\n isMobile () {\r\n return document.body.clientWidth <= 768;\r\n },\r\n resultOption () {\r\n return {\r\n ...this.tableOption,\r\n ...{\r\n column: this.propOption || []\r\n }\r\n }\r\n },\r\n rowKey () {\r\n return this.tableOption.rowKey || DIC_PROPS.rowKey;\r\n },\r\n formRules () {\r\n let result = {};\r\n this.propOption.forEach(ele => {\r\n if (ele.rules && ele.display !== false)\r\n result[ele.prop] = ele.rules\r\n });\r\n return result;\r\n }\r\n },\r\n methods: {\r\n init (type) {\r\n let globOption = this.deepClone(this.$AVUE[`${name}Option`])\r\n let option = {\r\n ...globOption,\r\n ...this.option\r\n }\r\n this.tableOption = option;\r\n this.handleLocalDic();\r\n if (type !== false) this.handleLoadDic()\r\n },\r\n dicInit (type) {\r\n if (type === 'cascader') {\r\n this.handleLoadCascaderDic()\r\n } else {\r\n this.handleLoadDic();\r\n }\r\n },\r\n updateDic (prop, list) {\r\n let column = this.findObject(this.propOption, prop);\r\n let formatter = column.dicFormatter\r\n const callback = (list,useFormatter = true) => {\r\n if (useFormatter && typeof formatter === 'function') {\r\n this.DIC[prop] = formatter(list, this.tableForm || this.form);\r\n } else {\r\n this.DIC[prop] = list;\r\n }\r\n }\r\n let dic = [];\r\n if (this.validatenull(list) && this.validatenull(prop)) {\r\n this.handleLoadDic();\r\n reutrn\r\n } else if (this.validatenull(list) && !this.validatenull(column.dicUrl)) {\r\n sendDic({\r\n column: column\r\n }, this).then(list => {\r\n dic = callback(list,false)\r\n });\r\n } else {\r\n dic = callback(list)\r\n }\r\n\r\n },\r\n handleSetDic (list, res = {}) {\r\n Object.keys(res).forEach(ele => {\r\n list[ele] = res[ele]\r\n });\r\n },\r\n //本地字典\r\n handleLocalDic () {\r\n loadLocalDic(this.resultOption, this)\r\n },\r\n // 网络字典加载\r\n handleLoadDic () {\r\n loadDic(this.resultOption, this)\r\n },\r\n //级联字典加载\r\n handleLoadCascaderDic () {\r\n loadCascaderDic(this.propOption, this)\r\n }\r\n }\r\n };\r\n}\r\n","import { DIC_PROPS, DIC_SPLIT, DIC_HTTP_PROPS } from 'global/variable';\r\nimport slot from 'core/slot'\r\nexport default function () {\r\n return {\r\n mixins: [slot],\r\n emits: ['update:modelValue', 'click', 'focus', 'blur', 'change'],\r\n data () {\r\n return {\r\n stringMode: false,\r\n name: '',\r\n text: undefined,\r\n propsHttpDefault: DIC_HTTP_PROPS,\r\n propsDefault: DIC_PROPS\r\n };\r\n },\r\n props: {\r\n blur: Function,\r\n focus: Function,\r\n change: Function,\r\n click: Function,\r\n typeformat: Function,\r\n control: Function,\r\n separator: {\r\n type: String,\r\n default: DIC_SPLIT\r\n },\r\n params: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n listType: {\r\n type: String,\r\n default: ''\r\n },\r\n tableData: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n modelValue: {},\r\n column: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n label: {\r\n type: String,\r\n default: ''\r\n },\r\n readonly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n size: {\r\n type: String,\r\n default: ''\r\n },\r\n tip: {\r\n type: String,\r\n default: ''\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n dataType: {\r\n type: String\r\n },\r\n clearable: {\r\n type: Boolean,\r\n default: true\r\n },\r\n type: {\r\n type: String,\r\n default: ''\r\n },\r\n dicUrl: {\r\n type: String,\r\n default: ''\r\n },\r\n dicMethod: {\r\n type: String,\r\n default: ''\r\n },\r\n dicFormatter: Function,\r\n dicQuery: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n dic: {\r\n type: [Array, Function],\r\n default: () => {\r\n return [];\r\n }\r\n },\r\n placeholder: {\r\n type: String,\r\n default: ''\r\n },\r\n rules: {\r\n type: Array\r\n },\r\n min: {\r\n type: Number\r\n },\r\n max: {\r\n type: Number\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false\r\n },\r\n button: {\r\n type: Boolean,\r\n default: false\r\n },\r\n row: {\r\n type: Boolean,\r\n default: false\r\n },\r\n prop: {\r\n type: String,\r\n default: ''\r\n },\r\n border: {\r\n type: Boolean,\r\n default: false\r\n },\r\n popperClass: {\r\n type: String,\r\n },\r\n propsHttp: {\r\n type: Object,\r\n default: () => DIC_HTTP_PROPS\r\n },\r\n props: {\r\n type: Object,\r\n default: () => DIC_PROPS\r\n }\r\n },\r\n watch: {\r\n text: {\r\n handler (val) {\r\n this.handleChange(val)\r\n this.handleTextValue && this.handleTextValue(val)\r\n },\r\n deep: true\r\n },\r\n modelValue: {\r\n handler (val) {\r\n this.initVal();\r\n this.handleModelValue && this.handleModelValue(val)\r\n },\r\n deep: true\r\n }\r\n },\r\n computed: {\r\n clearableVal () {\r\n return this.disabled ? false : this.clearable\r\n },\r\n componentName () {\r\n const type = 'el'\r\n const result = `${type}-${this.name}${this.button ? '-button' : ''}`\r\n return result\r\n },\r\n required () {\r\n return !this.validatenull(this.rules);\r\n },\r\n isGroup () {\r\n let result = false;\r\n this.dic.forEach(ele => {\r\n if (ele[this.groupsKey]) {\r\n result = true;\r\n }\r\n })\r\n return result\r\n },\r\n isArray () {\r\n return this.dataType === 'array';\r\n },\r\n isString () {\r\n return this.dataType === 'string';\r\n },\r\n isNumber () {\r\n return this.dataType === 'number';\r\n },\r\n isJson () {\r\n return this.dataType === 'json'\r\n },\r\n nameKey () {\r\n return this.propsHttp.name || this.propsHttpDefault.name;\r\n },\r\n urlKey () {\r\n return this.propsHttp.url || this.propsHttpDefault.url;\r\n },\r\n resKey () {\r\n return this.propsHttp.res || this.propsHttpDefault.res;\r\n },\r\n fileTypeKey () {\r\n return this.propsHttp.fileType || this.propsHttpDefault.fileType;\r\n },\r\n groupsKey () {\r\n return this.props.groups || this.propsDefault.groups;\r\n },\r\n valueKey () {\r\n return this.props.value || this.propsDefault.value;\r\n },\r\n typeKey () {\r\n return this.props.type || this.propsDefault.type;\r\n },\r\n descKey () {\r\n return this.props.desc || this.propsDefault.desc;\r\n },\r\n leafKey () {\r\n return this.props.leaf || this.propsDefault.leaf;\r\n },\r\n labelKey () {\r\n return this.props.label || this.propsDefault.label;\r\n },\r\n childrenKey () {\r\n return this.props.children || this.propsDefault.children;\r\n },\r\n disabledKey () {\r\n return this.props.disabled || this.propsDefault.disabled;\r\n },\r\n idKey () {\r\n return this.props.id || this.propsDefault.id;\r\n }\r\n },\r\n created () {\r\n this.initVal();\r\n }\r\n };\r\n}\r\n","import {\r\n createVNode,\r\n render\r\n} from 'vue';\r\nimport Main from './index.vue';\r\nexport default function (_context) {\r\n let defaultContext = _context\r\n return (opt) => {\r\n let options = {\r\n opt\r\n }\r\n let appendTo = opt.appendTo\r\n if (opt.appendTo) {\r\n appendTo = document.querySelector(opt.appendTo)\r\n } else {\r\n appendTo = document.body\r\n }\r\n const parent = document.createElement('div')\r\n let instance = createVNode(Main, options)\r\n instance.appContext = defaultContext;\r\n const onDestroy = () => {\r\n render(null, parent)\r\n parent.remove();\r\n }\r\n instance.props.onDestroy = onDestroy;\r\n instance.close = onDestroy;\r\n render(instance, parent)\r\n appendTo.appendChild(parent);\r\n return instance;\r\n }\r\n}\r\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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=751f860f\"","export default {\r\n props: {\r\n render: Function,\r\n row: Object,\r\n index: [String, Number],\r\n column: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n dic: {\r\n type: Array,\r\n default: () => {\r\n return []\r\n }\r\n },\r\n params: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n event: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n }\r\n },\r\n render() {\r\n return this.render.call(this, {\r\n column: this.column,\r\n dic:this.dic,\r\n params: this.params,\r\n event: this.event,\r\n row: this.row,\r\n index: this.index\r\n })\r\n }\r\n}\r\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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=4fc486a9\"","import Main from './index.vue';\r\nimport {\r\n createVNode,\r\n render\r\n} from 'vue';\r\nexport default function (_context) {\r\n let defaultContext = _context\r\n return (datas = [], index = 0, ops = {}) => {\r\n let options = {\r\n datas: datas,\r\n index: index,\r\n ops: Object.assign({\r\n closeOnClickModal: false,\r\n beforeClose: null,\r\n click: null,\r\n modal: true\r\n }, ops),\r\n }\r\n let appendTo = ops.appendTo\r\n if (ops.appendTo) {\r\n appendTo = document.querySelector(ops.appendTo)\r\n } else {\r\n appendTo = document.body\r\n }\r\n const parent = document.createElement('div')\r\n let instance = createVNode(Main, options)\r\n instance.appContext = defaultContext;\r\n instance.props.onDestroy = () => {\r\n render(null, parent)\r\n parent.remove();\r\n }\r\n render(instance, parent)\r\n appendTo.appendChild(parent.firstElementChild);\r\n return instance;\r\n }\r\n}\r\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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=eea3fb88\"","export default (() => {\r\n let dialogDom;\r\n\r\n function setEvent (el, value, event, hide) {\r\n let v_params = value,\r\n e_params = event,\r\n h_params = hide\r\n el.oncontextmenu = function (e) {\r\n const { clientWidth, clientHeight } = document.documentElement;\r\n let { clientX: divLeft, clientY: divTop } = e;\r\n dialogDom.style.display = 'block';\r\n const { offsetWidth: dialogDomWidth, offsetHeight: dialogDomHeight } = dialogDom;\r\n\r\n let calcWidth = clientWidth - divLeft - dialogDomWidth\r\n let calcHeight = clientHeight - divTop - dialogDomHeight\r\n if (calcHeight < 0) {\r\n divTop = divTop - dialogDomHeight\r\n }\r\n if (calcWidth < 0) {\r\n divLeft = divLeft - dialogDomWidth\r\n }\r\n let liDom = dialogDom.querySelectorAll('li');\r\n const firstLevelItems = Array.from(liDom).filter(item => {\r\n return item.parentNode === dialogDom;\r\n });\r\n let len = firstLevelItems.length\r\n for (let i = 0; i < len; i++) {\r\n let ele = firstLevelItems[i]\r\n let childDom = ele.querySelector(\"ul\");\r\n if (childDom) {\r\n childDom.style.position = 'absolute'\r\n childDom.style.top = '-9999px'\r\n childDom.style.width = 'max-content'\r\n ele.addEventListener('mouseenter', () => {\r\n childDom.style.left = `${dialogDom.clientWidth + 1}px`;\r\n const calc_height = clientHeight - (divTop + ele.clientHeight * (i + 1)) - childDom.clientHeight\r\n const top = calc_height < 0 ? calc_height : 0\r\n childDom.style.top = `${top}px`;\r\n });\r\n ele.addEventListener('mouseleave', () => {\r\n childDom.style.top = '-9999px'\r\n });\r\n }\r\n\r\n }\r\n\r\n function closeDialog () {\r\n dialogDom.style.display = 'none'\r\n h_params && h_params(v_params, e)\r\n document.removeEventListener('click', closeDialog)\r\n }\r\n\r\n function showDialog () {\r\n dialogDom.style.position = 'fixed'\r\n dialogDom.style.zIndex = 1024\r\n dialogDom.style.top = `${divTop}px`;\r\n dialogDom.style.left = `${divLeft}px`;\r\n document.addEventListener('click', closeDialog)\r\n }\r\n if (e_params) {\r\n e_params(v_params, showDialog);\r\n } else {\r\n showDialog()\r\n }\r\n return false;\r\n }\r\n\r\n }\r\n return {\r\n mounted (el, binding) {\r\n let id = binding.value.id\r\n let event = binding.value.event\r\n let hide = binding.value.hide\r\n let value = binding.value.value\r\n dialogDom = document.getElementById(id)\r\n if (!dialogDom) return\r\n dialogDom.style.display = 'none'\r\n setEvent(el, value, event, hide);\r\n },\r\n updated (el, binding) {\r\n let event = binding.value.event\r\n let hide = binding.value.hide\r\n let value = binding.value.value\r\n setEvent(el, value, event, hide);\r\n },\r\n unmounted (el) {\r\n el.oncontextmenu = null\r\n }\r\n }\r\n})()\r\n","export default (() => {\r\n function init (el, binding) {\r\n const value = binding.value;\r\n if (value === false) {\r\n el.style.display = \"none\"\r\n } else {\r\n el.style.display = \"\"\r\n }\r\n }\r\n return {\r\n mounted (el, binding) {\r\n init(el, binding)\r\n },\r\n updated (el, binding) {\r\n init(el, binding)\r\n }\r\n }\r\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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=9fc5e2de\"","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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=60c71032\"","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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=24f0ac6b\"","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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=2c4aa061\"","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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=61501c4f\"","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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=abb6161c\"","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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./column.vue?vue&type=template&id=2d011b64\"","// crud配置文件\r\nexport default {\r\n menuWidth: 220,\r\n menuFixed: 'right',\r\n menuXsWidth: 100,\r\n menuAlign: 'center',\r\n menuHeaderAlign: 'center',\r\n headerAlign: 'left',\r\n // 图标\r\n cancelBtnIcon: 'el-icon-circle-close',\r\n viewBtnIcon: 'el-icon-view',\r\n editBtnIcon: 'el-icon-edit',\r\n copyBtnIcon: 'el-icon-copy-document',\r\n addBtnIcon: 'el-icon-plus',\r\n printBtnIcon: 'el-icon-printer',\r\n mockBtnIcon: 'el-icon-edit',\r\n excelBtnIcon: 'el-icon-download',\r\n delBtnIcon: 'el-icon-delete',\r\n searchBtnIcon: 'el-icon-search',\r\n emptyBtnIcon: 'el-icon-delete',\r\n saveBtnIcon: 'el-icon-circle-plus',\r\n updateBtnIcon: 'el-icon-circle-check',\r\n columnBtnIcon: 'el-icon-operation',\r\n filterBtnIcon: 'el-icon-tickets',\r\n gridBtnIcon: 'el-icon-grid',\r\n refreshBtnIcon: 'el-icon-refresh',\r\n // 显隐\r\n viewBtn: false,\r\n editBtn: true,\r\n copyBtn: false,\r\n cancelBtn: true,\r\n addBtn: true,\r\n addRowBtn: false,\r\n printBtn: false,\r\n mockBtn: false,\r\n excelBtn: false,\r\n delBtn: true,\r\n cellBtn: false,\r\n dateBtn: false,\r\n updateBtn: true,\r\n saveBtn: true,\r\n refreshBtn: true,\r\n columnBtn: true,\r\n filterBtn: false,\r\n gridBtn: true,\r\n queryBtn: true,\r\n menuBtn: false,\r\n searchBtn: true,\r\n clearBtn: true,\r\n selectClearBtn: true,\r\n searchShow: true,\r\n tip: true,\r\n dialogWidth: '60%',\r\n dialogDrag: false,\r\n formFullscreen: false,\r\n pageBackground: true,\r\n page: true,\r\n menu: true,\r\n indexLabel: '#',\r\n indexWidth: 50,\r\n indexFixed: 'left',\r\n selectionWidth: 50,\r\n selectionFixed: 'left',\r\n expandWidth: 60,\r\n expandFixed: 'left',\r\n filterMultiple: true,\r\n calcHeight: 300,\r\n width: '100%',\r\n searchLabelWidth: 80,\r\n searchSpan: 6,\r\n dropRowClass: '.el-table__body-wrapper table tbody',\r\n dropColClass: '.el-table__header-wrapper tr',\r\n ghostClass: 'avue-crud__ghost',\r\n};\r\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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./node.vue?vue&type=template&id=49516e7a\"","// form配置文件\r\nexport default {\r\n labelWidth: 90,\r\n span: 12,\r\n xsSpan: 24\r\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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=c3ce0fba\"","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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./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.12_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.12_webpack@4.47.0/node_modules/vue-loader/dist/index.js??ref--1!./index.vue?vue&type=template&id=69e2093e\"","import bem from 'utils/bem';\r\nimport { KEY_COMPONENT_NAME } from 'global/variable';\r\nexport default function (sfc) {\r\n sfc.name = KEY_COMPONENT_NAME + sfc.name;\r\n sfc.mixins = sfc.mixins || [];\r\n sfc.mixins.push(bem);\r\n\r\n return sfc;\r\n}\r\n","import { validatenull } from \"utils/validate\";\r\nimport {\r\n KEY_COMPONENT_NAME,\r\n DIC_SPLIT,\r\n ARRAY_LIST,\r\n DATE_LIST,\r\n INPUT_LIST,\r\n ARRAY_VALUE_LIST,\r\n MULTIPLE_LIST,\r\n SELECT_LIST,\r\n RANGE_LIST,\r\n} from \"global/variable\";\r\nimport { detailDataType, findObject, createObj } from \"utils/util\";\r\nimport { t } from \"locale\";\r\n/**\r\n * 计算级联属性\r\n */\r\nexport const calcCascader = (list = []) => {\r\n list.forEach((ele) => {\r\n let cascader = ele.cascader;\r\n if (!validatenull(cascader)) {\r\n let parentProp = ele.prop;\r\n cascader.forEach((citem) => {\r\n let column = findObject(list, citem);\r\n if (column) column.parentProp = parentProp;\r\n });\r\n }\r\n });\r\n return list;\r\n};\r\n/**\r\n * 计算空白列row\r\n */\r\nlet count = 0;\r\nexport const calcCount = (ele, spanDefault = 12, init = false) => {\r\n const spanAll = 24;\r\n if (init) count = 0;\r\n const currentSpan = (ele.span || spanDefault) + (ele.offset || 0);\r\n count += currentSpan;\r\n if (ele.row && count < spanAll) {\r\n ele.count = spanAll - count;\r\n count = 0;\r\n } else if (count >= spanAll) {\r\n count = 0;\r\n }\r\n return ele;\r\n};\r\n\r\n/**\r\n * 初始化数据格式\r\n */\r\nexport const initVal = (value, safe) => {\r\n let {\r\n type,\r\n multiple,\r\n dataType,\r\n separator = DIC_SPLIT,\r\n alone,\r\n emitPath,\r\n range,\r\n } = safe;\r\n let list = value;\r\n if (\r\n (MULTIPLE_LIST.includes(type) && multiple == true) ||\r\n (ARRAY_VALUE_LIST.includes(type) && emitPath !== false) ||\r\n (RANGE_LIST.includes(type) && range == true)\r\n ) {\r\n if (!Array.isArray(list)) {\r\n if (validatenull(list)) {\r\n list = [];\r\n } else {\r\n if (dataType == \"json\") {\r\n list = JSON.parse(list);\r\n } else {\r\n list = (list + \"\").split(separator) || [];\r\n }\r\n }\r\n }\r\n // 数据转化\r\n list.forEach((ele, index) => {\r\n list[index] = detailDataType(ele, dataType);\r\n });\r\n if (ARRAY_LIST.includes(type) && validatenull(list) && alone) list = [\"\"];\r\n } else {\r\n list = detailDataType(list, dataType);\r\n }\r\n return list;\r\n};\r\n\r\n/**\r\n * 搜索框获取动态组件\r\n */\r\nexport const getSearchType = (column) => {\r\n const type = column.type;\r\n const range = column.searchRange;\r\n let result = type;\r\n if (column.searchType) return column.searchType;\r\n if ([\"radio\", \"checkbox\", \"switch\"].includes(type)) {\r\n result = \"select\";\r\n } else if (DATE_LIST.includes(type)) {\r\n let rangeKey = \"range\";\r\n if (range) {\r\n if (!type.includes(rangeKey)) {\r\n result = type + rangeKey;\r\n } else {\r\n result = type;\r\n }\r\n } else result = type.replace(rangeKey, \"\");\r\n } else if ([\"textarea\"].includes(type)) {\r\n result = \"input\";\r\n }\r\n return result;\r\n};\r\n\r\n/**\r\n * 动态获取组件\r\n */\r\nexport const getComponent = (type, component) => {\r\n let result = type || \"input\";\r\n if (!validatenull(component)) {\r\n return component;\r\n } else if (ARRAY_LIST.includes(type)) {\r\n result = \"array\";\r\n } else if ([\"time\", \"timerange\"].includes(type)) {\r\n result = \"time\";\r\n } else if (DATE_LIST.includes(type)) {\r\n result = \"date\";\r\n } else if ([\"password\", \"textarea\", \"search\"].includes(type)) {\r\n result = \"input\";\r\n } else if (INPUT_LIST.includes(type)) {\r\n result = \"input-\" + type;\r\n }\r\n return KEY_COMPONENT_NAME + result;\r\n};\r\n\r\n/**\r\n * 表格初始化值\r\n */\r\n\r\nexport const formInitVal = (list = []) => {\r\n let tableForm = {};\r\n list.forEach((ele) => {\r\n if (\r\n [\"rate\", \"slider\", \"number\"].includes(ele.type) ||\r\n ele.dataType === \"number\" ||\r\n (ele.type == \"select\" && ele.virtualize == true)\r\n ) {\r\n tableForm[ele.prop] = undefined;\r\n } else if (\r\n (ARRAY_VALUE_LIST.includes(ele.type) &&\r\n ele.emitPath !== false &&\r\n ele.dataType != \"json\") ||\r\n (MULTIPLE_LIST.includes(ele.type) && ele.multiple) ||\r\n ele.dataType === \"array\"\r\n ) {\r\n tableForm[ele.prop] = [];\r\n } else if (RANGE_LIST.includes(ele.type) && ele.range == true) {\r\n tableForm[ele.prop] = [0, 0];\r\n } else {\r\n tableForm[ele.prop] = \"\";\r\n }\r\n if (ele.bind) {\r\n tableForm = createObj(tableForm, ele.bind);\r\n }\r\n // 表单默认值设置\r\n if (!validatenull(ele.value)) {\r\n tableForm[ele.prop] = ele.value;\r\n }\r\n });\r\n return tableForm;\r\n};\r\n\r\nexport const getPlaceholder = function (column, type) {\r\n const placeholder = column.placeholder;\r\n const label = column.label;\r\n if (type === \"search\") {\r\n const searchPlaceholder = column.searchPlaceholder;\r\n if (!validatenull(searchPlaceholder)) {\r\n return searchPlaceholder;\r\n } else {\r\n return label;\r\n }\r\n } else if (validatenull(placeholder)) {\r\n if (SELECT_LIST.includes(column.type)) {\r\n return `${t(\"tip.select\")} ${label}`;\r\n } else {\r\n return `${t(\"tip.input\")} ${label}`;\r\n }\r\n }\r\n\r\n return placeholder;\r\n};\r\n","import { validatenull } from 'utils/validate';\r\nimport { getPasswordChar, getDicValue, getAsVal, detailDataType } from 'utils/util';\r\nimport { DIC_SPLIT, DIC_SHOW_SPLIT, DATE_LIST, MULTIPLE_LIST, ARRAY_VALUE_LIST } from 'global/variable';\r\nimport dayjs from 'dayjs';\r\nexport const detail = (row = {}, column = {}, option = {}, dic = []) => {\r\n let result = row[column.prop];\r\n let type = column.type;\r\n let separator = column.separator;\r\n // 深结构绑定处理\r\n if (column.bind) result = getAsVal(row, column.bind);\r\n if (!validatenull(result)) {\r\n let selectFlag = MULTIPLE_LIST.includes(column.type) && column.multiple;\r\n let arrayFlag = ARRAY_VALUE_LIST.includes(column.type) && column.emitPath !== false;\r\n if ((selectFlag || arrayFlag) && !Array.isArray(result) && !column.dataType) column.dataType = 'string';\r\n if (column.dataType) {\r\n if (selectFlag || arrayFlag) {\r\n if (!Array.isArray(result)) {\r\n if (column.dataType == 'json') {\r\n result = JSON.parse(result);\r\n } else {\r\n result = result.split(separator || DIC_SPLIT);\r\n }\r\n }\r\n result.forEach(ele => {\r\n ele = detailDataType(ele, column.dataType);\r\n });\r\n } else {\r\n result = detailDataType(result, column.dataType);\r\n }\r\n }\r\n if (type === 'password') {\r\n result = getPasswordChar(result, '*');\r\n } else if (DATE_LIST.includes(type) && column.format) {\r\n const format = column.format;\r\n let formatValue = dayjs().format('YYYY-MM-DD');\r\n\r\n // 处理多个日期的情况 (dates、years、months)\r\n if (['dates', 'years', 'months'].includes(type)) {\r\n if (typeof result === 'string') {\r\n result = result.split(',');\r\n }\r\n if (Array.isArray(result)) {\r\n result = result.map(date => dayjs(date).format(format)).join(column.separator || ',');\r\n }\r\n }\r\n // 处理日期范围\r\n else if (type.indexOf('range') !== -1) {\r\n let [date1 = '', date2 = ''] = result;\r\n if (type === 'timerange') {\r\n date1 = `${formatValue} ${date1}`;\r\n date2 = `${formatValue} ${date2}`;\r\n }\r\n result = [dayjs(date1).format(format), dayjs(date2).format(format)].join(column.separator || '~');\r\n }\r\n // 处理单个日期\r\n else {\r\n if (type === 'time') {\r\n result = `${formatValue} ${result}`;\r\n }\r\n result = dayjs(result).format(format);\r\n }\r\n }\r\n }\r\n // 字典处理\r\n if (!validatenull(dic)) {\r\n result = getDicValue(dic, result, column.props || option.props);\r\n }\r\n // 自定义格式化\r\n if (typeof column.formatter === 'function') {\r\n result = column.formatter(row, row[column.prop], result, column);\r\n } else if (Array.isArray(result) && !validatenull(dic)) {\r\n result = result.join(separator || DIC_SHOW_SPLIT);\r\n }\r\n return result;\r\n};\r\n","import { detailDataType, getAsVal } from 'utils/util';\r\nimport { validatenull } from 'utils/validate';\r\nimport { DIC_PROPS } from 'global/variable';\r\nconst key = 'key';\r\nfunction getDataType(list = [], props = {}, type) {\r\n let valueKey = props.value || DIC_PROPS.value;\r\n let childrenKey = props.children || DIC_PROPS.children;\r\n list.forEach(ele => {\r\n ele[valueKey] = detailDataType(ele[valueKey], type);\r\n if (ele[childrenKey]) getDataType(ele[childrenKey], props, type);\r\n });\r\n return list;\r\n};\r\n\r\nfunction getResData(data, props, dataType) {\r\n const bind = props.res;\r\n let res = data;\r\n let deep = data.data;\r\n if (bind) {\r\n res = getAsVal(res, bind);\r\n } else if (deep) {\r\n res = Array.isArray(deep) ? deep : [deep];\r\n }\r\n if (dataType) res = getDataType(res, props, dataType);\r\n return res;\r\n};\r\nexport const loadCascaderDic = (columnOption, safe) => {\r\n return new Promise(resolve => {\r\n let list = [];\r\n let result = {};\r\n let columnList = columnOption.filter(ele => ele.parentProp);\r\n safe.data.forEach((ele, index) => {\r\n if (!safe.cascaderDIC[index]) safe.cascaderDIC[index] = {};\r\n columnList.forEach(column => {\r\n if (column.hide !== true && column.dicFlag !== false) {\r\n list.push(new Promise(resolve => {\r\n if (ele[column.parentProp]) {\r\n sendDic({\r\n url: column.dicUrl,\r\n props: column.props,\r\n method: column.dicMethod,\r\n headers: column.dicHeaders,\r\n formatter: column.dicFormatter,\r\n query: column.dicQuery,\r\n dataType: column.dataType,\r\n form: ele,\r\n value: ele[column.parentProp]\r\n }, safe).then(res => {\r\n let obj = {\r\n prop: column.prop,\r\n data: res,\r\n index: index\r\n };\r\n safe.cascaderDIC[index][obj.prop] = obj.data;\r\n resolve(obj);\r\n });\r\n } else {\r\n let obj = {\r\n prop: column.prop,\r\n data: [],\r\n index: index\r\n };\r\n safe.cascaderDIC[index][obj.prop] = obj.data;\r\n resolve(obj);\r\n }\r\n }));\r\n }\r\n });\r\n });\r\n Promise.all(list).then(data => {\r\n data.forEach(ele => {\r\n if (!result[ele.index]) result[ele.index] = {};\r\n result[ele.index][ele.prop] = ele.data;\r\n });\r\n resolve(result);\r\n });\r\n });\r\n};\r\nexport const loadDic = (option, safe) => {\r\n return new Promise(resolve => {\r\n let list = [], result = {};\r\n let notList = [], nameList = [], column = option.column || [];\r\n column.forEach(ele => {\r\n let url = ele.dicUrl;\r\n let prop = ele.prop;\r\n let parentProp = ele.parentProp;\r\n notList = notList.concat(ele.cascader || []);\r\n let flag = ele.dicFlag === false || ele.lazy === true || notList.includes(prop);\r\n if (url && !parentProp && !flag) {\r\n list.push(new Promise(resolve => {\r\n sendDic({\r\n url: url,\r\n name: prop,\r\n method: ele.dicMethod,\r\n headers: ele.dicHeaders,\r\n formatter: ele.dicFormatter,\r\n props: ele.props,\r\n dataType: ele.dataType,\r\n query: ele.dicQuery\r\n }, safe).then(res => {\r\n safe.DIC[prop] = res;\r\n resolve(res);\r\n });\r\n }));\r\n }\r\n });\r\n Promise.all(list).then(res => {\r\n nameList.forEach((ele, index) => {\r\n result[ele] = res[index];\r\n });\r\n resolve(result);\r\n });\r\n });\r\n};\r\n\r\nexport const loadLocalDic = (option, safe) => {\r\n let columnData = {};\r\n let optionData = option.dicData || {};\r\n option.column.forEach(ele => {\r\n const dic = ele.dicData;\r\n const prop = ele.prop;\r\n if (dic instanceof Function) {\r\n let dicResult = dic(ele);\r\n if (dicResult instanceof Promise) {\r\n dicResult.then(res => {\r\n safe.DIC[prop] = getDataType(res, ele.props, ele.dataType);\r\n });\r\n } else {\r\n columnData[prop] = getDataType(dicResult, ele.props, ele.dataType);\r\n }\r\n } else if (dic instanceof Array) {\r\n columnData[prop] = getDataType(dic, ele.props, ele.dataType);\r\n }\r\n });\r\n let result = { ...optionData, ...columnData };\r\n Object.keys(result).forEach(ele => {\r\n safe.DIC[ele] = result[ele];\r\n });\r\n return result;\r\n};\r\n\r\nexport const sendDic = (params, safe) => {\r\n let { url, query, method, props, formatter, headers, value, column = {}, form = {}, dataType } = params;\r\n url = column.dicUrl || url;\r\n method = (column.dicMethod || method || 'get').toLowerCase();\r\n headers = column.dicHeaders || headers || {};\r\n query = column.dicQuery || query || {};\r\n formatter = column.dicFormatter || formatter;\r\n props = column.props || props || {};\r\n let list = url.match(/[^\\{\\}]+(?=\\})/g) || [];\r\n list.forEach(ele => {\r\n let result = ele === key ? value : form[ele];\r\n if (validatenull(result)) result = '';\r\n url = url.replace(`{{${ele}}}`, result);\r\n });\r\n\r\n const getKey = (data) => {\r\n let result = {};\r\n Object.keys(data).forEach(ele => {\r\n let eleKey = data[ele];\r\n if (typeof (eleKey) === 'string' && eleKey.match(/\\{{|}}/g)) {\r\n let prop = eleKey.replace(/\\{{|}}/g, '');\r\n result[ele] = prop == key ? value : form[prop];\r\n } else {\r\n result[ele] = eleKey;\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n return new Promise((resolve, reject) => {\r\n if (!url) resolve([]);\r\n const callback = (res) => {\r\n let list = [];\r\n res = res.data || {};\r\n if (typeof formatter === 'function') {\r\n list = formatter(res, form);\r\n } else {\r\n list = getResData(res, props, dataType);\r\n }\r\n resolve(list);\r\n };\r\n const getData = () => {\r\n let data = getKey(query);\r\n if (method == 'get') return { params: data };\r\n return { data };\r\n };\r\n safe.$axios(Object.assign({\r\n url,\r\n method,\r\n headers: getKey(headers)\r\n }, getData())).then(function(res) {\r\n callback(res);\r\n }).catch(err => {\r\n reject(err);\r\n });\r\n });\r\n};\r\n","import { t } from 'locale';\r\n\r\nexport default {\r\n methods: {\r\n t(...args) {\r\n return t.apply(this, args);\r\n }\r\n }\r\n};","import $Log from 'plugin/logs/';\r\nconst list = {\r\n 'AliOSS': {\r\n url: 'https://cdn.staticfile.org/ali-oss/6.17.1/aliyun-oss-sdk.min.js',\r\n title: '阿里云云图片上传,需引入OSS的sdk',\r\n github: 'https://github.com/ali-sdk/ali-oss/'\r\n },\r\n 'Map': {\r\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',\r\n title: '地图组件,需引入高德SDK',\r\n },\r\n 'MapUi': {\r\n url: 'https://webapi.amap.com/ui/1.0/main.js?v=1.0.11',\r\n title: '地图组件,需引入高德UISDK',\r\n },\r\n 'Sortable': {\r\n url: 'https://cdn.staticfile.org/Sortable/1.10.0-rc2/Sortable.min.js',\r\n title: '拖拽,需引入sortableJs',\r\n github: 'https://github.com/SortableJS/Sortable'\r\n },\r\n 'Screenshot': {\r\n url: 'https://cdn.staticfile.org/html2canvas/0.5.0-beta4/html2canvas.min.js',\r\n title: '需引入html2canvas依赖包',\r\n github: 'https://github.com/niklasvh/html2canvas/'\r\n },\r\n 'COS': {\r\n url: 'https://avuejs.com/cdn/cos-js-sdk-v5.min.js',\r\n title: '腾讯云云图片上传,需引入COS'\r\n },\r\n 'CryptoJS': {\r\n url: 'https://avuejs.com/cdn/CryptoJS.js',\r\n title: '七牛云图片上传,需引入CryptoJS'\r\n },\r\n 'file-saver': {\r\n url: 'https://cdn.staticfile.org/FileSaver.js/2014-11-29/FileSaver.min.js',\r\n title: '需引入文件操作包',\r\n github: 'https://github.com/eligrey/FileSaver.js'\r\n },\r\n 'xlsx': {\r\n url: 'https://cdn.staticfile.org/xlsx/0.18.2/xlsx.full.min.js',\r\n title: '需引入excel操作包',\r\n github: 'https://github.com/protobi/js-xlsx'\r\n },\r\n 'mock': {\r\n url: 'https://cdn.staticfile.org/Mock.js/1.0.1-beta3/mock-min.js',\r\n title: '需要引入mock模拟数据包',\r\n github: 'https://github.com/Colingo/mock'\r\n }\r\n};\r\n\r\nexport default (() => {\r\n return {\r\n logs: function (name) {\r\n const obj = list[name];\r\n $Log.capsule(\r\n name,\r\n obj.title,\r\n 'warning'\r\n );\r\n $Log.warning('CDN:' + (obj.url || '-'));\r\n $Log.warning('GITHUB:' + (obj.github || '-'));\r\n }\r\n };\r\n})();\r\n","export default {\r\n methods: {\r\n getSlotName (item = {}, type = 'D', slot) {\r\n let result = {\r\n F: '-form',\r\n H: '-header',\r\n E: '-error',\r\n L: '-label',\r\n S: '-search',\r\n T: '-type',\r\n D: ''\r\n }\r\n let name = (item.prop + result[type])\r\n if (slot) return slot[name]\r\n return name\r\n },\r\n getSlotList (list = [], slot, propList) {\r\n propList = propList.map(ele => ele.prop)\r\n return Object.keys(slot).filter(ele => {\r\n let result = false;\r\n if (!propList.includes(ele)) {\r\n list.forEach(name => {\r\n if (ele.includes(name)) result = true;\r\n })\r\n }\r\n return result;\r\n })\r\n }\r\n }\r\n}","export const KEY_COMPONENT_NAME = 'avue-';\r\nexport const KEY_ECHART_NAME = 'echart-';\r\nexport const DIC_PROPS = {\r\n rowKey: 'id',\r\n rowParentKey: 'parentId',\r\n nodeKey: 'id',\r\n label: 'label',\r\n value: 'value',\r\n type: 'type',\r\n desc: 'desc',\r\n groups: 'groups',\r\n title: 'title',\r\n leaf: 'leaf',\r\n children: 'children',\r\n hasChildren: 'hasChildren',\r\n labelText: '名称',\r\n disabled: 'disabled'\r\n};\r\nexport const DIC_HTTP_PROPS = {\r\n name: 'name',\r\n url: 'url',\r\n fileType: 'type',\r\n fileName: 'file',\r\n res: ''\r\n};\r\nexport const DATE_LIST = [\r\n 'dates',\r\n 'date',\r\n 'datetime',\r\n 'datetimerange',\r\n 'daterange',\r\n 'time',\r\n 'timerange',\r\n 'week',\r\n 'month',\r\n 'months',\r\n 'monthrange',\r\n 'year',\r\n 'years',\r\n 'yearrange'\r\n];\r\nexport const CHILDREN_LIST = ['table', 'dynamic'];\r\nexport const INPUT_LIST = ['tree', 'number', 'icon', 'color', 'table', 'map', 'tag'];\r\nexport const ARRAY_LIST = ['img', 'array', 'url'];\r\nexport const MULTIPLE_LIST = ['cascader', 'tree', 'select', 'table'];\r\nexport const RANGE_LIST = ['slider'];\r\nexport const ARRAY_VALUE_LIST = ARRAY_LIST.concat(['tag', 'upload', 'dynamic', 'map', 'checkbox', 'cascader', 'timerange', 'monthrange', 'daterange', 'yearrange', 'datetimerange', 'dates', 'months', 'years']);\r\nexport const SELECT_LIST = DATE_LIST.concat(['select', 'checkbox', 'radio', 'cascader', 'tree', 'color', 'icon', 'table', 'map']);\r\nexport const DIC_SHOW_SPLIT = ' | ';\r\nexport const DIC_SPLIT = ',';\r\nexport const typeList = {\r\n img: /(\\.|^)(gif|jpg|jpeg|png|webp|svg|GIF|JPG|JPEG|PNG|WEBP|SVG)/,\r\n video: /(\\.|^)(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|ogg|mp4)/,\r\n audio: /(\\.|^)(mp3|wav|MP3|WAV)/\r\n};\r\n","import * as Icons from '@element-plus/icons-vue'\r\nexport default (app) => {\r\n for (const key in Icons) {\r\n app.component(transElIconName(key), Icons[key])\r\n }\r\n}\r\n\r\nfunction transElIconName (iconName) {\r\n return 'el-icon' + iconName.replace(/[A-Z]/g, (match) => '-' + match.toLowerCase())\r\n}","import components from './ui/index';\r\nimport {\r\n version\r\n} from './version';\r\nimport axios from 'axios';\r\nimport {\r\n validatenull\r\n} from 'utils/validate.js';\r\nimport {\r\n randomId,\r\n deepClone,\r\n dataURLtoFile,\r\n findObject,\r\n validData,\r\n findArray,\r\n findNode,\r\n setPx,\r\n isJson,\r\n downFile,\r\n loadScript\r\n} from 'utils/util';\r\nimport contextmenu from 'packages/core/directive/contextmenu';\r\nimport $Export from 'plugin/export/';\r\nimport $Watermark from 'plugin/watermark/';\r\nimport $Log from 'plugin/logs/';\r\nimport locale from './locale/';\r\nimport $Screenshot from 'plugin/screenshot/';\r\nimport $Clipboard from 'plugin/clipboard/';\r\nimport $Print from 'plugin/print/';\r\nimport $ImagePreview from 'packages/core/components/image-preview/';\r\nimport $DialogForm from 'packages/core/components/dialog-form/';\r\nimport createIcon from './icon';\r\nlet plugins = {\r\n $DialogForm,\r\n $ImagePreview,\r\n $Export,\r\n $Print,\r\n $Clipboard,\r\n $Watermark,\r\n $Log,\r\n $Screenshot,\r\n deepClone,\r\n dataURLtoFile,\r\n isJson,\r\n setPx,\r\n validData,\r\n findArray,\r\n findNode,\r\n validatenull,\r\n downFile,\r\n loadScript,\r\n findObject,\r\n randomId\r\n\r\n};\r\nlet directive = {\r\n contextmenu\r\n};\r\nconst install = function (Vue, opts = {}) {\r\n const defaultOption = {\r\n size: opts.size || 'default',\r\n calcHeight: opts.calcHeight || 0,\r\n menuType: opts.menuType || 'text',\r\n formOption: opts.formOption || {},\r\n crudOption: opts.crudOption || {},\r\n appendToBody: validData(opts.appendToBody, true),\r\n canvas: Object.assign({\r\n text: 'avuejs.com',\r\n fontFamily: 'microsoft yahei',\r\n color: '#999',\r\n fontSize: 16,\r\n opacity: 100,\r\n bottom: 10,\r\n right: 10,\r\n ratio: 1\r\n }, opts.canvas),\r\n qiniu: Object.assign({\r\n AK: '',\r\n SK: '',\r\n scope: '',\r\n url: '',\r\n bucket: 'https://upload.qiniup.com',\r\n deadline: 1\r\n }, (opts.qiniu || {})),\r\n ali: Object.assign({\r\n region: '',\r\n endpoint: '',\r\n stsToken: '',\r\n accessKeyId: '',\r\n accessKeySecret: '',\r\n bucket: ''\r\n }, (opts.ali || {}))\r\n };\r\n Vue.config.globalProperties.$AVUE = Object.assign(opts, defaultOption);\r\n Object.keys(components).forEach(ele => {\r\n const component = components[ele];\r\n Vue.component(component.name, component);\r\n });\r\n createIcon(Vue);\r\n Object.keys(plugins).forEach((key) => {\r\n if (['$DialogForm', '$ImagePreview'].includes(key)) {\r\n Vue.config.globalProperties[key] = plugins[key](Vue._context);\r\n } else {\r\n Vue.config.globalProperties[key] = plugins[key];\r\n }\r\n\r\n });\r\n Object.keys(directive).forEach((key) => {\r\n Vue.directive(key, directive[key]);\r\n });\r\n // 国际化\r\n locale.use(opts.locale);\r\n locale.i18n(opts.i18n);\r\n Vue.config.globalProperties.$uploadFun = function (column = {}, safe) {\r\n safe = safe || this;\r\n let list = ['uploadPreview', 'uploadBefore', 'uploadAfter', 'uploadDelete', 'uploadError', 'uploadExceed', 'uploadSized'];\r\n let result = {};\r\n list.forEach(ele => {\r\n if (!column || (column.type === 'upload' && !column[ele])) {\r\n result[ele] = safe[ele];\r\n }\r\n });\r\n return result;\r\n };\r\n Vue.config.globalProperties.$axios = opts.axios || axios;\r\n\r\n};\r\nexport default {\r\n ...{\r\n version,\r\n locale,\r\n install\r\n },\r\n ...components,\r\n ...plugins\r\n};\r\n","const hasOwn = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);\r\n\r\nconst RE_NARGS = /(%|)\\{([0-9a-zA-Z_]+)\\}/g;\r\n/**\r\n * String format template\r\n * - Inspired:\r\n * https://github.com/Matt-Esch/string-template/index.js\r\n */\r\nexport default function (Vue) {\r\n /**\r\n * template\r\n *\r\n * @param {String} string\r\n * @param {Array} ...args\r\n * @return {String}\r\n */\r\n\r\n function template(string = \"\", ...args) {\r\n if (args.length === 1 && typeof args[0] === \"object\") {\r\n args = args[0];\r\n }\r\n\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n\r\n return string.replace(RE_NARGS, (match, prefix, i, index) => {\r\n let result;\r\n\r\n if (string[index - 1] === \"{\" && string[index + match.length] === \"}\") {\r\n return i;\r\n } else {\r\n result = hasOwn(args, i) ? args[i] : null;\r\n if (result === null || result === undefined) {\r\n return \"\";\r\n }\r\n\r\n return result;\r\n }\r\n });\r\n }\r\n\r\n return template;\r\n}\r\n","import Format from './format';\r\nimport defaultLang from './lang/zh';\r\nimport { createApp } from 'vue'\r\nconst Vue = createApp({})\r\nconst format = Format(Vue);\r\nlet lang = defaultLang;\r\nlet merged = false;\r\nlet i18nHandler = function () {\r\n const vuei18n = Object.getPrototypeOf(this || Vue || {}).$t;\r\n if (typeof vuei18n === 'function' && !!Vue.locale) {\r\n if (!merged) {\r\n merged = true;\r\n Vue.locale(\r\n Vue.config.lang,\r\n Object.assign(lang, Vue.locale(Vue.config.lang) || {}, { clone: true })\r\n );\r\n }\r\n return vuei18n.apply(this, arguments);\r\n }\r\n};\r\n\r\nexport const t = function (path, options) {\r\n let value = i18nHandler.apply(this, arguments);\r\n if (value !== null && value !== undefined) return value;\r\n\r\n const array = path.split('.');\r\n let current = lang;\r\n\r\n for (let i = 0, j = array.length; i < j; i++) {\r\n const property = array[i];\r\n value = current[property];\r\n if (i === j - 1) return format(value, options);\r\n if (!value) return '';\r\n current = value;\r\n }\r\n return '';\r\n};\r\n\r\nexport const use = function (l) {\r\n lang = l || lang;\r\n};\r\n\r\nexport const i18n = function (fn) {\r\n i18nHandler = fn || i18nHandler;\r\n};\r\n\r\nexport default { use, t, i18n };\r\n","export default {\r\n common: {\r\n submitBtn: '确 定',\r\n cancelBtn: '取 消',\r\n condition: '条件',\r\n display: '显示',\r\n hide: '隐藏'\r\n },\r\n tip: {\r\n select: '请选择',\r\n input: '请输入'\r\n },\r\n check: {\r\n checkAll: '全选'\r\n },\r\n upload: {\r\n upload: '点击上传',\r\n tip: '将文件拖到此处,或'\r\n },\r\n time: {\r\n start: '开始',\r\n end: '结束'\r\n },\r\n date: {\r\n start: '开始',\r\n end: '结束',\r\n t: '今日',\r\n y: '昨日',\r\n n: '近7天',\r\n a: '全部'\r\n },\r\n form: {\r\n printBtn: '打 印',\r\n mockBtn: '模 拟',\r\n submitBtn: '提 交',\r\n emptyBtn: '清 空'\r\n },\r\n crud: {\r\n excel: {\r\n name: '文件名',\r\n type: '数据',\r\n typeDic: {\r\n true: '当前数据(当前页全部的数据)',\r\n false: '选中的数据(当前页选中的数据)'\r\n },\r\n prop: '字段',\r\n params: '参数',\r\n paramsDic: {\r\n header: '表头',\r\n data: '数据源',\r\n headers: '复杂表头',\r\n sum: '合计统计'\r\n }\r\n },\r\n filter: {\r\n addBtn: '新增条件',\r\n clearBtn: '清空数据',\r\n resetBtn: '清空条件',\r\n cancelBtn: '取 消',\r\n submitBtn: '确 定'\r\n },\r\n column: {\r\n name: '列名',\r\n hide: '隐藏',\r\n fixed: '冻结',\r\n filters: '过滤',\r\n sortable: '排序',\r\n index: '顺序',\r\n width: '宽度'\r\n },\r\n emptyText: '暂无数据',\r\n tipStartTitle: '当前表格已选择',\r\n tipEndTitle: '项',\r\n editTitle: '编 辑',\r\n copyTitle: '复 制',\r\n addTitle: '新 增',\r\n viewTitle: '查 看',\r\n filterTitle: '过滤条件',\r\n showTitle: '列显隐',\r\n menu: '操作',\r\n addBtn: '新 增',\r\n show: '显 示',\r\n hide: '隐 藏',\r\n open: '展 开',\r\n shrink: '收 缩',\r\n printBtn: '打 印',\r\n mockBtn: '模 拟',\r\n excelBtn: '导 出',\r\n updateBtn: '修 改',\r\n cancelBtn: '取 消',\r\n searchBtn: '搜 索',\r\n emptyBtn: '清 空',\r\n menuBtn: '功 能',\r\n saveBtn: '保 存',\r\n viewBtn: '查 看',\r\n editBtn: '编 辑',\r\n copyBtn: '复 制',\r\n delBtn: '删 除'\r\n }\r\n};\r\n","export const getClient = (params) => {\r\n //oss 基本配置\r\n var client = new OSS(params)\r\n return client;\r\n}","function select(element) {\r\n let selectedText;\r\n\r\n if (element.nodeName === 'SELECT') {\r\n element.focus();\r\n\r\n selectedText = element.value;\r\n } else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\r\n let isReadOnly = element.hasAttribute('readonly');\r\n\r\n if (!isReadOnly) {\r\n element.setAttribute('readonly', '');\r\n }\r\n\r\n element.select();\r\n element.setSelectionRange(0, element.value.length);\r\n\r\n if (!isReadOnly) {\r\n element.removeAttribute('readonly');\r\n }\r\n\r\n selectedText = element.value;\r\n } else {\r\n if (element.hasAttribute('contenteditable')) {\r\n element.focus();\r\n }\r\n\r\n let selection = window.getSelection();\r\n let range = document.createRange();\r\n\r\n range.selectNodeContents(element);\r\n selection.removeAllRanges();\r\n selection.addRange(range);\r\n\r\n selectedText = selection.toString();\r\n }\r\n\r\n return selectedText;\r\n}\r\n\r\n\r\nexport default function ({ text }) {\r\n return new Promise((resolve, reject) => {\r\n const container = document.body;\r\n const isRTL = document.documentElement.getAttribute('dir') == 'rtl';\r\n const fakeElem = document.createElement('textarea');\r\n fakeElem.style.fontSize = '12pt';\r\n fakeElem.style.border = '0';\r\n fakeElem.style.padding = '0';\r\n fakeElem.style.margin = '0';\r\n fakeElem.style.position = 'absolute';\r\n fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\r\n let yPosition = window.pageYOffset || document.documentElement.scrollTop;\r\n fakeElem.style.top = `${yPosition}px`;\r\n fakeElem.setAttribute('readonly', '');\r\n fakeElem.value = text;\r\n container.appendChild(fakeElem);\r\n select(fakeElem);\r\n let succeeded;\r\n try {\r\n succeeded = document.execCommand('copy');\r\n resolve();\r\n } catch (err) {\r\n succeeded = false;\r\n reject();\r\n }\r\n })\r\n}","/* eslint-disable */\r\n\r\nimport { isJson, downFile, validData } from 'utils/util';\r\nimport packages from \"core/packages\";\r\nimport dayjs from 'dayjs'\r\nexport default {\r\n buildHeader (revealList) {\r\n let excelHeader = [];\r\n // 构建生成excel表头需要的数据结构\r\n this.getHeader(revealList, excelHeader, 0, 0);\r\n // 多行表头长短不一,短的向长的看齐,不够的补上行合并占位符\r\n let max = Math.max(...(excelHeader.map(a => a.length)))\r\n excelHeader.filter(e => e.length < max).forEach(\r\n e => this.pushRowSpanPlaceHolder(e, max - e.length))\r\n return excelHeader;\r\n },\r\n\r\n /**\r\n * 生成头部 \r\n * @param headers 展示的头部\r\n * @param excelHeader excel头部\r\n * @param deep 深度\r\n * @param perOffset 前置偏移量\r\n * @returns {number} 后置偏移量\r\n */\r\n getHeader (headers, excelHeader, deep, perOffset) {\r\n let offset = 0\r\n let cur = excelHeader[deep]\r\n if (!cur) {\r\n cur = excelHeader[deep] = []\r\n }\r\n // 填充行合并占位符\r\n this.pushRowSpanPlaceHolder(cur, perOffset - cur.length)\r\n for (let i = 0; i < headers.length; i++) {\r\n let head = headers[i]\r\n cur.push(head.label)\r\n if (head.hasOwnProperty('children') && Array.isArray(head.children)\r\n && head.children.length > 0) {\r\n let childOffset = this.getHeader(head.children, excelHeader, deep + 1,\r\n cur.length - 1)\r\n // 填充列合并占位符\r\n this.pushColSpanPlaceHolder(cur, childOffset - 1)\r\n offset += childOffset\r\n } else {\r\n offset++\r\n }\r\n }\r\n return offset;\r\n\r\n },\r\n /**\r\n * 填充行合并占位符\r\n * */\r\n pushRowSpanPlaceHolder (arr, count) {\r\n for (let i = 0; i < count; i++) {\r\n arr.push('!$ROW_SPAN_PLACEHOLDER')\r\n }\r\n },\r\n // 填充列合并占位符\r\n pushColSpanPlaceHolder (arr, count) {\r\n for (let i = 0; i < count; i++) {\r\n arr.push('!$COL_SPAN_PLACEHOLDER')\r\n }\r\n },\r\n doMerges (arr) {\r\n // 要么横向合并 要么纵向合并\r\n let deep = arr.length;\r\n let merges = [];\r\n for (let y = 0; y < deep; y++) {\r\n // 先处理横向合并\r\n let row = arr[y];\r\n let colSpan = 0\r\n for (let x = 0; x < row.length; x++) {\r\n if (row[x] === '!$COL_SPAN_PLACEHOLDER') {\r\n row[x] = undefined;\r\n if (x + 1 === row.length) {\r\n merges.push({ s: { r: y, c: x - colSpan - 1 }, e: { r: y, c: x } })\r\n }\r\n colSpan++\r\n } else if (colSpan > 0 && x > colSpan) {\r\n merges.push({ s: { r: y, c: x - colSpan - 1 }, e: { r: y, c: x - 1 } })\r\n colSpan = 0\r\n } else {\r\n colSpan = 0\r\n }\r\n }\r\n }\r\n // 再处理纵向合并\r\n let colLength = arr[0].length\r\n for (let x = 0; x < colLength; x++) {\r\n let rowSpan = 0\r\n for (let y = 0; y < deep; y++) {\r\n if (arr[y][x] === '!$ROW_SPAN_PLACEHOLDER') {\r\n arr[y][x] = undefined;\r\n if (y + 1 === deep) {\r\n merges.push({ s: { r: y - rowSpan, c: x }, e: { r: y, c: x } })\r\n }\r\n rowSpan++;\r\n } else if (rowSpan > 0 && y > rowSpan) {\r\n merges.push({ s: { r: y - rowSpan - 1, c: x }, e: { r: y - 1, c: x } })\r\n rowSpan = 0;\r\n } else {\r\n rowSpan = 0;\r\n }\r\n }\r\n }\r\n return merges;\r\n },\r\n\r\n /**\r\n * 从github复制过来的\r\n */\r\n aoa_to_sheet (data, headerRows) {\r\n const ws = {};\r\n const range = { s: { c: 10000000, r: 10000000 }, e: { c: 0, r: 0 } };\r\n for (let R = 0; R !== data.length; ++R) {\r\n for (let C = 0; C !== data[R].length; ++C) {\r\n if (range.s.r > R) {\r\n range.s.r = R;\r\n }\r\n if (range.s.c > C) {\r\n range.s.c = C;\r\n }\r\n if (range.e.r < R) {\r\n range.e.r = R;\r\n }\r\n if (range.e.c < C) {\r\n range.e.c = C;\r\n }\r\n /// 这里生成cell的时候,使用上面定义的默认样式\r\n const cell = {\r\n v: validData(data[R][C], ''),\r\n s: {\r\n font: { name: \"宋体\", sz: 11, color: { auto: 1, rgb: '000000' }, bold: true },\r\n alignment: {\r\n /// 自动换行\r\n wrapText: 1,\r\n // 居中\r\n horizontal: \"center\",\r\n vertical: \"center\",\r\n indent: 0\r\n }\r\n }\r\n };\r\n // 头部列表加边框\r\n if (R < headerRows) {\r\n cell.s.border = {\r\n top: { style: 'thin', color: { rgb: \"EBEEF5\" } },\r\n left: { style: 'thin', color: { rgb: \"EBEEF5\" } },\r\n bottom: { style: 'thin', color: { rgb: \"EBEEF5\" } },\r\n right: { style: 'thin', color: { rgb: \"EBEEF5\" } },\r\n };\r\n cell.s.fill = {\r\n patternType: 'solid',\r\n fgColor: { theme: 3, \"tint\": 0.3999755851924192, rgb: 'F5F7FA' },\r\n bgColor: { theme: 7, \"tint\": 0.3999755851924192, rgb: 'F5F7FA' }\r\n }\r\n }\r\n const cell_ref = XLSX.utils.encode_cell({ c: C, r: R });\r\n if (typeof cell.v === 'number') {\r\n cell.t = 'n';\r\n } else if (typeof cell.v === 'boolean') {\r\n cell.t = 'b';\r\n } else {\r\n cell.t = 's';\r\n }\r\n ws[cell_ref] = cell;\r\n }\r\n }\r\n if (range.s.c < 10000000) {\r\n ws['!ref'] = XLSX.utils.encode_range(range);\r\n }\r\n return ws;\r\n },\r\n s2ab (s) {\r\n let buf = new ArrayBuffer(s.length);\r\n let view = new Uint8Array(buf);\r\n for (let i = 0; i !== s.length; ++i) {\r\n view[i] = s.charCodeAt(i) & 0xFF;\r\n }\r\n return buf;\r\n },\r\n\r\n // 导出 excel\r\n excel (params) {\r\n if (!window.XLSX) {\r\n packages.logs(\"xlsx\");\r\n return;\r\n }\r\n return new Promise((resolve, reject) => {\r\n\r\n // 合并参数\r\n const _params = {\r\n prop: []\r\n };\r\n\r\n // 从参数中派生数据\r\n _params.header = this.buildHeader(params.columns);\r\n _params.title = params.title || dayjs().format('YYYY-MM-DD HH:mm:ss');\r\n const callback = (list) => {\r\n list.forEach(ele => {\r\n if (ele.children && ele.children instanceof Array) {\r\n callback(ele.children)\r\n } else {\r\n _params.prop.push(ele.prop)\r\n }\r\n })\r\n }\r\n callback(params.columns)\r\n _params.data = params.data.map(row =>\r\n _params.prop.map(prop => {\r\n let data = row[prop];\r\n if (isJson(data)) data = JSON.stringify(data);\r\n return data;\r\n })\r\n );\r\n let headerRows = _params.header.length;\r\n _params.header.push(..._params.data, []);\r\n // 计算合并\r\n let merges = this.doMerges(_params.header)\r\n // 生成sheet\r\n let ws = this.aoa_to_sheet(_params.header, headerRows);\r\n // 单元格合并\r\n ws['!merges'] = merges;\r\n // 头部冻结\r\n ws[\"!freeze\"] = {\r\n xSplit: \"1\",\r\n ySplit: \"\" + headerRows,\r\n topLeftCell: \"B\" + (headerRows + 1),\r\n activePane: \"bottomRight\",\r\n state: \"frozen\",\r\n };\r\n // 列宽\r\n ws['!cols'] = [{ wpx: 165 }];\r\n let workbook = {\r\n SheetNames: ['Sheet1'],\r\n Sheets: {}\r\n };\r\n workbook.Sheets.Sheet1 = ws;\r\n // excel样式\r\n let wopts = {\r\n bookType: 'xlsx',\r\n bookSST: false,\r\n type: 'binary',\r\n cellStyles: true\r\n };\r\n let wbout = XLSX.write(workbook, wopts);\r\n let blob = new Blob([this.s2ab(wbout)], { type: \"application/octet-stream\" });\r\n downFile(blob, _params.title + '.xlsx')\r\n resolve();\r\n });\r\n },// 导入 xlsx\r\n xlsx (file) {\r\n if (!window.saveAs || !window.XLSX) {\r\n packages.logs(\"file-saver\");\r\n packages.logs(\"xlsx\");\r\n return;\r\n }\r\n const xlsx = window.XLSX;\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n const fixdata = data => {\r\n let o = ''\r\n let l = 0\r\n const w = 10240\r\n for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)))\r\n o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)))\r\n return o\r\n }\r\n const getHeaderRow = sheet => {\r\n const headers = []\r\n const range = xlsx.utils.decode_range(sheet['!ref'])\r\n let C\r\n const R = range.s.r\r\n for (C = range.s.c; C <= range.e.c; ++C) {\r\n var cell = sheet[xlsx.utils.encode_cell({ c: C, r: R })]\r\n var hdr = 'UNKNOWN ' + C\r\n if (cell && cell.t) hdr = xlsx.utils.format_cell(cell)\r\n headers.push(hdr)\r\n }\r\n return headers\r\n }\r\n reader.onload = e => {\r\n const data = e.target.result\r\n const fixedData = fixdata(data)\r\n const workbook = xlsx.read(btoa(fixedData), { type: 'base64' })\r\n const firstSheetName = workbook.SheetNames[0]\r\n const worksheet = workbook.Sheets[firstSheetName]\r\n const header = getHeaderRow(worksheet)\r\n const results = xlsx.utils.sheet_to_json(worksheet)\r\n resolve({ header, results })\r\n }\r\n reader.readAsArrayBuffer(file)\r\n })\r\n }\r\n}","const log = {};\r\n\r\n/**\r\n * @description 返回这个样式的颜色值\r\n * @param {String} type 样式名称 [ primary | success | warning | danger | text ]\r\n */\r\nfunction typeColor (type = 'default') {\r\n let color = '';\r\n switch (type) {\r\n case 'default':\r\n color = '#35495E';\r\n break;\r\n case 'primary':\r\n color = '#3488ff';\r\n break;\r\n case 'success':\r\n color = '#43B883';\r\n break;\r\n case 'warning':\r\n color = '#e6a23c';\r\n break;\r\n case 'danger':\r\n color = '#f56c6c';\r\n break;\r\n default:\r\n break;\r\n }\r\n return color;\r\n}\r\n\r\n/**\r\n * @description 打印一个 [ title | text ] 样式的信息\r\n * @param {String} title title text\r\n * @param {String} info info text\r\n * @param {String} type style\r\n */\r\nlog.capsule = function (title, info, type = 'primary') {\r\n console.log(\r\n `%c ${title} %c ${info} %c`,\r\n 'background:#35495E; padding: 1px; border-radius: 3px 0 0 3px; color: #fff;',\r\n `background:${typeColor(\r\n type\r\n )}; padding: 1px; border-radius: 0 3px 3px 0; color: #fff;`,\r\n 'background:transparent'\r\n );\r\n};\r\n\r\n/**\r\n * @description 打印彩色文字\r\n */\r\nlog.colorful = function (textArr) {\r\n console.log(\r\n `%c${textArr.map(t => t.text || '').join('%c')}`,\r\n ...textArr.map(t => `color: ${typeColor(t.type)};`)\r\n );\r\n};\r\n\r\n/**\r\n * @description 打印 default 样式的文字\r\n */\r\nlog.default = function (text) {\r\n log.colorful([{ text }]);\r\n};\r\n\r\n/**\r\n * @description 打印 primary 样式的文字\r\n */\r\nlog.primary = function (text) {\r\n log.colorful([{ text, type: 'primary' }]);\r\n};\r\n\r\n/**\r\n * @description 打印 success 样式的文字\r\n */\r\nlog.success = function (text) {\r\n log.colorful([{ text, type: 'success' }]);\r\n};\r\n\r\n/**\r\n * @description 打印 warning 样式的文字\r\n */\r\nlog.warning = function (text) {\r\n log.colorful([{ text, type: 'warning' }]);\r\n};\r\n\r\n/**\r\n * @description 打印 danger 样式的文字\r\n */\r\nlog.danger = function (text) {\r\n log.colorful([{ text, type: 'danger' }]);\r\n};\r\nexport default log;\r\n","// 打印类属性、方法定义\r\n/* eslint-disable */\r\nconst Print = function (dom, options) {\r\n if (!(this instanceof Print)) return new Print(dom, options);\r\n\r\n this.options = this.extend({\r\n 'noPrint': '.no-print'\r\n }, options);\r\n\r\n if ((typeof dom) === \"string\") {\r\n this.dom = document.querySelector(dom);\r\n } else {\r\n this.isDOM(dom)\r\n this.dom = this.isDOM(dom) ? dom : dom.$el;\r\n }\r\n this.init();\r\n};\r\nPrint.prototype = {\r\n init: function () {\r\n var content = this.getStyle() + this.getHtml();\r\n this.writeIframe(content);\r\n },\r\n extend: function (obj, obj2) {\r\n for (var k in obj2) {\r\n obj[k] = obj2[k];\r\n }\r\n return obj;\r\n },\r\n\r\n getStyle: function () {\r\n var str = \"\",\r\n styles = document.querySelectorAll('style,link');\r\n for (var i = 0; i < styles.length; i++) {\r\n str += styles[i].outerHTML;\r\n }\r\n str += \"<style>\" + (this.options.noPrint ? this.options.noPrint : '.no-print') + \"{display:none;}</style>\";\r\n\r\n return str;\r\n },\r\n\r\n getHtml: function () {\r\n var inputs = document.querySelectorAll('input');\r\n var textareas = document.querySelectorAll('textarea');\r\n var selects = document.querySelectorAll('select');\r\n\r\n for (var k = 0; k < inputs.length; k++) {\r\n if (inputs[k].type == \"checkbox\" || inputs[k].type == \"radio\") {\r\n if (inputs[k].checked == true) {\r\n inputs[k].setAttribute('checked', \"checked\")\r\n } else {\r\n inputs[k].removeAttribute('checked')\r\n }\r\n } else if (inputs[k].type == \"text\") {\r\n inputs[k].setAttribute('value', inputs[k].value)\r\n } else {\r\n inputs[k].setAttribute('value', inputs[k].value)\r\n }\r\n }\r\n\r\n for (var k2 = 0; k2 < textareas.length; k2++) {\r\n if (textareas[k2].type == 'textarea') {\r\n textareas[k2].innerHTML = textareas[k2].value\r\n }\r\n }\r\n\r\n for (var k3 = 0; k3 < selects.length; k3++) {\r\n if (selects[k3].type == 'select-one') {\r\n var child = selects[k3].children;\r\n for (var i in child) {\r\n if (child[i].tagName == 'OPTION') {\r\n if (child[i].selected == true) {\r\n child[i].setAttribute('selected', \"selected\")\r\n } else {\r\n child[i].removeAttribute('selected')\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // 包裹要打印的元素\r\n let outerHTML = this.wrapperRefDom(this.dom).outerHTML\r\n return outerHTML;\r\n },\r\n // 向父级元素循环,包裹当前需要打印的元素\r\n // 防止根级别开头的 css 选择器不生效\r\n wrapperRefDom: function (refDom) {\r\n let prevDom = null\r\n let currDom = refDom\r\n // 判断当前元素是否在 body 中,不在文档中则直接返回该节点\r\n if (!this.isInBody(currDom)) return currDom\r\n\r\n while (currDom) {\r\n if (prevDom) {\r\n let element = currDom.cloneNode(false)\r\n element.appendChild(prevDom)\r\n prevDom = element\r\n } else {\r\n prevDom = currDom.cloneNode(true)\r\n }\r\n\r\n currDom = currDom.parentElement\r\n }\r\n\r\n return prevDom\r\n },\r\n\r\n writeIframe: function (content) {\r\n var w, doc, iframe = document.createElement('iframe'),\r\n f = document.body.appendChild(iframe);\r\n iframe.id = \"myIframe\";\r\n //iframe.style = \"position:absolute;width:0;height:0;top:-10px;left:-10px;\";\r\n iframe.setAttribute('style', 'position:absolute;width:0;height:0;top:-10px;left:-10px;');\r\n w = f.contentWindow || f.contentDocument;\r\n doc = f.contentDocument || f.contentWindow.document;\r\n doc.open();\r\n doc.write(content);\r\n doc.close();\r\n var _this = this\r\n iframe.onload = function () {\r\n _this.toPrint(w);\r\n setTimeout(function () {\r\n document.body.removeChild(iframe)\r\n }, 100)\r\n }\r\n },\r\n\r\n toPrint: function (frameWindow) {\r\n try {\r\n setTimeout(function () {\r\n frameWindow.focus();\r\n try {\r\n if (!frameWindow.document.execCommand('print', false, null)) {\r\n frameWindow.print();\r\n }\r\n } catch (e) {\r\n frameWindow.print();\r\n }\r\n frameWindow.close();\r\n }, 10);\r\n } catch (err) {\r\n console.log('err', err);\r\n }\r\n },\r\n // 检查一个元素是否是 body 元素的后代元素且非 body 元素本身\r\n isInBody: function (node) {\r\n return (node === document.body) ? false : document.body.contains(node);\r\n },\r\n isDOM: (typeof HTMLElement === 'object') ?\r\n function (obj) {\r\n return obj instanceof HTMLElement;\r\n } :\r\n function (obj) {\r\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\r\n }\r\n};\r\nexport default Print;","\r\nexport const getToken = (accessKey, secretKey, putPolicy) => {\r\n //SETP 2\r\n var put_policy = JSON.stringify(putPolicy);\r\n __ENV__ === 'development' && console && console.log(\"put_policy = \", put_policy);\r\n\r\n //SETP 3\r\n var encoded = base64encode(utf16to8(put_policy));\r\n __ENV__ === 'development' && console && console.log(\"encoded = \", encoded);\r\n\r\n //SETP 4\r\n var hash = CryptoJS.HmacSHA1(encoded, secretKey);\r\n var encoded_signed = hash.toString(CryptoJS.enc.Base64);\r\n __ENV__ === 'development' && console && console.log(\"encoded_signed=\", encoded_signed)\r\n\r\n //SETP 5\r\n var upload_token = accessKey + \":\" + safe64(encoded_signed) + \":\" + encoded;\r\n __ENV__ === 'development' && console && console.log(\"upload_token=\", upload_token)\r\n\r\n return upload_token;\r\n\r\n}\r\nfunction utf16to8(str) {\r\n var out, i, len, c;\r\n out = \"\";\r\n len = str.length;\r\n for (i = 0; i < len; i++) {\r\n c = str.charCodeAt(i);\r\n if ((c >= 0x0001) && (c <= 0x007F)) {\r\n out += str.charAt(i);\r\n } else if (c > 0x07FF) {\r\n out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));\r\n out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));\r\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\r\n } else {\r\n out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));\r\n out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));\r\n }\r\n }\r\n return out;\r\n}\r\n\r\nfunction utf8to16(str) {\r\n var out, i, len, c;\r\n var char2, char3;\r\n out = \"\";\r\n len = str.length;\r\n i = 0;\r\n while (i < len) {\r\n c = str.charCodeAt(i++);\r\n switch (c >> 4) {\r\n case 0:\r\n case 1:\r\n case 2:\r\n case 3:\r\n case 4:\r\n case 5:\r\n case 6:\r\n case 7:\r\n // 0xxxxxxx\r\n out += str.charAt(i - 1);\r\n break;\r\n case 12:\r\n case 13:\r\n // 110x xxxx 10xx xxxx\r\n char2 = str.charCodeAt(i++);\r\n out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));\r\n break;\r\n case 14:\r\n // 1110 xxxx 10xx xxxx 10xx xxxx\r\n char2 = str.charCodeAt(i++);\r\n char3 = str.charCodeAt(i++);\r\n out += String.fromCharCode(((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0));\r\n break;\r\n }\r\n }\r\n return out;\r\n}\r\n\r\n/*\r\n * Interfaces:\r\n * b64 = base64encode(data);\r\n * data = base64decode(b64);\r\n */\r\nvar base64EncodeChars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_\";\r\nvar base64DecodeChars = new Array(-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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,\r\n 52, 53, 54, 55, 56, 57, 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,\r\n 15, 16, 17, 18, 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, 40,\r\n 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);\r\n\r\nfunction base64encode(str) {\r\n var out, i, len;\r\n var c1, c2, c3;\r\n len = str.length;\r\n i = 0;\r\n out = \"\";\r\n while (i < len) {\r\n c1 = str.charCodeAt(i++) & 0xff;\r\n if (i == len) {\r\n out += base64EncodeChars.charAt(c1 >> 2);\r\n out += base64EncodeChars.charAt((c1 & 0x3) << 4);\r\n out += \"==\";\r\n break;\r\n }\r\n c2 = str.charCodeAt(i++);\r\n if (i == len) {\r\n out += base64EncodeChars.charAt(c1 >> 2);\r\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));\r\n out += base64EncodeChars.charAt((c2 & 0xF) << 2);\r\n out += \"=\";\r\n break;\r\n }\r\n c3 = str.charCodeAt(i++);\r\n out += base64EncodeChars.charAt(c1 >> 2);\r\n out += base64EncodeChars.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4));\r\n out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6));\r\n out += base64EncodeChars.charAt(c3 & 0x3F);\r\n }\r\n return out;\r\n}\r\n\r\nfunction base64decode(str) {\r\n var c1, c2, c3, c4;\r\n var i, len, out;\r\n len = str.length;\r\n i = 0;\r\n out = \"\";\r\n while (i < len) {\r\n /* c1 */\r\n do {\r\n c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];\r\n } while (i < len && c1 == -1);\r\n if (c1 == -1) break;\r\n /* c2 */\r\n do {\r\n c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];\r\n } while (i < len && c2 == -1);\r\n if (c2 == -1) break;\r\n out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));\r\n /* c3 */\r\n do {\r\n c3 = str.charCodeAt(i++) & 0xff;\r\n if (c3 == 61) return out;\r\n c3 = base64DecodeChars[c3];\r\n } while (i < len && c3 == -1);\r\n if (c3 == -1) break;\r\n out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));\r\n /* c4 */\r\n do {\r\n c4 = str.charCodeAt(i++) & 0xff;\r\n if (c4 == 61) return out;\r\n c4 = base64DecodeChars[c4];\r\n } while (i < len && c4 == -1);\r\n if (c4 == -1) break;\r\n out += String.fromCharCode(((c3 & 0x03) << 6) | c4);\r\n }\r\n return out;\r\n}\r\nvar safe64 = function (base64) {\r\n base64 = base64.replace(/\\+/g, \"-\");\r\n base64 = base64.replace(/\\//g, \"_\");\r\n return base64;\r\n};\r\n","import packages from \"core/packages\";\r\nexport default function (doc, option = {}) {\r\n if (!window.html2canvas) {\r\n packages.logs(\"Screenshot\");\r\n return\r\n }\r\n return window.html2canvas(doc, option)\r\n}","export default class RecordVideo {\r\n\r\n /**\r\n * 构造函数\r\n *\r\n * @param {Object} videoObj 视频对象\r\n */\r\n constructor(videoObj) {\r\n this.video = videoObj;\r\n this.mediaRecorder = null;\r\n this.chunks = [];\r\n }\r\n\r\n /**\r\n * 初始化\r\n *\r\n * @return {Object} promise\r\n */\r\n init() {\r\n // 返回Promise对象\r\n // resolve 正常处理\r\n // reject 处理异常情况\r\n return new Promise((resovle, reject) => {\r\n navigator\r\n .mediaDevices\r\n .getUserMedia({\r\n audio: true,\r\n video: true\r\n // video: {\r\n // width: this.videoWidth,\r\n // height: this.videoHeight\r\n // }\r\n })\r\n // 返回一个媒体内容的流\r\n .then(stream => {\r\n // 检测是否支持 srcObject,该属性在新的浏览器支持\r\n if ('srcObject' in this.video) {\r\n this.video.srcObject = stream;\r\n } else {\r\n // 兼容旧的浏览器\r\n this.video.src = window.URL.createObjectURL(stream);\r\n }\r\n\r\n // 当视频的元数据已经加载时触发\r\n this.video.addEventListener('loadmetadata', () => {\r\n this.video.play();\r\n });\r\n this.mediaRecorder = new MediaRecorder(stream);\r\n this.mediaRecorder.addEventListener('dataavailable', e => {\r\n this.chunks.push(e.data);\r\n });\r\n resovle();\r\n })\r\n // 异常抓取,包括用于禁用麦克风、摄像头\r\n .catch(error => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 视频开始录制\r\n */\r\n startRecord() {\r\n if (this.mediaRecorder.state === 'inactive') {\r\n this.mediaRecorder.start();\r\n }\r\n }\r\n\r\n /**\r\n * 视频结束录制\r\n */\r\n stopRecord() {\r\n if (this.mediaRecorder.state === 'recording') {\r\n this.mediaRecorder.stop();\r\n }\r\n }\r\n\r\n /**\r\n * 检测当前浏览器对否支持\r\n *\r\n * @return {boolean} 当前浏览器是否支持\r\n */\r\n isSupport() {\r\n const flag = navigator.mediaDevices && navigator.mediaDevices.getUserMedia;\r\n if (flag) {\r\n return true;\r\n }\r\n }\r\n}\r\n","import _waterMark from './watermark';\r\nimport {\r\n dataURLtoFile\r\n} from 'utils/util';\r\n// 标准参数\r\nvar canvas, ctx, configDefault = {\r\n width: 200,\r\n height: 200\r\n};\r\nlet config = {\r\n text: 'avueJS', // 文字\r\n fontFamily: 'microsoft yahei', // 字体\r\n color: '#999', // 颜色\r\n fontSize: 16, // 大小\r\n opacity: 100, // 透明度\r\n bottom: 10, // 下边位置\r\n right: 10, // 右边位置\r\n ratio: 1 // 压缩比\r\n};\r\n\r\n/**\r\n * 参数 {Object} opt\r\n * @param {String} text 水印文本,默认'avue商用通用无敌大水印'\r\n * @param {String} font 水印字体,默认'30px 黑体'\r\n * @param {Int} canvasWidth 单个水印容器宽度,默认500\r\n * @param {Int} canvasHeight 单个水印容器高度,默认200\r\n * @param {String} textAlign 水印文本对齐方式,默认'center'\r\n * @param {String} textStyle 水印文本样式,默认'rgba(100,100,100,0.15)'\r\n * @param {Int} degree 水印文本旋转角度,默认 -20\r\n * @param return\r\n **/\r\nexport default function (opt = {}) {\r\n return new _waterMark(opt);\r\n};\r\n\r\n// 将base64转换为文件\r\n\r\nexport function detailImg(file, option = {}) {\r\n return new Promise(function (resolve, reject) {\r\n const {\r\n text,\r\n fontFamily,\r\n color,\r\n fontSize,\r\n opacity,\r\n bottom,\r\n right,\r\n ratio\r\n } = option;\r\n initParams();\r\n fileToBase64(file, initImg);\r\n // 参数初始化\r\n function initParams() {\r\n config.text = text || config.text;\r\n config.fontFamily = fontFamily || config.fontFamily;\r\n config.color = color || config.color;\r\n config.fontSize = fontSize || config.fontSize;\r\n config.opacity = opacity || config.opacity;\r\n config.bottom = bottom || config.bottom;\r\n config.right = right || config.right;\r\n config.ratio = ratio || config.ratio;\r\n }\r\n // 加载图片\r\n function initImg(data) {\r\n var img = new Image();\r\n img.src = data;\r\n img.onload = function () {\r\n var width = img.width;\r\n var height = img.height;\r\n cretedCanvas(width, height);\r\n ctx.drawImage(img, 0, 0, width, height);\r\n setText(width, height);\r\n resolve(dataURLtoFile(document.getElementById('canvas').toDataURL(file.type, config.ratio), file.name));\r\n };\r\n }\r\n // 创建画板\r\n function cretedCanvas(width, height) {\r\n canvas = document.getElementById('canvas');\r\n if (canvas === null) {\r\n canvas = document.createElement('canvas');\r\n canvas.id = 'canvas';\r\n canvas.className = 'avue-canvas';\r\n document.body.appendChild(canvas);\r\n }\r\n ctx = canvas.getContext('2d');\r\n canvas.width = width;\r\n canvas.height = height;\r\n\r\n }\r\n // 添加水印\r\n function setText(width, height) {\r\n var txt = config.text;\r\n var param = calcParam(txt, width, height);\r\n ctx.font = param.fontSize + 'px ' + config.fontFamily;\r\n ctx.fillStyle = config.color;\r\n ctx.globalAlpha = config.opacity / 100;\r\n ctx.fillText(txt, param.x, param.y);\r\n }\r\n // 计算比例\r\n function calcParam(txt, width, height) {\r\n var x, y;\r\n\r\n // 字体的比例\r\n var calcFontSize = config.fontSize / configDefault.width;\r\n var fontSize = calcFontSize * width;\r\n\r\n if (config.bottom) {\r\n y = configDefault.height - config.bottom;\r\n } else {\r\n y = config.top;\r\n }\r\n\r\n if (config.right) {\r\n x = configDefault.width - config.right;\r\n } else {\r\n x = config.left;\r\n }\r\n ctx.font = config.fontSize + 'px ' + config.fontFamily;\r\n var txtWidth = Number(ctx.measureText(txt).width);\r\n\r\n x = x - txtWidth;\r\n\r\n var calcPosX = x / configDefault.width;\r\n var calcPosY = y / configDefault.height;\r\n\r\n x = calcPosX * width;\r\n y = calcPosY * height;\r\n return {\r\n x: x,\r\n y: y,\r\n fontSize: fontSize\r\n };\r\n\r\n }\r\n // file转base64\r\n function fileToBase64(file, callback) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = function (e) {\r\n callback(e.target.result);\r\n };\r\n }\r\n });\r\n}\r\n","// const CONTAINERID = '_avue_markcontainer';\r\n\r\nimport { randomId } from 'utils/util';\r\nclass waterMark {\r\n constructor(opt = {}) {\r\n this.CONTAINERID = randomId();\r\n this.drawCanvas = this.drawCanvas.bind(this);\r\n this.parentObserver = this.parentObserver.bind(this);\r\n this.Repaint = this.Repaint.bind(this);\r\n this.isOberserve = false;\r\n this.init(opt);\r\n this.drawCanvas();\r\n this.parentObserver();\r\n }\r\n\r\n init (opt) {\r\n this.option = Object.assign({\r\n width: 400,\r\n height: 200,\r\n text: 'avueJS',\r\n fontSize: '30px',\r\n fontStyle: 'microsoft yahei',\r\n textAlign: 'center',\r\n color: 'rgba(100,100,100,0.15)',\r\n degree: -20\r\n }, opt);\r\n }\r\n\r\n drawCanvas () {\r\n this.isOberserve = true;\r\n let divContainer = document.createElement('div');\r\n let canvas = document.createElement('canvas');\r\n let context = canvas.getContext('2d');\r\n divContainer.id = this.CONTAINERID;\r\n\r\n canvas.width = this.option.width;\r\n canvas.height = this.option.height;\r\n context.font = `${this.option.fontSize} ${this.option.fontStyle}`;\r\n context.textAlign = this.option.textAlign;\r\n context.fillStyle = this.option.color;\r\n context.translate(canvas.width / 2, canvas.height / 2);\r\n context.rotate(this.option.degree * Math.PI / 180);\r\n context.fillText(this.option.text, 0, 0);\r\n\r\n let backgroundUrl = canvas.toDataURL('image/png');\r\n let flag = this.option.id, el;\r\n if (flag) el = document.getElementById(flag);\r\n this.styleStr = `\r\n position:${flag ? 'absolute' : 'fixed'};\r\n top:0;\r\n left:0;\r\n width:${flag ? el.offsetWidth + 'px' : '100%'};\r\n height:${flag ? el.offsetHeight + 'px' : '100%'};\r\n z-index:9999;\r\n pointer-events:none;\r\n background-repeat:repeat;\r\n background-image:url('${backgroundUrl}')`;\r\n divContainer.setAttribute('style', this.styleStr);\r\n if (flag) {\r\n let el = document.getElementById(flag);\r\n el.appendChild(divContainer);\r\n } else {\r\n document.body.appendChild(divContainer);\r\n }\r\n this.wmObserver(divContainer);\r\n this.isOberserve = false;\r\n }\r\n\r\n wmObserver (divContainer) {\r\n let wmConf = { attributes: true, childList: true, characterData: true };\r\n let wmObserver = new MutationObserver((mo) => {\r\n if (!this.isOberserve) {\r\n let _obj = mo[0].target;\r\n _obj.setAttribute('style', this.styleStr);\r\n _obj.setAttribute('id', this.CONTAINERID);\r\n wmObserver.takeRecords();\r\n }\r\n });\r\n wmObserver.observe(divContainer, wmConf);\r\n }\r\n\r\n parentObserver () {\r\n let bodyObserver = new MutationObserver(() => {\r\n if (!this.isOberserve) {\r\n let __wm = document.querySelector(`#${this.CONTAINERID}`);\r\n if (!__wm) {\r\n this.drawCanvas();\r\n } else if (__wm.getAttribute('style') !== this.styleStr) {\r\n __wm.setAttribute('style', this.styleStr);\r\n }\r\n }\r\n });\r\n bodyObserver.observe(document.querySelector(`#${this.CONTAINERID}`).parentNode, { childList: true });\r\n }\r\n\r\n Repaint (opt = {}) {\r\n this.remove();\r\n this.init(opt);\r\n this.drawCanvas();\r\n }\r\n\r\n remove () {\r\n this.isOberserve = true;\r\n let _wm = document.querySelector(`#${this.CONTAINERID}`);\r\n _wm.parentNode.removeChild(_wm);\r\n }\r\n}\r\nexport default waterMark;\r\n","import DataTabs from 'packages/data/tabs';\r\nimport DataCardText from 'packages/data/cardText';\r\nimport DataBox from 'packages/data/box';\r\nimport DataProgress from 'packages/data/progress';\r\nimport DataIcons from 'packages/data/icons';\r\nimport DataCard from 'packages/data/card';\r\nimport DataDisplay from 'packages/data/display';\r\nimport DataImgText from 'packages/data/imgText';\r\nimport DataOperaText from 'packages/data/operaText';\r\nimport DataRotate from 'packages/data/rotate';\r\nimport DataPay from 'packages/data/pay';\r\nimport DataPrice from 'packages/data/price';\r\nimport DataPanel from 'packages/data/panel';\r\nexport default { DataTabs, DataCardText, DataBox, DataProgress, DataIcons, DataCard, DataDisplay, DataImgText, DataOperaText, DataRotate, DataPay, DataPrice, DataPanel };\r\n","import CountUp from 'packages/element-plus/count-up';\r\nimport Article from 'packages/element-plus/article';\r\nimport Crud from 'packages/element-plus/crud';\r\nimport Card from 'packages/element-plus/card';\r\nimport Chat from 'packages/element-plus/chat';\r\nimport Comment from 'packages/element-plus/comment';\r\nimport Form from 'packages/element-plus/form';\r\nimport Checkbox from 'packages/element-plus/checkbox';\r\nimport Date from 'packages/element-plus/date';\r\nimport Draggable from 'packages/element-plus/draggable';\r\nimport Flow from 'packages/element-plus/flow';\r\nimport Group from 'packages/element-plus/group';\r\nimport License from 'packages/element-plus/license';\r\nimport Time from 'packages/element-plus/time';\r\nimport Input from 'packages/element-plus/input';\r\nimport Radio from 'packages/element-plus/radio';\r\nimport Select from 'packages/element-plus/select';\r\nimport Cascader from 'packages/element-plus/cascader';\r\nimport InputColor from 'packages/element-plus/input-color';\r\nimport InputNumber from 'packages/element-plus/input-number';\r\nimport InputTree from 'packages/element-plus/input-tree';\r\nimport InputMap from 'packages/element-plus/input-map';\r\nimport InputIcon from 'packages/element-plus/input-icon';\r\nimport InputTag from 'packages/element-plus/input-tag';\r\nimport InputTable from 'packages/element-plus/input-table';\r\nimport Mention from 'packages/element-plus/mention';\r\nimport Verifys from 'packages/element-plus/verify';\r\nimport Switchs from 'packages/element-plus/switch';\r\nimport Rate from 'packages/element-plus/rate';\r\nimport Upload from 'packages/element-plus/upload';\r\nimport Sign from 'packages/element-plus/sign';\r\nimport Slider from 'packages/element-plus/slider';\r\nimport Tree from 'packages/element-plus/tree';\r\nimport Title from 'packages/element-plus/title';\r\nimport Search from 'packages/element-plus/search';\r\nimport Tabs from 'packages/element-plus/tabs';\r\nimport Dynamic from 'packages/element-plus/dynamic';\r\nimport Video from 'packages/element-plus/video';\r\nimport Login from 'packages/element-plus/login';\r\nimport Arrays from 'packages/element-plus/array';\r\nimport textEllipsis from 'packages/element-plus/text-ellipsis';\r\nexport default {\r\n Arrays,\r\n Article,\r\n Crud,\r\n Card,\r\n Chat,\r\n Comment,\r\n Form,\r\n Checkbox,\r\n Date,\r\n CountUp,\r\n Draggable,\r\n Flow,\r\n Group,\r\n License,\r\n Time,\r\n Input,\r\n Radio,\r\n Select,\r\n Cascader,\r\n InputColor,\r\n InputNumber,\r\n InputTree,\r\n InputIcon,\r\n InputMap,\r\n InputTag,\r\n InputTable,\r\n Mention,\r\n Switchs,\r\n Rate,\r\n Upload,\r\n Slider,\r\n Tree,\r\n Title,\r\n Search,\r\n Tabs,\r\n Dynamic,\r\n Video,\r\n Verifys,\r\n textEllipsis,\r\n Sign,\r\n Login\r\n};\r\n","import Element from './element-plus/';\r\nimport Data from './data/';\r\nexport default { ...Element, ...Data };\r\n","/**\r\n * bem helper\r\n * b() // 'button'\r\n * b('text') // 'button__text'\r\n * b({ disabled }) // 'button button--disabled'\r\n * b('text', { disabled }) // 'button__text button__text--disabled'\r\n * b(['disabled', 'primary']) // 'button button--disabled button--primary'\r\n */\r\n\r\nconst ELEMENT = '__';\r\nconst MODS = '--';\r\n\r\nconst join = (name, el, symbol) => el ? name + symbol + el : name;\r\n\r\nconst prefix = (name, mods) => {\r\n if (typeof mods === 'string') {\r\n return join(name, mods, MODS);\r\n }\r\n\r\n if (Array.isArray(mods)) {\r\n return mods.map(item => prefix(name, item));\r\n }\r\n\r\n const ret = {};\r\n Object.keys(mods || {}).forEach(key => {\r\n ret[name + MODS + key] = mods[key];\r\n });\r\n return ret;\r\n};\r\n\r\nexport default {\r\n methods: {\r\n b (el, mods) {\r\n const { name } = this.$options;\r\n\r\n if (el && typeof el !== 'string') {\r\n mods = el;\r\n el = '';\r\n }\r\n el = join(name, el, ELEMENT);\r\n\r\n return mods ? [el, prefix(el, mods)] : el;\r\n }\r\n }\r\n};\r\n","import packages from 'core/packages';\r\n\r\nexport default (column, dicData, defaultForm, run) => {\r\n if (!run) return;\r\n if (!window.Mock) {\r\n packages.logs('mock');\r\n return;\r\n }\r\n let mockjs = window.Mock;\r\n let Random = (mockjs || {}).Random;\r\n let form = {};\r\n\r\n function createName({\r\n en\r\n }) {\r\n if (en) {\r\n return Random.name(true);\r\n }\r\n return Random.cname();\r\n }\r\n\r\n function createImage({\r\n size,\r\n text,\r\n base64\r\n }) {\r\n // 确定图片生成参数\r\n let imageSize = size || Random.natural(200, 400); // 默认图片大小为随机数\r\n let textColor = text ? '#000000' : Random.color(); // 文本颜色,默认黑色或随机颜色\r\n let bgColor = text ? '#ffffff' : Random.color(); // 背景颜色,默认白色或随机颜色\r\n\r\n // 判断是否有数据源,选择生成图片\r\n if (base64) {\r\n return Random.dataImage(imageSize, text);\r\n } else {\r\n return Random.image(imageSize, bgColor, textColor, 'png', text || Random.name());\r\n }\r\n }\r\n\r\n function createId({\r\n uuid\r\n }) {\r\n if (uuid) {\r\n return mockjs.mock('@guid');\r\n }\r\n return mockjs.mock('@id');\r\n }\r\n\r\n function createTel() {\r\n return mockjs.mock(/^1[3-9]\\d{9}$/);\r\n }\r\n\r\n function createNumber({\r\n max,\r\n min,\r\n precision\r\n }) {\r\n if (precision) {\r\n const number = Random.float(min, max, precision) + '';\r\n const index = number.indexOf('.') + 1;\r\n return Number(number.substring(0, index + precision));\r\n } else {\r\n return Random.integer(min, max);\r\n }\r\n }\r\n\r\n function createUrl({\r\n header,\r\n footer\r\n }) {\r\n let url = Random.url();\r\n const index = url.indexOf('://');\r\n if (header === false) {\r\n url = url.substring(index + 3);\r\n } else {\r\n url = 'http://' + url.substring(index + 3);\r\n }\r\n return url;\r\n }\r\n\r\n function createDatetime({\r\n format,\r\n now\r\n }) {\r\n if (now) {\r\n return Random.now(format);\r\n }\r\n return Random.datetime(format);\r\n }\r\n\r\n function createText({\r\n min,\r\n max\r\n }) {\r\n return Random.csentence(min, max);\r\n }\r\n\r\n function createCounty() {\r\n return Random.county(true);\r\n }\r\n\r\n function createDic({\r\n dic,\r\n props,\r\n columnType,\r\n multiple\r\n }) {\r\n const value = props.value || 'value';\r\n const len = dic.length;\r\n if (len === 0) return;\r\n if (['checkbox'].includes(columnType) || multiple) {\r\n const number = createNumber({\r\n min: 1,\r\n max: len\r\n });\r\n let result = [];\r\n for (let i = 0; i < number; i++) {\r\n let flag = true;\r\n while (flag) {\r\n const numbers = createNumber({\r\n min: 0,\r\n max: len - 1\r\n });\r\n const values = dic[numbers][value];\r\n if (!result.includes(values)) {\r\n result.push(values);\r\n flag = false;\r\n }\r\n }\r\n }\r\n return result;\r\n } else {\r\n const number = createNumber({\r\n min: 0,\r\n max: len - 1\r\n });\r\n return dic[number][value];\r\n }\r\n }\r\n\r\n function create() {\r\n Object.keys(column).forEach(index => {\r\n const ele = column[index];\r\n const isObject = typeof ele.mock === 'object';\r\n const params = isObject ? ele.mock || {} : {};\r\n params.dic = dicData[ele.prop] || [];\r\n params.props = ele.props || {};\r\n params.columnType = ele.type;\r\n params.multiple = ele.multiple;\r\n\r\n // 根据类型生成相应的数据\r\n const dataGenerator = {\r\n 'name': createName,\r\n 'number': createNumber,\r\n 'datetime': createDatetime,\r\n 'word': createText,\r\n 'tel': createTel,\r\n 'id': createId,\r\n 'image': createImage,\r\n 'url': createUrl,\r\n 'county': createCounty,\r\n 'dic': createDic\r\n };\r\n if (isObject && dataGenerator[params.type]) {\r\n if (params.array) {\r\n form[ele.prop] = Array.from({\r\n length: params.array\r\n }, () => dataGenerator[params.type](params));\r\n } else {\r\n form[ele.prop] = dataGenerator[params.type](params);\r\n }\r\n\r\n } else if (ele.mock instanceof Function) {\r\n form[ele.prop] = ele.mock(defaultForm, mockjs);\r\n }\r\n });\r\n }\r\n create();\r\n return form;\r\n};\r\n","import { validatenull } from \"./validate\";\r\nimport { DIC_PROPS, CHILDREN_LIST } from \"global/variable\";\r\nimport { typeList } from \"global/variable\";\r\nimport _get from \"lodash/get\";\r\nimport _set from \"lodash/set\";\r\nimport _cloneDeep from \"lodash/cloneDeep\";\r\nexport const isMediaType = (url, type) => {\r\n if (validatenull(url)) return;\r\n if (\r\n typeList.audio.test(url) ||\r\n typeList.audio.test(type) ||\r\n type == \"audio\"\r\n ) {\r\n return \"audio\";\r\n } else if (\r\n typeList.video.test(url) ||\r\n typeList.video.test(type) ||\r\n type == \"video\"\r\n ) {\r\n return \"video\";\r\n } else if (\r\n typeList.img.test(url) ||\r\n typeList.img.test(type) ||\r\n type == \"img\"\r\n ) {\r\n return \"img\";\r\n }\r\n return;\r\n};\r\nexport const uuid = () => {\r\n var s = [];\r\n var hexDigits = \"0123456789abcdef\";\r\n for (var i = 0; i < 36; i++) {\r\n s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);\r\n }\r\n s[14] = \"4\"; // bits 12-15 of the time_hi_and_version field to 0010\r\n s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01\r\n s[8] = s[13] = s[18] = s[23] = \"-\";\r\n\r\n var uuid = s.join(\"\");\r\n return uuid;\r\n};\r\nexport function getFixed(val = 0, len = 2) {\r\n return Number(val.toFixed(len));\r\n}\r\nexport function getAsVal(obj, bind = \"\") {\r\n let result = deepClone(obj);\r\n if (validatenull(bind)) return result;\r\n return _get(obj, bind);\r\n}\r\n\r\nexport function setAsVal(obj, bind = \"\", value) {\r\n _set(obj, bind, value);\r\n return obj;\r\n}\r\nexport const loadScript = (type = \"js\", url, dom = \"body\") => {\r\n let flag = false;\r\n return new Promise((resolve) => {\r\n const head =\r\n dom == \"head\" ? document.getElementsByTagName(\"head\")[0] : document.body;\r\n for (let i = 0; i < head.children.length; i++) {\r\n let ele = head.children[i];\r\n if ((ele.src || \"\").indexOf(url) !== -1) {\r\n flag = true;\r\n resolve();\r\n }\r\n }\r\n if (flag) return;\r\n let script;\r\n if (type === \"js\") {\r\n script = document.createElement(\"script\");\r\n script.type = \"text/javascript\";\r\n script.src = url;\r\n } else if (type === \"css\") {\r\n script = document.createElement(\"link\");\r\n script.rel = \"stylesheet\";\r\n script.type = \"text/css\";\r\n script.href = url;\r\n }\r\n head.appendChild(script);\r\n script.onload = function () {\r\n resolve();\r\n };\r\n });\r\n};\r\nexport function downFile(url, saveName) {\r\n if (typeof url === \"object\" && url instanceof Blob) {\r\n url = URL.createObjectURL(url); // 创建blob地址\r\n }\r\n var aLink = document.createElement(\"a\");\r\n aLink.href = url;\r\n aLink.download = saveName || \"\"; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效\r\n var event;\r\n if (window.MouseEvent) {\r\n event = new MouseEvent(\"click\");\r\n } else {\r\n event = document.createEvent(\"MouseEvents\");\r\n event.initMouseEvent(\r\n \"click\",\r\n true,\r\n false,\r\n window,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n false,\r\n false,\r\n false,\r\n false,\r\n 0,\r\n null\r\n );\r\n }\r\n aLink.dispatchEvent(event);\r\n}\r\nexport function extend() {\r\n var target = arguments[0] || {};\r\n var deep = false;\r\n var arr = Array.prototype.slice.call(arguments);\r\n var i = 1;\r\n var options, src, key, copy;\r\n var isArray = false;\r\n if (typeof target === \"boolean\") {\r\n deep = target;\r\n i++;\r\n target = arguments[1];\r\n }\r\n for (; i < arr.length; i++) {\r\n // 循环传入的对象数组\r\n if ((options = arr[i]) != null) {\r\n // 如果当前值不是null,如果是null不做处理\r\n for (key in options) {\r\n // for in循环对象中key\r\n copy = options[key];\r\n src = target[key];\r\n // 如果对象中value值任然是一个引用类型\r\n if (\r\n deep &&\r\n (toString.call(copy) === \"[object Object]\" ||\r\n (isArray = toString.call(copy) == \"[object Array]\"))\r\n ) {\r\n if (isArray) {\r\n // 如果引用类型是数组\r\n // 如果目标对象target存在当前key,且数据类型是数组,那就还原此值,如果不是就定义成一个空数组;\r\n src = toString.call(src) === \"[object Array]\" ? src : [];\r\n } else {\r\n // 如果目标对象target存在当前key,且数据类型是对象,那就还原此值,如果不是就定义成一个空对象;\r\n src = toString.call(src) === \"[object Object]\" ? src : {};\r\n }\r\n // 引用类型就再次调用extend,递归,直到此时copy是一个基本类型的值。\r\n target[key] = extend(deep, src, copy);\r\n } else if (copy !== undefined && copy !== src) {\r\n // 如果这个值是基本值类型,且不是undefined\r\n target[key] = copy;\r\n }\r\n }\r\n }\r\n }\r\n return target;\r\n}\r\nexport function createObj(obj, bind) {\r\n let list = bind.split(\".\");\r\n let first = list.splice(0, 1)[0];\r\n let deep = {};\r\n deep[first] = {};\r\n if (list.length >= 2) {\r\n let start = \"{\";\r\n let end = \"}\";\r\n let result = \"\";\r\n list.forEach((ele) => {\r\n result = `${result}${start}\"${ele}\":`;\r\n });\r\n result = `${result}\"\"`;\r\n for (let i = 0; i < list.length; i++) {\r\n result = `${result}${end}`;\r\n }\r\n result = JSON.parse(result);\r\n deep[first] = result;\r\n }\r\n obj = extend(true, obj, deep);\r\n return obj;\r\n}\r\nexport function dataURLtoFile(dataurl, filename) {\r\n let arr = dataurl.split(\",\");\r\n let mime = arr[0].match(/:(.*?);/)[1];\r\n let bstr = atob(arr[1]);\r\n let n = bstr.length;\r\n let u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n return new File([u8arr], filename, {\r\n type: mime,\r\n });\r\n}\r\n\r\nexport function findObject(list = [], value, prop = \"prop\") {\r\n const props = { value: prop };\r\n // 先在顶层列表查找\r\n let result = findNode(list, props, value);\r\n if (result) return result;\r\n // 遍历查找嵌套的 column\r\n for (const ele of list) {\r\n const column =\r\n ele.column ||\r\n (ele.children && CHILDREN_LIST.includes(ele.type)\r\n ? ele.children.column\r\n : null);\r\n if (column) {\r\n result = findNode(column, props, value);\r\n if (result) return result;\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * 生成随机数\r\n */\r\nexport function randomId() {\r\n let $chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\r\n let maxPos = $chars.length;\r\n let id = \"\";\r\n for (let i = 0; i < 16; i++) {\r\n id += $chars.charAt(Math.floor(Math.random() * maxPos));\r\n }\r\n return id;\r\n}\r\nexport const getObjType = (obj) => {\r\n var toString = Object.prototype.toString;\r\n var map = {\r\n \"[object Boolean]\": \"boolean\",\r\n \"[object Number]\": \"number\",\r\n \"[object String]\": \"string\",\r\n \"[object Function]\": \"function\",\r\n \"[object Array]\": \"array\",\r\n \"[object Date]\": \"date\",\r\n \"[object RegExp]\": \"regExp\",\r\n \"[object Undefined]\": \"undefined\",\r\n \"[object Null]\": \"null\",\r\n \"[object Object]\": \"object\",\r\n };\r\n if (obj instanceof Element) {\r\n return \"element\";\r\n }\r\n return map[toString.call(obj)];\r\n};\r\n/**\r\n *判断是否为json对象\r\n */\r\n\r\nexport const isJson = (str) => {\r\n if (Array.isArray(str)) {\r\n if (str[0] instanceof Object) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else if (str instanceof Object) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n/**\r\n * 对象深拷贝\r\n */\r\nexport const deepClone = (data) => {\r\n return _cloneDeep(data);\r\n};\r\n\r\nexport const getColumn = (column) => {\r\n let columnList = [];\r\n if (Array.isArray(column)) {\r\n columnList = column;\r\n } else {\r\n for (let o in column) {\r\n column[o].prop = o;\r\n columnList.push(column[o]);\r\n }\r\n }\r\n return columnList;\r\n};\r\n\r\n/**\r\n * 设置px像素\r\n */\r\nexport const setPx = (val, defval = \"\") => {\r\n if (validatenull(val)) val = defval;\r\n if (validatenull(val)) return \"\";\r\n val = val + \"\";\r\n if (val.indexOf(\"%\") === -1) {\r\n val = val + \"px\";\r\n }\r\n return val;\r\n};\r\n\r\n/**\r\n * 字符串数据类型转化\r\n */\r\nexport const detailDataType = (value, type) => {\r\n if (validatenull(value)) return value;\r\n if (type === \"number\") {\r\n return Number(value);\r\n } else if (type === \"string\") {\r\n return value + \"\";\r\n } else {\r\n return value;\r\n }\r\n};\r\n\r\n/**\r\n * 根据字典的value显示label\r\n */\r\n\r\nexport const getDicValue = (list, value, props = {}) => {\r\n if (validatenull(list)) return value;\r\n let isArray = Array.isArray(value);\r\n value = isArray ? value : [value];\r\n let result = [];\r\n let labelKey = props[DIC_PROPS.label] || DIC_PROPS.label;\r\n let groupsKey = props[DIC_PROPS.groups] || DIC_PROPS.groups;\r\n let dic = deepClone(list);\r\n dic.forEach((ele) => {\r\n if (ele[groupsKey]) {\r\n dic = dic.concat(ele[groupsKey]);\r\n delete ele[groupsKey];\r\n }\r\n });\r\n value.forEach((val) => {\r\n if (Array.isArray(val)) {\r\n let array_result = [];\r\n val.forEach((array_val) => {\r\n let obj = findNode(dic, props, array_val) || {};\r\n array_result.push(obj[labelKey] || array_val);\r\n });\r\n result.push(array_result);\r\n } else {\r\n let obj = findNode(dic, props, val) || {};\r\n result.push(obj[labelKey] || val);\r\n }\r\n });\r\n if (isArray) {\r\n return result;\r\n } else {\r\n return result.join(\"\");\r\n }\r\n};\r\n/**\r\n * 过滤字典翻译字段和空字段\r\n */\r\nexport const filterParams = (form, list = [\"\", \"$\"], deep = true) => {\r\n let data = deep ? deepClone(form) : form;\r\n for (let o in data) {\r\n if (list.includes(\"\")) {\r\n if (validatenull(data[o])) delete data[o];\r\n }\r\n if (list.includes(\"$\")) {\r\n if (o.indexOf(\"$\") !== -1) delete data[o];\r\n }\r\n }\r\n return data;\r\n};\r\n\r\n/**\r\n * 根据值查找对应的序号\r\n */\r\nexport const findArray = (\r\n list = [],\r\n value,\r\n valueKey = DIC_PROPS.value,\r\n index = false\r\n) => {\r\n let node;\r\n if (index) {\r\n node = list.findIndex((ele) => ele[valueKey] == value);\r\n } else {\r\n node = list.find((ele) => ele[valueKey] == value);\r\n }\r\n return node;\r\n};\r\nexport const findNode = (list = [], props = {}, value) => {\r\n list = _cloneDeep(list);\r\n const valueKey = props.value || DIC_PROPS.value;\r\n const childrenKey = props.children || DIC_PROPS.children;\r\n for (const ele of list) {\r\n // 使用严格相等,避免类型转换带来的问题\r\n if (ele[valueKey] === value) {\r\n return ele;\r\n }\r\n // 递归查找子节点\r\n const children = ele[childrenKey];\r\n if (Array.isArray(children)) {\r\n const node = findNode(children, props, value);\r\n if (node) return node;\r\n }\r\n }\r\n return undefined;\r\n};\r\n/**\r\n * 根据位数获取*密码程度\r\n */\r\nexport const getPasswordChar = (result = \"\", char) => {\r\n let len = result.toString().length;\r\n result = \"\";\r\n for (let i = 0; i < len; i++) {\r\n result = result + char;\r\n }\r\n return result;\r\n};\r\n\r\nexport const arraySort = (list = [], prop, callback) => {\r\n return list\r\n .filter((ele) => !validatenull(ele[prop]))\r\n .sort((a, b) => callback(a, b))\r\n .concat(list.filter((ele) => validatenull(ele[prop])));\r\n};\r\n\r\nexport const blankVal = (value) => {\r\n if (validatenull(value)) return value;\r\n let type = getObjType(value);\r\n if (type === \"array\") value = [];\r\n else if (type === \"object\") value = {};\r\n else if ([\"number\", \"boolean\"].includes(type)) value = undefined;\r\n else value = \"\";\r\n return value;\r\n};\r\n\r\nexport const clearVal = (obj, propList, list = []) => {\r\n if (!obj) return {};\r\n propList.forEach((ele) => {\r\n if (list.includes(ele)) return;\r\n else if (ele.includes(\"$\")) delete obj[ele];\r\n else if (!validatenull(obj[ele])) {\r\n obj[ele] = blankVal(obj[ele]);\r\n }\r\n });\r\n return obj;\r\n};\r\n/**\r\n * 验证是否存在true/false\r\n */\r\nexport const validData = (val, dafult) => {\r\n if (typeof val === \"boolean\") {\r\n return val;\r\n }\r\n return !validatenull(val) ? val : dafult;\r\n};\r\n","/**\r\n * 判断是否为空\r\n */\r\nexport function validatenull (val) {\r\n if (val instanceof Date || typeof val === 'boolean' || typeof val === 'number') return false;\r\n if (val instanceof Array) {\r\n if (val.length === 0) return true;\r\n } else if (val instanceof Object) {\r\n for (var o in val) {\r\n return false;\r\n }\r\n return true;\r\n } else {\r\n if (\r\n val === 'null' ||\r\n val == null ||\r\n val === 'undefined' ||\r\n val === undefined ||\r\n val === ''\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return false;\r\n}","export const version = '3.8.0'\r\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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;;;;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;;;;ACxBA;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;;;;;;;;;;;;;AChCA;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;;;;;;;;;;;;;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;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;;;;;;;;;;;;;AC7BA;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;;;;;;;;;;;;;ACNA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;;;;;;;;;;;;;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;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;AACA;AACA;AACA;AACA;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;;;;;;;;;;;;;AC1DA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;;;;;;;;;;;ACjEA;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;;;;;;;;;;;;;AC9RA;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;AAGA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC2JA;AACA;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;;;;;;;;;;;;;ACjEA;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;;;;;;;;;;;;;AC3BA;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;AACA;AACA;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;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;;;;;;;;;;;;;AChTA;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;;;;;;;;;;;;;ACVA;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;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;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;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAGA;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;;;;;;;;;;;;;ACnPA;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;;;;;;;;;;;;;ACrJA;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;;;;;;;;;;;;;ACzGA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;;;;;;;;;;;;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;;;;ACvRA;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;;;;;;;;;;;;;;;;;;;;;;;A1ETA;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;;;;;;;;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;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;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;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;;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;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;;;;;;;;;;;;;;;AAxCA;AAAA;;;;;;;;AAsDA;;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;;AAEA;;AACA;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;AACA;;AACA;AAAA;;AACA;;AAEA;AAAA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;;AAAA;AAAA;;;;;AAEA;AACA;AAEA;AADA;AACA;;;AAGA;AAEA;AADA;AACA;AAEA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;AASA;AAEA;AADA;AAEA;;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AE1BA;;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;;;;;;;;;;;;;;;;;;;;;;;;ACUA;;;AAIA;;;;;;AA/BA;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;;AAEA;AAAA;AAEA;AADA;;AAAA;;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;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;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;;AADA;AACA;AAAA;AAAA;AAAA;;;;;AAGA;;AADA;AAEA;AAAA;AAAA;AAAA;;;;AAGA;;AADA;AAEA;AAAA;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnCA;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;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;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;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;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;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;;;;;;;;;;;;;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;;;;;;;;;;;;;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;;;;;;;;;;;;;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;;;;;;;;;;;;;ACRA;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;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;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;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;;;;;;;;;;;;;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;;;;;;;;;;;;;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;;;;;;;;;;;;;;AC3BA;AAAA;AAAA;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;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACtDA;AAMA;AAGA;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;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;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;AACA;AACA;;;;;;;;;;;;;AC5IA;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;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;;;;;;;;;;;;;AC/OA;AAAA;AAAA;AAAA;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;;;;;;;;;;;;;AC9BA;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;AAIA;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;;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AAEA;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;AAEA;AAlBA;AAAA;AAAA;AAoBA;AACA;AACA;AACA;AACA;AAEA;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;;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;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;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAWA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;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;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;AAKA;AACA;AAOA;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;;;;;;;;;;;;;;;;;;;;;;AC/LA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;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;;;;;;;;;;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;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;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;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrMA;AAAA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACRA;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;AAEA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/DA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtDA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AACA;AAGA;AACA;AAGA;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;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;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpIA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;;;;;;;;;;;;;AC3CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;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;;;;;;;;;;;;;ACnGA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACJA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAGA;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;;;;;;;;;;;;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAEA;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;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;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;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;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;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAEA;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;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;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvSA;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;AAAA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;;;;;;;;;;;;;;;;AC3FA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;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;AAEA;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;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;AAEA;AACA;AAEA;AACA;AAEA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;AC1JA;AAAA;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;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;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;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;;;;;;;;;;;;;AClKA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACPA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AAGA;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;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAFA;AAAA;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAJA;AAAA;AAAA;AAMA;AACA;AACA;AACA;AACA;AAAA;AAAA;;;;;;;;;;;;;;ACxFA;AAAA;AAAA;AAAA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;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;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;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;AAEA;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;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC/IA;AACA;AACA;AAAA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AAAA;AAAA;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;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AAAA;AAAA;AAEA;;;;;;;;;;;;;AC3GA;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACbA;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;;;;;;;;;;;;;;;;;;;;ACnFA;AACA;AACA;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5CA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AAIA;AAFA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AAIA;AAFA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAGA;AADA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAGA;AADA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AAKA;AAHA;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;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;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AAKA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;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;AAiBA;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;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAKA;AACA;AACA;AACA;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;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAKA;AAJA;AACA;AACA;AAGA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAFA;AAGA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AAEA;AAAA;AACA;AACA;AACA;AAGA;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;AAOA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzBA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;;;;;A","sourceRoot":""}
|