@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,8 +1,23 @@
1
+ import { n as ComponentLocale, t as ComponentFeedback } from "./contracts.cjs";
1
2
  import { D as FormSlots, E as FormRecord, F as LayoutType, L as OptionItem, S as FormInstance, T as FormOption, a as ResolvedFormConfig, f as ComponentType, g as DynamicFormController, n as FormConfig, w as FormModel, z as SubmitEventPayload } from "./useFormConfig.cjs";
3
+ import { n as DictionaryOption } from "./dictionary.cjs";
4
+ import { n as ResolvedComponentDensity, t as ComponentDensity } from "./density.cjs";
5
+ import { $ as FormatterConfig, A as UseTableActionsOptions, B as ExpandConfig, D as TableRowKey, F as ColumnDragConfig, G as ToolbarConfig, H as SelectionConfig, K as TreeConfig, L as DisplayConfig, M as UseTableExpandOptions, N as UseTableExpandReturn, O as TableRowKeyIssue, P as BatchActionsConfig, R as EditConfig, S as TableColumn, U as SummaryConfig, V as ResolvedConfig, W as TableConfig, X as ExportConfig, b as SimpleTableActions, d as DataRecord, f as EditMode, g as ParentChildLinkMode, h as PaginationConfig, ht as DynamicRowsReturn, j as UseTableActionsReturn, k as TableRuntimeProps, mt as DynamicRowsOptions, ot as CrossPageSelectionConfig, q as VirtualScrollConfig, ut as RowDragConfig, w as TableInstance, x as StrictTableColumn, z as ErrorConfig } from "./index12.vue.cjs";
2
6
  import * as vue from "vue";
3
- import { Component, ComputedRef, InjectionKey, MaybeRefOrGetter, Ref, ShallowRef, Slots, VNode } from "vue";
4
- import { FormInst, FormItemInst, FormRules } from "naive-ui";
7
+ import { App, Component, ComputedRef, InjectionKey, MaybeRefOrGetter, Ref, ShallowRef, Slots, VNode, VNodeChild } from "vue";
8
+ import { DataTableColumn, DataTableRowKey, FormInst, FormItemInst, FormRules, PaginationProps, TreeInst, TreeOption, TreeProps } from "naive-ui";
9
+ import { HLJSApi } from "highlight.js";
5
10
 
11
+ //#region src/composables/useComponentLocale.d.ts
12
+ /** Bind the UI-independent translator to this Vue application and local configuration. */
13
+ declare function useComponentLocale(local?: MaybeRefOrGetter<ComponentLocale | undefined>): {
14
+ t: (key: string, params?: Record<string, string | number>) => string;
15
+ };
16
+ //#endregion
17
+ //#region src/adapters/naive/feedback.d.ts
18
+ /** Reuse Naive providers when present and safely degrade to injected/no-op feedback. */
19
+ declare function useComponentFeedback(local?: MaybeRefOrGetter<ComponentFeedback | undefined>): Required<ComponentFeedback>;
20
+ //#endregion
6
21
  //#region src/components/C_Form/composables/useFormRenderer.d.ts
7
22
  type ComponentMap = Record<string, Component>;
8
23
  type RendererProps = Record<string, unknown> & {
@@ -31,6 +46,8 @@ interface UseFormRendererOptions {
31
46
  instanceSlots?: Readonly<Slots>;
32
47
  asyncOptionsCache: Ref<Record<string, OptionItem[]>>;
33
48
  asyncLoadingMap: Ref<Record<string, boolean>>;
49
+ getDictionaryOptions?: (field: string) => readonly DictionaryOption[];
50
+ isDictionaryLoading?: (field: string) => boolean;
34
51
  renderers?: ComputedRef<Record<string, FormRenderer> | undefined>;
35
52
  /** Overrides application injection. An isolated registry never reads legacy globals. */
36
53
  registry?: FormRendererRegistry;
@@ -65,22 +82,23 @@ declare function useFormRenderer(opts: UseFormRendererOptions): {
65
82
  };
66
83
  //#endregion
67
84
  //#region src/components/C_Form/index.vue.d.ts
68
- declare const __VLS_export: <T extends object = FormRecord>(__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<{
69
- props: vue.PublicProps & __VLS_PrettifyLocal<{
85
+ declare const __VLS_export$3: <T extends object = FormRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$3<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
86
+ props: vue.PublicProps & __VLS_PrettifyLocal$3<{
70
87
  /** 字段配置数组 */options: FormOption<T>[]; /** 双向绑定表单数据 */
71
88
  modelValue?: FormModel<T>; /** 统一配置对象(收拢原先 13 个分散 Props) */
72
89
  config?: FormConfig<T>; /** 当前表单实例的自定义渲染器,不污染全局注册表 */
73
90
  renderers?: Record<string, FormRenderer>;
74
91
  } & {
75
92
  "onUpdate:modelValue"?: ((model: T) => any) | undefined;
76
- "onValidate-error"?: ((errors: unknown) => any) | undefined;
77
93
  onSubmit?: ((payload: SubmitEventPayload<T>) => any) | undefined;
78
94
  "onValidate-success"?: ((model: T) => any) | undefined;
95
+ "onValidate-error"?: ((errors: unknown) => any) | undefined;
79
96
  }> & (typeof globalThis extends {
80
97
  __VLS_PROPS_FALLBACK: infer P;
81
98
  } ? P : {});
82
99
  expose: (exposed: vue.ShallowUnwrapRef<{
83
100
  validate: () => Promise<void>;
101
+ revealField: (field: string) => Promise<boolean>;
84
102
  validateField: (field: string | string[]) => Promise<void>;
85
103
  validateStep: (step: number | string) => Promise<boolean>;
86
104
  validateTab: (tabKey: string) => Promise<boolean>;
@@ -110,12 +128,12 @@ declare const __VLS_export: <T extends object = FormRecord>(__VLS_props: NonNull
110
128
  }>) => void;
111
129
  attrs: any;
112
130
  slots: FormSlots<T>;
113
- emit: ((evt: "update:modelValue", model: T) => void) & ((evt: "validate-error", errors: unknown) => void) & ((evt: "submit", payload: SubmitEventPayload<T>) => void) & ((evt: "validate-success", model: T) => void);
131
+ emit: ((evt: "update:modelValue", model: T) => void) & ((evt: "submit", payload: SubmitEventPayload<T>) => void) & ((evt: "validate-success", model: T) => void) & ((evt: "validate-error", errors: unknown) => void);
114
132
  }>) => vue.VNode & {
115
133
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
116
134
  };
117
- declare const _default: typeof __VLS_export;
118
- type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
135
+ declare const _default$3: typeof __VLS_export$3;
136
+ type __VLS_PrettifyLocal$3<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
119
137
  //#endregion
120
138
  //#region src/components/C_Form/helpers.d.ts
121
139
  /** Preserve business-model field inference without changing the component API. */
@@ -146,6 +164,935 @@ interface UseCFormReturn<T extends object> {
146
164
  /** Small binding helper for the common controlled C_Form setup. */
147
165
  declare function useCForm<T extends object>(setup: UseCFormOptions<T>): UseCFormReturn<T>;
148
166
  //#endregion
167
+ //#region src/plugins/highlight.d.ts
168
+ interface HighlightPluginOptions {
169
+ autoDetect?: boolean;
170
+ extraLanguages?: string[];
171
+ /** Explicit compatibility bridge; restored when the owning app unmounts. */
172
+ exposeToWindow?: boolean;
173
+ /** Enable lifecycle diagnostics through the supplied logger. */
174
+ debug?: boolean;
175
+ logger?: Pick<Console, 'info' | 'warn' | 'error'>;
176
+ onError?: (error: unknown, context: {
177
+ source: 'language-loader';
178
+ language: string;
179
+ }) => void;
180
+ }
181
+ interface HighlightAPI {
182
+ getHljs: () => HLJSApi;
183
+ loadLanguage: (language: string) => Promise<boolean>;
184
+ loadLanguages: (languages: string[]) => Promise<string[]>;
185
+ getLoadedLanguages: () => string[];
186
+ }
187
+ /** Create an independent highlighter, including its language registry and loaders. */
188
+ declare function createHighlight(options?: HighlightPluginOptions): HighlightAPI;
189
+ /** Reuse the current app's highlighter or create a standalone, isolated one. */
190
+ declare function useHighlight(options?: HighlightPluginOptions): HighlightAPI;
191
+ /**
192
+ * * @description 安装 highlight.js 插件到 Vue 应用
193
+ * ? @param app - Vue 应用实例
194
+ * ? @param options - 插件配置选项
195
+ * ! @return 应用独立的 highlight API
196
+ */
197
+ declare function setupHighlight(app: App, options?: HighlightPluginOptions): HighlightAPI;
198
+ //#endregion
199
+ //#region src/components/C_Table/index.vue.d.ts
200
+ declare const __VLS_export$2: <T extends object = DataRecord, C = unknown>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$2<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
201
+ props: vue.PublicProps & __VLS_PrettifyLocal$2<TableRuntimeProps<T, C> & {
202
+ onCancel?: ((rowData: T, rowIndex: number) => any) | undefined;
203
+ onSave?: ((rowData: T, rowIndex: number, columnKey?: string | undefined) => any) | undefined;
204
+ "onPagination-change"?: ((page: number, pageSize: number) => any) | undefined;
205
+ "onRow-delete"?: ((deletedRow: T, index: number) => any) | undefined;
206
+ "onBatch-action-error"?: ((error: unknown, actionKey: string) => any) | undefined;
207
+ "onRow-key-error"?: ((issues: TableRowKeyIssue<T>[]) => any) | undefined;
208
+ "onRow-add"?: ((newRow: T) => any) | undefined;
209
+ "onRow-copy"?: ((originalRow: T, newRow: T) => any) | undefined;
210
+ "onRow-move"?: ((row: T, fromIndex: number, toIndex: number) => any) | undefined;
211
+ "onRow-selection-change"?: ((selectedKey: DataTableRowKey | null, selectedRow: T | null) => any) | undefined;
212
+ "onView-detail"?: ((data: T) => any) | undefined;
213
+ "onColumn-change"?: ((columns: TableColumn<T>[]) => any) | undefined;
214
+ "onExpand-change"?: ((expandedKeys: DataTableRowKey[], row?: T | undefined, expanded?: boolean | undefined) => any) | undefined;
215
+ "onSelection-change"?: ((checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => any) | undefined;
216
+ "onChild-selection-change"?: ((parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => any) | undefined;
217
+ "onParent-child-link-change"?: ((parentKey: DataTableRowKey, shouldSelect: boolean) => any) | undefined;
218
+ "onUpdate:data"?: ((data: T[]) => any) | undefined;
219
+ "onEdit-error"?: ((error: unknown) => any) | undefined;
220
+ }> & (typeof globalThis extends {
221
+ __VLS_PROPS_FALLBACK: infer P;
222
+ } ? P : {});
223
+ expose: (exposed: vue.ShallowUnwrapRef<TableInstance<T, C>>) => void;
224
+ attrs: any;
225
+ slots: {
226
+ 'toolbar-left'?: (props: {}) => any;
227
+ } & {
228
+ 'toolbar-right'?: (props: {}) => any;
229
+ } & {
230
+ error?: (props: {
231
+ error: ErrorConfig;
232
+ }) => any;
233
+ } & {
234
+ loading?: (props: {}) => any;
235
+ };
236
+ emit: ((evt: "cancel", rowData: T, rowIndex: number) => void) & ((evt: "save", rowData: T, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "pagination-change", page: number, pageSize: number) => void) & ((evt: "row-delete", deletedRow: T, index: number) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<T>[]) => void) & ((evt: "row-add", newRow: T) => void) & ((evt: "row-copy", originalRow: T, newRow: T) => void) & ((evt: "row-move", row: T, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: T | null) => void) & ((evt: "view-detail", data: T) => void) & ((evt: "column-change", columns: TableColumn<T>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: T | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: C[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: T[]) => void) & ((evt: "edit-error", error: unknown) => void);
237
+ }>) => vue.VNode & {
238
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
239
+ };
240
+ declare const _default$2: typeof __VLS_export$2;
241
+ type __VLS_PrettifyLocal$2<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
242
+ //#endregion
243
+ //#region src/components/C_Table/helpers.d.ts
244
+ /** Type-safe identity helper that rejects misspelled business field keys. */
245
+ declare function defineTableColumns<T extends object>(columns: StrictTableColumn<T>[]): StrictTableColumn<T>[];
246
+ /** Preserve row types across edit, action, summary and batch callbacks. */
247
+ declare function defineTableConfig<T extends object, C = unknown>(config: TableConfig<T, C>): TableConfig<T, C>;
248
+ /** Find missing and duplicate row keys before stateful table features consume them. */
249
+ declare function validateTableRowKeys<T extends object>(data: readonly T[], rowKey: (row: T) => DataTableRowKey | null | undefined): TableRowKeyIssue<T>[];
250
+ //#endregion
251
+ //#region src/components/C_Table/composables/useTableColumns.d.ts
252
+ /** useTableColumns 中对 tableManager 的最小依赖接口 */
253
+ interface TableManagerRef {
254
+ editStates: {
255
+ cellEdit: {
256
+ isSaving?: Ref<boolean>;
257
+ isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
258
+ getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
259
+ updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
260
+ saveEditCell: () => Promise<unknown>;
261
+ cancelEditCell: () => void;
262
+ startEditCell: (rowKey: DataTableRowKey, columnKey: string) => void;
263
+ };
264
+ rowEdit: {
265
+ isSaving?: Ref<boolean>;
266
+ isEditingRow: (rowKey: DataTableRowKey) => boolean;
267
+ getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
268
+ updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
269
+ };
270
+ };
271
+ dynamicRowsState?: {
272
+ enhanceColumns: (columns: TableColumn[]) => TableColumn[];
273
+ } | null;
274
+ expandState?: {
275
+ getTableColumns: (originalColumns: TableColumn[]) => DataTableColumn[];
276
+ } | null;
277
+ }
278
+ interface UseTableColumnsOptions {
279
+ /** 原始列配置 */
280
+ rawColumns: ComputedRef<TableColumn[]>;
281
+ /** 统一配置 */
282
+ config: ComputedRef<ResolvedConfig>;
283
+ /** 默认列宽 */
284
+ columnWidth: number;
285
+ /** 区分使用侧显式统一列宽与内部默认值,不把默认值强加给弹性业务列。 */
286
+ columnWidthExplicit?: boolean;
287
+ /** 用户设定的 scrollX */
288
+ scrollX?: number | string;
289
+ /** 行键获取函数 */
290
+ rowKey: (row: DataRecord) => DataTableRowKey;
291
+ /** 表格管理器 */
292
+ tableManager: TableManagerRef;
293
+ /** 操作列渲染函数 */
294
+ actionsRenderer: (row: DataRecord, index: number) => VNodeChild;
295
+ /** 编辑模式检查器 */
296
+ editModeChecker: ComputedRef<{
297
+ isNonEditable: (column: TableColumn) => boolean;
298
+ isRowEditMode: () => boolean;
299
+ isCellEditMode: () => boolean;
300
+ }>;
301
+ /** 是否渲染操作列 */
302
+ showActionsColumn: ComputedRef<boolean>;
303
+ }
304
+ interface UseTableColumnsReturn {
305
+ reactiveColumns: Ref<TableColumn[]>;
306
+ showSettingsPanel: Ref<boolean>;
307
+ computedColumns: ComputedRef<DataTableColumn[]>;
308
+ computedScrollX: ComputedRef<number | string | undefined>;
309
+ getDictionaryLabel: (column: TableColumn, value: unknown) => string;
310
+ handleColumnChange: (columns: TableColumn[]) => void;
311
+ }
312
+ /**
313
+ * 表格列处理引擎
314
+ */
315
+ declare function useTableColumns(options: UseTableColumnsOptions): UseTableColumnsReturn;
316
+ //#endregion
317
+ //#region src/components/C_Table/composables/useRowEdit.d.ts
318
+ /** 行级校验错误 */
319
+ interface RowValidationError {
320
+ field: string;
321
+ message: string;
322
+ }
323
+ /**
324
+ * 行编辑配置选项
325
+ */
326
+ interface RowEditOptions {
327
+ data: () => DataRecord[];
328
+ rowKey: (row: DataRecord) => DataTableRowKey;
329
+ onSave?: (rowData: DataRecord, rowIndex: number, originalKey?: DataTableRowKey) => unknown;
330
+ onCancel?: (rowData: DataRecord, rowIndex: number) => unknown;
331
+ /** 列配置(用于提取校验规则) */
332
+ columns?: () => TableColumn[];
333
+ }
334
+ /**
335
+ * 可编辑行组合函数,提供表格整行的编辑功能
336
+ */
337
+ declare function useRowEdit(options: RowEditOptions): {
338
+ editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
339
+ editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
340
+ isSaving: vue.Ref<boolean, boolean>;
341
+ isEditingRow: (rowKey: DataTableRowKey) => boolean;
342
+ startEditRow: (rowKey: DataTableRowKey) => boolean;
343
+ cancelEditRow: () => Promise<void>;
344
+ saveEditRow: () => Promise<{
345
+ updatedData: DataRecord;
346
+ rowIndex: number;
347
+ } | undefined>;
348
+ validateRow: () => Promise<boolean>;
349
+ validationErrors: vue.Ref<{
350
+ field: string;
351
+ message: string;
352
+ }[], RowValidationError[] | {
353
+ field: string;
354
+ message: string;
355
+ }[]>;
356
+ getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
357
+ updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
358
+ findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
359
+ invalidate: () => void;
360
+ };
361
+ //#endregion
362
+ //#region src/components/C_Table/composables/useTableManager.d.ts
363
+ /**
364
+ * 表格管理器配置接口
365
+ */
366
+ interface TableManagerConfig {
367
+ feedback?: ComponentFeedback;
368
+ locale?: ComponentLocale;
369
+ editable: boolean;
370
+ editMode: string;
371
+ showRowActions: boolean;
372
+ modalTitle: string;
373
+ modalWidth: number;
374
+ onEditSave?: (rowData: DataRecord, rowIndex: number, columnKey?: string) => unknown;
375
+ onEditCancel?: (rowData: DataRecord, rowIndex: number) => unknown;
376
+ onEditError?: (error: unknown) => void;
377
+ expandable: boolean;
378
+ defaultExpandedKeys?: DataTableRowKey[];
379
+ onLoadExpandData?: (row: DataRecord) => Promise<any[]> | any[];
380
+ onExpandError?: (error: unknown, row: DataRecord) => void;
381
+ renderExpandContent?: unknown;
382
+ rowExpandable?: (row: DataRecord) => boolean;
383
+ enableSelection: boolean;
384
+ defaultCheckedKeys?: DataTableRowKey[];
385
+ rowCheckable?: (row: DataRecord) => boolean;
386
+ maxSelection?: number;
387
+ enableChildSelection: boolean;
388
+ childRowCheckable?: (childRow: DataRecord, parentRow: DataRecord) => boolean;
389
+ enableParentChildLink: boolean;
390
+ parentChildLinkMode: ParentChildLinkMode;
391
+ dynamicRows?: DynamicRowsOptions<DataRecord>;
392
+ treeEnabled?: boolean;
393
+ treeChildrenKey?: string;
394
+ }
395
+ /**
396
+ * 表格管理器参数接口
397
+ */
398
+ interface TableManagerParams {
399
+ config: MaybeRefOrGetter<TableManagerConfig>;
400
+ data: () => DataRecord[];
401
+ rowKey: (row: DataRecord) => DataTableRowKey;
402
+ emit: (...args: any[]) => unknown;
403
+ /** 列配置(用于编辑校验) */
404
+ columns?: () => TableColumn[];
405
+ /** UI 壳提供加载内容,状态引擎保持可独立调用。 */
406
+ renderLoading?: () => VNodeChild;
407
+ /** String row-key field inherited by dynamic row creation; explicit dynamicRows.rowKey wins. */
408
+ rowKeyField?: MaybeRefOrGetter<string | undefined>;
409
+ }
410
+ /**
411
+ * 事件处理器接口
412
+ */
413
+ interface EventHandlers {
414
+ onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string, originalKey?: DataTableRowKey) => Promise<void>;
415
+ onCancel: (rowData: DataRecord, rowIndex: number) => Promise<void>;
416
+ onExpandChange: (keys: DataTableRowKey[], row?: DataRecord, expanded?: boolean) => void;
417
+ onSelectionChange: (checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey, DataTableRowKey[]>) => void;
418
+ onChildSelectionChange: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void;
419
+ onRowChange: (data: DataRecord[]) => void;
420
+ onRowSelectionChange: (selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void;
421
+ onRowAdd: (newRow: DataRecord) => void;
422
+ onRowDelete: (deletedRow: DataRecord, index: number) => void;
423
+ onRowCopy: (originalRow: DataRecord, newRow: DataRecord) => void;
424
+ onRowMove: (row: DataRecord, fromIndex: number, toIndex: number) => void;
425
+ }
426
+ /**
427
+ * 表格统一状态管理器
428
+ */
429
+ declare function useTableManager(params: TableManagerParams): {
430
+ editStates: {
431
+ rowEdit: {
432
+ editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
433
+ editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
434
+ isSaving: vue.Ref<boolean, boolean>;
435
+ isEditingRow: (rowKey: DataTableRowKey) => boolean;
436
+ startEditRow: (rowKey: DataTableRowKey) => boolean;
437
+ cancelEditRow: () => Promise<void>;
438
+ saveEditRow: () => Promise<{
439
+ updatedData: DataRecord;
440
+ rowIndex: number;
441
+ } | undefined>;
442
+ validateRow: () => Promise<boolean>;
443
+ validationErrors: vue.Ref<{
444
+ field: string;
445
+ message: string;
446
+ }[], RowValidationError[] | {
447
+ field: string;
448
+ message: string;
449
+ }[]>;
450
+ getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
451
+ updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
452
+ findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
453
+ invalidate: () => void;
454
+ };
455
+ cellEdit: {
456
+ editingCell: vue.Ref<{
457
+ rowKey: DataTableRowKey | null;
458
+ columnKey: string | null;
459
+ }, {
460
+ rowKey: DataTableRowKey | null;
461
+ columnKey: string | null;
462
+ } | {
463
+ rowKey: DataTableRowKey | null;
464
+ columnKey: string | null;
465
+ }>;
466
+ editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
467
+ isSaving: vue.Ref<boolean, boolean>;
468
+ isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
469
+ startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
470
+ saveEditCell: () => Promise<{
471
+ updatedData: {
472
+ [x: string]: unknown;
473
+ };
474
+ rowIndex: number;
475
+ columnKey: string;
476
+ } | undefined>;
477
+ cancelEditCell: () => void;
478
+ validateCell: () => Promise<boolean>;
479
+ cellValidationError: vue.Ref<string | null, string | null>;
480
+ getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
481
+ updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
482
+ findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
483
+ invalidate: () => void;
484
+ };
485
+ modalEdit: {
486
+ isModalVisible: vue.Ref<boolean, boolean>;
487
+ isSaving: vue.Ref<boolean, boolean>;
488
+ editingData: vue.Ref<DataRecord, DataRecord>;
489
+ editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
490
+ editingRowIndex: vue.ComputedRef<number>;
491
+ startEdit: (rowKey: DataTableRowKey, sourceData?: DataRecord | undefined) => boolean;
492
+ saveEdit: (formData?: DataRecord | undefined) => Promise<{
493
+ updatedData: any;
494
+ rowIndex: number;
495
+ } | undefined>;
496
+ cancelEdit: () => Promise<boolean>;
497
+ updateEditingData: (data: DataRecord) => boolean;
498
+ resetEditingState: () => boolean;
499
+ isEditingRow: (rowKey: DataTableRowKey) => boolean;
500
+ getEditingRowData: (rowKey: DataTableRowKey) => any;
501
+ invalidate: () => void;
502
+ };
503
+ };
504
+ expandState: UseTableExpandReturn<DataRecord, DataRecord>;
505
+ dynamicRowsState: DynamicRowsReturn<DataRecord>;
506
+ stateManager: {
507
+ edit: {
508
+ /** 开始编辑 */start(rowKey: DataTableRowKey, columnKey?: string): void; /** 取消编辑 */
509
+ cancel(): void; /** 保存编辑 */
510
+ save(): Promise<void>; /** 是否正在编辑 */
511
+ isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean; /** 获取当前编辑数据 */
512
+ getEditingData(): DataRecord | null | undefined;
513
+ };
514
+ expand: {
515
+ /** 展开行 */row(rowKey: DataTableRowKey): Promise<void>; /** 折叠行 */
516
+ collapse(rowKey: DataTableRowKey): void; /** 展开折叠切换 */
517
+ toggle(rowKey: DataTableRowKey): Promise<void>; /** 展开所有行 */
518
+ all(): Promise<void>; /** 折叠所有行 */
519
+ collapseAll(): void; /** 检查行是否已展开 */
520
+ isExpanded(rowKey: DataTableRowKey): boolean;
521
+ };
522
+ selection: {
523
+ /** 选择指定行 */select(rowKey: DataTableRowKey): void; /** 取消选择指定行 */
524
+ unselect(rowKey: DataTableRowKey): void; /** 选择所有行 */
525
+ all(): void; /** 清除所有行选择 */
526
+ clear(): void; /** 检查行是否已选择 */
527
+ isSelected(rowKey: DataTableRowKey): boolean; /** 获取所有已选择的行数据 */
528
+ getSelected(): DataRecord[];
529
+ };
530
+ childSelection: {
531
+ /** 选择指定父行下的子行 */select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 取消选择指定父行下的子行 */
532
+ unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 选择指定父行下的所有子行 */
533
+ selectAll(parentKey: DataTableRowKey): void; /** 清除指定父行下的所有子行选择 */
534
+ clear(parentKey: DataTableRowKey): void; /** 获取指定父行下所有已选择的子行数据 */
535
+ getSelected(parentKey: DataTableRowKey): DataRecord[];
536
+ };
537
+ dynamicRows: {
538
+ /** 添加行 */add(): void; /** 插入行 */
539
+ insert(): void; /** 删除行 */
540
+ delete(): void; /** 复制行 */
541
+ copy(): void; /** 上移动态行 */
542
+ moveUp(): void; /** 下移动态行 */
543
+ moveDown(): void; /** 清空动态行数据 */
544
+ clearSelection(): void; /** 获取当前选中的动态行数据 */
545
+ getSelected(): DataRecord | null; /** 打印表格 */
546
+ print(elementRef?: HTMLElement): Promise<void>; /** 导出表格数据 */
547
+ download(elementRef?: HTMLElement, filename?: string): Promise<void>;
548
+ }; /** 清除所有选择 */
549
+ clearAllSelections(): void;
550
+ };
551
+ expandedKeys: vue.ComputedRef<DataTableRowKey[]>;
552
+ checkedKeys: vue.ComputedRef<DataTableRowKey[]>;
553
+ eventHandlers: EventHandlers;
554
+ };
555
+ //#endregion
556
+ //#region src/components/C_Table/composables/useTableExpand.d.ts
557
+ /**
558
+ *
559
+ */
560
+ declare function useTableExpand<T extends object = DataRecord, C = DataRecord>(options: UseTableExpandOptions<T, C>): UseTableExpandReturn<T, C>;
561
+ //#endregion
562
+ //#region src/components/C_Table/composables/useTableActions.d.ts
563
+ /**
564
+ * 表格操作Hook
565
+ */
566
+ declare function useTableActions<T extends object = DataRecord>(options: UseTableActionsOptions<T>): UseTableActionsReturn<T>;
567
+ //#endregion
568
+ //#region src/components/C_Table/composables/usePagination.d.ts
569
+ interface UsePaginationOptions<T extends object = DataRecord> {
570
+ /** 数据源 - 支持函数、Ref 或 ComputedRef */
571
+ data: (() => T[]) | Ref<T[]> | ComputedRef<T[]>;
572
+ /** 分页配置 */
573
+ config: Ref<PaginationConfig | null> | ComputedRef<PaginationConfig | null>;
574
+ /** 事件触发器 */
575
+ emit?: (event: 'pagination-change', page: number, pageSize: number) => void;
576
+ }
577
+ interface UsePaginationReturn<T extends object = DataRecord> {
578
+ currentPage: Ref<number>;
579
+ currentPageSize: Ref<number>;
580
+ paginatedData: ComputedRef<T[]>;
581
+ paginationConfig: ComputedRef<PaginationProps | null>;
582
+ handlePageChange: (page: number) => void;
583
+ handlePageSizeChange: (pageSize: number) => void;
584
+ resetToFirstPage: () => void;
585
+ getTotalPages: () => number;
586
+ }
587
+ /** Local and remote pagination with stable controlled-state synchronization. */
588
+ declare function usePagination<T extends object = DataRecord>(options: UsePaginationOptions<T>): UsePaginationReturn<T>;
589
+ //#endregion
590
+ //#region src/components/C_Table/composables/useCellEdit.d.ts
591
+ /**
592
+ * 单元格编辑配置选项
593
+ */
594
+ interface CellEditOptions {
595
+ data: () => DataRecord[];
596
+ rowKey: (row: DataRecord) => DataTableRowKey;
597
+ onSave?: (rowData: DataRecord, rowIndex: number, columnKey: string, originalKey?: DataTableRowKey) => unknown;
598
+ /** 列配置(用于提取校验规则) */
599
+ columns?: () => TableColumn[];
600
+ }
601
+ /**
602
+ * 可编辑单元格组合函数,提供表格单元格的编辑功能
603
+ */
604
+ declare function useCellEdit(options: CellEditOptions): {
605
+ editingCell: vue.Ref<{
606
+ rowKey: DataTableRowKey | null;
607
+ columnKey: string | null;
608
+ }, {
609
+ rowKey: DataTableRowKey | null;
610
+ columnKey: string | null;
611
+ } | {
612
+ rowKey: DataTableRowKey | null;
613
+ columnKey: string | null;
614
+ }>;
615
+ editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
616
+ isSaving: vue.Ref<boolean, boolean>;
617
+ isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
618
+ startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
619
+ saveEditCell: () => Promise<{
620
+ updatedData: {
621
+ [x: string]: unknown;
622
+ };
623
+ rowIndex: number;
624
+ columnKey: string;
625
+ } | undefined>;
626
+ cancelEditCell: () => void;
627
+ validateCell: () => Promise<boolean>;
628
+ cellValidationError: vue.Ref<string | null, string | null>;
629
+ getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
630
+ updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
631
+ findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
632
+ invalidate: () => void;
633
+ };
634
+ //#endregion
635
+ //#region node_modules/@vue/shared/dist/shared.d.ts
636
+ type IfAny<T, Y, N> = 0 extends 1 & T ? Y : N;
637
+ //#endregion
638
+ //#region src/components/C_Table/composables/useModalEdit.d.ts
639
+ interface ModalEditOptions<T extends object = DataRecord> {
640
+ data: () => T[];
641
+ rowKey: (row: T) => DataTableRowKey;
642
+ onSave?: (editingData: T, rowIndex: number, originalKey?: DataTableRowKey) => unknown;
643
+ onCancel?: (originalData: T, rowIndex: number) => unknown;
644
+ }
645
+ /** Modal edit state with lossless snapshots and retry-safe async saves. */
646
+ declare function useModalEdit<T extends object = DataRecord>(options: ModalEditOptions<T>): {
647
+ isModalVisible: vue.Ref<boolean, boolean>;
648
+ isSaving: vue.Ref<boolean, boolean>;
649
+ editingData: [T] extends [vue.Ref<any, any>] ? IfAny<T, vue.Ref<T, T>, T> : vue.Ref<vue.UnwrapRef<T>, T | vue.UnwrapRef<T>>;
650
+ editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
651
+ editingRowIndex: vue.ComputedRef<number>;
652
+ startEdit: (rowKey: DataTableRowKey, sourceData?: T) => boolean;
653
+ saveEdit: (formData?: T) => Promise<{
654
+ updatedData: any;
655
+ rowIndex: number;
656
+ } | undefined>;
657
+ cancelEdit: () => Promise<boolean>;
658
+ updateEditingData: (data: T) => boolean;
659
+ resetEditingState: () => boolean;
660
+ isEditingRow: (rowKey: DataTableRowKey) => boolean;
661
+ getEditingRowData: (rowKey: DataTableRowKey) => any;
662
+ invalidate: () => void;
663
+ };
664
+ //#endregion
665
+ //#region src/components/C_Table/composables/useTableQuery.d.ts
666
+ interface TableQueryContext<Q> {
667
+ page: number;
668
+ pageSize: number;
669
+ query: Readonly<Q>;
670
+ signal: AbortSignal;
671
+ }
672
+ interface TableQueryResult<T extends object> {
673
+ data: readonly T[];
674
+ total: number;
675
+ }
676
+ interface UseTableQueryOptions<T extends object, Q extends object> {
677
+ request: (context: TableQueryContext<Q>) => Promise<TableQueryResult<T>>;
678
+ initialQuery: Q;
679
+ columns?: MaybeRefOrGetter<TableColumn<T>[] | undefined>;
680
+ config?: MaybeRefOrGetter<TableConfig<T> | undefined>;
681
+ rowKey?: TableRowKey<T>;
682
+ initialPage?: number;
683
+ pageSize?: number;
684
+ immediate?: boolean;
685
+ onError?: (error: unknown) => void;
686
+ onSuccess?: (result: TableQueryResult<T>) => void;
687
+ }
688
+ /**
689
+ * Remote table controller with latest-request-wins cancellation and ready-to-bind props.
690
+ */
691
+ declare function useTableQuery<T extends object, Q extends object = Record<string, unknown>>(options: UseTableQueryOptions<T, Q>): {
692
+ data: vue.ShallowRef<T[], T[]>;
693
+ loading: vue.Ref<boolean, boolean>;
694
+ error: vue.ShallowRef<unknown, unknown>;
695
+ total: vue.Ref<number, number>;
696
+ page: vue.Ref<number, number>;
697
+ pageSize: vue.Ref<number, number>;
698
+ query: vue.Ref<any, any> extends Q ? Q extends Q & vue.Ref<any, any> ? IfAny<Q, vue.ShallowRef<Q, Q>, Q> : vue.ShallowRef<Q, Q> : vue.ShallowRef<Q, Q>;
699
+ tableProps: vue.ComputedRef<{
700
+ data: T[];
701
+ loading: boolean;
702
+ columns: TableColumn<T>[] | undefined;
703
+ rowKey: TableRowKey<T>;
704
+ config: {
705
+ pagination: {
706
+ enabled: true;
707
+ remote: true;
708
+ page: number;
709
+ pageSize: number;
710
+ total: number;
711
+ showSizePicker?: boolean;
712
+ showQuickJumper?: boolean;
713
+ pageSizes?: number[];
714
+ simple?: boolean;
715
+ size?: "small" | "medium" | "large";
716
+ };
717
+ density?: ComponentDensity;
718
+ feedback?: ComponentFeedback;
719
+ locale?: ComponentLocale;
720
+ validateRowKeys?: boolean;
721
+ edit?: boolean | EditMode | EditConfig<T> | undefined;
722
+ actions?: SimpleTableActions<T> | undefined;
723
+ expand?: boolean | ExpandConfig<T, unknown> | undefined;
724
+ selection?: boolean | SelectionConfig<T, unknown> | undefined;
725
+ dynamicRows?: DynamicRowsOptions<T> | (string extends keyof T ? boolean : false) | undefined;
726
+ toolbar?: ToolbarConfig;
727
+ display?: DisplayConfig;
728
+ virtualScroll?: VirtualScrollConfig | boolean;
729
+ summary?: SummaryConfig<T> | undefined;
730
+ columnDrag?: ColumnDragConfig | boolean;
731
+ tree?: TreeConfig | boolean;
732
+ rowDrag?: RowDragConfig | boolean;
733
+ crossPageSelection?: CrossPageSelectionConfig | boolean;
734
+ export?: ExportConfig;
735
+ persistKey?: string;
736
+ formatterConfig?: FormatterConfig;
737
+ error?: ErrorConfig;
738
+ batchActions?: BatchActionsConfig<T> | undefined;
739
+ };
740
+ }>;
741
+ execute: () => Promise<boolean>;
742
+ reload: () => Promise<boolean>;
743
+ setQuery: (next: Partial<Q> | ((current: Readonly<Q>) => Q), reload?: boolean) => Promise<boolean>;
744
+ resetQuery: (reload?: boolean) => Promise<boolean>;
745
+ handlePaginationChange: (nextPage: number, nextPageSize: number) => Promise<boolean>;
746
+ bindings: vue.ComputedRef<{
747
+ onPaginationChange: (nextPage: number, nextPageSize: number) => Promise<boolean>;
748
+ data: T[];
749
+ loading: boolean;
750
+ columns: TableColumn<T>[] | undefined;
751
+ rowKey: TableRowKey<T>;
752
+ config: {
753
+ pagination: {
754
+ enabled: true;
755
+ remote: true;
756
+ page: number;
757
+ pageSize: number;
758
+ total: number;
759
+ showSizePicker?: boolean;
760
+ showQuickJumper?: boolean;
761
+ pageSizes?: number[];
762
+ simple?: boolean;
763
+ size?: "small" | "medium" | "large";
764
+ };
765
+ density?: ComponentDensity;
766
+ feedback?: ComponentFeedback;
767
+ locale?: ComponentLocale;
768
+ validateRowKeys?: boolean;
769
+ edit?: boolean | EditMode | EditConfig<T> | undefined;
770
+ actions?: SimpleTableActions<T> | undefined;
771
+ expand?: boolean | ExpandConfig<T, unknown> | undefined;
772
+ selection?: boolean | SelectionConfig<T, unknown> | undefined;
773
+ dynamicRows?: DynamicRowsOptions<T> | (string extends keyof T ? boolean : false) | undefined;
774
+ toolbar?: ToolbarConfig;
775
+ display?: DisplayConfig;
776
+ virtualScroll?: VirtualScrollConfig | boolean;
777
+ summary?: SummaryConfig<T> | undefined;
778
+ columnDrag?: ColumnDragConfig | boolean;
779
+ tree?: TreeConfig | boolean;
780
+ rowDrag?: RowDragConfig | boolean;
781
+ crossPageSelection?: CrossPageSelectionConfig | boolean;
782
+ export?: ExportConfig;
783
+ persistKey?: string;
784
+ formatterConfig?: FormatterConfig;
785
+ error?: ErrorConfig;
786
+ batchActions?: BatchActionsConfig<T> | undefined;
787
+ };
788
+ }>;
789
+ cancel: () => void;
790
+ };
791
+ //#endregion
792
+ //#region src/components/C_Tree/types.d.ts
793
+ type TreeKey = string | number;
794
+ type TreeMode = 'menu' | 'file' | 'org' | 'custom';
795
+ type StatusType = 'success' | 'warning' | 'error' | 'info';
796
+ type ButtonType = 'primary' | 'info' | 'warning' | 'error' | 'default';
797
+ /** Custom fields are allowed; keyField/labelField select the actual identity and label. */
798
+ interface TreeOption$1 extends TreeOption {
799
+ id?: TreeKey;
800
+ children?: TreeOption$1[];
801
+ }
802
+ interface TreeNodeData extends TreeOption$1 {
803
+ name?: string;
804
+ type?: string;
805
+ children?: TreeNodeData[];
806
+ }
807
+ interface DropInfo<T extends object = TreeOption$1> {
808
+ node: T;
809
+ dragNode: T;
810
+ dropPosition: 'before' | 'inside' | 'after';
811
+ event: DragEvent;
812
+ }
813
+ interface StatusConfig {
814
+ field: string;
815
+ values: Record<string | number, {
816
+ text: string;
817
+ type: StatusType;
818
+ }>;
819
+ }
820
+ interface ActionConfig<T extends object = TreeNodeData> {
821
+ key: string;
822
+ text: string;
823
+ icon: string;
824
+ type?: ButtonType;
825
+ show?: (node: T) => boolean;
826
+ confirm?: string;
827
+ }
828
+ interface IconConfig {
829
+ default?: string;
830
+ typeMap?: Record<string, string>;
831
+ colorMap?: Record<string, string>;
832
+ }
833
+ type MaybeArray<T> = T | T[];
834
+ type TreeUpdateHandler<T extends object, A extends TreeUpdateMeta['action']> = (keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T, A>) => void;
835
+ type TreeDragHandler<T extends object> = (info: {
836
+ node: T;
837
+ event: DragEvent;
838
+ }) => void;
839
+ /** 原生功能保持透传,涉及节点的回调由数据源推导业务类型。 */
840
+ type TreeNativeProps<T extends object = TreeNodeData> = Omit<TreeProps, 'data' | 'filter' | 'onLoad' | 'getChildren' | 'renderLabel' | 'renderPrefix' | 'renderSuffix' | 'renderSwitcherIcon' | 'nodeProps' | 'allowDrop' | 'checkOnClick' | 'overrideDefaultNodeClickBehavior' | 'onDrop' | 'onDragenter' | 'onDragleave' | 'onDragend' | 'onDragstart' | 'onDragover' | 'onUpdateExpandedKeys' | 'onUpdate:expandedKeys' | 'onUpdateSelectedKeys' | 'onUpdate:selectedKeys' | 'onUpdateCheckedKeys' | 'onUpdate:checkedKeys' | 'onUpdateIndeterminateKeys' | 'onUpdate:indeterminateKeys'> & {
841
+ filter?: (pattern: string, node: T) => boolean;
842
+ onLoad?: (node: T) => Promise<unknown>;
843
+ getChildren?: (node: T) => unknown;
844
+ renderLabel?: (context: TreeRenderContext<T>) => VNodeChild;
845
+ renderPrefix?: (context: TreeRenderContext<T>) => VNodeChild;
846
+ renderSuffix?: (context: TreeRenderContext<T>) => VNodeChild;
847
+ renderSwitcherIcon?: (context: {
848
+ expanded: boolean;
849
+ selected: boolean;
850
+ option: T;
851
+ }) => VNodeChild;
852
+ nodeProps?: (context: {
853
+ option: T;
854
+ }) => ReturnType<NonNullable<TreeProps['nodeProps']>>;
855
+ allowDrop?: (info: {
856
+ dropPosition: DropInfo['dropPosition'];
857
+ node: T;
858
+ phase: 'drag' | 'drop';
859
+ }) => boolean;
860
+ checkOnClick?: boolean | ((node: T) => boolean);
861
+ overrideDefaultNodeClickBehavior?: (info: {
862
+ option: T;
863
+ }) => ReturnType<NonNullable<TreeProps['overrideDefaultNodeClickBehavior']>>;
864
+ onDrop?: MaybeArray<(info: DropInfo<T>) => void>;
865
+ onDragenter?: MaybeArray<TreeDragHandler<T>>;
866
+ onDragleave?: MaybeArray<TreeDragHandler<T>>;
867
+ onDragend?: MaybeArray<TreeDragHandler<T>>;
868
+ onDragstart?: MaybeArray<TreeDragHandler<T>>;
869
+ onDragover?: MaybeArray<TreeDragHandler<T>>;
870
+ onUpdateExpandedKeys?: MaybeArray<TreeUpdateHandler<T, 'expand' | 'collapse' | 'filter'>>;
871
+ 'onUpdate:expandedKeys'?: MaybeArray<TreeUpdateHandler<T, 'expand' | 'collapse' | 'filter'>>;
872
+ onUpdateSelectedKeys?: MaybeArray<TreeUpdateHandler<T, 'select' | 'unselect'>>;
873
+ 'onUpdate:selectedKeys'?: MaybeArray<TreeUpdateHandler<T, 'select' | 'unselect'>>;
874
+ onUpdateCheckedKeys?: MaybeArray<TreeUpdateHandler<T, 'check' | 'uncheck'>>;
875
+ 'onUpdate:checkedKeys'?: MaybeArray<TreeUpdateHandler<T, 'check' | 'uncheck'>>;
876
+ onUpdateIndeterminateKeys?: MaybeArray<(keys: TreeKey[], options: Array<T | null>) => void>;
877
+ 'onUpdate:indeterminateKeys'?: MaybeArray<(keys: TreeKey[], options: Array<T | null>) => void>;
878
+ };
879
+ interface TreeRenderContext<T extends object = TreeOption$1> {
880
+ option: T;
881
+ checked: boolean;
882
+ selected: boolean;
883
+ }
884
+ interface TreeUpdateMeta<T extends object = TreeOption$1, A extends 'select' | 'unselect' | 'check' | 'uncheck' | 'expand' | 'collapse' | 'filter' = 'select' | 'unselect' | 'check' | 'uncheck' | 'expand' | 'collapse' | 'filter'> {
885
+ node: T | null;
886
+ action: A;
887
+ }
888
+ interface TreeProps$1<T extends object = TreeNodeData> {
889
+ /** Business interfaces need no string index signature; fields are selected by config. */
890
+ data: readonly T[];
891
+ mode?: TreeMode;
892
+ /** Native tree capabilities; explicit wrapper props have priority. */
893
+ treeProps?: TreeNativeProps<T>;
894
+ density?: ComponentDensity;
895
+ keyField?: string;
896
+ labelField?: string;
897
+ childrenField?: string;
898
+ searchPattern?: string;
899
+ searchable?: boolean;
900
+ searchPlaceholder?: string;
901
+ draggable?: boolean;
902
+ showLine?: boolean;
903
+ showToolbar?: boolean;
904
+ addable?: boolean;
905
+ addText?: string;
906
+ refreshable?: boolean;
907
+ iconField?: string;
908
+ iconConfig?: IconConfig;
909
+ statusConfigs?: StatusConfig[];
910
+ actions?: ActionConfig<T>[];
911
+ defaultExpandAll?: boolean;
912
+ defaultExpandedKeys?: TreeKey[];
913
+ defaultSelectedKeys?: TreeKey[];
914
+ defaultCheckedKeys?: TreeKey[];
915
+ expandedKeys?: TreeKey[];
916
+ selectedKeys?: TreeKey[];
917
+ checkedKeys?: TreeKey[];
918
+ }
919
+ interface TreeExpose<T extends object = TreeNodeData> {
920
+ expandAll: () => void;
921
+ collapseAll: () => void;
922
+ selectNode: (key: TreeKey) => void;
923
+ clearSelection: () => void;
924
+ setCheckedKeys: (keys: TreeKey[]) => void;
925
+ clearChecked: () => void;
926
+ getSelectedNode: () => T | null;
927
+ getCheckedData: () => {
928
+ keys: TreeKey[];
929
+ options: Array<T | null>;
930
+ };
931
+ getIndeterminateData: () => {
932
+ keys: TreeKey[];
933
+ options: Array<T | null>;
934
+ };
935
+ scrollTo: TreeInst['scrollTo'];
936
+ /** Vue 公开实例会解包顶层 Ref;这些属性直接读取数组。 */
937
+ expandedKeys: TreeKey[];
938
+ selectedKeys: TreeKey[];
939
+ checkedKeys: TreeKey[];
940
+ }
941
+ interface TreeEmits<T extends object = TreeNodeData> {
942
+ 'update:searchPattern': [pattern: string];
943
+ 'update:expandedKeys': [keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T>];
944
+ 'update:selectedKeys': [keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T>];
945
+ 'update:checkedKeys': [keys: TreeKey[], options: Array<T | null>, meta: TreeUpdateMeta<T>];
946
+ 'node-select': [node: T | null, selectedKeys: TreeKey[]];
947
+ 'node-action': [action: string, node: T];
948
+ 'node-drop': [info: DropInfo<T>];
949
+ 'load-error': [error: unknown, node: T];
950
+ add: [parentNode?: T];
951
+ refresh: [];
952
+ }
953
+ interface TreeSlots<T extends object = TreeOption$1> {
954
+ 'toolbar-actions'?: () => VNodeChild;
955
+ label?: (context: TreeRenderContext<T>) => VNodeChild;
956
+ prefix?: (context: TreeRenderContext<T>) => VNodeChild;
957
+ suffix?: (context: TreeRenderContext<T>) => VNodeChild;
958
+ empty?: () => VNodeChild;
959
+ }
960
+ //#endregion
961
+ //#region src/components/C_Tree/index.vue.d.ts
962
+ declare const __VLS_export$1: <T extends object = TreeNodeData>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal$1<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
963
+ props: vue.PublicProps & __VLS_PrettifyLocal$1<TreeProps$1<T> & {
964
+ onAdd?: ((parentNode?: T | undefined) => any) | undefined;
965
+ onRefresh?: (() => any) | undefined;
966
+ "onLoad-error"?: ((error: unknown, node: T) => any) | undefined;
967
+ "onUpdate:searchPattern"?: ((pattern: string) => any) | undefined;
968
+ "onUpdate:expandedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "unselect" | "expand" | "collapse" | "check" | "uncheck">) => any) | undefined;
969
+ "onUpdate:selectedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "unselect" | "expand" | "collapse" | "check" | "uncheck">) => any) | undefined;
970
+ "onUpdate:checkedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "unselect" | "expand" | "collapse" | "check" | "uncheck">) => any) | undefined;
971
+ "onNode-select"?: ((node: T | null, selectedKeys: TreeKey[]) => any) | undefined;
972
+ "onNode-action"?: ((action: string, node: T) => any) | undefined;
973
+ "onNode-drop"?: ((info: DropInfo<T>) => any) | undefined;
974
+ }> & (typeof globalThis extends {
975
+ __VLS_PROPS_FALLBACK: infer P;
976
+ } ? P : {});
977
+ expose: (exposed: vue.ShallowUnwrapRef<Omit<TreeExpose<T>, "selectedKeys" | "expandedKeys" | "checkedKeys"> & {
978
+ expandedKeys: vue.Ref<TreeKey[]>;
979
+ selectedKeys: vue.Ref<TreeKey[]>;
980
+ checkedKeys: vue.Ref<TreeKey[]>;
981
+ }>) => void;
982
+ attrs: any;
983
+ slots: TreeSlots<T>;
984
+ emit: ((evt: "add", parentNode?: T | undefined) => void) & ((evt: "refresh") => void) & ((evt: "load-error", error: unknown, node: T) => void) & ((evt: "update:searchPattern", pattern: string) => void) & ((evt: "update:expandedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "unselect" | "expand" | "collapse" | "check" | "uncheck">) => void) & ((evt: "update:selectedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "unselect" | "expand" | "collapse" | "check" | "uncheck">) => void) & ((evt: "update:checkedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "unselect" | "expand" | "collapse" | "check" | "uncheck">) => void) & ((evt: "node-select", node: T | null, selectedKeys: TreeKey[]) => void) & ((evt: "node-action", action: string, node: T) => void) & ((evt: "node-drop", info: DropInfo<T>) => void);
985
+ }>) => vue.VNode & {
986
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
987
+ };
988
+ declare const _default$1: typeof __VLS_export$1;
989
+ type __VLS_PrettifyLocal$1<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
990
+ //#endregion
991
+ //#region src/components/C_Tree/data.d.ts
992
+ declare const presetConfigs: Record<TreeMode, Partial<Omit<TreeProps$1, 'data' | 'treeProps' | 'actions'>> & {
993
+ actions?: Omit<ActionConfig, 'show'>[];
994
+ }>;
995
+ //#endregion
996
+ //#region src/components/C_Tree/composables/useTreeOperations.d.ts
997
+ type EmitFn$1<T extends object> = <E extends keyof TreeEmits<T>>(event: E, ...args: TreeEmits<T>[E]) => void;
998
+ /** State coordination only; checking, filtering, keyboard and loading stay native. */
999
+ declare function useTreeOperations<T extends object = TreeNodeData>(props: TreeProps$1<T>, emit: EmitFn$1<T>, slots?: TreeSlots<T>): {
1000
+ internalSearchPattern: Ref<string, string>;
1001
+ expandedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
1002
+ selectedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
1003
+ checkedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
1004
+ isAllExpanded: vue.ComputedRef<boolean>;
1005
+ treeData: vue.ComputedRef<readonly T[]>;
1006
+ currentSearchPattern: vue.WritableComputedRef<string, string>;
1007
+ renderPrefix: (info: TreeRenderContext<T>) => any;
1008
+ renderLabel: (info: TreeRenderContext<T>) => string | number | boolean | void | vue.VNode<vue.RendererNode, vue.RendererElement, {
1009
+ [key: string]: any;
1010
+ }> | vue.VNodeArrayChildren | null;
1011
+ renderSuffix: (info: TreeRenderContext<T>) => any;
1012
+ treeBindings: vue.ComputedRef<TreeProps>;
1013
+ treeRef: vue.ShallowRef<TreeInst | undefined, TreeInst | undefined>;
1014
+ density: vue.ComputedRef<ResolvedComponentDensity>;
1015
+ toggleExpandAll: () => void;
1016
+ handleExpandedKeysChange: (keys: TreeKey[], options?: (T | null)[], meta?: TreeUpdateMeta<T>) => void;
1017
+ handleSelectedKeysChange: (keys: TreeKey[], options?: (T | null)[], meta?: TreeUpdateMeta<T>) => void;
1018
+ handleCheckedKeysChange: (keys: TreeKey[], options?: (T | null)[], meta?: TreeUpdateMeta<T>) => void;
1019
+ handleDrop: (info: DropInfo<T>) => void;
1020
+ handleAdd: () => void;
1021
+ handleRefresh: () => void;
1022
+ expose: Omit<TreeExpose<T>, "selectedKeys" | "expandedKeys" | "checkedKeys"> & {
1023
+ expandedKeys: Ref<TreeKey[]>;
1024
+ selectedKeys: Ref<TreeKey[]>;
1025
+ checkedKeys: Ref<TreeKey[]>;
1026
+ };
1027
+ };
1028
+ //#endregion
1029
+ //#region src/components/C_FormModal/types.d.ts
1030
+ type FormModalMode = 'create' | 'edit';
1031
+ /**
1032
+ * Structural editor contract. It intentionally does not depend on request-core,
1033
+ * so any headless CRUD implementation can drive the modal.
1034
+ */
1035
+ interface FormModalEditor<T extends object = FormRecord> {
1036
+ visible: Ref<boolean>;
1037
+ mode: Ref<FormModalMode>;
1038
+ model: Ref<T | null>;
1039
+ title: Ref<string>;
1040
+ loading: Ref<boolean> | ComputedRef<boolean>;
1041
+ setModel(model: T): void;
1042
+ close(): void;
1043
+ submit(model?: T): Promise<boolean>;
1044
+ }
1045
+ interface FormModalProps<T extends object = FormRecord> {
1046
+ editor: FormModalEditor<T>;
1047
+ options: FormOption<T>[];
1048
+ config?: FormConfig<T>;
1049
+ width?: number | string;
1050
+ createText?: string;
1051
+ saveText?: string;
1052
+ cancelText?: string;
1053
+ closable?: boolean;
1054
+ maskClosable?: boolean;
1055
+ closeOnEsc?: boolean;
1056
+ }
1057
+ interface FormModalEmits<T extends object = FormRecord> {
1058
+ submit: [payload: SubmitEventPayload<T>, saved: boolean];
1059
+ close: [];
1060
+ }
1061
+ //#endregion
1062
+ //#region src/components/C_FormModal/index.vue.d.ts
1063
+ declare const __VLS_export: <T extends object = FormRecord>(__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<{
1064
+ props: vue.PublicProps & __VLS_PrettifyLocal<FormModalProps<T> & {
1065
+ onSubmit?: ((payload: SubmitEventPayload<T>, saved: boolean) => any) | undefined;
1066
+ onClose?: (() => any) | undefined;
1067
+ }> & (typeof globalThis extends {
1068
+ __VLS_PROPS_FALLBACK: infer P;
1069
+ } ? P : {});
1070
+ expose: (exposed: {}) => void;
1071
+ attrs: any;
1072
+ slots: {
1073
+ [x: string]: ((props: any) => any) | undefined;
1074
+ };
1075
+ emit: ((evt: "submit", payload: SubmitEventPayload<T>, saved: boolean) => void) & ((evt: "close") => void);
1076
+ }>) => vue.VNode & {
1077
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
1078
+ };
1079
+ declare const _default: typeof __VLS_export;
1080
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
1081
+ //#endregion
1082
+ //#region src/utils/storage.d.ts
1083
+ /** SSR-safe localStorage helpers. Storage failures never break component state. */
1084
+ /** Store a value. Returns false when storage is unavailable or full. */
1085
+ declare function setItem<T>(key: string, value: T): boolean;
1086
+ /** Read and safely deserialize a value. */
1087
+ declare function getItem<T = unknown>(key: string): T | null;
1088
+ /** Remove one value. Returns whether the storage operation was available. */
1089
+ declare function removeItem(key: string): boolean;
1090
+ /**
1091
+ * Clear localStorage for backward compatibility.
1092
+ * Prefer `removeItem` in components so unrelated application data is preserved.
1093
+ */
1094
+ declare function removeAllItem(): boolean;
1095
+ //#endregion
149
1096
  //#region src/components/C_Form/composables/useFormState.d.ts
150
1097
  type FormEmit = {
151
1098
  (event: 'update:modelValue', model: FormModel): void;
@@ -160,7 +1107,8 @@ declare function useFormState(options: ComputedRef<FormOption[]>, config: Comput
160
1107
  visibleOptions: ComputedRef<FormOption[]>;
161
1108
  initialize: () => void;
162
1109
  handleFieldChange: (field: string) => void;
163
- setFormItemRef: (field: string, instance: FormItemInst | null) => void;
1110
+ setFormItemRef: (field: string, instance: FormItemInst | null) => void; /** 复用 Naive 表单项的实例引用;不把 DOM 查找扩散到 document。 */
1111
+ getFormItemElement: (field: string) => HTMLElement | null;
164
1112
  validate: () => Promise<void>;
165
1113
  validateField: (field: string | string[]) => Promise<void>;
166
1114
  validateStep: (step: number | string) => Promise<boolean>;
@@ -185,6 +1133,8 @@ declare function useFormState(options: ComputedRef<FormOption[]>, config: Comput
185
1133
  asyncOptionsCache: Ref<Record<string, OptionItem[]>, Record<string, OptionItem[]>>;
186
1134
  asyncLoadingMap: Ref<Record<string, boolean>, Record<string, boolean>>;
187
1135
  asyncErrorMap: Ref<Record<string, unknown>, Record<string, unknown>>;
1136
+ getDictionaryOptions: (key: string) => readonly DictionaryOption[];
1137
+ isDictionaryLoading: (key: string) => boolean;
188
1138
  reloadOptions: (field?: string) => Promise<void>;
189
1139
  };
190
1140
  //#endregion
@@ -244,4 +1194,4 @@ type DynamicFormStateType = DynamicFormController;
244
1194
  */
245
1195
  declare const DYNAMIC_FORM_STATE_KEY: unique symbol;
246
1196
  //#endregion
247
- export { unregisterRenderer as C, registerRenderer as S, FormRendererContext as _, UseFormDirtyReturn as a, UseFormRendererOptions as b, UseCFormOptions as c, defineFormOptions as d, useCForm as f, FormRenderer as g, FORM_RENDERER_REGISTRY_KEY as h, useDynamicFormState as i, UseCFormReturn as l, ComponentMap as m, DynamicFormStateType as n, useFormDirty as o, _default as p, FIELD_TYPE_OPTIONS as r, useFormState as s, DYNAMIC_FORM_STATE_KEY as t, defineFormConfig as u, FormRendererRegistry as v, useFormRenderer as w, createFormRendererRegistry as x, RendererProps as y };
1197
+ export { HighlightAPI as $, TreeNativeProps as A, useTableQuery as B, IconConfig as C, TreeExpose as D, TreeEmits as E, TreeSlots as F, useTableExpand as G, useCellEdit as H, TreeUpdateMeta as I, useTableColumns as J, useTableManager as K, TableQueryContext as L, TreeOption$1 as M, TreeProps$1 as N, TreeKey as O, TreeRenderContext as P, _default$2 as Q, TableQueryResult as R, DropInfo as S, useComponentLocale as St, StatusType as T, usePagination as U, useModalEdit as V, useTableActions as W, defineTableConfig as X, defineTableColumns as Y, validateTableRowKeys as Z, useTreeOperations as _, createFormRendererRegistry as _t, UseFormDirtyReturn as a, UseCFormReturn as at, ActionConfig as b, useFormRenderer as bt, getItem as c, useCForm as ct, setItem as d, FORM_RENDERER_REGISTRY_KEY as dt, HighlightPluginOptions as et, _default as f, FormRenderer as ft, FormModalProps as g, UseFormRendererOptions as gt, FormModalMode as h, RendererProps as ht, useDynamicFormState as i, UseCFormOptions as it, TreeNodeData as j, TreeMode as k, removeAllItem as l, _default$3 as lt, FormModalEmits as m, FormRendererRegistry as mt, DynamicFormStateType as n, setupHighlight as nt, useFormDirty as o, defineFormConfig as ot, FormModalEditor as p, FormRendererContext as pt, useRowEdit as q, FIELD_TYPE_OPTIONS as r, useHighlight as rt, useFormState as s, defineFormOptions as st, DYNAMIC_FORM_STATE_KEY as t, createHighlight as tt, removeItem as u, ComponentMap as ut, presetConfigs as v, registerRenderer as vt, StatusConfig as w, ButtonType as x, useComponentFeedback as xt, _default$1 as y, unregisterRenderer as yt, UseTableQueryOptions as z };