@gonsin/gview 1.1.13 → 1.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/document-all.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/array-set-length.js","../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../node_modules/core-js/modules/es.array.push.js","../packages/config/nprogress.ts","../packages/config/constant.ts","../packages/config/socket.ts","../packages/config/api.ts","../packages/config/setting.ts","../packages/config/color.ts","../packages/utils/common.ts","../packages/utils/menu.ts","../packages/utils/url.ts","../packages/utils/table.ts","../packages/utils/form.ts","../packages/utils/color.ts","../packages/utils/validate.ts","../packages/components/GLayout/components/GLayoutHeaderTab.vue","../packages/components/GLayout/components/GLayoutHeader.vue","../packages/components/GLayout/components/GLayoutContent.vue","../packages/components/common/color/index.vue","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/normalize-string-argument.js","../node_modules/core-js/internals/dom-exception-constants.js","../node_modules/core-js/internals/error-stack-clear.js","../node_modules/core-js/modules/web.dom-exception.stack.js","../packages/components/GLayout/components/GLayoutSetting.vue","../packages/components/GLayout/components/GLayoutSideMenuContent.vue","../packages/components/GLayout/components/GLayoutSideMenu.vue","../packages/components/GLayout/index.vue","../packages/components/GForm/components/GFormInput.vue","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../packages/api/config.ts","../packages/api/index.ts","../packages/api/modules/view.ts","../packages/components/GForm/components/GFormSelect.vue","../packages/components/GForm/components/GFormSelectDateTime.vue","../packages/components/GHeader/components/GHeaderUpload.vue","../packages/components/GHeader/index.vue","../packages/components/GForm/components/GFormLabel.vue","../packages/components/GForm/components/GFormCheckBox.vue","../packages/components/GForm/components/GFormSwitch.vue","../packages/components/GForm/components/GFormRadio.vue","../packages/components/GForm/components/GFormTreeCheckBox.vue","../packages/components/GForm/components/GFormCascader.vue","../packages/components/GForm/components/GFormUpload.vue","../packages/components/GTable/components/GTableForm.vue","../packages/components/GTable/index.vue","../packages/components/GForm/components/GFormEditor.vue","../packages/components/GForm/components/GFormBlock.vue","../packages/components/GForm/index.vue","../packages/components/GTab/index.vue","../packages/components/GDialog/index.vue","../packages/components/GTemplate/index.vue","../packages/components/GTemplateView/index.vue","../packages/components/GView/index.vue","../packages/store/setting.ts","../packages/store/socket.ts","../packages/store/view.ts","../packages/store/index.ts","../packages/views/GMenuManage/index.vue","../packages/index.ts"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.26.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_TO_LENGTH || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","import NProgress from \"nprogress\";\n\nNProgress.configure({\n easing: \"ease\", // 动画方式\n speed: 600, // 递增进度条的速度\n showSpinner: true, // 是否显示加载spinner\n trickle: false,\n trickleSpeed: 300, // 自动递增间隔\n minimum: 0.1, // 初始化时的最小百分比\n});\n\nexport { NProgress };\n","// 全局样式前缀\nexport const PREFIX = \"gview\";\n\n// 存储键名规范\nexport const LOCAL_CONFIG = \"config\";\nexport const LOCAL_THEME_CONFIG = \"themeConfig\";\nexport const LOCAL_USER = \"user\";\nexport const LOCAL_MENU = \"menu\";\nexport const LOCAL_TAB_MENU = \"tabMenu\";\nexport const TOKEN_NAME = \"token\";\nexport const TOKEN_EXPIRED_TIME = \"tokenExpriredTime\";\n\nexport const LOCAL_DATA_ID = \"dataId\";\n","// WebSocket 相关接口配置\nconst DEVELOP_WS_SERVICE = \"http://192.168.2.192:8088/gview/websocket\".replace(\"http\", \"ws\");\nexport const WS_SERVICE =\n process.env.NODE_ENV !== \"development\"\n ? window.location.origin.replace(window.location.protocol, \"ws:\") + \"/gview/websocket\"\n : DEVELOP_WS_SERVICE;\n\n// WebSocket 消息模板\nexport const INIT_WS_MODEL = (subcmd: string, dataId: string = \"\") => {\n if (!dataId) {\n return {\n head: \"gonsin\",\n cmd: {\n cmd: \"gview_client\",\n subcmd,\n response: 0,\n },\n };\n } else {\n return {\n head: \"gonsin\",\n cmd: {\n cmd: \"gview_client\",\n subcmd,\n },\n args: {\n dataId,\n },\n };\n }\n};\n\n// 心跳间隔时长\nexport const WS_INTERVAL_TIMEOUT = 40000;\n","// 相关接口配置\n// 上传接口\nexport const UPLOAD_API = \"http://192.168.2.192:8088/restapi/s09/gview/active/upload_file\";\n","export const THEME_CONFIG = {\n brandTheme: \"default\", // 主题色\n displayMode: \"light\", // 主题模式 light | dark | auto\n};\n","// /* eslint-disable indent */\nexport type ColorToken = Record<string, string>;\nexport type ColorSeries = Record<string, ColorToken>;\n\nexport const defaultLightColor = [\n \"#0052d9\",\n \"#0594fa\",\n \"#00a870\",\n \"#ebb105\",\n \"#ed7b2f\",\n \"#e34d59\",\n \"#ed49b4\",\n \"#834ec2\",\n];\nexport const defaultDarkColor = [\n \"#4582e6\",\n \"#29a4fb\",\n \"#03a56f\",\n \"#ca8d03\",\n \"#ed7b2f\",\n \"#ea7b84\",\n \"#f172c5\",\n \"#ab87d5\",\n];\n\nexport const COLOR_TOKEN: ColorSeries = {\n DEFAULT: {\n \"--td-brand-color\": \"#0052d9\",\n \"--td-brand-color-1\": \"#f2f3ff\",\n \"--td-brand-color-2\": \"#d9e1ff\",\n \"--td-brand-color-3\": \"#b5c7ff\",\n \"--td-brand-color-4\": \"#8eabff\",\n \"--td-brand-color-5\": \"#618dff\",\n \"--td-brand-color-6\": \"#366ef4\",\n \"--td-brand-color-7\": \"#0052d9\",\n \"--td-brand-color-8\": \"#003cab\",\n \"--td-brand-color-9\": \"#002a7c\",\n \"--td-brand-color-10\": \"#001a57\",\n },\n\n CYAN: {\n \"--td-brand-color\": \"#0594FA\",\n \"--td-brand-color-1\": \"#d7eefe\",\n \"--td-brand-color-2\": \"#aeddfd\",\n \"--td-brand-color-3\": \"#84cafd\",\n \"--td-brand-color-4\": \"#58b8fc\",\n \"--td-brand-color-5\": \"#29a4fb\",\n \"--td-brand-color-6\": \"#0594FA\",\n \"--td-brand-color-7\": \"#29a4fb\",\n \"--td-brand-color-8\": \"#0594FA\",\n \"--td-brand-color-9\": \"#0378df\",\n \"--td-brand-color-10\": \"#01409b\",\n },\n GREEN: {\n \"--td-brand-color\": \"#00A870\",\n \"--td-brand-color-1\": \"#8dffd9\",\n \"--td-brand-color-2\": \"#00f2a2\",\n \"--td-brand-color-3\": \"#00dc92\",\n \"--td-brand-color-4\": \"#00c583\",\n \"--td-brand-color-5\": \"#00A870\",\n \"--td-brand-color-6\": \"#009a5d\",\n \"--td-brand-color-7\": \"#00c583\",\n \"--td-brand-color-8\": \"#00A870\",\n \"--td-brand-color-9\": \"#009a5d\",\n \"--td-brand-color-10\": \"#004a14\",\n },\n ORANGE: {\n \"--td-brand-color\": \"#ED7B2F\",\n \"--td-brand-color-1\": \"#fce5d7\",\n \"--td-brand-color-2\": \"#f8cdaf\",\n \"--td-brand-color-3\": \"#f4b285\",\n \"--td-brand-color-4\": \"#f19659\",\n \"--td-brand-color-5\": \"#ED7B2F\",\n \"--td-brand-color-6\": \"#e75510\",\n \"--td-brand-color-7\": \"#f19659\",\n \"--td-brand-color-8\": \"#ED7B2F\",\n \"--td-brand-color-9\": \"#e75510\",\n \"--td-brand-color-10\": \"#7f0a02\",\n },\n RED: {\n \"--td-brand-color\": \"#E34D59\",\n \"--td-brand-color-1\": \"#fbe5e7\",\n \"--td-brand-color-2\": \"#f7ccd0\",\n \"--td-brand-color-3\": \"#f3b2b8\",\n \"--td-brand-color-4\": \"#ef989f\",\n \"--td-brand-color-5\": \"#ea7b84\",\n \"--td-brand-color-6\": \"#E34D59\",\n \"--td-brand-color-7\": \"#ea7b84\",\n \"--td-brand-color-8\": \"#E34D59\",\n \"--td-brand-color-9\": \"#e42c3a\",\n \"--td-brand-color-10\": \"#8d0309\",\n },\n PINK: {\n \"--td-brand-color\": \"#ED49B4\",\n \"--td-brand-color-1\": \"#fce5f4\",\n \"--td-brand-color-2\": \"#facae9\",\n \"--td-brand-color-3\": \"#f7aede\",\n \"--td-brand-color-4\": \"#f491d2\",\n \"--td-brand-color-5\": \"#f172c5\",\n \"--td-brand-color-6\": \"#ED49B4\",\n \"--td-brand-color-7\": \"#f172c5\",\n \"--td-brand-color-8\": \"#ED49B4\",\n \"--td-brand-color-9\": \"#e80f9d\",\n \"--td-brand-color-10\": \"#8f025e\",\n },\n PURPLE: {\n \"--td-brand-color\": \"#834EC2\",\n \"--td-brand-color-1\": \"#eee6f7\",\n \"--td-brand-color-2\": \"#ddceee\",\n \"--td-brand-color-3\": \"#ccb6e6\",\n \"--td-brand-color-4\": \"#bb9edc\",\n \"--td-brand-color-5\": \"#ab87d5\",\n \"--td-brand-color-6\": \"#9a6fce\",\n \"--td-brand-color-7\": \"#9a6fce\",\n \"--td-brand-color-8\": \"#834EC2\",\n \"--td-brand-color-9\": \"#783ac3\",\n \"--td-brand-color-10\": \"#4c1397\",\n },\n YELLOW: {\n \"--td-brand-color\": \"#EBB105\",\n \"--td-brand-color-1\": \"#fde9ab\",\n \"--td-brand-color-2\": \"#fbd152\",\n \"--td-brand-color-3\": \"#EBB105\",\n \"--td-brand-color-4\": \"#dda204\",\n \"--td-brand-color-5\": \"#ca8d03\",\n \"--td-brand-color-6\": \"#b67803\",\n \"--td-brand-color-7\": \"#fbd152\",\n \"--td-brand-color-8\": \"#EBB105\",\n \"--td-brand-color-9\": \"#dda204\",\n \"--td-brand-color-10\": \"#603100\",\n },\n};\n","/**\n * @description: 处理showIf可能出现的值\n * @param {any} value\n * @return {any}\n */\nexport function vFun(value: any): any {\n if (value === undefined) {\n return \"\";\n }\n if (value === null) {\n return \"\";\n }\n if (value === \"\") {\n return \"\";\n }\n if (value === 0) {\n return 0;\n }\n if (value === \"0\") {\n return \"0\";\n }\n return value;\n}\n\n// 处理 path, path有三种形式:'a[0].b.c'、'a.0.b.c' 和 ['a','0','b','c'],需要统一处理成数组,便于后续使用\nfunction _basePath(path) {\n // 若是数组,则直接返回\n if (Array.isArray(path)) return path;\n // 若有 '[',']',则替换成将 '[' 替换成 '.',去掉 ']'\n return path.replace(/\\[/g, \".\").replace(/\\]/g, \"\").split(\".\");\n}\n\n/**\n * @description: 获取对象属性方法\n * @param {*} target\n * @param {*} propertyStr\n * @return {*}\n */\nexport function getProperty(object, path, defaultValue = \"\") {\n // 判断 object 是否是数组或者对象,否则直接返回默认值 defaultValue\n if (typeof object !== \"object\") return defaultValue;\n // 沿着路径寻找到对应的值,未找到则返回默认值 defaultValue\n\n let result = _basePath(path).reduce((o, k) => (o || {})[k], object);\n\n if ((result ?? \"\") != \"\" || result == 0) {\n return result;\n } else {\n return defaultValue;\n }\n}\n\nexport function setProperty(object, path, value) {\n if (typeof object !== \"object\") return object;\n _basePath(path).reduce((o, k, i, _) => {\n if (i === _.length - 1) {\n // 若遍历结束直接赋值\n o[k] = value;\n return null;\n } else if (k in o) {\n // 若存在对应路径,则返回找到的对象,进行下一次遍历\n return o[k];\n } else {\n // 若不存在对应路径,则创建对应对象,若下一路径是数字,新对象赋值为空数组,否则赋值为空对象\n o[k] = /^[0-9]{1,}$/.test(_[i + 1]) ? [] : {};\n return o[k];\n }\n }, object);\n // 返回object\n return object;\n}\n","import { TabMenuItem } from \"../types\";\nimport { LOCAL_CONFIG } from \"../config\";\n/**\n * @description: 获取登录后根据菜单信息生成的初始化链接\n * @param {*} initMenu\n * @param {*} permissions\n * @return {*}\n */\nexport function getInitMenuUrl(userMenu) {\n if ((userMenu ?? \"\") !== \"\") {\n return userMenu.find((element) => (element ?? \"\") != \"\").children.find((element) => (element ?? \"\") != \"\").path;\n }\n}\n\n/**\n * @description: 初始化菜单树\n * @param {*} permissions\n * @return {*}\n */\nexport function handleInitMenuTree(menu: any) {\n let tempList: any = [];\n\n menu.forEach((item: any) => {\n if ((item ?? \"\") !== \"\") {\n if (item?.parent == null) {\n tempList.push({\n path: item.url,\n name: item.name,\n title: item.title,\n icon: item.icon,\n children: [],\n });\n } else {\n tempList.forEach((parentItem) => {\n if (item?.parent == parentItem?.name) {\n parentItem.children.push({\n path: item.url,\n name: item.name,\n title: item.title,\n icon: item.icon,\n });\n }\n });\n }\n }\n });\n return tempList;\n}\n\n/**\n * @description: 过滤菜单权限\n * @return {*}\n */\nexport function menuPermissionFilter(userMenu: [], permissions: string[]) {\n return userMenu.filter((menu: any) => permissions.includes(menu?.name));\n}\n\n/**\n * @description: 获取首页菜单信息\n * @return {*}\n */\nexport function getHomeMenuInfo(): TabMenuItem {\n let config = JSON.parse(localStorage.getItem(LOCAL_CONFIG) as string);\n\n let initHomeMenuItem;\n if ((config?.userMenu ?? \"\") !== \"\") {\n initHomeMenuItem = config.userMenu\n .find((element) => (element ?? \"\") != \"\")\n .children.find((element) => (element ?? \"\") != \"\");\n } else {\n initHomeMenuItem = {\n path: \"\",\n name: \"\",\n };\n }\n\n const homeMeInfo = {\n itemIdx: 0,\n path: initHomeMenuItem.path,\n name: initHomeMenuItem.name,\n title: \"首页\",\n isHome: true,\n };\n\n return homeMeInfo;\n}\n","/**\n * @description: 获取路径中的参数,例子路径 view?viewName=GropBean&MeetingName=TestMeeting\n * @param {*} url\n * @return {*}\n */\nexport function getUrlQuery(url) {\n let queryObj = {};\n\n if (url.indexOf(\"?\") !== -1) {\n let queryStr = url.split(\"?\")[1].split(\"&\");\n\n queryStr.forEach((queryItem) => {\n queryObj[queryItem.split(\"=\")[0]] = queryItem.split(\"=\")[1];\n });\n }\n\n return queryObj;\n}\n","import { TableColumns } from \"../types\";\nimport { PrimaryTableCol } from \"tdesign-vue\";\n\nexport function initTableColumns(tableColumns: TableColumns[]): Array<PrimaryTableCol> {\n let tableColumnsResult: Array<PrimaryTableCol> = [];\n\n // 多选框单元列配置\n tableColumnsResult.push({\n colKey: \"row-select\",\n type: \"multiple\",\n });\n\n tableColumns.forEach((column, idx, arr) => {\n let tempColumnResult: any = {\n colKey: column.keyName !== \"\" ? column.keyName : column.name,\n title: column.name,\n cell: column.columnType,\n width: convertTableColumnWeight(column.weight ?? 1, arr.length),\n // attrs: { style: { whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" } },\n ellipsis: { props: { theme: \"light\", showArrow: false, placement: \"bottom\" } },\n ...column,\n };\n\n if (column.name == \"操作\") {\n tempColumnResult.ellipsis = undefined;\n tempColumnResult.width = convertTableColumnWeight(2, arr.length);\n // console.log(tempColumnResult);\n }\n\n tableColumnsResult.push(tempColumnResult);\n });\n\n return tableColumnsResult;\n}\n\n/**\n * @description: 表格列宽度权重转换\n * @return {*}\n */\nfunction convertTableColumnWeight(weight: number, columnAmount: number) {\n return (weight / columnAmount) * 100 + \"%\";\n}\n","/**\n * @description: 初始化处理树形选择列表数据\n * @param {*} config\n * @return {*}\n */\nexport function initTreeSelectorData(config) {\n const { list, keyName, valueName, titleName, parentKey, parentKeyName } = config;\n\n const selector = (parentKey, arr) => {\n const res: any = [];\n\n arr.forEach((item) => {\n if (item[parentKeyName] == parentKey) {\n const children = selector(item[keyName], list);\n\n const parentObj = {\n key: item[keyName],\n label: item[titleName],\n value: item[valueName],\n children: [],\n };\n\n if (children.length) {\n parentObj.children = children;\n }\n\n res.push(parentObj);\n }\n });\n\n return res;\n };\n\n return selector(parentKey, list);\n}\n","import { ColorSeries, ColorToken } from \"../config/color\";\nfunction toUnderline(name: string): string {\n return name.replace(/([A-Z])/g, \"_$1\").toUpperCase();\n}\n\nexport function getBrandColor(type: string, colorList: ColorSeries): ColorToken {\n const name = /^#[A-F\\d]{6}$/i.test(type) ? type : toUnderline(type);\n return colorList[name || \"DEFAULT\"];\n}\n","/**\n * @description: 判断表单内容是否为空\n * @param {*} value\n * @return {*}\n */\nexport function isVoid(value) {\n if (value === null) {\n return false;\n }\n\n value = (\"\" + value).trim();\n return value != \"\";\n}\n","<template>\n <t-tabs\n :class=\"`${PREFIX}-tabs`\"\n size=\"large\"\n :value=\"decodeURIComponent($route.fullPath)\"\n @change=\"handleChangeCurrentTab\"\n @remove=\"handleRemoveCurrentTab\"\n >\n <t-tab-panel v-for=\"(item, index) in tabMenuList\" :key=\"item.path\" :value=\"item.path\" :removable=\"!item.isHome\">\n <template #label>\n <t-dropdown\n trigger=\"context-menu\"\n :popup-props=\"{\n onVisibleChange: (visible, ctx) => handleTabMenuClick(visible, ctx, item.path),\n visible: activeItemPath != '' ? activeItemPath === item.path : false,\n }\"\n >{{ item.title }}\n <template #dropdown>\n <t-dropdown-menu>\n <t-dropdown-item v-if=\"item.isHome\" @click=\"() => handleChangeCurrentTab(item.path)\">\n <t-icon name=\"home\"></t-icon>前往首页\n </t-dropdown-item>\n <t-dropdown-item v-if=\"!item.isHome\" @click=\"() => handleTabRefresh(item, index)\">\n <t-icon name=\"refresh\"></t-icon>刷新\n </t-dropdown-item>\n <t-dropdown-item v-if=\"index > 1\" @click=\"() => handleTabCloseAhead(item.path, index)\">\n <t-icon name=\"arrow-left\"></t-icon>关闭左侧\n </t-dropdown-item>\n <t-dropdown-item\n v-if=\"index > 0 && index < tabMenuList.length - 1\"\n @click=\"() => handleTabCloseBehind(item.path, index)\"\n >\n <t-icon name=\"arrow-right \"></t-icon>关闭右侧\n </t-dropdown-item>\n <t-dropdown-item\n v-if=\"index > 0 && tabMenuList.length > 2\"\n @click=\"() => handleTabCloseOther(item.path, index)\"\n >\n <t-icon name=\"close-circle\"></t-icon>关闭其他\n </t-dropdown-item>\n </t-dropdown-menu>\n </template>\n </t-dropdown>\n </template>\n </t-tab-panel>\n </t-tabs>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\nimport { getUrlQuery } from \"../../../utils\";\n\nexport default {\n computed: {\n tabMenuList() {\n return this.$store.state.setting.tabMenuList;\n },\n },\n data() {\n return {\n PREFIX,\n activeItemPath: \"\",\n };\n },\n methods: {\n handleTabMenuClick(visible, ctx, path) {\n if (ctx.trigger === \"document\") this.activeItemPath = null;\n if (visible) this.activeItemPath = path;\n },\n handleChangeCurrentTab(path) {\n this.$router.push(\n { path, query: getUrlQuery(path) },\n () => {},\n () => {},\n );\n },\n handleRemoveCurrentTab({ value: path, index }) {\n const { tabMenuList } = this.$store.state.setting;\n\n if (tabMenuList.length > 2) {\n const nextTabMenuItem = tabMenuList[index + 1] || tabMenuList[index - 1];\n\n this.$store.dispatch(\"setting/subtractCurrentTabMenuItem\", { path, itemIdx: index });\n if (path === this.$route.fullPath) {\n this.$router.push(\n {\n path: nextTabMenuItem.path,\n query: nextTabMenuItem.query,\n },\n () => {},\n () => {},\n );\n }\n }\n },\n handleTabRefresh(item, index) {\n this.$nextTick(() => {\n this.$router.push(\n {\n path: item.path,\n query: item.query,\n },\n () => {},\n () => {},\n );\n\n location.reload();\n });\n },\n handleTabCloseAhead(path, itemIdx) {\n this.$store.dispatch(\"setting/subtractTabMenuItemAhead\", { path, itemIdx });\n\n this.handleTabOperationEffect(\"ahead\", itemIdx);\n },\n handleTabCloseBehind(path, itemIdx) {\n this.$store.dispatch(\"setting/subtractTabMenuItemBehind\", { path, itemIdx });\n\n this.handleTabOperationEffect(\"behind\", itemIdx);\n },\n handleTabCloseOther(path, itemIdx) {\n if (this.tabMenuList.length > 2) {\n this.$store.dispatch(\"setting/subtractTabMenuItemOther\", { path, itemIdx });\n\n this.handleTabOperationEffect(\"other\", itemIdx);\n }\n },\n handleTabOperationEffect(type, itemIdx) {\n const currentPath = this.$route.fullPath;\n const { tabMenuList } = this.$store.state.setting;\n\n const currentIdx = tabMenuList.findIndex((item) => item.path === currentPath);\n\n const needRefreshRouter =\n (type === \"other\" && currentIdx !== itemIdx) ||\n (type === \"ahead\" && currentIdx < itemIdx) ||\n (type === \"behind\" && currentIdx === -1);\n\n if (needRefreshRouter) {\n const nextItemIdx = type === \"behind\" ? tabMenuList.length - 1 : 1;\n const nextItem = tabMenuList[nextItemIdx];\n\n this.$router.push({\n path: nextItem.path,\n query: nextItem.query,\n });\n }\n\n this.activeItemPath = null;\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-header :class=\"`${PREFIX}-header`\">\n <t-head-menu :theme=\"displayMode\">\n <template #logo>\n <div class=\"header-logo-container\">\n <div class=\"header-logo\"></div>\n </div>\n <div class=\"header-operate-left\">\n <t-button theme=\"default\" shape=\"square\" variant=\"text\" @click=\"toggleSideMenuCollapsed\">\n <t-icon class=\"collapsed-icon\" name=\"view-list\"></t-icon>\n </t-button>\n </div>\n </template>\n <!-- Tab菜单栏 -->\n <GLayoutHeaderTab />\n <template #operations>\n <div class=\"operation-container\">\n <t-dropdown trigger=\"click\">\n <t-button class=\"header-user-btn\" theme=\"default\" variant=\"text\">\n <t-icon class=\"header-user-avatar\" name=\"user-circle\" />\n <span v-if=\"userRealName\">{{ userRealName }}</span>\n <t-icon name=\"chevron-down\"></t-icon>\n </t-button>\n <template #dropdown>\n <t-dropdown-menu>\n <t-dropdown-item class=\"operations-dropdown-container-item\" @click=\"handleLogout\">\n <t-icon name=\"poweroff\" /> 退出登录\n </t-dropdown-item>\n </t-dropdown-menu>\n </template>\n </t-dropdown>\n\n <t-tooltip placement=\"bottom\" content=\"系统设置\">\n <t-button theme=\"default\" shape=\"square\" variant=\"text\" @click=\"toggleSettingPanel\"\n ><t-icon name=\"setting\" /></t-button\n ></t-tooltip>\n </div>\n </template>\n </t-head-menu>\n </t-header>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\nimport GLayoutHeaderTab from \"./GLayoutHeaderTab.vue\";\n\nexport default {\n components: {\n GLayoutHeaderTab,\n },\n data() {\n return {\n PREFIX,\n };\n },\n computed: {\n userRealName() {\n return this.$store.getters[\"setting/userRealName\"];\n },\n displayMode() {\n return this.$store.getters[\"setting/displayMode\"];\n },\n },\n methods: {\n toggleSideMenuCollapsed() {\n this.$store.commit(\"setting/toggleSideBarCollapse\");\n },\n toggleSettingPanel() {\n this.$store.commit(\"setting/toggleSettingPanel\");\n },\n handleLogout() {\n this.$store.dispatch(\"setting/userLogout\");\n this.$router.push({ path: \"/login\" });\n },\n },\n};\n</script>\n\n<style lang=\"scss\"></style>\n","<template>\n <t-layout :class=\"`${PREFIX}-layout`\">\n <t-content :class=\"`${PREFIX}-content-layout`\">\n <slot />\n </t-content>\n </t-layout>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\n\nexport default {\n data() {\n return {\n PREFIX,\n };\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div :style=\"style\" class=\"color-container\" />\n</template>\n\n<script>\nimport { getBrandColor } from \"../../../utils\";\nimport { COLOR_TOKEN as colorList } from \"../../../config\";\n\nexport default {\n name: \"ColorContainer\",\n props: {\n value: {\n type: String,\n default: \"default\",\n },\n },\n computed: {\n style() {\n return {\n background: getBrandColor(this.value, colorList)[\"--td-brand-color\"],\n };\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.color-container {\n width: 48px;\n height: 48px;\n border-radius: 3px;\n display: inline-block;\n}\n</style>\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","module.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","<template>\n <t-drawer :class=\"`${PREFIX}-setting`\" :visible.sync=\"isSettingPanelShow\" :footer=\"false\">\n <template #header><t-icon name=\"setting\" />系统设置</template>\n <div class=\"setting-container\">\n <div class=\"setting-group-title\">主题色</div>\n <t-radio-group v-model=\"themeData.brandTheme\">\n <div v-for=\"(item, index) in COLOR_OPTIONS.slice(0, COLOR_OPTIONS.length - 1)\" :key=\"index\">\n <t-radio-button :key=\"index\" :value=\"item\" class=\"setting-layout-color-group\">\n <ColorContainer :value=\"item\" />\n </t-radio-button>\n </div>\n </t-radio-group>\n\n <div class=\"setting-group-title\">主题模式</div>\n <t-radio-group v-model=\"themeData.displayMode\" variant=\"default-filled\">\n <div v-for=\"(item, index) in MODE_OPTIONS\" :key=\"index\">\n <t-radio-button :key=\"index\" :value=\"item.type\">{{ item.text }}</t-radio-button>\n </div>\n </t-radio-group>\n\n <div class=\"setting-group-title\">其他设置</div>\n </div>\n </t-drawer>\n</template>\n\n<script>\nimport ColorContainer from \"../../common/color/index.vue\";\nimport { PREFIX, THEME_CONFIG } from \"../../../config\";\n\nconst COLOR_OPTIONS = [\"default\", \"cyan\", \"green\", \"yellow\", \"orange\", \"red\", \"pink\", \"purple\", \"dynamic\"];\nconst MODE_OPTIONS = [\n { type: \"light\", text: \"明亮\" },\n { type: \"dark\", text: \"暗黑\" },\n { type: \"auto\", text: \"跟随系统\" },\n];\n\nexport default {\n components: {\n ColorContainer,\n },\n data() {\n return {\n PREFIX,\n MODE_OPTIONS,\n COLOR_OPTIONS,\n };\n },\n computed: {\n themeData() {\n return this.$store.state.setting.themeConfig;\n },\n isSettingPanelShow: {\n get() {\n return this.$store.state.setting.isSettingPanelShow;\n },\n set() {\n this.$store.commit(\"setting/toggleSettingPanel\");\n },\n },\n },\n watch: {\n themeData: {\n handler(value) {\n this.$store.dispatch(\"setting/changeTheme\", value);\n },\n deep: true,\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div>\n <template v-for=\"item in menuList\">\n <template v-if=\"!item.children || !item.children.length\">\n <t-menu-item :name=\"item.path\" :value=\"item.path\" :to=\"item.path\" @click=\"handleMenuItemClick\">\n {{ item.title }}</t-menu-item\n >\n </template>\n <t-submenu v-else :name=\"item.name\" :value=\"item.name\" :title=\"item.title\">\n <GLayoutSideMenuContent v-if=\"item.children\" :nav-data=\"item.children\" />\n </t-submenu>\n </template>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"GLayoutSideMenuContent\",\n props: {\n navData: Array,\n },\n data() {\n return {};\n },\n computed: {\n // 菜单列表\n menuList() {\n return this.getMenuList(this.navData);\n },\n },\n methods: {\n getMenuList(list) {\n if (!list) return [];\n return list;\n },\n handleMenuItemClick() {\n this.$store.commit(\"setting/toggleSideBarCollapse\");\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <!-- 侧边抽屉菜单 -->\n <t-drawer\n :class=\"`${PREFIX}-drawer`\"\n size=\"232px\"\n placement=\"left\"\n :visible.sync=\"menuCollapsed\"\n :showOverlay=\"true\"\n :header=\"false\"\n :footer=\"false\"\n :showInAttachedElement=\"true\"\n >\n <t-menu width=\"210px\" :theme=\"displayMode\" :value=\"menuActivePath\" :default-expanded=\"menuDefaultExpanded\">\n <GLayoutSideMenuContent :nav-data=\"menu\" />\n\n <template #operations>\n <t-button variant=\"text\" theme=\"primary\" block @click=\"toMenuManage\" style=\"justify-content: flex-start\"\n ><template #icon><t-icon name=\"view-list\"></t-icon></template>菜单管理</t-button\n >\n </template>\n </t-menu>\n </t-drawer>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\nimport GLayoutSideMenuContent from \"./GLayoutSideMenuContent.vue\";\n\nexport default {\n components: {\n GLayoutSideMenuContent,\n },\n data() {\n return {\n PREFIX,\n };\n },\n computed: {\n menu() {\n return this.$store.getters[\"setting/userMenu\"];\n },\n displayMode() {\n return this.$store.getters[\"setting/displayMode\"];\n },\n // 侧边菜单折叠状态\n menuCollapsed: {\n get() {\n return this.$store.state.setting.isSideBarCollapse;\n },\n set() {\n this.$store.commit(\"setting/toggleSideBarCollapse\");\n },\n },\n // 当前菜单激活项\n menuActivePath() {\n const length = this.$route.fullPath.split(\"/\").length;\n return this.$route.fullPath.split(\"/\")[length - 1];\n },\n // 当前菜单默认折叠项\n menuDefaultExpanded() {\n let currentParent;\n this.menu.forEach((parentMenu) => {\n parentMenu.children.forEach((childrenMenu) => {\n if (childrenMenu.path == this.menuActivePath) {\n currentParent = parentMenu.name;\n }\n });\n });\n\n return [currentParent];\n },\n },\n methods: {\n toMenuManage() {\n this.$router.push(\"menu\");\n this.$store.commit(\"setting/toggleSideBarCollapse\");\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-layout>\n <t-layout>\n <GLayoutHeader />\n <t-content>\n <GLayoutContent>\n <t-card :class=\"`${PREFIX}-card`\" :bordered=\"false\" :title=\"title\">\n <slot />\n </t-card>\n </GLayoutContent>\n </t-content>\n </t-layout>\n <GLayoutSideMenu />\n <GLayoutSetting />\n </t-layout>\n</template>\n\n<script>\nimport GLayoutHeader from \"./components/GLayoutHeader.vue\";\nimport GLayoutContent from \"./components/GLayoutContent.vue\";\nimport GLayoutSetting from \"./components/GLayoutSetting.vue\";\nimport GLayoutSideMenu from \"./components/GLayoutSideMenu.vue\";\nimport { PREFIX } from \"../../config\";\n\nexport default {\n name: \"GLayout\",\n components: {\n GLayoutHeader,\n GLayoutContent,\n GLayoutSetting,\n GLayoutSideMenu,\n },\n props: {\n title: String,\n config: Object,\n },\n data() {\n return {\n PREFIX,\n };\n },\n computed: {\n userInitUrl() {\n return this.$store.getters[\"setting/userInitUrl\"];\n },\n },\n mounted() {\n if ((this.config ?? \"\") != \"\") {\n // 初始化GView用户以及菜单信息\n this.$store.dispatch(\"setting/initSettingConfig\", this.config);\n\n // 跳转到登录后初始化页面(只有才首次登录才跳转指定页面)\n if (this.$route.fullPath == \"/view\") {\n this.$router.push(\n { path: this.userInitUrl },\n () => {},\n () => {},\n );\n\n this.$store.dispatch(\"setting/initTabMenu\");\n }\n\n // 初始化主题配置\n this.$store.dispatch(\"setting/loadLocalTheme\");\n\n // 初始化WebSocket连接\n this.$store.dispatch(\"socket/initSocket\");\n }\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <t-input\n v-model=\"value\"\n :type=\"type\"\n :placeholder=\"placeholder\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :disabled=\"disabled\"\n clearable\n ></t-input>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n placeholder: String,\n disabled: Boolean,\n inputType: String,\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n },\n data() {\n return {\n type: \"text\",\n value: this.modelValue,\n };\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n },\n mounted() {\n if (this.inputType == \"re_password\") this.type = \"password\";\n else this.type = this.inputType;\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export const DEFAULT_CONFIG = {\n // 默认地址请求地址,可在 .env 开头文件中修改\n // baseURL: import.meta.env.VITE_API_URL as string,\n // 设置超时时间(10s)\n timeout: 10000,\n // 跨域时候允许携带凭证\n withCredentials: true,\n};\n","import axios, { AxiosInstance, AxiosRequestConfig, AxiosError, AxiosResponse } from \"axios\";\nimport { DEFAULT_CONFIG } from \"./config\";\nimport { ResultData } from \"./interface\";\n\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { LOCAL_CONFIG, LOCAL_USER, NProgress } from \"../config\";\n\nclass RequestHttp {\n service: AxiosInstance;\n public constructor(config: AxiosRequestConfig) {\n // 实例化axios\n this.service = axios.create(config);\n\n /**\n * @description 请求拦截器\n * 客户端发送请求 -> [请求拦截器] -> 服务器\n * token校验(JWT) : 接受服务器返回的token,存储到vuex/pinia/本地储存当中\n */\n this.service.interceptors.request.use(\n (config: AxiosRequestConfig) => {\n const userToken = JSON.parse(localStorage.getItem(LOCAL_CONFIG) as string)?.userToken || {\n token: \"\",\n tokenExpiredTime: \"\",\n };\n const lang = JSON.parse(localStorage.getItem(LOCAL_CONFIG) as string)?.userInfo.language || \"zh-CN\";\n\n if (userToken) {\n const { token, tokenExpiredTime } = userToken;\n\n config.headers = {\n ...config.headers,\n token,\n lang,\n };\n }\n\n NProgress.start();\n\n return {\n ...config,\n };\n },\n (error: AxiosError) => {\n return Promise.reject(error);\n },\n );\n\n /**\n * @description 响应拦截器\n * 服务器换返回信息 -> [拦截统一处理] -> 客户端JS获取到信息\n */\n this.service.interceptors.response.use(\n (response: AxiosResponse) => {\n const { data } = response;\n NProgress.done();\n return data;\n },\n async (error: AxiosError) => {\n MessagePlugin.error(error.message);\n return Promise.reject(error);\n },\n );\n }\n\n // * 常用请求方法封装\n get<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {\n return this.service.get(`${url}?sessionId=RYNJ0NnJeSzOw41bFxyx1tdgoYJ5l2ve`, { params, ..._object });\n }\n post<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {\n return this.service.post(`${url}?sessionId=RYNJ0NnJeSzOw41bFxyx1tdgoYJ5l2ve`, params, _object);\n }\n put<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {\n return this.service.put(`${url}?sessionId=RYNJ0NnJeSzOw41bFxyx1tdgoYJ5l2ve`, params, _object);\n }\n delete<T>(url: string, params?: any, _object = {}): Promise<ResultData<T>> {\n return this.service.delete(`${url}?sessionId=RYNJ0NnJeSzOw41bFxyx1tdgoYJ5l2ve`, { params, ..._object });\n }\n}\n\nexport default new RequestHttp(DEFAULT_CONFIG);\n","import http from \"../\";\nimport { View } from \"../../types\";\n\nconst viewApiUrl = {\n // 视图 - 获取所有视图 GET\n getAllView: \"/restapi/s09/gview/boards/all\",\n // 视图 - 获取一个视图 GET\n getOneView: \"/restapi/s09/gview/views\",\n // 数据 - 获取数据 POST\n getViewData: \"/restapi/s09/gview/data\",\n // 触发 - 上传文件 POST\n uploadFile: \"/restapi/s09/gview/active/upload_file\",\n // 触发 - 触发文件上传事件 POST\n activeFile: \"/restapi/s09/gview/active/file\",\n // 触发 - 触发confirm事件 POST\n confirm: \"/restapi/s09/gview/active/confirm\",\n // 触发 - 触发批量操作事件 POST\n batch: \"/restapi/s09/gview/active/batch\",\n};\n\n// 视图 - 获取所有视图 GET\nexport const getAllView = (params) => http.get<View.viewInfo[]>(viewApiUrl.getAllView, params);\n// 视图 - 获取一个视图 GET\nexport const getOneView = (params) => http.get<View.viewInfo>(viewApiUrl.getOneView, params);\n// 数据 - 获取数据 POST\nexport const getViewData = (params: View.ReqViewDataParam) => http.post<View.viewData>(viewApiUrl.getViewData, params);\n// 触发 - 触发confirm事件 POST\nexport const confirm = (params: View.ReqConfirmParam) => http.post(viewApiUrl.confirm, params);\n// 触发 - 触发批量操作事件 POST\nexport const batchAction = (params) => http.post(viewApiUrl.batch, params);\n// 触发 - 上传文件 POST\nexport const activeFile = (params) => http.post(viewApiUrl.activeFile, params);\n","<template>\n <t-select\n v-model=\"value\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :placeholder=\"target.name\"\n :size=\"size\"\n :options=\"options\"\n :multiple=\"multiple\"\n :min-collapsed-num=\"2\"\n :disabled=\"disabled\"\n clearable\n />\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { getViewData } from \"../../../api/modules/view\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n targetViewName: String,\n size: {\n type: String,\n default: \"medium\",\n },\n multiple: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n value: this.modelValue,\n options: [],\n\n // 路径查询参数\n queryProps: {},\n };\n },\n watch: {\n modelValue: {\n handler(value) {\n this.value = value;\n },\n deep: true,\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n computed: {\n listData() {\n return this.target.listData;\n },\n dataId() {\n return this.listData.dataId;\n },\n propsModel() {\n let tempModel = {};\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n async getSelectData() {\n const res = await getViewData({\n viewName: this.targetViewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n if (res.state === 200) {\n let list = res.data;\n if (list != null && list.length != 0) {\n let arr = [];\n list.forEach((item) => {\n if (item != null) {\n arr.push({\n key: item[this.listData.keyName],\n label: item[this.listData.titleName],\n value: item[this.listData.valueName],\n });\n }\n });\n this.options = arr;\n }\n } else {\n MessagePlugin.error(`获取数据失败:${res.message}`);\n }\n },\n },\n mounted() {\n this.getSelectData();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div>\n <t-date-picker\n v-if=\"target.itemType === 'date_selector' || target.itemType === 'date_time_selector'\"\n :enable-time-picker=\"target.itemType === 'date_time_selector'\"\n v-model=\"dateTimeValue\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :format=\"target.format || 'YYYY-MM-DD HH:mm:ss'\"\n valueType=\"time-stamp\"\n :disabled=\"disabled\"\n clearable\n />\n <t-time-picker\n v-if=\"target.itemType === 'time_selector'\"\n v-model=\"dateTimeValue\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :format=\"target.format || 'HH:mm:ss'\"\n clearable\n />\n </div>\n</template>\n\n<script>\nimport dayjs from \"dayjs\";\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n },\n data() {\n return {\n value: \"\",\n };\n },\n computed: {\n dateTimeValue: {\n get() {\n if (this.modelValue == 0) {\n return \"\";\n } else {\n if (this.target.itemType == \"time_selector\") {\n return dayjs(this.modelValue).format(\"HH:mm:ss\");\n } else {\n return this.modelValue;\n }\n }\n },\n set(value) {\n this.value = value;\n if (this.target.itemType == \"time_selector\") {\n this.value = dayjs(value, \"HH:mm:ss\").valueOf();\n }\n },\n },\n },\n methods: {\n handleChange() {\n this.$emit(\"update:modelValue\", this.value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-upload\n :action=\"UPLOAD_API\"\n @success=\"handleUplaodSuccess\"\n @fail=\"handleUploadError\"\n :showUploadProgress=\"false\"\n style=\"padding: 0 8px 0 0\"\n >\n <t-button>\n <template>\n <t-icon name=\"upload\"></t-icon>\n </template>\n {{ target.name }}\n </t-button>\n </t-upload>\n</template>\n\n<script>\n// to-do 更换为从传入的配置中获取上传接口\nimport { UPLOAD_API } from \"../../../config\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nexport default {\n props: {\n target: Object,\n targetViewName: String,\n },\n data() {\n return {\n UPLOAD_API,\n uploadData: {},\n };\n },\n methods: {\n handleUplaodSuccess(event) {\n const uploadResult = event.response;\n this.$emit(\"returnFileUrl\", uploadResult.data.shift(), this.target);\n },\n handleUploadError(error) {\n MessagePlugin.error(`上传失败:${error}`);\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div :class=\"`${PREFIX}-t-header`\">\n <t-row justify=\"space-between\">\n <div class=\"left-operations\">\n <t-row>\n <slot name=\"left-operations\">\n <!-- 上传按钮 -->\n <template v-if=\"headerUploadBtns\">\n <GHeaderUpload\n v-for=\"btn in headerUploadBtns\"\n :key=\"btn.buttonId\"\n :target=\"btn\"\n :targetViewName=\"viewName\"\n />\n </template>\n <t-button\n v-for=\"btn in headerCommonBtns\"\n :key=\"btn.buttonId\"\n theme=\"primary\"\n @click=\"handleHeaderButtonClick(btn)\"\n >\n <!-- <template #icon>\n\t\t\t\t\t\t<t-icon :name=\"btn.icon\"></t-icon>\n\t\t\t\t\t</template> -->\n {{ btn.name }}\n </t-button>\n </slot>\n </t-row>\n </div>\n <div class=\"right-operations\">\n <slot name=\"right-operations\">\n <div class=\"search-filter-form\" v-for=\"(item, index) in headerFilters\" :key=\"index\">\n <div class=\"search-filter-item\" v-if=\"item.itemType === 'text_input'\">\n <GFormInput :modelValue.sync=\"filterForm[item.keyName]\" :placeholder=\"item.placeholder\" />\n </div>\n <div class=\"search-filter-item\" v-if=\"item.itemType === 'selector'\">\n <GFormSelect\n :modelValue.sync=\"filterForm[item.keyName]\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n ></GFormSelect>\n </div>\n <div\n class=\"search-filter-item\"\n v-if=\"\n item.itemType === 'date_selector' ||\n item.itemType === 'time_selector' ||\n item.itemType === 'date_time_selector'\n \"\n >\n <GFormSelectDateTime\n :modelValue.sync=\"filterForm[item.keyName]\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n />\n </div>\n </div>\n </slot>\n </div>\n </t-row>\n </div>\n</template>\n\n<script>\nimport { PREFIX } from \"../../config\";\nimport GFormInput from \"../GForm/components/GFormInput.vue\";\nimport GFormSelect from \"../GForm/components/GFormSelect.vue\";\nimport GFormSelectDateTime from \"../GForm/components/GFormSelectDateTime.vue\";\nimport GHeaderUpload from \"./components/GHeaderUpload.vue\";\n\nexport default {\n name: \"Gheader\",\n components: {\n GFormInput,\n GFormSelect,\n GFormSelectDateTime,\n GHeaderUpload,\n },\n props: {\n viewName: String,\n headerInfo: Object,\n formModel: {},\n },\n data() {\n return {\n PREFIX,\n filterForm: {},\n };\n },\n computed: {\n // 头部操作按钮\n headerCommonBtns() {\n return this.headerInfo?.buttons.filter((button) => button.action != \"UPLOAD_FILE\");\n },\n // 头部上传按钮\n headerUploadBtns() {\n return this.headerInfo?.buttons.filter((button) => button.action == \"UPLOAD_FILE\");\n },\n headerSearchBar() {\n return this.headerInfo?.searchBar;\n },\n headerFilters() {\n return this.headerInfo.searchBar.filters;\n },\n },\n watch: {\n filterForm: {\n handler(value) {\n this.$emit(\"header-filter-change\", value);\n },\n deep: true,\n },\n },\n methods: {\n handleHeaderButtonClick(button) {\n this.$emit(\"header-button-action\", button);\n },\n },\n};\n</script>\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <t-tag>{{ modelValue }}</t-tag>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: { required: true },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-checkbox v-model=\"value\" @change=\"handleChange\" :disabled=\"disabled\" />\n</template>\n\n<script>\nimport { isVoid } from \"../../../utils\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n },\n data() {\n return {\n value: false,\n };\n },\n watch: {\n modelValue: {\n handler() {\n this.value = this.modelValue;\n\n if (!isVoid(this.modelValue)) {\n this.value = false;\n }\n },\n immediate: true,\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-switch v-model=\"value\" @change=\"handleChange\" :disabled=\"disabled\" />\n</template>\n\n<script>\nimport { isVoid } from \"../../../utils\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n },\n data() {\n return {\n value: false,\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n\n if (!isVoid(this.modelValue)) {\n this.value = false;\n }\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-radio-group v-model=\"value\" @change=\"handleChange\" :disabled=\"disabled\">\n <t-radio v-for=\"item in selectList\" :key=\"item.key\" :value=\"item.value\">{{ item.label }}</t-radio>\n </t-radio-group>\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { getViewData } from \"../../../api/modules/view\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n targetViewName: String,\n },\n data() {\n return {\n value: this.modelValue,\n selectList: [],\n\n // 路径查询参数\n queryProps: {},\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n computed: {\n listData() {\n return this.target.listData;\n },\n dataId() {\n return this.listData.dataId;\n },\n propsModel() {\n let tempModel = {};\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n async getSelectData() {\n const res = await getViewData({\n viewName: this.targetViewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n if (res.state === 200) {\n let list = res.data;\n if (list != null && list.length != 0) {\n let arr = [];\n list.forEach((item) => {\n if (item != null) {\n arr.push({\n key: item[this.listData.keyName],\n label: item[this.listData.titleName],\n value: item[this.listData.valueName],\n });\n }\n });\n\n this.selectList = arr;\n }\n } else {\n MessagePlugin.error(`获取数据失败:${res.message}`);\n }\n },\n },\n mounted() {\n this.getSelectData();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-tree-select\n v-model=\"value\"\n :data=\"treeOptions\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :placeholder=\"target.placeholder\"\n :multiple=\"multiple\"\n :min-collapsed-num=\"3\"\n :treeProps=\"{ valueMode: 'all' }\"\n :disabled=\"disabled\"\n clearable\n ></t-tree-select>\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { getViewData } from \"../../../api/modules/view\";\nimport { initTreeSelectorData } from \"../../../utils\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n targetViewName: String,\n multiple: {\n type: Boolean,\n default: true,\n },\n },\n data() {\n return {\n value: this.modelValue,\n treeOptions: [],\n\n // 路径查询参数\n queryProps: {},\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n computed: {\n treeData() {\n return this.target.treeData;\n },\n dataId() {\n return this.treeData.dataId;\n },\n\n propsModel() {\n let tempModel = {};\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n async getSelectData() {\n const res = await getViewData({\n viewName: this.targetViewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n if (res.state === 200) {\n let list = res.data;\n if (list != null && list.length != 0) {\n let arr = initTreeSelectorData({\n list,\n keyName: this.treeData.valueName,\n valueName: this.treeData.valueName,\n titleName: this.treeData.titleName,\n parentKey: null,\n parentKeyName: this.treeData.parentKeyName,\n });\n\n this.treeOptions = arr;\n }\n } else {\n MessagePlugin.error(`获取数据失败:${res.message}`);\n }\n },\n },\n mounted() {\n this.getSelectData();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-cascader\n v-model=\"value\"\n :options=\"cascaderOptions\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :multiple=\"multiple\"\n :min-collapsed-num=\"2\"\n :disabled=\"disabled\"\n clearable\n />\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { getViewData } from \"../../../api/modules/view\";\nimport { initTreeSelectorData } from \"../../../utils\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n targetViewName: String,\n multiple: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n value: this.modelValue,\n cascaderOptions: [],\n\n // 路径查询参数\n queryProps: {},\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n computed: {\n treeData() {\n return this.target.treeData;\n },\n dataId() {\n return this.treeData.dataId;\n },\n\n propsModel() {\n let tempModel = {};\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n async getSelectData() {\n const res = await getViewData({\n viewName: this.targetViewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n if (res.state === 200) {\n let list = res.data;\n if (list != null && list.length != 0) {\n let arr = initTreeSelectorData({\n list,\n parentKey: null,\n keyName: this.treeData.keyName,\n valueName: this.treeData.valueName,\n titleName: this.treeData.titleName,\n parentKeyName: this.treeData.parentKeyName,\n });\n\n this.cascaderOptions = arr;\n }\n } else {\n MessagePlugin.error(`获取数据失败:${res.message}`);\n }\n },\n },\n mounted() {\n this.getSelectData();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div>\n <t-upload\n ref=\"uploadRef\"\n theme=\"file\"\n v-model=\"value\"\n :action=\"uploadApi\"\n :accept=\"target.accept\"\n :max=\"target.limit\"\n :size=\"target.maxSize\"\n :disabled=\"disabled\"\n :is-batch-upload=\"true\"\n @change=\"handleChange\"\n @fail=\"handleUploadError\"\n >\n </t-upload>\n </div>\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nexport default {\n props: {\n modelValue: { required: true },\n fileName: String,\n tips: String,\n target: Object,\n targetViewName: String,\n disabled: Boolean,\n },\n data() {\n return {\n value: [],\n };\n },\n watch: {\n modelValue(value) {\n if ((value ?? \"\") != \"\") {\n this.value = [{ name: this.fileName, url: value }];\n } else {\n this.value = [];\n }\n },\n },\n computed: {\n // 上传API从用户传入的config中获取\n uploadApi() {\n return this.$store.getters[\"setting/uploadApi\"];\n },\n },\n\n methods: {\n handleChange() {\n // this.$emit(\"update:modelValue\", this.value);\n if (this.value.length) {\n const { name, response } = this.value[0];\n this.uploadData = response.data;\n if (response.data.length) {\n // this.value = response.data[0];\n this.$emit(\"update:modelValue\", response.data[0]);\n this.$emit(\"blur:modelValue\", response.data[0]);\n this.$emit(\"update:fileName\", name);\n MessagePlugin.success(`上传成功`);\n }\n } else {\n console.log(this.value);\n this.$emit(\"update:modelValue\", \"\");\n }\n },\n handleUploadError(error) {\n MessagePlugin.error(`上传失败:${error}`);\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n.t-upload__single-input-preview {\n max-width: none;\n}\n</style>\n","<template>\n <div class=\"table-form-items\">\n <template v-for=\"item in formItems\">\n <!-- 标签展示 -->\n <GFormLabel v-if=\"item.itemType === 'label'\" :modelValue=\"getProperty(formModel, col.colKey)\" />\n\n <!-- 文字输入 -->\n <GFormInput\n v-if=\"item.itemType == 'text_input'\"\n :inputType=\"item.inputType.toLowerCase()\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 多选框 -->\n <GFormCheckBox\n v-if=\"item.itemType === 'check_box'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 开关 -->\n <GFormSwitch\n v-if=\"item.itemType === 'switch'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 单选框 -->\n <GFormRadio\n v-if=\"item.itemType === 'radio'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 选择器 -->\n <GFormSelect\n v-if=\"item.itemType === 'selector' || item.itemType === 'multi_selector'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :multiple=\"item.itemType === 'multi_selector'\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 日期时间选择器 -->\n <GFormSelectDateTime\n v-if=\"\n item.itemType === 'date_selector' ||\n item.itemType === 'time_selector' ||\n item.itemType === 'date_time_selector'\n \"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 多级选择框 -->\n <GFormTreeCheckBox\n v-if=\"item.itemType === 'tree_check_box'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 级联选择器 -->\n <GFormCascader\n v-if=\"item.itemType === 'multi_tree_selector' || item.itemType === 'tree_selector'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :multiple=\"item.itemType === 'multi_tree_selector'\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 文件上传 -->\n <GFormUpload\n v-if=\"item.itemType === 'file'\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :tips=\"item.placeholder || '请选择上传文件'\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n </template>\n </div>\n</template>\n\n<script>\nimport GFormLabel from \"../../GForm/components/GFormLabel.vue\";\nimport GFormInput from \"../../GForm/components/GFormInput.vue\";\nimport GFormCheckBox from \"../../GForm/components/GFormCheckBox.vue\";\nimport GFormSwitch from \"../../GForm/components/GFormSwitch.vue\";\nimport GFormRadio from \"../../GForm/components/GFormRadio.vue\";\nimport GFormSelect from \"../../GForm/components/GFormSelect.vue\";\nimport GFormSelectDateTime from \"../../GForm/components/GFormSelectDateTime.vue\";\nimport GFormTreeCheckBox from \"../../GForm/components/GFormTreeCheckBox.vue\";\nimport GFormCascader from \"../../GForm/components/GFormCascader.vue\";\nimport GFormUpload from \"../../GForm/components/GFormUpload.vue\";\n\nimport { getProperty, setProperty } from \"../../../utils\";\n\nexport default {\n components: {\n GFormInput,\n GFormLabel,\n GFormCheckBox,\n GFormSwitch,\n GFormRadio,\n GFormSelect,\n GFormSelectDateTime,\n GFormTreeCheckBox,\n GFormCascader,\n GFormUpload,\n },\n props: {\n col: Object,\n row: Object,\n viewName: String,\n },\n data() {\n return {\n formModel: {\n ...this.row,\n },\n };\n },\n computed: {\n formItems() {\n return this.col?.formItems;\n },\n },\n methods: {\n getProperty,\n handleAfterUpdateValue(keyName, value) {\n setProperty(this.formModel, keyName, value);\n\n this.$forceUpdate();\n },\n handleAfterValueBlur(item, value) {\n this.$emit(\"blur\", item, this.formModel);\n },\n },\n watch: {\n row: {\n handler(newValue) {\n Object.assign(this.formModel, this.row);\n },\n immediate: true,\n deep: true,\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.table-form-items {\n width: 250px;\n}\n</style>\n","<template>\n <t-table\n :class=\"`${PREFIX}-table`\"\n :data=\"data\"\n :row-key=\"rowKey\"\n table-layout=\"fixed\"\n size=\"medium\"\n :columns=\"tableColumns\"\n maxHeight=\"calc(100vh - 243px)\"\n cellEmptyContent=\"--\"\n empty=\"--\"\n :hover=\"true\"\n :bordered=\"true\"\n :pagination=\"tablePagination\"\n :selected-row-keys=\"selectedRowKeys\"\n @select-change=\"handleSelectChange\"\n >\n <!-- 纯文本单元格 -->\n <template #TEXT=\"{ col, row }\">{{ returnValue(col, row) }}</template>\n <!-- 枚举文本类型单元格 -->\n <template #ENUMS=\"{ col, row }\"> <span v-html=\"returnEnumsValue(col, row)\"></span></template>\n <!-- 日期格式类型单元格 -->\n <template #DATE=\"{ col, row }\"> {{ returnDateValue(col, row[col.colKey]) }} </template>\n <!-- 二维码展示单元格 -->\n <template #QR_CODE=\"{ col, row }\">\n <t-popup>\n <t-button variant=\"text\" theme=\"primary\">预览</t-button>\n <template #content>\n <vue-qr :text=\"returnValue(col, row)\" :size=\"80\" :margin=\"0\" />\n <div style=\"text-align: center\">{{ row[\"code\"] }}</div>\n </template>\n </t-popup>\n </template>\n <!-- 表单项类型单元格 -->\n <template #FORM_ITEM=\"{ col, row }\">\n <GTableForm :viewName=\"viewName\" :col=\"col\" :row=\"row\" @blur=\"handleTableFormChange\" />\n </template>\n <!-- 图片预览单元格 -->\n <template #IMAGE=\"{ col, row }\">\n <t-image :src=\"returnValue(col, row)\" fit=\"cover\" shape=\"round\" :style=\"{ width: '80px', height: '80px' }\">\n <template #error>\n <t-icon v-if=\"col.name == '头像'\" name=\"user\" />\n <t-icon v-else name=\"file-image\" />\n </template>\n <template #loading>\n <t-icon v-if=\"col.name == '头像'\" name=\"user\" />\n <t-icon v-else name=\"file-image\" size=\"large\" />\n </template>\n </t-image>\n </template>\n <!-- 操作栏 -->\n <template #BUTTONS=\"{ col, row }\">\n <!-- <template v-if=\"handleFilterColumnBtns(col.buttons, row).length <= 3\"> -->\n <t-button\n theme=\"primary\"\n variant=\"text\"\n v-for=\"btns in handleFilterColumnBtns(col.buttons, row)\"\n :key=\"btns.buttonId\"\n @click=\"handleTableButtonClick(btns, row)\"\n >\n {{ btns.name }}\n </t-button>\n <!-- </template> -->\n\n <!-- <template v-if=\"handleFilterColumnBtns(col.buttons, row).length > 3\">\n <t-button\n theme=\"primary\"\n variant=\"text\"\n v-for=\"btns in handleFilterColumnBtns(col.buttons, row).slice(0, 3)\"\n :key=\"btns.buttonId\"\n @click=\"handleTableButtonClick(btns, row)\"\n >\n {{ btns.name }}\n </t-button>\n\n <t-dropdown>\n <t-button theme=\"default\" variant=\"text\" shape=\"circle\">\n <t-icon name=\"ellipsis\" size=\"16\" />\n </t-button>\n <t-dropdown-menu>\n <t-dropdown-item>\n <t-button\n theme=\"primary\"\n variant=\"text\"\n v-for=\"btns in handleFilterColumnBtns(col.buttons, row).slice(3)\"\n :key=\"btns.buttonId\"\n @click=\"handleTableButtonClick(btns, row)\"\n >\n {{ btns.name }}\n </t-button>\n </t-dropdown-item>\n </t-dropdown-menu>\n </t-dropdown>\n </template> -->\n </template>\n </t-table>\n</template>\n\n<script>\nimport { PREFIX } from \"../../config\";\nimport { vFun, initTableColumns } from \"../../utils\";\n\nimport VueQr from \"vue-qr\";\nimport dayjs from \"dayjs\";\nimport Mustache from \"mustache\";\nimport GTableForm from \"./components/GTableForm.vue\";\n\nexport default {\n name: \"GTable\",\n components: {\n VueQr,\n GTableForm,\n },\n props: {\n viewName: String,\n boardInfo: Object,\n tableData: Array,\n paginationProps: Object,\n },\n data() {\n return {\n PREFIX,\n selectedRowKeys: [],\n tablePagination: {\n showJumper: true,\n },\n };\n },\n computed: {\n data() {\n return this.tableData;\n },\n rowKey() {\n return this.boardInfo.tableData.keyName;\n },\n tableColumns() {\n return initTableColumns(this.boardInfo.columns);\n },\n },\n methods: {\n // 处理表格选中数据\n handleSelectChange(value, { selectedRowData }) {\n this.selectedRowKeys = value;\n\n this.$emit(\"return-selected-key\", this.selectedRowKeys);\n },\n // 处理表格普通数据\n returnValue(column, row) {\n if (column.value != \"\") {\n return Mustache.render(column.value, { item: row });\n } else if (column.value == \"\") {\n return row[column.keyName];\n }\n },\n // 处理表格枚举数据类型\n returnEnumsValue(column, row) {\n const enums = column.enums;\n if (enums != null) {\n let targetArr = enums.filter((element) => {\n if (element.value == String(row[column.keyName])) {\n return element.text;\n }\n });\n if (targetArr.length) {\n return targetArr.shift().text;\n } else {\n return row[column.keyName];\n }\n }\n },\n // 处理表格日期数据类型\n returnDateValue(column, target) {\n // return dayjs(target).format(column.format);\n return dayjs(target).format(\"YYYY-MM-DD HH:mm:ss\");\n },\n // 过滤处理表格操作按钮\n handleFilterColumnBtns(columnBtns, row) {\n window.v = vFun;\n\n return columnBtns.filter((element) => {\n if (element.showIf != \"1\") {\n let result, evalResult;\n try {\n result = Mustache.render(element.showIf, { item: row });\n evalResult = eval(result);\n } catch (e) {\n console.warn(e);\n }\n // return true\n return eval(evalResult);\n } else {\n return element;\n }\n });\n },\n // 处理表格操作按钮动作\n handleTableButtonClick(button, row) {\n this.$emit(\"table-button-action\", button, row);\n },\n // 处理表格表单提交\n handleTableFormChange(item, model) {\n this.$emit(\"table-form-confirm\", item, model);\n },\n },\n watch: {\n paginationProps: {\n handler(value) {\n let tempPagination = {};\n Object.assign(tempPagination, value);\n\n this.tablePagination.current = tempPagination.page + 1;\n this.tablePagination.pageSize = tempPagination.count;\n this.tablePagination.total = tempPagination.totalCount;\n\n /* eslint-disable */\n let that = this;\n this.tablePagination.onChange = function (pageInfo) {\n that.$emit(\"return-pagination-props\", pageInfo);\n };\n },\n immediate: true,\n deep: true,\n },\n },\n mounted() {\n if (this.headerFilters) {\n this.headerFilters.forEach((filter) => {\n this.filterForm[filter.keyName] = \"\";\n });\n }\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <div class=\"g-form-editor\">\n <quillEditor v-model=\"value\" @change=\"handleEditorChange($event)\" />\n </div>\n</template>\n\n<script>\nimport { quillEditor } from \"vue-quill-editor\";\nimport \"quill/dist/quill.core.css\";\nimport \"quill/dist/quill.snow.css\";\n\nexport default {\n components: {\n quillEditor,\n },\n props: {\n modelValue: {\n required: true,\n },\n },\n data() {\n return {\n value: this.modelValue,\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n },\n methods: {\n handleEditorChange(content) {\n this.$emit(\"update:modelValue\", content.html);\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div :id=\"blockId\" :ref=\"name\">\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n name: String,\n blockType: String,\n showIf: {\n required: true,\n },\n },\n data() {\n return {\n blockId: \"\",\n };\n },\n methods: {\n updateId() {\n if (this.blockType == \"block_start\" && !this.showIf) {\n this.blockId = `start_${this.name}`;\n } else if (this.blockType == \"block_start\" && this.showIf) {\n this.blockId = `block_${this.name}`;\n } else if (this.blockType == \"block_end\") {\n this.blockId = `end_${this.name}`;\n }\n },\n handleClassShow() {\n if (this.blockType == \"block_start\" && !this.showIf) {\n let start = this.$refs[`${this.name}`];\n\n for (let el = start; el; el = el.nextElementSibling) {\n el.classList.add(\"block-item-hidden\");\n if (el.matches(`#end_${this.name}`)) {\n break;\n }\n }\n } else if (this.blockType == \"block_start\" && this.showIf) {\n let start = this.$refs[`${this.name}`];\n\n for (let el = start; el; el = el.nextElementSibling) {\n if (el.matches(`#end_${this.name}`)) {\n break;\n }\n el.classList.remove(\"block-item-hidden\");\n }\n }\n },\n },\n mounted() {\n this.updateId();\n this.handleClassShow();\n },\n watch: {\n showIf: {\n handler() {\n this.updateId();\n this.handleClassShow();\n },\n immediate: true,\n deep: true,\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n.block-item-hidden {\n display: none;\n}\n</style>\n","<template>\n <div :class=\"`${PREFIX}-form`\">\n <t-form\n :class=\"`${PREFIX}-t-form`\"\n ref=\"form\"\n :data=\"formModel\"\n :rules=\"formRules\"\n label-align=\"left\"\n :label-width=\"150\"\n >\n <template v-for=\"item in formItems\">\n <t-divider v-if=\"item.itemType === 'line' && item.name && handleItemShowIf(item.showIf)\" align=\"left\">\n {{ item.name }}\n </t-divider>\n <GFormBlock\n v-if=\"item.itemType == 'block_start' || item.itemType === 'block_end'\"\n :name=\"item.name\"\n :blockType=\"item.itemType\"\n :showIf=\"handleItemShowIf(item.showIf)\"\n />\n <t-form-item\n :id=\"item.name\"\n :class=\"`${PREFIX}-form-item`\"\n v-if=\"\n item.itemType !== 'line' &&\n item.itemType !== 'hidden' &&\n item.itemType !== 'block_start' &&\n item.itemType !== 'block_end' &&\n handleItemShowIf(item.showIf)\n \"\n :requiredMark=\"\n formWhiteList.indexOf(item.keyName) == -1 &&\n item.required &&\n !handleItemDisableIf(item.disableIf)\n \"\n :label=\"item.name\"\n :name=\"item.inputType != 'RE_PASSWORD' ? item.keyName : 'rePassword'\"\n >\n <!-- 标签展示 -->\n <GFormLabel v-if=\"item.itemType === 'label'\" :modelValue=\"getProperty(formModel, item.keyName)\" />\n <!-- 文字输入 -->\n <GFormInput\n v-if=\"item.itemType === 'text_input' && item.inputType != 'RE_PASSWORD'\"\n :inputType=\"item.inputType.toLowerCase()\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :placeholder=\"item.placeholder\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 确认密码输入 -->\n <GFormInput\n v-if=\"item.itemType === 'text_input' && item.inputType == 'RE_PASSWORD'\"\n :inputType=\"item.inputType.toLowerCase()\"\n :modelValue=\"getProperty(formModel, 'rePassword')\"\n :placeholder=\"item.placeholder\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue('rePassword', $event)\"\n />\n\n <!-- 多选框 -->\n <GFormCheckBox\n v-if=\"item.itemType === 'check_box'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n <!-- 开关 -->\n <GFormSwitch\n v-if=\"item.itemType === 'switch'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n <!-- 单选框 -->\n <GFormRadio\n v-if=\"item.itemType === 'radio'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 选择器 -->\n <GFormSelect\n v-if=\"item.itemType === 'selector' || item.itemType === 'multi_selector'\"\n :key=\"item.listData.dataId\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :multiple=\"item.itemType === 'multi_selector'\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 日期时间选择器 -->\n <GFormSelectDateTime\n v-if=\"\n item.itemType === 'date_selector' ||\n item.itemType === 'time_selector' ||\n item.itemType === 'date_time_selector'\n \"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 多级选择框 -->\n <GFormTreeCheckBox\n v-if=\"item.itemType === 'tree_check_box'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 级联选择器 -->\n <GFormCascader\n v-if=\"item.itemType === 'multi_tree_selector' || item.itemType === 'tree_selector'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :multiple=\"item.itemType === 'multi_tree_selector'\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 文件上传 -->\n <GFormUpload\n v-if=\"item.itemType === 'file'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :target-view-name=\"viewName\"\n :tips=\"item.placeholder || '请选择上传文件'\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n :fileName=\"\n getProperty(formModel, item.filenameKeyName) ||\n getProperty(formModel, item.keyName).split('/').slice(-1)[0]\n \"\n @update:fileName=\"handleAfterUpload(item.filenameKeyName, $event)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 富文本编辑器 -->\n <GFormEditor\n v-if=\"item.itemType === 'rich_text'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n />\n </t-form-item>\n </template>\n <div :class=\"`${PREFIX}-form-buttons`\">\n <t-button\n theme=\"default\"\n v-if=\"formCancelButton.name !== ''\"\n @click=\"handleButtonClick(formCancelButton)\"\n >\n {{ formCancelButton.name }}\n </t-button>\n <t-button\n theme=\"primary\"\n type=\"submit\"\n v-if=\"formOkButotn.name !== ''\"\n @click=\"handleButtonClick(formOkButotn)\"\n >\n {{ formOkButotn.name }}\n </t-button>\n </div>\n </t-form>\n </div>\n</template>\n\n<script>\nimport GFormLabel from \"./components/GFormLabel.vue\";\nimport GFormInput from \"./components/GFormInput.vue\";\nimport GFormCheckBox from \"./components/GFormCheckBox.vue\";\nimport GFormSwitch from \"./components/GFormSwitch.vue\";\nimport GFormRadio from \"./components/GFormRadio.vue\";\nimport GFormSelect from \"./components/GFormSelect.vue\";\nimport GFormSelectDateTime from \"./components/GFormSelectDateTime.vue\";\nimport GFormTreeCheckBox from \"./components/GFormTreeCheckBox.vue\";\nimport GFormCascader from \"./components/GFormCascader.vue\";\nimport GFormUpload from \"./components/GFormUpload.vue\";\nimport GFormEditor from \"./components/GFormEditor.vue\";\nimport GFormBlock from \"./components/GFormBlock.vue\";\n\nimport { PREFIX } from \"../../config\";\nimport { vFun, getProperty, setProperty, isVoid } from \"../../utils\";\nimport Mustache from \"mustache\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nexport default {\n name: \"GForm\",\n components: {\n GFormLabel,\n GFormInput,\n GFormCheckBox,\n GFormSwitch,\n GFormRadio,\n GFormSelect,\n GFormSelectDateTime,\n GFormTreeCheckBox,\n GFormCascader,\n GFormUpload,\n GFormEditor,\n GFormBlock,\n },\n props: {\n viewName: String,\n boardInfo: Object,\n formData: Object,\n },\n data() {\n return {\n PREFIX,\n formModel: {},\n formRules: {},\n formWhiteList: [\"userInfoNameEn\", \"cardNum\", \"attend\", \"userInfoRoleKey\"],\n };\n },\n computed: {\n formItems() {\n return this.boardInfo.formItems;\n },\n formOkButotn() {\n return this.boardInfo.okButton;\n },\n formCancelButton() {\n return this.boardInfo.cancelButton;\n },\n },\n methods: {\n getProperty,\n initFormRules() {\n const currentFormItems = [];\n this.$refs.form.$children.forEach((item) => {\n if ((item.$el.id ?? \"\") != \"\" && !item.$el.classList.contains(\"block-item-hidden\")) {\n currentFormItems.push(item.$vnode.componentOptions.propsData);\n }\n });\n\n let tempRules = {};\n if (currentFormItems.length) {\n // 处理表单项的必填规则\n currentFormItems.forEach((item) => {\n // console.log(currentFormItems);\n let itemTempRules = [];\n if (item.requiredMark && (item.name ?? \"\") != \"\") {\n itemTempRules.push({\n validator: () => {\n if (isVoid(getProperty(this.formModel, item.name))) {\n return { result: true };\n } else {\n const itemName = item.label.replace(/\\s/g, \"\").replace(/[::;\\s]/g, \"\");\n return {\n result: false,\n message: `${itemName}为必填项!`,\n };\n }\n },\n trigger: \"change\",\n });\n }\n\n if (item.name == \"rePassword\") {\n itemTempRules.push({\n validator: () => {\n return {\n result:\n getProperty(this.formModel, \"password\") ==\n getProperty(this.formModel, \"rePassword\"),\n message: `两次输入密码不一致!`,\n };\n },\n trigger: \"blur\",\n });\n }\n\n if (item.name == \"startTime\" || item.name == \"endTime\") {\n itemTempRules.push({\n validator: () => {\n return {\n result:\n getProperty(this.formModel, \"endTime\") -\n getProperty(this.formModel, \"startTime\") >\n 0,\n\n message: `结束时间不能早于开始时间!`,\n };\n // return {\n // result: true,\n // };\n },\n });\n }\n\n if (itemTempRules.length) {\n tempRules[item.name] = itemTempRules;\n }\n });\n }\n\n this.formRules = { ...tempRules };\n },\n handleButtonClick(button) {\n switch (button.action) {\n case \"CONFIRM\": {\n this.$refs.form.validate().then((result) => {\n if (!Object.keys(result).length) {\n // console.log(\"提交表单\", this.formModel);\n this.$emit(\"confirm-form\", this.formModel, button.buttonId);\n } else {\n const firstError = Object.values(result)[0]?.[0]?.message;\n MessagePlugin.warning(`${firstError}`);\n\n // console.log(\"表单验证未通过\", this.formModel, result);\n }\n });\n break;\n }\n case \"CONFIRM_AND_CLOSE\": {\n this.$refs.form.validate().then((result) => {\n if (!Object.keys(result).length) {\n // console.log(\"提交表单\", this.formModel);\n this.$emit(\"confirm-and-close\", this.formModel, button.buttonId);\n } else {\n const firstError = Object.values(result)[0]?.[0]?.message;\n MessagePlugin.warning(`${firstError}`);\n\n // console.log(\"表单验证未通过\", this.formModel, result);\n }\n });\n break;\n }\n case \"CLOSE_DIALOG\": {\n this.$emit(\"close-dialog\");\n break;\n }\n default: {\n console.log(button);\n break;\n }\n }\n },\n handleAfterUpdateValue(keyName, value) {\n setProperty(this.formModel, keyName, value);\n this.$forceUpdate();\n\n this.$nextTick(() => {\n this.initFormRules();\n });\n },\n handleAfterUpload(keyName, value) {\n if ((keyName ?? \"\") != \"\") {\n setProperty(this.formModel, keyName, value);\n }\n this.$forceUpdate();\n },\n handleItemShowIf(showIf) {\n window.v = vFun;\n\n if (typeof showIf != \"undefined\" && showIf != 1) {\n let result, evalResult;\n try {\n result = Mustache.render(showIf, { form: this.formModel });\n evalResult = eval(result);\n // console.log(\"showIf\", showIf, \"mustacheResult\", result, \"evalResult\", evalResult);\n // console.log(evalResult);\n } catch (e) {\n console.warn(e);\n }\n return evalResult;\n } else {\n return true;\n }\n },\n handleItemDisableIf(disableIf) {\n window.v = vFun;\n\n if (disableIf != 0) {\n let result, evalResult;\n try {\n result = Mustache.render(disableIf, { form: this.formModel });\n evalResult = eval(result);\n // console.log(\"disableIf\", disableIf, \"mustacheResult\", result, \"evalResult\", evalResult);\n // console.log(evalResult);\n } catch (e) {\n console.warn(e);\n }\n return !evalResult;\n } else {\n return false;\n }\n },\n },\n watch: {\n formData: {\n handler() {\n if ((this.formData ?? \"\") != \"\") {\n this.formItems.forEach((formItem) => {\n if (formItem.keyName && (getProperty(this.formData, formItem.keyName) ?? \"\") == \"\") {\n if (formItem.itemType == \"check_box\" || formItem.itemType == \"switch\") {\n setProperty(this.formData, formItem.keyName, false);\n }\n }\n });\n\n Object.assign(this.formModel, this.formData);\n this.$forceUpdate();\n } else {\n let tempModel = {};\n this.formItems.forEach((formItem) => {\n if (formItem.itemType !== \"check_box\" || formItem.itemType !== \"switch\") {\n setProperty(tempModel, formItem.keyName, \"\");\n } else {\n setProperty(tempModel, formItem.keyName, false);\n }\n });\n Object.assign(this.formModel, tempModel);\n this.$forceUpdate();\n }\n },\n deep: true,\n immediate: true,\n },\n },\n mounted() {\n this.initFormRules();\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <t-tabs :class=\"`${PREFIX}-tab`\" placement=\"left\" :value=\"currentTabTitle\" @change=\"handleTabChange\">\n <t-tab-panel v-for=\"tab in tabs\" :key=\"tab.title\" :value=\"tab.title\" :label=\"tab.title\">\n <t-card :bordered=\"false\">\n <template slot=\"content\">\n <GTemplate v-if=\"tab.board\" :viewName=\"viewName\" :board=\"tab.board\" />\n </template>\n </t-card>\n </t-tab-panel>\n </t-tabs>\n</template>\n\n<script>\nimport { PREFIX } from \"../../config\";\n\nexport default {\n components: {\n GTemplate: () => import(\"../GTemplate/index.vue\").then((d) => d.default),\n },\n name: \"GTab\",\n props: {\n viewName: String,\n boardInfo: Object,\n },\n computed: {\n tabs() {\n return this.boardInfo.tabs;\n },\n },\n data() {\n return {\n PREFIX,\n currentTabTitle: this.boardInfo.tabs[0].title,\n };\n },\n methods: {\n handleTabChange(newTabTitle) {\n this.currentTabTitle = newTabTitle;\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <transition name=\"fade\">\n <t-dialog\n :class=\"`${PREFIX}-dialog`\"\n :header=\"dialogHeaderName\"\n :footer=\"false\"\n width=\"665\"\n :visible=\"isVisible\"\n @close=\"handleDialogChange\"\n >\n <div slot=\"body\">\n <GTemplate\n v-if=\"viewBoard\"\n :viewName=\"dialogViewName\"\n :board=\"viewBoard\"\n :dialogProps=\"dialogProps\"\n @close-dialog=\"handleCloseDialog\"\n />\n </div>\n </t-dialog>\n </transition>\n</template>\n\n<script>\nimport { PREFIX } from \"../../config\";\nimport { getOneView } from \"../../api/modules/view\";\nexport default {\n name: \"GDialog\",\n components: {\n GTemplate: () => import(\"../GTemplate/index.vue\").then((d) => d.default),\n },\n props: {\n dialogViewInfo: Object,\n dialogFormModel: Object,\n isVisible: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n PREFIX,\n viewInfo: {},\n viewBoard: {},\n viewProps: [],\n };\n },\n computed: {\n dialogHeaderName() {\n return this.dialogViewInfo.name;\n },\n dialogViewName() {\n return this.dialogViewInfo.view;\n },\n dialogProps() {\n let tempProps = {};\n if (this.dialogFormModel) {\n this.viewProps.forEach((prop) => {\n if (this.dialogFormModel[prop]) {\n tempProps[prop] = this.dialogFormModel[prop];\n }\n });\n return tempProps;\n } else {\n return null;\n }\n },\n viewName() {\n return this.dialogViewInfo.view;\n },\n },\n methods: {\n handleDialogChange() {\n this.$emit(\"update:isVisible\", false);\n },\n handleCloseDialog() {\n this.$emit(\"close-dialog\");\n },\n\n async getViewInfo(viewName, props) {\n props.viewName = viewName;\n\n const res = await getOneView(props);\n\n if (res.state === 200) {\n this.viewInfo = res.data;\n this.viewBoard = res.data.boards?.[0];\n this.viewProps = res.data?.props;\n }\n },\n },\n watch: {\n dialogViewInfo() {\n this.getViewInfo(this.dialogViewName, {});\n },\n },\n mounted() {\n this.getViewInfo(this.dialogViewName, {});\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <div :class=\"`${PREFIX}-template`\">\n <!-- 头部操作 -->\n <GHeader\n v-if=\"headerInfo\"\n :viewName=\"viewName\"\n :viewProps=\"viewProps\"\n :headerInfo=\"headerInfo\"\n @header-button-action=\"handleAction\"\n @header-filter-change=\"handleHeaderFilterChange\"\n />\n <!-- 表格视图 -->\n <GTable\n v-if=\"boardType == 'table'\"\n :viewName=\"viewName\"\n :viewProps=\"viewProps\"\n :boardInfo=\"board\"\n :tableData=\"tableData\"\n :paginationProps=\"tablePaginationProps\"\n @table-button-action=\"handleAction\"\n @table-form-confirm=\"handleTableFormConfirm\"\n @return-pagination-props=\"handleSetPaginationProps\"\n @return-selected-key=\"handleReturnSelectedKey\"\n />\n <!-- 表单视图 -->\n <GForm\n v-if=\"boardType == 'form'\"\n :viewName=\"viewName\"\n :viewProps=\"viewProps\"\n :boardInfo=\"board\"\n :formData=\"formData\"\n @confirm-form=\"handleConfirmForm\"\n @close-dialog=\"handleCloseDialogEvent\"\n @confirm-and-close=\"handleConfirmAndClose\"\n />\n <!-- Tab视图 -->\n <GTab v-if=\"boardType == 'tab'\" :viewName=\"viewName\" :viewProps=\"viewProps\" :boardInfo=\"board\" />\n\n <!-- 对话框 -->\n <GDialog\n v-if=\"isDialogVisible\"\n :isVisible.sync=\"isDialogVisible\"\n :dialog-view-info=\"dialogViewInfo\"\n :dialog-form-model=\"dialogFormModel\"\n @close-dialog=\"handleCloseDialog\"\n />\n </div>\n</template>\n\n<script>\nimport GHeader from \"../GHeader/index.vue\";\nimport GTable from \"../GTable/index.vue\";\nimport GForm from \"../GForm/index.vue\";\nimport GTab from \"../GTab/index.vue\";\nimport GDialog from \"../GDialog/index.vue\";\n\nimport { MessagePlugin, DialogPlugin } from \"tdesign-vue\";\n\nimport { getViewData, batchAction, confirm } from \"../../api/modules/view\";\nimport { PREFIX, LOCAL_DATA_ID } from \"../../config\";\n\nimport Mustache from \"mustache\";\nimport he from \"he\";\n\n// 初始化表格分页数据\nconst initTablePaginationProps = {\n count: 10,\n page: 0,\n totalCount: 0,\n pageCount: 0,\n};\n\nexport default {\n name: \"GTemplate\",\n components: {\n GHeader,\n GTable,\n GForm,\n GTab,\n GDialog,\n },\n props: {\n // 当前模板信息\n board: Object,\n // 当前模板视图名称\n viewName: String,\n // 当前视图所需参数\n viewProps: Array || Object,\n\n // 传入查询参数\n dialogProps: Object,\n },\n data() {\n return {\n PREFIX,\n // 路径查询参数\n queryProps: {},\n\n // 头部搜索框数据\n headerFilterProps: {},\n\n // 表格数据\n tableData: [],\n // 表单数据\n formData: {},\n\n // 表格选中数据\n tableSelectedData: [],\n\n // 表格视图分页数据\n tablePaginationProps: {\n count: 10,\n page: 0,\n totalCount: 0,\n pageCount: 0,\n },\n\n // 对话框相关\n isDialogVisible: false,\n dialogFormModel: {},\n dialogViewInfo: {},\n };\n },\n computed: {\n // 模板种类\n boardType() {\n return this.board.boardType;\n },\n // 头部信息\n headerInfo() {\n return this.board.header;\n },\n // 数据Id\n dataId() {\n if (this.board.data || this.board.tableData) {\n if (this.boardType === \"table\") {\n return this.board.tableData.dataId;\n } else {\n return this.board.data.dataId;\n }\n } else {\n return null;\n }\n },\n\n // 合并获取数据参数模型\n propsModel() {\n let tempModel = {};\n // 头部搜索过滤参数\n if (this.headerInfo && this.headerFilterProps) {\n Object.assign(tempModel, this.headerFilterProps);\n }\n\n // 对话框表单查询参数\n if (this.dialogProps) {\n Object.assign(tempModel, this.dialogProps);\n }\n\n // // 表格分页参数\n if (this.boardType === \"table\") {\n Object.assign(tempModel, this.tablePaginationProps);\n }\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n watch: {\n \"this.$route.query\": {\n handler(newValue) {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n board: {\n handler() {\n // 对话框传入视图数据时获取表单数据\n this.getTemplateData();\n },\n deep: true,\n },\n },\n methods: {\n // 处理按钮动作\n handleAction(button, row = {}) {\n switch (button.action) {\n // 打开对话框动作\n case \"VIEW_BY_DIALOG\": {\n this.isDialogVisible = true;\n this.dialogViewInfo = button;\n this.dialogFormModel = { ...row };\n break;\n }\n // 打开新的视图\n case \"VIEW\": {\n let tempProps = {};\n button.props.forEach((item) => {\n tempProps[item.keyName] = row[item.keyName];\n });\n\n this.$router.push({\n path: `/view`,\n query: {\n viewName: button.view,\n props: JSON.stringify(tempProps),\n },\n });\n break;\n }\n // 确认框\n case \"CONFIRM\": {\n let message; // 确认信息\n if (button.confirmMessage != \"\") {\n message = Mustache.render(button.confirmMessage, { item: row });\n } else {\n message = `是否确定${button.name}`;\n }\n\n let tempProps = {};\n if (button.props) {\n button.props.forEach((item) => {\n tempProps[item.keyName] = row[item.keyName];\n });\n } else {\n tempProps = { ...row };\n }\n\n const dialogInstance = DialogPlugin.confirm({\n theme: \"info\",\n header: button.name,\n body: message,\n onConfirm: () => {\n this.handleConfirmForm(tempProps, button.buttonId);\n dialogInstance.destroy();\n },\n onCancel: () => {\n MessagePlugin.info(`已取消${button.name}`);\n },\n });\n\n break;\n }\n\n // 批量选择\n case \"BATCH\": {\n const dialogInstance = DialogPlugin.confirm({\n theme: \"info\",\n header: button.name,\n body: `此操作将${button.name},是否继续`,\n onConfirm: () => {\n if (this.tableSelectedData.length == 0) {\n MessagePlugin.error(\"请选择操作对象!\");\n } else {\n this.handleBatchAction(button, this.tableSelectedData);\n }\n\n dialogInstance.destroy();\n },\n onCancel: () => {\n MessagePlugin.info(`已取消${button.name}`);\n },\n });\n break;\n }\n\n // 打开链接动作\n case \"LINK\": {\n // window.open(button.link);\n break;\n }\n\n case \"DOWNLOAD\": {\n if ((button.downloadUrl ?? \"\") != \"\") {\n const url = he.decode(Mustache.render(button.downloadUrl, { item: row }));\n\n if ((url ?? \"\") != \"\") {\n const fileName = url.split(\"/\").slice(-1)[0];\n\n const downloadEl = document.createElement(\"a\");\n downloadEl.style.display = \"none\";\n downloadEl.setAttribute(\"target\", \"_blank\");\n fileName && downloadEl.setAttribute(\"download\", fileName);\n downloadEl.setAttribute(\"href\", url);\n downloadEl.click();\n }\n } else {\n MessagePlugin.info(\"未设置下载链接\");\n }\n break;\n }\n\n default: {\n // console.log(\"未设置按钮动作:\", button);\n break;\n }\n }\n },\n\n // 处理头部搜索框改变事件\n handleHeaderFilterChange(filterProps) {\n this.headerFilterProps = filterProps;\n this.getTemplateData();\n },\n\n // 处理表格多选操作\n handleReturnSelectedKey(value) {\n this.tableSelectedData = value;\n },\n\n // 处理表格分页操作\n handleSetPaginationProps(propsModel) {\n Object.assign(this.tablePaginationProps, {\n page: propsModel.current - 1,\n count: propsModel.pageSize,\n });\n\n this.getTemplateData();\n },\n\n // 处理表格批量提交\n async handleBatchAction(item, list) {\n let batchProps = {};\n\n const { query } = this.$route;\n if (query.props != null) {\n batchProps = { ...JSON.parse(query.props) };\n }\n\n let res = await batchAction({\n viewName: this.viewName,\n buttonId: item.buttonId,\n props: batchProps,\n keys: list,\n });\n\n if (res.state == 200) {\n MessagePlugin.success(`${item.name} 操作成功!`);\n } else {\n MessagePlugin.error(`操作出错:${res.message}`);\n }\n },\n\n handleTableFormConfirm(formItem, formModel) {\n if (\n formItem.itemType == \"selector\" ||\n formItem.itemType == \"time_selector\" ||\n formItem.itemType == \"date_time_selector\" ||\n formItem.itemType == \"tree_check_box\" ||\n formItem.itemType === \"multi_tree_selector\" ||\n formItem.itemType === \"tree_selector\"\n ) {\n const dialogInstance = DialogPlugin.confirm({\n theme: \"info\",\n body: `此操作将提交该修改,是否继续?`,\n onConfirm: () => {\n this.handleConfirmForm(formModel, formItem.buttonId);\n\n dialogInstance.destroy();\n },\n onCancel: () => {\n MessagePlugin.info(`已取消修改。`);\n },\n });\n } else {\n this.handleConfirmForm(formModel, formItem.buttonId);\n }\n },\n\n // 处理表单提交\n async handleConfirmForm(formModel, buttonId) {\n let confirmProps = {};\n\n const { query } = this.$route;\n if (query.props != null) {\n confirmProps = { ...JSON.parse(query.props) };\n }\n\n Object.assign(confirmProps, formModel);\n\n const res = await confirm({\n buttonId: buttonId,\n props: confirmProps,\n viewName: this.viewName,\n });\n\n if (res.state === 200) {\n MessagePlugin.success(\"提交成功\");\n } else {\n MessagePlugin.error(`提交失败:${res.message}`);\n }\n },\n // 处理对话框关闭\n handleCloseDialog() {\n this.isDialogVisible = false;\n },\n // 处理对话框关闭事件\n handleCloseDialogEvent() {\n this.$emit(\"close-dialog\");\n },\n // 处理对话框提交并关闭\n handleConfirmAndClose(model, buttonId) {\n this.handleConfirmForm(model, buttonId);\n this.$emit(\"close-dialog\");\n },\n\n // 获取当前视图模板数据\n async getTemplateData() {\n let res;\n if (this.dataId !== null) {\n localStorage.setItem(LOCAL_DATA_ID, this.dataId);\n\n res = await getViewData({\n viewName: this.viewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n this.$store.dispatch(\"socket/sendRegisterMessage\", this.dataId);\n\n if (res.state === 200 && res.data) {\n if (this.boardType == \"table\") {\n this.tablePaginationProps = {\n count: res.data.count,\n page: res.data.page,\n pageCount: res.data.pageCount,\n totalCount: res.data.totalCount,\n };\n this.tableData = res.data.data;\n }\n\n if (this.boardType === \"form\") {\n this.formData = res.data;\n }\n } else {\n // todo 重复请求数据报错\n console.warn(res);\n // MessagePlugin.error(`数据获取出错 ${res.message}`);\n }\n }\n },\n },\n mounted() {\n this.getTemplateData();\n\n window.addEventListener(\"onUpdateMessage\", (event) => {\n const updatedDataId = event?.detail.args.dataId;\n if (this.dataId === updatedDataId) {\n // console.log(updatedDataId, \"数据更新了,重新获取数据\");\n this.getTemplateData();\n }\n });\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div :class=\"`${PREFIX}-template-view`\">\n <t-loading :loading=\"isLoading\" :delay=\"isLoadingDelay\">\n <transition name=\"fade\" mode=\"out-in\">\n <GTemplate\n v-for=\"board in viewBoards\"\n :board=\"board\"\n :viewName=\"viewName\"\n :viewProps=\"viewProps\"\n :key=\"Date.now()\"\n />\n </transition>\n </t-loading>\n </div>\n</template>\n\n<script>\nimport GTemplate from \"../GTemplate/index.vue\";\nimport { getOneView } from \"../../api/modules/view\";\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { PREFIX } from \"../../config\";\n\nexport default {\n name: \"GTemplateView\",\n components: {\n GTemplate,\n },\n computed: {\n // view标题\n title() {\n return this.viewInfo?.title;\n },\n // view名称\n viewName() {\n return this.$route.query?.viewName;\n },\n // view版面信息\n viewBoards() {\n return this.viewInfo?.boards;\n },\n // view所需参数\n viewProps() {\n return this.viewInfo?.props;\n },\n // 路径查询参数\n queryProps() {\n const { query } = this.$route.query;\n if (query != null) {\n return JSON.parse(query.props);\n } else {\n return null;\n }\n },\n },\n data() {\n return {\n PREFIX,\n viewInfo: {},\n isLoading: false,\n isLoadingDelay: 500,\n };\n },\n methods: {\n async getViewInfo(viewName, props) {\n props.viewName = viewName;\n\n if (this.queryProps != null) {\n Object.assign(props, this.queryProps);\n }\n\n if ((viewName ?? \"\") != \"\") {\n this.isLoading = true;\n const res = await getOneView(props);\n if (res.state === 200 && res.data) {\n this.viewInfo = res.data;\n this.$emit(\"return-title\", this.title);\n this.appendNewTabMenuItem();\n this.isLoading = false;\n } else {\n this.isLoading = false;\n MessagePlugin.error(`${this.viewName} 目标视图数据为空`);\n }\n }\n },\n appendNewTabMenuItem() {\n const { fullPath, query } = this.$route;\n const path = decodeURIComponent(fullPath);\n\n this.$store.dispatch(\"setting/appendTabMenuItem\", {\n title: this.title,\n path,\n query,\n });\n },\n },\n watch: {\n // 当路由地址的视图名称参数改变时重新获取数据\n viewName() {\n this.getViewInfo(this.viewName, {});\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.pros != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n mounted() {\n // 获取模板数据\n this.getViewInfo(this.viewName, {});\n },\n};\n</script>\n","<template>\n <GLayout :config=\"config\" :title=\"title\">\n <GTemplateView @return-title=\"handleReturnTitle\" />\n </GLayout>\n</template>\n\n<script>\nimport GLayout from \"../GLayout/index.vue\";\nimport GTemplateView from \"../GTemplateView/index.vue\";\nimport { PREFIX } from \"../../config\";\n\nexport default {\n name: \"GView\",\n components: {\n GLayout,\n GTemplateView,\n },\n\n data() {\n return {\n PREFIX,\n title: \"\",\n };\n },\n props: {\n config: Object,\n },\n\n methods: {\n handleReturnTitle(title) {\n this.title = title;\n },\n },\n};\n</script>\n\n<style lang=\"scss\"></style>\n","import { TabMenuItem } from \"../types\";\nimport { handleInitMenuTree, getHomeMenuInfo, getInitMenuUrl } from \"../utils\";\nimport {\n LOCAL_CONFIG,\n LOCAL_THEME_CONFIG,\n LOCAL_MENU,\n LOCAL_USER,\n LOCAL_TAB_MENU,\n TOKEN_EXPIRED_TIME,\n TOKEN_NAME,\n THEME_CONFIG,\n} from \"../config\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nconst initTabMenuList: TabMenuItem[] = [getHomeMenuInfo()];\n\nexport interface UserConfig {\n userInfo: any;\n userMenu: any;\n userToken: {\n token: string;\n tokenExpiredTime: string;\n };\n\n // 登录后首次加载的页面地址\n userInitUrl?: string;\n\n // 上传相关接口\n uploadApi: \"\";\n}\n\nexport type ThemeConfigType = typeof THEME_CONFIG;\n\nexport interface SettingState {\n isSideBarCollapse: boolean;\n isSettingPanelShow: boolean;\n tabMenuList: TabMenuItem[];\n\n themeConfig: ThemeConfigType;\n config: UserConfig;\n}\n\nconst state = () => ({\n // 基本配置\n isSideBarCollapse: false,\n isSettingPanelShow: false,\n tabMenuList: JSON.parse(sessionStorage.getItem(LOCAL_TAB_MENU) as string) || initTabMenuList,\n\n // 主题配置\n themeConfig: JSON.parse(localStorage.getItem(LOCAL_THEME_CONFIG) as string) || {\n ...THEME_CONFIG,\n },\n\n // 用户传入GView的信息与配置\n config: JSON.parse(localStorage.getItem(LOCAL_CONFIG) as string) || {\n userInfo: {},\n userPermissions: [],\n userMenu: [],\n userToken: {\n token: \"\",\n tokenExpiredTime: \"\",\n },\n uploadApi: \"\",\n },\n});\n\nconst getters = {\n userMenu: (state: SettingState) => state.config.userMenu,\n userInitUrl: (state: SettingState) => state.config.userInitUrl,\n userRealName: (state: SettingState) => state.config.userInfo.realName,\n token: (state: SettingState) => state.config.userToken.token,\n tokenExpiredTime: (state: SettingState) => state.config.userToken.tokenExpiredTime,\n uploadApi: (state: SettingState) => state.config.uploadApi,\n\n displayMode: (state: SettingState) => {\n if (state.themeConfig.displayMode === \"auto\") {\n const media = window.matchMedia(\"(prefers-color-scheme:dark)\");\n if (media.matches) {\n return \"dark\";\n }\n return \"light\";\n }\n return state.themeConfig.displayMode;\n },\n};\n\nconst mutations = {\n toggleSideBarCollapse(state: SettingState) {\n state.isSideBarCollapse = !state.isSideBarCollapse;\n },\n toggleSettingPanel(state: SettingState) {\n state.isSettingPanelShow = !state.isSettingPanelShow;\n },\n\n setTabMenuList(state: SettingState, tabMenuList: TabMenuItem[]) {\n sessionStorage.setItem(LOCAL_TAB_MENU, JSON.stringify(tabMenuList));\n state.tabMenuList = tabMenuList;\n },\n\n // 设置用户传入的配置\n setSettingConfig(state: SettingState, config) {\n localStorage.setItem(LOCAL_CONFIG, JSON.stringify(config));\n Object.keys(config).forEach((configKey) => {\n state.config[configKey] = config[configKey];\n });\n },\n\n setThemeSettingConfig(state: SettingState, config) {\n localStorage.setItem(LOCAL_THEME_CONFIG, JSON.stringify(config));\n Object.keys(config).forEach((configKey) => {\n state.themeConfig[configKey] = config[configKey];\n });\n },\n};\n\nconst actions = {\n initSettingConfig({ commit }, config: UserConfig) {\n const { userMenu } = config;\n // 处理生成侧边菜单树\n let menuTree = handleInitMenuTree(userMenu);\n\n // 处理获取登录后首次加载的页面\n config.userInitUrl = getInitMenuUrl([...menuTree]);\n config.userMenu = [...menuTree];\n\n commit(\"setSettingConfig\", config);\n },\n\n userLogout() {\n localStorage.removeItem(LOCAL_CONFIG);\n sessionStorage.removeItem(LOCAL_USER);\n sessionStorage.removeItem(LOCAL_MENU);\n sessionStorage.removeItem(LOCAL_TAB_MENU);\n sessionStorage.removeItem(TOKEN_NAME);\n sessionStorage.removeItem(TOKEN_EXPIRED_TIME);\n\n MessagePlugin.success(\"退出登录成功\");\n },\n\n loadLocalTheme({ commit, dispatch, state }) {\n let { themeConfig } = state;\n dispatch(\"changeMode\", themeConfig);\n dispatch(\"changeBrandTheme\", themeConfig);\n commit(\"setThemeSettingConfig\", themeConfig);\n },\n\n changeTheme({ commit, dispatch }, themeConfig) {\n dispatch(\"changeMode\", themeConfig);\n dispatch(\"changeBrandTheme\", themeConfig);\n commit(\"setThemeSettingConfig\", themeConfig);\n },\n changeMode(_: { state: SettingState }, themeConfig) {\n let theme = themeConfig.displayMode;\n if (themeConfig.displayMode === \"auto\") {\n const media = window.matchMedia(\"(prefers-color-scheme:dark)\");\n if (media.matches) {\n theme = \"dark\";\n } else {\n theme = \"light\";\n }\n }\n const isDarkMode = theme === \"dark\";\n\n document.documentElement.setAttribute(\"theme-mode\", isDarkMode ? \"dark\" : \"\");\n },\n changeBrandTheme(_: { state: SettingState }, themeConfig) {\n const { brandTheme } = themeConfig;\n\n document.documentElement.setAttribute(\"theme-color\", brandTheme);\n },\n\n initTabMenu({ commit }) {\n commit(\"setTabMenuList\", [getHomeMenuInfo()]);\n },\n\n appendTabMenuItem({ commit, state }, newItem: TabMenuItem) {\n if (!state.tabMenuList.find((item) => item.path === newItem.path)) {\n commit(\"setTabMenuList\", state.tabMenuList.concat({ ...newItem }));\n }\n },\n\n subtractCurrentTabMenuItem({ commit, state }, newItem: TabMenuItem) {\n const { itemIdx } = newItem;\n commit(\"setTabMenuList\", state.tabMenuList.slice(0, itemIdx).concat(state.tabMenuList.slice(itemIdx + 1)));\n },\n subtractTabMenuItemBehind({ commit, state }, newItem: TabMenuItem) {\n const { itemIdx } = newItem;\n commit(\"setTabMenuList\", state.tabMenuList.slice(0, itemIdx + 1));\n },\n subtractTabMenuItemAhead({ commit, state }, newItem: TabMenuItem) {\n const { itemIdx } = newItem;\n commit(\"setTabMenuList\", initTabMenuList.concat(state.tabMenuList.slice(itemIdx)));\n },\n subtractTabMenuItemOther({ commit, state }, newItem: TabMenuItem) {\n const { itemIdx } = newItem;\n const tempItem = state.tabMenuList[itemIdx];\n commit(\"setTabMenuList\", itemIdx === 0 ? initTabMenuList : initTabMenuList.concat(tempItem));\n },\n\n clearTabMenuItem({ commit, state }) {\n commit(\"setTabMenuList\", []);\n },\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n};\n","import { INIT_WS_MODEL, WS_INTERVAL_TIMEOUT, WS_SERVICE } from \"../config\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nexport interface SocketState {\n socket: WebSocket | null;\n // WebSocket状态\n isSocketLink?: boolean;\n isSocketFirst?: boolean;\n isSocketReset?: boolean;\n isUserLogin?: boolean;\n socketInterval?: null;\n}\n\nconst state = (): SocketState => ({\n socket: null,\n isSocketLink: false,\n isSocketFirst: false,\n isSocketReset: false,\n isUserLogin: false,\n socketInterval: null,\n});\n\nconst getters = {};\n\nconst mutations = {};\n\nconst actions = {\n initSocket({ state, rootState }) {\n state.isSocketLink = true;\n state.isSocketFirst = true;\n state.socket = new WebSocket(WS_SERVICE);\n\n state.socket.onopen = function (event) {\n // console.log(\"打开连接\", event);\n let model = INIT_WS_MODEL(\"heart\");\n state.socketInterval = setInterval(function () {\n state.socket.send(JSON.stringify(model));\n }, WS_INTERVAL_TIMEOUT);\n };\n\n state.socket.onclose = function (event) {\n MessagePlugin.error(\"WebSocket 断开连接\");\n // console.log(\"断开链接\", event);\n if (state.isUserLogin && state.isSocketLink) {\n clearInterval(state.socketInterval);\n state.socketInterval = null;\n state.isSocketReset = true;\n state.socket = null;\n let timeout = setTimeout(() => {\n // console.log(\"断开连接后重连\");\n state.initSocket();\n clearTimeout(timeout);\n }, 5000);\n }\n };\n state.socket.onerror = function (event) {\n // console.log(\"出现错误\", event);\n MessagePlugin.error(\"WebSocket 出现错误\");\n };\n state.socket.onmessage = function (event) {\n let data = JSON.parse(event.data);\n window.dispatchEvent(\n new CustomEvent(\"onUpdateMessage\", {\n detail: {\n ...data,\n },\n }),\n );\n if (state.isSocketFirst) {\n state.isSocketFirst = false;\n }\n };\n state.isUserLogin = !!rootState.user;\n state.isSocketLink = false;\n },\n sendRegisterMessage({ state }, dataId: string) {\n let model = INIT_WS_MODEL(\"register\", dataId);\n state.socket.send(JSON.stringify(model));\n state.isSocketReset = false;\n },\n sendUnregisterMessage({ state }, dataId: string) {\n let model = INIT_WS_MODEL(\"unregister\", dataId);\n state.socket.send(JSON.stringify(model));\n state.isSocketReset = false;\n },\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n};\n","const state = {};\n\nconst getters = {};\n\nconst mutations = {};\n\nconst actions = {};\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n};\n","import setting from \"./setting\";\nimport socket from \"./socket\";\nimport view from \"./view\";\n\nexport default { setting, socket, view };\n","<template>\n <GLayout :title=\"title\">\n <GHeader>\n <template #left-operations>\n <t-button theme=\"primary\">添加组</t-button>\n <t-button theme=\"default\" @click=\"resetMenu\">恢复默认</t-button>\n </template>\n <template #right-operations>\n <t-button theme=\"primary\" @click=\"saveMenuResult\">保存方案</t-button>\n </template>\n </GHeader>\n\n <t-enhanced-table\n ref=\"menuTable\"\n :data=\"userMenu\"\n id=\"menu-table\"\n :class=\"`${PREFIX}-table`\"\n rowKey=\"name\"\n size=\"small\"\n maxHeight=\"calc(100vh - 243px)\"\n :columns=\"columns\"\n :bordered=\"true\"\n :hover=\"true\"\n dragSort=\"row-handler\"\n @abnormal-drag-sort=\"onAbnormalDragSort\"\n :tree=\"{ childrenKey: 'children', defaultExpandAll: true, treeNodeColumnIndex: 2 }\"\n :treeExpandAndFoldIcon=\"treeExpandAndFoldIcon\"\n >\n <template #drag>\n <t-icon name=\"move\" />\n </template>\n <template #icon=\"{ row }\">\n <!-- {{ row.icon }} -->\n <t-icon v-if=\"row.children\" name=\"user\" size=\"large\" />\n </template>\n\n <template #title=\"{ row }\">\n <span class=\"menu-title\">\n <span class=\"title\" :class=\"row.children ? 'title-bold' : 'title-child'\"> {{ row.title }}</span>\n <span class=\"counts\" v-if=\"row.children\">{{ row.children.length }}项</span>\n </span>\n </template>\n\n <template #operations=\"{ row }\">\n <div class=\"operations\">\n <t-button variant=\"text\" theme=\"primary\" @click=\"EditMenu(row)\"> 编辑修改 </t-button>\n <t-button variant=\"text\" theme=\"primary\" :disabled=\"!!row.children\">\n {{ row.children ? \"-----\" : \"转移至\" }}\n </t-button>\n <t-button variant=\"text\" theme=\"primary\"> 上移 </t-button>\n <t-button variant=\"text\" theme=\"primary\"> 下移 </t-button>\n <t-button variant=\"text\" theme=\"primary\" :disabled=\"!row.children\">\n {{ row.children ? \"撤销组\" : \"-----\" }}\n </t-button>\n </div>\n </template>\n </t-enhanced-table>\n\n <t-dialog :title=\"currentDialogTitle\"></t-dialog>\n </GLayout>\n</template>\n\n<script>\nimport { handleInitMenuTree } from \"../../utils\";\nimport { PREFIX } from \"../../config\";\nimport GLayout from \"../../components/GLayout/index.vue\";\nimport GHeader from \"../../components/GHeader/index.vue\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nexport default {\n name: \"GMenuManage\",\n components: {\n GLayout,\n GHeader,\n },\n\n data() {\n return {\n PREFIX,\n title: \"菜单管理\",\n currentDialogTitle: \"\",\n columns: [\n {\n // 列拖拽排序必要参数\n colKey: \"drag\",\n title: \"排序\",\n cell: \"drag\",\n width: 50,\n },\n {\n title: \"图标\",\n colKey: \"icon\",\n cell: \"icon\",\n width: 50,\n className: \"icon\",\n },\n {\n title: \"菜单名称\",\n colKey: \"title\",\n cell: \"title\",\n width: \"60%\",\n },\n {\n title: \"操作\",\n colKey: \"operations\",\n cell: \"operations\",\n },\n ],\n };\n },\n computed: {\n userMenu() {\n return handleInitMenuTree(this.$store.getters[\"user/menu\"]);\n },\n\n // 树展开收起图标\n treeExpandAndFoldIcon() {\n return () => {};\n // return (h, { type }) =>\n // type === \"expand\" ? <t-icon name=\"chevron-right\" /> : <t-icon name=\"chevron-up\" />;\n },\n },\n\n methods: {\n appendNewTabMenuItem() {\n const { fullPath, query } = this.$route;\n const path = decodeURIComponent(fullPath);\n\n this.$store.dispatch(\"setting/appendTabMenuItem\", {\n title: this.title,\n path,\n query,\n });\n },\n\n onAbnormalDragSort(params) {\n if (params.code === 1001) {\n MessagePlugin.error(\"不同层级的元素,不允许调整顺序\");\n }\n },\n\n EditMenu(menu) {\n console.log(\"当前选中菜单\", menu);\n },\n resetMenu() {\n this.$refs.menuTable.resetData(this.userMenu);\n MessagePlugin.success(\"重置菜单方案成功!\");\n },\n saveMenuResult() {\n MessagePlugin.success(\"保存菜单方案成功!\");\n // console.log(\"目前菜单方案:\", this.$refs.menuTable.dataSource);\n console.log(\"目前菜单方案:\", this.$refs.menuTable.getTreeNode());\n },\n },\n mounted() {\n this.appendNewTabMenuItem();\n },\n};\n</script>\n\n<style lang=\"scss\">\n#menu-table {\n .t-table__tree-col {\n justify-content: space-between;\n }\n\n .t-table__tree-op-icon {\n order: 999;\n }\n\n .icon {\n text-align: center;\n }\n\n .menu-title {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n width: 96%;\n\n // .title {\n // padding-left: 10px;\n // }\n\n .title-bold {\n font-weight: 600;\n }\n\n .title-child {\n color: rgba(0, 0, 0, 0.6);\n font-weight: 600;\n }\n\n .title-child::before {\n content: \" · \";\n }\n\n .counts {\n color: rgba(0, 0, 0, 0.4);\n }\n }\n}\n</style>\n","import \"./style/index.scss\";\nimport GView from \"./components\";\nimport stores from \"./store\";\n\nimport http from \"./api\";\nimport * as utils from \"./utils\";\nimport * as config from \"./config\";\n\nfunction install(Vue, userConfig?: any) {\n // 注册GView组件\n Vue.component(\"GView\", GView);\n\n // 注册Vuex\n Object.keys(stores).forEach((key) => {\n userConfig.store.registerModule(key, stores[key]);\n });\n}\n\n/* istanbul ignore if */\nif (typeof window !== \"undefined\" && window.Vue) {\n install(window.Vue);\n}\nexport * from \"./components\";\nexport * from \"./views\";\nexport { http, utils, config };\nexport default {\n install,\n};\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","check","it","Math","global","globalThis","window","self","this","Function","fails","exec","error","descriptors","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","call","prototype","functionCall","NATIVE_BIND","apply","arguments","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","f","V","descriptor","enumerable","createPropertyDescriptor","bitmap","value","configurable","writable","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","toString","uncurryThis","stringSlice","slice","classofRaw","$Object","split","indexedObject","classof","isNullOrUndefined","$TypeError","TypeError","requireObjectCoercible","toIndexedObject","IndexedObject","documentAll","all","IS_HTMLDDA","undefined","documentAll_1","$documentAll","isCallable","argument","isObject","aFunction","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","process","Deno","versions","version","v8","match","userAgent","engineV8Version","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","String","sham","V8_VERSION","useSymbolAsUid","NATIVE_SYMBOL","iterator","isSymbol","USE_SYMBOL_AS_UID","$Symbol","$String","tryToString","aCallable","getMethod","P","func","ordinaryToPrimitive","input","pref","val","valueOf","defineGlobalProperty","key","SHARED","store","sharedStore","module","exports","push","mode","copyright","license","source","toObject","hasOwnProperty_1","hasOwn","id","postfix","random","uid","WellKnownSymbolsStore","shared","symbolFor","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","description","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","EXISTS","documentCreateElement","ie8DomDefine","DESCRIPTORS","a","$getOwnPropertyDescriptor","O","IE8_DOM_DEFINE","propertyIsEnumerableModule","v8PrototypeDefineBug","anObject","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","V8_PROTOTYPE_DEFINE_BUG","Attributes","current","createNonEnumerableProperty","object","definePropertyModule","getDescriptor","PROPER","functionName","functionToString","inspectSource","WeakMap","weakMapBasicDetection","keys","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","set","has","enforce","getterFor","TYPE","state","NATIVE_WEAK_MAP","metadata","facade","STATE","internalState","CONFIGURABLE_FUNCTION_NAME","require$$0","enforceInternalState","InternalStateModule","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","options","replace","getter","setter","arity","constructor","join","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","mathTrunc","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","concat","getOwnPropertyNames","internalObjectKeys","ownKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","copyConstructorProperties","target","exceptions","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","isArray","Array","SILENT_ON_NON_WRITABLE_LENGTH_SET","arraySetLength","MAX_SAFE_INTEGER","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","SILENT_ON_NON_WRITABLE_LENGTH","$","proto","item","len","argCount","setArrayLength","NProgress","configure","easing","speed","showSpinner","trickle","trickleSpeed","minimum","PREFIX","LOCAL_CONFIG","LOCAL_THEME_CONFIG","LOCAL_USER","LOCAL_MENU","LOCAL_TAB_MENU","TOKEN_NAME","TOKEN_EXPIRED_TIME","LOCAL_DATA_ID","WS_SERVICE","location","origin","protocol","INIT_WS_MODEL","subcmd","dataId","cmd","args","response","WS_INTERVAL_TIMEOUT","UPLOAD_API","THEME_CONFIG","brandTheme","displayMode","defaultLightColor","defaultDarkColor","COLOR_TOKEN","DEFAULT","CYAN","GREEN","ORANGE","RED","PINK","PURPLE","YELLOW","vFun","_basePath","path","getProperty","defaultValue","reduce","o","k","setProperty","_","getInitMenuUrl","userMenu","find","element","children","handleInitMenuTree","menu","tempList","forEach","parent","url","title","icon","parentItem","menuPermissionFilter","permissions","filter","getHomeMenuInfo","initHomeMenuItem","config","JSON","parse","localStorage","getItem","itemIdx","isHome","getUrlQuery","queryObj","queryItem","initTableColumns","tableColumns","tableColumnsResult","colKey","column","idx","arr","tempColumnResult","keyName","cell","columnType","width","convertTableColumnWeight","weight","ellipsis","props","theme","showArrow","placement","columnAmount","initTreeSelectorData","list","valueName","titleName","parentKey","parentKeyName","selector","res","parentObj","label","toUnderline","toUpperCase","getBrandColor","colorList","isVoid","trim","script$u","computed","tabMenuList","$store","setting","activeItemPath","methods","handleTabMenuClick","visible","ctx","trigger","handleChangeCurrentTab","$router","query","handleRemoveCurrentTab","nextTabMenuItem","dispatch","$route","fullPath","handleTabRefresh","$nextTick","reload","handleTabCloseAhead","handleTabOperationEffect","handleTabCloseBehind","handleTabCloseOther","currentPath","currentIdx","findIndex","nextItem","__vue_script__","script","script$t","components","GLayoutHeaderTab","userRealName","getters","toggleSideMenuCollapsed","commit","toggleSettingPanel","handleLogout","script$s","script$r","default","background","anInstance","Prototype","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","__proto__","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","TO_STRING_TAG","toStringTagSupport","CORRECT_ARGUMENTS","tryGet","TO_STRING_TAG_SUPPORT","tag","callee","normalizeStringArgument","$default","domExceptionConstants","IndexSizeError","s","c","m","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","$Error","Error","TEST","stack","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","errorStackClear","dropEntries","prepareStackTrace","DOM_EXCEPTION","NativeDOMException","$DOMException","DOMExceptionPrototype","argumentsLength","message","that","clearErrorStack","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","FORCED_CONSTRUCTOR","DOMException","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","DOMExceptionConstants","constant","constantName","COLOR_OPTIONS","MODE_OPTIONS","text","script$q","ColorContainer","themeData","themeConfig","isSettingPanelShow","watch","handler","deep","script$p","navData","menuList","getMenuList","handleMenuItemClick","script$o","GLayoutSideMenuContent","menuCollapsed","isSideBarCollapse","menuActivePath","menuDefaultExpanded","currentParent","parentMenu","childrenMenu","toMenuManage","script$n","GLayoutHeader","GLayoutContent","GLayoutSetting","GLayoutSideMenu","userInitUrl","mounted","script$m","modelValue","required","originValue","Number","Boolean","placeholder","disabled","inputType","handleChange","$emit","handleBlur","_typeof","_toPrimitive","hint","prim","_toPropertyKey","arg","_defineProperty","DEFAULT_CONFIG","timeout","withCredentials","RequestHttp","service","axios","create","interceptors","request","use","userToken","token","tokenExpiredTime","lang","userInfo","language","headers","start","Promise","reject","done","async","MessagePlugin","params","_object","post","put","delete","http","viewApiUrl","getAllView","getOneView","getViewData","uploadFile","activeFile","confirm","batch","batchAction","script$l","targetViewName","size","multiple","queryProps","immediate","listData","propsModel","tempModel","assign","viewName","getSelectData","script$k","dateTimeValue","itemType","dayjs","format","script$j","uploadData","handleUplaodSuccess","event","uploadResult","shift","handleUploadError","script$i","GFormInput","GFormSelect","GFormSelectDateTime","GHeaderUpload","headerInfo","formModel","filterForm","headerCommonBtns","buttons","button","action","headerUploadBtns","headerSearchBar","searchBar","headerFilters","filters","handleHeaderButtonClick","script$h","script$g","script$f","script$e","selectList","script$d","treeOptions","treeData","script$c","cascaderOptions","script$b","fileName","tips","uploadApi","success","console","log","script$a","GFormLabel","GFormCheckBox","GFormSwitch","GFormRadio","GFormTreeCheckBox","GFormCascader","GFormUpload","col","row","formItems","handleAfterUpdateValue","$forceUpdate","handleAfterValueBlur","newValue","script$9","VueQr","GTableForm","boardInfo","tableData","paginationProps","selectedRowKeys","tablePagination","showJumper","rowKey","columns","handleSelectChange","selectedRowData","returnValue","Mustache","render","returnEnumsValue","enums","targetArr","returnDateValue","handleFilterColumnBtns","columnBtns","v","showIf","evalResult","eval","e","warn","handleTableButtonClick","handleTableFormChange","model","tempPagination","page","pageSize","count","total","totalCount","onChange","pageInfo","script$8","quillEditor","handleEditorChange","content","html","script$7","blockType","blockId","updateId","handleClassShow","$refs","matches","nextElementSibling","classList","remove","add","script$6","GFormEditor","GFormBlock","formData","formRules","formWhiteList","formOkButotn","okButton","formCancelButton","cancelButton","initFormRules","currentFormItems","form","$children","$el","contains","$vnode","componentOptions","propsData","tempRules","itemTempRules","requiredMark","validator","handleButtonClick","validate","then","firstError","values","warning","buttonId","handleAfterUpload","handleItemShowIf","handleItemDisableIf","disableIf","formItem","script$5","GTemplate","resolve","index$1","d","tabs","currentTabTitle","handleTabChange","newTabTitle","script$4","dialogViewInfo","dialogFormModel","isVisible","viewInfo","viewBoard","viewProps","dialogHeaderName","dialogViewName","view","dialogProps","tempProps","prop","handleDialogChange","handleCloseDialog","boards","getViewInfo","script$3","GHeader","GTable","GForm","GTab","GDialog","board","headerFilterProps","tableSelectedData","tablePaginationProps","pageCount","isDialogVisible","boardType","header","getTemplateData","handleAction","stringify","confirmMessage","dialogInstance","DialogPlugin","body","onConfirm","handleConfirmForm","destroy","onCancel","info","handleBatchAction","downloadUrl","he","decode","downloadEl","display","setAttribute","click","handleHeaderFilterChange","filterProps","handleReturnSelectedKey","handleSetPaginationProps","batchProps","handleTableFormConfirm","confirmProps","handleCloseDialogEvent","handleConfirmAndClose","setItem","addEventListener","updatedDataId","detail","script$2","viewBoards","isLoading","isLoadingDelay","appendNewTabMenuItem","decodeURIComponent","pros","script$1","GLayout","GTemplateView","handleReturnTitle","initTabMenuList","sessionStorage","userPermissions","realName","matchMedia","mutations","toggleSideBarCollapse","setTabMenuList","setSettingConfig","configKey","setThemeSettingConfig","actions","initSettingConfig","menuTree","userLogout","removeItem","loadLocalTheme","changeTheme","changeMode","isDarkMode","documentElement","changeBrandTheme","initTabMenu","appendTabMenuItem","newItem","subtractCurrentTabMenuItem","subtractTabMenuItemBehind","subtractTabMenuItemAhead","subtractTabMenuItemOther","tempItem","clearTabMenuItem","namespaced","socket","isSocketLink","isSocketFirst","isSocketReset","isUserLogin","socketInterval","initSocket","rootState","WebSocket","onopen","setInterval","send","onclose","clearInterval","setTimeout","clearTimeout","onerror","onmessage","dispatchEvent","CustomEvent","user","sendRegisterMessage","sendUnregisterMessage","stores","currentDialogTitle","className","treeExpandAndFoldIcon","onAbnormalDragSort","code","EditMenu","resetMenu","menuTable","resetData","saveMenuResult","getTreeNode","install","Vue","userConfig","component","GView","registerModule"],"mappings":"wpBAAA,SAASA,YAAYC,EAAKC,QACX,IAARA,IAAiBA,EAAM,CAAA,GAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBW,CAqBzD,suaCzBA,IAAIe,MAAQ,SAAUC,GACpB,OAAOA,GAAMA,EAAGC,MAAQA,MAAQD,CAClC,EAGcE,SAEZH,MAA2B,iBAAdI,YAA0BA,aACvCJ,MAAuB,iBAAVK,QAAsBA,SAEnCL,MAAqB,iBAARM,MAAoBA,OACjCN,MAAuB,iBAAVG,gBAAsBA,iBAElC,WAAc,OAAOI,IAAO,CAA5B,IAAmCC,SAAS,cAATA,GCbxBC,MAAG,SAAUC,GACzB,IACE,QAASA,GAGV,CAFC,MAAOC,GACP,OAAO,CACR,CACH,ECHAC,aAAkBH,OAAM,WAEtB,OAA8E,GAAvEI,OAAOC,eAAe,CAAE,EAAE,EAAG,CAAEC,IAAK,WAAc,OAAO,CAAI,IAAI,EAC1E,ICJAC,oBAAkBP,OAAM,WAEtB,IAAIQ,EAAQ,aAA6BC,OAEzC,MAAsB,mBAARD,GAAsBA,EAAKE,eAAe,YAC1D,ICLIC,OAAOZ,SAASa,UAAUD,KAEhBE,aAAGC,mBAAcH,OAAKF,KAAKE,QAAQ,WAC/C,OAAOA,OAAKI,MAAMJ,OAAMK,UAC1B,ECLIC,sBAAwB,CAAE,EAACC,qBAE3BC,2BAA2Bf,OAAOe,yBAGlCC,YAAcD,6BAA6BF,sBAAsBN,KAAK,CAAE,EAAG,GAAK,GAIpFU,IAAYD,YAAc,SAA8BE,GACtD,IAAIC,EAAaJ,2BAAyBrB,KAAMwB,GAChD,QAASC,GAAcA,EAAWC,UACpC,EAAIP,yDCbJQ,yBAAiB,SAAUC,EAAQC,GACjC,MAAO,CACLH,aAAuB,EAATE,GACdE,eAAyB,EAATF,GAChBG,WAAqB,EAATH,GACZC,MAAOA,EAEX,ECLIG,oBAAoB/B,SAASa,UAC7BD,KAAOmB,oBAAkBnB,KACzBoB,oBAAsBjB,oBAAegB,oBAAkBrB,KAAKA,KAAKE,KAAMA,MAE3EqB,oBAAiBlB,mBAAciB,oBAAsB,SAAUE,GAC7D,OAAO,WACL,OAAOtB,KAAKI,MAAMkB,EAAIjB,WAE1B,ECRIkB,WAAWC,oBAAY,GAAGD,UAC1BE,YAAcD,oBAAY,GAAGE,OAEnBC,WAAG,SAAU9C,GACzB,OAAO4C,YAAYF,WAAS1C,GAAK,GAAI,EACvC,ECHI+C,UAAUnC,OACVoC,MAAQL,oBAAY,GAAGK,OAGbC,cAAGzC,OAAM,WAGrB,OAAQuC,UAAQ,KAAKrB,qBAAqB,EAC5C,IAAK,SAAU1B,GACb,MAAsB,UAAfkD,WAAQlD,GAAkBgD,MAAMhD,EAAI,IAAM+C,UAAQ/C,EAC3D,EAAI+C,UCZUI,kBAAG,SAAUnD,GACzB,OAAOA,OACT,ECFIoD,aAAaC,UAIHC,uBAAG,SAAUtD,GACzB,GAAImD,kBAAkBnD,GAAK,MAAMoD,aAAW,wBAA0BpD,GACtE,OAAOA,CACT,ECLcuD,gBAAG,SAAUvD,GACzB,OAAOwD,cAAcF,uBAAuBtD,GAC9C,ECNIyD,cAAiC,iBAAZtE,UAAwBA,SAASuE,IAGtDC,gBAAmC,IAAfF,oBAA8CG,IAAhBH,cAEtDI,cAAiB,CACfH,IAAKD,cACLE,WAAYA,YCLVF,cAAcK,cAAaJ,IAI/BK,WAAiBD,cAAaH,WAAa,SAAUK,GACnD,MAA0B,mBAAZA,GAA0BA,IAAaP,aACvD,EAAI,SAAUO,GACZ,MAA0B,mBAAZA,CAChB,ECPIP,YAAcK,cAAaJ,IAE/BO,SAAiBH,cAAaH,WAAa,SAAU3D,GACnD,MAAoB,iBAANA,EAAwB,OAAPA,EAAc+D,WAAW/D,IAAOA,IAAOyD,WACxE,EAAI,SAAUzD,GACZ,MAAoB,iBAANA,EAAwB,OAAPA,EAAc+D,WAAW/D,EAC1D,ECNIkE,UAAY,SAAUF,GACxB,OAAOD,WAAWC,GAAYA,OAAWJ,CAC3C,EAEAO,WAAiB,SAAUC,EAAWC,GACpC,OAAO7C,UAAU8C,OAAS,EAAIJ,UAAUhE,SAAOkE,IAAclE,SAAOkE,IAAclE,SAAOkE,GAAWC,EACtG,ECPAE,oBAAiB5B,oBAAY,CAAE,EAAC6B,eCAlBC,gBAAGN,WAAW,YAAa,cAAgB,GCCrDO,QAAUxE,SAAOwE,QACjBC,KAAOzE,SAAOyE,KACdC,SAAWF,SAAWA,QAAQE,UAAYD,MAAQA,KAAKE,QACvDC,GAAKF,UAAYA,SAASE,GAC1BC,MAAOF,QAEPC,KACFC,MAAQD,GAAG9B,MAAM,KAGjB6B,QAAUE,MAAM,GAAK,GAAKA,MAAM,GAAK,EAAI,IAAMA,MAAM,GAAKA,MAAM,MAK7DF,SAAWG,kBACdD,MAAQC,gBAAUD,MAAM,iBACnBA,OAASA,MAAM,IAAM,MACxBA,MAAQC,gBAAUD,MAAM,iBACpBA,QAAOF,SAAWE,MAAM,MAIhC,IAAAE,gBAAiBJ,QCrBHK,6BAAKtE,OAAOuE,wBAA0B3E,OAAM,WACxD,IAAI4E,EAASC,SAGb,OAAQC,OAAOF,MAAaxE,OAAOwE,aAAmBC,UAEnDA,OAAOE,MAAQC,iBAAcA,gBAAa,EAC/C,ICTAC,eAAiBC,6BACXL,OAAOE,MACkB,iBAAnBF,OAAOM,SCAf5C,UAAUnC,OAEdgF,SAAiBC,eAAoB,SAAU7F,GAC7C,MAAoB,iBAANA,CAChB,EAAI,SAAUA,GACZ,IAAI8F,EAAU3B,WAAW,UACzB,OAAOJ,WAAW+B,IAAYtB,oBAAcsB,EAAQ1E,UAAW2B,UAAQ/C,GACzE,ECZI+F,UAAUT,OAEAU,YAAG,SAAUhC,GACzB,IACE,OAAO+B,UAAQ/B,EAGhB,CAFC,MAAOtD,GACP,MAAO,QACR,CACH,ECLI0C,aAAaC,UAGH4C,UAAG,SAAUjC,GACzB,GAAID,WAAWC,GAAW,OAAOA,EACjC,MAAMZ,aAAW4C,YAAYhC,GAAY,qBAC3C,ECJAkC,UAAiB,SAAUpE,EAAGqE,GAC5B,IAAIC,EAAOtE,EAAEqE,GACb,OAAOhD,kBAAkBiD,QAAQxC,EAAYqC,UAAUG,EACzD,ECJIhD,aAAaC,UAIjBgD,oBAAiB,SAAUC,EAAOC,GAChC,IAAI9D,EAAI+D,EACR,GAAa,WAATD,GAAqBxC,WAAWtB,EAAK6D,EAAM5D,YAAcuB,SAASuC,EAAMrF,aAAKsB,EAAI6D,IAAS,OAAOE,EACrG,GAAIzC,WAAWtB,EAAK6D,EAAMG,WAAaxC,SAASuC,EAAMrF,aAAKsB,EAAI6D,IAAS,OAAOE,EAC/E,GAAa,WAATD,GAAqBxC,WAAWtB,EAAK6D,EAAM5D,YAAcuB,SAASuC,EAAMrF,aAAKsB,EAAI6D,IAAS,OAAOE,EACrG,MAAMpD,aAAW,0CACnB,ECXIvC,iBAAiBD,OAAOC,eAE5B6F,qBAAiB,SAAUC,EAAKxE,GAC9B,IACEtB,iBAAeX,SAAQyG,EAAK,CAAExE,MAAOA,EAAOC,cAAc,EAAMC,UAAU,GAG3E,CAFC,MAAO3B,GACPR,SAAOyG,GAAOxE,CACf,CAAC,OAAOA,CACX,ECRIyE,OAAS,qBACTC,QAAQ3G,SAAO0G,SAAWF,qBAAqBE,OAAQ,CAAA,GAE3DE,YAAiBD,kDCHhBE,EAAiBC,QAAA,SAAUL,EAAKxE,GAC/B,OAAO0E,YAAMF,KAASE,YAAMF,QAAiB/C,IAAVzB,EAAsBA,EAAQ,CAAA,EACnE,GAAG,WAAY,IAAI8E,KAAK,CACtBpC,QAAS,SACTqC,KAAyB,SACzBC,UAAW,4CACXC,QAAS,2DACTC,OAAQ,2CCRNtE,UAAUnC,OAIA0G,SAAG,SAAUtD,GACzB,OAAOjB,UAAQO,uBAAuBU,GACxC,ECLI9C,eAAiByB,oBAAY,GAAGzB,gBAKtBqG,iBAAG3G,OAAO4G,QAAU,SAAgBxH,EAAI2G,GACpD,OAAOzF,eAAeoG,SAAStH,GAAK2G,EACtC,ECRIc,GAAK,EACLC,QAAUzH,KAAK0H,SACfjF,WAAWC,oBAAY,GAAID,UAEjBkF,IAAG,SAAUjB,GACzB,MAAO,gBAAqB/C,IAAR+C,EAAoB,GAAKA,GAAO,KAAOjE,aAAW+E,GAAKC,QAAS,GACtF,ECDIG,sBAAwBC,OAAO,OAC/BzC,SAASnF,SAAOmF,OAChB0C,UAAY1C,UAAUA,SAAY,IAClC2C,sBAAwBnC,eAAoBR,SAASA,UAAUA,SAAO4C,eAAiBL,IAE7EM,gBAAG,SAAUC,GACzB,IAAKX,iBAAOK,sBAAuBM,KAAWzC,4BAAuD,iBAA/BmC,sBAAsBM,GAAoB,CAC9G,IAAIC,EAAc,UAAYD,EAC1BzC,4BAAiB8B,iBAAOnC,SAAQ8C,GAClCN,sBAAsBM,GAAQ9C,SAAO8C,GAErCN,sBAAsBM,GADbtC,gBAAqBkC,UACAA,UAAUK,GAEVJ,sBAAsBI,EAE1D,CAAI,OAAOP,sBAAsBM,EACjC,EChBI/E,aAAaC,UACbgF,aAAeH,gBAAgB,eAInCI,YAAiB,SAAUhC,EAAOC,GAChC,IAAKtC,SAASqC,IAAUV,SAASU,GAAQ,OAAOA,EAChD,IACIiC,EADAC,EAAetC,UAAUI,EAAO+B,cAEpC,GAAIG,EAAc,CAGhB,QAFa5E,IAAT2C,IAAoBA,EAAO,WAC/BgC,EAASpH,aAAKqH,EAAclC,EAAOC,IAC9BtC,SAASsE,IAAW3C,SAAS2C,GAAS,OAAOA,EAClD,MAAMnF,aAAW,0CAClB,CAED,YADaQ,IAAT2C,IAAoBA,EAAO,UACxBF,oBAAoBC,EAAOC,EACpC,ECnBckC,cAAG,SAAUzE,GACzB,IAAI2C,EAAM2B,YAAYtE,EAAU,UAChC,OAAO4B,SAASe,GAAOA,EAAMA,EAAM,EACrC,ECLIxH,WAAWe,SAAOf,SAElBuJ,SAASzE,SAAS9E,aAAa8E,SAAS9E,WAASI,eAEvCoJ,sBAAG,SAAU3I,GACzB,OAAO0I,SAASvJ,WAASI,cAAcS,GAAM,CAAA,CAC/C,ECJA4I,cAAkBC,cAAgBrI,OAAM,WAEtC,OAEQ,GAFDI,OAAOC,eAAetB,sBAAc,OAAQ,IAAK,CACtDuB,IAAK,WAAc,OAAO,CAAI,IAC7BgI,CACL,ICAIC,4BAA4BnI,OAAOe,yBAI9BE,IAAGgH,YAAcE,4BAA4B,SAAkCC,EAAG7C,GAGzF,GAFA6C,EAAIzF,gBAAgByF,GACpB7C,EAAIsC,cAActC,GACd8C,aAAgB,IAClB,OAAOF,4BAA0BC,EAAG7C,EACP,CAA7B,MAAOzF,GAAsB,CAC/B,GAAI8G,iBAAOwB,EAAG7C,GAAI,OAAOlE,0BAA0Bd,aAAK+H,2BAA2BrH,EAAGmH,EAAG7C,GAAI6C,EAAE7C,GACjG,yCChBAgD,qBAAiBN,aAAerI,OAAM,WAEpC,OAGgB,IAHTI,OAAOC,gBAAe,WAAY,GAAiB,YAAa,CACrEsB,MAAO,GACPE,UAAU,IACTjB,SACL,ICTI2E,UAAUT,OACVlC,aAAaC,UAGH+F,SAAG,SAAUpF,GACzB,GAAIC,SAASD,GAAW,OAAOA,EAC/B,MAAMZ,aAAW2C,UAAQ/B,GAAY,oBACvC,ECHIZ,aAAaC,UAEbgG,gBAAkBzI,OAAOC,eAEzBkI,0BAA4BnI,OAAOe,yBACnC2H,WAAa,aACbC,eAAe,eACfC,SAAW,WAIf3H,IAAYgH,YAAcY,qBAA0B,SAAwBT,EAAG7C,EAAGuD,GAIhF,GAHAN,SAASJ,GACT7C,EAAIsC,cAActC,GAClBiD,SAASM,GACQ,mBAANV,GAA0B,cAAN7C,GAAqB,UAAWuD,GAAcF,YAAYE,IAAeA,EAAWF,UAAW,CAC5H,IAAIG,EAAUZ,0BAA0BC,EAAG7C,GACvCwD,GAAWA,EAAQH,YACrBR,EAAE7C,GAAKuD,EAAWvH,MAClBuH,EAAa,CACXtH,aAAcmH,kBAAgBG,EAAaA,EAAWH,gBAAgBI,EAAQJ,gBAC9EvH,WAAYsH,cAAcI,EAAaA,EAAWJ,YAAcK,EAAQL,YACxEjH,UAAU,GAGf,CAAC,OAAOgH,gBAAgBL,EAAG7C,EAAGuD,EACjC,EAAIL,gBAAkB,SAAwBL,EAAG7C,EAAGuD,GAIlD,GAHAN,SAASJ,GACT7C,EAAIsC,cAActC,GAClBiD,SAASM,GACLT,aAAgB,IAClB,OAAOI,gBAAgBL,EAAG7C,EAAGuD,EACA,CAA7B,MAAOhJ,GAAsB,CAC/B,GAAI,QAASgJ,GAAc,QAASA,EAAY,MAAMtG,aAAW,2BAEjE,MADI,UAAWsG,IAAYV,EAAE7C,GAAKuD,EAAWvH,OACtC6G,CACT,+BCtCcY,4BAAGf,YAAc,SAAUgB,EAAQlD,EAAKxE,GACpD,OAAO2H,qBAAqBjI,EAAEgI,EAAQlD,EAAK1E,yBAAyB,EAAGE,GACzE,EAAI,SAAU0H,EAAQlD,EAAKxE,GAEzB,OADA0H,EAAOlD,GAAOxE,EACP0H,CACT,ECNIvH,kBAAoB/B,SAASa,UAE7B2I,cAAgBlB,aAAejI,OAAOe,yBAEtC+G,OAASlB,iBAAOlF,kBAAmB,QAEnC0H,OAAStB,QAA0D,cAA/C,WAAqB,EAAiBP,KAC1DoB,aAAeb,UAAYG,aAAgBA,aAAekB,cAAczH,kBAAmB,QAAQF,cAEvG6H,aAAiB,CACfvB,OAAQA,OACRsB,OAAQA,OACRT,aAAcA,cCXZW,iBAAmBvH,oBAAYpC,SAASmC,UAGvCqB,WAAW8C,YAAMsD,iBACpBtD,YAAMsD,cAAgB,SAAUnK,GAC9B,OAAOkK,iBAAiBlK,KAI5B,IAAcmK,cAAGtD,YAAMsD,cCVnBC,UAAUlK,SAAOkK,QAErBC,sBAAiBtG,WAAWqG,YAAY,cAAcpJ,KAAKsE,OAAO8E,YCF9DE,KAAOxC,OAAO,QAEJyC,UAAG,SAAU5D,GACzB,OAAO2D,KAAK3D,KAAS2D,KAAK3D,GAAOiB,IAAIjB,GACvC,ECPA6D,aAAiB,CAAE,ECSfC,2BAA6B,6BAC7BpH,YAAYnD,SAAOmD,UACnB+G,QAAUlK,SAAOkK,QACjBM,IAAK5J,IAAK6J,IAEVC,QAAU,SAAU5K,GACtB,OAAO2K,IAAI3K,GAAMc,IAAId,GAAM0K,IAAI1K,EAAI,CAAA,EACrC,EAEI6K,UAAY,SAAUC,GACxB,OAAO,SAAU9K,GACf,IAAI+K,EACJ,IAAK9G,SAASjE,KAAQ+K,EAAQjK,IAAId,IAAKR,OAASsL,EAC9C,MAAMzH,YAAU,0BAA4ByH,EAAO,aACnD,OAAOC,EAEb,EAEA,GAAIC,uBAAmBlD,YAAOiD,MAAO,CACnC,IAAIlE,MAAQiB,YAAOiD,QAAUjD,YAAOiD,MAAQ,IAAIX,SAEhDvD,MAAM/F,IAAM+F,MAAM/F,IAClB+F,MAAM8D,IAAM9D,MAAM8D,IAClB9D,MAAM6D,IAAM7D,MAAM6D,IAElBA,IAAM,SAAU1K,EAAIiL,GAClB,GAAIpE,MAAM8D,IAAI3K,GAAK,MAAMqD,YAAUoH,4BAGnC,OAFAQ,EAASC,OAASlL,EAClB6G,MAAM6D,IAAI1K,EAAIiL,GACPA,GAETnK,IAAM,SAAUd,GACd,OAAO6G,MAAM/F,IAAId,IAAO,CAAA,GAE1B2K,IAAM,SAAU3K,GACd,OAAO6G,MAAM8D,IAAI3K,GAErB,KAAO,CACL,IAAImL,MAAQZ,UAAU,SACtBC,aAAWW,QAAS,EACpBT,IAAM,SAAU1K,EAAIiL,GAClB,GAAIzD,iBAAOxH,EAAImL,OAAQ,MAAM9H,YAAUoH,4BAGvC,OAFAQ,EAASC,OAASlL,EAClB4J,4BAA4B5J,EAAImL,MAAOF,GAChCA,GAETnK,IAAM,SAAUd,GACd,OAAOwH,iBAAOxH,EAAImL,OAASnL,EAAGmL,OAAS,IAEzCR,IAAM,SAAU3K,GACd,OAAOwH,iBAAOxH,EAAImL,OAEtB,CAEA,IAAAC,cAAiB,CACfV,IAAKA,IACL5J,IAAKA,IACL6J,IAAKA,IACLC,QAASA,QACTC,UAAWA,2DChEb,IAAIQ,EAA6BC,aAAsC/B,aAInEgC,EAAuBC,cAAoBZ,QAC3Ca,EAAmBD,cAAoB1K,IAEvCD,EAAiBD,OAAOC,eAExB6K,EAAsB7C,cAAgBrI,OAAM,WAC9C,OAAsF,IAA/EK,GAAe,WAA2B,GAAE,SAAU,CAAEsB,MAAO,IAAKmC,MAC7E,IAEIqH,EAAWrG,OAAOA,QAAQtC,MAAM,UAEhC4I,EAAc7E,EAAiBC,QAAA,SAAU7E,EAAOgG,EAAM0D,GACvB,YAA7BvG,OAAO6C,GAAMtF,MAAM,EAAG,KACxBsF,EAAO,IAAM7C,OAAO6C,GAAM2D,QAAQ,qBAAsB,MAAQ,KAE9DD,GAAWA,EAAQE,SAAQ5D,EAAO,OAASA,GAC3C0D,GAAWA,EAAQG,SAAQ7D,EAAO,OAASA,KAC1CX,iBAAOrF,EAAO,SAAYkJ,GAA8BlJ,EAAMgG,OAASA,KACtEU,YAAahI,EAAesB,EAAO,OAAQ,CAAEA,MAAOgG,EAAM/F,cAAc,IACvED,EAAMgG,KAAOA,GAEhBuD,GAAuBG,GAAWrE,iBAAOqE,EAAS,UAAY1J,EAAMmC,SAAWuH,EAAQI,OACzFpL,EAAesB,EAAO,SAAU,CAAEA,MAAO0J,EAAQI,QAEnD,IACMJ,GAAWrE,iBAAOqE,EAAS,gBAAkBA,EAAQK,YACnDrD,aAAahI,EAAesB,EAAO,YAAa,CAAEE,UAAU,IAEvDF,EAAMf,YAAWe,EAAMf,eAAYwC,EACjB,CAA7B,MAAOlD,GAAsB,CAC/B,IAAIqK,EAAQQ,EAAqBpJ,GAG/B,OAFGqF,iBAAOuD,EAAO,YACjBA,EAAM1D,OAASsE,EAASQ,KAAoB,iBAARhE,EAAmBA,EAAO,KACvDhG,GAKX5B,SAASa,UAAUsB,SAAWkJ,GAAY,WACxC,OAAO7H,WAAWzD,OAASmL,EAAiBnL,MAAM+G,QAAU8C,cAAc7J,KAC3E,GAAE,eC3CW8L,cAAG,SAAUpD,EAAGrC,EAAKxE,EAAO0J,GACnCA,IAASA,EAAU,IACxB,IAAIQ,EAASR,EAAQ7J,WACjBmG,OAAwBvE,IAAjBiI,EAAQ1D,KAAqB0D,EAAQ1D,KAAOxB,EAEvD,GADI5C,WAAW5B,IAAQyJ,cAAYzJ,EAAOgG,EAAM0D,GAC5CA,EAAQ3L,OACNmM,EAAQrD,EAAErC,GAAOxE,EAChBuE,qBAAqBC,EAAKxE,OAC1B,CACL,IACO0J,EAAQS,OACJtD,EAAErC,KAAM0F,GAAS,UADErD,EAAErC,EAED,CAA7B,MAAOjG,GAAsB,CAC3B2L,EAAQrD,EAAErC,GAAOxE,EAChB2H,qBAAqBjI,EAAEmH,EAAGrC,EAAK,CAClCxE,MAAOA,EACPH,YAAY,EACZI,cAAeyJ,EAAQU,gBACvBlK,UAAWwJ,EAAQW,aAEtB,CAAC,OAAOxD,CACX,EC1BIyD,KAAOxM,KAAKwM,KACZC,MAAQzM,KAAKyM,MAKHC,UAAG1M,KAAK2M,OAAS,SAAeC,GAC5C,IAAIC,GAAKD,EACT,OAAQC,EAAI,EAAIJ,MAAQD,MAAMK,EAChC,ECLcC,oBAAG,SAAU/I,GACzB,IAAIgJ,GAAUhJ,EAEd,OAAOgJ,GAAWA,GAAqB,IAAXA,EAAe,EAAIJ,UAAMI,EACvD,ECNIC,IAAMhN,KAAKgN,IACXC,MAAMjN,KAAKiN,IAKfC,gBAAiB,SAAUC,EAAO9I,GAChC,IAAI+I,EAAUN,oBAAoBK,GAClC,OAAOC,EAAU,EAAIJ,IAAII,EAAU/I,EAAQ,GAAK4I,MAAIG,EAAS/I,EAC/D,ECTI4I,IAAMjN,KAAKiN,IAIDI,SAAG,SAAUtJ,GACzB,OAAOA,EAAW,EAAIkJ,IAAIH,oBAAoB/I,GAAW,kBAAoB,CAC/E,ECJcuJ,kBAAG,SAAUC,GACzB,OAAOF,SAASE,EAAIlJ,OACtB,ECDImJ,aAAe,SAAUC,GAC3B,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGI1L,EAHA6G,EAAIzF,gBAAgBoK,GACpBrJ,EAASiJ,kBAAkBvE,GAC3BoE,EAAQD,gBAAgBU,EAAWvJ,GAIvC,GAAIoJ,GAAeE,GAAMA,GAAI,KAAOtJ,EAAS8I,GAG3C,IAFAjL,EAAQ6G,EAAEoE,OAEGjL,EAAO,OAAO,OAEtB,KAAMmC,EAAS8I,EAAOA,IAC3B,IAAKM,GAAeN,KAASpE,IAAMA,EAAEoE,KAAWQ,EAAI,OAAOF,GAAeN,GAAS,EACnF,OAAQM,IAAgB,EAE9B,EAEAI,cAAiB,CAGfC,SAAUN,cAAa,GAGvBO,QAASP,cAAa,IC3BpBO,QAAU1C,cAAuC0C,QAGjD/G,KAAOtE,oBAAY,GAAGsE,MAE1BgH,mBAAiB,SAAUpE,EAAQqE,GACjC,IAGIvH,EAHAqC,EAAIzF,gBAAgBsG,GACpBsE,EAAI,EACJ5F,EAAS,GAEb,IAAK5B,KAAOqC,GAAIxB,iBAAOgD,aAAY7D,IAAQa,iBAAOwB,EAAGrC,IAAQM,KAAKsB,EAAQ5B,GAE1E,KAAOuH,EAAM5J,OAAS6J,GAAO3G,iBAAOwB,EAAGrC,EAAMuH,EAAMC,SAChDH,QAAQzF,EAAQ5B,IAAQM,KAAKsB,EAAQ5B,IAExC,OAAO4B,CACT,EClBA6F,YAAiB,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,WCLE5D,WAAa4D,YAAYC,OAAO,SAAU,aAKrCxM,IAAGjB,OAAO0N,qBAAuB,SAA6BtF,GACrE,OAAOuF,mBAAmBvF,EAAGwB,WAC/B,oCCTS3I,EAAGjB,OAAOuE,wDCKfkJ,OAAS1L,oBAAY,GAAG0L,QAG5BG,QAAiBrK,WAAW,UAAW,YAAc,SAAiBnE,GACpE,IAAIsK,EAAOmE,0BAA0B5M,EAAEuH,SAASpJ,IAC5CmF,EAAwBuJ,4BAA4B7M,EACxD,OAAOsD,EAAwBkJ,OAAO/D,EAAMnF,EAAsBnF,IAAOsK,CAC3E,ECRAqE,0BAAiB,SAAUC,EAAQvH,EAAQwH,GAIzC,IAHA,IAAIvE,EAAOkE,QAAQnH,GACfxG,EAAiBiJ,qBAAqBjI,EACtCF,EAA2BmN,+BAA+BjN,EACrDsM,EAAI,EAAGA,EAAI7D,EAAKhG,OAAQ6J,IAAK,CACpC,IAAIxH,EAAM2D,EAAK6D,GACV3G,iBAAOoH,EAAQjI,IAAUkI,GAAcrH,iBAAOqH,EAAYlI,IAC7D9F,EAAe+N,EAAQjI,EAAKhF,EAAyB0F,EAAQV,GAEhE,CACH,ECZIoI,YAAc,kBAEdC,SAAW,SAAUC,EAASC,GAChC,IAAI/M,EAAQgN,KAAKC,UAAUH,IAC3B,OAAO9M,GAASkN,UACZlN,GAASmN,SACTvL,WAAWmL,GAAa1O,MAAM0O,KAC5BA,EACR,EAEIE,UAAYJ,SAASI,UAAY,SAAUG,GAC7C,OAAOjK,OAAOiK,GAAQzD,QAAQiD,YAAa,KAAKS,aAClD,EAEIL,KAAOH,SAASG,KAAO,GACvBG,OAASN,SAASM,OAAS,IAC3BD,SAAWL,SAASK,SAAW,IAEnCI,WAAiBT,SCpBbrN,2BAA2B2J,+BAA2DzJ,EAsB1F6N,QAAiB,SAAU7D,EAASxE,GAClC,IAGYuH,EAAQjI,EAAKgJ,EAAgBC,EAAgB7N,EAHrD8N,EAAShE,EAAQ+C,OACjBkB,EAASjE,EAAQ3L,OACjB6P,EAASlE,EAAQmE,KASrB,GANEpB,EADEkB,EACO5P,SACA6P,EACA7P,SAAO2P,IAAWnJ,qBAAqBmJ,EAAQ,CAAA,IAE9C3P,SAAO2P,IAAW,CAAA,GAAIzO,UAEtB,IAAKuF,KAAOU,EAAQ,CAQ9B,GAPAuI,EAAiBvI,EAAOV,GAGtBgJ,EAFE9D,EAAQoE,gBACVlO,EAAaJ,2BAAyBiN,EAAQjI,KACf5E,EAAWI,MACpByM,EAAOjI,IACtBqI,WAASc,EAASnJ,EAAMkJ,GAAUE,EAAS,IAAM,KAAOpJ,EAAKkF,EAAQqE,cAE5CtM,IAAnB+L,EAA8B,CAC3C,UAAWC,UAAyBD,EAAgB,SACpDhB,0BAA0BiB,EAAgBD,EAC3C,EAEG9D,EAAQtG,MAASoK,GAAkBA,EAAepK,OACpDqE,4BAA4BgG,EAAgB,QAAQ,GAEtDxD,cAAcwC,EAAQjI,EAAKiJ,EAAgB/D,EAC5C,CACH,EChDcsE,QAAGC,MAAMD,SAAW,SAAiBnM,GACjD,MAA4B,SAArBd,WAAQc,EACjB,ECHIZ,aAAaC,UAEb1B,yBAA2Bf,OAAOe,yBAGlC0O,kCAAoCxH,cAAgB,WAEtD,QAAajF,IAATtD,KAAoB,OAAO,EAC/B,IAEEM,OAAOC,eAAe,GAAI,SAAU,CAAEwB,UAAU,IAASiC,OAAS,CAGnE,CAFC,MAAO5D,GACP,OAAOA,aAAiB2C,SACzB,CACH,CATwD,GAWxDiN,eAAiBD,kCAAoC,SAAUrH,EAAG1E,GAChE,GAAI6L,QAAQnH,KAAOrH,yBAAyBqH,EAAG,UAAU3G,SACvD,MAAMe,aAAW,gCACjB,OAAO4F,EAAE1E,OAASA,CACtB,EAAI,SAAU0E,EAAG1E,GACf,OAAO0E,EAAE1E,OAASA,CACpB,EC1BIlB,aAAaC,UACbkN,iBAAmB,iBAETC,yBAAG,SAAUxQ,GACzB,GAAIA,EAAKuQ,iBAAkB,MAAMnN,aAAW,kCAC5C,OAAOpD,CACT,ECEIyQ,oBAAsBjQ,OAAM,WAC9B,OAAoD,aAA7C,GAAGyG,KAAK9F,KAAK,CAAEmD,OAAQ,YAAe,EAC/C,IAIIoM,+BAAiC,WACnC,IAEE9P,OAAOC,eAAe,GAAI,SAAU,CAAEwB,UAAU,IAAS4E,MAG1D,CAFC,MAAOvG,GACP,OAAOA,aAAiB2C,SACzB,CACH,CAPqC,GAWrCsN,QAAE,CAAE/B,OAAQ,QAASgC,OAAO,EAAM3E,MAAO,EAAGiE,OAAQO,qBAAuBC,+BAAiC,CAE1GzJ,KAAM,SAAc4J,GAClB,IAAI7H,EAAI1B,SAAShH,MACbwQ,EAAMvD,kBAAkBvE,GACxB+H,EAAWvP,UAAU8C,OACzBkM,yBAAyBM,EAAMC,GAC/B,IAAK,IAAI5C,EAAI,EAAGA,EAAI4C,EAAU5C,IAC5BnF,EAAE8H,GAAOtP,UAAU2M,GACnB2C,IAGF,OADAE,eAAehI,EAAG8H,GACXA,CACR,ICpCHG,mBAAA,QAAUC,UAAU,CAChBC,OAAQ,OACRC,MAAO,IACPC,aAAa,EACbC,SAAS,EACTC,aAAc,IACdC,QAAS,KCPN,MAAMC,OAAS,QAGTC,aAAe,SACfC,mBAAqB,cACrBC,WAAa,OACbC,WAAa,OACbC,eAAiB,UACjBC,WAAa,QACbC,mBAAqB,oBAErBC,cAAgB,SCVhBC,WAEH9R,OAAO+R,SAASC,OAAOtG,QAAQ1L,OAAO+R,SAASE,SAAU,OAAS,mBAI/DC,cAAgB,CAACC,EAAgBC,EAAiB,KACtDA,EAUM,CACHpT,KAAM,SACNqT,IAAK,CACDA,IAAK,eACLF,UAEJG,KAAM,CACFF,WAhBD,CACHpT,KAAM,SACNqT,IAAK,CACDA,IAAK,eACLF,SACAI,SAAU,IAkBbC,oBAAsB,IC/BtBC,WAAa,iECFbC,aAAe,CACxBC,WAAY,UACZC,YAAa,SCEJC,kBAAoB,CAC7B,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAESC,iBAAmB,CAC5B,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGSC,YAA2B,CACpCC,QAAS,CACL,mBAAoB,UACpB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,sBAAuB,WAG3BC,KAAM,CACF,mBAAoB,UACpB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,sBAAuB,WAE3BC,MAAO,CACH,mBAAoB,UACpB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,sBAAuB,WAE3BC,OAAQ,CACJ,mBAAoB,UACpB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,sBAAuB,WAE3BC,IAAK,CACD,mBAAoB,UACpB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,sBAAuB,WAE3BC,KAAM,CACF,mBAAoB,UACpB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,sBAAuB,WAE3BC,OAAQ,CACJ,mBAAoB,UACpB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,sBAAuB,WAE3BC,OAAQ,CACJ,mBAAoB,UACpB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,qBAAsB,UACtB,sBAAuB,qjBC5HxB,SAASC,KAAKzR,GACjB,OAAIA,SAMU,KAAVA,EALO,GAQG,IAAVA,EACO,EAEG,MAAVA,EACO,IAEJA,CACX,CAGA,SAAS0R,UAAUC,GAEX,OAAA1D,MAAMD,QAAQ2D,GAAcA,EAEzBA,EAAKhI,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IAAI9I,MAAM,IAC7D,CAQO,SAAS+Q,YAAYlK,EAAQiK,EAAME,EAAe,IAErD,GAAsB,iBAAXnK,EAA4B,OAAAmK,EAGvC,IAAIzL,EAASsL,UAAUC,GAAMG,QAAO,CAACC,EAAGC,KAAOD,GAAK,CAAA,GAAIC,IAAItK,GAE5D,MAAsB,KAAjBtB,GAAU,KAAuB,GAAVA,EACjBA,EAEAyL,CAEf,CAEgB,SAAAI,YAAYvK,EAAQiK,EAAM3R,GACtC,MAAsB,iBAAX0H,GACXgK,UAAUC,GAAMG,QAAO,CAACC,EAAGC,EAAGhG,EAAGkG,IACzBlG,IAAMkG,EAAE/P,OAAS,GAEjB4P,EAAEC,GAAKhS,EACA,OACAgS,KAAKD,IAKVA,EAAAC,GAAK,cAAcnT,KAAKqT,EAAElG,EAAI,IAAM,GAAK,IAHpC+F,EAAEC,KAMdtK,GAdoCA,CAiB3C,CC9DO,SAASyK,eAAeC,GACtB,GAAoB,MAApBA,GAAY,IACb,OAAOA,EAASC,MAAMC,GAA+B,KAAlBA,GAAW,MAAWC,SAASF,MAAMC,GAA+B,KAAlBA,GAAW,MAAWX,IAEnH,CAOO,SAASa,mBAAmBC,GAC/B,IAAIC,EAAgB,GA0Bb,OAxBFD,EAAAE,SAASjE,IACW,MAAhBA,GAAQ,MACW,MAAhBA,GAAMkE,OACNF,EAAS5N,KAAK,CACV6M,KAAMjD,EAAKmE,IACX7M,KAAM0I,EAAK1I,KACX8M,MAAOpE,EAAKoE,MACZC,KAAMrE,EAAKqE,KACXR,SAAU,KAGLG,EAAAC,SAASK,IACVtE,GAAMkE,QAAUI,GAAYhN,MAC5BgN,EAAWT,SAASzN,KAAK,CACrB6M,KAAMjD,EAAKmE,IACX7M,KAAM0I,EAAK1I,KACX8M,MAAOpE,EAAKoE,MACZC,KAAMrE,EAAKqE,MAEnB,IAGZ,IAEGL,CACX,CAMgB,SAAAO,qBAAqBb,EAAcc,GACxC,OAAAd,EAASe,QAAQV,GAAcS,EAAYtH,SAAS6G,GAAMzM,OACrE,CAMO,SAASoN,kBACZ,IAEIC,EAFAC,EAASC,KAAKC,MAAMC,aAAaC,QAAQnE,eAIzC8D,EAD6B,MAA5BC,GAAQlB,UAAY,IACFkB,EAAOlB,SACrBC,MAAMC,GAA+B,KAAlBA,GAAW,MAC9BC,SAASF,MAAMC,GAA+B,KAAlBA,GAAW,MAEzB,CACfX,KAAM,GACN3L,KAAM,IAYP,MARY,CACf2N,QAAS,EACThC,KAAM0B,EAAiB1B,KACvB3L,KAAMqN,EAAiBrN,KACvB8M,MAAO,KACPc,QAAQ,EAIhB,CChFO,SAASC,YAAYhB,GACxB,IAAIiB,EAAW,CAAA,EAEf,IAA6B,IAAzBjB,EAAIhH,QAAQ,KAAa,CACVgH,EAAIhS,MAAM,KAAK,GAAGA,MAAM,KAE9B8R,SAASoB,IACLD,EAAAC,EAAUlT,MAAM,KAAK,IAAMkT,EAAUlT,MAAM,KAAK,EAAA,GAEjE,CAEO,OAAAiT,CACX,CCdO,SAASE,iBAAiBC,GAC7B,IAAIC,EAA6C,GA4B1C,OAzBPA,EAAmBpP,KAAK,CACpBqP,OAAQ,aACR9W,KAAM,aAGV4W,EAAatB,SAAQ,CAACyB,EAAQC,EAAKC,KAC/B,IAAIC,EAAwB,CACxBJ,OAA2B,KAAnBC,EAAOI,QAAiBJ,EAAOI,QAAUJ,EAAOpO,KACxD8M,MAAOsB,EAAOpO,KACdyO,KAAML,EAAOM,WACbC,MAAOC,yBAAyBR,EAAOS,QAAU,EAAGP,EAAInS,QAExD2S,SAAU,CAAEC,MAAO,CAAEC,MAAO,QAASC,WAAW,EAAOC,UAAW,cAC/Dd,GAGY,MAAfA,EAAOpO,OACPuO,EAAiBO,cAAW,EAC5BP,EAAiBI,MAAQC,yBAAyB,EAAGN,EAAInS,SAI7D+R,EAAmBpP,KAAKyP,EAAgB,IAGrCL,CACX,CAMA,SAASU,yBAAyBC,EAAgBM,GACtC,OAAAN,EAASM,EAAgB,IAAM,GAC3C,CCpCO,SAASC,qBAAqB9B,GACjC,MAAM+B,KAAEA,EAAMb,QAAAA,EAAAc,UAASA,YAAWC,EAAWC,UAAAA,EAAAC,cAAWA,GAAkBnC,EAEpEoC,EAAW,CAACF,EAAWlB,KACzB,MAAMqB,EAAW,GAqBV,OAnBHrB,EAAA3B,SAASjE,IACL,GAAAA,EAAK+G,IAAkBD,EAAW,CAClC,MAAMjD,EAAWmD,EAAShH,EAAK8F,GAAUa,GAEnCO,EAAY,CACdpR,IAAKkK,EAAK8F,GACVqB,MAAOnH,EAAK6G,GACZvV,MAAO0O,EAAK4G,GACZ/C,SAAU,IAGVA,EAASpQ,SACTyT,EAAUrD,SAAWA,GAGzBoD,EAAI7Q,KAAK8Q,EACb,KAGGD,CAAA,EAGJ,OAAAD,EAASF,EAAWH,EAC/B,CCjCA,SAASS,YAAY9P,GACjB,OAAOA,EAAK2D,QAAQ,WAAY,OAAOoM,aAC3C,CAEgB,SAAAC,cAAc3Y,EAAc4Y,GAExC,OAAOA,GADM,iBAAiBpX,KAAKxB,GAAQA,EAAOyY,YAAYzY,KACrC,UAC7B,CCHO,SAAS6Y,OAAOlW,GACnB,OAAc,OAAVA,GAKY,KADPA,GAAA,GAAKA,GAAOmW,OAEzB,mYCwCAC,SAAA,CACAC,SAAA,CACAC,cACA,OAAAnY,KAAAoY,OAAA3N,MAAA4N,QAAAF,WACA,GAEAtJ,KAAA,KACA,CACAsC,cACAmH,eAAA,KAGAC,QAAA,CACAC,mBAAAC,EAAAC,EAAAlF,GACA,aAAAkF,EAAAC,UAAA3Y,KAAAsY,eAAA,MACAG,IAAAzY,KAAAsY,eAAA9E,EACA,EACAoF,uBAAApF,GACAxT,KAAA6Y,QAAAlS,KACA,CAAA6M,OAAAsF,MAAApD,YAAAlC,KACA,SACA,QAEA,EACAuF,wBAAAlX,MAAA2R,EAAA1G,MAAAA,IACA,MAAAqL,YAAAA,GAAAnY,KAAAoY,OAAA3N,MAAA4N,QAEA,GAAAF,EAAAnU,OAAA,EAAA,CACA,MAAAgV,EAAAb,EAAArL,EAAA,IAAAqL,EAAArL,EAAA,GAEA9M,KAAAoY,OAAAa,SAAA,qCAAA,CAAAzF,OAAAgC,QAAA1I,IACA0G,IAAAxT,KAAAkZ,OAAAC,UACAnZ,KAAA6Y,QAAAlS,KACA,CACA6M,KAAAwF,EAAAxF,KACAsF,MAAAE,EAAAF,QAEA,SACA,QAGA,CACA,EACAM,iBAAA7I,EAAAzD,GACA9M,KAAAqZ,WAAA,KACArZ,KAAA6Y,QAAAlS,KACA,CACA6M,KAAAjD,EAAAiD,KACAsF,MAAAvI,EAAAuI,QAEA,SACA,SAGAjH,SAAAyH,QAAA,GAEA,EACAC,oBAAA/F,EAAAgC,GACAxV,KAAAoY,OAAAa,SAAA,mCAAA,CAAAzF,OAAAgC,YAEAxV,KAAAwZ,yBAAA,QAAAhE,EACA,EACAiE,qBAAAjG,EAAAgC,GACAxV,KAAAoY,OAAAa,SAAA,oCAAA,CAAAzF,OAAAgC,YAEAxV,KAAAwZ,yBAAA,SAAAhE,EACA,EACAkE,oBAAAlG,EAAAgC,GACAxV,KAAAmY,YAAAnU,OAAA,IACAhE,KAAAoY,OAAAa,SAAA,mCAAA,CAAAzF,OAAAgC,YAEAxV,KAAAwZ,yBAAA,QAAAhE,GAEA,EACAgE,yBAAAta,EAAAsW,GACA,MAAAmE,EAAA3Z,KAAAkZ,OAAAC,UACAhB,YAAAA,GAAAnY,KAAAoY,OAAA3N,MAAA4N,QAEAuB,EAAAzB,EAAA0B,WAAAtJ,GAAAA,EAAAiD,OAAAmG,IAOA,GAJA,UAAAza,GAAA0a,IAAApE,GACA,UAAAtW,GAAA0a,EAAApE,GACA,WAAAtW,IAAA,IAAA0a,EAEA,CACA,MACAE,EAAA3B,EADA,WAAAjZ,EAAAiZ,EAAAnU,OAAA,EAAA,GAGAhE,KAAA6Y,QAAAlS,KAAA,CACA6M,KAAAsG,EAAAtG,KACAsF,MAAAgB,EAAAhB,OAEA,CAEA9Y,KAAAsY,eAAA,IACA,0yBAlJA,MAAcyB,iBAAAC,2pEC4Cd,IAAAC,SAAA,CACAC,WAAA,CACAC,iBAAAA,qBAEAtL,KAAA,KACA,CACAsC,gBAGA+G,SAAA,CACAkC,eACA,OAAApa,KAAAoY,OAAAiC,QAAA,uBACA,EACA3H,cACA,OAAA1S,KAAAoY,OAAAiC,QAAA,sBACA,GAEA9B,QAAA,CACA+B,0BACAta,KAAAoY,OAAAmC,OAAA,gCACA,EACAC,qBACAxa,KAAAoY,OAAAmC,OAAA,6BACA,EACAE,eACAza,KAAAoY,OAAAa,SAAA,sBACAjZ,KAAA6Y,QAAAlS,KAAA,CAAA6M,KAAA,UACA,IAvEA,MAAcuG,iBAAAC,k6DCSd,IAAAU,SAAA,CACA7L,KAAA,KACA,CACAsC,iBAZA,MAAc4I,iBAAAC,6nBCMd,IAAAW,SAAA,CACA9S,KAAA,iBACA+O,MAAA,CACA/U,MAAA,CACA3C,KAAA8F,OACA4V,QAAA,YAGA1C,SAAA,CACAlZ,QACA,MAAA,CACA6b,WAAAhD,cAAA7X,KAAA6B,MAAAiW,aAAA,oBAEA,ICnBIhV,aAAaC,UAEjB+X,WAAiB,SAAUpb,EAAIqb,GAC7B,GAAI7W,oBAAc6W,EAAWrb,GAAK,OAAOA,EACzC,MAAMoD,aAAW,uBACnB,ECLI2C,UAAUT,OACVlC,WAAaC,UAEHiY,mBAAG,SAAUtX,GACzB,GAAuB,iBAAZA,GAAwBD,WAAWC,GAAW,OAAOA,EAChE,MAAMZ,WAAW,aAAe2C,UAAQ/B,GAAY,kBACtD,ECCcuX,qBAAG3a,OAAO4a,iBAAmB,aAAe,CAAE,EAAG,WAC7D,IAEIxP,EAFAyP,GAAiB,EACjBza,EAAO,CAAA,EAEX,KAEEgL,EAASrJ,oBAAY/B,OAAOe,yBAAyBf,OAAOQ,UAAW,aAAasJ,MAC7E1J,EAAM,IACbya,EAAiBza,aAAgBoP,KACJ,CAA7B,MAAO1P,GAAsB,CAC/B,OAAO,SAAwBsI,EAAG4H,GAKhC,OAJAxH,SAASJ,GACTsS,mBAAmB1K,GACf6K,EAAgBzP,EAAOhD,EAAG4H,GACzB5H,EAAE0S,UAAY9K,EACZ5H,EAEX,CAjB+D,QAiBzDpF,GCrBN+X,kBAAiB,SAAUhO,EAAOiO,EAAOC,GACvC,IAAIC,EAAWC,EAUf,OAPEP,sBAEAzX,WAAW+X,EAAYF,EAAM1P,cAC7B4P,IAAcD,GACd5X,SAAS8X,EAAqBD,EAAU1a,YACxC2a,IAAuBF,EAAQza,WAC/Boa,qBAAe7N,EAAOoO,GACjBpO,CACT,ECfIqO,gBAAgB9T,gBAAgB,eAChClH,KAAO,CAAA,EAEXA,KAAKgb,iBAAiB,IAEtB,IAAAC,mBAAkC,eAAjB3W,OAAOtE,MCFpBgb,cAAgB9T,gBAAgB,eAChCnF,QAAUnC,OAGVsb,kBAAuE,aAAnDpZ,WAAW,WAAc,OAAOtB,SAAY,CAAjC,IAG/B2a,OAAS,SAAUnc,EAAI2G,GACzB,IACE,OAAO3G,EAAG2G,EACmB,CAA7B,MAAOjG,GAAsB,CACjC,EAGAwC,QAAiBkZ,mBAAwBtZ,WAAa,SAAU9C,GAC9D,IAAIgJ,EAAGqT,EAAK9T,EACZ,YAAc3E,IAAP5D,EAAmB,YAAqB,OAAPA,EAAc,OAEO,iBAAjDqc,EAAMF,OAAOnT,EAAIjG,QAAQ/C,GAAKgc,gBAA8BK,EAEpEH,kBAAoBpZ,WAAWkG,GAEH,WAA3BT,EAASzF,WAAWkG,KAAmBjF,WAAWiF,EAAEsT,QAAU,YAAc/T,CACnF,EC1BIxC,QAAUT,OAEA5C,SAAG,SAAUsB,GACzB,GAA0B,WAAtBd,QAAQc,GAAwB,MAAMX,UAAU,6CACpD,OAAO0C,QAAQ/B,EACjB,ECLAuY,wBAAiB,SAAUvY,EAAUwY,GACnC,YAAoB5Y,IAAbI,EAAyBxC,UAAU8C,OAAS,EAAI,GAAKkY,EAAW9Z,SAASsB,EAClF,ECJAyY,sBAAiB,CACfC,eAAgB,CAAEC,EAAG,iBAAkBC,EAAG,EAAGC,EAAG,GAChDC,mBAAoB,CAAEH,EAAG,qBAAsBC,EAAG,EAAGC,EAAG,GACxDE,sBAAuB,CAAEJ,EAAG,wBAAyBC,EAAG,EAAGC,EAAG,GAC9DG,mBAAoB,CAAEL,EAAG,qBAAsBC,EAAG,EAAGC,EAAG,GACxDI,sBAAuB,CAAEN,EAAG,wBAAyBC,EAAG,EAAGC,EAAG,GAC9DK,mBAAoB,CAAEP,EAAG,sBAAuBC,EAAG,EAAGC,EAAG,GACzDM,2BAA4B,CAAER,EAAG,8BAA+BC,EAAG,EAAGC,EAAG,GACzEO,cAAe,CAAET,EAAG,gBAAiBC,EAAG,EAAGC,EAAG,GAC9CQ,kBAAmB,CAAEV,EAAG,oBAAqBC,EAAG,EAAGC,EAAG,GACtDS,oBAAqB,CAAEX,EAAG,sBAAuBC,EAAG,GAAIC,EAAG,GAC3DU,kBAAmB,CAAEZ,EAAG,oBAAqBC,EAAG,GAAIC,EAAG,GACvDW,YAAa,CAAEb,EAAG,aAAcC,EAAG,GAAIC,EAAG,GAC1CY,yBAA0B,CAAEd,EAAG,2BAA4BC,EAAG,GAAIC,EAAG,GACrEa,eAAgB,CAAEf,EAAG,gBAAiBC,EAAG,GAAIC,EAAG,GAChDc,mBAAoB,CAAEhB,EAAG,qBAAsBC,EAAG,GAAIC,EAAG,GACzDe,gBAAiB,CAAEjB,EAAG,iBAAkBC,EAAG,GAAIC,EAAG,GAClDgB,kBAAmB,CAAElB,EAAG,oBAAqBC,EAAG,GAAIC,EAAG,GACvDiB,cAAe,CAAEnB,EAAG,eAAgBC,EAAG,GAAIC,EAAG,GAC9CkB,aAAc,CAAEpB,EAAG,cAAeC,EAAG,GAAIC,EAAG,GAC5CmB,WAAY,CAAErB,EAAG,YAAaC,EAAG,GAAIC,EAAG,GACxCoB,iBAAkB,CAAEtB,EAAG,mBAAoBC,EAAG,GAAIC,EAAG,GACrDqB,mBAAoB,CAAEvB,EAAG,qBAAsBC,EAAG,GAAIC,EAAG,GACzDsB,aAAc,CAAExB,EAAG,cAAeC,EAAG,GAAIC,EAAG,GAC5CuB,qBAAsB,CAAEzB,EAAG,wBAAyBC,EAAG,GAAIC,EAAG,GAC9DwB,eAAgB,CAAE1B,EAAG,iBAAkBC,EAAG,GAAIC,EAAG,ICvB/CyB,OAASC,MACTzS,QAAUnJ,oBAAY,GAAGmJ,SAEzB0S,KAAgClZ,OAAOgZ,OAAuB,UAAXG,OACnDC,yBAA2B,uBAC3BC,sBAAwBD,yBAAyB1d,KAAKwd,MAE1DI,gBAAiB,SAAUH,EAAOI,GAChC,GAAIF,uBAAyC,iBAATF,IAAsBH,OAAOQ,kBAC/D,KAAOD,KAAeJ,EAAQ3S,QAAQ2S,EAAOC,yBAA0B,IACvE,OAAOD,CACX,ECRI5d,eAAiByK,qBAA+CzJ,EAUhEkd,cAAgB,eAChBR,QAAQpa,WAAW,SACnB6a,mBAAqB7a,WAAW4a,eAEhCE,cAAgB,WAClB7D,WAAW9a,KAAM4e,uBACjB,IAAIC,EAAkB3d,UAAU8C,OAC5B8a,EAAU7C,wBAAwB4C,EAAkB,OAAIvb,EAAYpC,UAAU,IAC9E2G,EAAOoU,wBAAwB4C,EAAkB,OAAIvb,EAAYpC,UAAU,GAAI,SAC/E6d,EAAO,IAAIL,mBAAmBI,EAASjX,GACvCzH,EAAQ6d,QAAMa,GAIlB,OAHA1e,EAAMyH,KAAO4W,cACble,eAAewe,EAAM,QAASpd,yBAAyB,EAAGqd,gBAAgB5e,EAAM+d,MAAO,KACvF9C,kBAAkB0D,EAAM/e,KAAM2e,eACvBI,CACT,EAEIH,sBAAwBD,cAAc7d,UAAY4d,mBAAmB5d,UAErEme,gBAAkB,UAAWhB,QAAMQ,eACnCS,wBAA0B,UAAW,IAAIR,mBAAmB,EAAG,GAG/Djd,WAAaid,oBAAsBnW,aAAejI,OAAOe,yBAAyBzB,SAAQ6e,eAI1FU,oBAAqB1d,YAAgBA,WAAWM,UAAYN,WAAWK,cAEvEsd,mBAAqBH,kBAAoBE,mBAAqBD,wBAIlE7O,QAAE,CAAEzQ,QAAQ,EAAMgM,aAAa,EAAMgE,OAAmBwP,oBAAsB,CAC5EC,aAAcD,mBAAqBT,cAAgBD,qBAGrD,IAAIY,uBAAyBzb,WAAW4a,eACpCc,gCAAkCD,uBAAuBxe,UAE7D,GAAIye,gCAAgC3T,cAAgB0T,uBAKlD,IAAK,IAAIjZ,OAHP9F,eAAegf,gCAAiC,cAAe5d,yBAAyB,EAAG2d,yBAG7EE,sBAAuB,GAAItY,iBAAOsY,sBAAuBnZ,KAAM,CAC7E,IAAIoZ,SAAWD,sBAAsBnZ,KACjCqZ,aAAeD,SAASpD,EACvBnV,iBAAOoY,uBAAwBI,eAClCnf,eAAe+e,uBAAwBI,aAAc/d,yBAAyB,EAAG8d,SAASnD,GAE7F,6gCXhEH,MAAcvC,iBAAAC,0uBY2Bd2F,cAAA,CAAA,UAAA,OAAA,QAAA,SAAA,SAAA,MAAA,OAAA,SAAA,WACAC,aAAA,CACA,CAAA1gB,KAAA,QAAA2gB,KAAA,MACA,CAAA3gB,KAAA,OAAA2gB,KAAA,MACA,CAAA3gB,KAAA,OAAA2gB,KAAA,SAGA,IAAAC,SAAA,CACA5F,WAAA,CACA6F,eAAAA,qBAEAlR,KAAA,KACA,CACAsC,cACAyO,0BACAD,8BAGAzH,SAAA,CACA8H,YACA,OAAAhgB,KAAAoY,OAAA3N,MAAA4N,QAAA4H,WACA,EACAC,mBAAA,CACA1f,MACA,OAAAR,KAAAoY,OAAA3N,MAAA4N,QAAA6H,kBACA,EACA9V,MACApK,KAAAoY,OAAAmC,OAAA,6BACA,IAGA4F,MAAA,CACAH,UAAA,CACAI,QAAAve,GACA7B,KAAAoY,OAAAa,SAAA,sBAAApX,EACA,EACAwe,MAAA,KA/DA,MAActG,iBAAAC,suDCcd,IAAAsG,SAAA,CACAzY,KAAA,yBACA+O,MAAA,CACA2J,QAAAzQ,OAEAjB,KAAA,KACA,IAEAqJ,SAAA,CAEAsI,WACA,OAAAxgB,KAAAygB,YAAAzgB,KAAAugB,QACA,GAEAhI,QAAA,CACAkI,YAAAvJ,GACAA,GAAA,GAGAwJ,sBACA1gB,KAAAoY,OAAAmC,OAAA,gCACA,IAnCA,MAAcR,iBAAAC,23BC0Bd,IAAA2G,SAAA,CACAzG,WAAA,CACA0G,uBAAAA,qBAEA/R,KAAA,KACA,CACAsC,gBAGA+G,SAAA,CACA5D,OACA,OAAAtU,KAAAoY,OAAAiC,QAAA,mBACA,EACA3H,cACA,OAAA1S,KAAAoY,OAAAiC,QAAA,sBACA,EAEAwG,cAAA,CACArgB,MACA,OAAAR,KAAAoY,OAAA3N,MAAA4N,QAAAyI,iBACA,EACA1W,MACApK,KAAAoY,OAAAmC,OAAA,gCACA,GAGAwG,iBACA,MAAA/c,EAAAhE,KAAAkZ,OAAAC,SAAAzW,MAAA,KAAAsB,OACA,OAAAhE,KAAAkZ,OAAAC,SAAAzW,MAAA,KAAAsB,EAAA,EACA,EAEAgd,sBACA,IAAAC,EASA,OARAjhB,KAAAsU,KAAAE,SAAA0M,IACAA,EAAA9M,SAAAI,SAAA2M,IACAA,EAAA3N,MAAAxT,KAAA+gB,iBACAE,EAAAC,EAAArZ,KACA,GACA,IAGA,CAAAoZ,EACA,GAEA1I,QAAA,CACA6I,eACAphB,KAAA6Y,QAAAlS,KAAA,QACA3G,KAAAoY,OAAAmC,OAAA,gCACA,IA1EA,MAAcR,iBAAAC,+tCCsBd,IAAAqH,SAAA,CACAxZ,KAAA,UACAqS,WAAA,eACAoH,mCACAC,mCACAC,oBACAC,gBAAAA,qBAEA7K,MAAA,CACAjC,MAAA3P,OACAmQ,OAAA7U,QAEAuO,KAAA,KACA,CACAsC,gBAGA+G,SAAA,CACAwJ,cACA,OAAA1hB,KAAAoY,OAAAiC,QAAA,sBACA,GAEAsH,UACA,KAAA3hB,KAAAmV,QAAA,MAEAnV,KAAAoY,OAAAa,SAAA,4BAAAjZ,KAAAmV,QAGA,SAAAnV,KAAAkZ,OAAAC,WACAnZ,KAAA6Y,QAAAlS,KACA,CAAA6M,KAAAxT,KAAA0hB,cACA,SACA,SAGA1hB,KAAAoY,OAAAa,SAAA,wBAIAjZ,KAAAoY,OAAAa,SAAA,0BAGAjZ,KAAAoY,OAAAa,SAAA,qBAEA,GAlEA,MAAcc,iBAAAC,grJCWd,IAAA4H,SAAA,CACAhL,MAAA,CACAiL,WAAA,CAAAC,UAAA,GACAC,YAAA,CAAA/c,OAAAgd,OAAAC,QAAAnS,MAAAxP,QACA4hB,YAAAld,OACAmd,SAAAF,QACAG,UAAApd,QAEAmb,MAAA,CACA0B,aACA7hB,KAAA6B,MAAA7B,KAAA6hB,UACA,GAEAhT,OACA,MAAA,CACA3P,KAAA,OACA2C,MAAA7B,KAAA6hB,WAEA,EACAtJ,QAAA,CACA8J,aAAAxgB,GACA7B,KAAAsiB,MAAA,oBAAAzgB,EACA,EACA0gB,WAAA1gB,GACA7B,KAAA+hB,aAAAlgB,GACA7B,KAAAsiB,MAAA,kBAAAzgB,EAEA,GAEA8f,UACA,eAAA3hB,KAAAoiB,UAAApiB,KAAAd,KAAA,WACAc,KAAAd,KAAAc,KAAAoiB,SACA,GA3CA,MAAcrI,iBAAAC,2tBCFC,SAASwI,QAAQtV,GAG9B,OAAOsV,QAAU,mBAAqBzd,QAAU,iBAAmBA,OAAOM,SAAW,SAAU6H,GAC7F,cAAcA,CACf,EAAG,SAAUA,GACZ,OAAOA,GAAO,mBAAqBnI,QAAUmI,EAAItB,cAAgB7G,QAAUmI,IAAQnI,OAAOjE,UAAY,gBAAkBoM,CAC1H,EAAGsV,QAAQtV,EACb,CCPe,SAASuV,aAAazc,EAAO0c,GAC1C,GAAuB,WAAnBF,QAAQxc,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAI2c,EAAO3c,EAAMjB,OAAOiD,aACxB,QAAa1E,IAATqf,EAAoB,CACtB,IAAInL,EAAMmL,EAAK9hB,KAAKmF,EAAO0c,GAAQ,WACnC,GAAqB,WAAjBF,QAAQhL,GAAmB,OAAOA,EACtC,MAAM,IAAIzU,UAAU,+CACtB,CACA,OAAiB,WAAT2f,EAAoB1d,OAASgd,QAAQhc,EAC/C,CCRe,SAAS4c,eAAeC,GACrC,IAAIxc,EAAM2B,aAAY6a,EAAK,UAC3B,MAAwB,WAAjBL,QAAQnc,GAAoBA,EAAMrB,OAAOqB,EAClD,CCJe,SAASyc,gBAAgB5V,EAAK7G,EAAKxE,GAYhD,OAXAwE,EAAM8B,eAAc9B,MACT6G,EACT5M,OAAOC,eAAe2M,EAAK7G,EAAK,CAC9BxE,MAAOA,EACPH,YAAY,EACZI,cAAc,EACdC,UAAU,IAGZmL,EAAI7G,GAAOxE,EAENqL,CACT,CCdO,MAAM6V,eAAiB,CAI1BC,QAAS,IAETC,iBAAiB,GCCrB,MAAMC,YAEKtX,YAAYuJ,GAA4B2N,gBAAA9iB,KAAA,eAAA,GAEtCA,KAAAmjB,QAAUC,eAAAA,QAAMC,OAAOlO,GAOvBnV,KAAAmjB,QAAQG,aAAaC,QAAQC,KAC7BrO,IACS,MAAAsO,EAAYrO,KAAKC,MAAMC,aAAaC,QAAQnE,gBAA0BqS,WAAa,CACrFC,MAAO,GACPC,iBAAkB,IAEhBC,EAAOxO,KAAKC,MAAMC,aAAaC,QAAQnE,gBAA0ByS,SAASC,UAAY,QAE5F,GAAIL,EAAW,CACL,MAAAC,MAAEA,EAAOC,iBAAAA,GAAqBF,EAEpCtO,EAAO4O,QAAU,IACV5O,EAAO4O,QACVL,QACAE,OAER,CAIO,OAFPjT,mBAAA,QAAUqT,QAEH,IACA7O,EACP,IAEH/U,GACU6jB,QAAQC,OAAO9jB,KAQzBJ,KAAAmjB,QAAQG,aAAajR,SAASmR,KAC9BnR,IACS,MAAAxD,KAAEA,GAASwD,EAEV,OADP1B,mBAAA,QAAUwT,OACHtV,CAAA,IAEXuV,UACkBC,WAAAA,cAAAjkB,MAAMA,EAAM0e,SACnBmF,QAAQC,OAAO9jB,KAGlC,CAGAI,IAAOkU,EAAa4P,EAAiBC,EAAU,CAAA,GACpC,OAAAvkB,KAAKmjB,QAAQ3iB,IAAI,GAAGkU,+CAAkD,CAAE4P,YAAWC,GAC9F,CACAC,KAAQ9P,EAAa4P,EAAiBC,EAAU,CAAA,GAC5C,OAAOvkB,KAAKmjB,QAAQqB,KAAQ,GAAA9P,+CAAkD4P,EAAQC,EAC1F,CACAE,IAAO/P,EAAa4P,EAAiBC,EAAU,CAAA,GAC3C,OAAOvkB,KAAKmjB,QAAQsB,IAAO,GAAA/P,+CAAkD4P,EAAQC,EACzF,CACAG,OAAUhQ,EAAa4P,EAAcC,EAAU,CAAA,GACpC,OAAAvkB,KAAKmjB,QAAQuB,OAAO,GAAGhQ,+CAAkD,CAAE4P,YAAWC,GACjG,EAGJ,IAAAI,KAAe,IAAIzB,YAAYH,gBC5E/B,MAAM6B,WAAa,CAEfC,WAAY,gCAEZC,WAAY,2BAEZC,YAAa,0BAEbC,WAAY,wCAEZC,WAAY,iCAEZC,QAAS,oCAETC,MAAO,mCAMEL,WAAcR,GAAWK,KAAKnkB,IAAmBokB,WAAWE,WAAYR,GAExES,YAAeT,GAAkCK,KAAKH,KAAoBI,WAAWG,YAAaT,GAElGY,QAAWZ,GAAiCK,KAAKH,KAAKI,WAAWM,QAASZ,GAE1Ec,YAAed,GAAWK,KAAKH,KAAKI,WAAWO,MAAOb,GCVnE,IAAAe,SAAA,CACAzO,MAAA,CACAiL,WAAA,CAAAC,UAAA,GACAC,YAAA,CAAA/c,OAAAgd,OAAAC,QAAAnS,MAAAxP,QACA6hB,SAAAF,QACA3T,OAAAhO,OACAglB,eAAAtgB,OACAugB,KAAA,CACArmB,KAAA8F,OACA4V,QAAA,UAEA4K,SAAA,CACAtmB,KAAA+iB,QACArH,SAAA,IAGA/L,OACA,MAAA,CACAhN,MAAA7B,KAAA6hB,WACAtW,QAAA,GAGAka,WAAA,CAAA,EAEA,EACAtF,MAAA,CACA0B,WAAA,CACAzB,QAAAve,GACA7B,KAAA6B,MAAAA,CACA,EACAwe,MAAA,GAGA,oBAAA,CACAD,UACA,MAAAtH,MAAAA,GAAA9Y,KAAAkZ,OAEA,MAAAJ,EAAAlC,QACA5W,KAAAylB,WAAArQ,KAAAC,MAAAyD,EAAAlC,OAEA,EACAyJ,MAAA,EACAqF,WAAA,IAGAxN,SAAA,CACAyN,WACA,OAAA3lB,KAAAsO,OAAAqX,QACA,EACAzT,SACA,OAAAlS,KAAA2lB,SAAAzT,MACA,EACA0T,aACA,IAAAC,EAAA,CAAA,EAIA,OADAvlB,OAAAwlB,OAAAD,EAAA7lB,KAAAylB,YACAI,CACA,GAEAtN,QAAA,CACA8J,aAAAxgB,GACA7B,KAAAsiB,MAAA,oBAAAzgB,EACA,EACA0gB,WAAA1gB,GACA7B,KAAA+hB,aAAAlgB,GACA7B,KAAAsiB,MAAA,kBAAAzgB,EAEA,EACAuiB,sBACA,MAAA5M,QAAAuN,YAAA,CACAgB,SAAA/lB,KAAAslB,eACApT,OAAAlS,KAAAkS,OACA0E,MAAA5W,KAAA4lB,aAGA,GAAA,MAAApO,EAAA/M,MAAA,CACA,IAAAyM,EAAAM,EAAA3I,KACA,GAAA,MAAAqI,GAAA,GAAAA,EAAAlT,OAAA,CACA,IAAAmS,EAAA,GACAe,EAAA1C,SAAAjE,IACA,MAAAA,GACA4F,EAAAxP,KAAA,CACAN,IAAAkK,EAAAvQ,KAAA2lB,SAAAtP,SACAqB,MAAAnH,EAAAvQ,KAAA2lB,SAAAvO,WACAvV,MAAA0O,EAAAvQ,KAAA2lB,SAAAxO,YAEA,IAEAnX,KAAAuL,QAAA4K,CACA,CACA,MACAkO,WAAAA,cAAAjkB,MAAA,UAAAoX,EAAAsH,UAEA,GAEA6C,UACA3hB,KAAAgmB,eACA,GAnHA,MAAcjM,iBAAAC,wxBCwBd,IAAAiM,SAAA,CACArP,MAAA,CACAiL,WAAA,CAAAC,UAAA,GACAC,YAAA,CAAA/c,OAAAgd,OAAAC,QAAAnS,MAAAxP,QACA6hB,SAAAF,QACA3T,OAAAhO,QAEAuO,KAAA,KACA,CACAhN,MAAA,KAGAqW,SAAA,CACAgO,cAAA,CACA1lB,MACA,OAAA,GAAAR,KAAA6hB,WACA,GAEA,iBAAA7hB,KAAAsO,OAAA6X,SACAC,eAAAA,QAAApmB,KAAA6hB,YAAAwE,OAAA,YAEArmB,KAAA6hB,UAGA,EACAzX,IAAAvI,GACA7B,KAAA6B,MAAAA,EACA,iBAAA7B,KAAAsO,OAAA6X,WACAnmB,KAAA6B,MAAAukB,eAAA,QAAAvkB,EAAA,YAAAsE,UAEA,IAGAoS,QAAA,CACA8J,eACAriB,KAAAsiB,MAAA,oBAAAtiB,KAAA6B,MACA,EACA0gB,WAAA1gB,GACA7B,KAAA+hB,aAAAlgB,GACA7B,KAAAsiB,MAAA,kBAAAzgB,EAEA,IAjEA,MAAckY,iBAAAC,2sCCoBd,IAAAsM,SAAA,CACA1P,MAAA,CACAtI,OAAAhO,OACAglB,eAAAtgB,QAEA6J,KAAA,KACA,CACA0D,sBACAgU,WAAA,CAAA,IAGAhO,QAAA,CACAiO,oBAAAC,GACA,MAAAC,EAAAD,EAAApU,SACArS,KAAAsiB,MAAA,gBAAAoE,EAAA7X,KAAA8X,QAAA3mB,KAAAsO,OACA,EACAsY,kBAAAxmB,GACAikB,WAAAA,cAAAjkB,cAAAA,IACA,IAtCA,MAAc2Z,iBAAAC,sxBCoEd,IAAA6M,SAAA,CACAhf,KAAA,UACAqS,WAAA,YACA4M,gCACAC,wCACAC,oBACAC,cAAAA,qBAEArQ,MAAA,CACAmP,SAAA/gB,OACAkiB,WAAA5mB,OACA6mB,UAAA,CAAA,GAEAtY,KAAA,KACA,CACAsC,cACAiW,WAAA,CAAA,IAGAlP,SAAA,CAEAmP,mBACA,OAAArnB,KAAAknB,YAAAI,QAAAtS,QAAAuS,GAAA,eAAAA,EAAAC,QACA,EAEAC,mBACA,OAAAznB,KAAAknB,YAAAI,QAAAtS,QAAAuS,GAAA,eAAAA,EAAAC,QACA,EACAE,kBACA,OAAA1nB,KAAAknB,YAAAS,SACA,EACAC,gBACA,OAAA5nB,KAAAknB,WAAAS,UAAAE,OACA,GAEA1H,MAAA,CACAiH,WAAA,CACAhH,QAAAve,GACA7B,KAAAsiB,MAAA,uBAAAzgB,EACA,EACAwe,MAAA,IAGA9H,QAAA,CACAuP,wBAAAP,GACAvnB,KAAAsiB,MAAA,uBAAAiF,EACA,IAlHA,MAAcxN,iBAAAC,glFCGd,IAAA+N,SAAA,CACAnR,MAAA,CACAiL,WAAA,CAAAC,UAAA,KALA,MAAc/H,iBAAAC,6iBCKd,IAAAgO,SAAA,CACApR,MAAA,CACAiL,WAAA,CAAAC,UAAA,GACAC,YAAA,CAAA/c,OAAAgd,OAAAC,QAAAnS,MAAAxP,QACA6hB,SAAAF,SAEApT,KAAA,KACA,CACAhN,OAAA,IAGAse,MAAA,CACA0B,WAAA,CACAzB,UACApgB,KAAA6B,MAAA7B,KAAA6hB,WAEA9J,OAAA/X,KAAA6hB,cACA7hB,KAAA6B,OAAA,EAEA,EACA6jB,WAAA,IAGAnN,QAAA,CACA8J,aAAAxgB,GACA7B,KAAAsiB,MAAA,oBAAAzgB,GAEA7B,KAAA+hB,aAAAlgB,GACA7B,KAAAsiB,MAAA,kBAAAzgB,EAEA,IAnCA,MAAckY,iBAAAC,ypBCKd,IAAAiO,SAAA,CACArR,MAAA,CACAiL,WAAA,CAAAC,UAAA,GACAC,YAAA,CAAA/c,OAAAgd,OAAAC,QAAAnS,MAAAxP,QACA6hB,SAAAF,SAEApT,KAAA,KACA,CACAhN,OAAA,IAGAse,MAAA,CACA0B,aACA7hB,KAAA6B,MAAA7B,KAAA6hB,WAEA9J,OAAA/X,KAAA6hB,cACA7hB,KAAA6B,OAAA,EAEA,GAEA0W,QAAA,CACA8J,aAAAxgB,GACA7B,KAAAsiB,MAAA,oBAAAzgB,GAEA7B,KAAA+hB,aAAAlgB,GACA7B,KAAAsiB,MAAA,kBAAAzgB,EAEA,IAhCA,MAAckY,iBAAAC,upBCQd,IAAAkO,SAAA,CACAtR,MAAA,CACAiL,WAAA,CAAAC,UAAA,GACAC,YAAA,CAAA/c,OAAAgd,OAAAC,QAAAnS,MAAAxP,QACA6hB,SAAAF,QACA3T,OAAAhO,OACAglB,eAAAtgB,QAEA6J,OACA,MAAA,CACAhN,MAAA7B,KAAA6hB,WACAsG,WAAA,GAGA1C,WAAA,CAAA,EAEA,EACAtF,MAAA,CACA0B,aACA7hB,KAAA6B,MAAA7B,KAAA6hB,UACA,EAEA,oBAAA,CACAzB,UACA,MAAAtH,MAAAA,GAAA9Y,KAAAkZ,OAEA,MAAAJ,EAAAlC,QACA5W,KAAAylB,WAAArQ,KAAAC,MAAAyD,EAAAlC,OAEA,EACAyJ,MAAA,EACAqF,WAAA,IAGAxN,SAAA,CACAyN,WACA,OAAA3lB,KAAAsO,OAAAqX,QACA,EACAzT,SACA,OAAAlS,KAAA2lB,SAAAzT,MACA,EACA0T,aACA,IAAAC,EAAA,CAAA,EAIA,OADAvlB,OAAAwlB,OAAAD,EAAA7lB,KAAAylB,YACAI,CACA,GAEAtN,QAAA,CACA8J,aAAAxgB,GACA7B,KAAAsiB,MAAA,oBAAAzgB,GAEA7B,KAAA+hB,aAAAlgB,GACA7B,KAAAsiB,MAAA,kBAAAzgB,EAEA,EACAuiB,sBACA,MAAA5M,QAAAuN,YAAA,CACAgB,SAAA/lB,KAAAslB,eACApT,OAAAlS,KAAAkS,OACA0E,MAAA5W,KAAA4lB,aAGA,GAAA,MAAApO,EAAA/M,MAAA,CACA,IAAAyM,EAAAM,EAAA3I,KACA,GAAA,MAAAqI,GAAA,GAAAA,EAAAlT,OAAA,CACA,IAAAmS,EAAA,GACAe,EAAA1C,SAAAjE,IACA,MAAAA,GACA4F,EAAAxP,KAAA,CACAN,IAAAkK,EAAAvQ,KAAA2lB,SAAAtP,SACAqB,MAAAnH,EAAAvQ,KAAA2lB,SAAAvO,WACAvV,MAAA0O,EAAAvQ,KAAA2lB,SAAAxO,YAEA,IAGAnX,KAAAmoB,WAAAhS,CACA,CACA,MACAkO,WAAAA,cAAAjkB,MAAA,UAAAoX,EAAAsH,UAEA,GAEA6C,UACA3hB,KAAAgmB,eACA,GA/FA,MAAcjM,iBAAAC,+wBCkBd,IAAAoO,SAAA,CACAxR,MAAA,CACAiL,WAAA,CAAAC,UAAA,GACAC,YAAA,CAAA/c,OAAAgd,OAAAC,QAAAnS,MAAAxP,QACA6hB,SAAAF,QACA3T,OAAAhO,OACAglB,eAAAtgB,OACAwgB,SAAA,CACAtmB,KAAA+iB,QACArH,SAAA,IAGA/L,OACA,MAAA,CACAhN,MAAA7B,KAAA6hB,WACAwG,YAAA,GAGA5C,WAAA,CAAA,EAEA,EACAtF,MAAA,CACA0B,aACA7hB,KAAA6B,MAAA7B,KAAA6hB,UACA,EAEA,oBAAA,CACAzB,UACA,MAAAtH,MAAAA,GAAA9Y,KAAAkZ,OAEA,MAAAJ,EAAAlC,QACA5W,KAAAylB,WAAArQ,KAAAC,MAAAyD,EAAAlC,OAEA,EACAyJ,MAAA,EACAqF,WAAA,IAGAxN,SAAA,CACAoQ,WACA,OAAAtoB,KAAAsO,OAAAga,QACA,EACApW,SACA,OAAAlS,KAAAsoB,SAAApW,MACA,EAEA0T,aACA,IAAAC,EAAA,CAAA,EAIA,OADAvlB,OAAAwlB,OAAAD,EAAA7lB,KAAAylB,YACAI,CACA,GAEAtN,QAAA,CACA8J,aAAAxgB,GACA7B,KAAAsiB,MAAA,oBAAAzgB,EACA,EACA0gB,WAAA1gB,GACA7B,KAAA+hB,aAAAlgB,GACA7B,KAAAsiB,MAAA,kBAAAzgB,EAEA,EACAuiB,sBACA,MAAA5M,QAAAuN,YAAA,CACAgB,SAAA/lB,KAAAslB,eACApT,OAAAlS,KAAAkS,OACA0E,MAAA5W,KAAA4lB,aAGA,GAAA,MAAApO,EAAA/M,MAAA,CACA,IAAAyM,EAAAM,EAAA3I,KACA,GAAA,MAAAqI,GAAA,GAAAA,EAAAlT,OAAA,CACA,IAAAmS,EAAAc,qBAAA,CACAC,OACAb,QAAArW,KAAAsoB,SAAAnR,UACAA,UAAAnX,KAAAsoB,SAAAnR,UACAC,UAAApX,KAAAsoB,SAAAlR,UACAC,UAAA,KACAC,cAAAtX,KAAAsoB,SAAAhR,gBAGAtX,KAAAqoB,YAAAlS,CACA,CACA,MACAkO,WAAAA,cAAAjkB,MAAA,UAAAoX,EAAAsH,UAEA,GAEA6C,UACA3hB,KAAAgmB,eACA,GA7GA,MAAcjM,iBAAAC,qzBCgBd,IAAAuO,SAAA,CACA3R,MAAA,CACAiL,WAAA,CAAAC,UAAA,GACAC,YAAA,CAAA/c,OAAAgd,OAAAC,QAAAnS,MAAAxP,QACA6hB,SAAAF,QACA3T,OAAAhO,OACAglB,eAAAtgB,OACAwgB,SAAA,CACAtmB,KAAA+iB,QACArH,SAAA,IAGA/L,OACA,MAAA,CACAhN,MAAA7B,KAAA6hB,WACA2G,gBAAA,GAGA/C,WAAA,CAAA,EAEA,EACAtF,MAAA,CACA0B,aACA7hB,KAAA6B,MAAA7B,KAAA6hB,UACA,EAEA,oBAAA,CACAzB,UACA,MAAAtH,MAAAA,GAAA9Y,KAAAkZ,OAEA,MAAAJ,EAAAlC,QACA5W,KAAAylB,WAAArQ,KAAAC,MAAAyD,EAAAlC,OAEA,EACAyJ,MAAA,EACAqF,WAAA,IAGAxN,SAAA,CACAoQ,WACA,OAAAtoB,KAAAsO,OAAAga,QACA,EACApW,SACA,OAAAlS,KAAAsoB,SAAApW,MACA,EAEA0T,aACA,IAAAC,EAAA,CAAA,EAIA,OADAvlB,OAAAwlB,OAAAD,EAAA7lB,KAAAylB,YACAI,CACA,GAEAtN,QAAA,CACA8J,aAAAxgB,GACA7B,KAAAsiB,MAAA,oBAAAzgB,EACA,EACA0gB,WAAA1gB,GACA7B,KAAA+hB,aAAAlgB,GACA7B,KAAAsiB,MAAA,kBAAAzgB,EAEA,EACAuiB,sBACA,MAAA5M,QAAAuN,YAAA,CACAgB,SAAA/lB,KAAAslB,eACApT,OAAAlS,KAAAkS,OACA0E,MAAA5W,KAAA4lB,aAGA,GAAA,MAAApO,EAAA/M,MAAA,CACA,IAAAyM,EAAAM,EAAA3I,KACA,GAAA,MAAAqI,GAAA,GAAAA,EAAAlT,OAAA,CACA,IAAAmS,EAAAc,qBAAA,CACAC,OACAG,UAAA,KACAhB,QAAArW,KAAAsoB,SAAAjS,QACAc,UAAAnX,KAAAsoB,SAAAnR,UACAC,UAAApX,KAAAsoB,SAAAlR,UACAE,cAAAtX,KAAAsoB,SAAAhR,gBAGAtX,KAAAwoB,gBAAArS,CACA,CACA,MACAkO,WAAAA,cAAAjkB,MAAA,UAAAoX,EAAAsH,UAEA,GAEA6C,UACA3hB,KAAAgmB,eACA,GA3GA,MAAcjM,iBAAAC,4vBCmBd,IAAAyO,SAAA,CACA7R,MAAA,CACAiL,WAAA,CAAAC,UAAA,GACA4G,SAAA1jB,OACA2jB,KAAA3jB,OACAsJ,OAAAhO,OACAglB,eAAAtgB,OACAmd,SAAAF,SAEApT,KAAA,KACA,CACAhN,MAAA,KAGAse,MAAA,CACA0B,WAAAhgB,GAEA7B,KAAA6B,MADA,KAAAA,GAAA,IACA,CAAA,CAAAgG,KAAA7H,KAAA0oB,SAAAhU,IAAA7S,IAEA,EAEA,GAEAqW,SAAA,CAEA0Q,YACA,OAAA5oB,KAAAoY,OAAAiC,QAAA,oBACA,GAGA9B,QAAA,CACA8J,eAEA,GAAAriB,KAAA6B,MAAAmC,OAAA,CACA,MAAA6D,KAAAA,EAAAwK,SAAAA,GAAArS,KAAA6B,MAAA,GACA7B,KAAAumB,WAAAlU,EAAAxD,KACAwD,EAAAxD,KAAA7K,SAEAhE,KAAAsiB,MAAA,oBAAAjQ,EAAAxD,KAAA,IACA7O,KAAAsiB,MAAA,kBAAAjQ,EAAAxD,KAAA,IACA7O,KAAAsiB,MAAA,kBAAAza,GACAwc,WAAAA,cAAAwE,QAAA,QAEA,MACAC,QAAAC,IAAA/oB,KAAA6B,OACA7B,KAAAsiB,MAAA,oBAAA,GAEA,EACAsE,kBAAAxmB,GACAikB,WAAAA,cAAAjkB,cAAAA,IACA,IArEA,MAAc2Z,iBAAAC,q7BCyHd,IAAAgP,SAAA,CACA9O,WAAA,YACA4M,+BACAmC,kCACAC,gCACAC,+BACAC,gCACArC,wCACAC,sCACAqC,kCACAC,oBACAC,YAAAA,qBAEA3S,MAAA,CACA4S,IAAAlpB,OACAmpB,IAAAnpB,OACAylB,SAAA/gB,QAEA6J,OACA,MAAA,CACAsY,UAAA,IACAnnB,KAAAypB,KAGA,EACAvR,SAAA,CACAwR,YACA,OAAA1pB,KAAAwpB,KAAAE,SACA,GAEAnR,QAAA,CACA9E,wBACAkW,uBAAAtT,EAAAxU,GACAiS,YAAA9T,KAAAmnB,UAAA9Q,EAAAxU,GAEA7B,KAAA4pB,cACA,EACAC,qBAAAtZ,EAAA1O,GACA7B,KAAAsiB,MAAA,OAAA/R,EAAAvQ,KAAAmnB,UACA,GAEAhH,MAAA,CACAsJ,IAAA,CACArJ,QAAA0J,GACAxpB,OAAAwlB,OAAA9lB,KAAAmnB,UAAAnnB,KAAAypB,IACA,EACA/D,WAAA,EACArF,MAAA,KAxKA,MAActG,iBAAAC,gkICyGd,IAAA+P,SAAA,CACAliB,KAAA,SACAqS,WAAA,OACA8P,eAAA,QACAC,WAAAA,qBAEArT,MAAA,CACAmP,SAAA/gB,OACAklB,UAAA5pB,OACA6pB,UAAAra,MACAsa,gBAAA9pB,QAEAuO,KAAA,KACA,CACAsC,cACAkZ,gBAAA,GACAC,gBAAA,CACAC,YAAA,KAIArS,SAAA,CACArJ,OACA,OAAA7O,KAAAmqB,SACA,EACAK,SACA,OAAAxqB,KAAAkqB,UAAAC,UAAA9T,OACA,EACAP,eACA,OAAAD,iBAAA7V,KAAAkqB,UAAAO,QACA,GAEAlS,QAAA,CAEAmS,mBAAA7oB,GAAA8oB,gBAAAA,IACA3qB,KAAAqqB,gBAAAxoB,EAEA7B,KAAAsiB,MAAA,sBAAAtiB,KAAAqqB,gBACA,EAEAO,YAAA,CAAA3U,EAAAwT,IACA,IAAAxT,EAAApU,MACAgpB,0BAAAC,OAAA7U,EAAApU,MAAA,CAAA0O,KAAAkZ,IACA,IAAAxT,EAAApU,MACA4nB,EAAAxT,EAAAI,cADA,EAKA0U,iBAAA9U,EAAAwT,GACA,MAAAuB,EAAA/U,EAAA+U,MACA,GAAA,MAAAA,EAAA,CACA,IAAAC,EAAAD,EAAAhW,QAAAb,IACA,GAAAA,EAAAtS,OAAAmD,OAAAykB,EAAAxT,EAAAI,UACA,OAAAlC,EAAA0L,IACA,IAEA,OAAAoL,EAAAjnB,OACAinB,EAAAtE,QAAA9G,KAEA4J,EAAAxT,EAAAI,QAEA,CACA,EAEA6U,gBAAA,CAAAjV,EAAA3H,IAEA8X,eAAA,QAAA9X,GAAA+X,OAAA,uBAGA8E,uBAAAC,WAAA3B,KAGA,OAFA3pB,OAAAurB,EAAA/X,KAEA8X,WAAApW,QAAAb,UACA,GAAA,KAAAA,QAAAmX,OAAA,CACA,IAAArjB,OAAAsjB,WACA,IACAtjB,OAAA4iB,0BAAAC,OAAA3W,QAAAmX,OAAA,CAAA/a,KAAAkZ,MACA8B,WAAAC,KAAAvjB,OAGA,OAFAwjB,GACA3C,QAAA4C,KAAAD,EACA,CAEA,OAAAD,KAAAD,WACA,CACA,OAAApX,OACA,GAEA,EAEAwX,uBAAApE,EAAAkC,GACAzpB,KAAAsiB,MAAA,sBAAAiF,EAAAkC,EACA,EAEAmC,sBAAArb,EAAAsb,GACA7rB,KAAAsiB,MAAA,qBAAA/R,EAAAsb,EACA,GAEA1L,MAAA,CACAiK,gBAAA,CACAhK,QAAAve,GACA,IAAAiqB,EAAA,CAAA,EACAxrB,OAAAwlB,OAAAgG,EAAAjqB,GAEA7B,KAAAsqB,gBAAAjhB,QAAAyiB,EAAAC,KAAA,EACA/rB,KAAAsqB,gBAAA0B,SAAAF,EAAAG,MACAjsB,KAAAsqB,gBAAA4B,MAAAJ,EAAAK,WAGA,IAAApN,EAAA/e,KACAA,KAAAsqB,gBAAA8B,SAAA,SAAAC,GACAtN,EAAAuD,MAAA,0BAAA+J,GAEA,EACA3G,WAAA,EACArF,MAAA,IAGAsB,UACA3hB,KAAA4nB,eACA5nB,KAAA4nB,cAAApT,SAAAQ,IACAhV,KAAAonB,WAAApS,EAAAqB,SAAA,EAAA,GAGA,GApOA,MAAc0D,iBAAAC,goqCCSd,IAAAsS,SAAA,CACApS,WAAA,CACAqS,YAAAA,eAAAA,aAEA3V,MAAA,CACAiL,WAAA,CACAC,UAAA,IAGAjT,OACA,MAAA,CACAhN,MAAA7B,KAAA6hB,WAEA,EACA1B,MAAA,CACA0B,aACA7hB,KAAA6B,MAAA7B,KAAA6hB,UACA,GAEAtJ,QAAA,CACAiU,mBAAAC,GACAzsB,KAAAsiB,MAAA,oBAAAmK,EAAAC,KACA,IA/BA,MAAc3S,iBAAAC,ysBCKd,IAAA2S,SAAA,CACA/V,MAAA,CACA/O,KAAA7C,OACA4nB,UAAA5nB,OACAsmB,OAAA,CACAxJ,UAAA,IAGAjT,KAAA,KACA,CACAge,QAAA,KAGAtU,QAAA,CACAuU,WACA,eAAA9sB,KAAA4sB,WAAA5sB,KAAAsrB,OAEA,eAAAtrB,KAAA4sB,WAAA5sB,KAAAsrB,OACAtrB,KAAA6sB,iBAAA7sB,KAAA6H,OACA,aAAA7H,KAAA4sB,YACA5sB,KAAA6sB,eAAA7sB,KAAA6H,QAJA7H,KAAA6sB,iBAAA7sB,KAAA6H,MAMA,EACAklB,kBACA,GAAA,eAAA/sB,KAAA4sB,WAAA5sB,KAAAsrB,QASA,GAAA,eAAAtrB,KAAA4sB,WAAA5sB,KAAAsrB,OAAA,CAGA,IAAA,IAAAhe,EAFAtN,KAAAgtB,MAAA,GAAAhtB,KAAA6H,QAEAyF,IACAA,EAAA2f,QAAA,QAAAjtB,KAAA6H,QADAyF,EAAAA,EAAA4f,mBAIA5f,EAAA6f,UAAAC,OAAA,oBAEA,MAlBA,CAGA,IAAA,IAAA9f,EAFAtN,KAAAgtB,MAAA,GAAAhtB,KAAA6H,QAEAyF,IACAA,EAAA6f,UAAAE,IAAA,sBACA/f,EAAA2f,QAAA,QAAAjtB,KAAA6H,SAFAyF,EAAAA,EAAA4f,oBAMA,CAUA,GAEAvL,UACA3hB,KAAA8sB,WACA9sB,KAAA+sB,iBACA,EACA5M,MAAA,CACAmL,OAAA,CACAlL,UACApgB,KAAA8sB,WACA9sB,KAAA+sB,iBACA,EACArH,WAAA,EACArF,MAAA,KA7DA,MAActG,iBAAAC,uqBCiMd,IAAAsT,SAAA,CACAzlB,KAAA,QACAqS,WAAA,YACA+O,+BACAnC,kCACAoC,gCACAC,+BACAC,gCACArC,wCACAC,sCACAqC,kCACAC,gCACAC,gCACAgE,oBACAC,WAAAA,qBAEA5W,MAAA,CACAmP,SAAA/gB,OACAklB,UAAA5pB,OACAmtB,SAAAntB,QAEAuO,KAAA,KACA,CACAsC,cACAgW,UAAA,CAAA,EACAuG,UAAA,CAAA,EACAC,cAAA,CAAA,iBAAA,UAAA,SAAA,qBAGAzV,SAAA,CACAwR,YACA,OAAA1pB,KAAAkqB,UAAAR,SACA,EACAkE,eACA,OAAA5tB,KAAAkqB,UAAA2D,QACA,EACAC,mBACA,OAAA9tB,KAAAkqB,UAAA6D,YACA,GAEAxV,QAAA,CACA9E,wBACAua,gBACA,MAAAC,EAAA,GACAjuB,KAAAgtB,MAAAkB,KAAAC,UAAA3Z,SAAAjE,IACA,KAAAA,EAAA6d,IAAAjnB,IAAA,KAAAoJ,EAAA6d,IAAAjB,UAAAkB,SAAA,sBACAJ,EAAAtnB,KAAA4J,EAAA+d,OAAAC,iBAAAC,UACA,IAGA,IAAAC,EAAA,CAAA,EACAR,EAAAjqB,QAEAiqB,EAAAzZ,SAAAjE,IAEA,IAAAme,EAAA,GACAne,EAAAoe,cAAA,KAAApe,EAAA1I,MAAA,KACA6mB,EAAA/nB,KAAA,CACAioB,UAAA,KACA,GAAA7W,OAAAtE,YAAAzT,KAAAmnB,UAAA5W,EAAA1I,OACA,MAAA,CAAAI,QAAA,GAGA,MAAA,CACAA,QAAA,EACA6W,QAAA,GAHAvO,EAAAmH,MAAAlM,QAAA,MAAA,IAAAA,QAAA,WAAA,WAKA,EAEAmN,QAAA,WAIA,cAAApI,EAAA1I,MACA6mB,EAAA/nB,KAAA,CACAioB,UAAA,KACA,CACA3mB,OACAwL,YAAAzT,KAAAmnB,UAAA,aACA1T,YAAAzT,KAAAmnB,UAAA,cACArI,QAAA,eAGAnG,QAAA,SAIA,aAAApI,EAAA1I,MAAA,WAAA0I,EAAA1I,MACA6mB,EAAA/nB,KAAA,CACAioB,UAAA,KACA,CACA3mB,OACAwL,YAAAzT,KAAAmnB,UAAA,WACA1T,YAAAzT,KAAAmnB,UAAA,aACA,EAEArI,QAAA,oBASA4P,EAAA1qB,SACAyqB,EAAAle,EAAA1I,MAAA6mB,EACA,IAIA1uB,KAAA0tB,UAAA,IAAAe,EACA,EACAI,kBAAAtH,GACA,OAAAA,EAAAC,QACA,IAAA,UACAxnB,KAAAgtB,MAAAkB,KAAAY,WAAAC,MAAA9mB,IACA,GAAA3H,OAAA0J,KAAA/B,GAAAjE,OAGA,CACA,MAAAgrB,EAAA1uB,OAAA2uB,OAAAhnB,GAAA,KAAA,IAAA6W,QACAuF,WAAAA,cAAA6K,WAAAF,IAGA,MANAhvB,KAAAsiB,MAAA,eAAAtiB,KAAAmnB,UAAAI,EAAA4H,SAMA,IAEA,MAEA,IAAA,oBACAnvB,KAAAgtB,MAAAkB,KAAAY,WAAAC,MAAA9mB,IACA,GAAA3H,OAAA0J,KAAA/B,GAAAjE,OAGA,CACA,MAAAgrB,EAAA1uB,OAAA2uB,OAAAhnB,GAAA,KAAA,IAAA6W,QACAuF,WAAAA,cAAA6K,WAAAF,IAGA,MANAhvB,KAAAsiB,MAAA,oBAAAtiB,KAAAmnB,UAAAI,EAAA4H,SAMA,IAEA,MAEA,IAAA,eACAnvB,KAAAsiB,MAAA,gBACA,MAEA,QACAwG,QAAAC,IAAAxB,GAIA,EACAoC,uBAAAtT,EAAAxU,GACAiS,YAAA9T,KAAAmnB,UAAA9Q,EAAAxU,GACA7B,KAAA4pB,eAEA5pB,KAAAqZ,WAAA,KACArZ,KAAAguB,eAAA,GAEA,EACAoB,kBAAA/Y,EAAAxU,GACA,KAAAwU,GAAA,KACAvC,YAAA9T,KAAAmnB,UAAA9Q,EAAAxU,GAEA7B,KAAA4pB,cACA,EACAyF,iBAAA/D,QAGA,GAFAxrB,OAAAurB,EAAA/X,UAEA,IAAAgY,QAAA,GAAAA,OAAA,CACA,IAAArjB,OAAAsjB,WACA,IACAtjB,OAAA4iB,kBAAAA,QAAAC,OAAAQ,OAAA,CAAA4C,KAAAluB,KAAAmnB,YACAoE,WAAAC,KAAAvjB,OAKA,OAFAwjB,GACA3C,QAAA4C,KAAAD,EACA,CACA,OAAAF,UACA,CACA,OAAA,CAEA,EACA+D,oBAAAC,WAGA,GAFAzvB,OAAAurB,EAAA/X,KAEA,GAAAic,UAAA,CACA,IAAAtnB,OAAAsjB,WACA,IACAtjB,OAAA4iB,kBAAAA,QAAAC,OAAAyE,UAAA,CAAArB,KAAAluB,KAAAmnB,YACAoE,WAAAC,KAAAvjB,OAKA,OAFAwjB,GACA3C,QAAA4C,KAAAD,EACA,CACA,OAAAF,UACA,CACA,OAAA,CAEA,GAEApL,MAAA,CACAsN,SAAA,CACArN,UACA,GAAA,KAAApgB,KAAAytB,UAAA,IACAztB,KAAA0pB,UAAAlV,SAAAgb,IACAA,EAAAnZ,SAAA,KAAA5C,YAAAzT,KAAAytB,SAAA+B,EAAAnZ,UAAA,MACA,aAAAmZ,EAAArJ,UAAA,UAAAqJ,EAAArJ,UACArS,YAAA9T,KAAAytB,SAAA+B,EAAAnZ,SAAA,GAEA,IAGA/V,OAAAwlB,OAAA9lB,KAAAmnB,UAAAnnB,KAAAytB,UACAztB,KAAA4pB,mBACA,CACA,IAAA/D,EAAA,CAAA,EACA7lB,KAAA0pB,UAAAlV,SAAAgb,IACA,cAAAA,EAAArJ,UAAA,WAAAqJ,EAAArJ,SACArS,YAAA+R,EAAA2J,EAAAnZ,QAAA,IAEAvC,YAAA+R,EAAA2J,EAAAnZ,SAAA,EACA,IAEA/V,OAAAwlB,OAAA9lB,KAAAmnB,UAAAtB,GACA7lB,KAAA4pB,cACA,CACA,EACAvJ,MAAA,EACAqF,WAAA,IAGA/D,UACA3hB,KAAAguB,eACA,GA9aA,MAAcjU,iBAAAC,y4LCad,IAAAyV,SAAA,CACAvV,WAAA,CACAwV,UAAA,IAAAzL,QAAA0L,UAAAZ,MAAA,WAAA,OAAAa,OAAA,IAAAb,MAAAc,GAAAA,EAAAjV,WAEA/S,KAAA,OACA+O,MAAA,CACAmP,SAAA/gB,OACAklB,UAAA5pB,QAEA4X,SAAA,CACA4X,OACA,OAAA9vB,KAAAkqB,UAAA4F,IACA,GAEAjhB,OACA,MAAA,CACAsC,cACA4e,gBAAA/vB,KAAAkqB,UAAA4F,KAAA,GAAAnb,MAEA,EACA4D,QAAA,CACAyX,gBAAAC,GACAjwB,KAAA+vB,gBAAAE,CACA,IApCA,MAAclW,iBAAAC,yhCCwBd,IAAAkW,SAAA,CACAroB,KAAA,UACAqS,WAAA,CACAwV,UAAA,IAAAzL,QAAA0L,UAAAZ,MAAA,WAAA,OAAAa,OAAA,IAAAb,MAAAc,GAAAA,EAAAjV,WAEAhE,MAAA,CACAuZ,eAAA7vB,OACA8vB,gBAAA9vB,OACA+vB,UAAA,CACAnxB,KAAA+iB,QACArH,SAAA,IAGA/L,KAAA,KACA,CACAsC,cACAmf,SAAA,CAAA,EACAC,UAAA,CAAA,EACAC,UAAA,KAGAtY,SAAA,CACAuY,mBACA,OAAAzwB,KAAAmwB,eAAAtoB,IACA,EACA6oB,iBACA,OAAA1wB,KAAAmwB,eAAAQ,IACA,EACAC,cACA,IAAAC,EAAA,CAAA,EACA,OAAA7wB,KAAAowB,iBACApwB,KAAAwwB,UAAAhc,SAAAsc,IACA9wB,KAAAowB,gBAAAU,KACAD,EAAAC,GAAA9wB,KAAAowB,gBAAAU,GACA,IAEAD,GAEA,IAEA,EACA9K,WACA,OAAA/lB,KAAAmwB,eAAAQ,IACA,GAEApY,QAAA,CACAwY,qBACA/wB,KAAAsiB,MAAA,oBAAA,EACA,EACA0O,oBACAhxB,KAAAsiB,MAAA,eACA,EAEA8B,kBAAA2B,EAAAnP,GACAA,EAAAmP,SAAAA,EAEA,MAAAvO,QAAAsN,WAAAlO,GAEA,MAAAY,EAAA/M,QACAzK,KAAAswB,SAAA9Y,EAAA3I,KACA7O,KAAAuwB,UAAA/Y,EAAA3I,KAAAoiB,SAAA,GACAjxB,KAAAwwB,UAAAhZ,EAAA3I,MAAA+H,MAEA,GAEAuJ,MAAA,CACAgQ,iBACAnwB,KAAAkxB,YAAAlxB,KAAA0wB,eAAA,CAAA,EACA,GAEA/O,UACA3hB,KAAAkxB,YAAAlxB,KAAA0wB,eAAA,CAAA,EACA,GAhGA,MAAc3W,iBAAAC,22CCsEd,IAAAmX,SAAA,CACAtpB,KAAA,YACAqS,WAAA,SACAkX,2BACAC,0BACAC,yBACAC,oBACAC,QAAAA,qBAEA5a,MAAA,CAEA6a,MAAAnxB,OAEAylB,SAAA/gB,OAEAwrB,UAAA1gB,OAAAxP,OAGAswB,YAAAtwB,QAEAuO,KAAA,KACA,CACAsC,cAEAsU,WAAA,CAAA,EAGAiM,kBAAA,CAAA,EAGAvH,UAAA,GAEAsD,SAAA,CAAA,EAGAkE,kBAAA,GAGAC,qBAAA,CACA3F,MAAA,GACAF,KAAA,EACAI,WAAA,EACA0F,UAAA,GAIAC,iBAAA,EACA1B,gBAAA,CAAA,EACAD,eAAA,CAAA,IAGAjY,SAAA,CAEA6Z,YACA,OAAA/xB,KAAAyxB,MAAAM,SACA,EAEA7K,aACA,OAAAlnB,KAAAyxB,MAAAO,MACA,EAEA9f,SACA,OAAAlS,KAAAyxB,MAAA5iB,MAAA7O,KAAAyxB,MAAAtH,UACA,UAAAnqB,KAAA+xB,UACA/xB,KAAAyxB,MAAAtH,UAAAjY,OAEAlS,KAAAyxB,MAAA5iB,KAAAqD,OAGA,IAEA,EAGA0T,aACA,IAAAC,EAAA,CAAA,EAkBA,OAhBA7lB,KAAAknB,YAAAlnB,KAAA0xB,mBACApxB,OAAAwlB,OAAAD,EAAA7lB,KAAA0xB,mBAIA1xB,KAAA4wB,aACAtwB,OAAAwlB,OAAAD,EAAA7lB,KAAA4wB,aAIA,UAAA5wB,KAAA+xB,WACAzxB,OAAAwlB,OAAAD,EAAA7lB,KAAA4xB,sBAIAtxB,OAAAwlB,OAAAD,EAAA7lB,KAAAylB,YACAI,CACA,GAEA1F,MAAA,CACA,oBAAA,CACAC,QAAA0J,GACA,MAAAhR,MAAAA,GAAA9Y,KAAAkZ,OAEA,MAAAJ,EAAAlC,QACA5W,KAAAylB,WAAArQ,KAAAC,MAAAyD,EAAAlC,OAEA,EACAyJ,MAAA,EACAqF,WAAA,GAEA+L,MAAA,CACArR,UAEApgB,KAAAiyB,iBACA,EACA5R,MAAA,IAGA9H,QAAA,CAEA2Z,aAAA3K,EAAAkC,EAAA,IACA,OAAAlC,EAAAC,QAEA,IAAA,iBACAxnB,KAAA8xB,iBAAA,EACA9xB,KAAAmwB,eAAA5I,EACAvnB,KAAAowB,gBAAA,IAAA3G,GACA,MAGA,IAAA,OAAA,CACA,IAAAoH,EAAA,CAAA,EACAtJ,EAAA3Q,MAAApC,SAAAjE,IACAsgB,EAAAtgB,EAAA8F,SAAAoT,EAAAlZ,EAAA8F,QAAA,IAGArW,KAAA6Y,QAAAlS,KAAA,CACA6M,KAAA,QACAsF,MAAA,CACAiN,SAAAwB,EAAAoJ,KACA/Z,MAAAxB,KAAA+c,UAAAtB,MAGA,KACA,CAEA,IAAA,UAAA,CACA,IAAA/R,EAEAA,EADA,IAAAyI,EAAA6K,eACAvH,0BAAAC,OAAAvD,EAAA6K,eAAA,CAAA7hB,KAAAkZ,WAEAlC,EAAA1f,OAGA,IAAAgpB,EAAA,CAAA,EACAtJ,EAAA3Q,MACA2Q,EAAA3Q,MAAApC,SAAAjE,IACAsgB,EAAAtgB,EAAA8F,SAAAoT,EAAAlZ,EAAA8F,QAAA,IAGAwa,EAAA,IAAApH,GAGA,MAAA4I,EAAAC,wBAAApN,QAAA,CACArO,MAAA,OACAmb,OAAAzK,EAAA1f,KACA0qB,KAAAzT,EACA0T,UAAA,KACAxyB,KAAAyyB,kBAAA5B,EAAAtJ,EAAA4H,UACAkD,EAAAK,SAAA,EAEAC,SAAA,KACAtO,WAAAA,cAAAuO,KAAA,MAAArL,EAAA1f,OAAA,IAIA,KACA,CAGA,IAAA,QAAA,CACA,MAAAwqB,EAAAC,wBAAApN,QAAA,CACArO,MAAA,OACAmb,OAAAzK,EAAA1f,KACA0qB,YAAAhL,EAAA1f,YACA2qB,UAAA,KACA,GAAAxyB,KAAA2xB,kBAAA3tB,OACAqgB,yBAAAjkB,MAAA,YAEAJ,KAAA6yB,kBAAAtL,EAAAvnB,KAAA2xB,mBAGAU,EAAAK,SAAA,EAEAC,SAAA,KACAtO,WAAAA,cAAAuO,KAAA,MAAArL,EAAA1f,OAAA,IAGA,KACA,CAGA,IAAA,OAEA,MAGA,IAAA,WACA,GAAA,KAAA0f,EAAAuL,aAAA,IAAA,CACA,MAAApe,EAAAqe,YAAAA,QAAAC,OAAAnI,kBAAA,QAAAC,OAAAvD,EAAAuL,YAAA,CAAAviB,KAAAkZ,KAEA,GAAA,KAAA/U,GAAA,IAAA,CACA,MAAAgU,EAAAhU,EAAAhS,MAAA,KAAAH,UAAA,GAEA0wB,EAAAp0B,SAAAI,cAAA,KACAg0B,EAAAj0B,MAAAk0B,QAAA,OACAD,EAAAE,aAAA,SAAA,UACAzK,GAAAuK,EAAAE,aAAA,WAAAzK,GACAuK,EAAAE,aAAA,OAAAze,GACAue,EAAAG,OACA,CACA,MACA/O,yBAAAuO,KAAA,WAUA,EAGAS,yBAAAC,GACAtzB,KAAA0xB,kBAAA4B,EACAtzB,KAAAiyB,iBACA,EAGAsB,wBAAA1xB,GACA7B,KAAA2xB,kBAAA9vB,CACA,EAGA2xB,yBAAA5N,GACAtlB,OAAAwlB,OAAA9lB,KAAA4xB,qBAAA,CACA7F,KAAAnG,EAAAvc,QAAA,EACA4iB,MAAArG,EAAAoG,WAGAhsB,KAAAiyB,iBACA,EAGA7N,wBAAA7T,EAAA2G,GACA,IAAAuc,EAAA,CAAA,EAEA,MAAA3a,MAAAA,GAAA9Y,KAAAkZ,OACA,MAAAJ,EAAAlC,QACA6c,EAAA,IAAAre,KAAAC,MAAAyD,EAAAlC,SAGA,IAAAY,QAAA4N,YAAA,CACAW,SAAA/lB,KAAA+lB,SACAoJ,SAAA5e,EAAA4e,SACAvY,MAAA6c,EACAzpB,KAAAkN,IAGA,KAAAM,EAAA/M,MACA4Z,WAAAA,cAAAwE,QAAA,GAAAtY,EAAA1I,cAEAwc,WAAAA,cAAAjkB,MAAA,QAAAoX,EAAAsH,UAEA,EAEA4U,uBAAAlE,EAAArI,GACA,GACA,YAAAqI,EAAArJ,UACA,iBAAAqJ,EAAArJ,UACA,sBAAAqJ,EAAArJ,UACA,kBAAAqJ,EAAArJ,UACA,wBAAAqJ,EAAArJ,UACA,kBAAAqJ,EAAArJ,SACA,CACA,MAAAkM,EAAAC,wBAAApN,QAAA,CACArO,MAAA,OACA0b,KAAA,kBACAC,UAAA,KACAxyB,KAAAyyB,kBAAAtL,EAAAqI,EAAAL,UAEAkD,EAAAK,SAAA,EAEAC,SAAA,KACAtO,WAAAA,cAAAuO,KAAA,SAAA,GAGA,MACA5yB,KAAAyyB,kBAAAtL,EAAAqI,EAAAL,SAEA,EAGA/K,wBAAA+C,EAAAgI,GACA,IAAAwE,EAAA,CAAA,EAEA,MAAA7a,MAAAA,GAAA9Y,KAAAkZ,OACA,MAAAJ,EAAAlC,QACA+c,EAAA,IAAAve,KAAAC,MAAAyD,EAAAlC,SAGAtW,OAAAwlB,OAAA6N,EAAAxM,GAEA,MAAA3P,QAAA0N,QAAA,CACAiK,WACAvY,MAAA+c,EACA5N,SAAA/lB,KAAA+lB,WAGA,MAAAvO,EAAA/M,MACA4Z,yBAAAwE,QAAA,QAEAxE,WAAAA,cAAAjkB,MAAA,QAAAoX,EAAAsH,UAEA,EAEAkS,oBACAhxB,KAAA8xB,iBAAA,CACA,EAEA8B,yBACA5zB,KAAAsiB,MAAA,eACA,EAEAuR,sBAAAhI,EAAAsD,GACAnvB,KAAAyyB,kBAAA5G,EAAAsD,GACAnvB,KAAAsiB,MAAA,eACA,EAGA8B,wBACA,IAAA5M,EACA,OAAAxX,KAAAkS,SACAoD,aAAAwe,QAAAniB,cAAA3R,KAAAkS,QAEAsF,QAAAuN,YAAA,CACAgB,SAAA/lB,KAAA+lB,SACA7T,OAAAlS,KAAAkS,OACA0E,MAAA5W,KAAA4lB,aAGA5lB,KAAAoY,OAAAa,SAAA,6BAAAjZ,KAAAkS,QAEA,MAAAsF,EAAA/M,OAAA+M,EAAA3I,MACA,SAAA7O,KAAA+xB,YACA/xB,KAAA4xB,qBAAA,CACA3F,MAAAzU,EAAA3I,KAAAod,MACAF,KAAAvU,EAAA3I,KAAAkd,KACA8F,UAAAra,EAAA3I,KAAAgjB,UACA1F,WAAA3U,EAAA3I,KAAAsd,YAEAnsB,KAAAmqB,UAAA3S,EAAA3I,KAAAA,MAGA,SAAA7O,KAAA+xB,YACA/xB,KAAAytB,SAAAjW,EAAA3I,OAIAia,QAAA4C,KAAAlU,GAIA,GAEAmK,UACA3hB,KAAAiyB,kBAEAnyB,OAAAi0B,iBAAA,mBAAAtN,IACA,MAAAuN,EAAAvN,GAAAwN,OAAA7hB,KAAAF,OACAlS,KAAAkS,SAAA8hB,GAEAh0B,KAAAiyB,iBACA,GAEA,GAvcA,MAAclY,iBAAAC,m2DCoBdka,SAAA,CACArsB,KAAA,gBACAqS,WAAA,CACAwV,UAAAA,qBAEAxX,SAAA,CAEAvD,QACA,OAAA3U,KAAAswB,UAAA3b,KACA,EAEAoR,WACA,OAAA/lB,KAAAkZ,OAAAJ,OAAAiN,QACA,EAEAoO,aACA,OAAAn0B,KAAAswB,UAAAW,MACA,EAEAT,YACA,OAAAxwB,KAAAswB,UAAA1Z,KACA,EAEA6O,aACA,MAAA3M,MAAAA,GAAA9Y,KAAAkZ,OAAAJ,MACA,OAAA,MAAAA,EACA1D,KAAAC,MAAAyD,EAAAlC,OAEA,IAEA,GAEA/H,KAAA,KACA,CACAsC,cACAmf,SAAA,CAAA,EACA8D,WAAA,EACAC,eAAA,MAGA9b,QAAA,CACA6L,kBAAA2B,EAAAnP,GAOA,GANAA,EAAAmP,SAAAA,EAEA,MAAA/lB,KAAAylB,YACAnlB,OAAAwlB,OAAAlP,EAAA5W,KAAAylB,YAGA,KAAAM,GAAA,IAAA,CACA/lB,KAAAo0B,WAAA,EACA,MAAA5c,QAAAsN,WAAAlO,GACA,MAAAY,EAAA/M,OAAA+M,EAAA3I,MACA7O,KAAAswB,SAAA9Y,EAAA3I,KACA7O,KAAAsiB,MAAA,eAAAtiB,KAAA2U,OACA3U,KAAAs0B,uBACAt0B,KAAAo0B,WAAA,IAEAp0B,KAAAo0B,WAAA,EACA/P,WAAAA,cAAAjkB,MAAA,GAAAJ,KAAA+lB,qBAEA,CACA,EACAuO,uBACA,MAAAnb,SAAAA,EAAAL,MAAAA,GAAA9Y,KAAAkZ,OACA1F,EAAA+gB,mBAAApb,GAEAnZ,KAAAoY,OAAAa,SAAA,4BAAA,CACAtE,MAAA3U,KAAA2U,MACAnB,OACAsF,SAEA,GAEAqH,MAAA,CAEA4F,WACA/lB,KAAAkxB,YAAAlxB,KAAA+lB,SAAA,CAAA,EACA,EAEA,oBAAA,CACA3F,UACA,MAAAtH,MAAAA,GAAA9Y,KAAAkZ,OAEA,MAAAJ,EAAA0b,OACAx0B,KAAAylB,WAAArQ,KAAAC,MAAAyD,EAAAlC,OAEA,EACAyJ,MAAA,EACAqF,WAAA,IAGA/D,UAEA3hB,KAAAkxB,YAAAlxB,KAAA+lB,SAAA,CAAA,EACA,GAlHA,MAAchM,iBAAAC,+yBCSd,IAAAya,SAAA,CACA5sB,KAAA,QACAqS,WAAA,SACAwa,oBACAC,cAAAA,qBAGA9lB,KAAA,KACA,CACAsC,cACAwD,MAAA,KAGAiC,MAAA,CACAzB,OAAA7U,QAGAiY,QAAA,CACAqc,kBAAAjgB,GACA3U,KAAA2U,MAAAA,CACA,IA7BA,MAAcoF,iBAAAC,qnBCYR6a,gBAAiC,CAAC5f,mBA4BlCxK,QAAQ,KAAO,CAEjBqW,mBAAmB,EACnBZ,oBAAoB,EACpB/H,YAAa/C,KAAKC,MAAMyf,eAAevf,QAAQ/D,kBAA8BqjB,gBAG7E5U,YAAa7K,KAAKC,MAAMC,aAAaC,QAAQlE,sBAAkC,IACxEmB,cAIP2C,OAAQC,KAAKC,MAAMC,aAAaC,QAAQnE,gBAA4B,CAChEyS,SAAU,CAAC,EACXkR,gBAAiB,GACjB9gB,SAAU,GACVwP,UAAW,CACPC,MAAO,GACPC,iBAAkB,IAEtBiF,UAAW,MAIbvO,UAAU,CACZpG,SAAWxJ,GAAwBA,EAAM0K,OAAOlB,SAChDyN,YAAcjX,GAAwBA,EAAM0K,OAAOuM,YACnDtH,aAAe3P,GAAwBA,EAAM0K,OAAO0O,SAASmR,SAC7DtR,MAAQjZ,GAAwBA,EAAM0K,OAAOsO,UAAUC,MACvDC,iBAAmBlZ,GAAwBA,EAAM0K,OAAOsO,UAAUE,iBAClEiF,UAAYne,GAAwBA,EAAM0K,OAAOyT,UAEjDlW,YAAcjI,IACNA,GAAkC,SAAlCA,EAAMwV,YAAYvN,YAAwB,CAE1C,OADc5S,OAAOm1B,WAAW,+BACtBhI,QACC,OAEJ,OACX,CACA,OAAOxiB,EAAMwV,YAAYvN,WAAA,GAI3BwiB,YAAY,CACdC,sBAAsB1qB,GAClBA,EAAMqW,mBAAqBrW,EAAMqW,iBACrC,EACAtG,mBAAmB/P,GACfA,EAAMyV,oBAAsBzV,EAAMyV,kBACtC,EAEAkV,eAAe3qB,EAAqB0N,GAChC2c,eAAehB,QAAQtiB,eAAgB4D,KAAK+c,UAAUha,IACtD1N,EAAM0N,YAAcA,CACxB,EAGAkd,iBAAiB5qB,EAAqB0K,GAClCG,aAAawe,QAAQ1iB,aAAcgE,KAAK+c,UAAUhd,IAClD7U,OAAO0J,KAAKmL,GAAQX,SAAS8gB,IACzB7qB,EAAM0K,OAAOmgB,GAAangB,EAAOmgB,EAAA,GAEzC,EAEAC,sBAAsB9qB,EAAqB0K,GACvCG,aAAawe,QAAQziB,mBAAoB+D,KAAK+c,UAAUhd,IACxD7U,OAAO0J,KAAKmL,GAAQX,SAAS8gB,IACzB7qB,EAAMwV,YAAYqV,GAAangB,EAAOmgB,EAAA,GAE9C,GAGEE,UAAU,CACZC,mBAAkBlb,OAAEA,GAAUpF,GACpB,MAAAlB,SAAEA,GAAakB,EAEjB,IAAAugB,EAAWrhB,mBAAmBJ,GAGlCkB,EAAOuM,YAAc1N,eAAe,IAAI0hB,IACjCvgB,EAAAlB,SAAW,IAAIyhB,GAEtBnb,EAAO,mBAAoBpF,EAC/B,EAEAwgB,aACIrgB,aAAasgB,WAAWxkB,cACxB0jB,eAAec,WAAWtkB,YAC1BwjB,eAAec,WAAWrkB,YAC1BujB,eAAec,WAAWpkB,gBAC1BsjB,eAAec,WAAWnkB,YAC1BqjB,eAAec,WAAWlkB,oBAE1B2S,yBAAcwE,QAAQ,SAC1B,EAEAgN,gBAAetb,OAAEA,EAAAtB,SAAQA,EAAUxO,MAAAA,IAC3B,IAAAwV,YAAEA,GAAgBxV,EACtBwO,EAAS,aAAcgH,GACvBhH,EAAS,mBAAoBgH,GAC7B1F,EAAO,wBAAyB0F,EACpC,EAEA6V,aAAYvb,OAAEA,EAAQtB,SAAAA,GAAYgH,GAC9BhH,EAAS,aAAcgH,GACvBhH,EAAS,mBAAoBgH,GAC7B1F,EAAO,wBAAyB0F,EACpC,EACA8V,WAAWhiB,EAA4BkM,GACnC,IAAIpJ,EAAQoJ,EAAYvN,YACpB,GAA4B,SAA5BuN,EAAYvN,YAAwB,CAGxBmE,EAFE/W,OAAOm1B,WAAW,+BACtBhI,QACE,OAEA,OAEhB,CACA,MAAM+I,EAAuB,SAAVnf,EAEnBhY,SAASo3B,gBAAgB9C,aAAa,aAAc6C,EAAa,OAAS,GAC9E,EACAE,iBAAiBniB,EAA4BkM,GACnC,MAAAxN,WAAEA,GAAewN,EAEdphB,SAAAo3B,gBAAgB9C,aAAa,cAAe1gB,EACzD,EAEA0jB,aAAY5b,OAAEA,IACVA,EAAO,iBAAkB,CAACtF,mBAC9B,EAEAmhB,mBAAkB7b,OAAEA,EAAQ9P,MAAAA,GAAS4rB,GAC5B5rB,EAAM0N,YAAYjE,MAAM3D,GAASA,EAAKiD,OAAS6iB,EAAQ7iB,QACjD+G,EAAA,iBAAkB9P,EAAM0N,YAAYpK,OAAO,IAAKsoB,IAE/D,EAEAC,4BAA2B/b,OAAEA,EAAQ9P,MAAAA,GAAS4rB,GACpC,MAAA7gB,QAAEA,GAAY6gB,EACpB9b,EAAO,iBAAkB9P,EAAM0N,YAAY5V,MAAM,EAAGiT,GAASzH,OAAOtD,EAAM0N,YAAY5V,MAAMiT,EAAU,IAC1G,EACA+gB,2BAA0Bhc,OAAEA,EAAQ9P,MAAAA,GAAS4rB,GACnC,MAAA7gB,QAAEA,GAAY6gB,EACpB9b,EAAO,iBAAkB9P,EAAM0N,YAAY5V,MAAM,EAAGiT,EAAU,GAClE,EACAghB,0BAAyBjc,OAAEA,EAAQ9P,MAAAA,GAAS4rB,GAClC,MAAA7gB,QAAEA,GAAY6gB,EACb9b,EAAA,iBAAkBsa,gBAAgB9mB,OAAOtD,EAAM0N,YAAY5V,MAAMiT,IAC5E,EACAihB,0BAAyBlc,OAAEA,EAAQ9P,MAAAA,GAAS4rB,GAClC,MAAA7gB,QAAEA,GAAY6gB,EACdK,EAAWjsB,EAAM0N,YAAY3C,GACnC+E,EAAO,iBAA8B,IAAZ/E,EAAgBqf,gBAAkBA,gBAAgB9mB,OAAO2oB,GACtF,EAEAC,kBAAiBpc,OAAEA,EAAQ9P,MAAAA,IAChB8P,EAAA,iBAAkB,GAC7B,GAGJ,IAAelC,QAAA,CACXue,YAAY,QACZnsB,gBACA4P,oBACA6a,YACAM,QAAAA,WCpMJ,MAAM/qB,QAAQ,KAAoB,CAC9BosB,OAAQ,KACRC,cAAc,EACdC,eAAe,EACfC,eAAe,EACfC,aAAa,EACbC,eAAgB,OAGd7c,UAAU,CAAA,EAEV6a,YAAY,CAAA,EAEZM,UAAU,CACZ2B,YAAa1sB,MAAAA,EAAAA,UAAO2sB,IAChB3sB,EAAMqsB,cAAe,EACrBrsB,EAAMssB,eAAgB,EACtBtsB,EAAMosB,OAAS,IAAIQ,UAAUzlB,YAE7BnH,EAAMosB,OAAOS,OAAS,SAAU7Q,GAExB,IAAAoF,EAAQ7Z,cAAc,SAC1BvH,EAAMysB,eAAiBK,aAAY,WAC/B9sB,EAAMosB,OAAOW,KAAKpiB,KAAK+c,UAAUtG,MAClCvZ,sBAGP7H,EAAMosB,OAAOY,QAAU,SAAUhR,GAGzBhc,GAFJ4Z,yBAAcjkB,MAAM,kBAEhBqK,EAAMwsB,aAAexsB,EAAMqsB,aAAc,CACzCY,cAAcjtB,EAAMysB,gBACpBzsB,EAAMysB,eAAiB,KACvBzsB,EAAMusB,eAAgB,EACtBvsB,EAAMosB,OAAS,KACX,IAAA7T,EAAU2U,YAAW,KAErBltB,EAAM0sB,aACNS,aAAa5U,EAAO,GACrB,IACP,GAEJvY,EAAMosB,OAAOgB,QAAU,SAAUpR,GAE7BpC,yBAAcjkB,MAAM,mBAExBqK,EAAMosB,OAAOiB,UAAY,SAAUrR,GAC/B,IAAI5X,EAAOuG,KAAKC,MAAMoR,EAAM5X,MACrB/O,OAAAi4B,cACH,IAAIC,YAAY,kBAAmB,CAC/B/D,OAAQ,IACDplB,MAIXpE,EAAMssB,gBACNtsB,EAAMssB,eAAgB,IAG9BtsB,EAAMwsB,cAAgBG,EAAUa,KAChCxtB,EAAMqsB,cAAe,CACzB,EACAoB,qBAAsBztB,MAAAA,GAASyH,GACvB,IAAA2Z,EAAQ7Z,cAAc,WAAYE,GACtCzH,EAAMosB,OAAOW,KAAKpiB,KAAK+c,UAAUtG,IACjCphB,EAAMusB,eAAgB,CAC1B,EACAmB,uBAAwB1tB,MAAAA,GAASyH,GACzB,IAAA2Z,EAAQ7Z,cAAc,aAAcE,GACxCzH,EAAMosB,OAAOW,KAAKpiB,KAAK+c,UAAUtG,IACjCphB,EAAMusB,eAAgB,CAC1B,GAGJ,IAAeH,OAAA,CACXD,YAAY,QACZnsB,gBACA4P,oBACA6a,YACAM,QAAAA,WC5FJ,MAAM/qB,MAAQ,CAAA,EAER4P,QAAU,CAAA,EAEV6a,UAAY,CAAA,EAEZM,QAAU,CAAA,EAEhB,IAAe7E,KAAA,CACXiG,YAAY,EACZnsB,YACA4P,gBACA6a,oBACAM,iBCTW4C,OAAA,CAAE/f,gBAASwe,cAAQlG,WCiElC3W,OAAA,CACAnS,KAAA,cACAqS,WAAA,SACAwa,oBACAtD,QAAAA,qBAGAviB,KAAA,KACA,CACAsC,cACAwD,MAAA,OACA0jB,mBAAA,GACA5N,QAAA,CACA,CAEAzU,OAAA,OACArB,MAAA,KACA2B,KAAA,OACAE,MAAA,IAEA,CACA7B,MAAA,KACAqB,OAAA,OACAM,KAAA,OACAE,MAAA,GACA8hB,UAAA,QAEA,CACA3jB,MAAA,OACAqB,OAAA,QACAM,KAAA,QACAE,MAAA,OAEA,CACA7B,MAAA,KACAqB,OAAA,aACAM,KAAA,iBAKA4B,SAAA,CACAjE,WACA,OAAAI,mBAAArU,KAAAoY,OAAAiC,QAAA,aACA,EAGAke,sBAAA,IACA,QAMAhgB,QAAA,CACA+b,uBACA,MAAAnb,SAAAA,EAAAL,MAAAA,GAAA9Y,KAAAkZ,OACA1F,EAAA+gB,mBAAApb,GAEAnZ,KAAAoY,OAAAa,SAAA,4BAAA,CACAtE,MAAA3U,KAAA2U,MACAnB,OACAsF,SAEA,EAEA0f,mBAAAlU,GACA,OAAAA,EAAAmU,MACApU,yBAAAjkB,MAAA,kBAEA,EAEAs4B,SAAApkB,GACAwU,QAAAC,IAAA,SAAAzU,EACA,EACAqkB,YACA34B,KAAAgtB,MAAA4L,UAAAC,UAAA74B,KAAAiU,UACAoQ,yBAAAwE,QAAA,YACA,EACAiQ,iBACAzU,yBAAAwE,QAAA,aAEAC,QAAAC,IAAA,UAAA/oB,KAAAgtB,MAAA4L,UAAAG,cACA,GAEApX,UACA3hB,KAAAs0B,sBACA,GA1JA,MAAcva,eAAAC,okGCMd,SAASgf,QAAQC,EAAKC,GAEdD,EAAAE,UAAU,QAASC,qBAGvB94B,OAAO0J,KAAKouB,QAAQ5jB,SAASnO,IACzB6yB,EAAW3yB,MAAM8yB,eAAehzB,EAAK+xB,OAAO/xB,GAAI,GAExD,CAGsB,oBAAXvG,QAA0BA,OAAOm5B,KACxCD,QAAQl5B,OAAOm5B,KAKnB,IAAensB,MAAA,CACXksB"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/document-all.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/is-array.js","../node_modules/core-js/internals/array-set-length.js","../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../node_modules/core-js/modules/es.array.push.js","../packages/config/nprogress.ts","../packages/config/constant.ts","../packages/config/socket.ts","../packages/config/api.ts","../packages/config/setting.ts","../packages/config/color.ts","../packages/utils/common.ts","../packages/utils/menu.ts","../packages/utils/url.ts","../packages/utils/table.ts","../packages/utils/form.ts","../packages/utils/color.ts","../packages/utils/validate.ts","../packages/components/GLayout/components/GLayoutHeaderTab.vue","../packages/components/GLayout/components/GLayoutHeader.vue","../packages/components/GLayout/components/GLayoutContent.vue","../packages/components/common/color/index.vue","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/inherit-if-required.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/to-string.js","../node_modules/core-js/internals/normalize-string-argument.js","../node_modules/core-js/internals/dom-exception-constants.js","../node_modules/core-js/internals/error-stack-clear.js","../node_modules/core-js/modules/web.dom-exception.stack.js","../packages/components/GLayout/components/GLayoutSetting.vue","../packages/components/GLayout/components/GLayoutSideMenuContent.vue","../packages/components/GLayout/components/GLayoutSideMenu.vue","../packages/components/GLayout/index.vue","../packages/components/common/GCommonHeader/index.vue","../packages/components/GForm/components/GFormInput.vue","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../packages/api/config.ts","../packages/api/index.ts","../packages/api/modules/view.ts","../packages/components/GForm/components/GFormSelect.vue","../packages/components/GForm/components/GFormSelectDateTime.vue","../packages/components/GHeader/components/GHeaderUpload.vue","../packages/components/GHeader/index.vue","../packages/components/GForm/components/GFormLabel.vue","../packages/components/GForm/components/GFormCheckBox.vue","../packages/components/GForm/components/GFormSwitch.vue","../packages/components/GForm/components/GFormRadio.vue","../packages/components/GForm/components/GFormTreeCheckBox.vue","../packages/components/GForm/components/GFormCascader.vue","../packages/components/GForm/components/GFormUpload.vue","../packages/components/GTable/components/GTableForm.vue","../packages/components/GTable/index.vue","../packages/components/common/GCommonForm/index.vue","../packages/components/GForm/components/GFormEditor.vue","../packages/components/GForm/components/GFormBlock.vue","../packages/components/GForm/index.vue","../packages/components/GTab/index.vue","../packages/components/common/GCommonDialog/index.vue","../packages/components/GDialog/index.vue","../packages/components/GTemplate/index.vue","../packages/components/GTemplateView/index.vue","../packages/components/GView/index.vue","../packages/store/setting.ts","../packages/store/socket.ts","../packages/store/view.ts","../packages/store/props.ts","../packages/store/index.ts","../packages/views/GMenuManage/index.vue","../packages/index.ts"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.26.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_TO_LENGTH || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","import NProgress from \"nprogress\";\n\nNProgress.configure({\n easing: \"ease\", // 动画方式\n speed: 600, // 递增进度条的速度\n showSpinner: true, // 是否显示加载spinner\n trickle: false,\n trickleSpeed: 300, // 自动递增间隔\n minimum: 0.1, // 初始化时的最小百分比\n});\n\nexport { NProgress };\n","// 全局样式前缀\nexport const PREFIX = \"gview\";\n\n// 存储键名规范\nexport const LOCAL_CONFIG = \"config\";\nexport const LOCAL_THEME_CONFIG = \"themeConfig\";\nexport const LOCAL_USER = \"user\";\nexport const LOCAL_MENU = \"menu\";\nexport const LOCAL_TAB_MENU = \"tabMenu\";\nexport const TOKEN_NAME = \"token\";\nexport const TOKEN_EXPIRED_TIME = \"tokenExpriredTime\";\n\nexport const LOCAL_DATA_ID = \"dataId\";\n","// WebSocket 相关接口配置\nconst DEVELOP_WS_SERVICE = \"http://192.168.2.192:8088/gview/websocket\".replace(\"http\", \"ws\");\nexport const WS_SERVICE =\n process.env.NODE_ENV !== \"development\"\n ? window.location.origin.replace(window.location.protocol, \"ws:\") + \"/gview/websocket\"\n : DEVELOP_WS_SERVICE;\n\n// WebSocket 消息模板\nexport const INIT_WS_MODEL = (subcmd: string, dataId: string = \"\") => {\n if (!dataId) {\n return {\n head: \"gonsin\",\n cmd: {\n cmd: \"gview_client\",\n subcmd,\n response: 0,\n },\n };\n } else {\n return {\n head: \"gonsin\",\n cmd: {\n cmd: \"gview_client\",\n subcmd,\n },\n args: {\n dataId,\n },\n };\n }\n};\n\n// 心跳间隔时长\n// -- 前端自websocket连接成功之后,应该每30秒发送一次心跳,如果到40秒还没发送心跳,websocket将自动断开\nexport const WS_INTERVAL_TIMEOUT = 30000;\n// 重连超时时长\nexport const WS_RESET_TIMEOUT = 3000;\n","// 相关接口配置\n// 上传接口\nexport const UPLOAD_API = \"http://192.168.2.192:8088/restapi/s09/gview/active/upload_file\";\n","export const THEME_CONFIG = {\n brandTheme: \"default\", // 主题色\n displayMode: \"light\", // 主题模式 light | dark | auto\n};\n","// /* eslint-disable indent */\nexport type ColorToken = Record<string, string>;\nexport type ColorSeries = Record<string, ColorToken>;\n\nexport const defaultLightColor = [\n \"#0052d9\",\n \"#0594fa\",\n \"#00a870\",\n \"#ebb105\",\n \"#ed7b2f\",\n \"#e34d59\",\n \"#ed49b4\",\n \"#834ec2\",\n];\nexport const defaultDarkColor = [\n \"#4582e6\",\n \"#29a4fb\",\n \"#03a56f\",\n \"#ca8d03\",\n \"#ed7b2f\",\n \"#ea7b84\",\n \"#f172c5\",\n \"#ab87d5\",\n];\n\nexport const COLOR_TOKEN: ColorSeries = {\n DEFAULT: {\n \"--td-brand-color\": \"#0052d9\",\n \"--td-brand-color-1\": \"#f2f3ff\",\n \"--td-brand-color-2\": \"#d9e1ff\",\n \"--td-brand-color-3\": \"#b5c7ff\",\n \"--td-brand-color-4\": \"#8eabff\",\n \"--td-brand-color-5\": \"#618dff\",\n \"--td-brand-color-6\": \"#366ef4\",\n \"--td-brand-color-7\": \"#0052d9\",\n \"--td-brand-color-8\": \"#003cab\",\n \"--td-brand-color-9\": \"#002a7c\",\n \"--td-brand-color-10\": \"#001a57\",\n },\n\n CYAN: {\n \"--td-brand-color\": \"#0594FA\",\n \"--td-brand-color-1\": \"#d7eefe\",\n \"--td-brand-color-2\": \"#aeddfd\",\n \"--td-brand-color-3\": \"#84cafd\",\n \"--td-brand-color-4\": \"#58b8fc\",\n \"--td-brand-color-5\": \"#29a4fb\",\n \"--td-brand-color-6\": \"#0594FA\",\n \"--td-brand-color-7\": \"#29a4fb\",\n \"--td-brand-color-8\": \"#0594FA\",\n \"--td-brand-color-9\": \"#0378df\",\n \"--td-brand-color-10\": \"#01409b\",\n },\n GREEN: {\n \"--td-brand-color\": \"#00A870\",\n \"--td-brand-color-1\": \"#8dffd9\",\n \"--td-brand-color-2\": \"#00f2a2\",\n \"--td-brand-color-3\": \"#00dc92\",\n \"--td-brand-color-4\": \"#00c583\",\n \"--td-brand-color-5\": \"#00A870\",\n \"--td-brand-color-6\": \"#009a5d\",\n \"--td-brand-color-7\": \"#00c583\",\n \"--td-brand-color-8\": \"#00A870\",\n \"--td-brand-color-9\": \"#009a5d\",\n \"--td-brand-color-10\": \"#004a14\",\n },\n ORANGE: {\n \"--td-brand-color\": \"#ED7B2F\",\n \"--td-brand-color-1\": \"#fce5d7\",\n \"--td-brand-color-2\": \"#f8cdaf\",\n \"--td-brand-color-3\": \"#f4b285\",\n \"--td-brand-color-4\": \"#f19659\",\n \"--td-brand-color-5\": \"#ED7B2F\",\n \"--td-brand-color-6\": \"#e75510\",\n \"--td-brand-color-7\": \"#f19659\",\n \"--td-brand-color-8\": \"#ED7B2F\",\n \"--td-brand-color-9\": \"#e75510\",\n \"--td-brand-color-10\": \"#7f0a02\",\n },\n RED: {\n \"--td-brand-color\": \"#E34D59\",\n \"--td-brand-color-1\": \"#fbe5e7\",\n \"--td-brand-color-2\": \"#f7ccd0\",\n \"--td-brand-color-3\": \"#f3b2b8\",\n \"--td-brand-color-4\": \"#ef989f\",\n \"--td-brand-color-5\": \"#ea7b84\",\n \"--td-brand-color-6\": \"#E34D59\",\n \"--td-brand-color-7\": \"#ea7b84\",\n \"--td-brand-color-8\": \"#E34D59\",\n \"--td-brand-color-9\": \"#e42c3a\",\n \"--td-brand-color-10\": \"#8d0309\",\n },\n PINK: {\n \"--td-brand-color\": \"#ED49B4\",\n \"--td-brand-color-1\": \"#fce5f4\",\n \"--td-brand-color-2\": \"#facae9\",\n \"--td-brand-color-3\": \"#f7aede\",\n \"--td-brand-color-4\": \"#f491d2\",\n \"--td-brand-color-5\": \"#f172c5\",\n \"--td-brand-color-6\": \"#ED49B4\",\n \"--td-brand-color-7\": \"#f172c5\",\n \"--td-brand-color-8\": \"#ED49B4\",\n \"--td-brand-color-9\": \"#e80f9d\",\n \"--td-brand-color-10\": \"#8f025e\",\n },\n PURPLE: {\n \"--td-brand-color\": \"#834EC2\",\n \"--td-brand-color-1\": \"#eee6f7\",\n \"--td-brand-color-2\": \"#ddceee\",\n \"--td-brand-color-3\": \"#ccb6e6\",\n \"--td-brand-color-4\": \"#bb9edc\",\n \"--td-brand-color-5\": \"#ab87d5\",\n \"--td-brand-color-6\": \"#9a6fce\",\n \"--td-brand-color-7\": \"#9a6fce\",\n \"--td-brand-color-8\": \"#834EC2\",\n \"--td-brand-color-9\": \"#783ac3\",\n \"--td-brand-color-10\": \"#4c1397\",\n },\n YELLOW: {\n \"--td-brand-color\": \"#EBB105\",\n \"--td-brand-color-1\": \"#fde9ab\",\n \"--td-brand-color-2\": \"#fbd152\",\n \"--td-brand-color-3\": \"#EBB105\",\n \"--td-brand-color-4\": \"#dda204\",\n \"--td-brand-color-5\": \"#ca8d03\",\n \"--td-brand-color-6\": \"#b67803\",\n \"--td-brand-color-7\": \"#fbd152\",\n \"--td-brand-color-8\": \"#EBB105\",\n \"--td-brand-color-9\": \"#dda204\",\n \"--td-brand-color-10\": \"#603100\",\n },\n};\n","function createContextFunctionTemplate(eval_string, context) {\n return `\nreturn function (context) {\n \"use strict\";\n ${Object.keys(context).length > 0 ? `let ${Object.keys(context).map((key) => ` ${key} = context['${key}']`)};` : ``}\n return ${eval_string};\n} \n`;\n}\n\nfunction createContextEvaluator(eval_string, context) {\n let template = createContextFunctionTemplate(eval_string, context);\n let functor = Function(template);\n return functor();\n}\n\nexport function evalContext(text, context = {}) {\n let evaluator = createContextEvaluator(text, context);\n return evaluator(context);\n}\n\n/**\n * @description: 处理showIf可能出现的值\n * @param {any} value\n * @return {any}\n */\nexport function vFun(value: any): any {\n if (value === undefined) {\n return \"\";\n }\n if (value === null) {\n return \"\";\n }\n if (value === \"\") {\n return \"\";\n }\n if (value === 0) {\n return 0;\n }\n if (value === \"0\") {\n return \"0\";\n }\n return value;\n}\n\n// 处理 path, path有三种形式:'a[0].b.c'、'a.0.b.c' 和 ['a','0','b','c'],需要统一处理成数组,便于后续使用\nfunction _basePath(path) {\n // 若是数组,则直接返回\n if (Array.isArray(path)) return path;\n // 若有 '[',']',则替换成将 '[' 替换成 '.',去掉 ']'\n return path.replace(/\\[/g, \".\").replace(/\\]/g, \"\").split(\".\");\n}\n\n/**\n * @description: 获取对象属性方法\n * @param {*} target\n * @param {*} propertyStr\n * @return {*}\n */\nexport function getProperty(object, path, defaultValue = \"\") {\n // 判断 object 是否是数组或者对象,否则直接返回默认值 defaultValue\n if (typeof object !== \"object\") return defaultValue;\n\n // 沿着路径寻找到对应的值,未找到则返回默认值 defaultValue\n let result = _basePath(path).reduce((o, k) => (o || {})[k], object);\n\n if ((result ?? \"\") != \"\" || result == 0) {\n return result;\n } else {\n return defaultValue;\n }\n}\n\nexport function setProperty(object, path, value) {\n // 判断 object 是否是数组或者对象,否则直接返回 object\n if (typeof object !== \"object\") return object;\n\n _basePath(path).reduce((o, k, i, _) => {\n if (i === _.length - 1) {\n // 若遍历结束直接赋值\n o[k] = value;\n return null;\n } else if (k in o) {\n // 若存在对应路径,则返回找到的对象,进行下一次遍历\n return o[k];\n } else {\n // 若不存在对应路径,则创建对应对象,若下一路径是数字,新对象赋值为空数组,否则赋值为空对象\n o[k] = /^[0-9]{1,}$/.test(_[i + 1]) ? [] : {};\n return o[k];\n }\n }, object);\n\n Object.assign(object, object);\n\n // 返回object\n return object;\n}\n\nexport function deepClone(sourceObj, targetObj) {\n let cloneObj = targetObj || {};\n if (!sourceObj || typeof sourceObj !== \"object\" || sourceObj.length === undefined) {\n return sourceObj;\n }\n if (sourceObj instanceof Array) {\n cloneObj = sourceObj.concat();\n } else {\n for (let i in sourceObj) {\n if (typeof sourceObj[i] === \"object\") {\n cloneObj[i] = deepClone(sourceObj[i], {});\n } else {\n cloneObj[i] = sourceObj[i];\n }\n }\n }\n return cloneObj;\n}\n","import { TabMenuItem } from \"../types\";\nimport { LOCAL_CONFIG } from \"../config\";\n/**\n * @description: 获取登录后根据菜单信息生成的初始化链接\n * @param {*} initMenu\n * @param {*} permissions\n * @return {*}\n */\nexport function getInitMenuUrl(userMenu) {\n if ((userMenu ?? \"\") !== \"\") {\n return userMenu.find((element) => (element ?? \"\") != \"\").children.find((element) => (element ?? \"\") != \"\").path;\n }\n}\n\n/**\n * @description: 初始化菜单树\n * @param {*} permissions\n * @return {*}\n */\nexport function handleInitMenuTree(menu: any) {\n let tempList: any = [];\n\n menu.forEach((item: any) => {\n if ((item ?? \"\") !== \"\") {\n if (item?.parent == null) {\n tempList.push({\n path: item.url,\n name: item.name,\n title: item.title,\n icon: item.icon,\n children: [],\n });\n } else {\n tempList.forEach((parentItem) => {\n if (item?.parent == parentItem?.name) {\n parentItem.children.push({\n path: item.url,\n name: item.name,\n title: item.title,\n icon: item.icon,\n });\n }\n });\n }\n }\n });\n return tempList;\n}\n\n/**\n * @description: 过滤菜单权限\n * @return {*}\n */\nexport function menuPermissionFilter(userMenu: [], permissions: string[]) {\n return userMenu.filter((menu: any) => permissions.includes(menu?.name));\n}\n\n/**\n * @description: 获取首页菜单信息\n * @return {*}\n */\nexport function getHomeMenuInfo(): TabMenuItem {\n let config = JSON.parse(localStorage.getItem(LOCAL_CONFIG) as string);\n\n let initHomeMenuItem;\n if ((config?.userMenu ?? \"\") !== \"\") {\n initHomeMenuItem = config.userMenu\n .find((element) => (element ?? \"\") != \"\")\n .children.find((element) => (element ?? \"\") != \"\");\n } else {\n initHomeMenuItem = {\n path: \"\",\n name: \"\",\n };\n }\n\n const homeMeInfo = {\n itemIdx: 0,\n path: initHomeMenuItem.path,\n name: initHomeMenuItem.name,\n title: \"首页\",\n isHome: true,\n };\n\n return homeMeInfo;\n}\n","/**\n * @description: 获取路径中的参数,例子路径 view?viewName=GropBean&MeetingName=TestMeeting\n * @param {*} url\n * @return {*}\n */\nexport function getUrlQuery(url) {\n let queryObj = {};\n\n if (url.indexOf(\"?\") !== -1) {\n let queryStr = url.split(\"?\")[1].split(\"&\");\n\n queryStr.forEach((queryItem) => {\n queryObj[queryItem.split(\"=\")[0]] = queryItem.split(\"=\")[1];\n });\n }\n\n return queryObj;\n}\n","import { TableColumns } from \"../types\";\nimport { PrimaryTableCol } from \"tdesign-vue\";\n\nexport function initTableColumns(tableColumns: TableColumns[]): Array<PrimaryTableCol> {\n let tableColumnsResult: Array<PrimaryTableCol> = [];\n\n // 多选框单元列配置\n tableColumnsResult.push({\n colKey: \"row-select\",\n type: \"multiple\",\n });\n\n tableColumns.forEach((column, idx, arr) => {\n let tempColumnResult: any = {\n colKey: column.keyName !== \"\" ? column.keyName : column.name,\n title: column.name,\n cell: column.columnType,\n width: convertTableColumnWeight(column.weight ?? 1, arr.length),\n // attrs: { style: { whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" } },\n ellipsis: { props: { theme: \"light\", showArrow: false, placement: \"bottom\" } },\n ...column,\n };\n\n if (column.name == \"操作\" || column.columnType == \"FORM_ITEM\") {\n tempColumnResult.ellipsis = undefined;\n tempColumnResult.width = convertTableColumnWeight(2, arr.length);\n // console.log(tempColumnResult);\n }\n\n tableColumnsResult.push(tempColumnResult);\n });\n\n return tableColumnsResult;\n}\n\n/**\n * @description: 表格列宽度权重转换\n * @return {*}\n */\nfunction convertTableColumnWeight(weight: number, columnAmount: number) {\n return (weight / columnAmount) * 100 + \"%\";\n}\n","/**\n * @description: 初始化处理树形选择列表数据\n * @param {*} config\n * @return {*}\n */\nexport function initTreeSelectorData(config) {\n const { list, keyName, valueName, titleName, parentKey, parentKeyName } = config;\n\n const selector = (parentKey, arr) => {\n const res: any = [];\n\n arr.forEach((item) => {\n if (item[parentKeyName] == parentKey) {\n const children = selector(item[keyName], list);\n\n const parentObj = {\n key: item[keyName],\n label: item[titleName],\n value: item[valueName],\n children: [],\n };\n\n if (children.length) {\n parentObj.children = children;\n }\n\n res.push(parentObj);\n }\n });\n\n return res;\n };\n\n return selector(parentKey, list);\n}\n","import { ColorSeries, ColorToken } from \"../config/color\";\nfunction toUnderline(name: string): string {\n return name.replace(/([A-Z])/g, \"_$1\").toUpperCase();\n}\n\nexport function getBrandColor(type: string, colorList: ColorSeries): ColorToken {\n const name = /^#[A-F\\d]{6}$/i.test(type) ? type : toUnderline(type);\n return colorList[name || \"DEFAULT\"];\n}\n","/**\n * @description: 判断表单内容是否为空\n * @param {*} value\n * @return {*}\n */\nexport function isVoid(value) {\n if (value === null) {\n return false;\n }\n\n value = (\"\" + value).trim();\n return value != \"\";\n}\n","<template>\n <t-tabs\n :class=\"`${PREFIX}-tabs`\"\n size=\"large\"\n :value=\"decodeURIComponent($route.fullPath)\"\n @change=\"handleChangeCurrentTab\"\n @remove=\"handleRemoveCurrentTab\"\n >\n <t-tab-panel v-for=\"(item, index) in tabMenuList\" :key=\"item.path\" :value=\"item.path\" :removable=\"!item.isHome\">\n <template #label>\n <t-dropdown\n trigger=\"context-menu\"\n :popup-props=\"{\n onVisibleChange: (visible, ctx) => handleTabMenuClick(visible, ctx, item.path),\n visible: activeItemPath != '' ? activeItemPath === item.path : false,\n }\"\n >{{ item.title }}\n <template #dropdown>\n <t-dropdown-menu>\n <t-dropdown-item v-if=\"item.isHome\" @click=\"() => handleChangeCurrentTab(item.path)\">\n <t-icon name=\"home\"></t-icon>前往首页\n </t-dropdown-item>\n <t-dropdown-item v-if=\"!item.isHome\" @click=\"() => handleTabRefresh(item, index)\">\n <t-icon name=\"refresh\"></t-icon>刷新\n </t-dropdown-item>\n <t-dropdown-item v-if=\"index > 1\" @click=\"() => handleTabCloseAhead(item.path, index)\">\n <t-icon name=\"arrow-left\"></t-icon>关闭左侧\n </t-dropdown-item>\n <t-dropdown-item\n v-if=\"index > 0 && index < tabMenuList.length - 1\"\n @click=\"() => handleTabCloseBehind(item.path, index)\"\n >\n <t-icon name=\"arrow-right \"></t-icon>关闭右侧\n </t-dropdown-item>\n <t-dropdown-item\n v-if=\"index > 0 && tabMenuList.length > 2\"\n @click=\"() => handleTabCloseOther(item.path, index)\"\n >\n <t-icon name=\"close-circle\"></t-icon>关闭其他\n </t-dropdown-item>\n </t-dropdown-menu>\n </template>\n </t-dropdown>\n </template>\n </t-tab-panel>\n </t-tabs>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\nimport { getUrlQuery } from \"../../../utils\";\n\nexport default {\n computed: {\n tabMenuList() {\n return this.$store.state.setting.tabMenuList;\n },\n },\n data() {\n return {\n PREFIX,\n activeItemPath: \"\",\n };\n },\n methods: {\n handleTabMenuClick(visible, ctx, path) {\n if (ctx.trigger === \"document\") this.activeItemPath = null;\n if (visible) this.activeItemPath = path;\n },\n handleChangeCurrentTab(path) {\n this.$router.push(\n { path, query: getUrlQuery(path) },\n () => {},\n () => {},\n );\n },\n handleRemoveCurrentTab({ value: path, index }) {\n const { tabMenuList } = this.$store.state.setting;\n\n if (tabMenuList.length > 2) {\n const nextTabMenuItem = tabMenuList[index + 1] || tabMenuList[index - 1];\n\n this.$store.dispatch(\"setting/subtractCurrentTabMenuItem\", { path, itemIdx: index });\n if (path === this.$route.fullPath) {\n this.$router.push(\n {\n path: nextTabMenuItem.path,\n query: nextTabMenuItem.query,\n },\n () => {},\n () => {},\n );\n }\n }\n },\n handleTabRefresh(item, index) {\n this.$nextTick(() => {\n this.$router.push(\n {\n path: item.path,\n query: item.query,\n },\n () => {},\n () => {},\n );\n });\n\n this.$store.dispatch(\"setting/reloadGlobal\");\n this.activeItemPath = null;\n },\n handleTabCloseAhead(path, itemIdx) {\n this.$store.dispatch(\"setting/subtractTabMenuItemAhead\", { path, itemIdx });\n\n this.handleTabOperationEffect(\"ahead\", itemIdx);\n },\n handleTabCloseBehind(path, itemIdx) {\n this.$store.dispatch(\"setting/subtractTabMenuItemBehind\", { path, itemIdx });\n\n this.handleTabOperationEffect(\"behind\", itemIdx);\n },\n handleTabCloseOther(path, itemIdx) {\n if (this.tabMenuList.length > 2) {\n this.$store.dispatch(\"setting/subtractTabMenuItemOther\", { path, itemIdx });\n\n this.handleTabOperationEffect(\"other\", itemIdx);\n }\n },\n handleTabOperationEffect(type, itemIdx) {\n const currentPath = this.$route.fullPath;\n const { tabMenuList } = this.$store.state.setting;\n\n const currentIdx = tabMenuList.findIndex((item) => item.path === currentPath);\n\n const needRefreshRouter =\n (type === \"other\" && currentIdx !== itemIdx) ||\n (type === \"ahead\" && currentIdx < itemIdx) ||\n (type === \"behind\" && currentIdx === -1);\n\n if (needRefreshRouter) {\n const nextItemIdx = type === \"behind\" ? tabMenuList.length - 1 : 1;\n const nextItem = tabMenuList[nextItemIdx];\n\n this.$router.push({\n path: nextItem.path,\n query: nextItem.query,\n });\n }\n\n this.activeItemPath = null;\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-header :class=\"`${PREFIX}-header`\">\n <t-head-menu :theme=\"displayMode\">\n <template #logo>\n <div class=\"header-logo-container\">\n <div class=\"header-logo\"></div>\n </div>\n <div class=\"header-operate-left\">\n <t-button theme=\"default\" shape=\"square\" variant=\"text\" @click=\"toggleSideMenuCollapsed\">\n <t-icon class=\"collapsed-icon\" name=\"view-list\"></t-icon>\n </t-button>\n </div>\n </template>\n <!-- Tab菜单栏 -->\n <GLayoutHeaderTab />\n <template #operations>\n <div class=\"operation-container\">\n <t-dropdown trigger=\"click\">\n <t-button class=\"header-user-btn\" theme=\"default\" variant=\"text\">\n <t-icon class=\"header-user-avatar\" name=\"user-circle\" />\n <span v-if=\"userRealName\">{{ userRealName }}</span>\n <t-icon name=\"chevron-down\"></t-icon>\n </t-button>\n <template #dropdown>\n <t-dropdown-menu>\n <t-dropdown-item class=\"operations-dropdown-container-item\" @click=\"handleLogout\">\n <t-icon name=\"poweroff\" /> 退出登录\n </t-dropdown-item>\n </t-dropdown-menu>\n </template>\n </t-dropdown>\n\n <t-tooltip placement=\"bottom\" content=\"系统设置\">\n <t-button theme=\"default\" shape=\"square\" variant=\"text\" @click=\"toggleSettingPanel\"\n ><t-icon name=\"setting\" /></t-button\n ></t-tooltip>\n </div>\n </template>\n </t-head-menu>\n </t-header>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\nimport GLayoutHeaderTab from \"./GLayoutHeaderTab.vue\";\n\nexport default {\n components: {\n GLayoutHeaderTab,\n },\n data() {\n return {\n PREFIX,\n };\n },\n computed: {\n userRealName() {\n return this.$store.getters[\"setting/userRealName\"];\n },\n displayMode() {\n return this.$store.getters[\"setting/displayMode\"];\n },\n },\n methods: {\n toggleSideMenuCollapsed() {\n this.$store.commit(\"setting/toggleSideBarCollapse\");\n },\n toggleSettingPanel() {\n this.$store.commit(\"setting/toggleSettingPanel\");\n },\n handleLogout() {\n this.$store.dispatch(\"setting/userLogout\");\n this.$router.push({ path: \"/login\" });\n },\n },\n};\n</script>\n\n<style lang=\"scss\"></style>\n","<template>\n <t-layout :class=\"`${PREFIX}-layout`\">\n <t-content :class=\"`${PREFIX}-content-layout`\">\n <slot />\n </t-content>\n </t-layout>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\n\nexport default {\n data() {\n return {\n PREFIX,\n };\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div :style=\"style\" class=\"color-container\" />\n</template>\n\n<script>\nimport { getBrandColor } from \"../../../utils\";\nimport { COLOR_TOKEN as colorList } from \"../../../config\";\n\nexport default {\n name: \"ColorContainer\",\n props: {\n value: {\n type: String,\n default: \"default\",\n },\n },\n computed: {\n style() {\n return {\n background: getBrandColor(this.value, colorList)[\"--td-brand-color\"],\n };\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.color-container {\n width: 48px;\n height: 48px;\n border-radius: 3px;\n display: inline-block;\n}\n</style>\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","module.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String($Error(arg).stack); })('zxcasd');\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","<template>\n <t-drawer :class=\"`${PREFIX}-setting`\" :visible.sync=\"isSettingPanelShow\" :footer=\"false\">\n <template #header><t-icon name=\"setting\" />系统设置</template>\n <div class=\"setting-container\">\n <div class=\"setting-group-title\">主题色</div>\n <t-radio-group v-model=\"themeData.brandTheme\">\n <div v-for=\"(item, index) in COLOR_OPTIONS.slice(0, COLOR_OPTIONS.length - 1)\" :key=\"index\">\n <t-radio-button :key=\"index\" :value=\"item\" class=\"setting-layout-color-group\">\n <ColorContainer :value=\"item\" />\n </t-radio-button>\n </div>\n </t-radio-group>\n\n <div class=\"setting-group-title\">主题模式</div>\n <t-radio-group v-model=\"themeData.displayMode\" variant=\"default-filled\">\n <div v-for=\"(item, index) in MODE_OPTIONS\" :key=\"index\">\n <t-radio-button :key=\"index\" :value=\"item.type\">{{ item.text }}</t-radio-button>\n </div>\n </t-radio-group>\n\n <div class=\"setting-group-title\">其他设置</div>\n </div>\n </t-drawer>\n</template>\n\n<script>\nimport ColorContainer from \"../../common/color/index.vue\";\nimport { PREFIX, THEME_CONFIG } from \"../../../config\";\n\nconst COLOR_OPTIONS = [\"default\", \"cyan\", \"green\", \"yellow\", \"orange\", \"red\", \"pink\", \"purple\", \"dynamic\"];\nconst MODE_OPTIONS = [\n { type: \"light\", text: \"明亮\" },\n { type: \"dark\", text: \"暗黑\" },\n { type: \"auto\", text: \"跟随系统\" },\n];\n\nexport default {\n components: {\n ColorContainer,\n },\n data() {\n return {\n PREFIX,\n MODE_OPTIONS,\n COLOR_OPTIONS,\n };\n },\n computed: {\n themeData() {\n return this.$store.state.setting.themeConfig;\n },\n isSettingPanelShow: {\n get() {\n return this.$store.state.setting.isSettingPanelShow;\n },\n set() {\n this.$store.commit(\"setting/toggleSettingPanel\");\n },\n },\n },\n watch: {\n themeData: {\n handler(value) {\n this.$store.dispatch(\"setting/changeTheme\", value);\n },\n deep: true,\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div>\n <template v-for=\"item in menuList\">\n <template v-if=\"!item.children || !item.children.length\">\n <t-menu-item :name=\"item.path\" :value=\"item.path\" :to=\"item.path\" @click=\"handleMenuItemClick\">\n {{ item.title }}</t-menu-item\n >\n </template>\n <t-submenu v-else :name=\"item.name\" :value=\"item.name\" :title=\"item.title\">\n <GLayoutSideMenuContent v-if=\"item.children\" :nav-data=\"item.children\" />\n </t-submenu>\n </template>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"GLayoutSideMenuContent\",\n props: {\n navData: Array,\n },\n data() {\n return {};\n },\n computed: {\n // 菜单列表\n menuList() {\n return this.getMenuList(this.navData);\n },\n },\n methods: {\n getMenuList(list) {\n if (!list) return [];\n return list;\n },\n handleMenuItemClick() {\n this.$store.commit(\"setting/toggleSideBarCollapse\");\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <!-- 侧边抽屉菜单 -->\n <t-drawer\n :class=\"`${PREFIX}-drawer`\"\n size=\"232px\"\n placement=\"left\"\n :visible.sync=\"menuCollapsed\"\n :showOverlay=\"true\"\n :header=\"false\"\n :footer=\"false\"\n :showInAttachedElement=\"true\"\n >\n <t-menu width=\"210px\" :theme=\"displayMode\" :value=\"menuActivePath\" :default-expanded=\"menuDefaultExpanded\">\n <GLayoutSideMenuContent :nav-data=\"menu\" />\n\n <template #operations>\n <t-button variant=\"text\" theme=\"primary\" block @click=\"toMenuManage\" style=\"justify-content: flex-start\"\n ><template #icon><t-icon name=\"view-list\"></t-icon></template>菜单管理</t-button\n >\n </template>\n </t-menu>\n </t-drawer>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\nimport GLayoutSideMenuContent from \"./GLayoutSideMenuContent.vue\";\n\nexport default {\n components: {\n GLayoutSideMenuContent,\n },\n data() {\n return {\n PREFIX,\n };\n },\n computed: {\n menu() {\n return this.$store.getters[\"setting/userMenu\"];\n },\n displayMode() {\n return this.$store.getters[\"setting/displayMode\"];\n },\n // 侧边菜单折叠状态\n menuCollapsed: {\n get() {\n return this.$store.state.setting.isSideBarCollapse;\n },\n set() {\n this.$store.commit(\"setting/toggleSideBarCollapse\");\n },\n },\n // 当前菜单激活项\n menuActivePath() {\n const length = this.$route.fullPath.split(\"/\").length;\n return this.$route.fullPath.split(\"/\")[length - 1];\n },\n // 当前菜单默认折叠项\n menuDefaultExpanded() {\n let currentParent;\n this.menu.forEach((parentMenu) => {\n parentMenu.children.forEach((childrenMenu) => {\n if (childrenMenu.path == this.menuActivePath) {\n currentParent = parentMenu.name;\n }\n });\n });\n\n return [currentParent];\n },\n },\n methods: {\n toMenuManage() {\n this.$router.push(\"menu\");\n this.$store.commit(\"setting/toggleSideBarCollapse\");\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-layout>\n <t-layout>\n <GLayoutHeader />\n <t-content>\n <GLayoutContent>\n <t-card :class=\"`${PREFIX}-card`\" :bordered=\"false\" :title=\"title\">\n <slot />\n </t-card>\n </GLayoutContent>\n </t-content>\n </t-layout>\n <GLayoutSideMenu />\n <GLayoutSetting />\n </t-layout>\n</template>\n\n<script>\nimport GLayoutHeader from \"./components/GLayoutHeader.vue\";\nimport GLayoutContent from \"./components/GLayoutContent.vue\";\nimport GLayoutSetting from \"./components/GLayoutSetting.vue\";\nimport GLayoutSideMenu from \"./components/GLayoutSideMenu.vue\";\nimport { PREFIX } from \"../../config\";\n\nexport default {\n name: \"GLayout\",\n components: {\n GLayoutHeader,\n GLayoutContent,\n GLayoutSetting,\n GLayoutSideMenu,\n },\n props: {\n title: String,\n config: Object,\n },\n data() {\n return {\n PREFIX,\n };\n },\n computed: {\n userInitUrl() {\n return this.$store.getters[\"setting/userInitUrl\"];\n },\n },\n mounted() {\n if ((this.config ?? \"\") != \"\") {\n // 初始化GView用户以及菜单信息\n this.$store.dispatch(\"setting/initSettingConfig\", this.config);\n\n // 跳转到登录后初始化页面(只有才首次登录才跳转指定页面)\n if (this.$route.fullPath == \"/view\") {\n this.$router.push(\n { path: this.userInitUrl },\n () => {},\n () => {},\n );\n\n this.$store.dispatch(\"setting/initTabMenu\");\n }\n\n // 初始化主题配置\n this.$store.dispatch(\"setting/loadLocalTheme\");\n\n // 初始化WebSocket连接\n this.$store.dispatch(\"socket/initSocket\");\n }\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <div :class=\"`${PREFIX}-common-header`\">\n <t-row justify=\"space-between\">\n <div class=\"left-operations\">\n <t-row>\n <slot name=\"left-operations\"></slot>\n </t-row>\n </div>\n <div class=\"right-operations\">\n <slot name=\"right-operations\"></slot>\n </div>\n </t-row>\n </div>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\n\nexport default {\n name: \"GCommonHeader\",\n props: {},\n data() {\n return {\n PREFIX,\n };\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <t-input\n v-model=\"value\"\n :type=\"type\"\n :placeholder=\"placeholder\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :disabled=\"disabled\"\n clearable\n ></t-input>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n placeholder: String,\n disabled: Boolean,\n inputType: String,\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n },\n data() {\n return {\n type: \"text\",\n value: this.modelValue,\n };\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n },\n mounted() {\n if (this.inputType == \"re_password\") this.type = \"password\";\n else this.type = this.inputType;\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export const DEFAULT_CONFIG = {\n // 默认地址请求地址,可在 .env 开头文件中修改\n // baseURL: import.meta.env.VITE_API_URL as string,\n // 设置超时时间(10s)\n timeout: 10000,\n // 跨域时候允许携带凭证\n withCredentials: true,\n};\n","import axios, { AxiosInstance, AxiosRequestConfig, AxiosError, AxiosResponse } from \"axios\";\nimport { DEFAULT_CONFIG } from \"./config\";\nimport { ResultData } from \"./interface\";\n\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { LOCAL_CONFIG, LOCAL_USER, NProgress } from \"../config\";\n\nclass RequestHttp {\n service: AxiosInstance;\n public constructor(config: AxiosRequestConfig) {\n // 实例化axios\n this.service = axios.create(config);\n\n /**\n * @description 请求拦截器\n * 客户端发送请求 -> [请求拦截器] -> 服务器\n * token校验(JWT) : 接受服务器返回的token,存储到vuex/pinia/本地储存当中\n */\n this.service.interceptors.request.use(\n (config: AxiosRequestConfig) => {\n const userToken = JSON.parse(localStorage.getItem(LOCAL_CONFIG) as string)?.userToken || {\n token: \"\",\n tokenExpiredTime: \"\",\n };\n const lang = JSON.parse(localStorage.getItem(LOCAL_CONFIG) as string)?.userInfo.language || \"zh-CN\";\n\n if (userToken) {\n const { token, tokenExpiredTime } = userToken;\n\n config.headers = {\n ...config.headers,\n token,\n lang,\n };\n }\n\n NProgress.start();\n\n return {\n ...config,\n };\n },\n (error: AxiosError) => {\n return Promise.reject(error);\n },\n );\n\n /**\n * @description 响应拦截器\n * 服务器换返回信息 -> [拦截统一处理] -> 客户端JS获取到信息\n */\n this.service.interceptors.response.use(\n (response: AxiosResponse) => {\n const { data } = response;\n NProgress.done();\n return data;\n },\n async (error: AxiosError) => {\n MessagePlugin.error(error.message);\n return Promise.reject(error);\n },\n );\n }\n\n // * 常用请求方法封装\n get<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {\n return this.service.get(`${url}?sessionId=RYNJ0NnJeSzOw41bFxyx1tdgoYJ5l2ve`, { params, ..._object });\n }\n post<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {\n return this.service.post(`${url}?sessionId=RYNJ0NnJeSzOw41bFxyx1tdgoYJ5l2ve`, params, _object);\n }\n put<T>(url: string, params?: object, _object = {}): Promise<ResultData<T>> {\n return this.service.put(`${url}?sessionId=RYNJ0NnJeSzOw41bFxyx1tdgoYJ5l2ve`, params, _object);\n }\n delete<T>(url: string, params?: any, _object = {}): Promise<ResultData<T>> {\n return this.service.delete(`${url}?sessionId=RYNJ0NnJeSzOw41bFxyx1tdgoYJ5l2ve`, { params, ..._object });\n }\n}\n\nexport default new RequestHttp(DEFAULT_CONFIG);\n","import http from \"../\";\nimport { View } from \"../../types\";\n\nconst viewApiUrl = {\n // 视图 - 获取所有视图 GET\n getAllView: \"/restapi/s09/gview/boards/all\",\n // 视图 - 获取一个视图 GET\n getOneView: \"/restapi/s09/gview/views\",\n // 数据 - 获取数据 POST\n getViewData: \"/restapi/s09/gview/data\",\n // 触发 - 上传文件 POST\n uploadFile: \"/restapi/s09/gview/active/upload_file\",\n // 触发 - 触发文件上传事件 POST\n activeFile: \"/restapi/s09/gview/active/file\",\n // 触发 - 触发confirm事件 POST\n confirm: \"/restapi/s09/gview/active/confirm\",\n // 触发 - 触发批量操作事件 POST\n batch: \"/restapi/s09/gview/active/batch\",\n};\n\n// 视图 - 获取所有视图 GET\nexport const getAllView = (params) => http.get<View.viewInfo[]>(viewApiUrl.getAllView, params);\n// 视图 - 获取一个视图 GET\nexport const getOneView = (params) => http.get<View.viewInfo>(viewApiUrl.getOneView, params);\n// 数据 - 获取数据 POST\nexport const getViewData = (params: View.ReqViewDataParam) => http.post<View.viewData>(viewApiUrl.getViewData, params);\n// 触发 - 触发confirm事件 POST\nexport const confirm = (params: View.ReqConfirmParam) => http.post(viewApiUrl.confirm, params);\n// 触发 - 触发批量操作事件 POST\nexport const batchAction = (params) => http.post(viewApiUrl.batch, params);\n// 触发 - 上传文件 POST\nexport const activeFile = (params) => http.post(viewApiUrl.activeFile, params);\n","<template>\n <t-select\n v-model=\"value\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :placeholder=\"target.name\"\n :size=\"size\"\n :options=\"options\"\n :multiple=\"multiple\"\n :min-collapsed-num=\"2\"\n :disabled=\"disabled\"\n clearable\n />\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { getViewData } from \"../../../api/modules/view\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n targetViewName: String,\n size: {\n type: String,\n default: \"medium\",\n },\n multiple: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n value: this.modelValue,\n options: [],\n\n // 路径查询参数\n queryProps: {},\n };\n },\n watch: {\n modelValue: {\n handler(value) {\n this.value = value;\n },\n deep: true,\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n computed: {\n listData() {\n return this.target.listData;\n },\n dataId() {\n return this.listData.dataId;\n },\n propsModel() {\n let tempModel = {};\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n async getSelectData() {\n const res = await getViewData({\n viewName: this.targetViewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n if (res.state === 200) {\n let list = res.data;\n if (list != null && list.length != 0) {\n let arr = [];\n list.forEach((item) => {\n if (item != null) {\n arr.push({\n key: item[this.listData.keyName],\n label: item[this.listData.titleName],\n value: item[this.listData.valueName],\n });\n }\n });\n this.options = arr;\n }\n } else {\n MessagePlugin.error(`获取数据失败:${res.message}`);\n }\n },\n },\n mounted() {\n this.getSelectData();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div>\n <t-date-picker\n v-if=\"target.itemType === 'date_selector' || target.itemType === 'date_time_selector'\"\n :enable-time-picker=\"target.itemType === 'date_time_selector'\"\n :placeholder=\"\n target.placeholder || target.itemType == 'date_time_selector' ? '请选择时间与日期' : '请选择日期'\n \"\n v-model=\"dateTimeValue\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :format=\"target.format || 'YYYY-MM-DD HH:mm:ss'\"\n valueType=\"time-stamp\"\n :disabled=\"disabled\"\n clearable\n />\n <t-time-picker\n v-if=\"target.itemType === 'time_selector'\"\n :placeholder=\"target.placeholder || '请选择时间'\"\n v-model=\"dateTimeValue\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :format=\"target.format || 'HH:mm:ss'\"\n clearable\n />\n </div>\n</template>\n\n<script>\nimport dayjs from \"dayjs\";\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n },\n data() {\n return {\n value: \"\",\n };\n },\n computed: {\n dateTimeValue: {\n get() {\n if (this.modelValue == 0) {\n return \"\";\n } else {\n if (this.target.itemType == \"time_selector\") {\n return dayjs(this.modelValue).format(\"HH:mm:ss\");\n } else {\n return this.modelValue;\n }\n }\n },\n set(value) {\n this.value = value;\n if (this.target.itemType == \"time_selector\") {\n this.value = dayjs(value, \"HH:mm:ss\").valueOf();\n }\n },\n },\n },\n methods: {\n handleChange() {\n this.$emit(\"update:modelValue\", this.value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-upload\n :action=\"UPLOAD_API\"\n @success=\"handleUploadSuccess\"\n @fail=\"handleUploadError\"\n :showUploadProgress=\"false\"\n style=\"padding: 0 8px 0 0\"\n >\n <t-button>\n <template>\n <t-icon name=\"upload\"></t-icon>\n </template>\n {{ target.name }}\n </t-button>\n </t-upload>\n</template>\n\n<script>\n// to-do 更换为从传入的配置中获取上传接口\nimport { UPLOAD_API } from \"../../../config\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nexport default {\n props: {\n target: Object,\n targetViewName: String,\n },\n data() {\n return {\n UPLOAD_API,\n uploadData: {},\n };\n },\n methods: {\n handleUploadSuccess(event) {\n const uploadResult = event.response;\n this.$emit(\"returnFileUrl\", uploadResult.data.shift(), this.target);\n },\n handleUploadError(error) {\n MessagePlugin.error(`上传失败:${error}`);\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <GCommonHeader>\n <template #left-operations>\n <!-- 上传按钮 -->\n <template v-if=\"headerUploadBtns\">\n <GHeaderUpload\n v-for=\"btn in headerUploadBtns\"\n :key=\"btn.buttonId\"\n :target=\"btn\"\n :targetViewName=\"viewName\"\n />\n </template>\n <t-button\n v-for=\"btn in headerCommonBtns\"\n :key=\"btn.buttonId\"\n theme=\"primary\"\n @click=\"handleHeaderButtonClick(btn)\"\n >\n <!-- <template #icon>\n\t\t\t\t\t\t<t-icon :name=\"btn.icon\"></t-icon>\n\t\t\t\t\t</template> -->\n {{ btn.name }}\n </t-button>\n </template>\n\n <template #right-operations>\n <div class=\"search-filter-form\" v-for=\"(item, index) in headerFilters\" :key=\"index\">\n <div class=\"search-filter-item\" v-if=\"item.itemType === 'text_input'\">\n <GFormInput :modelValue.sync=\"filterForm[item.keyName]\" :placeholder=\"item.placeholder\" />\n </div>\n <div class=\"search-filter-item\" v-if=\"item.itemType === 'selector'\">\n <GFormSelect\n :modelValue.sync=\"filterForm[item.keyName]\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n ></GFormSelect>\n </div>\n <div\n class=\"search-filter-item\"\n v-if=\"\n item.itemType === 'date_selector' ||\n item.itemType === 'time_selector' ||\n item.itemType === 'date_time_selector'\n \"\n >\n <GFormSelectDateTime\n :modelValue.sync=\"filterForm[item.keyName]\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n />\n </div>\n </div>\n </template>\n </GCommonHeader>\n</template>\n\n<script>\nimport { PREFIX } from \"../../config\";\nimport GCommonHeader from \"../common/GCommonHeader/index.vue\";\nimport GFormInput from \"../GForm/components/GFormInput.vue\";\nimport GFormSelect from \"../GForm/components/GFormSelect.vue\";\nimport GFormSelectDateTime from \"../GForm/components/GFormSelectDateTime.vue\";\nimport GHeaderUpload from \"./components/GHeaderUpload.vue\";\n\nexport default {\n name: \"Gheader\",\n components: {\n GCommonHeader,\n GFormInput,\n GFormSelect,\n GFormSelectDateTime,\n GHeaderUpload,\n },\n props: {\n viewName: String,\n headerInfo: Object,\n formModel: {},\n },\n data() {\n return {\n PREFIX,\n filterForm: {},\n };\n },\n computed: {\n // 头部操作按钮\n headerCommonBtns() {\n return this.headerInfo?.buttons.filter((button) => button.action != \"UPLOAD_FILE\");\n },\n // 头部上传按钮\n headerUploadBtns() {\n return this.headerInfo?.buttons.filter((button) => button.action == \"UPLOAD_FILE\");\n },\n headerSearchBar() {\n return this.headerInfo?.searchBar ?? {};\n },\n headerFilters() {\n return this.headerInfo?.searchBar?.filters ?? [];\n },\n },\n watch: {\n filterForm: {\n handler(value) {\n this.$emit(\"header-filter-change\", value);\n },\n deep: true,\n },\n },\n methods: {\n handleHeaderButtonClick(button) {\n this.$emit(\"header-button-action\", button);\n },\n },\n};\n</script>\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <t-tag>{{ modelValue }}</t-tag>\n</template>\n\n<script>\nexport default {\n props: {\n modelValue: { required: true },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-checkbox v-model=\"value\" @change=\"handleChange\" :disabled=\"disabled\" />\n</template>\n\n<script>\nimport { isVoid } from \"../../../utils\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n },\n data() {\n return {\n value: false,\n };\n },\n watch: {\n modelValue: {\n handler() {\n this.value = this.modelValue;\n\n if (!isVoid(this.modelValue)) {\n this.value = false;\n }\n },\n immediate: true,\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-switch v-model=\"value\" @change=\"handleChange\" :disabled=\"disabled\" />\n</template>\n\n<script>\nimport { isVoid } from \"../../../utils\";\n\nexport default {\n props: {\n target: Object,\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n },\n data() {\n return {\n value: this.modelValue,\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n\n if (!isVoid(this.modelValue)) {\n this.value = false;\n }\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-radio-group v-model=\"value\" @change=\"handleChange\" :disabled=\"disabled\">\n <t-radio v-for=\"item in selectList\" :key=\"item.key\" :value=\"item.value\">{{ item.label }}</t-radio>\n </t-radio-group>\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { getViewData } from \"../../../api/modules/view\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n targetViewName: String,\n },\n data() {\n return {\n value: this.modelValue,\n selectList: [],\n\n // 路径查询参数\n queryProps: {},\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n computed: {\n listData() {\n return this.target.listData;\n },\n dataId() {\n return this.listData.dataId;\n },\n propsModel() {\n let tempModel = {};\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n async getSelectData() {\n const res = await getViewData({\n viewName: this.targetViewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n if (res.state === 200) {\n let list = res.data;\n if (list != null && list.length != 0) {\n let arr = [];\n list.forEach((item) => {\n if (item != null) {\n arr.push({\n key: item[this.listData.keyName],\n label: item[this.listData.titleName],\n value: item[this.listData.valueName],\n });\n }\n });\n\n this.selectList = arr;\n }\n } else {\n MessagePlugin.error(`获取数据失败:${res.message}`);\n }\n },\n },\n mounted() {\n this.getSelectData();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-tree-select\n v-model=\"value\"\n :data=\"treeOptions\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :placeholder=\"target.placeholder\"\n :multiple=\"multiple\"\n :min-collapsed-num=\"3\"\n :treeProps=\"{ valueMode: 'all' }\"\n :disabled=\"disabled\"\n clearable\n ></t-tree-select>\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { getViewData } from \"../../../api/modules/view\";\nimport { initTreeSelectorData } from \"../../../utils\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n targetViewName: String,\n multiple: {\n type: Boolean,\n default: true,\n },\n },\n data() {\n return {\n value: this.modelValue,\n treeOptions: [],\n\n // 路径查询参数\n queryProps: {},\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n computed: {\n treeData() {\n return this.target.treeData;\n },\n dataId() {\n return this.treeData.dataId;\n },\n\n propsModel() {\n let tempModel = {};\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n async getSelectData() {\n const res = await getViewData({\n viewName: this.targetViewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n if (res.state === 200) {\n let list = res.data;\n if (list != null && list.length != 0) {\n let arr = initTreeSelectorData({\n list,\n keyName: this.treeData.valueName,\n valueName: this.treeData.valueName,\n titleName: this.treeData.titleName,\n parentKey: null,\n parentKeyName: this.treeData.parentKeyName,\n });\n\n this.treeOptions = arr;\n }\n } else {\n MessagePlugin.error(`获取数据失败:${res.message}`);\n }\n },\n },\n mounted() {\n this.getSelectData();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <t-cascader\n v-model=\"value\"\n :options=\"cascaderOptions\"\n @change=\"handleChange\"\n @blur=\"handleBlur\"\n :multiple=\"multiple\"\n :min-collapsed-num=\"2\"\n :disabled=\"disabled\"\n clearable\n />\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { getViewData } from \"../../../api/modules/view\";\nimport { initTreeSelectorData } from \"../../../utils\";\n\nexport default {\n props: {\n modelValue: { required: true },\n originValue: [String, Number, Boolean, Array, Object],\n disabled: Boolean,\n target: Object,\n targetViewName: String,\n multiple: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n value: this.modelValue,\n cascaderOptions: [],\n\n // 路径查询参数\n queryProps: {},\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n computed: {\n treeData() {\n return this.target.treeData;\n },\n dataId() {\n return this.treeData.dataId;\n },\n\n propsModel() {\n let tempModel = {};\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n methods: {\n handleChange(value) {\n this.$emit(\"update:modelValue\", value);\n },\n handleBlur(value) {\n if (this.originValue != value) {\n this.$emit(\"blur:modelValue\", value);\n }\n },\n async getSelectData() {\n const res = await getViewData({\n viewName: this.targetViewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n if (res.state === 200) {\n let list = res.data;\n if (list != null && list.length != 0) {\n let arr = initTreeSelectorData({\n list,\n parentKey: null,\n keyName: this.treeData.keyName,\n valueName: this.treeData.valueName,\n titleName: this.treeData.titleName,\n parentKeyName: this.treeData.parentKeyName,\n });\n\n this.cascaderOptions = arr;\n }\n } else {\n MessagePlugin.error(`获取数据失败:${res.message}`);\n }\n },\n },\n mounted() {\n this.getSelectData();\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div>\n <t-upload\n ref=\"uploadRef\"\n theme=\"file\"\n v-model=\"value\"\n :action=\"uploadApi\"\n :accept=\"target.accept\"\n :max=\"target.limit\"\n :size=\"target.maxSize\"\n :disabled=\"disabled\"\n :is-batch-upload=\"true\"\n @change=\"handleChange\"\n @fail=\"handleUploadError\"\n >\n </t-upload>\n </div>\n</template>\n\n<script>\nimport { MessagePlugin } from \"tdesign-vue\";\nexport default {\n props: {\n modelValue: { required: true },\n fileName: String,\n tips: String,\n target: Object,\n targetViewName: String,\n disabled: Boolean,\n },\n data() {\n return {\n value: [],\n };\n },\n watch: {\n modelValue(value) {\n if ((value ?? \"\") != \"\") {\n this.value = [{ name: this.fileName, url: value }];\n } else {\n this.value = [];\n }\n },\n },\n computed: {\n // 上传API从用户传入的config中获取\n uploadApi() {\n return this.$store.getters[\"setting/uploadApi\"];\n },\n },\n\n methods: {\n handleChange() {\n // this.$emit(\"update:modelValue\", this.value);\n if (this.value.length) {\n const { name, response } = this.value[0];\n this.uploadData = response.data;\n if (response.data.length) {\n // this.value = response.data[0];\n this.$emit(\"update:modelValue\", response.data[0]);\n this.$emit(\"blur:modelValue\", response.data[0]);\n this.$emit(\"update:fileName\", name);\n MessagePlugin.success(`上传成功`);\n }\n } else {\n console.log(this.value);\n this.$emit(\"update:modelValue\", \"\");\n }\n },\n handleUploadError(error) {\n MessagePlugin.error(`上传失败:${error}`);\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n.t-upload__single-input-preview {\n max-width: none;\n}\n</style>\n","<template>\n <div class=\"table-form-items\">\n <template v-for=\"item in formItems\">\n <!-- 标签展示 -->\n <GFormLabel v-if=\"item.itemType === 'label'\" :modelValue=\"getProperty(formModel, col.colKey)\" />\n\n <!-- 文字输入 -->\n <GFormInput\n v-if=\"item.itemType == 'text_input'\"\n :inputType=\"item.inputType.toLowerCase()\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 多选框 -->\n <GFormCheckBox\n v-if=\"item.itemType === 'check_box'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 开关 -->\n <GFormSwitch\n v-if=\"item.itemType === 'switch'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 单选框 -->\n <GFormRadio\n v-if=\"item.itemType === 'radio'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 选择器 -->\n <GFormSelect\n v-if=\"item.itemType === 'selector' || item.itemType === 'multi_selector'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :multiple=\"item.itemType === 'multi_selector'\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 日期时间选择器 -->\n <GFormSelectDateTime\n v-if=\"\n item.itemType === 'date_selector' ||\n item.itemType === 'time_selector' ||\n item.itemType === 'date_time_selector'\n \"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 多级选择框 -->\n <GFormTreeCheckBox\n v-if=\"item.itemType === 'tree_check_box'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 级联选择器 -->\n <GFormCascader\n v-if=\"item.itemType === 'multi_tree_selector' || item.itemType === 'tree_selector'\"\n :originValue=\"getProperty(row, col.colKey)\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :multiple=\"item.itemType === 'multi_tree_selector'\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n\n <!-- 文件上传 -->\n <GFormUpload\n v-if=\"item.itemType === 'file'\"\n :modelValue=\"getProperty(formModel, col.colKey)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :tips=\"item.placeholder || '请选择上传文件'\"\n @update:modelValue=\"handleAfterUpdateValue(col.colKey, $event)\"\n @blur:modelValue=\"handleAfterValueBlur(item, $event)\"\n />\n </template>\n </div>\n</template>\n\n<script>\nimport GFormLabel from \"../../GForm/components/GFormLabel.vue\";\nimport GFormInput from \"../../GForm/components/GFormInput.vue\";\nimport GFormCheckBox from \"../../GForm/components/GFormCheckBox.vue\";\nimport GFormSwitch from \"../../GForm/components/GFormSwitch.vue\";\nimport GFormRadio from \"../../GForm/components/GFormRadio.vue\";\nimport GFormSelect from \"../../GForm/components/GFormSelect.vue\";\nimport GFormSelectDateTime from \"../../GForm/components/GFormSelectDateTime.vue\";\nimport GFormTreeCheckBox from \"../../GForm/components/GFormTreeCheckBox.vue\";\nimport GFormCascader from \"../../GForm/components/GFormCascader.vue\";\nimport GFormUpload from \"../../GForm/components/GFormUpload.vue\";\n\nimport { getProperty, setProperty } from \"../../../utils\";\n\nexport default {\n components: {\n GFormInput,\n GFormLabel,\n GFormCheckBox,\n GFormSwitch,\n GFormRadio,\n GFormSelect,\n GFormSelectDateTime,\n GFormTreeCheckBox,\n GFormCascader,\n GFormUpload,\n },\n props: {\n col: Object,\n row: Object,\n viewName: String,\n },\n data() {\n return {\n formModel: {\n ...this.row,\n },\n };\n },\n computed: {\n formItems() {\n return this.col?.formItems;\n },\n },\n methods: {\n getProperty,\n handleAfterUpdateValue(keyName, value) {\n setProperty(this.formModel, keyName, value);\n\n this.$forceUpdate();\n },\n handleAfterValueBlur(item, value) {\n this.$emit(\"blur\", item, this.formModel);\n },\n },\n watch: {\n row: {\n handler(newValue) {\n Object.assign(this.formModel, this.row);\n },\n immediate: true,\n deep: true,\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.table-form-items {\n width: 250px;\n}\n</style>\n","<template>\n <t-table\n :class=\"`${PREFIX}-table`\"\n :data=\"data\"\n :row-key=\"rowKey\"\n table-layout=\"fixed\"\n size=\"medium\"\n :columns=\"tableColumns\"\n maxHeight=\"calc(100vh - 243px)\"\n cellEmptyContent=\"--\"\n empty=\"--\"\n :hover=\"true\"\n :bordered=\"true\"\n :pagination=\"tablePagination\"\n :selected-row-keys=\"selectedRowKeys\"\n @select-change=\"handleSelectChange\"\n >\n <!-- 纯文本单元格 -->\n <template #TEXT=\"{ col, row }\">{{ returnValue(col, row) }}</template>\n <!-- 枚举文本类型单元格 -->\n <template #ENUMS=\"{ col, row }\"> <span v-html=\"returnEnumsValue(col, row)\"></span></template>\n <!-- 日期格式类型单元格 -->\n <template #DATE=\"{ col, row }\"> {{ returnDateValue(col, row) }} </template>\n <!-- 二维码展示单元格 -->\n <template #QR_CODE=\"{ col, row }\">\n <t-popup>\n <t-button variant=\"text\" theme=\"primary\">预览</t-button>\n <template #content>\n <vue-qr :text=\"returnValue(col, row)\" :size=\"80\" :margin=\"0\" />\n <div style=\"text-align: center\">{{ row[\"code\"] }}</div>\n </template>\n </t-popup>\n </template>\n <!-- 表单项类型单元格 -->\n <template #FORM_ITEM=\"{ col, row }\">\n <GTableForm :viewName=\"viewName\" :col=\"col\" :row=\"row\" @blur=\"handleTableFormChange\" />\n </template>\n <!-- 图片预览单元格 -->\n <template #IMAGE=\"{ col, row }\">\n <t-image :src=\"returnValue(col, row)\" fit=\"cover\" shape=\"round\" :style=\"{ width: '80px', height: '80px' }\">\n <template #error>\n <t-icon v-if=\"col.name == '头像'\" name=\"user\" />\n <t-icon v-else name=\"file-image\" />\n </template>\n <template #loading>\n <t-icon v-if=\"col.name == '头像'\" name=\"user\" />\n <t-icon v-else name=\"file-image\" size=\"large\" />\n </template>\n </t-image>\n </template>\n <!-- 操作栏 -->\n <template #BUTTONS=\"{ col, row }\">\n <!-- <template v-if=\"handleFilterColumnBtns(col.buttons, row).length <= 3\"> -->\n <t-button\n theme=\"primary\"\n variant=\"text\"\n v-for=\"btns in handleFilterColumnBtns(col.buttons, row)\"\n :key=\"btns.buttonId\"\n @click=\"handleTableButtonClick(btns, row)\"\n >\n {{ btns.name }}\n </t-button>\n <!-- </template> -->\n\n <!-- <template v-if=\"handleFilterColumnBtns(col.buttons, row).length > 3\">\n <t-button\n theme=\"primary\"\n variant=\"text\"\n v-for=\"btns in handleFilterColumnBtns(col.buttons, row).slice(0, 3)\"\n :key=\"btns.buttonId\"\n @click=\"handleTableButtonClick(btns, row)\"\n >\n {{ btns.name }}\n </t-button>\n\n <t-dropdown>\n <t-button theme=\"default\" variant=\"text\" shape=\"circle\">\n <t-icon name=\"ellipsis\" size=\"16\" />\n </t-button>\n <t-dropdown-menu>\n <t-dropdown-item>\n <t-button\n theme=\"primary\"\n variant=\"text\"\n v-for=\"btns in handleFilterColumnBtns(col.buttons, row).slice(3)\"\n :key=\"btns.buttonId\"\n @click=\"handleTableButtonClick(btns, row)\"\n >\n {{ btns.name }}\n </t-button>\n </t-dropdown-item>\n </t-dropdown-menu>\n </t-dropdown>\n </template> -->\n </template>\n </t-table>\n</template>\n\n<script>\nimport { PREFIX } from \"../../config\";\nimport { evalContext, vFun, initTableColumns } from \"../../utils\";\n\nimport VueQr from \"vue-qr\";\nimport dayjs from \"dayjs\";\nimport Mustache from \"mustache\";\nimport GTableForm from \"./components/GTableForm.vue\";\n\nexport default {\n name: \"GTable\",\n components: {\n VueQr,\n GTableForm,\n },\n props: {\n viewName: String,\n boardInfo: Object,\n tableData: Array,\n paginationProps: Object,\n },\n data() {\n return {\n PREFIX,\n selectedRowKeys: [],\n tablePagination: {\n showJumper: true,\n },\n };\n },\n computed: {\n data() {\n return this.tableData;\n },\n rowKey() {\n return this.boardInfo.tableData.keyName;\n },\n tableColumns() {\n return initTableColumns(this.boardInfo.columns);\n },\n },\n methods: {\n // 处理表格选中数据\n handleSelectChange(value, { selectedRowData }) {\n this.selectedRowKeys = value;\n\n this.$emit(\"return-selected-key\", this.selectedRowKeys);\n },\n // 处理表格普通数据\n returnValue(column, row) {\n if (column.value != \"\") {\n return Mustache.render(column.value, { item: row });\n } else if (column.value == \"\") {\n return row[column.keyName];\n }\n },\n // 处理表格枚举数据类型\n returnEnumsValue(column, row) {\n const enums = column.enums;\n if (enums != null) {\n let targetArr = enums.filter((element) => {\n if (element.value == String(row[column.keyName])) {\n return element.text;\n }\n });\n if (targetArr.length) {\n return targetArr.shift().text;\n } else {\n return row[column.keyName];\n }\n }\n },\n // 处理表格日期数据类型\n returnDateValue(column, row) {\n // return dayjs(target).format(column.format);\n if (column.value != \"\") {\n return Mustache.render(column.value, { item: row });\n } else if (column.value == \"\") {\n return dayjs(row[column.keyName]).format(\"YYYY-MM-DD HH:mm:ss\");\n }\n },\n // 过滤处理表格操作按钮\n handleFilterColumnBtns(columnBtns, row) {\n window.v = vFun;\n\n return columnBtns.filter((element) => {\n if (element.showIf != \"1\") {\n let result, evalResult;\n try {\n result = Mustache.render(element.showIf, { item: row });\n evalResult = eval(result);\n } catch (e) {\n console.warn(e);\n }\n // return true\n return eval(evalResult);\n } else {\n return element;\n }\n });\n },\n // 处理表格操作按钮动作\n handleTableButtonClick(button, row) {\n this.$emit(\"table-button-action\", button, row);\n },\n // 处理表格表单提交\n handleTableFormChange(item, model) {\n this.$emit(\"table-form-confirm\", item, model);\n },\n },\n watch: {\n paginationProps: {\n handler(value) {\n let tempPagination = {};\n Object.assign(tempPagination, value);\n\n this.tablePagination.current = tempPagination.page + 1;\n this.tablePagination.pageSize = tempPagination.count;\n this.tablePagination.total = tempPagination.totalCount;\n\n /* eslint-disable */\n let that = this;\n this.tablePagination.onChange = function (pageInfo) {\n that.$emit(\"return-pagination-props\", pageInfo);\n };\n },\n immediate: true,\n deep: true,\n },\n },\n mounted() {\n if (this.headerFilters) {\n this.headerFilters.forEach((filter) => {\n this.filterForm[filter.keyName] = \"\";\n });\n }\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <div :class=\"`${PREFIX}-common-form`\">\n <t-form :class=\"`${PREFIX}-form`\" v-bind=\"commonFormProps\">\n <div :class=\"`${PREFIX}-form__body`\">\n <slot name=\"body\"> </slot>\n </div>\n </t-form>\n\n <div :class=\"`${PREFIX}-form__footer`\">\n <slot name=\"footer\"> </slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\n\nexport default {\n name: \"GCommonForm\",\n props: {\n commonFormProps: {\n required: true,\n },\n },\n data() {\n return {\n PREFIX,\n };\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <div class=\"g-form-editor\">\n <quillEditor v-model=\"value\" @change=\"handleEditorChange($event)\" />\n </div>\n</template>\n\n<script>\nimport { quillEditor } from \"vue-quill-editor\";\nimport \"quill/dist/quill.core.css\";\nimport \"quill/dist/quill.snow.css\";\n\nexport default {\n components: {\n quillEditor,\n },\n props: {\n modelValue: {\n required: true,\n },\n },\n data() {\n return {\n value: this.modelValue,\n };\n },\n watch: {\n modelValue() {\n this.value = this.modelValue;\n },\n },\n methods: {\n handleEditorChange(content) {\n this.$emit(\"update:modelValue\", content.html);\n },\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div :id=\"blockId\" :ref=\"name\">\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n name: String,\n blockType: String,\n showIf: {\n required: true,\n },\n },\n data() {\n return {\n blockId: \"\",\n };\n },\n methods: {\n updateId() {\n if (this.blockType == \"block_start\" && !this.showIf) {\n this.blockId = `start_${this.name}`;\n } else if (this.blockType == \"block_start\" && this.showIf) {\n this.blockId = `block_${this.name}`;\n } else if (this.blockType == \"block_end\") {\n this.blockId = `end_${this.name}`;\n }\n },\n handleClassShow() {\n if (this.blockType == \"block_start\" && !this.showIf) {\n let start = this.$refs[`${this.name}`];\n\n for (let el = start; el; el = el.nextElementSibling) {\n el.classList.add(\"block-item-hidden\");\n if (el.matches(`#end_${this.name}`)) {\n break;\n }\n }\n } else if (this.blockType == \"block_start\" && this.showIf) {\n let start = this.$refs[`${this.name}`];\n\n for (let el = start; el; el = el.nextElementSibling) {\n if (el.matches(`#end_${this.name}`)) {\n break;\n }\n el.classList.remove(\"block-item-hidden\");\n }\n }\n },\n },\n mounted() {\n this.updateId();\n this.handleClassShow();\n },\n watch: {\n showIf: {\n handler() {\n this.updateId();\n this.handleClassShow();\n },\n immediate: true,\n deep: true,\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n.block-item-hidden {\n display: none;\n}\n</style>\n","<template>\n <GCommonForm\n :commonFormProps=\"{\n data: formModel,\n rules: formRules,\n labelAlign: 'right',\n labelWidth: 160,\n ref: 'form',\n }\"\n ref=\"commonForm\"\n >\n <template #body>\n <template v-for=\"item in formItems\">\n <t-divider v-if=\"item.itemType === 'line' && item.name && handleItemShowIf(item.showIf)\" align=\"left\">\n {{ item.name }}\n </t-divider>\n <GFormBlock\n v-if=\"item.itemType == 'block_start' || item.itemType === 'block_end'\"\n :name=\"item.name\"\n :blockType=\"item.itemType\"\n :showIf=\"handleItemShowIf(item.showIf)\"\n />\n <t-form-item\n :id=\"item.name\"\n v-if=\"\n item.itemType !== 'line' &&\n item.itemType !== 'hidden' &&\n item.itemType !== 'block_start' &&\n item.itemType !== 'block_end' &&\n handleItemShowIf(item.showIf, item)\n \"\n :requiredMark=\"\n formWhiteList.indexOf(item.keyName) == -1 &&\n item.required &&\n !handleItemDisableIf(item.disableIf, item)\n \"\n :label=\"item.name\"\n :name=\"item.inputType != 'RE_PASSWORD' ? item.keyName : 'rePassword'\"\n >\n <!-- 标签展示 -->\n <GFormLabel v-if=\"item.itemType === 'label'\" :modelValue=\"getProperty(formModel, item.keyName)\" />\n <!-- 文字输入 -->\n <GFormInput\n v-if=\"item.itemType === 'text_input' && item.inputType != 'RE_PASSWORD'\"\n :inputType=\"item.inputType.toLowerCase()\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :placeholder=\"item.placeholder\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 确认密码输入 -->\n <GFormInput\n v-if=\"item.itemType === 'text_input' && item.inputType == 'RE_PASSWORD'\"\n :inputType=\"item.inputType.toLowerCase()\"\n :modelValue=\"getProperty(formModel, 'rePassword')\"\n :placeholder=\"item.placeholder\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue('rePassword', $event)\"\n />\n\n <!-- 多选框 -->\n <GFormCheckBox\n v-if=\"item.itemType === 'check_box'\"\n :modelValue=\"getProperty(formModel, item.keyName, false)\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n <!-- 开关 -->\n <GFormSwitch\n v-if=\"item.itemType === 'switch'\"\n :target=\"item\"\n :modelValue=\"getProperty(formModel, item.keyName, false)\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n <!-- 单选框 -->\n <GFormRadio\n v-if=\"item.itemType === 'radio'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 选择器 -->\n <GFormSelect\n v-if=\"item.itemType === 'selector' || item.itemType === 'multi_selector'\"\n :key=\"item.listData.dataId\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :multiple=\"item.itemType === 'multi_selector'\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 日期时间选择器 -->\n <GFormSelectDateTime\n v-if=\"\n item.itemType === 'date_selector' ||\n item.itemType === 'time_selector' ||\n item.itemType === 'date_time_selector'\n \"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 多级选择框 -->\n <GFormTreeCheckBox\n v-if=\"item.itemType === 'tree_check_box'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 级联选择器 -->\n <GFormCascader\n v-if=\"item.itemType === 'multi_tree_selector' || item.itemType === 'tree_selector'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :targetViewName=\"viewName\"\n :multiple=\"item.itemType === 'multi_tree_selector'\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 文件上传 -->\n <GFormUpload\n v-if=\"item.itemType === 'file'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :target=\"item\"\n :target-view-name=\"viewName\"\n :tips=\"item.placeholder || '请选择上传文件'\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n :fileName=\"\n getProperty(formModel, item.filenameKeyName) ||\n getProperty(formModel, item.keyName).split('/').slice(-1)[0]\n \"\n @update:fileName=\"handleAfterUpload(item.filenameKeyName, $event)\"\n @update:modelValue=\"handleAfterUpdateValue(item.keyName, $event)\"\n />\n\n <!-- 富文本编辑器 -->\n <GFormEditor\n v-if=\"item.itemType === 'rich_text'\"\n :modelValue=\"getProperty(formModel, item.keyName)\"\n :disabled=\"handleItemDisableIf(item.disableIf)\"\n />\n </t-form-item>\n </template>\n </template>\n <template #footer>\n <t-button theme=\"default\" v-if=\"formCancelButton.name !== ''\" @click=\"handleButtonClick(formCancelButton)\">\n {{ formCancelButton.name }}\n </t-button>\n <t-button theme=\"primary\" v-if=\"formOkButton.name !== ''\" @click=\"handleButtonClick(formOkButton)\">\n {{ formOkButton.name }}\n </t-button>\n </template>\n </GCommonForm>\n</template>\n\n<script>\nimport GCommonForm from \"../common/GCommonForm/index.vue\";\nimport GFormLabel from \"./components/GFormLabel.vue\";\nimport GFormInput from \"./components/GFormInput.vue\";\nimport GFormCheckBox from \"./components/GFormCheckBox.vue\";\nimport GFormSwitch from \"./components/GFormSwitch.vue\";\nimport GFormRadio from \"./components/GFormRadio.vue\";\nimport GFormSelect from \"./components/GFormSelect.vue\";\nimport GFormSelectDateTime from \"./components/GFormSelectDateTime.vue\";\nimport GFormTreeCheckBox from \"./components/GFormTreeCheckBox.vue\";\nimport GFormCascader from \"./components/GFormCascader.vue\";\nimport GFormUpload from \"./components/GFormUpload.vue\";\nimport GFormEditor from \"./components/GFormEditor.vue\";\nimport GFormBlock from \"./components/GFormBlock.vue\";\n\nimport { PREFIX } from \"../../config\";\nimport { evalContext, vFun, getProperty, setProperty, deepClone, isVoid } from \"../../utils\";\nimport Mustache from \"mustache\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nwindow.v = vFun;\nexport default {\n name: \"GForm\",\n components: {\n GCommonForm,\n GFormLabel,\n GFormInput,\n GFormCheckBox,\n GFormSwitch,\n GFormRadio,\n GFormSelect,\n GFormSelectDateTime,\n GFormTreeCheckBox,\n GFormCascader,\n GFormUpload,\n GFormEditor,\n GFormBlock,\n },\n props: {\n viewName: String,\n boardInfo: Object,\n formData: Object,\n },\n data() {\n return {\n PREFIX,\n formModel: {},\n formRules: {},\n formWhiteList: [\"userInfoNameEn\", \"cardNum\", \"attend\", \"userInfoRoleKey\"],\n };\n },\n computed: {\n formItems() {\n return this.boardInfo.formItems;\n },\n formOkButton() {\n return this.boardInfo.okButton;\n },\n formCancelButton() {\n return this.boardInfo.cancelButton;\n },\n },\n methods: {\n getProperty,\n initEmptyFormItems(itemType) {\n switch (itemType) {\n // 开关和勾选框的初始值 false\n case \"check_box\":\n case \"switch\": {\n return false;\n }\n\n case \"multi_selector\":\n case \"tree_check_box\":\n case \"multi_tree_selector\": {\n return [];\n }\n\n default: {\n return null;\n }\n }\n },\n initFormRules() {\n const currentFormItems = [];\n this.$refs.commonForm.$children.forEach((item) => {\n item.$children.forEach((item) => {\n if ((item.$el.id ?? \"\") != \"\" && !item.$el.classList.contains(\"block-item-hidden\")) {\n currentFormItems.push(item.$vnode.componentOptions.propsData);\n }\n });\n });\n\n let tempRules = {};\n if (currentFormItems.length) {\n // 处理表单项的必填规则\n currentFormItems.forEach((item) => {\n // console.log(currentFormItems);\n let itemTempRules = [];\n if (item.requiredMark && (item.name ?? \"\") != \"\") {\n itemTempRules.push({\n validator: () => {\n if (isVoid(getProperty(this.formModel, item.name))) {\n return { result: true };\n } else {\n const itemName = item.label.replace(/\\s/g, \"\").replace(/[::;\\s]/g, \"\");\n return {\n result: false,\n message: `${itemName}为必填项!`,\n };\n }\n },\n trigger: \"blur\",\n });\n }\n\n if (item.name == \"rePassword\") {\n itemTempRules.push({\n validator: () => {\n return {\n result:\n getProperty(this.formModel, \"password\") ==\n getProperty(this.formModel, \"rePassword\"),\n message: `两次输入密码不一致!`,\n };\n },\n trigger: \"blur\",\n });\n }\n\n if (item.name == \"startTime\" || item.name == \"endTime\") {\n itemTempRules.push({\n validator: () => {\n return {\n result:\n getProperty(this.formModel, \"endTime\") -\n getProperty(this.formModel, \"startTime\") >\n 0,\n\n message: `结束时间不能早于开始时间!`,\n };\n // return {\n // result: true,\n // };\n },\n });\n }\n\n if (itemTempRules.length) {\n tempRules[item.name] = itemTempRules;\n }\n });\n }\n\n this.formRules = { ...tempRules };\n },\n handleButtonClick(button) {\n switch (button.action) {\n case \"CONFIRM\": {\n this.$refs.commonForm.$refs.form.validate().then((result) => {\n if (!Object.keys(result).length) {\n this.$emit(\"confirm-form\", this.formModel, button.buttonId);\n } else {\n const firstError = Object.values(result)[0]?.[0]?.message;\n MessagePlugin.warning(`${firstError}`);\n }\n });\n break;\n }\n case \"CONFIRM_AND_CLOSE\": {\n this.$refs.commonForm.$refs.form.validate().then((result) => {\n if (!Object.keys(result).length) {\n this.$emit(\"confirm-and-close\", this.formModel, button.buttonId);\n } else {\n const firstError = Object.values(result)[0]?.[0]?.message;\n MessagePlugin.warning(`${firstError}`);\n }\n });\n break;\n }\n case \"CLOSE_DIALOG\": {\n this.$emit(\"close-dialog\");\n break;\n }\n default: {\n console.log(button);\n break;\n }\n }\n },\n handleAfterUpdateValue(keyName, value) {\n setProperty(this.formModel, keyName, value);\n this.$forceUpdate();\n this.$nextTick(() => {\n this.initFormRules();\n this.$refs.commonForm.$refs.form.validate({ fields: [keyName] });\n });\n },\n handleAfterUpload(keyName, value) {\n if ((keyName ?? \"\") != \"\") {\n setProperty(this.formModel, keyName, value);\n }\n this.$forceUpdate();\n },\n handleItemShowIf(showIf, item = {}) {\n if (typeof showIf != \"undefined\" && showIf != 1) {\n let result, evalResult;\n try {\n result = Mustache.render(showIf, { form: this.formModel });\n evalResult = evalContext(result, { form: this.formModel });\n // console.log(\"showIf\", showIf, \"mustacheResult\", result, \"evalResult\", evalResult);\n // console.log(showIf, result, evalResult);\n } catch (e) {\n console.warn(showIf, e);\n }\n\n // 设置为隐藏后清空表单填写过的数据,以防提交非空数据\n // if (evalResult !== \"\") {\n // if (!evalResult && (item?.keyName ?? \"\" != \"\")) {\n // setProperty(this.formModel, item.keyName, this.initEmptyFormItems(item.itemType));\n // }\n // }\n\n return evalResult;\n } else {\n return true;\n }\n },\n handleItemDisableIf(disableIf, item = {}) {\n if (disableIf != 0) {\n let result, evalResult;\n try {\n result = Mustache.render(disableIf, { form: this.formModel });\n evalResult = evalContext(result, { form: this.formModel });\n // console.log(\"disableIf\", disableIf, \"mustacheResult\", result, \"evalResult\", evalResult);\n // console.log(disableIf, result, evalResult);\n } catch (e) {\n console.warn(disableIf, e);\n }\n\n // 设置为禁用后清空表单填写过的数据,以防提交非空数据\n if (evalResult !== \"\") {\n if (evalResult && (item?.keyName ?? \"\" != \"\")) {\n setProperty(this.formModel, item.keyName, this.initEmptyFormItems(item.itemType));\n }\n }\n\n return evalResult;\n } else {\n return false;\n }\n },\n },\n watch: {\n formData: {\n handler() {\n if (Object.keys(this.formData).length) {\n this.formItems.forEach((formItem) => {\n if (formItem.keyName && !isVoid(getProperty(this.formData, formItem.keyName))) {\n if (formItem.itemType == \"check_box\" || formItem.itemType == \"switch\") {\n setProperty(this.formData, formItem.keyName, false);\n }\n }\n });\n\n this.formModel = deepClone(this.formData, {});\n // this.$forceUpdate();\n } else {\n let tempModel = {};\n this.formItems.forEach((formItem) => {\n // 设置表单项目的初始值\n if ((formItem.keyName ?? \"\") != \"\") {\n setProperty(tempModel, formItem.keyName, this.initEmptyFormItems(formItem.itemType));\n }\n });\n\n this.formModel = deepClone(tempModel, {});\n // this.$forceUpdate();\n }\n },\n deep: true,\n immediate: true,\n },\n },\n mounted() {\n this.initFormRules();\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <t-tabs :class=\"`${PREFIX}-tab`\" placement=\"left\" :value=\"currentTabTitle\" @change=\"handleTabChange\">\n <t-tab-panel v-for=\"tab in tabs\" :key=\"tab.title\" :value=\"tab.title\" :label=\"tab.title\">\n <t-card :bordered=\"false\">\n <template slot=\"content\">\n <GTemplate v-if=\"tab.board\" :viewName=\"viewName\" :board=\"tab.board\" />\n </template>\n </t-card>\n </t-tab-panel>\n </t-tabs>\n</template>\n\n<script>\nimport { PREFIX } from \"../../config\";\n\nexport default {\n components: {\n GTemplate: () => import(\"../GTemplate/index.vue\").then((d) => d.default),\n },\n name: \"GTab\",\n props: {\n viewName: String,\n boardInfo: Object,\n },\n computed: {\n tabs() {\n return this.boardInfo.tabs;\n },\n },\n data() {\n return {\n PREFIX,\n currentTabTitle: this.boardInfo.tabs[0].title,\n };\n },\n methods: {\n handleTabChange(newTabTitle) {\n this.currentTabTitle = newTabTitle;\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <transition name=\"fade\">\n <t-dialog :class=\"`${PREFIX}-common-dialog`\" v-bind=\"commonDialogProps\">\n <template #header>\n <slot name=\"header\"></slot>\n </template>\n <template #body>\n <slot name=\"body\"></slot>\n </template>\n <template #default>\n <slot name=\"default\"></slot>\n </template>\n <template #footer>\n <slot name=\"footer\"></slot>\n </template>\n </t-dialog>\n </transition>\n</template>\n\n<script>\nimport { PREFIX } from \"../../../config\";\n\nexport default {\n name: \"GCommonDialog\",\n props: {\n commonDialogProps: {\n required: true,\n },\n },\n data() {\n return {\n PREFIX,\n };\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <GCommonDialog\n :commonDialogProps=\"{\n width: dialogWidth,\n header: dialogHeaderName,\n footer: false,\n visible: isVisible,\n onClose: handleDialogChange,\n }\"\n >\n <div slot=\"body\">\n <GTemplate\n v-if=\"viewBoard\"\n :viewName=\"dialogViewName\"\n :board=\"viewBoard\"\n :dialogProps=\"dialogProps\"\n @close-dialog=\"handleCloseDialog\"\n />\n </div>\n </GCommonDialog>\n</template>\n\n<script>\nimport GCommonDialog from \"../common/GCommonDialog/index.vue\";\nimport { PREFIX } from \"../../config\";\nimport { getOneView } from \"../../api/modules/view\";\nexport default {\n name: \"GDialog\",\n components: {\n GCommonDialog,\n GTemplate: () => import(\"../GTemplate/index.vue\").then((d) => d.default),\n },\n props: {\n dialogViewInfo: Object,\n dialogFormModel: Object,\n isVisible: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n PREFIX,\n viewInfo: {},\n viewBoard: {},\n viewProps: [],\n };\n },\n computed: {\n dialogWidth() {\n switch (this.viewBoard?.boardType) {\n case \"table\":\n return \"60%\";\n\n case \"tab\":\n return \"60%\";\n\n default:\n return \"40%\";\n }\n },\n dialogHeaderName() {\n return this.dialogViewInfo.name;\n },\n dialogViewName() {\n return this.dialogViewInfo.view;\n },\n dialogProps() {\n return this.$store.getters[\"props/getPropsByPropsKey\"](this.viewProps);\n },\n viewName() {\n return this.dialogViewInfo.view;\n },\n },\n methods: {\n handleDialogChange() {\n this.$emit(\"update:isVisible\", false);\n },\n handleCloseDialog() {\n this.$emit(\"close-dialog\");\n },\n\n async getViewInfo(viewName, props) {\n props.viewName = viewName;\n\n const res = await getOneView(props);\n\n if (res.state === 200) {\n this.viewInfo = res.data;\n this.viewBoard = res.data.boards?.[0];\n this.viewProps = res.data?.props;\n }\n },\n },\n watch: {\n dialogViewInfo() {\n this.getViewInfo(this.dialogViewName, {});\n },\n },\n mounted() {\n this.getViewInfo(this.dialogViewName, {});\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import \"./style.scss\";\n</style>\n","<template>\n <div :class=\"`${PREFIX}-template`\">\n <!-- 头部操作 -->\n <GHeader\n v-if=\"headerInfo\"\n :viewName=\"viewName\"\n :viewProps=\"viewProps\"\n :headerInfo=\"headerInfo\"\n @header-button-action=\"handleAction\"\n @header-filter-change=\"handleHeaderFilterChange\"\n />\n <!-- 表格视图 -->\n <GTable\n v-if=\"boardType == 'table'\"\n :viewName=\"viewName\"\n :viewProps=\"viewProps\"\n :boardInfo=\"board\"\n :tableData=\"tableData\"\n :paginationProps=\"tablePaginationProps\"\n @table-button-action=\"handleAction\"\n @table-form-confirm=\"handleTableFormConfirm\"\n @return-pagination-props=\"handleSetPaginationProps\"\n @return-selected-key=\"handleReturnSelectedKey\"\n />\n <!-- 表单视图 -->\n <GForm\n v-if=\"boardType == 'form'\"\n :viewName=\"viewName\"\n :viewProps=\"viewProps\"\n :boardInfo=\"board\"\n :formData=\"formData\"\n @confirm-form=\"handleConfirmForm\"\n @close-dialog=\"handleCloseDialogEvent\"\n @confirm-and-close=\"handleConfirmAndClose\"\n />\n <!-- Tab视图 -->\n <GTab v-if=\"boardType == 'tab'\" :viewName=\"viewName\" :viewProps=\"viewProps\" :boardInfo=\"board\" />\n\n <!-- 对话框 -->\n <GDialog\n v-if=\"isDialogVisible\"\n :isVisible.sync=\"isDialogVisible\"\n :dialog-view-info=\"dialogViewInfo\"\n :dialog-form-model=\"dialogFormModel\"\n @close-dialog=\"handleCloseDialog\"\n />\n </div>\n</template>\n\n<script>\nimport GHeader from \"../GHeader/index.vue\";\nimport GTable from \"../GTable/index.vue\";\nimport GForm from \"../GForm/index.vue\";\nimport GTab from \"../GTab/index.vue\";\nimport GDialog from \"../GDialog/index.vue\";\n\nimport { MessagePlugin, DialogPlugin } from \"tdesign-vue\";\n\nimport { getViewData, batchAction, confirm } from \"../../api/modules/view\";\nimport { PREFIX, LOCAL_DATA_ID } from \"../../config\";\n\nimport Mustache from \"mustache\";\nimport he from \"he\";\n\n// 初始化表格分页数据\nconst initTablePaginationProps = {\n count: 10,\n page: 0,\n totalCount: 0,\n pageCount: 0,\n};\n\nexport default {\n name: \"GTemplate\",\n components: {\n GHeader,\n GTable,\n GForm,\n GTab,\n GDialog,\n },\n props: {\n // 当前模板信息\n board: Object,\n // 当前模板视图名称\n viewName: String,\n // 当前视图所需参数\n viewProps: Array || Object,\n\n // 传入查询参数\n dialogProps: Object,\n },\n data() {\n return {\n PREFIX,\n // 路径查询参数\n queryProps: {},\n\n // 头部搜索框数据\n headerFilterProps: {},\n\n // 表格数据\n tableData: [],\n // 表单数据\n formData: {},\n\n // 表格选中数据\n tableSelectedData: [],\n\n // 表格视图分页数据\n tablePaginationProps: {\n count: 10,\n page: 0,\n totalCount: 0,\n pageCount: 0,\n },\n\n // 对话框相关\n isDialogVisible: false,\n dialogFormModel: {},\n dialogViewInfo: {},\n };\n },\n computed: {\n // 模板种类\n boardType() {\n return this.board.boardType;\n },\n // 头部信息\n headerInfo() {\n return this.board.header;\n },\n // 数据Id\n dataId() {\n if (this.board.data || this.board.tableData) {\n if (this.boardType === \"table\") {\n return this.board.tableData.dataId;\n } else {\n return this.board.data.dataId;\n }\n } else {\n return null;\n }\n },\n\n // 合并获取数据参数模型\n propsModel() {\n let tempModel = {};\n // 头部搜索过滤参数\n if (this.headerInfo && this.headerFilterProps) {\n Object.assign(tempModel, this.headerFilterProps);\n }\n\n // 对话框表单查询参数\n if (this.dialogProps) {\n Object.assign(tempModel, this.dialogProps);\n }\n\n // // 表格分页参数\n if (this.boardType === \"table\") {\n Object.assign(tempModel, this.tablePaginationProps);\n }\n\n // 地址查询参数\n Object.assign(tempModel, this.queryProps);\n return tempModel;\n },\n },\n watch: {\n \"this.$route.query\": {\n handler(newValue) {\n const { query } = this.$route;\n\n if (query.props != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n board: {\n handler() {\n // 对话框传入视图数据时获取表单数据\n this.getTemplateData();\n },\n deep: true,\n },\n },\n methods: {\n // 处理按钮动作\n handleAction(button, row = {}) {\n switch (button.action) {\n // 打开对话框动作\n case \"VIEW_BY_DIALOG\": {\n this.isDialogVisible = true;\n this.dialogViewInfo = button;\n this.dialogFormModel = { ...row };\n this.$store.dispatch(\"props/initSource\", row);\n break;\n }\n // 打开新的视图\n case \"VIEW\": {\n let tempProps = {};\n button.props.forEach((item) => {\n tempProps[item.keyName] = row[item.keyName];\n });\n\n this.$router.push({\n path: `/view`,\n query: {\n viewName: button.view,\n props: JSON.stringify(tempProps),\n },\n });\n break;\n }\n // 确认框\n case \"CONFIRM\": {\n let message; // 确认信息\n if (button.confirmMessage != \"\") {\n message = Mustache.render(button.confirmMessage, { item: row });\n } else {\n message = `是否确定${button.name}`;\n }\n\n let tempProps = {};\n if (button.props) {\n button.props.forEach((item) => {\n if (row[item.keyName] ?? \"\" != \"\") {\n tempProps[item.keyName] = row[item.keyName];\n }\n });\n } else {\n tempProps = { ...row };\n }\n\n const dialogInstance = DialogPlugin.confirm({\n theme: \"info\",\n header: button.name,\n body: message,\n onConfirm: () => {\n this.handleConfirmForm(tempProps, button.buttonId);\n dialogInstance.destroy();\n },\n onCancel: () => {\n MessagePlugin.info(`已取消${button.name}`);\n },\n });\n\n break;\n }\n\n // 批量选择\n case \"BATCH\": {\n const dialogInstance = DialogPlugin.confirm({\n theme: \"info\",\n header: button.name,\n body: `此操作将${button.name},是否继续`,\n onConfirm: () => {\n if (this.tableSelectedData.length == 0) {\n MessagePlugin.error(\"请选择操作对象!\");\n } else {\n this.handleBatchAction(button, this.tableSelectedData);\n }\n\n dialogInstance.destroy();\n },\n onCancel: () => {\n MessagePlugin.info(`已取消${button.name}`);\n },\n });\n break;\n }\n\n // 打开链接动作\n case \"LINK\": {\n this.$router.push(button.link);\n break;\n }\n\n case \"DOWNLOAD\": {\n if ((button.downloadUrl ?? \"\") != \"\") {\n const url = he.decode(Mustache.render(button.downloadUrl, { item: row }));\n\n if ((url ?? \"\") != \"\") {\n const fileName = url.split(\"/\").slice(-1)[0];\n\n const downloadEl = document.createElement(\"a\");\n downloadEl.style.display = \"none\";\n downloadEl.setAttribute(\"target\", \"_blank\");\n fileName && downloadEl.setAttribute(\"download\", fileName);\n downloadEl.setAttribute(\"href\", url);\n downloadEl.click();\n }\n } else {\n MessagePlugin.info(\"未设置下载链接\");\n }\n break;\n }\n\n default: {\n // console.log(\"未设置按钮动作:\", button);\n break;\n }\n }\n },\n\n // 处理头部搜索框改变事件\n handleHeaderFilterChange(filterProps) {\n this.headerFilterProps = filterProps;\n this.getTemplateData();\n },\n\n // 处理表格多选操作\n handleReturnSelectedKey(value) {\n this.tableSelectedData = value;\n },\n\n // 处理表格分页操作\n handleSetPaginationProps(propsModel) {\n Object.assign(this.tablePaginationProps, {\n page: propsModel.current - 1,\n count: propsModel.pageSize,\n });\n\n this.getTemplateData();\n },\n\n // 处理表格批量提交\n async handleBatchAction(item, list) {\n let batchProps = {};\n\n const { query } = this.$route;\n if (query.props != null) {\n batchProps = { ...JSON.parse(query.props) };\n }\n\n let res = await batchAction({\n viewName: this.viewName,\n buttonId: item.buttonId,\n props: batchProps,\n keys: list,\n });\n\n if (res.state == 200) {\n MessagePlugin.success(`${item.name} 操作成功!`);\n } else {\n MessagePlugin.error(`操作出错:${res.message}`);\n }\n },\n\n handleTableFormConfirm(formItem, formModel) {\n if (\n formItem.itemType == \"selector\" ||\n formItem.itemType == \"time_selector\" ||\n formItem.itemType == \"date_time_selector\" ||\n formItem.itemType == \"tree_check_box\" ||\n formItem.itemType === \"multi_tree_selector\" ||\n formItem.itemType === \"tree_selector\"\n ) {\n const dialogInstance = DialogPlugin.confirm({\n theme: \"info\",\n body: `此操作将提交该修改,是否继续?`,\n onConfirm: () => {\n this.handleConfirmForm(formModel, formItem.buttonId);\n\n dialogInstance.destroy();\n },\n onCancel: () => {\n MessagePlugin.info(`已取消修改。`);\n },\n });\n } else {\n this.handleConfirmForm(formModel, formItem.buttonId);\n }\n },\n\n // 处理表单提交\n async handleConfirmForm(formModel, buttonId) {\n let confirmProps = {};\n confirmProps = { ...this.propsModel };\n Object.assign(confirmProps, formModel);\n\n const res = await confirm({\n buttonId: buttonId,\n props: confirmProps,\n viewName: this.viewName,\n });\n\n if (res.state === 200) {\n MessagePlugin.success(\"提交成功\");\n } else {\n MessagePlugin.error(`提交失败:${res.message}`);\n }\n },\n // 处理对话框关闭\n handleCloseDialog() {\n this.isDialogVisible = false;\n },\n // 处理对话框关闭事件\n handleCloseDialogEvent() {\n this.$emit(\"close-dialog\");\n },\n // 处理对话框提交并关闭\n handleConfirmAndClose(model, buttonId) {\n this.handleConfirmForm(model, buttonId);\n this.$emit(\"close-dialog\");\n },\n\n // 获取当前视图模板数据\n async getTemplateData() {\n let res;\n if (this.dataId !== null) {\n localStorage.setItem(LOCAL_DATA_ID, this.dataId);\n\n res = await getViewData({\n viewName: this.viewName,\n dataId: this.dataId,\n props: this.propsModel,\n });\n\n this.$store.dispatch(\"socket/sendRegisterMessage\", this.dataId);\n\n if (res.state === 200 && res.data) {\n if (this.boardType == \"table\") {\n this.tablePaginationProps = {\n count: res.data.count,\n page: res.data.page,\n pageCount: res.data.pageCount,\n totalCount: res.data.totalCount,\n };\n this.tableData = res.data.data;\n }\n\n if (this.boardType === \"form\") {\n this.formData = res.data;\n }\n } else {\n // todo 重复请求数据报错\n console.warn(res);\n // MessagePlugin.error(`数据获取出错 ${res.message}`);\n }\n }\n },\n },\n mounted() {\n this.getTemplateData();\n\n window.addEventListener(\"onUpdateMessage\", (event) => {\n const updatedDataId = event?.detail.args.dataId;\n // const currentDataId = localStorage.getItem(LOCAL_DATA_ID);\n if (this.dataId === updatedDataId) {\n // console.log(updatedDataId, \"数据更新了,重新获取数据\");\n this.getTemplateData();\n }\n });\n },\n};\n</script>\n\n<style lang=\"scss\" scoped></style>\n","<template>\n <div :class=\"`${PREFIX}-template-view`\">\n <t-loading :loading=\"isLoading\" :delay=\"isLoadingDelay\">\n <transition name=\"fade\" mode=\"out-in\">\n <GTemplate\n v-for=\"board in viewBoards\"\n :board=\"board\"\n :viewName=\"viewName\"\n :viewProps=\"viewProps\"\n :key=\"Date.now()\"\n />\n </transition>\n </t-loading>\n </div>\n</template>\n\n<script>\nimport GTemplate from \"../GTemplate/index.vue\";\nimport { getOneView } from \"../../api/modules/view\";\nimport { MessagePlugin } from \"tdesign-vue\";\nimport { PREFIX } from \"../../config\";\n\nexport default {\n name: \"GTemplateView\",\n components: {\n GTemplate,\n },\n computed: {\n // view标题\n title() {\n return this.viewInfo?.title;\n },\n // view名称\n viewName() {\n return this.$route.query?.viewName;\n },\n // view版面信息\n viewBoards() {\n return this.viewInfo?.boards;\n },\n // view所需参数\n viewProps() {\n return this.viewInfo?.props;\n },\n // 路径查询参数\n queryProps() {\n const { query } = this.$route.query;\n if (query != null) {\n return JSON.parse(query.props);\n } else {\n return null;\n }\n },\n },\n data() {\n return {\n PREFIX,\n viewInfo: {},\n isLoading: false,\n isLoadingDelay: 500,\n };\n },\n methods: {\n async getViewInfo(viewName, props) {\n props.viewName = viewName;\n\n if (this.queryProps != null) {\n Object.assign(props, this.queryProps);\n }\n\n if ((viewName ?? \"\") != \"\") {\n this.isLoading = true;\n const res = await getOneView(props);\n if (res.state === 200 && res.data) {\n this.viewInfo = res.data;\n this.$emit(\"return-title\", this.title);\n this.appendNewTabMenuItem();\n this.isLoading = false;\n } else {\n this.isLoading = false;\n MessagePlugin.error(`${this.viewName} 目标视图数据为空`);\n }\n }\n },\n appendNewTabMenuItem() {\n const { fullPath, query } = this.$route;\n const path = decodeURIComponent(fullPath);\n\n this.$store.dispatch(\"setting/appendTabMenuItem\", {\n title: this.title,\n path,\n query,\n });\n },\n },\n watch: {\n // 当路由地址的视图名称参数改变时重新获取数据\n viewName() {\n this.getViewInfo(this.viewName, {});\n },\n\n \"this.$route.query\": {\n handler() {\n const { query } = this.$route;\n\n if (query.pros != null) {\n this.queryProps = JSON.parse(query.props);\n }\n },\n deep: true,\n immediate: true,\n },\n },\n mounted() {\n // 获取模板数据\n this.getViewInfo(this.viewName, {});\n },\n};\n</script>\n","<template>\n <GLayout :config=\"config\" :title=\"title\">\n <GTemplateView @return-title=\"handleReturnTitle\" v-if=\"isGlobalLoaded\" />\n </GLayout>\n</template>\n\n<script>\nimport GLayout from \"../GLayout/index.vue\";\nimport GTemplateView from \"../GTemplateView/index.vue\";\nimport { PREFIX } from \"../../config\";\n\nexport default {\n name: \"GView\",\n components: {\n GLayout,\n GTemplateView,\n },\n props: {\n config: Object,\n },\n data() {\n return {\n PREFIX,\n title: \"\",\n };\n },\n computed: {\n isGlobalLoaded() {\n return this.$store.state.setting.isGlobalLoaded;\n },\n },\n methods: {\n handleReturnTitle(title) {\n this.title = title;\n },\n handleReload() {\n this.$store.dispatch(\"setting/reloadGlobal\");\n },\n },\n mounted() {\n window.addEventListener(\"onSocketReload\", () => {\n this.handleReload();\n });\n },\n};\n</script>\n\n<style lang=\"scss\"></style>\n","import { TabMenuItem } from \"../types\";\nimport { handleInitMenuTree, getHomeMenuInfo, getInitMenuUrl } from \"../utils\";\nimport {\n LOCAL_CONFIG,\n LOCAL_THEME_CONFIG,\n LOCAL_MENU,\n LOCAL_USER,\n LOCAL_TAB_MENU,\n TOKEN_EXPIRED_TIME,\n TOKEN_NAME,\n THEME_CONFIG,\n} from \"../config\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nconst initTabMenuList: TabMenuItem[] = [getHomeMenuInfo()];\n\nexport interface UserConfig {\n userInfo: any;\n userMenu: any;\n userToken: {\n token: string;\n tokenExpiredTime: string;\n };\n\n // 登录后首次加载的页面地址\n userInitUrl?: string;\n\n // 上传相关接口\n uploadApi: \"\";\n}\n\nexport type ThemeConfigType = typeof THEME_CONFIG;\n\nexport interface SettingState {\n isGlobalLoaded: boolean;\n isSideBarCollapse: boolean;\n isSettingPanelShow: boolean;\n tabMenuList: TabMenuItem[];\n\n themeConfig: ThemeConfigType;\n config: UserConfig;\n}\n\nconst state = () => ({\n // 加载标志\n isGlobalLoaded: true,\n\n // 基本配置\n isSideBarCollapse: false,\n isSettingPanelShow: false,\n tabMenuList: JSON.parse(sessionStorage.getItem(LOCAL_TAB_MENU) as string) || initTabMenuList,\n\n // 主题配置\n themeConfig: JSON.parse(localStorage.getItem(LOCAL_THEME_CONFIG) as string) || {\n ...THEME_CONFIG,\n },\n\n // 用户传入GView的信息与配置\n config: JSON.parse(localStorage.getItem(LOCAL_CONFIG) as string) || {\n userInfo: {},\n userPermissions: [],\n userMenu: [],\n userToken: {\n token: \"\",\n tokenExpiredTime: \"\",\n },\n uploadApi: \"\",\n },\n});\n\nconst getters = {\n userMenu: (state: SettingState) => state.config.userMenu,\n userInitUrl: (state: SettingState) => state.config.userInitUrl,\n userRealName: (state: SettingState) => state.config.userInfo.realName,\n token: (state: SettingState) => state.config.userToken.token,\n tokenExpiredTime: (state: SettingState) => state.config.userToken.tokenExpiredTime,\n uploadApi: (state: SettingState) => state.config.uploadApi,\n\n displayMode: (state: SettingState) => {\n if (state.themeConfig.displayMode === \"auto\") {\n const media = window.matchMedia(\"(prefers-color-scheme:dark)\");\n if (media.matches) {\n return \"dark\";\n }\n return \"light\";\n }\n return state.themeConfig.displayMode;\n },\n};\n\nconst mutations = {\n setGlobalLoadingStatus(state: SettingState, status) {\n state.isGlobalLoaded = status;\n },\n toggleSideBarCollapse(state: SettingState) {\n state.isSideBarCollapse = !state.isSideBarCollapse;\n },\n toggleSettingPanel(state: SettingState) {\n state.isSettingPanelShow = !state.isSettingPanelShow;\n },\n\n setTabMenuList(state: SettingState, tabMenuList: TabMenuItem[]) {\n sessionStorage.setItem(LOCAL_TAB_MENU, JSON.stringify(tabMenuList));\n state.tabMenuList = tabMenuList;\n },\n\n // 设置用户传入的配置\n setSettingConfig(state: SettingState, config) {\n localStorage.setItem(LOCAL_CONFIG, JSON.stringify(config));\n Object.keys(config).forEach((configKey) => {\n state.config[configKey] = config[configKey];\n });\n },\n\n setThemeSettingConfig(state: SettingState, config) {\n localStorage.setItem(LOCAL_THEME_CONFIG, JSON.stringify(config));\n Object.keys(config).forEach((configKey) => {\n state.themeConfig[configKey] = config[configKey];\n });\n },\n};\n\nconst actions = {\n reloadGlobal({ commit }) {\n commit(\"setGlobalLoadingStatus\", false);\n\n setTimeout(function () {\n commit(\"setGlobalLoadingStatus\", true);\n });\n },\n\n initSettingConfig({ commit }, config: UserConfig) {\n const { userMenu } = config;\n // 处理生成侧边菜单树\n let menuTree = handleInitMenuTree(userMenu);\n\n // 处理获取登录后首次加载的页面\n config.userInitUrl = getInitMenuUrl([...menuTree]);\n config.userMenu = [...menuTree];\n\n commit(\"setSettingConfig\", config);\n },\n\n userLogout() {\n localStorage.removeItem(LOCAL_CONFIG);\n sessionStorage.removeItem(LOCAL_USER);\n sessionStorage.removeItem(LOCAL_MENU);\n sessionStorage.removeItem(LOCAL_TAB_MENU);\n sessionStorage.removeItem(TOKEN_NAME);\n sessionStorage.removeItem(TOKEN_EXPIRED_TIME);\n\n MessagePlugin.success(\"退出登录成功\");\n },\n\n loadLocalTheme({ commit, dispatch, state }) {\n let { themeConfig } = state;\n dispatch(\"changeMode\", themeConfig);\n dispatch(\"changeBrandTheme\", themeConfig);\n commit(\"setThemeSettingConfig\", themeConfig);\n },\n\n changeTheme({ commit, dispatch }, themeConfig) {\n dispatch(\"changeMode\", themeConfig);\n dispatch(\"changeBrandTheme\", themeConfig);\n commit(\"setThemeSettingConfig\", themeConfig);\n },\n changeMode(_: { state: SettingState }, themeConfig) {\n let theme = themeConfig.displayMode;\n if (themeConfig.displayMode === \"auto\") {\n const media = window.matchMedia(\"(prefers-color-scheme:dark)\");\n if (media.matches) {\n theme = \"dark\";\n } else {\n theme = \"light\";\n }\n }\n const isDarkMode = theme === \"dark\";\n\n document.documentElement.setAttribute(\"theme-mode\", isDarkMode ? \"dark\" : \"\");\n },\n changeBrandTheme(_: { state: SettingState }, themeConfig) {\n const { brandTheme } = themeConfig;\n\n document.documentElement.setAttribute(\"theme-color\", brandTheme);\n },\n\n initTabMenu({ commit }) {\n commit(\"setTabMenuList\", [getHomeMenuInfo()]);\n },\n\n appendTabMenuItem({ commit, state }, newItem: TabMenuItem) {\n if (!state.tabMenuList.find((item) => item.path === newItem.path)) {\n commit(\"setTabMenuList\", state.tabMenuList.concat({ ...newItem }));\n }\n },\n\n subtractCurrentTabMenuItem({ commit, state }, newItem: TabMenuItem) {\n const { itemIdx } = newItem;\n commit(\"setTabMenuList\", state.tabMenuList.slice(0, itemIdx).concat(state.tabMenuList.slice(itemIdx + 1)));\n },\n subtractTabMenuItemBehind({ commit, state }, newItem: TabMenuItem) {\n const { itemIdx } = newItem;\n commit(\"setTabMenuList\", state.tabMenuList.slice(0, itemIdx + 1));\n },\n subtractTabMenuItemAhead({ commit, state }, newItem: TabMenuItem) {\n const { itemIdx } = newItem;\n commit(\"setTabMenuList\", initTabMenuList.concat(state.tabMenuList.slice(itemIdx)));\n },\n subtractTabMenuItemOther({ commit, state }, newItem: TabMenuItem) {\n const { itemIdx } = newItem;\n const tempItem = state.tabMenuList[itemIdx];\n commit(\"setTabMenuList\", itemIdx === 0 ? initTabMenuList : initTabMenuList.concat(tempItem));\n },\n\n clearTabMenuItem({ commit, state }) {\n commit(\"setTabMenuList\", []);\n },\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n};\n","import { INIT_WS_MODEL, WS_INTERVAL_TIMEOUT, WS_RESET_TIMEOUT, WS_SERVICE } from \"../config\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nexport interface SocketState {\n socket: WebSocket | null;\n isSocketLink?: boolean;\n isSocketFirst?: boolean;\n isSocketReset?: boolean;\n isUserLogin?: boolean;\n socketInterval?: null;\n socketTimeout?: null;\n}\n\nconst state = (): SocketState => ({\n socket: null,\n isSocketLink: false, // 正在连接\n isSocketFirst: false,\n isSocketReset: false, // 正在重连\n isUserLogin: false, // 用户是否登录\n socketInterval: null,\n socketTimeout: null,\n});\n\nconst getters = {};\n\nconst mutations = {};\n\nconst actions = {\n initSocket({ state, rootState, dispatch }) {\n state.isSocketLink = true;\n state.isSocketFirst = true;\n state.socket = new WebSocket(WS_SERVICE);\n\n state.socket.onopen = function (event) {\n // console.log(\"打开连接\", event);\n let model = INIT_WS_MODEL(\"heart\");\n state.socketInterval = setInterval(function () {\n state.socket.send(JSON.stringify(model));\n }, WS_INTERVAL_TIMEOUT);\n state.isSocketReset = false;\n };\n\n state.socket.onclose = function (event) {\n MessagePlugin.error(\"WebSocket 断开连接\");\n // console.log(\"断开链接\", event);\n\n state.socketInterval = null;\n state.isSocketReset = true;\n state.socket = null;\n\n MessagePlugin.error(\"WebSocket 重新连接...\");\n state.socketTimeout = setTimeout(function () {\n if (state.isSocketReset) {\n dispatch(\"initSocket\");\n\n if (state.isSocketLink) {\n clearTimeout(state.socketTimeout);\n window.dispatchEvent(new CustomEvent(\"onSocketReload\"));\n }\n }\n }, WS_RESET_TIMEOUT);\n };\n state.socket.onerror = function (event) {\n // console.log(\"出现错误\", event);\n MessagePlugin.error(\"WebSocket 出现错误\");\n };\n state.socket.onmessage = function (event) {\n let data = JSON.parse(event.data);\n window.dispatchEvent(\n new CustomEvent(\"onUpdateMessage\", {\n detail: {\n ...data,\n },\n }),\n );\n if (state.isSocketFirst) {\n state.isSocketFirst = false;\n }\n };\n state.isUserLogin = !!rootState.user;\n state.isSocketLink = false;\n },\n sendRegisterMessage({ state }, dataId: string) {\n let model = INIT_WS_MODEL(\"register\", dataId);\n state.socket.send(JSON.stringify(model));\n state.isSocketReset = false;\n },\n sendUnregisterMessage({ state }, dataId: string) {\n let model = INIT_WS_MODEL(\"unregister\", dataId);\n state.socket.send(JSON.stringify(model));\n state.isSocketReset = false;\n },\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n};\n","const state = {};\n\nconst getters = {};\n\nconst mutations = {};\n\nconst actions = {};\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n};\n","const state = {\n source: {},\n};\n\nconst getters = {\n getPropsByPropsKey: (state) => (propsKeys) => {\n const tempProps = {};\n if ((state.source ?? \"\") != \"\" && (propsKeys ?? \"\" != \"\")) {\n propsKeys.forEach((propsKey) => {\n tempProps[propsKey] = state.source[propsKey];\n });\n }\n\n return tempProps;\n },\n};\n\nconst mutations = {\n setSource(state, source) {\n if (Object.keys(source).length) {\n state.source = { ...source };\n }\n },\n};\n\nconst actions = {\n initSource({ commit }, source) {\n commit(\"setSource\", source);\n },\n};\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n};\n","import setting from \"./setting\";\nimport socket from \"./socket\";\nimport view from \"./view\";\nimport props from \"./props\";\n\nexport default { setting, socket, view, props };\n","<template>\n <GLayout :title=\"title\">\n <GCommonHeader>\n <template #left-operations>\n <t-button theme=\"primary\">添加组</t-button>\n <t-button theme=\"default\" @click=\"resetMenu\">恢复默认</t-button>\n </template>\n <template #right-operations>\n <t-button theme=\"primary\" @click=\"saveMenuResult\">保存方案</t-button>\n </template>\n </GCommonHeader>\n\n <t-enhanced-table\n ref=\"menuTable\"\n :data=\"userMenu\"\n id=\"menu-table\"\n :class=\"`${PREFIX}-table`\"\n rowKey=\"name\"\n size=\"small\"\n maxHeight=\"calc(100vh - 243px)\"\n :columns=\"columns\"\n :bordered=\"true\"\n :hover=\"true\"\n dragSort=\"row-handler\"\n @abnormal-drag-sort=\"onAbnormalDragSort\"\n :tree=\"{ childrenKey: 'children', defaultExpandAll: true, treeNodeColumnIndex: 2 }\"\n :treeExpandAndFoldIcon=\"treeExpandAndFoldIcon\"\n >\n <template #drag>\n <t-icon name=\"move\" />\n </template>\n <template #icon=\"{ row }\">\n <!-- {{ row.icon }} -->\n <t-icon v-if=\"row.children\" name=\"user\" size=\"large\" />\n </template>\n\n <template #title=\"{ row }\">\n <span class=\"menu-title\">\n <span class=\"title\" :class=\"row.children ? 'title-bold' : 'title-child'\"> {{ row.title }}</span>\n <span class=\"counts\" v-if=\"row.children\">{{ row.children.length }}项</span>\n </span>\n </template>\n\n <template #operations=\"{ row }\">\n <div class=\"operations\">\n <t-button variant=\"text\" theme=\"primary\" @click=\"EditMenu(row)\"> 编辑修改 </t-button>\n <t-button variant=\"text\" theme=\"primary\" :disabled=\"!!row.children\">\n {{ row.children ? \"-----\" : \"转移至\" }}\n </t-button>\n <t-button variant=\"text\" theme=\"primary\"> 上移 </t-button>\n <t-button variant=\"text\" theme=\"primary\"> 下移 </t-button>\n <t-button variant=\"text\" theme=\"primary\" :disabled=\"!row.children\">\n {{ row.children ? \"撤销组\" : \"-----\" }}\n </t-button>\n </div>\n </template>\n </t-enhanced-table>\n\n <t-dialog :title=\"currentDialogTitle\"></t-dialog>\n </GLayout>\n</template>\n\n<script>\nimport GLayout from \"../../components/GLayout/index.vue\";\nimport GCommonHeader from \"../../components/common/GCommonHeader/index.vue\";\n\nimport { handleInitMenuTree } from \"../../utils\";\nimport { PREFIX } from \"../../config\";\nimport { MessagePlugin } from \"tdesign-vue\";\n\nexport default {\n name: \"GMenuManage\",\n components: {\n GLayout,\n GCommonHeader,\n },\n\n data() {\n return {\n PREFIX,\n title: \"菜单管理\",\n currentDialogTitle: \"\",\n columns: [\n {\n // 列拖拽排序必要参数\n colKey: \"drag\",\n title: \"排序\",\n cell: \"drag\",\n width: 50,\n },\n {\n title: \"图标\",\n colKey: \"icon\",\n cell: \"icon\",\n width: 50,\n className: \"icon\",\n },\n {\n title: \"菜单名称\",\n colKey: \"title\",\n cell: \"title\",\n width: \"60%\",\n },\n {\n title: \"操作\",\n colKey: \"operations\",\n cell: \"operations\",\n },\n ],\n };\n },\n computed: {\n userMenu() {\n return handleInitMenuTree(this.$store.getters[\"user/menu\"]);\n },\n\n // 树展开收起图标\n treeExpandAndFoldIcon() {\n return () => {};\n // return (h, { type }) =>\n // type === \"expand\" ? <t-icon name=\"chevron-right\" /> : <t-icon name=\"chevron-up\" />;\n },\n },\n\n methods: {\n appendNewTabMenuItem() {\n const { fullPath, query } = this.$route;\n const path = decodeURIComponent(fullPath);\n\n this.$store.dispatch(\"setting/appendTabMenuItem\", {\n title: this.title,\n path,\n query,\n });\n },\n\n onAbnormalDragSort(params) {\n if (params.code === 1001) {\n MessagePlugin.error(\"不同层级的元素,不允许调整顺序\");\n }\n },\n\n EditMenu(menu) {\n console.log(\"当前选中菜单\", menu);\n },\n resetMenu() {\n this.$refs.menuTable.resetData(this.userMenu);\n MessagePlugin.success(\"重置菜单方案成功!\");\n },\n saveMenuResult() {\n MessagePlugin.success(\"保存菜单方案成功!\");\n // console.log(\"目前菜单方案:\", this.$refs.menuTable.dataSource);\n console.log(\"目前菜单方案:\", this.$refs.menuTable.getTreeNode());\n },\n },\n mounted() {\n this.appendNewTabMenuItem();\n },\n};\n</script>\n\n<style lang=\"scss\">\n#menu-table {\n .t-table__tree-col {\n justify-content: space-between;\n }\n\n .t-table__tree-op-icon {\n order: 999;\n }\n\n .icon {\n text-align: center;\n }\n\n .menu-title {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n width: 96%;\n\n // .title {\n // padding-left: 10px;\n // }\n\n .title-bold {\n font-weight: 600;\n }\n\n .title-child {\n color: rgba(0, 0, 0, 0.6);\n font-weight: 600;\n }\n\n .title-child::before {\n content: \" · \";\n }\n\n .counts {\n color: rgba(0, 0, 0, 0.4);\n }\n }\n}\n</style>\n","import \"./style/index.scss\";\nimport GView from \"./components\";\nimport stores from \"./store\";\n\nimport http from \"./api\";\nimport * as utils from \"./utils\";\nimport * as config from \"./config\";\n\nfunction install(Vue, userConfig?: any) {\n // 注册GView组件\n Vue.component(\"GView\", GView);\n\n // 注册Vuex\n Object.keys(stores).forEach((key) => {\n userConfig.store.registerModule(key, stores[key]);\n });\n}\n\n/* istanbul ignore if */\nif (typeof window !== \"undefined\" && window.Vue) {\n install(window.Vue);\n}\nexport * from \"./components\";\nexport * from \"./views\";\nexport { http, utils, config };\nexport default {\n install,\n};\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","check","it","Math","global","globalThis","window","self","this","Function","fails","exec","error","descriptors","Object","defineProperty","get","functionBindNative","test","bind","hasOwnProperty","call","prototype","functionCall","NATIVE_BIND","apply","arguments","$propertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","f","V","descriptor","enumerable","createPropertyDescriptor","bitmap","value","configurable","writable","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","fn","toString","uncurryThis","stringSlice","slice","classofRaw","$Object","split","indexedObject","classof","isNullOrUndefined","$TypeError","TypeError","requireObjectCoercible","toIndexedObject","IndexedObject","documentAll","all","IS_HTMLDDA","undefined","documentAll_1","$documentAll","isCallable","argument","isObject","aFunction","getBuiltIn","namespace","method","length","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","process","Deno","versions","version","v8","match","userAgent","engineV8Version","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","String","sham","V8_VERSION","useSymbolAsUid","NATIVE_SYMBOL","iterator","isSymbol","USE_SYMBOL_AS_UID","$Symbol","$String","tryToString","aCallable","getMethod","P","func","ordinaryToPrimitive","input","pref","val","valueOf","defineGlobalProperty","key","SHARED","store","sharedStore","module","exports","push","mode","copyright","license","source","toObject","hasOwnProperty_1","hasOwn","id","postfix","random","uid","WellKnownSymbolsStore","shared","symbolFor","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","description","TO_PRIMITIVE","toPrimitive","result","exoticToPrim","toPropertyKey","EXISTS","documentCreateElement","ie8DomDefine","DESCRIPTORS","a","$getOwnPropertyDescriptor","O","IE8_DOM_DEFINE","propertyIsEnumerableModule","v8PrototypeDefineBug","anObject","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","V8_PROTOTYPE_DEFINE_BUG","Attributes","current","createNonEnumerableProperty","object","definePropertyModule","getDescriptor","PROPER","functionName","functionToString","inspectSource","WeakMap","weakMapBasicDetection","keys","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","set","has","enforce","getterFor","TYPE","state","NATIVE_WEAK_MAP","metadata","facade","STATE","internalState","CONFIGURABLE_FUNCTION_NAME","require$$0","enforceInternalState","InternalStateModule","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","options","replace","getter","setter","arity","constructor","join","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","mathTrunc","trunc","x","n","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","indexOf","objectKeysInternal","names","i","enumBugKeys","concat","getOwnPropertyNames","internalObjectKeys","ownKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","copyConstructorProperties","target","exceptions","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","isArray","Array","SILENT_ON_NON_WRITABLE_LENGTH_SET","arraySetLength","MAX_SAFE_INTEGER","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","SILENT_ON_NON_WRITABLE_LENGTH","$","proto","item","len","argCount","setArrayLength","NProgress","configure","easing","speed","showSpinner","trickle","trickleSpeed","minimum","PREFIX","LOCAL_CONFIG","LOCAL_THEME_CONFIG","LOCAL_USER","LOCAL_MENU","LOCAL_TAB_MENU","TOKEN_NAME","TOKEN_EXPIRED_TIME","LOCAL_DATA_ID","WS_SERVICE","location","origin","protocol","INIT_WS_MODEL","subcmd","dataId","cmd","args","response","WS_INTERVAL_TIMEOUT","WS_RESET_TIMEOUT","UPLOAD_API","THEME_CONFIG","brandTheme","displayMode","defaultLightColor","defaultDarkColor","COLOR_TOKEN","DEFAULT","CYAN","GREEN","ORANGE","RED","PINK","PURPLE","YELLOW","createContextFunctionTemplate","eval_string","context","map","createContextEvaluator","template","functor","evalContext","text","evaluator","vFun","_basePath","path","getProperty","defaultValue","reduce","o","k","setProperty","_","assign","deepClone","sourceObj","targetObj","cloneObj","getInitMenuUrl","userMenu","find","element","children","handleInitMenuTree","menu","tempList","forEach","parent","url","title","icon","parentItem","menuPermissionFilter","permissions","filter","getHomeMenuInfo","initHomeMenuItem","config","JSON","parse","localStorage","getItem","itemIdx","isHome","getUrlQuery","queryObj","queryItem","initTableColumns","tableColumns","tableColumnsResult","colKey","column","idx","arr","tempColumnResult","keyName","cell","columnType","width","convertTableColumnWeight","weight","ellipsis","props","theme","showArrow","placement","columnAmount","initTreeSelectorData","list","valueName","titleName","parentKey","parentKeyName","selector","res","parentObj","label","toUnderline","toUpperCase","getBrandColor","colorList","isVoid","trim","script$x","computed","tabMenuList","$store","setting","activeItemPath","methods","handleTabMenuClick","visible","ctx","trigger","handleChangeCurrentTab","$router","query","handleRemoveCurrentTab","nextTabMenuItem","dispatch","$route","fullPath","handleTabRefresh","$nextTick","handleTabCloseAhead","handleTabOperationEffect","handleTabCloseBehind","handleTabCloseOther","currentPath","currentIdx","findIndex","nextItem","__vue_script__","script","script$w","components","GLayoutHeaderTab","userRealName","getters","toggleSideMenuCollapsed","commit","toggleSettingPanel","handleLogout","script$v","script$u","default","background","anInstance","Prototype","aPossiblePrototype","objectSetPrototypeOf","setPrototypeOf","CORRECT_SETTER","__proto__","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","TO_STRING_TAG","toStringTagSupport","CORRECT_ARGUMENTS","tryGet","TO_STRING_TAG_SUPPORT","tag","callee","normalizeStringArgument","$default","domExceptionConstants","IndexSizeError","s","c","m","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","$Error","Error","TEST","stack","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","errorStackClear","dropEntries","prepareStackTrace","DOM_EXCEPTION","NativeDOMException","$DOMException","DOMExceptionPrototype","argumentsLength","message","that","clearErrorStack","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","FORCED_CONSTRUCTOR","DOMException","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","DOMExceptionConstants","constant","constantName","COLOR_OPTIONS","MODE_OPTIONS","script$t","ColorContainer","themeData","themeConfig","isSettingPanelShow","watch","handler","deep","script$s","navData","menuList","getMenuList","handleMenuItemClick","script$r","GLayoutSideMenuContent","menuCollapsed","isSideBarCollapse","menuActivePath","menuDefaultExpanded","currentParent","parentMenu","childrenMenu","toMenuManage","script$q","GLayoutHeader","GLayoutContent","GLayoutSetting","GLayoutSideMenu","userInitUrl","mounted","script$p","script$o","modelValue","required","originValue","Number","Boolean","placeholder","disabled","inputType","handleChange","$emit","handleBlur","_typeof","_toPrimitive","hint","prim","_toPropertyKey","arg","_defineProperty","DEFAULT_CONFIG","timeout","withCredentials","RequestHttp","service","axios","create","interceptors","request","use","userToken","token","tokenExpiredTime","lang","userInfo","language","headers","start","Promise","reject","done","async","MessagePlugin","params","_object","post","put","delete","http","viewApiUrl","getAllView","getOneView","getViewData","uploadFile","activeFile","confirm","batch","batchAction","script$n","targetViewName","size","multiple","queryProps","immediate","listData","propsModel","tempModel","viewName","getSelectData","script$m","dateTimeValue","itemType","dayjs","format","script$l","uploadData","handleUploadSuccess","event","uploadResult","shift","handleUploadError","script$k","GCommonHeader","GFormInput","GFormSelect","GFormSelectDateTime","GHeaderUpload","headerInfo","formModel","filterForm","headerCommonBtns","buttons","button","action","headerUploadBtns","headerSearchBar","searchBar","headerFilters","filters","handleHeaderButtonClick","script$j","script$i","script$h","script$g","selectList","script$f","treeOptions","treeData","script$e","cascaderOptions","script$d","fileName","tips","uploadApi","success","console","log","script$c","GFormLabel","GFormCheckBox","GFormSwitch","GFormRadio","GFormTreeCheckBox","GFormCascader","GFormUpload","col","row","formItems","handleAfterUpdateValue","$forceUpdate","handleAfterValueBlur","newValue","script$b","VueQr","GTableForm","boardInfo","tableData","paginationProps","selectedRowKeys","tablePagination","showJumper","rowKey","columns","handleSelectChange","selectedRowData","returnValue","Mustache","render","returnEnumsValue","enums","targetArr","returnDateValue","handleFilterColumnBtns","columnBtns","v","showIf","evalResult","eval","e","warn","handleTableButtonClick","handleTableFormChange","model","tempPagination","page","pageSize","count","total","totalCount","onChange","pageInfo","script$a","commonFormProps","script$9","quillEditor","handleEditorChange","content","html","script$8","blockType","blockId","updateId","handleClassShow","$refs","matches","nextElementSibling","classList","remove","add","script$7","GCommonForm","GFormEditor","GFormBlock","formData","formRules","formWhiteList","formOkButton","okButton","formCancelButton","cancelButton","initEmptyFormItems","initFormRules","currentFormItems","commonForm","$children","$el","contains","$vnode","componentOptions","propsData","tempRules","itemTempRules","requiredMark","validator","handleButtonClick","form","validate","then","firstError","values","warning","buttonId","fields","handleAfterUpload","handleItemShowIf","handleItemDisableIf","disableIf","formItem","script$6","GTemplate","resolve","index$1","d","tabs","currentTabTitle","handleTabChange","newTabTitle","script$5","commonDialogProps","script$4","GCommonDialog","dialogViewInfo","dialogFormModel","isVisible","viewInfo","viewBoard","viewProps","dialogWidth","boardType","dialogHeaderName","dialogViewName","view","dialogProps","handleDialogChange","handleCloseDialog","boards","getViewInfo","script$3","GHeader","GTable","GForm","GTab","GDialog","board","headerFilterProps","tableSelectedData","tablePaginationProps","pageCount","isDialogVisible","header","getTemplateData","handleAction","tempProps","stringify","confirmMessage","dialogInstance","DialogPlugin","body","onConfirm","handleConfirmForm","destroy","onCancel","info","handleBatchAction","link","downloadUrl","he","decode","downloadEl","display","setAttribute","click","handleHeaderFilterChange","filterProps","handleReturnSelectedKey","handleSetPaginationProps","batchProps","handleTableFormConfirm","confirmProps","handleCloseDialogEvent","handleConfirmAndClose","setItem","addEventListener","updatedDataId","detail","script$2","viewBoards","isLoading","isLoadingDelay","appendNewTabMenuItem","decodeURIComponent","pros","script$1","GLayout","GTemplateView","isGlobalLoaded","handleReturnTitle","handleReload","initTabMenuList","sessionStorage","userPermissions","realName","matchMedia","mutations","setGlobalLoadingStatus","status","toggleSideBarCollapse","setTabMenuList","setSettingConfig","configKey","setThemeSettingConfig","actions","reloadGlobal","setTimeout","initSettingConfig","menuTree","userLogout","removeItem","loadLocalTheme","changeTheme","changeMode","isDarkMode","documentElement","changeBrandTheme","initTabMenu","appendTabMenuItem","newItem","subtractCurrentTabMenuItem","subtractTabMenuItemBehind","subtractTabMenuItemAhead","subtractTabMenuItemOther","tempItem","clearTabMenuItem","namespaced","socket","isSocketLink","isSocketFirst","isSocketReset","isUserLogin","socketInterval","socketTimeout","initSocket","rootState","WebSocket","onopen","setInterval","send","onclose","clearTimeout","dispatchEvent","CustomEvent","onerror","onmessage","user","sendRegisterMessage","sendUnregisterMessage","getPropsByPropsKey","propsKeys","propsKey","setSource","initSource","stores","currentDialogTitle","className","treeExpandAndFoldIcon","onAbnormalDragSort","code","EditMenu","resetMenu","menuTable","resetData","saveMenuResult","getTreeNode","install","Vue","userConfig","component","GView","registerModule"],"mappings":"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"}
|