@wujies/components 5.6.4 → 5.6.5

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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../node_modules/.pnpm/vue-types@6.0.0_vue@3.5.13_typescript@5.8.3_/node_modules/vue-types/dist/shared/vue-types.8139b772.mjs","../../../../node_modules/.pnpm/vue-types@6.0.0_vue@3.5.13_typescript@5.8.3_/node_modules/vue-types/dist/index.mjs","../src/host/propTypes.ts","../src/host/components/ImagePreview.vue","../src/host/request.ts","../src/host/api/oss.ts","../../../../node_modules/.pnpm/image-conversion@2.1.1/node_modules/image-conversion/build/conversion.js","../../../../node_modules/.pnpm/image-conversion@2.1.1/node_modules/image-conversion/index.js","../src/host/components/ImageUpload.vue","../src/host/components/KDictTag.vue","../src/host/components/KSearchBar.vue","../src/host/components/KTable.vue","../../../../node_modules/.pnpm/vue-draggable-plus@0.6.1_@types+sortablejs@1.15.9/node_modules/vue-draggable-plus/dist/vue-draggable-plus.js","../src/host/components/KTableHeader.vue","../src/host/components/SettingForm.vue","../src/host/api/config.ts","../src/host/components/ModuleBusinessSettings.vue","../src/host/components/ModuleWebsiteSettings.vue","../src/host/components/SettingTabs.vue","../src/host/api/user.ts","../src/host/contact.ts","../src/host/components/UserDetail.vue"],"sourcesContent":["const config = {\n silent: false,\n logLevel: \"warn\"\n};\n\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n\nconst typeDefaults = () => ({\n func: () => void 0,\n bool: true,\n string: \"\",\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0\n});\n\nexport { config as c, isPlainObject as i, typeDefaults as t };\n//# sourceMappingURL=vue-types.8139b772.mjs.map\n","import { i as isPlainObject, c as config, t as typeDefaults } from './shared/vue-types.8139b772.mjs';\n\nconst ObjProto = Object.prototype;\nconst toString = ObjProto.toString;\nconst hasOwn = ObjProto.hasOwnProperty;\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/;\nfunction getType(fn) {\n const type = fn?.type ?? fn;\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP);\n return match ? match[1] : \"\";\n }\n return \"\";\n}\nfunction getNativeType(value) {\n if (value === null || value === void 0)\n return \"\";\n const match = value.constructor.toString().match(FN_MATCH_REGEXP);\n return match ? match[1].replace(/^Async/, \"\") : \"\";\n}\nfunction deepClone(input) {\n if (\"structuredClone\" in globalThis) {\n return structuredClone(input);\n }\n if (Array.isArray(input)) {\n return [...input];\n }\n if (isPlainObject(input)) {\n return Object.assign({}, input);\n }\n return input;\n}\nfunction noop() {\n}\nlet warn = noop;\nif (process.env.NODE_ENV !== \"production\") {\n const hasConsole = typeof console !== \"undefined\";\n warn = hasConsole ? function warn2(msg, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`);\n }\n } : noop;\n}\nconst has = (obj, prop) => hasOwn.call(obj, prop);\nconst isInteger = Number.isInteger || function isInteger2(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\nconst isArray = Array.isArray || function isArray2(value) {\n return toString.call(value) === \"[object Array]\";\n};\nconst isFunction = (value) => toString.call(value) === \"[object Function]\";\nconst isVueTypeDef = (value, name) => isPlainObject(value) && has(value, \"_vueTypes_name\") && (!name || value._vueTypes_name === name);\nconst isComplexType = (value) => isPlainObject(value) && (has(value, \"type\") || [\"_vueTypes_name\", \"validator\", \"default\", \"required\"].some(\n (k) => has(value, k)\n));\nfunction bindTo(fn, ctx) {\n return Object.defineProperty(fn.bind(ctx), \"__original\", {\n value: fn\n });\n}\nfunction unwrap(fn) {\n return fn.__original ?? fn;\n}\nfunction validateType(type, value, silent = false) {\n let typeToCheck;\n let valid = true;\n let expectedType = \"\";\n if (!isPlainObject(type)) {\n typeToCheck = { type };\n } else {\n typeToCheck = type;\n }\n const namePrefix = isVueTypeDef(typeToCheck) ? typeToCheck._vueTypes_name + \" - \" : \"\";\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === void 0 || typeToCheck.type === true) {\n return valid;\n }\n if (!typeToCheck.required && value == null) {\n return valid;\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type2) => validateType(type2, value, true) === true\n );\n expectedType = typeToCheck.type.map((type2) => getType(type2)).join(\" or \");\n } else {\n expectedType = getType(typeToCheck);\n if (expectedType === \"Array\") {\n valid = isArray(value);\n } else if (expectedType === \"Object\") {\n valid = isPlainObject(value);\n } else if (expectedType === \"String\" || expectedType === \"Number\" || expectedType === \"Boolean\" || expectedType === \"Function\") {\n valid = getNativeType(value) === expectedType;\n } else {\n valid = value instanceof typeToCheck.type;\n }\n }\n }\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`;\n if (silent === false) {\n warn(msg);\n return false;\n }\n return msg;\n }\n if (has(typeToCheck, \"validator\") && isFunction(typeToCheck.validator)) {\n const oldWarn = warn;\n const warnLog = [];\n warn = (msg) => {\n warnLog.push(msg);\n };\n valid = typeToCheck.validator(value);\n warn = oldWarn;\n if (!valid) {\n const msg = (warnLog.length > 1 ? \"* \" : \"\") + warnLog.join(\"\\n* \");\n warnLog.length = 0;\n if (silent === false) {\n warn(msg);\n return valid;\n }\n return msg;\n }\n }\n return valid;\n}\nfunction toType(name, obj) {\n const type = Object.defineProperties(obj, {\n _vueTypes_name: {\n value: name,\n writable: true\n },\n isRequired: {\n get() {\n this.required = true;\n return this;\n }\n },\n def: {\n value(def) {\n if (def === void 0) {\n if (this.type === Boolean || Array.isArray(this.type) && this.type.includes(Boolean)) {\n this.default = void 0;\n return;\n }\n if (has(this, \"default\")) {\n delete this.default;\n }\n return this;\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`);\n return this;\n }\n if (isArray(def)) {\n this.default = () => deepClone(def);\n } else if (isPlainObject(def)) {\n this.default = () => deepClone(def);\n } else {\n this.default = def;\n }\n return this;\n }\n }\n });\n const { validator } = type;\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type);\n }\n return type;\n}\nfunction toValidableType(name, obj) {\n const type = toType(name, obj);\n return Object.defineProperty(type, \"validate\", {\n value(fn) {\n if (isFunction(this.validator)) {\n warn(\n `${this._vueTypes_name} - calling .validate() will overwrite the current custom validator function. Validator info:\n${JSON.stringify(\n this\n )}`\n );\n }\n this.validator = bindTo(fn, this);\n return this;\n }\n });\n}\nfunction clone(obj) {\n const descriptors = {};\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(obj, key);\n });\n return Object.defineProperties({}, descriptors);\n}\nfunction fromType(name, source, props) {\n const copy = clone(source);\n copy._vueTypes_name = name;\n if (!isPlainObject(props)) {\n return copy;\n }\n const { validator, ...rest } = props;\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy;\n if (prevValidator) {\n prevValidator = unwrap(prevValidator);\n }\n copy.validator = bindTo(\n prevValidator ? function(value, props2) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator.call(this, value, props2) && validator.call(this, value, props2)\n );\n } : validator,\n copy\n );\n }\n return Object.assign(copy, rest);\n}\nfunction indent(string) {\n return string.replace(/^(?!\\s*$)/gm, \" \");\n}\n\nconst any = () => toValidableType(\"any\", {});\nconst func = () => toValidableType(\"function\", {\n type: Function\n});\nconst bool = () => toValidableType(\"boolean\", {\n type: Boolean\n});\nconst string = () => toValidableType(\"string\", {\n type: String\n});\nconst number = () => toValidableType(\"number\", {\n type: Number\n});\nconst array = () => toValidableType(\"array\", {\n type: Array\n});\nconst object = () => toValidableType(\"object\", {\n type: Object\n});\nconst integer = () => toType(\"integer\", {\n type: Number,\n validator(value) {\n const res = isInteger(value);\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`);\n }\n return res;\n }\n});\nconst symbol = () => toType(\"symbol\", {\n validator(value) {\n const res = typeof value === \"symbol\";\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`);\n }\n return res;\n }\n});\nconst nullable = () => Object.defineProperty(\n {\n type: null,\n validator(value) {\n const res = value === null;\n if (res === false) {\n warn(`nullable - value should be null`);\n }\n return res;\n }\n },\n \"_vueTypes_name\",\n { value: \"nullable\" }\n);\n\nfunction custom(validatorFn, warnMsg = \"custom validation failed\") {\n if (typeof validatorFn !== \"function\") {\n throw new TypeError(\n \"[VueTypes error]: You must provide a function as argument\"\n );\n }\n return toType(validatorFn.name || \"<<anonymous function>>\", {\n type: null,\n validator(value) {\n const valid = validatorFn(value);\n if (!valid)\n warn(`${this._vueTypes_name} - ${warnMsg}`);\n return valid;\n }\n });\n}\n\nfunction oneOf(arr) {\n if (!isArray(arr)) {\n throw new TypeError(\n \"[VueTypes error]: You must provide an array as argument.\"\n );\n }\n const msg = `oneOf - value should be one of \"${arr.map((v) => typeof v === \"symbol\" ? v.toString() : v).join('\", \"')}\".`;\n const base = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1;\n if (!valid)\n warn(msg);\n return valid;\n }\n };\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== void 0) {\n const constr = v.constructor;\n ret.indexOf(constr) === -1 && ret.push(constr);\n }\n return ret;\n },\n []\n );\n if (type.length > 0) {\n base.type = type;\n }\n }\n return toType(\"oneOf\", base);\n}\n\nfunction oneOfType(arr) {\n if (!isArray(arr)) {\n throw new TypeError(\n \"[VueTypes error]: You must provide an array as argument\"\n );\n }\n let hasCustomValidators = false;\n let hasNullable = false;\n let nativeChecks = [];\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i];\n if (isComplexType(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true;\n }\n if (isVueTypeDef(type, \"oneOf\") && type.type) {\n nativeChecks = nativeChecks.concat(type.type);\n continue;\n }\n if (isVueTypeDef(type, \"nullable\")) {\n hasNullable = true;\n continue;\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.');\n continue;\n }\n nativeChecks = nativeChecks.concat(type.type);\n } else {\n nativeChecks.push(type);\n }\n }\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i);\n const typeProp = hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null;\n if (!hasCustomValidators) {\n return toType(\"oneOfType\", {\n type: typeProp\n });\n }\n return toType(\"oneOfType\", {\n type: typeProp,\n validator(value) {\n const err = [];\n const valid = arr.some((type) => {\n const res = validateType(type, value, true);\n if (typeof res === \"string\") {\n err.push(res);\n }\n return res === true;\n });\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${err.length} passed-in validators:\n${indent(err.join(\"\\n\"))}`\n );\n }\n return valid;\n }\n });\n}\n\nfunction arrayOf(type) {\n return toType(\"arrayOf\", {\n type: Array,\n validator(values) {\n let vResult = \"\";\n const valid = values.every((value) => {\n vResult = validateType(type, value, true);\n return vResult === true;\n });\n if (!valid) {\n warn(`arrayOf - value validation error:\n${indent(vResult)}`);\n }\n return valid;\n }\n });\n}\n\nfunction instanceOf(instanceConstructor) {\n return toType(\"instanceOf\", {\n type: instanceConstructor\n });\n}\n\nfunction objectOf(type) {\n return toType(\"objectOf\", {\n type: Object,\n validator(obj) {\n let vResult = \"\";\n if (!isPlainObject(obj)) {\n return false;\n }\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true);\n return vResult === true;\n });\n if (!valid) {\n warn(`objectOf - value validation error:\n${indent(vResult)}`);\n }\n return valid;\n }\n });\n}\n\nfunction shape(obj) {\n const keys = Object.keys(obj);\n const requiredKeys = keys.filter((key) => !!obj[key]?.required);\n const type = toType(\"shape\", {\n type: Object,\n validator(value) {\n if (!isPlainObject(value)) {\n return false;\n }\n const valueKeys = Object.keys(value);\n if (requiredKeys.length > 0 && requiredKeys.some((req) => valueKeys.indexOf(req) === -1)) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1\n );\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`);\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"'\n )}\" are not defined.`\n );\n }\n return false;\n }\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if (this._vueTypes_isLoose === true)\n return true;\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"'\n )}\".`\n );\n return false;\n }\n const type2 = obj[key];\n const valid = validateType(type2, value[key], true);\n if (typeof valid === \"string\") {\n warn(`shape - \"${key}\" property validation error:\n ${indent(valid)}`);\n }\n return valid === true;\n });\n }\n });\n Object.defineProperty(type, \"_vueTypes_isLoose\", {\n writable: true,\n value: false\n });\n Object.defineProperty(type, \"loose\", {\n get() {\n this._vueTypes_isLoose = true;\n return this;\n }\n });\n return type;\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nconst BaseVueTypes = /* @__PURE__ */ (() => {\n var _a;\n return (\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n _a = class {\n static get any() {\n return any();\n }\n static get func() {\n return func().def(this.defaults.func);\n }\n static get bool() {\n if (this.defaults.bool === void 0) {\n return bool();\n }\n return bool().def(this.defaults.bool);\n }\n static get string() {\n return string().def(this.defaults.string);\n }\n static get number() {\n return number().def(this.defaults.number);\n }\n static get array() {\n return array().def(this.defaults.array);\n }\n static get object() {\n return object().def(this.defaults.object);\n }\n static get integer() {\n return integer().def(this.defaults.integer);\n }\n static get symbol() {\n return symbol();\n }\n static get nullable() {\n return nullable();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static extend(...args) {\n warn(\n `VueTypes.extend has been removed. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`\n );\n }\n }, __publicField(_a, \"defaults\", {}), __publicField(_a, \"sensibleDefaults\"), __publicField(_a, \"config\", config), __publicField(_a, \"custom\", custom), __publicField(_a, \"oneOf\", oneOf), __publicField(_a, \"instanceOf\", instanceOf), __publicField(_a, \"oneOfType\", oneOfType), __publicField(_a, \"arrayOf\", arrayOf), __publicField(_a, \"objectOf\", objectOf), __publicField(_a, \"shape\", shape), __publicField(_a, \"utils\", {\n validate(value, type) {\n return validateType(type, value, true) === true;\n },\n toType(name, obj, validable = false) {\n return validable ? toValidableType(name, obj) : toType(name, obj);\n }\n }), _a\n );\n})();\nfunction createTypes(defs = typeDefaults()) {\n var _a;\n return _a = class extends BaseVueTypes {\n static get sensibleDefaults() {\n return { ...this.defaults };\n }\n static set sensibleDefaults(v) {\n if (v === false) {\n this.defaults = {};\n return;\n }\n if (v === true) {\n this.defaults = { ...defs };\n return;\n }\n this.defaults = { ...v };\n }\n }, __publicField(_a, \"defaults\", { ...defs }), _a;\n}\nclass VueTypes extends createTypes() {\n}\n\nexport { any, array, arrayOf, bool, config, createTypes, custom, VueTypes as default, fromType, func, instanceOf, integer, nullable, number, object, objectOf, oneOf, oneOfType, shape, string, symbol, toType, toValidableType, validateType };\n//# sourceMappingURL=index.mjs.map\n","// AUTO-GENERATED by sync:host —— 不要手改\nimport VueTypes from 'vue-types';\n\ntype PropDef<T, C> = { type: C; default: T };\n\ninterface SimplePropTypes {\n string: { def: (value?: string) => PropDef<string, StringConstructor> };\n number: { def: (value?: number) => PropDef<number, NumberConstructor> };\n integer: { def: (value?: number) => PropDef<number, NumberConstructor> };\n bool: { def: (value?: boolean) => PropDef<boolean, BooleanConstructor> };\n array: { def: <T>(value?: T[]) => PropDef<T[], ArrayConstructor> };\n object: { def: <T>(value?: T) => PropDef<T, ObjectConstructor> };\n func: { def: (value?: (...args: any[]) => any) => PropDef<(...args: any[]) => any, FunctionConstructor> };\n}\n\nconst propTypes = VueTypes as unknown as SimplePropTypes;\n\nexport { propTypes };\n","<!-- AUTO-GENERATED from plus-ui/src/components/media/ImagePreview/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <el-image\r\n ref=\"imageRef\"\r\n :initial-index=\"computedInitialIndex\"\r\n :preview-src-list=\"realSrcList\"\r\n :src=\"`${realSrc}`\"\r\n :style=\"`width:${realWidth};height:${realHeight};`\"\r\n fit=\"cover\"\r\n preview-teleported\r\n >\r\n <template #toolbar=\"{ actions, prev, next, reset, activeIndex, setActiveItem }\">\r\n <el-icon @click=\"prev\">\r\n <Back />\r\n </el-icon>\r\n <el-icon @click=\"next\">\r\n <Right />\r\n </el-icon>\r\n <el-icon @click=\"setActiveItem(realSrcList.length - 1)\">\r\n <DArrowRight />\r\n </el-icon>\r\n <el-icon @click=\"actions('zoomOut')\">\r\n <ZoomOut />\r\n </el-icon>\r\n <el-icon @click=\"actions('zoomIn', { enableTransition: false, zoomRate: 2 })\">\r\n <ZoomIn />\r\n </el-icon>\r\n <el-icon @click=\"actions('clockwise', { rotateDeg: 180, enableTransition: false })\">\r\n <RefreshRight />\r\n </el-icon>\r\n <el-icon @click=\"actions('anticlockwise')\">\r\n <RefreshLeft />\r\n </el-icon>\r\n <el-icon @click=\"reset\">\r\n <Refresh />\r\n </el-icon>\r\n <el-icon @click=\"download(activeIndex)\">\r\n <Download />\r\n </el-icon>\r\n </template>\r\n <template #error>\r\n <div class=\"image-slot\">\r\n <el-icon>\r\n <picture-filled />\r\n </el-icon>\r\n </div>\r\n </template>\r\n </el-image>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { type PropType, ref } from 'vue';\r\nimport { propTypes } from '../propTypes';\r\nimport type { ImageInstance } from 'element-plus';\r\n\r\nconst props = defineProps({\r\n src: propTypes.string.def(''),\r\n width: {\r\n type: [Number, String],\r\n default: ''\r\n },\r\n height: {\r\n type: [Number, String],\r\n default: ''\r\n },\r\n // 预览图片列表(优先使用这个)\r\n previewSrcList: {\r\n type: Array as PropType<string[]>,\r\n default: () => []\r\n },\r\n // 初始显示的图片索引\r\n initialIndex: {\r\n type: Number,\r\n default: 0\r\n }\r\n});\r\n\r\n// 获取 el-image 的 ref\r\nconst imageRef = ref<ImageInstance>();\r\n\r\n// 直接暴露 imageRef,父组件可以访问所有 el-image 的方法\r\ndefineExpose({\r\n imageRef\r\n});\r\n\r\nconst realSrc = computed(() => {\r\n if (!props.src) {\r\n return;\r\n }\r\n const real_src = props.src.split(',')[0];\r\n return real_src;\r\n});\r\n\r\n// 计算初始索引:如果传入了 previewSrcList,则查找当前 src 在列表中的位置\r\nconst computedInitialIndex = computed(() => {\r\n if (props.previewSrcList && props.previewSrcList.length > 0) {\r\n const index = props.previewSrcList.findIndex((url) => url === realSrc.value);\r\n return index >= 0 ? index : props.initialIndex;\r\n }\r\n return props.initialIndex;\r\n});\r\n\r\nconst realSrcList = computed(() => {\r\n // 优先使用传入的 previewSrcList\r\n if (props.previewSrcList && props.previewSrcList.length > 0) {\r\n return props.previewSrcList;\r\n }\r\n\r\n // 否则从 src 解析(逗号分隔)\r\n if (!props.src) {\r\n return [];\r\n }\r\n const real_src_list = props.src.split(',');\r\n const srcList: string[] = [];\r\n real_src_list.forEach((item: string) => {\r\n if (item.trim() === '') {\r\n return;\r\n }\r\n return srcList.push(item);\r\n });\r\n return srcList;\r\n});\r\n\r\nconst realWidth = computed(() => (typeof props.width == 'string' ? props.width : `${props.width}px`));\r\n\r\nconst realHeight = computed(() => (typeof props.height == 'string' ? props.height : `${props.height}px`));\r\n\r\nconst download = (index: number) => {\r\n const url = realSrcList[index];\r\n const suffix = url.slice(url.lastIndexOf('.'));\r\n const filename = Date.now() + suffix;\r\n\r\n fetch(url)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n const blobUrl = URL.createObjectURL(new Blob([blob]));\r\n const link = document.createElement('a');\r\n link.href = blobUrl;\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n URL.revokeObjectURL(blobUrl);\r\n link.remove();\r\n });\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.el-image {\r\n border-radius: 5px;\r\n background-color: #ebeef5;\r\n box-shadow: 0 0 5px 1px #ccc;\r\n\r\n :deep(.el-image__inner) {\r\n transition: all 0.3s;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n transform: scale(1.2);\r\n }\r\n }\r\n\r\n :deep(.image-slot) {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n color: #909399;\r\n font-size: 30px;\r\n }\r\n}\r\n</style>\r\n","import { globalHeaders as hostGlobalHeaders, request } from '@wujies/ui-shared';\n\nexport default request;\nexport const globalHeaders = hostGlobalHeaders;\n\nexport function getBaseUrl(): string {\n return String(request.defaults?.baseURL ?? '');\n}\n","import request from '../request';\n\nexport function listByIds(ossId: string | number) {\n return request<any>({\n url: '/resource/oss/listByIds/' + ossId,\n method: 'get'\n });\n}\n\nexport function delOss(ossId: string | number | Array<string | number>) {\n return request<any>({\n url: '/resource/oss/' + ossId,\n method: 'delete'\n });\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.imageConversion=e():t.imageConversion=e()}(this,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=0)}([function(t,e,n){\"use strict\";var r;function o(t){return[\"image/png\",\"image/jpeg\",\"image/gif\"].some(e=>e===t)}n.r(e),n.d(e,\"canvastoDataURL\",(function(){return a})),n.d(e,\"canvastoFile\",(function(){return c})),n.d(e,\"dataURLtoFile\",(function(){return s})),n.d(e,\"dataURLtoImage\",(function(){return l})),n.d(e,\"downloadFile\",(function(){return d})),n.d(e,\"filetoDataURL\",(function(){return f})),n.d(e,\"imagetoCanvas\",(function(){return g})),n.d(e,\"urltoBlob\",(function(){return w})),n.d(e,\"urltoImage\",(function(){return m})),n.d(e,\"compress\",(function(){return p})),n.d(e,\"compressAccurately\",(function(){return b})),n.d(e,\"EImageType\",(function(){return r})),function(t){t.PNG=\"image/png\",t.JPEG=\"image/jpeg\",t.GIF=\"image/gif\"}(r||(r={}));var i=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function a(t,e=.92,n=r.JPEG){return i(this,void 0,void 0,(function*(){return o(n)||(n=r.JPEG),t.toDataURL(n,e)}))}function c(t,e=.92,n=r.JPEG){return new Promise(r=>t.toBlob(t=>r(t),n,e))}var u=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function s(t,e){return u(this,void 0,void 0,(function*(){const n=t.split(\",\");let r=n[0].match(/:(.*?);/)[1];const i=atob(n[1]);let a=i.length;const c=new Uint8Array(a);for(;a--;)c[a]=i.charCodeAt(a);return o(e)&&(r=e),new Blob([c],{type:r})}))}function l(t){return new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=()=>n(new Error(\"dataURLtoImage(): dataURL is illegal\")),r.src=t})}function d(t,e){const n=document.createElement(\"a\");n.href=window.URL.createObjectURL(t),n.download=e||Date.now().toString(36),document.body.appendChild(n);const r=document.createEvent(\"MouseEvents\");r.initEvent(\"click\",!1,!1),n.dispatchEvent(r),document.body.removeChild(n)}function f(t){return new Promise(e=>{const n=new FileReader;n.onloadend=t=>e(t.target.result),n.readAsDataURL(t)})}var h=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function g(t,e={}){return h(this,void 0,void 0,(function*(){const n=Object.assign({},e),r=document.createElement(\"canvas\"),o=r.getContext(\"2d\");let i,a;for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=Number(n[t]));if(n.scale){const e=n.scale>0&&n.scale<10?n.scale:1;a=t.width*e,i=t.height*e}else a=n.width||n.height*t.width/t.height||t.width,i=n.height||n.width*t.height/t.width||t.height;switch([5,6,7,8].some(t=>t===n.orientation)?(r.height=a,r.width=i):(r.height=i,r.width=a),n.orientation){case 3:o.rotate(180*Math.PI/180),o.drawImage(t,-r.width,-r.height,r.width,r.height);break;case 6:o.rotate(90*Math.PI/180),o.drawImage(t,0,-r.width,r.height,r.width);break;case 8:o.rotate(270*Math.PI/180),o.drawImage(t,-r.height,0,r.height,r.width);break;case 2:o.translate(r.width,0),o.scale(-1,1),o.drawImage(t,0,0,r.width,r.height);break;case 4:o.translate(r.width,0),o.scale(-1,1),o.rotate(180*Math.PI/180),o.drawImage(t,-r.width,-r.height,r.width,r.height);break;case 5:o.translate(r.width,0),o.scale(-1,1),o.rotate(90*Math.PI/180),o.drawImage(t,0,-r.width,r.height,r.width);break;case 7:o.translate(r.width,0),o.scale(-1,1),o.rotate(270*Math.PI/180),o.drawImage(t,-r.height,0,r.height,r.width);break;default:o.drawImage(t,0,0,r.width,r.height)}return r}))}function w(t){return fetch(t).then(t=>t.blob())}function m(t){return new Promise((e,n)=>{const r=new Image;r.onload=()=>e(r),r.onerror=()=>n(new Error(\"urltoImage(): Image failed to load, please check the image URL\")),r.src=t})}var y=function(t,e,n,r){return new(n||(n=Promise))((function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function c(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,c)}u((r=r.apply(t,e||[])).next())}))};function p(t,e={}){return y(this,void 0,void 0,(function*(){if(!(t instanceof Blob))throw new Error(\"compress(): First arg must be a Blob object or a File object.\");if(\"object\"!=typeof e&&(e=Object.assign({quality:e})),e.quality=Number(e.quality),Number.isNaN(e.quality))return t;const n=yield f(t);let i=n.split(\",\")[0].match(/:(.*?);/)[1],c=r.JPEG;o(e.type)&&(c=e.type,i=e.type);const u=yield l(n),d=yield g(u,Object.assign({},e)),h=yield a(d,e.quality,c),w=yield s(h,i);return w.size>t.size?t:w}))}function b(t,e={}){return y(this,void 0,void 0,(function*(){if(!(t instanceof Blob))throw new Error(\"compressAccurately(): First arg must be a Blob object or a File object.\");if(\"object\"!=typeof e&&(e=Object.assign({size:e})),e.size=Number(e.size),Number.isNaN(e.size))return t;if(1024*e.size>t.size)return t;e.accuracy=Number(e.accuracy),(!e.accuracy||e.accuracy<.8||e.accuracy>.99)&&(e.accuracy=.95);const n=e.size*(2-e.accuracy)*1024,i=1024*e.size,c=e.size*e.accuracy*1024,u=yield f(t);let d=u.split(\",\")[0].match(/:(.*?);/)[1],h=r.JPEG;o(e.type)&&(h=e.type,d=e.type);const w=yield l(u),m=yield g(w,Object.assign({},e));let y,p=.5;const b=[null,null];for(let t=1;t<=7;t++){y=yield a(m,p,h);const e=.75*y.length;if(7===t){(n<e||c>e)&&(y=[y,...b].filter(t=>t).sort((t,e)=>Math.abs(.75*t.length-i)-Math.abs(.75*e.length-i))[0]);break}if(n<e)b[1]=y,p-=Math.pow(.5,t+1);else{if(!(c>e))break;b[0]=y,p+=Math.pow(.5,t+1)}}const v=yield s(y,d);return v.size>t.size?t:v}))}}])}));","module.exports = require(\"./build/conversion.js\");\n","<!-- AUTO-GENERATED from plus-ui/src/components/media/ImageUpload/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"component-upload-image\">\r\n <el-upload\r\n ref=\"imageUploadRef\"\r\n v-model:file-list=\"fileList\"\r\n :accept=\"fileAccept\"\r\n :action=\"resolvedAction\"\r\n :before-upload=\"handleBeforeUpload\"\r\n :class=\"{ hide: fileList.length >= limit }\"\r\n :headers=\"headers\"\r\n :limit=\"limit\"\r\n :multiple=\"limit > 1\"\r\n :on-error=\"handleUploadError\"\r\n :on-exceed=\"handleExceed\"\r\n :on-success=\"handleUploadSuccess\"\r\n list-type=\"picture-card\"\r\n >\r\n <!-- 加号卡片(触发区) -->\r\n <el-icon class=\"naive-image-card__plus\"><Plus /></el-icon>\r\n\r\n <!--\r\n 关键:用 #file 插槽**完全接管**每一项的渲染。\r\n 默认渲染会带来三个问题(用户反馈「很丑」):\r\n 1. 上传中的状态没有任何进度反馈;\r\n 2. 上传成功后右上角会多一个对勾角标(.el-upload-list__item-status-label);\r\n 3. 悬停时是 Element Plus 自带的半透明遮罩 + 白色图标,与 naive 观感不一致。\r\n 接管后按 naive-ui 的 n-upload-file--image-card-type 结构重绘。\r\n -->\r\n <template #file=\"{ file }\">\r\n <div class=\"naive-image-card\">\r\n <img v-if=\"file.url\" alt=\"\" class=\"naive-image-card__img\" :src=\"file.url\" />\r\n\r\n <!-- 上传进度:naive 把进度条放在卡片底部(left/right/bottom: 8px) -->\r\n <div v-if=\"file.status === 'uploading'\" class=\"naive-image-card__progress\">\r\n <div class=\"naive-image-card__bar\" :style=\"{ width: `${file.percentage || 0}%` }\" />\r\n </div>\r\n\r\n <!-- 悬停操作:naive 是缩略图降到 .12 透明度、操作区居中铺满 -->\r\n <div class=\"naive-image-card__action\">\r\n <el-button link :icon=\"ZoomIn\" @click=\"handlePreview(file as any)\" />\r\n <el-button v-if=\"!disabled\" link :icon=\"Delete\" @click=\"handleRemove(file as any)\" />\r\n </div>\r\n </div>\r\n </template>\r\n </el-upload>\r\n\r\n <!-- 提示:inline 直接显示(默认) / tooltip 收进问号图标,悬停查看 -->\r\n <div v-if=\"showTip\" class=\"naive-upload-tip\">\r\n <template v-if=\"tipMode === 'tooltip'\">\r\n <el-tooltip :content=\"tipContent\" placement=\"top\">\r\n <el-icon class=\"naive-upload-tip__icon\"><QuestionFilled /></el-icon>\r\n </el-tooltip>\r\n </template>\r\n <span v-else class=\"naive-upload-tip__text\">{{ tipContent }}</span>\r\n </div>\r\n\r\n <el-dialog v-model=\"dialogVisible\" append-to-body title=\"预览\" width=\"800px\">\r\n <img :src=\"dialogImageUrl\" style=\"display: block; max-width: 100%; margin: 0 auto\" />\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { Delete, Plus, QuestionFilled, ZoomIn } from '@element-plus/icons-vue';\r\nimport { listByIds, delOss } from '../api/oss';\r\nimport type { OssVO } from '../api/types';\r\nimport { propTypes } from '../propTypes';\r\nimport { getBaseUrl, globalHeaders } from '../request';\r\nimport { compressAccurately } from 'image-conversion';\r\n\r\nconst props = defineProps({\r\n modelValue: {\r\n type: [String, Object, Array],\r\n default: () => []\r\n },\r\n // 图片数量限制\r\n limit: propTypes.number.def(5),\r\n // 大小限制(MB)\r\n fileSize: propTypes.number.def(5),\r\n // 文件类型, 例如['png', 'jpg', 'jpeg']\r\n fileType: propTypes.array.def(['png', 'jpg', 'jpeg']),\r\n // 是否显示提示\r\n isShowTip: {\r\n type: Boolean,\r\n default: true\r\n },\r\n // 是否支持压缩,默认否\r\n compressSupport: {\r\n type: Boolean,\r\n default: false\r\n },\r\n // 压缩目标大小,单位KB。默认300KB以上文件才压缩,并压缩至300KB以内\r\n compressTargetSize: propTypes.number.def(300),\r\n /**\r\n * 提示展示方式。\r\n * - inline:直接显示在组件下方(默认)\r\n * - tooltip:收成一个问号图标,鼠标悬停才展示,适合表单很挤的场景\r\n */\r\n tipMode: {\r\n type: String,\r\n default: 'inline'\r\n },\r\n // 自定义提示文案,传了则覆盖自动拼装的内容\r\n tipText: propTypes.string.def(''),\r\n // 推荐尺寸描述,例如 '256×256',会拼进提示里\r\n recommendSize: propTypes.string.def(''),\r\n // 禁用组件(仅查看图片)\r\n disabled: propTypes.bool.def(false),\r\n // 自定义上传地址(默认走 OSS)\r\n action: propTypes.string.def('')\r\n});\r\n\r\nconst { proxy } = getCurrentInstance() as ComponentInternalInstance;\r\nconst emit = defineEmits(['update:modelValue', 'upload-success']);\r\nconst number = ref(0);\r\nconst uploadList = ref<any[]>([]);\r\nconst dialogImageUrl = ref('');\r\nconst dialogVisible = ref(false);\r\n\r\nconst baseUrl = getBaseUrl();\r\nconst resolvedAction = computed(() => props.action || baseUrl + '/resource/oss/upload');\r\nconst headers = ref(globalHeaders());\r\n\r\nconst fileList = ref<any[]>([]);\r\nconst showTip = computed(() => props.isShowTip && (props.fileType || props.fileSize));\r\n\r\nconst imageUploadRef = ref<ElUploadInstance>();\r\n\r\n// 监听 fileType 变化,更新 fileAccept\r\nconst fileAccept = computed(() => props.fileType.map((type) => `.${type}`).join(','));\r\n\r\n/** 自动拼装提示文案:尺寸建议 + 大小 + 格式 + 数量上限 */\r\nconst tipContent = computed(() => {\r\n if (props.tipText) {\r\n return props.tipText;\r\n }\r\n const parts: string[] = [];\r\n if (props.recommendSize) {\r\n parts.push(`建议尺寸 ${props.recommendSize}`);\r\n }\r\n if (props.fileSize) {\r\n parts.push(`大小不超过 ${props.fileSize}MB`);\r\n }\r\n if (props.fileType?.length) {\r\n parts.push(`格式为 ${props.fileType.join('/')}`);\r\n }\r\n parts.push(`最多 ${props.limit} 张`);\r\n return `请上传${parts.join('、')}的图片`;\r\n});\r\n\r\nwatch(\r\n () => props.modelValue,\r\n async (val: string) => {\r\n if (val) {\r\n // 首先将值转为数组\r\n let list: OssVO[] = [];\r\n if (Array.isArray(val)) {\r\n list = val as OssVO[];\r\n } else {\r\n const res = await listByIds(val);\r\n list = res.data;\r\n }\r\n // 然后将数组转为对象数组\r\n fileList.value = list.map((item) => {\r\n // 字符串回显处理 如果此处存的是url可直接回显 如果存的是id需要调用接口查出来\r\n let itemData;\r\n if (typeof item === 'string') {\r\n itemData = { name: item, url: item, uid: `${item}` };\r\n } else {\r\n // 此处name使用ossId 防止删除出现重名\r\n itemData = { name: item.ossId, url: item.url, ossId: item.ossId, uid: `${item.ossId}` };\r\n }\r\n return itemData;\r\n });\r\n } else {\r\n fileList.value = [];\r\n return [];\r\n }\r\n },\r\n { deep: true, immediate: true }\r\n);\r\n\r\n/** 上传前loading加载 */\r\nconst handleBeforeUpload = (file: any) => {\r\n let isImg = false;\r\n if (props.fileType.length) {\r\n let fileExtension = '';\r\n if (file.name.lastIndexOf('.') > -1) {\r\n fileExtension = file.name.slice(file.name.lastIndexOf('.') + 1);\r\n }\r\n isImg = props.fileType.some((type: any) => {\r\n if (file.type.indexOf(type) > -1) return true;\r\n if (fileExtension && fileExtension.indexOf(type) > -1) return true;\r\n return false;\r\n });\r\n } else {\r\n isImg = file.type.indexOf('image') > -1;\r\n }\r\n if (!isImg) {\r\n proxy?.$modal.msgError(`文件格式不正确, 请上传${props.fileType.join('/')}图片格式文件!`);\r\n return false;\r\n }\r\n if (file.name.includes(',')) {\r\n proxy?.$modal.msgError('文件名不正确,不能包含英文逗号!');\r\n return false;\r\n }\r\n if (props.fileSize) {\r\n const isLt = file.size / 1024 / 1024 < props.fileSize;\r\n if (!isLt) {\r\n proxy?.$modal.msgError(`上传头像图片大小不能超过 ${props.fileSize} MB!`);\r\n return false;\r\n }\r\n }\r\n\r\n //压缩图片,开启压缩并且大于指定的压缩大小时才压缩\r\n if (props.compressSupport && file.size / 1024 > props.compressTargetSize) {\r\n proxy?.$modal.loading('正在上传图片,请稍候...');\r\n number.value++;\r\n return compressAccurately(file, props.compressTargetSize);\r\n } else {\r\n proxy?.$modal.loading('正在上传图片,请稍候...');\r\n number.value++;\r\n }\r\n};\r\n\r\n// 文件个数超出\r\nconst handleExceed = () => {\r\n proxy?.$modal.msgError(`上传文件数量不能超过 ${props.limit} 个!`);\r\n};\r\n\r\n// 上传成功回调\r\nconst handleUploadSuccess = (res: any, file: UploadFile) => {\r\n if (res.code === 200) {\r\n uploadList.value.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });\r\n // 向外部发送上传成功事件,传递上传结果数据\r\n emit('upload-success', res.data);\r\n uploadedSuccessfully();\r\n } else {\r\n number.value--;\r\n proxy?.$modal.closeLoading();\r\n proxy?.$modal.msgError(res.msg);\r\n imageUploadRef.value?.handleRemove(file);\r\n uploadedSuccessfully();\r\n }\r\n};\r\n\r\n/**\r\n * 删除图片。\r\n * 用 #file 插槽接管渲染后,Element Plus 自带的删除按钮不再存在,\r\n * 因此这里直接改 fileList(已通过 v-model:file-list 双向绑定),\r\n * 不再调用 handleRemove,避免与内部列表重复移除。\r\n */\r\nconst handleRemove = (file: any) => {\r\n const findex = fileList.value.findIndex((f) => f.uid === file.uid || f.name === file.name);\r\n if (findex === -1) {\r\n return;\r\n }\r\n const ossId = fileList.value[findex].ossId;\r\n if (ossId) {\r\n delOss(ossId);\r\n }\r\n fileList.value.splice(findex, 1);\r\n emit('update:modelValue', listToString(fileList.value));\r\n};\r\n\r\n// 上传结束处理\r\nconst uploadedSuccessfully = () => {\r\n if (number.value > 0 && uploadList.value.length === number.value) {\r\n fileList.value = fileList.value.filter((f) => f.url !== undefined).concat(uploadList.value);\r\n uploadList.value = [];\r\n number.value = 0;\r\n emit('update:modelValue', listToString(fileList.value));\r\n proxy?.$modal.closeLoading();\r\n }\r\n};\r\n\r\n// 上传失败\r\nconst handleUploadError = () => {\r\n number.value--;\r\n proxy?.$modal.closeLoading();\r\n proxy?.$modal.msgError('上传图片失败');\r\n};\r\n\r\n// 预览\r\nconst handlePreview = (file: any) => {\r\n dialogImageUrl.value = file.url;\r\n dialogVisible.value = true;\r\n};\r\n\r\n// 对象转成指定字符串分隔\r\nconst listToString = (list: any[], separator?: string) => {\r\n let strs = '';\r\n separator = separator || ',';\r\n for (const i in list) {\r\n if (undefined !== list[i].ossId && list[i].url.indexOf('blob:') !== 0) {\r\n strs += list[i].ossId + separator;\r\n }\r\n }\r\n return strs != '' ? strs.substring(0, strs.length - 1) : '';\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n/**\r\n * naive-ui Upload(list-type = image-card)皮肤\r\n * ------------------------------------------------------------------\r\n * 数值取自 naive-ui 源码:\r\n * src/upload/src/styles/index.cssr.ts → &--image-card / --image-card-type / __action / __progress\r\n * src/upload/styles/light.ts → itemBorderImageCard = 1px solid borderColor\r\n * src/_styles/common/light.ts → borderColor #e0e0e6 / actionColor #fafafc / borderRadius 3px\r\n */\r\n$n-border-color: #e0e0e6;\r\n$n-action-color: #fafafc;\r\n$n-icon-color: #c2c2c2;\r\n$n-border-radius: 3px;\r\n$n-card-size: 96px; // n-upload-trigger--image-card { width/height: 96px }\r\n\r\n.component-upload-image {\r\n /* ---------------- 触发区(加号卡片) ---------------- */\r\n :deep(.el-upload--picture-card) {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: $n-card-size;\r\n height: $n-card-size;\r\n line-height: 1;\r\n border: 1px dashed $n-border-color;\r\n border-radius: $n-border-radius;\r\n background-color: $n-action-color;\r\n transition:\r\n border-color 0.3s,\r\n background-color 0.3s;\r\n\r\n &:hover {\r\n border-color: var(--el-color-primary);\r\n }\r\n }\r\n\r\n /* n-upload-trigger--image-card .n-base-icon { font-size: 24px } */\r\n .naive-image-card__plus {\r\n font-size: 24px;\r\n color: $n-icon-color;\r\n }\r\n\r\n /* ---------------- 已上传卡片 ---------------- */\r\n :deep(.el-upload-list--picture-card .el-upload-list__item) {\r\n width: $n-card-size;\r\n height: $n-card-size;\r\n padding: 0;\r\n border: 1px solid $n-border-color;\r\n border-radius: $n-border-radius;\r\n overflow: hidden;\r\n background-color: transparent;\r\n }\r\n\r\n /* 干掉 Element Plus 自带的“成功对勾角标”,naive 没有这个元素 */\r\n :deep(.el-upload-list--picture-card .el-upload-list__item-status-label) {\r\n display: none;\r\n }\r\n\r\n /* 干掉 Element Plus 自带的悬停遮罩层,改用 naive 的做法(缩略图降透明 + 操作居中) */\r\n :deep(.el-upload-list--picture-card .el-upload-list__item-actions) {\r\n display: none;\r\n }\r\n\r\n :deep(.el-upload-list--picture-card .el-upload-list__item-thumbnail) {\r\n display: none;\r\n }\r\n}\r\n\r\n.naive-image-card {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n\r\n &__img {\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n opacity: 1;\r\n transition: opacity 0.2s;\r\n }\r\n\r\n /* n-upload-file--image-card-type .n-progress { left/right/bottom: 8px } */\r\n &__progress {\r\n position: absolute;\r\n left: 8px;\r\n right: 8px;\r\n bottom: 8px;\r\n height: 2px;\r\n border-radius: 1px;\r\n background-color: rgb(0 0 0 / 12%);\r\n overflow: hidden;\r\n }\r\n\r\n &__bar {\r\n height: 100%;\r\n background-color: var(--el-color-primary);\r\n transition: width 0.2s;\r\n }\r\n\r\n /* n-upload-file-info__action--image-card-type:铺满并居中 */\r\n &__action {\r\n position: absolute;\r\n inset: 0;\r\n z-index: 2;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 4px;\r\n opacity: 0;\r\n transition: opacity 0.2s;\r\n\r\n :deep(.el-button) {\r\n font-size: 18px;\r\n color: #333639;\r\n\r\n &:hover {\r\n color: var(--el-color-primary);\r\n }\r\n }\r\n }\r\n\r\n /* 悬停:缩略图降到 .12,操作浮现(与 naive 的 ::before + thumbnail opacity .12 等价) */\r\n &:hover {\r\n .naive-image-card__img {\r\n opacity: 0.12;\r\n }\r\n\r\n .naive-image-card__action {\r\n opacity: 1;\r\n }\r\n }\r\n}\r\n\r\n/* ---------------- 提示 ---------------- */\r\n.naive-upload-tip {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n margin-top: 8px;\r\n font-size: 14px;\r\n line-height: 1.6;\r\n color: #767c82;\r\n\r\n &__icon {\r\n font-size: 15px;\r\n color: $n-icon-color;\r\n cursor: help;\r\n\r\n &:hover {\r\n color: var(--el-color-primary);\r\n }\r\n }\r\n}\r\n\r\n// 达到数量上限时隐藏触发区\r\n:deep(.hide .el-upload--picture-card) {\r\n display: none;\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KDictTag/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <span class=\"dict-tag\" :class=\"{ 'dict-tag--wrap': wrap }\" :style=\"wrapperStyle\">\r\n <template v-for=\"item in matchedOptions\" :key=\"`${item.value}-${item.label}`\">\r\n <span v-if=\"displayMode === 'text'\" :class=\"['dict-tag__text', item.elTagClass || item.cssClass]\">\r\n {{ item.label }}\r\n </span>\r\n <el-tag\r\n v-else\r\n :class=\"['dict-tag__item', `dict-tag__item--${theme}`, item.elTagClass || item.cssClass]\"\r\n :disable-transitions=\"true\"\r\n :effect=\"resolvedEffect\"\r\n :round=\"round\"\r\n :size=\"size\"\r\n :type=\"resolveTagType(item)\"\r\n >\r\n {{ item.label }}\r\n </el-tag>\r\n </template>\r\n <template v-if=\"unmatchedValues.length && showValue\">\r\n <span v-if=\"displayMode === 'text'\" class=\"dict-tag__text\">{{ unmatchedText }}</span>\r\n <el-tag\r\n v-else\r\n class=\"dict-tag__item dict-tag__item--fallback\"\r\n :disable-transitions=\"true\"\r\n :effect=\"resolvedEffect\"\r\n :round=\"round\"\r\n :size=\"size\"\r\n :type=\"fallbackType\"\r\n >\r\n {{ unmatchedText }}\r\n </el-tag>\r\n </template>\r\n </span>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\n\r\ntype DictTagTheme = 'light' | 'dark' | 'plain' | 'text';\r\n\r\ninterface Props {\r\n options: Array<DictDataOption>;\r\n value: number | string | Array<number | string>;\r\n showValue?: boolean;\r\n separator?: string;\r\n round?: boolean;\r\n wrap?: boolean;\r\n gap?: number | string;\r\n size?: '' | 'large' | 'default' | 'small';\r\n theme?: DictTagTheme;\r\n fallbackType?: ElTagType;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n showValue: true,\r\n separator: ',',\r\n round: true,\r\n wrap: true,\r\n gap: 8,\r\n size: 'small',\r\n theme: 'light',\r\n fallbackType: 'info'\r\n});\r\n\r\nconst normalizedValues = computed(() => {\r\n if (props.value === '' || props.value === null || typeof props.value === 'undefined') {\r\n return [];\r\n }\r\n if (Array.isArray(props.value)) {\r\n return props.value.map((item) => String(item)).filter(Boolean);\r\n }\r\n return String(props.value)\r\n .split(props.separator)\r\n .map((item) => item.trim())\r\n .filter(Boolean);\r\n});\r\n\r\nconst matchedOptions = computed(() =>\r\n normalizedValues.value\r\n .map((value) => props.options?.find((item) => String(item.value) === value))\r\n .filter((item): item is DictDataOption => !!item)\r\n);\r\n\r\nconst unmatchedValues = computed(() => normalizedValues.value.filter((value) => !props.options?.some((item) => String(item.value) === value)));\r\n\r\nconst unmatchedText = computed(() => unmatchedValues.value.join('、'));\r\n\r\nconst wrapperStyle = computed(() => ({\r\n gap: typeof props.gap === 'number' ? `${props.gap}px` : props.gap\r\n}));\r\n\r\nconst displayMode = computed(() => props.theme);\r\n\r\nconst resolvedEffect = computed(() => {\r\n if (props.theme === 'dark') {\r\n return 'dark';\r\n }\r\n if (props.theme === 'plain') {\r\n return 'plain';\r\n }\r\n return 'light';\r\n});\r\n\r\nconst resolveTagType = (item: DictDataOption): ElTagType => {\r\n const tagType = item.elTagType;\r\n if (tagType === 'primary' || tagType === 'success' || tagType === 'info' || tagType === 'warning' || tagType === 'danger') {\r\n return tagType;\r\n }\r\n return 'info';\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.dict-tag {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n}\r\n\r\n.dict-tag--wrap {\r\n flex-wrap: wrap;\r\n}\r\n\r\n.dict-tag__text {\r\n color: #475569;\r\n font-size: 13px;\r\n line-height: 1.4;\r\n}\r\n\r\n.dict-tag__item {\r\n margin: 0;\r\n font-weight: 500;\r\n border-radius: 999px;\r\n border-width: 1px;\r\n}\r\n\r\n.dict-tag__item--light {\r\n box-shadow: none;\r\n}\r\n\r\n.dict-tag__item :deep(.el-tag__content) {\r\n line-height: 1;\r\n}\r\n\r\n.dict-tag__item.el-tag--primary {\r\n color: #2563eb;\r\n border-color: #bfdbfe;\r\n background: #eff6ff;\r\n}\r\n\r\n.dict-tag__item.el-tag--success {\r\n color: #15803d;\r\n border-color: #bbf7d0;\r\n background: #f0fdf4;\r\n}\r\n\r\n.dict-tag__item.el-tag--info {\r\n color: #475569;\r\n border-color: #cbd5e1;\r\n background: #f8fafc;\r\n}\r\n\r\n.dict-tag__item.el-tag--warning {\r\n color: #b45309;\r\n border-color: #fde68a;\r\n background: #fffbeb;\r\n}\r\n\r\n.dict-tag__item.el-tag--danger {\r\n color: #dc2626;\r\n border-color: #fecaca;\r\n background: #fef2f2;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--primary {\r\n background: #2563eb;\r\n border-color: #2563eb;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--success {\r\n background: #16a34a;\r\n border-color: #16a34a;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--info {\r\n background: #64748b;\r\n border-color: #64748b;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--warning {\r\n background: #d97706;\r\n border-color: #d97706;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--danger {\r\n background: #dc2626;\r\n border-color: #dc2626;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--plain.el-tag--primary,\r\n.dict-tag__item--plain.el-tag--success,\r\n.dict-tag__item--plain.el-tag--info,\r\n.dict-tag__item--plain.el-tag--warning,\r\n.dict-tag__item--plain.el-tag--danger {\r\n background: #fff;\r\n}\r\n\r\n.dict-tag__item--fallback {\r\n background: #f8fafc;\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KSearchBar/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <section class=\"k-search-bar\" v-bind=\"$attrs\">\r\n <el-collapse v-model=\"activeNames\" class=\"k-search-bar__collapse\">\r\n <el-collapse-item name=\"search\">\r\n <template #title>\r\n <div class=\"k-search-bar__title\">\r\n <span>{{ title }}</span>\r\n </div>\r\n </template>\r\n\r\n <el-form ref=\"formRef\" :label-position=\"labelPosition\" :model=\"modelValue\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col\r\n v-for=\"item in visibleItems\"\r\n :key=\"String(item.key)\"\r\n :lg=\"item.lg ?? item.span ?? span\"\r\n :md=\"item.md ?? item.span ?? span\"\r\n :sm=\"item.sm ?? Math.min((item.span ?? span) * 2, 24)\"\r\n :xl=\"item.xl ?? item.span ?? span\"\r\n :xs=\"24\"\r\n >\r\n <el-form-item :prop=\"String(item.key)\">\r\n <template v-if=\"item.label\" #label>\r\n <component :is=\"item.label\" v-if=\"typeof item.label !== 'string'\" />\r\n <span v-else>{{ item.label }}</span>\r\n </template>\r\n\r\n <slot :item=\"item\" :model-value=\"modelValue\" :name=\"String(item.key)\">\r\n <component\r\n :is=\"resolveComponent(item)\"\r\n :model-value=\"getFieldValue(item.key)\"\r\n v-bind=\"resolveProps(item)\"\r\n @update:model-value=\"setFieldValue(item.key, $event)\"\r\n >\r\n <template v-if=\"item.type === 'select' && resolveOptions(item).length\">\r\n <el-option\r\n v-for=\"option in resolveOptions(item)\"\r\n :key=\"String(option.value)\"\r\n :disabled=\"option.disabled\"\r\n :label=\"option.label\"\r\n :value=\"option.value\"\r\n />\r\n </template>\r\n <template v-else-if=\"item.type === 'checkboxgroup' && resolveOptions(item).length\">\r\n <el-checkbox\r\n v-for=\"option in resolveOptions(item)\"\r\n :key=\"String(option.value)\"\r\n :disabled=\"option.disabled\"\r\n :label=\"option.value\"\r\n >\r\n {{ option.label }}\r\n </el-checkbox>\r\n </template>\r\n <template v-else-if=\"item.type === 'radiogroup' && resolveOptions(item).length\">\r\n <el-radio v-for=\"option in resolveOptions(item)\" :key=\"String(option.value)\" :disabled=\"option.disabled\" :label=\"option.value\">\r\n {{ option.label }}\r\n </el-radio>\r\n </template>\r\n </component>\r\n </slot>\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :lg=\"24\" :md=\"24\" :sm=\"24\" :xl=\"24\" :xs=\"24\" class=\"k-search-bar__actions-col\">\r\n <div class=\"k-search-bar__actions\">\r\n <slot :model-value=\"modelValue\" name=\"actions-before\" />\r\n <el-button v-if=\"showReset\" :icon=\"Refresh\" @click=\"handleReset\">\r\n {{ resetText }}\r\n </el-button>\r\n <el-button v-if=\"showSearch\" :icon=\"Search\" type=\"primary\" @click=\"handleSearch\">\r\n {{ searchText }}\r\n </el-button>\r\n <slot :model-value=\"modelValue\" name=\"actions-after\" />\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </el-collapse-item>\r\n </el-collapse>\r\n </section>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { Refresh, Search } from '@element-plus/icons-vue';\r\nimport type { Component, VNode } from 'vue';\r\nimport {\r\n ElCascader,\r\n ElCheckbox,\r\n ElCheckboxGroup,\r\n ElDatePicker,\r\n ElForm,\r\n ElInput,\r\n ElInputNumber,\r\n ElOption,\r\n ElRadio,\r\n ElRadioGroup,\r\n ElSelect,\r\n ElSwitch,\r\n ElTimePicker,\r\n ElTimeSelect,\r\n ElTreeSelect\r\n} from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'KSearchBar',\r\n inheritAttrs: false\r\n});\r\n\r\ninterface SearchOption {\r\n label: string;\r\n value: string | number | boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nexport interface KSearchBarItem {\r\n key: string;\r\n label?: string | (() => VNode) | Component;\r\n type?: string;\r\n hidden?: boolean;\r\n span?: number;\r\n sm?: number;\r\n md?: number;\r\n lg?: number;\r\n xl?: number;\r\n placeholder?: string;\r\n options?: SearchOption[];\r\n props?: Record<string, any>;\r\n render?: (() => VNode) | Component;\r\n}\r\n\r\ninterface SanitizeOutputOptions {\r\n removeEmptyString: boolean;\r\n removeEmptyArray: boolean;\r\n removeEmptyObject: boolean;\r\n keepZero: boolean;\r\n keepFalse: boolean;\r\n}\r\n\r\nconst componentMap = {\r\n input: ElInput,\r\n number: ElInputNumber,\r\n select: ElSelect,\r\n switch: ElSwitch,\r\n checkbox: ElCheckbox,\r\n checkboxgroup: ElCheckboxGroup,\r\n radiogroup: ElRadioGroup,\r\n date: ElDatePicker,\r\n daterange: ElDatePicker,\r\n datetime: ElDatePicker,\r\n datetimerange: ElDatePicker,\r\n cascader: ElCascader,\r\n timepicker: ElTimePicker,\r\n timeselect: ElTimeSelect,\r\n treeselect: ElTreeSelect\r\n} as const;\r\n\r\nconst defaultPlaceholders: Record<string, string> = {\r\n input: '请输入',\r\n number: '请输入',\r\n select: '请选择',\r\n cascader: '请选择',\r\n treeselect: '请选择',\r\n date: '请选择日期',\r\n daterange: '请选择日期范围',\r\n datetime: '请选择日期时间',\r\n datetimerange: '请选择日期时间范围',\r\n timepicker: '请选择时间',\r\n timeselect: '请选择时间'\r\n};\r\n\r\nconst rangeTypeMap: Record<string, Record<string, any>> = {\r\n daterange: {\r\n type: 'daterange',\r\n startPlaceholder: '开始日期',\r\n endPlaceholder: '结束日期',\r\n rangeSeparator: '-'\r\n },\r\n datetimerange: {\r\n type: 'datetimerange',\r\n startPlaceholder: '开始时间',\r\n endPlaceholder: '结束时间',\r\n rangeSeparator: '-'\r\n }\r\n};\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n items: KSearchBarItem[];\r\n span?: number;\r\n actionSpan?: number;\r\n gutter?: number;\r\n labelPosition?: 'left' | 'right' | 'top';\r\n showReset?: boolean;\r\n showSearch?: boolean;\r\n title?: string;\r\n searchText?: string;\r\n resetText?: string;\r\n sanitizeOutput?: Partial<SanitizeOutputOptions>;\r\n }>(),\r\n {\r\n items: () => [],\r\n span: 6,\r\n actionSpan: 6,\r\n gutter: 16,\r\n labelPosition: 'right',\r\n showReset: true,\r\n showSearch: true,\r\n title: '搜索条件',\r\n searchText: '搜索',\r\n resetText: '重置',\r\n sanitizeOutput: () => ({})\r\n }\r\n);\r\n\r\nconst emit = defineEmits<{\r\n reset: [];\r\n search: [Record<string, any>];\r\n}>();\r\n\r\nconst modelValue = defineModel<Record<string, any>>({ default: {} });\r\nconst formRef = useTemplateRef<InstanceType<typeof ElForm>>('formRef');\r\nconst activeNames = ref<string[]>([]);\r\nconst initialModelValue = ref<Record<string, any>>(cloneValue(modelValue.value));\r\n\r\nconst visibleItems = computed(() => props.items.filter((item) => !item.hidden));\r\n\r\nfunction cloneValue<T>(value: T): T {\r\n if (Array.isArray(value)) {\r\n return value.map((item) => cloneValue(item)) as T;\r\n }\r\n if (value && typeof value === 'object') {\r\n return Object.entries(value as Record<string, any>).reduce(\r\n (acc, [key, item]) => {\r\n acc[key] = cloneValue(item);\r\n return acc;\r\n },\r\n {} as Record<string, any>\r\n ) as T;\r\n }\r\n return value;\r\n}\r\n\r\nfunction resolveComponent(item: KSearchBarItem) {\r\n if (item.render) return item.render;\r\n return componentMap[item.type as keyof typeof componentMap] || ElInput;\r\n}\r\n\r\nfunction resolveOptions(item: KSearchBarItem) {\r\n return item.options || item.props?.options || [];\r\n}\r\n\r\nfunction resolveProps(item: KSearchBarItem) {\r\n const type = item.type || 'input';\r\n const nextProps = Object.entries(item.props || {}).reduce(\r\n (acc, [key, value]) => {\r\n acc[key] = unref(value);\r\n return acc;\r\n },\r\n {} as Record<string, any>\r\n );\r\n delete nextProps.options;\r\n\r\n if (rangeTypeMap[type]) {\r\n Object.assign(nextProps, rangeTypeMap[type]);\r\n }\r\n if (type === 'treeselect') {\r\n if (nextProps.data === undefined) {\r\n nextProps.data = resolveOptions(item);\r\n }\r\n if (!Array.isArray(nextProps.data)) {\r\n nextProps.data = [];\r\n }\r\n }\r\n if (!nextProps.placeholder && item.placeholder) {\r\n nextProps.placeholder = item.placeholder;\r\n }\r\n if (!nextProps.placeholder && defaultPlaceholders[type]) {\r\n nextProps.placeholder = defaultPlaceholders[type];\r\n }\r\n if (type === 'select' && nextProps.filterable === undefined) {\r\n nextProps.filterable = true;\r\n }\r\n if (nextProps.clearable === undefined && !['switch', 'checkbox'].includes(type)) {\r\n nextProps.clearable = true;\r\n }\r\n return nextProps;\r\n}\r\n\r\nfunction getFieldValue(key: string) {\r\n return modelValue.value[key];\r\n}\r\n\r\nfunction setFieldValue(key: string, value: unknown) {\r\n if (value === '') {\r\n delete modelValue.value[key];\r\n return;\r\n }\r\n modelValue.value[key] = value;\r\n}\r\n\r\nfunction sanitizeOutputValue(value: unknown): unknown {\r\n const options: SanitizeOutputOptions = {\r\n removeEmptyString: true,\r\n removeEmptyArray: true,\r\n removeEmptyObject: true,\r\n keepZero: true,\r\n keepFalse: true,\r\n ...props.sanitizeOutput\r\n };\r\n\r\n if (Array.isArray(value)) {\r\n const sanitized = value.map((item) => sanitizeOutputValue(item)).filter((item) => item !== undefined);\r\n return sanitized.length === 0 && options.removeEmptyArray ? undefined : sanitized;\r\n }\r\n\r\n if (value && typeof value === 'object') {\r\n const sanitized = Object.entries(value as Record<string, unknown>).reduce(\r\n (acc, [key, item]) => {\r\n const nextValue = sanitizeOutputValue(item);\r\n if (nextValue !== undefined) {\r\n acc[key] = nextValue;\r\n }\r\n return acc;\r\n },\r\n {} as Record<string, unknown>\r\n );\r\n return Object.keys(sanitized).length === 0 && options.removeEmptyObject ? undefined : sanitized;\r\n }\r\n\r\n if (typeof value === 'string') {\r\n return options.removeEmptyString && value.trim() === '' ? undefined : value;\r\n }\r\n\r\n if (value === 0) {\r\n return options.keepZero ? value : undefined;\r\n }\r\n\r\n if (value === false) {\r\n return options.keepFalse ? value : undefined;\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction getOutput() {\r\n return (sanitizeOutputValue(cloneValue(modelValue.value)) || {}) as Record<string, any>;\r\n}\r\n\r\nfunction handleReset() {\r\n formRef.value?.resetFields();\r\n Object.keys(modelValue.value).forEach((key) => delete modelValue.value[key]);\r\n Object.assign(modelValue.value, cloneValue(initialModelValue.value));\r\n emit('reset');\r\n}\r\n\r\nfunction handleSearch() {\r\n emit('search', getOutput());\r\n}\r\n\r\ndefineExpose({\r\n reset: handleReset,\r\n validate: (...args: any[]) => formRef.value?.validate(...args),\r\n getOutput,\r\n formRef\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.k-search-bar {\r\n :deep(.el-collapse) {\r\n border-radius: 8px;\r\n overflow: hidden;\r\n border: 1px solid var(--el-collapse-border-color);\r\n }\r\n\r\n :deep(.el-collapse-item__wrap) {\r\n border-bottom: none;\r\n }\r\n\r\n :deep(.el-collapse-item__header) {\r\n height: 48px;\r\n padding: 0 16px;\r\n border-bottom: none;\r\n font-weight: 600;\r\n }\r\n\r\n :deep(.el-collapse-item__content) {\r\n padding: 0 16px 16px;\r\n }\r\n\r\n :deep(.el-form-item) {\r\n margin-bottom: 16px;\r\n }\r\n}\r\n\r\n.k-search-bar__title {\r\n display: flex;\r\n align-items: center;\r\n color: var(--el-text-color-primary);\r\n}\r\n\r\n.k-search-bar__actions-col {\r\n margin-left: auto;\r\n}\r\n\r\n.k-search-bar__actions {\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n min-height: 100%;\r\n}\r\n\r\n@media (width <= 768px) {\r\n .k-search-bar__actions {\r\n justify-content: flex-start;\r\n }\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KTable/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div :class=\"{ 'is-empty': isEmpty }\" class=\"k-table\">\r\n <el-table ref=\"elTableRef\" v-loading=\"!!loading\" v-bind=\"mergedTableProps\" @selection-change=\"handleSelectionChange\">\r\n <template v-for=\"col in displayColumns\" :key=\"String(col.prop || col.type || col.label || col.key)\">\r\n <el-table-column v-if=\"col.type === 'globalIndex'\" v-bind=\"cleanColumnProps(col)\">\r\n <template #default=\"{ $index }\">\r\n <span>{{ getGlobalIndex($index) }}</span>\r\n </template>\r\n </el-table-column>\r\n\r\n <el-table-column v-else v-bind=\"cleanColumnProps(col)\">\r\n <template v-if=\"col.useHeaderSlot && col.prop\" #header=\"headerScope\">\r\n <slot\r\n :name=\"col.headerSlotName || `${col.prop}-header`\"\r\n v-bind=\"{ ...headerScope, prop: col.prop, label: col.label, column: col }\"\r\n >\r\n {{ col.label }}\r\n </slot>\r\n </template>\r\n <template v-if=\"col.useSlot && (col.slotName || col.prop)\" #default=\"slotScope\">\r\n <slot\r\n v-if=\"slotScope.$index === undefined || slotScope.$index >= 0\"\r\n :name=\"col.slotName || col.prop\"\r\n v-bind=\"{ ...slotScope, column: col, prop: col.prop, value: col.prop ? slotScope.row[col.prop] : undefined }\"\r\n />\r\n </template>\r\n </el-table-column>\r\n </template>\r\n\r\n <slot />\r\n\r\n <template #empty>\r\n <div v-if=\"loading\"></div>\r\n <el-empty v-else :description=\"emptyText\" :image-size=\"120\" />\r\n </template>\r\n </el-table>\r\n\r\n <div v-if=\"showPagination\" :class=\"paginationAlign\" class=\"k-table__pagination\">\r\n <el-pagination\r\n :current-page=\"paginationCurrent\"\r\n :disabled=\"loading\"\r\n :page-size=\"paginationSize\"\r\n :total=\"paginationTotal\"\r\n v-bind=\"paginationProps\"\r\n @current-change=\"handleCurrentChange\"\r\n @size-change=\"handleSizeChange\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { useAttrs } from 'vue';\r\n\r\ndefineOptions({ name: 'KTable', inheritAttrs: false });\r\n\r\nexport interface KTableColumn {\r\n type?: string;\r\n prop?: string;\r\n key?: string | number;\r\n label?: string;\r\n visible?: boolean;\r\n checked?: boolean;\r\n useSlot?: boolean;\r\n slotName?: string;\r\n useHeaderSlot?: boolean;\r\n headerSlotName?: string;\r\n [key: string]: any;\r\n}\r\n\r\ninterface KTableColumnState {\r\n key: string | number;\r\n visible?: boolean;\r\n checked?: boolean;\r\n fixed?: boolean | 'left' | 'right';\r\n sortOrder?: number;\r\n}\r\n\r\ninterface KPaginationConfig {\r\n pageNum?: number;\r\n pageSize?: number;\r\n total?: number;\r\n current?: number;\r\n size?: number;\r\n}\r\n\r\ninterface KPaginationOptions {\r\n pageSizes?: number[];\r\n layout?: string;\r\n background?: boolean;\r\n pagerCount?: number;\r\n align?: 'left' | 'center' | 'right';\r\n [key: string]: any;\r\n}\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n loading?: boolean;\r\n columns?: KTableColumn[];\r\n columnState?: KTableColumnState[];\r\n data?: Record<string, any>[];\r\n pagination?: KPaginationConfig;\r\n paginationOptions?: KPaginationOptions;\r\n emptyText?: string;\r\n showPaginationWhenEmpty?: boolean;\r\n }>(),\r\n {\r\n loading: false,\r\n columns: () => [],\r\n columnState: () => [],\r\n data: () => [],\r\n emptyText: '暂无数据',\r\n paginationOptions: () => ({}),\r\n showPaginationWhenEmpty: false\r\n }\r\n);\r\n\r\nconst attrs = useAttrs();\r\nconst elTableRef = ref<ElTableInstance>();\r\n\r\nconst emit = defineEmits<{\r\n 'pagination:current-change': [number];\r\n 'pagination:size-change': [number];\r\n 'selection-change': [any[]];\r\n 'update:pagination': [KPaginationConfig];\r\n}>();\r\n\r\nconst displayColumns = computed(() => {\r\n const stateMap = new Map(props.columnState.map((item, index) => [item.key, { ...item, __index: index }]));\r\n\r\n return props.columns\r\n .map((column, index) => {\r\n const columnKey = column.key;\r\n const state = columnKey !== undefined ? stateMap.get(columnKey) : undefined;\r\n return {\r\n ...column,\r\n visible: state?.visible ?? column.visible,\r\n checked: state?.checked ?? column.checked,\r\n fixed: state?.fixed ?? column.fixed,\r\n __sortOrder: state?.sortOrder ?? state?.__index ?? index\r\n };\r\n })\r\n .filter((item) => item.visible !== false && item.checked !== false)\r\n .sort((a, b) => Number(a.__sortOrder ?? 0) - Number(b.__sortOrder ?? 0));\r\n});\r\nconst isEmpty = computed(() => !props.data?.length);\r\nconst paginationCurrent = computed(() => props.pagination?.pageNum ?? props.pagination?.current ?? 1);\r\nconst paginationSize = computed(() => props.pagination?.pageSize ?? props.pagination?.size ?? 10);\r\nconst paginationTotal = computed(() => props.pagination?.total ?? 0);\r\nconst showPagination = computed(() => !!props.pagination && (props.showPaginationWhenEmpty || !!paginationTotal.value));\r\nconst paginationAlign = computed(() => props.paginationOptions?.align || 'right');\r\n\r\nconst paginationProps = computed(() => ({\r\n background: true,\r\n layout: 'total, prev, pager, next, sizes, jumper',\r\n pageSizes: [10, 20, 50, 100],\r\n pagerCount: 7,\r\n ...props.paginationOptions\r\n}));\r\n\r\nconst mergedTableProps = computed(() => ({\r\n ...attrs,\r\n data: props.data\r\n}));\r\n\r\nfunction cleanColumnProps(col: KTableColumn) {\r\n const next = { ...col };\r\n delete next.visible;\r\n delete next.checked;\r\n delete next.useSlot;\r\n delete next.slotName;\r\n delete next.useHeaderSlot;\r\n delete next.headerSlotName;\r\n delete next.__sortOrder;\r\n return next;\r\n}\r\n\r\nfunction getGlobalIndex(index: number) {\r\n return (paginationCurrent.value - 1) * paginationSize.value + index + 1;\r\n}\r\n\r\nfunction emitPagination(partial: Partial<KPaginationConfig>) {\r\n if (!props.pagination) return;\r\n emit('update:pagination', {\r\n ...props.pagination,\r\n pageNum: partial.pageNum ?? partial.current ?? paginationCurrent.value,\r\n current: partial.current ?? partial.pageNum ?? paginationCurrent.value,\r\n pageSize: partial.pageSize ?? partial.size ?? paginationSize.value,\r\n size: partial.size ?? partial.pageSize ?? paginationSize.value,\r\n total: paginationTotal.value\r\n });\r\n}\r\n\r\nfunction handleCurrentChange(value: number) {\r\n emit('pagination:current-change', value);\r\n emitPagination({ pageNum: value, current: value });\r\n}\r\n\r\nfunction handleSizeChange(value: number) {\r\n emit('pagination:size-change', value);\r\n emitPagination({ pageNum: 1, current: 1, pageSize: value, size: value });\r\n}\r\n\r\nfunction handleSelectionChange(value: any[]) {\r\n emit('selection-change', value);\r\n}\r\n\r\ndefineExpose({ elTableRef });\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.k-table {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n}\r\n\r\n.k-table__pagination {\r\n display: flex;\r\n}\r\n\r\n.k-table__pagination.left {\r\n justify-content: flex-start;\r\n}\r\n\r\n.k-table__pagination.center {\r\n justify-content: center;\r\n}\r\n\r\n.k-table__pagination.right {\r\n justify-content: flex-end;\r\n}\r\n</style>\r\n","var an = Object.defineProperty;\nvar Pe = Object.getOwnPropertySymbols;\nvar yt = Object.prototype.hasOwnProperty, wt = Object.prototype.propertyIsEnumerable;\nvar bt = (t, e, n) => e in t ? an(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, fe = (t, e) => {\n for (var n in e || (e = {}))\n yt.call(e, n) && bt(t, n, e[n]);\n if (Pe)\n for (var n of Pe(e))\n wt.call(e, n) && bt(t, n, e[n]);\n return t;\n};\nvar $e = (t, e) => {\n var n = {};\n for (var o in t)\n yt.call(t, o) && e.indexOf(o) < 0 && (n[o] = t[o]);\n if (t != null && Pe)\n for (var o of Pe(t))\n e.indexOf(o) < 0 && wt.call(t, o) && (n[o] = t[o]);\n return n;\n};\nimport { getCurrentInstance as dt, unref as U, watch as ln, onUnmounted as sn, onMounted as un, nextTick as kt, isRef as qe, defineComponent as cn, computed as Et, toRefs as fn, ref as dn, reactive as hn, h as pn, isProxy as gn } from \"vue\";\nconst Ht = \"[vue-draggable-plus]: \";\nfunction mn(t) {\n console.warn(Ht + t);\n}\nfunction vn(t) {\n console.error(Ht + t);\n}\nfunction St(t, e, n) {\n return n >= 0 && n < t.length && t.splice(n, 0, t.splice(e, 1)[0]), t;\n}\nfunction bn(t) {\n return t.replace(/-(\\w)/g, (e, n) => n ? n.toUpperCase() : \"\");\n}\nfunction yn(t) {\n return Object.keys(t).reduce((e, n) => (typeof t[n] != \"undefined\" && (e[bn(n)] = t[n]), e), {});\n}\nfunction Dt(t, e) {\n return Array.isArray(t) && t.splice(e, 1), t;\n}\nfunction _t(t, e, n) {\n return Array.isArray(t) && t.splice(e, 0, n), t;\n}\nfunction wn(t) {\n return typeof t == \"undefined\";\n}\nfunction En(t) {\n return typeof t == \"string\";\n}\nfunction Tt(t, e, n) {\n const o = t.children[n];\n t.insertBefore(e, o);\n}\nfunction Ke(t) {\n t.parentNode && t.parentNode.removeChild(t);\n}\nfunction Sn(t, e = document) {\n var o;\n let n = null;\n return typeof (e == null ? void 0 : e.querySelector) == \"function\" ? n = (o = e == null ? void 0 : e.querySelector) == null ? void 0 : o.call(e, t) : n = document.querySelector(t), n || mn(`Element not found: ${t}`), n;\n}\nfunction Dn(t, e, n = null) {\n return function(...o) {\n return t.apply(n, o), e.apply(n, o);\n };\n}\nfunction _n(t, e) {\n const n = fe({}, t);\n return Object.keys(e).forEach((o) => {\n n[o] ? n[o] = Dn(t[o], e[o]) : n[o] = e[o];\n }), n;\n}\nfunction Tn(t) {\n return t instanceof HTMLElement;\n}\nfunction Ct(t, e) {\n Object.keys(t).forEach((n) => {\n e(n, t[n]);\n });\n}\nfunction Cn(t) {\n return t.charCodeAt(0) === 111 && t.charCodeAt(1) === 110 && (t.charCodeAt(2) > 122 || t.charCodeAt(2) < 97);\n}\nconst On = Object.assign;\n/**!\n * Sortable 1.15.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n */\nfunction Ot(t, e) {\n var n = Object.keys(t);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(t);\n e && (o = o.filter(function(r) {\n return Object.getOwnPropertyDescriptor(t, r).enumerable;\n })), n.push.apply(n, o);\n }\n return n;\n}\nfunction ne(t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = arguments[e] != null ? arguments[e] : {};\n e % 2 ? Ot(Object(n), !0).forEach(function(o) {\n In(t, o, n[o]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Ot(Object(n)).forEach(function(o) {\n Object.defineProperty(t, o, Object.getOwnPropertyDescriptor(n, o));\n });\n }\n return t;\n}\nfunction Ye(t) {\n \"@babel/helpers - typeof\";\n return typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? Ye = function(e) {\n return typeof e;\n } : Ye = function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, Ye(t);\n}\nfunction In(t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n}\nfunction ie() {\n return ie = Object.assign || function(t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = arguments[e];\n for (var o in n)\n Object.prototype.hasOwnProperty.call(n, o) && (t[o] = n[o]);\n }\n return t;\n }, ie.apply(this, arguments);\n}\nfunction An(t, e) {\n if (t == null)\n return {};\n var n = {}, o = Object.keys(t), r, i;\n for (i = 0; i < o.length; i++)\n r = o[i], !(e.indexOf(r) >= 0) && (n[r] = t[r]);\n return n;\n}\nfunction xn(t, e) {\n if (t == null)\n return {};\n var n = An(t, e), o, r;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(t);\n for (r = 0; r < i.length; r++)\n o = i[r], !(e.indexOf(o) >= 0) && Object.prototype.propertyIsEnumerable.call(t, o) && (n[o] = t[o]);\n }\n return n;\n}\nvar Nn = \"1.15.2\";\nfunction re(t) {\n if (typeof window != \"undefined\" && window.navigator)\n return !!/* @__PURE__ */ navigator.userAgent.match(t);\n}\nvar ae = re(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i), xe = re(/Edge/i), It = re(/firefox/i), Te = re(/safari/i) && !re(/chrome/i) && !re(/android/i), Lt = re(/iP(ad|od|hone)/i), Wt = re(/chrome/i) && re(/android/i), Gt = {\n capture: !1,\n passive: !1\n};\nfunction S(t, e, n) {\n t.addEventListener(e, n, !ae && Gt);\n}\nfunction E(t, e, n) {\n t.removeEventListener(e, n, !ae && Gt);\n}\nfunction We(t, e) {\n if (e) {\n if (e[0] === \">\" && (e = e.substring(1)), t)\n try {\n if (t.matches)\n return t.matches(e);\n if (t.msMatchesSelector)\n return t.msMatchesSelector(e);\n if (t.webkitMatchesSelector)\n return t.webkitMatchesSelector(e);\n } catch (n) {\n return !1;\n }\n return !1;\n }\n}\nfunction Pn(t) {\n return t.host && t !== document && t.host.nodeType ? t.host : t.parentNode;\n}\nfunction Q(t, e, n, o) {\n if (t) {\n n = n || document;\n do {\n if (e != null && (e[0] === \">\" ? t.parentNode === n && We(t, e) : We(t, e)) || o && t === n)\n return t;\n if (t === n)\n break;\n } while (t = Pn(t));\n }\n return null;\n}\nvar At = /\\s+/g;\nfunction V(t, e, n) {\n if (t && e)\n if (t.classList)\n t.classList[n ? \"add\" : \"remove\"](e);\n else {\n var o = (\" \" + t.className + \" \").replace(At, \" \").replace(\" \" + e + \" \", \" \");\n t.className = (o + (n ? \" \" + e : \"\")).replace(At, \" \");\n }\n}\nfunction h(t, e, n) {\n var o = t && t.style;\n if (o) {\n if (n === void 0)\n return document.defaultView && document.defaultView.getComputedStyle ? n = document.defaultView.getComputedStyle(t, \"\") : t.currentStyle && (n = t.currentStyle), e === void 0 ? n : n[e];\n !(e in o) && e.indexOf(\"webkit\") === -1 && (e = \"-webkit-\" + e), o[e] = n + (typeof n == \"string\" ? \"\" : \"px\");\n }\n}\nfunction ye(t, e) {\n var n = \"\";\n if (typeof t == \"string\")\n n = t;\n else\n do {\n var o = h(t, \"transform\");\n o && o !== \"none\" && (n = o + \" \" + n);\n } while (!e && (t = t.parentNode));\n var r = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n return r && new r(n);\n}\nfunction jt(t, e, n) {\n if (t) {\n var o = t.getElementsByTagName(e), r = 0, i = o.length;\n if (n)\n for (; r < i; r++)\n n(o[r], r);\n return o;\n }\n return [];\n}\nfunction te() {\n var t = document.scrollingElement;\n return t || document.documentElement;\n}\nfunction P(t, e, n, o, r) {\n if (!(!t.getBoundingClientRect && t !== window)) {\n var i, a, l, s, u, d, f;\n if (t !== window && t.parentNode && t !== te() ? (i = t.getBoundingClientRect(), a = i.top, l = i.left, s = i.bottom, u = i.right, d = i.height, f = i.width) : (a = 0, l = 0, s = window.innerHeight, u = window.innerWidth, d = window.innerHeight, f = window.innerWidth), (e || n) && t !== window && (r = r || t.parentNode, !ae))\n do\n if (r && r.getBoundingClientRect && (h(r, \"transform\") !== \"none\" || n && h(r, \"position\") !== \"static\")) {\n var m = r.getBoundingClientRect();\n a -= m.top + parseInt(h(r, \"border-top-width\")), l -= m.left + parseInt(h(r, \"border-left-width\")), s = a + i.height, u = l + i.width;\n break;\n }\n while (r = r.parentNode);\n if (o && t !== window) {\n var y = ye(r || t), b = y && y.a, w = y && y.d;\n y && (a /= w, l /= b, f /= b, d /= w, s = a + d, u = l + f);\n }\n return {\n top: a,\n left: l,\n bottom: s,\n right: u,\n width: f,\n height: d\n };\n }\n}\nfunction xt(t, e, n) {\n for (var o = ce(t, !0), r = P(t)[e]; o; ) {\n var i = P(o)[n], a = void 0;\n if (a = r >= i, !a)\n return o;\n if (o === te())\n break;\n o = ce(o, !1);\n }\n return !1;\n}\nfunction we(t, e, n, o) {\n for (var r = 0, i = 0, a = t.children; i < a.length; ) {\n if (a[i].style.display !== \"none\" && a[i] !== p.ghost && (o || a[i] !== p.dragged) && Q(a[i], n.draggable, t, !1)) {\n if (r === e)\n return a[i];\n r++;\n }\n i++;\n }\n return null;\n}\nfunction ht(t, e) {\n for (var n = t.lastElementChild; n && (n === p.ghost || h(n, \"display\") === \"none\" || e && !We(n, e)); )\n n = n.previousElementSibling;\n return n || null;\n}\nfunction J(t, e) {\n var n = 0;\n if (!t || !t.parentNode)\n return -1;\n for (; t = t.previousElementSibling; )\n t.nodeName.toUpperCase() !== \"TEMPLATE\" && t !== p.clone && (!e || We(t, e)) && n++;\n return n;\n}\nfunction Nt(t) {\n var e = 0, n = 0, o = te();\n if (t)\n do {\n var r = ye(t), i = r.a, a = r.d;\n e += t.scrollLeft * i, n += t.scrollTop * a;\n } while (t !== o && (t = t.parentNode));\n return [e, n];\n}\nfunction Mn(t, e) {\n for (var n in t)\n if (t.hasOwnProperty(n)) {\n for (var o in e)\n if (e.hasOwnProperty(o) && e[o] === t[n][o])\n return Number(n);\n }\n return -1;\n}\nfunction ce(t, e) {\n if (!t || !t.getBoundingClientRect)\n return te();\n var n = t, o = !1;\n do\n if (n.clientWidth < n.scrollWidth || n.clientHeight < n.scrollHeight) {\n var r = h(n);\n if (n.clientWidth < n.scrollWidth && (r.overflowX == \"auto\" || r.overflowX == \"scroll\") || n.clientHeight < n.scrollHeight && (r.overflowY == \"auto\" || r.overflowY == \"scroll\")) {\n if (!n.getBoundingClientRect || n === document.body)\n return te();\n if (o || e)\n return n;\n o = !0;\n }\n }\n while (n = n.parentNode);\n return te();\n}\nfunction Fn(t, e) {\n if (t && e)\n for (var n in e)\n e.hasOwnProperty(n) && (t[n] = e[n]);\n return t;\n}\nfunction Je(t, e) {\n return Math.round(t.top) === Math.round(e.top) && Math.round(t.left) === Math.round(e.left) && Math.round(t.height) === Math.round(e.height) && Math.round(t.width) === Math.round(e.width);\n}\nvar Ce;\nfunction zt(t, e) {\n return function() {\n if (!Ce) {\n var n = arguments, o = this;\n n.length === 1 ? t.call(o, n[0]) : t.apply(o, n), Ce = setTimeout(function() {\n Ce = void 0;\n }, e);\n }\n };\n}\nfunction Rn() {\n clearTimeout(Ce), Ce = void 0;\n}\nfunction Ut(t, e, n) {\n t.scrollLeft += e, t.scrollTop += n;\n}\nfunction Vt(t) {\n var e = window.Polymer, n = window.jQuery || window.Zepto;\n return e && e.dom ? e.dom(t).cloneNode(!0) : n ? n(t).clone(!0)[0] : t.cloneNode(!0);\n}\nfunction $t(t, e, n) {\n var o = {};\n return Array.from(t.children).forEach(function(r) {\n var i, a, l, s;\n if (!(!Q(r, e.draggable, t, !1) || r.animated || r === n)) {\n var u = P(r);\n o.left = Math.min((i = o.left) !== null && i !== void 0 ? i : 1 / 0, u.left), o.top = Math.min((a = o.top) !== null && a !== void 0 ? a : 1 / 0, u.top), o.right = Math.max((l = o.right) !== null && l !== void 0 ? l : -1 / 0, u.right), o.bottom = Math.max((s = o.bottom) !== null && s !== void 0 ? s : -1 / 0, u.bottom);\n }\n }), o.width = o.right - o.left, o.height = o.bottom - o.top, o.x = o.left, o.y = o.top, o;\n}\nvar q = \"Sortable\" + (/* @__PURE__ */ new Date()).getTime();\nfunction Xn() {\n var t = [], e;\n return {\n captureAnimationState: function() {\n if (t = [], !!this.options.animation) {\n var o = [].slice.call(this.el.children);\n o.forEach(function(r) {\n if (!(h(r, \"display\") === \"none\" || r === p.ghost)) {\n t.push({\n target: r,\n rect: P(r)\n });\n var i = ne({}, t[t.length - 1].rect);\n if (r.thisAnimationDuration) {\n var a = ye(r, !0);\n a && (i.top -= a.f, i.left -= a.e);\n }\n r.fromRect = i;\n }\n });\n }\n },\n addAnimationState: function(o) {\n t.push(o);\n },\n removeAnimationState: function(o) {\n t.splice(Mn(t, {\n target: o\n }), 1);\n },\n animateAll: function(o) {\n var r = this;\n if (!this.options.animation) {\n clearTimeout(e), typeof o == \"function\" && o();\n return;\n }\n var i = !1, a = 0;\n t.forEach(function(l) {\n var s = 0, u = l.target, d = u.fromRect, f = P(u), m = u.prevFromRect, y = u.prevToRect, b = l.rect, w = ye(u, !0);\n w && (f.top -= w.f, f.left -= w.e), u.toRect = f, u.thisAnimationDuration && Je(m, f) && !Je(d, f) && // Make sure animatingRect is on line between toRect & fromRect\n (b.top - f.top) / (b.left - f.left) === (d.top - f.top) / (d.left - f.left) && (s = Bn(b, m, y, r.options)), Je(f, d) || (u.prevFromRect = d, u.prevToRect = f, s || (s = r.options.animation), r.animate(u, b, f, s)), s && (i = !0, a = Math.max(a, s), clearTimeout(u.animationResetTimer), u.animationResetTimer = setTimeout(function() {\n u.animationTime = 0, u.prevFromRect = null, u.fromRect = null, u.prevToRect = null, u.thisAnimationDuration = null;\n }, s), u.thisAnimationDuration = s);\n }), clearTimeout(e), i ? e = setTimeout(function() {\n typeof o == \"function\" && o();\n }, a) : typeof o == \"function\" && o(), t = [];\n },\n animate: function(o, r, i, a) {\n if (a) {\n h(o, \"transition\", \"\"), h(o, \"transform\", \"\");\n var l = ye(this.el), s = l && l.a, u = l && l.d, d = (r.left - i.left) / (s || 1), f = (r.top - i.top) / (u || 1);\n o.animatingX = !!d, o.animatingY = !!f, h(o, \"transform\", \"translate3d(\" + d + \"px,\" + f + \"px,0)\"), this.forRepaintDummy = Yn(o), h(o, \"transition\", \"transform \" + a + \"ms\" + (this.options.easing ? \" \" + this.options.easing : \"\")), h(o, \"transform\", \"translate3d(0,0,0)\"), typeof o.animated == \"number\" && clearTimeout(o.animated), o.animated = setTimeout(function() {\n h(o, \"transition\", \"\"), h(o, \"transform\", \"\"), o.animated = !1, o.animatingX = !1, o.animatingY = !1;\n }, a);\n }\n }\n };\n}\nfunction Yn(t) {\n return t.offsetWidth;\n}\nfunction Bn(t, e, n, o) {\n return Math.sqrt(Math.pow(e.top - t.top, 2) + Math.pow(e.left - t.left, 2)) / Math.sqrt(Math.pow(e.top - n.top, 2) + Math.pow(e.left - n.left, 2)) * o.animation;\n}\nvar ge = [], Ze = {\n initializeByDefault: !0\n}, Ne = {\n mount: function(e) {\n for (var n in Ze)\n Ze.hasOwnProperty(n) && !(n in e) && (e[n] = Ze[n]);\n ge.forEach(function(o) {\n if (o.pluginName === e.pluginName)\n throw \"Sortable: Cannot mount plugin \".concat(e.pluginName, \" more than once\");\n }), ge.push(e);\n },\n pluginEvent: function(e, n, o) {\n var r = this;\n this.eventCanceled = !1, o.cancel = function() {\n r.eventCanceled = !0;\n };\n var i = e + \"Global\";\n ge.forEach(function(a) {\n n[a.pluginName] && (n[a.pluginName][i] && n[a.pluginName][i](ne({\n sortable: n\n }, o)), n.options[a.pluginName] && n[a.pluginName][e] && n[a.pluginName][e](ne({\n sortable: n\n }, o)));\n });\n },\n initializePlugins: function(e, n, o, r) {\n ge.forEach(function(l) {\n var s = l.pluginName;\n if (!(!e.options[s] && !l.initializeByDefault)) {\n var u = new l(e, n, e.options);\n u.sortable = e, u.options = e.options, e[s] = u, ie(o, u.defaults);\n }\n });\n for (var i in e.options)\n if (e.options.hasOwnProperty(i)) {\n var a = this.modifyOption(e, i, e.options[i]);\n typeof a != \"undefined\" && (e.options[i] = a);\n }\n },\n getEventProperties: function(e, n) {\n var o = {};\n return ge.forEach(function(r) {\n typeof r.eventProperties == \"function\" && ie(o, r.eventProperties.call(n[r.pluginName], e));\n }), o;\n },\n modifyOption: function(e, n, o) {\n var r;\n return ge.forEach(function(i) {\n e[i.pluginName] && i.optionListeners && typeof i.optionListeners[n] == \"function\" && (r = i.optionListeners[n].call(e[i.pluginName], o));\n }), r;\n }\n};\nfunction kn(t) {\n var e = t.sortable, n = t.rootEl, o = t.name, r = t.targetEl, i = t.cloneEl, a = t.toEl, l = t.fromEl, s = t.oldIndex, u = t.newIndex, d = t.oldDraggableIndex, f = t.newDraggableIndex, m = t.originalEvent, y = t.putSortable, b = t.extraEventProperties;\n if (e = e || n && n[q], !!e) {\n var w, L = e.options, G = \"on\" + o.charAt(0).toUpperCase() + o.substr(1);\n window.CustomEvent && !ae && !xe ? w = new CustomEvent(o, {\n bubbles: !0,\n cancelable: !0\n }) : (w = document.createEvent(\"Event\"), w.initEvent(o, !0, !0)), w.to = a || n, w.from = l || n, w.item = r || n, w.clone = i, w.oldIndex = s, w.newIndex = u, w.oldDraggableIndex = d, w.newDraggableIndex = f, w.originalEvent = m, w.pullMode = y ? y.lastPutMode : void 0;\n var R = ne(ne({}, b), Ne.getEventProperties(o, e));\n for (var j in R)\n w[j] = R[j];\n n && n.dispatchEvent(w), L[G] && L[G].call(e, w);\n }\n}\nvar Hn = [\"evt\"], z = function(e, n) {\n var o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, r = o.evt, i = xn(o, Hn);\n Ne.pluginEvent.bind(p)(e, n, ne({\n dragEl: c,\n parentEl: O,\n ghostEl: g,\n rootEl: T,\n nextEl: pe,\n lastDownEl: Be,\n cloneEl: C,\n cloneHidden: ue,\n dragStarted: Se,\n putSortable: Y,\n activeSortable: p.active,\n originalEvent: r,\n oldIndex: be,\n oldDraggableIndex: Oe,\n newIndex: $,\n newDraggableIndex: se,\n hideGhostForTarget: Zt,\n unhideGhostForTarget: Qt,\n cloneNowHidden: function() {\n ue = !0;\n },\n cloneNowShown: function() {\n ue = !1;\n },\n dispatchSortableEvent: function(l) {\n W({\n sortable: n,\n name: l,\n originalEvent: r\n });\n }\n }, i));\n};\nfunction W(t) {\n kn(ne({\n putSortable: Y,\n cloneEl: C,\n targetEl: c,\n rootEl: T,\n oldIndex: be,\n oldDraggableIndex: Oe,\n newIndex: $,\n newDraggableIndex: se\n }, t));\n}\nvar c, O, g, T, pe, Be, C, ue, be, $, Oe, se, Me, Y, ve = !1, Ge = !1, je = [], de, Z, Qe, et, Pt, Mt, Se, me, Ie, Ae = !1, Fe = !1, ke, H, tt = [], lt = !1, ze = [], Ve = typeof document != \"undefined\", Re = Lt, Ft = xe || ae ? \"cssFloat\" : \"float\", Ln = Ve && !Wt && !Lt && \"draggable\" in document.createElement(\"div\"), qt = function() {\n if (Ve) {\n if (ae)\n return !1;\n var t = document.createElement(\"x\");\n return t.style.cssText = \"pointer-events:auto\", t.style.pointerEvents === \"auto\";\n }\n}(), Kt = function(e, n) {\n var o = h(e), r = parseInt(o.width) - parseInt(o.paddingLeft) - parseInt(o.paddingRight) - parseInt(o.borderLeftWidth) - parseInt(o.borderRightWidth), i = we(e, 0, n), a = we(e, 1, n), l = i && h(i), s = a && h(a), u = l && parseInt(l.marginLeft) + parseInt(l.marginRight) + P(i).width, d = s && parseInt(s.marginLeft) + parseInt(s.marginRight) + P(a).width;\n if (o.display === \"flex\")\n return o.flexDirection === \"column\" || o.flexDirection === \"column-reverse\" ? \"vertical\" : \"horizontal\";\n if (o.display === \"grid\")\n return o.gridTemplateColumns.split(\" \").length <= 1 ? \"vertical\" : \"horizontal\";\n if (i && l.float && l.float !== \"none\") {\n var f = l.float === \"left\" ? \"left\" : \"right\";\n return a && (s.clear === \"both\" || s.clear === f) ? \"vertical\" : \"horizontal\";\n }\n return i && (l.display === \"block\" || l.display === \"flex\" || l.display === \"table\" || l.display === \"grid\" || u >= r && o[Ft] === \"none\" || a && o[Ft] === \"none\" && u + d > r) ? \"vertical\" : \"horizontal\";\n}, Wn = function(e, n, o) {\n var r = o ? e.left : e.top, i = o ? e.right : e.bottom, a = o ? e.width : e.height, l = o ? n.left : n.top, s = o ? n.right : n.bottom, u = o ? n.width : n.height;\n return r === l || i === s || r + a / 2 === l + u / 2;\n}, Gn = function(e, n) {\n var o;\n return je.some(function(r) {\n var i = r[q].options.emptyInsertThreshold;\n if (!(!i || ht(r))) {\n var a = P(r), l = e >= a.left - i && e <= a.right + i, s = n >= a.top - i && n <= a.bottom + i;\n if (l && s)\n return o = r;\n }\n }), o;\n}, Jt = function(e) {\n function n(i, a) {\n return function(l, s, u, d) {\n var f = l.options.group.name && s.options.group.name && l.options.group.name === s.options.group.name;\n if (i == null && (a || f))\n return !0;\n if (i == null || i === !1)\n return !1;\n if (a && i === \"clone\")\n return i;\n if (typeof i == \"function\")\n return n(i(l, s, u, d), a)(l, s, u, d);\n var m = (a ? l : s).options.group.name;\n return i === !0 || typeof i == \"string\" && i === m || i.join && i.indexOf(m) > -1;\n };\n }\n var o = {}, r = e.group;\n (!r || Ye(r) != \"object\") && (r = {\n name: r\n }), o.name = r.name, o.checkPull = n(r.pull, !0), o.checkPut = n(r.put), o.revertClone = r.revertClone, e.group = o;\n}, Zt = function() {\n !qt && g && h(g, \"display\", \"none\");\n}, Qt = function() {\n !qt && g && h(g, \"display\", \"\");\n};\nVe && !Wt && document.addEventListener(\"click\", function(t) {\n if (Ge)\n return t.preventDefault(), t.stopPropagation && t.stopPropagation(), t.stopImmediatePropagation && t.stopImmediatePropagation(), Ge = !1, !1;\n}, !0);\nvar he = function(e) {\n if (c) {\n e = e.touches ? e.touches[0] : e;\n var n = Gn(e.clientX, e.clientY);\n if (n) {\n var o = {};\n for (var r in e)\n e.hasOwnProperty(r) && (o[r] = e[r]);\n o.target = o.rootEl = n, o.preventDefault = void 0, o.stopPropagation = void 0, n[q]._onDragOver(o);\n }\n }\n}, jn = function(e) {\n c && c.parentNode[q]._isOutsideThisEl(e.target);\n};\nfunction p(t, e) {\n if (!(t && t.nodeType && t.nodeType === 1))\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(t));\n this.el = t, this.options = e = ie({}, e), t[q] = this;\n var n = {\n group: null,\n sort: !0,\n disabled: !1,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(t.nodeName) ? \">li\" : \">*\",\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: !1,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: !0,\n direction: function() {\n return Kt(t, this.options);\n },\n ghostClass: \"sortable-ghost\",\n chosenClass: \"sortable-chosen\",\n dragClass: \"sortable-drag\",\n ignore: \"a, img\",\n filter: null,\n preventOnFilter: !0,\n animation: 0,\n easing: null,\n setData: function(a, l) {\n a.setData(\"Text\", l.textContent);\n },\n dropBubble: !1,\n dragoverBubble: !1,\n dataIdAttr: \"data-id\",\n delay: 0,\n delayOnTouchOnly: !1,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: !1,\n fallbackClass: \"sortable-fallback\",\n fallbackOnBody: !1,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: p.supportPointer !== !1 && \"PointerEvent\" in window && !Te,\n emptyInsertThreshold: 5\n };\n Ne.initializePlugins(this, t, n);\n for (var o in n)\n !(o in e) && (e[o] = n[o]);\n Jt(e);\n for (var r in this)\n r.charAt(0) === \"_\" && typeof this[r] == \"function\" && (this[r] = this[r].bind(this));\n this.nativeDraggable = e.forceFallback ? !1 : Ln, this.nativeDraggable && (this.options.touchStartThreshold = 1), e.supportPointer ? S(t, \"pointerdown\", this._onTapStart) : (S(t, \"mousedown\", this._onTapStart), S(t, \"touchstart\", this._onTapStart)), this.nativeDraggable && (S(t, \"dragover\", this), S(t, \"dragenter\", this)), je.push(this.el), e.store && e.store.get && this.sort(e.store.get(this) || []), ie(this, Xn());\n}\np.prototype = /** @lends Sortable.prototype */\n{\n constructor: p,\n _isOutsideThisEl: function(e) {\n !this.el.contains(e) && e !== this.el && (me = null);\n },\n _getDirection: function(e, n) {\n return typeof this.options.direction == \"function\" ? this.options.direction.call(this, e, n, c) : this.options.direction;\n },\n _onTapStart: function(e) {\n if (e.cancelable) {\n var n = this, o = this.el, r = this.options, i = r.preventOnFilter, a = e.type, l = e.touches && e.touches[0] || e.pointerType && e.pointerType === \"touch\" && e, s = (l || e).target, u = e.target.shadowRoot && (e.path && e.path[0] || e.composedPath && e.composedPath()[0]) || s, d = r.filter;\n if (Zn(o), !c && !(/mousedown|pointerdown/.test(a) && e.button !== 0 || r.disabled) && !u.isContentEditable && !(!this.nativeDraggable && Te && s && s.tagName.toUpperCase() === \"SELECT\") && (s = Q(s, r.draggable, o, !1), !(s && s.animated) && Be !== s)) {\n if (be = J(s), Oe = J(s, r.draggable), typeof d == \"function\") {\n if (d.call(this, e, s, this)) {\n W({\n sortable: n,\n rootEl: u,\n name: \"filter\",\n targetEl: s,\n toEl: o,\n fromEl: o\n }), z(\"filter\", n, {\n evt: e\n }), i && e.cancelable && e.preventDefault();\n return;\n }\n } else if (d && (d = d.split(\",\").some(function(f) {\n if (f = Q(u, f.trim(), o, !1), f)\n return W({\n sortable: n,\n rootEl: f,\n name: \"filter\",\n targetEl: s,\n fromEl: o,\n toEl: o\n }), z(\"filter\", n, {\n evt: e\n }), !0;\n }), d)) {\n i && e.cancelable && e.preventDefault();\n return;\n }\n r.handle && !Q(u, r.handle, o, !1) || this._prepareDragStart(e, l, s);\n }\n }\n },\n _prepareDragStart: function(e, n, o) {\n var r = this, i = r.el, a = r.options, l = i.ownerDocument, s;\n if (o && !c && o.parentNode === i) {\n var u = P(o);\n if (T = i, c = o, O = c.parentNode, pe = c.nextSibling, Be = o, Me = a.group, p.dragged = c, de = {\n target: c,\n clientX: (n || e).clientX,\n clientY: (n || e).clientY\n }, Pt = de.clientX - u.left, Mt = de.clientY - u.top, this._lastX = (n || e).clientX, this._lastY = (n || e).clientY, c.style[\"will-change\"] = \"all\", s = function() {\n if (z(\"delayEnded\", r, {\n evt: e\n }), p.eventCanceled) {\n r._onDrop();\n return;\n }\n r._disableDelayedDragEvents(), !It && r.nativeDraggable && (c.draggable = !0), r._triggerDragStart(e, n), W({\n sortable: r,\n name: \"choose\",\n originalEvent: e\n }), V(c, a.chosenClass, !0);\n }, a.ignore.split(\",\").forEach(function(d) {\n jt(c, d.trim(), nt);\n }), S(l, \"dragover\", he), S(l, \"mousemove\", he), S(l, \"touchmove\", he), S(l, \"mouseup\", r._onDrop), S(l, \"touchend\", r._onDrop), S(l, \"touchcancel\", r._onDrop), It && this.nativeDraggable && (this.options.touchStartThreshold = 4, c.draggable = !0), z(\"delayStart\", this, {\n evt: e\n }), a.delay && (!a.delayOnTouchOnly || n) && (!this.nativeDraggable || !(xe || ae))) {\n if (p.eventCanceled) {\n this._onDrop();\n return;\n }\n S(l, \"mouseup\", r._disableDelayedDrag), S(l, \"touchend\", r._disableDelayedDrag), S(l, \"touchcancel\", r._disableDelayedDrag), S(l, \"mousemove\", r._delayedDragTouchMoveHandler), S(l, \"touchmove\", r._delayedDragTouchMoveHandler), a.supportPointer && S(l, \"pointermove\", r._delayedDragTouchMoveHandler), r._dragStartTimer = setTimeout(s, a.delay);\n } else\n s();\n }\n },\n _delayedDragTouchMoveHandler: function(e) {\n var n = e.touches ? e.touches[0] : e;\n Math.max(Math.abs(n.clientX - this._lastX), Math.abs(n.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1)) && this._disableDelayedDrag();\n },\n _disableDelayedDrag: function() {\n c && nt(c), clearTimeout(this._dragStartTimer), this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function() {\n var e = this.el.ownerDocument;\n E(e, \"mouseup\", this._disableDelayedDrag), E(e, \"touchend\", this._disableDelayedDrag), E(e, \"touchcancel\", this._disableDelayedDrag), E(e, \"mousemove\", this._delayedDragTouchMoveHandler), E(e, \"touchmove\", this._delayedDragTouchMoveHandler), E(e, \"pointermove\", this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function(e, n) {\n n = n || e.pointerType == \"touch\" && e, !this.nativeDraggable || n ? this.options.supportPointer ? S(document, \"pointermove\", this._onTouchMove) : n ? S(document, \"touchmove\", this._onTouchMove) : S(document, \"mousemove\", this._onTouchMove) : (S(c, \"dragend\", this), S(T, \"dragstart\", this._onDragStart));\n try {\n document.selection ? He(function() {\n document.selection.empty();\n }) : window.getSelection().removeAllRanges();\n } catch (o) {\n }\n },\n _dragStarted: function(e, n) {\n if (ve = !1, T && c) {\n z(\"dragStarted\", this, {\n evt: n\n }), this.nativeDraggable && S(document, \"dragover\", jn);\n var o = this.options;\n !e && V(c, o.dragClass, !1), V(c, o.ghostClass, !0), p.active = this, e && this._appendGhost(), W({\n sortable: this,\n name: \"start\",\n originalEvent: n\n });\n } else\n this._nulling();\n },\n _emulateDragOver: function() {\n if (Z) {\n this._lastX = Z.clientX, this._lastY = Z.clientY, Zt();\n for (var e = document.elementFromPoint(Z.clientX, Z.clientY), n = e; e && e.shadowRoot && (e = e.shadowRoot.elementFromPoint(Z.clientX, Z.clientY), e !== n); )\n n = e;\n if (c.parentNode[q]._isOutsideThisEl(e), n)\n do {\n if (n[q]) {\n var o = void 0;\n if (o = n[q]._onDragOver({\n clientX: Z.clientX,\n clientY: Z.clientY,\n target: e,\n rootEl: n\n }), o && !this.options.dragoverBubble)\n break;\n }\n e = n;\n } while (n = n.parentNode);\n Qt();\n }\n },\n _onTouchMove: function(e) {\n if (de) {\n var n = this.options, o = n.fallbackTolerance, r = n.fallbackOffset, i = e.touches ? e.touches[0] : e, a = g && ye(g, !0), l = g && a && a.a, s = g && a && a.d, u = Re && H && Nt(H), d = (i.clientX - de.clientX + r.x) / (l || 1) + (u ? u[0] - tt[0] : 0) / (l || 1), f = (i.clientY - de.clientY + r.y) / (s || 1) + (u ? u[1] - tt[1] : 0) / (s || 1);\n if (!p.active && !ve) {\n if (o && Math.max(Math.abs(i.clientX - this._lastX), Math.abs(i.clientY - this._lastY)) < o)\n return;\n this._onDragStart(e, !0);\n }\n if (g) {\n a ? (a.e += d - (Qe || 0), a.f += f - (et || 0)) : a = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: d,\n f\n };\n var m = \"matrix(\".concat(a.a, \",\").concat(a.b, \",\").concat(a.c, \",\").concat(a.d, \",\").concat(a.e, \",\").concat(a.f, \")\");\n h(g, \"webkitTransform\", m), h(g, \"mozTransform\", m), h(g, \"msTransform\", m), h(g, \"transform\", m), Qe = d, et = f, Z = i;\n }\n e.cancelable && e.preventDefault();\n }\n },\n _appendGhost: function() {\n if (!g) {\n var e = this.options.fallbackOnBody ? document.body : T, n = P(c, !0, Re, !0, e), o = this.options;\n if (Re) {\n for (H = e; h(H, \"position\") === \"static\" && h(H, \"transform\") === \"none\" && H !== document; )\n H = H.parentNode;\n H !== document.body && H !== document.documentElement ? (H === document && (H = te()), n.top += H.scrollTop, n.left += H.scrollLeft) : H = te(), tt = Nt(H);\n }\n g = c.cloneNode(!0), V(g, o.ghostClass, !1), V(g, o.fallbackClass, !0), V(g, o.dragClass, !0), h(g, \"transition\", \"\"), h(g, \"transform\", \"\"), h(g, \"box-sizing\", \"border-box\"), h(g, \"margin\", 0), h(g, \"top\", n.top), h(g, \"left\", n.left), h(g, \"width\", n.width), h(g, \"height\", n.height), h(g, \"opacity\", \"0.8\"), h(g, \"position\", Re ? \"absolute\" : \"fixed\"), h(g, \"zIndex\", \"100000\"), h(g, \"pointerEvents\", \"none\"), p.ghost = g, e.appendChild(g), h(g, \"transform-origin\", Pt / parseInt(g.style.width) * 100 + \"% \" + Mt / parseInt(g.style.height) * 100 + \"%\");\n }\n },\n _onDragStart: function(e, n) {\n var o = this, r = e.dataTransfer, i = o.options;\n if (z(\"dragStart\", this, {\n evt: e\n }), p.eventCanceled) {\n this._onDrop();\n return;\n }\n z(\"setupClone\", this), p.eventCanceled || (C = Vt(c), C.removeAttribute(\"id\"), C.draggable = !1, C.style[\"will-change\"] = \"\", this._hideClone(), V(C, this.options.chosenClass, !1), p.clone = C), o.cloneId = He(function() {\n z(\"clone\", o), !p.eventCanceled && (o.options.removeCloneOnHide || T.insertBefore(C, c), o._hideClone(), W({\n sortable: o,\n name: \"clone\"\n }));\n }), !n && V(c, i.dragClass, !0), n ? (Ge = !0, o._loopId = setInterval(o._emulateDragOver, 50)) : (E(document, \"mouseup\", o._onDrop), E(document, \"touchend\", o._onDrop), E(document, \"touchcancel\", o._onDrop), r && (r.effectAllowed = \"move\", i.setData && i.setData.call(o, r, c)), S(document, \"drop\", o), h(c, \"transform\", \"translateZ(0)\")), ve = !0, o._dragStartId = He(o._dragStarted.bind(o, n, e)), S(document, \"selectstart\", o), Se = !0, Te && h(document.body, \"user-select\", \"none\");\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function(e) {\n var n = this.el, o = e.target, r, i, a, l = this.options, s = l.group, u = p.active, d = Me === s, f = l.sort, m = Y || u, y, b = this, w = !1;\n if (lt)\n return;\n function L(ee, Ee) {\n z(ee, b, ne({\n evt: e,\n isOwner: d,\n axis: y ? \"vertical\" : \"horizontal\",\n revert: a,\n dragRect: r,\n targetRect: i,\n canSort: f,\n fromSortable: m,\n target: o,\n completed: R,\n onMove: function(vt, rn) {\n return Xe(T, n, c, r, vt, P(vt), e, rn);\n },\n changed: j\n }, Ee));\n }\n function G() {\n L(\"dragOverAnimationCapture\"), b.captureAnimationState(), b !== m && m.captureAnimationState();\n }\n function R(ee) {\n return L(\"dragOverCompleted\", {\n insertion: ee\n }), ee && (d ? u._hideClone() : u._showClone(b), b !== m && (V(c, Y ? Y.options.ghostClass : u.options.ghostClass, !1), V(c, l.ghostClass, !0)), Y !== b && b !== p.active ? Y = b : b === p.active && Y && (Y = null), m === b && (b._ignoreWhileAnimating = o), b.animateAll(function() {\n L(\"dragOverAnimationComplete\"), b._ignoreWhileAnimating = null;\n }), b !== m && (m.animateAll(), m._ignoreWhileAnimating = null)), (o === c && !c.animated || o === n && !o.animated) && (me = null), !l.dragoverBubble && !e.rootEl && o !== document && (c.parentNode[q]._isOutsideThisEl(e.target), !ee && he(e)), !l.dragoverBubble && e.stopPropagation && e.stopPropagation(), w = !0;\n }\n function j() {\n $ = J(c), se = J(c, l.draggable), W({\n sortable: b,\n name: \"change\",\n toEl: n,\n newIndex: $,\n newDraggableIndex: se,\n originalEvent: e\n });\n }\n if (e.preventDefault !== void 0 && e.cancelable && e.preventDefault(), o = Q(o, l.draggable, n, !0), L(\"dragOver\"), p.eventCanceled)\n return w;\n if (c.contains(e.target) || o.animated && o.animatingX && o.animatingY || b._ignoreWhileAnimating === o)\n return R(!1);\n if (Ge = !1, u && !l.disabled && (d ? f || (a = O !== T) : Y === this || (this.lastPutMode = Me.checkPull(this, u, c, e)) && s.checkPut(this, u, c, e))) {\n if (y = this._getDirection(e, o) === \"vertical\", r = P(c), L(\"dragOverValid\"), p.eventCanceled)\n return w;\n if (a)\n return O = T, G(), this._hideClone(), L(\"revert\"), p.eventCanceled || (pe ? T.insertBefore(c, pe) : T.appendChild(c)), R(!0);\n var B = ht(n, l.draggable);\n if (!B || $n(e, y, this) && !B.animated) {\n if (B === c)\n return R(!1);\n if (B && n === e.target && (o = B), o && (i = P(o)), Xe(T, n, c, r, o, i, e, !!o) !== !1)\n return G(), B && B.nextSibling ? n.insertBefore(c, B.nextSibling) : n.appendChild(c), O = n, j(), R(!0);\n } else if (B && Vn(e, y, this)) {\n var X = we(n, 0, l, !0);\n if (X === c)\n return R(!1);\n if (o = X, i = P(o), Xe(T, n, c, r, o, i, e, !1) !== !1)\n return G(), n.insertBefore(c, X), O = n, j(), R(!0);\n } else if (o.parentNode === n) {\n i = P(o);\n var K = 0, oe, le = c.parentNode !== n, k = !Wn(c.animated && c.toRect || r, o.animated && o.toRect || i, y), v = y ? \"top\" : \"left\", D = xt(o, \"top\", \"top\") || xt(c, \"top\", \"top\"), A = D ? D.scrollTop : void 0;\n me !== o && (oe = i[v], Ae = !1, Fe = !k && l.invertSwap || le), K = qn(e, o, i, y, k ? 1 : l.swapThreshold, l.invertedSwapThreshold == null ? l.swapThreshold : l.invertedSwapThreshold, Fe, me === o);\n var I;\n if (K !== 0) {\n var _ = J(c);\n do\n _ -= K, I = O.children[_];\n while (I && (h(I, \"display\") === \"none\" || I === g));\n }\n if (K === 0 || I === o)\n return R(!1);\n me = o, Ie = K;\n var x = o.nextElementSibling, M = !1;\n M = K === 1;\n var F = Xe(T, n, c, r, o, i, e, M);\n if (F !== !1)\n return (F === 1 || F === -1) && (M = F === 1), lt = !0, setTimeout(Un, 30), G(), M && !x ? n.appendChild(c) : o.parentNode.insertBefore(c, M ? x : o), D && Ut(D, 0, A - D.scrollTop), O = c.parentNode, oe !== void 0 && !Fe && (ke = Math.abs(oe - P(o)[v])), j(), R(!0);\n }\n if (n.contains(c))\n return R(!1);\n }\n return !1;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function() {\n E(document, \"mousemove\", this._onTouchMove), E(document, \"touchmove\", this._onTouchMove), E(document, \"pointermove\", this._onTouchMove), E(document, \"dragover\", he), E(document, \"mousemove\", he), E(document, \"touchmove\", he);\n },\n _offUpEvents: function() {\n var e = this.el.ownerDocument;\n E(e, \"mouseup\", this._onDrop), E(e, \"touchend\", this._onDrop), E(e, \"pointerup\", this._onDrop), E(e, \"touchcancel\", this._onDrop), E(document, \"selectstart\", this);\n },\n _onDrop: function(e) {\n var n = this.el, o = this.options;\n if ($ = J(c), se = J(c, o.draggable), z(\"drop\", this, {\n evt: e\n }), O = c && c.parentNode, $ = J(c), se = J(c, o.draggable), p.eventCanceled) {\n this._nulling();\n return;\n }\n ve = !1, Fe = !1, Ae = !1, clearInterval(this._loopId), clearTimeout(this._dragStartTimer), st(this.cloneId), st(this._dragStartId), this.nativeDraggable && (E(document, \"drop\", this), E(n, \"dragstart\", this._onDragStart)), this._offMoveEvents(), this._offUpEvents(), Te && h(document.body, \"user-select\", \"\"), h(c, \"transform\", \"\"), e && (Se && (e.cancelable && e.preventDefault(), !o.dropBubble && e.stopPropagation()), g && g.parentNode && g.parentNode.removeChild(g), (T === O || Y && Y.lastPutMode !== \"clone\") && C && C.parentNode && C.parentNode.removeChild(C), c && (this.nativeDraggable && E(c, \"dragend\", this), nt(c), c.style[\"will-change\"] = \"\", Se && !ve && V(c, Y ? Y.options.ghostClass : this.options.ghostClass, !1), V(c, this.options.chosenClass, !1), W({\n sortable: this,\n name: \"unchoose\",\n toEl: O,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: e\n }), T !== O ? ($ >= 0 && (W({\n rootEl: O,\n name: \"add\",\n toEl: O,\n fromEl: T,\n originalEvent: e\n }), W({\n sortable: this,\n name: \"remove\",\n toEl: O,\n originalEvent: e\n }), W({\n rootEl: O,\n name: \"sort\",\n toEl: O,\n fromEl: T,\n originalEvent: e\n }), W({\n sortable: this,\n name: \"sort\",\n toEl: O,\n originalEvent: e\n })), Y && Y.save()) : $ !== be && $ >= 0 && (W({\n sortable: this,\n name: \"update\",\n toEl: O,\n originalEvent: e\n }), W({\n sortable: this,\n name: \"sort\",\n toEl: O,\n originalEvent: e\n })), p.active && (($ == null || $ === -1) && ($ = be, se = Oe), W({\n sortable: this,\n name: \"end\",\n toEl: O,\n originalEvent: e\n }), this.save()))), this._nulling();\n },\n _nulling: function() {\n z(\"nulling\", this), T = c = O = g = pe = C = Be = ue = de = Z = Se = $ = se = be = Oe = me = Ie = Y = Me = p.dragged = p.ghost = p.clone = p.active = null, ze.forEach(function(e) {\n e.checked = !0;\n }), ze.length = Qe = et = 0;\n },\n handleEvent: function(e) {\n switch (e.type) {\n case \"drop\":\n case \"dragend\":\n this._onDrop(e);\n break;\n case \"dragenter\":\n case \"dragover\":\n c && (this._onDragOver(e), zn(e));\n break;\n case \"selectstart\":\n e.preventDefault();\n break;\n }\n },\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function() {\n for (var e = [], n, o = this.el.children, r = 0, i = o.length, a = this.options; r < i; r++)\n n = o[r], Q(n, a.draggable, this.el, !1) && e.push(n.getAttribute(a.dataIdAttr) || Jn(n));\n return e;\n },\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function(e, n) {\n var o = {}, r = this.el;\n this.toArray().forEach(function(i, a) {\n var l = r.children[a];\n Q(l, this.options.draggable, r, !1) && (o[i] = l);\n }, this), n && this.captureAnimationState(), e.forEach(function(i) {\n o[i] && (r.removeChild(o[i]), r.appendChild(o[i]));\n }), n && this.animateAll();\n },\n /**\n * Save the current sorting\n */\n save: function() {\n var e = this.options.store;\n e && e.set && e.set(this);\n },\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function(e, n) {\n return Q(e, n || this.options.draggable, this.el, !1);\n },\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function(e, n) {\n var o = this.options;\n if (n === void 0)\n return o[e];\n var r = Ne.modifyOption(this, e, n);\n typeof r != \"undefined\" ? o[e] = r : o[e] = n, e === \"group\" && Jt(o);\n },\n /**\n * Destroy\n */\n destroy: function() {\n z(\"destroy\", this);\n var e = this.el;\n e[q] = null, E(e, \"mousedown\", this._onTapStart), E(e, \"touchstart\", this._onTapStart), E(e, \"pointerdown\", this._onTapStart), this.nativeDraggable && (E(e, \"dragover\", this), E(e, \"dragenter\", this)), Array.prototype.forEach.call(e.querySelectorAll(\"[draggable]\"), function(n) {\n n.removeAttribute(\"draggable\");\n }), this._onDrop(), this._disableDelayedDragEvents(), je.splice(je.indexOf(this.el), 1), this.el = e = null;\n },\n _hideClone: function() {\n if (!ue) {\n if (z(\"hideClone\", this), p.eventCanceled)\n return;\n h(C, \"display\", \"none\"), this.options.removeCloneOnHide && C.parentNode && C.parentNode.removeChild(C), ue = !0;\n }\n },\n _showClone: function(e) {\n if (e.lastPutMode !== \"clone\") {\n this._hideClone();\n return;\n }\n if (ue) {\n if (z(\"showClone\", this), p.eventCanceled)\n return;\n c.parentNode == T && !this.options.group.revertClone ? T.insertBefore(C, c) : pe ? T.insertBefore(C, pe) : T.appendChild(C), this.options.group.revertClone && this.animate(c, C), h(C, \"display\", \"\"), ue = !1;\n }\n }\n};\nfunction zn(t) {\n t.dataTransfer && (t.dataTransfer.dropEffect = \"move\"), t.cancelable && t.preventDefault();\n}\nfunction Xe(t, e, n, o, r, i, a, l) {\n var s, u = t[q], d = u.options.onMove, f;\n return window.CustomEvent && !ae && !xe ? s = new CustomEvent(\"move\", {\n bubbles: !0,\n cancelable: !0\n }) : (s = document.createEvent(\"Event\"), s.initEvent(\"move\", !0, !0)), s.to = e, s.from = t, s.dragged = n, s.draggedRect = o, s.related = r || e, s.relatedRect = i || P(e), s.willInsertAfter = l, s.originalEvent = a, t.dispatchEvent(s), d && (f = d.call(u, s, a)), f;\n}\nfunction nt(t) {\n t.draggable = !1;\n}\nfunction Un() {\n lt = !1;\n}\nfunction Vn(t, e, n) {\n var o = P(we(n.el, 0, n.options, !0)), r = $t(n.el, n.options, g), i = 10;\n return e ? t.clientX < r.left - i || t.clientY < o.top && t.clientX < o.right : t.clientY < r.top - i || t.clientY < o.bottom && t.clientX < o.left;\n}\nfunction $n(t, e, n) {\n var o = P(ht(n.el, n.options.draggable)), r = $t(n.el, n.options, g), i = 10;\n return e ? t.clientX > r.right + i || t.clientY > o.bottom && t.clientX > o.left : t.clientY > r.bottom + i || t.clientX > o.right && t.clientY > o.top;\n}\nfunction qn(t, e, n, o, r, i, a, l) {\n var s = o ? t.clientY : t.clientX, u = o ? n.height : n.width, d = o ? n.top : n.left, f = o ? n.bottom : n.right, m = !1;\n if (!a) {\n if (l && ke < u * r) {\n if (!Ae && (Ie === 1 ? s > d + u * i / 2 : s < f - u * i / 2) && (Ae = !0), Ae)\n m = !0;\n else if (Ie === 1 ? s < d + ke : s > f - ke)\n return -Ie;\n } else if (s > d + u * (1 - r) / 2 && s < f - u * (1 - r) / 2)\n return Kn(e);\n }\n return m = m || a, m && (s < d + u * i / 2 || s > f - u * i / 2) ? s > d + u / 2 ? 1 : -1 : 0;\n}\nfunction Kn(t) {\n return J(c) < J(t) ? 1 : -1;\n}\nfunction Jn(t) {\n for (var e = t.tagName + t.className + t.src + t.href + t.textContent, n = e.length, o = 0; n--; )\n o += e.charCodeAt(n);\n return o.toString(36);\n}\nfunction Zn(t) {\n ze.length = 0;\n for (var e = t.getElementsByTagName(\"input\"), n = e.length; n--; ) {\n var o = e[n];\n o.checked && ze.push(o);\n }\n}\nfunction He(t) {\n return setTimeout(t, 0);\n}\nfunction st(t) {\n return clearTimeout(t);\n}\nVe && S(document, \"touchmove\", function(t) {\n (p.active || ve) && t.cancelable && t.preventDefault();\n});\np.utils = {\n on: S,\n off: E,\n css: h,\n find: jt,\n is: function(e, n) {\n return !!Q(e, n, e, !1);\n },\n extend: Fn,\n throttle: zt,\n closest: Q,\n toggleClass: V,\n clone: Vt,\n index: J,\n nextTick: He,\n cancelNextTick: st,\n detectDirection: Kt,\n getChild: we\n};\np.get = function(t) {\n return t[q];\n};\np.mount = function() {\n for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)\n e[n] = arguments[n];\n e[0].constructor === Array && (e = e[0]), e.forEach(function(o) {\n if (!o.prototype || !o.prototype.constructor)\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(o));\n o.utils && (p.utils = ne(ne({}, p.utils), o.utils)), Ne.mount(o);\n });\n};\np.create = function(t, e) {\n return new p(t, e);\n};\np.version = Nn;\nvar N = [], De, ut, ct = !1, ot, rt, Ue, _e;\nfunction Qn() {\n function t() {\n this.defaults = {\n scroll: !0,\n forceAutoScrollFallback: !1,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: !0\n };\n for (var e in this)\n e.charAt(0) === \"_\" && typeof this[e] == \"function\" && (this[e] = this[e].bind(this));\n }\n return t.prototype = {\n dragStarted: function(n) {\n var o = n.originalEvent;\n this.sortable.nativeDraggable ? S(document, \"dragover\", this._handleAutoScroll) : this.options.supportPointer ? S(document, \"pointermove\", this._handleFallbackAutoScroll) : o.touches ? S(document, \"touchmove\", this._handleFallbackAutoScroll) : S(document, \"mousemove\", this._handleFallbackAutoScroll);\n },\n dragOverCompleted: function(n) {\n var o = n.originalEvent;\n !this.options.dragOverBubble && !o.rootEl && this._handleAutoScroll(o);\n },\n drop: function() {\n this.sortable.nativeDraggable ? E(document, \"dragover\", this._handleAutoScroll) : (E(document, \"pointermove\", this._handleFallbackAutoScroll), E(document, \"touchmove\", this._handleFallbackAutoScroll), E(document, \"mousemove\", this._handleFallbackAutoScroll)), Rt(), Le(), Rn();\n },\n nulling: function() {\n Ue = ut = De = ct = _e = ot = rt = null, N.length = 0;\n },\n _handleFallbackAutoScroll: function(n) {\n this._handleAutoScroll(n, !0);\n },\n _handleAutoScroll: function(n, o) {\n var r = this, i = (n.touches ? n.touches[0] : n).clientX, a = (n.touches ? n.touches[0] : n).clientY, l = document.elementFromPoint(i, a);\n if (Ue = n, o || this.options.forceAutoScrollFallback || xe || ae || Te) {\n it(n, this.options, l, o);\n var s = ce(l, !0);\n ct && (!_e || i !== ot || a !== rt) && (_e && Rt(), _e = setInterval(function() {\n var u = ce(document.elementFromPoint(i, a), !0);\n u !== s && (s = u, Le()), it(n, r.options, u, o);\n }, 10), ot = i, rt = a);\n } else {\n if (!this.options.bubbleScroll || ce(l, !0) === te()) {\n Le();\n return;\n }\n it(n, this.options, ce(l, !1), !1);\n }\n }\n }, ie(t, {\n pluginName: \"scroll\",\n initializeByDefault: !0\n });\n}\nfunction Le() {\n N.forEach(function(t) {\n clearInterval(t.pid);\n }), N = [];\n}\nfunction Rt() {\n clearInterval(_e);\n}\nvar it = zt(function(t, e, n, o) {\n if (e.scroll) {\n var r = (t.touches ? t.touches[0] : t).clientX, i = (t.touches ? t.touches[0] : t).clientY, a = e.scrollSensitivity, l = e.scrollSpeed, s = te(), u = !1, d;\n ut !== n && (ut = n, Le(), De = e.scroll, d = e.scrollFn, De === !0 && (De = ce(n, !0)));\n var f = 0, m = De;\n do {\n var y = m, b = P(y), w = b.top, L = b.bottom, G = b.left, R = b.right, j = b.width, B = b.height, X = void 0, K = void 0, oe = y.scrollWidth, le = y.scrollHeight, k = h(y), v = y.scrollLeft, D = y.scrollTop;\n y === s ? (X = j < oe && (k.overflowX === \"auto\" || k.overflowX === \"scroll\" || k.overflowX === \"visible\"), K = B < le && (k.overflowY === \"auto\" || k.overflowY === \"scroll\" || k.overflowY === \"visible\")) : (X = j < oe && (k.overflowX === \"auto\" || k.overflowX === \"scroll\"), K = B < le && (k.overflowY === \"auto\" || k.overflowY === \"scroll\"));\n var A = X && (Math.abs(R - r) <= a && v + j < oe) - (Math.abs(G - r) <= a && !!v), I = K && (Math.abs(L - i) <= a && D + B < le) - (Math.abs(w - i) <= a && !!D);\n if (!N[f])\n for (var _ = 0; _ <= f; _++)\n N[_] || (N[_] = {});\n (N[f].vx != A || N[f].vy != I || N[f].el !== y) && (N[f].el = y, N[f].vx = A, N[f].vy = I, clearInterval(N[f].pid), (A != 0 || I != 0) && (u = !0, N[f].pid = setInterval(function() {\n o && this.layer === 0 && p.active._onTouchMove(Ue);\n var x = N[this.layer].vy ? N[this.layer].vy * l : 0, M = N[this.layer].vx ? N[this.layer].vx * l : 0;\n typeof d == \"function\" && d.call(p.dragged.parentNode[q], M, x, t, Ue, N[this.layer].el) !== \"continue\" || Ut(N[this.layer].el, M, x);\n }.bind({\n layer: f\n }), 24))), f++;\n } while (e.bubbleScroll && m !== s && (m = ce(m, !1)));\n ct = u;\n }\n}, 30), en = function(e) {\n var n = e.originalEvent, o = e.putSortable, r = e.dragEl, i = e.activeSortable, a = e.dispatchSortableEvent, l = e.hideGhostForTarget, s = e.unhideGhostForTarget;\n if (n) {\n var u = o || i;\n l();\n var d = n.changedTouches && n.changedTouches.length ? n.changedTouches[0] : n, f = document.elementFromPoint(d.clientX, d.clientY);\n s(), u && !u.el.contains(f) && (a(\"spill\"), this.onSpill({\n dragEl: r,\n putSortable: o\n }));\n }\n};\nfunction pt() {\n}\npt.prototype = {\n startIndex: null,\n dragStart: function(e) {\n var n = e.oldDraggableIndex;\n this.startIndex = n;\n },\n onSpill: function(e) {\n var n = e.dragEl, o = e.putSortable;\n this.sortable.captureAnimationState(), o && o.captureAnimationState();\n var r = we(this.sortable.el, this.startIndex, this.options);\n r ? this.sortable.el.insertBefore(n, r) : this.sortable.el.appendChild(n), this.sortable.animateAll(), o && o.animateAll();\n },\n drop: en\n};\nie(pt, {\n pluginName: \"revertOnSpill\"\n});\nfunction gt() {\n}\ngt.prototype = {\n onSpill: function(e) {\n var n = e.dragEl, o = e.putSortable, r = o || this.sortable;\n r.captureAnimationState(), n.parentNode && n.parentNode.removeChild(n), r.animateAll();\n },\n drop: en\n};\nie(gt, {\n pluginName: \"removeOnSpill\"\n});\np.mount(new Qn());\np.mount(gt, pt);\nfunction eo(t) {\n return t == null ? t : JSON.parse(JSON.stringify(t));\n}\nfunction to(t) {\n dt() && sn(t);\n}\nfunction no(t) {\n dt() ? un(t) : kt(t);\n}\nlet tn = null, nn = null;\nfunction Xt(t = null, e = null) {\n tn = t, nn = e;\n}\nfunction oo() {\n return {\n data: tn,\n clonedData: nn\n };\n}\nconst Yt = Symbol(\"cloneElement\");\nfunction on(...t) {\n var le, k;\n const e = (le = dt()) == null ? void 0 : le.proxy;\n let n = null;\n const o = t[0];\n let [, r, i] = t;\n Array.isArray(U(r)) || (i = r, r = null);\n let a = null;\n const {\n immediate: l = !0,\n clone: s = eo,\n forceFallback: u,\n fallbackOnBody: d,\n customUpdate: f\n } = (k = U(i)) != null ? k : {};\n function m(v) {\n var F;\n const { from: D, oldIndex: A, item: I } = v, _ = Array.from(D.childNodes);\n n = u && !d ? _.slice(0, -1) : _;\n const x = U((F = U(r)) == null ? void 0 : F[A]), M = s(x);\n Xt(x, M), I[Yt] = M;\n }\n function y(v) {\n const D = v.item[Yt];\n if (!wn(D)) {\n if (Ke(v.item), qe(r)) {\n const A = [...U(r)];\n r.value = _t(A, v.newDraggableIndex, D);\n return;\n }\n _t(U(r), v.newDraggableIndex, D);\n }\n }\n function b(v) {\n const { from: D, item: A, oldIndex: I, oldDraggableIndex: _, pullMode: x, clone: M } = v;\n if (Tt(D, A, I), x === \"clone\") {\n Ke(M);\n return;\n }\n if (qe(r)) {\n const F = [...U(r)];\n r.value = Dt(F, _);\n return;\n }\n Dt(U(r), _);\n }\n function w(v) {\n if (f) {\n f(v);\n return;\n }\n const { from: D, item: A, oldIndex: I, oldDraggableIndex: _, newDraggableIndex: x } = v;\n if (Ke(A), Tt(D, A, I), qe(r)) {\n const M = [...U(r)];\n r.value = St(\n M,\n _,\n x\n );\n return;\n }\n St(U(r), _, x);\n }\n function L(v) {\n const { newIndex: D, oldIndex: A, from: I, to: _ } = v;\n let x = null;\n const M = D === A && I === _;\n try {\n if (M) {\n let F = null;\n n == null || n.some((ee, Ee) => {\n if (F && (n == null ? void 0 : n.length) !== _.childNodes.length)\n return I.insertBefore(F, ee.nextSibling), !0;\n const mt = _.childNodes[Ee];\n F = _ == null ? void 0 : _.replaceChild(ee, mt);\n });\n }\n } catch (F) {\n x = F;\n } finally {\n n = null;\n }\n kt(() => {\n if (Xt(), x)\n throw x;\n });\n }\n const G = {\n onUpdate: w,\n onStart: m,\n onAdd: y,\n onRemove: b,\n onEnd: L\n };\n function R(v) {\n const D = U(o);\n return v || (v = En(D) ? Sn(D, e == null ? void 0 : e.$el) : D), v && !Tn(v) && (v = v.$el), v || vn(\"Root element not found\"), v;\n }\n function j() {\n var I;\n const _ = (I = U(i)) != null ? I : {}, { immediate: v, clone: D } = _, A = $e(_, [\"immediate\", \"clone\"]);\n return Ct(A, (x, M) => {\n Cn(x) && (A[x] = (F, ...ee) => {\n const Ee = oo();\n return On(F, Ee), M(F, ...ee);\n });\n }), _n(\n r === null ? {} : G,\n A\n );\n }\n const B = (v) => {\n v = R(v), a && X.destroy(), a = new p(v, j());\n };\n ln(\n () => i,\n () => {\n a && Ct(j(), (v, D) => {\n a == null || a.option(v, D);\n });\n },\n { deep: !0 }\n );\n const X = {\n option: (v, D) => a == null ? void 0 : a.option(v, D),\n destroy: () => {\n a == null || a.destroy(), a = null;\n },\n save: () => a == null ? void 0 : a.save(),\n toArray: () => a == null ? void 0 : a.toArray(),\n closest: (...v) => a == null ? void 0 : a.closest(...v)\n }, K = () => X == null ? void 0 : X.option(\"disabled\", !0), oe = () => X == null ? void 0 : X.option(\"disabled\", !1);\n return no(() => {\n l && B();\n }), to(X.destroy), fe({ start: B, pause: K, resume: oe }, X);\n}\nconst ft = [\n \"update\",\n \"start\",\n \"add\",\n \"remove\",\n \"choose\",\n \"unchoose\",\n \"end\",\n \"sort\",\n \"filter\",\n \"clone\",\n \"move\",\n \"change\"\n], ro = [\n \"clone\",\n \"animation\",\n \"ghostClass\",\n \"group\",\n \"sort\",\n \"disabled\",\n \"store\",\n \"handle\",\n \"draggable\",\n \"swapThreshold\",\n \"invertSwap\",\n \"invertedSwapThreshold\",\n \"removeCloneOnHide\",\n \"direction\",\n \"chosenClass\",\n \"dragClass\",\n \"ignore\",\n \"filter\",\n \"preventOnFilter\",\n \"easing\",\n \"setData\",\n \"dropBubble\",\n \"dragoverBubble\",\n \"dataIdAttr\",\n \"delay\",\n \"delayOnTouchOnly\",\n \"touchStartThreshold\",\n \"forceFallback\",\n \"fallbackClass\",\n \"fallbackOnBody\",\n \"fallbackTolerance\",\n \"fallbackOffset\",\n \"supportPointer\",\n \"emptyInsertThreshold\",\n \"scroll\",\n \"forceAutoScrollFallback\",\n \"scrollSensitivity\",\n \"scrollSpeed\",\n \"bubbleScroll\",\n \"modelValue\",\n \"tag\",\n \"target\",\n \"customUpdate\",\n ...ft.map((t) => `on${t.replace(/^\\S/, (e) => e.toUpperCase())}`)\n], lo = cn({\n name: \"VueDraggable\",\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: ro,\n emits: [\"update:modelValue\", ...ft],\n setup(t, { slots: e, emit: n, expose: o, attrs: r }) {\n const i = ft.reduce((d, f) => {\n const m = `on${f.replace(/^\\S/, (y) => y.toUpperCase())}`;\n return d[m] = (...y) => n(f, ...y), d;\n }, {}), a = Et(() => {\n const y = fn(t), { modelValue: d } = y, f = $e(y, [\"modelValue\"]), m = Object.entries(f).reduce((b, [w, L]) => {\n const G = U(L);\n return G !== void 0 && (b[w] = G), b;\n }, {});\n return fe(fe({}, i), yn(fe(fe({}, r), m)));\n }), l = Et({\n get: () => t.modelValue,\n set: (d) => n(\"update:modelValue\", d)\n }), s = dn(), u = hn(\n on(t.target || s, l, a)\n );\n return o(u), () => {\n var d;\n return pn(t.tag || \"div\", { ref: s }, (d = e == null ? void 0 : e.default) == null ? void 0 : d.call(e, u));\n };\n }\n}), Bt = {\n mounted: \"mounted\",\n unmounted: \"unmounted\"\n}, at = /* @__PURE__ */ new WeakMap(), so = {\n [Bt.mounted](t, e) {\n const n = gn(e.value) ? [e.value] : e.value, [o, r] = n, i = on(t, o, r);\n at.set(t, i.destroy);\n },\n [Bt.unmounted](t) {\n var e;\n (e = at.get(t)) == null || e(), at.delete(t);\n }\n};\nexport {\n lo as VueDraggable,\n on as useDraggable,\n so as vDraggable\n};\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KTableHeader/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div ref=\"headerRef\" class=\"k-table-header\">\r\n <div class=\"k-table-header__left\">\r\n <slot name=\"title\">\r\n <div v-if=\"title\" class=\"k-table-header__title\">{{ title }}</div>\r\n </slot>\r\n </div>\r\n\r\n <div class=\"k-table-header__right\">\r\n <slot name=\"right\" />\r\n <KPlainButton v-if=\"shouldShow('refresh')\" :icon=\"Refresh\" @click=\"emit('refresh')\">刷新</KPlainButton>\r\n <KPlainButton v-if=\"shouldShow('fullscreen')\" :icon=\"FullScreen\" @click=\"handleFullscreen\">\r\n {{ isFullscreen ? '退出全屏' : '全屏' }}\r\n </KPlainButton>\r\n\r\n <el-popover\r\n v-if=\"shouldShow('columns') && columnsModel.length\"\r\n placement=\"bottom-end\"\r\n trigger=\"click\"\r\n width=\"320\"\r\n >\r\n <template #reference>\r\n <KPlainButton :icon=\"Menu\">列设置</KPlainButton>\r\n </template>\r\n\r\n <div class=\"column-panel\">\r\n <div class=\"column-panel__select-all\">\r\n <el-checkbox\r\n :disabled=\"visibleStats.total === 0\"\r\n :indeterminate=\"selectAllIndeterminate\"\r\n :model-value=\"selectAllChecked\"\r\n @change=\"toggleSelectAll\"\r\n >\r\n 全选\r\n </el-checkbox>\r\n </div>\r\n\r\n <div class=\"column-panel__divider\" />\r\n\r\n <VueDraggable\r\n v-model=\"draggableColumns\"\r\n :animation=\"180\"\r\n class=\"column-panel__list\"\r\n filter=\".none-draggable\"\r\n ghost-class=\"column-item--ghost\"\r\n chosen-class=\"column-item--chosen\"\r\n handle=\".column-item__drag\"\r\n >\r\n <div v-for=\"item in draggableColumns\" :key=\"String(item.key)\" class=\"column-item\">\r\n <div class=\"column-item__main\">\r\n <el-icon class=\"column-item__drag\"><Rank /></el-icon>\r\n <el-checkbox\r\n class=\"none-draggable column-item__checkbox\"\r\n :disabled=\"item.disabled\"\r\n :model-value=\"item.checked !== false\"\r\n @change=\"(value) => handleCheckedChange(item, value)\"\r\n >\r\n <span class=\"column-item__label\">{{ item.label }}</span>\r\n </el-checkbox>\r\n </div>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"column-item__fixed\"\r\n :class=\"fixedClass(item.fixed)\"\r\n :disabled=\"item.checked === false\"\r\n @click=\"handleFixed(item)\"\r\n >\r\n <el-icon v-if=\"item.fixed === 'left' || item.fixed === true\"><Back /></el-icon>\r\n <el-icon v-else-if=\"item.fixed === 'right'\"><Right /></el-icon>\r\n <el-icon v-else><Operation /></el-icon>\r\n </button>\r\n </div>\r\n </VueDraggable>\r\n </div>\r\n </el-popover>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { Back, FullScreen, Menu, Operation, Rank, Refresh, Right } from '@element-plus/icons-vue';\r\nimport { VueDraggable } from 'vue-draggable-plus';\r\n\r\ndefineOptions({ name: 'KTableHeader' });\r\n\r\nexport interface KTableHeaderColumn {\r\n key: string | number;\r\n label: string;\r\n visible?: boolean;\r\n checked?: boolean;\r\n disabled?: boolean;\r\n fixed?: boolean | 'left' | 'right';\r\n sortOrder?: number;\r\n children?: KTableHeaderColumn[];\r\n}\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n title?: string;\r\n layout?: string;\r\n }>(),\r\n {\r\n title: '',\r\n layout: 'refresh,columns,fullscreen'\r\n }\r\n);\r\n\r\nconst columnsModel = defineModel<KTableHeaderColumn[]>('columns', {\r\n default: () => []\r\n});\r\n\r\nconst emit = defineEmits<{\r\n refresh: [];\r\n fullscreen: [];\r\n}>();\r\n\r\nconst headerRef = ref<HTMLElement>();\r\nconst isFullscreen = ref(false);\r\n\r\nconst layoutItems = computed(() => props.layout.split(',').map((item) => item.trim()));\r\n\r\nconst visibleColumns = computed(() =>\r\n columnsModel.value\r\n .filter((item) => item.visible !== false)\r\n .sort((a, b) => (a.sortOrder ?? getColumnIndex(a.key)) - (b.sortOrder ?? getColumnIndex(b.key)))\r\n);\r\n\r\nconst sortableColumns = computed(() =>\r\n columnsModel.value\r\n .filter((item) => !item.disabled)\r\n .sort((a, b) => (a.sortOrder ?? getColumnIndex(a.key)) - (b.sortOrder ?? getColumnIndex(b.key)))\r\n);\r\n\r\nconst draggableColumns = computed({\r\n get: () => sortableColumns.value,\r\n set: (next) => {\r\n next.forEach((item, index) => {\r\n const target = columnsModel.value.find((column) => column.key === item.key);\r\n if (target) {\r\n target.sortOrder = index;\r\n }\r\n });\r\n }\r\n});\r\n\r\nconst visibleStats = computed(() => {\r\n let total = 0;\r\n let checked = 0;\r\n\r\n columnsModel.value.forEach((column) => {\r\n if (column.disabled) return;\r\n total += 1;\r\n if (column.checked !== false) checked += 1;\r\n });\r\n\r\n return { total, checked };\r\n});\r\n\r\nconst selectAllChecked = computed(() => {\r\n const { total, checked } = visibleStats.value;\r\n return total > 0 && checked === total;\r\n});\r\n\r\nconst selectAllIndeterminate = computed(() => {\r\n const { total, checked } = visibleStats.value;\r\n return checked > 0 && checked < total;\r\n});\r\n\r\nfunction shouldShow(name: string) {\r\n return layoutItems.value.includes(name);\r\n}\r\n\r\nfunction resolveFullscreenTarget() {\r\n const headerEl = headerRef.value;\r\n if (!headerEl) return document.documentElement;\r\n return (\r\n headerEl.closest('.k-card') ||\r\n headerEl.closest('.el-card') ||\r\n headerEl.closest('.art-table-card') ||\r\n headerEl.closest('.table-box') ||\r\n headerEl.parentElement ||\r\n document.documentElement\r\n ) as HTMLElement;\r\n}\r\n\r\nasync function handleFullscreen() {\r\n emit('fullscreen');\r\n if (!document.fullscreenEnabled) return;\r\n\r\n if (document.fullscreenElement) {\r\n await document.exitFullscreen();\r\n return;\r\n }\r\n\r\n const target = resolveFullscreenTarget();\r\n await target.requestFullscreen();\r\n}\r\n\r\nfunction syncFullscreenState() {\r\n const target = resolveFullscreenTarget();\r\n isFullscreen.value = document.fullscreenElement === target;\r\n}\r\n\r\nfunction handleCheckedChange(column: KTableHeaderColumn, value: string | number | boolean) {\r\n if (column.disabled) return;\r\n const checked = Boolean(value);\r\n column.checked = checked;\r\n column.visible = checked;\r\n}\r\n\r\nfunction toggleSelectAll(value: string | number | boolean) {\r\n const checked = Boolean(value);\r\n columnsModel.value.forEach((column) => {\r\n if (column.disabled) return;\r\n if (!column.disabled) {\r\n column.checked = checked;\r\n column.visible = checked;\r\n }\r\n });\r\n}\r\n\r\nfunction getColumnIndex(key: string | number) {\r\n return columnsModel.value.findIndex((item) => item.key === key);\r\n}\r\n\r\nfunction handleFixed(column: KTableHeaderColumn) {\r\n if (column.checked === false) return;\r\n if (column.fixed === 'left' || column.fixed === true) {\r\n column.fixed = 'right';\r\n return;\r\n }\r\n if (column.fixed === 'right') {\r\n column.fixed = false;\r\n return;\r\n }\r\n column.fixed = 'left';\r\n}\r\n\r\nfunction fixedClass(fixed?: boolean | 'left' | 'right') {\r\n if (fixed === 'left' || fixed === true) return 'is-left';\r\n if (fixed === 'right') return 'is-right';\r\n return 'is-none';\r\n}\r\n\r\nonMounted(() => {\r\n document.addEventListener('fullscreenchange', syncFullscreenState);\r\n syncFullscreenState();\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n document.removeEventListener('fullscreenchange', syncFullscreenState);\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.k-table-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 12px;\r\n}\r\n\r\n.k-table-header__left {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.k-table-header__right {\r\n text-align: right;\r\n}\r\n\r\n.k-table-header__right > :deep(*) {\r\n vertical-align: middle;\r\n}\r\n\r\n.k-table-header__right > :deep(* + *) {\r\n margin-left: 8px;\r\n}\r\n\r\n.k-table-header__title {\r\n font-size: 15px;\r\n font-weight: 600;\r\n line-height: 1;\r\n color: var(--el-text-color-primary);\r\n}\r\n\r\n.column-panel__select-all {\r\n height: 36px;\r\n display: flex;\r\n align-items: center;\r\n padding: 0 12px 0 26px;\r\n border-radius: 6px;\r\n transition: background-color 0.2s ease;\r\n}\r\n\r\n.column-panel__select-all:hover {\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n.column-panel__divider {\r\n height: 1px;\r\n margin: 4px 0;\r\n background: var(--el-border-color-lighter);\r\n}\r\n\r\n.column-panel__list {\r\n max-height: 240px;\r\n overflow-y: auto;\r\n padding-right: 2px;\r\n}\r\n\r\n.column-item {\r\n height: 36px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 8px;\r\n}\r\n\r\n.column-item__main {\r\n height: 100%;\r\n min-width: 0;\r\n flex: 1;\r\n display: flex;\r\n align-items: center;\r\n padding: 0 10px;\r\n border-radius: 6px;\r\n transition: background-color 0.2s ease;\r\n}\r\n\r\n.column-item__main:hover {\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n.column-item__drag {\r\n margin-right: 8px;\r\n color: var(--el-text-color-secondary);\r\n cursor: move;\r\n}\r\n\r\n.column-item__checkbox {\r\n min-width: 0;\r\n flex: 1;\r\n}\r\n\r\n.column-item__label {\r\n display: inline-block;\r\n max-width: 180px;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.column-item__fixed {\r\n width: 28px;\r\n height: 28px;\r\n padding: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 1px solid var(--el-border-color);\r\n border-radius: 6px;\r\n background: transparent;\r\n color: var(--el-text-color-regular);\r\n cursor: pointer;\r\n transition:\r\n border-color 0.2s ease,\r\n background-color 0.2s ease,\r\n color 0.2s ease,\r\n transform 0.2s ease,\r\n opacity 0.2s ease;\r\n}\r\n\r\n.column-item__fixed:hover:not(:disabled) {\r\n border-color: var(--el-color-primary-light-5);\r\n background: var(--el-color-primary-light-9);\r\n transform: translateY(-1px);\r\n}\r\n\r\n.column-item__fixed:disabled {\r\n cursor: not-allowed;\r\n opacity: 0.45;\r\n}\r\n\r\n.column-item__fixed.is-left {\r\n color: var(--el-color-primary);\r\n border-color: var(--el-color-primary-light-5);\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n.column-item__fixed.is-right {\r\n color: var(--el-color-warning);\r\n border-color: var(--el-color-warning-light-5);\r\n background: var(--el-color-warning-light-9);\r\n}\r\n\r\n:deep(.column-item--ghost) {\r\n opacity: 0.45;\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n:deep(.column-item--chosen .column-item__main) {\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n.column-panel__list::-webkit-scrollbar {\r\n width: 6px;\r\n}\r\n\r\n.column-panel__list::-webkit-scrollbar-thumb {\r\n border-radius: 999px;\r\n background: rgba(148, 163, 184, 0.55);\r\n}\r\n\r\n.column-panel__list::-webkit-scrollbar-track {\r\n background: transparent;\r\n}\r\n\r\n@media (width <= 768px) {\r\n .k-table-header {\r\n flex-direction: column;\r\n align-items: stretch;\r\n }\r\n\r\n .k-table-header__right {\r\n justify-content: flex-end;\r\n }\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/settings/SettingForm/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"setting-form\">\r\n <!-- 表单内容 -->\r\n <div class=\"form-content\">\r\n <el-form ref=\"formRef\" :model=\"formData\" :rules=\"rules\" :disabled=\"!isEditing\" label-position=\"top\" class=\"config-form\">\r\n <slot :form-data=\"formData\" :is-editing=\"isEditing\"></slot>\r\n </el-form>\r\n </div>\r\n\r\n <!-- 底部按钮 -->\r\n <div class=\"form-footer\">\r\n <!-- 查看模式按钮 -->\r\n <template v-if=\"!isEditing\">\r\n <el-button type=\"primary\" @click=\"handleEdit\">\r\n <el-icon class=\"mr-1\">\r\n <Edit />\r\n </el-icon>\r\n 修改\r\n </el-button>\r\n <el-button @click=\"handleResetToDefault\">\r\n <el-icon class=\"mr-1\">\r\n <RefreshLeft />\r\n </el-icon>\r\n 还原默认值\r\n </el-button>\r\n </template>\r\n\r\n <!-- 编辑模式按钮 -->\r\n <template v-else>\r\n <el-button type=\"primary\" :loading=\"loading\" @click=\"handleSave\">\r\n <el-icon class=\"mr-1\">\r\n <Check />\r\n </el-icon>\r\n 保存\r\n </el-button>\r\n <el-button @click=\"handleReset\">\r\n <el-icon class=\"mr-1\">\r\n <RefreshLeft />\r\n </el-icon>\r\n 重置\r\n </el-button>\r\n <el-button @click=\"handleCancel\">\r\n <el-icon class=\"mr-1\">\r\n <Close />\r\n </el-icon>\r\n 取消\r\n </el-button>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport type { FormInstance, FormRules } from 'element-plus';\r\n\r\ninterface Props {\r\n title?: string;\r\n formData: Record<string, any>;\r\n defaultData?: Record<string, any>;\r\n rules?: FormRules;\r\n loading?: boolean;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n title: '',\r\n defaultData: () => ({}),\r\n rules: () => ({}),\r\n loading: false\r\n});\r\n\r\nconst emit = defineEmits(['save', 'reset', 'cancel', 'reset-default']);\r\n\r\nconst formRef = ref<FormInstance>();\r\nconst isEditing = ref(false);\r\nconst originalData = ref<Record<string, any>>({});\r\n\r\n// 进入编辑模式\r\nconst handleEdit = () => {\r\n // 保存原始数据\r\n originalData.value = JSON.parse(JSON.stringify(props.formData));\r\n isEditing.value = true;\r\n};\r\n\r\n// 保存\r\nconst handleSave = async () => {\r\n if (!formRef.value) return;\r\n\r\n await formRef.value.validate((valid: boolean) => {\r\n if (valid) {\r\n emit('save', props.formData);\r\n }\r\n });\r\n};\r\n\r\n// 重置表单\r\nconst handleReset = () => {\r\n if (formRef.value) {\r\n formRef.value.resetFields();\r\n }\r\n emit('reset');\r\n};\r\n\r\n// 取消编辑\r\nconst handleCancel = () => {\r\n // 恢复原始数据\r\n Object.assign(props.formData, originalData.value);\r\n isEditing.value = false;\r\n if (formRef.value) {\r\n formRef.value.clearValidate();\r\n }\r\n emit('cancel');\r\n};\r\n\r\n// 还原默认值\r\nconst handleResetToDefault = () => {\r\n emit('reset-default');\r\n};\r\n\r\n// 保存成功后退出编辑模式\r\nconst exitEditMode = () => {\r\n isEditing.value = false;\r\n};\r\n\r\n// 暴露方法给父组件\r\ndefineExpose({\r\n exitEditMode\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.setting-form {\r\n background: var(--el-bg-color);\r\n}\r\n\r\n.form-content {\r\n .config-form {\r\n max-width: 800px;\r\n\r\n :deep(.el-form-item) {\r\n margin-bottom: 24px;\r\n\r\n .el-form-item__label {\r\n font-weight: 500;\r\n color: var(--el-text-color-primary);\r\n margin-bottom: 8px;\r\n }\r\n\r\n .el-form-item__content {\r\n .el-input,\r\n .el-textarea {\r\n &.is-disabled {\r\n .el-input__wrapper,\r\n .el-textarea__inner {\r\n background-color: var(--el-fill-color-light);\r\n cursor: not-allowed;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n :deep(.form-item-tip) {\r\n margin-top: 8px;\r\n font-size: 13px;\r\n color: var(--el-text-color-secondary);\r\n line-height: 1.5;\r\n }\r\n }\r\n}\r\n\r\n.form-footer {\r\n display: flex;\r\n gap: 12px;\r\n padding-top: 24px;\r\n border-top: 1px solid var(--el-border-color-lighter);\r\n margin-top: 32px;\r\n}\r\n</style>\r\n","import request from '../request';\n\nexport function listConfig(query: Record<string, any>) {\n return request<any>({\n url: '/system/config/list',\n method: 'get',\n params: query\n });\n}\n\nexport function updateConfigByKey(key: string, value: any) {\n return request<any>({\n url: '/system/config/updateByKey',\n method: 'put',\n data: {\n configKey: key,\n configValue: value\n }\n });\n}\n","<!-- AUTO-GENERATED from plus-ui/src/components/settings/ModuleBusinessSettings.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"business-config-container\">\r\n <SettingForm\r\n ref=\"settingFormRef\"\r\n :default-data=\"defaultData\"\r\n :form-data=\"formData\"\r\n :loading=\"loading\"\r\n :rules=\"rules\"\r\n :title=\"`${moduleLabel}业务配置`\"\r\n @cancel=\"handleCancel\"\r\n @reset=\"handleReset\"\r\n @save=\"handleSave\"\r\n @reset-default=\"handleResetToDefault\"\r\n >\r\n <template #default=\"{ isEditing }\">\r\n <el-form-item v-for=\"field in moduleFields\" :key=\"field.key\" :label=\"field.label\" :prop=\"field.key\">\r\n <el-switch\r\n v-if=\"field.control === 'switch'\"\r\n v-model=\"formData[field.key]\"\r\n :active-value=\"'true'\"\r\n :inactive-value=\"'false'\"\r\n :disabled=\"!isEditing\"\r\n />\r\n\r\n <el-input-number\r\n v-else-if=\"field.control === 'number'\"\r\n v-model=\"formData[field.key]\"\r\n :disabled=\"!isEditing\"\r\n :min=\"field.min\"\r\n :max=\"field.max\"\r\n :precision=\"field.precision\"\r\n class=\"w-full\"\r\n />\r\n\r\n <el-input\r\n v-else\r\n v-model=\"formData[field.key]\"\r\n :maxlength=\"field.maxlength\"\r\n :placeholder=\"field.placeholder\"\r\n :rows=\"field.rows\"\r\n :show-word-limit=\"field.type === 'textarea'\"\r\n :type=\"field.type || 'text'\"\r\n clearable\r\n />\r\n\r\n <div v-if=\"field.tip\" class=\"form-item-tip\">{{ field.tip }}</div>\r\n </el-form-item>\r\n </template>\r\n </SettingForm>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport type { ComponentInternalInstance } from 'vue';\r\nimport { computed, getCurrentInstance, onMounted, reactive, ref } from 'vue';\r\nimport SettingForm from './SettingForm.vue';\r\nimport { listConfig, updateConfigByKey } from '../api/config';\r\nimport type { ConfigQuery } from '../api/types';\r\n\r\ntype Category = 'mall' | 'im' | 'exam' | 'gallery';\r\ntype FieldKey =\r\n | 'orderAutoCancelMinutes'\r\n | 'afterSaleDays'\r\n | 'minOrderAmount'\r\n | 'buyButtonText'\r\n | 'friendRequestNeedVerify'\r\n | 'messageRecallMinutes'\r\n | 'groupCreateEnabled'\r\n | 'maxFileSizeMb'\r\n | 'practiceEnabled'\r\n | 'showAnswerAfterSubmit'\r\n | 'defaultDurationMinutes'\r\n | 'maxRetakeCount'\r\n | 'uploadEnabled'\r\n | 'reviewBeforePublish'\r\n | 'maxUploadSizeMb'\r\n | 'dailyUploadCountLimit'\r\n | 'dailyUploadSizeLimitMb';\r\n\r\ntype FieldItem = {\r\n key: FieldKey;\r\n label: string;\r\n placeholder?: string;\r\n maxlength?: number;\r\n type?: 'text' | 'textarea';\r\n rows?: number;\r\n control?: 'input' | 'number' | 'switch';\r\n min?: number;\r\n max?: number;\r\n precision?: number;\r\n tip?: string;\r\n};\r\n\r\nconst props = defineProps<{\r\n category: Category;\r\n moduleLabel: string;\r\n}>();\r\n\r\nconst { proxy } = getCurrentInstance() as ComponentInternalInstance;\r\nconst settingFormRef = ref();\r\nconst loading = ref(false);\r\n\r\nconst moduleFieldMap: Record<Category, FieldItem[]> = {\r\n mall: [\r\n { key: 'orderAutoCancelMinutes', label: '订单自动取消分钟', control: 'number', min: 0, max: 10080, tip: '0 表示不自动取消' },\r\n { key: 'afterSaleDays', label: '售后申请天数', control: 'number', min: 0, max: 365 },\r\n { key: 'minOrderAmount', label: '最低下单金额', control: 'number', min: 0, max: 999999, precision: 2 },\r\n { key: 'buyButtonText', label: '购买按钮文案', placeholder: '请输入购买按钮文案', maxlength: 20 }\r\n ],\r\n im: [\r\n { key: 'friendRequestNeedVerify', label: '添加好友需验证', control: 'switch' },\r\n { key: 'messageRecallMinutes', label: '消息撤回时限分钟', control: 'number', min: 0, max: 1440, tip: '0 表示不可撤回' },\r\n { key: 'groupCreateEnabled', label: '允许创建群聊', control: 'switch' },\r\n { key: 'maxFileSizeMb', label: '附件大小上限(MB)', control: 'number', min: 1, max: 1024 }\r\n ],\r\n exam: [\r\n { key: 'practiceEnabled', label: '开启练习模式', control: 'switch' },\r\n { key: 'showAnswerAfterSubmit', label: '交卷后显示答案', control: 'switch' },\r\n { key: 'defaultDurationMinutes', label: '默认考试时长(分钟)', control: 'number', min: 0, max: 1440 },\r\n { key: 'maxRetakeCount', label: '最大补考次数', control: 'number', min: 0, max: 99 }\r\n ],\r\n gallery: [\r\n { key: 'uploadEnabled', label: '允许上传', control: 'switch' },\r\n { key: 'reviewBeforePublish', label: '发布前需审核', control: 'switch' },\r\n { key: 'maxUploadSizeMb', label: '单文件大小上限(MB)', control: 'number', min: 1, max: 500 },\r\n { key: 'dailyUploadCountLimit', label: '用户日上传数量上限', control: 'number', min: 0, max: 100000, tip: '0 表示不限制' },\r\n { key: 'dailyUploadSizeLimitMb', label: '用户日上传容量上限(MB)', control: 'number', min: 0, max: 1000000, tip: '0 表示不限制' }\r\n ]\r\n};\r\n\r\nconst moduleFields = computed(() => moduleFieldMap[props.category]);\r\nconst fieldKeys = computed(() => moduleFields.value.map((item) => item.key) as FieldKey[]);\r\n\r\nfunction createFieldState() {\r\n return fieldKeys.value.reduce(\r\n (result, key) => {\r\n result[key] = '';\r\n return result;\r\n },\r\n {} as Record<FieldKey, string | number>\r\n );\r\n}\r\n\r\nconst formData = reactive(createFieldState());\r\nconst originalData = reactive(createFieldState());\r\nconst defaultData = reactive(createFieldState());\r\n\r\nconst rules = {};\r\n\r\nconst configKeyMap: Record<FieldKey, string> = {\r\n orderAutoCancelMinutes: 'mall.orderAutoCancelMinutes',\r\n afterSaleDays: 'mall.afterSaleDays',\r\n minOrderAmount: 'mall.minOrderAmount',\r\n buyButtonText: 'mall.buyButtonText',\r\n friendRequestNeedVerify: 'im.friendRequestNeedVerify',\r\n messageRecallMinutes: 'im.messageRecallMinutes',\r\n groupCreateEnabled: 'im.groupCreateEnabled',\r\n maxFileSizeMb: 'im.maxFileSizeMb',\r\n practiceEnabled: 'exam.practiceEnabled',\r\n showAnswerAfterSubmit: 'exam.showAnswerAfterSubmit',\r\n defaultDurationMinutes: 'exam.defaultDurationMinutes',\r\n maxRetakeCount: 'exam.maxRetakeCount',\r\n uploadEnabled: 'gallery.uploadEnabled',\r\n reviewBeforePublish: 'gallery.reviewBeforePublish',\r\n maxUploadSizeMb: 'gallery.maxUploadSizeMb',\r\n dailyUploadCountLimit: 'gallery.dailyUploadCountLimit',\r\n dailyUploadSizeLimitMb: 'gallery.dailyUploadSizeLimitMb'\r\n};\r\n\r\nconst reverseKeyMap = Object.entries(configKeyMap).reduce(\r\n (result, [field, key]) => {\r\n result[key] = field as FieldKey;\r\n return result;\r\n },\r\n {} as Record<string, FieldKey>\r\n);\r\n\r\nconst numberFieldSet = new Set<FieldKey>([\r\n 'orderAutoCancelMinutes',\r\n 'afterSaleDays',\r\n 'minOrderAmount',\r\n 'messageRecallMinutes',\r\n 'maxFileSizeMb',\r\n 'defaultDurationMinutes',\r\n 'maxRetakeCount',\r\n 'maxUploadSizeMb',\r\n 'dailyUploadCountLimit',\r\n 'dailyUploadSizeLimitMb'\r\n]);\r\n\r\nfunction normalizeValue(field: FieldKey, value: any) {\r\n if (numberFieldSet.has(field)) {\r\n if (value === '' || value === null || value === undefined) return 0;\r\n const parsed = Number(value);\r\n return Number.isNaN(parsed) ? 0 : parsed;\r\n }\r\n return value ?? '';\r\n}\r\n\r\nfunction stringifyValue(field: FieldKey, value: any) {\r\n if (numberFieldSet.has(field)) {\r\n return String(value ?? 0);\r\n }\r\n return String(value ?? '');\r\n}\r\n\r\nasync function loadConfig() {\r\n loading.value = true;\r\n try {\r\n const res = await listConfig({\r\n pageNum: 1,\r\n pageSize: 100,\r\n configCategory: props.category\r\n } as ConfigQuery);\r\n\r\n fieldKeys.value.forEach((key) => {\r\n formData[key] = normalizeValue(key, '');\r\n originalData[key] = normalizeValue(key, '');\r\n defaultData[key] = normalizeValue(key, '');\r\n });\r\n\r\n (res.rows || []).forEach((item: any) => {\r\n const field = reverseKeyMap[item.configKey];\r\n if (!field) return;\r\n formData[field] = normalizeValue(field, item.configValue);\r\n originalData[field] = normalizeValue(field, item.configValue);\r\n defaultData[field] = normalizeValue(field, item.defaultValue);\r\n });\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n\r\nasync function handleSave() {\r\n loading.value = true;\r\n try {\r\n const changedKeys = fieldKeys.value.filter((key) => stringifyValue(key, formData[key]) !== stringifyValue(key, originalData[key]));\r\n if (!changedKeys.length) {\r\n proxy?.$modal.msg('未检测到变更');\r\n settingFormRef.value?.exitEditMode?.();\r\n return;\r\n }\r\n\r\n for (const key of changedKeys) {\r\n await updateConfigByKey(configKeyMap[key], stringifyValue(key, formData[key]));\r\n originalData[key] = normalizeValue(key, formData[key]);\r\n }\r\n\r\n proxy?.$modal.msgSuccess(`已保存 ${changedKeys.length} 项配置`);\r\n settingFormRef.value?.exitEditMode?.();\r\n } catch (error) {\r\n console.error(`save ${props.category} business config failed`, error);\r\n proxy?.$modal.msgError('保存失败');\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n\r\nfunction handleReset() {\r\n loadConfig();\r\n}\r\n\r\nfunction handleCancel() {}\r\n\r\nfunction handleResetToDefault() {\r\n proxy?.$modal\r\n .confirm('确认恢复默认值吗?')\r\n .then(() => {\r\n fieldKeys.value.forEach((key) => {\r\n formData[key] = normalizeValue(key, defaultData[key]);\r\n });\r\n proxy?.$modal.msgSuccess('已恢复默认值,保存后生效。');\r\n })\r\n .catch(() => {});\r\n}\r\n\r\nonMounted(() => {\r\n loadConfig();\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.business-config-container {\r\n max-width: 800px;\r\n}\r\n\r\n.w-full {\r\n width: 100%;\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/settings/ModuleWebsiteSettings.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"website-config-container\">\r\n <div class=\"form-section\">\r\n <SettingForm\r\n ref=\"settingFormRef\"\r\n :default-data=\"defaultData\"\r\n :form-data=\"formData\"\r\n :loading=\"loading\"\r\n :rules=\"rules\"\r\n :title=\"`${moduleLabel}网站配置`\"\r\n @cancel=\"handleCancel\"\r\n @reset=\"handleReset\"\r\n @save=\"handleSave\"\r\n @reset-default=\"handleResetToDefault\"\r\n >\r\n <template #default=\"{ isEditing }\">\r\n <el-form-item label=\"系统 Logo\" prop=\"logo\">\r\n <ImageUpload\r\n v-model=\"formData.logo\"\r\n :disabled=\"!isEditing\"\r\n :file-size=\"2\"\r\n :file-type=\"['png', 'jpg', 'jpeg', 'svg']\"\r\n :limit=\"1\"\r\n @upload-success=\"handleLogoUpload\"\r\n />\r\n </el-form-item>\r\n\r\n <el-form-item label=\"系统图标\" prop=\"favicon\">\r\n <ImageUpload\r\n v-model=\"formData.favicon\"\r\n :disabled=\"!isEditing\"\r\n :file-size=\"2\"\r\n :file-type=\"['png', 'jpg', 'jpeg', 'ico']\"\r\n :limit=\"1\"\r\n @upload-success=\"handleFaviconUpload\"\r\n />\r\n </el-form-item>\r\n\r\n <el-form-item label=\"背景图\" prop=\"backgroundImage\">\r\n <ImageUpload\r\n v-model=\"formData.backgroundImage\"\r\n :disabled=\"!isEditing\"\r\n :file-size=\"5\"\r\n :file-type=\"['png', 'jpg', 'jpeg', 'webp']\"\r\n :limit=\"1\"\r\n @upload-success=\"handleBackgroundImageUpload\"\r\n />\r\n </el-form-item>\r\n\r\n <el-form-item v-for=\"field in baseFields\" :key=\"field.key\" :label=\"field.label\" :prop=\"field.key\">\r\n <el-input\r\n v-model=\"formData[field.key]\"\r\n :maxlength=\"field.maxlength\"\r\n :placeholder=\"field.placeholder\"\r\n :rows=\"field.rows\"\r\n :show-word-limit=\"field.type === 'textarea'\"\r\n :type=\"field.type || 'text'\"\r\n clearable\r\n />\r\n </el-form-item>\r\n </template>\r\n </SettingForm>\r\n </div>\r\n\r\n <div class=\"preview-section\">\r\n <div class=\"preview-title\">预览效果</div>\r\n <div class=\"preview-container\">\r\n <div class=\"preview-header\">\r\n <img v-if=\"logoUrl\" :src=\"logoUrl\" alt=\"logo\" class=\"preview-logo\" />\r\n <span v-else class=\"text-gray-400\">未上传 Logo</span>\r\n </div>\r\n <div class=\"preview-content\">\r\n <h2 class=\"preview-name\">{{ formData.name || `${moduleLabel}名称` }}</h2>\r\n <p class=\"preview-desc\">{{ formData.description || `${moduleLabel}描述` }}</p>\r\n <div v-if=\"formData.copyright || formData.icp\" class=\"preview-meta\">\r\n <span v-if=\"formData.copyright\">{{ formData.copyright }}</span>\r\n <span v-if=\"formData.icp\">{{ formData.icp }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport type { ComponentInternalInstance } from 'vue';\r\nimport { computed, getCurrentInstance, onMounted, reactive, ref } from 'vue';\r\nimport SettingForm from './SettingForm.vue';\r\nimport ImageUpload from './ImageUpload.vue';\r\nimport { listConfig, updateConfigByKey } from '../api/config';\r\nimport type { ConfigQuery } from '../api/types';\r\n\r\ntype Category = 'mall' | 'im' | 'exam' | 'gallery';\r\ntype FieldKey = 'logo' | 'favicon' | 'name' | 'nameEn' | 'backgroundImage' | 'description' | 'copyright' | 'icp';\r\n\r\ntype FieldItem = {\r\n key: Exclude<FieldKey, 'logo' | 'favicon' | 'backgroundImage'>;\r\n label: string;\r\n placeholder: string;\r\n maxlength: number;\r\n type?: 'text' | 'textarea';\r\n rows?: number;\r\n};\r\n\r\nconst props = defineProps<{\r\n category: Category;\r\n moduleLabel: string;\r\n}>();\r\n\r\nconst { proxy } = getCurrentInstance() as ComponentInternalInstance;\r\nconst settingFormRef = ref();\r\nconst loading = ref(false);\r\nconst logoUrl = ref('');\r\n\r\nconst baseFields: FieldItem[] = [\r\n { key: 'name', label: '系统名称', placeholder: '请输入系统名称', maxlength: 50 },\r\n { key: 'nameEn', label: '英文名称', placeholder: '请输入英文名称', maxlength: 50 },\r\n { key: 'description', label: '站点描述', placeholder: '请输入站点描述', maxlength: 200, type: 'textarea', rows: 3 },\r\n { key: 'copyright', label: '版权信息', placeholder: '请输入版权信息', maxlength: 200, type: 'textarea', rows: 2 },\r\n { key: 'icp', label: 'ICP备案号', placeholder: '请输入 ICP 备案号', maxlength: 50 }\r\n];\r\n\r\nconst fieldKeys = computed(() => ['logo', 'favicon', 'backgroundImage', ...baseFields.map((item) => item.key)] as FieldKey[]);\r\n\r\nfunction createFieldState() {\r\n return fieldKeys.value.reduce(\r\n (result, key) => {\r\n result[key] = '';\r\n return result;\r\n },\r\n {} as Record<FieldKey, string>\r\n );\r\n}\r\n\r\nconst formData = reactive(createFieldState());\r\nconst originalData = reactive(createFieldState());\r\nconst defaultData = reactive(createFieldState());\r\n\r\nconst rules = {\r\n name: [{ required: true, message: '请输入系统名称', trigger: 'blur' }],\r\n copyright: [{ required: true, message: '请输入版权信息', trigger: 'blur' }]\r\n};\r\n\r\nconst configKeyMap = computed<Record<FieldKey, string>>(() => ({\r\n logo: `${props.category}.logo`,\r\n favicon: `${props.category}.favicon`,\r\n name: `${props.category}.name`,\r\n nameEn: `${props.category}.nameEn`,\r\n backgroundImage: `${props.category}.backgroundImage`,\r\n description: `${props.category}.description`,\r\n copyright: `${props.category}.copyright`,\r\n icp: `${props.category}.icp`\r\n}));\r\n\r\nconst reverseKeyMap = computed(() =>\r\n Object.entries(configKeyMap.value).reduce(\r\n (result, [field, key]) => {\r\n result[key] = field as FieldKey;\r\n return result;\r\n },\r\n {} as Record<string, FieldKey>\r\n )\r\n);\r\n\r\nasync function getImageUrl(value: string) {\r\n if (!value) return '';\r\n if (value.startsWith('http')) return value;\r\n try {\r\n const { listByIds } = await import('../api/oss');\r\n const res = await listByIds(value);\r\n return res.data?.[0]?.url || '';\r\n } catch {\r\n return '';\r\n }\r\n}\r\n\r\nasync function syncPreview() {\r\n logoUrl.value = await getImageUrl(String(formData.logo || ''));\r\n}\r\n\r\nasync function loadConfig() {\r\n loading.value = true;\r\n try {\r\n const res = await listConfig({\r\n pageNum: 1,\r\n pageSize: 100,\r\n configCategory: props.category\r\n } as ConfigQuery);\r\n\r\n fieldKeys.value.forEach((key) => {\r\n formData[key] = '';\r\n originalData[key] = '';\r\n defaultData[key] = '';\r\n });\r\n\r\n (res.rows || []).forEach((item: any) => {\r\n const field = reverseKeyMap.value[item.configKey];\r\n if (!field) return;\r\n formData[field] = item.configValue || '';\r\n originalData[field] = item.configValue || '';\r\n defaultData[field] = item.defaultValue || '';\r\n });\r\n\r\n await syncPreview();\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n\r\nfunction handleLogoUpload(data: any) {\r\n formData.logo = String(data.ossId || '');\r\n logoUrl.value = data.url || '';\r\n}\r\n\r\nfunction handleFaviconUpload(data: any) {\r\n formData.favicon = String(data.ossId || '');\r\n}\r\n\r\nfunction handleBackgroundImageUpload(data: any) {\r\n formData.backgroundImage = String(data.ossId || '');\r\n}\r\n\r\nasync function handleSave() {\r\n loading.value = true;\r\n try {\r\n const changedKeys = fieldKeys.value.filter((key) => formData[key] !== originalData[key]);\r\n if (!changedKeys.length) {\r\n proxy?.$modal.msg('未检测到变更');\r\n settingFormRef.value?.exitEditMode?.();\r\n return;\r\n }\r\n\r\n for (const key of changedKeys) {\r\n await updateConfigByKey(configKeyMap.value[key], formData[key]);\r\n originalData[key] = formData[key];\r\n }\r\n\r\n proxy?.$modal.msgSuccess(`已保存 ${changedKeys.length} 项配置`);\r\n settingFormRef.value?.exitEditMode?.();\r\n await syncPreview();\r\n } catch (error) {\r\n console.error(`save ${props.category} website config failed`, error);\r\n proxy?.$modal.msgError('保存失败');\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n\r\nfunction handleReset() {\r\n loadConfig();\r\n}\r\n\r\nfunction handleCancel() {}\r\n\r\nfunction handleResetToDefault() {\r\n proxy?.$modal\r\n .confirm('确认恢复默认值吗?')\r\n .then(() => {\r\n Object.assign(formData, defaultData);\r\n proxy?.$modal.msgSuccess('已恢复默认值,保存后生效。');\r\n })\r\n .catch(() => {});\r\n}\r\n\r\nonMounted(() => {\r\n loadConfig();\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.website-config-container {\r\n display: flex;\r\n gap: 24px;\r\n align-items: flex-start;\r\n\r\n @media (max-width: 1200px) {\r\n flex-direction: column;\r\n }\r\n}\r\n\r\n.form-section {\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n\r\n.preview-section {\r\n width: 360px;\r\n flex-shrink: 0;\r\n position: sticky;\r\n top: 20px;\r\n\r\n @media (max-width: 1200px) {\r\n width: 100%;\r\n position: static;\r\n }\r\n}\r\n\r\n.preview-title {\r\n margin-bottom: 16px;\r\n font-size: 16px;\r\n font-weight: 600;\r\n}\r\n\r\n.preview-container {\r\n padding: 16px;\r\n border: 1px solid var(--el-border-color);\r\n border-radius: 6px;\r\n background: var(--el-fill-color-blank);\r\n}\r\n\r\n.preview-header {\r\n padding-bottom: 16px;\r\n margin-bottom: 16px;\r\n border-bottom: 1px solid var(--el-border-color);\r\n}\r\n\r\n.preview-logo {\r\n height: 40px;\r\n object-fit: contain;\r\n}\r\n\r\n.preview-name {\r\n margin: 0;\r\n font-size: 24px;\r\n font-weight: 700;\r\n}\r\n\r\n.preview-desc {\r\n margin: 12px 0 0;\r\n line-height: 1.7;\r\n color: var(--el-text-color-regular);\r\n}\r\n\r\n.preview-meta {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 6px;\r\n margin-top: 16px;\r\n font-size: 13px;\r\n color: var(--el-text-color-secondary);\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/settings/SettingTabs/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"setting-tabs\">\r\n <div class=\"tabs-sidebar\">\r\n <div v-for=\"tab in tabs\" :key=\"tab.name\" :class=\"['tab-item', { active: modelValue === tab.name }]\" @click=\"handleTabClick(tab.name)\">\r\n <el-icon class=\"tab-icon\">\r\n <component :is=\"tab.icon\" />\r\n </el-icon>\r\n <span class=\"tab-label\">{{ tab.label }}</span>\r\n </div>\r\n </div>\r\n <div class=\"tabs-content\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\ninterface Tab {\r\n name: string;\r\n label: string;\r\n icon: any;\r\n}\r\n\r\ninterface Props {\r\n modelValue: string;\r\n tabs: Tab[];\r\n}\r\n\r\nconst props = defineProps<Props>();\r\nconst emit = defineEmits(['update:modelValue']);\r\n\r\nconst handleTabClick = (name: string) => {\r\n emit('update:modelValue', name);\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.setting-tabs {\r\n display: flex;\r\n min-height: 800px;\r\n background: var(--el-bg-color);\r\n border-radius: 8px;\r\n}\r\n\r\n.tabs-sidebar {\r\n width: 230px;\r\n background: var(--el-fill-color-blank);\r\n border-right: 1px solid var(--el-border-color-light);\r\n padding: var(--spacing-md);\r\n flex-shrink: 0;\r\n}\r\n\r\n.tab-item {\r\n display: flex;\r\n align-items: center;\r\n padding: 12px 20px;\r\n cursor: pointer;\r\n transition: all 0.3s;\r\n color: var(--el-text-color-regular);\r\n position: relative;\r\n margin-bottom: var(--spacing-sm);\r\n border-radius: var(--radius-md);\r\n\r\n &:hover {\r\n background: var(--el-fill-color-light);\r\n color: var(--el-color-primary);\r\n }\r\n\r\n &.active {\r\n background: var(--el-color-primary-light-9);\r\n color: var(--el-color-primary);\r\n font-weight: 500;\r\n\r\n //&::before {\r\n // content: '';\r\n // position: absolute;\r\n // left: 0;\r\n // top: 50%;\r\n // transform: translateY(-50%);\r\n // width: 3px;\r\n // height: 20px;\r\n // background: var(--el-color-primary);\r\n // border-radius: 0 2px 2px 0;\r\n //}\r\n }\r\n\r\n .tab-icon {\r\n font-size: 18px;\r\n margin-right: 12px;\r\n }\r\n\r\n .tab-label {\r\n font-size: 14px;\r\n }\r\n}\r\n\r\n.tabs-content {\r\n flex: 1;\r\n padding: 24px;\r\n overflow-y: auto;\r\n}\r\n</style>\r\n","import request from '../request';\n\nexport function getUser(userId?: string | number) {\n return request<any>({\n url: '/system/user/' + (userId ?? ''),\n method: 'get'\n });\n}\n","// AUTO-GENERATED from plus-ui/src/utils/contact.ts · 执行 pnpm sync:host 重新生成\n\nconst UNBOUND_CONTACT_VALUES = new Set(['', '-1', 'null', 'undefined']);\r\n\r\nfunction normalizeContactValue(value?: string | null) {\r\n return `${value ?? ''}`.trim();\r\n}\r\n\r\nexport function isContactBound(value?: string | null) {\r\n return !UNBOUND_CONTACT_VALUES.has(normalizeContactValue(value).toLowerCase());\r\n}\r\n\r\nexport function sanitizeContactValue(value?: string | null) {\r\n return isContactBound(value) ? normalizeContactValue(value) : '';\r\n}\r\n\r\nexport function formatContactDisplay(value?: string | null, fallback = '未绑定') {\r\n return sanitizeContactValue(value) || fallback;\r\n}\r\n\r\nexport function maskPhone(value?: string | null, fallback = '未绑定') {\r\n const phone = sanitizeContactValue(value);\r\n if (!phone) {\r\n return fallback;\r\n }\r\n if (phone.length < 11) {\r\n return phone;\r\n }\r\n return phone.replace(/(\\d{3})\\d{4}(\\d{4})/, '$1****$2');\r\n}\r\n\r\nexport function maskEmail(value?: string | null, fallback = '未绑定') {\r\n const email = sanitizeContactValue(value);\r\n if (!email) {\r\n return fallback;\r\n }\r\n const [username, domain] = email.split('@');\r\n if (!username || !domain) {\r\n return email;\r\n }\r\n if (username.length <= 2) {\r\n return `${username[0]}***@${domain}`;\r\n }\r\n return `${username.slice(0, 2)}***@${domain}`;\r\n}\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/media/UserDetail/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <el-dialog v-model=\"visible\" title=\"用户详情\" width=\"600px\" @close=\"handleClose\">\r\n <div v-loading=\"loading\" class=\"user-detail-container\">\r\n <el-empty v-if=\"!userData\" description=\"用户不存在\" />\r\n <div v-else class=\"detail-content\">\r\n <!-- 用户头像 -->\r\n <div class=\"user-avatar\">\r\n <el-avatar :size=\"80\" :src=\"userData.avatar\">\r\n <el-icon :size=\"40\">\r\n <User />\r\n </el-icon>\r\n </el-avatar>\r\n </div>\r\n\r\n <!-- 用户信息 -->\r\n <div class=\"user-info\">\r\n <el-descriptions :column=\"1\" border>\r\n <el-descriptions-item label=\"用户ID\">\r\n {{ userData.userId }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"用户名\">\r\n {{ userData.userName || '-' }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"昵称\">\r\n {{ userData.nickName || '-' }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"邮箱\">\r\n {{ formatContactDisplay(userData.email) }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"手机号\">\r\n {{ formatContactDisplay(userData.phonenumber) }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"性别\">\r\n <el-tag v-if=\"userData.sex === '0'\" size=\"small\" type=\"info\">男</el-tag>\r\n <el-tag v-else-if=\"userData.sex === '1'\" size=\"small\" type=\"warning\">女</el-tag>\r\n <span v-else>-</span>\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"部门\">\r\n {{ userData.dept?.deptName || '-' }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"角色\">\r\n <div v-if=\"userData.roles && userData.roles.length > 0\" class=\"roles-container\">\r\n <el-tag v-for=\"role in userData.roles\" :key=\"role.roleId\" class=\"mr-1\" size=\"small\" type=\"success\">\r\n {{ role.roleName }}\r\n </el-tag>\r\n </div>\r\n <span v-else>-</span>\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"状态\">\r\n <el-tag :type=\"userData.status === '0' ? 'success' : 'danger'\" size=\"small\">\r\n {{ userData.status === '0' ? '正常' : '停用' }}\r\n </el-tag>\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"创建时间\">\r\n {{ userData.createTime || '-' }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"最后登录时间\">\r\n {{ userData.loginDate || '-' }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"最后登录IP\">\r\n {{ userData.loginIp || '-' }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"登录地点\">\r\n {{ userData.loginLocation || '-' }}\r\n </el-descriptions-item>\r\n </el-descriptions>\r\n </div>\r\n </div>\r\n </div>\r\n </el-dialog>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { ref, watch } from 'vue';\r\nimport { User } from '@element-plus/icons-vue';\r\nimport { getUser } from '../api/user';\r\nimport { formatContactDisplay } from '../contact';\r\n\r\ninterface Props {\r\n modelValue: boolean;\r\n userId?: number | string;\r\n}\r\n\r\nconst props = defineProps<Props>();\r\nconst emit = defineEmits(['update:modelValue']);\r\n\r\nconst visible = ref(false);\r\nconst loading = ref(false);\r\nconst userData = ref<any>(null);\r\n\r\n// 监听 modelValue 变化\r\nwatch(\r\n () => props.modelValue,\r\n (val) => {\r\n visible.value = val;\r\n if (val && props.userId) {\r\n loadUserDetail();\r\n }\r\n }\r\n);\r\n\r\n// 监听 visible 变化\r\nwatch(visible, (val) => {\r\n emit('update:modelValue', val);\r\n});\r\n\r\n// 加载用户详情\r\nconst loadUserDetail = async () => {\r\n if (!props.userId) return;\r\n\r\n loading.value = true;\r\n try {\r\n const res = await getUser(props.userId);\r\n if (res.code === 200) {\r\n userData.value = res.data.user;\r\n }\r\n } catch (error) {\r\n console.error('加载用户详情失败:', error);\r\n } finally {\r\n loading.value = false;\r\n }\r\n};\r\n\r\n// 关闭对话框\r\nconst handleClose = () => {\r\n userData.value = null;\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.user-detail-container {\r\n min-height: 200px;\r\n\r\n .detail-content {\r\n .user-avatar {\r\n display: flex;\r\n justify-content: center;\r\n margin-bottom: 20px;\r\n padding: 20px;\r\n background: #f5f7fa;\r\n border-radius: 4px;\r\n }\r\n\r\n .user-info {\r\n .roles-container {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 4px;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n"],"names":["string","hostGlobalHeaders","this","t","e","c","g","p","n","r","o","i","a","u","h","d","w","m","y","b","require$$0","number","compressAccurately","_useModel","resolveComponent","dt","sn","un","kt","U","qe","ln","cn","Et","fn","dn","hn","pn","listByIds"],"mappings":"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","x_google_ignoreList":[0,1,6,7,12]}
1
+ {"version":3,"file":"index.js","sources":["../../../../node_modules/.pnpm/vue-types@6.0.0_vue@3.5.13_typescript@5.8.3_/node_modules/vue-types/dist/shared/vue-types.8139b772.mjs","../../../../node_modules/.pnpm/vue-types@6.0.0_vue@3.5.13_typescript@5.8.3_/node_modules/vue-types/dist/index.mjs","../src/host/propTypes.ts","../src/host/components/ImagePreview.vue","../src/host/components/KCustomTabs.vue","../src/host/components/KDictTag.vue","../src/host/components/KIpSegmentInput.vue","../src/host/components/KSearchBar.vue","../src/host/components/KSegmented.vue","../src/host/components/KSpin.vue","../src/host/components/KTable.vue","../../../../node_modules/.pnpm/vue-draggable-plus@0.6.1_@types+sortablejs@1.15.9/node_modules/vue-draggable-plus/dist/vue-draggable-plus.js","../src/host/components/KTableHeader.vue","../src/host/components/SettingForm.vue","../src/host/components/SettingTabs.vue"],"sourcesContent":["const config = {\n silent: false,\n logLevel: \"warn\"\n};\n\nfunction isPlainObject(value) {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n\nconst typeDefaults = () => ({\n func: () => void 0,\n bool: true,\n string: \"\",\n number: 0,\n array: () => [],\n object: () => ({}),\n integer: 0\n});\n\nexport { config as c, isPlainObject as i, typeDefaults as t };\n//# sourceMappingURL=vue-types.8139b772.mjs.map\n","import { i as isPlainObject, c as config, t as typeDefaults } from './shared/vue-types.8139b772.mjs';\n\nconst ObjProto = Object.prototype;\nconst toString = ObjProto.toString;\nconst hasOwn = ObjProto.hasOwnProperty;\nconst FN_MATCH_REGEXP = /^\\s*function (\\w+)/;\nfunction getType(fn) {\n const type = fn?.type ?? fn;\n if (type) {\n const match = type.toString().match(FN_MATCH_REGEXP);\n return match ? match[1] : \"\";\n }\n return \"\";\n}\nfunction getNativeType(value) {\n if (value === null || value === void 0)\n return \"\";\n const match = value.constructor.toString().match(FN_MATCH_REGEXP);\n return match ? match[1].replace(/^Async/, \"\") : \"\";\n}\nfunction deepClone(input) {\n if (\"structuredClone\" in globalThis) {\n return structuredClone(input);\n }\n if (Array.isArray(input)) {\n return [...input];\n }\n if (isPlainObject(input)) {\n return Object.assign({}, input);\n }\n return input;\n}\nfunction noop() {\n}\nlet warn = noop;\nif (process.env.NODE_ENV !== \"production\") {\n const hasConsole = typeof console !== \"undefined\";\n warn = hasConsole ? function warn2(msg, level = config.logLevel) {\n if (config.silent === false) {\n console[level](`[VueTypes warn]: ${msg}`);\n }\n } : noop;\n}\nconst has = (obj, prop) => hasOwn.call(obj, prop);\nconst isInteger = Number.isInteger || function isInteger2(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\nconst isArray = Array.isArray || function isArray2(value) {\n return toString.call(value) === \"[object Array]\";\n};\nconst isFunction = (value) => toString.call(value) === \"[object Function]\";\nconst isVueTypeDef = (value, name) => isPlainObject(value) && has(value, \"_vueTypes_name\") && (!name || value._vueTypes_name === name);\nconst isComplexType = (value) => isPlainObject(value) && (has(value, \"type\") || [\"_vueTypes_name\", \"validator\", \"default\", \"required\"].some(\n (k) => has(value, k)\n));\nfunction bindTo(fn, ctx) {\n return Object.defineProperty(fn.bind(ctx), \"__original\", {\n value: fn\n });\n}\nfunction unwrap(fn) {\n return fn.__original ?? fn;\n}\nfunction validateType(type, value, silent = false) {\n let typeToCheck;\n let valid = true;\n let expectedType = \"\";\n if (!isPlainObject(type)) {\n typeToCheck = { type };\n } else {\n typeToCheck = type;\n }\n const namePrefix = isVueTypeDef(typeToCheck) ? typeToCheck._vueTypes_name + \" - \" : \"\";\n if (isComplexType(typeToCheck) && typeToCheck.type !== null) {\n if (typeToCheck.type === void 0 || typeToCheck.type === true) {\n return valid;\n }\n if (!typeToCheck.required && value == null) {\n return valid;\n }\n if (isArray(typeToCheck.type)) {\n valid = typeToCheck.type.some(\n (type2) => validateType(type2, value, true) === true\n );\n expectedType = typeToCheck.type.map((type2) => getType(type2)).join(\" or \");\n } else {\n expectedType = getType(typeToCheck);\n if (expectedType === \"Array\") {\n valid = isArray(value);\n } else if (expectedType === \"Object\") {\n valid = isPlainObject(value);\n } else if (expectedType === \"String\" || expectedType === \"Number\" || expectedType === \"Boolean\" || expectedType === \"Function\") {\n valid = getNativeType(value) === expectedType;\n } else {\n valid = value instanceof typeToCheck.type;\n }\n }\n }\n if (!valid) {\n const msg = `${namePrefix}value \"${value}\" should be of type \"${expectedType}\"`;\n if (silent === false) {\n warn(msg);\n return false;\n }\n return msg;\n }\n if (has(typeToCheck, \"validator\") && isFunction(typeToCheck.validator)) {\n const oldWarn = warn;\n const warnLog = [];\n warn = (msg) => {\n warnLog.push(msg);\n };\n valid = typeToCheck.validator(value);\n warn = oldWarn;\n if (!valid) {\n const msg = (warnLog.length > 1 ? \"* \" : \"\") + warnLog.join(\"\\n* \");\n warnLog.length = 0;\n if (silent === false) {\n warn(msg);\n return valid;\n }\n return msg;\n }\n }\n return valid;\n}\nfunction toType(name, obj) {\n const type = Object.defineProperties(obj, {\n _vueTypes_name: {\n value: name,\n writable: true\n },\n isRequired: {\n get() {\n this.required = true;\n return this;\n }\n },\n def: {\n value(def) {\n if (def === void 0) {\n if (this.type === Boolean || Array.isArray(this.type) && this.type.includes(Boolean)) {\n this.default = void 0;\n return;\n }\n if (has(this, \"default\")) {\n delete this.default;\n }\n return this;\n }\n if (!isFunction(def) && validateType(this, def, true) !== true) {\n warn(`${this._vueTypes_name} - invalid default value: \"${def}\"`);\n return this;\n }\n if (isArray(def)) {\n this.default = () => deepClone(def);\n } else if (isPlainObject(def)) {\n this.default = () => deepClone(def);\n } else {\n this.default = def;\n }\n return this;\n }\n }\n });\n const { validator } = type;\n if (isFunction(validator)) {\n type.validator = bindTo(validator, type);\n }\n return type;\n}\nfunction toValidableType(name, obj) {\n const type = toType(name, obj);\n return Object.defineProperty(type, \"validate\", {\n value(fn) {\n if (isFunction(this.validator)) {\n warn(\n `${this._vueTypes_name} - calling .validate() will overwrite the current custom validator function. Validator info:\n${JSON.stringify(\n this\n )}`\n );\n }\n this.validator = bindTo(fn, this);\n return this;\n }\n });\n}\nfunction clone(obj) {\n const descriptors = {};\n Object.getOwnPropertyNames(obj).forEach((key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(obj, key);\n });\n return Object.defineProperties({}, descriptors);\n}\nfunction fromType(name, source, props) {\n const copy = clone(source);\n copy._vueTypes_name = name;\n if (!isPlainObject(props)) {\n return copy;\n }\n const { validator, ...rest } = props;\n if (isFunction(validator)) {\n let { validator: prevValidator } = copy;\n if (prevValidator) {\n prevValidator = unwrap(prevValidator);\n }\n copy.validator = bindTo(\n prevValidator ? function(value, props2) {\n return (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n prevValidator.call(this, value, props2) && validator.call(this, value, props2)\n );\n } : validator,\n copy\n );\n }\n return Object.assign(copy, rest);\n}\nfunction indent(string) {\n return string.replace(/^(?!\\s*$)/gm, \" \");\n}\n\nconst any = () => toValidableType(\"any\", {});\nconst func = () => toValidableType(\"function\", {\n type: Function\n});\nconst bool = () => toValidableType(\"boolean\", {\n type: Boolean\n});\nconst string = () => toValidableType(\"string\", {\n type: String\n});\nconst number = () => toValidableType(\"number\", {\n type: Number\n});\nconst array = () => toValidableType(\"array\", {\n type: Array\n});\nconst object = () => toValidableType(\"object\", {\n type: Object\n});\nconst integer = () => toType(\"integer\", {\n type: Number,\n validator(value) {\n const res = isInteger(value);\n if (res === false) {\n warn(`integer - \"${value}\" is not an integer`);\n }\n return res;\n }\n});\nconst symbol = () => toType(\"symbol\", {\n validator(value) {\n const res = typeof value === \"symbol\";\n if (res === false) {\n warn(`symbol - invalid value \"${value}\"`);\n }\n return res;\n }\n});\nconst nullable = () => Object.defineProperty(\n {\n type: null,\n validator(value) {\n const res = value === null;\n if (res === false) {\n warn(`nullable - value should be null`);\n }\n return res;\n }\n },\n \"_vueTypes_name\",\n { value: \"nullable\" }\n);\n\nfunction custom(validatorFn, warnMsg = \"custom validation failed\") {\n if (typeof validatorFn !== \"function\") {\n throw new TypeError(\n \"[VueTypes error]: You must provide a function as argument\"\n );\n }\n return toType(validatorFn.name || \"<<anonymous function>>\", {\n type: null,\n validator(value) {\n const valid = validatorFn(value);\n if (!valid)\n warn(`${this._vueTypes_name} - ${warnMsg}`);\n return valid;\n }\n });\n}\n\nfunction oneOf(arr) {\n if (!isArray(arr)) {\n throw new TypeError(\n \"[VueTypes error]: You must provide an array as argument.\"\n );\n }\n const msg = `oneOf - value should be one of \"${arr.map((v) => typeof v === \"symbol\" ? v.toString() : v).join('\", \"')}\".`;\n const base = {\n validator(value) {\n const valid = arr.indexOf(value) !== -1;\n if (!valid)\n warn(msg);\n return valid;\n }\n };\n if (arr.indexOf(null) === -1) {\n const type = arr.reduce(\n (ret, v) => {\n if (v !== null && v !== void 0) {\n const constr = v.constructor;\n ret.indexOf(constr) === -1 && ret.push(constr);\n }\n return ret;\n },\n []\n );\n if (type.length > 0) {\n base.type = type;\n }\n }\n return toType(\"oneOf\", base);\n}\n\nfunction oneOfType(arr) {\n if (!isArray(arr)) {\n throw new TypeError(\n \"[VueTypes error]: You must provide an array as argument\"\n );\n }\n let hasCustomValidators = false;\n let hasNullable = false;\n let nativeChecks = [];\n for (let i = 0; i < arr.length; i += 1) {\n const type = arr[i];\n if (isComplexType(type)) {\n if (isFunction(type.validator)) {\n hasCustomValidators = true;\n }\n if (isVueTypeDef(type, \"oneOf\") && type.type) {\n nativeChecks = nativeChecks.concat(type.type);\n continue;\n }\n if (isVueTypeDef(type, \"nullable\")) {\n hasNullable = true;\n continue;\n }\n if (type.type === true || !type.type) {\n warn('oneOfType - invalid usage of \"true\" and \"null\" as types.');\n continue;\n }\n nativeChecks = nativeChecks.concat(type.type);\n } else {\n nativeChecks.push(type);\n }\n }\n nativeChecks = nativeChecks.filter((t, i) => nativeChecks.indexOf(t) === i);\n const typeProp = hasNullable === false && nativeChecks.length > 0 ? nativeChecks : null;\n if (!hasCustomValidators) {\n return toType(\"oneOfType\", {\n type: typeProp\n });\n }\n return toType(\"oneOfType\", {\n type: typeProp,\n validator(value) {\n const err = [];\n const valid = arr.some((type) => {\n const res = validateType(type, value, true);\n if (typeof res === \"string\") {\n err.push(res);\n }\n return res === true;\n });\n if (!valid) {\n warn(\n `oneOfType - provided value does not match any of the ${err.length} passed-in validators:\n${indent(err.join(\"\\n\"))}`\n );\n }\n return valid;\n }\n });\n}\n\nfunction arrayOf(type) {\n return toType(\"arrayOf\", {\n type: Array,\n validator(values) {\n let vResult = \"\";\n const valid = values.every((value) => {\n vResult = validateType(type, value, true);\n return vResult === true;\n });\n if (!valid) {\n warn(`arrayOf - value validation error:\n${indent(vResult)}`);\n }\n return valid;\n }\n });\n}\n\nfunction instanceOf(instanceConstructor) {\n return toType(\"instanceOf\", {\n type: instanceConstructor\n });\n}\n\nfunction objectOf(type) {\n return toType(\"objectOf\", {\n type: Object,\n validator(obj) {\n let vResult = \"\";\n if (!isPlainObject(obj)) {\n return false;\n }\n const valid = Object.keys(obj).every((key) => {\n vResult = validateType(type, obj[key], true);\n return vResult === true;\n });\n if (!valid) {\n warn(`objectOf - value validation error:\n${indent(vResult)}`);\n }\n return valid;\n }\n });\n}\n\nfunction shape(obj) {\n const keys = Object.keys(obj);\n const requiredKeys = keys.filter((key) => !!obj[key]?.required);\n const type = toType(\"shape\", {\n type: Object,\n validator(value) {\n if (!isPlainObject(value)) {\n return false;\n }\n const valueKeys = Object.keys(value);\n if (requiredKeys.length > 0 && requiredKeys.some((req) => valueKeys.indexOf(req) === -1)) {\n const missing = requiredKeys.filter(\n (req) => valueKeys.indexOf(req) === -1\n );\n if (missing.length === 1) {\n warn(`shape - required property \"${missing[0]}\" is not defined.`);\n } else {\n warn(\n `shape - required properties \"${missing.join(\n '\", \"'\n )}\" are not defined.`\n );\n }\n return false;\n }\n return valueKeys.every((key) => {\n if (keys.indexOf(key) === -1) {\n if (this._vueTypes_isLoose === true)\n return true;\n warn(\n `shape - shape definition does not include a \"${key}\" property. Allowed keys: \"${keys.join(\n '\", \"'\n )}\".`\n );\n return false;\n }\n const type2 = obj[key];\n const valid = validateType(type2, value[key], true);\n if (typeof valid === \"string\") {\n warn(`shape - \"${key}\" property validation error:\n ${indent(valid)}`);\n }\n return valid === true;\n });\n }\n });\n Object.defineProperty(type, \"_vueTypes_isLoose\", {\n writable: true,\n value: false\n });\n Object.defineProperty(type, \"loose\", {\n get() {\n this._vueTypes_isLoose = true;\n return this;\n }\n });\n return type;\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nconst BaseVueTypes = /* @__PURE__ */ (() => {\n var _a;\n return (\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n _a = class {\n static get any() {\n return any();\n }\n static get func() {\n return func().def(this.defaults.func);\n }\n static get bool() {\n if (this.defaults.bool === void 0) {\n return bool();\n }\n return bool().def(this.defaults.bool);\n }\n static get string() {\n return string().def(this.defaults.string);\n }\n static get number() {\n return number().def(this.defaults.number);\n }\n static get array() {\n return array().def(this.defaults.array);\n }\n static get object() {\n return object().def(this.defaults.object);\n }\n static get integer() {\n return integer().def(this.defaults.integer);\n }\n static get symbol() {\n return symbol();\n }\n static get nullable() {\n return nullable();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n static extend(...args) {\n warn(\n `VueTypes.extend has been removed. Use the ES6+ method instead. See https://dwightjack.github.io/vue-types/advanced/extending-vue-types.html#extending-namespaced-validators-in-es6 for details.`\n );\n }\n }, __publicField(_a, \"defaults\", {}), __publicField(_a, \"sensibleDefaults\"), __publicField(_a, \"config\", config), __publicField(_a, \"custom\", custom), __publicField(_a, \"oneOf\", oneOf), __publicField(_a, \"instanceOf\", instanceOf), __publicField(_a, \"oneOfType\", oneOfType), __publicField(_a, \"arrayOf\", arrayOf), __publicField(_a, \"objectOf\", objectOf), __publicField(_a, \"shape\", shape), __publicField(_a, \"utils\", {\n validate(value, type) {\n return validateType(type, value, true) === true;\n },\n toType(name, obj, validable = false) {\n return validable ? toValidableType(name, obj) : toType(name, obj);\n }\n }), _a\n );\n})();\nfunction createTypes(defs = typeDefaults()) {\n var _a;\n return _a = class extends BaseVueTypes {\n static get sensibleDefaults() {\n return { ...this.defaults };\n }\n static set sensibleDefaults(v) {\n if (v === false) {\n this.defaults = {};\n return;\n }\n if (v === true) {\n this.defaults = { ...defs };\n return;\n }\n this.defaults = { ...v };\n }\n }, __publicField(_a, \"defaults\", { ...defs }), _a;\n}\nclass VueTypes extends createTypes() {\n}\n\nexport { any, array, arrayOf, bool, config, createTypes, custom, VueTypes as default, fromType, func, instanceOf, integer, nullable, number, object, objectOf, oneOf, oneOfType, shape, string, symbol, toType, toValidableType, validateType };\n//# sourceMappingURL=index.mjs.map\n","// AUTO-GENERATED by sync:host —— 不要手改\nimport VueTypes from 'vue-types';\n\ntype PropDef<T, C> = { type: C; default: T };\n\ninterface SimplePropTypes {\n string: { def: (value?: string) => PropDef<string, StringConstructor> };\n number: { def: (value?: number) => PropDef<number, NumberConstructor> };\n integer: { def: (value?: number) => PropDef<number, NumberConstructor> };\n bool: { def: (value?: boolean) => PropDef<boolean, BooleanConstructor> };\n array: { def: <T>(value?: T[]) => PropDef<T[], ArrayConstructor> };\n object: { def: <T>(value?: T) => PropDef<T, ObjectConstructor> };\n func: { def: (value?: (...args: any[]) => any) => PropDef<(...args: any[]) => any, FunctionConstructor> };\n}\n\nconst propTypes = VueTypes as unknown as SimplePropTypes;\n\nexport { propTypes };\n","<!-- AUTO-GENERATED from plus-ui/src/components/media/ImagePreview/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <el-image\r\n ref=\"imageRef\"\r\n :initial-index=\"computedInitialIndex\"\r\n :preview-src-list=\"realSrcList\"\r\n :src=\"`${realSrc}`\"\r\n :style=\"`width:${realWidth};height:${realHeight};`\"\r\n fit=\"cover\"\r\n preview-teleported\r\n >\r\n <template #toolbar=\"{ actions, prev, next, reset, activeIndex, setActiveItem }\">\r\n <el-icon @click=\"prev\">\r\n <Back />\r\n </el-icon>\r\n <el-icon @click=\"next\">\r\n <Right />\r\n </el-icon>\r\n <el-icon @click=\"setActiveItem(realSrcList.length - 1)\">\r\n <DArrowRight />\r\n </el-icon>\r\n <el-icon @click=\"actions('zoomOut')\">\r\n <ZoomOut />\r\n </el-icon>\r\n <el-icon @click=\"actions('zoomIn', { enableTransition: false, zoomRate: 2 })\">\r\n <ZoomIn />\r\n </el-icon>\r\n <el-icon @click=\"actions('clockwise', { rotateDeg: 180, enableTransition: false })\">\r\n <RefreshRight />\r\n </el-icon>\r\n <el-icon @click=\"actions('anticlockwise')\">\r\n <RefreshLeft />\r\n </el-icon>\r\n <el-icon @click=\"reset\">\r\n <Refresh />\r\n </el-icon>\r\n <el-icon @click=\"download(activeIndex)\">\r\n <Download />\r\n </el-icon>\r\n </template>\r\n <template #error>\r\n <div class=\"image-slot\">\r\n <el-icon>\r\n <picture-filled />\r\n </el-icon>\r\n </div>\r\n </template>\r\n </el-image>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { type PropType, ref } from 'vue';\r\nimport { propTypes } from '../propTypes';\r\nimport type { ImageInstance } from 'element-plus';\r\n\r\nconst props = defineProps({\r\n src: propTypes.string.def(''),\r\n width: {\r\n type: [Number, String],\r\n default: ''\r\n },\r\n height: {\r\n type: [Number, String],\r\n default: ''\r\n },\r\n // 预览图片列表(优先使用这个)\r\n previewSrcList: {\r\n type: Array as PropType<string[]>,\r\n default: () => []\r\n },\r\n // 初始显示的图片索引\r\n initialIndex: {\r\n type: Number,\r\n default: 0\r\n }\r\n});\r\n\r\n// 获取 el-image 的 ref\r\nconst imageRef = ref<ImageInstance>();\r\n\r\n// 直接暴露 imageRef,父组件可以访问所有 el-image 的方法\r\ndefineExpose({\r\n imageRef\r\n});\r\n\r\nconst realSrc = computed(() => {\r\n if (!props.src) {\r\n return;\r\n }\r\n const real_src = props.src.split(',')[0];\r\n return real_src;\r\n});\r\n\r\n// 计算初始索引:如果传入了 previewSrcList,则查找当前 src 在列表中的位置\r\nconst computedInitialIndex = computed(() => {\r\n if (props.previewSrcList && props.previewSrcList.length > 0) {\r\n const index = props.previewSrcList.findIndex((url) => url === realSrc.value);\r\n return index >= 0 ? index : props.initialIndex;\r\n }\r\n return props.initialIndex;\r\n});\r\n\r\nconst realSrcList = computed(() => {\r\n // 优先使用传入的 previewSrcList\r\n if (props.previewSrcList && props.previewSrcList.length > 0) {\r\n return props.previewSrcList;\r\n }\r\n\r\n // 否则从 src 解析(逗号分隔)\r\n if (!props.src) {\r\n return [];\r\n }\r\n const real_src_list = props.src.split(',');\r\n const srcList: string[] = [];\r\n real_src_list.forEach((item: string) => {\r\n if (item.trim() === '') {\r\n return;\r\n }\r\n return srcList.push(item);\r\n });\r\n return srcList;\r\n});\r\n\r\nconst realWidth = computed(() => (typeof props.width == 'string' ? props.width : `${props.width}px`));\r\n\r\nconst realHeight = computed(() => (typeof props.height == 'string' ? props.height : `${props.height}px`));\r\n\r\nconst download = (index: number) => {\r\n const url = realSrcList[index];\r\n const suffix = url.slice(url.lastIndexOf('.'));\r\n const filename = Date.now() + suffix;\r\n\r\n fetch(url)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n const blobUrl = URL.createObjectURL(new Blob([blob]));\r\n const link = document.createElement('a');\r\n link.href = blobUrl;\r\n link.download = filename;\r\n document.body.appendChild(link);\r\n link.click();\r\n URL.revokeObjectURL(blobUrl);\r\n link.remove();\r\n });\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.el-image {\r\n border-radius: 5px;\r\n background-color: #ebeef5;\r\n box-shadow: 0 0 5px 1px #ccc;\r\n\r\n :deep(.el-image__inner) {\r\n transition: all 0.3s;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n transform: scale(1.2);\r\n }\r\n }\r\n\r\n :deep(.image-slot) {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n height: 100%;\r\n color: #909399;\r\n font-size: 30px;\r\n }\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KCustomTabs/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"custom-tabs-wrapper\">\r\n <el-tabs v-model=\"activeTab\" class=\"custom-tabs\" tab-position=\"left\" @tab-click=\"handleTabClick\">\r\n <el-tab-pane v-for=\"tab in tabs\" :key=\"tab.name\" :label=\"tab.label\" :name=\"tab.name\">\r\n <template #label>\r\n <div class=\"custom-tab-label\">\r\n <el-icon class=\"tab-icon\">\r\n <component :is=\"tab.icon\" />\r\n </el-icon>\r\n <span class=\"tab-text\">{{ tab.label }}</span>\r\n </div>\r\n </template>\r\n </el-tab-pane>\r\n </el-tabs>\r\n <div class=\"custom-tabs-content\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport type { TabsPaneContext } from 'element-plus';\r\n\r\ninterface Tab {\r\n name: string;\r\n label: string;\r\n icon: any;\r\n}\r\n\r\ninterface Props {\r\n modelValue: string;\r\n tabs: Tab[];\r\n}\r\n\r\nconst props = defineProps<Props>();\r\nconst emit = defineEmits(['update:modelValue', 'tab-click']);\r\n\r\nconst activeTab = computed({\r\n get: () => props.modelValue,\r\n set: (val) => emit('update:modelValue', val)\r\n});\r\n\r\nconst handleTabClick = (pane: TabsPaneContext) => {\r\n emit('tab-click', pane);\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.custom-tabs-wrapper {\r\n display: flex;\r\n min-height: 600px;\r\n background: var(--el-bg-color);\r\n border-radius: 8px;\r\n overflow: hidden;\r\n}\r\n\r\n.custom-tabs {\r\n width: 230px;\r\n flex-shrink: 0;\r\n background: var(--el-fill-color-blank);\r\n border-right: 1px solid var(--el-border-color-light);\r\n\r\n // 隐藏默认的tabs内容区域\r\n :deep(.is-left) {\r\n width: 100%;\r\n margin-right: 0;\r\n padding: var(--spacing-sm);\r\n }\r\n\r\n // 隐藏默认的tabs内容区域\r\n :deep(.el-tabs__content) {\r\n display: none;\r\n }\r\n\r\n // 左侧导航样式\r\n :deep(.el-tabs__nav-wrap) {\r\n width: 100%;\r\n\r\n &::after {\r\n display: none; // 隐藏底部边框\r\n }\r\n\r\n :deep(.el-tabs__nav-scroll) {\r\n width: 100%;\r\n }\r\n }\r\n\r\n :deep(.el-tabs__active-bar) {\r\n background: transparent;\r\n width: 0;\r\n //width: 3px;\r\n //background: var(--el-color-primary);\r\n //border-radius: 0 2px 2px 0;\r\n }\r\n\r\n :deep(.el-tabs__nav) {\r\n background: transparent;\r\n }\r\n\r\n :deep(.el-tabs__item) {\r\n padding: 12px 20px;\r\n height: auto;\r\n line-height: normal;\r\n color: var(--el-text-color-regular);\r\n transition: all 0.3s;\r\n border: none;\r\n background: transparent;\r\n margin: var(--spacing-xs) 0;\r\n\r\n &:hover {\r\n background: var(--el-fill-color-light);\r\n color: var(--el-color-primary);\r\n }\r\n\r\n &.is-active {\r\n background: var(--el-color-primary-light-9);\r\n color: var(--el-color-primary);\r\n font-weight: 500;\r\n }\r\n\r\n .custom-tab-label {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n\r\n .tab-icon {\r\n font-size: 18px;\r\n }\r\n\r\n .tab-text {\r\n font-size: 14px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.custom-tabs-content {\r\n flex: 1;\r\n padding: 24px;\r\n overflow-y: auto;\r\n background: var(--el-bg-color);\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KDictTag/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <span class=\"dict-tag\" :class=\"{ 'dict-tag--wrap': wrap }\" :style=\"wrapperStyle\">\r\n <template v-for=\"item in matchedOptions\" :key=\"`${item.value}-${item.label}`\">\r\n <span v-if=\"displayMode === 'text'\" :class=\"['dict-tag__text', item.elTagClass || item.cssClass]\">\r\n {{ item.label }}\r\n </span>\r\n <el-tag\r\n v-else\r\n :class=\"['dict-tag__item', `dict-tag__item--${theme}`, item.elTagClass || item.cssClass]\"\r\n :disable-transitions=\"true\"\r\n :effect=\"resolvedEffect\"\r\n :round=\"round\"\r\n :size=\"size\"\r\n :type=\"resolveTagType(item)\"\r\n >\r\n {{ item.label }}\r\n </el-tag>\r\n </template>\r\n <template v-if=\"unmatchedValues.length && showValue\">\r\n <span v-if=\"displayMode === 'text'\" class=\"dict-tag__text\">{{ unmatchedText }}</span>\r\n <el-tag\r\n v-else\r\n class=\"dict-tag__item dict-tag__item--fallback\"\r\n :disable-transitions=\"true\"\r\n :effect=\"resolvedEffect\"\r\n :round=\"round\"\r\n :size=\"size\"\r\n :type=\"fallbackType\"\r\n >\r\n {{ unmatchedText }}\r\n </el-tag>\r\n </template>\r\n </span>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue';\r\n\r\ntype DictTagTheme = 'light' | 'dark' | 'plain' | 'text';\r\n\r\ninterface Props {\r\n options: Array<DictDataOption>;\r\n value: number | string | Array<number | string>;\r\n showValue?: boolean;\r\n separator?: string;\r\n round?: boolean;\r\n wrap?: boolean;\r\n gap?: number | string;\r\n size?: '' | 'large' | 'default' | 'small';\r\n theme?: DictTagTheme;\r\n fallbackType?: ElTagType;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n showValue: true,\r\n separator: ',',\r\n round: true,\r\n wrap: true,\r\n gap: 8,\r\n size: 'small',\r\n theme: 'light',\r\n fallbackType: 'info'\r\n});\r\n\r\nconst normalizedValues = computed(() => {\r\n if (props.value === '' || props.value === null || typeof props.value === 'undefined') {\r\n return [];\r\n }\r\n if (Array.isArray(props.value)) {\r\n return props.value.map((item) => String(item)).filter(Boolean);\r\n }\r\n return String(props.value)\r\n .split(props.separator)\r\n .map((item) => item.trim())\r\n .filter(Boolean);\r\n});\r\n\r\nconst matchedOptions = computed(() =>\r\n normalizedValues.value\r\n .map((value) => props.options?.find((item) => String(item.value) === value))\r\n .filter((item): item is DictDataOption => !!item)\r\n);\r\n\r\nconst unmatchedValues = computed(() => normalizedValues.value.filter((value) => !props.options?.some((item) => String(item.value) === value)));\r\n\r\nconst unmatchedText = computed(() => unmatchedValues.value.join('、'));\r\n\r\nconst wrapperStyle = computed(() => ({\r\n gap: typeof props.gap === 'number' ? `${props.gap}px` : props.gap\r\n}));\r\n\r\nconst displayMode = computed(() => props.theme);\r\n\r\nconst resolvedEffect = computed(() => {\r\n if (props.theme === 'dark') {\r\n return 'dark';\r\n }\r\n if (props.theme === 'plain') {\r\n return 'plain';\r\n }\r\n return 'light';\r\n});\r\n\r\nconst resolveTagType = (item: DictDataOption): ElTagType => {\r\n const tagType = item.elTagType;\r\n if (tagType === 'primary' || tagType === 'success' || tagType === 'info' || tagType === 'warning' || tagType === 'danger') {\r\n return tagType;\r\n }\r\n return 'info';\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.dict-tag {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 8px;\r\n}\r\n\r\n.dict-tag--wrap {\r\n flex-wrap: wrap;\r\n}\r\n\r\n.dict-tag__text {\r\n color: #475569;\r\n font-size: 13px;\r\n line-height: 1.4;\r\n}\r\n\r\n.dict-tag__item {\r\n margin: 0;\r\n font-weight: 500;\r\n border-radius: 999px;\r\n border-width: 1px;\r\n}\r\n\r\n.dict-tag__item--light {\r\n box-shadow: none;\r\n}\r\n\r\n.dict-tag__item :deep(.el-tag__content) {\r\n line-height: 1;\r\n}\r\n\r\n.dict-tag__item.el-tag--primary {\r\n color: #2563eb;\r\n border-color: #bfdbfe;\r\n background: #eff6ff;\r\n}\r\n\r\n.dict-tag__item.el-tag--success {\r\n color: #15803d;\r\n border-color: #bbf7d0;\r\n background: #f0fdf4;\r\n}\r\n\r\n.dict-tag__item.el-tag--info {\r\n color: #475569;\r\n border-color: #cbd5e1;\r\n background: #f8fafc;\r\n}\r\n\r\n.dict-tag__item.el-tag--warning {\r\n color: #b45309;\r\n border-color: #fde68a;\r\n background: #fffbeb;\r\n}\r\n\r\n.dict-tag__item.el-tag--danger {\r\n color: #dc2626;\r\n border-color: #fecaca;\r\n background: #fef2f2;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--primary {\r\n background: #2563eb;\r\n border-color: #2563eb;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--success {\r\n background: #16a34a;\r\n border-color: #16a34a;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--info {\r\n background: #64748b;\r\n border-color: #64748b;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--warning {\r\n background: #d97706;\r\n border-color: #d97706;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--dark.el-tag--danger {\r\n background: #dc2626;\r\n border-color: #dc2626;\r\n color: #fff;\r\n}\r\n\r\n.dict-tag__item--plain.el-tag--primary,\r\n.dict-tag__item--plain.el-tag--success,\r\n.dict-tag__item--plain.el-tag--info,\r\n.dict-tag__item--plain.el-tag--warning,\r\n.dict-tag__item--plain.el-tag--danger {\r\n background: #fff;\r\n}\r\n\r\n.dict-tag__item--fallback {\r\n background: #f8fafc;\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KIpSegmentInput/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"ip-segment-input\">\r\n <div v-if=\"prefix\" class=\"ip-prefix\">{{ prefix }}</div>\r\n <div class=\"ip-inputs\">\r\n <template v-for=\"(segment, index) in segments\" :key=\"index\">\r\n <input\r\n :ref=\"(el) => setInputRef(el, index)\"\r\n v-model=\"segment.value\"\r\n :maxlength=\"3\"\r\n class=\"ip-input\"\r\n type=\"text\"\r\n @input=\"handleInput(index, $event)\"\r\n @keydown=\"handleKeydown(index, $event)\"\r\n @paste=\"handlePaste($event)\"\r\n />\r\n <span v-if=\"index < segments.length - 1\" class=\"ip-dot\">.</span>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { reactive, ref, watch } from 'vue';\r\n\r\ninterface Props {\r\n modelValue: string;\r\n prefix?: string; // IP前缀,如 \"192.168.1.\"\r\n segmentCount?: number; // 需要输入的段数,如 1 表示只输入最后一段\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n prefix: '',\r\n segmentCount: 1\r\n});\r\n\r\nconst emit = defineEmits(['update:modelValue']);\r\n\r\n// 输入框引用\r\nconst inputRefs = ref<(HTMLInputElement | null)[]>([]);\r\n\r\n// 设置输入框引用\r\nconst setInputRef = (el: any, index: number) => {\r\n if (el) {\r\n inputRefs.value[index] = el as HTMLInputElement;\r\n }\r\n};\r\n\r\n// IP段数据\r\nconst segments = reactive<{ value: string }[]>(Array.from({ length: props.segmentCount }, () => ({ value: '' })));\r\n\r\n// 初始化值\r\nwatch(\r\n () => props.modelValue,\r\n (newVal) => {\r\n if (newVal) {\r\n const parts = newVal.split('.');\r\n parts.forEach((part, index) => {\r\n if (index < segments.length) {\r\n segments[index].value = part;\r\n }\r\n });\r\n } else {\r\n segments.forEach((seg) => (seg.value = ''));\r\n }\r\n },\r\n { immediate: true }\r\n);\r\n\r\n// 更新值\r\nconst updateValue = () => {\r\n const value = segments.map((seg) => seg.value).join('.');\r\n emit('update:modelValue', value);\r\n};\r\n\r\n// 处理输入\r\nconst handleInput = (index: number, event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n let value = input.value;\r\n\r\n // 只允许数字\r\n value = value.replace(/[^\\d]/g, '');\r\n\r\n // 限制范围 0-255\r\n if (value) {\r\n const num = parseInt(value, 10);\r\n if (num > 255) {\r\n value = '255';\r\n }\r\n }\r\n\r\n segments[index].value = value;\r\n\r\n // 自动跳转到下一个输入框\r\n if (value.length === 3 && index < segments.length - 1) {\r\n inputRefs.value[index + 1]?.focus();\r\n }\r\n\r\n updateValue();\r\n};\r\n\r\n// 处理键盘事件\r\nconst handleKeydown = (index: number, event: KeyboardEvent) => {\r\n const input = event.target as HTMLInputElement;\r\n const value = input.value;\r\n\r\n // 按下 . 或右箭头键,跳转到下一个输入框\r\n if ((event.key === '.' || event.key === 'ArrowRight') && index < segments.length - 1) {\r\n event.preventDefault();\r\n inputRefs.value[index + 1].focus();\r\n }\r\n\r\n // 按下左箭头键,跳转到上一个输入框\r\n if (event.key === 'ArrowLeft' && index > 0 && input.selectionStart === 0) {\r\n event.preventDefault();\r\n inputRefs.value[index - 1]?.focus();\r\n }\r\n\r\n // 按下退格键,如果当前输入框为空,跳转到上一个输入框\r\n if (event.key === 'Backspace' && !value && index > 0) {\r\n event.preventDefault();\r\n inputRefs.value[index - 1]?.focus();\r\n }\r\n};\r\n\r\n// 处理粘贴\r\nconst handlePaste = (event: ClipboardEvent) => {\r\n event.preventDefault();\r\n const pasteData = event.clipboardData?.getData('text') || '';\r\n const parts = pasteData.split('.').filter((p) => /^\\d+$/.test(p));\r\n\r\n parts.forEach((part, index) => {\r\n if (index < segments.length) {\r\n const num = parseInt(part, 10);\r\n segments[index].value = num > 255 ? '255' : part;\r\n }\r\n });\r\n\r\n updateValue();\r\n};\r\n\r\n// 聚焦第一个输入框\r\nconst focus = () => {\r\n inputRefs.value[0]?.focus();\r\n};\r\n\r\n// 暴露方法\r\ndefineExpose({\r\n focus\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.ip-segment-input {\r\n display: inline-flex;\r\n align-items: center;\r\n border: 1px solid #dcdfe6;\r\n border-radius: 4px;\r\n padding: 0 8px;\r\n background: #fff;\r\n transition: border-color 0.2s;\r\n\r\n &:hover {\r\n border-color: #c0c4cc;\r\n }\r\n\r\n &:focus-within {\r\n border-color: #409eff;\r\n }\r\n\r\n .ip-prefix {\r\n color: #606266;\r\n font-size: 14px;\r\n padding-right: 2px;\r\n user-select: none;\r\n }\r\n\r\n .ip-inputs {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .ip-input {\r\n width: 40px;\r\n height: 30px;\r\n border: none;\r\n outline: none;\r\n text-align: center;\r\n font-size: 14px;\r\n color: #606266;\r\n padding: 0;\r\n\r\n &::-webkit-inner-spin-button,\r\n &::-webkit-outer-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n }\r\n\r\n .ip-dot {\r\n color: #606266;\r\n font-size: 14px;\r\n user-select: none;\r\n padding: 0 2px;\r\n }\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KSearchBar/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <section class=\"k-search-bar\" v-bind=\"$attrs\">\r\n <el-collapse v-model=\"activeNames\" class=\"k-search-bar__collapse\">\r\n <el-collapse-item name=\"search\">\r\n <template #title>\r\n <div class=\"k-search-bar__title\">\r\n <span>{{ title }}</span>\r\n </div>\r\n </template>\r\n\r\n <el-form ref=\"formRef\" :label-position=\"labelPosition\" :model=\"modelValue\">\r\n <el-row :gutter=\"gutter\">\r\n <el-col\r\n v-for=\"item in visibleItems\"\r\n :key=\"String(item.key)\"\r\n :lg=\"item.lg ?? item.span ?? span\"\r\n :md=\"item.md ?? item.span ?? span\"\r\n :sm=\"item.sm ?? Math.min((item.span ?? span) * 2, 24)\"\r\n :xl=\"item.xl ?? item.span ?? span\"\r\n :xs=\"24\"\r\n >\r\n <el-form-item :prop=\"String(item.key)\">\r\n <template v-if=\"item.label\" #label>\r\n <component :is=\"item.label\" v-if=\"typeof item.label !== 'string'\" />\r\n <span v-else>{{ item.label }}</span>\r\n </template>\r\n\r\n <slot :item=\"item\" :model-value=\"modelValue\" :name=\"String(item.key)\">\r\n <component\r\n :is=\"resolveComponent(item)\"\r\n :model-value=\"getFieldValue(item.key)\"\r\n v-bind=\"resolveProps(item)\"\r\n @update:model-value=\"setFieldValue(item.key, $event)\"\r\n >\r\n <template v-if=\"item.type === 'select' && resolveOptions(item).length\">\r\n <el-option\r\n v-for=\"option in resolveOptions(item)\"\r\n :key=\"String(option.value)\"\r\n :disabled=\"option.disabled\"\r\n :label=\"option.label\"\r\n :value=\"option.value\"\r\n />\r\n </template>\r\n <template v-else-if=\"item.type === 'checkboxgroup' && resolveOptions(item).length\">\r\n <el-checkbox\r\n v-for=\"option in resolveOptions(item)\"\r\n :key=\"String(option.value)\"\r\n :disabled=\"option.disabled\"\r\n :label=\"option.value\"\r\n >\r\n {{ option.label }}\r\n </el-checkbox>\r\n </template>\r\n <template v-else-if=\"item.type === 'radiogroup' && resolveOptions(item).length\">\r\n <el-radio v-for=\"option in resolveOptions(item)\" :key=\"String(option.value)\" :disabled=\"option.disabled\" :label=\"option.value\">\r\n {{ option.label }}\r\n </el-radio>\r\n </template>\r\n </component>\r\n </slot>\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :lg=\"24\" :md=\"24\" :sm=\"24\" :xl=\"24\" :xs=\"24\" class=\"k-search-bar__actions-col\">\r\n <div class=\"k-search-bar__actions\">\r\n <slot :model-value=\"modelValue\" name=\"actions-before\" />\r\n <el-button v-if=\"showReset\" :icon=\"Refresh\" @click=\"handleReset\">\r\n {{ resetText }}\r\n </el-button>\r\n <el-button v-if=\"showSearch\" :icon=\"Search\" type=\"primary\" @click=\"handleSearch\">\r\n {{ searchText }}\r\n </el-button>\r\n <slot :model-value=\"modelValue\" name=\"actions-after\" />\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </el-collapse-item>\r\n </el-collapse>\r\n </section>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { Refresh, Search } from '@element-plus/icons-vue';\r\nimport type { Component, VNode } from 'vue';\r\nimport {\r\n ElCascader,\r\n ElCheckbox,\r\n ElCheckboxGroup,\r\n ElDatePicker,\r\n ElForm,\r\n ElInput,\r\n ElInputNumber,\r\n ElOption,\r\n ElRadio,\r\n ElRadioGroup,\r\n ElSelect,\r\n ElSwitch,\r\n ElTimePicker,\r\n ElTimeSelect,\r\n ElTreeSelect\r\n} from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'KSearchBar',\r\n inheritAttrs: false\r\n});\r\n\r\ninterface SearchOption {\r\n label: string;\r\n value: string | number | boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nexport interface KSearchBarItem {\r\n key: string;\r\n label?: string | (() => VNode) | Component;\r\n type?: string;\r\n hidden?: boolean;\r\n span?: number;\r\n sm?: number;\r\n md?: number;\r\n lg?: number;\r\n xl?: number;\r\n placeholder?: string;\r\n options?: SearchOption[];\r\n props?: Record<string, any>;\r\n render?: (() => VNode) | Component;\r\n}\r\n\r\ninterface SanitizeOutputOptions {\r\n removeEmptyString: boolean;\r\n removeEmptyArray: boolean;\r\n removeEmptyObject: boolean;\r\n keepZero: boolean;\r\n keepFalse: boolean;\r\n}\r\n\r\nconst componentMap = {\r\n input: ElInput,\r\n number: ElInputNumber,\r\n select: ElSelect,\r\n switch: ElSwitch,\r\n checkbox: ElCheckbox,\r\n checkboxgroup: ElCheckboxGroup,\r\n radiogroup: ElRadioGroup,\r\n date: ElDatePicker,\r\n daterange: ElDatePicker,\r\n datetime: ElDatePicker,\r\n datetimerange: ElDatePicker,\r\n cascader: ElCascader,\r\n timepicker: ElTimePicker,\r\n timeselect: ElTimeSelect,\r\n treeselect: ElTreeSelect\r\n} as const;\r\n\r\nconst defaultPlaceholders: Record<string, string> = {\r\n input: '请输入',\r\n number: '请输入',\r\n select: '请选择',\r\n cascader: '请选择',\r\n treeselect: '请选择',\r\n date: '请选择日期',\r\n daterange: '请选择日期范围',\r\n datetime: '请选择日期时间',\r\n datetimerange: '请选择日期时间范围',\r\n timepicker: '请选择时间',\r\n timeselect: '请选择时间'\r\n};\r\n\r\nconst rangeTypeMap: Record<string, Record<string, any>> = {\r\n daterange: {\r\n type: 'daterange',\r\n startPlaceholder: '开始日期',\r\n endPlaceholder: '结束日期',\r\n rangeSeparator: '-'\r\n },\r\n datetimerange: {\r\n type: 'datetimerange',\r\n startPlaceholder: '开始时间',\r\n endPlaceholder: '结束时间',\r\n rangeSeparator: '-'\r\n }\r\n};\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n items: KSearchBarItem[];\r\n span?: number;\r\n actionSpan?: number;\r\n gutter?: number;\r\n labelPosition?: 'left' | 'right' | 'top';\r\n showReset?: boolean;\r\n showSearch?: boolean;\r\n title?: string;\r\n searchText?: string;\r\n resetText?: string;\r\n sanitizeOutput?: Partial<SanitizeOutputOptions>;\r\n }>(),\r\n {\r\n items: () => [],\r\n span: 6,\r\n actionSpan: 6,\r\n gutter: 16,\r\n labelPosition: 'right',\r\n showReset: true,\r\n showSearch: true,\r\n title: '搜索条件',\r\n searchText: '搜索',\r\n resetText: '重置',\r\n sanitizeOutput: () => ({})\r\n }\r\n);\r\n\r\nconst emit = defineEmits<{\r\n reset: [];\r\n search: [Record<string, any>];\r\n}>();\r\n\r\nconst modelValue = defineModel<Record<string, any>>({ default: {} });\r\nconst formRef = useTemplateRef<InstanceType<typeof ElForm>>('formRef');\r\nconst activeNames = ref<string[]>([]);\r\nconst initialModelValue = ref<Record<string, any>>(cloneValue(modelValue.value));\r\n\r\nconst visibleItems = computed(() => props.items.filter((item) => !item.hidden));\r\n\r\nfunction cloneValue<T>(value: T): T {\r\n if (Array.isArray(value)) {\r\n return value.map((item) => cloneValue(item)) as T;\r\n }\r\n if (value && typeof value === 'object') {\r\n return Object.entries(value as Record<string, any>).reduce(\r\n (acc, [key, item]) => {\r\n acc[key] = cloneValue(item);\r\n return acc;\r\n },\r\n {} as Record<string, any>\r\n ) as T;\r\n }\r\n return value;\r\n}\r\n\r\nfunction resolveComponent(item: KSearchBarItem) {\r\n if (item.render) return item.render;\r\n return componentMap[item.type as keyof typeof componentMap] || ElInput;\r\n}\r\n\r\nfunction resolveOptions(item: KSearchBarItem) {\r\n return item.options || item.props?.options || [];\r\n}\r\n\r\nfunction resolveProps(item: KSearchBarItem) {\r\n const type = item.type || 'input';\r\n const nextProps = Object.entries(item.props || {}).reduce(\r\n (acc, [key, value]) => {\r\n acc[key] = unref(value);\r\n return acc;\r\n },\r\n {} as Record<string, any>\r\n );\r\n delete nextProps.options;\r\n\r\n if (rangeTypeMap[type]) {\r\n Object.assign(nextProps, rangeTypeMap[type]);\r\n }\r\n if (type === 'treeselect') {\r\n if (nextProps.data === undefined) {\r\n nextProps.data = resolveOptions(item);\r\n }\r\n if (!Array.isArray(nextProps.data)) {\r\n nextProps.data = [];\r\n }\r\n }\r\n if (!nextProps.placeholder && item.placeholder) {\r\n nextProps.placeholder = item.placeholder;\r\n }\r\n if (!nextProps.placeholder && defaultPlaceholders[type]) {\r\n nextProps.placeholder = defaultPlaceholders[type];\r\n }\r\n if (type === 'select' && nextProps.filterable === undefined) {\r\n nextProps.filterable = true;\r\n }\r\n if (nextProps.clearable === undefined && !['switch', 'checkbox'].includes(type)) {\r\n nextProps.clearable = true;\r\n }\r\n return nextProps;\r\n}\r\n\r\nfunction getFieldValue(key: string) {\r\n return modelValue.value[key];\r\n}\r\n\r\nfunction setFieldValue(key: string, value: unknown) {\r\n if (value === '') {\r\n delete modelValue.value[key];\r\n return;\r\n }\r\n modelValue.value[key] = value;\r\n}\r\n\r\nfunction sanitizeOutputValue(value: unknown): unknown {\r\n const options: SanitizeOutputOptions = {\r\n removeEmptyString: true,\r\n removeEmptyArray: true,\r\n removeEmptyObject: true,\r\n keepZero: true,\r\n keepFalse: true,\r\n ...props.sanitizeOutput\r\n };\r\n\r\n if (Array.isArray(value)) {\r\n const sanitized = value.map((item) => sanitizeOutputValue(item)).filter((item) => item !== undefined);\r\n return sanitized.length === 0 && options.removeEmptyArray ? undefined : sanitized;\r\n }\r\n\r\n if (value && typeof value === 'object') {\r\n const sanitized = Object.entries(value as Record<string, unknown>).reduce(\r\n (acc, [key, item]) => {\r\n const nextValue = sanitizeOutputValue(item);\r\n if (nextValue !== undefined) {\r\n acc[key] = nextValue;\r\n }\r\n return acc;\r\n },\r\n {} as Record<string, unknown>\r\n );\r\n return Object.keys(sanitized).length === 0 && options.removeEmptyObject ? undefined : sanitized;\r\n }\r\n\r\n if (typeof value === 'string') {\r\n return options.removeEmptyString && value.trim() === '' ? undefined : value;\r\n }\r\n\r\n if (value === 0) {\r\n return options.keepZero ? value : undefined;\r\n }\r\n\r\n if (value === false) {\r\n return options.keepFalse ? value : undefined;\r\n }\r\n\r\n return value;\r\n}\r\n\r\nfunction getOutput() {\r\n return (sanitizeOutputValue(cloneValue(modelValue.value)) || {}) as Record<string, any>;\r\n}\r\n\r\nfunction handleReset() {\r\n formRef.value?.resetFields();\r\n Object.keys(modelValue.value).forEach((key) => delete modelValue.value[key]);\r\n Object.assign(modelValue.value, cloneValue(initialModelValue.value));\r\n emit('reset');\r\n}\r\n\r\nfunction handleSearch() {\r\n emit('search', getOutput());\r\n}\r\n\r\ndefineExpose({\r\n reset: handleReset,\r\n validate: (...args: any[]) => formRef.value?.validate(...args),\r\n getOutput,\r\n formRef\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.k-search-bar {\r\n :deep(.el-collapse) {\r\n border-radius: 8px;\r\n overflow: hidden;\r\n border: 1px solid var(--el-collapse-border-color);\r\n }\r\n\r\n :deep(.el-collapse-item__wrap) {\r\n border-bottom: none;\r\n }\r\n\r\n :deep(.el-collapse-item__header) {\r\n height: 48px;\r\n padding: 0 16px;\r\n border-bottom: none;\r\n font-weight: 600;\r\n }\r\n\r\n :deep(.el-collapse-item__content) {\r\n padding: 0 16px 16px;\r\n }\r\n\r\n :deep(.el-form-item) {\r\n margin-bottom: 16px;\r\n }\r\n}\r\n\r\n.k-search-bar__title {\r\n display: flex;\r\n align-items: center;\r\n color: var(--el-text-color-primary);\r\n}\r\n\r\n.k-search-bar__actions-col {\r\n margin-left: auto;\r\n}\r\n\r\n.k-search-bar__actions {\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n min-height: 100%;\r\n}\r\n\r\n@media (width <= 768px) {\r\n .k-search-bar__actions {\r\n justify-content: flex-start;\r\n }\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KSegmented/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <el-segmented\r\n :block=\"block\"\r\n :disabled=\"disabled\"\r\n :model-value=\"modelValue\"\r\n :options=\"options\"\r\n :size=\"size\"\r\n class=\"k-segmented\"\r\n v-bind=\"$attrs\"\r\n @update:model-value=\"handleUpdate\"\r\n />\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport type { PropType } from 'vue';\r\n\r\ndefineOptions({\r\n name: 'KSegmented',\r\n inheritAttrs: false\r\n});\r\n\r\ntype SegmentedValue = string | number | boolean;\r\n\r\ntype SegmentedOption =\r\n | SegmentedValue\r\n | {\r\n label: string;\r\n value: SegmentedValue;\r\n disabled?: boolean;\r\n };\r\n\r\ndefineProps({\r\n modelValue: {\r\n type: [String, Number, Boolean] as PropType<SegmentedValue>,\r\n required: true\r\n },\r\n options: {\r\n type: Array as PropType<SegmentedOption[]>,\r\n required: true\r\n },\r\n size: {\r\n type: String as PropType<'large' | 'default' | 'small'>,\r\n default: 'default'\r\n },\r\n block: {\r\n type: Boolean,\r\n default: false\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false\r\n }\r\n});\r\n\r\nconst emit = defineEmits<{\r\n (e: 'update:modelValue', value: SegmentedValue): void;\r\n (e: 'change', value: SegmentedValue): void;\r\n}>();\r\n\r\nconst handleUpdate = (value: SegmentedValue) => {\r\n emit('update:modelValue', value);\r\n emit('change', value);\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.k-segmented {\r\n --k-segmented-track-padding: 2px;\r\n --k-segmented-track-bg: #f5f5f5;\r\n --k-segmented-item-color: rgba(0, 0, 0, 0.65);\r\n --k-segmented-item-hover-color: rgba(0, 0, 0, 0.88);\r\n --k-segmented-item-hover-bg: rgba(0, 0, 0, 0.06);\r\n --k-segmented-item-selected-bg: #ffffff;\r\n --k-segmented-item-active-bg: rgba(0, 0, 0, 0.15);\r\n --k-segmented-item-selected-color: rgba(0, 0, 0, 0.88);\r\n --k-segmented-item-disabled-color: rgba(0, 0, 0, 0.25);\r\n --el-segmented-color: var(--k-segmented-item-color);\r\n --el-segmented-bg-color: var(--k-segmented-track-bg);\r\n --el-segmented-padding: var(--k-segmented-track-padding);\r\n --el-segmented-item-selected-color: var(--k-segmented-item-selected-color);\r\n --el-segmented-item-selected-bg-color: var(--k-segmented-item-selected-bg);\r\n --el-segmented-item-hover-color: var(--k-segmented-item-hover-color);\r\n --el-segmented-item-hover-bg-color: var(--k-segmented-item-hover-bg);\r\n --el-segmented-item-active-bg-color: var(--k-segmented-item-active-bg);\r\n --el-segmented-item-disabled-color: var(--k-segmented-item-disabled-color);\r\n min-height: 32px;\r\n padding: var(--k-segmented-track-padding) !important;\r\n border-radius: 6px !important;\r\n background: var(--k-segmented-track-bg) !important;\r\n font-size: 14px;\r\n line-height: 1.5715;\r\n\r\n &.is-block {\r\n width: 100%;\r\n }\r\n\r\n :deep(.el-segmented__item-selected) {\r\n border-radius: 4px !important;\r\n background: var(--k-segmented-item-selected-bg) !important;\r\n box-shadow: none !important;\r\n }\r\n\r\n :deep(.el-segmented__item) {\r\n padding: 0 11px !important;\r\n border-radius: 4px !important;\r\n color: var(--k-segmented-item-color);\r\n font-weight: 400;\r\n transition:\r\n color 0.2s,\r\n background-color 0.2s;\r\n\r\n &:not(.is-disabled):not(.is-selected):hover {\r\n color: var(--k-segmented-item-hover-color) !important;\r\n background: var(--k-segmented-item-hover-bg) !important;\r\n }\r\n\r\n &:not(.is-disabled):not(.is-selected):active {\r\n background: var(--k-segmented-item-active-bg) !important;\r\n }\r\n\r\n &.is-selected {\r\n color: var(--k-segmented-item-selected-color) !important;\r\n }\r\n\r\n &.is-disabled {\r\n color: var(--k-segmented-item-disabled-color) !important;\r\n }\r\n }\r\n\r\n :deep(.el-segmented__item-label) {\r\n line-height: 28px;\r\n }\r\n\r\n &.el-segmented--large {\r\n min-height: 40px;\r\n border-radius: 8px !important;\r\n\r\n :deep(.el-segmented__item),\r\n :deep(.el-segmented__item-selected) {\r\n border-radius: 6px !important;\r\n }\r\n\r\n :deep(.el-segmented__item-label) {\r\n line-height: 36px;\r\n }\r\n }\r\n\r\n &.el-segmented--small {\r\n min-height: 24px;\r\n\r\n :deep(.el-segmented__item-label) {\r\n line-height: 20px;\r\n }\r\n }\r\n}\r\n\r\nhtml.dark .k-segmented {\r\n --k-segmented-track-bg: rgba(255, 255, 255, 0.08);\r\n --k-segmented-item-color: rgba(255, 255, 255, 0.65);\r\n --k-segmented-item-hover-color: rgba(255, 255, 255, 0.88);\r\n --k-segmented-item-hover-bg: rgba(255, 255, 255, 0.12);\r\n --k-segmented-item-selected-bg: rgba(255, 255, 255, 0.16);\r\n --k-segmented-item-active-bg: rgba(255, 255, 255, 0.2);\r\n --k-segmented-item-selected-color: rgba(255, 255, 255, 0.95);\r\n --k-segmented-item-disabled-color: rgba(255, 255, 255, 0.3);\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KSpin/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"k-spin\" :class=\"{ 'is-active': show }\">\r\n <div class=\"k-spin__content\" :class=\"contentClass\">\r\n <slot />\r\n </div>\r\n\r\n <transition name=\"k-spin-fade\">\r\n <div v-if=\"show\" class=\"k-spin__mask\" :style=\"maskStyle\">\r\n <slot name=\"spin\">\r\n <div class=\"k-spin__indicator\">\r\n <el-icon class=\"k-spin__icon is-loading\" :size=\"size\">\r\n <Loading />\r\n </el-icon>\r\n <p v-if=\"description\" class=\"k-spin__description\">{{ description }}</p>\r\n </div>\r\n </slot>\r\n </div>\r\n </transition>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { Loading } from '@element-plus/icons-vue';\r\n\r\ndefineOptions({ name: 'KSpin' });\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n show?: boolean;\r\n size?: number;\r\n description?: string;\r\n background?: string;\r\n contentClass?: string;\r\n }>(),\r\n {\r\n show: false,\r\n size: 28,\r\n description: '',\r\n background: 'rgba(255, 255, 255, 0.72)',\r\n contentClass: ''\r\n }\r\n);\r\n\r\nconst maskStyle = computed(() => ({\r\n background: props.background\r\n}));\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.k-spin {\r\n position: relative;\r\n min-height: inherit;\r\n}\r\n\r\n.k-spin__content {\r\n height: 100%;\r\n}\r\n\r\n.k-spin__mask {\r\n position: absolute;\r\n inset: 0;\r\n z-index: 10;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n backdrop-filter: blur(2px);\r\n}\r\n\r\n.k-spin__indicator {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 10px;\r\n color: var(--el-color-primary);\r\n}\r\n\r\n.k-spin__description {\r\n margin: 0;\r\n font-size: 13px;\r\n color: var(--el-text-color-regular);\r\n}\r\n\r\n.k-spin-fade-enter-active,\r\n.k-spin-fade-leave-active {\r\n transition: opacity 0.2s ease;\r\n}\r\n\r\n.k-spin-fade-enter-from,\r\n.k-spin-fade-leave-to {\r\n opacity: 0;\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KTable/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div :class=\"{ 'is-empty': isEmpty }\" class=\"k-table\">\r\n <el-table ref=\"elTableRef\" v-loading=\"!!loading\" v-bind=\"mergedTableProps\" @selection-change=\"handleSelectionChange\">\r\n <template v-for=\"col in displayColumns\" :key=\"String(col.prop || col.type || col.label || col.key)\">\r\n <el-table-column v-if=\"col.type === 'globalIndex'\" v-bind=\"cleanColumnProps(col)\">\r\n <template #default=\"{ $index }\">\r\n <span>{{ getGlobalIndex($index) }}</span>\r\n </template>\r\n </el-table-column>\r\n\r\n <el-table-column v-else v-bind=\"cleanColumnProps(col)\">\r\n <template v-if=\"col.useHeaderSlot && col.prop\" #header=\"headerScope\">\r\n <slot\r\n :name=\"col.headerSlotName || `${col.prop}-header`\"\r\n v-bind=\"{ ...headerScope, prop: col.prop, label: col.label, column: col }\"\r\n >\r\n {{ col.label }}\r\n </slot>\r\n </template>\r\n <template v-if=\"col.useSlot && (col.slotName || col.prop)\" #default=\"slotScope\">\r\n <slot\r\n v-if=\"slotScope.$index === undefined || slotScope.$index >= 0\"\r\n :name=\"col.slotName || col.prop\"\r\n v-bind=\"{ ...slotScope, column: col, prop: col.prop, value: col.prop ? slotScope.row[col.prop] : undefined }\"\r\n />\r\n </template>\r\n </el-table-column>\r\n </template>\r\n\r\n <slot />\r\n\r\n <template #empty>\r\n <div v-if=\"loading\"></div>\r\n <el-empty v-else :description=\"emptyText\" :image-size=\"120\" />\r\n </template>\r\n </el-table>\r\n\r\n <div v-if=\"showPagination\" :class=\"paginationAlign\" class=\"k-table__pagination\">\r\n <el-pagination\r\n :current-page=\"paginationCurrent\"\r\n :disabled=\"loading\"\r\n :page-size=\"paginationSize\"\r\n :total=\"paginationTotal\"\r\n v-bind=\"paginationProps\"\r\n @current-change=\"handleCurrentChange\"\r\n @size-change=\"handleSizeChange\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { useAttrs } from 'vue';\r\n\r\ndefineOptions({ name: 'KTable', inheritAttrs: false });\r\n\r\nexport interface KTableColumn {\r\n type?: string;\r\n prop?: string;\r\n key?: string | number;\r\n label?: string;\r\n visible?: boolean;\r\n checked?: boolean;\r\n useSlot?: boolean;\r\n slotName?: string;\r\n useHeaderSlot?: boolean;\r\n headerSlotName?: string;\r\n [key: string]: any;\r\n}\r\n\r\ninterface KTableColumnState {\r\n key: string | number;\r\n visible?: boolean;\r\n checked?: boolean;\r\n fixed?: boolean | 'left' | 'right';\r\n sortOrder?: number;\r\n}\r\n\r\ninterface KPaginationConfig {\r\n pageNum?: number;\r\n pageSize?: number;\r\n total?: number;\r\n current?: number;\r\n size?: number;\r\n}\r\n\r\ninterface KPaginationOptions {\r\n pageSizes?: number[];\r\n layout?: string;\r\n background?: boolean;\r\n pagerCount?: number;\r\n align?: 'left' | 'center' | 'right';\r\n [key: string]: any;\r\n}\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n loading?: boolean;\r\n columns?: KTableColumn[];\r\n columnState?: KTableColumnState[];\r\n data?: Record<string, any>[];\r\n pagination?: KPaginationConfig;\r\n paginationOptions?: KPaginationOptions;\r\n emptyText?: string;\r\n showPaginationWhenEmpty?: boolean;\r\n }>(),\r\n {\r\n loading: false,\r\n columns: () => [],\r\n columnState: () => [],\r\n data: () => [],\r\n emptyText: '暂无数据',\r\n paginationOptions: () => ({}),\r\n showPaginationWhenEmpty: false\r\n }\r\n);\r\n\r\nconst attrs = useAttrs();\r\nconst elTableRef = ref<ElTableInstance>();\r\n\r\nconst emit = defineEmits<{\r\n 'pagination:current-change': [number];\r\n 'pagination:size-change': [number];\r\n 'selection-change': [any[]];\r\n 'update:pagination': [KPaginationConfig];\r\n}>();\r\n\r\nconst displayColumns = computed(() => {\r\n const stateMap = new Map(props.columnState.map((item, index) => [item.key, { ...item, __index: index }]));\r\n\r\n return props.columns\r\n .map((column, index) => {\r\n const columnKey = column.key;\r\n const state = columnKey !== undefined ? stateMap.get(columnKey) : undefined;\r\n return {\r\n ...column,\r\n visible: state?.visible ?? column.visible,\r\n checked: state?.checked ?? column.checked,\r\n fixed: state?.fixed ?? column.fixed,\r\n __sortOrder: state?.sortOrder ?? state?.__index ?? index\r\n };\r\n })\r\n .filter((item) => item.visible !== false && item.checked !== false)\r\n .sort((a, b) => Number(a.__sortOrder ?? 0) - Number(b.__sortOrder ?? 0));\r\n});\r\nconst isEmpty = computed(() => !props.data?.length);\r\nconst paginationCurrent = computed(() => props.pagination?.pageNum ?? props.pagination?.current ?? 1);\r\nconst paginationSize = computed(() => props.pagination?.pageSize ?? props.pagination?.size ?? 10);\r\nconst paginationTotal = computed(() => props.pagination?.total ?? 0);\r\nconst showPagination = computed(() => !!props.pagination && (props.showPaginationWhenEmpty || !!paginationTotal.value));\r\nconst paginationAlign = computed(() => props.paginationOptions?.align || 'right');\r\n\r\nconst paginationProps = computed(() => ({\r\n background: true,\r\n layout: 'total, prev, pager, next, sizes, jumper',\r\n pageSizes: [10, 20, 50, 100],\r\n pagerCount: 7,\r\n ...props.paginationOptions\r\n}));\r\n\r\nconst mergedTableProps = computed(() => ({\r\n ...attrs,\r\n data: props.data\r\n}));\r\n\r\nfunction cleanColumnProps(col: KTableColumn) {\r\n const next = { ...col };\r\n delete next.visible;\r\n delete next.checked;\r\n delete next.useSlot;\r\n delete next.slotName;\r\n delete next.useHeaderSlot;\r\n delete next.headerSlotName;\r\n delete next.__sortOrder;\r\n return next;\r\n}\r\n\r\nfunction getGlobalIndex(index: number) {\r\n return (paginationCurrent.value - 1) * paginationSize.value + index + 1;\r\n}\r\n\r\nfunction emitPagination(partial: Partial<KPaginationConfig>) {\r\n if (!props.pagination) return;\r\n emit('update:pagination', {\r\n ...props.pagination,\r\n pageNum: partial.pageNum ?? partial.current ?? paginationCurrent.value,\r\n current: partial.current ?? partial.pageNum ?? paginationCurrent.value,\r\n pageSize: partial.pageSize ?? partial.size ?? paginationSize.value,\r\n size: partial.size ?? partial.pageSize ?? paginationSize.value,\r\n total: paginationTotal.value\r\n });\r\n}\r\n\r\nfunction handleCurrentChange(value: number) {\r\n emit('pagination:current-change', value);\r\n emitPagination({ pageNum: value, current: value });\r\n}\r\n\r\nfunction handleSizeChange(value: number) {\r\n emit('pagination:size-change', value);\r\n emitPagination({ pageNum: 1, current: 1, pageSize: value, size: value });\r\n}\r\n\r\nfunction handleSelectionChange(value: any[]) {\r\n emit('selection-change', value);\r\n}\r\n\r\ndefineExpose({ elTableRef });\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.k-table {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n}\r\n\r\n.k-table__pagination {\r\n display: flex;\r\n}\r\n\r\n.k-table__pagination.left {\r\n justify-content: flex-start;\r\n}\r\n\r\n.k-table__pagination.center {\r\n justify-content: center;\r\n}\r\n\r\n.k-table__pagination.right {\r\n justify-content: flex-end;\r\n}\r\n</style>\r\n","var an = Object.defineProperty;\nvar Pe = Object.getOwnPropertySymbols;\nvar yt = Object.prototype.hasOwnProperty, wt = Object.prototype.propertyIsEnumerable;\nvar bt = (t, e, n) => e in t ? an(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n, fe = (t, e) => {\n for (var n in e || (e = {}))\n yt.call(e, n) && bt(t, n, e[n]);\n if (Pe)\n for (var n of Pe(e))\n wt.call(e, n) && bt(t, n, e[n]);\n return t;\n};\nvar $e = (t, e) => {\n var n = {};\n for (var o in t)\n yt.call(t, o) && e.indexOf(o) < 0 && (n[o] = t[o]);\n if (t != null && Pe)\n for (var o of Pe(t))\n e.indexOf(o) < 0 && wt.call(t, o) && (n[o] = t[o]);\n return n;\n};\nimport { getCurrentInstance as dt, unref as U, watch as ln, onUnmounted as sn, onMounted as un, nextTick as kt, isRef as qe, defineComponent as cn, computed as Et, toRefs as fn, ref as dn, reactive as hn, h as pn, isProxy as gn } from \"vue\";\nconst Ht = \"[vue-draggable-plus]: \";\nfunction mn(t) {\n console.warn(Ht + t);\n}\nfunction vn(t) {\n console.error(Ht + t);\n}\nfunction St(t, e, n) {\n return n >= 0 && n < t.length && t.splice(n, 0, t.splice(e, 1)[0]), t;\n}\nfunction bn(t) {\n return t.replace(/-(\\w)/g, (e, n) => n ? n.toUpperCase() : \"\");\n}\nfunction yn(t) {\n return Object.keys(t).reduce((e, n) => (typeof t[n] != \"undefined\" && (e[bn(n)] = t[n]), e), {});\n}\nfunction Dt(t, e) {\n return Array.isArray(t) && t.splice(e, 1), t;\n}\nfunction _t(t, e, n) {\n return Array.isArray(t) && t.splice(e, 0, n), t;\n}\nfunction wn(t) {\n return typeof t == \"undefined\";\n}\nfunction En(t) {\n return typeof t == \"string\";\n}\nfunction Tt(t, e, n) {\n const o = t.children[n];\n t.insertBefore(e, o);\n}\nfunction Ke(t) {\n t.parentNode && t.parentNode.removeChild(t);\n}\nfunction Sn(t, e = document) {\n var o;\n let n = null;\n return typeof (e == null ? void 0 : e.querySelector) == \"function\" ? n = (o = e == null ? void 0 : e.querySelector) == null ? void 0 : o.call(e, t) : n = document.querySelector(t), n || mn(`Element not found: ${t}`), n;\n}\nfunction Dn(t, e, n = null) {\n return function(...o) {\n return t.apply(n, o), e.apply(n, o);\n };\n}\nfunction _n(t, e) {\n const n = fe({}, t);\n return Object.keys(e).forEach((o) => {\n n[o] ? n[o] = Dn(t[o], e[o]) : n[o] = e[o];\n }), n;\n}\nfunction Tn(t) {\n return t instanceof HTMLElement;\n}\nfunction Ct(t, e) {\n Object.keys(t).forEach((n) => {\n e(n, t[n]);\n });\n}\nfunction Cn(t) {\n return t.charCodeAt(0) === 111 && t.charCodeAt(1) === 110 && (t.charCodeAt(2) > 122 || t.charCodeAt(2) < 97);\n}\nconst On = Object.assign;\n/**!\n * Sortable 1.15.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n */\nfunction Ot(t, e) {\n var n = Object.keys(t);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(t);\n e && (o = o.filter(function(r) {\n return Object.getOwnPropertyDescriptor(t, r).enumerable;\n })), n.push.apply(n, o);\n }\n return n;\n}\nfunction ne(t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = arguments[e] != null ? arguments[e] : {};\n e % 2 ? Ot(Object(n), !0).forEach(function(o) {\n In(t, o, n[o]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : Ot(Object(n)).forEach(function(o) {\n Object.defineProperty(t, o, Object.getOwnPropertyDescriptor(n, o));\n });\n }\n return t;\n}\nfunction Ye(t) {\n \"@babel/helpers - typeof\";\n return typeof Symbol == \"function\" && typeof Symbol.iterator == \"symbol\" ? Ye = function(e) {\n return typeof e;\n } : Ye = function(e) {\n return e && typeof Symbol == \"function\" && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n }, Ye(t);\n}\nfunction In(t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n}\nfunction ie() {\n return ie = Object.assign || function(t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = arguments[e];\n for (var o in n)\n Object.prototype.hasOwnProperty.call(n, o) && (t[o] = n[o]);\n }\n return t;\n }, ie.apply(this, arguments);\n}\nfunction An(t, e) {\n if (t == null)\n return {};\n var n = {}, o = Object.keys(t), r, i;\n for (i = 0; i < o.length; i++)\n r = o[i], !(e.indexOf(r) >= 0) && (n[r] = t[r]);\n return n;\n}\nfunction xn(t, e) {\n if (t == null)\n return {};\n var n = An(t, e), o, r;\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(t);\n for (r = 0; r < i.length; r++)\n o = i[r], !(e.indexOf(o) >= 0) && Object.prototype.propertyIsEnumerable.call(t, o) && (n[o] = t[o]);\n }\n return n;\n}\nvar Nn = \"1.15.2\";\nfunction re(t) {\n if (typeof window != \"undefined\" && window.navigator)\n return !!/* @__PURE__ */ navigator.userAgent.match(t);\n}\nvar ae = re(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i), xe = re(/Edge/i), It = re(/firefox/i), Te = re(/safari/i) && !re(/chrome/i) && !re(/android/i), Lt = re(/iP(ad|od|hone)/i), Wt = re(/chrome/i) && re(/android/i), Gt = {\n capture: !1,\n passive: !1\n};\nfunction S(t, e, n) {\n t.addEventListener(e, n, !ae && Gt);\n}\nfunction E(t, e, n) {\n t.removeEventListener(e, n, !ae && Gt);\n}\nfunction We(t, e) {\n if (e) {\n if (e[0] === \">\" && (e = e.substring(1)), t)\n try {\n if (t.matches)\n return t.matches(e);\n if (t.msMatchesSelector)\n return t.msMatchesSelector(e);\n if (t.webkitMatchesSelector)\n return t.webkitMatchesSelector(e);\n } catch (n) {\n return !1;\n }\n return !1;\n }\n}\nfunction Pn(t) {\n return t.host && t !== document && t.host.nodeType ? t.host : t.parentNode;\n}\nfunction Q(t, e, n, o) {\n if (t) {\n n = n || document;\n do {\n if (e != null && (e[0] === \">\" ? t.parentNode === n && We(t, e) : We(t, e)) || o && t === n)\n return t;\n if (t === n)\n break;\n } while (t = Pn(t));\n }\n return null;\n}\nvar At = /\\s+/g;\nfunction V(t, e, n) {\n if (t && e)\n if (t.classList)\n t.classList[n ? \"add\" : \"remove\"](e);\n else {\n var o = (\" \" + t.className + \" \").replace(At, \" \").replace(\" \" + e + \" \", \" \");\n t.className = (o + (n ? \" \" + e : \"\")).replace(At, \" \");\n }\n}\nfunction h(t, e, n) {\n var o = t && t.style;\n if (o) {\n if (n === void 0)\n return document.defaultView && document.defaultView.getComputedStyle ? n = document.defaultView.getComputedStyle(t, \"\") : t.currentStyle && (n = t.currentStyle), e === void 0 ? n : n[e];\n !(e in o) && e.indexOf(\"webkit\") === -1 && (e = \"-webkit-\" + e), o[e] = n + (typeof n == \"string\" ? \"\" : \"px\");\n }\n}\nfunction ye(t, e) {\n var n = \"\";\n if (typeof t == \"string\")\n n = t;\n else\n do {\n var o = h(t, \"transform\");\n o && o !== \"none\" && (n = o + \" \" + n);\n } while (!e && (t = t.parentNode));\n var r = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n return r && new r(n);\n}\nfunction jt(t, e, n) {\n if (t) {\n var o = t.getElementsByTagName(e), r = 0, i = o.length;\n if (n)\n for (; r < i; r++)\n n(o[r], r);\n return o;\n }\n return [];\n}\nfunction te() {\n var t = document.scrollingElement;\n return t || document.documentElement;\n}\nfunction P(t, e, n, o, r) {\n if (!(!t.getBoundingClientRect && t !== window)) {\n var i, a, l, s, u, d, f;\n if (t !== window && t.parentNode && t !== te() ? (i = t.getBoundingClientRect(), a = i.top, l = i.left, s = i.bottom, u = i.right, d = i.height, f = i.width) : (a = 0, l = 0, s = window.innerHeight, u = window.innerWidth, d = window.innerHeight, f = window.innerWidth), (e || n) && t !== window && (r = r || t.parentNode, !ae))\n do\n if (r && r.getBoundingClientRect && (h(r, \"transform\") !== \"none\" || n && h(r, \"position\") !== \"static\")) {\n var m = r.getBoundingClientRect();\n a -= m.top + parseInt(h(r, \"border-top-width\")), l -= m.left + parseInt(h(r, \"border-left-width\")), s = a + i.height, u = l + i.width;\n break;\n }\n while (r = r.parentNode);\n if (o && t !== window) {\n var y = ye(r || t), b = y && y.a, w = y && y.d;\n y && (a /= w, l /= b, f /= b, d /= w, s = a + d, u = l + f);\n }\n return {\n top: a,\n left: l,\n bottom: s,\n right: u,\n width: f,\n height: d\n };\n }\n}\nfunction xt(t, e, n) {\n for (var o = ce(t, !0), r = P(t)[e]; o; ) {\n var i = P(o)[n], a = void 0;\n if (a = r >= i, !a)\n return o;\n if (o === te())\n break;\n o = ce(o, !1);\n }\n return !1;\n}\nfunction we(t, e, n, o) {\n for (var r = 0, i = 0, a = t.children; i < a.length; ) {\n if (a[i].style.display !== \"none\" && a[i] !== p.ghost && (o || a[i] !== p.dragged) && Q(a[i], n.draggable, t, !1)) {\n if (r === e)\n return a[i];\n r++;\n }\n i++;\n }\n return null;\n}\nfunction ht(t, e) {\n for (var n = t.lastElementChild; n && (n === p.ghost || h(n, \"display\") === \"none\" || e && !We(n, e)); )\n n = n.previousElementSibling;\n return n || null;\n}\nfunction J(t, e) {\n var n = 0;\n if (!t || !t.parentNode)\n return -1;\n for (; t = t.previousElementSibling; )\n t.nodeName.toUpperCase() !== \"TEMPLATE\" && t !== p.clone && (!e || We(t, e)) && n++;\n return n;\n}\nfunction Nt(t) {\n var e = 0, n = 0, o = te();\n if (t)\n do {\n var r = ye(t), i = r.a, a = r.d;\n e += t.scrollLeft * i, n += t.scrollTop * a;\n } while (t !== o && (t = t.parentNode));\n return [e, n];\n}\nfunction Mn(t, e) {\n for (var n in t)\n if (t.hasOwnProperty(n)) {\n for (var o in e)\n if (e.hasOwnProperty(o) && e[o] === t[n][o])\n return Number(n);\n }\n return -1;\n}\nfunction ce(t, e) {\n if (!t || !t.getBoundingClientRect)\n return te();\n var n = t, o = !1;\n do\n if (n.clientWidth < n.scrollWidth || n.clientHeight < n.scrollHeight) {\n var r = h(n);\n if (n.clientWidth < n.scrollWidth && (r.overflowX == \"auto\" || r.overflowX == \"scroll\") || n.clientHeight < n.scrollHeight && (r.overflowY == \"auto\" || r.overflowY == \"scroll\")) {\n if (!n.getBoundingClientRect || n === document.body)\n return te();\n if (o || e)\n return n;\n o = !0;\n }\n }\n while (n = n.parentNode);\n return te();\n}\nfunction Fn(t, e) {\n if (t && e)\n for (var n in e)\n e.hasOwnProperty(n) && (t[n] = e[n]);\n return t;\n}\nfunction Je(t, e) {\n return Math.round(t.top) === Math.round(e.top) && Math.round(t.left) === Math.round(e.left) && Math.round(t.height) === Math.round(e.height) && Math.round(t.width) === Math.round(e.width);\n}\nvar Ce;\nfunction zt(t, e) {\n return function() {\n if (!Ce) {\n var n = arguments, o = this;\n n.length === 1 ? t.call(o, n[0]) : t.apply(o, n), Ce = setTimeout(function() {\n Ce = void 0;\n }, e);\n }\n };\n}\nfunction Rn() {\n clearTimeout(Ce), Ce = void 0;\n}\nfunction Ut(t, e, n) {\n t.scrollLeft += e, t.scrollTop += n;\n}\nfunction Vt(t) {\n var e = window.Polymer, n = window.jQuery || window.Zepto;\n return e && e.dom ? e.dom(t).cloneNode(!0) : n ? n(t).clone(!0)[0] : t.cloneNode(!0);\n}\nfunction $t(t, e, n) {\n var o = {};\n return Array.from(t.children).forEach(function(r) {\n var i, a, l, s;\n if (!(!Q(r, e.draggable, t, !1) || r.animated || r === n)) {\n var u = P(r);\n o.left = Math.min((i = o.left) !== null && i !== void 0 ? i : 1 / 0, u.left), o.top = Math.min((a = o.top) !== null && a !== void 0 ? a : 1 / 0, u.top), o.right = Math.max((l = o.right) !== null && l !== void 0 ? l : -1 / 0, u.right), o.bottom = Math.max((s = o.bottom) !== null && s !== void 0 ? s : -1 / 0, u.bottom);\n }\n }), o.width = o.right - o.left, o.height = o.bottom - o.top, o.x = o.left, o.y = o.top, o;\n}\nvar q = \"Sortable\" + (/* @__PURE__ */ new Date()).getTime();\nfunction Xn() {\n var t = [], e;\n return {\n captureAnimationState: function() {\n if (t = [], !!this.options.animation) {\n var o = [].slice.call(this.el.children);\n o.forEach(function(r) {\n if (!(h(r, \"display\") === \"none\" || r === p.ghost)) {\n t.push({\n target: r,\n rect: P(r)\n });\n var i = ne({}, t[t.length - 1].rect);\n if (r.thisAnimationDuration) {\n var a = ye(r, !0);\n a && (i.top -= a.f, i.left -= a.e);\n }\n r.fromRect = i;\n }\n });\n }\n },\n addAnimationState: function(o) {\n t.push(o);\n },\n removeAnimationState: function(o) {\n t.splice(Mn(t, {\n target: o\n }), 1);\n },\n animateAll: function(o) {\n var r = this;\n if (!this.options.animation) {\n clearTimeout(e), typeof o == \"function\" && o();\n return;\n }\n var i = !1, a = 0;\n t.forEach(function(l) {\n var s = 0, u = l.target, d = u.fromRect, f = P(u), m = u.prevFromRect, y = u.prevToRect, b = l.rect, w = ye(u, !0);\n w && (f.top -= w.f, f.left -= w.e), u.toRect = f, u.thisAnimationDuration && Je(m, f) && !Je(d, f) && // Make sure animatingRect is on line between toRect & fromRect\n (b.top - f.top) / (b.left - f.left) === (d.top - f.top) / (d.left - f.left) && (s = Bn(b, m, y, r.options)), Je(f, d) || (u.prevFromRect = d, u.prevToRect = f, s || (s = r.options.animation), r.animate(u, b, f, s)), s && (i = !0, a = Math.max(a, s), clearTimeout(u.animationResetTimer), u.animationResetTimer = setTimeout(function() {\n u.animationTime = 0, u.prevFromRect = null, u.fromRect = null, u.prevToRect = null, u.thisAnimationDuration = null;\n }, s), u.thisAnimationDuration = s);\n }), clearTimeout(e), i ? e = setTimeout(function() {\n typeof o == \"function\" && o();\n }, a) : typeof o == \"function\" && o(), t = [];\n },\n animate: function(o, r, i, a) {\n if (a) {\n h(o, \"transition\", \"\"), h(o, \"transform\", \"\");\n var l = ye(this.el), s = l && l.a, u = l && l.d, d = (r.left - i.left) / (s || 1), f = (r.top - i.top) / (u || 1);\n o.animatingX = !!d, o.animatingY = !!f, h(o, \"transform\", \"translate3d(\" + d + \"px,\" + f + \"px,0)\"), this.forRepaintDummy = Yn(o), h(o, \"transition\", \"transform \" + a + \"ms\" + (this.options.easing ? \" \" + this.options.easing : \"\")), h(o, \"transform\", \"translate3d(0,0,0)\"), typeof o.animated == \"number\" && clearTimeout(o.animated), o.animated = setTimeout(function() {\n h(o, \"transition\", \"\"), h(o, \"transform\", \"\"), o.animated = !1, o.animatingX = !1, o.animatingY = !1;\n }, a);\n }\n }\n };\n}\nfunction Yn(t) {\n return t.offsetWidth;\n}\nfunction Bn(t, e, n, o) {\n return Math.sqrt(Math.pow(e.top - t.top, 2) + Math.pow(e.left - t.left, 2)) / Math.sqrt(Math.pow(e.top - n.top, 2) + Math.pow(e.left - n.left, 2)) * o.animation;\n}\nvar ge = [], Ze = {\n initializeByDefault: !0\n}, Ne = {\n mount: function(e) {\n for (var n in Ze)\n Ze.hasOwnProperty(n) && !(n in e) && (e[n] = Ze[n]);\n ge.forEach(function(o) {\n if (o.pluginName === e.pluginName)\n throw \"Sortable: Cannot mount plugin \".concat(e.pluginName, \" more than once\");\n }), ge.push(e);\n },\n pluginEvent: function(e, n, o) {\n var r = this;\n this.eventCanceled = !1, o.cancel = function() {\n r.eventCanceled = !0;\n };\n var i = e + \"Global\";\n ge.forEach(function(a) {\n n[a.pluginName] && (n[a.pluginName][i] && n[a.pluginName][i](ne({\n sortable: n\n }, o)), n.options[a.pluginName] && n[a.pluginName][e] && n[a.pluginName][e](ne({\n sortable: n\n }, o)));\n });\n },\n initializePlugins: function(e, n, o, r) {\n ge.forEach(function(l) {\n var s = l.pluginName;\n if (!(!e.options[s] && !l.initializeByDefault)) {\n var u = new l(e, n, e.options);\n u.sortable = e, u.options = e.options, e[s] = u, ie(o, u.defaults);\n }\n });\n for (var i in e.options)\n if (e.options.hasOwnProperty(i)) {\n var a = this.modifyOption(e, i, e.options[i]);\n typeof a != \"undefined\" && (e.options[i] = a);\n }\n },\n getEventProperties: function(e, n) {\n var o = {};\n return ge.forEach(function(r) {\n typeof r.eventProperties == \"function\" && ie(o, r.eventProperties.call(n[r.pluginName], e));\n }), o;\n },\n modifyOption: function(e, n, o) {\n var r;\n return ge.forEach(function(i) {\n e[i.pluginName] && i.optionListeners && typeof i.optionListeners[n] == \"function\" && (r = i.optionListeners[n].call(e[i.pluginName], o));\n }), r;\n }\n};\nfunction kn(t) {\n var e = t.sortable, n = t.rootEl, o = t.name, r = t.targetEl, i = t.cloneEl, a = t.toEl, l = t.fromEl, s = t.oldIndex, u = t.newIndex, d = t.oldDraggableIndex, f = t.newDraggableIndex, m = t.originalEvent, y = t.putSortable, b = t.extraEventProperties;\n if (e = e || n && n[q], !!e) {\n var w, L = e.options, G = \"on\" + o.charAt(0).toUpperCase() + o.substr(1);\n window.CustomEvent && !ae && !xe ? w = new CustomEvent(o, {\n bubbles: !0,\n cancelable: !0\n }) : (w = document.createEvent(\"Event\"), w.initEvent(o, !0, !0)), w.to = a || n, w.from = l || n, w.item = r || n, w.clone = i, w.oldIndex = s, w.newIndex = u, w.oldDraggableIndex = d, w.newDraggableIndex = f, w.originalEvent = m, w.pullMode = y ? y.lastPutMode : void 0;\n var R = ne(ne({}, b), Ne.getEventProperties(o, e));\n for (var j in R)\n w[j] = R[j];\n n && n.dispatchEvent(w), L[G] && L[G].call(e, w);\n }\n}\nvar Hn = [\"evt\"], z = function(e, n) {\n var o = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, r = o.evt, i = xn(o, Hn);\n Ne.pluginEvent.bind(p)(e, n, ne({\n dragEl: c,\n parentEl: O,\n ghostEl: g,\n rootEl: T,\n nextEl: pe,\n lastDownEl: Be,\n cloneEl: C,\n cloneHidden: ue,\n dragStarted: Se,\n putSortable: Y,\n activeSortable: p.active,\n originalEvent: r,\n oldIndex: be,\n oldDraggableIndex: Oe,\n newIndex: $,\n newDraggableIndex: se,\n hideGhostForTarget: Zt,\n unhideGhostForTarget: Qt,\n cloneNowHidden: function() {\n ue = !0;\n },\n cloneNowShown: function() {\n ue = !1;\n },\n dispatchSortableEvent: function(l) {\n W({\n sortable: n,\n name: l,\n originalEvent: r\n });\n }\n }, i));\n};\nfunction W(t) {\n kn(ne({\n putSortable: Y,\n cloneEl: C,\n targetEl: c,\n rootEl: T,\n oldIndex: be,\n oldDraggableIndex: Oe,\n newIndex: $,\n newDraggableIndex: se\n }, t));\n}\nvar c, O, g, T, pe, Be, C, ue, be, $, Oe, se, Me, Y, ve = !1, Ge = !1, je = [], de, Z, Qe, et, Pt, Mt, Se, me, Ie, Ae = !1, Fe = !1, ke, H, tt = [], lt = !1, ze = [], Ve = typeof document != \"undefined\", Re = Lt, Ft = xe || ae ? \"cssFloat\" : \"float\", Ln = Ve && !Wt && !Lt && \"draggable\" in document.createElement(\"div\"), qt = function() {\n if (Ve) {\n if (ae)\n return !1;\n var t = document.createElement(\"x\");\n return t.style.cssText = \"pointer-events:auto\", t.style.pointerEvents === \"auto\";\n }\n}(), Kt = function(e, n) {\n var o = h(e), r = parseInt(o.width) - parseInt(o.paddingLeft) - parseInt(o.paddingRight) - parseInt(o.borderLeftWidth) - parseInt(o.borderRightWidth), i = we(e, 0, n), a = we(e, 1, n), l = i && h(i), s = a && h(a), u = l && parseInt(l.marginLeft) + parseInt(l.marginRight) + P(i).width, d = s && parseInt(s.marginLeft) + parseInt(s.marginRight) + P(a).width;\n if (o.display === \"flex\")\n return o.flexDirection === \"column\" || o.flexDirection === \"column-reverse\" ? \"vertical\" : \"horizontal\";\n if (o.display === \"grid\")\n return o.gridTemplateColumns.split(\" \").length <= 1 ? \"vertical\" : \"horizontal\";\n if (i && l.float && l.float !== \"none\") {\n var f = l.float === \"left\" ? \"left\" : \"right\";\n return a && (s.clear === \"both\" || s.clear === f) ? \"vertical\" : \"horizontal\";\n }\n return i && (l.display === \"block\" || l.display === \"flex\" || l.display === \"table\" || l.display === \"grid\" || u >= r && o[Ft] === \"none\" || a && o[Ft] === \"none\" && u + d > r) ? \"vertical\" : \"horizontal\";\n}, Wn = function(e, n, o) {\n var r = o ? e.left : e.top, i = o ? e.right : e.bottom, a = o ? e.width : e.height, l = o ? n.left : n.top, s = o ? n.right : n.bottom, u = o ? n.width : n.height;\n return r === l || i === s || r + a / 2 === l + u / 2;\n}, Gn = function(e, n) {\n var o;\n return je.some(function(r) {\n var i = r[q].options.emptyInsertThreshold;\n if (!(!i || ht(r))) {\n var a = P(r), l = e >= a.left - i && e <= a.right + i, s = n >= a.top - i && n <= a.bottom + i;\n if (l && s)\n return o = r;\n }\n }), o;\n}, Jt = function(e) {\n function n(i, a) {\n return function(l, s, u, d) {\n var f = l.options.group.name && s.options.group.name && l.options.group.name === s.options.group.name;\n if (i == null && (a || f))\n return !0;\n if (i == null || i === !1)\n return !1;\n if (a && i === \"clone\")\n return i;\n if (typeof i == \"function\")\n return n(i(l, s, u, d), a)(l, s, u, d);\n var m = (a ? l : s).options.group.name;\n return i === !0 || typeof i == \"string\" && i === m || i.join && i.indexOf(m) > -1;\n };\n }\n var o = {}, r = e.group;\n (!r || Ye(r) != \"object\") && (r = {\n name: r\n }), o.name = r.name, o.checkPull = n(r.pull, !0), o.checkPut = n(r.put), o.revertClone = r.revertClone, e.group = o;\n}, Zt = function() {\n !qt && g && h(g, \"display\", \"none\");\n}, Qt = function() {\n !qt && g && h(g, \"display\", \"\");\n};\nVe && !Wt && document.addEventListener(\"click\", function(t) {\n if (Ge)\n return t.preventDefault(), t.stopPropagation && t.stopPropagation(), t.stopImmediatePropagation && t.stopImmediatePropagation(), Ge = !1, !1;\n}, !0);\nvar he = function(e) {\n if (c) {\n e = e.touches ? e.touches[0] : e;\n var n = Gn(e.clientX, e.clientY);\n if (n) {\n var o = {};\n for (var r in e)\n e.hasOwnProperty(r) && (o[r] = e[r]);\n o.target = o.rootEl = n, o.preventDefault = void 0, o.stopPropagation = void 0, n[q]._onDragOver(o);\n }\n }\n}, jn = function(e) {\n c && c.parentNode[q]._isOutsideThisEl(e.target);\n};\nfunction p(t, e) {\n if (!(t && t.nodeType && t.nodeType === 1))\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(t));\n this.el = t, this.options = e = ie({}, e), t[q] = this;\n var n = {\n group: null,\n sort: !0,\n disabled: !1,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(t.nodeName) ? \">li\" : \">*\",\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: !1,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: !0,\n direction: function() {\n return Kt(t, this.options);\n },\n ghostClass: \"sortable-ghost\",\n chosenClass: \"sortable-chosen\",\n dragClass: \"sortable-drag\",\n ignore: \"a, img\",\n filter: null,\n preventOnFilter: !0,\n animation: 0,\n easing: null,\n setData: function(a, l) {\n a.setData(\"Text\", l.textContent);\n },\n dropBubble: !1,\n dragoverBubble: !1,\n dataIdAttr: \"data-id\",\n delay: 0,\n delayOnTouchOnly: !1,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: !1,\n fallbackClass: \"sortable-fallback\",\n fallbackOnBody: !1,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: p.supportPointer !== !1 && \"PointerEvent\" in window && !Te,\n emptyInsertThreshold: 5\n };\n Ne.initializePlugins(this, t, n);\n for (var o in n)\n !(o in e) && (e[o] = n[o]);\n Jt(e);\n for (var r in this)\n r.charAt(0) === \"_\" && typeof this[r] == \"function\" && (this[r] = this[r].bind(this));\n this.nativeDraggable = e.forceFallback ? !1 : Ln, this.nativeDraggable && (this.options.touchStartThreshold = 1), e.supportPointer ? S(t, \"pointerdown\", this._onTapStart) : (S(t, \"mousedown\", this._onTapStart), S(t, \"touchstart\", this._onTapStart)), this.nativeDraggable && (S(t, \"dragover\", this), S(t, \"dragenter\", this)), je.push(this.el), e.store && e.store.get && this.sort(e.store.get(this) || []), ie(this, Xn());\n}\np.prototype = /** @lends Sortable.prototype */\n{\n constructor: p,\n _isOutsideThisEl: function(e) {\n !this.el.contains(e) && e !== this.el && (me = null);\n },\n _getDirection: function(e, n) {\n return typeof this.options.direction == \"function\" ? this.options.direction.call(this, e, n, c) : this.options.direction;\n },\n _onTapStart: function(e) {\n if (e.cancelable) {\n var n = this, o = this.el, r = this.options, i = r.preventOnFilter, a = e.type, l = e.touches && e.touches[0] || e.pointerType && e.pointerType === \"touch\" && e, s = (l || e).target, u = e.target.shadowRoot && (e.path && e.path[0] || e.composedPath && e.composedPath()[0]) || s, d = r.filter;\n if (Zn(o), !c && !(/mousedown|pointerdown/.test(a) && e.button !== 0 || r.disabled) && !u.isContentEditable && !(!this.nativeDraggable && Te && s && s.tagName.toUpperCase() === \"SELECT\") && (s = Q(s, r.draggable, o, !1), !(s && s.animated) && Be !== s)) {\n if (be = J(s), Oe = J(s, r.draggable), typeof d == \"function\") {\n if (d.call(this, e, s, this)) {\n W({\n sortable: n,\n rootEl: u,\n name: \"filter\",\n targetEl: s,\n toEl: o,\n fromEl: o\n }), z(\"filter\", n, {\n evt: e\n }), i && e.cancelable && e.preventDefault();\n return;\n }\n } else if (d && (d = d.split(\",\").some(function(f) {\n if (f = Q(u, f.trim(), o, !1), f)\n return W({\n sortable: n,\n rootEl: f,\n name: \"filter\",\n targetEl: s,\n fromEl: o,\n toEl: o\n }), z(\"filter\", n, {\n evt: e\n }), !0;\n }), d)) {\n i && e.cancelable && e.preventDefault();\n return;\n }\n r.handle && !Q(u, r.handle, o, !1) || this._prepareDragStart(e, l, s);\n }\n }\n },\n _prepareDragStart: function(e, n, o) {\n var r = this, i = r.el, a = r.options, l = i.ownerDocument, s;\n if (o && !c && o.parentNode === i) {\n var u = P(o);\n if (T = i, c = o, O = c.parentNode, pe = c.nextSibling, Be = o, Me = a.group, p.dragged = c, de = {\n target: c,\n clientX: (n || e).clientX,\n clientY: (n || e).clientY\n }, Pt = de.clientX - u.left, Mt = de.clientY - u.top, this._lastX = (n || e).clientX, this._lastY = (n || e).clientY, c.style[\"will-change\"] = \"all\", s = function() {\n if (z(\"delayEnded\", r, {\n evt: e\n }), p.eventCanceled) {\n r._onDrop();\n return;\n }\n r._disableDelayedDragEvents(), !It && r.nativeDraggable && (c.draggable = !0), r._triggerDragStart(e, n), W({\n sortable: r,\n name: \"choose\",\n originalEvent: e\n }), V(c, a.chosenClass, !0);\n }, a.ignore.split(\",\").forEach(function(d) {\n jt(c, d.trim(), nt);\n }), S(l, \"dragover\", he), S(l, \"mousemove\", he), S(l, \"touchmove\", he), S(l, \"mouseup\", r._onDrop), S(l, \"touchend\", r._onDrop), S(l, \"touchcancel\", r._onDrop), It && this.nativeDraggable && (this.options.touchStartThreshold = 4, c.draggable = !0), z(\"delayStart\", this, {\n evt: e\n }), a.delay && (!a.delayOnTouchOnly || n) && (!this.nativeDraggable || !(xe || ae))) {\n if (p.eventCanceled) {\n this._onDrop();\n return;\n }\n S(l, \"mouseup\", r._disableDelayedDrag), S(l, \"touchend\", r._disableDelayedDrag), S(l, \"touchcancel\", r._disableDelayedDrag), S(l, \"mousemove\", r._delayedDragTouchMoveHandler), S(l, \"touchmove\", r._delayedDragTouchMoveHandler), a.supportPointer && S(l, \"pointermove\", r._delayedDragTouchMoveHandler), r._dragStartTimer = setTimeout(s, a.delay);\n } else\n s();\n }\n },\n _delayedDragTouchMoveHandler: function(e) {\n var n = e.touches ? e.touches[0] : e;\n Math.max(Math.abs(n.clientX - this._lastX), Math.abs(n.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1)) && this._disableDelayedDrag();\n },\n _disableDelayedDrag: function() {\n c && nt(c), clearTimeout(this._dragStartTimer), this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function() {\n var e = this.el.ownerDocument;\n E(e, \"mouseup\", this._disableDelayedDrag), E(e, \"touchend\", this._disableDelayedDrag), E(e, \"touchcancel\", this._disableDelayedDrag), E(e, \"mousemove\", this._delayedDragTouchMoveHandler), E(e, \"touchmove\", this._delayedDragTouchMoveHandler), E(e, \"pointermove\", this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function(e, n) {\n n = n || e.pointerType == \"touch\" && e, !this.nativeDraggable || n ? this.options.supportPointer ? S(document, \"pointermove\", this._onTouchMove) : n ? S(document, \"touchmove\", this._onTouchMove) : S(document, \"mousemove\", this._onTouchMove) : (S(c, \"dragend\", this), S(T, \"dragstart\", this._onDragStart));\n try {\n document.selection ? He(function() {\n document.selection.empty();\n }) : window.getSelection().removeAllRanges();\n } catch (o) {\n }\n },\n _dragStarted: function(e, n) {\n if (ve = !1, T && c) {\n z(\"dragStarted\", this, {\n evt: n\n }), this.nativeDraggable && S(document, \"dragover\", jn);\n var o = this.options;\n !e && V(c, o.dragClass, !1), V(c, o.ghostClass, !0), p.active = this, e && this._appendGhost(), W({\n sortable: this,\n name: \"start\",\n originalEvent: n\n });\n } else\n this._nulling();\n },\n _emulateDragOver: function() {\n if (Z) {\n this._lastX = Z.clientX, this._lastY = Z.clientY, Zt();\n for (var e = document.elementFromPoint(Z.clientX, Z.clientY), n = e; e && e.shadowRoot && (e = e.shadowRoot.elementFromPoint(Z.clientX, Z.clientY), e !== n); )\n n = e;\n if (c.parentNode[q]._isOutsideThisEl(e), n)\n do {\n if (n[q]) {\n var o = void 0;\n if (o = n[q]._onDragOver({\n clientX: Z.clientX,\n clientY: Z.clientY,\n target: e,\n rootEl: n\n }), o && !this.options.dragoverBubble)\n break;\n }\n e = n;\n } while (n = n.parentNode);\n Qt();\n }\n },\n _onTouchMove: function(e) {\n if (de) {\n var n = this.options, o = n.fallbackTolerance, r = n.fallbackOffset, i = e.touches ? e.touches[0] : e, a = g && ye(g, !0), l = g && a && a.a, s = g && a && a.d, u = Re && H && Nt(H), d = (i.clientX - de.clientX + r.x) / (l || 1) + (u ? u[0] - tt[0] : 0) / (l || 1), f = (i.clientY - de.clientY + r.y) / (s || 1) + (u ? u[1] - tt[1] : 0) / (s || 1);\n if (!p.active && !ve) {\n if (o && Math.max(Math.abs(i.clientX - this._lastX), Math.abs(i.clientY - this._lastY)) < o)\n return;\n this._onDragStart(e, !0);\n }\n if (g) {\n a ? (a.e += d - (Qe || 0), a.f += f - (et || 0)) : a = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: d,\n f\n };\n var m = \"matrix(\".concat(a.a, \",\").concat(a.b, \",\").concat(a.c, \",\").concat(a.d, \",\").concat(a.e, \",\").concat(a.f, \")\");\n h(g, \"webkitTransform\", m), h(g, \"mozTransform\", m), h(g, \"msTransform\", m), h(g, \"transform\", m), Qe = d, et = f, Z = i;\n }\n e.cancelable && e.preventDefault();\n }\n },\n _appendGhost: function() {\n if (!g) {\n var e = this.options.fallbackOnBody ? document.body : T, n = P(c, !0, Re, !0, e), o = this.options;\n if (Re) {\n for (H = e; h(H, \"position\") === \"static\" && h(H, \"transform\") === \"none\" && H !== document; )\n H = H.parentNode;\n H !== document.body && H !== document.documentElement ? (H === document && (H = te()), n.top += H.scrollTop, n.left += H.scrollLeft) : H = te(), tt = Nt(H);\n }\n g = c.cloneNode(!0), V(g, o.ghostClass, !1), V(g, o.fallbackClass, !0), V(g, o.dragClass, !0), h(g, \"transition\", \"\"), h(g, \"transform\", \"\"), h(g, \"box-sizing\", \"border-box\"), h(g, \"margin\", 0), h(g, \"top\", n.top), h(g, \"left\", n.left), h(g, \"width\", n.width), h(g, \"height\", n.height), h(g, \"opacity\", \"0.8\"), h(g, \"position\", Re ? \"absolute\" : \"fixed\"), h(g, \"zIndex\", \"100000\"), h(g, \"pointerEvents\", \"none\"), p.ghost = g, e.appendChild(g), h(g, \"transform-origin\", Pt / parseInt(g.style.width) * 100 + \"% \" + Mt / parseInt(g.style.height) * 100 + \"%\");\n }\n },\n _onDragStart: function(e, n) {\n var o = this, r = e.dataTransfer, i = o.options;\n if (z(\"dragStart\", this, {\n evt: e\n }), p.eventCanceled) {\n this._onDrop();\n return;\n }\n z(\"setupClone\", this), p.eventCanceled || (C = Vt(c), C.removeAttribute(\"id\"), C.draggable = !1, C.style[\"will-change\"] = \"\", this._hideClone(), V(C, this.options.chosenClass, !1), p.clone = C), o.cloneId = He(function() {\n z(\"clone\", o), !p.eventCanceled && (o.options.removeCloneOnHide || T.insertBefore(C, c), o._hideClone(), W({\n sortable: o,\n name: \"clone\"\n }));\n }), !n && V(c, i.dragClass, !0), n ? (Ge = !0, o._loopId = setInterval(o._emulateDragOver, 50)) : (E(document, \"mouseup\", o._onDrop), E(document, \"touchend\", o._onDrop), E(document, \"touchcancel\", o._onDrop), r && (r.effectAllowed = \"move\", i.setData && i.setData.call(o, r, c)), S(document, \"drop\", o), h(c, \"transform\", \"translateZ(0)\")), ve = !0, o._dragStartId = He(o._dragStarted.bind(o, n, e)), S(document, \"selectstart\", o), Se = !0, Te && h(document.body, \"user-select\", \"none\");\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function(e) {\n var n = this.el, o = e.target, r, i, a, l = this.options, s = l.group, u = p.active, d = Me === s, f = l.sort, m = Y || u, y, b = this, w = !1;\n if (lt)\n return;\n function L(ee, Ee) {\n z(ee, b, ne({\n evt: e,\n isOwner: d,\n axis: y ? \"vertical\" : \"horizontal\",\n revert: a,\n dragRect: r,\n targetRect: i,\n canSort: f,\n fromSortable: m,\n target: o,\n completed: R,\n onMove: function(vt, rn) {\n return Xe(T, n, c, r, vt, P(vt), e, rn);\n },\n changed: j\n }, Ee));\n }\n function G() {\n L(\"dragOverAnimationCapture\"), b.captureAnimationState(), b !== m && m.captureAnimationState();\n }\n function R(ee) {\n return L(\"dragOverCompleted\", {\n insertion: ee\n }), ee && (d ? u._hideClone() : u._showClone(b), b !== m && (V(c, Y ? Y.options.ghostClass : u.options.ghostClass, !1), V(c, l.ghostClass, !0)), Y !== b && b !== p.active ? Y = b : b === p.active && Y && (Y = null), m === b && (b._ignoreWhileAnimating = o), b.animateAll(function() {\n L(\"dragOverAnimationComplete\"), b._ignoreWhileAnimating = null;\n }), b !== m && (m.animateAll(), m._ignoreWhileAnimating = null)), (o === c && !c.animated || o === n && !o.animated) && (me = null), !l.dragoverBubble && !e.rootEl && o !== document && (c.parentNode[q]._isOutsideThisEl(e.target), !ee && he(e)), !l.dragoverBubble && e.stopPropagation && e.stopPropagation(), w = !0;\n }\n function j() {\n $ = J(c), se = J(c, l.draggable), W({\n sortable: b,\n name: \"change\",\n toEl: n,\n newIndex: $,\n newDraggableIndex: se,\n originalEvent: e\n });\n }\n if (e.preventDefault !== void 0 && e.cancelable && e.preventDefault(), o = Q(o, l.draggable, n, !0), L(\"dragOver\"), p.eventCanceled)\n return w;\n if (c.contains(e.target) || o.animated && o.animatingX && o.animatingY || b._ignoreWhileAnimating === o)\n return R(!1);\n if (Ge = !1, u && !l.disabled && (d ? f || (a = O !== T) : Y === this || (this.lastPutMode = Me.checkPull(this, u, c, e)) && s.checkPut(this, u, c, e))) {\n if (y = this._getDirection(e, o) === \"vertical\", r = P(c), L(\"dragOverValid\"), p.eventCanceled)\n return w;\n if (a)\n return O = T, G(), this._hideClone(), L(\"revert\"), p.eventCanceled || (pe ? T.insertBefore(c, pe) : T.appendChild(c)), R(!0);\n var B = ht(n, l.draggable);\n if (!B || $n(e, y, this) && !B.animated) {\n if (B === c)\n return R(!1);\n if (B && n === e.target && (o = B), o && (i = P(o)), Xe(T, n, c, r, o, i, e, !!o) !== !1)\n return G(), B && B.nextSibling ? n.insertBefore(c, B.nextSibling) : n.appendChild(c), O = n, j(), R(!0);\n } else if (B && Vn(e, y, this)) {\n var X = we(n, 0, l, !0);\n if (X === c)\n return R(!1);\n if (o = X, i = P(o), Xe(T, n, c, r, o, i, e, !1) !== !1)\n return G(), n.insertBefore(c, X), O = n, j(), R(!0);\n } else if (o.parentNode === n) {\n i = P(o);\n var K = 0, oe, le = c.parentNode !== n, k = !Wn(c.animated && c.toRect || r, o.animated && o.toRect || i, y), v = y ? \"top\" : \"left\", D = xt(o, \"top\", \"top\") || xt(c, \"top\", \"top\"), A = D ? D.scrollTop : void 0;\n me !== o && (oe = i[v], Ae = !1, Fe = !k && l.invertSwap || le), K = qn(e, o, i, y, k ? 1 : l.swapThreshold, l.invertedSwapThreshold == null ? l.swapThreshold : l.invertedSwapThreshold, Fe, me === o);\n var I;\n if (K !== 0) {\n var _ = J(c);\n do\n _ -= K, I = O.children[_];\n while (I && (h(I, \"display\") === \"none\" || I === g));\n }\n if (K === 0 || I === o)\n return R(!1);\n me = o, Ie = K;\n var x = o.nextElementSibling, M = !1;\n M = K === 1;\n var F = Xe(T, n, c, r, o, i, e, M);\n if (F !== !1)\n return (F === 1 || F === -1) && (M = F === 1), lt = !0, setTimeout(Un, 30), G(), M && !x ? n.appendChild(c) : o.parentNode.insertBefore(c, M ? x : o), D && Ut(D, 0, A - D.scrollTop), O = c.parentNode, oe !== void 0 && !Fe && (ke = Math.abs(oe - P(o)[v])), j(), R(!0);\n }\n if (n.contains(c))\n return R(!1);\n }\n return !1;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function() {\n E(document, \"mousemove\", this._onTouchMove), E(document, \"touchmove\", this._onTouchMove), E(document, \"pointermove\", this._onTouchMove), E(document, \"dragover\", he), E(document, \"mousemove\", he), E(document, \"touchmove\", he);\n },\n _offUpEvents: function() {\n var e = this.el.ownerDocument;\n E(e, \"mouseup\", this._onDrop), E(e, \"touchend\", this._onDrop), E(e, \"pointerup\", this._onDrop), E(e, \"touchcancel\", this._onDrop), E(document, \"selectstart\", this);\n },\n _onDrop: function(e) {\n var n = this.el, o = this.options;\n if ($ = J(c), se = J(c, o.draggable), z(\"drop\", this, {\n evt: e\n }), O = c && c.parentNode, $ = J(c), se = J(c, o.draggable), p.eventCanceled) {\n this._nulling();\n return;\n }\n ve = !1, Fe = !1, Ae = !1, clearInterval(this._loopId), clearTimeout(this._dragStartTimer), st(this.cloneId), st(this._dragStartId), this.nativeDraggable && (E(document, \"drop\", this), E(n, \"dragstart\", this._onDragStart)), this._offMoveEvents(), this._offUpEvents(), Te && h(document.body, \"user-select\", \"\"), h(c, \"transform\", \"\"), e && (Se && (e.cancelable && e.preventDefault(), !o.dropBubble && e.stopPropagation()), g && g.parentNode && g.parentNode.removeChild(g), (T === O || Y && Y.lastPutMode !== \"clone\") && C && C.parentNode && C.parentNode.removeChild(C), c && (this.nativeDraggable && E(c, \"dragend\", this), nt(c), c.style[\"will-change\"] = \"\", Se && !ve && V(c, Y ? Y.options.ghostClass : this.options.ghostClass, !1), V(c, this.options.chosenClass, !1), W({\n sortable: this,\n name: \"unchoose\",\n toEl: O,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: e\n }), T !== O ? ($ >= 0 && (W({\n rootEl: O,\n name: \"add\",\n toEl: O,\n fromEl: T,\n originalEvent: e\n }), W({\n sortable: this,\n name: \"remove\",\n toEl: O,\n originalEvent: e\n }), W({\n rootEl: O,\n name: \"sort\",\n toEl: O,\n fromEl: T,\n originalEvent: e\n }), W({\n sortable: this,\n name: \"sort\",\n toEl: O,\n originalEvent: e\n })), Y && Y.save()) : $ !== be && $ >= 0 && (W({\n sortable: this,\n name: \"update\",\n toEl: O,\n originalEvent: e\n }), W({\n sortable: this,\n name: \"sort\",\n toEl: O,\n originalEvent: e\n })), p.active && (($ == null || $ === -1) && ($ = be, se = Oe), W({\n sortable: this,\n name: \"end\",\n toEl: O,\n originalEvent: e\n }), this.save()))), this._nulling();\n },\n _nulling: function() {\n z(\"nulling\", this), T = c = O = g = pe = C = Be = ue = de = Z = Se = $ = se = be = Oe = me = Ie = Y = Me = p.dragged = p.ghost = p.clone = p.active = null, ze.forEach(function(e) {\n e.checked = !0;\n }), ze.length = Qe = et = 0;\n },\n handleEvent: function(e) {\n switch (e.type) {\n case \"drop\":\n case \"dragend\":\n this._onDrop(e);\n break;\n case \"dragenter\":\n case \"dragover\":\n c && (this._onDragOver(e), zn(e));\n break;\n case \"selectstart\":\n e.preventDefault();\n break;\n }\n },\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function() {\n for (var e = [], n, o = this.el.children, r = 0, i = o.length, a = this.options; r < i; r++)\n n = o[r], Q(n, a.draggable, this.el, !1) && e.push(n.getAttribute(a.dataIdAttr) || Jn(n));\n return e;\n },\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function(e, n) {\n var o = {}, r = this.el;\n this.toArray().forEach(function(i, a) {\n var l = r.children[a];\n Q(l, this.options.draggable, r, !1) && (o[i] = l);\n }, this), n && this.captureAnimationState(), e.forEach(function(i) {\n o[i] && (r.removeChild(o[i]), r.appendChild(o[i]));\n }), n && this.animateAll();\n },\n /**\n * Save the current sorting\n */\n save: function() {\n var e = this.options.store;\n e && e.set && e.set(this);\n },\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function(e, n) {\n return Q(e, n || this.options.draggable, this.el, !1);\n },\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function(e, n) {\n var o = this.options;\n if (n === void 0)\n return o[e];\n var r = Ne.modifyOption(this, e, n);\n typeof r != \"undefined\" ? o[e] = r : o[e] = n, e === \"group\" && Jt(o);\n },\n /**\n * Destroy\n */\n destroy: function() {\n z(\"destroy\", this);\n var e = this.el;\n e[q] = null, E(e, \"mousedown\", this._onTapStart), E(e, \"touchstart\", this._onTapStart), E(e, \"pointerdown\", this._onTapStart), this.nativeDraggable && (E(e, \"dragover\", this), E(e, \"dragenter\", this)), Array.prototype.forEach.call(e.querySelectorAll(\"[draggable]\"), function(n) {\n n.removeAttribute(\"draggable\");\n }), this._onDrop(), this._disableDelayedDragEvents(), je.splice(je.indexOf(this.el), 1), this.el = e = null;\n },\n _hideClone: function() {\n if (!ue) {\n if (z(\"hideClone\", this), p.eventCanceled)\n return;\n h(C, \"display\", \"none\"), this.options.removeCloneOnHide && C.parentNode && C.parentNode.removeChild(C), ue = !0;\n }\n },\n _showClone: function(e) {\n if (e.lastPutMode !== \"clone\") {\n this._hideClone();\n return;\n }\n if (ue) {\n if (z(\"showClone\", this), p.eventCanceled)\n return;\n c.parentNode == T && !this.options.group.revertClone ? T.insertBefore(C, c) : pe ? T.insertBefore(C, pe) : T.appendChild(C), this.options.group.revertClone && this.animate(c, C), h(C, \"display\", \"\"), ue = !1;\n }\n }\n};\nfunction zn(t) {\n t.dataTransfer && (t.dataTransfer.dropEffect = \"move\"), t.cancelable && t.preventDefault();\n}\nfunction Xe(t, e, n, o, r, i, a, l) {\n var s, u = t[q], d = u.options.onMove, f;\n return window.CustomEvent && !ae && !xe ? s = new CustomEvent(\"move\", {\n bubbles: !0,\n cancelable: !0\n }) : (s = document.createEvent(\"Event\"), s.initEvent(\"move\", !0, !0)), s.to = e, s.from = t, s.dragged = n, s.draggedRect = o, s.related = r || e, s.relatedRect = i || P(e), s.willInsertAfter = l, s.originalEvent = a, t.dispatchEvent(s), d && (f = d.call(u, s, a)), f;\n}\nfunction nt(t) {\n t.draggable = !1;\n}\nfunction Un() {\n lt = !1;\n}\nfunction Vn(t, e, n) {\n var o = P(we(n.el, 0, n.options, !0)), r = $t(n.el, n.options, g), i = 10;\n return e ? t.clientX < r.left - i || t.clientY < o.top && t.clientX < o.right : t.clientY < r.top - i || t.clientY < o.bottom && t.clientX < o.left;\n}\nfunction $n(t, e, n) {\n var o = P(ht(n.el, n.options.draggable)), r = $t(n.el, n.options, g), i = 10;\n return e ? t.clientX > r.right + i || t.clientY > o.bottom && t.clientX > o.left : t.clientY > r.bottom + i || t.clientX > o.right && t.clientY > o.top;\n}\nfunction qn(t, e, n, o, r, i, a, l) {\n var s = o ? t.clientY : t.clientX, u = o ? n.height : n.width, d = o ? n.top : n.left, f = o ? n.bottom : n.right, m = !1;\n if (!a) {\n if (l && ke < u * r) {\n if (!Ae && (Ie === 1 ? s > d + u * i / 2 : s < f - u * i / 2) && (Ae = !0), Ae)\n m = !0;\n else if (Ie === 1 ? s < d + ke : s > f - ke)\n return -Ie;\n } else if (s > d + u * (1 - r) / 2 && s < f - u * (1 - r) / 2)\n return Kn(e);\n }\n return m = m || a, m && (s < d + u * i / 2 || s > f - u * i / 2) ? s > d + u / 2 ? 1 : -1 : 0;\n}\nfunction Kn(t) {\n return J(c) < J(t) ? 1 : -1;\n}\nfunction Jn(t) {\n for (var e = t.tagName + t.className + t.src + t.href + t.textContent, n = e.length, o = 0; n--; )\n o += e.charCodeAt(n);\n return o.toString(36);\n}\nfunction Zn(t) {\n ze.length = 0;\n for (var e = t.getElementsByTagName(\"input\"), n = e.length; n--; ) {\n var o = e[n];\n o.checked && ze.push(o);\n }\n}\nfunction He(t) {\n return setTimeout(t, 0);\n}\nfunction st(t) {\n return clearTimeout(t);\n}\nVe && S(document, \"touchmove\", function(t) {\n (p.active || ve) && t.cancelable && t.preventDefault();\n});\np.utils = {\n on: S,\n off: E,\n css: h,\n find: jt,\n is: function(e, n) {\n return !!Q(e, n, e, !1);\n },\n extend: Fn,\n throttle: zt,\n closest: Q,\n toggleClass: V,\n clone: Vt,\n index: J,\n nextTick: He,\n cancelNextTick: st,\n detectDirection: Kt,\n getChild: we\n};\np.get = function(t) {\n return t[q];\n};\np.mount = function() {\n for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++)\n e[n] = arguments[n];\n e[0].constructor === Array && (e = e[0]), e.forEach(function(o) {\n if (!o.prototype || !o.prototype.constructor)\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(o));\n o.utils && (p.utils = ne(ne({}, p.utils), o.utils)), Ne.mount(o);\n });\n};\np.create = function(t, e) {\n return new p(t, e);\n};\np.version = Nn;\nvar N = [], De, ut, ct = !1, ot, rt, Ue, _e;\nfunction Qn() {\n function t() {\n this.defaults = {\n scroll: !0,\n forceAutoScrollFallback: !1,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: !0\n };\n for (var e in this)\n e.charAt(0) === \"_\" && typeof this[e] == \"function\" && (this[e] = this[e].bind(this));\n }\n return t.prototype = {\n dragStarted: function(n) {\n var o = n.originalEvent;\n this.sortable.nativeDraggable ? S(document, \"dragover\", this._handleAutoScroll) : this.options.supportPointer ? S(document, \"pointermove\", this._handleFallbackAutoScroll) : o.touches ? S(document, \"touchmove\", this._handleFallbackAutoScroll) : S(document, \"mousemove\", this._handleFallbackAutoScroll);\n },\n dragOverCompleted: function(n) {\n var o = n.originalEvent;\n !this.options.dragOverBubble && !o.rootEl && this._handleAutoScroll(o);\n },\n drop: function() {\n this.sortable.nativeDraggable ? E(document, \"dragover\", this._handleAutoScroll) : (E(document, \"pointermove\", this._handleFallbackAutoScroll), E(document, \"touchmove\", this._handleFallbackAutoScroll), E(document, \"mousemove\", this._handleFallbackAutoScroll)), Rt(), Le(), Rn();\n },\n nulling: function() {\n Ue = ut = De = ct = _e = ot = rt = null, N.length = 0;\n },\n _handleFallbackAutoScroll: function(n) {\n this._handleAutoScroll(n, !0);\n },\n _handleAutoScroll: function(n, o) {\n var r = this, i = (n.touches ? n.touches[0] : n).clientX, a = (n.touches ? n.touches[0] : n).clientY, l = document.elementFromPoint(i, a);\n if (Ue = n, o || this.options.forceAutoScrollFallback || xe || ae || Te) {\n it(n, this.options, l, o);\n var s = ce(l, !0);\n ct && (!_e || i !== ot || a !== rt) && (_e && Rt(), _e = setInterval(function() {\n var u = ce(document.elementFromPoint(i, a), !0);\n u !== s && (s = u, Le()), it(n, r.options, u, o);\n }, 10), ot = i, rt = a);\n } else {\n if (!this.options.bubbleScroll || ce(l, !0) === te()) {\n Le();\n return;\n }\n it(n, this.options, ce(l, !1), !1);\n }\n }\n }, ie(t, {\n pluginName: \"scroll\",\n initializeByDefault: !0\n });\n}\nfunction Le() {\n N.forEach(function(t) {\n clearInterval(t.pid);\n }), N = [];\n}\nfunction Rt() {\n clearInterval(_e);\n}\nvar it = zt(function(t, e, n, o) {\n if (e.scroll) {\n var r = (t.touches ? t.touches[0] : t).clientX, i = (t.touches ? t.touches[0] : t).clientY, a = e.scrollSensitivity, l = e.scrollSpeed, s = te(), u = !1, d;\n ut !== n && (ut = n, Le(), De = e.scroll, d = e.scrollFn, De === !0 && (De = ce(n, !0)));\n var f = 0, m = De;\n do {\n var y = m, b = P(y), w = b.top, L = b.bottom, G = b.left, R = b.right, j = b.width, B = b.height, X = void 0, K = void 0, oe = y.scrollWidth, le = y.scrollHeight, k = h(y), v = y.scrollLeft, D = y.scrollTop;\n y === s ? (X = j < oe && (k.overflowX === \"auto\" || k.overflowX === \"scroll\" || k.overflowX === \"visible\"), K = B < le && (k.overflowY === \"auto\" || k.overflowY === \"scroll\" || k.overflowY === \"visible\")) : (X = j < oe && (k.overflowX === \"auto\" || k.overflowX === \"scroll\"), K = B < le && (k.overflowY === \"auto\" || k.overflowY === \"scroll\"));\n var A = X && (Math.abs(R - r) <= a && v + j < oe) - (Math.abs(G - r) <= a && !!v), I = K && (Math.abs(L - i) <= a && D + B < le) - (Math.abs(w - i) <= a && !!D);\n if (!N[f])\n for (var _ = 0; _ <= f; _++)\n N[_] || (N[_] = {});\n (N[f].vx != A || N[f].vy != I || N[f].el !== y) && (N[f].el = y, N[f].vx = A, N[f].vy = I, clearInterval(N[f].pid), (A != 0 || I != 0) && (u = !0, N[f].pid = setInterval(function() {\n o && this.layer === 0 && p.active._onTouchMove(Ue);\n var x = N[this.layer].vy ? N[this.layer].vy * l : 0, M = N[this.layer].vx ? N[this.layer].vx * l : 0;\n typeof d == \"function\" && d.call(p.dragged.parentNode[q], M, x, t, Ue, N[this.layer].el) !== \"continue\" || Ut(N[this.layer].el, M, x);\n }.bind({\n layer: f\n }), 24))), f++;\n } while (e.bubbleScroll && m !== s && (m = ce(m, !1)));\n ct = u;\n }\n}, 30), en = function(e) {\n var n = e.originalEvent, o = e.putSortable, r = e.dragEl, i = e.activeSortable, a = e.dispatchSortableEvent, l = e.hideGhostForTarget, s = e.unhideGhostForTarget;\n if (n) {\n var u = o || i;\n l();\n var d = n.changedTouches && n.changedTouches.length ? n.changedTouches[0] : n, f = document.elementFromPoint(d.clientX, d.clientY);\n s(), u && !u.el.contains(f) && (a(\"spill\"), this.onSpill({\n dragEl: r,\n putSortable: o\n }));\n }\n};\nfunction pt() {\n}\npt.prototype = {\n startIndex: null,\n dragStart: function(e) {\n var n = e.oldDraggableIndex;\n this.startIndex = n;\n },\n onSpill: function(e) {\n var n = e.dragEl, o = e.putSortable;\n this.sortable.captureAnimationState(), o && o.captureAnimationState();\n var r = we(this.sortable.el, this.startIndex, this.options);\n r ? this.sortable.el.insertBefore(n, r) : this.sortable.el.appendChild(n), this.sortable.animateAll(), o && o.animateAll();\n },\n drop: en\n};\nie(pt, {\n pluginName: \"revertOnSpill\"\n});\nfunction gt() {\n}\ngt.prototype = {\n onSpill: function(e) {\n var n = e.dragEl, o = e.putSortable, r = o || this.sortable;\n r.captureAnimationState(), n.parentNode && n.parentNode.removeChild(n), r.animateAll();\n },\n drop: en\n};\nie(gt, {\n pluginName: \"removeOnSpill\"\n});\np.mount(new Qn());\np.mount(gt, pt);\nfunction eo(t) {\n return t == null ? t : JSON.parse(JSON.stringify(t));\n}\nfunction to(t) {\n dt() && sn(t);\n}\nfunction no(t) {\n dt() ? un(t) : kt(t);\n}\nlet tn = null, nn = null;\nfunction Xt(t = null, e = null) {\n tn = t, nn = e;\n}\nfunction oo() {\n return {\n data: tn,\n clonedData: nn\n };\n}\nconst Yt = Symbol(\"cloneElement\");\nfunction on(...t) {\n var le, k;\n const e = (le = dt()) == null ? void 0 : le.proxy;\n let n = null;\n const o = t[0];\n let [, r, i] = t;\n Array.isArray(U(r)) || (i = r, r = null);\n let a = null;\n const {\n immediate: l = !0,\n clone: s = eo,\n forceFallback: u,\n fallbackOnBody: d,\n customUpdate: f\n } = (k = U(i)) != null ? k : {};\n function m(v) {\n var F;\n const { from: D, oldIndex: A, item: I } = v, _ = Array.from(D.childNodes);\n n = u && !d ? _.slice(0, -1) : _;\n const x = U((F = U(r)) == null ? void 0 : F[A]), M = s(x);\n Xt(x, M), I[Yt] = M;\n }\n function y(v) {\n const D = v.item[Yt];\n if (!wn(D)) {\n if (Ke(v.item), qe(r)) {\n const A = [...U(r)];\n r.value = _t(A, v.newDraggableIndex, D);\n return;\n }\n _t(U(r), v.newDraggableIndex, D);\n }\n }\n function b(v) {\n const { from: D, item: A, oldIndex: I, oldDraggableIndex: _, pullMode: x, clone: M } = v;\n if (Tt(D, A, I), x === \"clone\") {\n Ke(M);\n return;\n }\n if (qe(r)) {\n const F = [...U(r)];\n r.value = Dt(F, _);\n return;\n }\n Dt(U(r), _);\n }\n function w(v) {\n if (f) {\n f(v);\n return;\n }\n const { from: D, item: A, oldIndex: I, oldDraggableIndex: _, newDraggableIndex: x } = v;\n if (Ke(A), Tt(D, A, I), qe(r)) {\n const M = [...U(r)];\n r.value = St(\n M,\n _,\n x\n );\n return;\n }\n St(U(r), _, x);\n }\n function L(v) {\n const { newIndex: D, oldIndex: A, from: I, to: _ } = v;\n let x = null;\n const M = D === A && I === _;\n try {\n if (M) {\n let F = null;\n n == null || n.some((ee, Ee) => {\n if (F && (n == null ? void 0 : n.length) !== _.childNodes.length)\n return I.insertBefore(F, ee.nextSibling), !0;\n const mt = _.childNodes[Ee];\n F = _ == null ? void 0 : _.replaceChild(ee, mt);\n });\n }\n } catch (F) {\n x = F;\n } finally {\n n = null;\n }\n kt(() => {\n if (Xt(), x)\n throw x;\n });\n }\n const G = {\n onUpdate: w,\n onStart: m,\n onAdd: y,\n onRemove: b,\n onEnd: L\n };\n function R(v) {\n const D = U(o);\n return v || (v = En(D) ? Sn(D, e == null ? void 0 : e.$el) : D), v && !Tn(v) && (v = v.$el), v || vn(\"Root element not found\"), v;\n }\n function j() {\n var I;\n const _ = (I = U(i)) != null ? I : {}, { immediate: v, clone: D } = _, A = $e(_, [\"immediate\", \"clone\"]);\n return Ct(A, (x, M) => {\n Cn(x) && (A[x] = (F, ...ee) => {\n const Ee = oo();\n return On(F, Ee), M(F, ...ee);\n });\n }), _n(\n r === null ? {} : G,\n A\n );\n }\n const B = (v) => {\n v = R(v), a && X.destroy(), a = new p(v, j());\n };\n ln(\n () => i,\n () => {\n a && Ct(j(), (v, D) => {\n a == null || a.option(v, D);\n });\n },\n { deep: !0 }\n );\n const X = {\n option: (v, D) => a == null ? void 0 : a.option(v, D),\n destroy: () => {\n a == null || a.destroy(), a = null;\n },\n save: () => a == null ? void 0 : a.save(),\n toArray: () => a == null ? void 0 : a.toArray(),\n closest: (...v) => a == null ? void 0 : a.closest(...v)\n }, K = () => X == null ? void 0 : X.option(\"disabled\", !0), oe = () => X == null ? void 0 : X.option(\"disabled\", !1);\n return no(() => {\n l && B();\n }), to(X.destroy), fe({ start: B, pause: K, resume: oe }, X);\n}\nconst ft = [\n \"update\",\n \"start\",\n \"add\",\n \"remove\",\n \"choose\",\n \"unchoose\",\n \"end\",\n \"sort\",\n \"filter\",\n \"clone\",\n \"move\",\n \"change\"\n], ro = [\n \"clone\",\n \"animation\",\n \"ghostClass\",\n \"group\",\n \"sort\",\n \"disabled\",\n \"store\",\n \"handle\",\n \"draggable\",\n \"swapThreshold\",\n \"invertSwap\",\n \"invertedSwapThreshold\",\n \"removeCloneOnHide\",\n \"direction\",\n \"chosenClass\",\n \"dragClass\",\n \"ignore\",\n \"filter\",\n \"preventOnFilter\",\n \"easing\",\n \"setData\",\n \"dropBubble\",\n \"dragoverBubble\",\n \"dataIdAttr\",\n \"delay\",\n \"delayOnTouchOnly\",\n \"touchStartThreshold\",\n \"forceFallback\",\n \"fallbackClass\",\n \"fallbackOnBody\",\n \"fallbackTolerance\",\n \"fallbackOffset\",\n \"supportPointer\",\n \"emptyInsertThreshold\",\n \"scroll\",\n \"forceAutoScrollFallback\",\n \"scrollSensitivity\",\n \"scrollSpeed\",\n \"bubbleScroll\",\n \"modelValue\",\n \"tag\",\n \"target\",\n \"customUpdate\",\n ...ft.map((t) => `on${t.replace(/^\\S/, (e) => e.toUpperCase())}`)\n], lo = cn({\n name: \"VueDraggable\",\n model: {\n prop: \"modelValue\",\n event: \"update:modelValue\"\n },\n props: ro,\n emits: [\"update:modelValue\", ...ft],\n setup(t, { slots: e, emit: n, expose: o, attrs: r }) {\n const i = ft.reduce((d, f) => {\n const m = `on${f.replace(/^\\S/, (y) => y.toUpperCase())}`;\n return d[m] = (...y) => n(f, ...y), d;\n }, {}), a = Et(() => {\n const y = fn(t), { modelValue: d } = y, f = $e(y, [\"modelValue\"]), m = Object.entries(f).reduce((b, [w, L]) => {\n const G = U(L);\n return G !== void 0 && (b[w] = G), b;\n }, {});\n return fe(fe({}, i), yn(fe(fe({}, r), m)));\n }), l = Et({\n get: () => t.modelValue,\n set: (d) => n(\"update:modelValue\", d)\n }), s = dn(), u = hn(\n on(t.target || s, l, a)\n );\n return o(u), () => {\n var d;\n return pn(t.tag || \"div\", { ref: s }, (d = e == null ? void 0 : e.default) == null ? void 0 : d.call(e, u));\n };\n }\n}), Bt = {\n mounted: \"mounted\",\n unmounted: \"unmounted\"\n}, at = /* @__PURE__ */ new WeakMap(), so = {\n [Bt.mounted](t, e) {\n const n = gn(e.value) ? [e.value] : e.value, [o, r] = n, i = on(t, o, r);\n at.set(t, i.destroy);\n },\n [Bt.unmounted](t) {\n var e;\n (e = at.get(t)) == null || e(), at.delete(t);\n }\n};\nexport {\n lo as VueDraggable,\n on as useDraggable,\n so as vDraggable\n};\n","<!-- AUTO-GENERATED from plus-ui/src/components/common/KTableHeader/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div ref=\"headerRef\" class=\"k-table-header\">\r\n <div class=\"k-table-header__left\">\r\n <slot name=\"title\">\r\n <div v-if=\"title\" class=\"k-table-header__title\">{{ title }}</div>\r\n </slot>\r\n </div>\r\n\r\n <div class=\"k-table-header__right\">\r\n <slot name=\"right\" />\r\n <KPlainButton v-if=\"shouldShow('refresh')\" :icon=\"Refresh\" @click=\"emit('refresh')\">刷新</KPlainButton>\r\n <KPlainButton v-if=\"shouldShow('fullscreen')\" :icon=\"FullScreen\" @click=\"handleFullscreen\">\r\n {{ isFullscreen ? '退出全屏' : '全屏' }}\r\n </KPlainButton>\r\n\r\n <el-popover\r\n v-if=\"shouldShow('columns') && columnsModel.length\"\r\n placement=\"bottom-end\"\r\n trigger=\"click\"\r\n width=\"320\"\r\n >\r\n <template #reference>\r\n <KPlainButton :icon=\"Menu\">列设置</KPlainButton>\r\n </template>\r\n\r\n <div class=\"column-panel\">\r\n <div class=\"column-panel__select-all\">\r\n <el-checkbox\r\n :disabled=\"visibleStats.total === 0\"\r\n :indeterminate=\"selectAllIndeterminate\"\r\n :model-value=\"selectAllChecked\"\r\n @change=\"toggleSelectAll\"\r\n >\r\n 全选\r\n </el-checkbox>\r\n </div>\r\n\r\n <div class=\"column-panel__divider\" />\r\n\r\n <VueDraggable\r\n v-model=\"draggableColumns\"\r\n :animation=\"180\"\r\n class=\"column-panel__list\"\r\n filter=\".none-draggable\"\r\n ghost-class=\"column-item--ghost\"\r\n chosen-class=\"column-item--chosen\"\r\n handle=\".column-item__drag\"\r\n >\r\n <div v-for=\"item in draggableColumns\" :key=\"String(item.key)\" class=\"column-item\">\r\n <div class=\"column-item__main\">\r\n <el-icon class=\"column-item__drag\"><Rank /></el-icon>\r\n <el-checkbox\r\n class=\"none-draggable column-item__checkbox\"\r\n :disabled=\"item.disabled\"\r\n :model-value=\"item.checked !== false\"\r\n @change=\"(value) => handleCheckedChange(item, value)\"\r\n >\r\n <span class=\"column-item__label\">{{ item.label }}</span>\r\n </el-checkbox>\r\n </div>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"column-item__fixed\"\r\n :class=\"fixedClass(item.fixed)\"\r\n :disabled=\"item.checked === false\"\r\n @click=\"handleFixed(item)\"\r\n >\r\n <el-icon v-if=\"item.fixed === 'left' || item.fixed === true\"><Back /></el-icon>\r\n <el-icon v-else-if=\"item.fixed === 'right'\"><Right /></el-icon>\r\n <el-icon v-else><Operation /></el-icon>\r\n </button>\r\n </div>\r\n </VueDraggable>\r\n </div>\r\n </el-popover>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { Back, FullScreen, Menu, Operation, Rank, Refresh, Right } from '@element-plus/icons-vue';\r\nimport { VueDraggable } from 'vue-draggable-plus';\r\n\r\ndefineOptions({ name: 'KTableHeader' });\r\n\r\nexport interface KTableHeaderColumn {\r\n key: string | number;\r\n label: string;\r\n visible?: boolean;\r\n checked?: boolean;\r\n disabled?: boolean;\r\n fixed?: boolean | 'left' | 'right';\r\n sortOrder?: number;\r\n children?: KTableHeaderColumn[];\r\n}\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n title?: string;\r\n layout?: string;\r\n }>(),\r\n {\r\n title: '',\r\n layout: 'refresh,columns,fullscreen'\r\n }\r\n);\r\n\r\nconst columnsModel = defineModel<KTableHeaderColumn[]>('columns', {\r\n default: () => []\r\n});\r\n\r\nconst emit = defineEmits<{\r\n refresh: [];\r\n fullscreen: [];\r\n}>();\r\n\r\nconst headerRef = ref<HTMLElement>();\r\nconst isFullscreen = ref(false);\r\n\r\nconst layoutItems = computed(() => props.layout.split(',').map((item) => item.trim()));\r\n\r\nconst visibleColumns = computed(() =>\r\n columnsModel.value\r\n .filter((item) => item.visible !== false)\r\n .sort((a, b) => (a.sortOrder ?? getColumnIndex(a.key)) - (b.sortOrder ?? getColumnIndex(b.key)))\r\n);\r\n\r\nconst sortableColumns = computed(() =>\r\n columnsModel.value\r\n .filter((item) => !item.disabled)\r\n .sort((a, b) => (a.sortOrder ?? getColumnIndex(a.key)) - (b.sortOrder ?? getColumnIndex(b.key)))\r\n);\r\n\r\nconst draggableColumns = computed({\r\n get: () => sortableColumns.value,\r\n set: (next) => {\r\n next.forEach((item, index) => {\r\n const target = columnsModel.value.find((column) => column.key === item.key);\r\n if (target) {\r\n target.sortOrder = index;\r\n }\r\n });\r\n }\r\n});\r\n\r\nconst visibleStats = computed(() => {\r\n let total = 0;\r\n let checked = 0;\r\n\r\n columnsModel.value.forEach((column) => {\r\n if (column.disabled) return;\r\n total += 1;\r\n if (column.checked !== false) checked += 1;\r\n });\r\n\r\n return { total, checked };\r\n});\r\n\r\nconst selectAllChecked = computed(() => {\r\n const { total, checked } = visibleStats.value;\r\n return total > 0 && checked === total;\r\n});\r\n\r\nconst selectAllIndeterminate = computed(() => {\r\n const { total, checked } = visibleStats.value;\r\n return checked > 0 && checked < total;\r\n});\r\n\r\nfunction shouldShow(name: string) {\r\n return layoutItems.value.includes(name);\r\n}\r\n\r\nfunction resolveFullscreenTarget() {\r\n const headerEl = headerRef.value;\r\n if (!headerEl) return document.documentElement;\r\n return (\r\n headerEl.closest('.k-card') ||\r\n headerEl.closest('.el-card') ||\r\n headerEl.closest('.art-table-card') ||\r\n headerEl.closest('.table-box') ||\r\n headerEl.parentElement ||\r\n document.documentElement\r\n ) as HTMLElement;\r\n}\r\n\r\nasync function handleFullscreen() {\r\n emit('fullscreen');\r\n if (!document.fullscreenEnabled) return;\r\n\r\n if (document.fullscreenElement) {\r\n await document.exitFullscreen();\r\n return;\r\n }\r\n\r\n const target = resolveFullscreenTarget();\r\n await target.requestFullscreen();\r\n}\r\n\r\nfunction syncFullscreenState() {\r\n const target = resolveFullscreenTarget();\r\n isFullscreen.value = document.fullscreenElement === target;\r\n}\r\n\r\nfunction handleCheckedChange(column: KTableHeaderColumn, value: string | number | boolean) {\r\n if (column.disabled) return;\r\n const checked = Boolean(value);\r\n column.checked = checked;\r\n column.visible = checked;\r\n}\r\n\r\nfunction toggleSelectAll(value: string | number | boolean) {\r\n const checked = Boolean(value);\r\n columnsModel.value.forEach((column) => {\r\n if (column.disabled) return;\r\n if (!column.disabled) {\r\n column.checked = checked;\r\n column.visible = checked;\r\n }\r\n });\r\n}\r\n\r\nfunction getColumnIndex(key: string | number) {\r\n return columnsModel.value.findIndex((item) => item.key === key);\r\n}\r\n\r\nfunction handleFixed(column: KTableHeaderColumn) {\r\n if (column.checked === false) return;\r\n if (column.fixed === 'left' || column.fixed === true) {\r\n column.fixed = 'right';\r\n return;\r\n }\r\n if (column.fixed === 'right') {\r\n column.fixed = false;\r\n return;\r\n }\r\n column.fixed = 'left';\r\n}\r\n\r\nfunction fixedClass(fixed?: boolean | 'left' | 'right') {\r\n if (fixed === 'left' || fixed === true) return 'is-left';\r\n if (fixed === 'right') return 'is-right';\r\n return 'is-none';\r\n}\r\n\r\nonMounted(() => {\r\n document.addEventListener('fullscreenchange', syncFullscreenState);\r\n syncFullscreenState();\r\n});\r\n\r\nonBeforeUnmount(() => {\r\n document.removeEventListener('fullscreenchange', syncFullscreenState);\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.k-table-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 12px;\r\n}\r\n\r\n.k-table-header__left {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.k-table-header__right {\r\n text-align: right;\r\n}\r\n\r\n.k-table-header__right > :deep(*) {\r\n vertical-align: middle;\r\n}\r\n\r\n.k-table-header__right > :deep(* + *) {\r\n margin-left: 8px;\r\n}\r\n\r\n.k-table-header__title {\r\n font-size: 15px;\r\n font-weight: 600;\r\n line-height: 1;\r\n color: var(--el-text-color-primary);\r\n}\r\n\r\n.column-panel__select-all {\r\n height: 36px;\r\n display: flex;\r\n align-items: center;\r\n padding: 0 12px 0 26px;\r\n border-radius: 6px;\r\n transition: background-color 0.2s ease;\r\n}\r\n\r\n.column-panel__select-all:hover {\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n.column-panel__divider {\r\n height: 1px;\r\n margin: 4px 0;\r\n background: var(--el-border-color-lighter);\r\n}\r\n\r\n.column-panel__list {\r\n max-height: 240px;\r\n overflow-y: auto;\r\n padding-right: 2px;\r\n}\r\n\r\n.column-item {\r\n height: 36px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 8px;\r\n}\r\n\r\n.column-item__main {\r\n height: 100%;\r\n min-width: 0;\r\n flex: 1;\r\n display: flex;\r\n align-items: center;\r\n padding: 0 10px;\r\n border-radius: 6px;\r\n transition: background-color 0.2s ease;\r\n}\r\n\r\n.column-item__main:hover {\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n.column-item__drag {\r\n margin-right: 8px;\r\n color: var(--el-text-color-secondary);\r\n cursor: move;\r\n}\r\n\r\n.column-item__checkbox {\r\n min-width: 0;\r\n flex: 1;\r\n}\r\n\r\n.column-item__label {\r\n display: inline-block;\r\n max-width: 180px;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.column-item__fixed {\r\n width: 28px;\r\n height: 28px;\r\n padding: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n border: 1px solid var(--el-border-color);\r\n border-radius: 6px;\r\n background: transparent;\r\n color: var(--el-text-color-regular);\r\n cursor: pointer;\r\n transition:\r\n border-color 0.2s ease,\r\n background-color 0.2s ease,\r\n color 0.2s ease,\r\n transform 0.2s ease,\r\n opacity 0.2s ease;\r\n}\r\n\r\n.column-item__fixed:hover:not(:disabled) {\r\n border-color: var(--el-color-primary-light-5);\r\n background: var(--el-color-primary-light-9);\r\n transform: translateY(-1px);\r\n}\r\n\r\n.column-item__fixed:disabled {\r\n cursor: not-allowed;\r\n opacity: 0.45;\r\n}\r\n\r\n.column-item__fixed.is-left {\r\n color: var(--el-color-primary);\r\n border-color: var(--el-color-primary-light-5);\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n.column-item__fixed.is-right {\r\n color: var(--el-color-warning);\r\n border-color: var(--el-color-warning-light-5);\r\n background: var(--el-color-warning-light-9);\r\n}\r\n\r\n:deep(.column-item--ghost) {\r\n opacity: 0.45;\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n:deep(.column-item--chosen .column-item__main) {\r\n background: var(--el-color-primary-light-9);\r\n}\r\n\r\n.column-panel__list::-webkit-scrollbar {\r\n width: 6px;\r\n}\r\n\r\n.column-panel__list::-webkit-scrollbar-thumb {\r\n border-radius: 999px;\r\n background: rgba(148, 163, 184, 0.55);\r\n}\r\n\r\n.column-panel__list::-webkit-scrollbar-track {\r\n background: transparent;\r\n}\r\n\r\n@media (width <= 768px) {\r\n .k-table-header {\r\n flex-direction: column;\r\n align-items: stretch;\r\n }\r\n\r\n .k-table-header__right {\r\n justify-content: flex-end;\r\n }\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/settings/SettingForm/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"setting-form\">\r\n <!-- 表单内容 -->\r\n <div class=\"form-content\">\r\n <el-form ref=\"formRef\" :model=\"formData\" :rules=\"rules\" :disabled=\"!isEditing\" label-position=\"top\" class=\"config-form\">\r\n <slot :form-data=\"formData\" :is-editing=\"isEditing\"></slot>\r\n </el-form>\r\n </div>\r\n\r\n <!-- 底部按钮 -->\r\n <div class=\"form-footer\">\r\n <!-- 查看模式按钮 -->\r\n <template v-if=\"!isEditing\">\r\n <el-button type=\"primary\" @click=\"handleEdit\">\r\n <el-icon class=\"mr-1\">\r\n <Edit />\r\n </el-icon>\r\n 修改\r\n </el-button>\r\n <el-button @click=\"handleResetToDefault\">\r\n <el-icon class=\"mr-1\">\r\n <RefreshLeft />\r\n </el-icon>\r\n 还原默认值\r\n </el-button>\r\n </template>\r\n\r\n <!-- 编辑模式按钮 -->\r\n <template v-else>\r\n <el-button type=\"primary\" :loading=\"loading\" @click=\"handleSave\">\r\n <el-icon class=\"mr-1\">\r\n <Check />\r\n </el-icon>\r\n 保存\r\n </el-button>\r\n <el-button @click=\"handleReset\">\r\n <el-icon class=\"mr-1\">\r\n <RefreshLeft />\r\n </el-icon>\r\n 重置\r\n </el-button>\r\n <el-button @click=\"handleCancel\">\r\n <el-icon class=\"mr-1\">\r\n <Close />\r\n </el-icon>\r\n 取消\r\n </el-button>\r\n </template>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport type { FormInstance, FormRules } from 'element-plus';\r\n\r\ninterface Props {\r\n title?: string;\r\n formData: Record<string, any>;\r\n defaultData?: Record<string, any>;\r\n rules?: FormRules;\r\n loading?: boolean;\r\n}\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n title: '',\r\n defaultData: () => ({}),\r\n rules: () => ({}),\r\n loading: false\r\n});\r\n\r\nconst emit = defineEmits(['save', 'reset', 'cancel', 'reset-default']);\r\n\r\nconst formRef = ref<FormInstance>();\r\nconst isEditing = ref(false);\r\nconst originalData = ref<Record<string, any>>({});\r\n\r\n// 进入编辑模式\r\nconst handleEdit = () => {\r\n // 保存原始数据\r\n originalData.value = JSON.parse(JSON.stringify(props.formData));\r\n isEditing.value = true;\r\n};\r\n\r\n// 保存\r\nconst handleSave = async () => {\r\n if (!formRef.value) return;\r\n\r\n await formRef.value.validate((valid: boolean) => {\r\n if (valid) {\r\n emit('save', props.formData);\r\n }\r\n });\r\n};\r\n\r\n// 重置表单\r\nconst handleReset = () => {\r\n if (formRef.value) {\r\n formRef.value.resetFields();\r\n }\r\n emit('reset');\r\n};\r\n\r\n// 取消编辑\r\nconst handleCancel = () => {\r\n // 恢复原始数据\r\n Object.assign(props.formData, originalData.value);\r\n isEditing.value = false;\r\n if (formRef.value) {\r\n formRef.value.clearValidate();\r\n }\r\n emit('cancel');\r\n};\r\n\r\n// 还原默认值\r\nconst handleResetToDefault = () => {\r\n emit('reset-default');\r\n};\r\n\r\n// 保存成功后退出编辑模式\r\nconst exitEditMode = () => {\r\n isEditing.value = false;\r\n};\r\n\r\n// 暴露方法给父组件\r\ndefineExpose({\r\n exitEditMode\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.setting-form {\r\n background: var(--el-bg-color);\r\n}\r\n\r\n.form-content {\r\n .config-form {\r\n max-width: 800px;\r\n\r\n :deep(.el-form-item) {\r\n margin-bottom: 24px;\r\n\r\n .el-form-item__label {\r\n font-weight: 500;\r\n color: var(--el-text-color-primary);\r\n margin-bottom: 8px;\r\n }\r\n\r\n .el-form-item__content {\r\n .el-input,\r\n .el-textarea {\r\n &.is-disabled {\r\n .el-input__wrapper,\r\n .el-textarea__inner {\r\n background-color: var(--el-fill-color-light);\r\n cursor: not-allowed;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n :deep(.form-item-tip) {\r\n margin-top: 8px;\r\n font-size: 13px;\r\n color: var(--el-text-color-secondary);\r\n line-height: 1.5;\r\n }\r\n }\r\n}\r\n\r\n.form-footer {\r\n display: flex;\r\n gap: 12px;\r\n padding-top: 24px;\r\n border-top: 1px solid var(--el-border-color-lighter);\r\n margin-top: 32px;\r\n}\r\n</style>\r\n","<!-- AUTO-GENERATED from plus-ui/src/components/settings/SettingTabs/index.vue · 执行 pnpm sync:host 重新生成 -->\n\n<template>\r\n <div class=\"setting-tabs\">\r\n <div class=\"tabs-sidebar\">\r\n <div v-for=\"tab in tabs\" :key=\"tab.name\" :class=\"['tab-item', { active: modelValue === tab.name }]\" @click=\"handleTabClick(tab.name)\">\r\n <el-icon class=\"tab-icon\">\r\n <component :is=\"tab.icon\" />\r\n </el-icon>\r\n <span class=\"tab-label\">{{ tab.label }}</span>\r\n </div>\r\n </div>\r\n <div class=\"tabs-content\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\ninterface Tab {\r\n name: string;\r\n label: string;\r\n icon: any;\r\n}\r\n\r\ninterface Props {\r\n modelValue: string;\r\n tabs: Tab[];\r\n}\r\n\r\nconst props = defineProps<Props>();\r\nconst emit = defineEmits(['update:modelValue']);\r\n\r\nconst handleTabClick = (name: string) => {\r\n emit('update:modelValue', name);\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.setting-tabs {\r\n display: flex;\r\n min-height: 800px;\r\n background: var(--el-bg-color);\r\n border-radius: 8px;\r\n}\r\n\r\n.tabs-sidebar {\r\n width: 230px;\r\n background: var(--el-fill-color-blank);\r\n border-right: 1px solid var(--el-border-color-light);\r\n padding: var(--spacing-md);\r\n flex-shrink: 0;\r\n}\r\n\r\n.tab-item {\r\n display: flex;\r\n align-items: center;\r\n padding: 12px 20px;\r\n cursor: pointer;\r\n transition: all 0.3s;\r\n color: var(--el-text-color-regular);\r\n position: relative;\r\n margin-bottom: var(--spacing-sm);\r\n border-radius: var(--radius-md);\r\n\r\n &:hover {\r\n background: var(--el-fill-color-light);\r\n color: var(--el-color-primary);\r\n }\r\n\r\n &.active {\r\n background: var(--el-color-primary-light-9);\r\n color: var(--el-color-primary);\r\n font-weight: 500;\r\n\r\n //&::before {\r\n // content: '';\r\n // position: absolute;\r\n // left: 0;\r\n // top: 50%;\r\n // transform: translateY(-50%);\r\n // width: 3px;\r\n // height: 20px;\r\n // background: var(--el-color-primary);\r\n // border-radius: 0 2px 2px 0;\r\n //}\r\n }\r\n\r\n .tab-icon {\r\n font-size: 18px;\r\n margin-right: 12px;\r\n }\r\n\r\n .tab-label {\r\n font-size: 14px;\r\n }\r\n}\r\n\r\n.tabs-content {\r\n flex: 1;\r\n padding: 24px;\r\n overflow-y: auto;\r\n}\r\n</style>\r\n"],"names":["string","p","_useModel","resolveComponent","dt","sn","un","kt","U","qe","ln","cn","Et","fn","dn","hn","pn"],"mappings":";;;;AAAA,MAAM,SAAS;AAAA,EACb,QAAQ;AAAA,EACR,UAAU;AACZ;AAEA,SAAS,cAAc,OAAO;AAC5B,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,WAAO;AAAA,EACT;AACA,QAAM,YAAY,OAAO,eAAe,KAAK;AAC7C,UAAQ,cAAc,QAAQ,cAAc,OAAO,aAAa,OAAO,eAAe,SAAS,MAAM,SAAS,EAAE,OAAO,eAAe,UAAU,EAAE,OAAO,YAAY;AACvK;AAEA,MAAM,eAAe,OAAO;AAAA,EAC1B,MAAM,MAAM;AAAA,EACZ,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO,MAAM,CAAA;AAAA,EACb,QAAQ,OAAO,CAAA;AAAA,EACf,SAAS;AACX;ACnBA,MAAM,WAAW,OAAO;AACxB,MAAM,WAAW,SAAS;AAC1B,MAAM,SAAS,SAAS;AACxB,MAAM,kBAAkB;AACxB,SAAS,QAAQ,IAAI;AACnB,QAAM,QAAO,yBAAI,SAAQ;AACzB,MAAI,MAAM;AACR,UAAM,QAAQ,KAAK,SAAQ,EAAG,MAAM,eAAe;AACnD,WAAO,QAAQ,MAAM,CAAC,IAAI;AAAA,EAC5B;AACA,SAAO;AACT;AACA,SAAS,cAAc,OAAO;AAC5B,MAAI,UAAU,QAAQ,UAAU;AAC9B,WAAO;AACT,QAAM,QAAQ,MAAM,YAAY,SAAQ,EAAG,MAAM,eAAe;AAChE,SAAO,QAAQ,MAAM,CAAC,EAAE,QAAQ,UAAU,EAAE,IAAI;AAClD;AACA,SAAS,UAAU,OAAO;AACxB,MAAI,qBAAqB,YAAY;AACnC,WAAO,gBAAgB,KAAK;AAAA,EAC9B;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,WAAO,CAAC,GAAG,KAAK;AAAA,EAClB;AACA,MAAI,cAAc,KAAK,GAAG;AACxB,WAAO,OAAO,OAAO,CAAA,GAAI,KAAK;AAAA,EAChC;AACA,SAAO;AACT;AACA,SAAS,OAAO;AAChB;AACA,IAAI,OAAO;AACX,IAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAM,aAAa,OAAO,YAAY;AACtC,SAAO,aAAa,SAAS,MAAM,KAAK,QAAQ,OAAO,UAAU;AAC/D,QAAI,OAAO,WAAW,OAAO;AAC3B,cAAQ,KAAK,EAAE,oBAAoB,GAAG,EAAE;AAAA,IAC1C;AAAA,EACF,IAAI;AACN;AACA,MAAM,MAAM,CAAC,KAAK,SAAS,OAAO,KAAK,KAAK,IAAI;AAChD,MAAM,YAAY,OAAO,aAAa,SAAS,WAAW,OAAO;AAC/D,SAAO,OAAO,UAAU,YAAY,SAAS,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM;AAC/E;AACA,MAAM,UAAU,MAAM,WAAW,SAAS,SAAS,OAAO;AACxD,SAAO,SAAS,KAAK,KAAK,MAAM;AAClC;AACA,MAAM,aAAa,CAAC,UAAU,SAAS,KAAK,KAAK,MAAM;AACvD,MAAM,eAAe,CAAC,OAAO,SAAS,cAAc,KAAK,KAAK,IAAI,OAAO,gBAAgB,MAAM,CAAC,QAAQ,MAAM,mBAAmB;AACjI,MAAM,gBAAgB,CAAC,UAAU,cAAc,KAAK,MAAM,IAAI,OAAO,MAAM,KAAK,CAAC,kBAAkB,aAAa,WAAW,UAAU,EAAE;AAAA,EACrI,CAAC,MAAM,IAAI,OAAO,CAAC;AACrB;AACA,SAAS,OAAO,IAAI,KAAK;AACvB,SAAO,OAAO,eAAe,GAAG,KAAK,GAAG,GAAG,cAAc;AAAA,IACvD,OAAO;AAAA,EACX,CAAG;AACH;AAIA,SAAS,aAAa,MAAM,OAAO,SAAS,OAAO;AACjD,MAAI;AACJ,MAAI,QAAQ;AACZ,MAAI,eAAe;AACnB,MAAI,CAAC,cAAc,IAAI,GAAG;AACxB,kBAAc,EAAE,KAAI;AAAA,EACtB,OAAO;AACL,kBAAc;AAAA,EAChB;AACA,QAAM,aAAa,aAAa,WAAW,IAAI,YAAY,iBAAiB,QAAQ;AACpF,MAAI,cAAc,WAAW,KAAK,YAAY,SAAS,MAAM;AAC3D,QAAI,YAAY,SAAS,UAAU,YAAY,SAAS,MAAM;AAC5D,aAAO;AAAA,IACT;AACA,QAAI,CAAC,YAAY,YAAY,SAAS,MAAM;AAC1C,aAAO;AAAA,IACT;AACA,QAAI,QAAQ,YAAY,IAAI,GAAG;AAC7B,cAAQ,YAAY,KAAK;AAAA,QACvB,CAAC,UAAU,aAAa,OAAO,OAAO,IAAI,MAAM;AAAA,MACxD;AACM,qBAAe,YAAY,KAAK,IAAI,CAAC,UAAU,QAAQ,KAAK,CAAC,EAAE,KAAK,MAAM;AAAA,IAC5E,OAAO;AACL,qBAAe,QAAQ,WAAW;AAClC,UAAI,iBAAiB,SAAS;AAC5B,gBAAQ,QAAQ,KAAK;AAAA,MACvB,WAAW,iBAAiB,UAAU;AACpC,gBAAQ,cAAc,KAAK;AAAA,MAC7B,WAAW,iBAAiB,YAAY,iBAAiB,YAAY,iBAAiB,aAAa,iBAAiB,YAAY;AAC9H,gBAAQ,cAAc,KAAK,MAAM;AAAA,MACnC,OAAO;AACL,gBAAQ,iBAAiB,YAAY;AAAA,MACvC;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,OAAO;AACV,UAAM,MAAM,GAAG,UAAU,UAAU,KAAK,wBAAwB,YAAY;AAC5E,QAAI,WAAW,OAAO;AACpB,WAAK,GAAG;AACR,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACA,MAAI,IAAI,aAAa,WAAW,KAAK,WAAW,YAAY,SAAS,GAAG;AACtE,UAAM,UAAU;AAChB,UAAM,UAAU,CAAA;AAChB,WAAO,CAAC,QAAQ;AACd,cAAQ,KAAK,GAAG;AAAA,IAClB;AACA,YAAQ,YAAY,UAAU,KAAK;AACnC,WAAO;AACP,QAAI,CAAC,OAAO;AACV,YAAM,OAAO,QAAQ,SAAS,IAAI,OAAO,MAAM,QAAQ,KAAK,MAAM;AAClE,cAAQ,SAAS;AACjB,UAAI,WAAW,OAAO;AACpB,aAAK,GAAG;AACR,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,OAAO,MAAM,KAAK;AACzB,QAAM,OAAO,OAAO,iBAAiB,KAAK;AAAA,IACxC,gBAAgB;AAAA,MACd,OAAO;AAAA,MACP,UAAU;AAAA,IAChB;AAAA,IACI,YAAY;AAAA,MACV,MAAM;AACJ,aAAK,WAAW;AAChB,eAAO;AAAA,MACT;AAAA,IACN;AAAA,IACI,KAAK;AAAA,MACH,MAAM,KAAK;AACT,YAAI,QAAQ,QAAQ;AAClB,cAAI,KAAK,SAAS,WAAW,MAAM,QAAQ,KAAK,IAAI,KAAK,KAAK,KAAK,SAAS,OAAO,GAAG;AACpF,iBAAK,UAAU;AACf;AAAA,UACF;AACA,cAAI,IAAI,MAAM,SAAS,GAAG;AACxB,mBAAO,KAAK;AAAA,UACd;AACA,iBAAO;AAAA,QACT;AACA,YAAI,CAAC,WAAW,GAAG,KAAK,aAAa,MAAM,KAAK,IAAI,MAAM,MAAM;AAC9D,eAAK,GAAG,KAAK,cAAc,8BAA8B,GAAG,GAAG;AAC/D,iBAAO;AAAA,QACT;AACA,YAAI,QAAQ,GAAG,GAAG;AAChB,eAAK,UAAU,MAAM,UAAU,GAAG;AAAA,QACpC,WAAW,cAAc,GAAG,GAAG;AAC7B,eAAK,UAAU,MAAM,UAAU,GAAG;AAAA,QACpC,OAAO;AACL,eAAK,UAAU;AAAA,QACjB;AACA,eAAO;AAAA,MACT;AAAA,IACN;AAAA,EACA,CAAG;AACD,QAAM,EAAE,UAAS,IAAK;AACtB,MAAI,WAAW,SAAS,GAAG;AACzB,SAAK,YAAY,OAAO,WAAW,IAAI;AAAA,EACzC;AACA,SAAO;AACT;AACA,SAAS,gBAAgB,MAAM,KAAK;AAClC,QAAM,OAAO,OAAO,MAAM,GAAG;AAC7B,SAAO,OAAO,eAAe,MAAM,YAAY;AAAA,IAC7C,MAAM,IAAI;AACR,UAAI,WAAW,KAAK,SAAS,GAAG;AAC9B;AAAA,UACE,GAAG,KAAK,cAAc;AAAA,EAC9B,KAAK;AAAA,YACK;AAAA,UACZ,CAAW;AAAA,QACX;AAAA,MACM;AACA,WAAK,YAAY,OAAO,IAAI,IAAI;AAChC,aAAO;AAAA,IACT;AAAA,EACJ,CAAG;AACH;AAgCA,SAAS,OAAOA,SAAQ;AACtB,SAAOA,QAAO,QAAQ,eAAe,IAAI;AAC3C;AAEA,MAAM,MAAM,MAAM,gBAAgB,OAAO,EAAE;AAC3C,MAAM,OAAO,MAAM,gBAAgB,YAAY;AAAA,EAC7C,MAAM;AACR,CAAC;AACD,MAAM,OAAO,MAAM,gBAAgB,WAAW;AAAA,EAC5C,MAAM;AACR,CAAC;AACD,MAAM,SAAS,MAAM,gBAAgB,UAAU;AAAA,EAC7C,MAAM;AACR,CAAC;AACD,MAAM,SAAS,MAAM,gBAAgB,UAAU;AAAA,EAC7C,MAAM;AACR,CAAC;AACD,MAAM,QAAQ,MAAM,gBAAgB,SAAS;AAAA,EAC3C,MAAM;AACR,CAAC;AACD,MAAM,SAAS,MAAM,gBAAgB,UAAU;AAAA,EAC7C,MAAM;AACR,CAAC;AACD,MAAM,UAAU,MAAM,OAAO,WAAW;AAAA,EACtC,MAAM;AAAA,EACN,UAAU,OAAO;AACf,UAAM,MAAM,UAAU,KAAK;AAC3B,QAAI,QAAQ,OAAO;AACjB,WAAK,cAAc,KAAK,qBAAqB;AAAA,IAC/C;AACA,WAAO;AAAA,EACT;AACF,CAAC;AACD,MAAM,SAAS,MAAM,OAAO,UAAU;AAAA,EACpC,UAAU,OAAO;AACf,UAAM,MAAM,OAAO,UAAU;AAC7B,QAAI,QAAQ,OAAO;AACjB,WAAK,2BAA2B,KAAK,GAAG;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AACF,CAAC;AACD,MAAM,WAAW,MAAM,OAAO;AAAA,EAC5B;AAAA,IACE,MAAM;AAAA,IACN,UAAU,OAAO;AACf,YAAM,MAAM,UAAU;AACtB,UAAI,QAAQ,OAAO;AACjB,aAAK,iCAAiC;AAAA,MACxC;AACA,aAAO;AAAA,IACT;AAAA,EACJ;AAAA,EACE;AAAA,EACA,EAAE,OAAO,WAAU;AACrB;AAEA,SAAS,OAAO,aAAa,UAAU,4BAA4B;AACjE,MAAI,OAAO,gBAAgB,YAAY;AACrC,UAAM,IAAI;AAAA,MACR;AAAA,IACN;AAAA,EACE;AACA,SAAO,OAAO,YAAY,QAAQ,0BAA0B;AAAA,IAC1D,MAAM;AAAA,IACN,UAAU,OAAO;AACf,YAAM,QAAQ,YAAY,KAAK;AAC/B,UAAI,CAAC;AACH,aAAK,GAAG,KAAK,cAAc,MAAM,OAAO,EAAE;AAC5C,aAAO;AAAA,IACT;AAAA,EACJ,CAAG;AACH;AAEA,SAAS,MAAM,KAAK;AAClB,MAAI,CAAC,QAAQ,GAAG,GAAG;AACjB,UAAM,IAAI;AAAA,MACR;AAAA,IACN;AAAA,EACE;AACA,QAAM,MAAM,mCAAmC,IAAI,IAAI,CAAC,MAAM,OAAO,MAAM,WAAW,EAAE,SAAQ,IAAK,CAAC,EAAE,KAAK,MAAM,CAAC;AACpH,QAAM,OAAO;AAAA,IACX,UAAU,OAAO;AACf,YAAM,QAAQ,IAAI,QAAQ,KAAK,MAAM;AACrC,UAAI,CAAC;AACH,aAAK,GAAG;AACV,aAAO;AAAA,IACT;AAAA,EACJ;AACE,MAAI,IAAI,QAAQ,IAAI,MAAM,IAAI;AAC5B,UAAM,OAAO,IAAI;AAAA,MACf,CAAC,KAAK,MAAM;AACV,YAAI,MAAM,QAAQ,MAAM,QAAQ;AAC9B,gBAAM,SAAS,EAAE;AACjB,cAAI,QAAQ,MAAM,MAAM,MAAM,IAAI,KAAK,MAAM;AAAA,QAC/C;AACA,eAAO;AAAA,MACT;AAAA,MACA,CAAA;AAAA,IACN;AACI,QAAI,KAAK,SAAS,GAAG;AACnB,WAAK,OAAO;AAAA,IACd;AAAA,EACF;AACA,SAAO,OAAO,SAAS,IAAI;AAC7B;AAEA,SAAS,UAAU,KAAK;AACtB,MAAI,CAAC,QAAQ,GAAG,GAAG;AACjB,UAAM,IAAI;AAAA,MACR;AAAA,IACN;AAAA,EACE;AACA,MAAI,sBAAsB;AAC1B,MAAI,cAAc;AAClB,MAAI,eAAe,CAAA;AACnB,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,GAAG;AACtC,UAAM,OAAO,IAAI,CAAC;AAClB,QAAI,cAAc,IAAI,GAAG;AACvB,UAAI,WAAW,KAAK,SAAS,GAAG;AAC9B,8BAAsB;AAAA,MACxB;AACA,UAAI,aAAa,MAAM,OAAO,KAAK,KAAK,MAAM;AAC5C,uBAAe,aAAa,OAAO,KAAK,IAAI;AAC5C;AAAA,MACF;AACA,UAAI,aAAa,MAAM,UAAU,GAAG;AAClC,sBAAc;AACd;AAAA,MACF;AACA,UAAI,KAAK,SAAS,QAAQ,CAAC,KAAK,MAAM;AACpC,aAAK,0DAA0D;AAC/D;AAAA,MACF;AACA,qBAAe,aAAa,OAAO,KAAK,IAAI;AAAA,IAC9C,OAAO;AACL,mBAAa,KAAK,IAAI;AAAA,IACxB;AAAA,EACF;AACA,iBAAe,aAAa,OAAO,CAAC,GAAG,MAAM,aAAa,QAAQ,CAAC,MAAM,CAAC;AAC1E,QAAM,WAAW,gBAAgB,SAAS,aAAa,SAAS,IAAI,eAAe;AACnF,MAAI,CAAC,qBAAqB;AACxB,WAAO,OAAO,aAAa;AAAA,MACzB,MAAM;AAAA,IACZ,CAAK;AAAA,EACH;AACA,SAAO,OAAO,aAAa;AAAA,IACzB,MAAM;AAAA,IACN,UAAU,OAAO;AACf,YAAM,MAAM,CAAA;AACZ,YAAM,QAAQ,IAAI,KAAK,CAAC,SAAS;AAC/B,cAAM,MAAM,aAAa,MAAM,OAAO,IAAI;AAC1C,YAAI,OAAO,QAAQ,UAAU;AAC3B,cAAI,KAAK,GAAG;AAAA,QACd;AACA,eAAO,QAAQ;AAAA,MACjB,CAAC;AACD,UAAI,CAAC,OAAO;AACV;AAAA,UACE,wDAAwD,IAAI,MAAM;AAAA,EAC1E,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC;AAAA,QACxB;AAAA,MACM;AACA,aAAO;AAAA,IACT;AAAA,EACJ,CAAG;AACH;AAEA,SAAS,QAAQ,MAAM;AACrB,SAAO,OAAO,WAAW;AAAA,IACvB,MAAM;AAAA,IACN,UAAU,QAAQ;AAChB,UAAI,UAAU;AACd,YAAM,QAAQ,OAAO,MAAM,CAAC,UAAU;AACpC,kBAAU,aAAa,MAAM,OAAO,IAAI;AACxC,eAAO,YAAY;AAAA,MACrB,CAAC;AACD,UAAI,CAAC,OAAO;AACV,aAAK;AAAA,EACX,OAAO,OAAO,CAAC,EAAE;AAAA,MACb;AACA,aAAO;AAAA,IACT;AAAA,EACJ,CAAG;AACH;AAEA,SAAS,WAAW,qBAAqB;AACvC,SAAO,OAAO,cAAc;AAAA,IAC1B,MAAM;AAAA,EACV,CAAG;AACH;AAEA,SAAS,SAAS,MAAM;AACtB,SAAO,OAAO,YAAY;AAAA,IACxB,MAAM;AAAA,IACN,UAAU,KAAK;AACb,UAAI,UAAU;AACd,UAAI,CAAC,cAAc,GAAG,GAAG;AACvB,eAAO;AAAA,MACT;AACA,YAAM,QAAQ,OAAO,KAAK,GAAG,EAAE,MAAM,CAAC,QAAQ;AAC5C,kBAAU,aAAa,MAAM,IAAI,GAAG,GAAG,IAAI;AAC3C,eAAO,YAAY;AAAA,MACrB,CAAC;AACD,UAAI,CAAC,OAAO;AACV,aAAK;AAAA,EACX,OAAO,OAAO,CAAC,EAAE;AAAA,MACb;AACA,aAAO;AAAA,IACT;AAAA,EACJ,CAAG;AACH;AAEA,SAAS,MAAM,KAAK;AAClB,QAAM,OAAO,OAAO,KAAK,GAAG;AAC5B,QAAM,eAAe,KAAK,OAAO,CAAC,QAAG;;AAAK,YAAC,GAAC,SAAI,GAAG,MAAP,mBAAU;AAAA,GAAQ;AAC9D,QAAM,OAAO,OAAO,SAAS;AAAA,IAC3B,MAAM;AAAA,IACN,UAAU,OAAO;AACf,UAAI,CAAC,cAAc,KAAK,GAAG;AACzB,eAAO;AAAA,MACT;AACA,YAAM,YAAY,OAAO,KAAK,KAAK;AACnC,UAAI,aAAa,SAAS,KAAK,aAAa,KAAK,CAAC,QAAQ,UAAU,QAAQ,GAAG,MAAM,EAAE,GAAG;AACxF,cAAM,UAAU,aAAa;AAAA,UAC3B,CAAC,QAAQ,UAAU,QAAQ,GAAG,MAAM;AAAA,QAC9C;AACQ,YAAI,QAAQ,WAAW,GAAG;AACxB,eAAK,8BAA8B,QAAQ,CAAC,CAAC,mBAAmB;AAAA,QAClE,OAAO;AACL;AAAA,YACE,gCAAgC,QAAQ;AAAA,cACtC;AAAA,YACd,CAAa;AAAA,UACb;AAAA,QACQ;AACA,eAAO;AAAA,MACT;AACA,aAAO,UAAU,MAAM,CAAC,QAAQ;AAC9B,YAAI,KAAK,QAAQ,GAAG,MAAM,IAAI;AAC5B,cAAI,KAAK,sBAAsB;AAC7B,mBAAO;AACT;AAAA,YACE,gDAAgD,GAAG,8BAA8B,KAAK;AAAA,cACpF;AAAA,YACd,CAAa;AAAA,UACb;AACU,iBAAO;AAAA,QACT;AACA,cAAM,QAAQ,IAAI,GAAG;AACrB,cAAM,QAAQ,aAAa,OAAO,MAAM,GAAG,GAAG,IAAI;AAClD,YAAI,OAAO,UAAU,UAAU;AAC7B,eAAK,YAAY,GAAG;AAAA,GAC3B,OAAO,KAAK,CAAC,EAAE;AAAA,QACV;AACA,eAAO,UAAU;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,EACJ,CAAG;AACD,SAAO,eAAe,MAAM,qBAAqB;AAAA,IAC/C,UAAU;AAAA,IACV,OAAO;AAAA,EACX,CAAG;AACD,SAAO,eAAe,MAAM,SAAS;AAAA,IACnC,MAAM;AACJ,WAAK,oBAAoB;AACzB,aAAO;AAAA,IACT;AAAA,EACJ,CAAG;AACD,SAAO;AACT;AAEA,IAAI,YAAY,OAAO;AACvB,IAAI,kBAAkB,CAAC,KAAK,KAAK,UAAU,OAAO,MAAM,UAAU,KAAK,KAAK,EAAE,YAAY,MAAM,cAAc,MAAM,UAAU,MAAM,MAAK,CAAE,IAAI,IAAI,GAAG,IAAI;AAC1J,IAAI,gBAAgB,CAAC,KAAK,KAAK,UAAU;AACvC,kBAAgB,KAAK,OAAO,QAAQ,WAAW,MAAM,KAAK,KAAK,KAAK;AACpE,SAAO;AACT;AACA,MAAM,eAAgC,uBAAM;AAC1C,MAAI;AACJ;AAAA;AAAA,IAEE,KAAK,MAAM;AAAA,MACT,WAAW,MAAM;AACf,eAAO,IAAG;AAAA,MACZ;AAAA,MACA,WAAW,OAAO;AAChB,eAAO,KAAI,EAAG,IAAI,KAAK,SAAS,IAAI;AAAA,MACtC;AAAA,MACA,WAAW,OAAO;AAChB,YAAI,KAAK,SAAS,SAAS,QAAQ;AACjC,iBAAO,KAAI;AAAA,QACb;AACA,eAAO,KAAI,EAAG,IAAI,KAAK,SAAS,IAAI;AAAA,MACtC;AAAA,MACA,WAAW,SAAS;AAClB,eAAO,OAAM,EAAG,IAAI,KAAK,SAAS,MAAM;AAAA,MAC1C;AAAA,MACA,WAAW,SAAS;AAClB,eAAO,OAAM,EAAG,IAAI,KAAK,SAAS,MAAM;AAAA,MAC1C;AAAA,MACA,WAAW,QAAQ;AACjB,eAAO,MAAK,EAAG,IAAI,KAAK,SAAS,KAAK;AAAA,MACxC;AAAA,MACA,WAAW,SAAS;AAClB,eAAO,OAAM,EAAG,IAAI,KAAK,SAAS,MAAM;AAAA,MAC1C;AAAA,MACA,WAAW,UAAU;AACnB,eAAO,QAAO,EAAG,IAAI,KAAK,SAAS,OAAO;AAAA,MAC5C;AAAA,MACA,WAAW,SAAS;AAClB,eAAO,OAAM;AAAA,MACf;AAAA,MACA,WAAW,WAAW;AACpB,eAAO,SAAQ;AAAA,MACjB;AAAA;AAAA,MAEA,OAAO,UAAU,MAAM;AACrB;AAAA,UACE;AAAA,QACV;AAAA,MACM;AAAA,IACN,GAAO,cAAc,IAAI,YAAY,EAAE,GAAG,cAAc,IAAI,kBAAkB,GAAG,cAAc,IAAI,UAAU,MAAM,GAAG,cAAc,IAAI,UAAU,MAAM,GAAG,cAAc,IAAI,SAAS,KAAK,GAAG,cAAc,IAAI,cAAc,UAAU,GAAG,cAAc,IAAI,aAAa,SAAS,GAAG,cAAc,IAAI,WAAW,OAAO,GAAG,cAAc,IAAI,YAAY,QAAQ,GAAG,cAAc,IAAI,SAAS,KAAK,GAAG,cAAc,IAAI,SAAS;AAAA,MAC9Z,SAAS,OAAO,MAAM;AACpB,eAAO,aAAa,MAAM,OAAO,IAAI,MAAM;AAAA,MAC7C;AAAA,MACA,OAAO,MAAM,KAAK,YAAY,OAAO;AACnC,eAAO,YAAY,gBAAgB,MAAM,GAAG,IAAI,OAAO,MAAM,GAAG;AAAA,MAClE;AAAA,IACN,CAAK,GAAG;AAAA;AAER,GAAC;AACD,SAAS,YAAY,OAAO,gBAAgB;AAC1C,MAAI;AACJ,SAAO,KAAK,cAAc,aAAa;AAAA,IACrC,WAAW,mBAAmB;AAC5B,aAAO,EAAE,GAAG,KAAK,SAAQ;AAAA,IAC3B;AAAA,IACA,WAAW,iBAAiB,GAAG;AAC7B,UAAI,MAAM,OAAO;AACf,aAAK,WAAW,CAAA;AAChB;AAAA,MACF;AACA,UAAI,MAAM,MAAM;AACd,aAAK,WAAW,EAAE,GAAG,KAAI;AACzB;AAAA,MACF;AACA,WAAK,WAAW,EAAE,GAAG,EAAC;AAAA,IACxB;AAAA,EACJ,GAAK,cAAc,IAAI,YAAY,EAAE,GAAG,KAAI,CAAE,GAAG;AACjD;AACA,MAAM,iBAAiB,YAAW,EAAG;AACrC;AC5iBA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;ACyClB,UAAM,QAAQ;AAuBd,UAAM,WAAW,IAAA;AAGjB,aAAa;AAAA,MACX;AAAA,IAAA,CACD;AAED,UAAM,UAAU,SAAS,MAAM;AAC7B,UAAI,CAAC,MAAM,KAAK;AACd;AAAA,MACF;AACA,YAAM,WAAW,MAAM,IAAI,MAAM,GAAG,EAAE,CAAC;AACvC,aAAO;AAAA,IACT,CAAC;AAGD,UAAM,uBAAuB,SAAS,MAAM;AAC1C,UAAI,MAAM,kBAAkB,MAAM,eAAe,SAAS,GAAG;AAC3D,cAAM,QAAQ,MAAM,eAAe,UAAU,CAAC,QAAQ,QAAQ,QAAQ,KAAK;AAC3E,eAAO,SAAS,IAAI,QAAQ,MAAM;AAAA,MACpC;AACA,aAAO,MAAM;AAAA,IACf,CAAC;AAED,UAAM,cAAc,SAAS,MAAM;AAEjC,UAAI,MAAM,kBAAkB,MAAM,eAAe,SAAS,GAAG;AAC3D,eAAO,MAAM;AAAA,MACf;AAGA,UAAI,CAAC,MAAM,KAAK;AACd,eAAO,CAAA;AAAA,MACT;AACA,YAAM,gBAAgB,MAAM,IAAI,MAAM,GAAG;AACzC,YAAM,UAAoB,CAAA;AAC1B,oBAAc,QAAQ,CAAC,SAAiB;AACtC,YAAI,KAAK,KAAA,MAAW,IAAI;AACtB;AAAA,QACF;AACA,eAAO,QAAQ,KAAK,IAAI;AAAA,MAC1B,CAAC;AACD,aAAO;AAAA,IACT,CAAC;AAED,UAAM,YAAY,SAAS,MAAO,OAAO,MAAM,SAAS,WAAW,MAAM,QAAQ,GAAG,MAAM,KAAK,IAAK;AAEpG,UAAM,aAAa,SAAS,MAAO,OAAO,MAAM,UAAU,WAAW,MAAM,SAAS,GAAG,MAAM,MAAM,IAAK;AAExG,UAAM,WAAW,CAAC,UAAkB;AAClC,YAAM,MAAM,YAAY,KAAK;AAC7B,YAAM,SAAS,IAAI,MAAM,IAAI,YAAY,GAAG,CAAC;AAC7C,YAAM,WAAW,KAAK,IAAA,IAAQ;AAE9B,YAAM,GAAG,EACN,KAAK,CAAC,aAAa,SAAS,MAAM,EAClC,KAAK,CAAC,SAAS;AACd,cAAM,UAAU,IAAI,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AACpD,cAAM,OAAO,SAAS,cAAc,GAAG;AACvC,aAAK,OAAO;AACZ,aAAK,WAAW;AAChB,iBAAS,KAAK,YAAY,IAAI;AAC9B,aAAK,MAAA;AACL,YAAI,gBAAgB,OAAO;AAC3B,aAAK,OAAA;AAAA,MACP,CAAC;AAAA,IACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7GA,UAAM,QAAQ;AACd,UAAM,OAAO;AAEb,UAAM,YAAY,SAAS;AAAA,MACzB,KAAK,MAAM,MAAM;AAAA,MACjB,KAAK,CAAC,QAAQ,KAAK,qBAAqB,GAAG;AAAA,IAAA,CAC5C;AAED,UAAM,iBAAiB,CAAC,SAA0B;AAChD,WAAK,aAAa,IAAI;AAAA,IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACSA,UAAM,QAAQ;AAWd,UAAM,mBAAmB,SAAS,MAAM;AACtC,UAAI,MAAM,UAAU,MAAM,MAAM,UAAU,QAAQ,OAAO,MAAM,UAAU,aAAa;AACpF,eAAO,CAAA;AAAA,MACT;AACA,UAAI,MAAM,QAAQ,MAAM,KAAK,GAAG;AAC9B,eAAO,MAAM,MAAM,IAAI,CAAC,SAAS,OAAO,IAAI,CAAC,EAAE,OAAO,OAAO;AAAA,MAC/D;AACA,aAAO,OAAO,MAAM,KAAK,EACtB,MAAM,MAAM,SAAS,EACrB,IAAI,CAAC,SAAS,KAAK,KAAA,CAAM,EACzB,OAAO,OAAO;AAAA,IACnB,CAAC;AAED,UAAM,iBAAiB;AAAA,MAAS,MAC9B,iBAAiB,MACd,IAAI,CAAC,UAAA;;AAAU,2BAAM,YAAN,mBAAe,KAAK,CAAC,SAAS,OAAO,KAAK,KAAK,MAAM;AAAA,OAAM,EAC1E,OAAO,CAAC,SAAiC,CAAC,CAAC,IAAI;AAAA,IAAA;AAGpD,UAAM,kBAAkB,SAAS,MAAM,iBAAiB,MAAM,OAAO,CAAC;;AAAU,gBAAC,WAAM,YAAN,mBAAe,KAAK,CAAC,SAAS,OAAO,KAAK,KAAK,MAAM;AAAA,KAAM,CAAC;AAE7I,UAAM,gBAAgB,SAAS,MAAM,gBAAgB,MAAM,KAAK,GAAG,CAAC;AAEpE,UAAM,eAAe,SAAS,OAAO;AAAA,MACnC,KAAK,OAAO,MAAM,QAAQ,WAAW,GAAG,MAAM,GAAG,OAAO,MAAM;AAAA,IAAA,EAC9D;AAEF,UAAM,cAAc,SAAS,MAAM,MAAM,KAAK;AAE9C,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,MAAM,UAAU,QAAQ;AAC1B,eAAO;AAAA,MACT;AACA,UAAI,MAAM,UAAU,SAAS;AAC3B,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT,CAAC;AAED,UAAM,iBAAiB,CAAC,SAAoC;AAC1D,YAAM,UAAU,KAAK;AACrB,UAAI,YAAY,aAAa,YAAY,aAAa,YAAY,UAAU,YAAY,aAAa,YAAY,UAAU;AACzH,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/EA,UAAM,QAAQ;AAKd,UAAM,OAAO;AAGb,UAAM,YAAY,IAAiC,EAAE;AAGrD,UAAM,cAAc,CAAC,IAAS,UAAkB;AAC9C,UAAI,IAAI;AACN,kBAAU,MAAM,KAAK,IAAI;AAAA,MAC3B;AAAA,IACF;AAGA,UAAM,WAAW,SAA8B,MAAM,KAAK,EAAE,QAAQ,MAAM,aAAA,GAAgB,OAAO,EAAE,OAAO,GAAA,EAAK,CAAC;AAGhH;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,CAAC,WAAW;AACV,YAAI,QAAQ;AACV,gBAAM,QAAQ,OAAO,MAAM,GAAG;AAC9B,gBAAM,QAAQ,CAAC,MAAM,UAAU;AAC7B,gBAAI,QAAQ,SAAS,QAAQ;AAC3B,uBAAS,KAAK,EAAE,QAAQ;AAAA,YAC1B;AAAA,UACF,CAAC;AAAA,QACH,OAAO;AACL,mBAAS,QAAQ,CAAC,QAAS,IAAI,QAAQ,EAAG;AAAA,QAC5C;AAAA,MACF;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;AAIpB,UAAM,cAAc,MAAM;AACxB,YAAM,QAAQ,SAAS,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE,KAAK,GAAG;AACvD,WAAK,qBAAqB,KAAK;AAAA,IACjC;AAGA,UAAM,cAAc,CAAC,OAAe,UAAiB;;AACnD,YAAM,QAAQ,MAAM;AACpB,UAAI,QAAQ,MAAM;AAGlB,cAAQ,MAAM,QAAQ,UAAU,EAAE;AAGlC,UAAI,OAAO;AACT,cAAM,MAAM,SAAS,OAAO,EAAE;AAC9B,YAAI,MAAM,KAAK;AACb,kBAAQ;AAAA,QACV;AAAA,MACF;AAEA,eAAS,KAAK,EAAE,QAAQ;AAGxB,UAAI,MAAM,WAAW,KAAK,QAAQ,SAAS,SAAS,GAAG;AACrD,wBAAU,MAAM,QAAQ,CAAC,MAAzB,mBAA4B;AAAA,MAC9B;AAEA,kBAAA;AAAA,IACF;AAGA,UAAM,gBAAgB,CAAC,OAAe,UAAyB;;AAC7D,YAAM,QAAQ,MAAM;AACpB,YAAM,QAAQ,MAAM;AAGpB,WAAK,MAAM,QAAQ,OAAO,MAAM,QAAQ,iBAAiB,QAAQ,SAAS,SAAS,GAAG;AACpF,cAAM,eAAA;AACN,kBAAU,MAAM,QAAQ,CAAC,EAAE,MAAA;AAAA,MAC7B;AAGA,UAAI,MAAM,QAAQ,eAAe,QAAQ,KAAK,MAAM,mBAAmB,GAAG;AACxE,cAAM,eAAA;AACN,wBAAU,MAAM,QAAQ,CAAC,MAAzB,mBAA4B;AAAA,MAC9B;AAGA,UAAI,MAAM,QAAQ,eAAe,CAAC,SAAS,QAAQ,GAAG;AACpD,cAAM,eAAA;AACN,wBAAU,MAAM,QAAQ,CAAC,MAAzB,mBAA4B;AAAA,MAC9B;AAAA,IACF;AAGA,UAAM,cAAc,CAAC,UAA0B;;AAC7C,YAAM,eAAA;AACN,YAAM,cAAY,WAAM,kBAAN,mBAAqB,QAAQ,YAAW;AAC1D,YAAM,QAAQ,UAAU,MAAM,GAAG,EAAE,OAAO,CAACC,OAAM,QAAQ,KAAKA,EAAC,CAAC;AAEhE,YAAM,QAAQ,CAAC,MAAM,UAAU;AAC7B,YAAI,QAAQ,SAAS,QAAQ;AAC3B,gBAAM,MAAM,SAAS,MAAM,EAAE;AAC7B,mBAAS,KAAK,EAAE,QAAQ,MAAM,MAAM,QAAQ;AAAA,QAC9C;AAAA,MACF,CAAC;AAED,kBAAA;AAAA,IACF;AAGA,UAAM,QAAQ,MAAM;;AAClB,sBAAU,MAAM,CAAC,MAAjB,mBAAoB;AAAA,IACtB;AAGA,aAAa;AAAA,MACX;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVD,UAAM,eAAe;AAAA,MACnB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAAU;AAAA,MACV,eAAe;AAAA,MACf,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,YAAY;AAAA,IAAA;AAGd,UAAM,sBAA8C;AAAA,MAClD,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAAU;AAAA,MACV,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,YAAY;AAAA,IAAA;AAGd,UAAM,eAAoD;AAAA,MACxD,WAAW;AAAA,QACT,MAAM;AAAA,QACN,kBAAkB;AAAA,QAClB,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,MAAA;AAAA,MAElB,eAAe;AAAA,QACb,MAAM;AAAA,QACN,kBAAkB;AAAA,QAClB,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,MAAA;AAAA,IAClB;AAGF,UAAM,QAAQ;AA6Bd,UAAM,OAAO;AAKb,UAAM,aAAaC,SAAgC,SAAA,YAAgB;AACnE,UAAM,UAAU,eAA4C,SAAS;AACrE,UAAM,cAAc,IAAc,EAAE;AACpC,UAAM,oBAAoB,IAAyB,WAAW,WAAW,KAAK,CAAC;AAE/E,UAAM,eAAe,SAAS,MAAM,MAAM,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC;AAE9E,aAAS,WAAc,OAAa;AAClC,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,eAAO,MAAM,IAAI,CAAC,SAAS,WAAW,IAAI,CAAC;AAAA,MAC7C;AACA,UAAI,SAAS,OAAO,UAAU,UAAU;AACtC,eAAO,OAAO,QAAQ,KAA4B,EAAE;AAAA,UAClD,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM;AACpB,gBAAI,GAAG,IAAI,WAAW,IAAI;AAC1B,mBAAO;AAAA,UACT;AAAA,UACA,CAAA;AAAA,QAAC;AAAA,MAEL;AACA,aAAO;AAAA,IACT;AAEA,aAASC,mBAAiB,MAAsB;AAC9C,UAAI,KAAK,OAAQ,QAAO,KAAK;AAC7B,aAAO,aAAa,KAAK,IAAiC,KAAK;AAAA,IACjE;AAEA,aAAS,eAAe,MAAsB;;AAC5C,aAAO,KAAK,aAAW,UAAK,UAAL,mBAAY,YAAW,CAAA;AAAA,IAChD;AAEA,aAAS,aAAa,MAAsB;AAC1C,YAAM,OAAO,KAAK,QAAQ;AAC1B,YAAM,YAAY,OAAO,QAAQ,KAAK,SAAS,CAAA,CAAE,EAAE;AAAA,QACjD,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AACrB,cAAI,GAAG,IAAI,MAAM,KAAK;AACtB,iBAAO;AAAA,QACT;AAAA,QACA,CAAA;AAAA,MAAC;AAEH,aAAO,UAAU;AAEjB,UAAI,aAAa,IAAI,GAAG;AACtB,eAAO,OAAO,WAAW,aAAa,IAAI,CAAC;AAAA,MAC7C;AACA,UAAI,SAAS,cAAc;AACzB,YAAI,UAAU,SAAS,QAAW;AAChC,oBAAU,OAAO,eAAe,IAAI;AAAA,QACtC;AACA,YAAI,CAAC,MAAM,QAAQ,UAAU,IAAI,GAAG;AAClC,oBAAU,OAAO,CAAA;AAAA,QACnB;AAAA,MACF;AACA,UAAI,CAAC,UAAU,eAAe,KAAK,aAAa;AAC9C,kBAAU,cAAc,KAAK;AAAA,MAC/B;AACA,UAAI,CAAC,UAAU,eAAe,oBAAoB,IAAI,GAAG;AACvD,kBAAU,cAAc,oBAAoB,IAAI;AAAA,MAClD;AACA,UAAI,SAAS,YAAY,UAAU,eAAe,QAAW;AAC3D,kBAAU,aAAa;AAAA,MACzB;AACA,UAAI,UAAU,cAAc,UAAa,CAAC,CAAC,UAAU,UAAU,EAAE,SAAS,IAAI,GAAG;AAC/E,kBAAU,YAAY;AAAA,MACxB;AACA,aAAO;AAAA,IACT;AAEA,aAAS,cAAc,KAAa;AAClC,aAAO,WAAW,MAAM,GAAG;AAAA,IAC7B;AAEA,aAAS,cAAc,KAAa,OAAgB;AAClD,UAAI,UAAU,IAAI;AAChB,eAAO,WAAW,MAAM,GAAG;AAC3B;AAAA,MACF;AACA,iBAAW,MAAM,GAAG,IAAI;AAAA,IAC1B;AAEA,aAAS,oBAAoB,OAAyB;AACpD,YAAM,UAAiC;AAAA,QACrC,mBAAmB;AAAA,QACnB,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,QACnB,UAAU;AAAA,QACV,WAAW;AAAA,QACX,GAAG,MAAM;AAAA,MAAA;AAGX,UAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,cAAM,YAAY,MAAM,IAAI,CAAC,SAAS,oBAAoB,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,SAAS,MAAS;AACpG,eAAO,UAAU,WAAW,KAAK,QAAQ,mBAAmB,SAAY;AAAA,MAC1E;AAEA,UAAI,SAAS,OAAO,UAAU,UAAU;AACtC,cAAM,YAAY,OAAO,QAAQ,KAAgC,EAAE;AAAA,UACjE,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM;AACpB,kBAAM,YAAY,oBAAoB,IAAI;AAC1C,gBAAI,cAAc,QAAW;AAC3B,kBAAI,GAAG,IAAI;AAAA,YACb;AACA,mBAAO;AAAA,UACT;AAAA,UACA,CAAA;AAAA,QAAC;AAEH,eAAO,OAAO,KAAK,SAAS,EAAE,WAAW,KAAK,QAAQ,oBAAoB,SAAY;AAAA,MACxF;AAEA,UAAI,OAAO,UAAU,UAAU;AAC7B,eAAO,QAAQ,qBAAqB,MAAM,KAAA,MAAW,KAAK,SAAY;AAAA,MACxE;AAEA,UAAI,UAAU,GAAG;AACf,eAAO,QAAQ,WAAW,QAAQ;AAAA,MACpC;AAEA,UAAI,UAAU,OAAO;AACnB,eAAO,QAAQ,YAAY,QAAQ;AAAA,MACrC;AAEA,aAAO;AAAA,IACT;AAEA,aAAS,YAAY;AACnB,aAAQ,oBAAoB,WAAW,WAAW,KAAK,CAAC,KAAK,CAAA;AAAA,IAC/D;AAEA,aAAS,cAAc;;AACrB,oBAAQ,UAAR,mBAAe;AACf,aAAO,KAAK,WAAW,KAAK,EAAE,QAAQ,CAAC,QAAQ,OAAO,WAAW,MAAM,GAAG,CAAC;AAC3E,aAAO,OAAO,WAAW,OAAO,WAAW,kBAAkB,KAAK,CAAC;AACnE,WAAK,OAAO;AAAA,IACd;AAEA,aAAS,eAAe;AACtB,WAAK,UAAU,WAAW;AAAA,IAC5B;AAEA,aAAa;AAAA,MACX,OAAO;AAAA,MACP,UAAU,IAAI,SAAA;;AAAgB,6BAAQ,UAAR,mBAAe,SAAS,GAAG;AAAA;AAAA,MACzD;AAAA,MACA;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtTD,UAAM,OAAO;AAKb,UAAM,eAAe,CAAC,UAA0B;AAC9C,WAAK,qBAAqB,KAAK;AAC/B,WAAK,UAAU,KAAK;AAAA,IACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpCA,UAAM,QAAQ;AAiBd,UAAM,YAAY,SAAS,OAAO;AAAA,MAChC,YAAY,MAAM;AAAA,IAAA,EAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACkDF,UAAM,QAAQ;AAsBd,UAAM,QAAQ,SAAA;AACd,UAAM,aAAa,IAAA;AAEnB,UAAM,OAAO;AAOb,UAAM,iBAAiB,SAAS,MAAM;AACpC,YAAM,WAAW,IAAI,IAAI,MAAM,YAAY,IAAI,CAAC,MAAM,UAAU,CAAC,KAAK,KAAK,EAAE,GAAG,MAAM,SAAS,MAAA,CAAO,CAAC,CAAC;AAExG,aAAO,MAAM,QACV,IAAI,CAAC,QAAQ,UAAU;AACtB,cAAM,YAAY,OAAO;AACzB,cAAM,QAAQ,cAAc,SAAY,SAAS,IAAI,SAAS,IAAI;AAClE,eAAO;AAAA,UACL,GAAG;AAAA,UACH,UAAS,+BAAO,YAAW,OAAO;AAAA,UAClC,UAAS,+BAAO,YAAW,OAAO;AAAA,UAClC,QAAO,+BAAO,UAAS,OAAO;AAAA,UAC9B,cAAa,+BAAO,eAAa,+BAAO,YAAW;AAAA,QAAA;AAAA,MAEvD,CAAC,EACA,OAAO,CAAC,SAAS,KAAK,YAAY,SAAS,KAAK,YAAY,KAAK,EACjE,KAAK,CAAC,GAAG,MAAM,OAAO,EAAE,eAAe,CAAC,IAAI,OAAO,EAAE,eAAe,CAAC,CAAC;AAAA,IAC3E,CAAC;AACD,UAAM,UAAU,SAAS,MAAA;;AAAM,gBAAC,WAAM,SAAN,mBAAY;AAAA,KAAM;AAClD,UAAM,oBAAoB,SAAS,MAAA;;AAAM,0BAAM,eAAN,mBAAkB,cAAW,WAAM,eAAN,mBAAkB,YAAW;AAAA,KAAC;AACpG,UAAM,iBAAiB,SAAS,MAAA;;AAAM,0BAAM,eAAN,mBAAkB,eAAY,WAAM,eAAN,mBAAkB,SAAQ;AAAA,KAAE;AAChG,UAAM,kBAAkB,SAAS,MAAA;;AAAM,0BAAM,eAAN,mBAAkB,UAAS;AAAA,KAAC;AACnE,UAAM,iBAAiB,SAAS,MAAM,CAAC,CAAC,MAAM,eAAe,MAAM,2BAA2B,CAAC,CAAC,gBAAgB,MAAM;AACtH,UAAM,kBAAkB,SAAS,MAAA;;AAAM,0BAAM,sBAAN,mBAAyB,UAAS;AAAA,KAAO;AAEhF,UAAM,kBAAkB,SAAS,OAAO;AAAA,MACtC,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,WAAW,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,MAC3B,YAAY;AAAA,MACZ,GAAG,MAAM;AAAA,IAAA,EACT;AAEF,UAAM,mBAAmB,SAAS,OAAO;AAAA,MACvC,GAAG;AAAA,MACH,MAAM,MAAM;AAAA,IAAA,EACZ;AAEF,aAAS,iBAAiB,KAAmB;AAC3C,YAAM,OAAO,EAAE,GAAG,IAAA;AAClB,aAAO,KAAK;AACZ,aAAO,KAAK;AACZ,aAAO,KAAK;AACZ,aAAO,KAAK;AACZ,aAAO,KAAK;AACZ,aAAO,KAAK;AACZ,aAAO,KAAK;AACZ,aAAO;AAAA,IACT;AAEA,aAAS,eAAe,OAAe;AACrC,cAAQ,kBAAkB,QAAQ,KAAK,eAAe,QAAQ,QAAQ;AAAA,IACxE;AAEA,aAAS,eAAe,SAAqC;AAC3D,UAAI,CAAC,MAAM,WAAY;AACvB,WAAK,qBAAqB;AAAA,QACxB,GAAG,MAAM;AAAA,QACT,SAAS,QAAQ,WAAW,QAAQ,WAAW,kBAAkB;AAAA,QACjE,SAAS,QAAQ,WAAW,QAAQ,WAAW,kBAAkB;AAAA,QACjE,UAAU,QAAQ,YAAY,QAAQ,QAAQ,eAAe;AAAA,QAC7D,MAAM,QAAQ,QAAQ,QAAQ,YAAY,eAAe;AAAA,QACzD,OAAO,gBAAgB;AAAA,MAAA,CACxB;AAAA,IACH;AAEA,aAAS,oBAAoB,OAAe;AAC1C,WAAK,6BAA6B,KAAK;AACvC,qBAAe,EAAE,SAAS,OAAO,SAAS,OAAO;AAAA,IACnD;AAEA,aAAS,iBAAiB,OAAe;AACvC,WAAK,0BAA0B,KAAK;AACpC,qBAAe,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,OAAO,MAAM,OAAO;AAAA,IACzE;AAEA,aAAS,sBAAsB,OAAc;AAC3C,WAAK,oBAAoB,KAAK;AAAA,IAChC;AAEA,aAAa,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjN3B,IAAI,KAAK,OAAO;AAChB,IAAI,KAAK,OAAO;AAChB,IAAI,KAAK,OAAO,UAAU,gBAAgB,KAAK,OAAO,UAAU;AAChE,IAAI,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,YAAY,MAAI,cAAc,MAAI,UAAU,MAAI,OAAO,EAAC,CAAE,IAAI,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM;AAC/H,WAAS,KAAK,MAAM,IAAI,CAAA;AACtB,OAAG,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAChC,MAAI;AACF,aAAS,KAAK,GAAG,CAAC;AAChB,SAAG,KAAK,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAClC,SAAO;AACT;AACA,IAAI,KAAK,CAAC,GAAG,MAAM;AACjB,MAAI,IAAI,CAAA;AACR,WAAS,KAAK;AACZ,OAAG,KAAK,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAClD,MAAI,KAAK,QAAQ;AACf,aAAS,KAAK,GAAG,CAAC;AAChB,QAAE,QAAQ,CAAC,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACpD,SAAO;AACT;AAEA,MAAM,KAAK;AACX,SAAS,GAAG,GAAG;AACb,UAAQ,KAAK,KAAK,CAAC;AACrB;AACA,SAAS,GAAG,GAAG;AACb,UAAQ,MAAM,KAAK,CAAC;AACtB;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,KAAK,KAAK,IAAI,EAAE,UAAU,EAAE,OAAO,GAAG,GAAG,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG;AACtE;AACA,SAAS,GAAG,GAAG;AACb,SAAO,EAAE,QAAQ,UAAU,CAAC,GAAG,MAAM,IAAI,EAAE,YAAW,IAAK,EAAE;AAC/D;AACA,SAAS,GAAG,GAAG;AACb,SAAO,OAAO,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,OAAO,OAAO,EAAE,CAAC,KAAK,gBAAgB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE;AACjG;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,SAAO,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,GAAG;AAC7C;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,GAAG;AAChD;AACA,SAAS,GAAG,GAAG;AACb,SAAO,OAAO,KAAK;AACrB;AACA,SAAS,GAAG,GAAG;AACb,SAAO,OAAO,KAAK;AACrB;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,QAAM,IAAI,EAAE,SAAS,CAAC;AACtB,IAAE,aAAa,GAAG,CAAC;AACrB;AACA,SAAS,GAAG,GAAG;AACb,IAAE,cAAc,EAAE,WAAW,YAAY,CAAC;AAC5C;AACA,SAAS,GAAG,GAAG,IAAI,UAAU;AAC3B,MAAI;AACJ,MAAI,IAAI;AACR,SAAO,QAAQ,KAAK,OAAO,SAAS,EAAE,kBAAkB,aAAa,KAAK,IAAI,KAAK,OAAO,SAAS,EAAE,kBAAkB,OAAO,SAAS,EAAE,KAAK,GAAG,CAAC,IAAI,IAAI,SAAS,cAAc,CAAC,GAAG,KAAK,GAAG,sBAAsB,CAAC,EAAE,GAAG;AAC3N;AACA,SAAS,GAAG,GAAG,GAAG,IAAI,MAAM;AAC1B,SAAO,YAAY,GAAG;AACpB,WAAO,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC;AAAA,EACpC;AACF;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,QAAM,IAAI,GAAG,CAAA,GAAI,CAAC;AAClB,SAAO,OAAO,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM;AACnC,MAAE,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,EAC3C,CAAC,GAAG;AACN;AACA,SAAS,GAAG,GAAG;AACb,SAAO,aAAa;AACtB;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,SAAO,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM;AAC5B,MAAE,GAAG,EAAE,CAAC,CAAC;AAAA,EACX,CAAC;AACH;AACA,SAAS,GAAG,GAAG;AACb,SAAO,EAAE,WAAW,CAAC,MAAM,OAAO,EAAE,WAAW,CAAC,MAAM,QAAQ,EAAE,WAAW,CAAC,IAAI,OAAO,EAAE,WAAW,CAAC,IAAI;AAC3G;AACA,MAAM,KAAK,OAAO;AAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI,OAAO,KAAK,CAAC;AACrB,MAAI,OAAO,uBAAuB;AAChC,QAAI,IAAI,OAAO,sBAAsB,CAAC;AACtC,UAAM,IAAI,EAAE,OAAO,SAAS,GAAG;AAC7B,aAAO,OAAO,yBAAyB,GAAG,CAAC,EAAE;AAAA,IAC/C,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,CAAC;AAAA,EACxB;AACA,SAAO;AACT;AACA,SAAS,GAAG,GAAG;AACb,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,QAAI,IAAI,UAAU,CAAC,KAAK,OAAO,UAAU,CAAC,IAAI,CAAA;AAC9C,QAAI,IAAI,GAAG,OAAO,CAAC,GAAG,IAAE,EAAE,QAAQ,SAAS,GAAG;AAC5C,SAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAAA,IACf,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,GAAG,OAAO,0BAA0B,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAS,GAAG;AAC1I,aAAO,eAAe,GAAG,GAAG,OAAO,yBAAyB,GAAG,CAAC,CAAC;AAAA,IACnE,CAAC;AAAA,EACH;AACA,SAAO;AACT;AACA,SAAS,GAAG,GAAG;AACb;AACA,SAAO,OAAO,UAAU,cAAc,OAAO,OAAO,YAAY,WAAW,KAAK,SAAS,GAAG;AAC1F,WAAO,OAAO;AAAA,EAChB,IAAI,KAAK,SAAS,GAAG;AACnB,WAAO,KAAK,OAAO,UAAU,cAAc,EAAE,gBAAgB,UAAU,MAAM,OAAO,YAAY,WAAW,OAAO;AAAA,EACpH,GAAG,GAAG,CAAC;AACT;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,SAAO,KAAK,IAAI,OAAO,eAAe,GAAG,GAAG;AAAA,IAC1C,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,EACd,CAAG,IAAI,EAAE,CAAC,IAAI,GAAG;AACjB;AACA,SAAS,KAAK;AACZ,SAAO,KAAK,OAAO,UAAU,SAAS,GAAG;AACvC,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAI,IAAI,UAAU,CAAC;AACnB,eAAS,KAAK;AACZ,eAAO,UAAU,eAAe,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,IAC7D;AACA,WAAO;AAAA,EACT,GAAG,GAAG,MAAM,MAAM,SAAS;AAC7B;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,MAAI,KAAK;AACP,WAAO,CAAA;AACT,MAAI,IAAI,CAAA,GAAI,IAAI,OAAO,KAAK,CAAC,GAAG,GAAG;AACnC,OAAK,IAAI,GAAG,IAAI,EAAE,QAAQ;AACxB,QAAI,EAAE,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,KAAK,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AAC/C,SAAO;AACT;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,MAAI,KAAK;AACP,WAAO,CAAA;AACT,MAAI,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG;AACrB,MAAI,OAAO,uBAAuB;AAChC,QAAI,IAAI,OAAO,sBAAsB,CAAC;AACtC,SAAK,IAAI,GAAG,IAAI,EAAE,QAAQ;AACxB,UAAI,EAAE,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,KAAK,MAAM,OAAO,UAAU,qBAAqB,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAAA,EACrG;AACA,SAAO;AACT;AACA,IAAI,KAAK;AACT,SAAS,GAAG,GAAG;AACb,MAAI,OAAO,UAAU,eAAe,OAAO;AACzC,WAAO,CAAC,CAAiB,0BAAU,UAAU,MAAM,CAAC;AACxD;AACA,IAAI,KAAK,GAAG,uDAAuD,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,SAAS,KAAK,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,UAAU,GAAG,KAAK,GAAG,iBAAiB,GAAG,KAAK,GAAG,SAAS,KAAK,GAAG,UAAU,GAAG,KAAK;AAAA,EAC3O,SAAS;AAAA,EACT,SAAS;AACX;AACA,SAAS,EAAE,GAAG,GAAG,GAAG;AAClB,IAAE,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE;AACpC;AACA,SAAS,EAAE,GAAG,GAAG,GAAG;AAClB,IAAE,oBAAoB,GAAG,GAAG,CAAC,MAAM,EAAE;AACvC;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,MAAI,GAAG;AACL,QAAI,EAAE,CAAC,MAAM,QAAQ,IAAI,EAAE,UAAU,CAAC,IAAI;AACxC,UAAI;AACF,YAAI,EAAE;AACJ,iBAAO,EAAE,QAAQ,CAAC;AACpB,YAAI,EAAE;AACJ,iBAAO,EAAE,kBAAkB,CAAC;AAC9B,YAAI,EAAE;AACJ,iBAAO,EAAE,sBAAsB,CAAC;AAAA,MACpC,SAAS,GAAG;AACV,eAAO;AAAA,MACT;AACF,WAAO;AAAA,EACT;AACF;AACA,SAAS,GAAG,GAAG;AACb,SAAO,EAAE,QAAQ,MAAM,YAAY,EAAE,KAAK,WAAW,EAAE,OAAO,EAAE;AAClE;AACA,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG;AACrB,MAAI,GAAG;AACL,QAAI,KAAK;AACT,OAAG;AACD,UAAI,KAAK,SAAS,EAAE,CAAC,MAAM,MAAM,EAAE,eAAe,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,MAAM;AACxF,eAAO;AACT,UAAI,MAAM;AACR;AAAA,IACJ,SAAS,IAAI,GAAG,CAAC;AAAA,EACnB;AACA,SAAO;AACT;AACA,IAAI,KAAK;AACT,SAAS,EAAE,GAAG,GAAG,GAAG;AAClB,MAAI,KAAK;AACP,QAAI,EAAE;AACJ,QAAE,UAAU,IAAI,QAAQ,QAAQ,EAAE,CAAC;AAAA,SAChC;AACH,UAAI,KAAK,MAAM,EAAE,YAAY,KAAK,QAAQ,IAAI,GAAG,EAAE,QAAQ,MAAM,IAAI,KAAK,GAAG;AAC7E,QAAE,aAAa,KAAK,IAAI,MAAM,IAAI,KAAK,QAAQ,IAAI,GAAG;AAAA,IACxD;AACJ;AACA,SAAS,EAAE,GAAG,GAAG,GAAG;AAClB,MAAI,IAAI,KAAK,EAAE;AACf,MAAI,GAAG;AACL,QAAI,MAAM;AACR,aAAO,SAAS,eAAe,SAAS,YAAY,mBAAmB,IAAI,SAAS,YAAY,iBAAiB,GAAG,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,eAAe,MAAM,SAAS,IAAI,EAAE,CAAC;AAC1L,MAAE,KAAK,MAAM,EAAE,QAAQ,QAAQ,MAAM,OAAO,IAAI,aAAa,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,KAAK,WAAW,KAAK;AAAA,EAC3G;AACF;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,MAAI,IAAI;AACR,MAAI,OAAO,KAAK;AACd,QAAI;AAAA;AAEJ,OAAG;AACD,UAAI,IAAI,EAAE,GAAG,WAAW;AACxB,WAAK,MAAM,WAAW,IAAI,IAAI,MAAM;AAAA,IACtC,SAAS,CAAC,MAAM,IAAI,EAAE;AACxB,MAAI,IAAI,OAAO,aAAa,OAAO,mBAAmB,OAAO,aAAa,OAAO;AACjF,SAAO,KAAK,IAAI,EAAE,CAAC;AACrB;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,GAAG;AACL,QAAI,IAAI,EAAE,qBAAqB,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE;AAChD,QAAI;AACF,aAAO,IAAI,GAAG;AACZ,UAAE,EAAE,CAAC,GAAG,CAAC;AACb,WAAO;AAAA,EACT;AACA,SAAO,CAAA;AACT;AACA,SAAS,KAAK;AACZ,MAAI,IAAI,SAAS;AACjB,SAAO,KAAK,SAAS;AACvB;AACA,SAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG;AACxB,MAAI,EAAE,CAAC,EAAE,yBAAyB,MAAM,SAAS;AAC/C,QAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,QAAI,MAAM,UAAU,EAAE,cAAc,MAAM,QAAQ,IAAI,EAAE,yBAAyB,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,IAAI,EAAE,QAAQ,IAAI,EAAE,OAAO,IAAI,EAAE,QAAQ,IAAI,EAAE,UAAU,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,aAAa,IAAI,OAAO,YAAY,IAAI,OAAO,aAAa,IAAI,OAAO,cAAc,KAAK,MAAM,MAAM,WAAW,IAAI,KAAK,EAAE,YAAY,CAAC;AACjU;AACE,YAAI,KAAK,EAAE,0BAA0B,EAAE,GAAG,WAAW,MAAM,UAAU,KAAK,EAAE,GAAG,UAAU,MAAM,WAAW;AACxG,cAAI,IAAI,EAAE,sBAAqB;AAC/B,eAAK,EAAE,MAAM,SAAS,EAAE,GAAG,kBAAkB,CAAC,GAAG,KAAK,EAAE,OAAO,SAAS,EAAE,GAAG,mBAAmB,CAAC,GAAG,IAAI,IAAI,EAAE,QAAQ,IAAI,IAAI,EAAE;AAChI;AAAA,QACF;AAAA,aACK,IAAI,EAAE;AACf,QAAI,KAAK,MAAM,QAAQ;AACrB,UAAI,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE;AAC7C,YAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI;AAAA,IAC3D;AACA,WAAO;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,IACd;AAAA,EACE;AACF;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,WAAS,IAAI,GAAG,GAAG,IAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK;AACxC,QAAI,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI;AACrB,QAAI,IAAI,KAAK,GAAG,CAAC;AACf,aAAO;AACT,QAAI,MAAM,GAAE;AACV;AACF,QAAI,GAAG,GAAG,KAAE;AAAA,EACd;AACA,SAAO;AACT;AACA,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,WAAS,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,IAAI,EAAE,UAAU;AACrD,QAAI,EAAE,CAAC,EAAE,MAAM,YAAY,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,KAAE,GAAG;AACjH,UAAI,MAAM;AACR,eAAO,EAAE,CAAC;AACZ;AAAA,IACF;AACA;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,WAAS,IAAI,EAAE,kBAAkB,MAAM,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,MAAM,UAAU,KAAK,CAAC,GAAG,GAAG,CAAC;AACjG,QAAI,EAAE;AACR,SAAO,KAAK;AACd;AACA,SAAS,EAAE,GAAG,GAAG;AACf,MAAI,IAAI;AACR,MAAI,CAAC,KAAK,CAAC,EAAE;AACX,WAAO;AACT,SAAO,IAAI,EAAE;AACX,MAAE,SAAS,YAAW,MAAO,cAAc,MAAM,EAAE,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM;AAClF,SAAO;AACT;AACA,SAAS,GAAG,GAAG;AACb,MAAI,IAAI,GAAG,IAAI,GAAG,IAAI,GAAE;AACxB,MAAI;AACF,OAAG;AACD,UAAI,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE;AAC9B,WAAK,EAAE,aAAa,GAAG,KAAK,EAAE,YAAY;AAAA,IAC5C,SAAS,MAAM,MAAM,IAAI,EAAE;AAC7B,SAAO,CAAC,GAAG,CAAC;AACd;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,WAAS,KAAK;AACZ,QAAI,EAAE,eAAe,CAAC,GAAG;AACvB,eAAS,KAAK;AACZ,YAAI,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AACxC,iBAAO,OAAO,CAAC;AAAA,IACrB;AACF,SAAO;AACT;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,MAAI,CAAC,KAAK,CAAC,EAAE;AACX,WAAO,GAAE;AACX,MAAI,IAAI,GAAG,IAAI;AACf;AACE,QAAI,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc;AACpE,UAAI,IAAI,EAAE,CAAC;AACX,UAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,UAAU,EAAE,aAAa,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,aAAa,UAAU,EAAE,aAAa,WAAW;AAChL,YAAI,CAAC,EAAE,yBAAyB,MAAM,SAAS;AAC7C,iBAAO,GAAE;AACX,YAAI,KAAK;AACP,iBAAO;AACT,YAAI;AAAA,MACN;AAAA,IACF;AAAA,SACK,IAAI,EAAE;AACb,SAAO,GAAE;AACX;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,MAAI,KAAK;AACP,aAAS,KAAK;AACZ,QAAE,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACtC,SAAO;AACT;AACA,SAAS,GAAG,GAAG,GAAG;AAChB,SAAO,KAAK,MAAM,EAAE,GAAG,MAAM,KAAK,MAAM,EAAE,GAAG,KAAK,KAAK,MAAM,EAAE,IAAI,MAAM,KAAK,MAAM,EAAE,IAAI,KAAK,KAAK,MAAM,EAAE,MAAM,MAAM,KAAK,MAAM,EAAE,MAAM,KAAK,KAAK,MAAM,EAAE,KAAK,MAAM,KAAK,MAAM,EAAE,KAAK;AAC5L;AACA,IAAI;AACJ,SAAS,GAAG,GAAG,GAAG;AAChB,SAAO,WAAW;AAChB,QAAI,CAAC,IAAI;AACP,UAAI,IAAI,WAAW,IAAI;AACvB,QAAE,WAAW,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,KAAK,WAAW,WAAW;AAC3E,aAAK;AAAA,MACP,GAAG,CAAC;AAAA,IACN;AAAA,EACF;AACF;AACA,SAAS,KAAK;AACZ,eAAa,EAAE,GAAG,KAAK;AACzB;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,IAAE,cAAc,GAAG,EAAE,aAAa;AACpC;AACA,SAAS,GAAG,GAAG;AACb,MAAI,IAAI,OAAO,SAAS,IAAI,OAAO,UAAU,OAAO;AACpD,SAAO,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,IAAE,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,IAAE,EAAE,CAAC,IAAI,EAAE,UAAU,IAAE;AACrF;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,CAAA;AACR,SAAO,MAAM,KAAK,EAAE,QAAQ,EAAE,QAAQ,SAAS,GAAG;AAChD,QAAI,GAAG,GAAG,GAAG;AACb,QAAI,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,KAAE,KAAK,EAAE,YAAY,MAAM,IAAI;AACzD,UAAI,IAAI,EAAE,CAAC;AACX,QAAE,OAAO,KAAK,KAAK,IAAI,EAAE,UAAU,QAAQ,MAAM,SAAS,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,KAAK,KAAK,IAAI,EAAE,SAAS,QAAQ,MAAM,SAAS,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,QAAQ,KAAK,KAAK,IAAI,EAAE,WAAW,QAAQ,MAAM,SAAS,IAAI,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,SAAS,KAAK,KAAK,IAAI,EAAE,YAAY,QAAQ,MAAM,SAAS,IAAI,KAAK,GAAG,EAAE,MAAM;AAAA,IAC/T;AAAA,EACF,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;AAC1F;AACA,IAAI,IAAI,cAA8B,oBAAI,KAAI,GAAI,QAAO;AACzD,SAAS,KAAK;AACZ,MAAI,IAAI,CAAA,GAAI;AACZ,SAAO;AAAA,IACL,uBAAuB,WAAW;AAChC,UAAI,IAAI,CAAA,GAAI,CAAC,CAAC,KAAK,QAAQ,WAAW;AACpC,YAAI,IAAI,CAAA,EAAG,MAAM,KAAK,KAAK,GAAG,QAAQ;AACtC,UAAE,QAAQ,SAAS,GAAG;AACpB,cAAI,EAAE,EAAE,GAAG,SAAS,MAAM,UAAU,MAAM,EAAE,QAAQ;AAClD,cAAE,KAAK;AAAA,cACL,QAAQ;AAAA,cACR,MAAM,EAAE,CAAC;AAAA,YACvB,CAAa;AACD,gBAAI,IAAI,GAAG,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,IAAI;AACnC,gBAAI,EAAE,uBAAuB;AAC3B,kBAAI,IAAI,GAAG,GAAG,IAAE;AAChB,oBAAM,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE;AAAA,YAClC;AACA,cAAE,WAAW;AAAA,UACf;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,mBAAmB,SAAS,GAAG;AAC7B,QAAE,KAAK,CAAC;AAAA,IACV;AAAA,IACA,sBAAsB,SAAS,GAAG;AAChC,QAAE,OAAO,GAAG,GAAG;AAAA,QACb,QAAQ;AAAA,MAChB,CAAO,GAAG,CAAC;AAAA,IACP;AAAA,IACA,YAAY,SAAS,GAAG;AACtB,UAAI,IAAI;AACR,UAAI,CAAC,KAAK,QAAQ,WAAW;AAC3B,qBAAa,CAAC,GAAG,OAAO,KAAK,cAAc,EAAC;AAC5C;AAAA,MACF;AACA,UAAI,IAAI,OAAI,IAAI;AAChB,QAAE,QAAQ,SAAS,GAAG;AACpB,YAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,cAAc,IAAI,EAAE,YAAY,IAAI,EAAE,MAAM,IAAI,GAAG,GAAG,IAAE;AACjH,cAAM,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,yBAAyB,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AAAA,SAChG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,EAAE,aAAa,GAAG,MAAM,IAAI,EAAE,QAAQ,YAAY,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC,IAAI,MAAM,IAAI,MAAI,IAAI,KAAK,IAAI,GAAG,CAAC,GAAG,aAAa,EAAE,mBAAmB,GAAG,EAAE,sBAAsB,WAAW,WAAW;AAC3U,YAAE,gBAAgB,GAAG,EAAE,eAAe,MAAM,EAAE,WAAW,MAAM,EAAE,aAAa,MAAM,EAAE,wBAAwB;AAAA,QAChH,GAAG,CAAC,GAAG,EAAE,wBAAwB;AAAA,MACnC,CAAC,GAAG,aAAa,CAAC,GAAG,IAAI,IAAI,WAAW,WAAW;AACjD,eAAO,KAAK,cAAc,EAAC;AAAA,MAC7B,GAAG,CAAC,IAAI,OAAO,KAAK,cAAc,EAAC,GAAI,IAAI,CAAA;AAAA,IAC7C;AAAA,IACA,SAAS,SAAS,GAAG,GAAG,GAAG,GAAG;AAC5B,UAAI,GAAG;AACL,UAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE;AAC5C,YAAI,IAAI,GAAG,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE,QAAQ,KAAK;AAC/G,UAAE,aAAa,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,aAAa,iBAAiB,IAAI,QAAQ,IAAI,OAAO,GAAG,KAAK,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,cAAc,eAAe,IAAI,QAAQ,KAAK,QAAQ,SAAS,MAAM,KAAK,QAAQ,SAAS,GAAG,GAAG,EAAE,GAAG,aAAa,oBAAoB,GAAG,OAAO,EAAE,YAAY,YAAY,aAAa,EAAE,QAAQ,GAAG,EAAE,WAAW,WAAW,WAAW;AAC9W,YAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,WAAW,OAAI,EAAE,aAAa,OAAI,EAAE,aAAa;AAAA,QACpG,GAAG,CAAC;AAAA,MACN;AAAA,IACF;AAAA,EACJ;AACA;AACA,SAAS,GAAG,GAAG;AACb,SAAO,EAAE;AACX;AACA,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG;AACtB,SAAO,KAAK,KAAK,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE;AACzJ;AACA,IAAI,KAAK,CAAA,GAAI,KAAK;AAAA,EAChB,qBAAqB;AACvB,GAAG,KAAK;AAAA,EACN,OAAO,SAAS,GAAG;AACjB,aAAS,KAAK;AACZ,SAAG,eAAe,CAAC,KAAK,EAAE,KAAK,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC;AACnD,OAAG,QAAQ,SAAS,GAAG;AACrB,UAAI,EAAE,eAAe,EAAE;AACrB,cAAM,iCAAiC,OAAO,EAAE,YAAY,iBAAiB;AAAA,IACjF,CAAC,GAAG,GAAG,KAAK,CAAC;AAAA,EACf;AAAA,EACA,aAAa,SAAS,GAAG,GAAG,GAAG;AAC7B,QAAI,IAAI;AACR,SAAK,gBAAgB,OAAI,EAAE,SAAS,WAAW;AAC7C,QAAE,gBAAgB;AAAA,IACpB;AACA,QAAI,IAAI,IAAI;AACZ,OAAG,QAAQ,SAAS,GAAG;AACrB,QAAE,EAAE,UAAU,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG;AAAA,QAC9D,UAAU;AAAA,MAClB,GAAS,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG;AAAA,QAC7E,UAAU;AAAA,MAClB,GAAS,CAAC,CAAC;AAAA,IACP,CAAC;AAAA,EACH;AAAA,EACA,mBAAmB,SAAS,GAAG,GAAG,GAAG,GAAG;AACtC,OAAG,QAAQ,SAAS,GAAG;AACrB,UAAI,IAAI,EAAE;AACV,UAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,sBAAsB;AAC9C,YAAI,IAAI,IAAI,EAAE,GAAG,GAAG,EAAE,OAAO;AAC7B,UAAE,WAAW,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,QAAQ;AAAA,MACnE;AAAA,IACF,CAAC;AACD,aAAS,KAAK,EAAE;AACd,UAAI,EAAE,QAAQ,eAAe,CAAC,GAAG;AAC/B,YAAI,IAAI,KAAK,aAAa,GAAG,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC5C,eAAO,KAAK,gBAAgB,EAAE,QAAQ,CAAC,IAAI;AAAA,MAC7C;AAAA,EACJ;AAAA,EACA,oBAAoB,SAAS,GAAG,GAAG;AACjC,QAAI,IAAI,CAAA;AACR,WAAO,GAAG,QAAQ,SAAS,GAAG;AAC5B,aAAO,EAAE,mBAAmB,cAAc,GAAG,GAAG,EAAE,gBAAgB,KAAK,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AAAA,IAC5F,CAAC,GAAG;AAAA,EACN;AAAA,EACA,cAAc,SAAS,GAAG,GAAG,GAAG;AAC9B,QAAI;AACJ,WAAO,GAAG,QAAQ,SAAS,GAAG;AAC5B,QAAE,EAAE,UAAU,KAAK,EAAE,mBAAmB,OAAO,EAAE,gBAAgB,CAAC,KAAK,eAAe,IAAI,EAAE,gBAAgB,CAAC,EAAE,KAAK,EAAE,EAAE,UAAU,GAAG,CAAC;AAAA,IACxI,CAAC,GAAG;AAAA,EACN;AACF;AACA,SAAS,GAAG,GAAG;AACb,MAAI,IAAI,EAAE,UAAU,IAAI,EAAE,QAAQ,IAAI,EAAE,MAAM,IAAI,EAAE,UAAU,IAAI,EAAE,SAAS,IAAI,EAAE,MAAM,IAAI,EAAE,QAAQ,IAAI,EAAE,UAAU,IAAI,EAAE,UAAU,IAAI,EAAE,mBAAmB,IAAI,EAAE,mBAAmB,IAAI,EAAE,eAAe,IAAI,EAAE,aAAa,IAAI,EAAE;AACvO,MAAI,IAAI,KAAK,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG;AAC3B,QAAI,GAAG,IAAI,EAAE,SAAS,IAAI,OAAO,EAAE,OAAO,CAAC,EAAE,YAAW,IAAK,EAAE,OAAO,CAAC;AACvE,WAAO,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,YAAY,GAAG;AAAA,MACxD,SAAS;AAAA,MACT,YAAY;AAAA,IAClB,CAAK,KAAK,IAAI,SAAS,YAAY,OAAO,GAAG,EAAE,UAAU,GAAG,MAAI,IAAE,IAAI,EAAE,KAAK,KAAK,GAAG,EAAE,OAAO,KAAK,GAAG,EAAE,OAAO,KAAK,GAAG,EAAE,QAAQ,GAAG,EAAE,WAAW,GAAG,EAAE,WAAW,GAAG,EAAE,oBAAoB,GAAG,EAAE,oBAAoB,GAAG,EAAE,gBAAgB,GAAG,EAAE,WAAW,IAAI,EAAE,cAAc;AACxQ,QAAI,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,mBAAmB,GAAG,CAAC,CAAC;AACjD,aAAS,KAAK;AACZ,QAAE,CAAC,IAAI,EAAE,CAAC;AACZ,SAAK,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC;AAAA,EACjD;AACF;AACA,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,SAAS,GAAG,GAAG;AACnC,MAAI,IAAI,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAS,UAAU,CAAC,IAAI,CAAA,GAAI,IAAI,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE;AACpG,KAAG,YAAY,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG;AAAA,IAC9B,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,aAAa;AAAA,IACb,aAAa;AAAA,IACb,aAAa;AAAA,IACb,gBAAgB,EAAE;AAAA,IAClB,eAAe;AAAA,IACf,UAAU;AAAA,IACV,mBAAmB;AAAA,IACnB,UAAU;AAAA,IACV,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,sBAAsB;AAAA,IACtB,gBAAgB,WAAW;AACzB,WAAK;AAAA,IACP;AAAA,IACA,eAAe,WAAW;AACxB,WAAK;AAAA,IACP;AAAA,IACA,uBAAuB,SAAS,GAAG;AACjC,QAAE;AAAA,QACA,UAAU;AAAA,QACV,MAAM;AAAA,QACN,eAAe;AAAA,MACvB,CAAO;AAAA,IACH;AAAA,EACJ,GAAK,CAAC,CAAC;AACP;AACA,SAAS,EAAE,GAAG;AACZ,KAAG,GAAG;AAAA,IACJ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,mBAAmB;AAAA,IACnB,UAAU;AAAA,IACV,mBAAmB;AAAA,EACvB,GAAK,CAAC,CAAC;AACP;AACA,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,OAAI,KAAK,OAAI,KAAK,CAAA,GAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,OAAI,KAAK,OAAI,IAAI,GAAG,KAAK,CAAA,GAAI,KAAK,OAAI,KAAK,CAAA,GAAI,KAAK,OAAO,YAAY,aAAa,KAAK,IAAI,KAAK,MAAM,KAAK,aAAa,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,eAAe,SAAS,cAAc,KAAK,GAAG,MAAK,WAAW;AAChV,MAAI,IAAI;AACN,QAAI;AACF,aAAO;AACT,QAAI,IAAI,SAAS,cAAc,GAAG;AAClC,WAAO,EAAE,MAAM,UAAU,uBAAuB,EAAE,MAAM,kBAAkB;AAAA,EAC5E;AACF,GAAC,GAAI,KAAK,SAAS,GAAG,GAAG;AACvB,MAAI,IAAI,EAAE,CAAC,GAAG,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,WAAW,IAAI,SAAS,EAAE,YAAY,IAAI,SAAS,EAAE,eAAe,IAAI,SAAS,EAAE,gBAAgB,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,SAAS,EAAE,UAAU,IAAI,SAAS,EAAE,WAAW,IAAI,EAAE,CAAC,EAAE,OAAO,IAAI,KAAK,SAAS,EAAE,UAAU,IAAI,SAAS,EAAE,WAAW,IAAI,EAAE,CAAC,EAAE;AAChW,MAAI,EAAE,YAAY;AAChB,WAAO,EAAE,kBAAkB,YAAY,EAAE,kBAAkB,mBAAmB,aAAa;AAC7F,MAAI,EAAE,YAAY;AAChB,WAAO,EAAE,oBAAoB,MAAM,GAAG,EAAE,UAAU,IAAI,aAAa;AACrE,MAAI,KAAK,EAAE,SAAS,EAAE,UAAU,QAAQ;AACtC,QAAI,IAAI,EAAE,UAAU,SAAS,SAAS;AACtC,WAAO,MAAM,EAAE,UAAU,UAAU,EAAE,UAAU,KAAK,aAAa;AAAA,EACnE;AACA,SAAO,MAAM,EAAE,YAAY,WAAW,EAAE,YAAY,UAAU,EAAE,YAAY,WAAW,EAAE,YAAY,UAAU,KAAK,KAAK,EAAE,EAAE,MAAM,UAAU,KAAK,EAAE,EAAE,MAAM,UAAU,IAAI,IAAI,KAAK,aAAa;AAClM,GAAG,KAAK,SAAS,GAAG,GAAG,GAAG;AACxB,MAAI,IAAI,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,QAAQ,EAAE;AAC5J,SAAO,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,MAAM,IAAI,IAAI;AACrD,GAAG,KAAK,SAAS,GAAG,GAAG;AACrB,MAAI;AACJ,SAAO,GAAG,KAAK,SAAS,GAAG;AACzB,QAAI,IAAI,EAAE,CAAC,EAAE,QAAQ;AACrB,QAAI,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI;AAClB,UAAI,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,EAAE,OAAO,KAAK,KAAK,EAAE,QAAQ,GAAG,IAAI,KAAK,EAAE,MAAM,KAAK,KAAK,EAAE,SAAS;AAC7F,UAAI,KAAK;AACP,eAAO,IAAI;AAAA,IACf;AAAA,EACF,CAAC,GAAG;AACN,GAAG,KAAK,SAAS,GAAG;AAClB,WAAS,EAAE,GAAG,GAAG;AACf,WAAO,SAAS,GAAG,GAAG,GAAG,GAAG;AAC1B,UAAI,IAAI,EAAE,QAAQ,MAAM,QAAQ,EAAE,QAAQ,MAAM,QAAQ,EAAE,QAAQ,MAAM,SAAS,EAAE,QAAQ,MAAM;AACjG,UAAI,KAAK,SAAS,KAAK;AACrB,eAAO;AACT,UAAI,KAAK,QAAQ,MAAM;AACrB,eAAO;AACT,UAAI,KAAK,MAAM;AACb,eAAO;AACT,UAAI,OAAO,KAAK;AACd,eAAO,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;AACvC,UAAI,KAAK,IAAI,IAAI,GAAG,QAAQ,MAAM;AAClC,aAAO,MAAM,QAAM,OAAO,KAAK,YAAY,MAAM,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI;AAAA,IACjF;AAAA,EACF;AACA,MAAI,IAAI,CAAA,GAAI,IAAI,EAAE;AAClB,GAAC,CAAC,KAAK,GAAG,CAAC,KAAK,cAAc,IAAI;AAAA,IAChC,MAAM;AAAA,EACV,IAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,IAAE,GAAG,EAAE,WAAW,EAAE,EAAE,GAAG,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ;AACpH,GAAG,KAAK,WAAW;AACjB,GAAC,MAAM,KAAK,EAAE,GAAG,WAAW,MAAM;AACpC,GAAG,KAAK,WAAW;AACjB,GAAC,MAAM,KAAK,EAAE,GAAG,WAAW,EAAE;AAChC;AACA,MAAM,CAAC,MAAM,SAAS,iBAAiB,SAAS,SAAS,GAAG;AAC1D,MAAI;AACF,WAAO,EAAE,eAAc,GAAI,EAAE,mBAAmB,EAAE,gBAAe,GAAI,EAAE,4BAA4B,EAAE,yBAAwB,GAAI,KAAK,OAAI;AAC9I,GAAG,IAAE;AACL,IAAI,KAAK,SAAS,GAAG;AACnB,MAAI,GAAG;AACL,QAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI;AAC/B,QAAI,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO;AAC/B,QAAI,GAAG;AACL,UAAI,IAAI,CAAA;AACR,eAAS,KAAK;AACZ,UAAE,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AACpC,QAAE,SAAS,EAAE,SAAS,GAAG,EAAE,iBAAiB,QAAQ,EAAE,kBAAkB,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC;AAAA,IACpG;AAAA,EACF;AACF,GAAG,KAAK,SAAS,GAAG;AAClB,OAAK,EAAE,WAAW,CAAC,EAAE,iBAAiB,EAAE,MAAM;AAChD;AACA,SAAS,EAAE,GAAG,GAAG;AACf,MAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa;AACtC,UAAM,8CAA8C,OAAO,CAAA,EAAG,SAAS,KAAK,CAAC,CAAC;AAChF,OAAK,KAAK,GAAG,KAAK,UAAU,IAAI,GAAG,CAAA,GAAI,CAAC,GAAG,EAAE,CAAC,IAAI;AAClD,MAAI,IAAI;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW,WAAW,KAAK,EAAE,QAAQ,IAAI,QAAQ;AAAA,IACjD,eAAe;AAAA;AAAA,IAEf,YAAY;AAAA;AAAA,IAEZ,uBAAuB;AAAA;AAAA,IAEvB,mBAAmB;AAAA,IACnB,WAAW,WAAW;AACpB,aAAO,GAAG,GAAG,KAAK,OAAO;AAAA,IAC3B;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,SAAS,SAAS,GAAG,GAAG;AACtB,QAAE,QAAQ,QAAQ,EAAE,WAAW;AAAA,IACjC;AAAA,IACA,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,kBAAkB;AAAA,IAClB,sBAAsB,OAAO,WAAW,SAAS,QAAQ,SAAS,OAAO,kBAAkB,EAAE,KAAK;AAAA,IAClG,eAAe;AAAA,IACf,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,MACd,GAAG;AAAA,MACH,GAAG;AAAA,IACT;AAAA,IACI,gBAAgB,EAAE,mBAAmB,SAAM,kBAAkB,UAAU,CAAC;AAAA,IACxE,sBAAsB;AAAA,EAC1B;AACE,KAAG,kBAAkB,MAAM,GAAG,CAAC;AAC/B,WAAS,KAAK;AACZ,MAAE,KAAK,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AAC1B,KAAG,CAAC;AACJ,WAAS,KAAK;AACZ,MAAE,OAAO,CAAC,MAAM,OAAO,OAAO,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI;AACrF,OAAK,kBAAkB,EAAE,gBAAgB,QAAK,IAAI,KAAK,oBAAoB,KAAK,QAAQ,sBAAsB,IAAI,EAAE,iBAAiB,EAAE,GAAG,eAAe,KAAK,WAAW,KAAK,EAAE,GAAG,aAAa,KAAK,WAAW,GAAG,EAAE,GAAG,cAAc,KAAK,WAAW,IAAI,KAAK,oBAAoB,EAAE,GAAG,YAAY,IAAI,GAAG,EAAE,GAAG,aAAa,IAAI,IAAI,GAAG,KAAK,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,CAAA,CAAE,GAAG,GAAG,MAAM,IAAI;AACpa;AACA,EAAE;AACF;AAAA,EACE,aAAa;AAAA,EACb,kBAAkB,SAAS,GAAG;AAC5B,KAAC,KAAK,GAAG,SAAS,CAAC,KAAK,MAAM,KAAK,OAAO,KAAK;AAAA,EACjD;AAAA,EACA,eAAe,SAAS,GAAG,GAAG;AAC5B,WAAO,OAAO,KAAK,QAAQ,aAAa,aAAa,KAAK,QAAQ,UAAU,KAAK,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,QAAQ;AAAA,EACjH;AAAA,EACA,aAAa,SAAS,GAAG;AACvB,QAAI,EAAE,YAAY;AAChB,UAAI,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,iBAAiB,IAAI,EAAE,MAAM,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,gBAAgB,WAAW,GAAG,KAAK,KAAK,GAAG,QAAQ,IAAI,EAAE,OAAO,eAAe,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,eAAe,CAAC,MAAM,GAAG,IAAI,EAAE;AAC7R,UAAI,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,wBAAwB,KAAK,CAAC,KAAK,EAAE,WAAW,KAAK,EAAE,aAAa,CAAC,EAAE,qBAAqB,EAAE,CAAC,KAAK,mBAAmB,MAAM,KAAK,EAAE,QAAQ,YAAW,MAAO,cAAc,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,KAAE,GAAG,EAAE,KAAK,EAAE,aAAa,OAAO,IAAI;AAC5P,YAAI,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,KAAK,YAAY;AAC7D,cAAI,EAAE,KAAK,MAAM,GAAG,GAAG,IAAI,GAAG;AAC5B,cAAE;AAAA,cACA,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,UAAU;AAAA,cACV,MAAM;AAAA,cACN,QAAQ;AAAA,YACtB,CAAa,GAAG,EAAE,UAAU,GAAG;AAAA,cACjB,KAAK;AAAA,YACnB,CAAa,GAAG,KAAK,EAAE,cAAc,EAAE,eAAc;AACzC;AAAA,UACF;AAAA,QACF,WAAW,MAAM,IAAI,EAAE,MAAM,GAAG,EAAE,KAAK,SAAS,GAAG;AACjD,cAAI,IAAI,EAAE,GAAG,EAAE,QAAQ,GAAG,KAAE,GAAG;AAC7B,mBAAO,EAAE;AAAA,cACP,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,MAAM;AAAA,cACN,UAAU;AAAA,cACV,QAAQ;AAAA,cACR,MAAM;AAAA,YACpB,CAAa,GAAG,EAAE,UAAU,GAAG;AAAA,cACjB,KAAK;AAAA,YACnB,CAAa,GAAG;AAAA,QACR,CAAC,GAAG,IAAI;AACN,eAAK,EAAE,cAAc,EAAE,eAAc;AACrC;AAAA,QACF;AACA,UAAE,UAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,GAAG,KAAE,KAAK,KAAK,kBAAkB,GAAG,GAAG,CAAC;AAAA,MACtE;AAAA,IACF;AAAA,EACF;AAAA,EACA,mBAAmB,SAAS,GAAG,GAAG,GAAG;AACnC,QAAI,IAAI,MAAM,IAAI,EAAE,IAAI,IAAI,EAAE,SAAS,IAAI,EAAE,eAAe;AAC5D,QAAI,KAAK,CAAC,KAAK,EAAE,eAAe,GAAG;AACjC,UAAI,IAAI,EAAE,CAAC;AACX,UAAI,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,YAAY,KAAK,EAAE,aAAa,KAAK,GAAG,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,KAAK;AAAA,QAChG,QAAQ;AAAA,QACR,UAAU,KAAK,GAAG;AAAA,QAClB,UAAU,KAAK,GAAG;AAAA,MAC1B,GAAS,KAAK,GAAG,UAAU,EAAE,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,KAAK,UAAU,KAAK,GAAG,SAAS,KAAK,UAAU,KAAK,GAAG,SAAS,EAAE,MAAM,aAAa,IAAI,OAAO,IAAI,WAAW;AACnK,YAAI,EAAE,cAAc,GAAG;AAAA,UACrB,KAAK;AAAA,QACf,CAAS,GAAG,EAAE,eAAe;AACnB,YAAE,QAAO;AACT;AAAA,QACF;AACA,UAAE,0BAAyB,GAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,YAAY,OAAK,EAAE,kBAAkB,GAAG,CAAC,GAAG,EAAE;AAAA,UAC1G,UAAU;AAAA,UACV,MAAM;AAAA,UACN,eAAe;AAAA,QACzB,CAAS,GAAG,EAAE,GAAG,EAAE,aAAa,IAAE;AAAA,MAC5B,GAAG,EAAE,OAAO,MAAM,GAAG,EAAE,QAAQ,SAAS,GAAG;AACzC,WAAG,GAAG,EAAE,KAAI,GAAI,EAAE;AAAA,MACpB,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,OAAO,GAAG,EAAE,GAAG,YAAY,EAAE,OAAO,GAAG,EAAE,GAAG,eAAe,EAAE,OAAO,GAAG,MAAM,KAAK,oBAAoB,KAAK,QAAQ,sBAAsB,GAAG,EAAE,YAAY,OAAK,EAAE,cAAc,MAAM;AAAA,QAC7Q,KAAK;AAAA,MACb,CAAO,GAAG,EAAE,UAAU,CAAC,EAAE,oBAAoB,OAAO,CAAC,KAAK,mBAAmB,EAAE,MAAM,MAAM;AACnF,YAAI,EAAE,eAAe;AACnB,eAAK,QAAO;AACZ;AAAA,QACF;AACA,UAAE,GAAG,WAAW,EAAE,mBAAmB,GAAG,EAAE,GAAG,YAAY,EAAE,mBAAmB,GAAG,EAAE,GAAG,eAAe,EAAE,mBAAmB,GAAG,EAAE,GAAG,aAAa,EAAE,4BAA4B,GAAG,EAAE,GAAG,aAAa,EAAE,4BAA4B,GAAG,EAAE,kBAAkB,EAAE,GAAG,eAAe,EAAE,4BAA4B,GAAG,EAAE,kBAAkB,WAAW,GAAG,EAAE,KAAK;AAAA,MACvV;AACE,UAAC;AAAA,IACL;AAAA,EACF;AAAA,EACA,8BAA8B,SAAS,GAAG;AACxC,QAAI,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI;AACnC,SAAK,IAAI,KAAK,IAAI,EAAE,UAAU,KAAK,MAAM,GAAG,KAAK,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,KAAK,QAAQ,uBAAuB,KAAK,mBAAmB,OAAO,oBAAoB,EAAE,KAAK,KAAK,oBAAmB;AAAA,EACrN;AAAA,EACA,qBAAqB,WAAW;AAC9B,SAAK,GAAG,CAAC,GAAG,aAAa,KAAK,eAAe,GAAG,KAAK,0BAAyB;AAAA,EAChF;AAAA,EACA,2BAA2B,WAAW;AACpC,QAAI,IAAI,KAAK,GAAG;AAChB,MAAE,GAAG,WAAW,KAAK,mBAAmB,GAAG,EAAE,GAAG,YAAY,KAAK,mBAAmB,GAAG,EAAE,GAAG,eAAe,KAAK,mBAAmB,GAAG,EAAE,GAAG,aAAa,KAAK,4BAA4B,GAAG,EAAE,GAAG,aAAa,KAAK,4BAA4B,GAAG,EAAE,GAAG,eAAe,KAAK,4BAA4B;AAAA,EACzS;AAAA,EACA,mBAAmB,SAAS,GAAG,GAAG;AAChC,QAAI,KAAK,EAAE,eAAe,WAAW,GAAG,CAAC,KAAK,mBAAmB,IAAI,KAAK,QAAQ,iBAAiB,EAAE,UAAU,eAAe,KAAK,YAAY,IAAI,IAAI,EAAE,UAAU,aAAa,KAAK,YAAY,IAAI,EAAE,UAAU,aAAa,KAAK,YAAY,KAAK,EAAE,GAAG,WAAW,IAAI,GAAG,EAAE,GAAG,aAAa,KAAK,YAAY;AAC9S,QAAI;AACF,eAAS,YAAY,GAAG,WAAW;AACjC,iBAAS,UAAU,MAAK;AAAA,MAC1B,CAAC,IAAI,OAAO,aAAY,EAAG,gBAAe;AAAA,IAC5C,SAAS,GAAG;AAAA,IACZ;AAAA,EACF;AAAA,EACA,cAAc,SAAS,GAAG,GAAG;AAC3B,QAAI,KAAK,OAAI,KAAK,GAAG;AACnB,QAAE,eAAe,MAAM;AAAA,QACrB,KAAK;AAAA,MACb,CAAO,GAAG,KAAK,mBAAmB,EAAE,UAAU,YAAY,EAAE;AACtD,UAAI,IAAI,KAAK;AACb,OAAC,KAAK,EAAE,GAAG,EAAE,WAAW,KAAE,GAAG,EAAE,GAAG,EAAE,YAAY,IAAE,GAAG,EAAE,SAAS,MAAM,KAAK,KAAK,aAAY,GAAI,EAAE;AAAA,QAChG,UAAU;AAAA,QACV,MAAM;AAAA,QACN,eAAe;AAAA,MACvB,CAAO;AAAA,IACH;AACE,WAAK,SAAQ;AAAA,EACjB;AAAA,EACA,kBAAkB,WAAW;AAC3B,QAAI,GAAG;AACL,WAAK,SAAS,EAAE,SAAS,KAAK,SAAS,EAAE,SAAS,GAAE;AACpD,eAAS,IAAI,SAAS,iBAAiB,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,GAAG,KAAK,EAAE,eAAe,IAAI,EAAE,WAAW,iBAAiB,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM;AACxJ,YAAI;AACN,UAAI,EAAE,WAAW,CAAC,EAAE,iBAAiB,CAAC,GAAG;AACvC,WAAG;AACD,cAAI,EAAE,CAAC,GAAG;AACR,gBAAI,IAAI;AACR,gBAAI,IAAI,EAAE,CAAC,EAAE,YAAY;AAAA,cACvB,SAAS,EAAE;AAAA,cACX,SAAS,EAAE;AAAA,cACX,QAAQ;AAAA,cACR,QAAQ;AAAA,YACtB,CAAa,GAAG,KAAK,CAAC,KAAK,QAAQ;AACrB;AAAA,UACJ;AACA,cAAI;AAAA,QACN,SAAS,IAAI,EAAE;AACjB,SAAE;AAAA,IACJ;AAAA,EACF;AAAA,EACA,cAAc,SAAS,GAAG;AACxB,QAAI,IAAI;AACN,UAAI,IAAI,KAAK,SAAS,IAAI,EAAE,mBAAmB,IAAI,EAAE,gBAAgB,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,KAAK,GAAG,GAAG,IAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,KAAK,IAAI,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,KAAK;AACzV,UAAI,CAAC,EAAE,UAAU,CAAC,IAAI;AACpB,YAAI,KAAK,KAAK,IAAI,KAAK,IAAI,EAAE,UAAU,KAAK,MAAM,GAAG,KAAK,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,IAAI;AACxF;AACF,aAAK,aAAa,GAAG,IAAE;AAAA,MACzB;AACA,UAAI,GAAG;AACL,aAAK,EAAE,KAAK,KAAK,MAAM,IAAI,EAAE,KAAK,KAAK,MAAM,MAAM,IAAI;AAAA,UACrD,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAG;AAAA,UACH;AAAA,QACV;AACQ,YAAI,IAAI,UAAU,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG;AACtH,UAAE,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI;AAAA,MACzH;AACA,QAAE,cAAc,EAAE,eAAc;AAAA,IAClC;AAAA,EACF;AAAA,EACA,cAAc,WAAW;AACvB,QAAI,CAAC,GAAG;AACN,UAAI,IAAI,KAAK,QAAQ,iBAAiB,SAAS,OAAO,GAAG,IAAI,EAAE,GAAG,MAAI,IAAI,MAAI,CAAC,GAAG,IAAI,KAAK;AAC3F,UAAI,IAAI;AACN,aAAK,IAAI,GAAG,EAAE,GAAG,UAAU,MAAM,YAAY,EAAE,GAAG,WAAW,MAAM,UAAU,MAAM;AACjF,cAAI,EAAE;AACR,cAAM,SAAS,QAAQ,MAAM,SAAS,mBAAmB,MAAM,aAAa,IAAI,GAAE,IAAK,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,IAAI,GAAE,GAAI,KAAK,GAAG,CAAC;AAAA,MAC5J;AACA,UAAI,EAAE,UAAU,IAAE,GAAG,EAAE,GAAG,EAAE,YAAY,KAAE,GAAG,EAAE,GAAG,EAAE,eAAe,IAAE,GAAG,EAAE,GAAG,EAAE,WAAW,IAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,EAAE,GAAG,cAAc,YAAY,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE,IAAI,GAAG,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,EAAE,GAAG,UAAU,EAAE,MAAM,GAAG,EAAE,GAAG,WAAW,KAAK,GAAG,EAAE,GAAG,YAAY,KAAK,aAAa,OAAO,GAAG,EAAE,GAAG,UAAU,QAAQ,GAAG,EAAE,GAAG,iBAAiB,MAAM,GAAG,EAAE,QAAQ,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,oBAAoB,KAAK,SAAS,EAAE,MAAM,KAAK,IAAI,MAAM,OAAO,KAAK,SAAS,EAAE,MAAM,MAAM,IAAI,MAAM,GAAG;AAAA,IAC5iB;AAAA,EACF;AAAA,EACA,cAAc,SAAS,GAAG,GAAG;AAC3B,QAAI,IAAI,MAAM,IAAI,EAAE,cAAc,IAAI,EAAE;AACxC,QAAI,EAAE,aAAa,MAAM;AAAA,MACvB,KAAK;AAAA,IACX,CAAK,GAAG,EAAE,eAAe;AACnB,WAAK,QAAO;AACZ;AAAA,IACF;AACA,MAAE,cAAc,IAAI,GAAG,EAAE,kBAAkB,IAAI,GAAG,CAAC,GAAG,EAAE,gBAAgB,IAAI,GAAG,EAAE,YAAY,OAAI,EAAE,MAAM,aAAa,IAAI,IAAI,KAAK,WAAU,GAAI,EAAE,GAAG,KAAK,QAAQ,aAAa,KAAE,GAAG,EAAE,QAAQ,IAAI,EAAE,UAAU,GAAG,WAAW;AAC3N,QAAE,SAAS,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,QAAQ,qBAAqB,EAAE,aAAa,GAAG,CAAC,GAAG,EAAE,WAAU,GAAI,EAAE;AAAA,QACzG,UAAU;AAAA,QACV,MAAM;AAAA,MACd,CAAO;AAAA,IACH,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,WAAW,IAAE,GAAG,KAAK,KAAK,MAAI,EAAE,UAAU,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,UAAU,WAAW,EAAE,OAAO,GAAG,EAAE,UAAU,YAAY,EAAE,OAAO,GAAG,EAAE,UAAU,eAAe,EAAE,OAAO,GAAG,MAAM,EAAE,gBAAgB,QAAQ,EAAE,WAAW,EAAE,QAAQ,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,aAAa,eAAe,IAAI,KAAK,MAAI,EAAE,eAAe,GAAG,EAAE,aAAa,KAAK,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,UAAU,eAAe,CAAC,GAAG,KAAK,MAAI,MAAM,EAAE,SAAS,MAAM,eAAe,MAAM;AAAA,EACve;AAAA;AAAA,EAEA,aAAa,SAAS,GAAG;AACvB,QAAI,IAAI,KAAK,IAAI,IAAI,EAAE,QAAQ,GAAG,GAAG,GAAG,IAAI,KAAK,SAAS,IAAI,EAAE,OAAO,IAAI,EAAE,QAAQ,IAAI,OAAO,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,GAAG,GAAG,IAAI,MAAM,IAAI;AAC5I,QAAI;AACF;AACF,aAAS,EAAE,IAAI,IAAI;AACjB,QAAE,IAAI,GAAG,GAAG;AAAA,QACV,KAAK;AAAA,QACL,SAAS;AAAA,QACT,MAAM,IAAI,aAAa;AAAA,QACvB,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,SAAS;AAAA,QACT,cAAc;AAAA,QACd,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,QAAQ,SAAS,IAAI,IAAI;AACvB,iBAAO,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE;AAAA,QACxC;AAAA,QACA,SAAS;AAAA,MACjB,GAAS,EAAE,CAAC;AAAA,IACR;AACA,aAAS,IAAI;AACX,QAAE,0BAA0B,GAAG,EAAE,sBAAqB,GAAI,MAAM,KAAK,EAAE,sBAAqB;AAAA,IAC9F;AACA,aAAS,EAAE,IAAI;AACb,aAAO,EAAE,qBAAqB;AAAA,QAC5B,WAAW;AAAA,MACnB,CAAO,GAAG,OAAO,IAAI,EAAE,WAAU,IAAK,EAAE,WAAW,CAAC,GAAG,MAAM,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,aAAa,EAAE,QAAQ,YAAY,KAAE,GAAG,EAAE,GAAG,EAAE,YAAY,IAAE,IAAI,MAAM,KAAK,MAAM,EAAE,SAAS,IAAI,IAAI,MAAM,EAAE,UAAU,MAAM,IAAI,OAAO,MAAM,MAAM,EAAE,wBAAwB,IAAI,EAAE,WAAW,WAAW;AACxR,UAAE,2BAA2B,GAAG,EAAE,wBAAwB;AAAA,MAC5D,CAAC,GAAG,MAAM,MAAM,EAAE,cAAc,EAAE,wBAAwB,SAAS,MAAM,KAAK,CAAC,EAAE,YAAY,MAAM,KAAK,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,EAAE,kBAAkB,CAAC,EAAE,UAAU,MAAM,aAAa,EAAE,WAAW,CAAC,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAe,GAAI,IAAI;AAAA,IAC1T;AACA,aAAS,IAAI;AACX,UAAI,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE;AAAA,QAClC,UAAU;AAAA,QACV,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,QACV,mBAAmB;AAAA,QACnB,eAAe;AAAA,MACvB,CAAO;AAAA,IACH;AACA,QAAI,EAAE,mBAAmB,UAAU,EAAE,cAAc,EAAE,eAAc,GAAI,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,IAAE,GAAG,EAAE,UAAU,GAAG,EAAE;AACpH,aAAO;AACT,QAAI,EAAE,SAAS,EAAE,MAAM,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,0BAA0B;AACpG,aAAO,EAAE,KAAE;AACb,QAAI,KAAK,OAAI,KAAK,CAAC,EAAE,aAAa,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,SAAS,KAAK,cAAc,GAAG,UAAU,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,MAAM,GAAG,GAAG,CAAC,IAAI;AACvJ,UAAI,IAAI,KAAK,cAAc,GAAG,CAAC,MAAM,YAAY,IAAI,EAAE,CAAC,GAAG,EAAE,eAAe,GAAG,EAAE;AAC/E,eAAO;AACT,UAAI;AACF,eAAO,IAAI,GAAG,EAAC,GAAI,KAAK,WAAU,GAAI,EAAE,QAAQ,GAAG,EAAE,kBAAkB,KAAK,EAAE,aAAa,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,IAAE;AAC7H,UAAI,IAAI,GAAG,GAAG,EAAE,SAAS;AACzB,UAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,EAAE,UAAU;AACvC,YAAI,MAAM;AACR,iBAAO,EAAE,KAAE;AACb,YAAI,KAAK,MAAM,EAAE,WAAW,IAAI,IAAI,MAAM,IAAI,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM;AACpF,iBAAO,EAAC,GAAI,KAAK,EAAE,cAAc,EAAE,aAAa,GAAG,EAAE,WAAW,IAAI,EAAE,YAAY,CAAC,GAAG,IAAI,GAAG,EAAC,GAAI,EAAE,IAAE;AAAA,MAC1G,WAAW,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG;AAC9B,YAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAE;AACtB,YAAI,MAAM;AACR,iBAAO,EAAE,KAAE;AACb,YAAI,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAE,MAAM;AACnD,iBAAO,EAAC,GAAI,EAAE,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,IAAE;AAAA,MACtD,WAAW,EAAE,eAAe,GAAG;AAC7B,YAAI,EAAE,CAAC;AACP,YAAI,IAAI,GAAG,IAAI,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,GAAG,EAAE,YAAY,EAAE,UAAU,GAAG,CAAC,GAAG,IAAI,IAAI,QAAQ,QAAQ,IAAI,GAAG,GAAG,OAAO,KAAK,KAAK,GAAG,GAAG,OAAO,KAAK,GAAG,IAAI,IAAI,EAAE,YAAY;AAC5M,eAAO,MAAM,KAAK,EAAE,CAAC,GAAG,KAAK,OAAI,KAAK,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,eAAe,EAAE,yBAAyB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,IAAI,OAAO,CAAC;AACtM,YAAI;AACJ,YAAI,MAAM,GAAG;AACX,cAAI,IAAI,EAAE,CAAC;AACX;AACE,iBAAK,GAAG,IAAI,EAAE,SAAS,CAAC;AAAA,iBACnB,MAAM,EAAE,GAAG,SAAS,MAAM,UAAU,MAAM;AAAA,QACnD;AACA,YAAI,MAAM,KAAK,MAAM;AACnB,iBAAO,EAAE,KAAE;AACb,aAAK,GAAG,KAAK;AACb,YAAI,IAAI,EAAE,oBAAoB,IAAI;AAClC,YAAI,MAAM;AACV,YAAI,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACjC,YAAI,MAAM;AACR,kBAAQ,MAAM,KAAK,MAAM,QAAQ,IAAI,MAAM,IAAI,KAAK,MAAI,WAAW,IAAI,EAAE,GAAG,EAAC,GAAI,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,WAAW,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,EAAE,SAAS,GAAG,IAAI,EAAE,YAAY,OAAO,UAAU,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAC,GAAI,EAAE,IAAE;AAAA,MAC7Q;AACA,UAAI,EAAE,SAAS,CAAC;AACd,eAAO,EAAE,KAAE;AAAA,IACf;AACA,WAAO;AAAA,EACT;AAAA,EACA,uBAAuB;AAAA,EACvB,gBAAgB,WAAW;AACzB,MAAE,UAAU,aAAa,KAAK,YAAY,GAAG,EAAE,UAAU,aAAa,KAAK,YAAY,GAAG,EAAE,UAAU,eAAe,KAAK,YAAY,GAAG,EAAE,UAAU,YAAY,EAAE,GAAG,EAAE,UAAU,aAAa,EAAE,GAAG,EAAE,UAAU,aAAa,EAAE;AAAA,EACjO;AAAA,EACA,cAAc,WAAW;AACvB,QAAI,IAAI,KAAK,GAAG;AAChB,MAAE,GAAG,WAAW,KAAK,OAAO,GAAG,EAAE,GAAG,YAAY,KAAK,OAAO,GAAG,EAAE,GAAG,aAAa,KAAK,OAAO,GAAG,EAAE,GAAG,eAAe,KAAK,OAAO,GAAG,EAAE,UAAU,eAAe,IAAI;AAAA,EACpK;AAAA,EACA,SAAS,SAAS,GAAG;AACnB,QAAI,IAAI,KAAK,IAAI,IAAI,KAAK;AAC1B,QAAI,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE,QAAQ,MAAM;AAAA,MACpD,KAAK;AAAA,IACX,CAAK,GAAG,IAAI,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE,eAAe;AAC5E,WAAK,SAAQ;AACb;AAAA,IACF;AACA,SAAK,OAAI,KAAK,OAAI,KAAK,OAAI,cAAc,KAAK,OAAO,GAAG,aAAa,KAAK,eAAe,GAAG,GAAG,KAAK,OAAO,GAAG,GAAG,KAAK,YAAY,GAAG,KAAK,oBAAoB,EAAE,UAAU,QAAQ,IAAI,GAAG,EAAE,GAAG,aAAa,KAAK,YAAY,IAAI,KAAK,eAAc,GAAI,KAAK,aAAY,GAAI,MAAM,EAAE,SAAS,MAAM,eAAe,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,OAAO,EAAE,cAAc,EAAE,eAAc,GAAI,CAAC,EAAE,cAAc,EAAE,gBAAe,IAAK,KAAK,EAAE,cAAc,EAAE,WAAW,YAAY,CAAC,IAAI,MAAM,KAAK,KAAK,EAAE,gBAAgB,YAAY,KAAK,EAAE,cAAc,EAAE,WAAW,YAAY,CAAC,GAAG,MAAM,KAAK,mBAAmB,EAAE,GAAG,WAAW,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,aAAa,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,aAAa,KAAK,QAAQ,YAAY,KAAE,GAAG,EAAE,GAAG,KAAK,QAAQ,aAAa,KAAE,GAAG,EAAE;AAAA,MACjwB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,mBAAmB;AAAA,MACnB,eAAe;AAAA,IACrB,CAAK,GAAG,MAAM,KAAK,KAAK,MAAM,EAAE;AAAA,MAC1B,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,eAAe;AAAA,IACrB,CAAK,GAAG,EAAE;AAAA,MACJ,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,eAAe;AAAA,IACrB,CAAK,GAAG,EAAE;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,eAAe;AAAA,IACrB,CAAK,GAAG,EAAE;AAAA,MACJ,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,eAAe;AAAA,IACrB,CAAK,IAAI,KAAK,EAAE,KAAI,KAAM,MAAM,MAAM,KAAK,MAAM,EAAE;AAAA,MAC7C,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,eAAe;AAAA,IACrB,CAAK,GAAG,EAAE;AAAA,MACJ,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,eAAe;AAAA,IACrB,CAAK,IAAI,EAAE,YAAY,KAAK,QAAQ,MAAM,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE;AAAA,MAChE,UAAU;AAAA,MACV,MAAM;AAAA,MACN,MAAM;AAAA,MACN,eAAe;AAAA,IACrB,CAAK,GAAG,KAAK,KAAI,MAAO,KAAK,SAAQ;AAAA,EACnC;AAAA,EACA,UAAU,WAAW;AACnB,MAAE,WAAW,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,MAAM,GAAG,QAAQ,SAAS,GAAG;AACjL,QAAE,UAAU;AAAA,IACd,CAAC,GAAG,GAAG,SAAS,KAAK,KAAK;AAAA,EAC5B;AAAA,EACA,aAAa,SAAS,GAAG;AACvB,YAAQ,EAAE,MAAI;AAAA,MACZ,KAAK;AAAA,MACL,KAAK;AACH,aAAK,QAAQ,CAAC;AACd;AAAA,MACF,KAAK;AAAA,MACL,KAAK;AACH,cAAM,KAAK,YAAY,CAAC,GAAG,GAAG,CAAC;AAC/B;AAAA,MACF,KAAK;AACH,UAAE,eAAc;AAChB;AAAA,IACR;AAAA,EACE;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,WAAW;AAClB,aAAS,IAAI,CAAA,GAAI,GAAG,IAAI,KAAK,GAAG,UAAU,IAAI,GAAG,IAAI,EAAE,QAAQ,IAAI,KAAK,SAAS,IAAI,GAAG;AACtF,UAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,KAAK,IAAI,KAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,KAAK,GAAG,CAAC,CAAC;AAC1F,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS,GAAG,GAAG;AACnB,QAAI,IAAI,CAAA,GAAI,IAAI,KAAK;AACrB,SAAK,QAAO,EAAG,QAAQ,SAAS,GAAG,GAAG;AACpC,UAAI,IAAI,EAAE,SAAS,CAAC;AACpB,QAAE,GAAG,KAAK,QAAQ,WAAW,GAAG,KAAE,MAAM,EAAE,CAAC,IAAI;AAAA,IACjD,GAAG,IAAI,GAAG,KAAK,KAAK,sBAAqB,GAAI,EAAE,QAAQ,SAAS,GAAG;AACjE,QAAE,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;AAAA,IAClD,CAAC,GAAG,KAAK,KAAK,WAAU;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAIA,MAAM,WAAW;AACf,QAAI,IAAI,KAAK,QAAQ;AACrB,SAAK,EAAE,OAAO,EAAE,IAAI,IAAI;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,SAAS,GAAG,GAAG;AACtB,WAAO,EAAE,GAAG,KAAK,KAAK,QAAQ,WAAW,KAAK,IAAI,KAAE;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,SAAS,GAAG,GAAG;AACrB,QAAI,IAAI,KAAK;AACb,QAAI,MAAM;AACR,aAAO,EAAE,CAAC;AACZ,QAAI,IAAI,GAAG,aAAa,MAAM,GAAG,CAAC;AAClC,WAAO,KAAK,cAAc,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,GAAG,MAAM,WAAW,GAAG,CAAC;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA,EAIA,SAAS,WAAW;AAClB,MAAE,WAAW,IAAI;AACjB,QAAI,IAAI,KAAK;AACb,MAAE,CAAC,IAAI,MAAM,EAAE,GAAG,aAAa,KAAK,WAAW,GAAG,EAAE,GAAG,cAAc,KAAK,WAAW,GAAG,EAAE,GAAG,eAAe,KAAK,WAAW,GAAG,KAAK,oBAAoB,EAAE,GAAG,YAAY,IAAI,GAAG,EAAE,GAAG,aAAa,IAAI,IAAI,MAAM,UAAU,QAAQ,KAAK,EAAE,iBAAiB,aAAa,GAAG,SAAS,GAAG;AACpR,QAAE,gBAAgB,WAAW;AAAA,IAC/B,CAAC,GAAG,KAAK,QAAO,GAAI,KAAK,0BAAyB,GAAI,GAAG,OAAO,GAAG,QAAQ,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI;AAAA,EACzG;AAAA,EACA,YAAY,WAAW;AACrB,QAAI,CAAC,IAAI;AACP,UAAI,EAAE,aAAa,IAAI,GAAG,EAAE;AAC1B;AACF,QAAE,GAAG,WAAW,MAAM,GAAG,KAAK,QAAQ,qBAAqB,EAAE,cAAc,EAAE,WAAW,YAAY,CAAC,GAAG,KAAK;AAAA,IAC/G;AAAA,EACF;AAAA,EACA,YAAY,SAAS,GAAG;AACtB,QAAI,EAAE,gBAAgB,SAAS;AAC7B,WAAK,WAAU;AACf;AAAA,IACF;AACA,QAAI,IAAI;AACN,UAAI,EAAE,aAAa,IAAI,GAAG,EAAE;AAC1B;AACF,QAAE,cAAc,KAAK,CAAC,KAAK,QAAQ,MAAM,cAAc,EAAE,aAAa,GAAG,CAAC,IAAI,KAAK,EAAE,aAAa,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,KAAK,QAAQ,MAAM,eAAe,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK;AAAA,IAC/M;AAAA,EACF;AACF;AACA,SAAS,GAAG,GAAG;AACb,IAAE,iBAAiB,EAAE,aAAa,aAAa,SAAS,EAAE,cAAc,EAAE,eAAc;AAC1F;AACA,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAClC,MAAI,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,QAAQ;AACvC,SAAO,OAAO,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,YAAY,QAAQ;AAAA,IACpE,SAAS;AAAA,IACT,YAAY;AAAA,EAChB,CAAG,KAAK,IAAI,SAAS,YAAY,OAAO,GAAG,EAAE,UAAU,QAAQ,MAAI,IAAE,IAAI,EAAE,KAAK,GAAG,EAAE,OAAO,GAAG,EAAE,UAAU,GAAG,EAAE,cAAc,GAAG,EAAE,UAAU,KAAK,GAAG,EAAE,cAAc,KAAK,EAAE,CAAC,GAAG,EAAE,kBAAkB,GAAG,EAAE,gBAAgB,GAAG,EAAE,cAAc,CAAC,GAAG,MAAM,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC,IAAI;AAC5Q;AACA,SAAS,GAAG,GAAG;AACb,IAAE,YAAY;AAChB;AACA,SAAS,KAAK;AACZ,OAAK;AACP;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,SAAS,IAAE,CAAC,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI;AACvE,SAAO,IAAI,EAAE,UAAU,EAAE,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;AACjJ;AACA,SAAS,GAAG,GAAG,GAAG,GAAG;AACnB,MAAI,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,SAAS,CAAC,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,IAAI;AAC1E,SAAO,IAAI,EAAE,UAAU,EAAE,QAAQ,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE;AACtJ;AACA,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAClC,MAAI,IAAI,IAAI,EAAE,UAAU,EAAE,SAAS,IAAI,IAAI,EAAE,SAAS,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,SAAS,EAAE,OAAO,IAAI;AACvH,MAAI,CAAC,GAAG;AACN,QAAI,KAAK,KAAK,IAAI,GAAG;AACnB,UAAI,CAAC,OAAO,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,KAAK,OAAK;AAC1E,YAAI;AAAA,eACG,OAAO,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;AACvC,eAAO,CAAC;AAAA,IACZ,WAAW,IAAI,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK;AAC1D,aAAO,GAAG,CAAC;AAAA,EACf;AACA,SAAO,IAAI,KAAK,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK;AAC9F;AACA,SAAS,GAAG,GAAG;AACb,SAAO,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI;AAC3B;AACA,SAAS,GAAG,GAAG;AACb,WAAS,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,IAAI,EAAE,QAAQ,IAAI,GAAG;AAC1F,SAAK,EAAE,WAAW,CAAC;AACrB,SAAO,EAAE,SAAS,EAAE;AACtB;AACA,SAAS,GAAG,GAAG;AACb,KAAG,SAAS;AACZ,WAAS,IAAI,EAAE,qBAAqB,OAAO,GAAG,IAAI,EAAE,QAAQ,OAAO;AACjE,QAAI,IAAI,EAAE,CAAC;AACX,MAAE,WAAW,GAAG,KAAK,CAAC;AAAA,EACxB;AACF;AACA,SAAS,GAAG,GAAG;AACb,SAAO,WAAW,GAAG,CAAC;AACxB;AACA,SAAS,GAAG,GAAG;AACb,SAAO,aAAa,CAAC;AACvB;AACA,MAAM,EAAE,UAAU,aAAa,SAAS,GAAG;AACzC,GAAC,EAAE,UAAU,OAAO,EAAE,cAAc,EAAE,eAAc;AACtD,CAAC;AACD,EAAE,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAM;AAAA,EACN,IAAI,SAAS,GAAG,GAAG;AACjB,WAAO,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,KAAE;AAAA,EACxB;AAAA,EACA,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,aAAa;AAAA,EACb,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,UAAU;AACZ;AACA,EAAE,MAAM,SAAS,GAAG;AAClB,SAAO,EAAE,CAAC;AACZ;AACA,EAAE,QAAQ,WAAW;AACnB,WAAS,IAAI,UAAU,QAAQ,IAAI,IAAI,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG;AAC7D,MAAE,CAAC,IAAI,UAAU,CAAC;AACpB,IAAE,CAAC,EAAE,gBAAgB,UAAU,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,SAAS,GAAG;AAC9D,QAAI,CAAC,EAAE,aAAa,CAAC,EAAE,UAAU;AAC/B,YAAM,gEAAgE,OAAO,CAAA,EAAG,SAAS,KAAK,CAAC,CAAC;AAClG,MAAE,UAAU,EAAE,QAAQ,GAAG,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,MAAM,CAAC;AAAA,EACjE,CAAC;AACH;AACA,EAAE,SAAS,SAAS,GAAG,GAAG;AACxB,SAAO,IAAI,EAAE,GAAG,CAAC;AACnB;AACA,EAAE,UAAU;AACZ,IAAI,IAAI,CAAA,GAAI,IAAI,IAAI,KAAK,OAAI,IAAI,IAAI,IAAI;AACzC,SAAS,KAAK;AACZ,WAAS,IAAI;AACX,SAAK,WAAW;AAAA,MACd,QAAQ;AAAA,MACR,yBAAyB;AAAA,MACzB,mBAAmB;AAAA,MACnB,aAAa;AAAA,MACb,cAAc;AAAA,IACpB;AACI,aAAS,KAAK;AACZ,QAAE,OAAO,CAAC,MAAM,OAAO,OAAO,KAAK,CAAC,KAAK,eAAe,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI;AAAA,EACvF;AACA,SAAO,EAAE,YAAY;AAAA,IACnB,aAAa,SAAS,GAAG;AACvB,UAAI,IAAI,EAAE;AACV,WAAK,SAAS,kBAAkB,EAAE,UAAU,YAAY,KAAK,iBAAiB,IAAI,KAAK,QAAQ,iBAAiB,EAAE,UAAU,eAAe,KAAK,yBAAyB,IAAI,EAAE,UAAU,EAAE,UAAU,aAAa,KAAK,yBAAyB,IAAI,EAAE,UAAU,aAAa,KAAK,yBAAyB;AAAA,IAC7S;AAAA,IACA,mBAAmB,SAAS,GAAG;AAC7B,UAAI,IAAI,EAAE;AACV,OAAC,KAAK,QAAQ,kBAAkB,CAAC,EAAE,UAAU,KAAK,kBAAkB,CAAC;AAAA,IACvE;AAAA,IACA,MAAM,WAAW;AACf,WAAK,SAAS,kBAAkB,EAAE,UAAU,YAAY,KAAK,iBAAiB,KAAK,EAAE,UAAU,eAAe,KAAK,yBAAyB,GAAG,EAAE,UAAU,aAAa,KAAK,yBAAyB,GAAG,EAAE,UAAU,aAAa,KAAK,yBAAyB,IAAI,GAAE,GAAI,GAAE,GAAI,GAAE;AAAA,IACpR;AAAA,IACA,SAAS,WAAW;AAClB,WAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,EAAE,SAAS;AAAA,IACtD;AAAA,IACA,2BAA2B,SAAS,GAAG;AACrC,WAAK,kBAAkB,GAAG,IAAE;AAAA,IAC9B;AAAA,IACA,mBAAmB,SAAS,GAAG,GAAG;AAChC,UAAI,IAAI,MAAM,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,IAAI,SAAS,iBAAiB,GAAG,CAAC;AACxI,UAAI,KAAK,GAAG,KAAK,KAAK,QAAQ,2BAA2B,MAAM,MAAM,IAAI;AACvE,WAAG,GAAG,KAAK,SAAS,GAAG,CAAC;AACxB,YAAI,IAAI,GAAG,GAAG,IAAE;AAChB,eAAO,CAAC,MAAM,MAAM,MAAM,MAAM,QAAQ,MAAM,GAAE,GAAI,KAAK,YAAY,WAAW;AAC9E,cAAI,IAAI,GAAG,SAAS,iBAAiB,GAAG,CAAC,GAAG,IAAE;AAC9C,gBAAM,MAAM,IAAI,GAAG,GAAE,IAAK,GAAG,GAAG,EAAE,SAAS,GAAG,CAAC;AAAA,QACjD,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK;AAAA,MACvB,OAAO;AACL,YAAI,CAAC,KAAK,QAAQ,gBAAgB,GAAG,GAAG,IAAE,MAAM,MAAM;AACpD,aAAE;AACF;AAAA,QACF;AACA,WAAG,GAAG,KAAK,SAAS,GAAG,GAAG,KAAE,GAAG,KAAE;AAAA,MACnC;AAAA,IACF;AAAA,EACJ,GAAK,GAAG,GAAG;AAAA,IACP,YAAY;AAAA,IACZ,qBAAqB;AAAA,EACzB,CAAG;AACH;AACA,SAAS,KAAK;AACZ,IAAE,QAAQ,SAAS,GAAG;AACpB,kBAAc,EAAE,GAAG;AAAA,EACrB,CAAC,GAAG,IAAI,CAAA;AACV;AACA,SAAS,KAAK;AACZ,gBAAc,EAAE;AAClB;AACA,IAAI,KAAK,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG;AAC/B,MAAI,EAAE,QAAQ;AACZ,QAAI,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,GAAG,SAAS,IAAI,EAAE,mBAAmB,IAAI,EAAE,aAAa,IAAI,GAAE,GAAI,IAAI,OAAI;AAC1J,WAAO,MAAM,KAAK,GAAG,GAAE,GAAI,KAAK,EAAE,QAAQ,IAAI,EAAE,UAAU,OAAO,SAAO,KAAK,GAAG,GAAG,IAAE;AACrF,QAAI,IAAI,GAAG,IAAI;AACf,OAAG;AACD,UAAI,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,QAAQ,IAAI,EAAE,MAAM,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,IAAI,EAAE,QAAQ,IAAI,QAAQ,IAAI,QAAQ,KAAK,EAAE,aAAa,KAAK,EAAE,cAAc,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,YAAY,IAAI,EAAE;AACrM,YAAM,KAAK,IAAI,IAAI,OAAO,EAAE,cAAc,UAAU,EAAE,cAAc,YAAY,EAAE,cAAc,YAAY,IAAI,IAAI,OAAO,EAAE,cAAc,UAAU,EAAE,cAAc,YAAY,EAAE,cAAc,eAAe,IAAI,IAAI,OAAO,EAAE,cAAc,UAAU,EAAE,cAAc,WAAW,IAAI,IAAI,OAAO,EAAE,cAAc,UAAU,EAAE,cAAc;AAC7U,UAAI,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;AAC9J,UAAI,CAAC,EAAE,CAAC;AACN,iBAAS,IAAI,GAAG,KAAK,GAAG;AACtB,YAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAA;AACpB,OAAC,EAAE,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,EAAE,OAAO,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,CAAC,EAAE,GAAG,IAAI,KAAK,KAAK,KAAK,OAAO,IAAI,MAAI,EAAE,CAAC,EAAE,MAAM,aAAY,WAAW;AACnL,aAAK,KAAK,UAAU,KAAK,EAAE,OAAO,aAAa,EAAE;AACjD,YAAI,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI;AACnG,eAAO,KAAK,cAAc,EAAE,KAAK,EAAE,QAAQ,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,KAAK,KAAK,EAAE,EAAE,MAAM,cAAc,GAAG,EAAE,KAAK,KAAK,EAAE,IAAI,GAAG,CAAC;AAAA,MACtI,GAAE,KAAK;AAAA,QACL,OAAO;AAAA,MACf,CAAO,GAAG,EAAE,KAAK;AAAA,IACb,SAAS,EAAE,gBAAgB,MAAM,MAAM,IAAI,GAAG,GAAG,KAAE;AACnD,SAAK;AAAA,EACP;AACF,GAAG,EAAE,GAAG,KAAK,SAAS,GAAG;AACvB,MAAI,IAAI,EAAE,eAAe,IAAI,EAAE,aAAa,IAAI,EAAE,QAAQ,IAAI,EAAE,gBAAgB,IAAI,EAAE,uBAAuB,IAAI,EAAE,oBAAoB,IAAI,EAAE;AAC7I,MAAI,GAAG;AACL,QAAI,IAAI,KAAK;AACb,MAAC;AACD,QAAI,IAAI,EAAE,kBAAkB,EAAE,eAAe,SAAS,EAAE,eAAe,CAAC,IAAI,GAAG,IAAI,SAAS,iBAAiB,EAAE,SAAS,EAAE,OAAO;AACjI,SAAK,KAAK,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,QAAQ;AAAA,MACvD,QAAQ;AAAA,MACR,aAAa;AAAA,IACnB,CAAK;AAAA,EACH;AACF;AACA,SAAS,KAAK;AACd;AACA,GAAG,YAAY;AAAA,EACb,YAAY;AAAA,EACZ,WAAW,SAAS,GAAG;AACrB,QAAI,IAAI,EAAE;AACV,SAAK,aAAa;AAAA,EACpB;AAAA,EACA,SAAS,SAAS,GAAG;AACnB,QAAI,IAAI,EAAE,QAAQ,IAAI,EAAE;AACxB,SAAK,SAAS,sBAAqB,GAAI,KAAK,EAAE,sBAAqB;AACnE,QAAI,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,YAAY,KAAK,OAAO;AAC1D,QAAI,KAAK,SAAS,GAAG,aAAa,GAAG,CAAC,IAAI,KAAK,SAAS,GAAG,YAAY,CAAC,GAAG,KAAK,SAAS,cAAc,KAAK,EAAE,WAAU;AAAA,EAC1H;AAAA,EACA,MAAM;AACR;AACA,GAAG,IAAI;AAAA,EACL,YAAY;AACd,CAAC;AACD,SAAS,KAAK;AACd;AACA,GAAG,YAAY;AAAA,EACb,SAAS,SAAS,GAAG;AACnB,QAAI,IAAI,EAAE,QAAQ,IAAI,EAAE,aAAa,IAAI,KAAK,KAAK;AACnD,MAAE,sBAAqB,GAAI,EAAE,cAAc,EAAE,WAAW,YAAY,CAAC,GAAG,EAAE,WAAU;AAAA,EACtF;AAAA,EACA,MAAM;AACR;AACA,GAAG,IAAI;AAAA,EACL,YAAY;AACd,CAAC;AACD,EAAE,MAAM,IAAI,IAAI;AAChB,EAAE,MAAM,IAAI,EAAE;AACd,SAAS,GAAG,GAAG;AACb,SAAO,KAAK,OAAO,IAAI,KAAK,MAAM,KAAK,UAAU,CAAC,CAAC;AACrD;AACA,SAAS,GAAG,GAAG;AACbC,qBAAE,KAAMC,YAAG,CAAC;AACd;AACA,SAAS,GAAG,GAAG;AACbD,qBAAE,IAAKE,UAAG,CAAC,IAAIC,SAAG,CAAC;AACrB;AACA,IAAI,KAAK,MAAM,KAAK;AACpB,SAAS,GAAG,IAAI,MAAM,IAAI,MAAM;AAC9B,OAAK,GAAG,KAAK;AACf;AACA,SAAS,KAAK;AACZ,SAAO;AAAA,IACL,MAAM;AAAA,IACN,YAAY;AAAA,EAChB;AACA;AACA,MAAM,KAAK,OAAO,cAAc;AAChC,SAAS,MAAM,GAAG;AAChB,MAAI,IAAI;AACR,QAAM,KAAK,KAAKH,mBAAE,MAAO,OAAO,SAAS,GAAG;AAC5C,MAAI,IAAI;AACR,QAAM,IAAI,EAAE,CAAC;AACb,MAAI,CAAA,EAAG,GAAG,CAAC,IAAI;AACf,QAAM,QAAQI,MAAE,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI;AACnC,MAAI,IAAI;AACR,QAAM;AAAA,IACJ,WAAW,IAAI;AAAA,IACf,OAAO,IAAI;AAAA,IACX,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAClB,KAAO,IAAIA,MAAE,CAAC,MAAM,OAAO,IAAI,CAAA;AAC7B,WAAS,EAAE,GAAG;AACZ,QAAI;AACJ,UAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,MAAM,GAAG,IAAI,MAAM,KAAK,EAAE,UAAU;AACxE,QAAI,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,IAAI;AAC/B,UAAM,IAAIA,OAAG,IAAIA,MAAE,CAAC,MAAM,OAAO,SAAS,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;AACxD,OAAG,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI;AAAA,EACpB;AACA,WAAS,EAAE,GAAG;AACZ,UAAM,IAAI,EAAE,KAAK,EAAE;AACnB,QAAI,CAAC,GAAG,CAAC,GAAG;AACV,UAAI,GAAG,EAAE,IAAI,GAAGC,MAAG,CAAC,GAAG;AACrB,cAAM,IAAI,CAAC,GAAGD,MAAE,CAAC,CAAC;AAClB,UAAE,QAAQ,GAAG,GAAG,EAAE,mBAAmB,CAAC;AACtC;AAAA,MACF;AACA,SAAGA,MAAE,CAAC,GAAG,EAAE,mBAAmB,CAAC;AAAA,IACjC;AAAA,EACF;AACA,WAAS,EAAE,GAAG;AACZ,UAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,mBAAmB,GAAG,UAAU,GAAG,OAAO,EAAC,IAAK;AACvF,QAAI,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,SAAS;AAC9B,SAAG,CAAC;AACJ;AAAA,IACF;AACA,QAAIC,MAAG,CAAC,GAAG;AACT,YAAM,IAAI,CAAC,GAAGD,MAAE,CAAC,CAAC;AAClB,QAAE,QAAQ,GAAG,GAAG,CAAC;AACjB;AAAA,IACF;AACA,OAAGA,MAAE,CAAC,GAAG,CAAC;AAAA,EACZ;AACA,WAAS,EAAE,GAAG;AACZ,QAAI,GAAG;AACL,QAAE,CAAC;AACH;AAAA,IACF;AACA,UAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,mBAAmB,GAAG,mBAAmB,EAAC,IAAK;AACtF,QAAI,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAGC,MAAG,CAAC,GAAG;AAC7B,YAAM,IAAI,CAAC,GAAGD,MAAE,CAAC,CAAC;AAClB,QAAE,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,QACA;AAAA,MACR;AACM;AAAA,IACF;AACA,OAAGA,MAAE,CAAC,GAAG,GAAG,CAAC;AAAA,EACf;AACA,WAAS,EAAE,GAAG;AACZ,UAAM,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,IAAI,EAAC,IAAK;AACrD,QAAI,IAAI;AACR,UAAM,IAAI,MAAM,KAAK,MAAM;AAC3B,QAAI;AACF,UAAI,GAAG;AACL,YAAI,IAAI;AACR,aAAK,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO;AAC9B,cAAI,MAAM,KAAK,OAAO,SAAS,EAAE,YAAY,EAAE,WAAW;AACxD,mBAAO,EAAE,aAAa,GAAG,GAAG,WAAW,GAAG;AAC5C,gBAAM,KAAK,EAAE,WAAW,EAAE;AAC1B,cAAI,KAAK,OAAO,SAAS,EAAE,aAAa,IAAI,EAAE;AAAA,QAChD,CAAC;AAAA,MACH;AAAA,IACF,SAAS,GAAG;AACV,UAAI;AAAA,IACN,UAAC;AACC,UAAI;AAAA,IACN;AACAD,aAAG,MAAM;AACP,UAAI,GAAE,GAAI;AACR,cAAM;AAAA,IACV,CAAC;AAAA,EACH;AACA,QAAM,IAAI;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,OAAO;AAAA,IACP,UAAU;AAAA,IACV,OAAO;AAAA,EACX;AACE,WAAS,EAAE,GAAG;AACZ,UAAM,IAAIC,MAAE,CAAC;AACb,WAAO,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,OAAO,SAAS,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,KAAK,GAAG,wBAAwB,GAAG;AAAA,EAClI;AACA,WAAS,IAAI;AACX,QAAI;AACJ,UAAM,KAAK,IAAIA,MAAE,CAAC,MAAM,OAAO,IAAI,CAAA,GAAI,EAAE,WAAW,GAAG,OAAO,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,aAAa,OAAO,CAAC;AACvG,WAAO,GAAG,GAAG,CAAC,GAAG,MAAM;AACrB,SAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,OAAO;AAC7B,cAAM,KAAK,GAAE;AACb,eAAO,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE;AAAA,MAC9B;AAAA,IACF,CAAC,GAAG;AAAA,MACF,MAAM,OAAO,CAAA,IAAK;AAAA,MAClB;AAAA,IACN;AAAA,EACE;AACA,QAAM,IAAI,CAAC,MAAM;AACf,QAAI,EAAE,CAAC,GAAG,KAAK,EAAE,QAAO,GAAI,IAAI,IAAI,EAAE,GAAG,EAAC,CAAE;AAAA,EAC9C;AACAE;AAAAA,IACE,MAAM;AAAA,IACN,MAAM;AACJ,WAAK,GAAG,EAAC,GAAI,CAAC,GAAG,MAAM;AACrB,aAAK,QAAQ,EAAE,OAAO,GAAG,CAAC;AAAA,MAC5B,CAAC;AAAA,IACH;AAAA,IACA,EAAE,MAAM,KAAE;AAAA,EACd;AACE,QAAM,IAAI;AAAA,IACR,QAAQ,CAAC,GAAG,MAAM,KAAK,OAAO,SAAS,EAAE,OAAO,GAAG,CAAC;AAAA,IACpD,SAAS,MAAM;AACb,WAAK,QAAQ,EAAE,QAAO,GAAI,IAAI;AAAA,IAChC;AAAA,IACA,MAAM,MAAM,KAAK,OAAO,SAAS,EAAE,KAAI;AAAA,IACvC,SAAS,MAAM,KAAK,OAAO,SAAS,EAAE,QAAO;AAAA,IAC7C,SAAS,IAAI,MAAM,KAAK,OAAO,SAAS,EAAE,QAAQ,GAAG,CAAC;AAAA,EAC1D,GAAK,IAAI,MAAM,KAAK,OAAO,SAAS,EAAE,OAAO,YAAY,IAAE,GAAG,KAAK,MAAM,KAAK,OAAO,SAAS,EAAE,OAAO,YAAY,KAAE;AACnH,SAAO,GAAG,MAAM;AACd,SAAK,EAAC;AAAA,EACR,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAE,GAAI,CAAC;AAC7D;AACK,MAAC,KAAK;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAG,KAAK;AAAA,EACN;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,EAAE,QAAQ,OAAO,CAAC,MAAM,EAAE,YAAW,CAAE,CAAC,EAAE;AAClE,GAAG,KAAKC,gBAAG;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,EACX;AAAA,EACE,OAAO;AAAA,EACP,OAAO,CAAC,qBAAqB,GAAG,EAAE;AAAA,EAClC,MAAM,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,EAAC,GAAI;AACnD,UAAM,IAAI,GAAG,OAAO,CAAC,GAAG,MAAM;AAC5B,YAAM,IAAI,KAAK,EAAE,QAAQ,OAAO,CAAC,MAAM,EAAE,YAAW,CAAE,CAAC;AACvD,aAAO,EAAE,CAAC,IAAI,IAAI,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG;AAAA,IACtC,GAAG,CAAA,CAAE,GAAG,IAAIC,SAAG,MAAM;AACnB,YAAM,IAAIC,OAAG,CAAC,GAAG,EAAE,YAAY,EAAC,IAAK,GAAG,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,OAAO,QAAQ,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM;AAC7G,cAAM,IAAIL,MAAE,CAAC;AACb,eAAO,MAAM,WAAW,EAAE,CAAC,IAAI,IAAI;AAAA,MACrC,GAAG,CAAA,CAAE;AACL,aAAO,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA,GAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAAA,IAC3C,CAAC,GAAG,IAAII,SAAG;AAAA,MACT,KAAK,MAAM,EAAE;AAAA,MACb,KAAK,CAAC,MAAM,EAAE,qBAAqB,CAAC;AAAA,IAC1C,CAAK,GAAG,IAAIE,IAAE,GAAI,IAAIC;AAAAA,MAChB,GAAG,EAAE,UAAU,GAAG,GAAG,CAAC;AAAA,IAC5B;AACI,WAAO,EAAE,CAAC,GAAG,MAAM;AACjB,UAAI;AACJ,aAAOC,IAAG,EAAE,OAAO,OAAO,EAAE,KAAK,EAAC,IAAK,IAAI,KAAK,OAAO,SAAS,EAAE,YAAY,OAAO,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC;AAAA,IAC5G;AAAA,EACF;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACz9CD,UAAM,QAAQ;AAWd,UAAM,eAAed,SAAiC,SAAC,SAEtD;AAED,UAAM,OAAO;AAKb,UAAM,YAAY,IAAA;AAClB,UAAM,eAAe,IAAI,KAAK;AAE9B,UAAM,cAAc,SAAS,MAAM,MAAM,OAAO,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,KAAK,KAAA,CAAM,CAAC;AAE9D;AAAA,MAAS,MAC9B,aAAa,MACV,OAAO,CAAC,SAAS,KAAK,YAAY,KAAK,EACvC,KAAK,CAAC,GAAG,OAAO,EAAE,aAAa,eAAe,EAAE,GAAG,MAAM,EAAE,aAAa,eAAe,EAAE,GAAG,EAAE;AAAA,IAAA;AAGnG,UAAM,kBAAkB;AAAA,MAAS,MAC/B,aAAa,MACV,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,EAC/B,KAAK,CAAC,GAAG,OAAO,EAAE,aAAa,eAAe,EAAE,GAAG,MAAM,EAAE,aAAa,eAAe,EAAE,GAAG,EAAE;AAAA,IAAA;AAGnG,UAAM,mBAAmB,SAAS;AAAA,MAChC,KAAK,MAAM,gBAAgB;AAAA,MAC3B,KAAK,CAAC,SAAS;AACb,aAAK,QAAQ,CAAC,MAAM,UAAU;AAC5B,gBAAM,SAAS,aAAa,MAAM,KAAK,CAAC,WAAW,OAAO,QAAQ,KAAK,GAAG;AAC1E,cAAI,QAAQ;AACV,mBAAO,YAAY;AAAA,UACrB;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IAAA,CACD;AAED,UAAM,eAAe,SAAS,MAAM;AAClC,UAAI,QAAQ;AACZ,UAAI,UAAU;AAEd,mBAAa,MAAM,QAAQ,CAAC,WAAW;AACrC,YAAI,OAAO,SAAU;AACrB,iBAAS;AACT,YAAI,OAAO,YAAY,MAAO,YAAW;AAAA,MAC3C,CAAC;AAED,aAAO,EAAE,OAAO,QAAA;AAAA,IAClB,CAAC;AAED,UAAM,mBAAmB,SAAS,MAAM;AACtC,YAAM,EAAE,OAAO,QAAA,IAAY,aAAa;AACxC,aAAO,QAAQ,KAAK,YAAY;AAAA,IAClC,CAAC;AAED,UAAM,yBAAyB,SAAS,MAAM;AAC5C,YAAM,EAAE,OAAO,QAAA,IAAY,aAAa;AACxC,aAAO,UAAU,KAAK,UAAU;AAAA,IAClC,CAAC;AAED,aAAS,WAAW,MAAc;AAChC,aAAO,YAAY,MAAM,SAAS,IAAI;AAAA,IACxC;AAEA,aAAS,0BAA0B;AACjC,YAAM,WAAW,UAAU;AAC3B,UAAI,CAAC,SAAU,QAAO,SAAS;AAC/B,aACE,SAAS,QAAQ,SAAS,KAC1B,SAAS,QAAQ,UAAU,KAC3B,SAAS,QAAQ,iBAAiB,KAClC,SAAS,QAAQ,YAAY,KAC7B,SAAS,iBACT,SAAS;AAAA,IAEb;AAEA,mBAAe,mBAAmB;AAChC,WAAK,YAAY;AACjB,UAAI,CAAC,SAAS,kBAAmB;AAEjC,UAAI,SAAS,mBAAmB;AAC9B,cAAM,SAAS,eAAA;AACf;AAAA,MACF;AAEA,YAAM,SAAS,wBAAA;AACf,YAAM,OAAO,kBAAA;AAAA,IACf;AAEA,aAAS,sBAAsB;AAC7B,YAAM,SAAS,wBAAA;AACf,mBAAa,QAAQ,SAAS,sBAAsB;AAAA,IACtD;AAEA,aAAS,oBAAoB,QAA4B,OAAkC;AACzF,UAAI,OAAO,SAAU;AACrB,YAAM,UAAU,QAAQ,KAAK;AAC7B,aAAO,UAAU;AACjB,aAAO,UAAU;AAAA,IACnB;AAEA,aAAS,gBAAgB,OAAkC;AACzD,YAAM,UAAU,QAAQ,KAAK;AAC7B,mBAAa,MAAM,QAAQ,CAAC,WAAW;AACrC,YAAI,OAAO,SAAU;AACrB,YAAI,CAAC,OAAO,UAAU;AACpB,iBAAO,UAAU;AACjB,iBAAO,UAAU;AAAA,QACnB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,aAAS,eAAe,KAAsB;AAC5C,aAAO,aAAa,MAAM,UAAU,CAAC,SAAS,KAAK,QAAQ,GAAG;AAAA,IAChE;AAEA,aAAS,YAAY,QAA4B;AAC/C,UAAI,OAAO,YAAY,MAAO;AAC9B,UAAI,OAAO,UAAU,UAAU,OAAO,UAAU,MAAM;AACpD,eAAO,QAAQ;AACf;AAAA,MACF;AACA,UAAI,OAAO,UAAU,SAAS;AAC5B,eAAO,QAAQ;AACf;AAAA,MACF;AACA,aAAO,QAAQ;AAAA,IACjB;AAEA,aAAS,WAAW,OAAoC;AACtD,UAAI,UAAU,UAAU,UAAU,KAAM,QAAO;AAC/C,UAAI,UAAU,QAAS,QAAO;AAC9B,aAAO;AAAA,IACT;AAEA,cAAU,MAAM;AACd,eAAS,iBAAiB,oBAAoB,mBAAmB;AACjE,0BAAA;AAAA,IACF,CAAC;AAED,oBAAgB,MAAM;AACpB,eAAS,oBAAoB,oBAAoB,mBAAmB;AAAA,IACtE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7LD,UAAM,QAAQ;AAOd,UAAM,OAAO;AAEb,UAAM,UAAU,IAAA;AAChB,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,eAAe,IAAyB,EAAE;AAGhD,UAAM,aAAa,MAAM;AAEvB,mBAAa,QAAQ,KAAK,MAAM,KAAK,UAAU,MAAM,QAAQ,CAAC;AAC9D,gBAAU,QAAQ;AAAA,IACpB;AAGA,UAAM,aAAa,YAAY;AAC7B,UAAI,CAAC,QAAQ,MAAO;AAEpB,YAAM,QAAQ,MAAM,SAAS,CAAC,UAAmB;AAC/C,YAAI,OAAO;AACT,eAAK,QAAQ,MAAM,QAAQ;AAAA,QAC7B;AAAA,MACF,CAAC;AAAA,IACH;AAGA,UAAM,cAAc,MAAM;AACxB,UAAI,QAAQ,OAAO;AACjB,gBAAQ,MAAM,YAAA;AAAA,MAChB;AACA,WAAK,OAAO;AAAA,IACd;AAGA,UAAM,eAAe,MAAM;AAEzB,aAAO,OAAO,MAAM,UAAU,aAAa,KAAK;AAChD,gBAAU,QAAQ;AAClB,UAAI,QAAQ,OAAO;AACjB,gBAAQ,MAAM,cAAA;AAAA,MAChB;AACA,WAAK,QAAQ;AAAA,IACf;AAGA,UAAM,uBAAuB,MAAM;AACjC,WAAK,eAAe;AAAA,IACtB;AAGA,UAAM,eAAe,MAAM;AACzB,gBAAU,QAAQ;AAAA,IACpB;AAGA,aAAa;AAAA,MACX;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjGD,UAAM,OAAO;AAEb,UAAM,iBAAiB,CAAC,SAAiB;AACvC,WAAK,qBAAqB,IAAI;AAAA,IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,11]}