@umbsoft/avue 3.8.3-beta.41 → 3.8.3-beta.43

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/lib/avue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"avue.js","sources":["webpack://AVUE/webpack/universalModuleDefinition","webpack://AVUE/webpack/bootstrap","webpack://AVUE/./packages/core/components/dialog-form/index.vue","webpack://AVUE/./packages/core/components/form/index.vue","webpack://AVUE/./packages/core/components/icon/index.vue","webpack://AVUE/./packages/core/components/image-preview/index.vue","webpack://AVUE/./packages/data/box/index.vue","webpack://AVUE/./packages/data/card/index.vue","webpack://AVUE/./packages/data/cardText/index.vue","webpack://AVUE/./packages/data/countdown/index.vue","webpack://AVUE/./packages/data/dashboard/index.vue","webpack://AVUE/./packages/data/display/index.vue","webpack://AVUE/./packages/data/icons/index.vue","webpack://AVUE/./packages/data/imgText/index.vue","webpack://AVUE/./packages/data/list/index.vue","webpack://AVUE/./packages/data/notice/index.vue","webpack://AVUE/./packages/data/operaText/index.vue","webpack://AVUE/./packages/data/panel/index.vue","webpack://AVUE/./packages/data/pay/index.vue","webpack://AVUE/./packages/data/price/index.vue","webpack://AVUE/./packages/data/product/index.vue","webpack://AVUE/./packages/data/profile/index.vue","webpack://AVUE/./packages/data/progress/index.vue","webpack://AVUE/./packages/data/rank/index.vue","webpack://AVUE/./packages/data/rotate/index.vue","webpack://AVUE/./packages/data/statistic/index.vue","webpack://AVUE/./packages/data/tabs/index.vue","webpack://AVUE/./packages/data/task/index.vue","webpack://AVUE/./packages/data/weather/index.vue","webpack://AVUE/./packages/element-plus/array/index.vue","webpack://AVUE/./packages/element-plus/article/index.vue","webpack://AVUE/./packages/element-plus/card/index.vue","webpack://AVUE/./packages/element-plus/cascader/index.vue","webpack://AVUE/./packages/element-plus/chat/index.vue","webpack://AVUE/./packages/element-plus/checkbox/index.vue","webpack://AVUE/./packages/element-plus/comment/index.vue","webpack://AVUE/./packages/element-plus/count-up/index.vue","webpack://AVUE/./packages/element-plus/date/index.vue","webpack://AVUE/./packages/element-plus/draggable/index.vue","webpack://AVUE/./packages/element-plus/dynamic/index.vue","webpack://AVUE/./packages/element-plus/flow/index.vue","webpack://AVUE/./packages/element-plus/flow/node.vue","webpack://AVUE/./packages/element-plus/form/index.vue","webpack://AVUE/./packages/element-plus/form/menu.vue","webpack://AVUE/./packages/element-plus/group/index.vue","webpack://AVUE/./packages/element-plus/input-color/index.vue","webpack://AVUE/./packages/element-plus/input-cron/index.vue","webpack://AVUE/./packages/element-plus/input-icon/index.vue","webpack://AVUE/./packages/element-plus/input-json/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/transfer/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+comp_655e1d5fbbda8d88dae75bafc61f7609/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?8f92","webpack://AVUE/./packages/core/components/dialog-form/index.vue?028d","webpack://AVUE/./packages/core/components/dialog-form/index.vue?94e7","webpack://AVUE/./packages/core/components/form/custom.js","webpack://AVUE/./packages/core/components/form/index.vue?4ee1","webpack://AVUE/./packages/core/components/form/index.vue?b736","webpack://AVUE/./packages/core/components/form/index.vue?cfc3","webpack://AVUE/./packages/core/components/icon/index.vue?e623","webpack://AVUE/./packages/core/components/icon/index.vue?84b0","webpack://AVUE/./packages/core/components/icon/index.vue?cfa1","webpack://AVUE/./packages/core/components/image-preview/index.js","webpack://AVUE/./packages/core/components/image-preview/index.vue?d0e7","webpack://AVUE/./packages/core/components/image-preview/index.vue?9746","webpack://AVUE/./packages/core/components/image-preview/index.vue?0d84","webpack://AVUE/./packages/core/directive/contextmenu.js","webpack://AVUE/./packages/core/directive/permission.js","webpack://AVUE/./packages/data/box/index.vue?587d","webpack://AVUE/./packages/data/box/index.vue?8c68","webpack://AVUE/./packages/data/box/index.vue?f080","webpack://AVUE/./packages/data/card/index.vue?0103","webpack://AVUE/./packages/data/card/index.vue?e0d0","webpack://AVUE/./packages/data/card/index.vue?7e2c","webpack://AVUE/./packages/data/cardText/index.vue?7a1b","webpack://AVUE/./packages/data/cardText/index.vue?02da","webpack://AVUE/./packages/data/cardText/index.vue?e894","webpack://AVUE/./packages/data/countdown/index.vue?e9bb","webpack://AVUE/./packages/data/countdown/index.vue?de06","webpack://AVUE/./packages/data/countdown/index.vue?0507","webpack://AVUE/./packages/data/dashboard/index.vue?9db4","webpack://AVUE/./packages/data/dashboard/index.vue?4262","webpack://AVUE/./packages/data/dashboard/index.vue?19fd","webpack://AVUE/./packages/data/display/index.vue?b4d1","webpack://AVUE/./packages/data/display/index.vue?0691","webpack://AVUE/./packages/data/display/index.vue?4ea2","webpack://AVUE/./packages/data/icons/index.vue?cb42","webpack://AVUE/./packages/data/icons/index.vue?939f","webpack://AVUE/./packages/data/icons/index.vue?0fcc","webpack://AVUE/./packages/data/imgText/index.vue?0100","webpack://AVUE/./packages/data/imgText/index.vue?e3da","webpack://AVUE/./packages/data/imgText/index.vue?caf8","webpack://AVUE/./packages/data/list/index.vue?f50e","webpack://AVUE/./packages/data/list/index.vue?e084","webpack://AVUE/./packages/data/list/index.vue?8ce9","webpack://AVUE/./packages/data/notice/index.vue?ad47","webpack://AVUE/./packages/data/notice/index.vue?4b0c","webpack://AVUE/./packages/data/notice/index.vue?c9ed","webpack://AVUE/./packages/data/operaText/index.vue?faf3","webpack://AVUE/./packages/data/operaText/index.vue?a25e","webpack://AVUE/./packages/data/operaText/index.vue?8168","webpack://AVUE/./packages/data/panel/index.vue?63fa","webpack://AVUE/./packages/data/panel/index.vue?f02e","webpack://AVUE/./packages/data/panel/index.vue?53e3","webpack://AVUE/./packages/data/pay/index.vue?3af1","webpack://AVUE/./packages/data/pay/index.vue?7459","webpack://AVUE/./packages/data/pay/index.vue?d702","webpack://AVUE/./packages/data/price/index.vue?8203","webpack://AVUE/./packages/data/price/index.vue?0004","webpack://AVUE/./packages/data/price/index.vue?5171","webpack://AVUE/./packages/data/product/index.vue?ba48","webpack://AVUE/./packages/data/product/index.vue?0212","webpack://AVUE/./packages/data/product/index.vue?7865","webpack://AVUE/./packages/data/profile/index.vue?6352","webpack://AVUE/./packages/data/profile/index.vue?77e7","webpack://AVUE/./packages/data/profile/index.vue?3acb","webpack://AVUE/./packages/data/progress/index.vue?64ce","webpack://AVUE/./packages/data/progress/index.vue?b47d","webpack://AVUE/./packages/data/progress/index.vue?6f23","webpack://AVUE/./packages/data/rank/index.vue?1a4a","webpack://AVUE/./packages/data/rank/index.vue?4787","webpack://AVUE/./packages/data/rank/index.vue?a5ba","webpack://AVUE/./packages/data/rotate/index.vue?6fa7","webpack://AVUE/./packages/data/rotate/index.vue?a9af","webpack://AVUE/./packages/data/rotate/index.vue?7775","webpack://AVUE/./packages/data/statistic/index.vue?f3e8","webpack://AVUE/./packages/data/statistic/index.vue?6bde","webpack://AVUE/./packages/data/statistic/index.vue?38f9","webpack://AVUE/./packages/data/tabs/index.vue?d51f","webpack://AVUE/./packages/data/tabs/index.vue?7c77","webpack://AVUE/./packages/data/tabs/index.vue?ff75","webpack://AVUE/./packages/data/task/index.vue?9ac9","webpack://AVUE/./packages/data/task/index.vue?5349","webpack://AVUE/./packages/data/task/index.vue?ad4c","webpack://AVUE/./packages/data/weather/index.vue?24c5","webpack://AVUE/./packages/data/weather/index.vue?9a94","webpack://AVUE/./packages/data/weather/index.vue?d386","webpack://AVUE/./packages/element-plus/array/index.vue?8746","webpack://AVUE/./packages/element-plus/array/index.vue?af21","webpack://AVUE/./packages/element-plus/array/index.vue?eba8","webpack://AVUE/./packages/element-plus/article/index.vue?f387","webpack://AVUE/./packages/element-plus/article/index.vue?2876","webpack://AVUE/./packages/element-plus/article/index.vue?4e36","webpack://AVUE/./packages/element-plus/card/index.vue?0e25","webpack://AVUE/./packages/element-plus/card/index.vue?bd1d","webpack://AVUE/./packages/element-plus/card/index.vue?078f","webpack://AVUE/./packages/element-plus/cascader/index.vue?e816","webpack://AVUE/./packages/element-plus/cascader/index.vue?23fa","webpack://AVUE/./packages/element-plus/cascader/index.vue?dfdc","webpack://AVUE/./packages/element-plus/chat/index.vue?0ba6","webpack://AVUE/./packages/element-plus/chat/index.vue?6d16","webpack://AVUE/./packages/element-plus/chat/index.vue?b35c","webpack://AVUE/./packages/element-plus/checkbox/index.vue?6784","webpack://AVUE/./packages/element-plus/checkbox/index.vue?f38c","webpack://AVUE/./packages/element-plus/checkbox/index.vue?2967","webpack://AVUE/./packages/element-plus/comment/index.vue?d6b0","webpack://AVUE/./packages/element-plus/comment/index.vue?1c38","webpack://AVUE/./packages/element-plus/comment/index.vue?9bfd","webpack://AVUE/./packages/element-plus/count-up/index.vue?d151","webpack://AVUE/./packages/element-plus/count-up/index.vue?9b13","webpack://AVUE/./packages/element-plus/count-up/index.vue?66a2","webpack://AVUE/./packages/element-plus/date/index.vue?df80","webpack://AVUE/./packages/element-plus/date/index.vue?39e7","webpack://AVUE/./packages/element-plus/date/index.vue?f472","webpack://AVUE/./packages/element-plus/draggable/index.vue?bd09","webpack://AVUE/./packages/element-plus/draggable/index.vue?9af1","webpack://AVUE/./packages/element-plus/draggable/index.vue?50f4","webpack://AVUE/./packages/element-plus/dynamic/index.vue?5d5e","webpack://AVUE/./packages/element-plus/dynamic/index.vue?83f6","webpack://AVUE/./packages/element-plus/dynamic/index.vue?b13a","webpack://AVUE/./packages/element-plus/flow/index.vue?429d","webpack://AVUE/./packages/element-plus/flow/index.vue?0416","webpack://AVUE/./packages/element-plus/flow/index.vue?f53d","webpack://AVUE/./packages/element-plus/flow/node.vue?30e0","webpack://AVUE/./packages/element-plus/flow/node.vue?f7cb","webpack://AVUE/./packages/element-plus/flow/node.vue?ba59","webpack://AVUE/./packages/element-plus/form/config.js","webpack://AVUE/./packages/element-plus/form/index.vue?8f53","webpack://AVUE/./packages/element-plus/form/index.vue?0ffb","webpack://AVUE/./packages/element-plus/form/index.vue?ca51","webpack://AVUE/./packages/element-plus/form/menu.vue?adf2","webpack://AVUE/./packages/element-plus/form/menu.vue?3f81","webpack://AVUE/./packages/element-plus/form/menu.vue?9532","webpack://AVUE/./packages/element-plus/group/index.vue?755b","webpack://AVUE/./packages/element-plus/group/index.vue?b0c0","webpack://AVUE/./packages/element-plus/group/index.vue?2a63","webpack://AVUE/./packages/element-plus/input-color/index.vue?86a1","webpack://AVUE/./packages/element-plus/input-color/index.vue?8471","webpack://AVUE/./packages/element-plus/input-color/index.vue?8d33","webpack://AVUE/./packages/element-plus/input-cron/index.vue?28a3","webpack://AVUE/./packages/element-plus/input-cron/index.vue?aef2","webpack://AVUE/./packages/element-plus/input-cron/index.vue?3900","webpack://AVUE/./packages/element-plus/input-icon/index.vue?5918","webpack://AVUE/./packages/element-plus/input-icon/index.vue?26a0","webpack://AVUE/./packages/element-plus/input-icon/index.vue?3df3","webpack://AVUE/./packages/element-plus/input-json/index.vue?8c6f","webpack://AVUE/./packages/element-plus/input-json/index.vue?0fcd","webpack://AVUE/./packages/element-plus/input-json/index.vue?cbde","webpack://AVUE/./packages/element-plus/input-map/index.vue?ca1e","webpack://AVUE/./packages/element-plus/input-map/index.vue?b00f","webpack://AVUE/./packages/element-plus/input-map/index.vue?4907","webpack://AVUE/./packages/element-plus/input-number/index.vue?8cd7","webpack://AVUE/./packages/element-plus/input-number/index.vue?2d41","webpack://AVUE/./packages/element-plus/input-number/index.vue?4089","webpack://AVUE/./packages/element-plus/input-table/index.vue?2473","webpack://AVUE/./packages/element-plus/input-table/index.vue?6784","webpack://AVUE/./packages/element-plus/input-table/index.vue?cdc8","webpack://AVUE/./packages/element-plus/input-tag/index.vue?f60f","webpack://AVUE/./packages/element-plus/input-tag/index.vue?5a80","webpack://AVUE/./packages/element-plus/input-tag/index.vue?97ce","webpack://AVUE/./packages/element-plus/input-tree/index.vue?ee60","webpack://AVUE/./packages/element-plus/input-tree/index.vue?2a0b","webpack://AVUE/./packages/element-plus/input-tree/index.vue?6229","webpack://AVUE/./packages/element-plus/input/index.vue?459a","webpack://AVUE/./packages/element-plus/input/index.vue?7993","webpack://AVUE/./packages/element-plus/input/index.vue?fb47","webpack://AVUE/./packages/element-plus/license/index.vue?a391","webpack://AVUE/./packages/element-plus/license/index.vue?393d","webpack://AVUE/./packages/element-plus/license/index.vue?d00b","webpack://AVUE/./packages/element-plus/login/index.vue?bdf9","webpack://AVUE/./packages/element-plus/login/index.vue?5d45","webpack://AVUE/./packages/element-plus/login/index.vue?934d","webpack://AVUE/./packages/element-plus/mention/index.vue?3f0c","webpack://AVUE/./packages/element-plus/mention/index.vue?bcd6","webpack://AVUE/./packages/element-plus/mention/index.vue?b19b","webpack://AVUE/./packages/element-plus/radio/index.vue?5577","webpack://AVUE/./packages/element-plus/radio/index.vue?f06c","webpack://AVUE/./packages/element-plus/radio/index.vue?ff71","webpack://AVUE/./packages/element-plus/rate/index.vue?d416","webpack://AVUE/./packages/element-plus/rate/index.vue?a135","webpack://AVUE/./packages/element-plus/rate/index.vue?752d","webpack://AVUE/./packages/element-plus/search/index.vue?e0a9","webpack://AVUE/./packages/element-plus/search/index.vue?9d16","webpack://AVUE/./packages/element-plus/search/index.vue?ac06","webpack://AVUE/./packages/element-plus/select/index.vue?2bfe","webpack://AVUE/./packages/element-plus/select/index.vue?ec03","webpack://AVUE/./packages/element-plus/select/index.vue?0fd7","webpack://AVUE/./packages/element-plus/sign/index.vue?067e","webpack://AVUE/./packages/element-plus/sign/index.vue?04a1","webpack://AVUE/./packages/element-plus/sign/index.vue?b1d3","webpack://AVUE/./packages/element-plus/slider/index.vue?6e04","webpack://AVUE/./packages/element-plus/slider/index.vue?1513","webpack://AVUE/./packages/element-plus/slider/index.vue?fab8","webpack://AVUE/./packages/element-plus/switch/index.vue?b278","webpack://AVUE/./packages/element-plus/switch/index.vue?af06","webpack://AVUE/./packages/element-plus/switch/index.vue?7faa","webpack://AVUE/./packages/element-plus/tabs/index.vue?0ec5","webpack://AVUE/./packages/element-plus/tabs/index.vue?2732","webpack://AVUE/./packages/element-plus/tabs/index.vue?1a9f","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?5a57","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?fd6d","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?fbb3","webpack://AVUE/./packages/element-plus/time/index.vue?bff8","webpack://AVUE/./packages/element-plus/time/index.vue?94cf","webpack://AVUE/./packages/element-plus/time/index.vue?ea71","webpack://AVUE/./packages/element-plus/title/index.vue?f36f","webpack://AVUE/./packages/element-plus/title/index.vue?c2b0","webpack://AVUE/./packages/element-plus/title/index.vue?dd0d","webpack://AVUE/./packages/element-plus/transfer/index.vue?91e7","webpack://AVUE/./packages/element-plus/transfer/index.vue?306f","webpack://AVUE/./packages/element-plus/transfer/index.vue?139a","webpack://AVUE/./packages/element-plus/tree/index.vue?a0c9","webpack://AVUE/./packages/element-plus/tree/index.vue?21b2","webpack://AVUE/./packages/element-plus/tree/index.vue?bb93","webpack://AVUE/./packages/element-plus/upload/index.vue?563e","webpack://AVUE/./packages/element-plus/upload/index.vue?024e","webpack://AVUE/./packages/element-plus/upload/index.vue?4407","webpack://AVUE/./packages/element-plus/verify/index.vue?c37d","webpack://AVUE/./packages/element-plus/verify/index.vue?4108","webpack://AVUE/./packages/element-plus/verify/index.vue?cf10","webpack://AVUE/./packages/element-plus/video/index.vue?4737","webpack://AVUE/./packages/element-plus/video/index.vue?ad09","webpack://AVUE/./packages/element-plus/video/index.vue?7a8e","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/identity.ts","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\":\"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(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"AVUE\", [\"@element-plus/icons-vue\", \"axios\", \"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AVUE\"] = factory(require(\"@element-plus/icons-vue\"), require(\"axios\"), require(\"vue\"));\n\telse\n\t\troot[\"AVUE\"] = factory(root[\"ElementPlusIconsVue\"], root[\"axios\"], root[\"Vue\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__element_plus_icons_vue__, __WEBPACK_EXTERNAL_MODULE_axios__, __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=\"data-countdown\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-countdown__item\" :style=\"getItemStyle(item)\">\r\n <div class=\"data-countdown__title\" v-if=\"item.title\">{{ item.title }}</div>\r\n <div class=\"data-countdown__timer\">\r\n <div class=\"data-countdown__block\" v-if=\"showDays\">\r\n <span class=\"data-countdown__number\">{{ formatNumber(item.days || 0) }}</span>\r\n <span class=\"data-countdown__label\">天</span>\r\n </div>\r\n <span class=\"data-countdown__separator\" v-if=\"showDays\">:</span>\r\n <div class=\"data-countdown__block\">\r\n <span class=\"data-countdown__number\">{{ formatNumber(item.hours || 0) }}</span>\r\n <span class=\"data-countdown__label\">时</span>\r\n </div>\r\n <span class=\"data-countdown__separator\">:</span>\r\n <div class=\"data-countdown__block\">\r\n <span class=\"data-countdown__number\">{{ formatNumber(item.minutes || 0) }}</span>\r\n <span class=\"data-countdown__label\">分</span>\r\n </div>\r\n <span class=\"data-countdown__separator\">:</span>\r\n <div class=\"data-countdown__block\">\r\n <span class=\"data-countdown__number\">{{ formatNumber(item.seconds || 0) }}</span>\r\n <span class=\"data-countdown__label\">秒</span>\r\n </div>\r\n </div>\r\n <div class=\"data-countdown__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-countdown\",\r\n data() {\r\n return {\r\n timers: []\r\n };\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n showDays() {\r\n return this.option.showDays !== false;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n background: item.background || 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)'\r\n };\r\n },\r\n formatNumber(num) {\r\n return num < 10 ? '0' + num : num;\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-dashboard\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-dashboard__item\" :style=\"getItemStyle(item)\">\r\n <div class=\"data-dashboard__header\">\r\n <span class=\"data-dashboard__title\">{{ item.title }}</span>\r\n <el-tag v-if=\"item.status\" size=\"small\" :type=\"item.statusType || ''\">{{ item.status }}</el-tag>\r\n </div>\r\n <div class=\"data-dashboard__value\">\r\n <avue-count-up :animation=\"animation\"\r\n :decimals=\"item.decimals || 0\"\r\n :end=\"item.value\"></avue-count-up>\r\n <span class=\"data-dashboard__unit\" v-if=\"item.unit\">{{ item.unit }}</span>\r\n </div>\r\n <div class=\"data-dashboard__chart\" v-if=\"item.chartData\">\r\n <div class=\"data-dashboard__bar\"\r\n v-for=\"(bar, idx) in item.chartData\"\r\n :key=\"idx\"\r\n :style=\"{height: bar + '%', backgroundColor: item.chartColor || '#409eff'}\">\r\n </div>\r\n </div>\r\n <div class=\"data-dashboard__footer\" v-if=\"item.footerText\">\r\n <span>{{ item.footerText }}</span>\r\n <span v-if=\"item.footerValue\" :style=\"{color: item.footerColor}\">{{ item.footerValue }}</span>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-dashboard\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n animation() {\r\n return this.option.animation !== false;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n backgroundColor: item.backgroundColor || '#fff'\r\n };\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-display\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"12\"\r\n :sm=\"12\">\r\n <div class=\"item\"\r\n :style=\"{color:color}\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n class=\"count\"\r\n :style=\"{color:item.color}\"\r\n :end=\"item.count\"></avue-count-up>\r\n <span class=\"splitLine\" />\r\n <div class=\"title\"\r\n :style=\"{color:item.fontColor}\">{{item.title}}</div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-display\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n },\r\n color () {\r\n return this.option.color || \"rgb(63, 161, 255)\";\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-icons\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :xs=\"12\"\r\n :sm=\"6\"\r\n :md=\"span\"\r\n :key=\"index\">\r\n <div class=\"item\"\r\n :class=\"[{'item--easy':discount}]\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-icon\">\r\n <el-icon :color=\"item.color\">\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\r\n <div class=\"item-info\">\r\n <span>{{item.title}}</span>\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n :style=\"{color:color}\"\r\n class=\"count\"\r\n :end=\"item.count\"></avue-count-up>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-icons\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 4;\r\n },\r\n data () {\r\n return this.option.data;\r\n },\r\n color () {\r\n return this.option.color || \"rgb(63, 161, 255)\";\r\n },\r\n discount () {\r\n return this.option.discount || false;\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-imgtext\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\">\r\n <div class=\"item\"\r\n :style=\"{color:color}\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n <img :src=\"item.imgsrc\"\r\n alt=\"\">\r\n </div>\r\n <div class=\"item-content\">\r\n <span>{{item.title}}</span>\r\n <p>{{item.content}}</p>\r\n </div>\r\n <div class=\"item-footer\">\r\n <div class=\"time\"><span>{{item.time}}</span></div>\r\n <div class=\"imgs\">\r\n <ul>\r\n <li v-for=\"(imgs,index) in item.headimg\"\r\n :key=\"index\">\r\n <el-tooltip effect=\"dark\"\r\n :content=\"imgs.name\"\r\n placement=\"top-start\">\r\n <img :src='imgs.src'\r\n alt=\"\">\r\n </el-tooltip>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-imgtext\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n },\r\n color () {\r\n return this.option.color || \"rgb(63, 161, 255)\";\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"data-list\">\r\n <div class=\"data-list__header\" v-if=\"title\">\r\n <span class=\"data-list__title\">{{ title }}</span>\r\n <span class=\"data-list__extra\" v-if=\"$slots.extra\"><slot name=\"extra\"></slot></span>\r\n </div>\r\n <div class=\"data-list__content\">\r\n <div class=\"data-list__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n @click=\"handleClick(item)\">\r\n <div class=\"data-list__avatar\" v-if=\"item.avatar || item.icon\">\r\n <img v-if=\"item.avatar\" :src=\"item.avatar\" :alt=\"item.title\" />\r\n <i v-else-if=\"item.icon\" :class=\"item.icon\" :style=\"{color: item.iconColor}\"></i>\r\n </div>\r\n <div class=\"data-list__body\">\r\n <div class=\"data-list__title-row\">\r\n <span class=\"data-list__name\">{{ item.title }}</span>\r\n <el-tag v-if=\"item.tag\" size=\"small\" :type=\"item.tagType || ''\">{{ item.tag }}</el-tag>\r\n </div>\r\n <div class=\"data-list__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n </div>\r\n <div class=\"data-list__extra\" v-if=\"item.extra\">\r\n <span class=\"data-list__value\" :style=\"{color: item.valueColor}\">{{ item.extra }}</span>\r\n <span class=\"data-list__label\" v-if=\"item.label\">{{ item.label }}</span>\r\n </div>\r\n <div class=\"data-list__action\" v-if=\"item.actions && item.actions.length\">\r\n <el-button v-for=\"(action, idx) in item.actions\"\r\n :key=\"idx\"\r\n :type=\"action.type || 'text'\"\r\n size=\"small\"\r\n @click.stop=\"action.click && action.click(item)\">\r\n {{ action.text }}\r\n </el-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-list\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n handleClick(item) {\r\n this.$emit('click', item);\r\n item.click && item.click(item);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-notice\">\r\n <div class=\"data-notice__header\" v-if=\"title\">\r\n <span class=\"data-notice__title\">{{ title }}</span>\r\n <span class=\"data-notice__more\" v-if=\"showMore\" @click=\"handleMore\">{{ moreText }}</span>\r\n </div>\r\n <div class=\"data-notice__list\">\r\n <div class=\"data-notice__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n @click=\"handleClick(item)\">\r\n <div class=\"data-notice__tag\" v-if=\"item.tag\" :style=\"{backgroundColor: item.tagColor || '#409eff'}\">\r\n {{ item.tag }}\r\n </div>\r\n <div class=\"data-notice__content\">\r\n <div class=\"data-notice__text\">{{ item.title }}</div>\r\n <div class=\"data-notice__date\" v-if=\"item.date\">{{ item.date }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-notice\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n showMore() {\r\n return this.option.showMore !== false;\r\n },\r\n moreText() {\r\n return this.option.moreText || '更多';\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n handleClick(item) {\r\n this.$emit('click', item);\r\n item.click && item.click(item);\r\n },\r\n handleMore() {\r\n this.$emit('more');\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-operatext\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\">\r\n <div class=\"item\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\">\r\n <div class=\"item-header\"\r\n :style=\"{backgroundColor:item.color,backgroundImage:`url(${item.colorImg})`}\">\r\n <span class=\"item-title\">{{item.title}}</span>\r\n <span class=\"item-subtitle\">{{item.subtitle}}</span>\r\n </div>\r\n <div class=\"item-content\">\r\n <div class=\"item-img\">\r\n <img :src=\"item.img\"\r\n alt=\"\">\r\n </div>\r\n <div class=\"item-list\">\r\n <div class=\"item-row\"\r\n v-for=\"(citem,cindex) in item.list\"\r\n :key=\"cindex\">\r\n <span class=\"item-label\">{{citem.label}}</span>\r\n <span class=\"item-value\">{{citem.value}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-operatext\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"avue-data-panel\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\">\r\n <div class=\"item\">\r\n <div class=\"item-icon\">\r\n <el-icon :color=\"item.color\">\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\r\n <div class=\"item-info\">\r\n <div class=\"item-title\">{{item.title}}</div>\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n class=\"item-count\"\r\n :end=\"item.count\"></avue-count-up>\r\n </div>\r\n\r\n </div>\r\n </a>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-panel\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n animation () {\r\n return this.option.animation\r\n },\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\">\r\n <div class=\"top\"\r\n :style=\"{backgroundColor:item.color}\"></div>\r\n <div class=\"header\">\r\n <p class=\"title\">{{item.title}}</p>\r\n <img :src=\"item.src\"\r\n alt=\"\"\r\n class=\"img\">\r\n <template v-if=\"item.subtitle\">\r\n <p class=\"subtitle\"\r\n :style=\"{color:item.color}\">{{item.subtitle}}</p>\r\n </template>\r\n <template v-if=\"item.money || item.dismoney\">\r\n <p class=\"money\"\r\n :style=\"{color:item.color}\">\r\n <span>¥</span>\r\n <avue-count-up class=\"b\"\r\n :decimals=\"item.decimals || decimals\"\r\n :animation=\"item.animation || animation\"\r\n :end=\"item.dismoney\"></avue-count-up>\r\n <s>{{item.money}}</s>\r\n <em>{{item.tip}}</em>\r\n </p>\r\n </template>\r\n <div class=\"line\"></div>\r\n <a class=\"btn\"\r\n :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :style=\"{backgroundColor:item.color}\">{{item.subtext}}</a>\r\n </div>\r\n <div class=\"list\">\r\n <div class=\"list-item\"\r\n :key=\"cindex\"\r\n v-for=\"(citem,cindex) in item.list\">\r\n <i class=\"list-item-icon list-item--check\"\r\n :style=\"{color:item.color}\"\r\n v-if=\"citem.check\">√</i>\r\n <i class=\"list-item-icon list-item--no\"\r\n v-else>x</i>\r\n <a :href=\"citem.href?citem.href:'javascript:void(0);'\">\r\n <el-tooltip effect=\"dark\"\r\n :disabled=\"!citem.tip\"\r\n placement=\"top\">\r\n <template #content>\r\n <div v-html=\"citem.tip\"></div>\r\n </template>\r\n <span :class=\"{'list-item--link':citem.href}\">{{citem.title}}</span>\r\n </el-tooltip>\r\n\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-pay\",\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-price\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :xs=\"12\"\r\n :sm=\"6\"\r\n :md=\"span\"\r\n :key=\"index\">\r\n <div class=\"item item--active\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"title\">\r\n {{item.title}}\r\n </div>\r\n <div class=\"body\">\r\n <span class=\"price\">{{item.price}}</span>\r\n <span class=\"append\">{{item.append}}</span>\r\n </div>\r\n <div class=\"list\">\r\n <p v-for=\"(citem,cindex) in item.list\"\r\n :key=\"cindex\">\r\n {{citem}}\r\n </p>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-price\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data;\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-product\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-product__item\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-product__img\">\r\n <img :src=\"item.img\" :alt=\"item.name\" />\r\n <div class=\"data-product__tag\" v-if=\"item.tag\" :style=\"{backgroundColor: item.tagColor || '#f56c6c'}\">\r\n {{ item.tag }}\r\n </div>\r\n </div>\r\n <div class=\"data-product__content\">\r\n <div class=\"data-product__name\">{{ item.name }}</div>\r\n <div class=\"data-product__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n <div class=\"data-product__rating\" v-if=\"item.rating !== undefined\">\r\n <el-rate v-model=\"item.rating\" disabled :colors=\"ratingColors\" />\r\n <span class=\"data-product__rating-value\">{{ item.rating }}</span>\r\n <span class=\"data-product__rating-count\" v-if=\"item.ratingCount\">({{ item.ratingCount }})</span>\r\n </div>\r\n <div class=\"data-product__price\">\r\n <span class=\"data-product__price-current\">\r\n <span class=\"data-product__price-symbol\">{{ priceSymbol }}</span>\r\n {{ item.price }}\r\n </span>\r\n <span class=\"data-product__price-original\" v-if=\"item.originalPrice\">\r\n {{ priceSymbol }}{{ item.originalPrice }}\r\n </span>\r\n <span class=\"data-product__discount\" v-if=\"item.discount\">{{ item.discount }}</span>\r\n </div>\r\n <div class=\"data-product__info\" v-if=\"item.sales || item.stock\">\r\n <span v-if=\"item.sales\">已售 {{ item.sales }}</span>\r\n <span v-if=\"item.stock\">库存 {{ item.stock }}</span>\r\n </div>\r\n <div class=\"data-product__actions\" v-if=\"showActions\">\r\n <el-button type=\"primary\" size=\"small\" @click.stop=\"handleBuy(item)\">\r\n {{ buyText }}\r\n </el-button>\r\n <el-button size=\"small\" @click.stop=\"handleCart(item)\" v-if=\"showCart\">\r\n 加入购物车\r\n </el-button>\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-product\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n },\r\n priceSymbol() {\r\n return this.option.priceSymbol || '¥';\r\n },\r\n showActions() {\r\n return this.option.showActions !== false;\r\n },\r\n showCart() {\r\n return this.option.showCart !== false;\r\n },\r\n buyText() {\r\n return this.option.buyText || '立即购买';\r\n },\r\n ratingColors() {\r\n return this.option.ratingColors || ['#F7BA2A', '#F7BA2A', '#F7BA2A'];\r\n }\r\n },\r\n methods: {\r\n handleBuy(item) {\r\n this.$emit('buy', item);\r\n item.onBuy && item.onBuy(item);\r\n },\r\n handleCart(item) {\r\n this.$emit('cart', item);\r\n item.onCart && item.onCart(item);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-profile\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-profile__item\"\r\n :style=\"getItemStyle(item)\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-profile__cover\" v-if=\"item.cover\" :style=\"{backgroundImage: 'url(' + item.cover + ')'}\"></div>\r\n <div class=\"data-profile__avatar\">\r\n <img :src=\"item.avatar\" :alt=\"item.name\" v-if=\"item.avatar\" />\r\n <span v-else class=\"data-profile__avatar-text\">{{ getAvatarText(item.name) }}</span>\r\n </div>\r\n <div class=\"data-profile__name\">{{ item.name }}</div>\r\n <div class=\"data-profile__title\" v-if=\"item.title\">{{ item.title }}</div>\r\n <div class=\"data-profile__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n <div class=\"data-profile__tags\" v-if=\"item.tags && item.tags.length\">\r\n <el-tag v-for=\"(tag, idx) in item.tags\" :key=\"idx\" size=\"small\" :type=\"tag.type || ''\">\r\n {{ tag.text || tag }}\r\n </el-tag>\r\n </div>\r\n <div class=\"data-profile__contact\" v-if=\"item.phone || item.email\">\r\n <div class=\"data-profile__contact-item\" v-if=\"item.phone\">\r\n <span class=\"data-profile__contact-icon\">📱</span>\r\n <span>{{ item.phone }}</span>\r\n </div>\r\n <div class=\"data-profile__contact-item\" v-if=\"item.email\">\r\n <span class=\"data-profile__contact-icon\">📧</span>\r\n <span>{{ item.email }}</span>\r\n </div>\r\n </div>\r\n <div class=\"data-profile__stats\" v-if=\"item.stats && item.stats.length\">\r\n <div class=\"data-profile__stat\" v-for=\"(stat, idx) in item.stats\" :key=\"idx\">\r\n <div class=\"data-profile__stat-value\">{{ stat.value }}</div>\r\n <div class=\"data-profile__stat-label\">{{ stat.label }}</div>\r\n </div>\r\n </div>\r\n <div class=\"data-profile__actions\" v-if=\"item.actions && item.actions.length\">\r\n <el-button v-for=\"(action, idx) in item.actions\"\r\n :key=\"idx\"\r\n :type=\"action.type || 'primary'\"\r\n size=\"small\"\r\n @click.stop=\"action.click && action.click(item)\">\r\n {{ action.text }}\r\n </el-button>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-profile\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n backgroundColor: item.backgroundColor || '#fff'\r\n };\r\n },\r\n getAvatarText(name) {\r\n return name ? name.charAt(0).toUpperCase() : '?';\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-progress\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n <avue-count-up class=\"item-count\"\r\n :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n :end=\"item.count\"></avue-count-up>\r\n <div class=\"item-title\"\r\n v-text=\"item.title\"></div>\r\n </div>\r\n <el-progress :stroke-width=\"15\"\r\n :percentage=\"item.count\"\r\n :color=\"item.color\"\r\n :show-text=\"false\"></el-progress>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-progress\",\r\n data () {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n created () { },\r\n mounted () { },\r\n watch: {},\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"data-rank\">\r\n <div class=\"data-rank__header\" v-if=\"title\">\r\n <span class=\"data-rank__title\">{{ title }}</span>\r\n </div>\r\n <div class=\"data-rank__list\">\r\n <div class=\"data-rank__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-rank__index\" :class=\"getRankClass(index)\">\r\n <span v-if=\"index < 3\">{{ getMedal(index) }}</span>\r\n <span v-else>{{ index + 1 }}</span>\r\n </div>\r\n <div class=\"data-rank__avatar\" v-if=\"item.avatar\">\r\n <img :src=\"item.avatar\" :alt=\"item.name\" />\r\n </div>\r\n <div class=\"data-rank__info\">\r\n <div class=\"data-rank__name\">{{ item.name }}</div>\r\n <div class=\"data-rank__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n </div>\r\n <div class=\"data-rank__value\">\r\n <avue-count-up :animation=\"animation\"\r\n :decimals=\"item.decimals || 0\"\r\n :end=\"item.value\"></avue-count-up>\r\n <span class=\"data-rank__unit\" v-if=\"item.unit || unit\">{{ item.unit || unit }}</span>\r\n </div>\r\n <div class=\"data-rank__bar\" v-if=\"showBar\">\r\n <el-progress :percentage=\"getPercentage(item.value)\"\r\n :show-text=\"false\"\r\n :stroke-width=\"6\"\r\n :color=\"item.color || barColor\"></el-progress>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-rank\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n animation() {\r\n return this.option.animation !== false;\r\n },\r\n unit() {\r\n return this.option.unit || '';\r\n },\r\n showBar() {\r\n return this.option.showBar !== false;\r\n },\r\n barColor() {\r\n return this.option.barColor || '#409eff';\r\n },\r\n data() {\r\n return this.option.data || [];\r\n },\r\n maxValue() {\r\n if (this.data.length === 0) return 100;\r\n return Math.max(...this.data.map(item => item.value || 0));\r\n }\r\n },\r\n methods: {\r\n getRankClass(index) {\r\n if (index === 0) return 'is-first';\r\n if (index === 1) return 'is-second';\r\n if (index === 2) return 'is-third';\r\n return '';\r\n },\r\n getMedal(index) {\r\n const medals = ['🥇', '🥈', '🥉'];\r\n return medals[index] || '';\r\n },\r\n getPercentage(value) {\r\n return Math.round((value / this.maxValue) * 100);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-rotate\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\"\r\n :style=\"{backgroundColor:item.color}\">\r\n <div class=\"item-box\">\r\n <avue-count-up class=\"item-count\"\r\n :decimals=\"item.decimals || decimals\"\r\n :animation=\"item.animation || animation\"\r\n :end=\"item.count\"></avue-count-up>\r\n <span class=\"item-title\">{{item.title}}</span>\r\n <el-icon :color=\"item.color\"\r\n class=\"item-icon\">\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\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=\"data-statistic\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-statistic__item\"\r\n :style=\"getItemStyle(item)\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-statistic__icon\" v-if=\"item.icon\">\r\n <i :class=\"item.icon\" :style=\"{color: item.iconColor || '#409eff', fontSize: (item.iconSize || 40) + 'px'}\"></i>\r\n </div>\r\n <div class=\"data-statistic__content\">\r\n <div class=\"data-statistic__title\">{{ item.title }}</div>\r\n <div class=\"data-statistic__value\" :style=\"{color: item.valueColor}\">\r\n <span class=\"data-statistic__prefix\" v-if=\"item.prefix\">{{ item.prefix }}</span>\r\n <avue-count-up :animation=\"item.animation !== false\"\r\n :decimals=\"item.decimals || 0\"\r\n :end=\"item.value\"></avue-count-up>\r\n <span class=\"data-statistic__suffix\" v-if=\"item.suffix\">{{ item.suffix }}</span>\r\n </div>\r\n <div class=\"data-statistic__trend\" v-if=\"item.trend !== undefined\">\r\n <span :class=\"['data-statistic__trend-icon', item.trend >= 0 ? 'is-up' : 'is-down']\">\r\n {{ item.trend >= 0 ? '↑' : '↓' }}\r\n </span>\r\n <span class=\"data-statistic__trend-value\">{{ Math.abs(item.trend) }}%</span>\r\n <span class=\"data-statistic__trend-text\" v-if=\"item.trendText\">{{ item.trendText }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-statistic\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n backgroundColor: item.backgroundColor || '#fff',\r\n borderColor: item.borderColor || '#ebeef5'\r\n };\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-tabs\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\"\r\n :style=\"{background:item.color}\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n <p>{{item.title}}</p>\r\n <span>{{item.subtitle}}</span>\r\n </div>\r\n <div class=\"item-body\">\r\n <avue-count-up class=\"h2\"\r\n :decimals=\"item.decimals || decimals\"\r\n :animation=\"item.animation || animation\"\r\n :end=\"item.count\"></avue-count-up>\r\n </div>\r\n <div class=\"item-footer\">\r\n <span>{{item.allcount}}</span>\r\n <p>{{item.text}}</p>\r\n </div>\r\n <p class=\"item-tip\">{{item.key}}</p>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-tabs\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-task\">\r\n <div class=\"data-task__header\" v-if=\"title\">\r\n <span class=\"data-task__title\">{{ title }}</span>\r\n <span class=\"data-task__count\">{{ completedCount }}/{{ data.length }}</span>\r\n </div>\r\n <div class=\"data-task__progress\">\r\n <el-progress :percentage=\"progressPercent\" :stroke-width=\"8\" :show-text=\"false\"></el-progress>\r\n </div>\r\n <div class=\"data-task__list\">\r\n <div class=\"data-task__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n :class=\"{'is-completed': item.completed}\">\r\n <el-checkbox v-model=\"item.completed\" @change=\"handleChange(item, index)\"></el-checkbox>\r\n <div class=\"data-task__content\">\r\n <div class=\"data-task__text\">{{ item.title }}</div>\r\n <div class=\"data-task__meta\" v-if=\"item.deadline || item.priority\">\r\n <span class=\"data-task__deadline\" v-if=\"item.deadline\">{{ item.deadline }}</span>\r\n <el-tag v-if=\"item.priority\" size=\"small\" :type=\"getPriorityType(item.priority)\">\r\n {{ item.priority }}\r\n </el-tag>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-task\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n },\r\n completedCount() {\r\n return this.data.filter(item => item.completed).length;\r\n },\r\n progressPercent() {\r\n if (this.data.length === 0) return 0;\r\n return Math.round((this.completedCount / this.data.length) * 100);\r\n }\r\n },\r\n methods: {\r\n handleChange(item, index) {\r\n this.$emit('change', { item, index, completed: item.completed });\r\n },\r\n getPriorityType(priority) {\r\n const types = { '高': 'danger', '中': 'warning', '低': 'info' };\r\n return types[priority] || '';\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-weather\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-weather__item\"\r\n :style=\"getItemStyle(item)\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-weather__header\">\r\n <span class=\"data-weather__city\">{{ item.city }}</span>\r\n <span class=\"data-weather__date\">{{ item.date }}</span>\r\n </div>\r\n <div class=\"data-weather__body\">\r\n <div class=\"data-weather__icon\">\r\n <i :class=\"getWeatherIcon(item.weather)\" :style=\"{fontSize: '48px'}\"></i>\r\n </div>\r\n <div class=\"data-weather__temp\">\r\n <span class=\"data-weather__temp-value\">{{ item.temp }}</span>\r\n <span class=\"data-weather__temp-unit\">°C</span>\r\n </div>\r\n </div>\r\n <div class=\"data-weather__footer\">\r\n <span class=\"data-weather__desc\">{{ item.weather }}</span>\r\n <span class=\"data-weather__wind\" v-if=\"item.wind\">{{ item.wind }}</span>\r\n </div>\r\n <div class=\"data-weather__range\" v-if=\"item.tempLow !== undefined\">\r\n {{ item.tempLow }}° ~ {{ item.tempHigh }}°\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-weather\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n const gradients = {\r\n '晴': 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',\r\n '多云': 'linear-gradient(135deg, #89f7fe 0%, #66a6ff 100%)',\r\n '阴': 'linear-gradient(135deg, #bdc3c7 0%, #2c3e50 100%)',\r\n '雨': 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',\r\n '雪': 'linear-gradient(135deg, #e0eafc 0%, #cfdef3 100%)'\r\n };\r\n return {\r\n background: item.background || gradients[item.weather] || gradients['晴']\r\n };\r\n },\r\n getWeatherIcon(weather) {\r\n const icons = {\r\n '晴': 'el-icon-sunny',\r\n '多云': 'el-icon-partly-cloudy',\r\n '阴': 'el-icon-cloudy',\r\n '雨': 'el-icon-heavy-rain',\r\n '雪': 'el-icon-ice-cream'\r\n };\r\n return icons[weather] || 'el-icon-sunny';\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-button type=\"primary\"\r\n icon=\"el-icon-plus\"\r\n circle\r\n :size=\"size\"\r\n v-if=\"validatenull(text)\"\r\n :disabled=\"disabled\"\r\n @click=\"add()\"></el-button>\r\n <div :class=\"b('item')\"\r\n v-for=\"(item,index) in text\"\r\n :key=\"index\">\r\n <div :class=\"b('input')\">\r\n <el-tooltip placement=\"bottom\"\r\n :disabled=\"(!isImg && !isUrl) || validatenull(item)\">\r\n <template #content>\r\n <component style=\"width: 200px\"\r\n :src=\"item\"\r\n @click=\"openImg(index)\"\r\n v-if=\"isImg\"\r\n controls=\"controls\"\r\n :is=\"isMediaType(item)\"></component>\r\n <el-link type=\"primary\"\r\n :href=\"item\"\r\n v-else-if=\"isUrl\"\r\n :target=\"target\">{{item}}</el-link>\r\n </template>\r\n <el-input v-model=\"text[index]\"\r\n :size=\"size\"\r\n :maxlength=\"maxlength\"\r\n :minlength=\"minlength\"\r\n :show-word-limit=\"showWordLimit\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"></el-input>\r\n </el-tooltip>\r\n <template v-if=\"!(disabled ||readonly || alone)\">\r\n <el-button v-if=\"!isLimit\"\r\n type=\"primary\"\r\n icon=\"el-icon-plus\"\r\n circle\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n @click=\"add(index)\"></el-button>\r\n <el-button type=\"danger\"\r\n icon=\"el-icon-minus\"\r\n circle\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n @click=\"remove(index)\"></el-button>\r\n </template>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props.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 <div :class=\"b()\">\r\n <el-date-picker\r\n :type=\"type\"\r\n v-model=\"text\"\r\n :popper-class=\"popperClass\"\r\n :size=\"size\"\r\n :cell-class-name=\"cellClassName\"\r\n :editable=\"editable\"\r\n :unlink-panels=\"unlinkPanels\"\r\n :default-value=\"defaultValue\"\r\n :default-time=\"defaultTime\"\r\n :range-separator=\"rangeSeparator\"\r\n :start-placeholder=\"startPlaceholder || t('date.start')\"\r\n :end-placeholder=\"endPlaceholder || t('date.end')\"\r\n :format=\"format\"\r\n :clearable=\"clearableVal\"\r\n :shortcuts=\"shortcuts\"\r\n :disabled-date=\"disabledDate\"\r\n :disabled-hours=\"disabledHours\"\r\n :disabled-minutes=\"disabledMinutes\"\r\n :disabled-seconds=\"disabledSeconds\"\r\n :value-format=\"valueFormat\"\r\n :placeholder=\"placeholder\"\r\n :prefix-icon=\"prefixIcon\"\r\n :show-now=\"showNow\"\r\n @blur=\"handleBlur\"\r\n @focus=\"handleFocus\"\r\n @click=\"handleClick\"\r\n :readonly=\"readonly\"\r\n :disabled=\"disabled\"\r\n >\r\n <template #=\"cell\">\r\n <div class=\"el-date-table-cell\">\r\n <slot :item=\"cell\" v-if=\"$slots.default\"> </slot>\r\n <span class=\"el-date-table-cell__text\" v-else>{{\r\n cell.renderText || cell.text\r\n }}</span>\r\n </div>\r\n </template>\r\n </el-date-picker>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport props from \"common/common/props.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 disabledHours: Function,\r\n disabledMinutes: Function,\r\n disabledSeconds: Function,\r\n showNow: Boolean,\r\n shortcuts: [Array, Function],\r\n editable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n unlinkPanels: Boolean,\r\n value: {},\r\n startPlaceholder: String,\r\n endPlaceholder: String,\r\n rangeSeparator: String,\r\n defaultValue: [String, Array],\r\n defaultTime: [String, Array],\r\n type: {\r\n type: String,\r\n default: \"date\",\r\n },\r\n valueFormat: String,\r\n format: String,\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b({'active':((active || overActive)&&!readonly),'move':moveActive,'click':disabled})\"\r\n @mousedown.stop=\"handleMove\"\r\n @mouseover.stop=\"handleOver\"\r\n @mouseout.stop=\"handleOut\"\r\n :style=\"styleName\">\r\n <el-input ref=\"input\"\r\n :class=\"b('focus')\"\r\n v-model=\"value\"></el-input>\r\n <div :class=\"b('wrapper')\"\r\n ref=\"wrapper\">\r\n <template v-if=\"(active || overActive || moveActive)&&!readonly\">\r\n <div :style=\"styleLineName\"\r\n :class=\"b('line',['left'])\"></div>\r\n <div :style=\"styleLineName\"\r\n :class=\"b('line',['top'])\"></div>\r\n <div :class=\"b('line',['label'])\"\r\n :style=\"styleLabelName\">{{baseLeft}},{{baseTop}}</div>\r\n </template>\r\n <template v-for=\"(item,index) in rangeList\"\r\n v-if=\"!readonly\">\r\n <div :class=\"b('range',[item.classname])\"\r\n :key=\"index\"\r\n v-if=\"active\"\r\n :style=\"[styleRangeName,getRangeStyle(item.classname)]\"\r\n @mousedown.stop=\"rangeMove($event,item.classname)\"></div>\r\n </template>\r\n <div :class=\"b('menu')\"\r\n :style=\"styleMenuName\"\r\n v-show=\"active || overActive\">\r\n <slot name=\"menu\"\r\n :zIndex=\"zIndex\"\r\n :index=\"index\"></slot>\r\n </div>\r\n <div :class=\"b('item')\"\r\n ref=\"item\">\r\n <slot></slot>\r\n </div>\r\n <div :class=\"b('mask')\"\r\n v-if=\"!disabled && mask\"></div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport { getFixed } from \"utils/util\";\r\nexport default create({\r\n name: \"draggable\",\r\n props: {\r\n index: {\r\n type: [String, Number],\r\n },\r\n mask: {\r\n type: Boolean,\r\n default: true\r\n },\r\n scale: {\r\n type: Number,\r\n default: 1\r\n },\r\n readonly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n resize: {\r\n type: Boolean,\r\n default: true\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n step: {\r\n type: Number,\r\n default: 1\r\n },\r\n lock: {\r\n type: Boolean,\r\n default: false\r\n },\r\n zIndex: {\r\n type: [Number, String],\r\n default: 1\r\n },\r\n left: {\r\n type: Number,\r\n default: 0\r\n },\r\n top: {\r\n type: Number,\r\n default: 0\r\n },\r\n width: {\r\n type: Number\r\n },\r\n height: {\r\n type: Number\r\n }\r\n },\r\n data () {\r\n return {\r\n first: true,\r\n value: '',\r\n baseWidth: 0,\r\n baseHeight: 0,\r\n baseLeft: 0,\r\n baseTop: 0,\r\n children: {},\r\n moveActive: false,\r\n overActive: false,\r\n rangeActive: false,\r\n active: false,\r\n keyDown: null,\r\n rangeList: [\r\n {\r\n classname: \"left\",\r\n },\r\n {\r\n classname: \"right\",\r\n },\r\n {\r\n classname: \"top\",\r\n },\r\n {\r\n classname: \"bottom\",\r\n },\r\n {\r\n classname: \"top-left\",\r\n },\r\n {\r\n classname: \"top-right\",\r\n },\r\n {\r\n classname: \"bottom-left\",\r\n },\r\n {\r\n classname: \"bottom-right\",\r\n }\r\n ]\r\n };\r\n },\r\n computed: {\r\n scaleVal () {\r\n return this.scale;\r\n },\r\n styleMenuName () {\r\n return {\r\n transformOrigin: \"0 0\",\r\n transform: `scale(${this.scaleVal})`\r\n };\r\n },\r\n styleLineName () {\r\n return {\r\n borderWidth: this.setPx(this.scaleVal)\r\n };\r\n },\r\n styleRangeName () {\r\n const calc = 10 * this.scaleVal;\r\n return {\r\n width: this.setPx(calc),\r\n height: this.setPx(calc)\r\n };\r\n },\r\n styleLabelName () {\r\n return {\r\n fontSize: this.setPx(18 * this.scaleVal)\r\n };\r\n },\r\n styleName () {\r\n return Object.assign(\r\n (() => {\r\n if (this.active) {\r\n return Object.assign(\r\n {\r\n zIndex: 9999\r\n },\r\n this.styleLineName\r\n );\r\n }\r\n return { zIndex: this.zIndex };\r\n })(),\r\n {\r\n top: this.setPx(this.baseTop),\r\n left: this.setPx(this.baseLeft),\r\n width: this.setPx(this.baseWidth),\r\n height: this.setPx(this.baseHeight)\r\n }\r\n );\r\n }\r\n },\r\n watch: {\r\n active (val) {\r\n if (val) {\r\n this.handleKeydown()\r\n } else {\r\n document.onkeydown = this.keyDown\r\n }\r\n },\r\n width (val) {\r\n this.baseWidth = getFixed(val) || this.children.offsetWidth;\r\n },\r\n height (val) {\r\n this.baseHeight = getFixed(val) || this.children.offsetHeight;\r\n },\r\n left (val) {\r\n this.baseLeft = getFixed(val);\r\n },\r\n top (val) {\r\n this.baseTop = getFixed(val);\r\n },\r\n baseWidth (val) {\r\n this.$refs.wrapper.style.width = this.setPx(val);\r\n if (this.resize && this.children.style) {\r\n this.children.style.width = this.setPx(val);\r\n }\r\n },\r\n baseHeight (val) {\r\n this.$refs.wrapper.style.height = this.setPx(val);\r\n if (this.resize && this.children.style) {\r\n this.children.style.height = this.setPx(val);\r\n }\r\n },\r\n baseLeft (n, o) {\r\n if (this.first) return\r\n this.setMove(n - o, 0);\r\n },\r\n baseTop (n, o) {\r\n if (this.first) return\r\n this.setMove(0, n - o);\r\n }\r\n },\r\n mounted () {\r\n this.init();\r\n },\r\n methods: {\r\n init () {\r\n this.children = this.$refs.item.firstChild;\r\n this.baseWidth = getFixed(this.width) || this.children.offsetWidth;\r\n this.baseHeight = getFixed(this.height) || this.children.offsetHeight;\r\n this.baseLeft = getFixed(this.left);\r\n this.baseTop = getFixed(this.top);\r\n this.keyDown = document.onkeydown\r\n this.$nextTick(() => {\r\n this.first = false\r\n })\r\n },\r\n setMove (left, top) {\r\n this.$emit('move', {\r\n index: this.index,\r\n left: left,\r\n top: top\r\n })\r\n },\r\n setLeft (left) {\r\n this.baseLeft = left;\r\n },\r\n setTop (top) {\r\n this.baseTop = top;\r\n },\r\n getRangeStyle (postion) {\r\n const calc = (10 * this.scaleVal) / 2;\r\n let result = {};\r\n let list = postion.split(\"-\");\r\n list.forEach(ele => {\r\n result[ele] = this.setPx(-calc);\r\n });\r\n return result;\r\n },\r\n setOverActive (val) {\r\n this.overActive = val;\r\n },\r\n setActive (val) {\r\n this.active = val;\r\n },\r\n rangeMove (e, position) {\r\n if (this.disabled || this.lock) return\r\n //移动的方向\r\n let x, y;\r\n //移动的位置\r\n let xp, yp;\r\n //移动的正负\r\n let xc, yc;\r\n this.rangeActive = true;\r\n this.handleMouseDown();\r\n let disX = e.clientX;\r\n let disY = e.clientY;\r\n document.onmousemove = e => {\r\n this.moveActive = true;\r\n if (position === \"right\") {\r\n x = true;\r\n y = false;\r\n } else if (position === \"left\") {\r\n x = true;\r\n xp = true;\r\n xc = true;\r\n y = false;\r\n } else if (position === \"top\") {\r\n x = false;\r\n y = true;\r\n yp = true;\r\n yc = true;\r\n } else if (position === \"bottom\") {\r\n x = false;\r\n y = true;\r\n } else if (position === \"bottom-right\") {\r\n x = true;\r\n y = true;\r\n } else if (position === \"bottom-left\") {\r\n x = true;\r\n y = true;\r\n xp = true;\r\n xc = true;\r\n } else if (position === \"top-right\") {\r\n x = true;\r\n y = true;\r\n yp = true;\r\n yc = true;\r\n } else if (position === \"top-left\") {\r\n x = true;\r\n y = true;\r\n xp = true;\r\n xc = true;\r\n yp = true;\r\n yc = true;\r\n }\r\n let left = e.clientX - disX;\r\n let top = e.clientY - disY;\r\n disX = e.clientX;\r\n disY = e.clientY;\r\n if (x) {\r\n let calc = left * this.step;\r\n if (xc) calc = -calc;\r\n if (xp) this.baseLeft = getFixed(this.baseLeft - calc);\r\n this.baseWidth = getFixed(this.baseWidth + calc);\r\n }\r\n if (y) {\r\n let calc = top * this.step;\r\n if (yc) calc = -calc;\r\n if (yp) this.baseTop = getFixed(this.baseTop - calc);\r\n this.baseHeight = getFixed(this.baseHeight + calc);\r\n }\r\n };\r\n this.handleClear()\r\n\r\n },\r\n handleOut () {\r\n this.overActive = false\r\n this.$emit(\"out\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n },\r\n handleOver () {\r\n if (this.disabled) return\r\n this.overActive = true\r\n this.$emit(\"over\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n },\r\n handleMove (e) {\r\n if (this.disabled || this.lock) return\r\n setTimeout(() => {\r\n this.$refs.input.focus()\r\n })\r\n this.active = true;\r\n this.handleMouseDown();\r\n let disX = e.clientX;\r\n let disY = e.clientY;\r\n document.onmousemove = (e) => {\r\n let left = e.clientX - disX;\r\n let top = e.clientY - disY;\r\n disX = e.clientX;\r\n disY = e.clientY;\r\n this.baseLeft = getFixed(this.baseLeft + left * this.step);\r\n this.baseTop = getFixed(this.baseTop + top * this.step);\r\n };\r\n this.handleClear()\r\n },\r\n handleClear () {\r\n document.onmouseup = () => {\r\n document.onmousemove = null;\r\n document.onmouseup = null;\r\n this.handleMouseUp();\r\n }\r\n },\r\n handleKeydown () {\r\n document.onkeydown = (event) => {\r\n var e = event || window.event || arguments.callee.caller.arguments[0];\r\n let step = 1 * this.step;\r\n if (this.$refs.input.focused) {\r\n if (e && e.keyCode == 38) {//上\r\n this.baseTop = getFixed(this.baseTop - step)\r\n } else if (e && e.keyCode == 37) {//左\r\n this.baseLeft = getFixed(this.baseLeft - step)\r\n } else if (e && e.keyCode == 40) {//下\r\n this.baseTop = getFixed(this.baseTop + step)\r\n } else if (e && e.keyCode == 39) {//右\r\n this.baseLeft = getFixed(this.baseLeft + step)\r\n }\r\n event.stopPropagation()\r\n event.preventDefault();\r\n this.$emit(\"blur\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n this.keyDown && this.keyDown(event);\r\n }\r\n };\r\n },\r\n handleMouseDown (e) {\r\n this.moveActive = true;\r\n this.$emit(\"focus\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n },\r\n handleMouseUp () {\r\n this.moveActive = false;\r\n this.rangeActive = false;\r\n this.$emit(\"blur\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div :class=\"b()\"\r\n :key=\"reload\">\r\n <template v-if=\"isForm\">\r\n <div :class=\"b('header')\">\r\n <el-button :size=\"size\"\r\n circle\r\n v-if=\"!readonly && !disabled && !addBtn\"\r\n :disabled=\"disabled\"\r\n type=\"primary\"\r\n icon=\"el-icon-plus\"\r\n @click=\"addRow\"></el-button>\r\n </div>\r\n <div>\r\n <div v-for=\"(item,index) in text\"\r\n :class=\"b('row')\"\r\n :key=\"index\"\r\n @mouseenter=\"cellMouseenter({$index:index})\"\r\n @mouseleave=\"cellMouseLeave({$index:index})\">\r\n <el-button v-if=\"!readonly && !disabled && !delBtn && hoverList[index]\"\r\n @click=\"delRow(item.$index)\"\r\n type=\"danger\"\r\n :class=\"b('menu')\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n icon=\"el-icon-delete\"\r\n circle></el-button>\r\n <avue-form :key=\"index\"\r\n ref=\"main\"\r\n :table-data=\"{row:text[index],index}\"\r\n :option=\"option\"\r\n v-bind=\"$uploadFun(null,this)\"\r\n v-model=\"text[index]\">\r\n <template #index=\"{}\">\r\n <span>{{item.$index+1}}</span>\r\n </template>\r\n <template v-for=\"item in columnSlot\"\r\n #[item]=\"scope\">\r\n <slot v-bind=\"Object.assign(scope,{\r\n row:text[index]\r\n })\"\r\n :name=\"item\"></slot>\r\n </template>\r\n </avue-form>\r\n </div>\r\n </div>\r\n </template>\r\n <avue-crud v-else-if=\"isCrud\"\r\n ref=\"main\"\r\n :option=\"option\"\r\n :disabled=\"disabled\"\r\n v-bind=\"$uploadFun(null,this)\"\r\n @cell-mouse-enter=\"cellMouseenter\"\r\n @cell-mouse-leave=\"cellMouseLeave\"\r\n @selection-change=\"handleSelectionChange\"\r\n @sortable-change=\"handleSortableChange\"\r\n :data=\"text\">\r\n <template #index-header=\"{}\">\r\n <el-button v-if=\"!(addBtn || readonly) && maxFlag\"\r\n @click=\"addRow()\"\r\n type=\"primary\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n icon=\"el-icon-plus\"\r\n circle></el-button>\r\n </template>\r\n <template #index=\"scope\">\r\n <el-button v-if=\"!readonly && !disabled && !delBtn && hoverList[scope.row.$index]\"\r\n @click=\"delRow(scope.row.$index)\"\r\n type=\"danger\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n icon=\"el-icon-delete\"\r\n circle></el-button>\r\n <div v-else>{{scope.row.$index+1}}</div>\r\n </template>\r\n <template v-for=\"item in columnSlot\"\r\n #[getSlotName({prop:item},`F`)]=\"scope\">\r\n <slot v-bind=\"scope\"\r\n :name=\"item\"></slot>\r\n </template>\r\n\r\n </avue-crud>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props.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\">&nbsp;</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 || '点击配置Cron表达式'\"\r\n v-model=\"text\"\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=\"handleShow\"\r\n @focus=\"handleShow\">\r\n <template #append>\r\n <el-button @click=\"handleShow\" :disabled=\"disabled\">\r\n <i class=\"el-icon-setting\"></i>\r\n </el-button>\r\n </template>\r\n </el-input>\r\n \r\n <el-dialog class=\"avue-dialog\"\r\n title=\"Cron表达式配置\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n lock-scroll\r\n v-model=\"box\"\r\n width=\"700px\">\r\n <div :class=\"b('container')\">\r\n <!-- Tabs 切换不同时间单位 -->\r\n <el-tabs v-model=\"activeTab\" type=\"border-card\">\r\n <el-tab-pane label=\"秒\" name=\"second\">\r\n <cron-tab v-model=\"cronData.second\" :type=\"'second'\" :max=\"59\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"分\" name=\"minute\">\r\n <cron-tab v-model=\"cronData.minute\" :type=\"'minute'\" :max=\"59\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"时\" name=\"hour\">\r\n <cron-tab v-model=\"cronData.hour\" :type=\"'hour'\" :max=\"23\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"日\" name=\"day\">\r\n <cron-tab v-model=\"cronData.day\" :type=\"'day'\" :max=\"31\" :min=\"1\" :show-not-specify=\"true\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"月\" name=\"month\">\r\n <cron-tab v-model=\"cronData.month\" :type=\"'month'\" :max=\"12\" :min=\"1\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"周\" name=\"week\">\r\n <cron-tab v-model=\"cronData.week\" :type=\"'week'\" :max=\"7\" :min=\"1\" :show-not-specify=\"true\" :is-week=\"true\" />\r\n </el-tab-pane>\r\n </el-tabs>\r\n \r\n <!-- Cron 表达式预览 -->\r\n <div :class=\"b('result')\">\r\n <div :class=\"b('expression')\">\r\n <span :class=\"b('label')\">Cron表达式:</span>\r\n <el-input v-model=\"cronExpression\" size=\"small\" style=\"width: 300px\" @input=\"parseCronExpression\" />\r\n </div>\r\n <div :class=\"b('preview')\">\r\n <span :class=\"b('label')\">最近执行时间:</span>\r\n <ul :class=\"b('times')\">\r\n <li v-for=\"(time, index) in nextTimes\" :key=\"index\">{{ time }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <template #footer>\r\n <el-button @click=\"box = false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"handleConfirm\">确定</el-button>\r\n </template>\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\n\r\n// Cron Tab 子组件\r\nconst CronTab = {\r\n name: 'CronTab',\r\n props: {\r\n modelValue: Object,\r\n type: String,\r\n max: Number,\r\n min: { type: Number, default: 0 },\r\n showNotSpecify: Boolean,\r\n isWeek: Boolean\r\n },\r\n emits: ['update:modelValue'],\r\n data() {\r\n return {\r\n weekLabels: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']\r\n };\r\n },\r\n computed: {\r\n data: {\r\n get() { return this.modelValue; },\r\n set(val) { this.$emit('update:modelValue', val); }\r\n },\r\n typeLabel() {\r\n const labels = { second: '秒', minute: '分', hour: '时', day: '日', month: '月', week: '周' };\r\n return labels[this.type] || '';\r\n },\r\n options() {\r\n const list = [];\r\n for (let i = this.min; i <= this.max; i++) {\r\n list.push({\r\n value: i,\r\n label: this.isWeek ? this.weekLabels[i - 1] : String(i)\r\n });\r\n }\r\n return list;\r\n }\r\n },\r\n methods: {\r\n updateData(key, value) {\r\n this.$emit('update:modelValue', { ...this.data, [key]: value });\r\n }\r\n },\r\n template: `\r\n <div class=\"avue-input-cron__tab\">\r\n <el-radio-group :model-value=\"data.type\" @update:model-value=\"val => updateData('type', val)\">\r\n <div class=\"avue-input-cron__option\">\r\n <el-radio label=\"every\">每{{ typeLabel }}执行</el-radio>\r\n </div>\r\n <div class=\"avue-input-cron__option\" v-if=\"showNotSpecify\">\r\n <el-radio label=\"notSpecify\">不指定</el-radio>\r\n </div>\r\n <div class=\"avue-input-cron__option\">\r\n <el-radio label=\"range\">周期</el-radio>\r\n <span v-if=\"data.type === 'range'\" class=\"avue-input-cron__inline\">\r\n 从\r\n <el-input-number v-model=\"data.rangeStart\" :min=\"min\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('rangeStart', val)\" />\r\n 到\r\n <el-input-number v-model=\"data.rangeEnd\" :min=\"min\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('rangeEnd', val)\" />\r\n {{ typeLabel }}\r\n </span>\r\n </div>\r\n <div class=\"avue-input-cron__option\">\r\n <el-radio label=\"step\">从</el-radio>\r\n <span v-if=\"data.type === 'step'\" class=\"avue-input-cron__inline\">\r\n <el-input-number v-model=\"data.stepStart\" :min=\"min\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('stepStart', val)\" />\r\n {{ typeLabel }}开始,每\r\n <el-input-number v-model=\"data.stepValue\" :min=\"1\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('stepValue', val)\" />\r\n {{ typeLabel }}执行一次\r\n </span>\r\n </div>\r\n <div class=\"avue-input-cron__option\">\r\n <el-radio label=\"specify\">指定</el-radio>\r\n </div>\r\n </el-radio-group>\r\n <div v-if=\"data.type === 'specify'\" class=\"avue-input-cron__specify\">\r\n <el-checkbox-group :model-value=\"data.values\" @update:model-value=\"val => updateData('values', val)\">\r\n <el-checkbox v-for=\"opt in options\" :key=\"opt.value\" :label=\"opt.value\">{{ opt.label }}</el-checkbox>\r\n </el-checkbox-group>\r\n </div>\r\n </div>\r\n `\r\n};\r\n\r\nexport default create({\r\n name: \"input-cron\",\r\n components: { CronTab },\r\n mixins: [props(), event()],\r\n props: {\r\n prefixIcon: String,\r\n suffixIcon: String,\r\n dialogWidth: { type: String, default: '700px' }\r\n },\r\n data() {\r\n return {\r\n box: false,\r\n activeTab: 'second',\r\n cronData: {\r\n second: { type: 'every', rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1, values: [] },\r\n minute: { type: 'every', rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1, values: [] },\r\n hour: { type: 'every', rangeStart: 0, rangeEnd: 23, stepStart: 0, stepValue: 1, values: [] },\r\n day: { type: 'every', rangeStart: 1, rangeEnd: 31, stepStart: 1, stepValue: 1, values: [] },\r\n month: { type: 'every', rangeStart: 1, rangeEnd: 12, stepStart: 1, stepValue: 1, values: [] },\r\n week: { type: 'notSpecify', rangeStart: 1, rangeEnd: 7, stepStart: 1, stepValue: 1, values: [] }\r\n }\r\n };\r\n },\r\n computed: {\r\n cronExpression: {\r\n get() {\r\n return this.generateCron();\r\n },\r\n set(val) {\r\n // 手动输入时解析\r\n }\r\n },\r\n nextTimes() {\r\n return this.calculateNextTimes(this.cronExpression, 5);\r\n }\r\n },\r\n watch: {\r\n modelValue: {\r\n immediate: true,\r\n handler(val) {\r\n if (val) {\r\n this.parseCronExpression(val);\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n handleClear() {\r\n this.box = false;\r\n },\r\n handleShow() {\r\n this.$refs.main.blur();\r\n if (this.disabled || this.readonly) return;\r\n this.box = true;\r\n },\r\n handleConfirm() {\r\n this.text = this.cronExpression;\r\n this.box = false;\r\n },\r\n generateCron() {\r\n const parts = ['second', 'minute', 'hour', 'day', 'month', 'week'].map(key => {\r\n return this.generatePart(this.cronData[key], key);\r\n });\r\n return parts.join(' ');\r\n },\r\n generatePart(data, type) {\r\n switch (data.type) {\r\n case 'every':\r\n return '*';\r\n case 'notSpecify':\r\n return '?';\r\n case 'range':\r\n return `${data.rangeStart}-${data.rangeEnd}`;\r\n case 'step':\r\n return `${data.stepStart}/${data.stepValue}`;\r\n case 'specify':\r\n return data.values.length > 0 ? data.values.sort((a, b) => a - b).join(',') : '*';\r\n default:\r\n return '*';\r\n }\r\n },\r\n parseCronExpression(expression) {\r\n if (!expression) return;\r\n const parts = expression.trim().split(/\\s+/);\r\n if (parts.length < 6) return;\r\n \r\n const keys = ['second', 'minute', 'hour', 'day', 'month', 'week'];\r\n keys.forEach((key, index) => {\r\n this.cronData[key] = this.parsePart(parts[index], key);\r\n });\r\n },\r\n parsePart(part, type) {\r\n const defaults = {\r\n second: { rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1 },\r\n minute: { rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1 },\r\n hour: { rangeStart: 0, rangeEnd: 23, stepStart: 0, stepValue: 1 },\r\n day: { rangeStart: 1, rangeEnd: 31, stepStart: 1, stepValue: 1 },\r\n month: { rangeStart: 1, rangeEnd: 12, stepStart: 1, stepValue: 1 },\r\n week: { rangeStart: 1, rangeEnd: 7, stepStart: 1, stepValue: 1 }\r\n };\r\n \r\n const base = { ...defaults[type], values: [] };\r\n \r\n if (part === '*') {\r\n return { ...base, type: 'every' };\r\n }\r\n if (part === '?') {\r\n return { ...base, type: 'notSpecify' };\r\n }\r\n if (part.includes('/')) {\r\n const [start, step] = part.split('/');\r\n return { ...base, type: 'step', stepStart: parseInt(start) || 0, stepValue: parseInt(step) || 1 };\r\n }\r\n if (part.includes('-')) {\r\n const [start, end] = part.split('-');\r\n return { ...base, type: 'range', rangeStart: parseInt(start), rangeEnd: parseInt(end) };\r\n }\r\n if (part.includes(',')) {\r\n const values = part.split(',').map(v => parseInt(v));\r\n return { ...base, type: 'specify', values };\r\n }\r\n // 单个数字\r\n const num = parseInt(part);\r\n if (!isNaN(num)) {\r\n return { ...base, type: 'specify', values: [num] };\r\n }\r\n \r\n return { ...base, type: 'every' };\r\n },\r\n calculateNextTimes(cron, count) {\r\n if (!cron) return [];\r\n try {\r\n const times = [];\r\n const parts = cron.split(/\\s+/);\r\n if (parts.length < 6) return ['表达式格式错误'];\r\n \r\n let current = new Date();\r\n for (let i = 0; i < count && times.length < count; i++) {\r\n current = this.getNextTime(current, parts);\r\n if (current) {\r\n times.push(this.formatDate(current));\r\n current = new Date(current.getTime() + 1000);\r\n } else {\r\n break;\r\n }\r\n }\r\n return times.length > 0 ? times : ['无法计算执行时间'];\r\n } catch (e) {\r\n return ['表达式解析错误'];\r\n }\r\n },\r\n getNextTime(date, parts) {\r\n // 简化的下次执行时间计算\r\n const [second, minute, hour, day, month, week] = parts;\r\n let next = new Date(date);\r\n \r\n // 最多尝试365天\r\n for (let i = 0; i < 365 * 24 * 60; i++) {\r\n next.setSeconds(next.getSeconds() + 1);\r\n if (this.matchCron(next, parts)) {\r\n return next;\r\n }\r\n // 跳过不匹配的分钟\r\n if (!this.matchPart(next.getMinutes(), minute)) {\r\n next.setSeconds(0);\r\n continue;\r\n }\r\n }\r\n return null;\r\n },\r\n matchCron(date, parts) {\r\n const [second, minute, hour, day, month, week] = parts;\r\n return this.matchPart(date.getSeconds(), second) &&\r\n this.matchPart(date.getMinutes(), minute) &&\r\n this.matchPart(date.getHours(), hour) &&\r\n this.matchPart(date.getDate(), day) &&\r\n this.matchPart(date.getMonth() + 1, month) &&\r\n this.matchPart(date.getDay() || 7, week);\r\n },\r\n matchPart(value, pattern) {\r\n if (pattern === '*' || pattern === '?') return true;\r\n if (pattern.includes('/')) {\r\n const [start, step] = pattern.split('/').map(v => parseInt(v) || 0);\r\n return (value - start) % step === 0 && value >= start;\r\n }\r\n if (pattern.includes('-')) {\r\n const [min, max] = pattern.split('-').map(v => parseInt(v));\r\n return value >= min && value <= max;\r\n }\r\n if (pattern.includes(',')) {\r\n return pattern.split(',').map(v => parseInt(v)).includes(value);\r\n }\r\n return parseInt(pattern) === value;\r\n },\r\n formatDate(date) {\r\n const pad = n => String(n).padStart(2, '0');\r\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-input :prefix-icon=\"prefixIcon\"\r\n :suffix-icon=\"suffixIcon\"\r\n :placeholder=\"placeholder\"\r\n v-model=\"text\"\r\n :popper-class=\"popperClass\"\r\n :size=\"size\"\r\n ref=\"main\"\r\n @clear=\"handleClear\"\r\n :clearable=\"disabled?false:clearable\"\r\n :disabled=\"disabled\"\r\n @click=\"handleClick\"\r\n @focus=\"handleShow\">\r\n <template #append>\r\n <icon-temp @click=\"handleShow\"\r\n :text=\"text\"\r\n :size=\"28\"\r\n :small=\"size==='small'\"></icon-temp>\r\n\r\n </template>\r\n </el-input>\r\n <div v-if=\"box\">\r\n <el-dialog class=\"avue-dialog\"\r\n :title=\"placeholder\"\r\n :before-close=\"beforeClose\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n lock-scroll\r\n v-model=\"box\"\r\n :width=\"dialogWidth\">\r\n <div :class=\"b('filter')\">\r\n <el-input :placeholder=\"validData(option.filterText,t('tip.input'))\"\r\n :size=\"size\"\r\n v-model=\"filterText\"></el-input>\r\n </div>\r\n <avue-tabs :option=\"option\"\r\n @change=\"handleTabs\"></avue-tabs>\r\n <div :class=\"b('list')\">\r\n <div :class=\"b('item')\"\r\n v-for=\"(item,index) in list\"\r\n @click=\"handleSubmit(item.value)\"\r\n :key=\"index\">\r\n <icon-temp :text=\"item.value\"\r\n :size=\"item.size\"\r\n :small=\"size==='small'\"\r\n :color=\"item.color\"></icon-temp>\r\n <p>{{item.label || item.value}}</p>\r\n </div> \r\n </div>\r\n </el-dialog>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport iconTemp from 'common/components/icon/index';\r\nimport props from \"common/common/props.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()\" :style=\"{ width: width }\">\r\n <el-input\r\n ref=\"main\"\r\n v-model=\"text\"\r\n :type=\"isTextarea ? 'textarea' : 'text'\"\r\n :size=\"size\"\r\n :placeholder=\"placeholder\"\r\n :readonly=\"readonly\"\r\n :disabled=\"disabled\"\r\n :clearable=\"clearableVal\"\r\n :autosize=\"autosizeConfig\"\r\n :rows=\"rows\"\r\n :show-word-limit=\"showWordLimit\"\r\n :maxlength=\"maxlength\"\r\n @click=\"handleClick\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n @change=\"handleChange\"\r\n >\r\n <template #append v-if=\"!isTextarea && showFormatBtn\">\r\n <el-button\r\n @click=\"toggleFormat\"\r\n :disabled=\"disabled || readonly\"\r\n >\r\n <i :class=\"isFormatted ? 'el-icon-full-screen' : 'el-icon-document'\"></i>\r\n {{ isFormatted ? '编辑' : '格式化' }}\r\n </el-button>\r\n </template>\r\n </el-input>\r\n\r\n <div v-if=\"showError && jsonError\" style=\"color: #f56c6c; font-size: 12px; line-height: 1; margin-top: 2px;\">\r\n {{ jsonError }}\r\n </div>\r\n\r\n <div v-if=\"showPreview && !isTextarea\" style=\"margin-top: 8px; border: 1px solid #dcdfe6; border-radius: 4px; overflow: hidden;\">\r\n <div\r\n style=\"display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; background: #f5f7fa; cursor: pointer; font-size: 12px; color: #909399;\"\r\n @click=\"isPreviewExpanded = !isPreviewExpanded\"\r\n >\r\n <span>JSON 预览</span>\r\n <i :class=\"isPreviewExpanded ? 'el-icon-arrow-up' : 'el-icon-arrow-down'\"></i>\r\n </div>\r\n <div v-show=\"isPreviewExpanded\" style=\"padding: 12px; background: #fff; max-height: 300px; overflow: auto;\">\r\n <pre style=\"margin: 0; font-family: Consolas, Monaco, 'Courier New', monospace; font-size: 12px; line-height: 1.6; white-space: pre-wrap; word-break: break-all;\" v-html=\"highlightedJson\"></pre>\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 { validatenull } from \"utils/validate\";\r\n\r\nexport default create({\r\n name: \"input-json\",\r\n mixins: [props(), event()],\r\n data: function() {\r\n return {\r\n isTextarea: false,\r\n isFormatted: false,\r\n isPreviewExpanded: false,\r\n jsonError: \"\",\r\n parsedJson: null\r\n };\r\n },\r\n props: {\r\n width: {\r\n type: String,\r\n default: \"100%\"\r\n },\r\n rows: {\r\n type: Number,\r\n default: 8\r\n },\r\n minRows: {\r\n type: Number,\r\n default: 3\r\n },\r\n maxRows: {\r\n type: Number,\r\n default: 20\r\n },\r\n autosize: {\r\n type: [Boolean, Object],\r\n default: function() {\r\n return {\r\n minRows: 3,\r\n maxRows: 20\r\n };\r\n }\r\n },\r\n showWordLimit: {\r\n type: Boolean,\r\n default: false\r\n },\r\n maxlength: {\r\n type: Number\r\n },\r\n showFormatBtn: {\r\n type: Boolean,\r\n default: true\r\n },\r\n showPreview: {\r\n type: Boolean,\r\n default: false\r\n },\r\n showError: {\r\n type: Boolean,\r\n default: true\r\n },\r\n validateOnBlur: {\r\n type: Boolean,\r\n default: true\r\n },\r\n formatOnBlur: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n computed: {\r\n autosizeConfig: function() {\r\n if (typeof this.autosize === \"object\") {\r\n return {\r\n minRows: this.autosize.minRows || this.minRows,\r\n maxRows: this.autosize.maxRows || this.maxRows\r\n };\r\n }\r\n return this.autosize;\r\n },\r\n highlightedJson: function() {\r\n if (!this.parsedJson) return \"\";\r\n var jsonStr = JSON.stringify(this.parsedJson, null, 2);\r\n return this.syntaxHighlight(jsonStr);\r\n }\r\n },\r\n watch: {\r\n text: {\r\n handler: function(val) {\r\n this.parseJson(val);\r\n this.handleChange(val);\r\n },\r\n immediate: true\r\n }\r\n },\r\n created: function() {\r\n this.parseJson(this.text);\r\n },\r\n methods: {\r\n handleChange: function(val) {\r\n var result = val;\r\n try {\r\n result = JSON.parse(val);\r\n } catch (e) {\r\n result = val;\r\n }\r\n this.bindEvent(\"change\", { value: result });\r\n this.$emit(\"update:modelValue\", result);\r\n },\r\n toggleFormat: function() {\r\n this.isTextarea = !this.isTextarea;\r\n if (this.isTextarea) {\r\n this.formatJson();\r\n } else {\r\n this.parseJson(this.text);\r\n }\r\n this.isFormatted = this.isTextarea;\r\n this.$emit(\"format\", {\r\n isFormatted: this.isTextarea,\r\n value: this.text,\r\n parsedValue: this.parsedJson\r\n });\r\n },\r\n formatJson: function() {\r\n try {\r\n if (validatenull(this.text)) {\r\n this.text = \"{}\";\r\n return;\r\n }\r\n var parsed = JSON.parse(this.text);\r\n this.text = JSON.stringify(parsed, null, 2);\r\n this.parsedJson = parsed;\r\n this.jsonError = \"\";\r\n this.$emit(\"error\", null);\r\n } catch (e) {\r\n this.jsonError = \"JSON 格式错误: \" + e.message;\r\n this.$emit(\"error\", e.message);\r\n }\r\n },\r\n parseJson: function(val) {\r\n if (validatenull(val)) {\r\n this.parsedJson = null;\r\n this.jsonError = \"\";\r\n return;\r\n }\r\n try {\r\n this.parsedJson = JSON.parse(val);\r\n this.jsonError = \"\";\r\n this.$emit(\"error\", null);\r\n } catch (e) {\r\n if (this.validateOnBlur) {\r\n this.jsonError = \"\";\r\n } else {\r\n this.jsonError = \"JSON 格式错误: \" + e.message;\r\n }\r\n }\r\n },\r\n handleBlur: function(event) {\r\n if (this.formatOnBlur && !this.isTextarea) {\r\n this.formatJson();\r\n }\r\n this.bindEvent(\"blur\", { value: this.modelValue, event: event });\r\n },\r\n syntaxHighlight: function(json) {\r\n if (!json) return \"\";\r\n json = json\r\n .replace(/&/g, \"&amp;\")\r\n .replace(/</g, \"&lt;\")\r\n .replace(/>/g, \"&gt;\");\r\n return json.replace(\r\n /(\"(\\\\u[a-zA-Z0-9]{4}|\\\\[^u]|[^\\\\\"])*\"(\\s*:)?|\\b(true|false|null)\\b|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?)/g,\r\n function(match) {\r\n var color = \"#098658\";\r\n if (/^\"/.test(match)) {\r\n if (/:$/.test(match)) {\r\n color = \"#881391\";\r\n match = match.replace(/:$/, \"\");\r\n return \"<font color=\\\"\" + color + \"\\\">\" + match + \"</font>:\";\r\n } else {\r\n color = \"#a31515\";\r\n }\r\n } else if (/true|false/.test(match)) {\r\n color = \"#0000ff\";\r\n } else if (/null/.test(match)) {\r\n color = \"#0000ff\";\r\n }\r\n return \"<font color=\\\"\" + color + \"\\\">\" + match + \"</font>\";\r\n }\r\n );\r\n },\r\n getParsedValue: function() {\r\n return this.parsedJson;\r\n },\r\n isValid: function() {\r\n return validatenull(this.jsonError);\r\n },\r\n clear: function() {\r\n this.text = \"\";\r\n this.parsedJson = null;\r\n this.jsonError = \"\";\r\n },\r\n setValue: function(val) {\r\n if (typeof val === \"object\") {\r\n this.text = JSON.stringify(val, null, 2);\r\n } else {\r\n this.text = val;\r\n }\r\n }\r\n }\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 @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 (typeof this.onLoad == \"function\") {\r\n this.onLoad({ value: this.text }, (data) => {\r\n let result = Array.isArray(data) ? data : [data];\r\n const valArray = Array.isArray(val) ? val : [val];\r\n const activeObjArray = valArray && valArray.length\r\n ? result.filter((item) =>valArray.some((val) => val === item[this.valueKey]))\r\n : [];\r\n this.active = this.deepClone(activeObjArray)\r\n\r\n const activeObjArray2 = valArray && valArray.length\r\n ? valArray.map((item) =>{\r\n const resultIndex = result.findIndex((val) => item === val[this.valueKey])\r\n return resultIndex < 0 ? {[this.labelKey]: item, [this.valueKey]: item} : result[resultIndex]\r\n })\r\n : [];\r\n this.object = this.deepClone(activeObjArray2)\r\n });\r\n }\r\n },\r\n handleClear() {\r\n this.setVal([]);\r\n this.box = false;\r\n },\r\n handleShow() {\r\n this.$refs.main.blur();\r\n if (this.disabled || this.readonly) return;\r\n this.search = {};\r\n this.page = {\r\n currentPage: 1,\r\n total: 0,\r\n };\r\n this.data = [];\r\n this.box = true;\r\n },\r\n handleSubmit() {\r\n const callback = () => {\r\n this.setVal();\r\n };\r\n if (typeof this.beforeClose === \"function\") {\r\n this.beforeClose(callback);\r\n } else {\r\n callback();\r\n }\r\n },\r\n setVal(value) {\r\n this.object = this.deepClone(value || this.active);\r\n this.text = this.object.map((ele) => ele[this.valueKey]);\r\n this.box = false;\r\n },\r\n handleRowClassName({ row, rowIndex }) {\r\n if (row[this.disabledKey]) return \"disabled\";\r\n },\r\n handleCurrentChange(val) {\r\n if (!val) return;\r\n if (this.isMultiple) {\r\n this.$refs.crud.setCurrentRow(null);\r\n } else {\r\n if (val[this.disabledKey]) {\r\n this.$refs.crud.setCurrentRow(this.active[0]);\r\n } else {\r\n this.active = [val];\r\n }\r\n }\r\n },\r\n handleSearchChange(form, done) {\r\n this.loading = true;\r\n this.page.currentPage = 1;\r\n this.onList({}, () => {\r\n done && done();\r\n });\r\n },\r\n onList(params, callback) {\r\n this.loading = true;\r\n if (typeof this.onLoad == \"function\") {\r\n this.onLoad({ page: this.page, data: this.search }, (data) => {\r\n callback && callback();\r\n this.page.total = data.total;\r\n this.data = data.data;\r\n this.loading = false;\r\n if (this.isMultiple) {\r\n let ids = this.object.map((ele) => ele[this.valueKey]);\r\n let data = this.data.filter((ele) =>\r\n ids.includes(ele[this.valueKey])\r\n );\r\n this.$nextTick(() => {\r\n this.$refs.crud.toggleSelection(data, true);\r\n });\r\n } else {\r\n let active = this.data.find(\r\n (ele) => ele[this.valueKey] == this.text\r\n );\r\n setTimeout(() => {\r\n this.$refs.crud.setCurrentRow(active);\r\n });\r\n }\r\n });\r\n }\r\n },\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <el-input-tag\r\n v-model=\"text\"\r\n :class=\"b()\"\r\n @click=\"handleClick\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n @change=\"handleValueChange\"\r\n :placeholder=\"placeholder\"\r\n :size=\"size\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n :draggable=\"drag\"\r\n :clearable=\"clearableVal\"\r\n :readonly=\"readonly\"\r\n :disabled=\"disabled\"\r\n >\r\n <template #prefix v-if=\"prefix\">\r\n <span @click=\"prefixClick(text)\">{{ prefix }}</span>\r\n </template>\r\n <template #suffix v-if=\"suffix\">\r\n <span @click=\"suffixClick(text)\">{{ suffix }}</span>\r\n </template>\r\n <template #tag=\"{ value }\">\r\n <slot :value=\"value\" v-if=\"$slots.default\"> </slot>\r\n <span v-else>{{ value }}</span>\r\n </template>\r\n </el-input-tag>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props.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 :class=\"b()\">\r\n <!-- 手机号输入(带国际区号,需要特殊布局) -->\r\n <template v-if=\"isPhone\">\r\n <div class=\"avue-input__phone\">\r\n <el-select v-model=\"phoneCode\"\r\n class=\"avue-input__phone-code\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n :placeholder=\"phoneCodePlaceholder\"\r\n filterable\r\n style=\"width: 120px;\">\r\n <el-option v-for=\"item in phoneCodeList\"\r\n :key=\"item.code\"\r\n :label=\"item.label\"\r\n :value=\"item.code\">\r\n <span style=\"float: left\">{{ item.name }}</span>\r\n <span style=\"float: right; color: #8492a6; font-size: 12px\">{{ item.code }}</span>\r\n </el-option>\r\n </el-select>\r\n <el-input class=\"avue-input__phone-input\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\r\n v-model=\"phoneNumber\"\r\n @keyup.enter=\"isSearch?appendClick(text):''\"\r\n @click=\"handleClick\"\r\n :maxlength=\"phoneMaxLength\"\r\n :prefix-icon=\"prefixIcon\"\r\n :suffix-icon=\"suffixIcon\"\r\n :readonly=\"readonly\"\r\n :placeholder=\"phonePlaceholder\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handlePhoneBlur\"\r\n :disabled=\"disabled\"\r\n style=\"flex: 1;\">\r\n </el-input>\r\n </div>\r\n </template>\r\n\r\n <!-- 验证码输入(分段输入框) -->\r\n <template v-else-if=\"isCode\">\r\n <div class=\"avue-input__code\">\r\n <input v-for=\"(val, index) in codeValues\"\r\n :key=\"index\"\r\n type=\"text\"\r\n maxlength=\"1\"\r\n class=\"avue-input__code-item\"\r\n :class=\"{ 'is-disabled': disabled }\"\r\n :value=\"val\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n @input=\"handleCodeInput($event, index)\"\r\n @keydown=\"handleCodeKeydown($event, index)\"\r\n @paste=\"handleCodePaste($event)\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :ref=\"el => codeRefs[index] = el\" />\r\n </div>\r\n </template>\r\n\r\n <!-- 车牌号输入(省份选择 + 车牌号) -->\r\n <template v-else-if=\"isPlate\">\r\n <div class=\"avue-input__plate\">\r\n <el-select v-model=\"plateProvince\"\r\n class=\"avue-input__plate-province\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n style=\"width: 70px;\">\r\n <el-option v-for=\"item in plateProvinceList\"\r\n :key=\"item\"\r\n :label=\"item\"\r\n :value=\"item\" />\r\n </el-select>\r\n <el-input class=\"avue-input__plate-number\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\r\n v-model=\"plateNumber\"\r\n @click=\"handleClick\"\r\n :maxlength=\"7\"\r\n :readonly=\"readonly\"\r\n :placeholder=\"platePlaceholder\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handlePlateBlur\"\r\n @input=\"handlePlateInput\"\r\n :disabled=\"disabled\"\r\n style=\"flex: 1;\">\r\n </el-input>\r\n </div>\r\n </template>\r\n\r\n <!-- IP地址输入(4段输入框) -->\r\n <template v-else-if=\"isIp\">\r\n <div class=\"avue-input__ip\">\r\n <template v-for=\"(seg, index) in ipSegments\" :key=\"index\">\r\n <input type=\"text\"\r\n class=\"avue-input__ip-segment\"\r\n :class=\"{ 'is-disabled': disabled }\"\r\n maxlength=\"3\"\r\n :value=\"seg\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n @input=\"handleIpInput($event, index)\"\r\n @keydown=\"handleIpKeydown($event, index)\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :ref=\"el => ipRefs[index] = el\" />\r\n <span v-if=\"index < 3\" class=\"avue-input__ip-dot\">.</span>\r\n </template>\r\n </div>\r\n </template>\r\n\r\n <!-- MAC地址输入(6段输入框) -->\r\n <template v-else-if=\"isMac\">\r\n <div class=\"avue-input__mac\">\r\n <template v-for=\"(seg, index) in macSegments\" :key=\"index\">\r\n <input type=\"text\"\r\n class=\"avue-input__mac-segment\"\r\n :class=\"{ 'is-disabled': disabled }\"\r\n maxlength=\"2\"\r\n :value=\"seg\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n @input=\"handleMacInput($event, index)\"\r\n @keydown=\"handleMacKeydown($event, index)\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :ref=\"el => macRefs[index] = el\" />\r\n <span v-if=\"index < 5\" class=\"avue-input__mac-sep\">{{ macSeparator }}</span>\r\n </template>\r\n </div>\r\n </template>\r\n\r\n <!-- 统一输入框(货币、银行卡、身份证、邮箱、社会信用代码、默认类型) -->\r\n <template v-else>\r\n <el-input :class=\"inputClass\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\r\n v-model=\"inputValue\"\r\n @keyup.enter=\"isSearch?appendClick(text):''\"\r\n @click=\"handleClick\"\r\n :type=\"inputType\"\r\n :maxlength=\"inputMaxlength\"\r\n :minlength=\"minlength\"\r\n :show-password=\"typeParam=='password'?showPassword:false\"\r\n :rows=\"rows\"\r\n :autosize=\"{ minRows: minRows, maxRows: maxRows}\"\r\n :prefix-icon=\"inputPrefixIcon\"\r\n :suffix-icon=\"inputSuffixIcon\"\r\n :readonly=\"readonly\"\r\n :placeholder=\"inputPlaceholder\"\r\n :show-word-limit=\"isDefault && showWordLimit\"\r\n @focus=\"onFocus\"\r\n @blur=\"onBlur\"\r\n @input=\"onInput\"\r\n :disabled=\"disabled\"\r\n :autocomplete=\"autocomplete\"\r\n :formatter=\"isDefault ? formatters : undefined\"\r\n :parser=\"isDefault ? parser : undefined\">\r\n <!-- 前置内容 -->\r\n <template #prepend v-if=\"showPrepend\">\r\n <span @click=\"prependClick && prependClick(text)\">{{ prependText }}</span>\r\n </template>\r\n <!-- 后置内容 -->\r\n <template #append v-if=\"showAppend\">\r\n <span @click=\"appendClick && appendClick(text)\">{{ appendText }}</span>\r\n </template>\r\n <template #append v-else-if=\"isSearch\">\r\n <el-button icon=\"el-icon-search\" @click=\"appendClick(text)\"></el-button>\r\n </template>\r\n <!-- 后缀内容 - 银行卡类型 -->\r\n <template #suffix v-if=\"isBankCard && showBankCardType && bankCardType\">\r\n <span class=\"avue-input__bank-card-type\">{{ bankCardType }}</span>\r\n </template>\r\n <!-- 后缀内容 - 身份证信息 -->\r\n <template #suffix v-else-if=\"isIdCard && showIdCardInfo && idCardInfo\">\r\n <el-tooltip :content=\"idCardInfoText\" placement=\"top\">\r\n <span class=\"avue-input__id-card-info\">\r\n {{ idCardValid ? '✓' : '✗' }}\r\n </span>\r\n </el-tooltip>\r\n </template>\r\n <!-- 后缀内容 - 邮箱验证 -->\r\n <template #suffix v-else-if=\"isEmail && emailValid !== null\">\r\n <span class=\"avue-input__email-valid\">{{ emailValid ? '✓' : '✗' }}</span>\r\n </template>\r\n <!-- 后缀内容 - 社会信用代码验证 -->\r\n <template #suffix v-else-if=\"isUscc && usccValid !== null\">\r\n <span class=\"avue-input__uscc-valid\">{{ usccValid ? '✓' : '✗' }}</span>\r\n </template>\r\n </el-input>\r\n </template>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props.js\";\r\nimport event from \"common/common/event.js\";\r\n\r\n// 国际电话区号列表\r\nconst defaultPhoneCodeList = [\r\n { code: '+86', name: '中国', label: '🇨🇳 +86' },\r\n { code: '+852', name: '香港', label: '🇭🇰 +852' },\r\n { code: '+853', name: '澳门', label: '🇲🇴 +853' },\r\n { code: '+886', name: '台湾', label: '🇹🇼 +886' },\r\n { code: '+1', name: '美国/加拿大', label: '🇺🇸 +1' },\r\n { code: '+44', name: '英国', label: '🇬🇧 +44' },\r\n { code: '+81', name: '日本', label: '🇯🇵 +81' },\r\n { code: '+82', name: '韩国', label: '🇰🇷 +82' },\r\n { code: '+65', name: '新加坡', label: '🇸🇬 +65' },\r\n { code: '+61', name: '澳大利亚', label: '🇦🇺 +61' },\r\n { code: '+49', name: '德国', label: '🇩🇪 +49' },\r\n { code: '+33', name: '法国', label: '🇫🇷 +33' },\r\n { code: '+39', name: '意大利', label: '🇮🇹 +39' },\r\n { code: '+7', name: '俄罗斯', label: '🇷🇺 +7' },\r\n { code: '+91', name: '印度', label: '🇮🇳 +91' },\r\n { code: '+55', name: '巴西', label: '🇧🇷 +55' },\r\n { code: '+34', name: '西班牙', label: '🇪🇸 +34' },\r\n { code: '+31', name: '荷兰', label: '🇳🇱 +31' },\r\n { code: '+41', name: '瑞士', label: '🇨🇭 +41' },\r\n { code: '+46', name: '瑞典', label: '🇸🇪 +46' },\r\n { code: '+60', name: '马来西亚', label: '🇲🇾 +60' },\r\n { code: '+66', name: '泰国', label: '🇹🇭 +66' },\r\n { code: '+84', name: '越南', label: '🇻🇳 +84' },\r\n { code: '+62', name: '印尼', label: '🇮🇩 +62' },\r\n { code: '+63', name: '菲律宾', label: '🇵🇭 +63' }\r\n];\r\n\r\n// 货币符号映射\r\nconst currencySymbols = {\r\n CNY: '¥',\r\n USD: '$',\r\n EUR: '€',\r\n GBP: '£',\r\n JPY: '¥',\r\n HKD: 'HK$',\r\n KRW: '₩',\r\n SGD: 'S$',\r\n AUD: 'A$',\r\n CAD: 'C$'\r\n};\r\n\r\nexport default create({\r\n name: \"input\",\r\n mixins: [props(), event()],\r\n emits: ['update:modelValue', 'click', 'focus', 'blur', 'change', 'id-card-valid', 'code-complete', 'uscc-valid'],\r\n data() {\r\n return {\r\n // 手机号相关\r\n phoneCode: '+86',\r\n phoneNumber: '',\r\n // 货币相关\r\n currencyDisplay: '',\r\n currencyEditing: false,\r\n // 银行卡相关\r\n bankCardDisplay: '',\r\n bankCardType: '',\r\n // 身份证相关\r\n idCardDisplay: '',\r\n idCardValid: null,\r\n idCardInfo: null,\r\n // 邮箱相关\r\n emailDisplay: '',\r\n emailValid: null,\r\n showEmailSuggestions: false,\r\n // 验证码相关\r\n codeValues: [],\r\n codeRefs: [],\r\n // 车牌号相关\r\n plateProvince: '京',\r\n plateNumber: '',\r\n // IP地址相关\r\n ipSegments: ['', '', '', ''],\r\n ipRefs: [],\r\n // MAC地址相关\r\n macSegments: ['', '', '', '', '', ''],\r\n macRefs: [],\r\n // 社会信用代码相关\r\n usccDisplay: '',\r\n usccValid: null\r\n };\r\n },\r\n props: {\r\n showPassword: {\r\n type: Boolean,\r\n default: true\r\n },\r\n showWordLimit: {\r\n type: Boolean,\r\n default: false\r\n },\r\n target: {\r\n type: String,\r\n default: ' _blank'\r\n },\r\n prefixIcon: {\r\n type: String\r\n },\r\n suffixIcon: {\r\n type: String\r\n },\r\n prependClick: {\r\n type: Function\r\n },\r\n prepend: {\r\n type: String\r\n },\r\n appendClick: {\r\n type: Function\r\n },\r\n formatters: {\r\n type: Function\r\n },\r\n parser: {\r\n type: Function\r\n },\r\n append: {\r\n type: String\r\n },\r\n minlength: [String, Number],\r\n maxlength: [String, Number],\r\n rows: Number,\r\n minRows: {\r\n type: Number,\r\n default: 5\r\n },\r\n maxRows: {\r\n type: Number,\r\n default: 10\r\n },\r\n autocomplete: {\r\n type: String\r\n },\r\n // ========== 手机号相关配置 ==========\r\n // 默认区号\r\n defaultPhoneCode: {\r\n type: String,\r\n default: '+86'\r\n },\r\n // 区号列表\r\n phoneCodeOptions: {\r\n type: Array,\r\n default: () => []\r\n },\r\n // 手机号最大长度\r\n phoneMaxLength: {\r\n type: Number,\r\n default: 11\r\n },\r\n // 区号选择器占位符\r\n phoneCodePlaceholder: {\r\n type: String,\r\n default: '区号'\r\n },\r\n // 手机号输入框占位符\r\n phonePlaceholder: {\r\n type: String,\r\n default: '请输入手机号'\r\n },\r\n \r\n // ========== 货币相关配置 ==========\r\n // 货币类型\r\n currency: {\r\n type: String,\r\n default: 'CNY'\r\n },\r\n // 自定义货币符号\r\n currencySymbolCustom: {\r\n type: String,\r\n default: ''\r\n },\r\n // 货币单位(如:元、万元)\r\n currencyUnit: {\r\n type: String,\r\n default: ''\r\n },\r\n // 小数位数\r\n currencyPrecision: {\r\n type: Number,\r\n default: 2\r\n },\r\n // 货币占位符\r\n currencyPlaceholder: {\r\n type: String,\r\n default: '请输入金额'\r\n },\r\n // 最小值\r\n currencyMin: {\r\n type: Number,\r\n default: undefined\r\n },\r\n // 最大值\r\n currencyMax: {\r\n type: Number,\r\n default: undefined\r\n },\r\n \r\n // ========== 银行卡相关配置 ==========\r\n // 分隔符\r\n bankCardSeparator: {\r\n type: String,\r\n default: ' '\r\n },\r\n // 分段长度\r\n bankCardSegment: {\r\n type: Number,\r\n default: 4\r\n },\r\n // 银行卡最大长度(不含分隔符)\r\n bankCardMaxDigits: {\r\n type: Number,\r\n default: 19\r\n },\r\n // 银行卡占位符\r\n bankCardPlaceholder: {\r\n type: String,\r\n default: '请输入银行卡号'\r\n },\r\n // 是否显示银行卡类型\r\n showBankCardType: {\r\n type: Boolean,\r\n default: true\r\n },\r\n \r\n // ========== 身份证相关配置 ==========\r\n // 身份证占位符\r\n idCardPlaceholder: {\r\n type: String,\r\n default: '请输入身份证号'\r\n },\r\n // 是否显示身份证信息\r\n showIdCardInfo: {\r\n type: Boolean,\r\n default: true\r\n },\r\n // 是否实时校验\r\n idCardRealtimeValidate: {\r\n type: Boolean,\r\n default: true\r\n },\r\n \r\n // ========== 邮箱相关配置 ==========\r\n emailPlaceholder: {\r\n type: String,\r\n default: '请输入邮箱'\r\n },\r\n // 邮箱后缀建议列表\r\n emailSuffixes: {\r\n type: Array,\r\n default: () => ['@qq.com', '@163.com', '@126.com', '@gmail.com', '@outlook.com', '@hotmail.com', '@sina.com', '@sohu.com', '@foxmail.com', '@icloud.com']\r\n },\r\n // 是否显示邮箱建议\r\n showEmailSuffix: {\r\n type: Boolean,\r\n default: true\r\n },\r\n \r\n // ========== 验证码相关配置 ==========\r\n codePlaceholder: {\r\n type: String,\r\n default: ''\r\n },\r\n // 验证码长度\r\n codeLength: {\r\n type: Number,\r\n default: 6\r\n },\r\n // 验证码分隔符\r\n codeSeparator: {\r\n type: String,\r\n default: ''\r\n },\r\n \r\n // ========== 车牌号相关配置 ==========\r\n platePlaceholder: {\r\n type: String,\r\n default: '请输入车牌号'\r\n },\r\n // 默认省份\r\n defaultPlateProvince: {\r\n type: String,\r\n default: '京'\r\n },\r\n // 省份列表\r\n plateProvinceList: {\r\n type: Array,\r\n default: () => ['京', '津', '沪', '渝', '冀', '豫', '云', '辽', '黑', '湘', '皖', '鲁', '新', '苏', '浙', '赣', '鄂', '桂', '甘', '晋', '蒙', '陕', '吉', '闽', '贵', '粤', '川', '青', '藏', '琼', '宁', '港', '澳', '台']\r\n },\r\n \r\n // ========== IP地址相关配置 ==========\r\n ipPlaceholder: {\r\n type: String,\r\n default: '请输入IP地址'\r\n },\r\n // IP版本 (4 或 6)\r\n ipVersion: {\r\n type: Number,\r\n default: 4\r\n },\r\n \r\n // ========== MAC地址相关配置 ==========\r\n macPlaceholder: {\r\n type: String,\r\n default: '请输入MAC地址'\r\n },\r\n // MAC分隔符\r\n macSeparator: {\r\n type: String,\r\n default: ':'\r\n },\r\n \r\n // ========== 社会信用代码相关配置 ==========\r\n usccPlaceholder: {\r\n type: String,\r\n default: '请输入统一社会信用代码'\r\n },\r\n // 是否实时校验\r\n usccRealtimeValidate: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n computed: {\r\n isSearch() {\r\n return this.type === 'search';\r\n },\r\n isPhone() {\r\n return this.type === 'phone';\r\n },\r\n isCurrency() {\r\n return this.type === 'currency';\r\n },\r\n isBankCard() {\r\n return this.type === 'bankCard' || this.type === 'bank-card';\r\n },\r\n isIdCard() {\r\n return this.type === 'idCard' || this.type === 'id-card';\r\n },\r\n isEmail() {\r\n return this.type === 'email';\r\n },\r\n isCode() {\r\n return this.type === 'code';\r\n },\r\n isPlate() {\r\n return this.type === 'plate';\r\n },\r\n isIp() {\r\n return this.type === 'ip';\r\n },\r\n isMac() {\r\n return this.type === 'mac';\r\n },\r\n isUscc() {\r\n return this.type === 'uscc';\r\n },\r\n isDefault() {\r\n return !this.isPhone && !this.isCurrency && !this.isBankCard && !this.isIdCard && \r\n !this.isEmail && !this.isCode && !this.isPlate && !this.isIp && !this.isMac && !this.isUscc;\r\n },\r\n typeParam() {\r\n if (this.type === \"textarea\") {\r\n return \"textarea\";\r\n } else if (this.type === \"password\") {\r\n return \"password\";\r\n } else {\r\n return \"text\";\r\n }\r\n },\r\n // ========== 统一输入框计算属性 ==========\r\n inputClass() {\r\n if (this.isCurrency) return this.b('currency');\r\n if (this.isBankCard) return this.b('bank-card');\r\n if (this.isIdCard) return [this.b('id-card'), this.idCardValid === false ? this.b('id-card--invalid') : ''];\r\n return '';\r\n },\r\n inputValue: {\r\n get() {\r\n if (this.isCurrency) return this.currencyDisplay;\r\n if (this.isBankCard) return this.bankCardDisplay;\r\n if (this.isIdCard) return this.idCardDisplay;\r\n if (this.isEmail) return this.emailDisplay;\r\n if (this.isUscc) return this.usccDisplay;\r\n return this.text;\r\n },\r\n set(val) {\r\n if (this.isCurrency) this.currencyDisplay = val;\r\n else if (this.isBankCard) this.bankCardDisplay = val;\r\n else if (this.isIdCard) this.idCardDisplay = val;\r\n else if (this.isEmail) this.emailDisplay = val;\r\n else if (this.isUscc) this.usccDisplay = val;\r\n else this.text = val;\r\n }\r\n },\r\n inputType() {\r\n if (this.isEmail) return 'email';\r\n return this.isDefault ? this.typeParam : 'text';\r\n },\r\n inputMaxlength() {\r\n if (this.isBankCard) return this.bankCardMaxLength;\r\n if (this.isIdCard) return 18;\r\n if (this.isUscc) return 18;\r\n return this.maxlength;\r\n },\r\n inputPrefixIcon() {\r\n return this.prefixIcon;\r\n },\r\n inputSuffixIcon() {\r\n if (this.isIdCard) return this.idCardSuffixIcon;\r\n return this.suffixIcon;\r\n },\r\n inputPlaceholder() {\r\n if (this.isCurrency) return this.currencyPlaceholder;\r\n if (this.isBankCard) return this.bankCardPlaceholder;\r\n if (this.isIdCard) return this.idCardPlaceholder;\r\n if (this.isEmail) return this.emailPlaceholder;\r\n if (this.isUscc) return this.usccPlaceholder;\r\n return this.placeholder;\r\n },\r\n showPrepend() {\r\n if (this.isCurrency) return !!this.currencySymbol;\r\n return !!this.prepend;\r\n },\r\n prependText() {\r\n if (this.isCurrency) return this.currencySymbol;\r\n return this.prepend;\r\n },\r\n showAppend() {\r\n if (this.isCurrency) return !!this.currencyUnit;\r\n return !!this.append;\r\n },\r\n appendText() {\r\n if (this.isCurrency) return this.currencyUnit;\r\n return this.append;\r\n },\r\n showSuffix() {\r\n return (this.isBankCard && this.showBankCardType && this.bankCardType) ||\r\n (this.isIdCard && this.showIdCardInfo && this.idCardInfo) ||\r\n (this.isEmail && this.emailValid !== null) ||\r\n (this.isUscc && this.usccValid !== null);\r\n },\r\n // ========== 原有计算属性 ==========\r\n // 手机区号列表\r\n phoneCodeList() {\r\n return this.phoneCodeOptions.length > 0 ? this.phoneCodeOptions : defaultPhoneCodeList;\r\n },\r\n // 货币符号\r\n currencySymbol() {\r\n if (this.currencySymbolCustom) {\r\n return this.currencySymbolCustom;\r\n }\r\n return currencySymbols[this.currency] || '¥';\r\n },\r\n // 银行卡最大长度(含分隔符)\r\n bankCardMaxLength() {\r\n const digits = this.bankCardMaxDigits;\r\n const separatorCount = Math.floor((digits - 1) / this.bankCardSegment);\r\n return digits + separatorCount;\r\n },\r\n // 身份证后缀图标\r\n idCardSuffixIcon() {\r\n if (this.suffixIcon) return this.suffixIcon;\r\n if (this.idCardValid === true) return 'el-icon-success';\r\n if (this.idCardValid === false) return 'el-icon-warning';\r\n return '';\r\n },\r\n // 身份证信息文本\r\n idCardInfoText() {\r\n if (!this.idCardInfo) return '';\r\n return `${this.idCardInfo.region} | ${this.idCardInfo.birthday} | ${this.idCardInfo.gender}`;\r\n }\r\n },\r\n watch: {\r\n modelValue: {\r\n immediate: true,\r\n handler(val) {\r\n this.initSpecialValue(val);\r\n }\r\n },\r\n phoneCode(val) {\r\n this.updatePhoneValue();\r\n },\r\n phoneNumber(val) {\r\n // 只允许数字\r\n this.phoneNumber = val.replace(/\\D/g, '');\r\n this.updatePhoneValue();\r\n },\r\n defaultPhoneCode: {\r\n immediate: true,\r\n handler(val) {\r\n if (!this.modelValue) {\r\n this.phoneCode = val;\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n // ========== 统一事件处理 ==========\r\n onFocus(event) {\r\n if (this.isCurrency) {\r\n this.handleCurrencyFocus(event);\r\n } else {\r\n this.handleFocus(event);\r\n }\r\n },\r\n onBlur(event) {\r\n if (this.isCurrency) {\r\n this.handleCurrencyBlur(event);\r\n } else if (this.isIdCard) {\r\n this.handleIdCardBlur(event);\r\n } else if (this.isEmail) {\r\n this.handleEmailBlur(event);\r\n } else if (this.isUscc) {\r\n this.handleUsccBlur(event);\r\n } else {\r\n this.handleBlur(event);\r\n }\r\n },\r\n onInput(val) {\r\n if (this.isCurrency) {\r\n this.handleCurrencyInput(val);\r\n } else if (this.isBankCard) {\r\n this.handleBankCardInput(val);\r\n } else if (this.isIdCard) {\r\n this.handleIdCardInput(val);\r\n } else if (this.isEmail) {\r\n this.handleEmailInput(val);\r\n } else if (this.isUscc) {\r\n this.handleUsccInput(val);\r\n }\r\n },\r\n // 初始化特殊类型的值\r\n initSpecialValue(val) {\r\n if (this.isPhone) {\r\n this.initPhoneValue(val);\r\n } else if (this.isCurrency) {\r\n this.initCurrencyValue(val);\r\n } else if (this.isBankCard) {\r\n this.initBankCardValue(val);\r\n } else if (this.isIdCard) {\r\n this.initIdCardValue(val);\r\n } else if (this.isEmail) {\r\n this.initEmailValue(val);\r\n } else if (this.isCode) {\r\n this.initCodeValue(val);\r\n } else if (this.isPlate) {\r\n this.initPlateValue(val);\r\n } else if (this.isIp) {\r\n this.initIpValue(val);\r\n } else if (this.isMac) {\r\n this.initMacValue(val);\r\n } else if (this.isUscc) {\r\n this.initUsccValue(val);\r\n }\r\n },\r\n \r\n // ========== 手机号相关方法 ==========\r\n initPhoneValue(val) {\r\n if (!val) {\r\n this.phoneCode = this.defaultPhoneCode;\r\n this.phoneNumber = '';\r\n return;\r\n }\r\n // 支持格式:+86-13800138000 或 +8613800138000 或纯手机号\r\n const str = String(val);\r\n const match = str.match(/^(\\+\\d+)[-\\s]?(\\d+)$/);\r\n if (match) {\r\n this.phoneCode = match[1];\r\n this.phoneNumber = match[2];\r\n } else {\r\n this.phoneNumber = str.replace(/\\D/g, '');\r\n }\r\n },\r\n updatePhoneValue() {\r\n const value = this.phoneNumber ? `${this.phoneCode}-${this.phoneNumber}` : '';\r\n this.text = value;\r\n\r\n },\r\n handlePhoneBlur(event) {\r\n this.handleBlur(event);\r\n },\r\n \r\n // ========== 货币相关方法 ==========\r\n initCurrencyValue(val) {\r\n if (val === undefined || val === null || val === '') {\r\n this.currencyDisplay = '';\r\n return;\r\n }\r\n const num = parseFloat(val);\r\n if (!isNaN(num)) {\r\n this.currencyDisplay = this.formatCurrency(num);\r\n }\r\n },\r\n formatCurrency(value) {\r\n if (value === undefined || value === null || value === '') return '';\r\n const num = parseFloat(value);\r\n if (isNaN(num)) return '';\r\n // 格式化为千分位\r\n const fixed = num.toFixed(this.currencyPrecision);\r\n const parts = fixed.split('.');\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n return parts.join('.');\r\n },\r\n parseCurrency(value) {\r\n if (!value) return '';\r\n // 移除千分位分隔符\r\n return value.replace(/,/g, '');\r\n },\r\n handleCurrencyFocus(event) {\r\n this.currencyEditing = true;\r\n // 编辑时显示原始数字\r\n if (this.text) {\r\n this.currencyDisplay = this.text;\r\n }\r\n this.handleFocus(event);\r\n },\r\n handleCurrencyBlur(event) {\r\n this.currencyEditing = false;\r\n const rawValue = this.parseCurrency(this.currencyDisplay);\r\n let num = parseFloat(rawValue);\r\n \r\n // 范围限制\r\n if (!isNaN(num)) {\r\n if (this.currencyMin !== undefined && num < this.currencyMin) {\r\n num = this.currencyMin;\r\n }\r\n if (this.currencyMax !== undefined && num > this.currencyMax) {\r\n num = this.currencyMax;\r\n }\r\n this.text = num.toFixed(this.currencyPrecision);\r\n this.currencyDisplay = this.formatCurrency(num);\r\n } else {\r\n this.text = '';\r\n this.currencyDisplay = '';\r\n }\r\n \r\n\r\n this.handleBlur(event);\r\n },\r\n handleCurrencyInput(val) {\r\n // 只允许数字、小数点和逗号\r\n this.currencyDisplay = val.replace(/[^\\d.,]/g, '');\r\n },\r\n \r\n // ========== 银行卡相关方法 ==========\r\n initBankCardValue(val) {\r\n if (!val) {\r\n this.bankCardDisplay = '';\r\n this.bankCardType = '';\r\n return;\r\n }\r\n const digits = String(val).replace(/\\D/g, '');\r\n this.bankCardDisplay = this.formatBankCard(digits);\r\n this.detectBankCardType(digits);\r\n },\r\n formatBankCard(value) {\r\n if (!value) return '';\r\n const digits = value.replace(/\\D/g, '');\r\n const chunks = [];\r\n for (let i = 0; i < digits.length; i += this.bankCardSegment) {\r\n chunks.push(digits.slice(i, i + this.bankCardSegment));\r\n }\r\n return chunks.join(this.bankCardSeparator);\r\n },\r\n handleBankCardInput(val) {\r\n // 只允许数字和分隔符\r\n const digits = val.replace(/\\D/g, '').slice(0, this.bankCardMaxDigits);\r\n this.bankCardDisplay = this.formatBankCard(digits);\r\n this.text = digits;\r\n this.detectBankCardType(digits);\r\n this.$emit('bank-card-change', { value: digits, display: this.bankCardDisplay, type: this.bankCardType });\r\n },\r\n detectBankCardType(cardNumber) {\r\n if (!cardNumber || cardNumber.length < 6) {\r\n this.bankCardType = '';\r\n return;\r\n }\r\n // 根据 BIN 码判断银行卡类型(简化版)\r\n const bin = cardNumber.slice(0, 6);\r\n const bin4 = cardNumber.slice(0, 4);\r\n \r\n // 常见银行卡 BIN 码判断\r\n if (/^62/.test(bin)) {\r\n this.bankCardType = '银联卡';\r\n } else if (/^4/.test(bin)) {\r\n this.bankCardType = 'VISA';\r\n } else if (/^5[1-5]/.test(bin) || /^2[2-7]/.test(bin)) {\r\n this.bankCardType = 'MasterCard';\r\n } else if (/^3[47]/.test(bin)) {\r\n this.bankCardType = 'American Express';\r\n } else if (/^35/.test(bin)) {\r\n this.bankCardType = 'JCB';\r\n } else if (/^6011|65/.test(bin)) {\r\n this.bankCardType = 'Discover';\r\n } else {\r\n this.bankCardType = '';\r\n }\r\n },\r\n \r\n // ========== 身份证相关方法 ==========\r\n initIdCardValue(val) {\r\n if (!val) {\r\n this.idCardDisplay = '';\r\n this.idCardValid = null;\r\n this.idCardInfo = null;\r\n return;\r\n }\r\n this.idCardDisplay = String(val).toUpperCase();\r\n if (this.idCardRealtimeValidate) {\r\n this.validateIdCard(this.idCardDisplay);\r\n }\r\n },\r\n handleIdCardInput(val) {\r\n // 只允许数字和 X\r\n this.idCardDisplay = val.replace(/[^\\dXx]/g, '').toUpperCase().slice(0, 18);\r\n this.text = this.idCardDisplay;\r\n \r\n if (this.idCardRealtimeValidate && this.idCardDisplay.length === 18) {\r\n this.validateIdCard(this.idCardDisplay);\r\n } else {\r\n this.idCardValid = null;\r\n this.idCardInfo = null;\r\n }\r\n \r\n this.$emit('id-card-change', { \r\n value: this.idCardDisplay, \r\n valid: this.idCardValid, \r\n info: this.idCardInfo \r\n });\r\n },\r\n handleIdCardBlur(event) {\r\n if (this.idCardDisplay && this.idCardDisplay.length === 18) {\r\n this.validateIdCard(this.idCardDisplay);\r\n }\r\n this.$emit('id-card-valid', { valid: this.idCardValid, info: this.idCardInfo });\r\n this.handleBlur(event);\r\n },\r\n validateIdCard(idCard) {\r\n if (!idCard || idCard.length !== 18) {\r\n this.idCardValid = false;\r\n this.idCardInfo = null;\r\n return false;\r\n }\r\n \r\n // 加权因子\r\n const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\r\n // 校验码对照表\r\n const checkCodes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\r\n \r\n // 计算校验和\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) {\r\n const digit = parseInt(idCard.charAt(i), 10);\r\n if (isNaN(digit)) {\r\n this.idCardValid = false;\r\n this.idCardInfo = null;\r\n return false;\r\n }\r\n sum += digit * weights[i];\r\n }\r\n \r\n // 验证校验码\r\n const checkCode = checkCodes[sum % 11];\r\n const valid = idCard.charAt(17).toUpperCase() === checkCode;\r\n \r\n this.idCardValid = valid;\r\n \r\n if (valid) {\r\n // 解析身份证信息\r\n const regionCode = idCard.slice(0, 6);\r\n const birthYear = idCard.slice(6, 10);\r\n const birthMonth = idCard.slice(10, 12);\r\n const birthDay = idCard.slice(12, 14);\r\n const genderCode = parseInt(idCard.charAt(16), 10);\r\n \r\n this.idCardInfo = {\r\n region: this.getRegionName(regionCode),\r\n birthday: `${birthYear}-${birthMonth}-${birthDay}`,\r\n gender: genderCode % 2 === 0 ? '女' : '男',\r\n age: this.calculateAge(birthYear, birthMonth, birthDay)\r\n };\r\n } else {\r\n this.idCardInfo = null;\r\n }\r\n \r\n return valid;\r\n },\r\n getRegionName(code) {\r\n // 简化版地区码映射(实际应用中可扩展完整映射)\r\n const regions = {\r\n '11': '北京', '12': '天津', '13': '河北', '14': '山西', '15': '内蒙古',\r\n '21': '辽宁', '22': '吉林', '23': '黑龙江',\r\n '31': '上海', '32': '江苏', '33': '浙江', '34': '安徽', '35': '福建', '36': '江西', '37': '山东',\r\n '41': '河南', '42': '湖北', '43': '湖南', '44': '广东', '45': '广西', '46': '海南',\r\n '50': '重庆', '51': '四川', '52': '贵州', '53': '云南', '54': '西藏',\r\n '61': '陕西', '62': '甘肃', '63': '青海', '64': '宁夏', '65': '新疆',\r\n '71': '台湾', '81': '香港', '82': '澳门'\r\n };\r\n const provinceCode = code.slice(0, 2);\r\n return regions[provinceCode] || '未知地区';\r\n },\r\n calculateAge(year, month, day) {\r\n const birthDate = new Date(year, month - 1, day);\r\n const today = new Date();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const monthDiff = today.getMonth() - birthDate.getMonth();\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n return age;\r\n },\r\n \r\n // ========== 邮箱相关方法 ==========\r\n initEmailValue(val) {\r\n this.emailDisplay = val || '';\r\n if (val) {\r\n this.emailValid = this.validateEmail(val);\r\n }\r\n },\r\n handleEmailInput(val) {\r\n this.emailDisplay = val;\r\n this.text = val;\r\n this.emailValid = val ? this.validateEmail(val) : null;\r\n\r\n },\r\n handleEmailBlur(event) {\r\n this.emailValid = this.emailDisplay ? this.validateEmail(this.emailDisplay) : null;\r\n this.handleBlur(event);\r\n },\r\n validateEmail(email) {\r\n const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n return regex.test(email);\r\n },\r\n \r\n // ========== 验证码相关方法 ==========\r\n initCodeValue(val) {\r\n const str = String(val || '');\r\n this.codeValues = Array(this.codeLength).fill('').map((_, i) => str[i] || '');\r\n },\r\n handleCodeInput(event, index) {\r\n const val = event.target.value.replace(/\\D/g, '');\r\n this.codeValues[index] = val.slice(-1);\r\n this.updateCodeValue();\r\n // 自动跳转下一格\r\n if (val && index < this.codeLength - 1) {\r\n this.$nextTick(() => {\r\n if (this.codeRefs[index + 1]) {\r\n this.codeRefs[index + 1].focus();\r\n }\r\n });\r\n }\r\n },\r\n handleCodeKeydown(event, index) {\r\n // 退格键处理\r\n if (event.key === 'Backspace' && !this.codeValues[index] && index > 0) {\r\n this.$nextTick(() => {\r\n if (this.codeRefs[index - 1]) {\r\n this.codeRefs[index - 1].focus();\r\n }\r\n });\r\n }\r\n },\r\n handleCodePaste(event) {\r\n event.preventDefault();\r\n const paste = (event.clipboardData || window.clipboardData).getData('text').replace(/\\D/g, '');\r\n const chars = paste.slice(0, this.codeLength).split('');\r\n chars.forEach((char, i) => {\r\n this.codeValues[i] = char;\r\n });\r\n this.updateCodeValue();\r\n // 聚焦到最后一个填入的位置\r\n const focusIndex = Math.min(chars.length, this.codeLength - 1);\r\n this.$nextTick(() => {\r\n if (this.codeRefs[focusIndex]) {\r\n this.codeRefs[focusIndex].focus();\r\n }\r\n });\r\n },\r\n updateCodeValue() {\r\n const value = this.codeValues.join(this.codeSeparator);\r\n this.text = this.codeValues.join('');\r\n\r\n if (this.codeValues.every(v => v)) {\r\n this.$emit('code-complete', { value: this.text });\r\n }\r\n },\r\n \r\n // ========== 车牌号相关方法 ==========\r\n initPlateValue(val) {\r\n if (!val) {\r\n this.plateProvince = this.defaultPlateProvince;\r\n this.plateNumber = '';\r\n return;\r\n }\r\n const str = String(val);\r\n if (str.length > 0) {\r\n this.plateProvince = str[0];\r\n this.plateNumber = str.slice(1).toUpperCase();\r\n }\r\n },\r\n handlePlateInput(val) {\r\n this.plateNumber = val.toUpperCase().replace(/[^A-Z0-9]/g, '');\r\n this.updatePlateValue();\r\n },\r\n handlePlateBlur(event) {\r\n this.updatePlateValue();\r\n this.handleBlur(event);\r\n },\r\n updatePlateValue() {\r\n const value = this.plateProvince + this.plateNumber;\r\n this.text = value;\r\n\r\n },\r\n \r\n // ========== IP地址相关方法 ==========\r\n initIpValue(val) {\r\n if (!val) {\r\n this.ipSegments = ['', '', '', ''];\r\n return;\r\n }\r\n const parts = String(val).split('.');\r\n this.ipSegments = parts.slice(0, 4).map(p => p || '');\r\n while (this.ipSegments.length < 4) {\r\n this.ipSegments.push('');\r\n }\r\n },\r\n handleIpInput(event, index) {\r\n let val = event.target.value.replace(/\\D/g, '');\r\n // 限制范围 0-255\r\n if (val !== '' && parseInt(val, 10) > 255) {\r\n val = '255';\r\n }\r\n this.ipSegments[index] = val;\r\n this.updateIpValue();\r\n // 自动跳转\r\n if (val.length === 3 || (val.length > 0 && parseInt(val, 10) >= 26)) {\r\n if (index < 3 && this.ipRefs[index + 1]) {\r\n this.$nextTick(() => this.ipRefs[index + 1].focus());\r\n }\r\n }\r\n },\r\n handleIpKeydown(event, index) {\r\n if (event.key === '.' && index < 3) {\r\n event.preventDefault();\r\n if (this.ipRefs[index + 1]) {\r\n this.ipRefs[index + 1].focus();\r\n }\r\n }\r\n if (event.key === 'Backspace' && !this.ipSegments[index] && index > 0) {\r\n if (this.ipRefs[index - 1]) {\r\n this.ipRefs[index - 1].focus();\r\n }\r\n }\r\n },\r\n updateIpValue() {\r\n const value = this.ipSegments.join('.');\r\n this.text = value;\r\n\r\n },\r\n \r\n // ========== MAC地址相关方法 ==========\r\n initMacValue(val) {\r\n if (!val) {\r\n this.macSegments = ['', '', '', '', '', ''];\r\n return;\r\n }\r\n const str = String(val).replace(/[^A-Fa-f0-9]/g, '');\r\n this.macSegments = [];\r\n for (let i = 0; i < 6; i++) {\r\n this.macSegments.push(str.slice(i * 2, i * 2 + 2).toUpperCase());\r\n }\r\n },\r\n handleMacInput(event, index) {\r\n let val = event.target.value.replace(/[^A-Fa-f0-9]/g, '').toUpperCase();\r\n this.macSegments[index] = val.slice(0, 2);\r\n this.updateMacValue();\r\n // 自动跳转\r\n if (val.length >= 2 && index < 5) {\r\n this.$nextTick(() => {\r\n if (this.macRefs[index + 1]) {\r\n this.macRefs[index + 1].focus();\r\n }\r\n });\r\n }\r\n },\r\n handleMacKeydown(event, index) {\r\n if ((event.key === ':' || event.key === '-') && index < 5) {\r\n event.preventDefault();\r\n if (this.macRefs[index + 1]) {\r\n this.macRefs[index + 1].focus();\r\n }\r\n }\r\n if (event.key === 'Backspace' && !this.macSegments[index] && index > 0) {\r\n if (this.macRefs[index - 1]) {\r\n this.macRefs[index - 1].focus();\r\n }\r\n }\r\n },\r\n updateMacValue() {\r\n const value = this.macSegments.join(this.macSeparator);\r\n this.text = this.macSegments.join('');\r\n\r\n },\r\n \r\n // ========== 社会信用代码相关方法 ==========\r\n initUsccValue(val) {\r\n this.usccDisplay = val || '';\r\n if (val && String(val).length === 18) {\r\n this.usccValid = this.validateUscc(val);\r\n }\r\n },\r\n handleUsccInput(val) {\r\n this.usccDisplay = val.toUpperCase().replace(/[^A-Z0-9]/g, '').slice(0, 18);\r\n this.text = this.usccDisplay;\r\n if (this.usccRealtimeValidate && this.usccDisplay.length === 18) {\r\n this.usccValid = this.validateUscc(this.usccDisplay);\r\n } else {\r\n this.usccValid = null;\r\n }\r\n\r\n },\r\n handleUsccBlur(event) {\r\n if (this.usccDisplay && this.usccDisplay.length === 18) {\r\n this.usccValid = this.validateUscc(this.usccDisplay);\r\n this.$emit('uscc-valid', { valid: this.usccValid });\r\n }\r\n this.handleBlur(event);\r\n },\r\n validateUscc(code) {\r\n if (!code || code.length !== 18) return false;\r\n // 统一社会信用代码校验规则\r\n const chars = '0123456789ABCDEFGHJKLMNPQRTUWXY';\r\n const weights = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) {\r\n const charIndex = chars.indexOf(code[i]);\r\n if (charIndex === -1) return false;\r\n sum += charIndex * weights[i];\r\n }\r\n const checkIndex = (31 - (sum % 31)) % 31;\r\n return chars[checkIndex] === code[17];\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\"\r\n style=\"position:relative\">\r\n <canvas :id=\"'canvas'+id\"\r\n ref=\"canvas\"></canvas>\r\n <slot></slot>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport { downFile } from 'utils/util';\r\nexport default create({\r\n name: 'license',\r\n props: {\r\n id: {\r\n type: String,\r\n default: ''\r\n },\r\n option: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n }\r\n },\r\n watch: {\r\n option: {\r\n handler () {\r\n this.init();\r\n },\r\n deep: true\r\n }\r\n },\r\n data () {\r\n return {\r\n base64: '',\r\n draw: false,\r\n canvas: '',\r\n context: '',\r\n }\r\n },\r\n computed: {\r\n img () {\r\n return this.option.img\r\n },\r\n list () {\r\n return this.option.list || []\r\n }\r\n },\r\n mounted () {\r\n this.canvas = document.getElementById(\"canvas\" + this.id);\r\n this.context = this.canvas.getContext(\"2d\");\r\n this.init();\r\n },\r\n methods: {\r\n init () {\r\n this.draw = false;\r\n const beauty = new Image();\r\n beauty.src = this.img;\r\n beauty.onload = () => {\r\n const width = this.option.width || beauty.width;;\r\n const height = this.option.width ? ((beauty.height / beauty.width) * this.option.width) : beauty.height;\r\n this.$refs.canvas.width = width;\r\n this.$refs.canvas.height = height\r\n this.context.clearRect(0, 0, width, height);\r\n this.context.drawImage(beauty, 0, 0, width, height);\r\n this.list.forEach((ele, index) => {\r\n const callback = () => {\r\n if (index == this.list.length - 1) {\r\n setTimeout(() => {\r\n this.draw = true;\r\n }, 0)\r\n }\r\n }\r\n if (ele.img) {\r\n const img = new Image();\r\n img.src = ele.img\r\n img.onload = () => {\r\n const widths = ele.width || img.width;;\r\n const heights = ele.width ? ((img.height / img.width) * ele.width) : img.height;\r\n this.context.drawImage(img, ele.left, ele.top, widths, heights);\r\n callback();\r\n }\r\n } else {\r\n if (ele.bold) {\r\n this.context.font = `bold ${ele.size}px ${ele.style}`\r\n } else {\r\n this.context.font = `${ele.size}px ${ele.style}`\r\n }\r\n this.context.fillStyle = ele.color;\r\n\r\n this.context.fillText(ele.text, ele.left, ele.top);\r\n this.context.stroke();\r\n callback();\r\n }\r\n })\r\n\r\n };\r\n },\r\n getFile (name = new Date().getTime()) {\r\n return new Promise((resolve) => {\r\n const time = setInterval(() => {\r\n if (this.draw) {\r\n const data = this.canvas.toDataURL('image/jpeg', 1.0);\r\n const file = this.dataURLtoFile(data, name)\r\n clearInterval(time)\r\n resolve(file)\r\n }\r\n }, 1000)\r\n })\r\n return file;\r\n },\r\n downFile (filename = new Date().getTime()) {\r\n downFile(this.base64, filename)\r\n },\r\n getBase64 () {\r\n return new Promise((resolve) => {\r\n const time = setInterval(() => {\r\n if (this.draw) {\r\n const data = this.canvas.toDataURL('image/jpeg', 1.0);\r\n this.base64 = data;\r\n clearInterval(time)\r\n resolve(data)\r\n }\r\n }, 100)\r\n })\r\n },\r\n getPdf (name = new Date().getTime()) {\r\n const contentWidth = this.canvas.width;\r\n const contentHeight = this.canvas.height;\r\n const pageHeight = (contentWidth / 592.28) * 841.89;\r\n let leftHeight = contentHeight;\r\n let position = 0;\r\n const imgWidth = 595.28;\r\n const imgHeight = (592.28 / contentWidth) * contentHeight;\r\n const pageData = this.canvas.toDataURL('image/jpeg', 1.0);\r\n const PDF = new window.jsPDF('', 'pt', 'a4');\r\n if (leftHeight < pageHeight) {\r\n PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);\r\n } else {\r\n while (leftHeight > 0) {\r\n PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);\r\n leftHeight -= pageHeight;\r\n position -= 841.89;\r\n if (leftHeight > 0) {\r\n PDF.addPage();\r\n }\r\n }\r\n }\r\n PDF.save(`${name}.pdf`);\r\n }\r\n }\r\n})\r\n</script>\r\n","<template>\r\n <div :class=\"b()\"\r\n :style=\"{width:setPx(width)}\">\r\n <el-form :model=\"form\"\r\n ref=\"form\"\r\n :size=\"$AVUE.size\"\r\n label-suffix=\":\"\r\n :label-width=\"setPx(labelWidth)\">\r\n <el-form-item :label=\"username.label || '用户名'\"\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 #header v-if=\"all && multiple && virtualize\">\r\n <div :class=\"b('check')\">\r\n <el-checkbox\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 </template>\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>&nbsp;\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>\n <el-transfer\n :class=\"b()\"\n v-model=\"text\"\n :data=\"dic || []\"\n :titles=\"titles\"\n :filterable=\"filterable\"\n :filter-placeholder=\"filterPlaceholder\"\n :filter-method=\"filterMethod || undefined\"\n :target-order=\"targetOrder\"\n :format=\"format\"\n :props=\"transferProps\"\n :left-default-checked=\"leftDefaultChecked\"\n :right-default-checked=\"rightDefaultChecked\"\n :disabled=\"disabled\"\n @change=\"handleTransferChange\"\n />\n</template>\n\n<script>\nimport create from 'core/create'\nimport props from 'common/common/props.js'\nimport event from 'common/common/event.js'\nexport default create({\n name: 'transfer',\n mixins: [props(), event()],\n props: {\n titles: {\n type: Array,\n default: () => []\n },\n filterable: {\n type: Boolean,\n default: false\n },\n filterPlaceholder: {\n type: String,\n default: undefined\n },\n filterMethod: {\n type: Function,\n default: undefined\n },\n targetOrder: {\n type: String,\n default: 'original'\n },\n format: {\n type: Object,\n default: () => ({})\n },\n leftDefaultChecked: {\n type: Array,\n default: () => []\n },\n rightDefaultChecked: {\n type: Array,\n default: () => []\n }\n },\n computed: {\n transferProps() {\n return {\n key: this.valueKey,\n label: this.labelKey,\n disabled: this.disabledKey\n }\n }\n },\n methods: {\n handleTransferChange(value, direction, movedKeys) {\n this.bindEvent('change', { value, direction, movedKeys })\n }\n }\n})\n</script>\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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=5a7fb534\"","import { render } from \"./index.vue?vue&type=template&id=4fc486a9\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=eea3fb88\"","export default (() => {\r\n let dialogDom;\r\n let closeDialog;\r\n\r\n function setupChildMenus(items, dialogDom, divTop, clientHeight) {\r\n items.forEach((ele, i) => {\r\n const childDom = ele.querySelector(\"ul\");\r\n if (!childDom) return;\r\n Object.assign(childDom.style, {\r\n position: \"absolute\",\r\n top: \"-9999px\",\r\n width: \"max-content\",\r\n });\r\n // 使用具名函数以便移除,避免重复绑定\r\n if (ele._onEnter) {\r\n ele.removeEventListener(\"mouseenter\", ele._onEnter);\r\n ele.removeEventListener(\"mouseleave\", ele._onLeave);\r\n }\r\n ele._onEnter = () => {\r\n const calcHeight =\r\n clientHeight -\r\n (divTop + ele.clientHeight * (i + 1)) -\r\n childDom.clientHeight;\r\n childDom.style.left = `${dialogDom.clientWidth + 1}px`;\r\n childDom.style.top = `${calcHeight < 0 ? calcHeight : 0}px`;\r\n };\r\n ele._onLeave = () => {\r\n childDom.style.top = \"-9999px\";\r\n };\r\n ele.addEventListener(\"mouseenter\", ele._onEnter);\r\n ele.addEventListener(\"mouseleave\", ele._onLeave);\r\n });\r\n }\r\n\r\n function setEvent(el, binding) {\r\n const dom = document.getElementById(binding.value.id);\r\n if (dom) dom.style.display = \"none\";\r\n el.oncontextmenu = function (e) {\r\n e.preventDefault();\r\n const { id, event, hide, value } = binding.value;\r\n dialogDom = document.getElementById(id);\r\n if (!dialogDom) return;\r\n const { clientWidth, clientHeight } = document.documentElement;\r\n let { clientX: divLeft, clientY: divTop } = e;\r\n\r\n dialogDom.style.display = \"block\";\r\n const { offsetWidth: dialogDomWidth, offsetHeight: dialogDomHeight } =\r\n dialogDom;\r\n\r\n if (clientHeight - divTop - dialogDomHeight < 0) {\r\n divTop -= dialogDomHeight;\r\n }\r\n if (clientWidth - divLeft - dialogDomWidth < 0) {\r\n divLeft -= dialogDomWidth;\r\n }\r\n\r\n // 筛选第一层级 li\r\n const firstLevelItems = Array.from(\r\n dialogDom.querySelectorAll(\"li\")\r\n ).filter((item) => item.parentNode === dialogDom);\r\n setupChildMenus(firstLevelItems, dialogDom, divTop, clientHeight);\r\n\r\n // 移除旧的 click 监听后再绑定,防止重复\r\n if (closeDialog) {\r\n document.removeEventListener(\"click\", closeDialog);\r\n }\r\n closeDialog = () => {\r\n dialogDom.style.display = \"none\";\r\n hide && hide(value, e);\r\n document.removeEventListener(\"click\", closeDialog);\r\n closeDialog = null;\r\n };\r\n\r\n const showDialog = () => {\r\n Object.assign(dialogDom.style, {\r\n position: \"fixed\",\r\n zIndex: 1024,\r\n top: `${divTop}px`,\r\n left: `${divLeft}px`,\r\n });\r\n document.addEventListener(\"click\", closeDialog);\r\n };\r\n\r\n event ? event(value, showDialog) : showDialog();\r\n };\r\n }\r\n\r\n return {\r\n mounted(el, binding) {\r\n setEvent(el, binding);\r\n },\r\n updated(el, binding) {\r\n setEvent(el, binding);\r\n },\r\n unmounted(el) {\r\n el.oncontextmenu = null;\r\n if (closeDialog) {\r\n document.removeEventListener(\"click\", closeDialog);\r\n closeDialog = null;\r\n }\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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=7f82642d\"","import { render } from \"./index.vue?vue&type=template&id=6c1e6e04\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6c1e6e04\"","import { render } from \"./index.vue?vue&type=template&id=9fc5e2de\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=9fc5e2de\"","import { render } from \"./index.vue?vue&type=template&id=06f253d3\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/countdown/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"06f253d3\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('06f253d3', __exports__)) {\n console.log('reload')\n api.reload('06f253d3', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=06f253d3\", () => {\n console.log('re-render')\n api.rerender('06f253d3', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=06f253d3\"","import { render } from \"./index.vue?vue&type=template&id=eb27ef14\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/dashboard/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"eb27ef14\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('eb27ef14', __exports__)) {\n console.log('reload')\n api.reload('eb27ef14', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=eb27ef14\", () => {\n console.log('re-render')\n api.rerender('eb27ef14', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=eb27ef14\"","import { render } from \"./index.vue?vue&type=template&id=225fca38\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=225fca38\"","import { render } from \"./index.vue?vue&type=template&id=f7b00608\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f7b00608\"","import { render } from \"./index.vue?vue&type=template&id=60c71032\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=60c71032\"","import { render } from \"./index.vue?vue&type=template&id=26ff8a12\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/list/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"26ff8a12\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('26ff8a12', __exports__)) {\n console.log('reload')\n api.reload('26ff8a12', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=26ff8a12\", () => {\n console.log('re-render')\n api.rerender('26ff8a12', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=26ff8a12\"","import { render } from \"./index.vue?vue&type=template&id=675644e8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/notice/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"675644e8\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('675644e8', __exports__)) {\n console.log('reload')\n api.reload('675644e8', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=675644e8\", () => {\n console.log('re-render')\n api.rerender('675644e8', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=675644e8\"","import { render } from \"./index.vue?vue&type=template&id=55f47a82\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=55f47a82\"","import { render } from \"./index.vue?vue&type=template&id=212cd134\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=212cd134\"","import { render } from \"./index.vue?vue&type=template&id=984b326c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=984b326c\"","import { render } from \"./index.vue?vue&type=template&id=24f0ac6b\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=24f0ac6b\"","import { render } from \"./index.vue?vue&type=template&id=309b3ad1\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/product/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"309b3ad1\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('309b3ad1', __exports__)) {\n console.log('reload')\n api.reload('309b3ad1', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=309b3ad1\", () => {\n console.log('re-render')\n api.rerender('309b3ad1', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=309b3ad1\"","import { render } from \"./index.vue?vue&type=template&id=520ad70b\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/profile/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"520ad70b\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('520ad70b', __exports__)) {\n console.log('reload')\n api.reload('520ad70b', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=520ad70b\", () => {\n console.log('re-render')\n api.rerender('520ad70b', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=520ad70b\"","import { render } from \"./index.vue?vue&type=template&id=2c4aa061\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=2c4aa061\"","import { render } from \"./index.vue?vue&type=template&id=c8d0e7c0\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/rank/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"c8d0e7c0\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('c8d0e7c0', __exports__)) {\n console.log('reload')\n api.reload('c8d0e7c0', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=c8d0e7c0\", () => {\n console.log('re-render')\n api.rerender('c8d0e7c0', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=c8d0e7c0\"","import { render } from \"./index.vue?vue&type=template&id=61501c4f\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=61501c4f\"","import { render } from \"./index.vue?vue&type=template&id=29a5479c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/statistic/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"29a5479c\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('29a5479c', __exports__)) {\n console.log('reload')\n api.reload('29a5479c', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=29a5479c\", () => {\n console.log('re-render')\n api.rerender('29a5479c', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=29a5479c\"","import { render } from \"./index.vue?vue&type=template&id=abb6161c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=abb6161c\"","import { render } from \"./index.vue?vue&type=template&id=f4694b8e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/task/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"f4694b8e\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('f4694b8e', __exports__)) {\n console.log('reload')\n api.reload('f4694b8e', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=f4694b8e\", () => {\n console.log('re-render')\n api.rerender('f4694b8e', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f4694b8e\"","import { render } from \"./index.vue?vue&type=template&id=24b138d4\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/weather/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"24b138d4\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('24b138d4', __exports__)) {\n console.log('reload')\n api.reload('24b138d4', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=24b138d4\", () => {\n console.log('re-render')\n api.rerender('24b138d4', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=24b138d4\"","import { render } from \"./index.vue?vue&type=template&id=8dfdacc8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=8dfdacc8\"","import { render } from \"./index.vue?vue&type=template&id=26ed2c0e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=26ed2c0e\"","import { render } from \"./index.vue?vue&type=template&id=6b2d95c3\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6b2d95c3\"","import { render } from \"./index.vue?vue&type=template&id=15423d71\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=15423d71\"","import { render } from \"./index.vue?vue&type=template&id=877c17ea\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=877c17ea\"","import { render } from \"./index.vue?vue&type=template&id=9844b294\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=9844b294\"","import { render } from \"./index.vue?vue&type=template&id=bd22c7bc\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=bd22c7bc\"","import { render } from \"./index.vue?vue&type=template&id=1683a0e8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=1683a0e8\"","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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=1d59463e\"","import { render } from \"./index.vue?vue&type=template&id=a7856060\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a7856060\"","import { render } from \"./index.vue?vue&type=template&id=209d93fc\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=209d93fc\"","import { render } from \"./index.vue?vue&type=template&id=464c8e61\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=464c8e61\"","import { render } from \"./node.vue?vue&type=template&id=49516e7a\"\nimport script from \"./node.vue?vue&type=script&lang=js\"\nexport * from \"./node.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./node.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./node.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=57fb9677\"","import { render } from \"./menu.vue?vue&type=template&id=8163526c\"\nimport script from \"./menu.vue?vue&type=script&lang=js\"\nexport * from \"./menu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./menu.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./menu.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./menu.vue?vue&type=template&id=8163526c\"","import { render } from \"./index.vue?vue&type=template&id=66733642\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=66733642\"","import { render } from \"./index.vue?vue&type=template&id=c3ce0fba\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=c3ce0fba\"","import { render } from \"./index.vue?vue&type=template&id=36338624\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-cron/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"36338624\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('36338624', __exports__)) {\n console.log('reload')\n api.reload('36338624', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=36338624\", () => {\n console.log('re-render')\n api.rerender('36338624', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=36338624\"","import { render } from \"./index.vue?vue&type=template&id=f08e4362\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f08e4362\"","import { render } from \"./index.vue?vue&type=template&id=51c70ffe\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-json/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"51c70ffe\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('51c70ffe', __exports__)) {\n console.log('reload')\n api.reload('51c70ffe', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=51c70ffe\", () => {\n console.log('re-render')\n api.rerender('51c70ffe', 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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=51c70ffe\"","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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a3bbbfc8\"","import { render } from \"./index.vue?vue&type=template&id=6c26b342\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6c26b342\"","import { render } from \"./index.vue?vue&type=template&id=43b9bace\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=43b9bace\"","import { render } from \"./index.vue?vue&type=template&id=10a5f64c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=10a5f64c\"","import { render } from \"./index.vue?vue&type=template&id=a619a998\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a619a998\"","import { render } from \"./index.vue?vue&type=template&id=566e9466\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=566e9466\"","import { render } from \"./index.vue?vue&type=template&id=6c28bf84\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6c28bf84\"","import { render } from \"./index.vue?vue&type=template&id=f024daa8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f024daa8\"","import { render } from \"./index.vue?vue&type=template&id=78a7cc26\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=78a7cc26\"","import { render } from \"./index.vue?vue&type=template&id=124ca8be\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=124ca8be\"","import { render } from \"./index.vue?vue&type=template&id=4b746393\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=4b746393\"","import { render } from \"./index.vue?vue&type=template&id=f158c74a\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f158c74a\"","import { render } from \"./index.vue?vue&type=template&id=19ec52af\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=19ec52af\"","import { render } from \"./index.vue?vue&type=template&id=796f4430\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=796f4430\"","import { render } from \"./index.vue?vue&type=template&id=3f2c8758\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=3f2c8758\"","import { render } from \"./index.vue?vue&type=template&id=76952232\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=76952232\"","import { render } from \"./index.vue?vue&type=template&id=ad97c69e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=ad97c69e\"","import { render } from \"./index.vue?vue&type=template&id=dd801a98\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=dd801a98\"","import { render } from \"./index.vue?vue&type=template&id=4d6ca540\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=4d6ca540\"","import { render } from \"./index.vue?vue&type=template&id=034826db\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=034826db\"","import { render } from \"./index.vue?vue&type=template&id=3d0430de\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/transfer/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"3d0430de\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('3d0430de', __exports__)) {\n console.log('reload')\n api.reload('3d0430de', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=3d0430de\", () => {\n console.log('re-render')\n api.rerender('3d0430de', 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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=3d0430de\"","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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=727ab4d1\"","import { render } from \"./index.vue?vue&type=template&id=a6252d18\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a6252d18\"","import { render } from \"./index.vue?vue&type=template&id=7925a428\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=7925a428\"","import { render } from \"./index.vue?vue&type=template&id=69e2093e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609\\\\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+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_655e1d5fbbda8d88dae75bafc61f7609/node_modules/vue-loader/dist/index.js??ref--2!./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\", \"phone\", \"currency\", \"bankCard\", \"bank-card\", \"idCard\", \"id-card\", \"email\", \"code\", \"plate\", \"ip\", \"mac\", \"uscc\"].includes(type)) {\r\n result = \"input\";\r\n } else if (type === \"cron\") {\r\n result = \"input-cron\";\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', 'json'];\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', 'transfer', '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 { identity } from 'utils/identity';\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 = identity({\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 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};\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\nimport DataStatistic from 'packages/data/statistic';\r\nimport DataWeather from 'packages/data/weather';\r\nimport DataRank from 'packages/data/rank';\r\nimport DataProfile from 'packages/data/profile';\r\nimport DataProduct from 'packages/data/product';\r\nimport DataCountdown from 'packages/data/countdown';\r\nimport DataNotice from 'packages/data/notice';\r\nimport DataTask from 'packages/data/task';\r\nimport DataList from 'packages/data/list';\r\nimport DataDashboard from 'packages/data/dashboard';\r\nexport default { DataTabs, DataCardText, DataBox, DataProgress, DataIcons, DataCard, DataDisplay, DataImgText, DataOperaText, DataRotate, DataPay, DataPrice, DataPanel, DataStatistic, DataWeather, DataRank, DataProfile, DataProduct, DataCountdown, DataNotice, DataTask, DataList, DataDashboard };\r\n\r\n\r\n","import CountUp from 'packages/element-plus/count-up';\r\nimport Article from 'packages/element-plus/article';\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 InputJson from 'packages/element-plus/input-json';\r\nimport InputCron from 'packages/element-plus/input-cron';\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\nimport Transfer from 'packages/element-plus/transfer';\r\nexport default {\r\n Arrays,\r\n Article,\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 InputJson,\r\n InputCron,\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 Transfer,\r\n Sign,\r\n Login\r\n};\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","export function identity(value) {\n return value;\n}\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 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.3-beta.10'\n","module.exports = __WEBPACK_EXTERNAL_MODULE__element_plus_icons_vue__;","module.exports = __WEBPACK_EXTERNAL_MODULE_axios__;","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;;;;;;;;;;;;;ACfA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3CA;AAAA;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;;;;;;;;;;;;;ACrBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACOA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACCA;AAAA;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;;;;;;;;;;;;;AC9CA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;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;;;;;;;;;;;;;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;;;;;;;;;;;;;AClCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACnWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAGA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAIA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChUA;AAAA;AAAA;AAAA;AACA;AACA;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;;;;;;;;;;;;;;;;;;;;;;;;ACOA;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;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuCA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AAAA;AAAA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAMA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/SA;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;;;;;;;;;;;;;;;;;;;;ACxFA;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;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;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAIA;AAGA;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;;;;;;;;;;;;;ACrMA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrRA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AAEA;AAEA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtPA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtBA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACGA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjtCA;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;;;;;;;;;;;;;ACYA;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;;;;;;;;;;;;;AClSA;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;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;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;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;ACgCA;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;;;;;;;;;;;;;;;;;;;;;;;AxETA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;AAEA;AADA;;AAAA;;AAOA;AAJA;;AAAA;AACA;AACA;AACA;AAEA;;AAAA;AAAA;;;;;AAEA;AADA;;AAAA;AAEA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AAEA;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AACA;AAAA;;;;AAGA;;;AACA;AAAA;AAAA;;;;;;AAEA;;AACA;AACA;AACA;AADA;;;;;;AAKA;AAAA;AACA;AAAA;;AAEA;AACA;AACA;AACA;;AACA;;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AClDA;;;;;;;AAHA;AAAA;;AAAA;;AAEA;AAAA;AAEA;;AAEA;AAAA;;AACA;AACA;;AACA;AAAA;;;;AAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;ACyCA;AACA;AACA;;;;;;;;;;;;;;;;;;AAvDA;AAAA;;AAEA;AADA;;AAAA;AAEA;;;AACA;AAAA;AACA;;AACA;;AAIA;AAFA;;AAAA;AACA;;AAEA;;;AAIA;AAFA;;AAAA;AACA;;AAEA;;;AAEA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AADA;AAAA;AAAA;AAEA;;AACA;AAQA;AARA;;AAAA;AACA;AACA;AACA;;AACA;AACA;AACA;AAGA;;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;;;;;;;;;;AAMA;AACA;AACA;AAAA;AAAA;;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACpEA;AAOA;;AAUA;AAMA;AACA;;;;;;;AAxBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;;AACA;AACA;AAAA;;;;;AAGA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;AAOA;;;;;;;;AAPA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AAAA;AACA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;AAOA;;AAIA;AAGA;AACA;AACA;;;;;AAhBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAGA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;;;AAQA;;AACA;;;AACA;;AACA;;;AAGA;;AACA;AACA;AAIA;AACA;AAIA;AACA;;;AAIA;;;;;;;AA9BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;;AACA;AACA;AAAA;AACA;AACA;;;AAEA;AAAA;;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;AAQA;AACA;AAGA;;;AAIA;;;;AAEA;;;;AAOA;;;;;;;;;AAzBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AACA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA;AACA;AAAA;AACA;AACA;;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;;;;;AAGA;AAAA;AACA;AACA;AAAA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;;;;;;;;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;;AAYA;AAKA;AACA;;;;;;;AAlBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;;AAEA;AAAA;AACA;AACA;;AACA;AACA;AAAA;;AACA;AAAA;;;;;AAGA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;;AAYA;;AAIA;AAIA;AACA;AACA;;;;;;;;AAtBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AAAA;AACA;;;AAEA;AACA;AACA;;AAEA;AACA;AAAA;;AACA;AACA;AACA;AAAA;AAEA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;;;AACA;;AACA;;;AACA;;AAEA;;;;AAKA;;;AAIA;AACA;AACA;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;AAzBA;AACA;AAAA;AACA;AACA;AAAA;AAAA;;;;;AAEA;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;AACA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;;;;;AAEA;AACA;AACA;AACA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA;AAAA;;;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;;;AACA;;AACA;AAGA;;AAQA;AACA;;;AACA;;;;AAfA;AACA;AAAA;AACA;AACA;AAAA;;AAAA;AAAA;AAAA;;;;AAEA;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AAOA;;AAKA;AACA;AAEA;AACA;;AAIA;AAIA;AACA;AACA;;;;;AA1BA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AACA;;AAEA;AACA;AACA;AAAA;AACA;;;AAEA;AACA;AAAA;AAAA;AAEA;;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;;AASA;AACA;AAKA;AACA;AACA;;;;;;;AAjBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AACA;AACA;AAAA;;AACA;AAAA;;;;;AAGA;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AAGA;AACA;;;AA0BA;;;AAOA;;;;;;;;;;;AA5CA;AAAA;;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;;AACA;AACA;AACA;AAAA;AACA;AACA;;AACA;AACA;;AAAA;AACA;AAAA;;AAEA;AACA;;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AACA;;;AAGA;AACA;AAAA;AACA;AACA;AACA;AAAA;;AAEA;AACA;AAAA;AAAA;AACA;;AAIA;AAFA;;AAAA;AACA;AACA;AACA;AAEA;AAAA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AAAA;;;AAEA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDA;AAOA;;AAIA;AAGA;AACA;AACA;AAEA;AACA;;;;;AAnBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAGA;AACA;AACA;;AAEA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;;AASA;;AAMA;AACA;;;AACA;;;;AACA;;AAEA;;;AACA;;AAEA;AACA;AACA;;;AAGA;;;;AAGA;;;;AAEA;;;;;;AAIA;;;;;;;;;AArCA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AACA;;;AAGA;AACA;AACA;AAAA;;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;;AACA;AACA;AAAA;;;;AAEA;AACA;AACA;AAAA;;AAGA;AAAA;;AAGA;AAAA;;;AAEA;AAAA;AACA;AAAA;;AACA;AAAA;;;;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;;;;AAEA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCA;;AAWA;;;;AAEA;;AAEA;;;AACA;;;;AACA;;;;AACA;;;;AAKA;;;;AACA;;;;AAIA;;;;AAKA;;AAEA;AACA;;;AAGA;;;;;;;;;AAvCA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;;AAAA;AAAA;;;AACA;AACA;AAAA;;AAAA;AAAA;;AACA;;AAEA;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;;;AAEA;AAAA;AACA;AACA;;;;;AAGA;AAAA;AACA;AAAA;AAAA;AAAA;;AACA;AACA;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CA;AAOA;;AAIA;;;;;;;;;AAXA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AAAA;AACA;;;AAEA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;;;AACA;;AACA;AAEA;;;;;;AASA;;;AAGA;AACA;;;AACA;;AAEA;;;AAIA;;;;AAEA;;;;;;;AA1BA;AACA;AAAA;AACA;;;AAEA;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;;AACA;AAAA;AACA;;AAEA;AAAA;AACA;AAAA;AAAA;;;;AAEA;AACA;AACA;AAAA;;;AAEA;AACA;AAAA;AACA;AACA;;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;AASA;AAKA;;AAQA;AACA;;;;;;;;AAvBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;;AACA;AAAA;;;;;AAGA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBA;;;;AAUA;;AAGA;AACA;;;AAEA;;;;AAIA;;;;AAEA;;AAIA;;;AACA;;;;;;;;AA3BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AAAA;;;;AAEA;AACA;AACA;AAAA;AAAA;;AACA;AAAA;;AACA;AAAA;AACA;AACA;;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;;AAYA;AAIA;AAMA;AAIA;AACA;;;;;;AA3BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AAAA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;;;AACA;;AACA;AACA;AAEA;AAGA;AAMA;AACA;;;AACA;;;;AACA;;;;;;;;AAjBA;AACA;AAAA;AACA;AACA;;;AAEA;AACA;AAAA;AAAA;AAAA;;;AAEA;AACA;AAAA;AAAA;AAEA;;AAEA;AAAA;AAAA;AAAA;;AACA;AACA;AACA;AAAA;AACA;AAAA;;AACA;AAAA;;AAAA;AAAA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;;AAUA;AACA;AACA;AAEA;AACA;AAGA;AACA;AAIA;AACA;;;AACA;;;;AAEA;;;;;;;AA3BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AAAA;;;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;AAAA;;AAKA;AAJA;;AAAA;AACA;AACA;AACA;AAEA;AACA;;;AACA;AAAA;AAAA;AAEA;;AACA;AAAA;;AACA;AAAA;AACA;;AACA;AAIA;AAHA;;AAAA;AACA;AACA;AAEA;;AAIA;AAFA;;AAAA;AACA;AAEA;;AAAA;AAAA;;;;;;AAEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAEA;AAAA;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CA;AAAA;;AACA;AAAA;;AAEA;AADA;;AAAA;AAEA;;;AAEA;AADA;;AAAA;AAEA;;;;AAIA;AAFA;;AAAA;AACA;;;AAGA;AADA;;AAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdA;AAAA;;AACA;AAAA;AACA;;AACA;AACA;AADA;;AAAA;;AAEA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;;;;AAEA;;;;;;AAGA;AAAA;AAAA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;AACA;;;AAEA;AAAA;;AACA;AAAA;AAAA;AACA;AAAA;AAAA;;;AAGA;AAAA;;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AAAA;;AAAA;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;ACvBA;;;;AAQA;;AAIA;AACA;AACA;AAIA;;AAEA;AACA;;AAKA;;AAOA;;;;AAIA;;;AAWA;AAeA;;AAKA;AAsBA;;AA+DA;;;;;;;;;;;;;;;;;;;;;;;AA5JA;AAAA;AACA;AACA;;AACA;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;;;AAEA;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AAAA;;AACA;AAEA;AAAA;AAAA;AAEA;;AAEA;AACA;AAAA;;AACA;AACA;AACA;;;AAGA;AACA;AACA;AAAA;;AACA;;AAEA;AADA;AAEA;AAAA;AAAA;AAEA;AAAA;;;;;;;;AAKA;AAAA;AACA;;AACA;AACA;AAAA;;AACA;;AACA;AAAA;;;;;AAEA;AAAA;;AACA;;AACA;AAAA;;;;;AAEA;AAAA;;AACA;;AACA;AAAA;;;;;AAEA;;AAEA;AACA;AAAA;AACA;AACA;AACA;;AAHA;;AAIA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;;AAkBA;AACA;AAAA;AACA;;;AAnBA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;AAWA;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;ACgCA;;;AAEA;;;;;;AAlCA;AAAA;;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AACA;AAAA;;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AAAA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;;;AAGA;AADA;;AAIA;AAFA;AAAA;AACA;AAEA;AACA;;;;;;AAEA;AAAA;AACA;;AAEA;AACA;AACA;;;AAHA;;AAKA;AAAA;AACA;;AACA;;AAGA;AADA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;;AAGA;AAFA;;AAAA;AACA;AAEA;AACA;AACA;AACA;;;;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AAAA;;AACA;AACA;;;;AAEA;;AACA;AACA;AAAA;AAAA;;;;;;;;;;AASA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAEA;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;;AAEA;;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7EA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AACA;;AAGA;AAFA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;;AACA;AACA;;AAKA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;;AAEA;AACA;AAAA;;;;AAEA;;AAIA;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AACA;AACA;AACA;;AAGA;AADA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAMA;AALA;;AACA;AAAA;AACA;AACA;AACA;;AAGA;AAAA;;AAEA;AADA;AAEA;AACA;;AAEA;AACA;AAIA;AAHA;;AAEA;;AAGA;AACA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;AAYA;AAEA;AAFA;;AACA;;AAIA;;AAEA;AADA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;;;AAMA;AAAA;AACA;AACA;AACA;AACA;AAAA;;AAAA;AAAA;AAAA;;;;AASA;AAAA;AAAA;AAAA;;AAKA;;AA2CA;AAAA;AAEA;AACA;AACA;;AAEA;AAAA;AAUA;AATA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;;AACA;AAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;AAIA;;;AAEA;AAAA;;;;;AAKA;;AAAA;AACA;AAAA;;;;;;;;;;;;AA3FA;;AAAA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAGA;;AAAA;AACA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;;;;;;;AAGA;;;;;AAEA;;AAAA;AACA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;AAuEA;AAFA;AACA;AAEA;AACA;;;;;AAGA;AAAA;AACA;AACA;;AAEA;AACA;;;;;;AArJA;;;;;;AANA;;AAAA;AACA;AAAA;;;;;;;AA+JA;AAAA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjOA;AALA;;AAAA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AACA;AACA;;AAMA;AALA;;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAMA;AALA;;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAMA;AALA;;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;AAIA;AAHA;;AAAA;AACA;AACA;AAEA;;AAAA;AAAA;;;;;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCA;AADA;;AAAA;;AAEA;AACA;AAAA;AACA;AAAA;;AACA;AAAA;AAAA;AACA;;AAgBA;AAAA;;;;AAdA;;AADA;AAEA;AAAA;AAAA;;AACA;;;;;AAIA;;AADA;AAEA;AAAA;AAAA;;AAEA;AADA;;AAAA;;;AAGA;AADA;;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAKA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;;AAuCA;AACA;AAAA;;AAAA;AAAA;;;;AACA;AAAA;AAAA;;AAAA;AAAA;;;;;AAxCA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;AAIA;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAEA;AAAA;;AACA;AAAA;AAAA;AACA;AAAA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzDA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;AAIA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;AACA;AAAA;AAAA;;AACA;AAAA;AACA;AACA;AAAA;;;AAEA;AAAA;AACA;;AACA;AAAA;;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;AACA;AACA;AACA;;AACA;;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;;;;AAIA;;AAQA;;;;;;;AA1CA;AAAA;AAAA;;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;AACA;AACA;;AAEA;AAAA;AAAA;;AAAA;;;;;;;;;AAMA;AAAA;;AAIA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AAAA;;;AAEA;AACA;AAAA;AAAA;;;AADA;;;;;;;;;;;;;;;;;;;;;;;;ACMA;AACA;;;;;;AAjDA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AAEA;AAAA;AAAA;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;;AAEA;AAAA;;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;;;;;AAGA;AAKA;AAJA;;AACA;AACA;AACA;AAEA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACiBA;AACA;;;;;;;AA3CA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AAAA;;AAAA;;AACA;;;;AARA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACwBA;;;;;;AA5CA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;;AACA;AACA;AACA;AACA;;AACA;AAEA;AAEA;AADA;;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CA;;AAYA;AACA;AAwBA;;AAqBA;AA8BA;;;;AAcA;;AAOA;;;;AAcA;;AA4CA;AAKA;AAOA;AAIA;AACA;;;;;;;;AA3LA;AAAA;;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;;AACA;AAAA;AACA;;;;;;;;AAGA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAMA;AAAA;AADA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;;;AAKA;AAAA;AADA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;;;;;;AAEA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAMA;AAAA;AADA;AAEA;AACA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;AAAA;;;;;;AAMA;AAAA;AADA;AAEA;AACA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;AAAA;;;;;;AAMA;AADA;AAEA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;AAGA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;;AAGA;;AAAA;AACA;AAAA;;;;AAGA;;AAAA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAMA;;AAAA;AACA;AAAA;;;;AAGA;;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1LA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAGA;AAHA;;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;;;;;;;;AAMA;AAHA;;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;;;;;;;;;AAKA;AAFA;;AAAA;AACA;AAEA;AACA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AAGA;AAFA;;AAAA;AACA;AAEA;AACA;;AAAA;AAAA;;;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AAMA;AACA;AAAA;AAAA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AAIA;AAHA;;AAAA;AACA;AACA;;AAGA;;;;AAZA;;AADA;AACA;AAAA;AAAA;AAAA;;;;;AAGA;;AADA;AAEA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;AAAA;;AACA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AADA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AAAA;AACA;;AAEA;AADA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AAAA;;AAGA;AAFA;;AACA;;AAEA;AAAA;AACA;AACA;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;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;;;;;;;;;;;;AA3FA;;AAAA;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCA;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;;;;;;;;;;;;;;;;;;;;;;;ACDA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACgDA;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;AACA;AAEA;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;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAEA;AACA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtGA;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;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;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;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;;;;;;;;;;;;;;;;;;;;;;ACjMA;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;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;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;;;;;;;;;;;;;ACrCA;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;;;;;;;;;;;;;;;;;;;;ACvFA;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;AAAA;AACA;AACA;;;;;;;;;;;;;;;;;ACFA;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;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;;;;;;;;;;;;;AC9bA;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;;;;;A","sourceRoot":""}
1
+ {"version":3,"file":"avue.js","sources":["webpack://AVUE/webpack/universalModuleDefinition","webpack://AVUE/webpack/bootstrap","webpack://AVUE/./packages/core/components/dialog-form/index.vue","webpack://AVUE/./packages/core/components/form/index.vue","webpack://AVUE/./packages/core/components/icon/index.vue","webpack://AVUE/./packages/core/components/image-preview/index.vue","webpack://AVUE/./packages/data/box/index.vue","webpack://AVUE/./packages/data/card/index.vue","webpack://AVUE/./packages/data/cardText/index.vue","webpack://AVUE/./packages/data/countdown/index.vue","webpack://AVUE/./packages/data/dashboard/index.vue","webpack://AVUE/./packages/data/display/index.vue","webpack://AVUE/./packages/data/icons/index.vue","webpack://AVUE/./packages/data/imgText/index.vue","webpack://AVUE/./packages/data/list/index.vue","webpack://AVUE/./packages/data/notice/index.vue","webpack://AVUE/./packages/data/operaText/index.vue","webpack://AVUE/./packages/data/panel/index.vue","webpack://AVUE/./packages/data/pay/index.vue","webpack://AVUE/./packages/data/price/index.vue","webpack://AVUE/./packages/data/product/index.vue","webpack://AVUE/./packages/data/profile/index.vue","webpack://AVUE/./packages/data/progress/index.vue","webpack://AVUE/./packages/data/rank/index.vue","webpack://AVUE/./packages/data/rotate/index.vue","webpack://AVUE/./packages/data/statistic/index.vue","webpack://AVUE/./packages/data/tabs/index.vue","webpack://AVUE/./packages/data/task/index.vue","webpack://AVUE/./packages/data/weather/index.vue","webpack://AVUE/./packages/element-plus/array/index.vue","webpack://AVUE/./packages/element-plus/article/index.vue","webpack://AVUE/./packages/element-plus/card/index.vue","webpack://AVUE/./packages/element-plus/cascader/index.vue","webpack://AVUE/./packages/element-plus/chat/index.vue","webpack://AVUE/./packages/element-plus/checkbox/index.vue","webpack://AVUE/./packages/element-plus/comment/index.vue","webpack://AVUE/./packages/element-plus/count-up/index.vue","webpack://AVUE/./packages/element-plus/date/index.vue","webpack://AVUE/./packages/element-plus/draggable/index.vue","webpack://AVUE/./packages/element-plus/dynamic/index.vue","webpack://AVUE/./packages/element-plus/flow/index.vue","webpack://AVUE/./packages/element-plus/flow/node.vue","webpack://AVUE/./packages/element-plus/form/index.vue","webpack://AVUE/./packages/element-plus/form/menu.vue","webpack://AVUE/./packages/element-plus/group/index.vue","webpack://AVUE/./packages/element-plus/input-color/index.vue","webpack://AVUE/./packages/element-plus/input-cron/index.vue","webpack://AVUE/./packages/element-plus/input-icon/index.vue","webpack://AVUE/./packages/element-plus/input-json/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/transfer/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+comp_d4e8293dafd9a4154e2d6232edbf2850/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?7abc","webpack://AVUE/./packages/core/components/dialog-form/index.vue?fbfd","webpack://AVUE/./packages/core/components/dialog-form/index.vue?d465","webpack://AVUE/./packages/core/components/form/custom.js","webpack://AVUE/./packages/core/components/form/index.vue?3f4e","webpack://AVUE/./packages/core/components/form/index.vue?6627","webpack://AVUE/./packages/core/components/form/index.vue?497b","webpack://AVUE/./packages/core/components/icon/index.vue?327c","webpack://AVUE/./packages/core/components/icon/index.vue?8803","webpack://AVUE/./packages/core/components/icon/index.vue?ed15","webpack://AVUE/./packages/core/components/image-preview/index.js","webpack://AVUE/./packages/core/components/image-preview/index.vue?3a5e","webpack://AVUE/./packages/core/components/image-preview/index.vue?5974","webpack://AVUE/./packages/core/components/image-preview/index.vue?ff63","webpack://AVUE/./packages/core/directive/contextmenu.js","webpack://AVUE/./packages/core/directive/permission.js","webpack://AVUE/./packages/data/box/index.vue?182d","webpack://AVUE/./packages/data/box/index.vue?e69f","webpack://AVUE/./packages/data/box/index.vue?4442","webpack://AVUE/./packages/data/card/index.vue?35ee","webpack://AVUE/./packages/data/card/index.vue?6c0a","webpack://AVUE/./packages/data/card/index.vue?a371","webpack://AVUE/./packages/data/cardText/index.vue?fe55","webpack://AVUE/./packages/data/cardText/index.vue?e0fe","webpack://AVUE/./packages/data/cardText/index.vue?bbe4","webpack://AVUE/./packages/data/countdown/index.vue?dbcf","webpack://AVUE/./packages/data/countdown/index.vue?b01c","webpack://AVUE/./packages/data/countdown/index.vue?744d","webpack://AVUE/./packages/data/dashboard/index.vue?824e","webpack://AVUE/./packages/data/dashboard/index.vue?c654","webpack://AVUE/./packages/data/dashboard/index.vue?187b","webpack://AVUE/./packages/data/display/index.vue?6978","webpack://AVUE/./packages/data/display/index.vue?2c8e","webpack://AVUE/./packages/data/display/index.vue?bfa1","webpack://AVUE/./packages/data/icons/index.vue?1839","webpack://AVUE/./packages/data/icons/index.vue?22b1","webpack://AVUE/./packages/data/icons/index.vue?0cd4","webpack://AVUE/./packages/data/imgText/index.vue?ecbb","webpack://AVUE/./packages/data/imgText/index.vue?ee44","webpack://AVUE/./packages/data/imgText/index.vue?01dd","webpack://AVUE/./packages/data/list/index.vue?f8cb","webpack://AVUE/./packages/data/list/index.vue?e4bf","webpack://AVUE/./packages/data/list/index.vue?a608","webpack://AVUE/./packages/data/notice/index.vue?ef36","webpack://AVUE/./packages/data/notice/index.vue?7b9d","webpack://AVUE/./packages/data/notice/index.vue?aafb","webpack://AVUE/./packages/data/operaText/index.vue?3d40","webpack://AVUE/./packages/data/operaText/index.vue?e15b","webpack://AVUE/./packages/data/operaText/index.vue?cd38","webpack://AVUE/./packages/data/panel/index.vue?9f0c","webpack://AVUE/./packages/data/panel/index.vue?ee31","webpack://AVUE/./packages/data/panel/index.vue?a25e","webpack://AVUE/./packages/data/pay/index.vue?a5b7","webpack://AVUE/./packages/data/pay/index.vue?92ed","webpack://AVUE/./packages/data/pay/index.vue?c6ae","webpack://AVUE/./packages/data/price/index.vue?28b3","webpack://AVUE/./packages/data/price/index.vue?20e0","webpack://AVUE/./packages/data/price/index.vue?24e6","webpack://AVUE/./packages/data/product/index.vue?ca8d","webpack://AVUE/./packages/data/product/index.vue?f726","webpack://AVUE/./packages/data/product/index.vue?907f","webpack://AVUE/./packages/data/profile/index.vue?d520","webpack://AVUE/./packages/data/profile/index.vue?64dc","webpack://AVUE/./packages/data/profile/index.vue?a558","webpack://AVUE/./packages/data/progress/index.vue?6400","webpack://AVUE/./packages/data/progress/index.vue?465c","webpack://AVUE/./packages/data/progress/index.vue?a184","webpack://AVUE/./packages/data/rank/index.vue?e01a","webpack://AVUE/./packages/data/rank/index.vue?3521","webpack://AVUE/./packages/data/rank/index.vue?0c40","webpack://AVUE/./packages/data/rotate/index.vue?f054","webpack://AVUE/./packages/data/rotate/index.vue?4fcf","webpack://AVUE/./packages/data/rotate/index.vue?aaf8","webpack://AVUE/./packages/data/statistic/index.vue?e8e6","webpack://AVUE/./packages/data/statistic/index.vue?3d99","webpack://AVUE/./packages/data/statistic/index.vue?678c","webpack://AVUE/./packages/data/tabs/index.vue?0f88","webpack://AVUE/./packages/data/tabs/index.vue?70a0","webpack://AVUE/./packages/data/tabs/index.vue?4401","webpack://AVUE/./packages/data/task/index.vue?4809","webpack://AVUE/./packages/data/task/index.vue?d617","webpack://AVUE/./packages/data/task/index.vue?b29d","webpack://AVUE/./packages/data/weather/index.vue?a4cb","webpack://AVUE/./packages/data/weather/index.vue?d6d9","webpack://AVUE/./packages/data/weather/index.vue?255d","webpack://AVUE/./packages/element-plus/array/index.vue?1b14","webpack://AVUE/./packages/element-plus/array/index.vue?f9ff","webpack://AVUE/./packages/element-plus/array/index.vue?a10e","webpack://AVUE/./packages/element-plus/article/index.vue?f342","webpack://AVUE/./packages/element-plus/article/index.vue?06df","webpack://AVUE/./packages/element-plus/article/index.vue?6db1","webpack://AVUE/./packages/element-plus/card/index.vue?a510","webpack://AVUE/./packages/element-plus/card/index.vue?395f","webpack://AVUE/./packages/element-plus/card/index.vue?c8c8","webpack://AVUE/./packages/element-plus/cascader/index.vue?1bb8","webpack://AVUE/./packages/element-plus/cascader/index.vue?f812","webpack://AVUE/./packages/element-plus/cascader/index.vue?d4ba","webpack://AVUE/./packages/element-plus/chat/index.vue?2e02","webpack://AVUE/./packages/element-plus/chat/index.vue?839d","webpack://AVUE/./packages/element-plus/chat/index.vue?7d73","webpack://AVUE/./packages/element-plus/checkbox/index.vue?97b4","webpack://AVUE/./packages/element-plus/checkbox/index.vue?8081","webpack://AVUE/./packages/element-plus/checkbox/index.vue?20d9","webpack://AVUE/./packages/element-plus/comment/index.vue?d7c3","webpack://AVUE/./packages/element-plus/comment/index.vue?5830","webpack://AVUE/./packages/element-plus/comment/index.vue?9223","webpack://AVUE/./packages/element-plus/count-up/index.vue?942d","webpack://AVUE/./packages/element-plus/count-up/index.vue?ca06","webpack://AVUE/./packages/element-plus/count-up/index.vue?4bfa","webpack://AVUE/./packages/element-plus/date/index.vue?5abe","webpack://AVUE/./packages/element-plus/date/index.vue?482d","webpack://AVUE/./packages/element-plus/date/index.vue?6fc3","webpack://AVUE/./packages/element-plus/draggable/index.vue?7786","webpack://AVUE/./packages/element-plus/draggable/index.vue?cc1b","webpack://AVUE/./packages/element-plus/draggable/index.vue?3551","webpack://AVUE/./packages/element-plus/dynamic/index.vue?13dd","webpack://AVUE/./packages/element-plus/dynamic/index.vue?c6a8","webpack://AVUE/./packages/element-plus/dynamic/index.vue?213b","webpack://AVUE/./packages/element-plus/flow/index.vue?24cc","webpack://AVUE/./packages/element-plus/flow/index.vue?b4e7","webpack://AVUE/./packages/element-plus/flow/index.vue?66d2","webpack://AVUE/./packages/element-plus/flow/node.vue?958d","webpack://AVUE/./packages/element-plus/flow/node.vue?0af5","webpack://AVUE/./packages/element-plus/flow/node.vue?26a4","webpack://AVUE/./packages/element-plus/form/config.js","webpack://AVUE/./packages/element-plus/form/index.vue?2615","webpack://AVUE/./packages/element-plus/form/index.vue?08ee","webpack://AVUE/./packages/element-plus/form/index.vue?e2dc","webpack://AVUE/./packages/element-plus/form/menu.vue?8333","webpack://AVUE/./packages/element-plus/form/menu.vue?0e60","webpack://AVUE/./packages/element-plus/form/menu.vue?8dce","webpack://AVUE/./packages/element-plus/group/index.vue?dd25","webpack://AVUE/./packages/element-plus/group/index.vue?4bcc","webpack://AVUE/./packages/element-plus/group/index.vue?c75b","webpack://AVUE/./packages/element-plus/input-color/index.vue?02a5","webpack://AVUE/./packages/element-plus/input-color/index.vue?043c","webpack://AVUE/./packages/element-plus/input-color/index.vue?c255","webpack://AVUE/./packages/element-plus/input-cron/index.vue?9fd4","webpack://AVUE/./packages/element-plus/input-cron/index.vue?60a3","webpack://AVUE/./packages/element-plus/input-cron/index.vue?ff54","webpack://AVUE/./packages/element-plus/input-icon/index.vue?9557","webpack://AVUE/./packages/element-plus/input-icon/index.vue?9d95","webpack://AVUE/./packages/element-plus/input-icon/index.vue?e3be","webpack://AVUE/./packages/element-plus/input-json/index.vue?4564","webpack://AVUE/./packages/element-plus/input-json/index.vue?5708","webpack://AVUE/./packages/element-plus/input-json/index.vue?516d","webpack://AVUE/./packages/element-plus/input-map/index.vue?d287","webpack://AVUE/./packages/element-plus/input-map/index.vue?e2da","webpack://AVUE/./packages/element-plus/input-map/index.vue?9e32","webpack://AVUE/./packages/element-plus/input-number/index.vue?6ba1","webpack://AVUE/./packages/element-plus/input-number/index.vue?685c","webpack://AVUE/./packages/element-plus/input-number/index.vue?bfe0","webpack://AVUE/./packages/element-plus/input-table/index.vue?9bf5","webpack://AVUE/./packages/element-plus/input-table/index.vue?5092","webpack://AVUE/./packages/element-plus/input-table/index.vue?a4bf","webpack://AVUE/./packages/element-plus/input-tag/index.vue?2768","webpack://AVUE/./packages/element-plus/input-tag/index.vue?4bfc","webpack://AVUE/./packages/element-plus/input-tag/index.vue?4153","webpack://AVUE/./packages/element-plus/input-tree/index.vue?76d6","webpack://AVUE/./packages/element-plus/input-tree/index.vue?f4a5","webpack://AVUE/./packages/element-plus/input-tree/index.vue?7fe3","webpack://AVUE/./packages/element-plus/input/index.vue?88af","webpack://AVUE/./packages/element-plus/input/index.vue?a85b","webpack://AVUE/./packages/element-plus/input/index.vue?bb22","webpack://AVUE/./packages/element-plus/license/index.vue?38e7","webpack://AVUE/./packages/element-plus/license/index.vue?d5f1","webpack://AVUE/./packages/element-plus/license/index.vue?c74e","webpack://AVUE/./packages/element-plus/login/index.vue?ae2e","webpack://AVUE/./packages/element-plus/login/index.vue?21e4","webpack://AVUE/./packages/element-plus/login/index.vue?cb76","webpack://AVUE/./packages/element-plus/mention/index.vue?d658","webpack://AVUE/./packages/element-plus/mention/index.vue?709e","webpack://AVUE/./packages/element-plus/mention/index.vue?b892","webpack://AVUE/./packages/element-plus/radio/index.vue?089f","webpack://AVUE/./packages/element-plus/radio/index.vue?765b","webpack://AVUE/./packages/element-plus/radio/index.vue?7c1f","webpack://AVUE/./packages/element-plus/rate/index.vue?f349","webpack://AVUE/./packages/element-plus/rate/index.vue?9448","webpack://AVUE/./packages/element-plus/rate/index.vue?3515","webpack://AVUE/./packages/element-plus/search/index.vue?0dcf","webpack://AVUE/./packages/element-plus/search/index.vue?4944","webpack://AVUE/./packages/element-plus/search/index.vue?afd2","webpack://AVUE/./packages/element-plus/select/index.vue?13ae","webpack://AVUE/./packages/element-plus/select/index.vue?aaed","webpack://AVUE/./packages/element-plus/select/index.vue?63a0","webpack://AVUE/./packages/element-plus/sign/index.vue?91e1","webpack://AVUE/./packages/element-plus/sign/index.vue?a4c1","webpack://AVUE/./packages/element-plus/sign/index.vue?205d","webpack://AVUE/./packages/element-plus/slider/index.vue?2dde","webpack://AVUE/./packages/element-plus/slider/index.vue?c1f5","webpack://AVUE/./packages/element-plus/slider/index.vue?52d0","webpack://AVUE/./packages/element-plus/switch/index.vue?f898","webpack://AVUE/./packages/element-plus/switch/index.vue?468d","webpack://AVUE/./packages/element-plus/switch/index.vue?cde4","webpack://AVUE/./packages/element-plus/tabs/index.vue?fa1d","webpack://AVUE/./packages/element-plus/tabs/index.vue?e4c3","webpack://AVUE/./packages/element-plus/tabs/index.vue?905d","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?76fc","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?2a73","webpack://AVUE/./packages/element-plus/text-ellipsis/index.vue?18c8","webpack://AVUE/./packages/element-plus/time/index.vue?d936","webpack://AVUE/./packages/element-plus/time/index.vue?2075","webpack://AVUE/./packages/element-plus/time/index.vue?cc2b","webpack://AVUE/./packages/element-plus/title/index.vue?5fc3","webpack://AVUE/./packages/element-plus/title/index.vue?0b3c","webpack://AVUE/./packages/element-plus/title/index.vue?a752","webpack://AVUE/./packages/element-plus/transfer/index.vue?8c1d","webpack://AVUE/./packages/element-plus/transfer/index.vue?a569","webpack://AVUE/./packages/element-plus/transfer/index.vue?8c9f","webpack://AVUE/./packages/element-plus/tree/index.vue?155e","webpack://AVUE/./packages/element-plus/tree/index.vue?cc2a","webpack://AVUE/./packages/element-plus/tree/index.vue?a0bb","webpack://AVUE/./packages/element-plus/upload/index.vue?2078","webpack://AVUE/./packages/element-plus/upload/index.vue?2a3c","webpack://AVUE/./packages/element-plus/upload/index.vue?8f42","webpack://AVUE/./packages/element-plus/verify/index.vue?6973","webpack://AVUE/./packages/element-plus/verify/index.vue?91ab","webpack://AVUE/./packages/element-plus/verify/index.vue?b3d3","webpack://AVUE/./packages/element-plus/video/index.vue?302c","webpack://AVUE/./packages/element-plus/video/index.vue?eb66","webpack://AVUE/./packages/element-plus/video/index.vue?d8b4","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/identity.ts","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=\"data-countdown\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-countdown__item\" :style=\"getItemStyle(item)\">\r\n <div class=\"data-countdown__title\" v-if=\"item.title\">{{ item.title }}</div>\r\n <div class=\"data-countdown__timer\">\r\n <div class=\"data-countdown__block\" v-if=\"showDays\">\r\n <span class=\"data-countdown__number\">{{ formatNumber(item.days || 0) }}</span>\r\n <span class=\"data-countdown__label\">天</span>\r\n </div>\r\n <span class=\"data-countdown__separator\" v-if=\"showDays\">:</span>\r\n <div class=\"data-countdown__block\">\r\n <span class=\"data-countdown__number\">{{ formatNumber(item.hours || 0) }}</span>\r\n <span class=\"data-countdown__label\">时</span>\r\n </div>\r\n <span class=\"data-countdown__separator\">:</span>\r\n <div class=\"data-countdown__block\">\r\n <span class=\"data-countdown__number\">{{ formatNumber(item.minutes || 0) }}</span>\r\n <span class=\"data-countdown__label\">分</span>\r\n </div>\r\n <span class=\"data-countdown__separator\">:</span>\r\n <div class=\"data-countdown__block\">\r\n <span class=\"data-countdown__number\">{{ formatNumber(item.seconds || 0) }}</span>\r\n <span class=\"data-countdown__label\">秒</span>\r\n </div>\r\n </div>\r\n <div class=\"data-countdown__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-countdown\",\r\n data() {\r\n return {\r\n timers: []\r\n };\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n showDays() {\r\n return this.option.showDays !== false;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n background: item.background || 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)'\r\n };\r\n },\r\n formatNumber(num) {\r\n return num < 10 ? '0' + num : num;\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-dashboard\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-dashboard__item\" :style=\"getItemStyle(item)\">\r\n <div class=\"data-dashboard__header\">\r\n <span class=\"data-dashboard__title\">{{ item.title }}</span>\r\n <el-tag v-if=\"item.status\" size=\"small\" :type=\"item.statusType || ''\">{{ item.status }}</el-tag>\r\n </div>\r\n <div class=\"data-dashboard__value\">\r\n <avue-count-up :animation=\"animation\"\r\n :decimals=\"item.decimals || 0\"\r\n :end=\"item.value\"></avue-count-up>\r\n <span class=\"data-dashboard__unit\" v-if=\"item.unit\">{{ item.unit }}</span>\r\n </div>\r\n <div class=\"data-dashboard__chart\" v-if=\"item.chartData\">\r\n <div class=\"data-dashboard__bar\"\r\n v-for=\"(bar, idx) in item.chartData\"\r\n :key=\"idx\"\r\n :style=\"{height: bar + '%', backgroundColor: item.chartColor || '#409eff'}\">\r\n </div>\r\n </div>\r\n <div class=\"data-dashboard__footer\" v-if=\"item.footerText\">\r\n <span>{{ item.footerText }}</span>\r\n <span v-if=\"item.footerValue\" :style=\"{color: item.footerColor}\">{{ item.footerValue }}</span>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-dashboard\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n animation() {\r\n return this.option.animation !== false;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n backgroundColor: item.backgroundColor || '#fff'\r\n };\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-display\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"12\"\r\n :sm=\"12\">\r\n <div class=\"item\"\r\n :style=\"{color:color}\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n class=\"count\"\r\n :style=\"{color:item.color}\"\r\n :end=\"item.count\"></avue-count-up>\r\n <span class=\"splitLine\" />\r\n <div class=\"title\"\r\n :style=\"{color:item.fontColor}\">{{item.title}}</div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-display\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n },\r\n color () {\r\n return this.option.color || \"rgb(63, 161, 255)\";\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-icons\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :xs=\"12\"\r\n :sm=\"6\"\r\n :md=\"span\"\r\n :key=\"index\">\r\n <div class=\"item\"\r\n :class=\"[{'item--easy':discount}]\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-icon\">\r\n <el-icon :color=\"item.color\">\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\r\n <div class=\"item-info\">\r\n <span>{{item.title}}</span>\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n :style=\"{color:color}\"\r\n class=\"count\"\r\n :end=\"item.count\"></avue-count-up>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-icons\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 4;\r\n },\r\n data () {\r\n return this.option.data;\r\n },\r\n color () {\r\n return this.option.color || \"rgb(63, 161, 255)\";\r\n },\r\n discount () {\r\n return this.option.discount || false;\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-imgtext\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\">\r\n <div class=\"item\"\r\n :style=\"{color:color}\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n <img :src=\"item.imgsrc\"\r\n alt=\"\">\r\n </div>\r\n <div class=\"item-content\">\r\n <span>{{item.title}}</span>\r\n <p>{{item.content}}</p>\r\n </div>\r\n <div class=\"item-footer\">\r\n <div class=\"time\"><span>{{item.time}}</span></div>\r\n <div class=\"imgs\">\r\n <ul>\r\n <li v-for=\"(imgs,index) in item.headimg\"\r\n :key=\"index\">\r\n <el-tooltip effect=\"dark\"\r\n :content=\"imgs.name\"\r\n placement=\"top-start\">\r\n <img :src='imgs.src'\r\n alt=\"\">\r\n </el-tooltip>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-imgtext\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n },\r\n color () {\r\n return this.option.color || \"rgb(63, 161, 255)\";\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"data-list\">\r\n <div class=\"data-list__header\" v-if=\"title\">\r\n <span class=\"data-list__title\">{{ title }}</span>\r\n <span class=\"data-list__extra\" v-if=\"$slots.extra\"><slot name=\"extra\"></slot></span>\r\n </div>\r\n <div class=\"data-list__content\">\r\n <div class=\"data-list__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n @click=\"handleClick(item)\">\r\n <div class=\"data-list__avatar\" v-if=\"item.avatar || item.icon\">\r\n <img v-if=\"item.avatar\" :src=\"item.avatar\" :alt=\"item.title\" />\r\n <i v-else-if=\"item.icon\" :class=\"item.icon\" :style=\"{color: item.iconColor}\"></i>\r\n </div>\r\n <div class=\"data-list__body\">\r\n <div class=\"data-list__title-row\">\r\n <span class=\"data-list__name\">{{ item.title }}</span>\r\n <el-tag v-if=\"item.tag\" size=\"small\" :type=\"item.tagType || ''\">{{ item.tag }}</el-tag>\r\n </div>\r\n <div class=\"data-list__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n </div>\r\n <div class=\"data-list__extra\" v-if=\"item.extra\">\r\n <span class=\"data-list__value\" :style=\"{color: item.valueColor}\">{{ item.extra }}</span>\r\n <span class=\"data-list__label\" v-if=\"item.label\">{{ item.label }}</span>\r\n </div>\r\n <div class=\"data-list__action\" v-if=\"item.actions && item.actions.length\">\r\n <el-button v-for=\"(action, idx) in item.actions\"\r\n :key=\"idx\"\r\n :type=\"action.type || 'text'\"\r\n size=\"small\"\r\n @click.stop=\"action.click && action.click(item)\">\r\n {{ action.text }}\r\n </el-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-list\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n handleClick(item) {\r\n this.$emit('click', item);\r\n item.click && item.click(item);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-notice\">\r\n <div class=\"data-notice__header\" v-if=\"title\">\r\n <span class=\"data-notice__title\">{{ title }}</span>\r\n <span class=\"data-notice__more\" v-if=\"showMore\" @click=\"handleMore\">{{ moreText }}</span>\r\n </div>\r\n <div class=\"data-notice__list\">\r\n <div class=\"data-notice__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n @click=\"handleClick(item)\">\r\n <div class=\"data-notice__tag\" v-if=\"item.tag\" :style=\"{backgroundColor: item.tagColor || '#409eff'}\">\r\n {{ item.tag }}\r\n </div>\r\n <div class=\"data-notice__content\">\r\n <div class=\"data-notice__text\">{{ item.title }}</div>\r\n <div class=\"data-notice__date\" v-if=\"item.date\">{{ item.date }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-notice\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n showMore() {\r\n return this.option.showMore !== false;\r\n },\r\n moreText() {\r\n return this.option.moreText || '更多';\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n handleClick(item) {\r\n this.$emit('click', item);\r\n item.click && item.click(item);\r\n },\r\n handleMore() {\r\n this.$emit('more');\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-operatext\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\">\r\n <div class=\"item\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\">\r\n <div class=\"item-header\"\r\n :style=\"{backgroundColor:item.color,backgroundImage:`url(${item.colorImg})`}\">\r\n <span class=\"item-title\">{{item.title}}</span>\r\n <span class=\"item-subtitle\">{{item.subtitle}}</span>\r\n </div>\r\n <div class=\"item-content\">\r\n <div class=\"item-img\">\r\n <img :src=\"item.img\"\r\n alt=\"\">\r\n </div>\r\n <div class=\"item-list\">\r\n <div class=\"item-row\"\r\n v-for=\"(citem,cindex) in item.list\"\r\n :key=\"cindex\">\r\n <span class=\"item-label\">{{citem.label}}</span>\r\n <span class=\"item-value\">{{citem.value}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-operatext\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"avue-data-panel\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :key=\"index\"\r\n :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\">\r\n <div class=\"item\">\r\n <div class=\"item-icon\">\r\n <el-icon :color=\"item.color\">\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\r\n <div class=\"item-info\">\r\n <div class=\"item-title\">{{item.title}}</div>\r\n <avue-count-up :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n class=\"item-count\"\r\n :end=\"item.count\"></avue-count-up>\r\n </div>\r\n\r\n </div>\r\n </a>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-panel\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n animation () {\r\n return this.option.animation\r\n },\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n created () { },\r\n methods: {}\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\">\r\n <div class=\"top\"\r\n :style=\"{backgroundColor:item.color}\"></div>\r\n <div class=\"header\">\r\n <p class=\"title\">{{item.title}}</p>\r\n <img :src=\"item.src\"\r\n alt=\"\"\r\n class=\"img\">\r\n <template v-if=\"item.subtitle\">\r\n <p class=\"subtitle\"\r\n :style=\"{color:item.color}\">{{item.subtitle}}</p>\r\n </template>\r\n <template v-if=\"item.money || item.dismoney\">\r\n <p class=\"money\"\r\n :style=\"{color:item.color}\">\r\n <span>¥</span>\r\n <avue-count-up class=\"b\"\r\n :decimals=\"item.decimals || decimals\"\r\n :animation=\"item.animation || animation\"\r\n :end=\"item.dismoney\"></avue-count-up>\r\n <s>{{item.money}}</s>\r\n <em>{{item.tip}}</em>\r\n </p>\r\n </template>\r\n <div class=\"line\"></div>\r\n <a class=\"btn\"\r\n :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :style=\"{backgroundColor:item.color}\">{{item.subtext}}</a>\r\n </div>\r\n <div class=\"list\">\r\n <div class=\"list-item\"\r\n :key=\"cindex\"\r\n v-for=\"(citem,cindex) in item.list\">\r\n <i class=\"list-item-icon list-item--check\"\r\n :style=\"{color:item.color}\"\r\n v-if=\"citem.check\">√</i>\r\n <i class=\"list-item-icon list-item--no\"\r\n v-else>x</i>\r\n <a :href=\"citem.href?citem.href:'javascript:void(0);'\">\r\n <el-tooltip effect=\"dark\"\r\n :disabled=\"!citem.tip\"\r\n placement=\"top\">\r\n <template #content>\r\n <div v-html=\"citem.tip\"></div>\r\n </template>\r\n <span :class=\"{'list-item--link':citem.href}\">{{citem.title}}</span>\r\n </el-tooltip>\r\n\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-pay\",\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-price\">\r\n <el-row :span=\"24\">\r\n <el-col v-for=\"(item,index) in data\"\r\n :xs=\"12\"\r\n :sm=\"6\"\r\n :md=\"span\"\r\n :key=\"index\">\r\n <div class=\"item item--active\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"title\">\r\n {{item.title}}\r\n </div>\r\n <div class=\"body\">\r\n <span class=\"price\">{{item.price}}</span>\r\n <span class=\"append\">{{item.append}}</span>\r\n </div>\r\n <div class=\"list\">\r\n <p v-for=\"(citem,cindex) in item.list\"\r\n :key=\"cindex\">\r\n {{citem}}\r\n </p>\r\n </div>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-price\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n span () {\r\n return this.option.span || 6;\r\n },\r\n data () {\r\n return this.option.data;\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-product\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-product__item\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-product__img\">\r\n <img :src=\"item.img\" :alt=\"item.name\" />\r\n <div class=\"data-product__tag\" v-if=\"item.tag\" :style=\"{backgroundColor: item.tagColor || '#f56c6c'}\">\r\n {{ item.tag }}\r\n </div>\r\n </div>\r\n <div class=\"data-product__content\">\r\n <div class=\"data-product__name\">{{ item.name }}</div>\r\n <div class=\"data-product__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n <div class=\"data-product__rating\" v-if=\"item.rating !== undefined\">\r\n <el-rate v-model=\"item.rating\" disabled :colors=\"ratingColors\" />\r\n <span class=\"data-product__rating-value\">{{ item.rating }}</span>\r\n <span class=\"data-product__rating-count\" v-if=\"item.ratingCount\">({{ item.ratingCount }})</span>\r\n </div>\r\n <div class=\"data-product__price\">\r\n <span class=\"data-product__price-current\">\r\n <span class=\"data-product__price-symbol\">{{ priceSymbol }}</span>\r\n {{ item.price }}\r\n </span>\r\n <span class=\"data-product__price-original\" v-if=\"item.originalPrice\">\r\n {{ priceSymbol }}{{ item.originalPrice }}\r\n </span>\r\n <span class=\"data-product__discount\" v-if=\"item.discount\">{{ item.discount }}</span>\r\n </div>\r\n <div class=\"data-product__info\" v-if=\"item.sales || item.stock\">\r\n <span v-if=\"item.sales\">已售 {{ item.sales }}</span>\r\n <span v-if=\"item.stock\">库存 {{ item.stock }}</span>\r\n </div>\r\n <div class=\"data-product__actions\" v-if=\"showActions\">\r\n <el-button type=\"primary\" size=\"small\" @click.stop=\"handleBuy(item)\">\r\n {{ buyText }}\r\n </el-button>\r\n <el-button size=\"small\" @click.stop=\"handleCart(item)\" v-if=\"showCart\">\r\n 加入购物车\r\n </el-button>\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-product\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n },\r\n priceSymbol() {\r\n return this.option.priceSymbol || '¥';\r\n },\r\n showActions() {\r\n return this.option.showActions !== false;\r\n },\r\n showCart() {\r\n return this.option.showCart !== false;\r\n },\r\n buyText() {\r\n return this.option.buyText || '立即购买';\r\n },\r\n ratingColors() {\r\n return this.option.ratingColors || ['#F7BA2A', '#F7BA2A', '#F7BA2A'];\r\n }\r\n },\r\n methods: {\r\n handleBuy(item) {\r\n this.$emit('buy', item);\r\n item.onBuy && item.onBuy(item);\r\n },\r\n handleCart(item) {\r\n this.$emit('cart', item);\r\n item.onCart && item.onCart(item);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-profile\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-profile__item\"\r\n :style=\"getItemStyle(item)\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-profile__cover\" v-if=\"item.cover\" :style=\"{backgroundImage: 'url(' + item.cover + ')'}\"></div>\r\n <div class=\"data-profile__avatar\">\r\n <img :src=\"item.avatar\" :alt=\"item.name\" v-if=\"item.avatar\" />\r\n <span v-else class=\"data-profile__avatar-text\">{{ getAvatarText(item.name) }}</span>\r\n </div>\r\n <div class=\"data-profile__name\">{{ item.name }}</div>\r\n <div class=\"data-profile__title\" v-if=\"item.title\">{{ item.title }}</div>\r\n <div class=\"data-profile__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n <div class=\"data-profile__tags\" v-if=\"item.tags && item.tags.length\">\r\n <el-tag v-for=\"(tag, idx) in item.tags\" :key=\"idx\" size=\"small\" :type=\"tag.type || ''\">\r\n {{ tag.text || tag }}\r\n </el-tag>\r\n </div>\r\n <div class=\"data-profile__contact\" v-if=\"item.phone || item.email\">\r\n <div class=\"data-profile__contact-item\" v-if=\"item.phone\">\r\n <span class=\"data-profile__contact-icon\">📱</span>\r\n <span>{{ item.phone }}</span>\r\n </div>\r\n <div class=\"data-profile__contact-item\" v-if=\"item.email\">\r\n <span class=\"data-profile__contact-icon\">📧</span>\r\n <span>{{ item.email }}</span>\r\n </div>\r\n </div>\r\n <div class=\"data-profile__stats\" v-if=\"item.stats && item.stats.length\">\r\n <div class=\"data-profile__stat\" v-for=\"(stat, idx) in item.stats\" :key=\"idx\">\r\n <div class=\"data-profile__stat-value\">{{ stat.value }}</div>\r\n <div class=\"data-profile__stat-label\">{{ stat.label }}</div>\r\n </div>\r\n </div>\r\n <div class=\"data-profile__actions\" v-if=\"item.actions && item.actions.length\">\r\n <el-button v-for=\"(action, idx) in item.actions\"\r\n :key=\"idx\"\r\n :type=\"action.type || 'primary'\"\r\n size=\"small\"\r\n @click.stop=\"action.click && action.click(item)\">\r\n {{ action.text }}\r\n </el-button>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-profile\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n backgroundColor: item.backgroundColor || '#fff'\r\n };\r\n },\r\n getAvatarText(name) {\r\n return name ? name.charAt(0).toUpperCase() : '?';\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-progress\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n <avue-count-up class=\"item-count\"\r\n :animation=\"item.animation || animation\"\r\n :decimals=\"item.decimals || decimals\"\r\n :end=\"item.count\"></avue-count-up>\r\n <div class=\"item-title\"\r\n v-text=\"item.title\"></div>\r\n </div>\r\n <el-progress :stroke-width=\"15\"\r\n :percentage=\"item.count\"\r\n :color=\"item.color\"\r\n :show-text=\"false\"></el-progress>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-progress\",\r\n data () {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n created () { },\r\n mounted () { },\r\n watch: {},\r\n methods: {}\r\n});\r\n</script>","<template>\r\n <div class=\"data-rank\">\r\n <div class=\"data-rank__header\" v-if=\"title\">\r\n <span class=\"data-rank__title\">{{ title }}</span>\r\n </div>\r\n <div class=\"data-rank__list\">\r\n <div class=\"data-rank__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-rank__index\" :class=\"getRankClass(index)\">\r\n <span v-if=\"index < 3\">{{ getMedal(index) }}</span>\r\n <span v-else>{{ index + 1 }}</span>\r\n </div>\r\n <div class=\"data-rank__avatar\" v-if=\"item.avatar\">\r\n <img :src=\"item.avatar\" :alt=\"item.name\" />\r\n </div>\r\n <div class=\"data-rank__info\">\r\n <div class=\"data-rank__name\">{{ item.name }}</div>\r\n <div class=\"data-rank__desc\" v-if=\"item.desc\">{{ item.desc }}</div>\r\n </div>\r\n <div class=\"data-rank__value\">\r\n <avue-count-up :animation=\"animation\"\r\n :decimals=\"item.decimals || 0\"\r\n :end=\"item.value\"></avue-count-up>\r\n <span class=\"data-rank__unit\" v-if=\"item.unit || unit\">{{ item.unit || unit }}</span>\r\n </div>\r\n <div class=\"data-rank__bar\" v-if=\"showBar\">\r\n <el-progress :percentage=\"getPercentage(item.value)\"\r\n :show-text=\"false\"\r\n :stroke-width=\"6\"\r\n :color=\"item.color || barColor\"></el-progress>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-rank\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n animation() {\r\n return this.option.animation !== false;\r\n },\r\n unit() {\r\n return this.option.unit || '';\r\n },\r\n showBar() {\r\n return this.option.showBar !== false;\r\n },\r\n barColor() {\r\n return this.option.barColor || '#409eff';\r\n },\r\n data() {\r\n return this.option.data || [];\r\n },\r\n maxValue() {\r\n if (this.data.length === 0) return 100;\r\n return Math.max(...this.data.map(item => item.value || 0));\r\n }\r\n },\r\n methods: {\r\n getRankClass(index) {\r\n if (index === 0) return 'is-first';\r\n if (index === 1) return 'is-second';\r\n if (index === 2) return 'is-third';\r\n return '';\r\n },\r\n getMedal(index) {\r\n const medals = ['🥇', '🥈', '🥉'];\r\n return medals[index] || '';\r\n },\r\n getPercentage(value) {\r\n return Math.round((value / this.maxValue) * 100);\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-rotate\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\"\r\n :style=\"{backgroundColor:item.color}\">\r\n <div class=\"item-box\">\r\n <avue-count-up class=\"item-count\"\r\n :decimals=\"item.decimals || decimals\"\r\n :animation=\"item.animation || animation\"\r\n :end=\"item.count\"></avue-count-up>\r\n <span class=\"item-title\">{{item.title}}</span>\r\n <el-icon :color=\"item.color\"\r\n class=\"item-icon\">\r\n <component :is=\"item.icon\"></component>\r\n </el-icon>\r\n </div>\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=\"data-statistic\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-statistic__item\"\r\n :style=\"getItemStyle(item)\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-statistic__icon\" v-if=\"item.icon\">\r\n <i :class=\"item.icon\" :style=\"{color: item.iconColor || '#409eff', fontSize: (item.iconSize || 40) + 'px'}\"></i>\r\n </div>\r\n <div class=\"data-statistic__content\">\r\n <div class=\"data-statistic__title\">{{ item.title }}</div>\r\n <div class=\"data-statistic__value\" :style=\"{color: item.valueColor}\">\r\n <span class=\"data-statistic__prefix\" v-if=\"item.prefix\">{{ item.prefix }}</span>\r\n <avue-count-up :animation=\"item.animation !== false\"\r\n :decimals=\"item.decimals || 0\"\r\n :end=\"item.value\"></avue-count-up>\r\n <span class=\"data-statistic__suffix\" v-if=\"item.suffix\">{{ item.suffix }}</span>\r\n </div>\r\n <div class=\"data-statistic__trend\" v-if=\"item.trend !== undefined\">\r\n <span :class=\"['data-statistic__trend-icon', item.trend >= 0 ? 'is-up' : 'is-down']\">\r\n {{ item.trend >= 0 ? '↑' : '↓' }}\r\n </span>\r\n <span class=\"data-statistic__trend-value\">{{ Math.abs(item.trend) }}%</span>\r\n <span class=\"data-statistic__trend-text\" v-if=\"item.trendText\">{{ item.trendText }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-statistic\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n return {\r\n backgroundColor: item.backgroundColor || '#fff',\r\n borderColor: item.borderColor || '#ebeef5'\r\n };\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"avue-data-tabs\">\r\n <el-row :span=\"24\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item,index) in data\"\r\n :key=\"index\">\r\n <div class=\"item\"\r\n :style=\"{background:item.color}\">\r\n <a :href=\"item.href\"\r\n @click=\"item.click&&item.click(item)\"\r\n :target=\"item.target\">\r\n <div class=\"item-header\">\r\n <p>{{item.title}}</p>\r\n <span>{{item.subtitle}}</span>\r\n </div>\r\n <div class=\"item-body\">\r\n <avue-count-up class=\"h2\"\r\n :decimals=\"item.decimals || decimals\"\r\n :animation=\"item.animation || animation\"\r\n :end=\"item.count\"></avue-count-up>\r\n </div>\r\n <div class=\"item-footer\">\r\n <span>{{item.allcount}}</span>\r\n <p>{{item.text}}</p>\r\n </div>\r\n <p class=\"item-tip\">{{item.key}}</p>\r\n </a>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-tabs\",\r\n data () {\r\n return {};\r\n },\r\n computed: {\r\n animation () {\r\n return this.option.animation\r\n },\r\n decimals () {\r\n return this.option.decimals || 0\r\n },\r\n span () {\r\n return this.option.span || 8;\r\n },\r\n data () {\r\n return this.option.data || [];\r\n }\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => { }\r\n }\r\n }\r\n});\r\n</script>","<template>\r\n <div class=\"data-task\">\r\n <div class=\"data-task__header\" v-if=\"title\">\r\n <span class=\"data-task__title\">{{ title }}</span>\r\n <span class=\"data-task__count\">{{ completedCount }}/{{ data.length }}</span>\r\n </div>\r\n <div class=\"data-task__progress\">\r\n <el-progress :percentage=\"progressPercent\" :stroke-width=\"8\" :show-text=\"false\"></el-progress>\r\n </div>\r\n <div class=\"data-task__list\">\r\n <div class=\"data-task__item\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\"\r\n :class=\"{'is-completed': item.completed}\">\r\n <el-checkbox v-model=\"item.completed\" @change=\"handleChange(item, index)\"></el-checkbox>\r\n <div class=\"data-task__content\">\r\n <div class=\"data-task__text\">{{ item.title }}</div>\r\n <div class=\"data-task__meta\" v-if=\"item.deadline || item.priority\">\r\n <span class=\"data-task__deadline\" v-if=\"item.deadline\">{{ item.deadline }}</span>\r\n <el-tag v-if=\"item.priority\" size=\"small\" :type=\"getPriorityType(item.priority)\">\r\n {{ item.priority }}\r\n </el-tag>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-task\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n title() {\r\n return this.option.title;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n },\r\n completedCount() {\r\n return this.data.filter(item => item.completed).length;\r\n },\r\n progressPercent() {\r\n if (this.data.length === 0) return 0;\r\n return Math.round((this.completedCount / this.data.length) * 100);\r\n }\r\n },\r\n methods: {\r\n handleChange(item, index) {\r\n this.$emit('change', { item, index, completed: item.completed });\r\n },\r\n getPriorityType(priority) {\r\n const types = { '高': 'danger', '中': 'warning', '低': 'info' };\r\n return types[priority] || '';\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div class=\"data-weather\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col :md=\"span\"\r\n :xs=\"24\"\r\n :sm=\"12\"\r\n v-for=\"(item, index) in data\"\r\n :key=\"index\">\r\n <div class=\"data-weather__item\"\r\n :style=\"getItemStyle(item)\"\r\n @click=\"item.click && item.click(item)\">\r\n <div class=\"data-weather__header\">\r\n <span class=\"data-weather__city\">{{ item.city }}</span>\r\n <span class=\"data-weather__date\">{{ item.date }}</span>\r\n </div>\r\n <div class=\"data-weather__body\">\r\n <div class=\"data-weather__icon\">\r\n <i :class=\"getWeatherIcon(item.weather)\" :style=\"{fontSize: '48px'}\"></i>\r\n </div>\r\n <div class=\"data-weather__temp\">\r\n <span class=\"data-weather__temp-value\">{{ item.temp }}</span>\r\n <span class=\"data-weather__temp-unit\">°C</span>\r\n </div>\r\n </div>\r\n <div class=\"data-weather__footer\">\r\n <span class=\"data-weather__desc\">{{ item.weather }}</span>\r\n <span class=\"data-weather__wind\" v-if=\"item.wind\">{{ item.wind }}</span>\r\n </div>\r\n <div class=\"data-weather__range\" v-if=\"item.tempLow !== undefined\">\r\n {{ item.tempLow }}° ~ {{ item.tempHigh }}°\r\n </div>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nexport default create({\r\n name: \"data-weather\",\r\n data() {\r\n return {};\r\n },\r\n props: {\r\n option: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n computed: {\r\n span() {\r\n return this.option.span || 6;\r\n },\r\n gutter() {\r\n return this.option.gutter || 20;\r\n },\r\n data() {\r\n return this.option.data || [];\r\n }\r\n },\r\n methods: {\r\n getItemStyle(item) {\r\n const gradients = {\r\n '晴': 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',\r\n '多云': 'linear-gradient(135deg, #89f7fe 0%, #66a6ff 100%)',\r\n '阴': 'linear-gradient(135deg, #bdc3c7 0%, #2c3e50 100%)',\r\n '雨': 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',\r\n '雪': 'linear-gradient(135deg, #e0eafc 0%, #cfdef3 100%)'\r\n };\r\n return {\r\n background: item.background || gradients[item.weather] || gradients['晴']\r\n };\r\n },\r\n getWeatherIcon(weather) {\r\n const icons = {\r\n '晴': 'el-icon-sunny',\r\n '多云': 'el-icon-partly-cloudy',\r\n '阴': 'el-icon-cloudy',\r\n '雨': 'el-icon-heavy-rain',\r\n '雪': 'el-icon-ice-cream'\r\n };\r\n return icons[weather] || 'el-icon-sunny';\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-button type=\"primary\"\r\n icon=\"el-icon-plus\"\r\n circle\r\n :size=\"size\"\r\n v-if=\"validatenull(text)\"\r\n :disabled=\"disabled\"\r\n @click=\"add()\"></el-button>\r\n <div :class=\"b('item')\"\r\n v-for=\"(item,index) in text\"\r\n :key=\"index\">\r\n <div :class=\"b('input')\">\r\n <el-tooltip placement=\"bottom\"\r\n :disabled=\"(!isImg && !isUrl) || validatenull(item)\">\r\n <template #content>\r\n <component style=\"width: 200px\"\r\n :src=\"item\"\r\n @click=\"openImg(index)\"\r\n v-if=\"isImg\"\r\n controls=\"controls\"\r\n :is=\"isMediaType(item)\"></component>\r\n <el-link type=\"primary\"\r\n :href=\"item\"\r\n v-else-if=\"isUrl\"\r\n :target=\"target\">{{item}}</el-link>\r\n </template>\r\n <el-input v-model=\"text[index]\"\r\n :size=\"size\"\r\n :maxlength=\"maxlength\"\r\n :minlength=\"minlength\"\r\n :show-word-limit=\"showWordLimit\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"></el-input>\r\n </el-tooltip>\r\n <template v-if=\"!(disabled ||readonly || alone)\">\r\n <el-button v-if=\"!isLimit\"\r\n type=\"primary\"\r\n icon=\"el-icon-plus\"\r\n circle\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n @click=\"add(index)\"></el-button>\r\n <el-button type=\"danger\"\r\n icon=\"el-icon-minus\"\r\n circle\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n @click=\"remove(index)\"></el-button>\r\n </template>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props.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 <div :class=\"b()\">\r\n <el-date-picker\r\n :type=\"type\"\r\n v-model=\"text\"\r\n :popper-class=\"popperClass\"\r\n :size=\"size\"\r\n :cell-class-name=\"cellClassName\"\r\n :editable=\"editable\"\r\n :unlink-panels=\"unlinkPanels\"\r\n :default-value=\"defaultValue\"\r\n :default-time=\"defaultTime\"\r\n :range-separator=\"rangeSeparator\"\r\n :start-placeholder=\"startPlaceholder || t('date.start')\"\r\n :end-placeholder=\"endPlaceholder || t('date.end')\"\r\n :format=\"format\"\r\n :clearable=\"clearableVal\"\r\n :shortcuts=\"shortcuts\"\r\n :disabled-date=\"disabledDate\"\r\n :disabled-hours=\"disabledHours\"\r\n :disabled-minutes=\"disabledMinutes\"\r\n :disabled-seconds=\"disabledSeconds\"\r\n :value-format=\"valueFormat\"\r\n :placeholder=\"placeholder\"\r\n :prefix-icon=\"prefixIcon\"\r\n :show-now=\"showNow\"\r\n @blur=\"handleBlur\"\r\n @focus=\"handleFocus\"\r\n @click=\"handleClick\"\r\n :readonly=\"readonly\"\r\n :disabled=\"disabled\"\r\n >\r\n <template #=\"cell\">\r\n <div class=\"el-date-table-cell\">\r\n <slot :item=\"cell\" v-if=\"$slots.default\"> </slot>\r\n <span class=\"el-date-table-cell__text\" v-else>{{\r\n cell.renderText || cell.text\r\n }}</span>\r\n </div>\r\n </template>\r\n </el-date-picker>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport props from \"common/common/props.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 disabledHours: Function,\r\n disabledMinutes: Function,\r\n disabledSeconds: Function,\r\n showNow: Boolean,\r\n shortcuts: [Array, Function],\r\n editable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n unlinkPanels: Boolean,\r\n value: {},\r\n startPlaceholder: String,\r\n endPlaceholder: String,\r\n rangeSeparator: String,\r\n defaultValue: [String, Array],\r\n defaultTime: [String, Array],\r\n type: {\r\n type: String,\r\n default: \"date\",\r\n },\r\n valueFormat: String,\r\n format: String,\r\n },\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b({'active':((active || overActive)&&!readonly),'move':moveActive,'click':disabled})\"\r\n @mousedown.stop=\"handleMove\"\r\n @mouseover.stop=\"handleOver\"\r\n @mouseout.stop=\"handleOut\"\r\n :style=\"styleName\">\r\n <el-input ref=\"input\"\r\n :class=\"b('focus')\"\r\n v-model=\"value\"></el-input>\r\n <div :class=\"b('wrapper')\"\r\n ref=\"wrapper\">\r\n <template v-if=\"(active || overActive || moveActive)&&!readonly\">\r\n <div :style=\"styleLineName\"\r\n :class=\"b('line',['left'])\"></div>\r\n <div :style=\"styleLineName\"\r\n :class=\"b('line',['top'])\"></div>\r\n <div :class=\"b('line',['label'])\"\r\n :style=\"styleLabelName\">{{baseLeft}},{{baseTop}}</div>\r\n </template>\r\n <template v-for=\"(item,index) in rangeList\"\r\n v-if=\"!readonly\">\r\n <div :class=\"b('range',[item.classname])\"\r\n :key=\"index\"\r\n v-if=\"active\"\r\n :style=\"[styleRangeName,getRangeStyle(item.classname)]\"\r\n @mousedown.stop=\"rangeMove($event,item.classname)\"></div>\r\n </template>\r\n <div :class=\"b('menu')\"\r\n :style=\"styleMenuName\"\r\n v-show=\"active || overActive\">\r\n <slot name=\"menu\"\r\n :zIndex=\"zIndex\"\r\n :index=\"index\"></slot>\r\n </div>\r\n <div :class=\"b('item')\"\r\n ref=\"item\">\r\n <slot></slot>\r\n </div>\r\n <div :class=\"b('mask')\"\r\n v-if=\"!disabled && mask\"></div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport { getFixed } from \"utils/util\";\r\nexport default create({\r\n name: \"draggable\",\r\n props: {\r\n index: {\r\n type: [String, Number],\r\n },\r\n mask: {\r\n type: Boolean,\r\n default: true\r\n },\r\n scale: {\r\n type: Number,\r\n default: 1\r\n },\r\n readonly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n resize: {\r\n type: Boolean,\r\n default: true\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n },\r\n step: {\r\n type: Number,\r\n default: 1\r\n },\r\n lock: {\r\n type: Boolean,\r\n default: false\r\n },\r\n zIndex: {\r\n type: [Number, String],\r\n default: 1\r\n },\r\n left: {\r\n type: Number,\r\n default: 0\r\n },\r\n top: {\r\n type: Number,\r\n default: 0\r\n },\r\n width: {\r\n type: Number\r\n },\r\n height: {\r\n type: Number\r\n }\r\n },\r\n data () {\r\n return {\r\n first: true,\r\n value: '',\r\n baseWidth: 0,\r\n baseHeight: 0,\r\n baseLeft: 0,\r\n baseTop: 0,\r\n children: {},\r\n moveActive: false,\r\n overActive: false,\r\n rangeActive: false,\r\n active: false,\r\n keyDown: null,\r\n rangeList: [\r\n {\r\n classname: \"left\",\r\n },\r\n {\r\n classname: \"right\",\r\n },\r\n {\r\n classname: \"top\",\r\n },\r\n {\r\n classname: \"bottom\",\r\n },\r\n {\r\n classname: \"top-left\",\r\n },\r\n {\r\n classname: \"top-right\",\r\n },\r\n {\r\n classname: \"bottom-left\",\r\n },\r\n {\r\n classname: \"bottom-right\",\r\n }\r\n ]\r\n };\r\n },\r\n computed: {\r\n scaleVal () {\r\n return this.scale;\r\n },\r\n styleMenuName () {\r\n return {\r\n transformOrigin: \"0 0\",\r\n transform: `scale(${this.scaleVal})`\r\n };\r\n },\r\n styleLineName () {\r\n return {\r\n borderWidth: this.setPx(this.scaleVal)\r\n };\r\n },\r\n styleRangeName () {\r\n const calc = 10 * this.scaleVal;\r\n return {\r\n width: this.setPx(calc),\r\n height: this.setPx(calc)\r\n };\r\n },\r\n styleLabelName () {\r\n return {\r\n fontSize: this.setPx(18 * this.scaleVal)\r\n };\r\n },\r\n styleName () {\r\n return Object.assign(\r\n (() => {\r\n if (this.active) {\r\n return Object.assign(\r\n {\r\n zIndex: 9999\r\n },\r\n this.styleLineName\r\n );\r\n }\r\n return { zIndex: this.zIndex };\r\n })(),\r\n {\r\n top: this.setPx(this.baseTop),\r\n left: this.setPx(this.baseLeft),\r\n width: this.setPx(this.baseWidth),\r\n height: this.setPx(this.baseHeight)\r\n }\r\n );\r\n }\r\n },\r\n watch: {\r\n active (val) {\r\n if (val) {\r\n this.handleKeydown()\r\n } else {\r\n document.onkeydown = this.keyDown\r\n }\r\n },\r\n width (val) {\r\n this.baseWidth = getFixed(val) || this.children.offsetWidth;\r\n },\r\n height (val) {\r\n this.baseHeight = getFixed(val) || this.children.offsetHeight;\r\n },\r\n left (val) {\r\n this.baseLeft = getFixed(val);\r\n },\r\n top (val) {\r\n this.baseTop = getFixed(val);\r\n },\r\n baseWidth (val) {\r\n this.$refs.wrapper.style.width = this.setPx(val);\r\n if (this.resize && this.children.style) {\r\n this.children.style.width = this.setPx(val);\r\n }\r\n },\r\n baseHeight (val) {\r\n this.$refs.wrapper.style.height = this.setPx(val);\r\n if (this.resize && this.children.style) {\r\n this.children.style.height = this.setPx(val);\r\n }\r\n },\r\n baseLeft (n, o) {\r\n if (this.first) return\r\n this.setMove(n - o, 0);\r\n },\r\n baseTop (n, o) {\r\n if (this.first) return\r\n this.setMove(0, n - o);\r\n }\r\n },\r\n mounted () {\r\n this.init();\r\n },\r\n methods: {\r\n init () {\r\n this.children = this.$refs.item.firstChild;\r\n this.baseWidth = getFixed(this.width) || this.children.offsetWidth;\r\n this.baseHeight = getFixed(this.height) || this.children.offsetHeight;\r\n this.baseLeft = getFixed(this.left);\r\n this.baseTop = getFixed(this.top);\r\n this.keyDown = document.onkeydown\r\n this.$nextTick(() => {\r\n this.first = false\r\n })\r\n },\r\n setMove (left, top) {\r\n this.$emit('move', {\r\n index: this.index,\r\n left: left,\r\n top: top\r\n })\r\n },\r\n setLeft (left) {\r\n this.baseLeft = left;\r\n },\r\n setTop (top) {\r\n this.baseTop = top;\r\n },\r\n getRangeStyle (postion) {\r\n const calc = (10 * this.scaleVal) / 2;\r\n let result = {};\r\n let list = postion.split(\"-\");\r\n list.forEach(ele => {\r\n result[ele] = this.setPx(-calc);\r\n });\r\n return result;\r\n },\r\n setOverActive (val) {\r\n this.overActive = val;\r\n },\r\n setActive (val) {\r\n this.active = val;\r\n },\r\n rangeMove (e, position) {\r\n if (this.disabled || this.lock) return\r\n //移动的方向\r\n let x, y;\r\n //移动的位置\r\n let xp, yp;\r\n //移动的正负\r\n let xc, yc;\r\n this.rangeActive = true;\r\n this.handleMouseDown();\r\n let disX = e.clientX;\r\n let disY = e.clientY;\r\n document.onmousemove = e => {\r\n this.moveActive = true;\r\n if (position === \"right\") {\r\n x = true;\r\n y = false;\r\n } else if (position === \"left\") {\r\n x = true;\r\n xp = true;\r\n xc = true;\r\n y = false;\r\n } else if (position === \"top\") {\r\n x = false;\r\n y = true;\r\n yp = true;\r\n yc = true;\r\n } else if (position === \"bottom\") {\r\n x = false;\r\n y = true;\r\n } else if (position === \"bottom-right\") {\r\n x = true;\r\n y = true;\r\n } else if (position === \"bottom-left\") {\r\n x = true;\r\n y = true;\r\n xp = true;\r\n xc = true;\r\n } else if (position === \"top-right\") {\r\n x = true;\r\n y = true;\r\n yp = true;\r\n yc = true;\r\n } else if (position === \"top-left\") {\r\n x = true;\r\n y = true;\r\n xp = true;\r\n xc = true;\r\n yp = true;\r\n yc = true;\r\n }\r\n let left = e.clientX - disX;\r\n let top = e.clientY - disY;\r\n disX = e.clientX;\r\n disY = e.clientY;\r\n if (x) {\r\n let calc = left * this.step;\r\n if (xc) calc = -calc;\r\n if (xp) this.baseLeft = getFixed(this.baseLeft - calc);\r\n this.baseWidth = getFixed(this.baseWidth + calc);\r\n }\r\n if (y) {\r\n let calc = top * this.step;\r\n if (yc) calc = -calc;\r\n if (yp) this.baseTop = getFixed(this.baseTop - calc);\r\n this.baseHeight = getFixed(this.baseHeight + calc);\r\n }\r\n };\r\n this.handleClear()\r\n\r\n },\r\n handleOut () {\r\n this.overActive = false\r\n this.$emit(\"out\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n },\r\n handleOver () {\r\n if (this.disabled) return\r\n this.overActive = true\r\n this.$emit(\"over\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n },\r\n handleMove (e) {\r\n if (this.disabled || this.lock) return\r\n setTimeout(() => {\r\n this.$refs.input.focus()\r\n })\r\n this.active = true;\r\n this.handleMouseDown();\r\n let disX = e.clientX;\r\n let disY = e.clientY;\r\n document.onmousemove = (e) => {\r\n let left = e.clientX - disX;\r\n let top = e.clientY - disY;\r\n disX = e.clientX;\r\n disY = e.clientY;\r\n this.baseLeft = getFixed(this.baseLeft + left * this.step);\r\n this.baseTop = getFixed(this.baseTop + top * this.step);\r\n };\r\n this.handleClear()\r\n },\r\n handleClear () {\r\n document.onmouseup = () => {\r\n document.onmousemove = null;\r\n document.onmouseup = null;\r\n this.handleMouseUp();\r\n }\r\n },\r\n handleKeydown () {\r\n document.onkeydown = (event) => {\r\n var e = event || window.event || arguments.callee.caller.arguments[0];\r\n let step = 1 * this.step;\r\n if (this.$refs.input.focused) {\r\n if (e && e.keyCode == 38) {//上\r\n this.baseTop = getFixed(this.baseTop - step)\r\n } else if (e && e.keyCode == 37) {//左\r\n this.baseLeft = getFixed(this.baseLeft - step)\r\n } else if (e && e.keyCode == 40) {//下\r\n this.baseTop = getFixed(this.baseTop + step)\r\n } else if (e && e.keyCode == 39) {//右\r\n this.baseLeft = getFixed(this.baseLeft + step)\r\n }\r\n event.stopPropagation()\r\n event.preventDefault();\r\n this.$emit(\"blur\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n this.keyDown && this.keyDown(event);\r\n }\r\n };\r\n },\r\n handleMouseDown (e) {\r\n this.moveActive = true;\r\n this.$emit(\"focus\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n },\r\n handleMouseUp () {\r\n this.moveActive = false;\r\n this.rangeActive = false;\r\n this.$emit(\"blur\", {\r\n index: this.index,\r\n width: this.baseWidth,\r\n height: this.baseHeight,\r\n left: this.baseLeft,\r\n top: this.baseTop\r\n });\r\n }\r\n }\r\n});\r\n</script>","<template>\n <div :class=\"b()\"\n :key=\"reload\">\n <template v-if=\"isForm\">\n <div :class=\"b('header')\">\n <el-button :size=\"size\"\n circle\n v-if=\"!readonly && !disabled && !addBtn\"\n :disabled=\"disabled\"\n type=\"primary\"\n icon=\"el-icon-plus\"\n @click=\"addRow\"></el-button>\n </div>\n <div>\n <div v-for=\"(item,index) in text\"\n :class=\"b('row')\"\n :key=\"index\"\n @mouseenter=\"cellMouseenter({$index:index})\"\n @mouseleave=\"cellMouseLeave({$index:index})\">\n <el-button v-if=\"!readonly && !disabled && !delBtn && hoverList[index]\"\n @click=\"delRow(item.$index)\"\n type=\"danger\"\n :class=\"b('menu')\"\n :size=\"size\"\n :disabled=\"disabled\"\n icon=\"el-icon-delete\"\n circle></el-button>\n <avue-form :key=\"index\"\n ref=\"main\"\n :table-data=\"{row:text[index],index}\"\n :option=\"option\"\n v-bind=\"$uploadFun(null,this)\"\n v-model=\"text[index]\">\n <template #index=\"{}\">\n <span>{{item.$index+1}}</span>\n </template>\n <template v-for=\"item in columnSlot\"\n #[item]=\"scope\">\n <slot v-bind=\"Object.assign(scope,{\n row:text[index]\n })\"\n :name=\"item\"></slot>\n </template>\n </avue-form>\n </div>\n </div>\n </template>\n <template v-else-if=\"isCrud\">\n <el-form :model=\"cellForm\"\n @validate=\"handleValidate\"\n ref=\"cellForm\">\n <el-table :data=\"cellForm.list\"\n :border=\"validData(children.border, true)\"\n :size=\"size\"\n @cell-mouse-enter=\"cellMouseenter\"\n @cell-mouse-leave=\"cellMouseLeave\"\n @selection-change=\"handleSelectionChange\"\n @sort-change=\"handleSortableChange\">\n <el-table-column v-if=\"showIndex\"\n :label=\"children.indexLabel || '#'\"\n width=\"60\"\n align=\"center\"\n fixed>\n <template #header>\n <el-button v-if=\"!(addBtn || readonly) && maxFlag\"\n @click=\"rowCellAdd()\"\n type=\"primary\"\n :size=\"size\"\n :disabled=\"disabled\"\n icon=\"el-icon-plus\"\n circle></el-button>\n </template>\n <template #default=\"scope\">\n <el-button v-if=\"!readonly && !disabled && !delBtn && hoverList[scope.row.$index]\"\n @click=\"delRow(scope.row.$index)\"\n type=\"danger\"\n :size=\"size\"\n :disabled=\"disabled\"\n icon=\"el-icon-delete\"\n circle></el-button>\n <div v-else>{{scope.row.$index + 1}}</div>\n </template>\n </el-table-column>\n <el-table-column v-for=\"col in visibleColumns\"\n :key=\"col.prop\"\n :prop=\"col.prop\"\n :label=\"col.label\"\n :width=\"col.width\"\n :min-width=\"col.minWidth\"\n :align=\"col.align || children.align\"\n :header-align=\"col.headerAlign || children.headerAlign\"\n :fixed=\"col.fixed\"\n :sortable=\"col.sortable\">\n <template #default=\"{ row, $index }\">\n <el-form-item :prop=\"`list.${$index}.${col.prop}`\"\n :rules=\"col.rules\"\n label=\" \"\n label-width=\"-1px\"\n v-if=\"row.$cellEdit\">\n <el-tooltip :content=\"(listError[`list.${$index}.${col.prop}`] || {}).msg\"\n :disabled=\"!(listError[`list.${$index}.${col.prop}`] || {}).valid\"\n placement=\"top\">\n <div>\n <slot v-if=\"columnSlot.includes(getSlotName({prop: col.prop}, 'F'))\"\n v-bind=\"{ row, column: col, index: $index, size, label: row[col.prop] }\"\n :name=\"getSlotName({prop: col.prop}, 'F')\"></slot>\n <form-temp v-else\n :column=\"col\"\n :size=\"size\"\n :index=\"$index\"\n :row=\"row\"\n :clearValidate=\"clearValidate\"\n :table-data=\"{ index: $index, row }\"\n :disabled=\"disabled || col.disabled\"\n :readonly=\"readonly || col.readonly\"\n v-bind=\"$uploadFun(col, this)\"\n v-model=\"row[col.prop]\"\n :column-slot=\"columnSlot\"></form-temp>\n </div>\n </el-tooltip>\n </el-form-item>\n <slot v-else-if=\"columnSlot.includes(col.prop)\"\n v-bind=\"{ row, column: col, index: $index, label: row[col.prop] }\"\n :name=\"col.prop\"></slot>\n <span v-else>{{row[col.prop]}}</span>\n </template>\n </el-table-column>\n </el-table>\n </el-form>\n </template>\n </div>\n</template>\n\n<script>\nimport create from \"core/create\";\nimport props from \"common/common/props.js\";\nimport event from \"common/common/event.js\";\nimport { getColumn } from 'utils/util'\nimport { formInitVal } from 'core/dataformat'\nimport formTemp from \"common/components/form/index\";\nexport default create({\n name: \"dynamic\",\n mixins: [props(), event()],\n components: { formTemp },\n data () {\n return {\n reload: Math.random(),\n hoverList: [],\n cellForm: { list: [] },\n listError: {},\n }\n },\n props: {\n uploadSized: Function,\n uploadBefore: Function,\n uploadAfter: Function,\n uploadDelete: Function,\n uploadPreview: Function,\n uploadError: Function,\n uploadExceed: Function,\n max: Number,\n boxType: String,\n columnSlot: {\n type: Array,\n default: () => {\n return []\n }\n },\n children: {\n type: Object,\n default: () => {\n return {}\n }\n }\n },\n computed: {\n isAdd () {\n return this.boxType === \"add\"\n },\n isEdit () {\n return this.boxType === \"edit\"\n },\n isView () {\n return this.boxType === \"view\"\n },\n textLen () {\n return this.text.length;\n },\n maxFlag () {\n if (this.max) {\n return !(this.text.length == this.max)\n }\n return true\n },\n showIndex () {\n return this.validData(this.children.index, true)\n },\n showType () {\n return this.children.type || 'crud'\n },\n isForm () {\n return this.showType === 'form'\n },\n isCrud () {\n return this.showType === 'crud'\n },\n selectionChange () {\n return this.children.selectionChange\n },\n sortableChange () {\n return this.children.sortableChange\n },\n rowAdd () {\n return this.children.rowAdd\n },\n rowDel () {\n return this.children.rowDel\n },\n viewBtn () {\n return this.children.viewBtn === false\n },\n addBtn () {\n return this.children.addBtn === false\n },\n delBtn () {\n return this.children.delBtn === false\n },\n valueOption () {\n let result = {};\n this.columnOption.forEach(ele => {\n if (ele.value) {\n result[ele.prop] = ele.value;\n }\n })\n return result;\n },\n rulesOption () {\n let rules = {};\n this.columnOption.forEach(ele => {\n if (ele.rules) {\n rules[ele.prop] = ele.rules;\n }\n })\n return rules;\n },\n columnOption () {\n return getColumn(this.children.column)\n },\n propOption () {\n let result = [];\n const findProp = (list = []) => {\n if (!Array.isArray(list)) return;\n list.forEach(ele => {\n if (Array.isArray(ele.children)) findProp(ele.children);\n else result.push(ele);\n });\n };\n findProp(this.columnOption);\n return result;\n },\n visibleColumns () {\n return this.columnOption.filter(col => !col.hide);\n },\n option () {\n let options = {\n boxType: this.boxType,\n border: true,\n header: false,\n menu: false,\n size: this.size,\n disabled: this.disabled,\n readonly: this.readonly,\n menuBtn: false,\n };\n\n let childOptions = this.deepClone(this.children);\n delete childOptions.column;\n\n let columnOption = this.deepClone(this.columnOption);\n const callback = (list) => {\n list.forEach((ele, index) => {\n if (ele.children && Array.isArray(ele.children)) callback(ele.children)\n else {\n list[index] = {\n ...ele,\n ...{\n hide: this.validData(ele.hide, !this.validParams(ele, 'display', true)),\n disabled: this.validParams(ele, 'disabled', false),\n detail: this.validParams(ele, 'detail', false),\n cell: this.validData(ele.cell, false)\n }\n }\n }\n })\n }\n callback(columnOption)\n columnOption.unshift({\n label: this.children.indexLabel || '#',\n prop: 'index',\n display: this.showIndex,\n hide: !this.showIndex,\n fixed: true,\n align: 'center',\n headerAlign: 'center',\n span: 24,\n width: 60\n })\n\n return {\n ...options,\n ...{ column: columnOption },\n ...childOptions\n };\n }\n },\n mounted () {\n this.initData();\n if (this.isCrud) {\n this.cellForm.list = this.text;\n }\n },\n methods: {\n validParams (column, type, value) {\n function replaceStr (str) {\n str = str.toLowerCase();\n var reg = /\\b(\\w)|\\s(\\w)/g;\n return str.replace(reg, function (m) {\n return m.toUpperCase()\n });\n }\n let key, caseKey = replaceStr(type);\n if (!this.validatenull(column[type])) {\n key = type\n } else if (this.isAdd) {\n key = 'add' + caseKey\n } else if (this.isEdit) {\n key = 'edit' + caseKey\n } else if (this.isView) {\n key = 'view' + caseKey\n }\n return this.validData(column[key], value)\n },\n handleTextValue (val) {\n this.initData();\n if (this.isCrud) {\n this.cellForm.list = this.text;\n }\n },\n handleValidate (prop, valid, msg) {\n if (!this.listError[prop]) this.listError[prop] = { valid: false, msg: '' };\n this.listError[prop].valid = !valid;\n this.listError[prop].msg = msg;\n },\n handleSelectionChange (val) {\n this.selectionChange && this.selectionChange(val);\n },\n handleSortableChange (val) {\n this.sortableChange && this.sortableChange(val);\n },\n cellMouseenter (row) {\n let index = row.$index;\n this.mouseoverRow(index);\n },\n cellMouseLeave (row) {\n let index = row.$index;\n this.mouseoutRow(index)\n },\n initData () {\n this.text.forEach((ele, index) => {\n ele = Object.assign(ele, {\n $cellEdit: true,\n $index: index,\n })\n })\n },\n mouseoverRow (index) {\n if (this.delBtn) return\n this.flagList();\n this.hoverList[index] = true;\n },\n mouseoutRow (index) {\n if (this.delBtn) return\n this.flagList();\n this.hoverList[index] = false\n },\n flagList () {\n this.hoverList.forEach((ele, index) => {\n ele = false;\n })\n },\n // 单元格新增(来自 crud)\n rowCellAdd (row = {}) {\n let len = this.text.length;\n let formDefault = formInitVal(this.propOption);\n row = this.deepClone(\n Object.assign(\n { $cellEdit: true, $index: len },\n formDefault,\n this.valueOption,\n row\n )\n );\n this.text.push(row);\n },\n // 供 avue-form 保存时调用(替代原 $refs.main.validateCellForm 链路)\n validateCellForm () {\n if (this.isCrud) {\n return new Promise((resolve) => {\n if (!this.$refs.cellForm) return resolve(undefined);\n this.$refs.cellForm.validate((valid, msg) => {\n resolve(valid ? undefined : msg);\n });\n });\n } else if (this.isForm && this.$refs.main) {\n const forms = Array.isArray(this.$refs.main) ? this.$refs.main : [this.$refs.main];\n return Promise.all(forms.map(f => f.validateCellForm())).then(results => {\n let merged = {};\n results.forEach(r => r && Object.assign(merged, r));\n return Object.keys(merged).length ? merged : undefined;\n });\n }\n return Promise.resolve(undefined);\n },\n // 对部分表单字段进行校验(来自 crud)\n validateCellField (index) {\n return new Promise((resolve, reject) => {\n this.$refs.cellForm.validate((valid, msg = {}) => {\n let result = true;\n let list = [];\n Object.keys(msg).forEach(ele => {\n if (ele.indexOf(`list.${index}.`) !== -1) {\n result = false;\n } else {\n list.push(ele);\n }\n });\n if (!this.validatenull(list)) this.$refs.cellForm.clearValidate(list);\n if (result) resolve();\n });\n });\n },\n clearValidate (list) {\n this.$refs.cellForm && this.$refs.cellForm.clearValidate(list);\n },\n delRow (index) {\n const callback = () => {\n let list = this.deepClone(this.text)\n list.splice(index, 1);\n this.text = list;\n this.reload = Math.random();\n }\n if (typeof this.rowDel === 'function') {\n this.rowDel(this.text[index], callback);\n } else {\n callback();\n }\n },\n addRow () {\n const callback = (obj = {}) => {\n if (this.isCrud) {\n this.rowCellAdd(obj);\n } else {\n let row = this.deepClone({\n ...this.valueOption,\n ...obj,\n ...{ $index: this.textLen }\n })\n this.text.push(row)\n }\n }\n if (typeof this.rowAdd === 'function') {\n this.rowAdd(callback);\n } else {\n callback();\n }\n }\n }\n});\n</script>\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 <div\r\n v-if=\"validData(tableOption.jsonBtn, false)\"\r\n style=\"margin-bottom: 15px; display: flex; justify-content: flex-end;\"\r\n >\r\n <el-button\r\n type=\"primary\"\r\n :size=\"size\"\r\n icon=\"el-icon-view\"\r\n @click=\"jsonViewVisible = true\"\r\n >\r\n {{ validData(tableOption.jsonText, \"JSON数据\") }}\r\n </el-button>\r\n </div>\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 :card=\"item.card\"\r\n :slot-gutter=\"isTabs\"\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\">&nbsp;</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 <el-dialog\r\n title=\"表单JSON数据\"\r\n v-model=\"jsonViewVisible\"\r\n append-to-body\r\n width=\"60%\"\r\n destroy-on-close\r\n >\r\n <div style=\"height: 500px\">\r\n <JsonEditor :model-value=\"form\" @update:modelValue=\"handleJsonEditorChange\" height=\"500\" mode=\"text\" />\r\n </div>\r\n </el-dialog>\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 jsonViewVisible: false,\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 handleJsonEditorChange(val) {\r\n try {\r\n let targetStr = val;\r\n if (val && typeof val === 'object' && val.模块数据) {\r\n targetStr = val.模块数据;\r\n } else if (val && typeof val === 'object' && val.text) {\r\n targetStr = val.text;\r\n }\r\n\r\n let parsedData = typeof targetStr === 'string' ? JSON.parse(targetStr) : targetStr;\r\n\r\n if (parsedData && typeof parsedData === 'object') {\r\n Object.keys(parsedData).forEach((key) => {\r\n if (key !== '模块数据') {\r\n this.form[key] = parsedData[key];\r\n }\r\n });\r\n }\r\n } catch (e) {\r\n // 输入不是合法JSON时不处理\r\n }\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 dynamicName.push(ele.prop);\r\n const dynComp = this.$refs[ele.prop][0].$refs.temp;\r\n if (dynComp && typeof dynComp.validateCellForm === 'function') {\r\n dynamicList.push(dynComp.validateCellForm());\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({\r\n header: !isHeader,\r\n arrow: !arrow,\r\n card: card\r\n })]\"\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 <div :class=\"b('card-body')\" v-if=\"!slotGutter\">\r\n <slot></slot>\r\n </div>\r\n <slot v-else></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 slotGutter: {\r\n type: Boolean,\r\n default: false\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 || '点击配置Cron表达式'\"\r\n v-model=\"text\"\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=\"handleShow\"\r\n @focus=\"handleShow\">\r\n <template #append>\r\n <el-button @click=\"handleShow\" :disabled=\"disabled\">\r\n <i class=\"el-icon-setting\"></i>\r\n </el-button>\r\n </template>\r\n </el-input>\r\n \r\n <el-dialog class=\"avue-dialog\"\r\n title=\"Cron表达式配置\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n lock-scroll\r\n v-model=\"box\"\r\n width=\"700px\">\r\n <div :class=\"b('container')\">\r\n <!-- Tabs 切换不同时间单位 -->\r\n <el-tabs v-model=\"activeTab\" type=\"border-card\">\r\n <el-tab-pane label=\"秒\" name=\"second\">\r\n <cron-tab v-model=\"cronData.second\" :type=\"'second'\" :max=\"59\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"分\" name=\"minute\">\r\n <cron-tab v-model=\"cronData.minute\" :type=\"'minute'\" :max=\"59\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"时\" name=\"hour\">\r\n <cron-tab v-model=\"cronData.hour\" :type=\"'hour'\" :max=\"23\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"日\" name=\"day\">\r\n <cron-tab v-model=\"cronData.day\" :type=\"'day'\" :max=\"31\" :min=\"1\" :show-not-specify=\"true\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"月\" name=\"month\">\r\n <cron-tab v-model=\"cronData.month\" :type=\"'month'\" :max=\"12\" :min=\"1\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"周\" name=\"week\">\r\n <cron-tab v-model=\"cronData.week\" :type=\"'week'\" :max=\"7\" :min=\"1\" :show-not-specify=\"true\" :is-week=\"true\" />\r\n </el-tab-pane>\r\n </el-tabs>\r\n \r\n <!-- Cron 表达式预览 -->\r\n <div :class=\"b('result')\">\r\n <div :class=\"b('expression')\">\r\n <span :class=\"b('label')\">Cron表达式:</span>\r\n <el-input v-model=\"cronExpression\" size=\"small\" style=\"width: 300px\" @input=\"parseCronExpression\" />\r\n </div>\r\n <div :class=\"b('preview')\">\r\n <span :class=\"b('label')\">最近执行时间:</span>\r\n <ul :class=\"b('times')\">\r\n <li v-for=\"(time, index) in nextTimes\" :key=\"index\">{{ time }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <template #footer>\r\n <el-button @click=\"box = false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"handleConfirm\">确定</el-button>\r\n </template>\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\n\r\n// Cron Tab 子组件\r\nconst CronTab = {\r\n name: 'CronTab',\r\n props: {\r\n modelValue: Object,\r\n type: String,\r\n max: Number,\r\n min: { type: Number, default: 0 },\r\n showNotSpecify: Boolean,\r\n isWeek: Boolean\r\n },\r\n emits: ['update:modelValue'],\r\n data() {\r\n return {\r\n weekLabels: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']\r\n };\r\n },\r\n computed: {\r\n data: {\r\n get() { return this.modelValue; },\r\n set(val) { this.$emit('update:modelValue', val); }\r\n },\r\n typeLabel() {\r\n const labels = { second: '秒', minute: '分', hour: '时', day: '日', month: '月', week: '周' };\r\n return labels[this.type] || '';\r\n },\r\n options() {\r\n const list = [];\r\n for (let i = this.min; i <= this.max; i++) {\r\n list.push({\r\n value: i,\r\n label: this.isWeek ? this.weekLabels[i - 1] : String(i)\r\n });\r\n }\r\n return list;\r\n }\r\n },\r\n methods: {\r\n updateData(key, value) {\r\n this.$emit('update:modelValue', { ...this.data, [key]: value });\r\n }\r\n },\r\n template: `\r\n <div class=\"avue-input-cron__tab\">\r\n <el-radio-group :model-value=\"data.type\" @update:model-value=\"val => updateData('type', val)\">\r\n <div class=\"avue-input-cron__option\">\r\n <el-radio label=\"every\">每{{ typeLabel }}执行</el-radio>\r\n </div>\r\n <div class=\"avue-input-cron__option\" v-if=\"showNotSpecify\">\r\n <el-radio label=\"notSpecify\">不指定</el-radio>\r\n </div>\r\n <div class=\"avue-input-cron__option\">\r\n <el-radio label=\"range\">周期</el-radio>\r\n <span v-if=\"data.type === 'range'\" class=\"avue-input-cron__inline\">\r\n 从\r\n <el-input-number v-model=\"data.rangeStart\" :min=\"min\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('rangeStart', val)\" />\r\n 到\r\n <el-input-number v-model=\"data.rangeEnd\" :min=\"min\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('rangeEnd', val)\" />\r\n {{ typeLabel }}\r\n </span>\r\n </div>\r\n <div class=\"avue-input-cron__option\">\r\n <el-radio label=\"step\">从</el-radio>\r\n <span v-if=\"data.type === 'step'\" class=\"avue-input-cron__inline\">\r\n <el-input-number v-model=\"data.stepStart\" :min=\"min\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('stepStart', val)\" />\r\n {{ typeLabel }}开始,每\r\n <el-input-number v-model=\"data.stepValue\" :min=\"1\" :max=\"max\" size=\"small\" style=\"width:80px\" @change=\"val => updateData('stepValue', val)\" />\r\n {{ typeLabel }}执行一次\r\n </span>\r\n </div>\r\n <div class=\"avue-input-cron__option\">\r\n <el-radio label=\"specify\">指定</el-radio>\r\n </div>\r\n </el-radio-group>\r\n <div v-if=\"data.type === 'specify'\" class=\"avue-input-cron__specify\">\r\n <el-checkbox-group :model-value=\"data.values\" @update:model-value=\"val => updateData('values', val)\">\r\n <el-checkbox v-for=\"opt in options\" :key=\"opt.value\" :label=\"opt.value\">{{ opt.label }}</el-checkbox>\r\n </el-checkbox-group>\r\n </div>\r\n </div>\r\n `\r\n};\r\n\r\nexport default create({\r\n name: \"input-cron\",\r\n components: { CronTab },\r\n mixins: [props(), event()],\r\n props: {\r\n prefixIcon: String,\r\n suffixIcon: String,\r\n dialogWidth: { type: String, default: '700px' }\r\n },\r\n data() {\r\n return {\r\n box: false,\r\n activeTab: 'second',\r\n cronData: {\r\n second: { type: 'every', rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1, values: [] },\r\n minute: { type: 'every', rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1, values: [] },\r\n hour: { type: 'every', rangeStart: 0, rangeEnd: 23, stepStart: 0, stepValue: 1, values: [] },\r\n day: { type: 'every', rangeStart: 1, rangeEnd: 31, stepStart: 1, stepValue: 1, values: [] },\r\n month: { type: 'every', rangeStart: 1, rangeEnd: 12, stepStart: 1, stepValue: 1, values: [] },\r\n week: { type: 'notSpecify', rangeStart: 1, rangeEnd: 7, stepStart: 1, stepValue: 1, values: [] }\r\n }\r\n };\r\n },\r\n computed: {\r\n cronExpression: {\r\n get() {\r\n return this.generateCron();\r\n },\r\n set(val) {\r\n // 手动输入时解析\r\n }\r\n },\r\n nextTimes() {\r\n return this.calculateNextTimes(this.cronExpression, 5);\r\n }\r\n },\r\n watch: {\r\n modelValue: {\r\n immediate: true,\r\n handler(val) {\r\n if (val) {\r\n this.parseCronExpression(val);\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n handleClear() {\r\n this.box = false;\r\n },\r\n handleShow() {\r\n this.$refs.main.blur();\r\n if (this.disabled || this.readonly) return;\r\n this.box = true;\r\n },\r\n handleConfirm() {\r\n this.text = this.cronExpression;\r\n this.box = false;\r\n },\r\n generateCron() {\r\n const parts = ['second', 'minute', 'hour', 'day', 'month', 'week'].map(key => {\r\n return this.generatePart(this.cronData[key], key);\r\n });\r\n return parts.join(' ');\r\n },\r\n generatePart(data, type) {\r\n switch (data.type) {\r\n case 'every':\r\n return '*';\r\n case 'notSpecify':\r\n return '*';\r\n case 'range':\r\n return `${data.rangeStart}-${data.rangeEnd}`;\r\n case 'step':\r\n return `${data.stepStart}/${data.stepValue}`;\r\n case 'specify':\r\n return data.values.length > 0 ? data.values.sort((a, b) => a - b).join(',') : '*';\r\n case 'custom':\r\n return data.customValue;\r\n default:\r\n return '*';\r\n }\r\n },\r\n parseCronExpression(expression) {\r\n if (!expression) return;\r\n const parts = expression.trim().split(/\\s+/);\r\n if (parts.length < 6) return;\r\n \r\n const keys = ['second', 'minute', 'hour', 'day', 'month', 'week'];\r\n keys.forEach((key, index) => {\r\n this.cronData[key] = this.parsePart(parts[index], key);\r\n });\r\n },\r\n parsePart(part, type) {\r\n const defaults = {\r\n second: { rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1 },\r\n minute: { rangeStart: 0, rangeEnd: 59, stepStart: 0, stepValue: 1 },\r\n hour: { rangeStart: 0, rangeEnd: 23, stepStart: 0, stepValue: 1 },\r\n day: { rangeStart: 1, rangeEnd: 31, stepStart: 1, stepValue: 1 },\r\n month: { rangeStart: 1, rangeEnd: 12, stepStart: 1, stepValue: 1 },\r\n week: { rangeStart: 1, rangeEnd: 7, stepStart: 1, stepValue: 1 }\r\n };\r\n \r\n const base = { ...defaults[type], values: [] };\r\n \r\n if (part === '*') {\r\n return { ...base, type: 'every' };\r\n }\r\n if (part === '?') {\r\n return { ...base, type: 'notSpecify' };\r\n }\r\n if (/[A-Za-z#]/.test(part)) {\r\n return { ...base, type: 'custom', customValue: part };\r\n }\r\n if (part.includes('/')) {\r\n const [start, step] = part.split('/');\r\n return { ...base, type: 'step', stepStart: parseInt(start) || 0, stepValue: parseInt(step) || 1 };\r\n }\r\n if (part.includes('-')) {\r\n const [start, end] = part.split('-');\r\n return { ...base, type: 'range', rangeStart: parseInt(start), rangeEnd: parseInt(end) };\r\n }\r\n if (part.includes(',')) {\r\n const values = part.split(',').map(v => parseInt(v));\r\n return { ...base, type: 'specify', values };\r\n }\r\n // 单个数字\r\n const num = parseInt(part);\r\n if (!isNaN(num)) {\r\n return { ...base, type: 'specify', values: [num] };\r\n }\r\n \r\n return { ...base, type: 'every' };\r\n },\r\n calculateNextTimes(cron, count) {\r\n if (!cron) return [];\r\n try {\r\n const times = [];\r\n const parts = cron.split(/\\s+/);\r\n if (parts.length < 6) return ['表达式格式错误'];\r\n \r\n let current = new Date();\r\n for (let i = 0; i < count && times.length < count; i++) {\r\n current = this.getNextTime(current, parts);\r\n if (current) {\r\n times.push(this.formatDate(current));\r\n current = new Date(current.getTime() + 1000);\r\n } else {\r\n break;\r\n }\r\n }\r\n return times.length > 0 ? times : ['无法计算执行时间'];\r\n } catch (e) {\r\n return ['表达式解析错误'];\r\n }\r\n },\r\n getNextTime(date, parts) {\r\n // 简化的下次执行时间计算\r\n const [second, minute, hour, day, month, week] = parts;\r\n let next = new Date(date);\r\n \r\n // 最多尝试365天\r\n for (let i = 0; i < 365 * 24 * 60; i++) {\r\n next.setSeconds(next.getSeconds() + 1);\r\n if (this.matchCron(next, parts)) {\r\n return next;\r\n }\r\n // 跳过不匹配的分钟\r\n if (!this.matchPart(next.getMinutes(), minute)) {\r\n next.setSeconds(0);\r\n continue;\r\n }\r\n }\r\n return null;\r\n },\r\n matchCron(date, parts) {\r\n const [second, minute, hour, day, month, week] = parts;\r\n return this.matchPart(date.getSeconds(), second) &&\r\n this.matchPart(date.getMinutes(), minute) &&\r\n this.matchPart(date.getHours(), hour) &&\r\n this.matchPart(date.getDate(), day) &&\r\n this.matchPart(date.getMonth() + 1, month) &&\r\n this.matchPart(date.getDay() || 7, week);\r\n },\r\n matchPart(value, pattern) {\r\n if (pattern === '*' || pattern === '?') return true;\r\n if (pattern.includes('/')) {\r\n const [start, step] = pattern.split('/').map(v => parseInt(v) || 0);\r\n return (value - start) % step === 0 && value >= start;\r\n }\r\n if (pattern.includes('-')) {\r\n const [min, max] = pattern.split('-').map(v => parseInt(v));\r\n return value >= min && value <= max;\r\n }\r\n if (pattern.includes(',')) {\r\n return pattern.split(',').map(v => parseInt(v)).includes(value);\r\n }\r\n return parseInt(pattern) === value;\r\n },\r\n formatDate(date) {\r\n const pad = n => String(n).padStart(2, '0');\r\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <el-input :prefix-icon=\"prefixIcon\"\r\n :suffix-icon=\"suffixIcon\"\r\n :placeholder=\"placeholder\"\r\n v-model=\"text\"\r\n :popper-class=\"popperClass\"\r\n :size=\"size\"\r\n ref=\"main\"\r\n @clear=\"handleClear\"\r\n :clearable=\"disabled?false:clearable\"\r\n :disabled=\"disabled\"\r\n @click=\"handleClick\"\r\n @focus=\"handleShow\">\r\n <template #append>\r\n <icon-temp @click=\"handleShow\"\r\n :text=\"text\"\r\n :size=\"28\"\r\n :small=\"size==='small'\"></icon-temp>\r\n\r\n </template>\r\n </el-input>\r\n <div v-if=\"box\">\r\n <el-dialog class=\"avue-dialog\"\r\n :title=\"placeholder\"\r\n :before-close=\"beforeClose\"\r\n :append-to-body=\"$AVUE.appendToBody\"\r\n lock-scroll\r\n v-model=\"box\"\r\n :width=\"dialogWidth\">\r\n <div :class=\"b('filter')\">\r\n <el-input :placeholder=\"validData(option.filterText,t('tip.input'))\"\r\n :size=\"size\"\r\n v-model=\"filterText\"></el-input>\r\n </div>\r\n <avue-tabs :option=\"option\"\r\n @change=\"handleTabs\"></avue-tabs>\r\n <div :class=\"b('list')\">\r\n <div :class=\"b('item')\"\r\n v-for=\"(item,index) in list\"\r\n @click=\"handleSubmit(item.value)\"\r\n :key=\"index\">\r\n <icon-temp :text=\"item.value\"\r\n :size=\"item.size\"\r\n :small=\"size==='small'\"\r\n :color=\"item.color\"></icon-temp>\r\n <p>{{item.label || item.value}}</p>\r\n </div> \r\n </div>\r\n </el-dialog>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport locale from \"core/locale\";\r\nimport iconTemp from 'common/components/icon/index';\r\nimport props from \"common/common/props.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>\n <div :class=\"b()\" :style=\"{ height: height }\">\n <!-- 已注入 vue3-ts-jsoneditor -->\n <component\n v-if=\"jsonEditorComponent\"\n :is=\"jsonEditorComponent\"\n v-model=\"jsonValue\"\n :mode=\"mode\"\n :height=\"editorHeight\"\n :read-only=\"disabled || readonly\"\n :main-menu-bar=\"mainMenuBar\"\n :navigation-bar=\"navigationBar\"\n :status-bar=\"statusBar\"\n :indentation=\"indentation\"\n :tab-size=\"tabSize\"\n :dark-theme=\"darkTheme\"\n v-bind=\"editorProps\"\n @change=\"onJsonChange\"\n @change-mode=\"onModeChange\"\n />\n <!-- 降级:简单 textarea -->\n <template v-else>\n <div :class=\"b('toolbar')\">\n <el-button size=\"small\" text @click=\"format\">格式化</el-button>\n <el-button size=\"small\" text @click=\"compact\">压缩</el-button>\n <span v-if=\"error\" :class=\"b('error')\">{{ error }}</span>\n </div>\n <textarea\n :class=\"b('area')\"\n v-model=\"rawText\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :placeholder=\"placeholder || '请输入 JSON'\"\n spellcheck=\"false\"\n @blur=\"onBlur\"\n />\n </template>\n </div>\n</template>\n\n<script>\nimport create from 'core/create'\nimport props from 'common/common/props.js'\nimport event from 'common/common/event.js'\n\nexport default create({\n name: 'input-json',\n mixins: [props(), event()],\n inject: {\n avueJsonEditor: { default: null }\n },\n props: {\n height: {\n type: String,\n default: '300px'\n },\n mode: {\n type: String,\n default: 'tree'\n },\n mainMenuBar: {\n type: Boolean,\n default: true\n },\n navigationBar: {\n type: Boolean,\n default: true\n },\n statusBar: {\n type: Boolean,\n default: true\n },\n indentation: {\n type: [Number, String],\n default: 2\n },\n tabSize: {\n type: Number,\n default: 4\n },\n darkTheme: {\n type: Boolean,\n default: false\n },\n editorProps: {\n type: Object,\n default: () => ({})\n }\n },\n data() {\n return {\n rawText: '',\n error: '',\n currentMode: this.mode\n }\n },\n computed: {\n jsonEditorComponent() {\n return this.avueJsonEditor || null\n },\n // vue3-ts-jsoneditor 的 height 需要去掉单位\n editorHeight() {\n if (!this.height) return undefined\n return this.height.replace('px', '')\n },\n jsonValue: {\n get() {\n const val = this.modelValue\n if (val === null || val === undefined || val === '') return {}\n if (typeof val === 'string') {\n try { return JSON.parse(val) } catch (e) { return {} }\n }\n return val\n },\n set(val) {\n this.$emit('update:modelValue', val)\n }\n }\n },\n watch: {\n // textarea 降级模式的数据同步\n modelValue: {\n handler(val) {\n if (this.jsonEditorComponent) return\n const str = this.toStr(val)\n if (str !== this.rawText) this.rawText = str\n },\n immediate: true\n }\n },\n methods: {\n // ---- vue3-ts-jsoneditor 事件 ----\n onJsonChange(content) {\n const val = content.json !== undefined ? content.json : content.text\n this.$emit('update:modelValue', val)\n this.bindEvent('change', { value: val })\n },\n onModeChange(mode) {\n this.currentMode = mode\n },\n // ---- textarea 降级模式 ----\n toStr(val) {\n if (val === null || val === undefined || val === '') return ''\n if (typeof val === 'string') return val\n return JSON.stringify(val, null, 2)\n },\n format() {\n try {\n if (!this.rawText.trim()) return\n this.rawText = JSON.stringify(JSON.parse(this.rawText), null, 2)\n this.error = ''\n } catch (e) {\n this.error = e.message\n }\n },\n compact() {\n try {\n if (!this.rawText.trim()) return\n this.rawText = JSON.stringify(JSON.parse(this.rawText))\n this.error = ''\n } catch (e) {\n this.error = e.message\n }\n },\n onBlur() {\n try {\n const val = this.rawText.trim() ? JSON.parse(this.rawText) : null\n this.error = ''\n this.$emit('update:modelValue', val)\n this.bindEvent('change', { value: val })\n } catch (e) {\n this.error = e.message\n }\n this.bindEvent('blur', { value: this.modelValue })\n }\n }\n})\n</script>\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>\n <div :class=\"b()\">\n <el-input\n :prefix-icon=\"prefixIcon\"\n :suffix-icon=\"suffixIcon\"\n :size=\"size\"\n :model-value=\"labelShow\"\n :clearable=\"disabled ? false : clearable\"\n :placeholder=\"placeholder\"\n ref=\"main\"\n @clear=\"handleClear\"\n @focus=\"handleShow\"\n @click=\"handleClick\"\n :disabled=\"disabled\"\n >\n </el-input>\n <el-dialog\n class=\"avue-dialog\"\n :class=\"b()\"\n :width=\"dialogWidth\"\n :before-close=\"handelBeforeClose\"\n :append-to-body=\"$AVUE.appendToBody\"\n lock-scroll\n destroy-on-close\n :title=\"placeholder\"\n v-model=\"box\"\n >\n <avue-crud\n :class=\"b('crud')\"\n ref=\"crud\"\n :option=\"option\"\n :data=\"data\"\n :table-loading=\"loading\"\n @on-load=\"onList\"\n @search-change=\"handleSearchChange\"\n @search-reset=\"handleSearchChange\"\n @select-all=\"handleSelectionAllChange\"\n @select=\"handleSelectionChange\"\n :rowClassName=\"handleRowClassName\"\n @current-row-change=\"handleCurrentChange\"\n v-model:search=\"search\"\n v-model:page=\"page\"\n ></avue-crud>\n <span class=\"avue-dialog__footer\">\n <el-button\n type=\"primary\"\n :size=\"size\"\n icon=\"el-icon-check\"\n @click=\"handleSubmit()\"\n >{{ t(\"common.submitBtn\") }}</el-button\n >\n </span>\n </el-dialog>\n </div>\n</template>\n\n<script>\nimport create from \"core/create\";\nimport props from \"common/common/props.js\";\nimport event from \"common/common/event.js\";\nimport locale from \"core/locale\";\nexport default create({\n name: \"input-table\",\n mixins: [props(), event(), locale],\n data() {\n return {\n object: [],\n active: [],\n search: {},\n page: {},\n loading: false,\n box: false,\n created: false,\n data: [],\n };\n },\n props: {\n beforeClose: Function,\n prefixIcon: {\n type: String,\n },\n suffixIcon: {\n type: String,\n },\n formatter: Function,\n onLoad: Function,\n children: {\n type: Object,\n default: () => {\n return {};\n },\n },\n dialogWidth: {\n type: String,\n default: \"80%\",\n },\n },\n computed: {\n isMultiple() {\n return this.multiple;\n },\n title() {\n return this.disabled || this.readonly ? \"查看\" : \"选择\";\n },\n labelShow() {\n if (typeof this.formatter == \"function\") {\n return this.formatter(\n this.isMultiple ? this.object : this.object[0] || {}\n );\n }\n return this.object.map((ele) => ele[this.labelKey]).join(\",\");\n },\n option() {\n return Object.assign(\n {\n menu: false,\n header: false,\n size: this.size,\n tip: false,\n headerAlign: \"center\",\n align: \"center\",\n highlightCurrentRow: !this.isMultiple,\n reserveSelection: this.isMultiple,\n selection: this.isMultiple,\n selectable: (row, index) => {\n return !row.disabled;\n },\n },\n this.children\n );\n },\n },\n methods: {\n handelBeforeClose(done) {\n const callback = () => {\n this.active = [];\n done();\n };\n if (typeof this.beforeClose === \"function\") {\n this.beforeClose(callback);\n } else {\n callback();\n }\n },\n handleSelectionAllChange(val) {\n let ids = this.data.map((ele) => ele[this.valueKey]);\n let list = val.filter((ele) => ids.includes(ele[this.valueKey]));\n this.data.forEach((row) => {\n let index = this.active.findIndex(\n (ele) => ele[this.valueKey] == row[this.valueKey]\n );\n if (list.length == 0) {\n if (index != -1) this.active.splice(index, 1);\n } else {\n if (index == -1) this.active.push(row);\n }\n });\n },\n handleSelectionChange(val, row) {\n let checkbox = val.find(\n (ele) => ele[this.valueKey] == row[this.valueKey]\n );\n if (checkbox) {\n this.active.push(row);\n } else {\n let index = this.active.findIndex(\n (ele) => ele[this.valueKey] == row[this.valueKey]\n );\n if (index != -1) this.active.splice(index, 1);\n }\n },\n handleModelValue(val) {\n if (this.validatenull(val)) {\n this.active = [];\n this.object = [];\n }\n },\n handleTextValue(val) {\n if (typeof this.onLoad == \"function\") {\n this.onLoad({ value: this.text }, (data) => {\n let result = Array.isArray(data) ? data : [data];\n const valArray = Array.isArray(val) ? val : [val];\n const activeObjArray = valArray && valArray.length\n ? result.filter((item) =>valArray.some((val) => val === item[this.valueKey]))\n : [];\n this.active = this.deepClone(activeObjArray)\n\n const activeObjArray2 = valArray && valArray.length\n ? valArray.map((item) =>{\n const resultIndex = result.findIndex((val) => item === val[this.valueKey])\n return resultIndex < 0 ? {[this.labelKey]: item, [this.valueKey]: item} : result[resultIndex]\n })\n : [];\n this.object = this.deepClone(activeObjArray2)\n });\n }\n },\n handleClear() {\n this.setVal([]);\n this.box = false;\n },\n handleShow() {\n this.$refs.main.blur();\n if (this.disabled || this.readonly) return;\n this.search = {};\n this.page = {\n currentPage: 1,\n total: 0,\n };\n this.data = [];\n this.box = true;\n },\n handleSubmit() {\n const callback = () => {\n this.setVal();\n };\n if (typeof this.beforeClose === \"function\") {\n this.beforeClose(callback);\n } else {\n callback();\n }\n },\n setVal(value) {\n this.object = this.deepClone(value || this.active);\n this.text = this.object.map((ele) => ele[this.valueKey]);\n this.box = false;\n },\n handleRowClassName({ row, rowIndex }) {\n if (row[this.disabledKey]) return \"disabled\";\n },\n handleCurrentChange(val) {\n if (!val) return;\n if (this.isMultiple) {\n this.$refs.crud.setCurrentRow(null);\n } else {\n if (val[this.disabledKey]) {\n this.$refs.crud.setCurrentRow(this.active[0]);\n } else {\n this.active = [val];\n }\n }\n },\n handleSearchChange(form, done) {\n this.loading = true;\n this.page.currentPage = 1;\n this.onList({}, () => {\n done && done();\n });\n },\n onList(params, callback) {\n this.loading = true;\n if (typeof this.onLoad == \"function\") {\n this.onLoad({ page: this.page, data: this.search }, (data) => {\n callback && callback();\n this.page.total = data.total;\n this.data = data.data;\n this.loading = false;\n if (this.isMultiple) {\n let ids = this.object.map((ele) => ele[this.valueKey]);\n let data = this.data.filter((ele) =>\n ids.includes(ele[this.valueKey])\n );\n this.$nextTick(() => {\n this.$refs.crud.toggleSelection(data, true);\n });\n } else {\n let active = this.data.find(\n (ele) => ele[this.valueKey] == this.text\n );\n setTimeout(() => {\n this.$refs.crud.setCurrentRow(active);\n });\n }\n });\n }\n },\n },\n});\n</script>\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 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 if (!this.parent) {\r\n this.disabledParentNode(this.netDic);\r\n }\r\n },\r\n disabledParentNode (dic) {\r\n dic.forEach(ele => {\r\n const children = ele[this.childrenKey];\r\n if (!this.validatenull(children)) {\r\n if (ele.disabled !== true) {\r\n ele.disabled = true;\r\n }\r\n this.disabledParentNode(children);\r\n }\r\n });\r\n },\r\n checkChange (checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys) {\r\n if (typeof this.checked === \"function\") this.checked(checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys);\r\n },\r\n handleNodeClick (data, node, nodeComp) {\r\n if (typeof this.nodeClick === \"function\") this.nodeClick(data, node, nodeComp);\r\n },\r\n handleLoad (node, resolve) {\r\n let callback = (list) => {\r\n let findDic = (list, value, children) => {\r\n list.forEach(ele => {\r\n if (ele[this.valueKey] == value) {\r\n ele[this.childrenKey] = children\r\n } else if (ele[this.childrenKey]) {\r\n findDic(ele[this.childrenKey])\r\n }\r\n })\r\n }\r\n findDic(this.netDic, node.key, list)\r\n resolve(list);\r\n }\r\n this.treeLoad && this.treeLoad(node, callback)\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\">\r\n <!-- 手机号输入(带国际区号,需要特殊布局) -->\r\n <template v-if=\"isPhone\">\r\n <div class=\"avue-input__phone\">\r\n <el-select v-model=\"phoneCode\"\r\n class=\"avue-input__phone-code\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n :placeholder=\"phoneCodePlaceholder\"\r\n filterable\r\n style=\"width: 120px;\">\r\n <el-option v-for=\"item in phoneCodeList\"\r\n :key=\"item.code\"\r\n :label=\"item.label\"\r\n :value=\"item.code\">\r\n <span style=\"float: left\">{{ item.name }}</span>\r\n <span style=\"float: right; color: #8492a6; font-size: 12px\">{{ item.code }}</span>\r\n </el-option>\r\n </el-select>\r\n <el-input class=\"avue-input__phone-input\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\r\n v-model=\"phoneNumber\"\r\n @keyup.enter=\"isSearch?appendClick(text):''\"\r\n @click=\"handleClick\"\r\n :maxlength=\"phoneMaxLength\"\r\n :prefix-icon=\"prefixIcon\"\r\n :suffix-icon=\"suffixIcon\"\r\n :readonly=\"readonly\"\r\n :placeholder=\"phonePlaceholder\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handlePhoneBlur\"\r\n :disabled=\"disabled\"\r\n style=\"flex: 1;\">\r\n </el-input>\r\n </div>\r\n </template>\r\n\r\n <!-- 验证码输入(分段输入框) -->\r\n <template v-else-if=\"isCode\">\r\n <div class=\"avue-input__code\">\r\n <input v-for=\"(val, index) in codeValues\"\r\n :key=\"index\"\r\n type=\"text\"\r\n maxlength=\"1\"\r\n class=\"avue-input__code-item\"\r\n :class=\"{ 'is-disabled': disabled }\"\r\n :value=\"val\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n @input=\"handleCodeInput($event, index)\"\r\n @keydown=\"handleCodeKeydown($event, index)\"\r\n @paste=\"handleCodePaste($event)\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :ref=\"el => codeRefs[index] = el\" />\r\n </div>\r\n </template>\r\n\r\n <!-- 车牌号输入(省份选择 + 车牌号) -->\r\n <template v-else-if=\"isPlate\">\r\n <div class=\"avue-input__plate\">\r\n <el-select v-model=\"plateProvince\"\r\n class=\"avue-input__plate-province\"\r\n :size=\"size\"\r\n :disabled=\"disabled\"\r\n style=\"width: 70px;\">\r\n <el-option v-for=\"item in plateProvinceList\"\r\n :key=\"item\"\r\n :label=\"item\"\r\n :value=\"item\" />\r\n </el-select>\r\n <el-input class=\"avue-input__plate-number\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\r\n v-model=\"plateNumber\"\r\n @click=\"handleClick\"\r\n :maxlength=\"7\"\r\n :readonly=\"readonly\"\r\n :placeholder=\"platePlaceholder\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handlePlateBlur\"\r\n @input=\"handlePlateInput\"\r\n :disabled=\"disabled\"\r\n style=\"flex: 1;\">\r\n </el-input>\r\n </div>\r\n </template>\r\n\r\n <!-- IP地址输入(4段输入框) -->\r\n <template v-else-if=\"isIp\">\r\n <div class=\"avue-input__ip\">\r\n <template v-for=\"(seg, index) in ipSegments\" :key=\"index\">\r\n <input type=\"text\"\r\n class=\"avue-input__ip-segment\"\r\n :class=\"{ 'is-disabled': disabled }\"\r\n maxlength=\"3\"\r\n :value=\"seg\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n @input=\"handleIpInput($event, index)\"\r\n @keydown=\"handleIpKeydown($event, index)\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :ref=\"el => ipRefs[index] = el\" />\r\n <span v-if=\"index < 3\" class=\"avue-input__ip-dot\">.</span>\r\n </template>\r\n </div>\r\n </template>\r\n\r\n <!-- MAC地址输入(6段输入框) -->\r\n <template v-else-if=\"isMac\">\r\n <div class=\"avue-input__mac\">\r\n <template v-for=\"(seg, index) in macSegments\" :key=\"index\">\r\n <input type=\"text\"\r\n class=\"avue-input__mac-segment\"\r\n :class=\"{ 'is-disabled': disabled }\"\r\n maxlength=\"2\"\r\n :value=\"seg\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n @input=\"handleMacInput($event, index)\"\r\n @keydown=\"handleMacKeydown($event, index)\"\r\n @focus=\"handleFocus\"\r\n @blur=\"handleBlur\"\r\n :ref=\"el => macRefs[index] = el\" />\r\n <span v-if=\"index < 5\" class=\"avue-input__mac-sep\">{{ macSeparator }}</span>\r\n </template>\r\n </div>\r\n </template>\r\n\r\n <!-- 统一输入框(货币、银行卡、身份证、邮箱、社会信用代码、默认类型) -->\r\n <template v-else>\r\n <el-input :class=\"inputClass\"\r\n :size=\"size\"\r\n :clearable=\"clearableVal\"\r\n v-model=\"inputValue\"\r\n @keyup.enter=\"isSearch?appendClick(text):''\"\r\n @click=\"handleClick\"\r\n :type=\"inputType\"\r\n :maxlength=\"inputMaxlength\"\r\n :minlength=\"minlength\"\r\n :show-password=\"typeParam=='password'?showPassword:false\"\r\n :rows=\"rows\"\r\n :autosize=\"{ minRows: minRows, maxRows: maxRows}\"\r\n :prefix-icon=\"inputPrefixIcon\"\r\n :suffix-icon=\"inputSuffixIcon\"\r\n :readonly=\"readonly\"\r\n :placeholder=\"inputPlaceholder\"\r\n :show-word-limit=\"isDefault && showWordLimit\"\r\n @focus=\"onFocus\"\r\n @blur=\"onBlur\"\r\n @input=\"onInput\"\r\n :disabled=\"disabled\"\r\n :autocomplete=\"autocomplete\"\r\n :formatter=\"isDefault ? formatters : undefined\"\r\n :parser=\"isDefault ? parser : undefined\">\r\n <!-- 前置内容 -->\r\n <template #prepend v-if=\"showPrepend\">\r\n <span @click=\"prependClick && prependClick(text)\">{{ prependText }}</span>\r\n </template>\r\n <!-- 后置内容 -->\r\n <template #append v-if=\"showAppend\">\r\n <span @click=\"appendClick && appendClick(text)\">{{ appendText }}</span>\r\n </template>\r\n <template #append v-else-if=\"isSearch\">\r\n <el-button icon=\"el-icon-search\" @click=\"appendClick(text)\"></el-button>\r\n </template>\r\n <!-- 后缀内容 - 银行卡类型 -->\r\n <template #suffix v-if=\"isBankCard && showBankCardType && bankCardType\">\r\n <span class=\"avue-input__bank-card-type\">{{ bankCardType }}</span>\r\n </template>\r\n <!-- 后缀内容 - 身份证信息 -->\r\n <template #suffix v-else-if=\"isIdCard && showIdCardInfo && idCardInfo\">\r\n <el-tooltip :content=\"idCardInfoText\" placement=\"top\">\r\n <span class=\"avue-input__id-card-info\">\r\n {{ idCardValid ? '✓' : '✗' }}\r\n </span>\r\n </el-tooltip>\r\n </template>\r\n <!-- 后缀内容 - 邮箱验证 -->\r\n <template #suffix v-else-if=\"isEmail && emailValid !== null\">\r\n <span class=\"avue-input__email-valid\">{{ emailValid ? '✓' : '✗' }}</span>\r\n </template>\r\n <!-- 后缀内容 - 社会信用代码验证 -->\r\n <template #suffix v-else-if=\"isUscc && usccValid !== null\">\r\n <span class=\"avue-input__uscc-valid\">{{ usccValid ? '✓' : '✗' }}</span>\r\n </template>\r\n </el-input>\r\n </template>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport props from \"common/common/props.js\";\r\nimport event from \"common/common/event.js\";\r\n\r\n// 国际电话区号列表\r\nconst defaultPhoneCodeList = [\r\n { code: '+86', name: '中国', label: '🇨🇳 +86' },\r\n { code: '+852', name: '香港', label: '🇭🇰 +852' },\r\n { code: '+853', name: '澳门', label: '🇲🇴 +853' },\r\n { code: '+886', name: '台湾', label: '🇹🇼 +886' },\r\n { code: '+1', name: '美国/加拿大', label: '🇺🇸 +1' },\r\n { code: '+44', name: '英国', label: '🇬🇧 +44' },\r\n { code: '+81', name: '日本', label: '🇯🇵 +81' },\r\n { code: '+82', name: '韩国', label: '🇰🇷 +82' },\r\n { code: '+65', name: '新加坡', label: '🇸🇬 +65' },\r\n { code: '+61', name: '澳大利亚', label: '🇦🇺 +61' },\r\n { code: '+49', name: '德国', label: '🇩🇪 +49' },\r\n { code: '+33', name: '法国', label: '🇫🇷 +33' },\r\n { code: '+39', name: '意大利', label: '🇮🇹 +39' },\r\n { code: '+7', name: '俄罗斯', label: '🇷🇺 +7' },\r\n { code: '+91', name: '印度', label: '🇮🇳 +91' },\r\n { code: '+55', name: '巴西', label: '🇧🇷 +55' },\r\n { code: '+34', name: '西班牙', label: '🇪🇸 +34' },\r\n { code: '+31', name: '荷兰', label: '🇳🇱 +31' },\r\n { code: '+41', name: '瑞士', label: '🇨🇭 +41' },\r\n { code: '+46', name: '瑞典', label: '🇸🇪 +46' },\r\n { code: '+60', name: '马来西亚', label: '🇲🇾 +60' },\r\n { code: '+66', name: '泰国', label: '🇹🇭 +66' },\r\n { code: '+84', name: '越南', label: '🇻🇳 +84' },\r\n { code: '+62', name: '印尼', label: '🇮🇩 +62' },\r\n { code: '+63', name: '菲律宾', label: '🇵🇭 +63' }\r\n];\r\n\r\n// 货币符号映射\r\nconst currencySymbols = {\r\n CNY: '¥',\r\n USD: '$',\r\n EUR: '€',\r\n GBP: '£',\r\n JPY: '¥',\r\n HKD: 'HK$',\r\n KRW: '₩',\r\n SGD: 'S$',\r\n AUD: 'A$',\r\n CAD: 'C$'\r\n};\r\n\r\nexport default create({\r\n name: \"input\",\r\n mixins: [props(), event()],\r\n emits: ['update:modelValue', 'click', 'focus', 'blur', 'change', 'id-card-valid', 'code-complete', 'uscc-valid'],\r\n data() {\r\n return {\r\n // 手机号相关\r\n phoneCode: '+86',\r\n phoneNumber: '',\r\n // 货币相关\r\n currencyDisplay: '',\r\n currencyEditing: false,\r\n // 银行卡相关\r\n bankCardDisplay: '',\r\n bankCardType: '',\r\n // 身份证相关\r\n idCardDisplay: '',\r\n idCardValid: null,\r\n idCardInfo: null,\r\n // 邮箱相关\r\n emailDisplay: '',\r\n emailValid: null,\r\n showEmailSuggestions: false,\r\n // 验证码相关\r\n codeValues: [],\r\n codeRefs: [],\r\n // 车牌号相关\r\n plateProvince: '京',\r\n plateNumber: '',\r\n // IP地址相关\r\n ipSegments: ['', '', '', ''],\r\n ipRefs: [],\r\n // MAC地址相关\r\n macSegments: ['', '', '', '', '', ''],\r\n macRefs: [],\r\n // 社会信用代码相关\r\n usccDisplay: '',\r\n usccValid: null\r\n };\r\n },\r\n props: {\r\n showPassword: {\r\n type: Boolean,\r\n default: true\r\n },\r\n showWordLimit: {\r\n type: Boolean,\r\n default: false\r\n },\r\n target: {\r\n type: String,\r\n default: ' _blank'\r\n },\r\n prefixIcon: {\r\n type: String\r\n },\r\n suffixIcon: {\r\n type: String\r\n },\r\n prependClick: {\r\n type: Function\r\n },\r\n prepend: {\r\n type: String\r\n },\r\n appendClick: {\r\n type: Function\r\n },\r\n formatters: {\r\n type: Function\r\n },\r\n parser: {\r\n type: Function\r\n },\r\n append: {\r\n type: String\r\n },\r\n minlength: [String, Number],\r\n maxlength: [String, Number],\r\n rows: Number,\r\n minRows: {\r\n type: Number,\r\n default: 5\r\n },\r\n maxRows: {\r\n type: Number,\r\n default: 10\r\n },\r\n autocomplete: {\r\n type: String\r\n },\r\n // ========== 手机号相关配置 ==========\r\n // 默认区号\r\n defaultPhoneCode: {\r\n type: String,\r\n default: '+86'\r\n },\r\n // 区号列表\r\n phoneCodeOptions: {\r\n type: Array,\r\n default: () => []\r\n },\r\n // 手机号最大长度\r\n phoneMaxLength: {\r\n type: Number,\r\n default: 11\r\n },\r\n // 区号选择器占位符\r\n phoneCodePlaceholder: {\r\n type: String,\r\n default: '区号'\r\n },\r\n // 手机号输入框占位符\r\n phonePlaceholder: {\r\n type: String,\r\n default: '请输入手机号'\r\n },\r\n \r\n // ========== 货币相关配置 ==========\r\n // 货币类型\r\n currency: {\r\n type: String,\r\n default: 'CNY'\r\n },\r\n // 自定义货币符号\r\n currencySymbolCustom: {\r\n type: String,\r\n default: ''\r\n },\r\n // 货币单位(如:元、万元)\r\n currencyUnit: {\r\n type: String,\r\n default: ''\r\n },\r\n // 小数位数\r\n currencyPrecision: {\r\n type: Number,\r\n default: 2\r\n },\r\n // 货币占位符\r\n currencyPlaceholder: {\r\n type: String,\r\n default: '请输入金额'\r\n },\r\n // 最小值\r\n currencyMin: {\r\n type: Number,\r\n default: undefined\r\n },\r\n // 最大值\r\n currencyMax: {\r\n type: Number,\r\n default: undefined\r\n },\r\n \r\n // ========== 银行卡相关配置 ==========\r\n // 分隔符\r\n bankCardSeparator: {\r\n type: String,\r\n default: ' '\r\n },\r\n // 分段长度\r\n bankCardSegment: {\r\n type: Number,\r\n default: 4\r\n },\r\n // 银行卡最大长度(不含分隔符)\r\n bankCardMaxDigits: {\r\n type: Number,\r\n default: 19\r\n },\r\n // 银行卡占位符\r\n bankCardPlaceholder: {\r\n type: String,\r\n default: '请输入银行卡号'\r\n },\r\n // 是否显示银行卡类型\r\n showBankCardType: {\r\n type: Boolean,\r\n default: true\r\n },\r\n \r\n // ========== 身份证相关配置 ==========\r\n // 身份证占位符\r\n idCardPlaceholder: {\r\n type: String,\r\n default: '请输入身份证号'\r\n },\r\n // 是否显示身份证信息\r\n showIdCardInfo: {\r\n type: Boolean,\r\n default: true\r\n },\r\n // 是否实时校验\r\n idCardRealtimeValidate: {\r\n type: Boolean,\r\n default: true\r\n },\r\n \r\n // ========== 邮箱相关配置 ==========\r\n emailPlaceholder: {\r\n type: String,\r\n default: '请输入邮箱'\r\n },\r\n // 邮箱后缀建议列表\r\n emailSuffixes: {\r\n type: Array,\r\n default: () => ['@qq.com', '@163.com', '@126.com', '@gmail.com', '@outlook.com', '@hotmail.com', '@sina.com', '@sohu.com', '@foxmail.com', '@icloud.com']\r\n },\r\n // 是否显示邮箱建议\r\n showEmailSuffix: {\r\n type: Boolean,\r\n default: true\r\n },\r\n \r\n // ========== 验证码相关配置 ==========\r\n codePlaceholder: {\r\n type: String,\r\n default: ''\r\n },\r\n // 验证码长度\r\n codeLength: {\r\n type: Number,\r\n default: 6\r\n },\r\n // 验证码分隔符\r\n codeSeparator: {\r\n type: String,\r\n default: ''\r\n },\r\n \r\n // ========== 车牌号相关配置 ==========\r\n platePlaceholder: {\r\n type: String,\r\n default: '请输入车牌号'\r\n },\r\n // 默认省份\r\n defaultPlateProvince: {\r\n type: String,\r\n default: '京'\r\n },\r\n // 省份列表\r\n plateProvinceList: {\r\n type: Array,\r\n default: () => ['京', '津', '沪', '渝', '冀', '豫', '云', '辽', '黑', '湘', '皖', '鲁', '新', '苏', '浙', '赣', '鄂', '桂', '甘', '晋', '蒙', '陕', '吉', '闽', '贵', '粤', '川', '青', '藏', '琼', '宁', '港', '澳', '台']\r\n },\r\n \r\n // ========== IP地址相关配置 ==========\r\n ipPlaceholder: {\r\n type: String,\r\n default: '请输入IP地址'\r\n },\r\n // IP版本 (4 或 6)\r\n ipVersion: {\r\n type: Number,\r\n default: 4\r\n },\r\n \r\n // ========== MAC地址相关配置 ==========\r\n macPlaceholder: {\r\n type: String,\r\n default: '请输入MAC地址'\r\n },\r\n // MAC分隔符\r\n macSeparator: {\r\n type: String,\r\n default: ':'\r\n },\r\n \r\n // ========== 社会信用代码相关配置 ==========\r\n usccPlaceholder: {\r\n type: String,\r\n default: '请输入统一社会信用代码'\r\n },\r\n // 是否实时校验\r\n usccRealtimeValidate: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n computed: {\r\n isSearch() {\r\n return this.type === 'search';\r\n },\r\n isPhone() {\r\n return this.type === 'phone';\r\n },\r\n isCurrency() {\r\n return this.type === 'currency';\r\n },\r\n isBankCard() {\r\n return this.type === 'bankCard' || this.type === 'bank-card';\r\n },\r\n isIdCard() {\r\n return this.type === 'idCard' || this.type === 'id-card';\r\n },\r\n isEmail() {\r\n return this.type === 'email';\r\n },\r\n isCode() {\r\n return this.type === 'code';\r\n },\r\n isPlate() {\r\n return this.type === 'plate';\r\n },\r\n isIp() {\r\n return this.type === 'ip';\r\n },\r\n isMac() {\r\n return this.type === 'mac';\r\n },\r\n isUscc() {\r\n return this.type === 'uscc';\r\n },\r\n isDefault() {\r\n return !this.isPhone && !this.isCurrency && !this.isBankCard && !this.isIdCard && \r\n !this.isEmail && !this.isCode && !this.isPlate && !this.isIp && !this.isMac && !this.isUscc;\r\n },\r\n typeParam() {\r\n if (this.type === \"textarea\") {\r\n return \"textarea\";\r\n } else if (this.type === \"password\") {\r\n return \"password\";\r\n } else {\r\n return \"text\";\r\n }\r\n },\r\n // ========== 统一输入框计算属性 ==========\r\n inputClass() {\r\n if (this.isCurrency) return this.b('currency');\r\n if (this.isBankCard) return this.b('bank-card');\r\n if (this.isIdCard) return [this.b('id-card'), this.idCardValid === false ? this.b('id-card--invalid') : ''];\r\n return '';\r\n },\r\n inputValue: {\r\n get() {\r\n if (this.isCurrency) return this.currencyDisplay;\r\n if (this.isBankCard) return this.bankCardDisplay;\r\n if (this.isIdCard) return this.idCardDisplay;\r\n if (this.isEmail) return this.emailDisplay;\r\n if (this.isUscc) return this.usccDisplay;\r\n return this.text;\r\n },\r\n set(val) {\r\n if (this.isCurrency) this.currencyDisplay = val;\r\n else if (this.isBankCard) this.bankCardDisplay = val;\r\n else if (this.isIdCard) this.idCardDisplay = val;\r\n else if (this.isEmail) this.emailDisplay = val;\r\n else if (this.isUscc) this.usccDisplay = val;\r\n else this.text = val;\r\n }\r\n },\r\n inputType() {\r\n if (this.isEmail) return 'email';\r\n return this.isDefault ? this.typeParam : 'text';\r\n },\r\n inputMaxlength() {\r\n if (this.isBankCard) return this.bankCardMaxLength;\r\n if (this.isIdCard) return 18;\r\n if (this.isUscc) return 18;\r\n return this.maxlength;\r\n },\r\n inputPrefixIcon() {\r\n return this.prefixIcon;\r\n },\r\n inputSuffixIcon() {\r\n if (this.isIdCard) return this.idCardSuffixIcon;\r\n return this.suffixIcon;\r\n },\r\n inputPlaceholder() {\r\n if (this.isCurrency) return this.currencyPlaceholder;\r\n if (this.isBankCard) return this.bankCardPlaceholder;\r\n if (this.isIdCard) return this.idCardPlaceholder;\r\n if (this.isEmail) return this.emailPlaceholder;\r\n if (this.isUscc) return this.usccPlaceholder;\r\n return this.placeholder;\r\n },\r\n showPrepend() {\r\n if (this.isCurrency) return !!this.currencySymbol;\r\n return !!this.prepend;\r\n },\r\n prependText() {\r\n if (this.isCurrency) return this.currencySymbol;\r\n return this.prepend;\r\n },\r\n showAppend() {\r\n if (this.isCurrency) return !!this.currencyUnit;\r\n return !!this.append;\r\n },\r\n appendText() {\r\n if (this.isCurrency) return this.currencyUnit;\r\n return this.append;\r\n },\r\n showSuffix() {\r\n return (this.isBankCard && this.showBankCardType && this.bankCardType) ||\r\n (this.isIdCard && this.showIdCardInfo && this.idCardInfo) ||\r\n (this.isEmail && this.emailValid !== null) ||\r\n (this.isUscc && this.usccValid !== null);\r\n },\r\n // ========== 原有计算属性 ==========\r\n // 手机区号列表\r\n phoneCodeList() {\r\n return this.phoneCodeOptions.length > 0 ? this.phoneCodeOptions : defaultPhoneCodeList;\r\n },\r\n // 货币符号\r\n currencySymbol() {\r\n if (this.currencySymbolCustom) {\r\n return this.currencySymbolCustom;\r\n }\r\n return currencySymbols[this.currency] || '¥';\r\n },\r\n // 银行卡最大长度(含分隔符)\r\n bankCardMaxLength() {\r\n const digits = this.bankCardMaxDigits;\r\n const separatorCount = Math.floor((digits - 1) / this.bankCardSegment);\r\n return digits + separatorCount;\r\n },\r\n // 身份证后缀图标\r\n idCardSuffixIcon() {\r\n if (this.suffixIcon) return this.suffixIcon;\r\n if (this.idCardValid === true) return 'el-icon-success';\r\n if (this.idCardValid === false) return 'el-icon-warning';\r\n return '';\r\n },\r\n // 身份证信息文本\r\n idCardInfoText() {\r\n if (!this.idCardInfo) return '';\r\n return `${this.idCardInfo.region} | ${this.idCardInfo.birthday} | ${this.idCardInfo.gender}`;\r\n }\r\n },\r\n watch: {\r\n modelValue: {\r\n immediate: true,\r\n handler(val) {\r\n this.initSpecialValue(val);\r\n }\r\n },\r\n phoneCode(val) {\r\n this.updatePhoneValue();\r\n },\r\n phoneNumber(val) {\r\n // 只允许数字\r\n this.phoneNumber = val.replace(/\\D/g, '');\r\n this.updatePhoneValue();\r\n },\r\n defaultPhoneCode: {\r\n immediate: true,\r\n handler(val) {\r\n if (!this.modelValue) {\r\n this.phoneCode = val;\r\n }\r\n }\r\n }\r\n },\r\n methods: {\r\n // ========== 统一事件处理 ==========\r\n onFocus(event) {\r\n if (this.isCurrency) {\r\n this.handleCurrencyFocus(event);\r\n } else {\r\n this.handleFocus(event);\r\n }\r\n },\r\n onBlur(event) {\r\n if (this.isCurrency) {\r\n this.handleCurrencyBlur(event);\r\n } else if (this.isIdCard) {\r\n this.handleIdCardBlur(event);\r\n } else if (this.isEmail) {\r\n this.handleEmailBlur(event);\r\n } else if (this.isUscc) {\r\n this.handleUsccBlur(event);\r\n } else {\r\n this.handleBlur(event);\r\n }\r\n },\r\n onInput(val) {\r\n if (this.isCurrency) {\r\n this.handleCurrencyInput(val);\r\n } else if (this.isBankCard) {\r\n this.handleBankCardInput(val);\r\n } else if (this.isIdCard) {\r\n this.handleIdCardInput(val);\r\n } else if (this.isEmail) {\r\n this.handleEmailInput(val);\r\n } else if (this.isUscc) {\r\n this.handleUsccInput(val);\r\n }\r\n },\r\n // 初始化特殊类型的值\r\n initSpecialValue(val) {\r\n if (this.isPhone) {\r\n this.initPhoneValue(val);\r\n } else if (this.isCurrency) {\r\n this.initCurrencyValue(val);\r\n } else if (this.isBankCard) {\r\n this.initBankCardValue(val);\r\n } else if (this.isIdCard) {\r\n this.initIdCardValue(val);\r\n } else if (this.isEmail) {\r\n this.initEmailValue(val);\r\n } else if (this.isCode) {\r\n this.initCodeValue(val);\r\n } else if (this.isPlate) {\r\n this.initPlateValue(val);\r\n } else if (this.isIp) {\r\n this.initIpValue(val);\r\n } else if (this.isMac) {\r\n this.initMacValue(val);\r\n } else if (this.isUscc) {\r\n this.initUsccValue(val);\r\n }\r\n },\r\n \r\n // ========== 手机号相关方法 ==========\r\n initPhoneValue(val) {\r\n if (!val) {\r\n this.phoneCode = this.defaultPhoneCode;\r\n this.phoneNumber = '';\r\n return;\r\n }\r\n // 支持格式:+86-13800138000 或 +8613800138000 或纯手机号\r\n const str = String(val);\r\n const match = str.match(/^(\\+\\d+)[-\\s]?(\\d+)$/);\r\n if (match) {\r\n this.phoneCode = match[1];\r\n this.phoneNumber = match[2];\r\n } else {\r\n this.phoneNumber = str.replace(/\\D/g, '');\r\n }\r\n },\r\n updatePhoneValue() {\r\n const value = this.phoneNumber ? `${this.phoneCode}-${this.phoneNumber}` : '';\r\n this.text = value;\r\n\r\n },\r\n handlePhoneBlur(event) {\r\n this.handleBlur(event);\r\n },\r\n \r\n // ========== 货币相关方法 ==========\r\n initCurrencyValue(val) {\r\n if (val === undefined || val === null || val === '') {\r\n this.currencyDisplay = '';\r\n return;\r\n }\r\n const num = parseFloat(val);\r\n if (!isNaN(num)) {\r\n this.currencyDisplay = this.formatCurrency(num);\r\n }\r\n },\r\n formatCurrency(value) {\r\n if (value === undefined || value === null || value === '') return '';\r\n const num = parseFloat(value);\r\n if (isNaN(num)) return '';\r\n // 格式化为千分位\r\n const fixed = num.toFixed(this.currencyPrecision);\r\n const parts = fixed.split('.');\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n return parts.join('.');\r\n },\r\n parseCurrency(value) {\r\n if (!value) return '';\r\n // 移除千分位分隔符\r\n return value.replace(/,/g, '');\r\n },\r\n handleCurrencyFocus(event) {\r\n this.currencyEditing = true;\r\n // 编辑时显示原始数字\r\n if (this.text) {\r\n this.currencyDisplay = this.text;\r\n }\r\n this.handleFocus(event);\r\n },\r\n handleCurrencyBlur(event) {\r\n this.currencyEditing = false;\r\n const rawValue = this.parseCurrency(this.currencyDisplay);\r\n let num = parseFloat(rawValue);\r\n \r\n // 范围限制\r\n if (!isNaN(num)) {\r\n if (this.currencyMin !== undefined && num < this.currencyMin) {\r\n num = this.currencyMin;\r\n }\r\n if (this.currencyMax !== undefined && num > this.currencyMax) {\r\n num = this.currencyMax;\r\n }\r\n this.text = num.toFixed(this.currencyPrecision);\r\n this.currencyDisplay = this.formatCurrency(num);\r\n } else {\r\n this.text = '';\r\n this.currencyDisplay = '';\r\n }\r\n \r\n\r\n this.handleBlur(event);\r\n },\r\n handleCurrencyInput(val) {\r\n // 只允许数字、小数点和逗号\r\n this.currencyDisplay = val.replace(/[^\\d.,]/g, '');\r\n },\r\n \r\n // ========== 银行卡相关方法 ==========\r\n initBankCardValue(val) {\r\n if (!val) {\r\n this.bankCardDisplay = '';\r\n this.bankCardType = '';\r\n return;\r\n }\r\n const digits = String(val).replace(/\\D/g, '');\r\n this.bankCardDisplay = this.formatBankCard(digits);\r\n this.detectBankCardType(digits);\r\n },\r\n formatBankCard(value) {\r\n if (!value) return '';\r\n const digits = value.replace(/\\D/g, '');\r\n const chunks = [];\r\n for (let i = 0; i < digits.length; i += this.bankCardSegment) {\r\n chunks.push(digits.slice(i, i + this.bankCardSegment));\r\n }\r\n return chunks.join(this.bankCardSeparator);\r\n },\r\n handleBankCardInput(val) {\r\n // 只允许数字和分隔符\r\n const digits = val.replace(/\\D/g, '').slice(0, this.bankCardMaxDigits);\r\n this.bankCardDisplay = this.formatBankCard(digits);\r\n this.text = digits;\r\n this.detectBankCardType(digits);\r\n this.$emit('bank-card-change', { value: digits, display: this.bankCardDisplay, type: this.bankCardType });\r\n },\r\n detectBankCardType(cardNumber) {\r\n if (!cardNumber || cardNumber.length < 6) {\r\n this.bankCardType = '';\r\n return;\r\n }\r\n // 根据 BIN 码判断银行卡类型(简化版)\r\n const bin = cardNumber.slice(0, 6);\r\n const bin4 = cardNumber.slice(0, 4);\r\n \r\n // 常见银行卡 BIN 码判断\r\n if (/^62/.test(bin)) {\r\n this.bankCardType = '银联卡';\r\n } else if (/^4/.test(bin)) {\r\n this.bankCardType = 'VISA';\r\n } else if (/^5[1-5]/.test(bin) || /^2[2-7]/.test(bin)) {\r\n this.bankCardType = 'MasterCard';\r\n } else if (/^3[47]/.test(bin)) {\r\n this.bankCardType = 'American Express';\r\n } else if (/^35/.test(bin)) {\r\n this.bankCardType = 'JCB';\r\n } else if (/^6011|65/.test(bin)) {\r\n this.bankCardType = 'Discover';\r\n } else {\r\n this.bankCardType = '';\r\n }\r\n },\r\n \r\n // ========== 身份证相关方法 ==========\r\n initIdCardValue(val) {\r\n if (!val) {\r\n this.idCardDisplay = '';\r\n this.idCardValid = null;\r\n this.idCardInfo = null;\r\n return;\r\n }\r\n this.idCardDisplay = String(val).toUpperCase();\r\n if (this.idCardRealtimeValidate) {\r\n this.validateIdCard(this.idCardDisplay);\r\n }\r\n },\r\n handleIdCardInput(val) {\r\n // 只允许数字和 X\r\n this.idCardDisplay = val.replace(/[^\\dXx]/g, '').toUpperCase().slice(0, 18);\r\n this.text = this.idCardDisplay;\r\n \r\n if (this.idCardRealtimeValidate && this.idCardDisplay.length === 18) {\r\n this.validateIdCard(this.idCardDisplay);\r\n } else {\r\n this.idCardValid = null;\r\n this.idCardInfo = null;\r\n }\r\n \r\n this.$emit('id-card-change', { \r\n value: this.idCardDisplay, \r\n valid: this.idCardValid, \r\n info: this.idCardInfo \r\n });\r\n },\r\n handleIdCardBlur(event) {\r\n if (this.idCardDisplay && this.idCardDisplay.length === 18) {\r\n this.validateIdCard(this.idCardDisplay);\r\n }\r\n this.$emit('id-card-valid', { valid: this.idCardValid, info: this.idCardInfo });\r\n this.handleBlur(event);\r\n },\r\n validateIdCard(idCard) {\r\n if (!idCard || idCard.length !== 18) {\r\n this.idCardValid = false;\r\n this.idCardInfo = null;\r\n return false;\r\n }\r\n \r\n // 加权因子\r\n const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\r\n // 校验码对照表\r\n const checkCodes = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\r\n \r\n // 计算校验和\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) {\r\n const digit = parseInt(idCard.charAt(i), 10);\r\n if (isNaN(digit)) {\r\n this.idCardValid = false;\r\n this.idCardInfo = null;\r\n return false;\r\n }\r\n sum += digit * weights[i];\r\n }\r\n \r\n // 验证校验码\r\n const checkCode = checkCodes[sum % 11];\r\n const valid = idCard.charAt(17).toUpperCase() === checkCode;\r\n \r\n this.idCardValid = valid;\r\n \r\n if (valid) {\r\n // 解析身份证信息\r\n const regionCode = idCard.slice(0, 6);\r\n const birthYear = idCard.slice(6, 10);\r\n const birthMonth = idCard.slice(10, 12);\r\n const birthDay = idCard.slice(12, 14);\r\n const genderCode = parseInt(idCard.charAt(16), 10);\r\n \r\n this.idCardInfo = {\r\n region: this.getRegionName(regionCode),\r\n birthday: `${birthYear}-${birthMonth}-${birthDay}`,\r\n gender: genderCode % 2 === 0 ? '女' : '男',\r\n age: this.calculateAge(birthYear, birthMonth, birthDay)\r\n };\r\n } else {\r\n this.idCardInfo = null;\r\n }\r\n \r\n return valid;\r\n },\r\n getRegionName(code) {\r\n // 简化版地区码映射(实际应用中可扩展完整映射)\r\n const regions = {\r\n '11': '北京', '12': '天津', '13': '河北', '14': '山西', '15': '内蒙古',\r\n '21': '辽宁', '22': '吉林', '23': '黑龙江',\r\n '31': '上海', '32': '江苏', '33': '浙江', '34': '安徽', '35': '福建', '36': '江西', '37': '山东',\r\n '41': '河南', '42': '湖北', '43': '湖南', '44': '广东', '45': '广西', '46': '海南',\r\n '50': '重庆', '51': '四川', '52': '贵州', '53': '云南', '54': '西藏',\r\n '61': '陕西', '62': '甘肃', '63': '青海', '64': '宁夏', '65': '新疆',\r\n '71': '台湾', '81': '香港', '82': '澳门'\r\n };\r\n const provinceCode = code.slice(0, 2);\r\n return regions[provinceCode] || '未知地区';\r\n },\r\n calculateAge(year, month, day) {\r\n const birthDate = new Date(year, month - 1, day);\r\n const today = new Date();\r\n let age = today.getFullYear() - birthDate.getFullYear();\r\n const monthDiff = today.getMonth() - birthDate.getMonth();\r\n if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {\r\n age--;\r\n }\r\n return age;\r\n },\r\n \r\n // ========== 邮箱相关方法 ==========\r\n initEmailValue(val) {\r\n this.emailDisplay = val || '';\r\n if (val) {\r\n this.emailValid = this.validateEmail(val);\r\n }\r\n },\r\n handleEmailInput(val) {\r\n this.emailDisplay = val;\r\n this.text = val;\r\n this.emailValid = val ? this.validateEmail(val) : null;\r\n\r\n },\r\n handleEmailBlur(event) {\r\n this.emailValid = this.emailDisplay ? this.validateEmail(this.emailDisplay) : null;\r\n this.handleBlur(event);\r\n },\r\n validateEmail(email) {\r\n const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n return regex.test(email);\r\n },\r\n \r\n // ========== 验证码相关方法 ==========\r\n initCodeValue(val) {\r\n const str = String(val || '');\r\n this.codeValues = Array(this.codeLength).fill('').map((_, i) => str[i] || '');\r\n },\r\n handleCodeInput(event, index) {\r\n const val = event.target.value.replace(/\\D/g, '');\r\n this.codeValues[index] = val.slice(-1);\r\n this.updateCodeValue();\r\n // 自动跳转下一格\r\n if (val && index < this.codeLength - 1) {\r\n this.$nextTick(() => {\r\n if (this.codeRefs[index + 1]) {\r\n this.codeRefs[index + 1].focus();\r\n }\r\n });\r\n }\r\n },\r\n handleCodeKeydown(event, index) {\r\n // 退格键处理\r\n if (event.key === 'Backspace' && !this.codeValues[index] && index > 0) {\r\n this.$nextTick(() => {\r\n if (this.codeRefs[index - 1]) {\r\n this.codeRefs[index - 1].focus();\r\n }\r\n });\r\n }\r\n },\r\n handleCodePaste(event) {\r\n event.preventDefault();\r\n const paste = (event.clipboardData || window.clipboardData).getData('text').replace(/\\D/g, '');\r\n const chars = paste.slice(0, this.codeLength).split('');\r\n chars.forEach((char, i) => {\r\n this.codeValues[i] = char;\r\n });\r\n this.updateCodeValue();\r\n // 聚焦到最后一个填入的位置\r\n const focusIndex = Math.min(chars.length, this.codeLength - 1);\r\n this.$nextTick(() => {\r\n if (this.codeRefs[focusIndex]) {\r\n this.codeRefs[focusIndex].focus();\r\n }\r\n });\r\n },\r\n updateCodeValue() {\r\n const value = this.codeValues.join(this.codeSeparator);\r\n this.text = this.codeValues.join('');\r\n\r\n if (this.codeValues.every(v => v)) {\r\n this.$emit('code-complete', { value: this.text });\r\n }\r\n },\r\n \r\n // ========== 车牌号相关方法 ==========\r\n initPlateValue(val) {\r\n if (!val) {\r\n this.plateProvince = this.defaultPlateProvince;\r\n this.plateNumber = '';\r\n return;\r\n }\r\n const str = String(val);\r\n if (str.length > 0) {\r\n this.plateProvince = str[0];\r\n this.plateNumber = str.slice(1).toUpperCase();\r\n }\r\n },\r\n handlePlateInput(val) {\r\n this.plateNumber = val.toUpperCase().replace(/[^A-Z0-9]/g, '');\r\n this.updatePlateValue();\r\n },\r\n handlePlateBlur(event) {\r\n this.updatePlateValue();\r\n this.handleBlur(event);\r\n },\r\n updatePlateValue() {\r\n const value = this.plateProvince + this.plateNumber;\r\n this.text = value;\r\n\r\n },\r\n \r\n // ========== IP地址相关方法 ==========\r\n initIpValue(val) {\r\n if (!val) {\r\n this.ipSegments = ['', '', '', ''];\r\n return;\r\n }\r\n const parts = String(val).split('.');\r\n this.ipSegments = parts.slice(0, 4).map(p => p || '');\r\n while (this.ipSegments.length < 4) {\r\n this.ipSegments.push('');\r\n }\r\n },\r\n handleIpInput(event, index) {\r\n let val = event.target.value.replace(/\\D/g, '');\r\n // 限制范围 0-255\r\n if (val !== '' && parseInt(val, 10) > 255) {\r\n val = '255';\r\n }\r\n this.ipSegments[index] = val;\r\n this.updateIpValue();\r\n // 自动跳转\r\n if (val.length === 3 || (val.length > 0 && parseInt(val, 10) >= 26)) {\r\n if (index < 3 && this.ipRefs[index + 1]) {\r\n this.$nextTick(() => this.ipRefs[index + 1].focus());\r\n }\r\n }\r\n },\r\n handleIpKeydown(event, index) {\r\n if (event.key === '.' && index < 3) {\r\n event.preventDefault();\r\n if (this.ipRefs[index + 1]) {\r\n this.ipRefs[index + 1].focus();\r\n }\r\n }\r\n if (event.key === 'Backspace' && !this.ipSegments[index] && index > 0) {\r\n if (this.ipRefs[index - 1]) {\r\n this.ipRefs[index - 1].focus();\r\n }\r\n }\r\n },\r\n updateIpValue() {\r\n const value = this.ipSegments.join('.');\r\n this.text = value;\r\n\r\n },\r\n \r\n // ========== MAC地址相关方法 ==========\r\n initMacValue(val) {\r\n if (!val) {\r\n this.macSegments = ['', '', '', '', '', ''];\r\n return;\r\n }\r\n const str = String(val).replace(/[^A-Fa-f0-9]/g, '');\r\n this.macSegments = [];\r\n for (let i = 0; i < 6; i++) {\r\n this.macSegments.push(str.slice(i * 2, i * 2 + 2).toUpperCase());\r\n }\r\n },\r\n handleMacInput(event, index) {\r\n let val = event.target.value.replace(/[^A-Fa-f0-9]/g, '').toUpperCase();\r\n this.macSegments[index] = val.slice(0, 2);\r\n this.updateMacValue();\r\n // 自动跳转\r\n if (val.length >= 2 && index < 5) {\r\n this.$nextTick(() => {\r\n if (this.macRefs[index + 1]) {\r\n this.macRefs[index + 1].focus();\r\n }\r\n });\r\n }\r\n },\r\n handleMacKeydown(event, index) {\r\n if ((event.key === ':' || event.key === '-') && index < 5) {\r\n event.preventDefault();\r\n if (this.macRefs[index + 1]) {\r\n this.macRefs[index + 1].focus();\r\n }\r\n }\r\n if (event.key === 'Backspace' && !this.macSegments[index] && index > 0) {\r\n if (this.macRefs[index - 1]) {\r\n this.macRefs[index - 1].focus();\r\n }\r\n }\r\n },\r\n updateMacValue() {\r\n const value = this.macSegments.join(this.macSeparator);\r\n this.text = this.macSegments.join('');\r\n\r\n },\r\n \r\n // ========== 社会信用代码相关方法 ==========\r\n initUsccValue(val) {\r\n this.usccDisplay = val || '';\r\n if (val && String(val).length === 18) {\r\n this.usccValid = this.validateUscc(val);\r\n }\r\n },\r\n handleUsccInput(val) {\r\n this.usccDisplay = val.toUpperCase().replace(/[^A-Z0-9]/g, '').slice(0, 18);\r\n this.text = this.usccDisplay;\r\n if (this.usccRealtimeValidate && this.usccDisplay.length === 18) {\r\n this.usccValid = this.validateUscc(this.usccDisplay);\r\n } else {\r\n this.usccValid = null;\r\n }\r\n\r\n },\r\n handleUsccBlur(event) {\r\n if (this.usccDisplay && this.usccDisplay.length === 18) {\r\n this.usccValid = this.validateUscc(this.usccDisplay);\r\n this.$emit('uscc-valid', { valid: this.usccValid });\r\n }\r\n this.handleBlur(event);\r\n },\r\n validateUscc(code) {\r\n if (!code || code.length !== 18) return false;\r\n // 统一社会信用代码校验规则\r\n const chars = '0123456789ABCDEFGHJKLMNPQRTUWXY';\r\n const weights = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];\r\n let sum = 0;\r\n for (let i = 0; i < 17; i++) {\r\n const charIndex = chars.indexOf(code[i]);\r\n if (charIndex === -1) return false;\r\n sum += charIndex * weights[i];\r\n }\r\n const checkIndex = (31 - (sum % 31)) % 31;\r\n return chars[checkIndex] === code[17];\r\n }\r\n }\r\n});\r\n</script>\r\n","<template>\r\n <div :class=\"b()\"\r\n style=\"position:relative\">\r\n <canvas :id=\"'canvas'+id\"\r\n ref=\"canvas\"></canvas>\r\n <slot></slot>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport create from \"core/create\";\r\nimport { downFile } from 'utils/util';\r\nexport default create({\r\n name: 'license',\r\n props: {\r\n id: {\r\n type: String,\r\n default: ''\r\n },\r\n option: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n }\r\n },\r\n watch: {\r\n option: {\r\n handler () {\r\n this.init();\r\n },\r\n deep: true\r\n }\r\n },\r\n data () {\r\n return {\r\n base64: '',\r\n draw: false,\r\n canvas: '',\r\n context: '',\r\n }\r\n },\r\n computed: {\r\n img () {\r\n return this.option.img\r\n },\r\n list () {\r\n return this.option.list || []\r\n }\r\n },\r\n mounted () {\r\n this.canvas = document.getElementById(\"canvas\" + this.id);\r\n this.context = this.canvas.getContext(\"2d\");\r\n this.init();\r\n },\r\n methods: {\r\n init () {\r\n this.draw = false;\r\n const beauty = new Image();\r\n beauty.src = this.img;\r\n beauty.onload = () => {\r\n const width = this.option.width || beauty.width;;\r\n const height = this.option.width ? ((beauty.height / beauty.width) * this.option.width) : beauty.height;\r\n this.$refs.canvas.width = width;\r\n this.$refs.canvas.height = height\r\n this.context.clearRect(0, 0, width, height);\r\n this.context.drawImage(beauty, 0, 0, width, height);\r\n this.list.forEach((ele, index) => {\r\n const callback = () => {\r\n if (index == this.list.length - 1) {\r\n setTimeout(() => {\r\n this.draw = true;\r\n }, 0)\r\n }\r\n }\r\n if (ele.img) {\r\n const img = new Image();\r\n img.src = ele.img\r\n img.onload = () => {\r\n const widths = ele.width || img.width;;\r\n const heights = ele.width ? ((img.height / img.width) * ele.width) : img.height;\r\n this.context.drawImage(img, ele.left, ele.top, widths, heights);\r\n callback();\r\n }\r\n } else {\r\n if (ele.bold) {\r\n this.context.font = `bold ${ele.size}px ${ele.style}`\r\n } else {\r\n this.context.font = `${ele.size}px ${ele.style}`\r\n }\r\n this.context.fillStyle = ele.color;\r\n\r\n this.context.fillText(ele.text, ele.left, ele.top);\r\n this.context.stroke();\r\n callback();\r\n }\r\n })\r\n\r\n };\r\n },\r\n getFile (name = new Date().getTime()) {\r\n return new Promise((resolve) => {\r\n const time = setInterval(() => {\r\n if (this.draw) {\r\n const data = this.canvas.toDataURL('image/jpeg', 1.0);\r\n const file = this.dataURLtoFile(data, name)\r\n clearInterval(time)\r\n resolve(file)\r\n }\r\n }, 1000)\r\n })\r\n return file;\r\n },\r\n downFile (filename = new Date().getTime()) {\r\n downFile(this.base64, filename)\r\n },\r\n getBase64 () {\r\n return new Promise((resolve) => {\r\n const time = setInterval(() => {\r\n if (this.draw) {\r\n const data = this.canvas.toDataURL('image/jpeg', 1.0);\r\n this.base64 = data;\r\n clearInterval(time)\r\n resolve(data)\r\n }\r\n }, 100)\r\n })\r\n },\r\n getPdf (name = new Date().getTime()) {\r\n const contentWidth = this.canvas.width;\r\n const contentHeight = this.canvas.height;\r\n const pageHeight = (contentWidth / 592.28) * 841.89;\r\n let leftHeight = contentHeight;\r\n let position = 0;\r\n const imgWidth = 595.28;\r\n const imgHeight = (592.28 / contentWidth) * contentHeight;\r\n const pageData = this.canvas.toDataURL('image/jpeg', 1.0);\r\n const PDF = new window.jsPDF('', 'pt', 'a4');\r\n if (leftHeight < pageHeight) {\r\n PDF.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight);\r\n } else {\r\n while (leftHeight > 0) {\r\n PDF.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight);\r\n leftHeight -= pageHeight;\r\n position -= 841.89;\r\n if (leftHeight > 0) {\r\n PDF.addPage();\r\n }\r\n }\r\n }\r\n PDF.save(`${name}.pdf`);\r\n }\r\n }\r\n})\r\n</script>\r\n","<template>\r\n <div :class=\"b()\"\r\n :style=\"{width:setPx(width)}\">\r\n <el-form :model=\"form\"\r\n ref=\"form\"\r\n :size=\"$AVUE.size\"\r\n label-suffix=\":\"\r\n :label-width=\"setPx(labelWidth)\">\r\n <el-form-item :label=\"username.label || '用户名'\"\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 #header v-if=\"all && multiple && virtualize\">\r\n <div :class=\"b('check')\">\r\n <el-checkbox\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 </template>\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>&nbsp;\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>\n <el-transfer\n :class=\"b()\"\n v-model=\"text\"\n :data=\"dic || []\"\n :titles=\"titles\"\n :filterable=\"filterable\"\n :filter-placeholder=\"filterPlaceholder\"\n :filter-method=\"filterMethod || undefined\"\n :target-order=\"targetOrder\"\n :format=\"format\"\n :props=\"transferProps\"\n :left-default-checked=\"leftDefaultChecked\"\n :right-default-checked=\"rightDefaultChecked\"\n :disabled=\"disabled\"\n @change=\"handleTransferChange\"\n />\n</template>\n\n<script>\nimport create from 'core/create'\nimport props from 'common/common/props.js'\nimport event from 'common/common/event.js'\nexport default create({\n name: 'transfer',\n mixins: [props(), event()],\n props: {\n titles: {\n type: Array,\n default: () => []\n },\n filterable: {\n type: Boolean,\n default: false\n },\n filterPlaceholder: {\n type: String,\n default: undefined\n },\n filterMethod: {\n type: Function,\n default: undefined\n },\n targetOrder: {\n type: String,\n default: 'original'\n },\n format: {\n type: Object,\n default: () => ({})\n },\n leftDefaultChecked: {\n type: Array,\n default: () => []\n },\n rightDefaultChecked: {\n type: Array,\n default: () => []\n }\n },\n computed: {\n transferProps() {\n return {\n key: this.valueKey,\n label: this.labelKey,\n disabled: this.disabledKey\n }\n }\n },\n methods: {\n handleTransferChange(value, direction, movedKeys) {\n this.bindEvent('change', { value, direction, movedKeys })\n }\n }\n})\n</script>\n","<template>\n <div :class=\"b()\">\n <div :class=\"b('filter')\" v-if=\"validData(option.filter, true)\">\n <el-input :placeholder=\"validData(option.filterText, '输入关键字进行过滤')\" :size=\"size\" v-model=\"filterValue\">\n <template #append v-if=\"validData(option.addBtn, true)\">\n <slot v-if=\"$slots['add-btn']\" name=\"add-btn\"></slot>\n <el-button v-else :size=\"size\" @click=\"parentAdd\" v-permission=\"getPermission('addBtn')\"\n icon=\"el-icon-plus\"></el-button>\n </template>\n </el-input>\n </div>\n <el-scrollbar :class=\"b('content')\">\n <component :is=\"componentName\" ref=\"tree\" :data=\"data\" :lazy=\"lazy\" :load=\"treeLoad\" :draggable=\"option.draggable\"\n :height=\"option.height\" :props=\"treeProps\" :icon-class=\"iconClass\" :indent=\"indent\"\n :highlight-current=\"!multiple\" :show-checkbox=\"multiple\" :accordion=\"accordion\" :node-key=\"valueKey\"\n :check-strictly=\"checkStrictly\" :check-on-click-node=\"checkOnClickNode\" :filter-node-method=\"filterNode\"\n :check-on-click-leaf=\"checkOnClickLeaf\" v-loading=\"loading\" :expand-on-click-node=\"expandOnClickNode\"\n @check-change=\"handleCheckChange\" @node-click=\"nodeClick\" @node-expand=\"nodeExpand\"\n @node-drag-start=\"handleDragStart\" @node-drag-enter=\"handleDragEnter\" @node-drag-leave=\"handleDragLeave\"\n @node-drag-over=\"handleDragOver\" @node-drag-end=\"handleDragEnd\" @node-drop=\"handleDrop\"\n :allow-drop=\"option.allowDrop\" :allow-drag=\"option.allowDrag\" @node-contextmenu=\"nodeContextmenu\"\n :default-expand-all=\"defaultExpandAll\" :default-expanded-keys=\"defaultExpandedKeys\">\n <template #=\"{ node, data }\" v-if=\"$slots.default\">\n <slot :node=\"node\" :data=\"data\"></slot>\n </template>\n <template #=\"{ node }\" v-else>\n <slot :node=\"node\" :data=\"data\"></slot>\n <span class=\"el-tree-node__label\">{{ node.label }}</span>\n </template>\n </component>\n </el-scrollbar>\n\n <div class=\"el-cascader-panel is-bordered\" v-if=\"client.show && menu\" @click=\"client.show = false\"\n :style=\"styleName\" :class=\"b('menu')\">\n <div :class=\"b('item')\" v-if=\"validData(option.addBtn, true)\" v-permission=\"getPermission('addBtn')\"\n @click=\"rowAdd\">\n {{ menuIcon('addBtn') }}</div>\n <div :class=\"b('item')\" v-if=\"validData(option.editBtn, true)\" v-permission=\"getPermission('editBtn')\"\n @click=\"rowEdit\">{{ menuIcon('editBtn') }}</div>\n <div :class=\"b('item')\" v-if=\"validData(option.delBtn, true)\" v-permission=\"getPermission('delBtn')\"\n @click=\"rowRemove\">{{ menuIcon('delBtn') }}</div>\n <slot name=\"menu\" :node=\"node\"></slot>\n </div>\n <el-dialog :title=\"node[labelKey] || title\" v-model=\"box\" class=\"avue-dialog avue-dialog--none\"\n :append-to-body=\"$AVUE.appendToBody\" lock-scroll :before-close=\"hide\"\n :width=\"validData(option.dialogWidth, '50%')\">\n <avue-form v-model=\"form\" :option=\"formOption\" ref=\"form\" v-if=\"box\" @submit=\"handleSubmit\"></avue-form>\n </el-dialog>\n\n </div>\n</template>\n\n<script>\nimport { DIC_PROPS } from 'global/variable';\nimport locale from \"core/locale\";\nimport create from \"core/create\";\nimport permission from '../../core/directive/permission';\nexport default create({\n name: \"tree\",\n mixins: [locale],\n directives: {\n permission\n },\n props: {\n indent: Number,\n filterNodeMethod: Function,\n checkOnClickNode: Boolean,\n beforeClose: Function,\n beforeOpen: Function,\n permission: {\n type: [Function, Object],\n default: () => {\n return {};\n }\n },\n iconClass: {\n type: String,\n },\n checkOnClickLeaf: Boolean,\n loading: {\n type: Boolean,\n default: false\n },\n expandOnClickNode: {\n type: Boolean,\n default: false\n },\n option: {\n type: Object,\n default: () => {\n return {};\n }\n },\n data: {\n type: Array,\n default: () => {\n return [];\n }\n },\n modelValue: {\n type: Object,\n default: () => {\n return {};\n }\n }\n },\n data() {\n return {\n filterValue: \"\",\n client: {\n x: 0,\n y: 0,\n show: false\n },\n box: false,\n type: \"\",\n node: {},\n obj: {},\n form: {},\n // 存储事件监听器引用,用于销毁时清理\n clickListener: null,\n };\n },\n computed: {\n virtualize() {\n return this.option.virtualize\n },\n componentName() {\n return 'elTree' + (this.virtualize ? 'V2' : '')\n },\n styleName() {\n return {\n top: this.setPx(this.client.y - 10),\n left: this.setPx(this.client.x - 10),\n }\n },\n treeProps() {\n return Object.assign(this.deepClone(DIC_PROPS), this.props, {\n isLeaf: this.leafKey\n })\n },\n menu() {\n return this.validData(this.option.menu, true)\n },\n title() {\n return this.option.title || this.t('crud.addTitle') || this.t('tree.addTitle') || '新增'\n },\n treeLoad() {\n return this.option.treeLoad\n },\n checkStrictly() {\n return this.option.checkStrictly\n },\n accordion() {\n return this.option.accordion\n },\n multiple() {\n return this.option.multiple\n },\n lazy() {\n return this.option.lazy\n },\n addText() {\n return this.addFlag ? this.menuIcon('addBtn') : this.menuIcon('updateBtn');\n },\n addFlag() {\n return [\"add\", \"parentAdd\"].includes(this.type);\n },\n size() {\n return this.option.size\n },\n props() {\n return this.option.props || {};\n },\n leafKey() {\n return this.props.leaf || DIC_PROPS.leaf\n },\n valueKey() {\n return this.props.value || DIC_PROPS.value;\n },\n labelKey() {\n return this.props.label || DIC_PROPS.label;\n },\n childrenKey() {\n return this.props.children || DIC_PROPS.children;\n },\n nodeKey() {\n return this.option.nodeKey || DIC_PROPS.nodeKey;\n },\n defaultExpandAll() {\n return this.option.defaultExpandAll;\n },\n defaultExpandedKeys() {\n return this.option.defaultExpandedKeys;\n },\n formOption() {\n return Object.assign(\n this.option.formOption || {},\n {\n boxType: this.type,\n submitText: this.addText,\n }\n );\n }\n },\n mounted() {\n // 创建事件监听器函数并存储引用,用于后续清理\n this.clickListener = (e) => {\n // 检查点击事件是否发生在组件外部,如果是则隐藏右键菜单\n if (!this.$el.contains(e.target)) {\n this.client.show = false;\n }\n };\n\n // 注册全局点击事件监听器\n document.addEventListener('click', this.clickListener);\n\n // 初始化树组件的方法\n this.initFun();\n },\n beforeUnmount() {\n // 组件销毁前清理全局事件监听器,防止内存泄漏\n if (this.clickListener) {\n document.removeEventListener('click', this.clickListener);\n this.clickListener = null;\n }\n },\n watch: {\n filterValue(val) {\n this.$refs.tree.filter(val);\n },\n modelValue(val) {\n this.form = val;\n },\n form(val) {\n this.$emit('update:modelValue', val);\n this.$emit(\"change\", val);\n }\n },\n methods: {\n handleDragStart(node, ev) {\n this.$emit('node-drag-start', node, ev)\n },\n handleDragEnter(draggingNode, dropNode, ev) {\n this.$emit('node-drag-enter', draggingNode, dropNode, ev)\n },\n handleDragLeave(draggingNode, dropNode, ev) {\n this.$emit('node-drag-leave', draggingNode, dropNode, ev)\n },\n handleDragOver(draggingNode, dropNode, ev) {\n this.$emit('node-drag-over', draggingNode, dropNode, ev)\n },\n handleDragEnd(draggingNode, dropNode, dropType, ev) {\n this.$emit('node-drag-end', draggingNode, dropNode, dropType, ev)\n },\n handleDrop(draggingNode, dropNode, dropType, ev) {\n this.$emit('node-drop', draggingNode, dropNode, dropType, ev)\n },\n menuIcon(value) {\n const defaultText = {\n addBtn: '新增',\n editBtn: '编辑',\n delBtn: '删除'\n }[value];\n return this.validData(this.option[value + 'Text'], this.t(\"crud.\" + value) || this.t(\"tree.\" + value) || defaultText)\n },\n getPermission(key) {\n if (typeof this.permission === \"function\") {\n return this.permission(key, this.node.data || {})\n } else if (!this.validatenull(this.permission[key])) {\n return this.permission[key]\n } else {\n return true;\n }\n },\n /**\n * 初始化树组件的方法代理\n * 将element-plus tree组件的方法代理到当前组件实例上,\n * 使父组件可以直接调用这些方法\n */\n initFun() {\n [\n 'filter', 'updateKeyChildren', 'getCheckedNodes', 'setCheckedNodes', 'getCheckedKeys',\n 'setCheckedKeys', 'setChecked', 'getHalfCheckedNodes', 'getHalfCheckedKeys', 'getCurrentKey', 'getCurrentNode',\n 'setCurrentKey', 'setCurrentNode', 'getNode', 'remove', 'append', 'insertBefore', 'insertAfter'\n ].forEach(ele => {\n this[ele] = this.$refs.tree[ele];\n })\n },\n nodeContextmenu(e, data, node, obj) {\n this.node = node;\n this.client.x = e.clientX;\n this.client.y = e.clientY;\n this.client.show = true;\n this.$emit('node-contextmenu', data, node, obj)\n },\n handleCheckChange(data, checked, indeterminate) {\n this.$emit('check-change', data, checked, indeterminate)\n },\n handleSubmit(form, done) {\n this.addFlag ? this.save(form, done) : this.update(form, done)\n },\n nodeClick(data, node, nodeComp) {\n this.client.show = false\n this.$emit(\"node-click\", data, node, nodeComp);\n },\n nodeExpand(data, node, nodeComp) {\n this.$emit(\"node-expand\", data, node, nodeComp);\n },\n filterNode(value, data) {\n if (typeof this.filterNodeMethod === 'function') {\n return this.filterNodeMethod(value, data);\n }\n if (!value) return true;\n return data[this.labelKey].indexOf(value) !== -1;\n },\n hide(done) {\n const callback = () => {\n done && done()\n this.node = {};\n this.form = {}\n this.box = false;\n }\n if (typeof this.beforeClose === \"function\") {\n this.beforeClose(callback, this.type);\n } else {\n callback();\n }\n },\n save(data, done) {\n const callback = (form) => {\n form = this.deepClone(form || this.form);\n if (this.type === \"add\") {\n this.$refs.tree.append(form, this.node.data[this.valueKey])\n } else if (this.type === \"parentAdd\") {\n this.$refs.tree.append(form)\n }\n done()\n this.$nextTick(() => this.hide())\n };\n this.$emit(\"save\", this.node, data, callback, done);\n },\n update(data, done) {\n const callback = (form) => {\n form = this.deepClone(form || this.form);\n const rowKey = form[this.valueKey]\n this.node.data = form\n let { parentList, index } = this.findData(rowKey)\n if (parentList) {\n const oldRow = parentList.splice(index, 1)[0];\n form[this.childrenKey] = oldRow[this.childrenKey]\n parentList.splice(index, 0, this.deepClone(form))\n }\n this.hide();\n done()\n };\n this.$emit(\"update\", this.node, data, callback, done);\n },\n rowEdit(a) {\n this.type = \"edit\";\n this.form = this.deepClone(this.node.data);\n this.show();\n },\n parentAdd() {\n this.type = \"parentAdd\";\n this.show();\n },\n rowAdd() {\n this.type = \"add\";\n this.show();\n },\n show() {\n const callback = () => {\n this.client.show = false;\n this.box = true;\n }\n if (typeof this.beforeOpen === \"function\") {\n this.beforeOpen(callback, this.type);\n } else {\n callback();\n }\n },\n rowRemove() {\n this.client.show = false;\n const callback = () => {\n this.$refs.tree.remove(this.node)\n }\n this.$emit(\"del\", this.node, callback);\n },\n findData(id) {\n let result = {}\n const callback = (parentList, parent) => {\n parentList.forEach((ele, index) => {\n if (ele[this.valueKey] == id) {\n result = {\n item: ele,\n index: index,\n parentList: parentList,\n parent: parent\n }\n }\n if (ele[this.childrenKey]) {\n callback(ele[this.childrenKey], ele)\n }\n })\n }\n callback(this.data)\n return result;\n }\n }\n});\n</script>\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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=5a7fb534\"","import { render } from \"./index.vue?vue&type=template&id=4fc486a9\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=eea3fb88\"","export default (() => {\r\n let dialogDom;\r\n let closeDialog;\r\n\r\n function setupChildMenus(items, dialogDom, divTop, clientHeight) {\r\n items.forEach((ele, i) => {\r\n const childDom = ele.querySelector(\"ul\");\r\n if (!childDom) return;\r\n Object.assign(childDom.style, {\r\n position: \"absolute\",\r\n top: \"-9999px\",\r\n width: \"max-content\",\r\n });\r\n // 使用具名函数以便移除,避免重复绑定\r\n if (ele._onEnter) {\r\n ele.removeEventListener(\"mouseenter\", ele._onEnter);\r\n ele.removeEventListener(\"mouseleave\", ele._onLeave);\r\n }\r\n ele._onEnter = () => {\r\n const calcHeight =\r\n clientHeight -\r\n (divTop + ele.clientHeight * (i + 1)) -\r\n childDom.clientHeight;\r\n childDom.style.left = `${dialogDom.clientWidth + 1}px`;\r\n childDom.style.top = `${calcHeight < 0 ? calcHeight : 0}px`;\r\n };\r\n ele._onLeave = () => {\r\n childDom.style.top = \"-9999px\";\r\n };\r\n ele.addEventListener(\"mouseenter\", ele._onEnter);\r\n ele.addEventListener(\"mouseleave\", ele._onLeave);\r\n });\r\n }\r\n\r\n function setEvent(el, binding) {\r\n const dom = document.getElementById(binding.value.id);\r\n if (dom) dom.style.display = \"none\";\r\n el.oncontextmenu = function (e) {\r\n e.preventDefault();\r\n const { id, event, hide, value } = binding.value;\r\n dialogDom = document.getElementById(id);\r\n if (!dialogDom) return;\r\n const { clientWidth, clientHeight } = document.documentElement;\r\n let { clientX: divLeft, clientY: divTop } = e;\r\n\r\n dialogDom.style.display = \"block\";\r\n const { offsetWidth: dialogDomWidth, offsetHeight: dialogDomHeight } =\r\n dialogDom;\r\n\r\n if (clientHeight - divTop - dialogDomHeight < 0) {\r\n divTop -= dialogDomHeight;\r\n }\r\n if (clientWidth - divLeft - dialogDomWidth < 0) {\r\n divLeft -= dialogDomWidth;\r\n }\r\n\r\n // 筛选第一层级 li\r\n const firstLevelItems = Array.from(\r\n dialogDom.querySelectorAll(\"li\")\r\n ).filter((item) => item.parentNode === dialogDom);\r\n setupChildMenus(firstLevelItems, dialogDom, divTop, clientHeight);\r\n\r\n // 移除旧的 click 监听后再绑定,防止重复\r\n if (closeDialog) {\r\n document.removeEventListener(\"click\", closeDialog);\r\n }\r\n closeDialog = () => {\r\n dialogDom.style.display = \"none\";\r\n hide && hide(value, e);\r\n document.removeEventListener(\"click\", closeDialog);\r\n closeDialog = null;\r\n };\r\n\r\n const showDialog = () => {\r\n Object.assign(dialogDom.style, {\r\n position: \"fixed\",\r\n zIndex: 1024,\r\n top: `${divTop}px`,\r\n left: `${divLeft}px`,\r\n });\r\n document.addEventListener(\"click\", closeDialog);\r\n };\r\n\r\n event ? event(value, showDialog) : showDialog();\r\n };\r\n }\r\n\r\n return {\r\n mounted(el, binding) {\r\n setEvent(el, binding);\r\n },\r\n updated(el, binding) {\r\n setEvent(el, binding);\r\n },\r\n unmounted(el) {\r\n el.oncontextmenu = null;\r\n if (closeDialog) {\r\n document.removeEventListener(\"click\", closeDialog);\r\n closeDialog = null;\r\n }\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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=7f82642d\"","import { render } from \"./index.vue?vue&type=template&id=6c1e6e04\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6c1e6e04\"","import { render } from \"./index.vue?vue&type=template&id=9fc5e2de\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=9fc5e2de\"","import { render } from \"./index.vue?vue&type=template&id=06f253d3\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/countdown/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"06f253d3\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('06f253d3', __exports__)) {\n console.log('reload')\n api.reload('06f253d3', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=06f253d3\", () => {\n console.log('re-render')\n api.rerender('06f253d3', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=06f253d3\"","import { render } from \"./index.vue?vue&type=template&id=eb27ef14\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/dashboard/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"eb27ef14\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('eb27ef14', __exports__)) {\n console.log('reload')\n api.reload('eb27ef14', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=eb27ef14\", () => {\n console.log('re-render')\n api.rerender('eb27ef14', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=eb27ef14\"","import { render } from \"./index.vue?vue&type=template&id=225fca38\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=225fca38\"","import { render } from \"./index.vue?vue&type=template&id=f7b00608\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f7b00608\"","import { render } from \"./index.vue?vue&type=template&id=60c71032\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=60c71032\"","import { render } from \"./index.vue?vue&type=template&id=26ff8a12\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/list/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"26ff8a12\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('26ff8a12', __exports__)) {\n console.log('reload')\n api.reload('26ff8a12', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=26ff8a12\", () => {\n console.log('re-render')\n api.rerender('26ff8a12', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=26ff8a12\"","import { render } from \"./index.vue?vue&type=template&id=675644e8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/notice/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"675644e8\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('675644e8', __exports__)) {\n console.log('reload')\n api.reload('675644e8', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=675644e8\", () => {\n console.log('re-render')\n api.rerender('675644e8', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=675644e8\"","import { render } from \"./index.vue?vue&type=template&id=55f47a82\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=55f47a82\"","import { render } from \"./index.vue?vue&type=template&id=212cd134\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=212cd134\"","import { render } from \"./index.vue?vue&type=template&id=984b326c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=984b326c\"","import { render } from \"./index.vue?vue&type=template&id=24f0ac6b\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=24f0ac6b\"","import { render } from \"./index.vue?vue&type=template&id=309b3ad1\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/product/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"309b3ad1\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('309b3ad1', __exports__)) {\n console.log('reload')\n api.reload('309b3ad1', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=309b3ad1\", () => {\n console.log('re-render')\n api.rerender('309b3ad1', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=309b3ad1\"","import { render } from \"./index.vue?vue&type=template&id=520ad70b\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/profile/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"520ad70b\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('520ad70b', __exports__)) {\n console.log('reload')\n api.reload('520ad70b', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=520ad70b\", () => {\n console.log('re-render')\n api.rerender('520ad70b', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=520ad70b\"","import { render } from \"./index.vue?vue&type=template&id=2c4aa061\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=2c4aa061\"","import { render } from \"./index.vue?vue&type=template&id=c8d0e7c0\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/rank/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"c8d0e7c0\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('c8d0e7c0', __exports__)) {\n console.log('reload')\n api.reload('c8d0e7c0', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=c8d0e7c0\", () => {\n console.log('re-render')\n api.rerender('c8d0e7c0', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=c8d0e7c0\"","import { render } from \"./index.vue?vue&type=template&id=61501c4f\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=61501c4f\"","import { render } from \"./index.vue?vue&type=template&id=29a5479c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/statistic/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"29a5479c\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('29a5479c', __exports__)) {\n console.log('reload')\n api.reload('29a5479c', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=29a5479c\", () => {\n console.log('re-render')\n api.rerender('29a5479c', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=29a5479c\"","import { render } from \"./index.vue?vue&type=template&id=abb6161c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=abb6161c\"","import { render } from \"./index.vue?vue&type=template&id=f4694b8e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/task/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"f4694b8e\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('f4694b8e', __exports__)) {\n console.log('reload')\n api.reload('f4694b8e', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=f4694b8e\", () => {\n console.log('re-render')\n api.rerender('f4694b8e', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f4694b8e\"","import { render } from \"./index.vue?vue&type=template&id=24b138d4\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/data/weather/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"24b138d4\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('24b138d4', __exports__)) {\n console.log('reload')\n api.reload('24b138d4', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=24b138d4\", () => {\n console.log('re-render')\n api.rerender('24b138d4', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=24b138d4\"","import { render } from \"./index.vue?vue&type=template&id=8dfdacc8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=8dfdacc8\"","import { render } from \"./index.vue?vue&type=template&id=26ed2c0e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=26ed2c0e\"","import { render } from \"./index.vue?vue&type=template&id=6b2d95c3\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6b2d95c3\"","import { render } from \"./index.vue?vue&type=template&id=15423d71\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=15423d71\"","import { render } from \"./index.vue?vue&type=template&id=877c17ea\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=877c17ea\"","import { render } from \"./index.vue?vue&type=template&id=9844b294\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=9844b294\"","import { render } from \"./index.vue?vue&type=template&id=bd22c7bc\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=bd22c7bc\"","import { render } from \"./index.vue?vue&type=template&id=1683a0e8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=1683a0e8\"","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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=1d59463e\"","import { render } from \"./index.vue?vue&type=template&id=a7856060\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a7856060\"","import { render } from \"./index.vue?vue&type=template&id=209d93fc\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=209d93fc\"","import { render } from \"./index.vue?vue&type=template&id=464c8e61\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=464c8e61\"","import { render } from \"./node.vue?vue&type=template&id=49516e7a\"\nimport script from \"./node.vue?vue&type=script&lang=js\"\nexport * from \"./node.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./node.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./node.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=57fb9677\"","import { render } from \"./menu.vue?vue&type=template&id=8163526c\"\nimport script from \"./menu.vue?vue&type=script&lang=js\"\nexport * from \"./menu.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./menu.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./menu.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./menu.vue?vue&type=template&id=8163526c\"","import { render } from \"./index.vue?vue&type=template&id=66733642\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=66733642\"","import { render } from \"./index.vue?vue&type=template&id=c3ce0fba\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=c3ce0fba\"","import { render } from \"./index.vue?vue&type=template&id=36338624\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-cron/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"36338624\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('36338624', __exports__)) {\n console.log('reload')\n api.reload('36338624', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=36338624\", () => {\n console.log('re-render')\n api.rerender('36338624', render)\n })\n\n}\n\n\nexport default __exports__","export { default } from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=36338624\"","import { render } from \"./index.vue?vue&type=template&id=f08e4362\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f08e4362\"","import { render } from \"./index.vue?vue&type=template&id=51c70ffe\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/input-json/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"51c70ffe\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('51c70ffe', __exports__)) {\n console.log('reload')\n api.reload('51c70ffe', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=51c70ffe\", () => {\n console.log('re-render')\n api.rerender('51c70ffe', 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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=51c70ffe\"","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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a3bbbfc8\"","import { render } from \"./index.vue?vue&type=template&id=6c26b342\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6c26b342\"","import { render } from \"./index.vue?vue&type=template&id=43b9bace\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=43b9bace\"","import { render } from \"./index.vue?vue&type=template&id=10a5f64c\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=10a5f64c\"","import { render } from \"./index.vue?vue&type=template&id=a619a998\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a619a998\"","import { render } from \"./index.vue?vue&type=template&id=566e9466\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=566e9466\"","import { render } from \"./index.vue?vue&type=template&id=6c28bf84\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=6c28bf84\"","import { render } from \"./index.vue?vue&type=template&id=f024daa8\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f024daa8\"","import { render } from \"./index.vue?vue&type=template&id=78a7cc26\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=78a7cc26\"","import { render } from \"./index.vue?vue&type=template&id=124ca8be\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=124ca8be\"","import { render } from \"./index.vue?vue&type=template&id=4b746393\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=4b746393\"","import { render } from \"./index.vue?vue&type=template&id=f158c74a\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=f158c74a\"","import { render } from \"./index.vue?vue&type=template&id=19ec52af\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=19ec52af\"","import { render } from \"./index.vue?vue&type=template&id=796f4430\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=796f4430\"","import { render } from \"./index.vue?vue&type=template&id=3f2c8758\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=3f2c8758\"","import { render } from \"./index.vue?vue&type=template&id=76952232\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=76952232\"","import { render } from \"./index.vue?vue&type=template&id=ad97c69e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=ad97c69e\"","import { render } from \"./index.vue?vue&type=template&id=dd801a98\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=dd801a98\"","import { render } from \"./index.vue?vue&type=template&id=4d6ca540\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=4d6ca540\"","import { render } from \"./index.vue?vue&type=template&id=034826db\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=034826db\"","import { render } from \"./index.vue?vue&type=template&id=3d0430de\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\node_modules\\\\vue-loader\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__file',\"packages/element-plus/transfer/index.vue\"]])\n/* hot reload */\nif (module.hot) {\n __exports__.__hmrId = \"3d0430de\"\n const api = __VUE_HMR_RUNTIME__\n module.hot.accept()\n if (!api.createRecord('3d0430de', __exports__)) {\n console.log('reload')\n api.reload('3d0430de', __exports__)\n }\n \n module.hot.accept(\"./index.vue?vue&type=template&id=3d0430de\", () => {\n console.log('re-render')\n api.rerender('3d0430de', 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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=3d0430de\"","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:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=727ab4d1\"","import { render } from \"./index.vue?vue&type=template&id=a6252d18\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=a6252d18\"","import { render } from \"./index.vue?vue&type=template&id=7925a428\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=template&id=7925a428\"","import { render } from \"./index.vue?vue&type=template&id=69e2093e\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\工作目录\\\\米拓\\\\第三方\\\\avue\\\\node_modules\\\\.pnpm\\\\vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850\\\\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+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"; export * from \"-!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.25.8_webpack@4.47.0/node_modules/babel-loader/lib/index.js??ref--0!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./index.vue?vue&type=script&lang=js\"","export * from \"-!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/templateLoader.js??ref--5!../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+comp_d4e8293dafd9a4154e2d6232edbf2850/node_modules/vue-loader/dist/index.js??ref--2!./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\", \"phone\", \"currency\", \"bankCard\", \"bank-card\", \"idCard\", \"id-card\", \"email\", \"code\", \"plate\", \"ip\", \"mac\", \"uscc\"].includes(type)) {\r\n result = \"input\";\r\n } else if (type === \"cron\") {\r\n result = \"input-cron\";\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', 'json'];\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', 'transfer', '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 { identity } from 'utils/identity';\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 { ElMessage } from 'element-plus';\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 = identity({\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 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\n const prevErrorHandler = Vue.config.errorHandler;\r\n Vue.config.errorHandler = (err, instance, info) => {\r\n if (prevErrorHandler) {\r\n prevErrorHandler(err, instance, info);\r\n } else {\r\n console.error(err);\r\n }\r\n try {\r\n ElMessage.error(err && err.message ? err.message : String(err));\r\n } catch (_) {}\r\n };\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 {\n common: {\n submitBtn: '确 定',\n cancelBtn: '取 消',\n condition: '条件',\n display: '显示',\n hide: '隐藏'\n },\n tip: {\n select: '请选择',\n input: '请输入'\n },\n check: {\n checkAll: '全选'\n },\n upload: {\n upload: '点击上传',\n tip: '将文件拖到此处,或'\n },\n time: {\n start: '开始',\n end: '结束'\n },\n date: {\n start: '开始',\n end: '结束',\n t: '今日',\n y: '昨日',\n n: '近7天',\n a: '全部'\n },\n form: {\n printBtn: '打 印',\n mockBtn: '模 拟',\n submitBtn: '提 交',\n emptyBtn: '清 空'\n },\n tree: {\n addBtn: '新 增',\n editBtn: '编 辑',\n delBtn: '删 除',\n addTitle: '新 增'\n }\n};\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\nimport DataStatistic from 'packages/data/statistic';\r\nimport DataWeather from 'packages/data/weather';\r\nimport DataRank from 'packages/data/rank';\r\nimport DataProfile from 'packages/data/profile';\r\nimport DataProduct from 'packages/data/product';\r\nimport DataCountdown from 'packages/data/countdown';\r\nimport DataNotice from 'packages/data/notice';\r\nimport DataTask from 'packages/data/task';\r\nimport DataList from 'packages/data/list';\r\nimport DataDashboard from 'packages/data/dashboard';\r\nexport default { DataTabs, DataCardText, DataBox, DataProgress, DataIcons, DataCard, DataDisplay, DataImgText, DataOperaText, DataRotate, DataPay, DataPrice, DataPanel, DataStatistic, DataWeather, DataRank, DataProfile, DataProduct, DataCountdown, DataNotice, DataTask, DataList, DataDashboard };\r\n\r\n\r\n","import CountUp from 'packages/element-plus/count-up';\r\nimport Article from 'packages/element-plus/article';\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 InputJson from 'packages/element-plus/input-json';\r\nimport InputCron from 'packages/element-plus/input-cron';\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\nimport Transfer from 'packages/element-plus/transfer';\r\nexport default {\r\n Arrays,\r\n Article,\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 InputJson,\r\n InputCron,\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 Transfer,\r\n Sign,\r\n Login\r\n};\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","export function identity(value) {\n return value;\n}\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 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.3-beta.41'\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;;;;;;;;;;;;;ACfA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3CA;AAAA;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;;;;;;;;;;;;;ACrBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACOA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACCA;AAAA;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;;;;;;;;;;;;;AC9CA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACvDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;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;;;;;;;;;;;;;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;;;;;;;;;;;;;AClCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAEA;AACA;AAEA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACpTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AAAA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;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;AAEA;AAEA;AAAA;AAGA;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;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;AAAA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAMA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;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;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AAGA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9bA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACwLA;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;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;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;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;;;;;;;;;;;;;ACx7BA;AAAA;AAAA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACOA;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;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAuCA;AAEA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAEA;AAAA;AAAA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAMA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpTA;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;;;;;;;;;;;;;AClGA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;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;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;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;AChHA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AAEA;AACA;AAIA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrRA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAGA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAEA;AAEA;AAEA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtPA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtBA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;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;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACMA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjtCA;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;;;;;;;;;;;;;ACYA;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;;;;;;;;;;;;;AClSA;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;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;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;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;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;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMA;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;;;;;;;;;;;;;;;;;;;;;;;AxETA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;AAEA;AADA;;AAAA;;AAOA;AAJA;;AAAA;AACA;AACA;AACA;AAEA;;AAAA;AAAA;;;;;AAEA;AADA;;AAAA;AAEA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AAEA;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AACA;AAAA;;;;AAGA;;;AACA;AAAA;AAAA;;;;;;AAEA;;AACA;AACA;AACA;AADA;;;;;;AAKA;AAAA;AACA;AAAA;;AAEA;AACA;AACA;AACA;;AACA;;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AClDA;;;;;;;AAHA;AAAA;;AAAA;;AAEA;AAAA;AAEA;;AAEA;AAAA;;AACA;AACA;;AACA;AAAA;;;;AAEA;;AACA;;;;;;;;;;;;;;;;;;;;;;;ACyCA;AACA;AACA;;;;;;;;;;;;;;;;;;AAvDA;AAAA;;AAEA;AADA;;AAAA;AAEA;;;AACA;AAAA;AACA;;AACA;;AAIA;AAFA;;AAAA;AACA;;AAEA;;;AAIA;AAFA;;AAAA;AACA;;AAEA;;;AAEA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AADA;AAAA;AAAA;AAEA;;AACA;AAQA;AARA;;AAAA;AACA;AACA;AACA;;AACA;AACA;AACA;AAGA;;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;;;;;;;;;;;AAMA;AACA;AACA;AAAA;AAAA;;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACpEA;AAOA;;AAUA;AAMA;AACA;;;;;;;AAxBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;;AACA;AACA;AAAA;;;;;AAGA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;AAOA;;;;;;;;AAPA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AAAA;AACA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;AAOA;;AAIA;AAGA;AACA;AACA;;;;;AAhBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAGA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;;;AAQA;;AACA;;;AACA;;AACA;;;AAGA;;AACA;AACA;AAIA;AACA;AAIA;AACA;;;AAIA;;;;;;;AA9BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;;AACA;AACA;AAAA;AACA;AACA;;;AAEA;AAAA;;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;AAQA;AACA;AAGA;;;AAIA;;;;AAEA;;;;AAOA;;;;;;;;;AAzBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AACA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA;AACA;AAAA;AACA;AACA;;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;AAAA;AAEA;AACA;;;;;AAGA;AAAA;AACA;AACA;AAAA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;;;;;;;;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;;AAYA;AAKA;AACA;;;;;;;AAlBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;;AAEA;AAAA;AACA;AACA;;AACA;AACA;AAAA;;AACA;AAAA;;;;;AAGA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;;AAYA;;AAIA;AAIA;AACA;AACA;;;;;;;;AAtBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AAAA;AACA;;;AAEA;AACA;AACA;;AAEA;AACA;AAAA;;AACA;AACA;AACA;AAAA;AAEA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;;;AACA;;AACA;;;AACA;;AAEA;;;;AAKA;;;AAIA;AACA;AACA;;;AAGA;;;;AAEA;;;;AAEA;;;;AAEA;;;;;;;AAzBA;AACA;AAAA;AACA;AACA;AAAA;AAAA;;;;;AAEA;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;AACA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;;;;;AAEA;AACA;AACA;AACA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;;;;;AAEA;AAAA;;;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;;;AACA;;AACA;AAGA;;AAQA;AACA;;;AACA;;;;AAfA;AACA;AAAA;AACA;AACA;AAAA;;AAAA;AAAA;AAAA;;;;AAEA;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;;AAAA;AAAA;AACA;;AAEA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AAOA;;AAKA;AACA;AAEA;AACA;;AAIA;AAIA;AACA;AACA;;;;;AA1BA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AACA;;AAEA;AACA;AACA;AAAA;AACA;;;AAEA;AACA;AAAA;AAAA;AAEA;;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;;AASA;AACA;AAKA;AACA;AACA;;;;;;;AAjBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;;AACA;AACA;AACA;AAAA;;AACA;AAAA;;;;;AAGA;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AAGA;AACA;;;AA0BA;;;AAOA;;;;;;;;;;;AA5CA;AAAA;;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;;AACA;AACA;AACA;AAAA;AACA;AACA;;AACA;AACA;;AAAA;AACA;AAAA;;AAEA;AACA;;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AACA;;;AAGA;AACA;AAAA;AACA;AACA;AACA;AAAA;;AAEA;AACA;AAAA;AAAA;AACA;;AAIA;AAFA;;AAAA;AACA;AACA;AACA;AAEA;AAAA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AAAA;;;AAEA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDA;AAOA;;AAIA;AAGA;AACA;AACA;AAEA;AACA;;;;;AAnBA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AAGA;AACA;AACA;;AAEA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;;AASA;;AAMA;AACA;;;AACA;;;;AACA;;AAEA;;;AACA;;AAEA;AACA;AACA;;;AAGA;;;;AAGA;;;;AAEA;;;;;;AAIA;;;;;;;;;AArCA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AACA;;;AAGA;AACA;AACA;AAAA;;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;;AACA;AACA;AAAA;;;;AAEA;AACA;AACA;AAAA;;AAGA;AAAA;;AAGA;AAAA;;;AAEA;AAAA;AACA;AAAA;;AACA;AAAA;;;;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;;;;AAEA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCA;;AAWA;;;;AAEA;;AAEA;;;AACA;;;;AACA;;;;AACA;;;;AAKA;;;;AACA;;;;AAIA;;;;AAKA;;AAEA;AACA;;;AAGA;;;;;;;;;AAvCA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;;AAAA;AAAA;;;AACA;AACA;AAAA;;AAAA;AAAA;;AACA;;AAEA;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;;;AAEA;AAAA;AACA;AACA;;;;;AAGA;AAAA;AACA;AAAA;AAAA;AAAA;;AACA;AACA;;;;;AAGA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CA;AAOA;;AAIA;;;;;;;;;AAXA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AACA;AAAA;AACA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AAAA;AACA;;;AAEA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;;;AACA;;AACA;AAEA;;;;;;AASA;;;AAGA;AACA;;;AACA;;AAEA;;;AAIA;;;;AAEA;;;;;;;AA1BA;AACA;AAAA;AACA;;;AAEA;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;;AACA;AAAA;AACA;;AAEA;AAAA;AACA;AAAA;AAAA;;;;AAEA;AACA;AACA;AAAA;;;AAEA;AACA;AAAA;AACA;AACA;;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;AASA;AAKA;;AAQA;AACA;;;;;;;;AAvBA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;;AACA;AAAA;;;;;AAGA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBA;;;;AAUA;;AAGA;AACA;;;AAEA;;;;AAIA;;;;AAEA;;AAIA;;;AACA;;;;;;;;AA3BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AACA;AAAA;AAAA;;;;AAEA;AACA;AACA;AAAA;AAAA;;AACA;AAAA;;AACA;AAAA;AACA;AACA;;AACA;AAAA;;;AAEA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;;AAYA;AAIA;AAMA;AAIA;AACA;;;;;;AA3BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AAAA;AACA;AACA;AACA;;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;;;AACA;;AACA;AACA;AAEA;AAGA;AAMA;AACA;;;AACA;;;;AACA;;;;;;;;AAjBA;AACA;AAAA;AACA;AACA;;;AAEA;AACA;AAAA;AAAA;AAAA;;;AAEA;AACA;AAAA;AAAA;AAEA;;AAEA;AAAA;AAAA;AAAA;;AACA;AACA;AACA;AAAA;AACA;AAAA;;AACA;AAAA;;AAAA;AAAA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;;AAUA;AACA;AACA;AAEA;AACA;AAGA;AACA;AAIA;AACA;;;AACA;;;;AAEA;;;;;;;AA3BA;AACA;AAIA;AAHA;AAAA;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AAAA;;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AAAA;;;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;AAAA;;AAKA;AAJA;;AAAA;AACA;AACA;AACA;AAEA;AACA;;;AACA;AAAA;AAAA;AAEA;;AACA;AAAA;;AACA;AAAA;AACA;;AACA;AAIA;AAHA;;AAAA;AACA;AACA;AAEA;;AAIA;AAFA;;AAAA;AACA;AAEA;;AAAA;AAAA;;;;;;AAEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAEA;AAAA;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CA;AAAA;;AACA;AAAA;;AAEA;AADA;;AAAA;AAEA;;;AAEA;AADA;;AAAA;AAEA;;;;AAIA;AAFA;;AAAA;AACA;;;AAGA;AADA;;AAAA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdA;AAAA;;AACA;AAAA;AACA;;AACA;AACA;AADA;;AAAA;;AAEA;AAAA;AAAA;AACA;;AACA;AACA;AAAA;;;;AAEA;;;;;;AAGA;AAAA;AAAA;AAEA;;AACA;AAAA;AAAA;AACA;;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;AACA;;;AAEA;AAAA;;AACA;AAAA;AAAA;AACA;AAAA;AAAA;;;AAGA;AAAA;;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AAAA;;AAAA;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;ACvBA;;;;AAQA;;AAIA;AACA;AACA;AAIA;;AAEA;AACA;;AAKA;;AAOA;;;;AAIA;;;AAWA;AAeA;;AAKA;AAsBA;;AA+DA;;;;;;;;;;;;;;;;;;;;;;;AA5JA;AAAA;AACA;AACA;;AACA;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;;;AAEA;AACA;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AAAA;;AACA;AAEA;AAAA;AAAA;AAEA;;AAEA;AACA;AAAA;;AACA;AACA;AACA;;;AAGA;AACA;AACA;AAAA;;AACA;;AAEA;AADA;AAEA;AAAA;AAAA;AAEA;AAAA;;;;;;;;AAKA;AAAA;AACA;;AACA;AACA;AAAA;;AACA;;AACA;AAAA;;;;;AAEA;AAAA;;AACA;;AACA;AAAA;;;;;AAEA;AAAA;;AACA;;AACA;AAAA;;;;;AAEA;;AAEA;AACA;AAAA;AACA;AACA;AACA;;AAHA;;AAIA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AAAA;;AAkBA;AACA;AAAA;AACA;;;AAnBA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;AACA;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;AACA;AAAA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;AAWA;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;ACgCA;;;AAEA;;;;;;AAlCA;AAAA;;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AACA;AAAA;;AAAA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AACA;AACA;AAAA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;;;AAGA;AADA;;AAIA;AAFA;AAAA;AACA;AAEA;AACA;;;;;;AAEA;AAAA;AACA;;AAEA;AACA;AACA;;;AAHA;;AAKA;AAAA;AACA;;AACA;;AAGA;AADA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AAAA;AACA;;AACA;AAAA;AACA;AAAA;;AAGA;AAFA;;AAAA;AACA;AAEA;AACA;AACA;AACA;;;;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AAAA;;AACA;AACA;;;;AAEA;;AACA;AACA;AAAA;AAAA;;;;;;;;;;AASA;AACA;;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAEA;AACA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;;;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAKA;AAJA;;AAAA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AACA;AAAA;;;AACA;AAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;;;;;;;;AAIA;AAAA;;;AACA;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3HA;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;;;;;;;;;;;;;;;;;;;;;;;;ACDA;;;AA6OA;AACA;;;;;;;;;;;;;;;;;;AAlQA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AADA;AAIA;AACA;AACA;AACA;AACA;;AAEA;AAAA;;;;;;AAGA;AACA;AACA;AACA;;AAGA;AADA;AAAA;AAEA;AACA;AACA;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;;;;;;;;;;;AAKA;AACA;AACA;AAAA;AACA;AACA;AACA;;AAEA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7PA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA;AALA;;AAAA;AAAA;AAAA;AAAA;;;AAMA;AACA;AAAA;AACA;AAAA;;AACA;AAAA;AAAA;AACA;;AAgBA;AAAA;AAAA;;AAAA;;AACA;;AAEA;;;;AAjBA;;AADA;AAEA;AAAA;AAAA;;AACA;;;;;AAIA;;AADA;AAEA;AAAA;AAAA;;AAEA;AADA;;AAAA;;;AAGA;AADA;;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAKA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;;AAuCA;AACA;AAAA;;AAAA;AAAA;;;;AACA;AAAA;AAAA;;AAAA;AAAA;;;;;AAxCA;AAAA;AAAA;;AACA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AAEA;AAAA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;AAIA;AACA;AAAA;;AACA;AAAA;;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAEA;AAAA;;AACA;AAAA;AAAA;AACA;AAAA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzDA;AAAA;;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;AAIA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;;AACA;AAAA;AAAA;;AACA;AAAA;AACA;AACA;AAAA;;;AAEA;AAAA;AACA;;AACA;AAAA;;AACA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;AACA;AACA;AACA;;AACA;;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CA;AAAA;AAAA;;AACA;AAEA;AADA;;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AADA;AAEA;AAAA;;AACA;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AACA;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AALA;;;;;;;;;;;;;;;;;;;;;;;ACoBA;AACA;;;;;;AAjDA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AAEA;AAAA;AAAA;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;;AAEA;AAAA;;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;;;;;AAGA;AAKA;AAJA;;AACA;AACA;AACA;AAEA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACiBA;AACA;;;;;;;AA3CA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AAAA;;AAAA;;AACA;;;;AARA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;ACwBA;;;;;;AA5CA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AAAA;AAAA;;AACA;AACA;AACA;AACA;;AACA;AAEA;AAEA;AADA;;AAAA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CA;;AAYA;AACA;AAwBA;;AAqBA;AA8BA;;;;AAcA;;AAOA;;;;AAcA;;AA4CA;AAKA;AAOA;AAIA;AACA;;;;;;;;AA3LA;AAAA;;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;;AACA;AAAA;AACA;;;;;;;;AAGA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAMA;AAAA;AADA;AAEA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;;;AAKA;AAAA;AADA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;;;;;;AAEA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAMA;AAAA;AADA;AAEA;AACA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;AAAA;;;;;;AAMA;AAAA;AADA;AAEA;AACA;AAAA;AACA;AAAA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA;AAAA;;;;;;AAMA;AADA;AAEA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;AAGA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;AAEA;;AAAA;AACA;AAAA;AAAA;AAAA;;;;;;AAGA;;AAAA;AACA;AAAA;;;;AAGA;;AAAA;AACA;AAAA;AAAA;AAAA;;AACA;AAAA;;;;;;;AAMA;;AAAA;AACA;AAAA;;;;AAGA;;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1LA;AAAA;AACA;;AACA;AAAA;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AAAA;AACA;;AACA;AAAA;AACA;AACA;AACA;AACA;;AACA;AAGA;AAHA;;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;;;;;;;;AAMA;AAHA;;AAAA;AACA;AACA;AAEA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;;;;;;;;;AAKA;AAFA;;AAAA;AACA;AAEA;AACA;;AACA;AAAA;AAAA;AACA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AAGA;AAFA;;AAAA;AACA;AAEA;AACA;;AAAA;AAAA;;;;;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AAMA;AACA;AAAA;AAAA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AAIA;AAHA;;AAAA;AACA;AACA;;AAGA;;;;AAZA;;AADA;AACA;AAAA;AAAA;AAAA;;;;;AAGA;;AADA;AAEA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;AAAA;;AACA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AADA;AAAA;AAEA;AACA;AACA;AACA;AACA;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AAAA;AACA;;AAEA;AADA;AAAA;AAAA;AAEA;AACA;;AACA;AAAA;AAAA;AAAA;AACA;AAAA;;AAGA;AAFA;;AACA;;AAEA;AAAA;AACA;AACA;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;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;;;;;;;;;;;;AA3FA;;AAAA;AACA;AAAA;AAAA;;AACA;AACA;AAAA;AACA;AACA;AACA;;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzCA;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;;;;;;;;;;;;;;;;;;;;;;;ACDA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACYA;AACA;;;;;;;;;;AA3BA;AAAA;;AACA;AAAA;;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AACA;AAAA;AAAA;AACA;;AAAA;AAAA;AACA;;AADA;;;;;;;;;AAKA;AAAA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;;AACA;;;AACA;AAAA;AAAA;AAAA;;;;;;;AAGA;AAAA;AAAA;AAAA;;AACA;;;;;AAXA;;;;;AAgBA;AAAA;;AAAA;AAAA;AACA;;AACA;AAAA;;AAAA;AACA;;AACA;;AAFA;;;AAGA;AAAA;;AAAA;AACA;;AAAA;;AADA;;;AAEA;AAAA;;AAAA;AACA;;AAAA;;AADA;;;AAEA;;;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;;AACA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AC8CA;;;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;AACA;AAEA;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;AAEA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAEA;AACA;AAAA;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtGA;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;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAcA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;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;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;;;;;;;;;;;;;;;;;;;;;;ACjMA;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;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;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;AAEA;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;AAEA;AACA;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClJA;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;;;;;;;;;;;;;AC3CA;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;;;;;;;;;;;;;;;;;;;;ACvFA;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;AAAA;AACA;AACA;;;;;;;;;;;;;;;;;ACFA;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;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;;;;;;;;;;;;;AC9bA;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":""}