@robot-admin/naive-ui-components 0.22.1 → 0.23.1

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 (306) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +7 -5
  3. package/README_EN.md +7 -5
  4. package/dist/C_ActionBar.d.cts +2 -1
  5. package/dist/C_ActionBar.d.ts +2 -1
  6. package/dist/C_AntV2.cjs +3 -3
  7. package/dist/C_AntV2.js +3 -3
  8. package/dist/C_BatchResult.cjs +1 -0
  9. package/dist/C_BatchResult.css +32 -0
  10. package/dist/C_BatchResult.d.cts +2 -0
  11. package/dist/C_BatchResult.d.ts +2 -0
  12. package/dist/C_BatchResult.js +1 -0
  13. package/dist/C_BatchResult2.cjs +1 -0
  14. package/dist/C_BatchResult2.js +1 -0
  15. package/dist/C_Breadcrumb.d.cts +2 -2
  16. package/dist/C_Breadcrumb.d.ts +1 -1
  17. package/dist/C_Cascade.d.cts +1 -1
  18. package/dist/C_Cascade.d.ts +1 -1
  19. package/dist/C_Chat.d.cts +1 -1
  20. package/dist/C_Chat.d.ts +1 -1
  21. package/dist/C_City.d.cts +1 -1
  22. package/dist/C_City.d.ts +1 -1
  23. package/dist/C_Code.d.cts +1 -1
  24. package/dist/C_Code.d.ts +1 -1
  25. package/dist/C_ContextMenu.d.cts +1 -1
  26. package/dist/C_ContextMenu.d.ts +1 -1
  27. package/dist/C_DataPicker.cjs +1 -0
  28. package/dist/C_DataPicker.css +55 -0
  29. package/dist/C_DataPicker.d.cts +2 -0
  30. package/dist/C_DataPicker.d.ts +5 -0
  31. package/dist/C_DataPicker.js +1 -0
  32. package/dist/C_DataPicker2.cjs +1 -0
  33. package/dist/C_DataPicker2.js +1 -0
  34. package/dist/C_Date.d.cts +1 -1
  35. package/dist/C_Date.d.ts +1 -1
  36. package/dist/C_Density.cjs +1 -0
  37. package/dist/C_Density.css +1 -0
  38. package/dist/C_Density.d.cts +3 -0
  39. package/dist/C_Density.d.ts +3 -0
  40. package/dist/C_Density.js +1 -0
  41. package/dist/C_Density2.cjs +1 -0
  42. package/dist/C_Density2.js +1 -0
  43. package/dist/C_Editor.d.cts +1 -1
  44. package/dist/C_Editor.d.ts +1 -1
  45. package/dist/C_ErrorSummary.cjs +1 -0
  46. package/dist/C_ErrorSummary.css +29 -0
  47. package/dist/C_ErrorSummary.d.cts +3 -0
  48. package/dist/C_ErrorSummary.d.ts +3 -0
  49. package/dist/C_ErrorSummary.js +1 -0
  50. package/dist/C_ErrorSummary2.cjs +1 -0
  51. package/dist/C_ErrorSummary2.js +1 -0
  52. package/dist/C_Form.base.css +150 -148
  53. package/dist/C_Form.css +151 -253
  54. package/dist/C_Form.d.cts +1 -1
  55. package/dist/C_Form.d.ts +19 -2
  56. package/dist/C_FormModal.css +1 -2
  57. package/dist/C_FormModal.d.cts +1 -1
  58. package/dist/C_FormModal.d.ts +17 -2
  59. package/dist/C_FormSearch.cjs +1 -1
  60. package/dist/C_FormSearch.css +124 -52
  61. package/dist/C_FormSearch.d.cts +3 -3
  62. package/dist/C_FormSearch.d.ts +5 -4
  63. package/dist/C_FormSearch.js +1 -1
  64. package/dist/C_FormulaEditor.d.cts +1 -1
  65. package/dist/C_FormulaEditor.d.ts +1 -1
  66. package/dist/C_Guide.d.cts +1 -1
  67. package/dist/C_Guide.d.ts +1 -1
  68. package/dist/C_Icon.d.cts +1 -1
  69. package/dist/C_Icon.d.ts +1 -1
  70. package/dist/C_Language.d.cts +1 -1
  71. package/dist/C_Language.d.ts +1 -1
  72. package/dist/C_Loading.d.cts +1 -1
  73. package/dist/C_Loading.d.ts +1 -1
  74. package/dist/C_Login.d.cts +1 -1
  75. package/dist/C_Login.d.ts +1 -1
  76. package/dist/C_Markdown.d.cts +1 -1
  77. package/dist/C_Markdown.d.ts +1 -1
  78. package/dist/C_Menu.d.cts +2 -2
  79. package/dist/C_Menu.d.ts +1 -1
  80. package/dist/C_OrgChart.d.cts +1 -1
  81. package/dist/C_OrgChart.d.ts +1 -1
  82. package/dist/C_Progress.d.cts +1 -1
  83. package/dist/C_Progress.d.ts +1 -1
  84. package/dist/C_SectionNav.cjs +1 -0
  85. package/dist/C_SectionNav.css +46 -0
  86. package/dist/C_SectionNav.d.cts +2 -0
  87. package/dist/C_SectionNav.d.ts +2 -0
  88. package/dist/C_SectionNav.js +1 -0
  89. package/dist/C_SectionNav2.cjs +1 -0
  90. package/dist/C_SectionNav2.js +1 -0
  91. package/dist/C_Skeleton.d.cts +1 -1
  92. package/dist/C_Skeleton.d.ts +1 -1
  93. package/dist/C_SplitPane2.cjs +1 -1
  94. package/dist/C_SplitPane2.js +1 -1
  95. package/dist/C_Steps.d.cts +1 -1
  96. package/dist/C_Steps.d.ts +1 -1
  97. package/dist/C_Table.base.css +258 -256
  98. package/dist/C_Table.cjs +1 -1
  99. package/dist/C_Table.css +109 -1283
  100. package/dist/C_Table.d.cts +2 -1
  101. package/dist/C_Table.d.ts +9 -8
  102. package/dist/C_Table.js +1 -1
  103. package/dist/C_Table2.cjs +3 -0
  104. package/dist/C_Table2.js +3 -0
  105. package/dist/C_Tabs.cjs +1 -1
  106. package/dist/C_Tabs.d.cts +1 -1
  107. package/dist/C_Tabs.d.ts +1 -1
  108. package/dist/C_Tabs.js +1 -1
  109. package/dist/C_TagsView.d.cts +1 -1
  110. package/dist/C_Theme.d.cts +1 -1
  111. package/dist/C_Theme.d.ts +1 -1
  112. package/dist/C_Timeline.d.cts +1 -1
  113. package/dist/C_Timeline.d.ts +1 -1
  114. package/dist/C_Transfer.d.cts +1 -1
  115. package/dist/C_Transfer.d.ts +1 -1
  116. package/dist/C_Tree.d.cts +1 -1
  117. package/dist/C_Tree.d.ts +9 -8
  118. package/dist/C_Upload.d.cts +1 -1
  119. package/dist/C_Upload.d.ts +1 -1
  120. package/dist/C_WorkFlow2.cjs +1 -1
  121. package/dist/C_WorkFlow2.js +1 -1
  122. package/dist/Card.cjs +1 -1
  123. package/dist/Card.js +1 -1
  124. package/dist/Steps.cjs +1 -1
  125. package/dist/Steps.js +1 -1
  126. package/dist/Tabs.cjs +1 -1
  127. package/dist/Tabs.js +1 -1
  128. package/dist/batchPatch.cjs +1 -0
  129. package/dist/batchPatch.d.cts +26 -0
  130. package/dist/batchPatch.d.ts +26 -0
  131. package/dist/batchPatch.js +1 -0
  132. package/dist/config.cjs +1 -1
  133. package/dist/config.d.cts +4 -1
  134. package/dist/config.d.ts +6 -2
  135. package/dist/config.js +1 -1
  136. package/dist/config2.d.ts +1 -1
  137. package/dist/constants.d.cts +1 -1
  138. package/dist/constants.d.ts +1 -1
  139. package/dist/constants2.d.cts +402 -173
  140. package/dist/constants2.d.ts +402 -173
  141. package/dist/constants3.d.cts +3 -3
  142. package/dist/constants3.d.ts +3 -3
  143. package/dist/constants4.d.cts +173 -402
  144. package/dist/constants4.d.ts +173 -402
  145. package/dist/contracts.d.ts +24 -0
  146. package/dist/data.cjs +1 -1
  147. package/dist/data.d.cts +5 -108
  148. package/dist/data.d.ts +5 -108
  149. package/dist/data.js +1 -1
  150. package/dist/data2.cjs +1 -1
  151. package/dist/data2.d.cts +108 -0
  152. package/dist/data2.d.ts +108 -0
  153. package/dist/data2.js +1 -1
  154. package/dist/data3.cjs +1 -0
  155. package/dist/data3.js +1 -0
  156. package/dist/dateRange.d.cts +108 -13
  157. package/dist/dateRange.d.ts +110 -14
  158. package/dist/density.d.ts +15 -0
  159. package/dist/dictionary.cjs +1 -0
  160. package/dist/dictionary.d.cts +38 -0
  161. package/dist/dictionary.d.ts +38 -0
  162. package/dist/dictionary.js +1 -0
  163. package/dist/helpers.cjs +1 -1
  164. package/dist/helpers.js +1 -1
  165. package/dist/index.cjs +1 -1
  166. package/dist/index.d.cts +63 -52
  167. package/dist/index.d.ts +71 -57
  168. package/dist/index.js +1 -1
  169. package/dist/index.vue.d.cts +4 -4
  170. package/dist/index.vue.d.ts +4 -4
  171. package/dist/index10.vue.d.cts +37 -80
  172. package/dist/index10.vue.d.ts +77 -53
  173. package/dist/index11.vue.d.cts +77 -53
  174. package/dist/index11.vue.d.ts +1117 -45
  175. package/dist/index12.vue.d.cts +1117 -45
  176. package/dist/index12.vue.d.ts +17 -128
  177. package/dist/index13.vue.d.cts +17 -128
  178. package/dist/index13.vue.d.ts +57 -53
  179. package/dist/index14.vue.d.cts +57 -53
  180. package/dist/index14.vue.d.ts +16 -25
  181. package/dist/index15.vue.d.cts +16 -25
  182. package/dist/index15.vue.d.ts +52 -12
  183. package/dist/index16.vue.d.cts +52 -12
  184. package/dist/index16.vue.d.ts +13 -129
  185. package/dist/index17.vue.d.cts +13 -129
  186. package/dist/index17.vue.d.ts +123 -74
  187. package/dist/index18.vue.d.cts +123 -74
  188. package/dist/index18.vue.d.ts +48 -71
  189. package/dist/index19.vue.d.cts +40 -91
  190. package/dist/index19.vue.d.ts +36 -96
  191. package/dist/index2.vue.d.cts +2 -2
  192. package/dist/index2.vue.d.ts +2 -2
  193. package/dist/index20.vue.d.cts +38 -47
  194. package/dist/index20.vue.d.ts +13 -48
  195. package/dist/index21.vue.d.cts +12 -96
  196. package/dist/index21.vue.d.ts +25 -95
  197. package/dist/index22.vue.d.cts +20 -32
  198. package/dist/index22.vue.d.ts +75 -37
  199. package/dist/index23.vue.d.cts +77 -13
  200. package/dist/index23.vue.d.ts +71 -13
  201. package/dist/index24.vue.d.cts +1 -1
  202. package/dist/index25.vue.d.cts +116 -90
  203. package/dist/index25.vue.d.ts +116 -90
  204. package/dist/index26.vue.d.cts +94 -59
  205. package/dist/index26.vue.d.ts +94 -59
  206. package/dist/index27.vue.d.cts +75 -0
  207. package/dist/index27.vue.d.ts +75 -0
  208. package/dist/index28.vue.d.cts +103 -0
  209. package/dist/index28.vue.d.ts +103 -0
  210. package/dist/index29.vue.d.cts +105 -0
  211. package/dist/index29.vue.d.ts +105 -0
  212. package/dist/index3.vue.d.cts +4 -4
  213. package/dist/index3.vue.d.ts +4 -4
  214. package/dist/index30.vue.d.cts +28 -0
  215. package/dist/index30.vue.d.ts +28 -0
  216. package/dist/index4.vue.d.cts +19 -128
  217. package/dist/index4.vue.d.ts +17 -34
  218. package/dist/index5.vue.d.cts +127 -35
  219. package/dist/index5.vue.d.ts +30 -19
  220. package/dist/index6.vue.d.cts +30 -19
  221. package/dist/index6.vue.d.ts +22 -118
  222. package/dist/index7.vue.d.cts +22 -118
  223. package/dist/index7.vue.d.ts +112 -18
  224. package/dist/index8.vue.d.cts +112 -18
  225. package/dist/index8.vue.d.ts +24 -35
  226. package/dist/index9.vue.d.cts +24 -35
  227. package/dist/index9.vue.d.ts +37 -80
  228. package/dist/numberCodec.cjs +1 -0
  229. package/dist/numberCodec.d.cts +25 -0
  230. package/dist/numberCodec.d.ts +25 -0
  231. package/dist/numberCodec.js +1 -0
  232. package/dist/observer.cjs +1 -0
  233. package/dist/observer.js +1 -0
  234. package/dist/presets.d.cts +2 -65
  235. package/dist/presets.d.ts +2 -65
  236. package/dist/resolver.cjs +1 -1
  237. package/dist/resolver.d.cts +1 -1
  238. package/dist/resolver.d.ts +1 -1
  239. package/dist/resolver.js +1 -1
  240. package/dist/serializeSearch.cjs +1 -0
  241. package/dist/serializeSearch.js +1 -0
  242. package/dist/style.css +548 -308
  243. package/dist/types.d.cts +60 -103
  244. package/dist/types.d.ts +62 -52
  245. package/dist/types2.d.cts +104 -51
  246. package/dist/types2.d.ts +56 -0
  247. package/dist/types3.d.cts +56 -0
  248. package/dist/useCollapsePanel.d.cts +3 -3
  249. package/dist/useCollapsePanel.d.ts +3 -3
  250. package/dist/useComponentLocale.cjs +1 -1
  251. package/dist/useComponentLocale.js +1 -1
  252. package/dist/useCropperCore.d.cts +7 -7
  253. package/dist/useCropperCore.d.ts +7 -7
  254. package/dist/useDataResource.cjs +1 -0
  255. package/dist/useDataResource.js +1 -0
  256. package/dist/useDictionary.cjs +1 -0
  257. package/dist/useDictionary.js +1 -0
  258. package/dist/useDynamicFormState.d.cts +960 -10
  259. package/dist/useDynamicFormState.d.ts +951 -11
  260. package/dist/useEdgeInteraction.d.cts +2 -2
  261. package/dist/useEdgeInteraction.d.ts +2 -2
  262. package/dist/useFormArray.cjs +1 -0
  263. package/dist/useFormArray.d.cts +69 -0
  264. package/dist/useFormArray.d.ts +69 -0
  265. package/dist/useFormArray.js +1 -0
  266. package/dist/useFormConfig.d.cts +14 -0
  267. package/dist/useFormConfig.d.ts +17 -38
  268. package/dist/useGridWidth.cjs +1 -0
  269. package/dist/useGridWidth.js +1 -0
  270. package/dist/useInfiniteScroll.d.cts +1 -1
  271. package/dist/useInfiniteScroll.d.ts +1 -1
  272. package/dist/useQRCode.d.cts +4 -4
  273. package/dist/useQRCode.d.ts +4 -4
  274. package/dist/useSignatureHistory.d.cts +4 -4
  275. package/dist/useSignatureHistory.d.ts +4 -4
  276. package/dist/useSplitResize.d.cts +4 -4
  277. package/dist/useSplitResize.d.ts +4 -4
  278. package/dist/useTableGlobalConfig.cjs +1 -0
  279. package/dist/useTableGlobalConfig.js +1 -0
  280. package/dist/useTableQuery.cjs +1 -3
  281. package/dist/useTableQuery.js +1 -3
  282. package/dist/useWorkflowValidation.d.cts +2 -2
  283. package/dist/useWorkflowValidation.d.ts +2 -2
  284. package/dist/validation.cjs +1 -0
  285. package/dist/validation.d.cts +18 -0
  286. package/dist/validation.d.ts +18 -0
  287. package/dist/validation.js +1 -0
  288. package/dist/verification.d.cts +2 -2
  289. package/dist/verification.d.ts +3 -3
  290. package/dist/workflows.cjs +1 -0
  291. package/dist/workflows.d.cts +2 -0
  292. package/dist/workflows.d.ts +2 -0
  293. package/dist/workflows.js +1 -0
  294. package/docs/components.en.md +13 -1
  295. package/docs/components.md +13 -1
  296. package/docs/guides/batch-results.md +47 -0
  297. package/docs/guides/data-picker.md +65 -0
  298. package/docs/guides/data-workflows.md +123 -0
  299. package/docs/guides/form-density.en.md +39 -0
  300. package/docs/guides/form-density.md +39 -0
  301. package/docs/guides/search-workflows.md +164 -0
  302. package/package.json +21 -1
  303. package/dist/C_FormSearch2.cjs +0 -1
  304. package/dist/C_FormSearch2.js +0 -1
  305. package/dist/useTableQuery.d.cts +0 -1957
  306. package/dist/useTableQuery.d.ts +0 -1946
@@ -1,43 +1,135 @@
1
- import { t as BreadcrumbItem } from "./types.cjs";
1
+ import { n as RouteItem } from "./types2.cjs";
2
2
  import * as vue from "vue";
3
+ import { Ref, VNode } from "vue";
4
+ import { DropdownProps, MenuInst, MenuOption } from "naive-ui";
3
5
 
4
- //#region src/components/C_Breadcrumb/types.d.ts
5
- interface BreadcrumbRouteMeta {
6
- [key: string]: unknown;
7
- title?: unknown;
8
- icon?: unknown;
9
- hidden?: unknown;
10
- breadcrumb?: unknown;
11
- }
12
- /** 可直接接收应用提供的授权菜单,非字符串图标由组件安全忽略。 */
13
- interface BreadcrumbMenuItem {
14
- path?: string;
15
- key?: string | number;
16
- name?: string | symbol | null;
17
- label?: string;
18
- icon?: unknown;
19
- meta?: BreadcrumbRouteMeta;
20
- children?: readonly BreadcrumbMenuItem[];
21
- disabled?: boolean;
22
- type?: string;
6
+ //#region src/components/_shared/menuAdapter.d.ts
7
+ /**
8
+ * 菜单适配器配置
9
+ */
10
+ interface MenuAdapterConfig {
11
+ /**
12
+ * 标签文本格式化函数(用于 i18n)
13
+ * 默认:原样返回 title
14
+ */
15
+ labelFormatter?: (title: string) => string;
16
+ /**
17
+ * 获取菜单项的唯一 key
18
+ * 默认:`normalizePath(route.path)`
19
+ */
20
+ getKey?: (route: RouteItem) => string;
21
+ /**
22
+ * 获取显示文本
23
+ * 默认:`route.meta?.title || route.name || ''`
24
+ */
25
+ getLabel?: (route: RouteItem) => string;
26
+ /**
27
+ * 路由过滤器 — return false 排除该项
28
+ * 默认:排除 `meta.hidden === true`
29
+ */
30
+ filter?: (route: RouteItem) => boolean;
31
+ /**
32
+ * 自定义图标渲染
33
+ * 默认:字符串 → Iconify Icon;函数 → 直接调用
34
+ */
35
+ renderIcon?: (icon: string | (() => VNode) | undefined) => (() => VNode) | undefined;
36
+ /**
37
+ * 是否递归处理 children
38
+ * 默认:true
39
+ */
40
+ recursive?: boolean;
23
41
  }
42
+ /**
43
+ * 将路由数据转换为 NMenu 的 MenuOption[]
44
+ *
45
+ * 支持的输入格式:
46
+ * 1. **Vue Router RouteRecordRaw** — 直接传 `router.getRoutes()` 或手写路由表
47
+ * 2. **后端 JSON 路由表** — `{ path, meta: { title, icon }, children }`
48
+ * 3. **自定义格式** — 通过 config 完全自定义 key/label/icon 的取值逻辑
49
+ *
50
+ * @param routes 路由数据数组
51
+ * @param config 适配器配置
52
+ * @returns NMenu 可直接使用的 MenuOption[]
53
+ */
54
+ declare function createMenuOptions(routes: RouteItem[], config?: MenuAdapterConfig): MenuOption[];
55
+ /**
56
+ * 将路由树扁平化为一维数组(常用于搜索、快捷导航)
57
+ *
58
+ * @param routes 路由数据数组
59
+ * @param filter 过滤器(默认排除 hidden)
60
+ * @returns 扁平化后的路由数组
61
+ */
62
+ declare function flattenRoutes(routes: RouteItem[], filter?: (route: RouteItem) => boolean): RouteItem[];
24
63
  //#endregion
25
- //#region src/components/C_Breadcrumb/index.vue.d.ts
26
- type __VLS_Props = {
27
- /** 手动路径,标签沿用传入值。 */items?: readonly BreadcrumbItem[]; /** 授权后的菜单树;提供时(含空数组)作为目录的唯一数据来源。 */
28
- menus?: readonly BreadcrumbMenuItem[];
29
- showIcon?: boolean;
30
- iconSize?: number; /** 自动路径和菜单标签的翻译函数。 */
64
+ //#region src/components/C_Menu/types.d.ts
65
+ type MenuKey = string | number;
66
+ type MenuValue = MenuKey | null;
67
+ type OwnMenuKey<Option> = Option extends {
68
+ key?: infer Key;
69
+ } ? Extract<Key, MenuKey> : never;
70
+ /** 已遇到的递归业务类型或原生完整键类型均停止展开,内联配置包含子节点。 */
71
+ type MenuOptionKeys<Option, Seen = never> = Option extends Seen ? OwnMenuKey<Option> : MenuKey extends OwnMenuKey<Option> ? MenuKey : OwnMenuKey<Option> | (Option extends {
72
+ children?: infer Children;
73
+ } ? Children extends readonly unknown[] ? MenuOptionKeys<Children[number], Seen | Option> : never : never);
74
+ type WidenMenuKey<Key> = Key extends string ? string : Key extends number ? number : never;
75
+ type MenuSelectionKey<O extends MenuOption[] | undefined> = O extends MenuOption[] ? [MenuOptionKeys<O[number]>] extends [never] ? MenuKey : WidenMenuKey<MenuOptionKeys<O[number]>> : string;
76
+ interface MenuProps<O extends MenuOption[] | undefined = MenuOption[] | undefined> {
77
+ options?: O;
78
+ routes?: RouteItem[];
79
+ adapterConfig?: MenuAdapterConfig;
31
80
  labelFormatter?: (label: string) => string;
81
+ /** @deprecated Use modelValue. */
82
+ value?: MenuValue;
83
+ modelValue?: MenuValue;
84
+ expandedKeys?: MenuKey[];
85
+ defaultExpandedKeys?: MenuKey[];
86
+ mode?: 'vertical' | 'horizontal';
87
+ collapsed?: boolean;
88
+ collapsedWidth?: number;
89
+ collapsedIconSize?: number;
90
+ inverted?: boolean;
91
+ themeOverrides?: Record<string, any>;
92
+ indent?: number;
93
+ rootIndent?: number;
94
+ dropdownProps?: DropdownProps;
95
+ }
96
+ interface MenuEmits<O extends MenuOption[] | undefined = MenuOption[] | undefined> {
97
+ select: [key: MenuSelectionKey<O>];
98
+ /** 鼠标或键盘聚焦叶子项时触发,可用于无副作用的路由预取。 */
99
+ intent: [key: MenuSelectionKey<O>];
100
+ 'update:modelValue': [key: MenuSelectionKey<O> | null];
101
+ /** @deprecated Use update:modelValue. */
102
+ 'update:value': [key: MenuSelectionKey<O> | null];
103
+ 'update:expandedKeys': [keys: MenuSelectionKey<O>[]];
104
+ }
105
+ interface MenuExpose {
106
+ showOption: (key: MenuKey) => void;
107
+ /** Vue 公开实例会解包顶层 Ref。 */
108
+ menuRef: MenuInst | null;
109
+ }
110
+ //#endregion
111
+ //#region src/components/C_Menu/index.vue.d.ts
112
+ declare const __VLS_export: <Options extends MenuOption[] | undefined = undefined>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
113
+ props: vue.PublicProps & __VLS_PrettifyLocal<MenuProps<Options> & {
114
+ "onUpdate:modelValue"?: ((key: MenuSelectionKey<Options> | null) => any) | undefined;
115
+ onSelect?: ((key: MenuSelectionKey<Options>) => any) | undefined;
116
+ "onUpdate:expandedKeys"?: ((keys: MenuSelectionKey<Options>[]) => any) | undefined;
117
+ onIntent?: ((key: MenuSelectionKey<Options>) => any) | undefined;
118
+ "onUpdate:value"?: ((key: MenuSelectionKey<Options> | null) => any) | undefined;
119
+ }> & (typeof globalThis extends {
120
+ __VLS_PROPS_FALLBACK: infer P;
121
+ } ? P : {});
122
+ expose: (exposed: vue.ShallowUnwrapRef<{
123
+ showOption: (key: MenuKey) => void | undefined;
124
+ menuRef: Ref<MenuInst | null, MenuInst | null>;
125
+ }>) => void;
126
+ attrs: any;
127
+ slots: {};
128
+ emit: ((evt: "update:modelValue", key: MenuSelectionKey<Options> | null) => void) & ((evt: "select", key: MenuSelectionKey<Options>) => void) & ((evt: "update:expandedKeys", keys: MenuSelectionKey<Options>[]) => void) & ((evt: "intent", key: MenuSelectionKey<Options>) => void) & ((evt: "update:value", key: MenuSelectionKey<Options> | null) => void);
129
+ }>) => vue.VNode & {
130
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
32
131
  };
33
- declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
34
- select: (path: string) => any;
35
- }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
36
- onSelect?: ((path: string) => any) | undefined;
37
- }>, {
38
- showIcon: boolean;
39
- iconSize: number;
40
- }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
41
132
  declare const _default: typeof __VLS_export;
133
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
42
134
  //#endregion
43
- export { BreadcrumbMenuItem as n, _default as t };
135
+ export { MenuProps as a, createMenuOptions as c, MenuKey as i, flattenRoutes as l, MenuEmits as n, MenuValue as o, MenuExpose as r, MenuAdapterConfig as s, _default as t };
@@ -1,32 +1,43 @@
1
+ import { i as BreadcrumbItem } from "./public.js";
1
2
  import * as vue from "vue";
2
3
 
3
- //#region src/components/C_Cascade/types.d.ts
4
- interface CascadeItem {
5
- label: string;
6
- value: string | number;
7
- children?: CascadeItem[];
4
+ //#region src/components/C_Breadcrumb/types.d.ts
5
+ interface BreadcrumbRouteMeta {
6
+ [key: string]: unknown;
7
+ title?: unknown;
8
+ icon?: unknown;
9
+ hidden?: unknown;
10
+ breadcrumb?: unknown;
8
11
  }
9
- interface CascadeValue {
10
- primary?: Pick<CascadeItem, 'label' | 'value'> | null;
11
- secondary?: Pick<CascadeItem, 'label' | 'value'> | null;
12
- tertiary?: Pick<CascadeItem, 'label' | 'value'> | null;
12
+ /** 可直接接收应用提供的授权菜单,非字符串图标由组件安全忽略。 */
13
+ interface BreadcrumbMenuItem {
14
+ path?: string;
15
+ key?: string | number;
16
+ name?: string | symbol | null;
17
+ label?: string;
18
+ icon?: unknown;
19
+ meta?: BreadcrumbRouteMeta;
20
+ children?: readonly BreadcrumbMenuItem[];
21
+ disabled?: boolean;
22
+ type?: string;
13
23
  }
14
24
  //#endregion
15
- //#region src/components/C_Cascade/index.vue.d.ts
25
+ //#region src/components/C_Breadcrumb/index.vue.d.ts
16
26
  type __VLS_Props = {
17
- data: CascadeItem[];
18
- placeholders?: string[];
19
- modelValue?: CascadeValue;
27
+ /** 手动路径,标签沿用传入值。 */items?: readonly BreadcrumbItem[]; /** 授权后的菜单树;提供时(含空数组)作为目录的唯一数据来源。 */
28
+ menus?: readonly BreadcrumbMenuItem[];
29
+ showIcon?: boolean;
30
+ iconSize?: number; /** 自动路径和菜单标签的翻译函数。 */
31
+ labelFormatter?: (label: string) => string;
20
32
  };
21
33
  declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
22
- "update:modelValue": (value: CascadeValue) => any;
23
- change: (value: CascadeValue) => any;
34
+ select: (path: string) => any;
24
35
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
25
- "onUpdate:modelValue"?: ((value: CascadeValue) => any) | undefined;
26
- onChange?: ((value: CascadeValue) => any) | undefined;
36
+ onSelect?: ((path: string) => any) | undefined;
27
37
  }>, {
28
- placeholders: string[];
38
+ showIcon: boolean;
39
+ iconSize: number;
29
40
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
30
41
  declare const _default: typeof __VLS_export;
31
42
  //#endregion
32
- export { CascadeItem as n, CascadeValue as r, _default as t };
43
+ export { BreadcrumbMenuItem as n, _default as t };
@@ -1,32 +1,43 @@
1
+ import { t as BreadcrumbItem } from "./types2.cjs";
1
2
  import * as vue from "vue";
2
3
 
3
- //#region src/components/C_Cascade/types.d.ts
4
- interface CascadeItem {
5
- label: string;
6
- value: string | number;
7
- children?: CascadeItem[];
4
+ //#region src/components/C_Breadcrumb/types.d.ts
5
+ interface BreadcrumbRouteMeta {
6
+ [key: string]: unknown;
7
+ title?: unknown;
8
+ icon?: unknown;
9
+ hidden?: unknown;
10
+ breadcrumb?: unknown;
8
11
  }
9
- interface CascadeValue {
10
- primary?: Pick<CascadeItem, 'label' | 'value'> | null;
11
- secondary?: Pick<CascadeItem, 'label' | 'value'> | null;
12
- tertiary?: Pick<CascadeItem, 'label' | 'value'> | null;
12
+ /** 可直接接收应用提供的授权菜单,非字符串图标由组件安全忽略。 */
13
+ interface BreadcrumbMenuItem {
14
+ path?: string;
15
+ key?: string | number;
16
+ name?: string | symbol | null;
17
+ label?: string;
18
+ icon?: unknown;
19
+ meta?: BreadcrumbRouteMeta;
20
+ children?: readonly BreadcrumbMenuItem[];
21
+ disabled?: boolean;
22
+ type?: string;
13
23
  }
14
24
  //#endregion
15
- //#region src/components/C_Cascade/index.vue.d.ts
25
+ //#region src/components/C_Breadcrumb/index.vue.d.ts
16
26
  type __VLS_Props = {
17
- data: CascadeItem[];
18
- placeholders?: string[];
19
- modelValue?: CascadeValue;
27
+ /** 手动路径,标签沿用传入值。 */items?: readonly BreadcrumbItem[]; /** 授权后的菜单树;提供时(含空数组)作为目录的唯一数据来源。 */
28
+ menus?: readonly BreadcrumbMenuItem[];
29
+ showIcon?: boolean;
30
+ iconSize?: number; /** 自动路径和菜单标签的翻译函数。 */
31
+ labelFormatter?: (label: string) => string;
20
32
  };
21
33
  declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
22
- "update:modelValue": (value: CascadeValue) => any;
23
- change: (value: CascadeValue) => any;
34
+ select: (path: string) => any;
24
35
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
25
- "onUpdate:modelValue"?: ((value: CascadeValue) => any) | undefined;
26
- onChange?: ((value: CascadeValue) => any) | undefined;
36
+ onSelect?: ((path: string) => any) | undefined;
27
37
  }>, {
28
- placeholders: string[];
38
+ showIcon: boolean;
39
+ iconSize: number;
29
40
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
30
41
  declare const _default: typeof __VLS_export;
31
42
  //#endregion
32
- export { CascadeItem as n, CascadeValue as r, _default as t };
43
+ export { BreadcrumbMenuItem as n, _default as t };
@@ -1,128 +1,32 @@
1
1
  import * as vue from "vue";
2
2
 
3
- //#region src/components/C_Chat/types.d.ts
4
- /**
5
- * @Description: C_Chat 通用聊天组件 - 类型定义
6
- */
7
- /** 消息类型 */
8
- type MessageType = 'text' | 'image' | 'file' | 'system';
9
- /** 消息发送方 */
10
- type MessageSender = 'self' | 'other' | 'system';
11
- /** 消息状态 */
12
- type MessageStatus = 'sending' | 'sent' | 'failed';
13
- /** 单条消息 */
14
- interface ChatMessage {
15
- /** 唯一标识 */
16
- id: string;
17
- /** 消息内容(文本 / 图片 URL / 文件信息 JSON) */
18
- content: string;
19
- /** 消息类型 */
20
- type: MessageType;
21
- /** 发送方 */
22
- sender: MessageSender;
23
- /** 发送时间(ISO 字符串 或 时间戳) */
24
- timestamp: string | number;
25
- /** 发送者头像 URL */
26
- avatar?: string;
27
- /** 发送者用户名 */
28
- username?: string;
29
- /** 消息状态 */
30
- status?: MessageStatus;
31
- /** 文件名(type = 'file' 时使用) */
32
- fileName?: string;
33
- /** 文件大小(字节) */
34
- fileSize?: number;
3
+ //#region src/components/C_Cascade/types.d.ts
4
+ interface CascadeItem {
5
+ label: string;
6
+ value: string | number;
7
+ children?: CascadeItem[];
35
8
  }
36
- /** 联系人 / 会话 */
37
- interface ChatContact {
38
- /** 唯一标识 */
39
- id: string;
40
- /** 显示名称 */
41
- name: string;
42
- /** 头像 URL */
43
- avatar?: string;
44
- /** 最后一条消息摘要 */
45
- lastMessage?: string;
46
- /** 最后消息时间 */
47
- lastTime?: string | number;
48
- /** 未读数 */
49
- unread?: number;
50
- /** 是否在线 */
51
- online?: boolean;
9
+ interface CascadeValue {
10
+ primary?: Pick<CascadeItem, 'label' | 'value'> | null;
11
+ secondary?: Pick<CascadeItem, 'label' | 'value'> | null;
12
+ tertiary?: Pick<CascadeItem, 'label' | 'value'> | null;
52
13
  }
53
- interface ChatProps {
54
- /** 联系人列表 */
55
- contacts?: ChatContact[];
56
- /** 消息列表 */
57
- messages?: ChatMessage[];
58
- /** 当前选中的联系人 ID */
59
- currentContactId?: string;
60
- /** 输入框占位符 */
61
- placeholder?: string;
62
- /** 是否显示联系人侧栏 */
63
- showContacts?: boolean;
64
- /** 是否显示消息时间戳 */
65
- showTimestamp?: boolean;
66
- /** 当前用户头像 */
67
- selfAvatar?: string;
68
- /** 当前用户名 */
69
- selfName?: string;
70
- /** 是否显示发送按钮 */
71
- showSendBtn?: boolean;
72
- /** 是否正在加载历史消息 */
73
- loadingHistory?: boolean;
74
- /** 大列表自动窗口化;false 可保留完整 DOM(消息 200 条、联系人 100 条起)。 */
75
- virtualScroll?: boolean;
76
- /** 标题(无联系人模式时显示) */
77
- title?: string;
78
- }
79
- declare const DEFAULT_CHAT_PROPS: Required<Pick<ChatProps, 'placeholder' | 'showContacts' | 'showTimestamp' | 'showSendBtn' | 'loadingHistory' | 'title'>>;
80
14
  //#endregion
81
- //#region src/components/C_Chat/index.vue.d.ts
82
- declare var __VLS_39: {}, __VLS_83: {};
83
- type __VLS_Slots = {} & {
84
- header?: (props: typeof __VLS_39) => any;
85
- } & {
86
- 'input-actions'?: (props: typeof __VLS_83) => any;
15
+ //#region src/components/C_Cascade/index.vue.d.ts
16
+ type __VLS_Props = {
17
+ data: CascadeItem[];
18
+ placeholders?: string[];
19
+ modelValue?: CascadeValue;
87
20
  };
88
- declare const __VLS_base: vue.DefineComponent<ChatProps, {
89
- scrollToBottom: () => void;
90
- }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
91
- send: (content: string) => any;
92
- "select-contact": (id: string) => any;
93
- "load-more": () => any;
94
- "image-preview": (url: string) => any;
95
- "file-click": (msg: ChatMessage) => any;
96
- "file-upload": () => any;
97
- "emoji-click": () => any;
98
- resend: (msg: ChatMessage) => any;
99
- }, string, vue.PublicProps, Readonly<ChatProps> & Readonly<{
100
- onSend?: ((content: string) => any) | undefined;
101
- "onSelect-contact"?: ((id: string) => any) | undefined;
102
- "onLoad-more"?: (() => any) | undefined;
103
- "onImage-preview"?: ((url: string) => any) | undefined;
104
- "onFile-click"?: ((msg: ChatMessage) => any) | undefined;
105
- "onFile-upload"?: (() => any) | undefined;
106
- "onEmoji-click"?: (() => any) | undefined;
107
- onResend?: ((msg: ChatMessage) => any) | undefined;
21
+ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
22
+ "update:modelValue": (value: CascadeValue) => any;
23
+ change: (value: CascadeValue) => any;
24
+ }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
25
+ "onUpdate:modelValue"?: ((value: CascadeValue) => any) | undefined;
26
+ onChange?: ((value: CascadeValue) => any) | undefined;
108
27
  }>, {
109
- virtualScroll: boolean;
110
- showContacts: boolean;
111
- showTimestamp: boolean;
112
- showSendBtn: boolean;
113
- loadingHistory: boolean;
114
- contacts: ChatContact[];
115
- messages: ChatMessage[];
116
- currentContactId: string;
117
- selfAvatar: string;
118
- selfName: string;
28
+ placeholders: string[];
119
29
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
120
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
121
30
  declare const _default: typeof __VLS_export;
122
- type __VLS_WithSlots<T, S> = T & {
123
- new (): {
124
- $slots: S;
125
- };
126
- };
127
31
  //#endregion
128
- export { DEFAULT_CHAT_PROPS as a, MessageType as c, ChatProps as i, ChatContact as n, MessageSender as o, ChatMessage as r, MessageStatus as s, _default as t };
32
+ export { CascadeItem as n, CascadeValue as r, _default as t };
@@ -1,128 +1,32 @@
1
1
  import * as vue from "vue";
2
2
 
3
- //#region src/components/C_Chat/types.d.ts
4
- /**
5
- * @Description: C_Chat 通用聊天组件 - 类型定义
6
- */
7
- /** 消息类型 */
8
- type MessageType = 'text' | 'image' | 'file' | 'system';
9
- /** 消息发送方 */
10
- type MessageSender = 'self' | 'other' | 'system';
11
- /** 消息状态 */
12
- type MessageStatus = 'sending' | 'sent' | 'failed';
13
- /** 单条消息 */
14
- interface ChatMessage {
15
- /** 唯一标识 */
16
- id: string;
17
- /** 消息内容(文本 / 图片 URL / 文件信息 JSON) */
18
- content: string;
19
- /** 消息类型 */
20
- type: MessageType;
21
- /** 发送方 */
22
- sender: MessageSender;
23
- /** 发送时间(ISO 字符串 或 时间戳) */
24
- timestamp: string | number;
25
- /** 发送者头像 URL */
26
- avatar?: string;
27
- /** 发送者用户名 */
28
- username?: string;
29
- /** 消息状态 */
30
- status?: MessageStatus;
31
- /** 文件名(type = 'file' 时使用) */
32
- fileName?: string;
33
- /** 文件大小(字节) */
34
- fileSize?: number;
3
+ //#region src/components/C_Cascade/types.d.ts
4
+ interface CascadeItem {
5
+ label: string;
6
+ value: string | number;
7
+ children?: CascadeItem[];
35
8
  }
36
- /** 联系人 / 会话 */
37
- interface ChatContact {
38
- /** 唯一标识 */
39
- id: string;
40
- /** 显示名称 */
41
- name: string;
42
- /** 头像 URL */
43
- avatar?: string;
44
- /** 最后一条消息摘要 */
45
- lastMessage?: string;
46
- /** 最后消息时间 */
47
- lastTime?: string | number;
48
- /** 未读数 */
49
- unread?: number;
50
- /** 是否在线 */
51
- online?: boolean;
9
+ interface CascadeValue {
10
+ primary?: Pick<CascadeItem, 'label' | 'value'> | null;
11
+ secondary?: Pick<CascadeItem, 'label' | 'value'> | null;
12
+ tertiary?: Pick<CascadeItem, 'label' | 'value'> | null;
52
13
  }
53
- interface ChatProps {
54
- /** 联系人列表 */
55
- contacts?: ChatContact[];
56
- /** 消息列表 */
57
- messages?: ChatMessage[];
58
- /** 当前选中的联系人 ID */
59
- currentContactId?: string;
60
- /** 输入框占位符 */
61
- placeholder?: string;
62
- /** 是否显示联系人侧栏 */
63
- showContacts?: boolean;
64
- /** 是否显示消息时间戳 */
65
- showTimestamp?: boolean;
66
- /** 当前用户头像 */
67
- selfAvatar?: string;
68
- /** 当前用户名 */
69
- selfName?: string;
70
- /** 是否显示发送按钮 */
71
- showSendBtn?: boolean;
72
- /** 是否正在加载历史消息 */
73
- loadingHistory?: boolean;
74
- /** 大列表自动窗口化;false 可保留完整 DOM(消息 200 条、联系人 100 条起)。 */
75
- virtualScroll?: boolean;
76
- /** 标题(无联系人模式时显示) */
77
- title?: string;
78
- }
79
- declare const DEFAULT_CHAT_PROPS: Required<Pick<ChatProps, 'placeholder' | 'showContacts' | 'showTimestamp' | 'showSendBtn' | 'loadingHistory' | 'title'>>;
80
14
  //#endregion
81
- //#region src/components/C_Chat/index.vue.d.ts
82
- declare var __VLS_39: {}, __VLS_83: {};
83
- type __VLS_Slots = {} & {
84
- header?: (props: typeof __VLS_39) => any;
85
- } & {
86
- 'input-actions'?: (props: typeof __VLS_83) => any;
15
+ //#region src/components/C_Cascade/index.vue.d.ts
16
+ type __VLS_Props = {
17
+ data: CascadeItem[];
18
+ placeholders?: string[];
19
+ modelValue?: CascadeValue;
87
20
  };
88
- declare const __VLS_base: vue.DefineComponent<ChatProps, {
89
- scrollToBottom: () => void;
90
- }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
91
- send: (content: string) => any;
92
- "select-contact": (id: string) => any;
93
- "load-more": () => any;
94
- "image-preview": (url: string) => any;
95
- "file-click": (msg: ChatMessage) => any;
96
- "file-upload": () => any;
97
- "emoji-click": () => any;
98
- resend: (msg: ChatMessage) => any;
99
- }, string, vue.PublicProps, Readonly<ChatProps> & Readonly<{
100
- onSend?: ((content: string) => any) | undefined;
101
- "onSelect-contact"?: ((id: string) => any) | undefined;
102
- "onLoad-more"?: (() => any) | undefined;
103
- "onImage-preview"?: ((url: string) => any) | undefined;
104
- "onFile-click"?: ((msg: ChatMessage) => any) | undefined;
105
- "onFile-upload"?: (() => any) | undefined;
106
- "onEmoji-click"?: (() => any) | undefined;
107
- onResend?: ((msg: ChatMessage) => any) | undefined;
21
+ declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
22
+ "update:modelValue": (value: CascadeValue) => any;
23
+ change: (value: CascadeValue) => any;
24
+ }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
25
+ "onUpdate:modelValue"?: ((value: CascadeValue) => any) | undefined;
26
+ onChange?: ((value: CascadeValue) => any) | undefined;
108
27
  }>, {
109
- virtualScroll: boolean;
110
- showContacts: boolean;
111
- showTimestamp: boolean;
112
- showSendBtn: boolean;
113
- loadingHistory: boolean;
114
- contacts: ChatContact[];
115
- messages: ChatMessage[];
116
- currentContactId: string;
117
- selfAvatar: string;
118
- selfName: string;
28
+ placeholders: string[];
119
29
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
120
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
121
30
  declare const _default: typeof __VLS_export;
122
- type __VLS_WithSlots<T, S> = T & {
123
- new (): {
124
- $slots: S;
125
- };
126
- };
127
31
  //#endregion
128
- export { DEFAULT_CHAT_PROPS as a, MessageType as c, ChatProps as i, ChatContact as n, MessageSender as o, ChatMessage as r, MessageStatus as s, _default as t };
32
+ export { CascadeItem as n, CascadeValue as r, _default as t };