@robot-admin/naive-ui-components 0.17.3 → 0.17.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/C_Form.cjs +1 -1
  3. package/dist/C_Form.js +1 -1
  4. package/dist/C_FormModal2.cjs +1 -1
  5. package/dist/C_FormModal2.js +1 -1
  6. package/dist/C_FormSearch.css +52 -52
  7. package/dist/C_FormSearch2.cjs +1 -1
  8. package/dist/C_FormSearch2.js +1 -1
  9. package/dist/C_Table.base.css +155 -145
  10. package/dist/C_Table.css +155 -145
  11. package/dist/C_Table.d.cts +1 -1
  12. package/dist/C_Table.d.ts +1 -1
  13. package/dist/C_Time.css +4 -4
  14. package/dist/C_Time2.cjs +1 -1
  15. package/dist/C_Time2.js +1 -1
  16. package/dist/C_Tree.css +23 -23
  17. package/dist/C_Tree2.cjs +1 -1
  18. package/dist/C_Tree2.js +1 -1
  19. package/dist/C_WorkFlow.css +39 -39
  20. package/dist/C_WorkFlow2.cjs +1 -1
  21. package/dist/C_WorkFlow2.js +1 -1
  22. package/dist/constants.d.cts +1 -1
  23. package/dist/constants.d.ts +1 -1
  24. package/dist/constants3.d.cts +1 -1
  25. package/dist/constants3.d.ts +1 -1
  26. package/dist/constants4.d.cts +6 -6
  27. package/dist/constants4.d.ts +6 -6
  28. package/dist/constants5.d.cts +2 -2
  29. package/dist/constants5.d.ts +2 -2
  30. package/dist/data.d.cts +8 -8
  31. package/dist/data.d.ts +8 -8
  32. package/dist/formValidation.cjs +1 -0
  33. package/dist/formValidation.js +1 -0
  34. package/dist/helpers.cjs +1 -1
  35. package/dist/helpers.js +1 -1
  36. package/dist/index.cjs +1 -1
  37. package/dist/index.d.cts +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.js +1 -1
  40. package/dist/index.vue.d.cts +2 -2
  41. package/dist/index.vue.d.ts +2 -2
  42. package/dist/index10.vue.d.cts +5 -5
  43. package/dist/index10.vue.d.ts +2 -2
  44. package/dist/index11.vue.d.cts +2 -2
  45. package/dist/index11.vue.d.ts +3 -3
  46. package/dist/index12.vue.d.cts +3 -3
  47. package/dist/index12.vue.d.ts +2 -2
  48. package/dist/index13.vue.d.cts +2 -2
  49. package/dist/index13.vue.d.ts +3 -3
  50. package/dist/index14.vue.d.cts +3 -3
  51. package/dist/index14.vue.d.ts +8 -8
  52. package/dist/index15.vue.d.cts +8 -8
  53. package/dist/index15.vue.d.ts +1 -1
  54. package/dist/index16.vue.d.cts +1 -1
  55. package/dist/index17.vue.d.ts +1 -1
  56. package/dist/index18.vue.d.cts +1 -1
  57. package/dist/index18.vue.d.ts +5 -5
  58. package/dist/index19.vue.d.cts +5 -5
  59. package/dist/index19.vue.d.ts +5 -4
  60. package/dist/index2.vue.d.cts +2 -2
  61. package/dist/index2.vue.d.ts +2 -2
  62. package/dist/index20.vue.d.cts +2 -2
  63. package/dist/index20.vue.d.ts +2 -2
  64. package/dist/index21.vue.d.cts +2 -2
  65. package/dist/index21.vue.d.ts +2 -2
  66. package/dist/index22.vue.d.cts +2 -2
  67. package/dist/index22.vue.d.ts +2 -2
  68. package/dist/index25.vue.d.cts +4 -4
  69. package/dist/index25.vue.d.ts +4 -4
  70. package/dist/index26.vue.d.cts +1 -1
  71. package/dist/index26.vue.d.ts +1 -1
  72. package/dist/index27.vue.d.cts +4 -4
  73. package/dist/index27.vue.d.ts +4 -4
  74. package/dist/index28.vue.d.cts +2 -2
  75. package/dist/index28.vue.d.ts +2 -2
  76. package/dist/index3.vue.d.cts +4 -4
  77. package/dist/index3.vue.d.ts +4 -4
  78. package/dist/index4.vue.d.cts +5 -4
  79. package/dist/index8.vue.d.ts +3 -3
  80. package/dist/index9.vue.d.cts +3 -3
  81. package/dist/index9.vue.d.ts +5 -5
  82. package/dist/mapUtils.d.cts +2 -2
  83. package/dist/mapUtils.d.ts +2 -2
  84. package/dist/style.css +274 -264
  85. package/dist/useCalendarEvents.d.cts +1 -1
  86. package/dist/useCalendarEvents.d.ts +1 -1
  87. package/dist/useCollapsePanel.d.cts +4 -4
  88. package/dist/useCollapsePanel.d.ts +4 -4
  89. package/dist/useCropperCore.d.cts +6 -6
  90. package/dist/useCropperCore.d.ts +6 -6
  91. package/dist/useDraggableLayout.d.cts +6 -6
  92. package/dist/useDraggableLayout.d.ts +6 -6
  93. package/dist/useDynamicFormState.d.cts +4 -3
  94. package/dist/useDynamicFormState.d.ts +4 -3
  95. package/dist/useEdgeInteraction.d.cts +2 -2
  96. package/dist/useEdgeInteraction.d.ts +2 -2
  97. package/dist/useInfiniteScroll.d.cts +2 -2
  98. package/dist/useInfiniteScroll.d.ts +2 -2
  99. package/dist/useQRCode.d.cts +3 -3
  100. package/dist/useQRCode.d.ts +3 -3
  101. package/dist/useSearchState.d.cts +2 -2
  102. package/dist/useSearchState.d.ts +2 -2
  103. package/dist/useSignatureHistory.d.cts +4 -4
  104. package/dist/useSignatureHistory.d.ts +4 -4
  105. package/dist/useSplitResize.d.cts +11 -11
  106. package/dist/useSplitResize.d.ts +11 -11
  107. package/dist/useTableQuery.cjs +3 -3
  108. package/dist/useTableQuery.d.cts +535 -509
  109. package/dist/useTableQuery.d.ts +535 -509
  110. package/dist/useTableQuery.js +3 -3
  111. package/dist/useTimeSelection.d.cts +11 -6
  112. package/dist/useTimeSelection.d.ts +11 -6
  113. package/dist/useWorkflowValidation.d.cts +5 -5
  114. package/dist/useWorkflowValidation.d.ts +5 -5
  115. package/dist/verification.d.cts +4 -4
  116. package/dist/verification.d.ts +4 -4
  117. package/docs/guides/usage.en.md +16 -0
  118. package/docs/guides/usage.md +38 -0
  119. package/package.json +2 -1
@@ -278,6 +278,67 @@ interface UseCrossPageSelectionReturn<T extends object = DataRecord> {
278
278
  /** Preserve selected identities and loaded row snapshots across local or remote pages. */
279
279
  declare function useCrossPageSelection<T extends object = DataRecord>(options: UseCrossPageSelectionOptions<T>): UseCrossPageSelectionReturn<T>;
280
280
  //#endregion
281
+ //#region src/components/C_Table/composables/useTableGlobalConfig.d.ts
282
+ type FormatterType = 'date' | 'datetime' | 'currency' | 'percent' | 'enum' | 'number';
283
+ interface FormatterConfig {
284
+ /** 日期格式 */
285
+ date?: {
286
+ format?: string;
287
+ };
288
+ /** 日期时间格式 */
289
+ datetime?: {
290
+ format?: string;
291
+ };
292
+ /** 货币格式 */
293
+ currency?: {
294
+ prefix?: string;
295
+ suffix?: string;
296
+ precision?: number;
297
+ };
298
+ /** 百分比格式 */
299
+ percent?: {
300
+ precision?: number;
301
+ suffix?: string;
302
+ };
303
+ /** 数字格式(千分位) */
304
+ number?: {
305
+ precision?: number;
306
+ };
307
+ }
308
+ /** 列级 formatter 配置 */
309
+ interface ColumnFormatter {
310
+ type: FormatterType;
311
+ /** enum mapping:{ male: '男', female: '女' } */
312
+ mapping?: Record<string, string>;
313
+ /** 自定义格式化函数(优先级最高) */
314
+ fn?: (value: unknown, row: DataRecord) => string;
315
+ /** 覆盖全局格式配置 */
316
+ config?: Record<string, unknown>;
317
+ }
318
+ interface TableGlobalConfig {
319
+ /** 任意 C_Table 配置的应用级默认值。 */
320
+ defaults?: TableConfig;
321
+ /** 表格显示默认值 */
322
+ display?: DisplayConfig;
323
+ /** 默认分页条数 */
324
+ pageSize?: number;
325
+ /** 空状态文案 */
326
+ emptyText?: string;
327
+ /** 全局格式化配置 */
328
+ formatter?: FormatterConfig;
329
+ /** 列配置持久化前缀 */
330
+ persistPrefix?: string;
331
+ /** 默认导出文件名 */
332
+ exportFilename?: string;
333
+ }
334
+ declare const TABLE_GLOBAL_CONFIG_KEY: InjectionKey<TableGlobalConfig>;
335
+ /** 根据 ColumnFormatter 配置格式化单元格值 */
336
+ declare function applyFormatter(value: unknown, row: DataRecord, formatter: ColumnFormatter, globalConfig?: FormatterConfig): string;
337
+ /** 在组件内获取全局配置(自动合并默认值) */
338
+ declare function useTableGlobalConfig(): TableGlobalConfig;
339
+ /** 合并全局配置到 TableConfig(局部 > 全局 > 默认) */
340
+ declare function mergeGlobalConfig(local: TableConfig, global: TableGlobalConfig): TableConfig;
341
+ //#endregion
281
342
  //#region src/components/C_Table/composables/useTableExport.d.ts
282
343
  interface ExportConfig {
283
344
  /** Data scope used by C_Table; source preserves the legacy loaded-source behavior. */
@@ -582,118 +643,296 @@ declare const createEditModeChecker: (config: ResolvedConfig) => {
582
643
  isCellEditMode: () => boolean;
583
644
  };
584
645
  //#endregion
585
- //#region src/components/C_Table/composables/useTableGlobalConfig.d.ts
586
- type FormatterType = 'date' | 'datetime' | 'currency' | 'percent' | 'enum' | 'number';
587
- interface FormatterConfig {
588
- /** 日期格式 */
589
- date?: {
590
- format?: string;
591
- };
592
- /** 日期时间格式 */
593
- datetime?: {
594
- format?: string;
595
- };
596
- /** 货币格式 */
597
- currency?: {
598
- prefix?: string;
599
- suffix?: string;
600
- precision?: number;
601
- };
602
- /** 百分比格式 */
603
- percent?: {
604
- precision?: number;
605
- suffix?: string;
606
- };
607
- /** 数字格式(千分位) */
608
- number?: {
609
- precision?: number;
610
- };
611
- }
612
- /** 列级 formatter 配置 */
613
- interface ColumnFormatter {
614
- type: FormatterType;
615
- /** enum mapping:{ male: '男', female: '女' } */
616
- mapping?: Record<string, string>;
617
- /** 自定义格式化函数(优先级最高) */
618
- fn?: (value: unknown, row: DataRecord) => string;
619
- /** 覆盖全局格式配置 */
620
- config?: Record<string, unknown>;
646
+ //#region src/components/C_Table/composables/useRowEdit.d.ts
647
+ /** 行级校验错误 */
648
+ interface RowValidationError {
649
+ field: string;
650
+ message: string;
621
651
  }
622
- interface TableGlobalConfig {
623
- /** 任意 C_Table 配置的应用级默认值。 */
624
- defaults?: TableConfig;
625
- /** 表格显示默认值 */
626
- display?: DisplayConfig;
627
- /** 默认分页条数 */
628
- pageSize?: number;
629
- /** 空状态文案 */
630
- emptyText?: string;
631
- /** 全局格式化配置 */
632
- formatter?: FormatterConfig;
633
- /** 列配置持久化前缀 */
634
- persistPrefix?: string;
635
- /** 默认导出文件名 */
636
- exportFilename?: string;
652
+ /**
653
+ * 行编辑配置选项
654
+ */
655
+ interface RowEditOptions {
656
+ data: () => DataRecord[];
657
+ rowKey: (row: DataRecord) => DataTableRowKey;
658
+ onSave?: (rowData: DataRecord, rowIndex: number, originalKey?: DataTableRowKey) => void | Promise<void>;
659
+ onCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
660
+ /** 列配置(用于提取校验规则) */
661
+ columns?: () => TableColumn[];
637
662
  }
638
- declare const TABLE_GLOBAL_CONFIG_KEY: InjectionKey<TableGlobalConfig>;
639
- /** 根据 ColumnFormatter 配置格式化单元格值 */
640
- declare function applyFormatter(value: unknown, row: DataRecord, formatter: ColumnFormatter, globalConfig?: FormatterConfig): string;
641
- /** 在组件内获取全局配置(自动合并默认值) */
642
- declare function useTableGlobalConfig(): TableGlobalConfig;
643
- /** 合并全局配置到 TableConfig(局部 > 全局 > 默认) */
644
- declare function mergeGlobalConfig(local: TableConfig, global: TableGlobalConfig): TableConfig;
663
+ /**
664
+ * 可编辑行组合函数,提供表格整行的编辑功能
665
+ */
666
+ declare function useRowEdit(options: RowEditOptions): {
667
+ editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
668
+ editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
669
+ isSaving: vue.Ref<boolean, boolean>;
670
+ isEditingRow: (rowKey: DataTableRowKey) => boolean;
671
+ startEditRow: (rowKey: DataTableRowKey) => boolean;
672
+ cancelEditRow: () => Promise<void>;
673
+ saveEditRow: () => Promise<{
674
+ updatedData: DataRecord;
675
+ rowIndex: number;
676
+ } | undefined>;
677
+ validateRow: () => Promise<boolean>;
678
+ validationErrors: vue.Ref<{
679
+ field: string;
680
+ message: string;
681
+ }[], RowValidationError[] | {
682
+ field: string;
683
+ message: string;
684
+ }[]>;
685
+ getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
686
+ updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
687
+ findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
688
+ invalidate: () => void;
689
+ };
645
690
  //#endregion
646
- //#region src/components/C_Table/types.d.ts
647
- type RefLike<T> = {
648
- value: T;
649
- } | T;
650
- type MaybeRefLike<T> = RefLike<T> | MaybeRef<T>;
651
- type DataRecord = Record<string, unknown>;
652
- type TableRowKey<T extends object = DataRecord> = Extract<keyof T, string> | ((row: T) => DataTableRowKey);
653
- interface TableRowKeyIssue<T extends object = DataRecord> {
654
- type: 'missing' | 'duplicate' | 'error';
655
- row: T;
656
- index: number;
657
- key?: DataTableRowKey;
658
- firstIndex?: number;
659
- cause?: unknown;
691
+ //#region src/components/C_Table/composables/useTableManager.d.ts
692
+ /**
693
+ * 表格管理器配置接口
694
+ */
695
+ interface TableManagerConfig {
696
+ feedback?: ComponentFeedback;
697
+ locale?: ComponentLocale;
698
+ editable: boolean;
699
+ editMode: string;
700
+ showRowActions: boolean;
701
+ modalTitle: string;
702
+ modalWidth: number;
703
+ onEditSave?: (rowData: DataRecord, rowIndex: number, columnKey?: string) => void | Promise<void>;
704
+ onEditCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
705
+ onEditError?: (error: unknown) => void;
706
+ expandable: boolean;
707
+ defaultExpandedKeys?: DataTableRowKey[];
708
+ onLoadExpandData?: (row: DataRecord) => Promise<any[]> | any[];
709
+ onExpandError?: (error: unknown, row: DataRecord) => void;
710
+ renderExpandContent?: unknown;
711
+ rowExpandable?: (row: DataRecord) => boolean;
712
+ enableSelection: boolean;
713
+ defaultCheckedKeys?: DataTableRowKey[];
714
+ rowCheckable?: (row: DataRecord) => boolean;
715
+ maxSelection?: number;
716
+ enableChildSelection: boolean;
717
+ childRowCheckable?: (childRow: DataRecord, parentRow: DataRecord) => boolean;
718
+ enableParentChildLink: boolean;
719
+ parentChildLinkMode: ParentChildLinkMode;
720
+ dynamicRows?: DynamicRowsOptions<DataRecord>;
721
+ treeEnabled?: boolean;
722
+ treeChildrenKey?: string;
660
723
  }
661
- type EditMode = 'row' | 'cell' | 'both' | 'modal' | 'none';
662
- type EditType = 'input' | 'textarea' | 'select' | 'date' | 'number' | 'switch' | 'email' | 'mobile';
663
- type ButtonType$1 = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error';
664
- type ParentChildLinkMode = 'strict' | 'loose';
665
- interface PaginationConfig {
666
- enabled?: boolean;
667
- page?: number;
668
- pageSize?: number;
669
- total?: number;
670
- showSizePicker?: boolean;
671
- showQuickJumper?: boolean;
672
- pageSizes?: number[];
673
- simple?: boolean;
674
- size?: 'small' | 'medium' | 'large';
675
- remote?: boolean;
724
+ /**
725
+ * 表格管理器参数接口
726
+ */
727
+ interface TableManagerParams {
728
+ config: MaybeRefOrGetter<TableManagerConfig>;
729
+ data: () => DataRecord[];
730
+ rowKey: (row: DataRecord) => DataTableRowKey;
731
+ emit: (...args: any[]) => unknown;
732
+ /** 列配置(用于编辑校验) */
733
+ columns?: () => TableColumn[];
734
+ /** UI 壳提供加载内容,状态引擎保持可独立调用。 */
735
+ renderLoading?: () => VNodeChild;
736
+ /** String row-key field inherited by dynamic row creation; explicit dynamicRows.rowKey wins. */
737
+ rowKeyField?: MaybeRefOrGetter<string | undefined>;
676
738
  }
677
- /** API 函数类型 */
678
- type ApiFunction<T extends object = DataRecord> = (row: T, index: number) => unknown | Promise<unknown>;
679
- /** 渲染函数类型 */
680
- type RenderFunction<T extends object = DataRecord> = (row: T, index: number) => VNodeChild;
681
- /** 自定义操作按钮配置 */
682
- interface CustomAction<T extends object = DataRecord> {
683
- /** 按钮唯一键 */
684
- key: string;
685
- /** 按钮显示文本 */
686
- label: string | ((row: T, index: number) => string);
687
- /** 按钮图标 */
688
- icon: string | ((row: T, index: number) => string);
689
- /** 按钮类型样式 */
690
- type?: ButtonType$1 | ((row: T, index: number) => ButtonType$1);
691
- /** 点击事件处理器 */
692
- onClick: (row: T, index: number) => void | Promise<void>;
693
- /** 条件显示函数(可选) */
694
- show?: (row: T, index: number) => boolean;
695
- /** 是否禁用(可选) */
696
- disabled?: (row: T, index: number) => boolean;
739
+ /**
740
+ * 事件处理器接口
741
+ */
742
+ interface EventHandlers {
743
+ onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string, originalKey?: DataTableRowKey) => Promise<void>;
744
+ onCancel: (rowData: DataRecord, rowIndex: number) => Promise<void>;
745
+ onExpandChange: (keys: DataTableRowKey[], row?: DataRecord, expanded?: boolean) => void;
746
+ onSelectionChange: (checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey, DataTableRowKey[]>) => void;
747
+ onChildSelectionChange: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void;
748
+ onRowChange: (data: DataRecord[]) => void;
749
+ onRowSelectionChange: (selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void;
750
+ onRowAdd: (newRow: DataRecord) => void;
751
+ onRowDelete: (deletedRow: DataRecord, index: number) => void;
752
+ onRowCopy: (originalRow: DataRecord, newRow: DataRecord) => void;
753
+ onRowMove: (row: DataRecord, fromIndex: number, toIndex: number) => void;
754
+ }
755
+ /**
756
+ * 表格统一状态管理器
757
+ */
758
+ declare function useTableManager(params: TableManagerParams): {
759
+ editStates: {
760
+ rowEdit: {
761
+ editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
762
+ editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
763
+ isSaving: vue.Ref<boolean, boolean>;
764
+ isEditingRow: (rowKey: DataTableRowKey) => boolean;
765
+ startEditRow: (rowKey: DataTableRowKey) => boolean;
766
+ cancelEditRow: () => Promise<void>;
767
+ saveEditRow: () => Promise<{
768
+ updatedData: DataRecord;
769
+ rowIndex: number;
770
+ } | undefined>;
771
+ validateRow: () => Promise<boolean>;
772
+ validationErrors: vue.Ref<{
773
+ field: string;
774
+ message: string;
775
+ }[], RowValidationError[] | {
776
+ field: string;
777
+ message: string;
778
+ }[]>;
779
+ getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
780
+ updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
781
+ findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
782
+ invalidate: () => void;
783
+ };
784
+ cellEdit: {
785
+ editingCell: vue.Ref<{
786
+ rowKey: DataTableRowKey | null;
787
+ columnKey: string | null;
788
+ }, {
789
+ rowKey: DataTableRowKey | null;
790
+ columnKey: string | null;
791
+ } | {
792
+ rowKey: DataTableRowKey | null;
793
+ columnKey: string | null;
794
+ }>;
795
+ editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
796
+ isSaving: vue.Ref<boolean, boolean>;
797
+ isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
798
+ startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
799
+ saveEditCell: () => Promise<{
800
+ updatedData: {
801
+ [x: string]: unknown;
802
+ };
803
+ rowIndex: number;
804
+ columnKey: string;
805
+ } | undefined>;
806
+ cancelEditCell: () => void;
807
+ validateCell: () => Promise<boolean>;
808
+ cellValidationError: vue.Ref<string | null, string | null>;
809
+ getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
810
+ updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
811
+ findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
812
+ invalidate: () => void;
813
+ };
814
+ modalEdit: {
815
+ isModalVisible: vue.Ref<boolean, boolean>;
816
+ isSaving: vue.Ref<boolean, boolean>;
817
+ editingData: vue.Ref<DataRecord, DataRecord>;
818
+ editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
819
+ editingRowIndex: vue.ComputedRef<number>;
820
+ startEdit: (rowKey: DataTableRowKey, sourceData?: DataRecord | undefined) => boolean;
821
+ saveEdit: (formData?: DataRecord | undefined) => Promise<{
822
+ updatedData: any;
823
+ rowIndex: number;
824
+ } | undefined>;
825
+ cancelEdit: () => Promise<boolean>;
826
+ updateEditingData: (data: DataRecord) => boolean;
827
+ resetEditingState: () => boolean;
828
+ isEditingRow: (rowKey: DataTableRowKey) => boolean;
829
+ getEditingRowData: (rowKey: DataTableRowKey) => any;
830
+ invalidate: () => void;
831
+ };
832
+ };
833
+ expandState: UseTableExpandReturn<DataRecord, DataRecord>;
834
+ dynamicRowsState: DynamicRowsReturn<DataRecord>;
835
+ stateManager: {
836
+ edit: {
837
+ /** 开始编辑 */start(rowKey: DataTableRowKey, columnKey?: string): void; /** 取消编辑 */
838
+ cancel(): void; /** 保存编辑 */
839
+ save(): Promise<void>; /** 是否正在编辑 */
840
+ isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean; /** 获取当前编辑数据 */
841
+ getEditingData(): DataRecord | null | undefined;
842
+ };
843
+ expand: {
844
+ /** 展开行 */row(rowKey: DataTableRowKey): Promise<void>; /** 折叠行 */
845
+ collapse(rowKey: DataTableRowKey): void; /** 展开折叠切换 */
846
+ toggle(rowKey: DataTableRowKey): Promise<void>; /** 展开所有行 */
847
+ all(): Promise<void>; /** 折叠所有行 */
848
+ collapseAll(): void; /** 检查行是否已展开 */
849
+ isExpanded(rowKey: DataTableRowKey): boolean;
850
+ };
851
+ selection: {
852
+ /** 选择指定行 */select(rowKey: DataTableRowKey): void; /** 取消选择指定行 */
853
+ unselect(rowKey: DataTableRowKey): void; /** 选择所有行 */
854
+ all(): void; /** 清除所有行选择 */
855
+ clear(): void; /** 检查行是否已选择 */
856
+ isSelected(rowKey: DataTableRowKey): boolean; /** 获取所有已选择的行数据 */
857
+ getSelected(): DataRecord[];
858
+ };
859
+ childSelection: {
860
+ /** 选择指定父行下的子行 */select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 取消选择指定父行下的子行 */
861
+ unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 选择指定父行下的所有子行 */
862
+ selectAll(parentKey: DataTableRowKey): void; /** 清除指定父行下的所有子行选择 */
863
+ clear(parentKey: DataTableRowKey): void; /** 获取指定父行下所有已选择的子行数据 */
864
+ getSelected(parentKey: DataTableRowKey): DataRecord[];
865
+ };
866
+ dynamicRows: {
867
+ /** 添加行 */add(): void; /** 插入行 */
868
+ insert(): void; /** 删除行 */
869
+ delete(): void; /** 复制行 */
870
+ copy(): void; /** 上移动态行 */
871
+ moveUp(): void; /** 下移动态行 */
872
+ moveDown(): void; /** 清空动态行数据 */
873
+ clearSelection(): void; /** 获取当前选中的动态行数据 */
874
+ getSelected(): DataRecord | null; /** 打印表格 */
875
+ print(elementRef?: HTMLElement): Promise<void>; /** 导出表格数据 */
876
+ download(elementRef?: HTMLElement, filename?: string): Promise<void>;
877
+ }; /** 清除所有选择 */
878
+ clearAllSelections(): void;
879
+ };
880
+ expandedKeys: vue.ComputedRef<DataTableRowKey[]>;
881
+ checkedKeys: vue.ComputedRef<DataTableRowKey[]>;
882
+ eventHandlers: EventHandlers;
883
+ };
884
+ //#endregion
885
+ //#region src/components/C_Table/types.d.ts
886
+ type RefLike<T> = {
887
+ value: T;
888
+ } | T;
889
+ type MaybeRefLike<T> = RefLike<T> | MaybeRef<T>;
890
+ type DataRecord = Record<string, unknown>;
891
+ type TableRowKey<T extends object = DataRecord> = Extract<keyof T, string> | ((row: T) => DataTableRowKey);
892
+ interface TableRowKeyIssue<T extends object = DataRecord> {
893
+ type: 'missing' | 'duplicate' | 'error';
894
+ row: T;
895
+ index: number;
896
+ key?: DataTableRowKey;
897
+ firstIndex?: number;
898
+ cause?: unknown;
899
+ }
900
+ type EditMode = 'row' | 'cell' | 'both' | 'modal' | 'none';
901
+ type EditType = 'input' | 'textarea' | 'select' | 'date' | 'number' | 'switch' | 'email' | 'mobile';
902
+ type ButtonType$1 = 'default' | 'primary' | 'info' | 'success' | 'warning' | 'error';
903
+ type ParentChildLinkMode = 'strict' | 'loose';
904
+ interface PaginationConfig {
905
+ enabled?: boolean;
906
+ page?: number;
907
+ pageSize?: number;
908
+ total?: number;
909
+ showSizePicker?: boolean;
910
+ showQuickJumper?: boolean;
911
+ pageSizes?: number[];
912
+ simple?: boolean;
913
+ size?: 'small' | 'medium' | 'large';
914
+ remote?: boolean;
915
+ }
916
+ /** API 函数类型 */
917
+ type ApiFunction<T extends object = DataRecord> = (row: T, index: number) => unknown | Promise<unknown>;
918
+ /** 渲染函数类型 */
919
+ type RenderFunction<T extends object = DataRecord> = (row: T, index: number) => VNodeChild;
920
+ /** 自定义操作按钮配置 */
921
+ interface CustomAction<T extends object = DataRecord> {
922
+ /** 按钮唯一键 */
923
+ key: string;
924
+ /** 按钮显示文本 */
925
+ label: string | ((row: T, index: number) => string);
926
+ /** 按钮图标 */
927
+ icon: string | ((row: T, index: number) => string);
928
+ /** 按钮类型样式 */
929
+ type?: ButtonType$1 | ((row: T, index: number) => ButtonType$1);
930
+ /** 点击事件处理器 */
931
+ onClick: (row: T, index: number) => void | Promise<void>;
932
+ /** 条件显示函数(可选) */
933
+ show?: (row: T, index: number) => boolean;
934
+ /** 是否禁用(可选) */
935
+ disabled?: (row: T, index: number) => boolean;
697
936
  /** 按钮提示文本(可选) */
698
937
  tooltip?: string;
699
938
  }
@@ -871,6 +1110,7 @@ interface TableDisplayProps {
871
1110
  singleLine?: boolean;
872
1111
  size?: 'small' | 'medium' | 'large';
873
1112
  }
1113
+ /** @deprecated 旧类型兼容;组件功能请使用 config.edit。 */
874
1114
  interface TableEditProps<T extends object = DataRecord> {
875
1115
  editable?: boolean;
876
1116
  editMode?: EditMode;
@@ -881,6 +1121,7 @@ interface TableEditProps<T extends object = DataRecord> {
881
1121
  modalWidth?: number;
882
1122
  columnWidth?: number;
883
1123
  }
1124
+ /** @deprecated 旧类型兼容;组件功能请使用 config.expand。 */
884
1125
  interface TableExpandProps<T extends object = DataRecord, C = DataRecord> {
885
1126
  expandable?: boolean;
886
1127
  onLoadExpandData?: (row: T) => Promise<C[]> | C[];
@@ -888,6 +1129,7 @@ interface TableExpandProps<T extends object = DataRecord, C = DataRecord> {
888
1129
  rowExpandable?: (row: T) => boolean;
889
1130
  defaultExpandedKeys?: DataTableRowKey[];
890
1131
  }
1132
+ /** @deprecated 旧类型兼容;组件功能请使用 config.selection。 */
891
1133
  interface TableSelectionProps<T extends object = DataRecord, C = DataRecord> extends BaseConfig<T> {
892
1134
  enableSelection?: boolean;
893
1135
  defaultCheckedKeys?: DataTableRowKey[];
@@ -897,8 +1139,16 @@ interface TableSelectionProps<T extends object = DataRecord, C = DataRecord> ext
897
1139
  enableParentChildLink?: boolean;
898
1140
  parentChildLinkMode?: ParentChildLinkMode;
899
1141
  }
900
- interface TableProps<T extends object = DataRecord, C = DataRecord> extends TableBaseProps<T>, TableDisplayProps, TableEditProps<T>, TableExpandProps<T, C>, TableSelectionProps<T, C> {
901
- pagination?: PaginationConfig | boolean;
1142
+ interface TableProps<T extends object = DataRecord, C = DataRecord> extends Partial<TableBaseProps<T>>, TableDisplayProps, TableEditProps<T>, TableExpandProps<T, C>, TableSelectionProps<T, C> {
1143
+ /** 功能配置的统一入口。 */
1144
+ config?: TableConfig<T>;
1145
+ /** CRUD 模式自动提供 columns / data / loading,可省略对应属性。 */
1146
+ crud?: CrudBinding<T>;
1147
+ /** 原生分页入口;声明后优先于 config.pagination。 */
1148
+ pagination?: PaginationProps | false;
1149
+ remote?: boolean;
1150
+ virtualScrollX?: boolean;
1151
+ /** @deprecated 使用 config.actions。 */
902
1152
  actions?: SimpleTableActions<T>;
903
1153
  /** 根容器 class,原生 class/style 仍转发到内部表格。 */
904
1154
  wrapperClass?: vue.HTMLAttributes['class'];
@@ -974,6 +1224,12 @@ interface TablePaginationMethods {
974
1224
  }
975
1225
  interface TableInstance<T extends object = DataRecord, C = DataRecord> extends TableEditMethods<T>, TableExpandMethods, TableSelectionMethods<T, C>, TableDynamicRowsMethods<T>, TablePaginationMethods {
976
1226
  exportData: () => Promise<void>;
1227
+ /** 高级兼容入口;常规操作优先使用实例上的选择、展开和编辑方法。 */
1228
+ getManager: () => ReturnType<typeof useTableManager>['stateManager'];
1229
+ /** 此嵌套对象中的 Ref 保持响应式,读取时使用 .value。 */
1230
+ crossPageSelection: Pick<UseCrossPageSelectionReturn<T>, 'selectedKeys' | 'selectedCount' | 'select' | 'unselect' | 'selectAll' | 'clearAll' | 'getSelectedRows'> & {
1231
+ enabled: ComputedRef<boolean>;
1232
+ };
977
1233
  }
978
1234
  interface UseTableExpandOptions<T extends object = DataRecord, C = DataRecord> extends ExpandConfig<T, C>, SelectionConfig<T, C> {
979
1235
  data: Ref<T[]> | ComputedRef<T[]>;
@@ -1086,399 +1342,160 @@ declare const __VLS_export$1: <T extends object = DataRecord>(__VLS_props: NonNu
1086
1342
  printTable: (elementRef?: HTMLElement) => Promise<void>;
1087
1343
  downloadTableScreenshot: (elementRef?: HTMLElement, filename?: string) => Promise<void>;
1088
1344
  resetToFirstPage: () => void;
1089
- getTotalPages: () => number;
1090
- getSelectedRows: () => DataRecord[];
1091
- getEditingData: () => DataRecord | null | undefined;
1092
- isEditing: (rowKey: DataTableRowKey, columnKey?: string) => boolean;
1093
- isExpanded: (rowKey: DataTableRowKey) => boolean;
1094
- getManager: () => {
1095
- edit: {
1096
- start(rowKey: DataTableRowKey, columnKey?: string): void;
1097
- cancel(): void;
1098
- save(): Promise<void>;
1099
- isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean;
1100
- getEditingData(): DataRecord | null | undefined;
1101
- };
1102
- expand: {
1103
- row(rowKey: DataTableRowKey): Promise<void>;
1104
- collapse(rowKey: DataTableRowKey): void;
1105
- toggle(rowKey: DataTableRowKey): Promise<void>;
1106
- all(): Promise<void>;
1107
- collapseAll(): void;
1108
- isExpanded(rowKey: DataTableRowKey): boolean;
1109
- };
1110
- selection: {
1111
- select(rowKey: DataTableRowKey): void;
1112
- unselect(rowKey: DataTableRowKey): void;
1113
- all(): void;
1114
- clear(): void;
1115
- isSelected(rowKey: DataTableRowKey): boolean;
1116
- getSelected(): DataRecord[];
1117
- };
1118
- childSelection: {
1119
- select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void;
1120
- unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void;
1121
- selectAll(parentKey: DataTableRowKey): void;
1122
- clear(parentKey: DataTableRowKey): void;
1123
- getSelected(parentKey: DataTableRowKey): DataRecord[];
1124
- };
1125
- dynamicRows: {
1126
- add(): void;
1127
- insert(): void;
1128
- delete(): void;
1129
- copy(): void;
1130
- moveUp(): void;
1131
- moveDown(): void;
1132
- clearSelection(): void;
1133
- getSelected(): DataRecord | null;
1134
- print(elementRef?: HTMLElement): Promise<void>;
1135
- download(elementRef?: HTMLElement, filename?: string): Promise<void>;
1136
- };
1137
- clearAllSelections(): void;
1138
- }; /** 导出数据 */
1139
- exportData: () => Promise<void>; /** 跨页选择 */
1140
- crossPageSelection: {
1141
- enabled: vue.ComputedRef<boolean>;
1142
- selectedKeys: vue.Ref<Set<DataTableRowKey>, Set<DataTableRowKey>>;
1143
- selectedCount: vue.ComputedRef<number>;
1144
- select: (key: DataTableRowKey) => boolean;
1145
- unselect: (key: DataTableRowKey) => void;
1146
- selectAll: () => void;
1147
- clearAll: () => void;
1148
- getSelectedRows: () => DataRecord[];
1149
- };
1150
- }>) => void;
1151
- attrs: any;
1152
- slots: {
1153
- 'toolbar-left'?: (props: {}) => any;
1154
- } & {
1155
- 'toolbar-right'?: (props: {}) => any;
1156
- } & {
1157
- error?: (props: {
1158
- error: ErrorConfig;
1159
- }) => any;
1160
- } & {
1161
- loading?: (props: {}) => any;
1162
- };
1163
- emit: ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1164
- }>) => vue.VNode & {
1165
- __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
1166
- };
1167
- declare const _default$1: typeof __VLS_export$1;
1168
- type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
1169
- //#endregion
1170
- //#region src/components/C_Table/helpers.d.ts
1171
- /** Type-safe identity helper that rejects misspelled business field keys. */
1172
- declare function defineTableColumns<T extends object>(columns: StrictTableColumn<T>[]): StrictTableColumn<T>[];
1173
- /** Preserve row types across edit, action, summary and batch callbacks. */
1174
- declare function defineTableConfig<T extends object>(config: TableConfig<T>): TableConfig<T>;
1175
- /** Find missing and duplicate row keys before stateful table features consume them. */
1176
- declare function validateTableRowKeys<T extends object>(data: readonly T[], rowKey: (row: T) => DataTableRowKey | null | undefined): TableRowKeyIssue<T>[];
1177
- //#endregion
1178
- //#region src/components/C_Table/composables/useTableColumns.d.ts
1179
- /** useTableColumns 中对 tableManager 的最小依赖接口 */
1180
- interface TableManagerRef {
1181
- editStates: {
1182
- cellEdit: {
1183
- isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
1184
- getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
1185
- updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
1186
- saveEditCell: () => Promise<unknown>;
1187
- cancelEditCell: () => void;
1188
- startEditCell: (rowKey: DataTableRowKey, columnKey: string) => void;
1189
- };
1190
- rowEdit: {
1191
- isEditingRow: (rowKey: DataTableRowKey) => boolean;
1192
- getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
1193
- updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
1194
- };
1195
- };
1196
- dynamicRowsState?: {
1197
- enhanceColumns: (columns: TableColumn[]) => TableColumn[];
1198
- } | null;
1199
- expandState?: {
1200
- getTableColumns: (originalColumns: TableColumn[]) => DataTableColumn[];
1201
- } | null;
1202
- }
1203
- /**
1204
- * 渲染编辑组件(行编辑/单元格编辑通用)
1205
- */
1206
- interface UseTableColumnsOptions {
1207
- /** 原始列配置 */
1208
- rawColumns: ComputedRef<TableColumn[]>;
1209
- /** 统一配置 */
1210
- config: ComputedRef<ResolvedConfig>;
1211
- /** 默认列宽 */
1212
- columnWidth: number;
1213
- /** 区分使用侧显式统一列宽与内部默认值,不把默认值强加给弹性业务列。 */
1214
- columnWidthExplicit?: boolean;
1215
- /** 用户设定的 scrollX */
1216
- scrollX?: number | string;
1217
- /** 行键获取函数 */
1218
- rowKey: (row: DataRecord) => DataTableRowKey;
1219
- /** 表格管理器 */
1220
- tableManager: TableManagerRef;
1221
- /** 操作列渲染函数 */
1222
- actionsRenderer: (row: DataRecord, index: number) => VNodeChild;
1223
- /** 编辑模式检查器 */
1224
- editModeChecker: ComputedRef<{
1225
- isNonEditable: (column: TableColumn) => boolean;
1226
- isRowEditMode: () => boolean;
1227
- isCellEditMode: () => boolean;
1228
- }>;
1229
- /** 是否渲染操作列 */
1230
- showActionsColumn: ComputedRef<boolean>;
1231
- }
1232
- interface UseTableColumnsReturn {
1233
- reactiveColumns: Ref<TableColumn[]>;
1234
- showSettingsPanel: Ref<boolean>;
1235
- computedColumns: ComputedRef<DataTableColumn[]>;
1236
- computedScrollX: ComputedRef<number | string | undefined>;
1237
- handleColumnChange: (columns: TableColumn[]) => void;
1238
- }
1239
- /**
1240
- * 表格列处理引擎
1241
- */
1242
- declare function useTableColumns(options: UseTableColumnsOptions): UseTableColumnsReturn;
1243
- //#endregion
1244
- //#region src/components/C_Table/composables/useRowEdit.d.ts
1245
- /** 行级校验错误 */
1246
- interface RowValidationError {
1247
- field: string;
1248
- message: string;
1249
- }
1250
- /**
1251
- * 行编辑配置选项
1252
- */
1253
- interface RowEditOptions {
1254
- data: () => DataRecord[];
1255
- rowKey: (row: DataRecord) => DataTableRowKey;
1256
- onSave?: (rowData: DataRecord, rowIndex: number, originalKey?: DataTableRowKey) => void | Promise<void>;
1257
- onCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
1258
- /** 列配置(用于提取校验规则) */
1259
- columns?: () => TableColumn[];
1260
- }
1261
- /**
1262
- * 可编辑行组合函数,提供表格整行的编辑功能
1263
- */
1264
- declare function useRowEdit(options: RowEditOptions): {
1265
- editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
1266
- editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
1267
- isSaving: vue.Ref<boolean, boolean>;
1268
- isEditingRow: (rowKey: DataTableRowKey) => boolean;
1269
- startEditRow: (rowKey: DataTableRowKey) => boolean;
1270
- cancelEditRow: () => Promise<void>;
1271
- saveEditRow: () => Promise<{
1272
- updatedData: DataRecord;
1273
- rowIndex: number;
1274
- } | undefined>;
1275
- validateRow: () => Promise<boolean>;
1276
- validationErrors: vue.Ref<{
1277
- field: string;
1278
- message: string;
1279
- }[], RowValidationError[] | {
1280
- field: string;
1281
- message: string;
1282
- }[]>;
1283
- getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
1284
- updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
1285
- findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
1286
- invalidate: () => void;
1287
- };
1288
- //#endregion
1289
- //#region src/components/C_Table/composables/useTableManager.d.ts
1290
- /**
1291
- * 表格管理器配置接口
1292
- */
1293
- interface TableManagerConfig {
1294
- feedback?: ComponentFeedback;
1295
- locale?: ComponentLocale;
1296
- editable: boolean;
1297
- editMode: string;
1298
- showRowActions: boolean;
1299
- modalTitle: string;
1300
- modalWidth: number;
1301
- onEditSave?: (rowData: DataRecord, rowIndex: number, columnKey?: string) => void | Promise<void>;
1302
- onEditCancel?: (rowData: DataRecord, rowIndex: number) => void | Promise<void>;
1303
- onEditError?: (error: unknown) => void;
1304
- expandable: boolean;
1305
- defaultExpandedKeys?: DataTableRowKey[];
1306
- onLoadExpandData?: (row: DataRecord) => Promise<any[]> | any[];
1307
- onExpandError?: (error: unknown, row: DataRecord) => void;
1308
- renderExpandContent?: unknown;
1309
- rowExpandable?: (row: DataRecord) => boolean;
1310
- enableSelection: boolean;
1311
- defaultCheckedKeys?: DataTableRowKey[];
1312
- rowCheckable?: (row: DataRecord) => boolean;
1313
- maxSelection?: number;
1314
- enableChildSelection: boolean;
1315
- childRowCheckable?: (childRow: DataRecord, parentRow: DataRecord) => boolean;
1316
- enableParentChildLink: boolean;
1317
- parentChildLinkMode: ParentChildLinkMode;
1318
- dynamicRows?: DynamicRowsOptions<DataRecord>;
1319
- treeEnabled?: boolean;
1320
- treeChildrenKey?: string;
1321
- }
1322
- /**
1323
- * 表格管理器参数接口
1324
- */
1325
- interface TableManagerParams {
1326
- config: MaybeRefOrGetter<TableManagerConfig>;
1327
- data: () => DataRecord[];
1328
- rowKey: (row: DataRecord) => DataTableRowKey;
1329
- emit: (...args: any[]) => unknown;
1330
- /** 列配置(用于编辑校验) */
1331
- columns?: () => TableColumn[];
1332
- /** UI 壳提供加载内容,状态引擎保持可独立调用。 */
1333
- renderLoading?: () => VNodeChild;
1334
- /** String row-key field inherited by dynamic row creation; explicit dynamicRows.rowKey wins. */
1335
- rowKeyField?: MaybeRefOrGetter<string | undefined>;
1336
- }
1337
- /**
1338
- * 事件处理器接口
1339
- */
1340
- interface EventHandlers {
1341
- onSave: (rowData: DataRecord, rowIndex: number, columnKey?: string, originalKey?: DataTableRowKey) => Promise<void>;
1342
- onCancel: (rowData: DataRecord, rowIndex: number) => Promise<void>;
1343
- onExpandChange: (keys: DataTableRowKey[], row?: DataRecord, expanded?: boolean) => void;
1344
- onSelectionChange: (checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections: Map<DataTableRowKey, DataTableRowKey[]>) => void;
1345
- onChildSelectionChange: (parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void;
1346
- onRowChange: (data: DataRecord[]) => void;
1347
- onRowSelectionChange: (selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void;
1348
- onRowAdd: (newRow: DataRecord) => void;
1349
- onRowDelete: (deletedRow: DataRecord, index: number) => void;
1350
- onRowCopy: (originalRow: DataRecord, newRow: DataRecord) => void;
1351
- onRowMove: (row: DataRecord, fromIndex: number, toIndex: number) => void;
1352
- }
1353
- /**
1354
- * 表格统一状态管理器
1355
- */
1356
- declare function useTableManager(params: TableManagerParams): {
1357
- editStates: {
1358
- rowEdit: {
1359
- editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
1360
- editingData: vue.Ref<Record<string, DataRecord>, Record<string, DataRecord>>;
1361
- isSaving: vue.Ref<boolean, boolean>;
1362
- isEditingRow: (rowKey: DataTableRowKey) => boolean;
1363
- startEditRow: (rowKey: DataTableRowKey) => boolean;
1364
- cancelEditRow: () => Promise<void>;
1365
- saveEditRow: () => Promise<{
1366
- updatedData: DataRecord;
1367
- rowIndex: number;
1368
- } | undefined>;
1369
- validateRow: () => Promise<boolean>;
1370
- validationErrors: vue.Ref<{
1371
- field: string;
1372
- message: string;
1373
- }[], RowValidationError[] | {
1374
- field: string;
1375
- message: string;
1376
- }[]>;
1377
- getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
1378
- updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
1379
- findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
1380
- invalidate: () => void;
1345
+ getTotalPages: () => number;
1346
+ getSelectedRows: () => DataRecord[];
1347
+ getEditingData: () => DataRecord | null | undefined;
1348
+ isEditing: (rowKey: DataTableRowKey, columnKey?: string) => boolean;
1349
+ isExpanded: (rowKey: DataTableRowKey) => boolean;
1350
+ getManager: () => {
1351
+ edit: {
1352
+ start(rowKey: DataTableRowKey, columnKey?: string): void;
1353
+ cancel(): void;
1354
+ save(): Promise<void>;
1355
+ isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean;
1356
+ getEditingData(): DataRecord | null | undefined;
1357
+ };
1358
+ expand: {
1359
+ row(rowKey: DataTableRowKey): Promise<void>;
1360
+ collapse(rowKey: DataTableRowKey): void;
1361
+ toggle(rowKey: DataTableRowKey): Promise<void>;
1362
+ all(): Promise<void>;
1363
+ collapseAll(): void;
1364
+ isExpanded(rowKey: DataTableRowKey): boolean;
1365
+ };
1366
+ selection: {
1367
+ select(rowKey: DataTableRowKey): void;
1368
+ unselect(rowKey: DataTableRowKey): void;
1369
+ all(): void;
1370
+ clear(): void;
1371
+ isSelected(rowKey: DataTableRowKey): boolean;
1372
+ getSelected(): DataRecord[];
1373
+ };
1374
+ childSelection: {
1375
+ select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void;
1376
+ unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void;
1377
+ selectAll(parentKey: DataTableRowKey): void;
1378
+ clear(parentKey: DataTableRowKey): void;
1379
+ getSelected(parentKey: DataTableRowKey): DataRecord[];
1380
+ };
1381
+ dynamicRows: {
1382
+ add(): void;
1383
+ insert(): void;
1384
+ delete(): void;
1385
+ copy(): void;
1386
+ moveUp(): void;
1387
+ moveDown(): void;
1388
+ clearSelection(): void;
1389
+ getSelected(): DataRecord | null;
1390
+ print(elementRef?: HTMLElement): Promise<void>;
1391
+ download(elementRef?: HTMLElement, filename?: string): Promise<void>;
1392
+ };
1393
+ clearAllSelections(): void;
1394
+ }; /** 导出数据 */
1395
+ exportData: () => Promise<void>; /** 跨页选择 */
1396
+ crossPageSelection: {
1397
+ enabled: vue.ComputedRef<boolean>;
1398
+ selectedKeys: vue.Ref<Set<DataTableRowKey>, Set<DataTableRowKey>>;
1399
+ selectedCount: vue.ComputedRef<number>;
1400
+ select: (key: DataTableRowKey) => boolean;
1401
+ unselect: (key: DataTableRowKey) => void;
1402
+ selectAll: () => void;
1403
+ clearAll: () => void;
1404
+ getSelectedRows: () => DataRecord[];
1381
1405
  };
1406
+ }>) => void;
1407
+ attrs: any;
1408
+ slots: {
1409
+ 'toolbar-left'?: (props: {}) => any;
1410
+ } & {
1411
+ 'toolbar-right'?: (props: {}) => any;
1412
+ } & {
1413
+ error?: (props: {
1414
+ error: ErrorConfig;
1415
+ }) => any;
1416
+ } & {
1417
+ loading?: (props: {}) => any;
1418
+ };
1419
+ emit: ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1420
+ }>) => vue.VNode & {
1421
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
1422
+ };
1423
+ declare const _default$1: typeof __VLS_export$1;
1424
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
1425
+ //#endregion
1426
+ //#region src/components/C_Table/helpers.d.ts
1427
+ /** Type-safe identity helper that rejects misspelled business field keys. */
1428
+ declare function defineTableColumns<T extends object>(columns: StrictTableColumn<T>[]): StrictTableColumn<T>[];
1429
+ /** Preserve row types across edit, action, summary and batch callbacks. */
1430
+ declare function defineTableConfig<T extends object>(config: TableConfig<T>): TableConfig<T>;
1431
+ /** Find missing and duplicate row keys before stateful table features consume them. */
1432
+ declare function validateTableRowKeys<T extends object>(data: readonly T[], rowKey: (row: T) => DataTableRowKey | null | undefined): TableRowKeyIssue<T>[];
1433
+ //#endregion
1434
+ //#region src/components/C_Table/composables/useTableColumns.d.ts
1435
+ /** useTableColumns 中对 tableManager 的最小依赖接口 */
1436
+ interface TableManagerRef {
1437
+ editStates: {
1382
1438
  cellEdit: {
1383
- editingCell: vue.Ref<{
1384
- rowKey: DataTableRowKey | null;
1385
- columnKey: string | null;
1386
- }, {
1387
- rowKey: DataTableRowKey | null;
1388
- columnKey: string | null;
1389
- } | {
1390
- rowKey: DataTableRowKey | null;
1391
- columnKey: string | null;
1392
- }>;
1393
- editingData: vue.Ref<Record<string, unknown>, Record<string, unknown>>;
1394
- isSaving: vue.Ref<boolean, boolean>;
1395
1439
  isEditingCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
1396
- startEditCell: (rowKey: DataTableRowKey, columnKey: string) => boolean;
1397
- saveEditCell: () => Promise<{
1398
- updatedData: {
1399
- [x: string]: unknown;
1400
- };
1401
- rowIndex: number;
1402
- columnKey: string;
1403
- } | undefined>;
1404
- cancelEditCell: () => void;
1405
- validateCell: () => Promise<boolean>;
1406
- cellValidationError: vue.Ref<string | null, string | null>;
1407
1440
  getEditingCellValue: (rowKey: DataTableRowKey, columnKey: string) => unknown;
1408
1441
  updateEditingCellValue: (rowKey: DataTableRowKey, columnKey: string, value: unknown) => void;
1409
- findRowData: (rowKey: DataTableRowKey) => DataRecord | null | undefined;
1410
- invalidate: () => void;
1442
+ saveEditCell: () => Promise<unknown>;
1443
+ cancelEditCell: () => void;
1444
+ startEditCell: (rowKey: DataTableRowKey, columnKey: string) => void;
1411
1445
  };
1412
- modalEdit: {
1413
- isModalVisible: vue.Ref<boolean, boolean>;
1414
- isSaving: vue.Ref<boolean, boolean>;
1415
- editingData: vue.Ref<DataRecord, DataRecord>;
1416
- editingRowKey: vue.Ref<DataTableRowKey | null, DataTableRowKey | null>;
1417
- editingRowIndex: vue.ComputedRef<number>;
1418
- startEdit: (rowKey: DataTableRowKey, sourceData?: DataRecord | undefined) => boolean;
1419
- saveEdit: (formData?: DataRecord | undefined) => Promise<{
1420
- updatedData: any;
1421
- rowIndex: number;
1422
- } | undefined>;
1423
- cancelEdit: () => Promise<boolean>;
1424
- updateEditingData: (data: DataRecord) => boolean;
1425
- resetEditingState: () => boolean;
1446
+ rowEdit: {
1426
1447
  isEditingRow: (rowKey: DataTableRowKey) => boolean;
1427
- getEditingRowData: (rowKey: DataTableRowKey) => any;
1428
- invalidate: () => void;
1429
- };
1430
- };
1431
- expandState: UseTableExpandReturn<DataRecord, DataRecord>;
1432
- dynamicRowsState: DynamicRowsReturn<DataRecord>;
1433
- stateManager: {
1434
- edit: {
1435
- /** 开始编辑 */start(rowKey: DataTableRowKey, columnKey?: string): void; /** 取消编辑 */
1436
- cancel(): void; /** 保存编辑 */
1437
- save(): Promise<void>; /** 是否正在编辑 */
1438
- isEditing(rowKey: DataTableRowKey, columnKey?: string): boolean; /** 获取当前编辑数据 */
1439
- getEditingData(): DataRecord | null | undefined;
1440
- };
1441
- expand: {
1442
- /** 展开行 */row(rowKey: DataTableRowKey): Promise<void>; /** 折叠行 */
1443
- collapse(rowKey: DataTableRowKey): void; /** 展开折叠切换 */
1444
- toggle(rowKey: DataTableRowKey): Promise<void>; /** 展开所有行 */
1445
- all(): Promise<void>; /** 折叠所有行 */
1446
- collapseAll(): void; /** 检查行是否已展开 */
1447
- isExpanded(rowKey: DataTableRowKey): boolean;
1448
- };
1449
- selection: {
1450
- /** 选择指定行 */select(rowKey: DataTableRowKey): void; /** 取消选择指定行 */
1451
- unselect(rowKey: DataTableRowKey): void; /** 选择所有行 */
1452
- all(): void; /** 清除所有行选择 */
1453
- clear(): void; /** 检查行是否已选择 */
1454
- isSelected(rowKey: DataTableRowKey): boolean; /** 获取所有已选择的行数据 */
1455
- getSelected(): DataRecord[];
1456
- };
1457
- childSelection: {
1458
- /** 选择指定父行下的子行 */select(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 取消选择指定父行下的子行 */
1459
- unselect(parentKey: DataTableRowKey, childKey: DataTableRowKey): void; /** 选择指定父行下的所有子行 */
1460
- selectAll(parentKey: DataTableRowKey): void; /** 清除指定父行下的所有子行选择 */
1461
- clear(parentKey: DataTableRowKey): void; /** 获取指定父行下所有已选择的子行数据 */
1462
- getSelected(parentKey: DataTableRowKey): DataRecord[];
1448
+ getEditingRowData: (rowKey: DataTableRowKey) => DataRecord | undefined;
1449
+ updateEditingRowData: (rowKey: DataTableRowKey, field: string, value: unknown) => void;
1463
1450
  };
1464
- dynamicRows: {
1465
- /** 添加行 */add(): void; /** 插入行 */
1466
- insert(): void; /** 删除行 */
1467
- delete(): void; /** 复制行 */
1468
- copy(): void; /** 上移动态行 */
1469
- moveUp(): void; /** 下移动态行 */
1470
- moveDown(): void; /** 清空动态行数据 */
1471
- clearSelection(): void; /** 获取当前选中的动态行数据 */
1472
- getSelected(): DataRecord | null; /** 打印表格 */
1473
- print(elementRef?: HTMLElement): Promise<void>; /** 导出表格数据 */
1474
- download(elementRef?: HTMLElement, filename?: string): Promise<void>;
1475
- }; /** 清除所有选择 */
1476
- clearAllSelections(): void;
1477
1451
  };
1478
- expandedKeys: vue.ComputedRef<DataTableRowKey[]>;
1479
- checkedKeys: vue.ComputedRef<DataTableRowKey[]>;
1480
- eventHandlers: EventHandlers;
1481
- };
1452
+ dynamicRowsState?: {
1453
+ enhanceColumns: (columns: TableColumn[]) => TableColumn[];
1454
+ } | null;
1455
+ expandState?: {
1456
+ getTableColumns: (originalColumns: TableColumn[]) => DataTableColumn[];
1457
+ } | null;
1458
+ }
1459
+ /**
1460
+ * 渲染编辑组件(行编辑/单元格编辑通用)
1461
+ */
1462
+ interface UseTableColumnsOptions {
1463
+ /** 原始列配置 */
1464
+ rawColumns: ComputedRef<TableColumn[]>;
1465
+ /** 统一配置 */
1466
+ config: ComputedRef<ResolvedConfig>;
1467
+ /** 默认列宽 */
1468
+ columnWidth: number;
1469
+ /** 区分使用侧显式统一列宽与内部默认值,不把默认值强加给弹性业务列。 */
1470
+ columnWidthExplicit?: boolean;
1471
+ /** 用户设定的 scrollX */
1472
+ scrollX?: number | string;
1473
+ /** 行键获取函数 */
1474
+ rowKey: (row: DataRecord) => DataTableRowKey;
1475
+ /** 表格管理器 */
1476
+ tableManager: TableManagerRef;
1477
+ /** 操作列渲染函数 */
1478
+ actionsRenderer: (row: DataRecord, index: number) => VNodeChild;
1479
+ /** 编辑模式检查器 */
1480
+ editModeChecker: ComputedRef<{
1481
+ isNonEditable: (column: TableColumn) => boolean;
1482
+ isRowEditMode: () => boolean;
1483
+ isCellEditMode: () => boolean;
1484
+ }>;
1485
+ /** 是否渲染操作列 */
1486
+ showActionsColumn: ComputedRef<boolean>;
1487
+ }
1488
+ interface UseTableColumnsReturn {
1489
+ reactiveColumns: Ref<TableColumn[]>;
1490
+ showSettingsPanel: Ref<boolean>;
1491
+ computedColumns: ComputedRef<DataTableColumn[]>;
1492
+ computedScrollX: ComputedRef<number | string | undefined>;
1493
+ handleColumnChange: (columns: TableColumn[]) => void;
1494
+ }
1495
+ /**
1496
+ * 表格列处理引擎
1497
+ */
1498
+ declare function useTableColumns(options: UseTableColumnsOptions): UseTableColumnsReturn;
1482
1499
  //#endregion
1483
1500
  //#region src/components/C_Table/composables/useTableExpand.d.ts
1484
1501
  /**
@@ -1711,9 +1728,10 @@ interface TreeExpose {
1711
1728
  getCheckedData: TreeInst['getCheckedData'];
1712
1729
  getIndeterminateData: TreeInst['getIndeterminateData'];
1713
1730
  scrollTo: TreeInst['scrollTo'];
1714
- expandedKeys: Ref<TreeKey[]>;
1715
- selectedKeys: Ref<TreeKey[]>;
1716
- checkedKeys: Ref<TreeKey[]>;
1731
+ /** Vue 公开实例会解包顶层 Ref;这些属性直接读取数组。 */
1732
+ expandedKeys: TreeKey[];
1733
+ selectedKeys: TreeKey[];
1734
+ checkedKeys: TreeKey[];
1717
1735
  }
1718
1736
  interface TreeEmits {
1719
1737
  'update:searchPattern': [pattern: string];
@@ -1737,38 +1755,42 @@ interface TreeSlots {
1737
1755
  //#endregion
1738
1756
  //#region src/components/C_Tree/index.vue.d.ts
1739
1757
  type __VLS_Slots = TreeSlots;
1740
- declare const __VLS_base: vue.DefineComponent<TreeProps$1, TreeExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1741
- add: (parentNode?: TreeNodeData | undefined) => any;
1758
+ declare const __VLS_base: vue.DefineComponent<TreeProps$1, Omit<TreeExpose, "expandedKeys" | "checkedKeys" | "selectedKeys"> & {
1759
+ expandedKeys: vue.Ref<TreeKey[]>;
1760
+ selectedKeys: vue.Ref<TreeKey[]>;
1761
+ checkedKeys: vue.Ref<TreeKey[]>;
1762
+ }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1742
1763
  refresh: () => any;
1743
- "load-error": (error: unknown, node: TreeOption$1) => any;
1744
- "update:expandedKeys": (keys: TreeKey[], options: (TreeOption$1 | null)[], meta: TreeUpdateMeta) => any;
1764
+ add: (parentNode?: TreeNodeData | undefined) => any;
1745
1765
  "node-drop": (info: DropInfo) => any;
1746
1766
  "update:searchPattern": (pattern: string) => any;
1767
+ "update:expandedKeys": (keys: TreeKey[], options: (TreeOption$1 | null)[], meta: TreeUpdateMeta) => any;
1747
1768
  "update:selectedKeys": (keys: TreeKey[], options: (TreeOption$1 | null)[], meta: TreeUpdateMeta) => any;
1748
1769
  "update:checkedKeys": (keys: TreeKey[], options: (TreeOption$1 | null)[], meta: TreeUpdateMeta) => any;
1749
1770
  "node-select": (node: TreeNodeData | null, selectedKeys: TreeKey[]) => any;
1750
1771
  "node-action": (action: string, node: TreeNodeData) => any;
1772
+ "load-error": (error: unknown, node: TreeOption$1) => any;
1751
1773
  }, string, vue.PublicProps, Readonly<TreeProps$1> & Readonly<{
1752
- onAdd?: ((parentNode?: TreeNodeData | undefined) => any) | undefined;
1753
1774
  onRefresh?: (() => any) | undefined;
1754
- "onLoad-error"?: ((error: unknown, node: TreeOption$1) => any) | undefined;
1755
- "onUpdate:expandedKeys"?: ((keys: TreeKey[], options: (TreeOption$1 | null)[], meta: TreeUpdateMeta) => any) | undefined;
1775
+ onAdd?: ((parentNode?: TreeNodeData | undefined) => any) | undefined;
1756
1776
  "onNode-drop"?: ((info: DropInfo) => any) | undefined;
1757
1777
  "onUpdate:searchPattern"?: ((pattern: string) => any) | undefined;
1778
+ "onUpdate:expandedKeys"?: ((keys: TreeKey[], options: (TreeOption$1 | null)[], meta: TreeUpdateMeta) => any) | undefined;
1758
1779
  "onUpdate:selectedKeys"?: ((keys: TreeKey[], options: (TreeOption$1 | null)[], meta: TreeUpdateMeta) => any) | undefined;
1759
1780
  "onUpdate:checkedKeys"?: ((keys: TreeKey[], options: (TreeOption$1 | null)[], meta: TreeUpdateMeta) => any) | undefined;
1760
1781
  "onNode-select"?: ((node: TreeNodeData | null, selectedKeys: TreeKey[]) => any) | undefined;
1761
1782
  "onNode-action"?: ((action: string, node: TreeNodeData) => any) | undefined;
1783
+ "onLoad-error"?: ((error: unknown, node: TreeOption$1) => any) | undefined;
1762
1784
  }>, {
1785
+ density: ComponentDensity;
1763
1786
  mode: TreeMode;
1764
- showToolbar: boolean;
1765
- addable: boolean;
1766
1787
  draggable: boolean;
1767
- density: ComponentDensity;
1788
+ showToolbar: boolean;
1768
1789
  defaultExpandAll: boolean;
1769
1790
  showLine: boolean;
1770
1791
  searchable: boolean;
1771
1792
  searchPlaceholder: string;
1793
+ addable: boolean;
1772
1794
  addText: string;
1773
1795
  refreshable: boolean;
1774
1796
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -1787,7 +1809,7 @@ declare const presetConfigs: Record<TreeMode, Partial<TreeProps$1>>;
1787
1809
  type EmitFn = <E extends keyof TreeEmits>(event: E, ...args: TreeEmits[E]) => void;
1788
1810
  /** State coordination only; checking, filtering, keyboard and loading stay native. */
1789
1811
  declare function useTreeOperations(props: TreeProps$1, emit: EmitFn, slots?: TreeSlots): {
1790
- internalSearchPattern: vue.Ref<string, string>;
1812
+ internalSearchPattern: Ref<string, string>;
1791
1813
  expandedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
1792
1814
  selectedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
1793
1815
  checkedKeys: vue.WritableComputedRef<TreeKey[], TreeKey[]>;
@@ -1813,7 +1835,11 @@ declare function useTreeOperations(props: TreeProps$1, emit: EmitFn, slots?: Tre
1813
1835
  handleDrop: (info: DropInfo) => void;
1814
1836
  handleAdd: () => void;
1815
1837
  handleRefresh: () => void;
1816
- expose: TreeExpose;
1838
+ expose: Omit<TreeExpose, "expandedKeys" | "checkedKeys" | "selectedKeys"> & {
1839
+ expandedKeys: Ref<TreeKey[]>;
1840
+ selectedKeys: Ref<TreeKey[]>;
1841
+ checkedKeys: Ref<TreeKey[]>;
1842
+ };
1817
1843
  };
1818
1844
  //#endregion
1819
1845
  //#region src/utils/storage.d.ts
@@ -1957,4 +1983,4 @@ declare function useTableQuery<T extends object, Q extends object = Record<strin
1957
1983
  cancel: () => void;
1958
1984
  };
1959
1985
  //#endregion
1960
- export { MaybeRefLike as $, printPresets as $t, HighlightPluginOptions as A, ExpandConfig$1 as At, useRowEdit as B, exportTableData as Bt, TreeNodeData as C, useTableGlobalConfig as Ct, TreeSlots as D, DisplayConfig as Dt, TreeRenderContext as E, CrudBinding as Et, useCellEdit as F, TreeConfig as Ft, _default$1 as G, RowDragConfig as Gt, defineTableColumns as H, UseCrossPageSelectionOptions as Ht, usePagination as I, VirtualScrollConfig as It, ChildSelectionState as J, useRowDrag as Jt, ApiFunction as K, UseRowDragOptions as Kt, useTableActions as L, createEditModeChecker as Lt, setupHighlight as M, SummaryConfig as Mt, useHighlight as N, TableConfig as Nt, TreeUpdateMeta as O, EditConfig as Ot, useModalEdit as P, ToolbarConfig as Pt, EditMode as Q, PrintWatermarkOptions as Qt, useTableExpand as R, resolveConfig as Rt, TreeNativeProps as S, mergeGlobalConfig as St, TreeProps$1 as T, ColumnDragConfig as Tt, defineTableConfig as U, UseCrossPageSelectionReturn as Ut, useTableColumns as V, CrossPageSelectionConfig as Vt, validateTableRowKeys as W, useCrossPageSelection as Wt, CustomAction as X, DynamicRowsReturn as Xt, ColumnWithKey as Y, DynamicRowsOptions as Yt, DataRecord as Z, useDynamicRows as Zt, StatusType as _, FormatterConfig as _t, getItem as a, SelectOption as at, TreeKey as b, TableGlobalConfig as bt, setItem as c, TableColumn as ct, _default as d, TableProps as dt, usePrintWatermark as en, NormalTableColumn as et, ActionConfig as f, TableRowKey as ft, StatusConfig as g, ColumnFormatter as gt, IconConfig as h, UseTableExpandReturn as ht, useTableQuery as i, COMPONENT_LOCALE_KEY as in, RowAction as it, createHighlight as j, SelectionConfig$1 as jt, HighlightAPI as k, ErrorConfig as kt, useTreeOperations as l, TableEmits as lt, DropInfo as m, UseTableExpandOptions as mt, TableQueryResult as n, useComponentLocale as nn, ParentChildLinkMode as nt, removeAllItem as o, SimpleTableActions as ot, ButtonType as p, TableRowKeyIssue as pt, BuiltInTableColumn as q, UseRowDragReturn as qt, UseTableQueryOptions as r, COMPONENT_FEEDBACK_KEY as rn, RenderFunction as rt, removeItem as s, StrictTableColumn as st, TableQueryContext as t, useComponentFeedback as tn, PaginationConfig as tt, presetConfigs as u, TableInstance as ut, TreeEmits as v, FormatterType as vt, TreeOption$1 as w, BatchActionsConfig as wt, TreeMode as x, applyFormatter as xt, TreeExpose as y, TABLE_GLOBAL_CONFIG_KEY as yt, useTableManager as z, ExportConfig as zt };
1986
+ export { PaginationConfig as $, printPresets as $t, HighlightPluginOptions as A, resolveConfig as At, defineTableColumns as B, useTableGlobalConfig as Bt, TreeNodeData as C, SelectionConfig$1 as Ct, TreeSlots as D, TreeConfig as Dt, TreeRenderContext as E, ToolbarConfig as Et, useCellEdit as F, FormatterType as Ft, BuiltInTableColumn as G, RowDragConfig as Gt, validateTableRowKeys as H, UseCrossPageSelectionOptions as Ht, usePagination as I, TABLE_GLOBAL_CONFIG_KEY as It, CustomAction as J, useRowDrag as Jt, ChildSelectionState as K, UseRowDragOptions as Kt, useTableActions as L, TableGlobalConfig as Lt, setupHighlight as M, exportTableData as Mt, useHighlight as N, ColumnFormatter as Nt, TreeUpdateMeta as O, VirtualScrollConfig as Ot, useModalEdit as P, FormatterConfig as Pt, NormalTableColumn as Q, PrintWatermarkOptions as Qt, useTableExpand as R, applyFormatter as Rt, TreeNativeProps as S, ExpandConfig$1 as St, TreeProps$1 as T, TableConfig as Tt, _default$1 as U, UseCrossPageSelectionReturn as Ut, defineTableConfig as V, CrossPageSelectionConfig as Vt, ApiFunction as W, useCrossPageSelection as Wt, EditMode as X, DynamicRowsReturn as Xt, DataRecord as Y, DynamicRowsOptions as Yt, MaybeRefLike as Z, useDynamicRows as Zt, StatusType as _, ColumnDragConfig as _t, getItem as a, StrictTableColumn as at, TreeKey as b, EditConfig as bt, setItem as c, TableInstance as ct, _default as d, TableRowKeyIssue as dt, usePrintWatermark as en, ParentChildLinkMode as et, ActionConfig as f, UseTableExpandOptions as ft, StatusConfig as g, BatchActionsConfig as gt, IconConfig as h, useRowEdit as ht, useTableQuery as i, COMPONENT_LOCALE_KEY as in, SimpleTableActions as it, createHighlight as j, ExportConfig as jt, HighlightAPI as k, createEditModeChecker as kt, useTreeOperations as l, TableProps as lt, DropInfo as m, useTableManager as mt, TableQueryResult as n, useComponentLocale as nn, RowAction as nt, removeAllItem as o, TableColumn as ot, ButtonType as p, UseTableExpandReturn as pt, ColumnWithKey as q, UseRowDragReturn as qt, UseTableQueryOptions as r, COMPONENT_FEEDBACK_KEY as rn, SelectOption as rt, removeItem as s, TableEmits as st, TableQueryContext as t, useComponentFeedback as tn, RenderFunction as tt, presetConfigs as u, TableRowKey as ut, TreeEmits as v, CrudBinding as vt, TreeOption$1 as w, SummaryConfig as wt, TreeMode as x, ErrorConfig as xt, TreeExpose as y, DisplayConfig as yt, useTableColumns as z, mergeGlobalConfig as zt };