@robot-admin/naive-ui-components 0.10.2 → 0.10.3

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.
Files changed (107) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +5 -2
  3. package/dist/{C_AudioPlayer-Cj4lUdZo.css.map → C_AudioPlayer-ldTy9Y34.css.map} +1 -1
  4. package/dist/{C_AvatarGroup-D3PwsKME.css.map → C_AvatarGroup-SIzxuuZr.css.map} +1 -1
  5. package/dist/{C_Breadcrumb-DOcLt9uX.css.map → C_Breadcrumb-Bqqrl8nX.css.map} +1 -1
  6. package/dist/C_Breadcrumb.d.cts +2 -2
  7. package/dist/C_Breadcrumb.d.ts +2 -1
  8. package/dist/C_Captcha.d.cts +1 -1
  9. package/dist/C_Cascade.d.cts +1 -1
  10. package/dist/{C_Chat-DwatUQqu.css.map → C_Chat-CF1SU7mc.css.map} +1 -1
  11. package/dist/C_Chat.css +1 -1
  12. package/dist/C_Chat.d.cts +1 -1
  13. package/dist/C_City.d.cts +1 -1
  14. package/dist/C_Code.d.cts +1 -1
  15. package/dist/{C_ContextMenu-CD0iaSju.css.map → C_ContextMenu-Bn_uhJSo.css.map} +1 -1
  16. package/dist/C_ContextMenu.css +1 -1
  17. package/dist/C_ContextMenu.d.cts +1 -1
  18. package/dist/C_Date.d.cts +1 -1
  19. package/dist/C_Editor.d.cts +1 -1
  20. package/dist/C_Guide.d.cts +1 -1
  21. package/dist/C_Icon.d.cts +1 -1
  22. package/dist/C_Language.d.cts +1 -1
  23. package/dist/{C_Login-BrQBs_m4.css.map → C_Login-B3qYkLrN.css.map} +1 -1
  24. package/dist/C_Login.css +1 -1
  25. package/dist/C_Login.d.cts +1 -1
  26. package/dist/C_Markdown.d.cts +1 -1
  27. package/dist/C_Menu.cjs +1 -1
  28. package/dist/C_Menu.d.cts +2 -2
  29. package/dist/C_Menu.d.ts +2 -1
  30. package/dist/C_Menu.js +1 -1
  31. package/dist/C_Menu.js.map +1 -1
  32. package/dist/C_Menu2.js +1 -1
  33. package/dist/C_Menu2.js.map +1 -1
  34. package/dist/{C_OrgChart-BXEp4i4w.css.map → C_OrgChart-ChZu346B.css.map} +1 -1
  35. package/dist/C_OrgChart.css +1 -1
  36. package/dist/{C_Skeleton-BJoFYwrF.css.map → C_Skeleton-BNPbaut7.css.map} +1 -1
  37. package/dist/C_Skeleton.css +1 -1
  38. package/dist/{C_TagsView-DtGtYhBH.css.map → C_TagsView-BN8vMRsY.css.map} +1 -1
  39. package/dist/C_TagsView.css +1 -1
  40. package/dist/C_TagsView.d.cts +1 -1
  41. package/dist/C_TagsView.d.ts +2 -1
  42. package/dist/{C_Timeline-irQcO-b7.css.map → C_Timeline-4rk0Dzgn.css.map} +1 -1
  43. package/dist/C_Timeline.css +1 -1
  44. package/dist/{C_Transfer-11y3k-WD.css.map → C_Transfer-B-vjvhjI.css.map} +1 -1
  45. package/dist/C_Transfer.css +1 -1
  46. package/dist/_shared.cjs +1 -0
  47. package/dist/_shared.d.cts +2 -0
  48. package/dist/_shared.d.ts +2 -0
  49. package/dist/_shared.js +1 -0
  50. package/dist/constants.d.ts +5 -5
  51. package/dist/constants2.d.ts +4 -4
  52. package/dist/constants3.d.ts +3 -3
  53. package/dist/constants4.d.ts +5 -5
  54. package/dist/constants5.d.ts +2 -2
  55. package/dist/data.d.ts +2 -2
  56. package/dist/index.cjs +1 -1
  57. package/dist/index.cjs.map +1 -1
  58. package/dist/index.d.cts +16 -16
  59. package/dist/index.d.ts +107 -154
  60. package/dist/index.js +1 -1
  61. package/dist/index.js.map +1 -1
  62. package/dist/index10.vue.d.ts +1 -1
  63. package/dist/index11.vue.d.ts +1 -1
  64. package/dist/index12.vue.d.ts +3 -3
  65. package/dist/index13.vue.d.ts +3 -3
  66. package/dist/index14.vue.d.ts +3 -3
  67. package/dist/index15.vue.d.ts +5 -5
  68. package/dist/index16.vue.d.ts +2 -2
  69. package/dist/index17.vue.d.ts +1 -1
  70. package/dist/index18.vue.d.ts +5 -5
  71. package/dist/index19.vue.d.ts +2 -2
  72. package/dist/index2.vue.d.ts +6 -6
  73. package/dist/index20.vue.d.ts +1 -1
  74. package/dist/index21.vue.d.ts +1 -1
  75. package/dist/index22.vue.d.ts +1 -1
  76. package/dist/index23.vue.d.ts +2 -2
  77. package/dist/index24.vue.d.ts +2 -2
  78. package/dist/index26.vue.d.ts +4 -4
  79. package/dist/index27.vue.d.ts +3 -3
  80. package/dist/index28.vue.d.ts +4 -4
  81. package/dist/index3.vue.d.ts +2 -2
  82. package/dist/index4.vue.d.ts +4 -4
  83. package/dist/index5.vue.d.ts +1 -1
  84. package/dist/index6.vue.d.ts +2 -2
  85. package/dist/index7.vue.d.ts +2 -2
  86. package/dist/index8.vue.d.ts +1 -1
  87. package/dist/index9.vue.d.ts +2 -2
  88. package/dist/{types.d.ts → menuAdapter.d.ts} +61 -2
  89. package/dist/menuAdapter.js +2 -0
  90. package/dist/menuAdapter.js.map +1 -0
  91. package/dist/style.css +16 -16
  92. package/dist/useCollapsePanel.d.ts +1 -1
  93. package/dist/useCropperCore.d.ts +5 -5
  94. package/dist/useDraggableLayout.d.ts +5 -5
  95. package/dist/useDynamicFormState.d.ts +2 -2
  96. package/dist/useEdgeInteraction.d.ts +1 -1
  97. package/dist/useInfiniteScroll.d.ts +3 -3
  98. package/dist/useModalEdit.d.ts +3 -3
  99. package/dist/useQRCode.d.ts +3 -3
  100. package/dist/useSearchState.d.ts +2 -2
  101. package/dist/useSignatureHistory.d.ts +3 -3
  102. package/dist/useSplitResize.d.ts +1 -1
  103. package/dist/useTimeSelection.d.ts +3 -3
  104. package/dist/useTreeOperations.d.ts +2 -2
  105. package/dist/useWorkflowValidation.d.ts +7 -7
  106. package/package.json +3 -2
  107. package/dist/index2.d.ts +0 -120
@@ -1 +1 @@
1
- {"version":3,"file":"C_Menu2.js","names":["mode","collapsed","collapsedWidth","collapsedIconSize","inverted","themeOverrides","dropdownProps","indent","rootIndent"],"sources":["../src/components/_shared/menuAdapter.ts","../src/components/C_Menu/index.vue","../src/components/C_Menu/index.vue"],"sourcesContent":["/**\n * 菜单适配器 — 将路由数据转换为 NMenu 的 MenuOption[]\n *\n * 设计理念:\n * - 开箱即用:`createMenuOptions(routes)` 零配置即可生成菜单\n * - 完全可控:通过 `MenuAdapterConfig` 定制每一步转换逻辑\n * - i18n 解耦:`labelFormatter` 回调注入翻译函数,不绑定任何 i18n 方案\n *\n * @example 基础用法\n * ```ts\n * import { createMenuOptions } from '@robot-admin/naive-ui-components'\n *\n * const menuOptions = createMenuOptions(routes)\n * ```\n *\n * @example 带 i18n + 过滤\n * ```ts\n * const menuOptions = createMenuOptions(routes, {\n * labelFormatter: t, // vue-i18n 的 t 函数\n * filter: route => !route.meta?.hidden,\n * })\n * ```\n *\n * @example 自定义 key 取值\n * ```ts\n * const menuOptions = createMenuOptions(routes, {\n * getKey: route => route.name || route.path,\n * })\n * ```\n */\n\nimport { h, type VNode } from 'vue'\nimport { Icon } from '@iconify/vue'\nimport type { MenuOption } from 'naive-ui/es'\nimport type { RouteItem } from './types'\n\n/**\n * 菜单适配器配置\n */\nexport interface MenuAdapterConfig {\n /**\n * 标签文本格式化函数(用于 i18n)\n * 默认:原样返回 title\n */\n labelFormatter?: (title: string) => string\n\n /**\n * 获取菜单项的唯一 key\n * 默认:`normalizePath(route.path)`\n */\n getKey?: (route: RouteItem) => string\n\n /**\n * 获取显示文本\n * 默认:`route.meta?.title || route.name || ''`\n */\n getLabel?: (route: RouteItem) => string\n\n /**\n * 路由过滤器 — return false 排除该项\n * 默认:排除 `meta.hidden === true`\n */\n filter?: (route: RouteItem) => boolean\n\n /**\n * 自定义图标渲染\n * 默认:字符串 → Iconify Icon;函数 → 直接调用\n */\n renderIcon?: (\n icon: string | (() => VNode) | undefined\n ) => (() => VNode) | undefined\n\n /**\n * 是否递归处理 children\n * 默认:true\n */\n recursive?: boolean\n}\n\n// ====== 内置默认值 ======\n\nconst normalizePath = (path: string): string =>\n path.startsWith('/') ? path : `/${path}`\n\nconst defaultGetKey = (route: RouteItem): string =>\n route.path ? normalizePath(route.path) : ''\n\nconst defaultGetLabel = (route: RouteItem): string =>\n route.meta?.title || route.name || ''\n\nconst defaultFilter = (route: RouteItem): boolean => !route.meta?.hidden\n\nconst defaultRenderIcon = (\n icon: string | (() => VNode) | undefined\n): (() => VNode) | undefined => {\n if (!icon) return undefined\n if (typeof icon === 'string') {\n return () =>\n h(\n 'span',\n {\n class: 'n-icon',\n style: 'display: inline-flex; align-items: center;',\n },\n [h(Icon, { icon })]\n )\n }\n if (typeof icon === 'function') return icon\n return undefined\n}\n\n/**\n * 将路由数据转换为 NMenu 的 MenuOption[]\n *\n * 支持的输入格式:\n * 1. **Vue Router RouteRecordRaw** — 直接传 `router.getRoutes()` 或手写路由表\n * 2. **后端 JSON 路由表** — `{ path, meta: { title, icon }, children }`\n * 3. **自定义格式** — 通过 config 完全自定义 key/label/icon 的取值逻辑\n *\n * @param routes 路由数据数组\n * @param config 适配器配置\n * @returns NMenu 可直接使用的 MenuOption[]\n */\nexport function createMenuOptions(\n routes: RouteItem[],\n config: MenuAdapterConfig = {}\n): MenuOption[] {\n const {\n labelFormatter = (s: string) => s,\n getKey = defaultGetKey,\n getLabel = defaultGetLabel,\n filter = defaultFilter,\n renderIcon = defaultRenderIcon,\n recursive = true,\n } = config\n\n const convert = (items: RouteItem[]): MenuOption[] => {\n return items.filter(filter).map(item => {\n const icon = item.meta?.icon || (item as any).icon\n const children =\n recursive && item.children?.length ? convert(item.children) : undefined\n\n return {\n key: getKey(item),\n label: labelFormatter(getLabel(item)),\n disabled: item.disabled || false,\n icon: renderIcon(icon),\n ...(item.type && { type: item.type }),\n ...(children?.length && { children }),\n }\n }) as MenuOption[]\n }\n\n return convert(routes)\n}\n\n/**\n * 将路由树扁平化为一维数组(常用于搜索、快捷导航)\n *\n * @param routes 路由数据数组\n * @param filter 过滤器(默认排除 hidden)\n * @returns 扁平化后的路由数组\n */\nexport function flattenRoutes(\n routes: RouteItem[],\n filter: (route: RouteItem) => boolean = defaultFilter\n): RouteItem[] {\n const result: RouteItem[] = []\n const walk = (items: RouteItem[]) => {\n for (const item of items) {\n if (filter(item)) {\n result.push(item)\n }\n if (item.children?.length) {\n walk(item.children)\n }\n }\n }\n walk(routes)\n return result\n}\n","<!--\n * @Description: 通用菜单组件 — 基于 NMenu 的树形导航菜单\n *\n * 支持两种数据输入模式:\n * 1. `options` — 直传 NMenu 原生 MenuOption[](零转换,高级用户)\n * 2. `routes` — 传入路由数据,自动通过内置适配器转换为 MenuOption[]\n *\n * @example 路由模式(推荐)\n * ```vue\n * <C_Menu\n * :routes=\"menuData\"\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 原生模式\n * ```vue\n * <C_Menu\n * :options=\"nMenuOptions\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <NMenu\n ref=\"menuRef\"\n :options=\"mergedOptions\"\n :expanded-keys=\"expandedKeys\"\n :value=\"activeKey\"\n :mode=\"mode\"\n :collapsed=\"collapsed\"\n :collapsed-width=\"collapsedWidth\"\n :collapsed-icon-size=\"collapsedIconSize\"\n :inverted=\"inverted\"\n :theme-overrides=\"themeOverrides\"\n :dropdown-props=\"dropdownProps\"\n :indent=\"indent\"\n :root-indent=\"rootIndent\"\n @update:value=\"handleMenuClick\"\n @update:expanded-keys=\"onExpandedKeysChange\"\n />\n</template>\n\n<script setup lang=\"ts\">\n import { ref, computed, watch, nextTick, onMounted } from 'vue'\n import {\n type MenuOption,\n type MenuInst,\n type DropdownProps,\n } from 'naive-ui/es'\n import {\n createMenuOptions,\n type RouteItem,\n type MenuAdapterConfig,\n } from '../_shared'\n\n defineOptions({ name: 'C_Menu' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 模式一:直传 NMenu 原生 MenuOption[]\n * 与 `routes` 二选一,`options` 优先级更高\n */\n options?: MenuOption[]\n /**\n * 模式二:传入路由数据,自动转换为 MenuOption[]\n * 兼容 Vue Router RouteRecordRaw / 后端 JSON 路由表\n */\n routes?: RouteItem[]\n /**\n * 适配器配置(仅 routes 模式生效)\n * 可自定义 key/label/icon 取值、过滤逻辑等\n */\n adapterConfig?: MenuAdapterConfig\n /**\n * 标签文本格式化函数(routes 模式的快捷方式)\n * 等同于 `adapterConfig.labelFormatter`,但优先级更高\n */\n labelFormatter?: (label: string) => string\n /** 当前激活的菜单 key */\n value?: string\n /** 菜单模式 */\n mode?: 'vertical' | 'horizontal'\n /** 是否折叠 */\n collapsed?: boolean\n /** 折叠宽度 */\n collapsedWidth?: number\n /** 折叠图标大小 */\n collapsedIconSize?: number\n /** 是否反色 */\n inverted?: boolean\n /** 主题覆盖 */\n themeOverrides?: Record<string, any>\n /** 缩进像素 */\n indent?: number\n /** 根缩进像素 */\n rootIndent?: number\n /** 下拉菜单属性(折叠模式) */\n dropdownProps?: DropdownProps\n }>(),\n {\n mode: 'vertical',\n collapsed: false,\n collapsedWidth: 64,\n collapsedIconSize: 22,\n inverted: false,\n indent: 24,\n rootIndent: 16,\n dropdownProps: () => ({\n placement: 'right-start' as const,\n trigger: 'hover' as const,\n arrowStyle: { color: 'var(--n-color)' },\n }),\n }\n )\n\n const emit = defineEmits<{\n /** 菜单项被选中 */\n select: [key: string]\n /** 展开项变化 */\n 'update:expandedKeys': [keys: string[]]\n }>()\n\n const menuRef = ref<MenuInst | null>(null)\n const expandedKeys = ref<string[]>([])\n\n const activeKey = computed(() => props.value ?? '')\n\n // ====== 数据合成 ======\n\n /** 合并后的最终 MenuOption[] */\n const mergedOptions = computed<MenuOption[]>(() => {\n // 优先使用 options 直传模式\n if (props.options) return props.options\n\n // routes 模式 → 适配器转换\n if (props.routes) {\n const config: MenuAdapterConfig = {\n ...props.adapterConfig,\n ...(props.labelFormatter && { labelFormatter: props.labelFormatter }),\n }\n return createMenuOptions(props.routes, config)\n }\n\n return []\n })\n\n // ====== 展开逻辑 ======\n\n /** 从 MenuOption[] 中查找所有祖先 key */\n const findParentKeys = (\n items: MenuOption[],\n targetKey: string,\n parentKeys: string[] = []\n ): string[] => {\n for (const item of items) {\n const children = item.children as MenuOption[] | undefined\n if (children?.length) {\n const currentKeys = [...parentKeys, item.key as string]\n if (children.some(child => child.key === targetKey)) {\n return currentKeys\n }\n const result = findParentKeys(children, targetKey, currentKeys)\n if (result.length > 0) return result\n }\n }\n return []\n }\n\n /** 通过路径段推导展开 key + 查找祖先 key */\n const computeExpandedKeys = (path: string): Set<string> => {\n const segments = path.split('/').filter(Boolean)\n const keys = new Set<string>()\n let currentPath = ''\n segments.forEach(segment => {\n currentPath += `/${segment}`\n keys.add(currentPath)\n })\n findParentKeys(mergedOptions.value, path).forEach(key => keys.add(key))\n return keys\n }\n\n // ====== 事件处理 ======\n\n const handleMenuClick = (key: string) => {\n if (key && key !== activeKey.value) {\n emit('select', key)\n }\n }\n\n const onExpandedKeysChange = (keys: string[]) => {\n expandedKeys.value = keys\n emit('update:expandedKeys', keys)\n }\n\n // ====== 暴露方法 ======\n const showOption = (key: string) => menuRef.value?.showOption(key)\n defineExpose({ showOption, menuRef })\n\n // ====== 路由跟踪 ======\n\n watch(\n () => activeKey.value,\n newKey => {\n if (!newKey) return\n const newKeys = computeExpandedKeys(newKey)\n expandedKeys.value = Array.from(\n new Set([...expandedKeys.value, ...newKeys])\n )\n nextTick(() => menuRef.value?.showOption(newKey))\n },\n { immediate: true }\n )\n\n onMounted(() => {\n nextTick(() => {\n if (activeKey.value) {\n expandedKeys.value = Array.from(computeExpandedKeys(activeKey.value))\n menuRef.value?.showOption(activeKey.value)\n }\n })\n })\n</script>\n","<!--\n * @Description: 通用菜单组件 — 基于 NMenu 的树形导航菜单\n *\n * 支持两种数据输入模式:\n * 1. `options` — 直传 NMenu 原生 MenuOption[](零转换,高级用户)\n * 2. `routes` — 传入路由数据,自动通过内置适配器转换为 MenuOption[]\n *\n * @example 路由模式(推荐)\n * ```vue\n * <C_Menu\n * :routes=\"menuData\"\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 原生模式\n * ```vue\n * <C_Menu\n * :options=\"nMenuOptions\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <NMenu\n ref=\"menuRef\"\n :options=\"mergedOptions\"\n :expanded-keys=\"expandedKeys\"\n :value=\"activeKey\"\n :mode=\"mode\"\n :collapsed=\"collapsed\"\n :collapsed-width=\"collapsedWidth\"\n :collapsed-icon-size=\"collapsedIconSize\"\n :inverted=\"inverted\"\n :theme-overrides=\"themeOverrides\"\n :dropdown-props=\"dropdownProps\"\n :indent=\"indent\"\n :root-indent=\"rootIndent\"\n @update:value=\"handleMenuClick\"\n @update:expanded-keys=\"onExpandedKeysChange\"\n />\n</template>\n\n<script setup lang=\"ts\">\n import { ref, computed, watch, nextTick, onMounted } from 'vue'\n import {\n type MenuOption,\n type MenuInst,\n type DropdownProps,\n } from 'naive-ui/es'\n import {\n createMenuOptions,\n type RouteItem,\n type MenuAdapterConfig,\n } from '../_shared'\n\n defineOptions({ name: 'C_Menu' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 模式一:直传 NMenu 原生 MenuOption[]\n * 与 `routes` 二选一,`options` 优先级更高\n */\n options?: MenuOption[]\n /**\n * 模式二:传入路由数据,自动转换为 MenuOption[]\n * 兼容 Vue Router RouteRecordRaw / 后端 JSON 路由表\n */\n routes?: RouteItem[]\n /**\n * 适配器配置(仅 routes 模式生效)\n * 可自定义 key/label/icon 取值、过滤逻辑等\n */\n adapterConfig?: MenuAdapterConfig\n /**\n * 标签文本格式化函数(routes 模式的快捷方式)\n * 等同于 `adapterConfig.labelFormatter`,但优先级更高\n */\n labelFormatter?: (label: string) => string\n /** 当前激活的菜单 key */\n value?: string\n /** 菜单模式 */\n mode?: 'vertical' | 'horizontal'\n /** 是否折叠 */\n collapsed?: boolean\n /** 折叠宽度 */\n collapsedWidth?: number\n /** 折叠图标大小 */\n collapsedIconSize?: number\n /** 是否反色 */\n inverted?: boolean\n /** 主题覆盖 */\n themeOverrides?: Record<string, any>\n /** 缩进像素 */\n indent?: number\n /** 根缩进像素 */\n rootIndent?: number\n /** 下拉菜单属性(折叠模式) */\n dropdownProps?: DropdownProps\n }>(),\n {\n mode: 'vertical',\n collapsed: false,\n collapsedWidth: 64,\n collapsedIconSize: 22,\n inverted: false,\n indent: 24,\n rootIndent: 16,\n dropdownProps: () => ({\n placement: 'right-start' as const,\n trigger: 'hover' as const,\n arrowStyle: { color: 'var(--n-color)' },\n }),\n }\n )\n\n const emit = defineEmits<{\n /** 菜单项被选中 */\n select: [key: string]\n /** 展开项变化 */\n 'update:expandedKeys': [keys: string[]]\n }>()\n\n const menuRef = ref<MenuInst | null>(null)\n const expandedKeys = ref<string[]>([])\n\n const activeKey = computed(() => props.value ?? '')\n\n // ====== 数据合成 ======\n\n /** 合并后的最终 MenuOption[] */\n const mergedOptions = computed<MenuOption[]>(() => {\n // 优先使用 options 直传模式\n if (props.options) return props.options\n\n // routes 模式 → 适配器转换\n if (props.routes) {\n const config: MenuAdapterConfig = {\n ...props.adapterConfig,\n ...(props.labelFormatter && { labelFormatter: props.labelFormatter }),\n }\n return createMenuOptions(props.routes, config)\n }\n\n return []\n })\n\n // ====== 展开逻辑 ======\n\n /** 从 MenuOption[] 中查找所有祖先 key */\n const findParentKeys = (\n items: MenuOption[],\n targetKey: string,\n parentKeys: string[] = []\n ): string[] => {\n for (const item of items) {\n const children = item.children as MenuOption[] | undefined\n if (children?.length) {\n const currentKeys = [...parentKeys, item.key as string]\n if (children.some(child => child.key === targetKey)) {\n return currentKeys\n }\n const result = findParentKeys(children, targetKey, currentKeys)\n if (result.length > 0) return result\n }\n }\n return []\n }\n\n /** 通过路径段推导展开 key + 查找祖先 key */\n const computeExpandedKeys = (path: string): Set<string> => {\n const segments = path.split('/').filter(Boolean)\n const keys = new Set<string>()\n let currentPath = ''\n segments.forEach(segment => {\n currentPath += `/${segment}`\n keys.add(currentPath)\n })\n findParentKeys(mergedOptions.value, path).forEach(key => keys.add(key))\n return keys\n }\n\n // ====== 事件处理 ======\n\n const handleMenuClick = (key: string) => {\n if (key && key !== activeKey.value) {\n emit('select', key)\n }\n }\n\n const onExpandedKeysChange = (keys: string[]) => {\n expandedKeys.value = keys\n emit('update:expandedKeys', keys)\n }\n\n // ====== 暴露方法 ======\n const showOption = (key: string) => menuRef.value?.showOption(key)\n defineExpose({ showOption, menuRef })\n\n // ====== 路由跟踪 ======\n\n watch(\n () => activeKey.value,\n newKey => {\n if (!newKey) return\n const newKeys = computeExpandedKeys(newKey)\n expandedKeys.value = Array.from(\n new Set([...expandedKeys.value, ...newKeys])\n )\n nextTick(() => menuRef.value?.showOption(newKey))\n },\n { immediate: true }\n )\n\n onMounted(() => {\n nextTick(() => {\n if (activeKey.value) {\n expandedKeys.value = Array.from(computeExpandedKeys(activeKey.value))\n menuRef.value?.showOption(activeKey.value)\n }\n })\n })\n</script>\n"],"mappings":"uOAiFA,MAAM,EAAiB,GACrB,EAAK,WAAW,IAAI,CAAG,EAAO,IAAI,IAE9B,EAAiB,GACrB,EAAM,KAAO,EAAc,EAAM,KAAK,CAAG,GAErC,EAAmB,GACvB,EAAM,MAAM,OAAS,EAAM,MAAQ,GAE/B,EAAiB,GAA8B,CAAC,EAAM,MAAM,OAE5D,EACJ,GAC8B,CACzB,KACL,IAAI,OAAO,GAAS,SAClB,UACE,EACE,OACA,CACE,MAAO,SACP,MAAO,6CACR,CACD,CAAC,EAAE,EAAM,CAAE,OAAM,CAAC,CAAC,CACpB,CAEL,GAAI,OAAO,GAAS,WAAY,OAAO,IAgBzC,SAAgB,EACd,EACA,EAA4B,EAAE,CAChB,CACd,GAAM,CACJ,iBAAkB,GAAc,EAChC,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,IACV,EAEE,EAAW,GACR,EAAM,OAAO,EAAO,CAAC,IAAI,GAAQ,CACtC,IAAM,EAAO,EAAK,MAAM,MAAS,EAAa,KACxC,EACJ,GAAa,EAAK,UAAU,OAAS,EAAQ,EAAK,SAAS,CAAG,IAAA,GAEhE,MAAO,CACL,IAAK,EAAO,EAAK,CACjB,MAAO,EAAe,EAAS,EAAK,CAAC,CACrC,SAAU,EAAK,UAAY,GAC3B,KAAM,EAAW,EAAK,CACtB,GAAI,EAAK,MAAQ,CAAE,KAAM,EAAK,KAAM,CACpC,GAAI,GAAU,QAAU,CAAE,WAAU,CACrC,EACD,CAGJ,OAAO,EAAQ,EAAO,CAUxB,SAAgB,EACd,EACA,EAAwC,EAC3B,CACb,IAAM,EAAsB,EAAE,CACxB,EAAQ,GAAuB,CACnC,IAAK,IAAM,KAAQ,EACb,EAAO,EAAK,EACd,EAAO,KAAK,EAAK,CAEf,EAAK,UAAU,QACjB,EAAK,EAAK,SAAS,EAKzB,OADA,EAAK,EAAO,CACL,2fCtHP,IAAM,EAAQ,EA2DR,EAAO,EAOP,EAAU,EAAqB,KAAI,CACnC,EAAe,EAAc,EAAE,CAAA,CAE/B,EAAY,MAAe,EAAM,OAAS,GAAE,CAK5C,EAAgB,MAA6B,CAEjD,GAAI,EAAM,QAAS,OAAO,EAAM,QAGhC,GAAI,EAAM,OAAQ,CAChB,IAAM,EAA4B,CAChC,GAAG,EAAM,cACT,GAAI,EAAM,gBAAkB,CAAE,eAAgB,EAAM,eAAA,CACtD,CACA,OAAO,EAAkB,EAAM,OAAQ,EAAM,CAG/C,MAAO,EAAC,EACT,CAKK,GACJ,EACA,EACA,EAAuB,EAAC,GACX,CACb,IAAK,IAAM,KAAQ,EAAO,CACxB,IAAM,EAAW,EAAK,SACtB,GAAI,GAAU,OAAQ,CACpB,IAAM,EAAc,CAAC,GAAG,EAAY,EAAK,IAAa,CACtD,GAAI,EAAS,KAAK,GAAS,EAAM,MAAQ,EAAU,CACjD,OAAO,EAET,IAAM,EAAS,EAAe,EAAU,EAAW,EAAW,CAC9D,GAAI,EAAO,OAAS,EAAG,OAAO,GAGlC,MAAO,EAAC,EAIJ,EAAuB,GAA8B,CACzD,IAAM,EAAW,EAAK,MAAM,IAAI,CAAC,OAAO,QAAO,CACzC,EAAO,IAAI,IACb,EAAc,GAMlB,OALA,EAAS,QAAQ,GAAW,CAC1B,GAAe,IAAI,IACnB,EAAK,IAAI,EAAW,EACrB,CACD,EAAe,EAAc,MAAO,EAAK,CAAC,QAAQ,GAAO,EAAK,IAAI,EAAI,CAAA,CAC/D,GAKH,EAAmB,GAAgB,CACnC,GAAO,IAAQ,EAAU,OAC3B,EAAK,SAAU,EAAG,EAIhB,EAAwB,GAAmB,CAC/C,EAAa,MAAQ,EACrB,EAAK,sBAAuB,EAAI,SAKlC,EAAa,CAAE,WADK,GAAgB,EAAQ,OAAO,WAAW,EAAG,CACtC,UAAS,CAAA,CAIpC,MACQ,EAAU,MAChB,GAAU,CACR,GAAI,CAAC,EAAQ,OACb,IAAM,EAAU,EAAoB,EAAM,CAC1C,EAAa,MAAQ,MAAM,KACzB,IAAI,IAAI,CAAC,GAAG,EAAa,MAAO,GAAG,EAAQ,CAAA,CAC7C,CACA,MAAe,EAAQ,OAAO,WAAW,EAAO,CAAA,EAElD,CAAE,UAAW,GAAK,CACpB,CAEA,MAAgB,CACd,MAAe,CACT,EAAU,QACZ,EAAa,MAAQ,MAAM,KAAK,EAAoB,EAAU,MAAM,CAAA,CACpE,EAAQ,OAAO,WAAW,EAAU,MAAK,GAE5C,EACF,4BCtMD,EAgBE,EAAA,SAfI,UAAJ,IAAI,EACH,QAAS,EAAA,MACT,gBAAe,EAAA,MACf,MAAO,EAAA,MACP,KAAMA,EAAAA,KACN,UAAWC,EAAAA,UACX,kBAAiBC,EAAAA,eACjB,sBAAqBC,EAAAA,kBACrB,SAAUC,EAAAA,SACV,kBAAiBC,EAAAA,eACjB,iBAAgBC,EAAAA,cAChB,OAAQC,EAAAA,OACR,cAAaC,EAAAA,WACb,iBAAc,EACd,wBAAsB"}
1
+ {"version":3,"file":"C_Menu2.js","names":["mode","collapsed","collapsedWidth","collapsedIconSize","inverted","themeOverrides","dropdownProps","indent","rootIndent"],"sources":["../src/components/C_Menu/index.vue","../src/components/C_Menu/index.vue"],"sourcesContent":["<!--\n * @Description: 通用菜单组件 — 基于 NMenu 的树形导航菜单\n *\n * 支持两种数据输入模式:\n * 1. `options` — 直传 NMenu 原生 MenuOption[](零转换,高级用户)\n * 2. `routes` — 传入路由数据,自动通过内置适配器转换为 MenuOption[]\n *\n * @example 路由模式(推荐)\n * ```vue\n * <C_Menu\n * :routes=\"menuData\"\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 原生模式\n * ```vue\n * <C_Menu\n * :options=\"nMenuOptions\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <NMenu\n ref=\"menuRef\"\n :options=\"mergedOptions\"\n :expanded-keys=\"expandedKeys\"\n :value=\"activeKey\"\n :mode=\"mode\"\n :collapsed=\"collapsed\"\n :collapsed-width=\"collapsedWidth\"\n :collapsed-icon-size=\"collapsedIconSize\"\n :inverted=\"inverted\"\n :theme-overrides=\"themeOverrides\"\n :dropdown-props=\"dropdownProps\"\n :indent=\"indent\"\n :root-indent=\"rootIndent\"\n @update:value=\"handleMenuClick\"\n @update:expanded-keys=\"onExpandedKeysChange\"\n />\n</template>\n\n<script setup lang=\"ts\">\n import { ref, computed, watch, nextTick, onMounted } from 'vue'\n import {\n type MenuOption,\n type MenuInst,\n type DropdownProps,\n } from 'naive-ui/es'\n import {\n createMenuOptions,\n type RouteItem,\n type MenuAdapterConfig,\n } from '../_shared'\n\n defineOptions({ name: 'C_Menu' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 模式一:直传 NMenu 原生 MenuOption[]\n * 与 `routes` 二选一,`options` 优先级更高\n */\n options?: MenuOption[]\n /**\n * 模式二:传入路由数据,自动转换为 MenuOption[]\n * 兼容 Vue Router RouteRecordRaw / 后端 JSON 路由表\n */\n routes?: RouteItem[]\n /**\n * 适配器配置(仅 routes 模式生效)\n * 可自定义 key/label/icon 取值、过滤逻辑等\n */\n adapterConfig?: MenuAdapterConfig\n /**\n * 标签文本格式化函数(routes 模式的快捷方式)\n * 等同于 `adapterConfig.labelFormatter`,但优先级更高\n */\n labelFormatter?: (label: string) => string\n /** 当前激活的菜单 key */\n value?: string\n /** 菜单模式 */\n mode?: 'vertical' | 'horizontal'\n /** 是否折叠 */\n collapsed?: boolean\n /** 折叠宽度 */\n collapsedWidth?: number\n /** 折叠图标大小 */\n collapsedIconSize?: number\n /** 是否反色 */\n inverted?: boolean\n /** 主题覆盖 */\n themeOverrides?: Record<string, any>\n /** 缩进像素 */\n indent?: number\n /** 根缩进像素 */\n rootIndent?: number\n /** 下拉菜单属性(折叠模式) */\n dropdownProps?: DropdownProps\n }>(),\n {\n mode: 'vertical',\n collapsed: false,\n collapsedWidth: 64,\n collapsedIconSize: 22,\n inverted: false,\n indent: 24,\n rootIndent: 16,\n dropdownProps: () => ({\n placement: 'right-start' as const,\n trigger: 'hover' as const,\n arrowStyle: { color: 'var(--n-color)' },\n }),\n }\n )\n\n const emit = defineEmits<{\n /** 菜单项被选中 */\n select: [key: string]\n /** 展开项变化 */\n 'update:expandedKeys': [keys: string[]]\n }>()\n\n const menuRef = ref<MenuInst | null>(null)\n const expandedKeys = ref<string[]>([])\n\n const activeKey = computed(() => props.value ?? '')\n\n // ====== 数据合成 ======\n\n /** 合并后的最终 MenuOption[] */\n const mergedOptions = computed<MenuOption[]>(() => {\n // 优先使用 options 直传模式\n if (props.options) return props.options\n\n // routes 模式 → 适配器转换\n if (props.routes) {\n const config: MenuAdapterConfig = {\n ...props.adapterConfig,\n ...(props.labelFormatter && { labelFormatter: props.labelFormatter }),\n }\n return createMenuOptions(props.routes, config)\n }\n\n return []\n })\n\n // ====== 展开逻辑 ======\n\n /** 从 MenuOption[] 中查找所有祖先 key */\n const findParentKeys = (\n items: MenuOption[],\n targetKey: string,\n parentKeys: string[] = []\n ): string[] => {\n for (const item of items) {\n const children = item.children as MenuOption[] | undefined\n if (children?.length) {\n const currentKeys = [...parentKeys, item.key as string]\n if (children.some(child => child.key === targetKey)) {\n return currentKeys\n }\n const result = findParentKeys(children, targetKey, currentKeys)\n if (result.length > 0) return result\n }\n }\n return []\n }\n\n /** 通过路径段推导展开 key + 查找祖先 key */\n const computeExpandedKeys = (path: string): Set<string> => {\n const segments = path.split('/').filter(Boolean)\n const keys = new Set<string>()\n let currentPath = ''\n segments.forEach(segment => {\n currentPath += `/${segment}`\n keys.add(currentPath)\n })\n findParentKeys(mergedOptions.value, path).forEach(key => keys.add(key))\n return keys\n }\n\n // ====== 事件处理 ======\n\n const handleMenuClick = (key: string) => {\n if (key && key !== activeKey.value) {\n emit('select', key)\n }\n }\n\n const onExpandedKeysChange = (keys: string[]) => {\n expandedKeys.value = keys\n emit('update:expandedKeys', keys)\n }\n\n // ====== 暴露方法 ======\n const showOption = (key: string) => menuRef.value?.showOption(key)\n defineExpose({ showOption, menuRef })\n\n // ====== 路由跟踪 ======\n\n watch(\n () => activeKey.value,\n newKey => {\n if (!newKey) return\n const newKeys = computeExpandedKeys(newKey)\n expandedKeys.value = Array.from(\n new Set([...expandedKeys.value, ...newKeys])\n )\n nextTick(() => menuRef.value?.showOption(newKey))\n },\n { immediate: true }\n )\n\n onMounted(() => {\n nextTick(() => {\n if (activeKey.value) {\n expandedKeys.value = Array.from(computeExpandedKeys(activeKey.value))\n menuRef.value?.showOption(activeKey.value)\n }\n })\n })\n</script>\n","<!--\n * @Description: 通用菜单组件 — 基于 NMenu 的树形导航菜单\n *\n * 支持两种数据输入模式:\n * 1. `options` — 直传 NMenu 原生 MenuOption[](零转换,高级用户)\n * 2. `routes` — 传入路由数据,自动通过内置适配器转换为 MenuOption[]\n *\n * @example 路由模式(推荐)\n * ```vue\n * <C_Menu\n * :routes=\"menuData\"\n * :label-formatter=\"$t\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * @example 原生模式\n * ```vue\n * <C_Menu\n * :options=\"nMenuOptions\"\n * @select=\"router.push\"\n * />\n * ```\n *\n * Copyright (c) 2025 by CHENY, All Rights Reserved.\n-->\n<template>\n <NMenu\n ref=\"menuRef\"\n :options=\"mergedOptions\"\n :expanded-keys=\"expandedKeys\"\n :value=\"activeKey\"\n :mode=\"mode\"\n :collapsed=\"collapsed\"\n :collapsed-width=\"collapsedWidth\"\n :collapsed-icon-size=\"collapsedIconSize\"\n :inverted=\"inverted\"\n :theme-overrides=\"themeOverrides\"\n :dropdown-props=\"dropdownProps\"\n :indent=\"indent\"\n :root-indent=\"rootIndent\"\n @update:value=\"handleMenuClick\"\n @update:expanded-keys=\"onExpandedKeysChange\"\n />\n</template>\n\n<script setup lang=\"ts\">\n import { ref, computed, watch, nextTick, onMounted } from 'vue'\n import {\n type MenuOption,\n type MenuInst,\n type DropdownProps,\n } from 'naive-ui/es'\n import {\n createMenuOptions,\n type RouteItem,\n type MenuAdapterConfig,\n } from '../_shared'\n\n defineOptions({ name: 'C_Menu' })\n\n const props = withDefaults(\n defineProps<{\n /**\n * 模式一:直传 NMenu 原生 MenuOption[]\n * 与 `routes` 二选一,`options` 优先级更高\n */\n options?: MenuOption[]\n /**\n * 模式二:传入路由数据,自动转换为 MenuOption[]\n * 兼容 Vue Router RouteRecordRaw / 后端 JSON 路由表\n */\n routes?: RouteItem[]\n /**\n * 适配器配置(仅 routes 模式生效)\n * 可自定义 key/label/icon 取值、过滤逻辑等\n */\n adapterConfig?: MenuAdapterConfig\n /**\n * 标签文本格式化函数(routes 模式的快捷方式)\n * 等同于 `adapterConfig.labelFormatter`,但优先级更高\n */\n labelFormatter?: (label: string) => string\n /** 当前激活的菜单 key */\n value?: string\n /** 菜单模式 */\n mode?: 'vertical' | 'horizontal'\n /** 是否折叠 */\n collapsed?: boolean\n /** 折叠宽度 */\n collapsedWidth?: number\n /** 折叠图标大小 */\n collapsedIconSize?: number\n /** 是否反色 */\n inverted?: boolean\n /** 主题覆盖 */\n themeOverrides?: Record<string, any>\n /** 缩进像素 */\n indent?: number\n /** 根缩进像素 */\n rootIndent?: number\n /** 下拉菜单属性(折叠模式) */\n dropdownProps?: DropdownProps\n }>(),\n {\n mode: 'vertical',\n collapsed: false,\n collapsedWidth: 64,\n collapsedIconSize: 22,\n inverted: false,\n indent: 24,\n rootIndent: 16,\n dropdownProps: () => ({\n placement: 'right-start' as const,\n trigger: 'hover' as const,\n arrowStyle: { color: 'var(--n-color)' },\n }),\n }\n )\n\n const emit = defineEmits<{\n /** 菜单项被选中 */\n select: [key: string]\n /** 展开项变化 */\n 'update:expandedKeys': [keys: string[]]\n }>()\n\n const menuRef = ref<MenuInst | null>(null)\n const expandedKeys = ref<string[]>([])\n\n const activeKey = computed(() => props.value ?? '')\n\n // ====== 数据合成 ======\n\n /** 合并后的最终 MenuOption[] */\n const mergedOptions = computed<MenuOption[]>(() => {\n // 优先使用 options 直传模式\n if (props.options) return props.options\n\n // routes 模式 → 适配器转换\n if (props.routes) {\n const config: MenuAdapterConfig = {\n ...props.adapterConfig,\n ...(props.labelFormatter && { labelFormatter: props.labelFormatter }),\n }\n return createMenuOptions(props.routes, config)\n }\n\n return []\n })\n\n // ====== 展开逻辑 ======\n\n /** 从 MenuOption[] 中查找所有祖先 key */\n const findParentKeys = (\n items: MenuOption[],\n targetKey: string,\n parentKeys: string[] = []\n ): string[] => {\n for (const item of items) {\n const children = item.children as MenuOption[] | undefined\n if (children?.length) {\n const currentKeys = [...parentKeys, item.key as string]\n if (children.some(child => child.key === targetKey)) {\n return currentKeys\n }\n const result = findParentKeys(children, targetKey, currentKeys)\n if (result.length > 0) return result\n }\n }\n return []\n }\n\n /** 通过路径段推导展开 key + 查找祖先 key */\n const computeExpandedKeys = (path: string): Set<string> => {\n const segments = path.split('/').filter(Boolean)\n const keys = new Set<string>()\n let currentPath = ''\n segments.forEach(segment => {\n currentPath += `/${segment}`\n keys.add(currentPath)\n })\n findParentKeys(mergedOptions.value, path).forEach(key => keys.add(key))\n return keys\n }\n\n // ====== 事件处理 ======\n\n const handleMenuClick = (key: string) => {\n if (key && key !== activeKey.value) {\n emit('select', key)\n }\n }\n\n const onExpandedKeysChange = (keys: string[]) => {\n expandedKeys.value = keys\n emit('update:expandedKeys', keys)\n }\n\n // ====== 暴露方法 ======\n const showOption = (key: string) => menuRef.value?.showOption(key)\n defineExpose({ showOption, menuRef })\n\n // ====== 路由跟踪 ======\n\n watch(\n () => activeKey.value,\n newKey => {\n if (!newKey) return\n const newKeys = computeExpandedKeys(newKey)\n expandedKeys.value = Array.from(\n new Set([...expandedKeys.value, ...newKeys])\n )\n nextTick(() => menuRef.value?.showOption(newKey))\n },\n { immediate: true }\n )\n\n onMounted(() => {\n nextTick(() => {\n if (activeKey.value) {\n expandedKeys.value = Array.from(computeExpandedKeys(activeKey.value))\n menuRef.value?.showOption(activeKey.value)\n }\n })\n })\n</script>\n"],"mappings":"0tBA6DE,IAAM,EAAQ,EA2DR,EAAO,EAOP,EAAU,EAAqB,KAAI,CACnC,EAAe,EAAc,EAAE,CAAA,CAE/B,EAAY,MAAe,EAAM,OAAS,GAAE,CAK5C,EAAgB,MAA6B,CAEjD,GAAI,EAAM,QAAS,OAAO,EAAM,QAGhC,GAAI,EAAM,OAAQ,CAChB,IAAM,EAA4B,CAChC,GAAG,EAAM,cACT,GAAI,EAAM,gBAAkB,CAAE,eAAgB,EAAM,eAAA,CACtD,CACA,OAAO,EAAkB,EAAM,OAAQ,EAAM,CAG/C,MAAO,EAAC,EACT,CAKK,GACJ,EACA,EACA,EAAuB,EAAC,GACX,CACb,IAAK,IAAM,KAAQ,EAAO,CACxB,IAAM,EAAW,EAAK,SACtB,GAAI,GAAU,OAAQ,CACpB,IAAM,EAAc,CAAC,GAAG,EAAY,EAAK,IAAa,CACtD,GAAI,EAAS,KAAK,GAAS,EAAM,MAAQ,EAAU,CACjD,OAAO,EAET,IAAM,EAAS,EAAe,EAAU,EAAW,EAAW,CAC9D,GAAI,EAAO,OAAS,EAAG,OAAO,GAGlC,MAAO,EAAC,EAIJ,EAAuB,GAA8B,CACzD,IAAM,EAAW,EAAK,MAAM,IAAI,CAAC,OAAO,QAAO,CACzC,EAAO,IAAI,IACb,EAAc,GAMlB,OALA,EAAS,QAAQ,GAAW,CAC1B,GAAe,IAAI,IACnB,EAAK,IAAI,EAAW,EACrB,CACD,EAAe,EAAc,MAAO,EAAK,CAAC,QAAQ,GAAO,EAAK,IAAI,EAAI,CAAA,CAC/D,GAKH,EAAmB,GAAgB,CACnC,GAAO,IAAQ,EAAU,OAC3B,EAAK,SAAU,EAAG,EAIhB,EAAwB,GAAmB,CAC/C,EAAa,MAAQ,EACrB,EAAK,sBAAuB,EAAI,SAKlC,EAAa,CAAE,WADK,GAAgB,EAAQ,OAAO,WAAW,EAAG,CACtC,UAAS,CAAA,CAIpC,MACQ,EAAU,MAChB,GAAU,CACR,GAAI,CAAC,EAAQ,OACb,IAAM,EAAU,EAAoB,EAAM,CAC1C,EAAa,MAAQ,MAAM,KACzB,IAAI,IAAI,CAAC,GAAG,EAAa,MAAO,GAAG,EAAQ,CAAA,CAC7C,CACA,MAAe,EAAQ,OAAO,WAAW,EAAO,CAAA,EAElD,CAAE,UAAW,GAAK,CACpB,CAEA,MAAgB,CACd,MAAe,CACT,EAAU,QACZ,EAAa,MAAQ,MAAM,KAAK,EAAoB,EAAU,MAAM,CAAA,CACpE,EAAQ,OAAO,WAAW,EAAU,MAAK,GAE5C,EACF,4BCtMD,EAgBE,EAAA,SAfI,UAAJ,IAAI,EACH,QAAS,EAAA,MACT,gBAAe,EAAA,MACf,MAAO,EAAA,MACP,KAAMA,EAAAA,KACN,UAAWC,EAAAA,UACX,kBAAiBC,EAAAA,eACjB,sBAAqBC,EAAAA,kBACrB,SAAUC,EAAAA,SACV,kBAAiBC,EAAAA,eACjB,iBAAgBC,EAAAA,cAChB,OAAQC,EAAAA,OACR,cAAaC,EAAAA,WACb,iBAAc,EACd,wBAAsB"}
@@ -1 +1 @@
1
- {"version":3,"file":"C_OrgChart-BXEp4i4w.css","names":[],"sources":["../src/components/C_OrgChart/index.vue?vue&type=style&index=0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* C_OrgChart 组织架构图组件样式 */\n.c-orgchart {\n --c-orgchart-line-color: #d1d5db;\n --c-orgchart-line-width: 2px;\n --c-orgchart-node-spacing: 24px;\n --c-orgchart-level-spacing: 48px;\n --c-orgchart-node-bg: var(--card-color, #ffffff);\n --c-orgchart-node-border: var(--border-color, #e5e7eb);\n --c-orgchart-node-shadow: rgba(0, 0, 0, 0.06);\n --c-orgchart-node-hover-shadow: rgba(0, 0, 0, 0.12);\n --c-orgchart-label-color: var(--text-color-1, #262626);\n --c-orgchart-subtitle-color: var(--text-color-3, #999999);\n --c-orgchart-toggle-bg: var(--card-color, #ffffff);\n --c-orgchart-toggle-color: var(--text-color-2, #666666);\n --c-orgchart-avatar-size: 36px;\n --c-orgchart-controls-bg: var(--card-color, #ffffff);\n --c-orgchart-controls-shadow: rgba(0, 0, 0, 0.1);\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 300px;\n overflow: hidden;\n cursor: grab;\n user-select: none;\n}\n.c-orgchart:active {\n cursor: grabbing;\n}\n.c-orgchart__viewport {\n display: inline-flex;\n justify-content: center;\n width: 100%;\n padding: 32px;\n transition: transform 0.15s ease;\n}\n\n/* ─── 节点包裹器(垂直布局) ─── */\n.c-orgchart--vertical .c-orgchart__node-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.c-orgchart--vertical .c-orgchart__children {\n display: flex;\n justify-content: center;\n padding-top: var(--c-orgchart-level-spacing);\n gap: var(--c-orgchart-node-spacing);\n position: relative;\n /* 垂直连线:父→子 */\n /* 横连线:兄弟节点 */\n /* 兄弟之间的水平线 */\n}\n.c-orgchart--vertical .c-orgchart__children::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 50%;\n width: var(--c-orgchart-line-width);\n height: calc(var(--c-orgchart-level-spacing) / 2);\n background: var(--c-orgchart-line-color);\n transform: translateX(-50%);\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper {\n position: relative;\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper::before {\n content: \"\";\n position: absolute;\n top: calc(var(--c-orgchart-level-spacing) / -2);\n left: 50%;\n width: var(--c-orgchart-line-width);\n height: calc(var(--c-orgchart-level-spacing) / 2);\n background: var(--c-orgchart-line-color);\n transform: translateX(-50%);\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child)::after {\n content: \"\";\n position: absolute;\n top: calc(var(--c-orgchart-level-spacing) / -2);\n height: var(--c-orgchart-line-width);\n background: var(--c-orgchart-line-color);\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):first-child::after {\n left: 50%;\n right: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):last-child::after {\n left: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n right: 50%;\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):not(:first-child):not(:last-child)::after {\n left: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n right: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n}\n\n/* ─── 水平布局 ─── */\n.c-orgchart--horizontal .c-orgchart__node-wrapper {\n display: flex;\n align-items: center;\n}\n.c-orgchart--horizontal .c-orgchart__children {\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding-left: var(--c-orgchart-level-spacing);\n gap: var(--c-orgchart-node-spacing);\n position: relative;\n}\n.c-orgchart--horizontal .c-orgchart__children::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 50%;\n height: var(--c-orgchart-line-width);\n width: calc(var(--c-orgchart-level-spacing) / 2);\n background: var(--c-orgchart-line-color);\n transform: translateY(-50%);\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper {\n position: relative;\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper::before {\n content: \"\";\n position: absolute;\n left: calc(var(--c-orgchart-level-spacing) / -2);\n top: 50%;\n width: calc(var(--c-orgchart-level-spacing) / 2);\n height: var(--c-orgchart-line-width);\n background: var(--c-orgchart-line-color);\n transform: translateY(-50%);\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child)::after {\n content: \"\";\n position: absolute;\n left: calc(var(--c-orgchart-level-spacing) / -2);\n width: var(--c-orgchart-line-width);\n background: var(--c-orgchart-line-color);\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):first-child::after {\n top: 50%;\n bottom: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):last-child::after {\n top: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n bottom: 50%;\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):not(:first-child):not(:last-child)::after {\n top: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n bottom: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n}\n\n/* ─── 圆角连线 ─── */\n.c-orgchart--line-rounded .c-orgchart__children::before,\n.c-orgchart--line-rounded .c-orgchart__node-wrapper::before,\n.c-orgchart--line-rounded .c-orgchart__node-wrapper::after {\n border-radius: 4px;\n}\n\n/* ─── 节点卡片 ─── */\n.c-orgchart__node {\n position: relative;\n background: var(--c-orgchart-node-bg);\n border: 1px solid var(--c-orgchart-node-border);\n border-radius: 8px;\n padding: 12px 16px;\n cursor: pointer;\n box-shadow: 0 2px 8px var(--c-orgchart-node-shadow);\n transition: box-shadow 0.2s ease, transform 0.2s ease;\n white-space: nowrap;\n}\n.c-orgchart__node:hover {\n box-shadow: 0 4px 16px var(--c-orgchart-node-hover-shadow);\n transform: translateY(-2px);\n}\n.c-orgchart__node--leaf {\n opacity: 0.9;\n}\n\n/* ─── 默认节点布局 ─── */\n.c-orgchart__node-default {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.c-orgchart__avatar {\n width: var(--c-orgchart-avatar-size);\n height: var(--c-orgchart-avatar-size);\n border-radius: 50%;\n overflow: hidden;\n flex-shrink: 0;\n}\n.c-orgchart__avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.c-orgchart__info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.c-orgchart__label {\n font-size: 14px;\n font-weight: 600;\n color: var(--c-orgchart-label-color);\n}\n.c-orgchart__subtitle {\n font-size: 12px;\n color: var(--c-orgchart-subtitle-color);\n}\n\n/* ─── 折叠按钮 ─── */\n.c-orgchart__toggle {\n position: absolute;\n bottom: -12px;\n left: 50%;\n transform: translateX(-50%);\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 1px solid var(--c-orgchart-node-border);\n background: var(--c-orgchart-toggle-bg);\n color: var(--c-orgchart-toggle-color);\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n transition: background 0.2s ease;\n}\n.c-orgchart__toggle:hover {\n background: color-mix(in srgb, var(--c-orgchart-node-border) 20%, var(--c-orgchart-toggle-bg));\n}\n.c-orgchart--horizontal .c-orgchart__toggle {\n bottom: auto;\n left: auto;\n right: -12px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* ─── 缩放控制 ─── */\n.c-orgchart__controls {\n position: absolute;\n bottom: 16px;\n right: 16px;\n display: flex;\n align-items: center;\n gap: 4px;\n background: var(--c-orgchart-controls-bg);\n border-radius: 8px;\n padding: 4px;\n box-shadow: 0 2px 8px var(--c-orgchart-controls-shadow);\n z-index: 10;\n}\n.c-orgchart__control-btn {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: 6px;\n background: transparent;\n color: var(--c-orgchart-label-color);\n font-size: 16px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s ease;\n}\n.c-orgchart__control-btn:hover {\n background: color-mix(in srgb, var(--c-orgchart-node-border) 30%, transparent);\n}\n.c-orgchart__zoom-level {\n font-size: 12px;\n color: var(--c-orgchart-subtitle-color);\n min-width: 40px;\n text-align: center;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_OrgChart-ChZu346B.css","names":[],"sources":["../src/components/C_OrgChart/index.vue?vue&type=style&index=0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* C_OrgChart 组织架构图组件样式 */\n.c-orgchart {\n --c-orgchart-line-color: #d1d5db;\n --c-orgchart-line-width: 2px;\n --c-orgchart-node-spacing: 24px;\n --c-orgchart-level-spacing: 48px;\n --c-orgchart-node-bg: var(--card-color, #ffffff);\n --c-orgchart-node-border: var(--border-color, #e5e7eb);\n --c-orgchart-node-shadow: rgba(0, 0, 0, 0.06);\n --c-orgchart-node-hover-shadow: rgba(0, 0, 0, 0.12);\n --c-orgchart-label-color: var(--text-color-1, #262626);\n --c-orgchart-subtitle-color: var(--text-color-3, #999999);\n --c-orgchart-toggle-bg: var(--card-color, #ffffff);\n --c-orgchart-toggle-color: var(--text-color-2, #666666);\n --c-orgchart-avatar-size: 36px;\n --c-orgchart-controls-bg: var(--card-color, #ffffff);\n --c-orgchart-controls-shadow: rgba(0, 0, 0, 0.1);\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 300px;\n overflow: hidden;\n cursor: grab;\n user-select: none;\n}\n.c-orgchart:active {\n cursor: grabbing;\n}\n.c-orgchart__viewport {\n display: inline-flex;\n justify-content: center;\n width: 100%;\n padding: 32px;\n transition: transform 0.15s ease;\n}\n\n/* ─── 节点包裹器(垂直布局) ─── */\n.c-orgchart--vertical .c-orgchart__node-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.c-orgchart--vertical .c-orgchart__children {\n display: flex;\n justify-content: center;\n padding-top: var(--c-orgchart-level-spacing);\n gap: var(--c-orgchart-node-spacing);\n position: relative;\n /* 垂直连线:父→子 */\n /* 横连线:兄弟节点 */\n /* 兄弟之间的水平线 */\n}\n.c-orgchart--vertical .c-orgchart__children::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 50%;\n width: var(--c-orgchart-line-width);\n height: calc(var(--c-orgchart-level-spacing) / 2);\n background: var(--c-orgchart-line-color);\n transform: translateX(-50%);\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper {\n position: relative;\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper::before {\n content: \"\";\n position: absolute;\n top: calc(var(--c-orgchart-level-spacing) / -2);\n left: 50%;\n width: var(--c-orgchart-line-width);\n height: calc(var(--c-orgchart-level-spacing) / 2);\n background: var(--c-orgchart-line-color);\n transform: translateX(-50%);\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child)::after {\n content: \"\";\n position: absolute;\n top: calc(var(--c-orgchart-level-spacing) / -2);\n height: var(--c-orgchart-line-width);\n background: var(--c-orgchart-line-color);\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):first-child::after {\n left: 50%;\n right: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):last-child::after {\n left: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n right: 50%;\n}\n.c-orgchart--vertical .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):not(:first-child):not(:last-child)::after {\n left: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n right: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n}\n\n/* ─── 水平布局 ─── */\n.c-orgchart--horizontal .c-orgchart__node-wrapper {\n display: flex;\n align-items: center;\n}\n.c-orgchart--horizontal .c-orgchart__children {\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding-left: var(--c-orgchart-level-spacing);\n gap: var(--c-orgchart-node-spacing);\n position: relative;\n}\n.c-orgchart--horizontal .c-orgchart__children::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 50%;\n height: var(--c-orgchart-line-width);\n width: calc(var(--c-orgchart-level-spacing) / 2);\n background: var(--c-orgchart-line-color);\n transform: translateY(-50%);\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper {\n position: relative;\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper::before {\n content: \"\";\n position: absolute;\n left: calc(var(--c-orgchart-level-spacing) / -2);\n top: 50%;\n width: calc(var(--c-orgchart-level-spacing) / 2);\n height: var(--c-orgchart-line-width);\n background: var(--c-orgchart-line-color);\n transform: translateY(-50%);\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child)::after {\n content: \"\";\n position: absolute;\n left: calc(var(--c-orgchart-level-spacing) / -2);\n width: var(--c-orgchart-line-width);\n background: var(--c-orgchart-line-color);\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):first-child::after {\n top: 50%;\n bottom: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):last-child::after {\n top: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n bottom: 50%;\n}\n.c-orgchart--horizontal .c-orgchart__children > .c-orgchart__node-wrapper:not(:only-child):not(:first-child):not(:last-child)::after {\n top: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n bottom: calc(-1 * var(--c-orgchart-node-spacing) / 2);\n}\n\n/* ─── 圆角连线 ─── */\n.c-orgchart--line-rounded .c-orgchart__children::before,\n.c-orgchart--line-rounded .c-orgchart__node-wrapper::before,\n.c-orgchart--line-rounded .c-orgchart__node-wrapper::after {\n border-radius: 4px;\n}\n\n/* ─── 节点卡片 ─── */\n.c-orgchart__node {\n position: relative;\n background: var(--c-orgchart-node-bg);\n border: 1px solid var(--c-orgchart-node-border);\n border-radius: 8px;\n padding: 12px 16px;\n cursor: pointer;\n box-shadow: 0 2px 8px var(--c-orgchart-node-shadow);\n transition: box-shadow 0.2s ease, transform 0.2s ease;\n white-space: nowrap;\n}\n.c-orgchart__node:hover {\n box-shadow: 0 4px 16px var(--c-orgchart-node-hover-shadow);\n transform: translateY(-2px);\n}\n.c-orgchart__node--leaf {\n opacity: 0.9;\n}\n\n/* ─── 默认节点布局 ─── */\n.c-orgchart__node-default {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.c-orgchart__avatar {\n width: var(--c-orgchart-avatar-size);\n height: var(--c-orgchart-avatar-size);\n border-radius: 50%;\n overflow: hidden;\n flex-shrink: 0;\n}\n.c-orgchart__avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.c-orgchart__info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n.c-orgchart__label {\n font-size: 14px;\n font-weight: 600;\n color: var(--c-orgchart-label-color);\n}\n.c-orgchart__subtitle {\n font-size: 12px;\n color: var(--c-orgchart-subtitle-color);\n}\n\n/* ─── 折叠按钮 ─── */\n.c-orgchart__toggle {\n position: absolute;\n bottom: -12px;\n left: 50%;\n transform: translateX(-50%);\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 1px solid var(--c-orgchart-node-border);\n background: var(--c-orgchart-toggle-bg);\n color: var(--c-orgchart-toggle-color);\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n transition: background 0.2s ease;\n}\n.c-orgchart__toggle:hover {\n background: color-mix(in srgb, var(--c-orgchart-node-border) 20%, var(--c-orgchart-toggle-bg));\n}\n.c-orgchart--horizontal .c-orgchart__toggle {\n bottom: auto;\n left: auto;\n right: -12px;\n top: 50%;\n transform: translateY(-50%);\n}\n\n/* ─── 缩放控制 ─── */\n.c-orgchart__controls {\n position: absolute;\n bottom: 16px;\n right: 16px;\n display: flex;\n align-items: center;\n gap: 4px;\n background: var(--c-orgchart-controls-bg);\n border-radius: 8px;\n padding: 4px;\n box-shadow: 0 2px 8px var(--c-orgchart-controls-shadow);\n z-index: 10;\n}\n.c-orgchart__control-btn {\n width: 32px;\n height: 32px;\n border: none;\n border-radius: 6px;\n background: transparent;\n color: var(--c-orgchart-label-color);\n font-size: 16px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.2s ease;\n}\n.c-orgchart__control-btn:hover {\n background: color-mix(in srgb, var(--c-orgchart-node-border) 30%, transparent);\n}\n.c-orgchart__zoom-level {\n font-size: 12px;\n color: var(--c-orgchart-subtitle-color);\n min-width: 40px;\n text-align: center;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -279,4 +279,4 @@
279
279
  text-align: center;
280
280
  }
281
281
 
282
- /*# sourceMappingURL=C_OrgChart-BXEp4i4w.css.map*/
282
+ /*# sourceMappingURL=C_OrgChart-ChZu346B.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"C_Skeleton-BJoFYwrF.css","names":[],"sources":["../src/components/C_Skeleton/index.vue?vue&type=style&index=0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* C_Skeleton 骨架屏组件样式 */\n.c-skeleton {\n --c-skeleton-bg: #e5e7eb;\n --c-skeleton-wave-bg: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.4),\n transparent\n );\n --c-skeleton-radius: 4px;\n --c-skeleton-circle-size: 40px;\n --c-skeleton-circle-sm: 32px;\n --c-skeleton-circle-lg: 56px;\n --c-skeleton-line-height: 16px;\n --c-skeleton-line-sm-height: 12px;\n --c-skeleton-line-mini-height: 8px;\n --c-skeleton-gap: 12px;\n --c-skeleton-card-cover-height: 160px;\n --c-skeleton-image-height: 200px;\n width: 100%;\n}\n\n/* ─── 基础骨架块 ─── */\n.c-skeleton__item {\n background-color: var(--c-skeleton-bg);\n border-radius: var(--c-skeleton-radius);\n position: relative;\n overflow: hidden;\n}\n\n/* ─── 动画:脉冲 ─── */\n.c-skeleton--pulse .c-skeleton__item {\n animation: skeleton-pulse 1.5s ease-in-out infinite;\n}\n@keyframes skeleton-pulse {\n0%, 100% {\n opacity: 1;\n}\n50% {\n opacity: 0.4;\n}\n}\n/* ─── 动画:波浪 ─── */\n.c-skeleton--wave .c-skeleton__item::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: var(--c-skeleton-wave-bg);\n animation: skeleton-wave 1.6s linear infinite;\n}\n@keyframes skeleton-wave {\n0% {\n transform: translateX(-100%);\n}\n100% {\n transform: translateX(100%);\n}\n}\n/* ─── 无动画 ─── */\n.c-skeleton--none .c-skeleton__item {\n animation: none;\n}\n.c-skeleton--none .c-skeleton__item::after {\n display: none;\n}\n\n/* ─── 文本行 ─── */\n.c-skeleton__text {\n margin-bottom: 8px;\n}\n.c-skeleton__line {\n height: var(--c-skeleton-line-height);\n width: 100%;\n}\n.c-skeleton__line--sm {\n height: var(--c-skeleton-line-sm-height);\n margin-top: 6px;\n}\n.c-skeleton__line--mini {\n height: var(--c-skeleton-line-mini-height);\n}\n.c-skeleton__line--label {\n height: var(--c-skeleton-line-sm-height);\n margin-bottom: 8px;\n}\n.c-skeleton__line--input {\n height: 34px;\n border-radius: 6px;\n}\n.c-skeleton__line--btn {\n height: 32px;\n border-radius: 6px;\n}\n\n/* ─── 圆形(头像) ─── */\n.c-skeleton__circle {\n width: var(--c-skeleton-circle-size);\n height: var(--c-skeleton-circle-size);\n border-radius: 50%;\n flex-shrink: 0;\n}\n.c-skeleton__circle--sm {\n width: var(--c-skeleton-circle-sm);\n height: var(--c-skeleton-circle-sm);\n}\n.c-skeleton__circle--lg {\n width: var(--c-skeleton-circle-lg);\n height: var(--c-skeleton-circle-lg);\n}\n\n/* ─── Avatar 预设 ─── */\n.c-skeleton__avatar-group {\n display: flex;\n align-items: center;\n gap: var(--c-skeleton-gap);\n}\n.c-skeleton__avatar-text {\n flex: 1;\n}\n\n/* ─── Image 预设 ─── */\n.c-skeleton__image {\n width: 100%;\n height: var(--c-skeleton-image-height);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n margin-bottom: var(--c-skeleton-gap);\n}\n.c-skeleton__image-icon {\n color: var(--c-skeleton-bg);\n opacity: 0.6;\n filter: brightness(0.8);\n}\n\n/* ─── Card 预设 ─── */\n.c-skeleton__card {\n border: 1px solid var(--c-skeleton-bg);\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: var(--c-skeleton-gap);\n}\n.c-skeleton__card-cover {\n width: 100%;\n height: var(--c-skeleton-card-cover-height);\n border-radius: 0;\n}\n.c-skeleton__card-body {\n padding: 16px;\n}\n.c-skeleton__card-desc {\n margin-top: 8px;\n}\n.c-skeleton__card-footer {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--c-skeleton-bg);\n}\n\n/* ─── Table 预设 ─── */\n.c-skeleton__table {\n width: 100%;\n border: 1px solid var(--c-skeleton-bg);\n border-radius: 8px;\n overflow: hidden;\n}\n.c-skeleton__table-header {\n display: flex;\n padding: 12px 16px;\n background-color: color-mix(in srgb, var(--c-skeleton-bg) 30%, transparent);\n border-bottom: 1px solid var(--c-skeleton-bg);\n}\n.c-skeleton__table-row {\n display: flex;\n padding: 12px 16px;\n border-bottom: 1px solid color-mix(in srgb, var(--c-skeleton-bg) 50%, transparent);\n}\n.c-skeleton__table-row:last-child {\n border-bottom: none;\n}\n.c-skeleton__table-cell {\n flex: 1;\n padding: 0 8px;\n}\n.c-skeleton__table-cell--action {\n flex: 0 0 120px;\n}\n.c-skeleton__action-btns {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n/* ─── Form 预设 ─── */\n.c-skeleton__form {\n display: grid;\n grid-template-columns: repeat(var(--form-cols, 2), 1fr);\n gap: 16px 24px;\n}\n.c-skeleton__form-field {\n display: flex;\n flex-direction: column;\n}\n.c-skeleton__form-actions {\n grid-column: 1/-1;\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding-top: 16px;\n}\n\n/* ─── List 预设 ─── */\n.c-skeleton__list-item {\n display: flex;\n align-items: flex-start;\n gap: var(--c-skeleton-gap);\n padding: 12px 0;\n border-bottom: 1px solid color-mix(in srgb, var(--c-skeleton-bg) 50%, transparent);\n}\n.c-skeleton__list-item:last-child {\n border-bottom: none;\n}\n.c-skeleton__list-content {\n flex: 1;\n}\n\n/* ─── Detail 预设 ─── */\n.c-skeleton__detail-header {\n display: flex;\n align-items: center;\n gap: 16px;\n margin-bottom: 24px;\n}\n.c-skeleton__detail-title {\n flex: 1;\n}\n.c-skeleton__detail-body {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px 24px;\n}\n.c-skeleton__detail-field {\n display: flex;\n flex-direction: column;\n}\n.c-skeleton__detail-value {\n margin-top: 4px;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_Skeleton-BNPbaut7.css","names":[],"sources":["../src/components/C_Skeleton/index.vue?vue&type=style&index=0&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* C_Skeleton 骨架屏组件样式 */\n.c-skeleton {\n --c-skeleton-bg: #e5e7eb;\n --c-skeleton-wave-bg: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.4),\n transparent\n );\n --c-skeleton-radius: 4px;\n --c-skeleton-circle-size: 40px;\n --c-skeleton-circle-sm: 32px;\n --c-skeleton-circle-lg: 56px;\n --c-skeleton-line-height: 16px;\n --c-skeleton-line-sm-height: 12px;\n --c-skeleton-line-mini-height: 8px;\n --c-skeleton-gap: 12px;\n --c-skeleton-card-cover-height: 160px;\n --c-skeleton-image-height: 200px;\n width: 100%;\n}\n\n/* ─── 基础骨架块 ─── */\n.c-skeleton__item {\n background-color: var(--c-skeleton-bg);\n border-radius: var(--c-skeleton-radius);\n position: relative;\n overflow: hidden;\n}\n\n/* ─── 动画:脉冲 ─── */\n.c-skeleton--pulse .c-skeleton__item {\n animation: skeleton-pulse 1.5s ease-in-out infinite;\n}\n@keyframes skeleton-pulse {\n0%, 100% {\n opacity: 1;\n}\n50% {\n opacity: 0.4;\n}\n}\n/* ─── 动画:波浪 ─── */\n.c-skeleton--wave .c-skeleton__item::after {\n content: \"\";\n position: absolute;\n inset: 0;\n background: var(--c-skeleton-wave-bg);\n animation: skeleton-wave 1.6s linear infinite;\n}\n@keyframes skeleton-wave {\n0% {\n transform: translateX(-100%);\n}\n100% {\n transform: translateX(100%);\n}\n}\n/* ─── 无动画 ─── */\n.c-skeleton--none .c-skeleton__item {\n animation: none;\n}\n.c-skeleton--none .c-skeleton__item::after {\n display: none;\n}\n\n/* ─── 文本行 ─── */\n.c-skeleton__text {\n margin-bottom: 8px;\n}\n.c-skeleton__line {\n height: var(--c-skeleton-line-height);\n width: 100%;\n}\n.c-skeleton__line--sm {\n height: var(--c-skeleton-line-sm-height);\n margin-top: 6px;\n}\n.c-skeleton__line--mini {\n height: var(--c-skeleton-line-mini-height);\n}\n.c-skeleton__line--label {\n height: var(--c-skeleton-line-sm-height);\n margin-bottom: 8px;\n}\n.c-skeleton__line--input {\n height: 34px;\n border-radius: 6px;\n}\n.c-skeleton__line--btn {\n height: 32px;\n border-radius: 6px;\n}\n\n/* ─── 圆形(头像) ─── */\n.c-skeleton__circle {\n width: var(--c-skeleton-circle-size);\n height: var(--c-skeleton-circle-size);\n border-radius: 50%;\n flex-shrink: 0;\n}\n.c-skeleton__circle--sm {\n width: var(--c-skeleton-circle-sm);\n height: var(--c-skeleton-circle-sm);\n}\n.c-skeleton__circle--lg {\n width: var(--c-skeleton-circle-lg);\n height: var(--c-skeleton-circle-lg);\n}\n\n/* ─── Avatar 预设 ─── */\n.c-skeleton__avatar-group {\n display: flex;\n align-items: center;\n gap: var(--c-skeleton-gap);\n}\n.c-skeleton__avatar-text {\n flex: 1;\n}\n\n/* ─── Image 预设 ─── */\n.c-skeleton__image {\n width: 100%;\n height: var(--c-skeleton-image-height);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n margin-bottom: var(--c-skeleton-gap);\n}\n.c-skeleton__image-icon {\n color: var(--c-skeleton-bg);\n opacity: 0.6;\n filter: brightness(0.8);\n}\n\n/* ─── Card 预设 ─── */\n.c-skeleton__card {\n border: 1px solid var(--c-skeleton-bg);\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: var(--c-skeleton-gap);\n}\n.c-skeleton__card-cover {\n width: 100%;\n height: var(--c-skeleton-card-cover-height);\n border-radius: 0;\n}\n.c-skeleton__card-body {\n padding: 16px;\n}\n.c-skeleton__card-desc {\n margin-top: 8px;\n}\n.c-skeleton__card-footer {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n padding: 12px 16px;\n border-top: 1px solid var(--c-skeleton-bg);\n}\n\n/* ─── Table 预设 ─── */\n.c-skeleton__table {\n width: 100%;\n border: 1px solid var(--c-skeleton-bg);\n border-radius: 8px;\n overflow: hidden;\n}\n.c-skeleton__table-header {\n display: flex;\n padding: 12px 16px;\n background-color: color-mix(in srgb, var(--c-skeleton-bg) 30%, transparent);\n border-bottom: 1px solid var(--c-skeleton-bg);\n}\n.c-skeleton__table-row {\n display: flex;\n padding: 12px 16px;\n border-bottom: 1px solid color-mix(in srgb, var(--c-skeleton-bg) 50%, transparent);\n}\n.c-skeleton__table-row:last-child {\n border-bottom: none;\n}\n.c-skeleton__table-cell {\n flex: 1;\n padding: 0 8px;\n}\n.c-skeleton__table-cell--action {\n flex: 0 0 120px;\n}\n.c-skeleton__action-btns {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\n/* ─── Form 预设 ─── */\n.c-skeleton__form {\n display: grid;\n grid-template-columns: repeat(var(--form-cols, 2), 1fr);\n gap: 16px 24px;\n}\n.c-skeleton__form-field {\n display: flex;\n flex-direction: column;\n}\n.c-skeleton__form-actions {\n grid-column: 1/-1;\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding-top: 16px;\n}\n\n/* ─── List 预设 ─── */\n.c-skeleton__list-item {\n display: flex;\n align-items: flex-start;\n gap: var(--c-skeleton-gap);\n padding: 12px 0;\n border-bottom: 1px solid color-mix(in srgb, var(--c-skeleton-bg) 50%, transparent);\n}\n.c-skeleton__list-item:last-child {\n border-bottom: none;\n}\n.c-skeleton__list-content {\n flex: 1;\n}\n\n/* ─── Detail 预设 ─── */\n.c-skeleton__detail-header {\n display: flex;\n align-items: center;\n gap: 16px;\n margin-bottom: 24px;\n}\n.c-skeleton__detail-title {\n flex: 1;\n}\n.c-skeleton__detail-body {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 16px 24px;\n}\n.c-skeleton__detail-field {\n display: flex;\n flex-direction: column;\n}\n.c-skeleton__detail-value {\n margin-top: 4px;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -250,4 +250,4 @@
250
250
  margin-top: 4px;
251
251
  }
252
252
 
253
- /*# sourceMappingURL=C_Skeleton-BJoFYwrF.css.map*/
253
+ /*# sourceMappingURL=C_Skeleton-BNPbaut7.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"C_TagsView-DtGtYhBH.css","names":[],"sources":["../src/components/C_TagsView/index.vue?vue&type=style&index=0&scoped=1c8f8663&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* ===========================================\n * 标签组件样式 - 精简版\n * =========================================== */\n/* --------- 标签视图容器 --------- */\n.tags-view-container[data-v-1c8f8663] {\n border-bottom: 1px solid var(--color-border);\n padding: 8px 16px 0;\n position: relative;\n width: 100%;\n}\n\n/* --------- 滚动轨道容器 --------- */\n.tags-track[data-v-1c8f8663] {\n width: 100%;\n overflow: hidden;\n position: relative;\n}\n\n/* --------- 滚动容器 --------- */\n.tags-container[data-v-1c8f8663] {\n display: flex;\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n -ms-overflow-style: none;\n padding: 0 20px;\n align-items: center;\n min-height: 40px;\n}\n.tags-container[data-v-1c8f8663]::-webkit-scrollbar {\n display: none;\n}\n\n/* --------- 现代化标签样式 --------- */\n.n-tag[data-v-1c8f8663] {\n position: relative;\n display: inline-flex;\n align-items: center;\n padding: 0 12px;\n height: 28px;\n margin-right: 4px;\n font-size: 12px;\n font-weight: 500;\n border-radius: 14px;\n border: 1px solid var(--color-border);\n cursor: pointer;\n transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);\n flex-shrink: 0;\n white-space: nowrap;\n /* 内部高光效果 */\n /* --------- 悬停效果 --------- */\n /* --------- 激活状态 --------- */\n /* --------- 关闭按钮 --------- */\n}\n.n-tag[data-v-1c8f8663]::before {\n content: \"\";\n position: absolute;\n top: 1px;\n left: 1px;\n right: 1px;\n height: 50%;\n border-radius: 13px 13px 6px 6px;\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.3), transparent);\n opacity: 0.5;\n transition: opacity 0.22s ease;\n}\n.n-tag[data-v-1c8f8663]:hover:not([type=primary]) {\n color: var(--color-primary) !important;\n border-color: var(--color-primary);\n transform: scale(1.02);\n}\n.n-tag[data-v-1c8f8663]:hover:not([type=primary])::before {\n opacity: 0.8;\n}\n.n-tag[data-v-1c8f8663]:hover:not([type=primary]) .c-icon,\n.n-tag[data-v-1c8f8663]:hover:not([type=primary]) [class*=\"c-icon\"] {\n color: var(--color-primary) !important;\n}\n.n-tag:hover:not([type=primary]) i[data-v-1c8f8663],\n.n-tag:hover:not([type=primary]) .icon[data-v-1c8f8663] {\n color: var(--color-primary) !important;\n}\n.n-tag[data-v-1c8f8663]:hover:not([type=primary]) .n-tag__close {\n color: var(--color-primary) !important;\n opacity: 0.8;\n transform: scale(1.05);\n}\n.n-tag[type=primary][data-v-1c8f8663] {\n background: var(--tag-active-bg, rgba(32, 128, 240, 0.08)) !important;\n color: var(--color-primary) !important;\n border-color: var(--color-primary) !important;\n font-weight: 600;\n transform: scale(1.02);\n}\n.n-tag[type=primary][data-v-1c8f8663]::before {\n opacity: 0.6;\n}\n.n-tag[type=primary][data-v-1c8f8663] .n-tag__content,\n.n-tag[type=primary][data-v-1c8f8663] *:not(.n-tag__close) {\n color: var(--color-primary) !important;\n}\n.n-tag[type=primary][data-v-1c8f8663] .c-icon,\n.n-tag[type=primary][data-v-1c8f8663] [class*=\"c-icon\"] {\n color: var(--color-primary) !important;\n}\n.n-tag[type=primary] i[data-v-1c8f8663],\n.n-tag[type=primary] .icon[data-v-1c8f8663] {\n color: var(--color-primary) !important;\n}\n.n-tag[type=primary][data-v-1c8f8663]:hover {\n background: var(--tag-active-hover-bg, rgba(32, 128, 240, 0.12)) !important;\n transform: scale(1.03);\n}\n.n-tag[type=primary][data-v-1c8f8663] .n-tag__close {\n color: var(--color-primary) !important;\n opacity: 0.8;\n}\n.n-tag[data-v-1c8f8663] .n-tag__close {\n width: 16px !important;\n height: 16px !important;\n border-radius: 8px !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n margin-left: 6px !important;\n font-size: 12px !important;\n font-weight: 600 !important;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;\n opacity: 0.6;\n background: rgba(0, 0, 0, 0.02) !important;\n border: 1px solid transparent;\n}\n.n-tag[data-v-1c8f8663] .n-tag__close:not(:hover) {\n transform: scale(0.9);\n}\n.n-tag[data-v-1c8f8663] .n-tag__close:hover {\n background: linear-gradient(135deg, rgba(248, 113, 113, 0.1), rgba(239, 68, 68, 0.08)) !important;\n border-color: rgba(239, 68, 68, 0.15) !important;\n color: #ef4444 !important;\n opacity: 1 !important;\n transform: scale(0.6) !important;\n box-shadow: 0 2px 6px rgba(239, 68, 68, 0.2) !important;\n}\n.n-tag[data-v-1c8f8663] .n-tag__close:active {\n transform: scale(0.95) !important;\n transition-duration: 0.1s !important;\n}\n\n/* --------- C_Icon --------- */\n[data-v-1c8f8663] .c-icon {\n margin-right: 4px;\n font-size: 12px;\n transition: color 0.22s ease;\n display: inline-flex;\n align-items: center;\n}\n\n/* --------- 响应式 --------- */\n@media (max-width: 768px) {\n.tags-view-container[data-v-1c8f8663] {\n padding: 6px 12px 0;\n}\n.n-tag[data-v-1c8f8663] {\n height: 26px;\n padding: 0 10px;\n font-size: 11px;\n margin-right: 3px;\n border-radius: 13px;\n}\n.n-tag[data-v-1c8f8663] .n-tag__close {\n width: 14px;\n height: 14px;\n font-size: 11px;\n margin-left: 4px;\n}\n.tags-container[data-v-1c8f8663] {\n padding: 0 12px;\n min-height: 36px;\n}\n[data-v-1c8f8663] .c-icon {\n font-size: 11px;\n margin-right: 3px;\n}\n}\n/* --------- 暗色主题 --------- */\n[data-theme=dark] .n-tag[data-v-1c8f8663] .n-tag__close {\n background: rgba(255, 255, 255, 0.03) !important;\n}\n[data-theme=dark] .n-tag[data-v-1c8f8663] .n-tag__close:hover {\n background: linear-gradient(135deg, rgba(248, 113, 113, 0.12), rgba(239, 68, 68, 0.1)) !important;\n box-shadow: 0 2px 6px rgba(239, 68, 68, 0.25) !important;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_TagsView-BN8vMRsY.css","names":[],"sources":["../src/components/C_TagsView/index.vue?vue&type=style&index=0&scoped=1c8f8663&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//* ===========================================\n * 标签组件样式 - 精简版\n * =========================================== */\n/* --------- 标签视图容器 --------- */\n.tags-view-container[data-v-1c8f8663] {\n border-bottom: 1px solid var(--color-border);\n padding: 8px 16px 0;\n position: relative;\n width: 100%;\n}\n\n/* --------- 滚动轨道容器 --------- */\n.tags-track[data-v-1c8f8663] {\n width: 100%;\n overflow: hidden;\n position: relative;\n}\n\n/* --------- 滚动容器 --------- */\n.tags-container[data-v-1c8f8663] {\n display: flex;\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: none;\n -ms-overflow-style: none;\n padding: 0 20px;\n align-items: center;\n min-height: 40px;\n}\n.tags-container[data-v-1c8f8663]::-webkit-scrollbar {\n display: none;\n}\n\n/* --------- 现代化标签样式 --------- */\n.n-tag[data-v-1c8f8663] {\n position: relative;\n display: inline-flex;\n align-items: center;\n padding: 0 12px;\n height: 28px;\n margin-right: 4px;\n font-size: 12px;\n font-weight: 500;\n border-radius: 14px;\n border: 1px solid var(--color-border);\n cursor: pointer;\n transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);\n flex-shrink: 0;\n white-space: nowrap;\n /* 内部高光效果 */\n /* --------- 悬停效果 --------- */\n /* --------- 激活状态 --------- */\n /* --------- 关闭按钮 --------- */\n}\n.n-tag[data-v-1c8f8663]::before {\n content: \"\";\n position: absolute;\n top: 1px;\n left: 1px;\n right: 1px;\n height: 50%;\n border-radius: 13px 13px 6px 6px;\n background: linear-gradient(180deg, rgba(255, 255, 255, 0.3), transparent);\n opacity: 0.5;\n transition: opacity 0.22s ease;\n}\n.n-tag[data-v-1c8f8663]:hover:not([type=primary]) {\n color: var(--color-primary) !important;\n border-color: var(--color-primary);\n transform: scale(1.02);\n}\n.n-tag[data-v-1c8f8663]:hover:not([type=primary])::before {\n opacity: 0.8;\n}\n.n-tag[data-v-1c8f8663]:hover:not([type=primary]) .c-icon,\n.n-tag[data-v-1c8f8663]:hover:not([type=primary]) [class*=\"c-icon\"] {\n color: var(--color-primary) !important;\n}\n.n-tag:hover:not([type=primary]) i[data-v-1c8f8663],\n.n-tag:hover:not([type=primary]) .icon[data-v-1c8f8663] {\n color: var(--color-primary) !important;\n}\n.n-tag[data-v-1c8f8663]:hover:not([type=primary]) .n-tag__close {\n color: var(--color-primary) !important;\n opacity: 0.8;\n transform: scale(1.05);\n}\n.n-tag[type=primary][data-v-1c8f8663] {\n background: var(--tag-active-bg, rgba(32, 128, 240, 0.08)) !important;\n color: var(--color-primary) !important;\n border-color: var(--color-primary) !important;\n font-weight: 600;\n transform: scale(1.02);\n}\n.n-tag[type=primary][data-v-1c8f8663]::before {\n opacity: 0.6;\n}\n.n-tag[type=primary][data-v-1c8f8663] .n-tag__content,\n.n-tag[type=primary][data-v-1c8f8663] *:not(.n-tag__close) {\n color: var(--color-primary) !important;\n}\n.n-tag[type=primary][data-v-1c8f8663] .c-icon,\n.n-tag[type=primary][data-v-1c8f8663] [class*=\"c-icon\"] {\n color: var(--color-primary) !important;\n}\n.n-tag[type=primary] i[data-v-1c8f8663],\n.n-tag[type=primary] .icon[data-v-1c8f8663] {\n color: var(--color-primary) !important;\n}\n.n-tag[type=primary][data-v-1c8f8663]:hover {\n background: var(--tag-active-hover-bg, rgba(32, 128, 240, 0.12)) !important;\n transform: scale(1.03);\n}\n.n-tag[type=primary][data-v-1c8f8663] .n-tag__close {\n color: var(--color-primary) !important;\n opacity: 0.8;\n}\n.n-tag[data-v-1c8f8663] .n-tag__close {\n width: 16px !important;\n height: 16px !important;\n border-radius: 8px !important;\n display: flex !important;\n align-items: center !important;\n justify-content: center !important;\n margin-left: 6px !important;\n font-size: 12px !important;\n font-weight: 600 !important;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;\n opacity: 0.6;\n background: rgba(0, 0, 0, 0.02) !important;\n border: 1px solid transparent;\n}\n.n-tag[data-v-1c8f8663] .n-tag__close:not(:hover) {\n transform: scale(0.9);\n}\n.n-tag[data-v-1c8f8663] .n-tag__close:hover {\n background: linear-gradient(135deg, rgba(248, 113, 113, 0.1), rgba(239, 68, 68, 0.08)) !important;\n border-color: rgba(239, 68, 68, 0.15) !important;\n color: #ef4444 !important;\n opacity: 1 !important;\n transform: scale(0.6) !important;\n box-shadow: 0 2px 6px rgba(239, 68, 68, 0.2) !important;\n}\n.n-tag[data-v-1c8f8663] .n-tag__close:active {\n transform: scale(0.95) !important;\n transition-duration: 0.1s !important;\n}\n\n/* --------- C_Icon --------- */\n[data-v-1c8f8663] .c-icon {\n margin-right: 4px;\n font-size: 12px;\n transition: color 0.22s ease;\n display: inline-flex;\n align-items: center;\n}\n\n/* --------- 响应式 --------- */\n@media (max-width: 768px) {\n.tags-view-container[data-v-1c8f8663] {\n padding: 6px 12px 0;\n}\n.n-tag[data-v-1c8f8663] {\n height: 26px;\n padding: 0 10px;\n font-size: 11px;\n margin-right: 3px;\n border-radius: 13px;\n}\n.n-tag[data-v-1c8f8663] .n-tag__close {\n width: 14px;\n height: 14px;\n font-size: 11px;\n margin-left: 4px;\n}\n.tags-container[data-v-1c8f8663] {\n padding: 0 12px;\n min-height: 36px;\n}\n[data-v-1c8f8663] .c-icon {\n font-size: 11px;\n margin-right: 3px;\n}\n}\n/* --------- 暗色主题 --------- */\n[data-theme=dark] .n-tag[data-v-1c8f8663] .n-tag__close {\n background: rgba(255, 255, 255, 0.03) !important;\n}\n[data-theme=dark] .n-tag[data-v-1c8f8663] .n-tag__close:hover {\n background: linear-gradient(135deg, rgba(248, 113, 113, 0.12), rgba(239, 68, 68, 0.1)) !important;\n box-shadow: 0 2px 6px rgba(239, 68, 68, 0.25) !important;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -191,4 +191,4 @@
191
191
  box-shadow: 0 2px 6px rgba(239, 68, 68, 0.25) !important;
192
192
  }
193
193
 
194
- /*# sourceMappingURL=C_TagsView-DtGtYhBH.css.map*/
194
+ /*# sourceMappingURL=C_TagsView-BN8vMRsY.css.map*/
@@ -1,3 +1,3 @@
1
- import { i as TagItem } from "./types.js";
1
+ import { s as TagItem } from "./menuAdapter.js";
2
2
  import { i as useTagsView, n as ContextMenuLabels, r as UseTagsViewOptions, t as _default } from "./index24.vue.js";
3
3
  export { _default as C_TagsView, type ContextMenuLabels, type TagItem, type UseTagsViewOptions, useTagsView };
@@ -1,3 +1,4 @@
1
- import { s as TagItem } from "./index.js";
1
+ import { s as TagItem } from "./menuAdapter.js";
2
+ import "./_shared.js";
2
3
  import { i as useTagsView, n as ContextMenuLabels, r as UseTagsViewOptions, t as _default } from "./index24.vue.js";
3
4
  export { _default as C_TagsView, type ContextMenuLabels, type TagItem, type UseTagsViewOptions, useTagsView };
@@ -1 +1 @@
1
- {"version":3,"file":"C_Timeline-irQcO-b7.css","names":[],"sources":["../src/components/C_Timeline/index.vue?vue&type=style&index=0&scoped=3da6d11e&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.c-timeline[data-v-3da6d11e] {\n --tl-bg: transparent;\n --tl-text-primary: var(--app-text-primary);\n --tl-text-secondary: var(--text-color-2);\n --tl-text-time: var(--text-color-3);\n --tl-line-color: color-mix(in srgb, var(--primary-color) 20%, var(--border-color));\n --tl-line-width: 2px;\n --tl-dot-size: 12px;\n --tl-icon-size: 32px;\n --tl-item-gap: 0px;\n --tl-track-spacing: 24px;\n --tl-track-width: 48px;\n --tl-content-gap: 12px;\n --tl-dot-size-sm: 8px;\n --tl-dot-size-lg: 16px;\n --tl-icon-size-sm: 24px;\n --tl-icon-size-lg: 40px;\n --tl-track-width-sm: 36px;\n --tl-track-width-lg: 60px;\n --tl-track-spacing-sm: 16px;\n --tl-track-spacing-lg: 32px;\n --tl-dot-default: var(--text-color-3);\n --tl-dot-success: #18a058;\n --tl-dot-warning: #f0a020;\n --tl-dot-error: #d03050;\n --tl-dot-info: #2080f0;\n --tl-icon-bg: var(--card-color);\n --tl-content-bg: var(--card-color);\n --tl-content-radius: 8px;\n --tl-content-padding: 12px 16px;\n --tl-tag-radius: 4px;\n --tl-h-item-width: 200px;\n --tl-h-track-height: 56px;\n position: relative;\n background: var(--tl-bg);\n}\n.c-timeline.is-small[data-v-3da6d11e] {\n --tl-dot-size: var(--tl-dot-size-sm);\n --tl-icon-size: var(--tl-icon-size-sm);\n --tl-track-width: var(--tl-track-width-sm);\n --tl-track-spacing: var(--tl-track-spacing-sm);\n}\n.c-timeline.is-large[data-v-3da6d11e] {\n --tl-dot-size: var(--tl-dot-size-lg);\n --tl-icon-size: var(--tl-icon-size-lg);\n --tl-track-width: var(--tl-track-width-lg);\n --tl-track-spacing: var(--tl-track-spacing-lg);\n}\n.c-timeline.is-vertical[data-v-3da6d11e] {\n display: flex;\n flex-direction: column;\n}\n.c-timeline.is-vertical .c-timeline__item[data-v-3da6d11e] {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n}\n.c-timeline.is-vertical .c-timeline__track[data-v-3da6d11e] {\n flex: 0 0 var(--tl-track-width);\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-right: var(--tl-content-gap);\n}\n.c-timeline.is-vertical .c-timeline__dot[data-v-3da6d11e] {\n flex-shrink: 0;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n}\n.c-timeline.is-vertical .c-timeline__dot.is-dot[data-v-3da6d11e] {\n width: var(--tl-dot-size);\n height: var(--tl-dot-size);\n margin-top: calc((var(--tl-icon-size) - var(--tl-dot-size)) / 2);\n background: var(--tl-dot-default);\n border: 2px solid var(--card-color);\n box-shadow: 0 0 0 2px var(--tl-dot-default);\n}\n.c-timeline.is-vertical .c-timeline__dot.is-icon[data-v-3da6d11e] {\n width: var(--tl-icon-size);\n height: var(--tl-icon-size);\n background: var(--tl-icon-bg);\n border: 1.5px solid var(--tl-line-color);\n box-shadow: 0 0 0 3px var(--card-color), 0 2px 8px rgba(0, 0, 0, 0.08);\n font-size: calc(var(--tl-icon-size) * 0.5);\n}\n.c-timeline.is-vertical .c-timeline__line[data-v-3da6d11e] {\n flex: 1;\n min-height: var(--tl-track-spacing);\n width: 0;\n box-sizing: content-box;\n border-left-width: var(--tl-line-width);\n border-left-style: solid;\n border-left-color: var(--tl-line-color);\n margin: 4px 0;\n}\n.c-timeline.is-vertical.is-line-dashed .c-timeline__line[data-v-3da6d11e] {\n border-left-style: dashed;\n}\n.c-timeline.is-vertical.is-line-dotted .c-timeline__line[data-v-3da6d11e] {\n border-left-style: dotted;\n}\n.c-timeline.is-vertical .c-timeline__body[data-v-3da6d11e] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding-bottom: var(--tl-track-spacing);\n}\n.c-timeline.is-vertical .c-timeline__item:last-child .c-timeline__body[data-v-3da6d11e] {\n padding-bottom: 0;\n}\n.c-timeline.is-horizontal[data-v-3da6d11e] {\n display: flex;\n flex-direction: row;\n overflow-x: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--border-color) transparent;\n}\n.c-timeline.is-horizontal[data-v-3da6d11e]::-webkit-scrollbar {\n height: 4px;\n}\n.c-timeline.is-horizontal[data-v-3da6d11e]::-webkit-scrollbar-thumb {\n background: var(--border-color);\n border-radius: 2px;\n}\n.c-timeline.is-horizontal .c-timeline__item[data-v-3da6d11e] {\n flex: 0 0 var(--tl-h-item-width);\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.c-timeline.is-horizontal .c-timeline__track[data-v-3da6d11e] {\n position: relative;\n width: 100%;\n height: var(--tl-h-track-height);\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: visible;\n}\n.c-timeline.is-horizontal .c-timeline__dot[data-v-3da6d11e] {\n position: relative;\n z-index: 1;\n flex-shrink: 0;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--tl-icon-bg);\n}\n.c-timeline.is-horizontal .c-timeline__dot.is-dot[data-v-3da6d11e] {\n width: var(--tl-dot-size);\n height: var(--tl-dot-size);\n background: var(--tl-dot-default);\n border: 2px solid var(--card-color);\n box-shadow: 0 0 0 2px var(--tl-dot-default);\n}\n.c-timeline.is-horizontal .c-timeline__dot.is-icon[data-v-3da6d11e] {\n width: var(--tl-icon-size);\n height: var(--tl-icon-size);\n background: var(--tl-icon-bg);\n border: 1.5px solid var(--tl-line-color);\n box-shadow: 0 0 0 3px var(--card-color), 0 2px 8px rgba(0, 0, 0, 0.08);\n font-size: calc(var(--tl-icon-size) * 0.5);\n}\n.c-timeline.is-horizontal .c-timeline__line[data-v-3da6d11e] {\n display: none;\n}\n.c-timeline.is-horizontal .c-timeline__body[data-v-3da6d11e] {\n width: 100%;\n padding: 8px 12px 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n text-align: center;\n}\n.c-timeline.is-horizontal .c-timeline__header[data-v-3da6d11e] {\n justify-content: center;\n flex-wrap: wrap;\n}\n.c-timeline.is-horizontal .c-timeline__content[data-v-3da6d11e] {\n text-align: left;\n font-size: 12px;\n}\n.c-timeline__header[data-v-3da6d11e] {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n}\n.c-timeline__title[data-v-3da6d11e] {\n font-size: 14px;\n font-weight: 600;\n color: var(--tl-text-primary);\n line-height: 1.5;\n}\n.c-timeline__time[data-v-3da6d11e] {\n display: inline-flex;\n align-items: center;\n padding: 1px 7px;\n font-size: 11px;\n color: var(--tl-text-time);\n white-space: nowrap;\n background: color-mix(in srgb, var(--border-color) 40%, transparent);\n border-radius: 4px;\n line-height: 1.6;\n}\n.c-timeline__tags[data-v-3da6d11e] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n.c-timeline__tag[data-v-3da6d11e] {\n display: inline-flex;\n align-items: center;\n padding: 1px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: var(--tl-tag-radius);\n background: color-mix(in srgb, var(--primary-color) 10%, var(--card-color));\n color: var(--primary-color);\n border: 1px solid color-mix(in srgb, var(--primary-color) 20%, transparent);\n}\n.c-timeline__content[data-v-3da6d11e] {\n padding: var(--tl-content-padding);\n background: var(--tl-content-bg);\n border-radius: var(--tl-content-radius);\n border: 1px solid var(--border-color);\n font-size: 13px;\n color: var(--tl-text-secondary);\n line-height: 1.7;\n}\n.c-timeline__detail[data-v-3da6d11e] {\n overflow: hidden;\n transition: max-height 0.3s ease, opacity 0.3s ease;\n}\n.c-timeline__detail.is-collapsed[data-v-3da6d11e] {\n max-height: 0;\n opacity: 0;\n}\n.c-timeline__detail.is-expanded[data-v-3da6d11e] {\n max-height: 800px;\n opacity: 1;\n}\n.c-timeline__collapse-trigger[data-v-3da6d11e] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--primary-color);\n cursor: pointer;\n user-select: none;\n transition: opacity 0.2s;\n}\n.c-timeline__collapse-trigger[data-v-3da6d11e]:hover {\n opacity: 0.75;\n}\n.c-timeline__collapse-trigger .collapse-arrow[data-v-3da6d11e] {\n transition: transform 0.25s;\n}\n.c-timeline__collapse-trigger.is-expanded .collapse-arrow[data-v-3da6d11e] {\n transform: rotate(180deg);\n}\n.c-timeline__pending[data-v-3da6d11e] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 13px;\n color: var(--tl-text-time);\n padding: 8px 0 0 var(--tl-track-width);\n}\n.c-timeline__pending .pending-dot[data-v-3da6d11e] {\n width: 10px;\n height: 10px;\n flex-shrink: 0;\n border-radius: 50%;\n background: var(--tl-dot-info);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--tl-dot-info) 20%, transparent);\n animation: tl-pulse-3da6d11e 1.4s infinite;\n}\n.c-timeline.is-horizontal .c-timeline__pending[data-v-3da6d11e] {\n padding-left: 0;\n}\n@keyframes tl-pulse-3da6d11e {\n0%, 100% {\n opacity: 0.4;\n transform: scale(1);\n}\n50% {\n opacity: 1;\n transform: scale(1.15);\n}\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_Timeline-4rk0Dzgn.css","names":[],"sources":["../src/components/C_Timeline/index.vue?vue&type=style&index=0&scoped=3da6d11e&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */.c-timeline[data-v-3da6d11e] {\n --tl-bg: transparent;\n --tl-text-primary: var(--app-text-primary);\n --tl-text-secondary: var(--text-color-2);\n --tl-text-time: var(--text-color-3);\n --tl-line-color: color-mix(in srgb, var(--primary-color) 20%, var(--border-color));\n --tl-line-width: 2px;\n --tl-dot-size: 12px;\n --tl-icon-size: 32px;\n --tl-item-gap: 0px;\n --tl-track-spacing: 24px;\n --tl-track-width: 48px;\n --tl-content-gap: 12px;\n --tl-dot-size-sm: 8px;\n --tl-dot-size-lg: 16px;\n --tl-icon-size-sm: 24px;\n --tl-icon-size-lg: 40px;\n --tl-track-width-sm: 36px;\n --tl-track-width-lg: 60px;\n --tl-track-spacing-sm: 16px;\n --tl-track-spacing-lg: 32px;\n --tl-dot-default: var(--text-color-3);\n --tl-dot-success: #18a058;\n --tl-dot-warning: #f0a020;\n --tl-dot-error: #d03050;\n --tl-dot-info: #2080f0;\n --tl-icon-bg: var(--card-color);\n --tl-content-bg: var(--card-color);\n --tl-content-radius: 8px;\n --tl-content-padding: 12px 16px;\n --tl-tag-radius: 4px;\n --tl-h-item-width: 200px;\n --tl-h-track-height: 56px;\n position: relative;\n background: var(--tl-bg);\n}\n.c-timeline.is-small[data-v-3da6d11e] {\n --tl-dot-size: var(--tl-dot-size-sm);\n --tl-icon-size: var(--tl-icon-size-sm);\n --tl-track-width: var(--tl-track-width-sm);\n --tl-track-spacing: var(--tl-track-spacing-sm);\n}\n.c-timeline.is-large[data-v-3da6d11e] {\n --tl-dot-size: var(--tl-dot-size-lg);\n --tl-icon-size: var(--tl-icon-size-lg);\n --tl-track-width: var(--tl-track-width-lg);\n --tl-track-spacing: var(--tl-track-spacing-lg);\n}\n.c-timeline.is-vertical[data-v-3da6d11e] {\n display: flex;\n flex-direction: column;\n}\n.c-timeline.is-vertical .c-timeline__item[data-v-3da6d11e] {\n display: flex;\n flex-direction: row;\n align-items: stretch;\n}\n.c-timeline.is-vertical .c-timeline__track[data-v-3da6d11e] {\n flex: 0 0 var(--tl-track-width);\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-right: var(--tl-content-gap);\n}\n.c-timeline.is-vertical .c-timeline__dot[data-v-3da6d11e] {\n flex-shrink: 0;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1;\n}\n.c-timeline.is-vertical .c-timeline__dot.is-dot[data-v-3da6d11e] {\n width: var(--tl-dot-size);\n height: var(--tl-dot-size);\n margin-top: calc((var(--tl-icon-size) - var(--tl-dot-size)) / 2);\n background: var(--tl-dot-default);\n border: 2px solid var(--card-color);\n box-shadow: 0 0 0 2px var(--tl-dot-default);\n}\n.c-timeline.is-vertical .c-timeline__dot.is-icon[data-v-3da6d11e] {\n width: var(--tl-icon-size);\n height: var(--tl-icon-size);\n background: var(--tl-icon-bg);\n border: 1.5px solid var(--tl-line-color);\n box-shadow: 0 0 0 3px var(--card-color), 0 2px 8px rgba(0, 0, 0, 0.08);\n font-size: calc(var(--tl-icon-size) * 0.5);\n}\n.c-timeline.is-vertical .c-timeline__line[data-v-3da6d11e] {\n flex: 1;\n min-height: var(--tl-track-spacing);\n width: 0;\n box-sizing: content-box;\n border-left-width: var(--tl-line-width);\n border-left-style: solid;\n border-left-color: var(--tl-line-color);\n margin: 4px 0;\n}\n.c-timeline.is-vertical.is-line-dashed .c-timeline__line[data-v-3da6d11e] {\n border-left-style: dashed;\n}\n.c-timeline.is-vertical.is-line-dotted .c-timeline__line[data-v-3da6d11e] {\n border-left-style: dotted;\n}\n.c-timeline.is-vertical .c-timeline__body[data-v-3da6d11e] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 6px;\n padding-bottom: var(--tl-track-spacing);\n}\n.c-timeline.is-vertical .c-timeline__item:last-child .c-timeline__body[data-v-3da6d11e] {\n padding-bottom: 0;\n}\n.c-timeline.is-horizontal[data-v-3da6d11e] {\n display: flex;\n flex-direction: row;\n overflow-x: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--border-color) transparent;\n}\n.c-timeline.is-horizontal[data-v-3da6d11e]::-webkit-scrollbar {\n height: 4px;\n}\n.c-timeline.is-horizontal[data-v-3da6d11e]::-webkit-scrollbar-thumb {\n background: var(--border-color);\n border-radius: 2px;\n}\n.c-timeline.is-horizontal .c-timeline__item[data-v-3da6d11e] {\n flex: 0 0 var(--tl-h-item-width);\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.c-timeline.is-horizontal .c-timeline__track[data-v-3da6d11e] {\n position: relative;\n width: 100%;\n height: var(--tl-h-track-height);\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: visible;\n}\n.c-timeline.is-horizontal .c-timeline__dot[data-v-3da6d11e] {\n position: relative;\n z-index: 1;\n flex-shrink: 0;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--tl-icon-bg);\n}\n.c-timeline.is-horizontal .c-timeline__dot.is-dot[data-v-3da6d11e] {\n width: var(--tl-dot-size);\n height: var(--tl-dot-size);\n background: var(--tl-dot-default);\n border: 2px solid var(--card-color);\n box-shadow: 0 0 0 2px var(--tl-dot-default);\n}\n.c-timeline.is-horizontal .c-timeline__dot.is-icon[data-v-3da6d11e] {\n width: var(--tl-icon-size);\n height: var(--tl-icon-size);\n background: var(--tl-icon-bg);\n border: 1.5px solid var(--tl-line-color);\n box-shadow: 0 0 0 3px var(--card-color), 0 2px 8px rgba(0, 0, 0, 0.08);\n font-size: calc(var(--tl-icon-size) * 0.5);\n}\n.c-timeline.is-horizontal .c-timeline__line[data-v-3da6d11e] {\n display: none;\n}\n.c-timeline.is-horizontal .c-timeline__body[data-v-3da6d11e] {\n width: 100%;\n padding: 8px 12px 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n text-align: center;\n}\n.c-timeline.is-horizontal .c-timeline__header[data-v-3da6d11e] {\n justify-content: center;\n flex-wrap: wrap;\n}\n.c-timeline.is-horizontal .c-timeline__content[data-v-3da6d11e] {\n text-align: left;\n font-size: 12px;\n}\n.c-timeline__header[data-v-3da6d11e] {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n}\n.c-timeline__title[data-v-3da6d11e] {\n font-size: 14px;\n font-weight: 600;\n color: var(--tl-text-primary);\n line-height: 1.5;\n}\n.c-timeline__time[data-v-3da6d11e] {\n display: inline-flex;\n align-items: center;\n padding: 1px 7px;\n font-size: 11px;\n color: var(--tl-text-time);\n white-space: nowrap;\n background: color-mix(in srgb, var(--border-color) 40%, transparent);\n border-radius: 4px;\n line-height: 1.6;\n}\n.c-timeline__tags[data-v-3da6d11e] {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n}\n.c-timeline__tag[data-v-3da6d11e] {\n display: inline-flex;\n align-items: center;\n padding: 1px 8px;\n font-size: 11px;\n font-weight: 500;\n border-radius: var(--tl-tag-radius);\n background: color-mix(in srgb, var(--primary-color) 10%, var(--card-color));\n color: var(--primary-color);\n border: 1px solid color-mix(in srgb, var(--primary-color) 20%, transparent);\n}\n.c-timeline__content[data-v-3da6d11e] {\n padding: var(--tl-content-padding);\n background: var(--tl-content-bg);\n border-radius: var(--tl-content-radius);\n border: 1px solid var(--border-color);\n font-size: 13px;\n color: var(--tl-text-secondary);\n line-height: 1.7;\n}\n.c-timeline__detail[data-v-3da6d11e] {\n overflow: hidden;\n transition: max-height 0.3s ease, opacity 0.3s ease;\n}\n.c-timeline__detail.is-collapsed[data-v-3da6d11e] {\n max-height: 0;\n opacity: 0;\n}\n.c-timeline__detail.is-expanded[data-v-3da6d11e] {\n max-height: 800px;\n opacity: 1;\n}\n.c-timeline__collapse-trigger[data-v-3da6d11e] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-size: 12px;\n color: var(--primary-color);\n cursor: pointer;\n user-select: none;\n transition: opacity 0.2s;\n}\n.c-timeline__collapse-trigger[data-v-3da6d11e]:hover {\n opacity: 0.75;\n}\n.c-timeline__collapse-trigger .collapse-arrow[data-v-3da6d11e] {\n transition: transform 0.25s;\n}\n.c-timeline__collapse-trigger.is-expanded .collapse-arrow[data-v-3da6d11e] {\n transform: rotate(180deg);\n}\n.c-timeline__pending[data-v-3da6d11e] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 13px;\n color: var(--tl-text-time);\n padding: 8px 0 0 var(--tl-track-width);\n}\n.c-timeline__pending .pending-dot[data-v-3da6d11e] {\n width: 10px;\n height: 10px;\n flex-shrink: 0;\n border-radius: 50%;\n background: var(--tl-dot-info);\n box-shadow: 0 0 0 3px color-mix(in srgb, var(--tl-dot-info) 20%, transparent);\n animation: tl-pulse-3da6d11e 1.4s infinite;\n}\n.c-timeline.is-horizontal .c-timeline__pending[data-v-3da6d11e] {\n padding-left: 0;\n}\n@keyframes tl-pulse-3da6d11e {\n0%, 100% {\n opacity: 0.4;\n transform: scale(1);\n}\n50% {\n opacity: 1;\n transform: scale(1.15);\n}\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -297,4 +297,4 @@
297
297
  }
298
298
  }
299
299
 
300
- /*# sourceMappingURL=C_Timeline-DdESmqwL.css.map*/
300
+ /*# sourceMappingURL=C_Timeline-4rk0Dzgn.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"C_Transfer-11y3k-WD.css","names":[],"sources":["../src/components/C_Transfer/index.vue?vue&type=style&index=0&scoped=f51ca797&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//**\n * C_Transfer — 穿梭框组件样式\n * 变量说明:\n * --tf-border : 面板边框色\n * --tf-header-bg : 标题栏背景\n * --tf-item-hover : 列表行悬停色\n * --tf-accent : 操作按钮主色\n * --tf-height : 面板高度\n */\n.c-transfer[data-v-f51ca797] {\n --tf-border: var(--border-color);\n --tf-header-bg: color-mix(in srgb, var(--primary-color) 6%, var(--card-color));\n --tf-item-hover: color-mix(in srgb, var(--primary-color) 8%, var(--card-color));\n --tf-accent: var(--primary-color);\n --tf-height: 380px;\n display: flex;\n align-items: stretch;\n gap: 16px;\n user-select: none;\n /* ======================== Panel ======================== */\n /* ---- Header ---- */\n /* ---- Filter ---- */\n /* ---- List ---- */\n /* ---- Empty ---- */\n /* ======================== Actions ======================== */\n /* ======================== Sizes ======================== */\n /* ======================== Group divider ======================== */\n}\n.c-transfer__panel[data-v-f51ca797] {\n flex: 1;\n display: flex;\n flex-direction: column;\n border: 1px solid var(--tf-border);\n border-radius: 8px;\n overflow: hidden;\n background: var(--card-color);\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);\n transition: box-shadow 0.2s;\n}\n.c-transfer__panel[data-v-f51ca797]:hover {\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);\n}\n.c-transfer__header[data-v-f51ca797] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n background: var(--tf-header-bg);\n border-bottom: 1px solid var(--tf-border);\n font-weight: 600;\n font-size: 13px;\n color: var(--text-color-1);\n}\n.c-transfer__count[data-v-f51ca797] {\n font-weight: 400;\n font-size: 12px;\n color: var(--text-color-3);\n}\n.c-transfer__filter[data-v-f51ca797] {\n padding: 8px 10px;\n border-bottom: 1px solid var(--tf-border);\n}\n.c-transfer__filter .n-input[data-v-f51ca797] {\n --n-border: 1px solid var(--tf-border);\n --n-border-focus: 1px solid var(--tf-accent);\n}\n.c-transfer__list[data-v-f51ca797] {\n flex: 1;\n overflow-y: auto;\n padding: 4px 0;\n min-height: 0;\n max-height: var(--tf-height);\n}\n.c-transfer__item[data-v-f51ca797] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 14px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 13px;\n color: var(--text-color-1);\n}\n.c-transfer__item[data-v-f51ca797]:hover {\n background: var(--tf-item-hover);\n}\n.c-transfer__item.is-disabled[data-v-f51ca797] {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.c-transfer__item.is-disabled[data-v-f51ca797]:hover {\n background: transparent;\n}\n.c-transfer__item.is-checked[data-v-f51ca797] {\n color: var(--tf-accent);\n font-weight: 500;\n}\n.c-transfer__item-icon[data-v-f51ca797] {\n font-size: 16px;\n flex-shrink: 0;\n color: var(--text-color-3);\n}\n.c-transfer__item-label[data-v-f51ca797] {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.c-transfer__item-desc[data-v-f51ca797] {\n font-size: 11px;\n color: var(--text-color-3);\n margin-top: 2px;\n}\n.c-transfer__empty[data-v-f51ca797] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n color: var(--text-color-3);\n font-size: 13px;\n padding: 32px 0;\n}\n.c-transfer__actions[data-v-f51ca797] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 10px;\n}\n.c-transfer__btn[data-v-f51ca797] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border-radius: 8px;\n border: 1px solid var(--tf-border);\n background: var(--card-color);\n color: var(--tf-accent);\n font-size: 18px;\n cursor: pointer;\n transition: background 0.2s, color 0.2s, box-shadow 0.2s;\n}\n.c-transfer__btn[data-v-f51ca797]:hover:not(.is-disabled) {\n background: var(--tf-accent);\n color: #fff;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--tf-accent) 30%, transparent);\n}\n.c-transfer__btn.is-disabled[data-v-f51ca797] {\n opacity: 0.35;\n cursor: not-allowed;\n}\n.c-transfer.is-small[data-v-f51ca797] {\n --tf-height: 280px;\n}\n.c-transfer.is-small .c-transfer__header[data-v-f51ca797] {\n padding: 8px 12px;\n font-size: 12px;\n}\n.c-transfer.is-small .c-transfer__item[data-v-f51ca797] {\n padding: 5px 12px;\n font-size: 12px;\n}\n.c-transfer.is-small .c-transfer__btn[data-v-f51ca797] {\n width: 30px;\n height: 30px;\n font-size: 15px;\n}\n.c-transfer.is-large[data-v-f51ca797] {\n --tf-height: 480px;\n}\n.c-transfer.is-large .c-transfer__header[data-v-f51ca797] {\n padding: 12px 16px;\n font-size: 14px;\n}\n.c-transfer.is-large .c-transfer__item[data-v-f51ca797] {\n padding: 9px 16px;\n font-size: 14px;\n}\n.c-transfer.is-large .c-transfer__btn[data-v-f51ca797] {\n width: 42px;\n height: 42px;\n font-size: 20px;\n}\n.c-transfer__group[data-v-f51ca797] {\n padding: 6px 14px 4px;\n font-size: 11px;\n font-weight: 600;\n color: var(--text-color-3);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_Transfer-B-vjvhjI.css","names":[],"sources":["../src/components/C_Transfer/index.vue?vue&type=style&index=0&scoped=f51ca797&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled *//**\n * C_Transfer — 穿梭框组件样式\n * 变量说明:\n * --tf-border : 面板边框色\n * --tf-header-bg : 标题栏背景\n * --tf-item-hover : 列表行悬停色\n * --tf-accent : 操作按钮主色\n * --tf-height : 面板高度\n */\n.c-transfer[data-v-f51ca797] {\n --tf-border: var(--border-color);\n --tf-header-bg: color-mix(in srgb, var(--primary-color) 6%, var(--card-color));\n --tf-item-hover: color-mix(in srgb, var(--primary-color) 8%, var(--card-color));\n --tf-accent: var(--primary-color);\n --tf-height: 380px;\n display: flex;\n align-items: stretch;\n gap: 16px;\n user-select: none;\n /* ======================== Panel ======================== */\n /* ---- Header ---- */\n /* ---- Filter ---- */\n /* ---- List ---- */\n /* ---- Empty ---- */\n /* ======================== Actions ======================== */\n /* ======================== Sizes ======================== */\n /* ======================== Group divider ======================== */\n}\n.c-transfer__panel[data-v-f51ca797] {\n flex: 1;\n display: flex;\n flex-direction: column;\n border: 1px solid var(--tf-border);\n border-radius: 8px;\n overflow: hidden;\n background: var(--card-color);\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);\n transition: box-shadow 0.2s;\n}\n.c-transfer__panel[data-v-f51ca797]:hover {\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);\n}\n.c-transfer__header[data-v-f51ca797] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 14px;\n background: var(--tf-header-bg);\n border-bottom: 1px solid var(--tf-border);\n font-weight: 600;\n font-size: 13px;\n color: var(--text-color-1);\n}\n.c-transfer__count[data-v-f51ca797] {\n font-weight: 400;\n font-size: 12px;\n color: var(--text-color-3);\n}\n.c-transfer__filter[data-v-f51ca797] {\n padding: 8px 10px;\n border-bottom: 1px solid var(--tf-border);\n}\n.c-transfer__filter .n-input[data-v-f51ca797] {\n --n-border: 1px solid var(--tf-border);\n --n-border-focus: 1px solid var(--tf-accent);\n}\n.c-transfer__list[data-v-f51ca797] {\n flex: 1;\n overflow-y: auto;\n padding: 4px 0;\n min-height: 0;\n max-height: var(--tf-height);\n}\n.c-transfer__item[data-v-f51ca797] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 14px;\n cursor: pointer;\n transition: background 0.15s;\n font-size: 13px;\n color: var(--text-color-1);\n}\n.c-transfer__item[data-v-f51ca797]:hover {\n background: var(--tf-item-hover);\n}\n.c-transfer__item.is-disabled[data-v-f51ca797] {\n opacity: 0.45;\n cursor: not-allowed;\n}\n.c-transfer__item.is-disabled[data-v-f51ca797]:hover {\n background: transparent;\n}\n.c-transfer__item.is-checked[data-v-f51ca797] {\n color: var(--tf-accent);\n font-weight: 500;\n}\n.c-transfer__item-icon[data-v-f51ca797] {\n font-size: 16px;\n flex-shrink: 0;\n color: var(--text-color-3);\n}\n.c-transfer__item-label[data-v-f51ca797] {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.c-transfer__item-desc[data-v-f51ca797] {\n font-size: 11px;\n color: var(--text-color-3);\n margin-top: 2px;\n}\n.c-transfer__empty[data-v-f51ca797] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n color: var(--text-color-3);\n font-size: 13px;\n padding: 32px 0;\n}\n.c-transfer__actions[data-v-f51ca797] {\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 10px;\n}\n.c-transfer__btn[data-v-f51ca797] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n border-radius: 8px;\n border: 1px solid var(--tf-border);\n background: var(--card-color);\n color: var(--tf-accent);\n font-size: 18px;\n cursor: pointer;\n transition: background 0.2s, color 0.2s, box-shadow 0.2s;\n}\n.c-transfer__btn[data-v-f51ca797]:hover:not(.is-disabled) {\n background: var(--tf-accent);\n color: #fff;\n box-shadow: 0 2px 8px color-mix(in srgb, var(--tf-accent) 30%, transparent);\n}\n.c-transfer__btn.is-disabled[data-v-f51ca797] {\n opacity: 0.35;\n cursor: not-allowed;\n}\n.c-transfer.is-small[data-v-f51ca797] {\n --tf-height: 280px;\n}\n.c-transfer.is-small .c-transfer__header[data-v-f51ca797] {\n padding: 8px 12px;\n font-size: 12px;\n}\n.c-transfer.is-small .c-transfer__item[data-v-f51ca797] {\n padding: 5px 12px;\n font-size: 12px;\n}\n.c-transfer.is-small .c-transfer__btn[data-v-f51ca797] {\n width: 30px;\n height: 30px;\n font-size: 15px;\n}\n.c-transfer.is-large[data-v-f51ca797] {\n --tf-height: 480px;\n}\n.c-transfer.is-large .c-transfer__header[data-v-f51ca797] {\n padding: 12px 16px;\n font-size: 14px;\n}\n.c-transfer.is-large .c-transfer__item[data-v-f51ca797] {\n padding: 9px 16px;\n font-size: 14px;\n}\n.c-transfer.is-large .c-transfer__btn[data-v-f51ca797] {\n width: 42px;\n height: 42px;\n font-size: 20px;\n}\n.c-transfer__group[data-v-f51ca797] {\n padding: 6px 14px 4px;\n font-size: 11px;\n font-weight: 600;\n color: var(--text-color-3);\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -190,4 +190,4 @@
190
190
  letter-spacing: 0.04em;
191
191
  }
192
192
 
193
- /*# sourceMappingURL=C_Transfer-11y3k-WD.css.map*/
193
+ /*# sourceMappingURL=C_Transfer-B-vjvhjI.css.map*/
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./menuAdapter.js`);exports.createMenuOptions=e.t,exports.flattenRoutes=e.n;
@@ -0,0 +1,2 @@
1
+ import { a as RouteItem, i as BreadcrumbItem, n as createMenuOptions, o as RouteMeta, r as flattenRoutes, s as TagItem, t as MenuAdapterConfig } from "./menuAdapter.js";
2
+ export { type BreadcrumbItem, type MenuAdapterConfig, type RouteItem, type RouteMeta, type TagItem, createMenuOptions, flattenRoutes };
@@ -0,0 +1,2 @@
1
+ import { a as RouteItem, i as BreadcrumbItem, n as createMenuOptions, o as RouteMeta, r as flattenRoutes, s as TagItem, t as MenuAdapterConfig } from "./menuAdapter.js";
2
+ export { type BreadcrumbItem, type MenuAdapterConfig, type RouteItem, type RouteMeta, type TagItem, createMenuOptions, flattenRoutes };
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./menuAdapter.js";export{t as createMenuOptions,e as flattenRoutes};
@@ -110,21 +110,21 @@ declare const __VLS_export: vue.DefineComponent<CronProps, {
110
110
  reset: typeof handleReset;
111
111
  validate: () => CronValidation;
112
112
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
113
- "update:modelValue": (value: string) => any;
114
113
  change: (value: string) => any;
114
+ "update:modelValue": (value: string) => any;
115
115
  "validation-change": (result: CronValidation) => any;
116
116
  }, string, vue.PublicProps, Readonly<CronProps> & Readonly<{
117
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
118
117
  onChange?: ((value: string) => any) | undefined;
118
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
119
119
  "onValidation-change"?: ((result: CronValidation) => any) | undefined;
120
120
  }>, {
121
- modelValue: string;
121
+ height: string | number;
122
122
  disabled: boolean;
123
+ modelValue: string;
124
+ showPreview: boolean;
123
125
  previewCount: number;
124
126
  showTemplates: boolean;
125
- showPreview: boolean;
126
127
  showSecond: boolean;
127
- height: string | number;
128
128
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
129
129
  declare const _default: typeof __VLS_export;
130
130
  //#endregion
@@ -112,19 +112,19 @@ interface FormulaEditorExpose {
112
112
  //#endregion
113
113
  //#region src/components/C_FormulaEditor/index.vue.d.ts
114
114
  declare const __VLS_export: vue.DefineComponent<FormulaEditorProps, FormulaEditorExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
115
- "update:modelValue": (value: string) => any;
116
115
  change: (value: string) => any;
116
+ "update:modelValue": (value: string) => any;
117
117
  "validation-change": (result: FormulaValidation) => any;
118
118
  }, string, vue.PublicProps, Readonly<FormulaEditorProps> & Readonly<{
119
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
120
119
  onChange?: ((value: string) => any) | undefined;
120
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
121
121
  "onValidation-change"?: ((result: FormulaValidation) => any) | undefined;
122
122
  }>, {
123
+ height: string | number;
123
124
  placeholder: string;
124
- modelValue: string;
125
125
  disabled: boolean;
126
+ modelValue: string;
126
127
  showPreview: boolean;
127
- height: string | number;
128
128
  variables: FormulaVariable[];
129
129
  functions: FormulaFunction[];
130
130
  sampleData: Record<string, number | string | boolean>;
@@ -151,8 +151,8 @@ interface NotificationCenterExpose {
151
151
  //#region src/components/C_NotificationCenter/index.vue.d.ts
152
152
  declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, NotificationCenterExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
153
153
  delete: (ids: string[]) => any;
154
- itemClick: (message: NotificationMessage) => any;
155
154
  read: (ids: string[]) => any;
155
+ itemClick: (message: NotificationMessage) => any;
156
156
  allRead: (category?: NotificationCategory | undefined) => any;
157
157
  unreadChange: (count: number) => any;
158
158
  wsStatusChange: (status: string) => any;
@@ -160,8 +160,8 @@ declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, Notific
160
160
  navigate: (url: string) => any;
161
161
  }, string, vue.PublicProps, Readonly<NotificationCenterProps> & Readonly<{
162
162
  onDelete?: ((ids: string[]) => any) | undefined;
163
- onItemClick?: ((message: NotificationMessage) => any) | undefined;
164
163
  onRead?: ((ids: string[]) => any) | undefined;
164
+ onItemClick?: ((message: NotificationMessage) => any) | undefined;
165
165
  onAllRead?: ((category?: NotificationCategory | undefined) => any) | undefined;
166
166
  onUnreadChange?: ((count: number) => any) | undefined;
167
167
  onWsStatusChange?: ((status: string) => any) | undefined;
@@ -217,7 +217,7 @@ declare function useNotificationCore(props: NotificationCenterProps): {
217
217
  actionText?: string | undefined;
218
218
  extra?: Record<string, unknown> | undefined;
219
219
  }[]>;
220
- activeCategory: vue.Ref<NotificationCategory | "all", NotificationCategory | "all">;
220
+ activeCategory: vue.Ref<"all" | NotificationCategory, "all" | NotificationCategory>;
221
221
  loading: vue.Ref<boolean, boolean>;
222
222
  total: vue.Ref<number, number>;
223
223
  page: vue.Ref<number, number>;
@@ -196,32 +196,32 @@ type __VLS_Slots = {} & {
196
196
  area?: (props: typeof __VLS_11) => any;
197
197
  };
198
198
  declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
199
- change: (fileList: UploadFileItem[]) => any;
200
199
  error: (file: UploadFileItem, error: Error) => any;
200
+ change: (fileList: UploadFileItem[]) => any;
201
201
  progress: (file: UploadFileItem, percent: number) => any;
202
202
  success: (file: UploadFileItem, response: any) => any;
203
203
  remove: (file: UploadFileItem) => any;
204
204
  finish: (fileList: UploadFileItem[]) => any;
205
205
  exceed: (files: File[], fileList: UploadFileItem[]) => any;
206
206
  }, string, vue.PublicProps, Readonly<UploadProps> & Readonly<{
207
- onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
208
207
  onError?: ((file: UploadFileItem, error: Error) => any) | undefined;
208
+ onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
209
209
  onProgress?: ((file: UploadFileItem, percent: number) => any) | undefined;
210
210
  onSuccess?: ((file: UploadFileItem, response: any) => any) | undefined;
211
211
  onRemove?: ((file: UploadFileItem) => any) | undefined;
212
212
  onFinish?: ((fileList: UploadFileItem[]) => any) | undefined;
213
213
  onExceed?: ((files: File[], fileList: UploadFileItem[]) => any) | undefined;
214
214
  }>, {
215
- data: Record<string, any>;
216
215
  disabled: boolean;
216
+ data: Record<string, any>;
217
217
  maxSize: number;
218
- multiple: boolean;
219
- draggable: boolean;
220
218
  action: string;
221
219
  headers: Record<string, string>;
220
+ multiple: boolean;
222
221
  directory: boolean;
223
222
  accept: string;
224
223
  maxCount: number;
224
+ draggable: boolean;
225
225
  pasteable: boolean;
226
226
  chunked: boolean;
227
227
  chunkSize: number;
@@ -259,8 +259,8 @@ type PlayerInstance = InstanceType<typeof xgplayer.default>;
259
259
  //#endregion
260
260
  //#region src/components/C_VideoPlayer/index.vue.d.ts
261
261
  declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
262
- ended: () => any;
263
262
  error: (error: Error) => any;
263
+ ended: () => any;
264
264
  ready: () => any;
265
265
  stateChange: (state: PlayerState) => any;
266
266
  timeUpdate: (currentTime: number, duration: number) => any;
@@ -272,8 +272,8 @@ declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExp
272
272
  chapterChange: (chapter: Chapter) => any;
273
273
  progressUpdate: (data: ProgressData) => any;
274
274
  }, string, vue.PublicProps, Readonly<VideoPlayerProps> & Readonly<{
275
- onEnded?: (() => any) | undefined;
276
275
  onError?: ((error: Error) => any) | undefined;
276
+ onEnded?: (() => any) | undefined;
277
277
  onReady?: (() => any) | undefined;
278
278
  onStateChange?: ((state: PlayerState) => any) | undefined;
279
279
  onTimeUpdate?: ((currentTime: number, duration: number) => any) | undefined;
package/dist/data.d.ts CHANGED
@@ -23,10 +23,10 @@ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue
23
23
  onMarkerClick?: ((marker: MapMarker$1, event: any) => any) | undefined;
24
24
  }>, {
25
25
  height: string;
26
- center: [number, number];
27
- zoom: number;
28
26
  markers: MapMarker$1[];
29
27
  amapKey: string;
28
+ center: [number, number];
29
+ zoom: number;
30
30
  mapType: "osm" | "amap";
31
31
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
32
32
  declare const _default: typeof __VLS_export;
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./chunk.js`),t=require(`./C_Icon.js`),n=require(`./C_Code.js`),r=require(`./C_Upload.js`),ee=require(`./C_Barcode.js`),i=require(`./C_Captcha.js`),te=require(`./C_Cascade.js`),ne=require(`./C_Guide.js`),re=require(`./C_Progress.js`),ie=require(`./C_Steps.js`),ae=require(`./C_ActionBar.js`),a=require(`./C_Theme.js`),oe=require(`./C_Language.js`),se=require(`./C_Date.js`),ce=require(`./C_Editor.js`),le=require(`./C_Markdown.js`),o=require(`./C_Map.js`),ue=require(`./C_City.js`),s=require(`./C_VtableGantt.js`),c=require(`./C_Signature.js`),l=require(`./C_SplitPane.js`),u=require(`./C_CollapsePanel.js`),d=require(`./C_Time.js`),f=require(`./storage.js`),p=require(`./C_FormSearch.js`),m=require(`./C_Tree.js`),h=require(`./C_QRCode.js`),g=require(`./C_ImageCropper.js`),_=require(`./C_Draggable.js`),v=require(`./C_WaterFall.js`),y=require(`./C_FullCalendar.js`),b=require(`./C_NotificationCenter.js`),x=require(`./C_Cron.js`),S=require(`./C_FormulaEditor.js`),C=require(`./C_AntV.js`),w=require(`./C_VideoPlayer.js`),T=require(`./C_FilePreview.js`),E=require(`./C_WorkFlow.js`),D=require(`./C_Form.js`),O=require(`./C_Table.js`),k=require(`./C_GlobalSearch.js`),A=require(`./C_Menu.js`),de=require(`./C_Breadcrumb.js`),j=require(`./C_TagsView.js`),M=require(`./C_AudioPlayer.js`),N=require(`./C_AvatarGroup.js`),P=require(`./C_Chat.js`),F=require(`./C_ContextMenu.js`),I=require(`./C_Login.js`),L=require(`./C_Timeline.js`),R=require(`./C_Transfer.js`),fe=require(`./C_Skeleton.js`),pe=require(`./C_OrgChart.js`);let z=require(`highlight.js/lib/core`);z=e.t(z),require(`highlight.js/styles/github.css`);let B=require(`highlight.js/lib/languages/javascript`);B=e.t(B);let V=require(`highlight.js/lib/languages/typescript`);V=e.t(V);let H=require(`highlight.js/lib/languages/json`);H=e.t(H);let U=require(`highlight.js/lib/languages/xml`);U=e.t(U);let W=require(`highlight.js/lib/languages/css`);W=e.t(W);let G=require(`highlight.js/lib/languages/bash`);G=e.t(G);let K=require(`highlight.js/lib/languages/yaml`);K=e.t(K);let q=require(`highlight.js/lib/languages/markdown`);q=e.t(q);let J=require(`highlight.js/lib/languages/java`);J=e.t(J);let Y=require(`highlight.js/lib/languages/csharp`);Y=e.t(Y);let X=require(`highlight.js/lib/languages/go`);X=e.t(X);let Z=require(`highlight.js/lib/languages/python`);Z=e.t(Z);const me={cpp:()=>import(`highlight.js/lib/languages/cpp`),c:()=>import(`highlight.js/lib/languages/c`),php:()=>import(`highlight.js/lib/languages/php`),ruby:()=>import(`highlight.js/lib/languages/ruby`),rust:()=>import(`highlight.js/lib/languages/rust`),swift:()=>import(`highlight.js/lib/languages/swift`),kotlin:()=>import(`highlight.js/lib/languages/kotlin`),scss:()=>import(`highlight.js/lib/languages/scss`),less:()=>import(`highlight.js/lib/languages/less`),sql:()=>import(`highlight.js/lib/languages/sql`),dockerfile:()=>import(`highlight.js/lib/languages/dockerfile`),powershell:()=>import(`highlight.js/lib/languages/powershell`)},Q=new Set,$=z.default;function he(e,t){$.registerLanguage(e,t),Q.add(e)}function ge(e){[[`javascript`,B.default],[`typescript`,V.default],[`json`,H.default],[`html`,U.default],[`xml`,U.default],[`css`,W.default],[`bash`,G.default],[`shell`,G.default],[`yaml`,K.default],[`yml`,K.default],[`markdown`,q.default],[`java`,J.default],[`csharp`,Y.default],[`go`,X.default],[`python`,Z.default]].forEach(([e,t])=>{he(e,t)}),$.configure({ignoreUnescapedHTML:!0,languages:e.autoDetect?void 0:[]}),e.extraLanguages?.length&&_e(e.extraLanguages)}async function _e(e){let t=e.map(e=>ve(e));return(await Promise.allSettled(t)).map((t,n)=>t.status===`fulfilled`?e[n]:null).filter(Boolean)}async function ve(e){if(Q.has(e))return!0;let t=me[e.toLowerCase()];if(!t)return console.warn(`[HighlightPlugin] Language '${e}' not supported`),!1;try{return he(e,(await t()).default),console.log(`[HighlightPlugin] Language '${e}' loaded successfully`),!0}catch(t){return console.error(`[HighlightPlugin] Failed to load language '${e}':`,t),!1}}const ye=()=>({getHljs:()=>$,loadLanguage:e=>ve(e),loadLanguages:e=>_e(e),getLoadedLanguages:()=>Array.from(Q)});function be(e,t={}){ge({autoDetect:!1,extraLanguages:[],...t}),typeof window<`u`&&(window.hljs=$);let n=ye();e.provide(`highlightManager`,n),e.config.globalProperties.$highlight=n,console.log(`[HighlightPlugin] 🎨 highlight.js plugin installed successfully`)}const xe=[n.t,t.t,r.t,ee.t,i.t,te.t,ne.t,re.t,ie.t,ae.t,a.t,oe.t,se.t,ce.t,le.t,o.t,ue.t,s.t,c.t,l.t,u.t,d.t,p.t,m.t,h.t,g.t,_.t,v.t,y.t,b.t,x.t,S.t,C.t,w.t,T.t,E.t,D.t,O.t,k.t,A.t,de.t,j.t,M.t,N.t,P.t,F.t,I.t,L.t,R.t,fe.t,pe.t];var Se={install:(e,t={})=>{xe.forEach(t=>{let n=t.__name||t.name||`UnknownComponent`;e.component(n,t)}),t.highlight!==void 0&&be(e,t.highlight)}};exports.ACTION_KEYS=S.i,exports.AVATAR_STATUS_COLOR_MAP=N.r,exports.BUTTON_TEXT=y.r,exports.CATEGORY_MAP=b.a,exports.CATEGORY_TABS=b.o,exports.CRON_FIELD_META=x.a,exports.CRON_TEMPLATES=x.o,exports.C_ActionBar=ae.t,exports.C_AntV=C.t,exports.C_AudioPlayer=M.t,exports.C_AvatarGroup=N.t,exports.C_Barcode=ee.t,exports.C_Breadcrumb=de.t,exports.C_Captcha=i.t,exports.C_Cascade=te.t,exports.C_Chat=P.t,exports.C_City=ue.t,exports.C_Code=n.t,exports.C_CollapsePanel=u.t,exports.C_ContextMenu=F.t,exports.C_Cron=x.t,exports.C_Date=se.t,exports.C_Draggable=_.t,exports.C_Editor=ce.t,exports.C_FilePreview=T.t,exports.C_Form=D.t,exports.C_FormSearch=p.t,exports.C_FormulaEditor=S.t,exports.C_FullCalendar=y.t,exports.C_GlobalSearch=k.t,exports.C_Guide=ne.t,exports.C_Icon=t.t,exports.C_ImageCropper=g.t,exports.C_Language=oe.t,exports.C_Login=I.t,exports.C_Map=o.t,exports.C_Markdown=le.t,exports.C_Menu=A.t,exports.C_NotificationCenter=b.t,exports.C_OrgChart=pe.t,exports.C_Progress=re.t,exports.C_QRCode=h.t,exports.C_Signature=c.t,exports.C_Skeleton=fe.t,exports.C_SplitPane=l.t,exports.C_Steps=ie.t,exports.C_Table=O.t,exports.C_TagsView=j.t,exports.C_Theme=a.t,exports.C_Time=d.t,exports.C_Timeline=L.t,exports.C_Transfer=R.t,exports.C_Tree=m.t,exports.C_Upload=r.t,exports.C_VideoPlayer=w.t,exports.C_VtableGantt=s.t,exports.C_WaterFall=v.t,exports.C_WorkFlow=E.t,exports.DEFAULT_ANIMATION_DURATION=v.a,exports.DEFAULT_AUDIO_PLAYER_PROPS=M.n,exports.DEFAULT_AVATAR_GROUP_PROPS=N.n,exports.DEFAULT_BREAKPOINTS=v.o,exports.DEFAULT_CHAT_PROPS=P.n,exports.DEFAULT_CONTEXT_MENU_PROPS=F.n,exports.DEFAULT_CRON_EXPRESSION=x.s,exports.DEFAULT_CRON_VALUE=x.c,exports.DEFAULT_EDIT_FORM=y.i,exports.DEFAULT_FEATURES=I.n,exports.DEFAULT_FIELD_VALUE=x.l,exports.DEFAULT_FUNCTIONS=S.a,exports.DEFAULT_GAP=v.s,exports.DEFAULT_HEARTBEAT_INTERVAL=w.c,exports.DEFAULT_MAP_CONFIG=o.n,exports.DEFAULT_MAX_BADGE_COUNT=b.s,exports.DEFAULT_PAGE_SIZE=b.c,exports.DEFAULT_PLAYBACK_RATE=w.l,exports.DEFAULT_PLAYBACK_RATES=w.u,exports.DEFAULT_POLLING_INTERVAL=b.l,exports.DEFAULT_SKELETON_COUNT=v.c,exports.DEFAULT_SOCIAL_PROVIDERS=I.r,exports.DEFAULT_STORAGE_KEY=b.u,exports.DEFAULT_TIMELINE_PROPS=L.n,exports.DEFAULT_TRANSFER_PROPS=R.n,exports.DEFAULT_VOLUME=w.d,exports.DEFAULT_WS_HEARTBEAT_INTERVAL=b.d,exports.DEFAULT_WS_HEARTBEAT_MESSAGE=b.f,exports.DEFAULT_WS_MAX_RECONNECT=b.p,exports.DEFAULT_WS_RECONNECT_INTERVAL=b.m,exports.DYNAMIC_FORM_STATE_KEY=D.n,exports.EVENT_COLORS=y.a,exports.FIELD_TYPE_OPTIONS=D.r,exports.FORM_DEFAULTS=D.l,exports.HEADER_TOOLBAR=y.o,exports.INFINITE_SCROLL_THRESHOLD=v.l,exports.KEYBOARD_SHORTCUTS=w.f,exports.LAYOUTS_WITH_OWN_CONTROLS=D.u,exports.MAP_TYPES=o.r,exports.MOCK_MESSAGES=b.h,exports.MODE_ICON_MAP=M.r,exports.MONTH_LABELS=x.u,exports.NUMBER_KEYS=S.o,exports.OPERATORS=S.s,exports.OPERATOR_KEYS=S.c,exports.OSM_TILE_CONFIG=o.i,exports.PRIORITY_MAP=b.g,exports.PROGRESS_THROTTLE_INTERVAL=w.p,exports.QUALITY_LABEL_MAP=w.m,exports.SEEK_STEP=w.h,exports.SKELETON_HEIGHT_RANGE=v.u,exports.SOURCE_TYPE_MAP=w.g,exports.SPACED_OPERATORS=S.l,exports.STORAGE_KEYS=w._,exports.STORAGE_PREFIX=w.v,exports.TABLE_GLOBAL_CONFIG_KEY=O.o,exports.TIMELINE_STATUS_COLOR_MAP=L.r,exports.VOLUME_STEP=w.y,exports.WATERMARK_DEFAULT_STYLE=w.b,exports.WEEK_LABELS=x.d,exports.applyFormatter=O.s,exports.createEditModeChecker=O.b,exports.createMenuOptions=A.n,exports.default=Se,exports.exportTableData=O.n,exports.flattenRoutes=A.r,exports.formatFileSize=r.s,exports.formatTime=M.i,exports.ganttPresetConfigs=s.n,exports.getFileIcon=r.c,exports.getInitials=N.i,exports.getItem=f.t,exports.mergeGlobalConfig=O.c,exports.nameToColor=N.a,exports.printPresets=O.m,exports.registerRenderer=D.a,exports.removeAllItem=f.n,exports.removeItem=f.r,exports.resolveConfig=O.x,exports.resolveFormConfig=D.d,exports.setItem=f.i,exports.setupHighlight=be,exports.shouldShowActions=D.f,exports.treePresetConfigs=m.r,exports.useBookmarks=w.r,exports.useCalendarEvents=y.n,exports.useCellEdit=O.v,exports.useChapters=w.i,exports.useChunkUpload=r.a,exports.useCollapsePanel=u.n,exports.useCronDescription=x.n,exports.useCronParser=x.i,exports.useCronPreview=x.r,exports.useCropperCore=g.n,exports.useCrossPageSelection=O.r,exports.useDragDrop=r.n,exports.useDraggableLayout=_.n,exports.useDynamicFormState=D.i,exports.useDynamicRows=O.p,exports.useEdgeInteraction=C.n,exports.useFileHash=r.o,exports.useFilePreview=T.r,exports.useFormDirty=D.c,exports.useFormRenderer=D.o,exports.useFormState=D.s,exports.useFormulaEvaluator=S.n,exports.useFormulaParser=S.r,exports.useFullscreen=T.n,exports.useGlobalSearch=k.n,exports.useGraphBase=C.i,exports.useGraphExport=C.r,exports.useHighlight=ye,exports.useInfiniteScroll=v.n,exports.useModalEdit=O._,exports.useNotificationCore=b.r,exports.useNotificationFormat=b.n,exports.useNotificationWS=b.i,exports.usePagination=O.d,exports.usePlaybackControl=w.o,exports.usePlayerCore=w.s,exports.usePrintWatermark=O.h,exports.useProgressTracker=w.a,exports.useQRCode=h.n,exports.useResponsiveColumns=v.i,exports.useRowDrag=O.i,exports.useRowEdit=O.y,exports.useSearchHistory=p.r,exports.useSearchState=p.n,exports.useSignatureCanvas=c.i,exports.useSignatureExport=c.n,exports.useSignatureHistory=c.r,exports.useSplitResize=l.n,exports.useSubtitle=w.n,exports.useTableActions=O.u,exports.useTableColumns=O.a,exports.useTableExpand=O.g,exports.useTableGlobalConfig=O.l,exports.useTableManager=O.f,exports.useTagsView=j.n,exports.useTimeSelection=d.n,exports.useTreeOperations=m.n,exports.useUploadCore=r.r,exports.useUploadQueue=r.i,exports.useWaterFallLayout=v.r,exports.useWorkflowNodes=E.i,exports.useWorkflowPreview=E.n,exports.useWorkflowValidation=E.r;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./chunk.js`),t=require(`./C_Icon.js`),n=require(`./C_Code.js`),r=require(`./C_Upload.js`),ee=require(`./C_Barcode.js`),te=require(`./C_Captcha.js`),ne=require(`./C_Cascade.js`),re=require(`./C_Guide.js`),ie=require(`./C_Progress.js`),ae=require(`./C_Steps.js`),oe=require(`./C_ActionBar.js`),se=require(`./C_Theme.js`),ce=require(`./C_Language.js`),le=require(`./C_Date.js`),ue=require(`./C_Editor.js`),de=require(`./C_Markdown.js`),i=require(`./C_Map.js`),fe=require(`./C_City.js`),a=require(`./C_VtableGantt.js`),o=require(`./C_Signature.js`),s=require(`./C_SplitPane.js`),c=require(`./C_CollapsePanel.js`),l=require(`./C_Time.js`),u=require(`./storage.js`),d=require(`./C_FormSearch.js`),f=require(`./C_Tree.js`),p=require(`./C_QRCode.js`),m=require(`./C_ImageCropper.js`),h=require(`./C_Draggable.js`),g=require(`./C_WaterFall.js`),_=require(`./C_FullCalendar.js`),v=require(`./C_NotificationCenter.js`),y=require(`./C_Cron.js`),b=require(`./C_FormulaEditor.js`),x=require(`./C_AntV.js`),S=require(`./C_VideoPlayer.js`),C=require(`./C_FilePreview.js`),w=require(`./C_WorkFlow.js`),T=require(`./C_Form.js`),E=require(`./C_Table.js`),D=require(`./C_GlobalSearch.js`),pe=require(`./menuAdapter.js`),me=require(`./C_Menu.js`),he=require(`./C_Breadcrumb.js`),O=require(`./C_TagsView.js`),k=require(`./C_AudioPlayer.js`),A=require(`./C_AvatarGroup.js`),j=require(`./C_Chat.js`),M=require(`./C_ContextMenu.js`),N=require(`./C_Login.js`),P=require(`./C_Timeline.js`),F=require(`./C_Transfer.js`),I=require(`./C_Skeleton.js`),L=require(`./C_OrgChart.js`);let R=require(`highlight.js/lib/core`);R=e.t(R),require(`highlight.js/styles/github.css`);let z=require(`highlight.js/lib/languages/javascript`);z=e.t(z);let B=require(`highlight.js/lib/languages/typescript`);B=e.t(B);let V=require(`highlight.js/lib/languages/json`);V=e.t(V);let H=require(`highlight.js/lib/languages/xml`);H=e.t(H);let U=require(`highlight.js/lib/languages/css`);U=e.t(U);let W=require(`highlight.js/lib/languages/bash`);W=e.t(W);let G=require(`highlight.js/lib/languages/yaml`);G=e.t(G);let K=require(`highlight.js/lib/languages/markdown`);K=e.t(K);let q=require(`highlight.js/lib/languages/java`);q=e.t(q);let J=require(`highlight.js/lib/languages/csharp`);J=e.t(J);let Y=require(`highlight.js/lib/languages/go`);Y=e.t(Y);let X=require(`highlight.js/lib/languages/python`);X=e.t(X);const ge={cpp:()=>import(`highlight.js/lib/languages/cpp`),c:()=>import(`highlight.js/lib/languages/c`),php:()=>import(`highlight.js/lib/languages/php`),ruby:()=>import(`highlight.js/lib/languages/ruby`),rust:()=>import(`highlight.js/lib/languages/rust`),swift:()=>import(`highlight.js/lib/languages/swift`),kotlin:()=>import(`highlight.js/lib/languages/kotlin`),scss:()=>import(`highlight.js/lib/languages/scss`),less:()=>import(`highlight.js/lib/languages/less`),sql:()=>import(`highlight.js/lib/languages/sql`),dockerfile:()=>import(`highlight.js/lib/languages/dockerfile`),powershell:()=>import(`highlight.js/lib/languages/powershell`)},Z=new Set,Q=R.default;function $(e,t){Q.registerLanguage(e,t),Z.add(e)}function _e(e){[[`javascript`,z.default],[`typescript`,B.default],[`json`,V.default],[`html`,H.default],[`xml`,H.default],[`css`,U.default],[`bash`,W.default],[`shell`,W.default],[`yaml`,G.default],[`yml`,G.default],[`markdown`,K.default],[`java`,q.default],[`csharp`,J.default],[`go`,Y.default],[`python`,X.default]].forEach(([e,t])=>{$(e,t)}),Q.configure({ignoreUnescapedHTML:!0,languages:e.autoDetect?void 0:[]}),e.extraLanguages?.length&&ve(e.extraLanguages)}async function ve(e){let t=e.map(e=>ye(e));return(await Promise.allSettled(t)).map((t,n)=>t.status===`fulfilled`?e[n]:null).filter(Boolean)}async function ye(e){if(Z.has(e))return!0;let t=ge[e.toLowerCase()];if(!t)return console.warn(`[HighlightPlugin] Language '${e}' not supported`),!1;try{return $(e,(await t()).default),console.log(`[HighlightPlugin] Language '${e}' loaded successfully`),!0}catch(t){return console.error(`[HighlightPlugin] Failed to load language '${e}':`,t),!1}}const be=()=>({getHljs:()=>Q,loadLanguage:e=>ye(e),loadLanguages:e=>ve(e),getLoadedLanguages:()=>Array.from(Z)});function xe(e,t={}){_e({autoDetect:!1,extraLanguages:[],...t}),typeof window<`u`&&(window.hljs=Q);let n=be();e.provide(`highlightManager`,n),e.config.globalProperties.$highlight=n,console.log(`[HighlightPlugin] 🎨 highlight.js plugin installed successfully`)}const Se=[n.t,t.t,r.t,ee.t,te.t,ne.t,re.t,ie.t,ae.t,oe.t,se.t,ce.t,le.t,ue.t,de.t,i.t,fe.t,a.t,o.t,s.t,c.t,l.t,d.t,f.t,p.t,m.t,h.t,g.t,_.t,v.t,y.t,b.t,x.t,S.t,C.t,w.t,T.t,E.t,D.t,me.t,he.t,O.t,k.t,A.t,j.t,M.t,N.t,P.t,F.t,I.t,L.t];var Ce={install:(e,t={})=>{Se.forEach(t=>{let n=t.__name||t.name||`UnknownComponent`;e.component(n,t)}),t.highlight!==void 0&&xe(e,t.highlight)}};exports.ACTION_KEYS=b.i,exports.AVATAR_STATUS_COLOR_MAP=A.r,exports.BUTTON_TEXT=_.r,exports.CATEGORY_MAP=v.a,exports.CATEGORY_TABS=v.o,exports.CRON_FIELD_META=y.a,exports.CRON_TEMPLATES=y.o,exports.C_ActionBar=oe.t,exports.C_AntV=x.t,exports.C_AudioPlayer=k.t,exports.C_AvatarGroup=A.t,exports.C_Barcode=ee.t,exports.C_Breadcrumb=he.t,exports.C_Captcha=te.t,exports.C_Cascade=ne.t,exports.C_Chat=j.t,exports.C_City=fe.t,exports.C_Code=n.t,exports.C_CollapsePanel=c.t,exports.C_ContextMenu=M.t,exports.C_Cron=y.t,exports.C_Date=le.t,exports.C_Draggable=h.t,exports.C_Editor=ue.t,exports.C_FilePreview=C.t,exports.C_Form=T.t,exports.C_FormSearch=d.t,exports.C_FormulaEditor=b.t,exports.C_FullCalendar=_.t,exports.C_GlobalSearch=D.t,exports.C_Guide=re.t,exports.C_Icon=t.t,exports.C_ImageCropper=m.t,exports.C_Language=ce.t,exports.C_Login=N.t,exports.C_Map=i.t,exports.C_Markdown=de.t,exports.C_Menu=me.t,exports.C_NotificationCenter=v.t,exports.C_OrgChart=L.t,exports.C_Progress=ie.t,exports.C_QRCode=p.t,exports.C_Signature=o.t,exports.C_Skeleton=I.t,exports.C_SplitPane=s.t,exports.C_Steps=ae.t,exports.C_Table=E.t,exports.C_TagsView=O.t,exports.C_Theme=se.t,exports.C_Time=l.t,exports.C_Timeline=P.t,exports.C_Transfer=F.t,exports.C_Tree=f.t,exports.C_Upload=r.t,exports.C_VideoPlayer=S.t,exports.C_VtableGantt=a.t,exports.C_WaterFall=g.t,exports.C_WorkFlow=w.t,exports.DEFAULT_ANIMATION_DURATION=g.a,exports.DEFAULT_AUDIO_PLAYER_PROPS=k.n,exports.DEFAULT_AVATAR_GROUP_PROPS=A.n,exports.DEFAULT_BREAKPOINTS=g.o,exports.DEFAULT_CHAT_PROPS=j.n,exports.DEFAULT_CONTEXT_MENU_PROPS=M.n,exports.DEFAULT_CRON_EXPRESSION=y.s,exports.DEFAULT_CRON_VALUE=y.c,exports.DEFAULT_EDIT_FORM=_.i,exports.DEFAULT_FEATURES=N.n,exports.DEFAULT_FIELD_VALUE=y.l,exports.DEFAULT_FUNCTIONS=b.a,exports.DEFAULT_GAP=g.s,exports.DEFAULT_HEARTBEAT_INTERVAL=S.c,exports.DEFAULT_MAP_CONFIG=i.n,exports.DEFAULT_MAX_BADGE_COUNT=v.s,exports.DEFAULT_PAGE_SIZE=v.c,exports.DEFAULT_PLAYBACK_RATE=S.l,exports.DEFAULT_PLAYBACK_RATES=S.u,exports.DEFAULT_POLLING_INTERVAL=v.l,exports.DEFAULT_SKELETON_COUNT=g.c,exports.DEFAULT_SOCIAL_PROVIDERS=N.r,exports.DEFAULT_STORAGE_KEY=v.u,exports.DEFAULT_TIMELINE_PROPS=P.n,exports.DEFAULT_TRANSFER_PROPS=F.n,exports.DEFAULT_VOLUME=S.d,exports.DEFAULT_WS_HEARTBEAT_INTERVAL=v.d,exports.DEFAULT_WS_HEARTBEAT_MESSAGE=v.f,exports.DEFAULT_WS_MAX_RECONNECT=v.p,exports.DEFAULT_WS_RECONNECT_INTERVAL=v.m,exports.DYNAMIC_FORM_STATE_KEY=T.n,exports.EVENT_COLORS=_.a,exports.FIELD_TYPE_OPTIONS=T.r,exports.FORM_DEFAULTS=T.l,exports.HEADER_TOOLBAR=_.o,exports.INFINITE_SCROLL_THRESHOLD=g.l,exports.KEYBOARD_SHORTCUTS=S.f,exports.LAYOUTS_WITH_OWN_CONTROLS=T.u,exports.MAP_TYPES=i.r,exports.MOCK_MESSAGES=v.h,exports.MODE_ICON_MAP=k.r,exports.MONTH_LABELS=y.u,exports.NUMBER_KEYS=b.o,exports.OPERATORS=b.s,exports.OPERATOR_KEYS=b.c,exports.OSM_TILE_CONFIG=i.i,exports.PRIORITY_MAP=v.g,exports.PROGRESS_THROTTLE_INTERVAL=S.p,exports.QUALITY_LABEL_MAP=S.m,exports.SEEK_STEP=S.h,exports.SKELETON_HEIGHT_RANGE=g.u,exports.SOURCE_TYPE_MAP=S.g,exports.SPACED_OPERATORS=b.l,exports.STORAGE_KEYS=S._,exports.STORAGE_PREFIX=S.v,exports.TABLE_GLOBAL_CONFIG_KEY=E.o,exports.TIMELINE_STATUS_COLOR_MAP=P.r,exports.VOLUME_STEP=S.y,exports.WATERMARK_DEFAULT_STYLE=S.b,exports.WEEK_LABELS=y.d,exports.applyFormatter=E.s,exports.createEditModeChecker=E.b,exports.createMenuOptions=pe.t,exports.default=Ce,exports.exportTableData=E.n,exports.flattenRoutes=pe.n,exports.formatFileSize=r.s,exports.formatTime=k.i,exports.ganttPresetConfigs=a.n,exports.getFileIcon=r.c,exports.getInitials=A.i,exports.getItem=u.t,exports.mergeGlobalConfig=E.c,exports.nameToColor=A.a,exports.printPresets=E.m,exports.registerRenderer=T.a,exports.removeAllItem=u.n,exports.removeItem=u.r,exports.resolveConfig=E.x,exports.resolveFormConfig=T.d,exports.setItem=u.i,exports.setupHighlight=xe,exports.shouldShowActions=T.f,exports.treePresetConfigs=f.r,exports.useBookmarks=S.r,exports.useCalendarEvents=_.n,exports.useCellEdit=E.v,exports.useChapters=S.i,exports.useChunkUpload=r.a,exports.useCollapsePanel=c.n,exports.useCronDescription=y.n,exports.useCronParser=y.i,exports.useCronPreview=y.r,exports.useCropperCore=m.n,exports.useCrossPageSelection=E.r,exports.useDragDrop=r.n,exports.useDraggableLayout=h.n,exports.useDynamicFormState=T.i,exports.useDynamicRows=E.p,exports.useEdgeInteraction=x.n,exports.useFileHash=r.o,exports.useFilePreview=C.r,exports.useFormDirty=T.c,exports.useFormRenderer=T.o,exports.useFormState=T.s,exports.useFormulaEvaluator=b.n,exports.useFormulaParser=b.r,exports.useFullscreen=C.n,exports.useGlobalSearch=D.n,exports.useGraphBase=x.i,exports.useGraphExport=x.r,exports.useHighlight=be,exports.useInfiniteScroll=g.n,exports.useModalEdit=E._,exports.useNotificationCore=v.r,exports.useNotificationFormat=v.n,exports.useNotificationWS=v.i,exports.usePagination=E.d,exports.usePlaybackControl=S.o,exports.usePlayerCore=S.s,exports.usePrintWatermark=E.h,exports.useProgressTracker=S.a,exports.useQRCode=p.n,exports.useResponsiveColumns=g.i,exports.useRowDrag=E.i,exports.useRowEdit=E.y,exports.useSearchHistory=d.r,exports.useSearchState=d.n,exports.useSignatureCanvas=o.i,exports.useSignatureExport=o.n,exports.useSignatureHistory=o.r,exports.useSplitResize=s.n,exports.useSubtitle=S.n,exports.useTableActions=E.u,exports.useTableColumns=E.a,exports.useTableExpand=E.g,exports.useTableGlobalConfig=E.l,exports.useTableManager=E.f,exports.useTagsView=O.n,exports.useTimeSelection=l.n,exports.useTreeOperations=f.n,exports.useUploadCore=r.r,exports.useUploadQueue=r.i,exports.useWaterFallLayout=g.r,exports.useWorkflowNodes=w.i,exports.useWorkflowPreview=w.n,exports.useWorkflowValidation=w.r;
2
2
  //# sourceMappingURL=index.cjs.map