@robot-admin/naive-ui-components 0.22.1 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +7 -5
- package/README_EN.md +7 -5
- package/dist/C_ActionBar.d.cts +2 -1
- package/dist/C_ActionBar.d.ts +2 -1
- package/dist/C_AntV2.cjs +3 -3
- package/dist/C_AntV2.js +3 -3
- package/dist/C_BatchResult.cjs +1 -0
- package/dist/C_BatchResult.css +32 -0
- package/dist/C_BatchResult.d.cts +2 -0
- package/dist/C_BatchResult.d.ts +2 -0
- package/dist/C_BatchResult.js +1 -0
- package/dist/C_BatchResult2.cjs +1 -0
- package/dist/C_BatchResult2.js +1 -0
- package/dist/C_Breadcrumb.d.cts +2 -2
- package/dist/C_Breadcrumb.d.ts +1 -1
- package/dist/C_Cascade.d.cts +1 -1
- package/dist/C_Cascade.d.ts +1 -1
- package/dist/C_Chat.d.cts +1 -1
- package/dist/C_Chat.d.ts +1 -1
- package/dist/C_City.d.cts +1 -1
- package/dist/C_City.d.ts +1 -1
- package/dist/C_Code.d.cts +1 -1
- package/dist/C_Code.d.ts +1 -1
- package/dist/C_ContextMenu.d.cts +1 -1
- package/dist/C_ContextMenu.d.ts +1 -1
- package/dist/C_DataPicker.cjs +1 -0
- package/dist/C_DataPicker.css +54 -0
- package/dist/C_DataPicker.d.cts +2 -0
- package/dist/C_DataPicker.d.ts +5 -0
- package/dist/C_DataPicker.js +1 -0
- package/dist/C_DataPicker2.cjs +1 -0
- package/dist/C_DataPicker2.js +1 -0
- package/dist/C_Date.d.cts +1 -1
- package/dist/C_Date.d.ts +1 -1
- package/dist/C_Density.cjs +1 -0
- package/dist/C_Density.css +1 -0
- package/dist/C_Density.d.cts +3 -0
- package/dist/C_Density.d.ts +3 -0
- package/dist/C_Density.js +1 -0
- package/dist/C_Density2.cjs +1 -0
- package/dist/C_Density2.js +1 -0
- package/dist/C_Editor.d.cts +1 -1
- package/dist/C_Editor.d.ts +1 -1
- package/dist/C_ErrorSummary.cjs +1 -0
- package/dist/C_ErrorSummary.css +29 -0
- package/dist/C_ErrorSummary.d.cts +3 -0
- package/dist/C_ErrorSummary.d.ts +3 -0
- package/dist/C_ErrorSummary.js +1 -0
- package/dist/C_ErrorSummary2.cjs +1 -0
- package/dist/C_ErrorSummary2.js +1 -0
- package/dist/C_Form.base.css +150 -148
- package/dist/C_Form.css +151 -253
- package/dist/C_Form.d.cts +1 -1
- package/dist/C_Form.d.ts +19 -2
- package/dist/C_FormModal.css +1 -2
- package/dist/C_FormModal.d.cts +1 -1
- package/dist/C_FormModal.d.ts +17 -2
- package/dist/C_FormSearch.cjs +1 -1
- package/dist/C_FormSearch.css +124 -52
- package/dist/C_FormSearch.d.cts +3 -3
- package/dist/C_FormSearch.d.ts +5 -4
- package/dist/C_FormSearch.js +1 -1
- package/dist/C_FormulaEditor.d.cts +1 -1
- package/dist/C_FormulaEditor.d.ts +1 -1
- package/dist/C_Guide.d.cts +1 -1
- package/dist/C_Guide.d.ts +1 -1
- package/dist/C_Icon.d.cts +1 -1
- package/dist/C_Icon.d.ts +1 -1
- package/dist/C_Language.d.cts +1 -1
- package/dist/C_Language.d.ts +1 -1
- package/dist/C_Loading.d.cts +1 -1
- package/dist/C_Loading.d.ts +1 -1
- package/dist/C_Login.d.cts +1 -1
- package/dist/C_Login.d.ts +1 -1
- package/dist/C_Markdown.d.cts +1 -1
- package/dist/C_Markdown.d.ts +1 -1
- package/dist/C_Menu.d.cts +2 -2
- package/dist/C_Menu.d.ts +1 -1
- package/dist/C_OrgChart.d.cts +1 -1
- package/dist/C_OrgChart.d.ts +1 -1
- package/dist/C_Progress.d.cts +1 -1
- package/dist/C_Progress.d.ts +1 -1
- package/dist/C_SectionNav.cjs +1 -0
- package/dist/C_SectionNav.css +46 -0
- package/dist/C_SectionNav.d.cts +2 -0
- package/dist/C_SectionNav.d.ts +2 -0
- package/dist/C_SectionNav.js +1 -0
- package/dist/C_SectionNav2.cjs +1 -0
- package/dist/C_SectionNav2.js +1 -0
- package/dist/C_Skeleton.d.cts +1 -1
- package/dist/C_Skeleton.d.ts +1 -1
- package/dist/C_Steps.d.cts +1 -1
- package/dist/C_Steps.d.ts +1 -1
- package/dist/C_Table.base.css +258 -256
- package/dist/C_Table.cjs +1 -1
- package/dist/C_Table.css +109 -1283
- package/dist/C_Table.d.cts +2 -1
- package/dist/C_Table.d.ts +9 -8
- package/dist/C_Table.js +1 -1
- package/dist/C_Table2.cjs +3 -0
- package/dist/C_Table2.js +3 -0
- package/dist/C_Tabs.cjs +1 -1
- package/dist/C_Tabs.d.cts +1 -1
- package/dist/C_Tabs.d.ts +1 -1
- package/dist/C_Tabs.js +1 -1
- package/dist/C_TagsView.d.cts +1 -1
- package/dist/C_Theme.d.cts +1 -1
- package/dist/C_Theme.d.ts +1 -1
- package/dist/C_Timeline.d.cts +1 -1
- package/dist/C_Timeline.d.ts +1 -1
- package/dist/C_Transfer.d.cts +1 -1
- package/dist/C_Transfer.d.ts +1 -1
- package/dist/C_Tree.d.cts +1 -1
- package/dist/C_Tree.d.ts +9 -8
- package/dist/C_Upload.d.cts +1 -1
- package/dist/C_Upload.d.ts +1 -1
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/Card.cjs +1 -1
- package/dist/Card.js +1 -1
- package/dist/Steps.cjs +1 -1
- package/dist/Steps.js +1 -1
- package/dist/Tabs.cjs +1 -1
- package/dist/Tabs.js +1 -1
- package/dist/batchPatch.cjs +1 -0
- package/dist/batchPatch.d.cts +26 -0
- package/dist/batchPatch.d.ts +26 -0
- package/dist/batchPatch.js +1 -0
- package/dist/config.cjs +1 -1
- package/dist/config.d.cts +4 -1
- package/dist/config.d.ts +6 -2
- package/dist/config.js +1 -1
- package/dist/config2.d.ts +1 -1
- package/dist/constants.d.cts +3 -3
- package/dist/constants.d.ts +3 -3
- package/dist/constants2.d.cts +402 -173
- package/dist/constants2.d.ts +402 -173
- package/dist/constants3.d.cts +4 -4
- package/dist/constants3.d.ts +4 -4
- package/dist/constants4.d.cts +173 -402
- package/dist/constants4.d.ts +173 -402
- package/dist/constants5.d.cts +2 -2
- package/dist/constants5.d.ts +2 -2
- package/dist/contracts.d.ts +24 -0
- package/dist/data.cjs +1 -1
- package/dist/data.d.cts +5 -108
- package/dist/data.d.ts +5 -108
- package/dist/data.js +1 -1
- package/dist/data2.cjs +1 -1
- package/dist/data2.d.cts +108 -0
- package/dist/data2.d.ts +108 -0
- package/dist/data2.js +1 -1
- package/dist/data3.cjs +1 -0
- package/dist/data3.js +1 -0
- package/dist/dateRange.d.cts +108 -13
- package/dist/dateRange.d.ts +110 -14
- package/dist/density.d.ts +15 -0
- package/dist/dictionary.cjs +1 -0
- package/dist/dictionary.d.cts +38 -0
- package/dist/dictionary.d.ts +38 -0
- package/dist/dictionary.js +1 -0
- package/dist/helpers.cjs +1 -1
- package/dist/helpers.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +63 -52
- package/dist/index.d.ts +71 -57
- package/dist/index.js +1 -1
- package/dist/index.vue.d.cts +5 -5
- package/dist/index.vue.d.ts +5 -5
- package/dist/index10.vue.d.cts +37 -80
- package/dist/index10.vue.d.ts +77 -53
- package/dist/index11.vue.d.cts +77 -53
- package/dist/index11.vue.d.ts +1117 -45
- package/dist/index12.vue.d.cts +1117 -45
- package/dist/index12.vue.d.ts +17 -128
- package/dist/index13.vue.d.cts +17 -128
- package/dist/index13.vue.d.ts +57 -53
- package/dist/index14.vue.d.cts +57 -53
- package/dist/index14.vue.d.ts +16 -25
- package/dist/index15.vue.d.cts +16 -25
- package/dist/index15.vue.d.ts +52 -12
- package/dist/index16.vue.d.cts +52 -12
- package/dist/index16.vue.d.ts +13 -129
- package/dist/index17.vue.d.cts +13 -129
- package/dist/index17.vue.d.ts +123 -74
- package/dist/index18.vue.d.cts +123 -74
- package/dist/index18.vue.d.ts +48 -71
- package/dist/index19.vue.d.cts +40 -91
- package/dist/index19.vue.d.ts +36 -96
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +38 -47
- package/dist/index20.vue.d.ts +13 -48
- package/dist/index21.vue.d.cts +12 -96
- package/dist/index21.vue.d.ts +25 -95
- package/dist/index22.vue.d.cts +20 -32
- package/dist/index22.vue.d.ts +75 -37
- package/dist/index23.vue.d.cts +77 -13
- package/dist/index23.vue.d.ts +71 -13
- package/dist/index24.vue.d.cts +1 -1
- package/dist/index25.vue.d.cts +116 -90
- package/dist/index25.vue.d.ts +116 -90
- package/dist/index26.vue.d.cts +94 -59
- package/dist/index26.vue.d.ts +94 -59
- package/dist/index27.vue.d.cts +75 -0
- package/dist/index27.vue.d.ts +75 -0
- package/dist/index28.vue.d.cts +103 -0
- package/dist/index28.vue.d.ts +103 -0
- package/dist/index29.vue.d.cts +105 -0
- package/dist/index29.vue.d.ts +105 -0
- package/dist/index3.vue.d.cts +5 -5
- package/dist/index3.vue.d.ts +5 -5
- package/dist/index30.vue.d.cts +28 -0
- package/dist/index30.vue.d.ts +28 -0
- package/dist/index4.vue.d.cts +19 -128
- package/dist/index4.vue.d.ts +17 -34
- package/dist/index5.vue.d.cts +127 -35
- package/dist/index5.vue.d.ts +30 -19
- package/dist/index6.vue.d.cts +30 -19
- package/dist/index6.vue.d.ts +22 -118
- package/dist/index7.vue.d.cts +22 -118
- package/dist/index7.vue.d.ts +112 -18
- package/dist/index8.vue.d.cts +112 -18
- package/dist/index8.vue.d.ts +24 -35
- package/dist/index9.vue.d.cts +24 -35
- package/dist/index9.vue.d.ts +37 -80
- package/dist/mapUtils.d.cts +4 -4
- package/dist/mapUtils.d.ts +4 -4
- package/dist/numberCodec.cjs +1 -0
- package/dist/numberCodec.d.cts +25 -0
- package/dist/numberCodec.d.ts +25 -0
- package/dist/numberCodec.js +1 -0
- package/dist/observer.cjs +1 -0
- package/dist/observer.js +1 -0
- package/dist/presets.d.cts +3 -66
- package/dist/presets.d.ts +3 -66
- package/dist/resolver.cjs +1 -1
- package/dist/resolver.d.cts +1 -1
- package/dist/resolver.d.ts +1 -1
- package/dist/resolver.js +1 -1
- package/dist/serializeSearch.cjs +1 -0
- package/dist/serializeSearch.js +1 -0
- package/dist/style.css +547 -308
- package/dist/types.d.cts +60 -103
- package/dist/types.d.ts +62 -52
- package/dist/types2.d.cts +104 -51
- package/dist/types2.d.ts +56 -0
- package/dist/types3.d.cts +56 -0
- package/dist/useCollapsePanel.d.cts +6 -6
- package/dist/useCollapsePanel.d.ts +6 -6
- package/dist/useComponentLocale.cjs +1 -1
- package/dist/useComponentLocale.js +1 -1
- package/dist/useCropperCore.d.cts +13 -13
- package/dist/useCropperCore.d.ts +13 -13
- package/dist/useDataResource.cjs +1 -0
- package/dist/useDataResource.js +1 -0
- package/dist/useDictionary.cjs +1 -0
- package/dist/useDictionary.js +1 -0
- package/dist/useDynamicFormState.d.cts +960 -10
- package/dist/useDynamicFormState.d.ts +951 -11
- package/dist/useEdgeInteraction.d.cts +3 -3
- package/dist/useEdgeInteraction.d.ts +3 -3
- package/dist/useFormArray.cjs +1 -0
- package/dist/useFormArray.d.cts +69 -0
- package/dist/useFormArray.d.ts +69 -0
- package/dist/useFormArray.js +1 -0
- package/dist/useFormConfig.d.cts +14 -0
- package/dist/useFormConfig.d.ts +17 -38
- package/dist/useGridWidth.cjs +1 -0
- package/dist/useGridWidth.js +1 -0
- package/dist/useInfiniteScroll.d.cts +3 -3
- package/dist/useInfiniteScroll.d.ts +3 -3
- package/dist/useQRCode.d.cts +5 -5
- package/dist/useQRCode.d.ts +5 -5
- package/dist/useSignatureHistory.d.cts +7 -7
- package/dist/useSignatureHistory.d.ts +7 -7
- package/dist/useSplitResize.d.cts +9 -9
- package/dist/useSplitResize.d.ts +9 -9
- package/dist/useTableGlobalConfig.cjs +1 -0
- package/dist/useTableGlobalConfig.js +1 -0
- package/dist/useTableQuery.cjs +1 -3
- package/dist/useTableQuery.js +1 -3
- package/dist/useWorkflowValidation.d.cts +5 -5
- package/dist/useWorkflowValidation.d.ts +5 -5
- package/dist/validation.cjs +1 -0
- package/dist/validation.d.cts +18 -0
- package/dist/validation.d.ts +18 -0
- package/dist/validation.js +1 -0
- package/dist/verification.d.cts +4 -4
- package/dist/verification.d.ts +5 -5
- package/dist/workflows.cjs +1 -0
- package/dist/workflows.d.cts +2 -0
- package/dist/workflows.d.ts +2 -0
- package/dist/workflows.js +1 -0
- package/docs/components.en.md +13 -1
- package/docs/components.md +13 -1
- package/docs/guides/batch-results.md +47 -0
- package/docs/guides/data-picker.md +65 -0
- package/docs/guides/data-workflows.md +123 -0
- package/docs/guides/form-density.en.md +39 -0
- package/docs/guides/form-density.md +39 -0
- package/docs/guides/search-workflows.md +164 -0
- package/package.json +21 -1
- package/dist/C_FormSearch2.cjs +0 -1
- package/dist/C_FormSearch2.js +0 -1
- package/dist/useTableQuery.d.cts +0 -1957
- 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
|
} & {
|
|
92
|
+
onSubmit?: ((payload: SubmitEventPayload<T>) => any) | undefined;
|
|
75
93
|
"onUpdate:modelValue"?: ((model: T) => any) | undefined;
|
|
76
94
|
"onValidate-error"?: ((errors: unknown) => any) | undefined;
|
|
77
|
-
onSubmit?: ((payload: SubmitEventPayload<T>) => any) | undefined;
|
|
78
95
|
"onValidate-success"?: ((model: T) => 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: "
|
|
131
|
+
emit: ((evt: "submit", payload: SubmitEventPayload<T>) => void) & ((evt: "update:modelValue", model: T) => void) & ((evt: "validate-error", errors: unknown) => void) & ((evt: "validate-success", model: T) => 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
|
+
onRefresh?: (() => any) | undefined;
|
|
965
|
+
onAdd?: ((parentNode?: T | undefined) => any) | undefined;
|
|
966
|
+
"onLoad-error"?: ((error: unknown, node: T) => any) | undefined;
|
|
967
|
+
"onUpdate:expandedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "expand" | "collapse" | "unselect" | "check" | "uncheck">) => any) | undefined;
|
|
968
|
+
"onNode-drop"?: ((info: DropInfo<T>) => any) | undefined;
|
|
969
|
+
"onUpdate:searchPattern"?: ((pattern: string) => any) | undefined;
|
|
970
|
+
"onUpdate:selectedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "expand" | "collapse" | "unselect" | "check" | "uncheck">) => any) | undefined;
|
|
971
|
+
"onUpdate:checkedKeys"?: ((keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "expand" | "collapse" | "unselect" | "check" | "uncheck">) => any) | undefined;
|
|
972
|
+
"onNode-select"?: ((node: T | null, selectedKeys: TreeKey[]) => any) | undefined;
|
|
973
|
+
"onNode-action"?: ((action: string, node: 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: "refresh") => void) & ((evt: "add", parentNode?: T | undefined) => void) & ((evt: "load-error", error: unknown, node: T) => void) & ((evt: "update:expandedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "expand" | "collapse" | "unselect" | "check" | "uncheck">) => void) & ((evt: "node-drop", info: DropInfo<T>) => void) & ((evt: "update:searchPattern", pattern: string) => void) & ((evt: "update:selectedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "expand" | "collapse" | "unselect" | "check" | "uncheck">) => void) & ((evt: "update:checkedKeys", keys: TreeKey[], options: (T | null)[], meta: TreeUpdateMeta<T, "filter" | "select" | "expand" | "collapse" | "unselect" | "check" | "uncheck">) => void) & ((evt: "node-select", node: T | null, selectedKeys: TreeKey[]) => void) & ((evt: "node-action", action: string, node: 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 {
|
|
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 };
|