@robot-admin/naive-ui-components 0.14.3 → 0.16.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 +35 -0
- package/README.md +130 -741
- package/README_EN.md +137 -678
- package/dist/C_ActionBar.css +57 -58
- package/dist/C_ActionBar2.cjs +1 -1
- package/dist/C_ActionBar2.js +1 -1
- package/dist/C_AntV.css +232 -238
- package/dist/C_AntV2.cjs +2 -2
- package/dist/C_AntV2.js +2 -2
- package/dist/C_AudioPlayer.css +9 -9
- package/dist/C_AvatarGroup.css +5 -6
- package/dist/C_Barcode.css +1 -1
- package/dist/C_Breadcrumb.css +15 -18
- package/dist/C_Breadcrumb2.cjs +1 -1
- package/dist/C_Breadcrumb2.js +1 -1
- package/dist/C_Captcha.css +46 -49
- package/dist/C_Captcha2.cjs +1 -1
- package/dist/C_Captcha2.js +1 -1
- package/dist/C_Cascade.css +5 -6
- package/dist/C_Chat.css +8 -8
- package/dist/C_City.css +2 -2
- package/dist/C_Code.css +9 -9
- package/dist/C_CollapsePanel.css +9 -9
- package/dist/C_ContextMenu.css +31 -31
- package/dist/C_Cron.css +271 -274
- package/dist/C_Date.css +1 -1
- package/dist/C_Draggable.css +10 -11
- package/dist/C_Editor.css +2 -2
- package/dist/C_FilePreview.css +423 -423
- package/dist/C_Form.base.css +608 -602
- package/dist/C_Form.cjs +1 -1
- package/dist/C_Form.css +610 -604
- package/dist/C_Form.d.cts +2 -2
- package/dist/C_Form.d.ts +2 -2
- package/dist/C_Form.js +1 -1
- package/dist/C_FormModal.cjs +1 -1
- package/dist/C_FormModal.css +12 -17
- package/dist/C_FormModal.js +1 -1
- package/dist/C_FormModal2.cjs +1 -1
- package/dist/C_FormModal2.js +1 -1
- package/dist/C_FormSearch.css +53 -55
- package/dist/C_FormSearch2.cjs +1 -1
- package/dist/C_FormSearch2.js +1 -1
- package/dist/C_FormulaEditor.css +204 -205
- package/dist/C_FullCalendar.css +13 -15
- package/dist/C_FullCalendar2.cjs +1 -1
- package/dist/C_FullCalendar2.js +1 -1
- package/dist/C_GlobalSearch.css +11 -12
- package/dist/C_Guide.css +10 -10
- package/dist/C_Icon.css +7 -8
- package/dist/C_ImageCropper.css +69 -69
- package/dist/C_Language.css +8 -8
- package/dist/C_Loading.css +22 -25
- package/dist/C_Loading2.cjs +1 -1
- package/dist/C_Loading2.js +1 -1
- package/dist/C_Login.css +130 -135
- package/dist/C_Login2.cjs +1 -1
- package/dist/C_Login2.js +1 -1
- package/dist/C_Map.css +22 -23
- package/dist/C_Markdown.css +6 -7
- package/dist/C_Menu.css +2 -5
- package/dist/C_Menu2.cjs +1 -1
- package/dist/C_Menu2.js +1 -1
- package/dist/C_NotificationCenter.css +316 -281
- package/dist/C_NotificationCenter.d.cts +2 -2
- package/dist/C_NotificationCenter.d.ts +2 -2
- package/dist/C_NotificationCenter2.cjs +1 -1
- package/dist/C_NotificationCenter2.js +1 -1
- package/dist/C_OrgChart.css +8 -8
- package/dist/C_PageLoading.css +34 -39
- package/dist/C_QRCode.css +5 -6
- package/dist/C_Signature.css +5 -6
- package/dist/C_Skeleton.css +2 -2
- package/dist/C_SplitPane.css +2 -2
- package/dist/C_Steps.css +5 -6
- package/dist/C_Table.base.css +1090 -879
- package/dist/C_Table.cjs +1 -1
- package/dist/C_Table.css +1096 -885
- package/dist/C_Table.d.cts +1 -1
- package/dist/C_Table.d.ts +1 -1
- package/dist/C_Table.js +1 -1
- package/dist/C_Tabs.css +5 -6
- package/dist/C_TagsView.css +60 -63
- package/dist/C_TagsView2.cjs +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_Theme.css +7 -8
- package/dist/C_Time.css +1 -1
- package/dist/C_Timeline.css +8 -8
- package/dist/C_Transfer.css +10 -11
- package/dist/C_Tree.css +16 -17
- package/dist/C_Upload.css +156 -157
- package/dist/C_VideoPlayer.css +267 -267
- package/dist/C_VtableGantt.css +2 -2
- package/dist/C_WaterFall.css +2 -2
- package/dist/C_WorkFlow.css +466 -470
- package/dist/C_WorkFlow2.cjs +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/Card.cjs +1 -0
- package/dist/Card.js +1 -0
- package/dist/Custom.cjs +1 -0
- package/dist/Custom.js +1 -0
- package/dist/Dynamic.cjs +1 -0
- package/dist/Dynamic.js +1 -0
- package/dist/Steps.cjs +1 -0
- package/dist/Steps.js +1 -0
- package/dist/Tabs.cjs +1 -0
- package/dist/Tabs.js +1 -0
- package/dist/cascader.cjs +1 -0
- package/dist/cascader.js +1 -0
- package/dist/color-picker.cjs +1 -0
- package/dist/color-picker.js +1 -0
- package/dist/constants3.d.cts +71 -117
- package/dist/constants3.d.ts +71 -117
- package/dist/constants4.d.cts +3 -3
- package/dist/constants4.d.ts +3 -3
- package/dist/constants5.d.cts +2 -2
- package/dist/constants5.d.ts +2 -2
- package/dist/context.cjs +1 -0
- package/dist/context.js +1 -0
- package/dist/contracts.d.cts +24 -0
- package/dist/contracts.d.ts +24 -0
- package/dist/createPageLoading.cjs +1 -1
- package/dist/createPageLoading.js +1 -1
- package/dist/data.cjs +1 -1
- package/dist/data.d.cts +9 -9
- package/dist/data.d.ts +9 -9
- package/dist/data.js +1 -1
- package/dist/date-picker.cjs +1 -0
- package/dist/date-picker.js +1 -0
- package/dist/feedback.cjs +1 -0
- package/dist/feedback.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 +7 -5
- package/dist/index.d.ts +7 -5
- 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 +5 -5
- package/dist/index10.vue.d.ts +3 -3
- package/dist/index11.vue.d.cts +3 -3
- package/dist/index11.vue.d.ts +2 -2
- package/dist/index12.vue.d.cts +2 -2
- package/dist/index12.vue.d.ts +1 -1
- package/dist/index13.vue.d.cts +1 -1
- package/dist/index14.vue.d.ts +9 -9
- package/dist/index15.vue.d.cts +9 -9
- package/dist/index15.vue.d.ts +1 -1
- package/dist/index16.vue.d.cts +1 -1
- package/dist/index18.vue.d.ts +4 -4
- package/dist/index19.vue.d.cts +4 -4
- package/dist/index19.vue.d.ts +2 -9
- package/dist/index2.vue.d.cts +2 -2
- package/dist/index2.vue.d.ts +2 -2
- package/dist/index20.vue.d.cts +1 -1
- package/dist/index20.vue.d.ts +1 -1
- package/dist/index21.vue.d.cts +2 -2
- package/dist/index21.vue.d.ts +2 -2
- package/dist/index22.vue.d.cts +1 -1
- package/dist/index22.vue.d.ts +1 -1
- package/dist/index23.vue.d.cts +1 -1
- package/dist/index23.vue.d.ts +1 -1
- package/dist/index25.vue.d.cts +4 -4
- package/dist/index25.vue.d.ts +4 -4
- package/dist/index26.vue.d.cts +1 -1
- package/dist/index26.vue.d.ts +1 -1
- package/dist/index27.vue.d.cts +5 -5
- package/dist/index27.vue.d.ts +5 -5
- package/dist/index28.vue.d.cts +3 -3
- package/dist/index28.vue.d.ts +3 -3
- package/dist/index3.vue.d.cts +3 -3
- package/dist/index3.vue.d.ts +3 -3
- package/dist/index4.vue.d.cts +2 -9
- package/dist/index6.vue.d.ts +4 -4
- package/dist/index7.vue.d.cts +4 -4
- package/dist/index8.vue.d.ts +3 -3
- package/dist/index9.vue.d.cts +3 -3
- package/dist/index9.vue.d.ts +5 -5
- package/dist/mapUtils.d.cts +5 -5
- package/dist/mapUtils.d.ts +5 -5
- package/dist/presets.d.cts +8 -2
- package/dist/presets.d.ts +8 -2
- package/dist/rate.cjs +1 -0
- package/dist/rate.js +1 -0
- package/dist/slider.cjs +1 -0
- package/dist/slider.js +1 -0
- package/dist/style.css +10725 -10722
- package/dist/time-picker.cjs +1 -0
- package/dist/time-picker.js +1 -0
- package/dist/upload.cjs +1 -0
- package/dist/upload.js +1 -0
- package/dist/useActionTask.cjs +1 -0
- package/dist/useActionTask.js +1 -0
- package/dist/useCalendarEvents.d.cts +2 -2
- package/dist/useCalendarEvents.d.ts +2 -2
- package/dist/useCollapsePanel.d.cts +5 -5
- package/dist/useCollapsePanel.d.ts +5 -5
- package/dist/useComponentLocale.cjs +1 -0
- package/dist/useComponentLocale.js +1 -0
- package/dist/useCropperCore.d.cts +8 -8
- package/dist/useCropperCore.d.ts +8 -8
- package/dist/useDraggableLayout.d.cts +9 -9
- package/dist/useDraggableLayout.d.ts +9 -9
- package/dist/useDynamicFormState.cjs +1 -0
- package/dist/useDynamicFormState.d.cts +64 -40
- package/dist/useDynamicFormState.d.ts +64 -40
- package/dist/useDynamicFormState.js +1 -0
- package/dist/useEdgeInteraction.d.cts +2 -2
- package/dist/useEdgeInteraction.d.ts +2 -2
- package/dist/useQRCode.d.cts +2 -2
- package/dist/useQRCode.d.ts +2 -2
- package/dist/useSearchState.d.cts +14 -724
- package/dist/useSearchState.d.ts +14 -833
- package/dist/useSignatureHistory.d.cts +3 -3
- package/dist/useSignatureHistory.d.ts +3 -3
- package/dist/useSplitResize.d.cts +5 -5
- package/dist/useSplitResize.d.ts +5 -5
- package/dist/useTableQuery.cjs +3 -3
- package/dist/useTableQuery.d.cts +66 -33
- package/dist/useTableQuery.d.ts +66 -33
- package/dist/useTableQuery.js +3 -3
- package/dist/useTimeSelection.d.cts +2 -2
- package/dist/useTimeSelection.d.ts +2 -2
- package/dist/useTreeOperations.d.cts +7 -7
- package/dist/useTreeOperations.d.ts +7 -7
- package/dist/useWorkflowValidation.d.cts +5 -5
- package/dist/useWorkflowValidation.d.ts +5 -5
- package/dist/verification.d.cts +1 -1
- package/dist/verification.d.ts +1 -1
- package/docs/architecture.en.md +83 -0
- package/docs/architecture.md +83 -0
- package/docs/assets/README.md +47 -0
- package/docs/assets/naive-ui-components-banner.png +0 -0
- package/docs/assets/naive-ui-components-banner.svg +69 -0
- package/docs/assets/naive-ui-components-logo.png +0 -0
- package/docs/assets/naive-ui-components-logo.svg +22 -0
- package/docs/components.en.md +118 -0
- package/docs/components.md +118 -0
- package/docs/engineering.en.md +132 -0
- package/docs/engineering.md +133 -0
- package/docs/guides/notification-center.md +95 -0
- package/docs/guides/usage.en.md +638 -0
- package/docs/guides/usage.md +699 -0
- package/docs/performance-0.15.0.md +20 -0
- package/docs/security-scan-2026-10-06.md +11 -0
- package/docs/security-scan-2026-10-18.md +16 -0
- package/package.json +29 -11
- package/dist/C_Form2.cjs +0 -1
- package/dist/C_Form2.js +0 -1
- package/dist/config.cjs +0 -1
- package/dist/config.d.cts +0 -33
- package/dist/config.d.ts +0 -33
- package/dist/config.js +0 -1
|
@@ -93,26 +93,26 @@ interface SignatureEmits {
|
|
|
93
93
|
//#region src/components/C_Signature/index.vue.d.ts
|
|
94
94
|
declare const __VLS_export: vue.DefineComponent<SignatureProps, SignatureExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
95
95
|
change: (data: SignatureStroke[]) => any;
|
|
96
|
-
clear: () => any;
|
|
97
96
|
error: (error: Error) => any;
|
|
98
97
|
"start-draw": () => any;
|
|
99
98
|
drawing: (point: SignaturePoint) => any;
|
|
100
99
|
"end-draw": (stroke: SignatureStroke) => any;
|
|
100
|
+
clear: () => any;
|
|
101
101
|
undo: () => any;
|
|
102
102
|
redo: () => any;
|
|
103
103
|
}, string, vue.PublicProps, Readonly<SignatureProps> & Readonly<{
|
|
104
104
|
onChange?: ((data: SignatureStroke[]) => any) | undefined;
|
|
105
|
-
onClear?: (() => any) | undefined;
|
|
106
105
|
onError?: ((error: Error) => any) | undefined;
|
|
107
106
|
"onStart-draw"?: (() => any) | undefined;
|
|
108
107
|
onDrawing?: ((point: SignaturePoint) => any) | undefined;
|
|
109
108
|
"onEnd-draw"?: ((stroke: SignatureStroke) => any) | undefined;
|
|
109
|
+
onClear?: (() => any) | undefined;
|
|
110
110
|
onUndo?: (() => any) | undefined;
|
|
111
111
|
onRedo?: (() => any) | undefined;
|
|
112
112
|
}>, {
|
|
113
113
|
disabled: boolean;
|
|
114
|
-
showToolbar: boolean;
|
|
115
114
|
height: number | string;
|
|
115
|
+
showToolbar: boolean;
|
|
116
116
|
width: number | string;
|
|
117
117
|
readonly: boolean;
|
|
118
118
|
maxHistory: number;
|
|
@@ -93,26 +93,26 @@ interface SignatureEmits {
|
|
|
93
93
|
//#region src/components/C_Signature/index.vue.d.ts
|
|
94
94
|
declare const __VLS_export: vue.DefineComponent<SignatureProps, SignatureExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
95
95
|
change: (data: SignatureStroke[]) => any;
|
|
96
|
-
clear: () => any;
|
|
97
96
|
error: (error: Error) => any;
|
|
98
97
|
"start-draw": () => any;
|
|
99
98
|
drawing: (point: SignaturePoint) => any;
|
|
100
99
|
"end-draw": (stroke: SignatureStroke) => any;
|
|
100
|
+
clear: () => any;
|
|
101
101
|
undo: () => any;
|
|
102
102
|
redo: () => any;
|
|
103
103
|
}, string, vue.PublicProps, Readonly<SignatureProps> & Readonly<{
|
|
104
104
|
onChange?: ((data: SignatureStroke[]) => any) | undefined;
|
|
105
|
-
onClear?: (() => any) | undefined;
|
|
106
105
|
onError?: ((error: Error) => any) | undefined;
|
|
107
106
|
"onStart-draw"?: (() => any) | undefined;
|
|
108
107
|
onDrawing?: ((point: SignaturePoint) => any) | undefined;
|
|
109
108
|
"onEnd-draw"?: ((stroke: SignatureStroke) => any) | undefined;
|
|
109
|
+
onClear?: (() => any) | undefined;
|
|
110
110
|
onUndo?: (() => any) | undefined;
|
|
111
111
|
onRedo?: (() => any) | undefined;
|
|
112
112
|
}>, {
|
|
113
113
|
disabled: boolean;
|
|
114
|
-
showToolbar: boolean;
|
|
115
114
|
height: number | string;
|
|
115
|
+
showToolbar: boolean;
|
|
116
116
|
width: number | string;
|
|
117
117
|
readonly: boolean;
|
|
118
118
|
maxHistory: number;
|
|
@@ -66,27 +66,27 @@ type __VLS_Slots = {} & {
|
|
|
66
66
|
second?: (props: typeof __VLS_13) => any;
|
|
67
67
|
};
|
|
68
68
|
declare const __VLS_base: vue.DefineComponent<Props, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
69
|
-
resize: (firstSize: number, secondSize: number) => any;
|
|
70
|
-
collapse: (target: CollapseTarget) => any;
|
|
71
69
|
expand: (target: CollapseTarget) => any;
|
|
70
|
+
collapse: (target: CollapseTarget) => any;
|
|
72
71
|
"drag-start": (size: number) => any;
|
|
73
72
|
"drag-end": (size: number) => any;
|
|
73
|
+
resize: (firstSize: number, secondSize: number) => any;
|
|
74
74
|
}, string, vue.PublicProps, Readonly<Props> & Readonly<{
|
|
75
|
-
onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
|
|
76
|
-
onCollapse?: ((target: CollapseTarget) => any) | undefined;
|
|
77
75
|
onExpand?: ((target: CollapseTarget) => any) | undefined;
|
|
76
|
+
onCollapse?: ((target: CollapseTarget) => any) | undefined;
|
|
78
77
|
"onDrag-start"?: ((size: number) => any) | undefined;
|
|
79
78
|
"onDrag-end"?: ((size: number) => any) | undefined;
|
|
79
|
+
onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
|
|
80
80
|
}>, {
|
|
81
81
|
disabled: boolean;
|
|
82
82
|
direction: SplitDirection;
|
|
83
|
+
step: number;
|
|
83
84
|
collapsible: boolean;
|
|
84
85
|
maxSize: number;
|
|
85
86
|
defaultSize: number;
|
|
86
87
|
minSize: number;
|
|
87
88
|
showCollapseButton: boolean;
|
|
88
89
|
gutterSize: number;
|
|
89
|
-
step: number;
|
|
90
90
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
91
91
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
92
92
|
declare const _default: typeof __VLS_export;
|
package/dist/useSplitResize.d.ts
CHANGED
|
@@ -66,27 +66,27 @@ type __VLS_Slots = {} & {
|
|
|
66
66
|
second?: (props: typeof __VLS_13) => any;
|
|
67
67
|
};
|
|
68
68
|
declare const __VLS_base: vue.DefineComponent<Props, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
69
|
-
resize: (firstSize: number, secondSize: number) => any;
|
|
70
|
-
collapse: (target: CollapseTarget) => any;
|
|
71
69
|
expand: (target: CollapseTarget) => any;
|
|
70
|
+
collapse: (target: CollapseTarget) => any;
|
|
72
71
|
"drag-start": (size: number) => any;
|
|
73
72
|
"drag-end": (size: number) => any;
|
|
73
|
+
resize: (firstSize: number, secondSize: number) => any;
|
|
74
74
|
}, string, vue.PublicProps, Readonly<Props> & Readonly<{
|
|
75
|
-
onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
|
|
76
|
-
onCollapse?: ((target: CollapseTarget) => any) | undefined;
|
|
77
75
|
onExpand?: ((target: CollapseTarget) => any) | undefined;
|
|
76
|
+
onCollapse?: ((target: CollapseTarget) => any) | undefined;
|
|
78
77
|
"onDrag-start"?: ((size: number) => any) | undefined;
|
|
79
78
|
"onDrag-end"?: ((size: number) => any) | undefined;
|
|
79
|
+
onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
|
|
80
80
|
}>, {
|
|
81
81
|
disabled: boolean;
|
|
82
82
|
direction: SplitDirection;
|
|
83
|
+
step: number;
|
|
83
84
|
collapsible: boolean;
|
|
84
85
|
maxSize: number;
|
|
85
86
|
defaultSize: number;
|
|
86
87
|
minSize: number;
|
|
87
88
|
showCollapseButton: boolean;
|
|
88
89
|
gutterSize: number;
|
|
89
|
-
step: number;
|
|
90
90
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
91
91
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
92
92
|
declare const _default: typeof __VLS_export;
|
package/dist/useTableQuery.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
require(`./chunk.cjs`);const e=require(`./config.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./C_Loading2.cjs`),i=require(`./C_ActionBar2.cjs`),a=require(`./data.cjs`),o=require(`./C_Form2.cjs`);let s=require(`vue`),c=require(`naive-ui`);const l={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},u=e=>e===!1||e===void 0?l:e===!0?{editable:!0,editMode:`modal`,showRowActions:!0,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0}:{editable:e.enabled!==!1&&e.mode!==`none`,editMode:e.mode||`modal`,showRowActions:e.showRowActions!==!1&&e.mode!==`none`,modalTitle:e.modalTitle||`编辑数据`,modalWidth:e.modalWidth||600,onEditSave:e.onSave,onEditCancel:e.onCancel,onEditError:e.onError},d=e=>e?e===!0?{expandable:!0,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0}:{expandable:e.enabled!==!1,defaultExpandedKeys:e.defaultExpandedKeys,onLoadExpandData:e.onLoadData,onExpandError:e.onError,renderExpandContent:e.renderContent,rowExpandable:e.rowExpandable}:{expandable:!1,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0},f=e=>{if(!e)return{enableSelection:!1,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};if(e===!0)return{enableSelection:!0,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};let t=e.childSelection||{},n=e.parentChildLink||{};return{enableSelection:e.enabled!==!1,defaultCheckedKeys:e.defaultCheckedKeys,rowCheckable:e.rowCheckable,maxSelection:e.maxSelection,enableChildSelection:t.enabled||!1,childRowCheckable:t.childRowCheckable,enableParentChildLink:n.enabled||!1,parentChildLinkMode:n.mode||`loose`}},p=e=>{let t={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};return e===!1?{pagination:null}:e===!0||e===void 0?{pagination:t}:{pagination:{...t,...e}}},m=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},h={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function g(e){return e?{striped:e.striped??h.striped,bordered:e.bordered??h.bordered,singleLine:e.singleLine??h.singleLine,size:e.size??h.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??h.columnWidth}:{...h}}const _=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1,toolbarActions:e?.actions??[],toolbarRightActions:e?.rightActions??[],toolbarActionBarConfig:e?.actionBar??{}}),v=e=>e?e===!0?{virtualScroll:!0,virtualItemHeight:34,virtualMaxHeight:600}:{virtualScroll:e.enabled!==!1,virtualItemHeight:e.itemHeight??34,virtualMaxHeight:e.maxHeight??600}:{virtualScroll:!1,virtualItemHeight:34,virtualMaxHeight:600},y=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},b=e=>e?e===!0?{enableColumnDrag:!0,columnDragHandleClass:void 0,columnDragAnimationDuration:150}:{enableColumnDrag:e.enabled!==!1,columnDragHandleClass:e.handleClass,columnDragAnimationDuration:e.animationDuration??150}:{enableColumnDrag:!1,columnDragHandleClass:void 0,columnDragAnimationDuration:150},x=e=>e?e===!0?{treeEnabled:!0,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1}:{treeEnabled:e.enabled!==!1,treeChildrenKey:e.childrenKey??`children`,treeIndent:e.indent??16,treeDefaultExpandAll:e.defaultExpandAll??!1}:{treeEnabled:!1,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1},S=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},C=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function w(e={}){return{feedback:e.feedback,locale:e.locale,...u(e.edit),...d(e.expand),...f(e.selection),...p(e.pagination),...m(e.dynamicRows),...g(e.display),..._(e.toolbar),...v(e.virtualScroll),...y(e.summary),...b(e.columnDrag),...x(e.tree),...S(e.rowDrag),...C(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const T=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function E(e,t){return(typeof e.message==`function`?e.message():e.message)||t}function D(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function O(e){if(typeof e==`number`)return e;if(typeof e==`string`||Array.isArray(e))return e.length}function k(e,t){return e===!1?t:e instanceof Error?e.message||t:typeof e==`string`?e||t:Array.isArray(e)&&e.length>0?k(e[0],t):null}async function A(e,t,n,r){let i=E(e,`${n}校验失败`),a=e.transform?e.transform(t):t;if(e.required&&D(a))return E(e,`${n}不能为空`);if(!e.required&&D(a))return null;if(e.enum&&!e.enum.includes(a)||e.pattern&&!new RegExp(e.pattern).test(String(a)))return i;let o=O(a);if(e.len!==void 0&&o!==e.len||e.min!==void 0&&o!==void 0&&o<e.min||e.max!==void 0&&o!==void 0&&o>e.max)return i;let s,c=e=>{s=e};try{if(e.validator){let t=k(await e.validator(e,a,c,r,{}),i);if(t)return t}if(s||e.asyncValidator&&(await e.asyncValidator(e,a,c,r,{}),s))return k(s,i)}catch(e){return e instanceof Error&&e.message?e.message:i}return null}function j(e){let t=(0,s.ref)(null),n=(0,s.ref)({}),r=(0,s.ref)(!1),i=(0,s.ref)([]),o=e=>t.value===e,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=e=>{let o=c(e);return!o||r.value?!1:(t.value=e,n.value={[String(e)]:a.t(o)},i.value=[],!0)},u=async()=>{if(t.value===null||r.value)return;let i=e.data();if(!i||!Array.isArray(i))return;let a=i.findIndex(n=>e.rowKey(n)===t.value);a>-1&&await e.onCancel?.(i[a],a),t.value=null,n.value={}},d=async()=>{if(i.value=[],t.value===null)return!0;let r=e.columns?.()||[],a=n.value[String(t.value)];if(!a)return!0;let o=r.filter(e=>e.editable!==!1&&e.editProps?.rules?.length).map(e=>{let t=typeof e.key==`string`?e.key:``;if(!t)return null;let n=e.title||t,r=a[t];return Promise.all(e.editProps.rules.map(e=>A(e,r,n,a))).then(e=>{let n=e.find(Boolean);return n?{field:t,message:n}:null})}).filter(Boolean),s=(await Promise.all(o)).filter(Boolean);return i.value=s,s.length===0},f=async()=>{if(t.value===null||r.value||!await d())return;let i=t.value,o=e.data();if(!o||!Array.isArray(o))return;let s=o.findIndex(t=>e.rowKey(t)===i);if(s===-1)return;let c=n.value[String(i)];if(c){r.value=!0;try{await e.onSave?.(a.t(c),s),t.value=null,n.value={}}finally{r.value=!1}return{updatedData:c,rowIndex:s}}},p=e=>{if(t.value===e)return n.value[String(e)]};return{editingRowKey:t,editingData:n,isSaving:r,isEditingRow:o,startEditRow:l,cancelEditRow:u,saveEditRow:f,validateRow:d,validationErrors:i,getEditingRowData:p,updateEditingRowData:(e,t,n)=>{let r=p(e);r&&(r[t]=a.t(n))},findRowData:c}}function M(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function N(e){let t=(0,s.ref)({rowKey:null,columnKey:null}),n=(0,s.ref)({}),r=(0,s.ref)(!1),i=(0,s.ref)(null),o=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=(e,o)=>{let s=c(e);return!s||!o||r.value?!1:(t.value={rowKey:e,columnKey:o},n.value={[M(e,o)]:a.t(s[o])},i.value=null,!0)},u=async()=>{i.value=null;let{rowKey:r,columnKey:a}=t.value;if(r===null||a===null)return!0;let o=(e.columns?.()||[]).find(e=>e.key===a);if(!o||!o.editProps?.rules)return!0;let s=M(r,a),l=n.value[s],u=o.title||a,d={...c(r),[a]:l},f=(await Promise.all(o.editProps.rules.map(e=>A(e,l,u,d)))).find(Boolean);return f?(i.value=f,!1):!0};return{editingCell:t,editingData:n,isSaving:r,isEditingCell:o,startEditCell:l,saveEditCell:async()=>{let{rowKey:i,columnKey:o}=t.value;if(i===null||o===null||r.value||!await u())return;let s=e.data();if(!s||!Array.isArray(s))return;let c=s.findIndex(t=>e.rowKey(t)===i);if(c===-1)return;let l=M(i,o),d=n.value[l],f={...s[c],[o]:d};r.value=!0;try{await e.onSave?.(a.t(f),c,o),t.value={rowKey:null,columnKey:null},n.value={}}finally{r.value=!1}return{updatedData:f,rowIndex:c,columnKey:o}},cancelEditCell:()=>{let{rowKey:e,columnKey:a}=t.value;r.value||(e!==null&&a!==null&&delete n.value[M(e,a)],t.value={rowKey:null,columnKey:null},i.value=null)},validateCell:u,cellValidationError:i,getEditingCellValue:(e,t)=>n.value[M(e,t)],updateEditingCellValue:(e,t,r)=>{o(e,t)&&(n.value[M(e,t)]=a.t(r))},findRowData:c}}function ee(e){let t=(0,s.ref)(!1),n=(0,s.ref)(!1),r=(0,s.ref)(null),i=(0,s.ref)({}),o=(0,s.computed)(()=>{if(r.value===null)return-1;let t=e.data();return Array.isArray(t)?t.findIndex(t=>e.rowKey(t)===r.value):-1});return{isModalVisible:t,isSaving:n,editingData:i,editingRowKey:r,editingRowIndex:o,startEdit:(o,s)=>{if(n.value)return!1;let c=e.data();if(!Array.isArray(c))return!1;let l=c.findIndex(t=>e.rowKey(t)===o);return l===-1?!1:(r.value=o,i.value=a.t(s??c[l]),t.value=!0,!0)},saveEdit:async s=>{if(n.value||r.value===null)return;let c=o.value;if(c===-1)return;let l=a.t(s??i.value);n.value=!0;try{return await e.onSave?.(l,c),t.value=!1,r.value=null,i.value={},{updatedData:l,rowIndex:c}}finally{n.value=!1}},cancelEdit:async()=>{if(n.value)return!1;let a=o.value;try{if(r.value!==null&&a>-1){let t=e.data();t[a]&&await e.onCancel?.(t[a],a)}}finally{t.value=!1,r.value=null,i.value={}}return!0},updateEditingData:e=>n.value?!1:(i.value=a.t(e),!0),resetEditingState:()=>n.value?!1:(r.value=null,i.value={},!0),isEditingRow:e=>r.value===e&&t.value,getEditingRowData:e=>r.value===e?i.value:null}}const P=e=>({expandedKeys:(0,s.ref)([...e.defaultExpandedKeys||[]]),expandDataMap:(0,s.ref)(new Map),loadingMap:(0,s.ref)(new Map),checkedKeys:e.enableSelection?(0,s.ref)([...e.defaultCheckedKeys||[]]):(0,s.ref)([]),childSelections:(e.enableChildSelection,(0,s.ref)(new Map))}),F=e=>{let t=(0,s.computed)(()=>(0,s.unref)(e.data)),n=e.rowKey;return{data:t,getRowKey:n,getChildRowKey:e.childRowKey||(e=>e.id),findRow:e=>t.value.find(t=>n(t)===e),isRowExpandable:t=>e.rowExpandable?.(t)??!0,isRowCheckable:t=>e.rowCheckable?.(t)??!0,isChildRowCheckable:(t,n)=>e.childRowCheckable?.(t,n)??!0}},te=(e,t,n)=>{let r=new Map,i=0,a=new Set(n.defaultExpandedKeys||[]),o=async i=>{if(!n.onLoadData)return[];let a=t.getRowKey(i),o=e.expandDataMap.value.get(a);if(o)return o;let s=r.get(a);if(s)return s;e.loadingMap.value.set(a,!0);let c=(async()=>{try{let t=await n.onLoadData(i)||[];return e.expandDataMap.value.set(a,t),n.enableChildSelection&&!e.childSelections.value.has(a)&&e.childSelections.value.set(a,[]),t}catch(e){return n.onError?.(e,i),[]}finally{r.delete(a),e.loadingMap.value.set(a,!1)}})();return r.set(a,c),c};return{loadData:o,handleRowExpand:async(r,s)=>{let c=t.getRowKey(r);if(i+=1,s){if(a.add(c),e.expandedKeys.value.includes(c)||(e.expandedKeys.value=[...e.expandedKeys.value,c]),await o(r),!a.has(c))return}else a.delete(c),e.expandedKeys.value=e.expandedKeys.value.filter(e=>e!==c);n.onExpandChange?.(e.expandedKeys.value,r,s)},expandAll:async()=>{let r=++i,s=t.data.value.filter(t.isRowExpandable);a=new Set(s.map(t.getRowKey)),e.expandedKeys.value=[...a],await Promise.allSettled(s.map(o)),r===i&&(e.expandedKeys.value=s.map(t.getRowKey),n.onExpandChange?.(e.expandedKeys.value))},collapseAll:()=>{i+=1,a.clear(),e.expandedKeys.value=[],e.childSelections.value.clear(),n.onExpandChange?.(e.expandedKeys.value)},handleExpandChange:async r=>{let s=++i;a=new Set(r);let c=r.filter(t=>!e.expandedKeys.value.includes(t)),l=e.expandedKeys.value.filter(e=>!r.includes(e));for(let t of l)e.childSelections.value.delete(t);e.expandedKeys.value=[...r],await Promise.all(c.map(async e=>{let n=t.findRow(e);n&&await o(n)})),s===i&&n.onExpandChange?.(r)}}},ne=(e,t,n)=>{let r=(0,s.computed)(()=>t.data.value.filter(t.isRowCheckable));return{selectAll:()=>{if(!n.enableSelection)return;let i=r.value.map(t.getRowKey),a=n.maxSelection?i.slice(0,n.maxSelection):i;e.checkedKeys.value=a;let o=r.value.filter(e=>a.includes(t.getRowKey(e)));n.onSelectionChange?.(a,o,e.childSelections.value)},clearSelection:()=>{n.enableSelection&&(e.checkedKeys.value=[],n.onSelectionChange?.([],[],e.childSelections.value))},handleSelectionChange:i=>{if(!n.enableSelection)return;let a=new Set(r.value.map(e=>t.getRowKey(e))),o=[...new Set(i)].filter(e=>a.has(e)),s=n.maxSelection?o.slice(0,Math.max(0,n.maxSelection)):o;e.checkedKeys.value=s;let c=t.data.value.filter(e=>s.includes(t.getRowKey(e)));n.onSelectionChange?.(s,c,e.childSelections.value)},selectedRowsCount:(0,s.computed)(()=>e.checkedKeys.value.length),selectableRows:r}},re=(e,t)=>{let n=()=>!!(t.enableParentChildLink&&t.enableSelection&&t.enableChildSelection);return{handleParentChildLink:(r,i,a)=>{if(!n())return;let o=t.parentChildLinkMode===`strict`?i.length===a&&a>0:i.length>0,s=[...e.checkedKeys.value],c=s.includes(r);o&&!c?e.checkedKeys.value=[...s,r]:!o&&c&&(e.checkedKeys.value=s.filter(e=>e!==r))},isLinkEnabled:n}},ie=(e,t,n,r)=>({totalChildSelections:(0,s.computed)(()=>r.enableChildSelection?Array.from(e.childSelections.value.values()).reduce((e,t)=>e+t.length,0):0),clearAllSelections:()=>{e.checkedKeys.value=[],e.childSelections.value.clear(),r.onSelectionChange?.([],[],e.childSelections.value)},handleChildSelectionChange:(i,a)=>{if(!r.enableChildSelection)return;e.childSelections.value.set(i,a);let o=e.expandDataMap.value.get(i)||[],s=o.filter(e=>a.includes(t.getChildRowKey(e)));r.onChildSelectionChange?.(i,a,s),n.isLinkEnabled()&&n.handleParentChildLink(i,a,o.length)}}),I=(e,t,n,r,i)=>{if(!i.enableChildSelection)return;let a=t.childSelections.value.get(e)||[],o=t.expandDataMap.value.get(e)||[],s=n.findRow(e);if(!s)return;let c=o.filter(e=>n.isChildRowCheckable(e,s));return{selectedKeys:a,isAllChecked:c.length>0&&c.every(e=>a.includes(n.getChildRowKey(e))),selectAll:()=>{let t=c.map(e=>n.getChildRowKey(e));r.handleChildSelectionChange(e,t)},clearAll:()=>{r.handleChildSelectionChange(e,[])}}},L=e=>(0,s.h)(`div`,{class:`flex justify-center items-center py-8`},e?[e()]:[(0,s.h)(c.NSpin,{size:`small`}),(0,s.h)(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),ae=()=>(0,s.h)(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),R=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,align:`center`,titleAlign:`center`,render:(e,t)=>t+1},...Object.keys(t).filter(e=>![`id`,`key`].includes(e)).map(e=>({key:e,title:e.charAt(0).toUpperCase()+e.slice(1),width:120,align:`center`,titleAlign:`center`,ellipsis:{tooltip:!0}}))]},oe=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0}),o.push(...R(t)),(0,s.h)(`div`,{class:`p-4 bg-gray-50`},[(0,s.h)(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),(0,s.h)(c.NDataTable,{data:t,columns:o,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},se=(e,t,n,r,i)=>{let a=a=>{let o=t.getRowKey(a),c=e.expandDataMap.value.get(o)||[],l=e.loadingMap.value.get(o)||!1;!c.length&&!l&&e.expandedKeys.value.includes(o)&&(0,s.nextTick)(()=>{r.loadData(a)});let u=I(o,e,t,n,i);return i.renderContent?i.renderContent(a,c,l,u):l?L(i.renderLoading):c.length?oe(o,c,u,t,n,i):ae()};return{getTableColumns:e=>e.map(e=>e.type===`selection`&&i.enableSelection?{type:`selection`,disabled:e=>!t.isRowCheckable(e),multiple:!i.maxSelection||i.maxSelection>1}:e.type===`expand`&&(i.onLoadData||i.renderContent)?{type:`expand`,expandable:t.isRowExpandable,renderExpand:a}:e)}};function ce(e){let t=P(e),n=F(e),r=te(t,n,e),i=ne(t,n,e),a=ie(t,n,re(t,e),e),o=se(t,n,a,r,e);return e.onSelectionChange&&e.enableSelection&&(0,s.watchEffect)(()=>{if(!e.onSelectionChange)return;let r=n.data.value.filter(e=>t.checkedKeys.value.includes(n.getRowKey(e))),i=t.checkedKeys.value.length>0,a=n.data.value.length>0;(i||!a)&&e.onSelectionChange(t.checkedKeys.value,r,t.childSelections.value)}),e.defaultExpandedKeys?.length&&(0,s.nextTick)(async()=>{let i=e.defaultExpandedKeys||[];if(i.length===0)return;let a=i.map(async e=>{let i=n.findRow(e);i&&!t.expandDataMap.value.has(e)&&await r.loadData(i)});await Promise.allSettled(a)}),{expandedKeys:t.expandedKeys,checkedKeys:t.checkedKeys,childSelections:t.childSelections,selectedRowsCount:i.selectedRowsCount,totalChildSelections:a.totalChildSelections,expandAll:r.expandAll,collapseAll:r.collapseAll,expandRow:async e=>{if(t.expandedKeys.value.includes(e)&&!t.loadingMap.value.get(e))return;let i=n.findRow(e);i&&await r.handleRowExpand(i,!0)},handleExpandChange:r.handleExpandChange,selectAll:i.selectAll,clearSelection:i.clearSelection,clearAllSelections:a.clearAllSelections,handleSelectionChange:i.handleSelectionChange,getTableColumns:o.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap}}const le={text:`Robot Admin`,textSize:16,textColor:`rgba(128, 128, 128, 0.3)`,font:`Microsoft JhengHei`,opacity:.3,rotate:-20,position:`repeat`,xGap:200,yGap:120},ue={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},de={orientation:`portrait`,paperSize:`A4`,margin:`10mm 10mm 0 10mm`,style:`@page { margin: 10mm 10mm 0 10mm; } @media print { body { margin: 0; } }`,header:``,footer:``,showModal:!1,modalMessage:`正在准备打印...`,onLoadingStart:()=>{},onLoadingEnd:()=>{},onPrintDialogClose:()=>{}};function z(e,t,n,r){e.save(),e.translate(t/2,n/2),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}function B(e,t,n,r){[[50,50],[t-50,50],[50,n-50],[t-50,n-50]].forEach(([t,n])=>{e.save(),e.translate(t,n),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()})}function fe(e,t,n,r){let i=Math.sqrt(t*t+n*n),a=t/2,o=n/2;e.save(),e.translate(a,o),e.rotate(Math.atan2(n,t));let s=Math.floor(i/r.xGap),c=-i/2;for(let t=0;t<=s;t++){let n=c+t*r.xGap;e.fillText(r.text,n,0)}e.restore()}function pe(e,t,n,r){let i=Math.ceil(t/r.xGap)+1,a=Math.ceil(n/r.yGap)+1;for(let t=0;t<a;t++)for(let n=0;n<i;n++){let i=n*r.xGap+r.xGap/2,a=t*r.yGap+r.yGap/2;e.save(),e.translate(i,a),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}}function V(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...le,...t},{width:i,height:a}=e;n.save(),n.globalAlpha=r.opacity,n.font=`${r.textSize}px ${r.font}`,n.fillStyle=r.textColor,n.textAlign=`center`,n.textBaseline=`middle`;let o={center:z,corner:B,diagonal:fe,repeat:pe};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function H(e,t={}){if(typeof window>`u`)throw Error(`截图功能仅支持浏览器环境`);let n={...ue,...t},{default:r}=await import(`html2canvas`);return await r(e,{logging:n.logging,scale:n.scale,allowTaint:n.allowTaint,useCORS:n.useCORS,backgroundColor:n.backgroundColor,onclone:e=>{let t=e.body;t.style.transform=`scale(1)`}})}function U(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function W(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=U(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function G(e,t={}){if(typeof window>`u`)throw Error(`打印功能仅支持浏览器环境`);let n={...de,...t},{default:r}=await import(`print-js`);return new Promise((t,i)=>{try{n.onLoadingStart?.(),r({printable:e,type:`image`,style:n.style,showModal:n.showModal,modalMessage:n.modalMessage,onLoadingEnd:n.onLoadingEnd,onPrintDialogClose:()=>{n.onPrintDialogClose?.(),t()}})}catch(e){i(e)}})}function K(e,t,n){let r=0,i=0;e.forEach(e=>{let{width:n,height:a}=e;t===`horizontal`?(r+=n,i=Math.max(i,a)):(r=Math.max(r,n),i+=a)});let a=(e.length-1)*n;return t===`horizontal`?r+=a:i+=a,{totalWidth:r,totalHeight:i}}function q(e,t){let{orientation:n,spacing:r,backgroundColor:i,totalWidth:a,totalHeight:o}=t,s=document.createElement(`canvas`);s.width=a,s.height=o;let c=s.getContext(`2d`);if(!c)throw Error(`无法创建画布上下文`);c.fillStyle=i,c.fillRect(0,0,a,o);let l=0,u=0;return e.forEach(e=>{c.drawImage(e,l,u),n===`horizontal`?l+=e.width+r:u+=e.height+r}),s}function me(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function he(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>H(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=K(s,i,a);return r(60),q(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function ge(e,t,n,r,i){r(70),t.watermark&&V(e,t.watermark),r(90),await G(U(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function J(){let t=e.r(),n=(0,s.ref)(!1),r=(0,s.ref)(0),i=e=>{r.value=Math.max(0,Math.min(100,e))},a=async(e,t={})=>{try{i(0),i(30);let n=await H(e,t.capture);i(60),t.watermark&&V(n,t.watermark),i(90);let r=U(n,t.capture?.format||`png`,t.capture?.quality||.92);return i(100),r}catch(e){throw Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},o=async(e,r={})=>{n.value=!0,i(0);try{await(0,s.nextTick)();let n=await a(e,r);i(95),await G(n,r.print),i(100),t.success(`打印完成`)}catch(e){throw t.error(`打印失败: ${e instanceof Error?e.message:`未知错误`}`,e),e}finally{n.value=!1,i(0)}},c=async(e,r,i={})=>{n.value=!0;try{await(0,s.nextTick)();let n=await H(e,i.capture);i.watermark&&V(n,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;W(n,r||o,a),t.success(`下载完成`)}catch(e){throw t.error(`下载失败`,e),e}finally{n.value=!1}},l=async(e,t=`Robot Admin`)=>o(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),u=async(e,t={})=>{let n=e.length;i(10);let r=e.map(async(e,r)=>{let o=await a(e,t);return i(10+(r+1)/n*70),o});return Promise.all(r)},d=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await G(r,t),i<e.length-1&&await new Promise(e=>{setTimeout(()=>e(),1e3)})},Promise.resolve())};return{loading:n,progress:r,captureWithWatermark:a,printWithWatermark:o,downloadScreenshot:c,quickPrint:l,batchCapture:u,batchPrint:async(e,r={})=>{if(!e.length){t.warning(`没有要打印的元素`);return}n.value=!0;try{i(0);let n=await u(e,r);i(80),await d(n,r.print),i(100),t.success(`批量打印完成,共 ${e.length} 个元素`)}catch(e){throw t.error(`批量打印失败`,e),e}finally{n.value=!1,i(0)}},mergePrint:async(e,r={},a={})=>{let o=me(e,a,t);if(o){n.value=!0;try{await ge(await he(e,r,o,i),r,e.length,i,t)}catch(e){throw t.error(`合并打印失败`,e),e}finally{n.value=!1,i(0)}}},createPreset:(e,t)=>({use:e=>o(e,t),download:(e,n)=>c(e,n,t)}),updateProgress:i,utils:{captureElement:H,drawWatermark:V,canvasToDataURL:U,downloadCanvas:W,printImage:G}}}const _e={table:{watermark:{text:`Robot Admin - 数据表格`,position:`repeat`,textColor:`rgba(100, 100, 100, 0.25)`,textSize:14,xGap:250,yGap:120},capture:{scale:1.2},print:{orientation:`landscape`,style:`@page { margin: 8mm; } body { font-family: Arial, sans-serif; }`}},form:{watermark:{text:`Robot Admin - 表单数据`,position:`diagonal`,textColor:`rgba(150, 150, 150, 0.2)`,textSize:16},print:{orientation:`portrait`}},report:{watermark:{text:`Robot Admin - 机密报告`,position:`center`,textColor:`rgba(200, 50, 50, 0.15)`,textSize:24},capture:{quality:.95,format:`png`}}};function ve(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function ye(e,t){return typeof t==`function`?t(e):e[t]}function Y(e,t){let n=e?.()||{},r=typeof t==`string`?t:`id`;return{...n,[r]:ve()}}function X(n,r={}){let i={enabled:!0,rowKey:`id`,enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0,confirmDelete:!0,deleteConfirmText:``,printPreset:`table`,printTargetSelector:`.c-table-wrapper`,defaultRowData:()=>({})},a=(0,s.reactive)({...i,...(0,s.toValue)(r)});(0,s.watch)(()=>(0,s.toValue)(r),e=>{let t=a;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,i,e)},{deep:!0});let o=e.r(()=>a.feedback),{t:l}=e.i(()=>a.locale),u=`c-table-radio-${ve()}`,d=(0,s.ref)(null),f=(0,s.ref)(!1),p=(0,s.computed)(()=>d.value===null?null:n.value.find(e=>ye(e,a.rowKey)===d.value)||null),m=(0,s.computed)(()=>p.value?n.value.findIndex(e=>e===p.value):-1),h=(0,s.computed)(()=>m.value>0),g=(0,s.computed)(()=>m.value>=0&&m.value<n.value.length-1),{loading:_,progress:v,printWithWatermark:y,downloadScreenshot:b,quickPrint:x}=J(),S=()=>{if(a.printOptions)return a.printOptions;let e=_e[a.printPreset||`table`];return a.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:a.printWatermarkText}}:e},C=e=>{a.onRowChange?.(e)},w=()=>{if(!a.enabled||!a.enableAdd)return;let e=Y(a.defaultRowData,a.rowKey);C([...n.value,e]),a.onRowAdd?.(e),o.success(l(`table.addRowSuccess`))},T=()=>{if(!a.enabled||!a.enableInsert||!p.value){o.warning(l(`table.selectRowFirst`));return}let e=Y(a.defaultRowData,a.rowKey),t=[...n.value];t.splice(m.value+1,0,e),C(t),a.onRowAdd?.(e),o.success(l(`table.insertRowSuccess`))},E=()=>{if(!a.enabled||!a.enableDelete||!p.value){o.warning(l(`table.selectDeleteRowFirst`));return}a.confirmDelete?f.value=!0:D()},D=()=>{if(!p.value)return;let e=p.value,t=m.value;C(n.value.filter((e,n)=>n!==t)),d.value=null,a.onSelectionChange?.(null,null),a.onRowDelete?.(e,t),o.success(l(`table.deleteRowSuccess`)),f.value=!1},O=()=>{if(!a.enabled||!a.enableCopy||!p.value){o.warning(l(`table.selectCopyRowFirst`));return}let e=p.value,t=typeof a.rowKey==`string`?a.rowKey:`id`,{[t]:r,...i}=e,s={...i,[t]:ve()};C([...n.value,s]),a.onRowCopy?.(e,s),o.success(l(`table.copyRowSuccess`))},k=()=>{if(!a.enabled||!a.enableMove||!h.value)return;let e=m.value,t=[...n.value],r=t[e];[t[e],t[e-1]]=[t[e-1],t[e]],C(t),a.onRowMove?.(r,e,e-1),o.success(l(`table.moveUpSuccess`))},A=()=>{if(!a.enabled||!a.enableMove||!g.value)return;let e=m.value,t=[...n.value],r=t[e];[t[e],t[e+1]]=[t[e+1],t[e]],C(t),a.onRowMove?.(r,e,e+1),o.success(l(`table.moveDownSuccess`))},j=e=>{if(!a.enabled)return;let t=n.value.find(t=>ye(t,a.rowKey)===e);t&&(d.value=e,a.onSelectionChange?.(e,t))},M=()=>{d.value=null,a.onSelectionChange?.(null,null)},N=async e=>{if(!e.value){o.error(l(`table.printTargetMissing`));return}let t=S();await y(e.value,t)};return(0,s.onBeforeUnmount)(()=>{d.value=null,f.value=!1}),{selectedRowKey:d,selectedRowData:p,selectedRowIndex:m,canMoveUp:h,canMoveDown:g,deleteConfirmVisible:f,printLoading:_,printProgress:v,addRow:w,insertRow:T,deleteRow:E,confirmDelete:D,copyRow:O,moveRowUp:k,moveRowDown:A,selectRow:j,clearSelection:M,handlePrint:N,handleDownload:async(e,t)=>{if(!e.value){o.error(l(`table.downloadTargetMissing`));return}let n=S();await b(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){o.error(l(`table.printTargetMissing`));return}let t=a.printWatermarkText||`Robot Admin`;await x(e.value,t)},enhanceColumns:e=>{if(!a.enabled)return e;let t=[...e];return a.enabled&&a.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:l(`common.select`),width:80,align:`center`,editable:!1,render:e=>{let t=ye(e,a.rowKey);return(0,s.h)(`div`,{class:`flex justify-center`},[(0,s.h)(`input`,{type:`radio`,name:u,"aria-label":l(`common.select`),checked:d.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&j(t)}})])}}),t},renderToolbar:e=>{if(!a.enabled)return null;let n=[];a.enablePrint&&n.push((0,s.h)(c.NButton,{loading:_.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(a.printTargetSelector);t?await N((0,s.shallowRef)(t)):o.warning(l(`table.printTargetMissing`))}catch(e){o.error(l(`table.printTargetMissing`),e)}}},{icon:()=>(0,s.h)(t.t,{name:`mdi:printer`,title:l(`common.print`)}),default:()=>l(`common.print`)}));let r=[];return a.enableAdd&&r.push((0,s.h)(c.NButton,{onClick:w,type:`primary`},{icon:()=>(0,s.h)(t.t,{name:`mdi:plus`,title:l(`table.addRow`)}),default:()=>l(`table.addRow`)})),a.enableInsert&&r.push((0,s.h)(c.NTooltip,{disabled:!!p.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:T,disabled:!p.value,type:`primary`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:table-row-plus-after`,title:l(`table.insertRow`)}),default:()=>l(`table.insertRow`)}),default:()=>l(`table.selectRowFirst`)})),a.enableDelete&&r.push((0,s.h)(c.NTooltip,{disabled:!!p.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:E,disabled:!p.value,type:`error`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:delete`,title:l(`table.deleteRow`)}),default:()=>l(`table.deleteRow`)}),default:()=>l(`table.selectDeleteRowFirst`)})),a.enableCopy&&r.push((0,s.h)(c.NTooltip,{disabled:!!p.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:O,disabled:!p.value,type:`info`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:content-copy`,title:l(`table.copyRow`)}),default:()=>l(`table.copyRow`)}),default:()=>l(`table.selectCopyRowFirst`)})),a.enableMove&&r.push((0,s.h)(c.NTooltip,{disabled:h.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:k,disabled:!h.value,type:`warning`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:arrow-up`,title:l(`table.moveUp`)}),default:()=>l(`table.moveUp`)}),default:()=>p.value?l(`table.firstRow`):l(`table.selectRowFirst`)}),(0,s.h)(c.NTooltip,{disabled:g.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:A,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:arrow-down`,title:l(`table.moveDown`)}),default:()=>l(`table.moveDown`)}),default:()=>p.value?l(`table.lastRow`):l(`table.selectRowFirst`)})),r.length>0&&n.push((0,s.h)(c.NButtonGroup,{},()=>r)),(0,s.h)(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[(0,s.h)(c.NSpace,{},()=>n)])},renderConfirmModal:()=>(0,s.h)(c.NModal,{show:f.value,"onUpdate:show":e=>{f.value=e},preset:`dialog`,title:l(`table.deleteTitle`),content:a.deleteConfirmText||l(`table.deleteRowContent`),positiveText:l(`table.confirmDeleteRow`),negativeText:l(`common.cancel`),onPositiveClick:D})}}function be(t){let{data:n,rowKey:r,emit:i}=t,a=()=>(0,s.toValue)(t.config),o=e.r(()=>a().feedback),{t:c}=e.i(()=>a().locale),l={onSave:async(e,t,r)=>{if(!e||t<0||t>=n().length)return;let o=[...n()];o[t]={...o[t],...e};try{await a().onEditSave?.(o[t],t,r),await i(`save`,o[t],t,r),i(`update:data`,o)}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},onCancel:async(e,t)=>{try{await a().onEditCancel?.(e,t),await i(`cancel`,e,t)}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},onExpandChange:(e,t,n)=>{i(`expand-change`,e,t,n)},onSelectionChange:(e,t,n)=>{i(`selection-change`,e,t,n)},onChildSelectionChange:(e,t,n)=>{i(`child-selection-change`,e,t,n)},onRowChange:e=>{i(`update:data`,e),a().dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,t)=>{i(`row-selection-change`,e,t),a().dynamicRows?.onSelectionChange?.(e,t)},onRowAdd:e=>{i(`row-add`,e),a().dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,t)=>{i(`row-delete`,e,t),a().dynamicRows?.onRowDelete?.(e,t)},onRowCopy:(e,t)=>{i(`row-copy`,e,t),a().dynamicRows?.onRowCopy?.(e,t)},onRowMove:(e,t,n)=>{i(`row-move`,e,t,n),a().dynamicRows?.onRowMove?.(e,t,n)}},u=()=>({rowEdit:j({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel,columns:t.columns}),cellEdit:N({data:n,rowKey:r,onSave:l.onSave,columns:t.columns}),modalEdit:ee({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel})}),d=()=>ce({data:(0,s.computed)(()=>n()),rowKey:r,childRowKey:e=>e.id,renderLoading:t.renderLoading,get defaultExpandedKeys(){return a().defaultExpandedKeys},get onLoadData(){return a().onLoadExpandData},onError:(e,t)=>{let n=a().onExpandError;n?n(e,t):o.error(c(`table.loadFailed`),e)},get renderContent(){return a().renderExpandContent},get rowExpandable(){return a().rowExpandable},get enableSelection(){return a().enableSelection},get defaultCheckedKeys(){return a().defaultCheckedKeys},get rowCheckable(){return a().rowCheckable},get maxSelection(){return a().maxSelection},get enableChildSelection(){return a().enableChildSelection},get childRowCheckable(){return a().childRowCheckable},get enableParentChildLink(){return a().enableParentChildLink},get parentChildLinkMode(){return a().parentChildLinkMode},onExpandChange:l.onExpandChange,onSelectionChange:l.onSelectionChange,onChildSelectionChange:l.onChildSelectionChange}),f=()=>X((0,s.computed)(()=>n()),(0,s.computed)(()=>({...a().dynamicRows,enabled:!!a().dynamicRows,feedback:a().feedback,locale:a().locale,onRowChange:l.onRowChange,onSelectionChange:l.onRowSelectionChange,onRowAdd:l.onRowAdd,onRowDelete:l.onRowDelete,onRowCopy:l.onRowCopy,onRowMove:l.onRowMove}))),p=u(),m=d(),h=f();return{editStates:p,expandState:m,dynamicRowsState:h,stateManager:{edit:{start(e,t){let n=a().editMode;n===`modal`?p.modalEdit.startEdit(e):n===`cell`&&t?p.cellEdit.startEditCell(e,t):(n===`row`||n===`both`)&&p.rowEdit.startEditRow(e)},cancel(){p.modalEdit.isModalVisible.value?p.modalEdit.cancelEdit():p.cellEdit.editingCell.value.rowKey===null?p.rowEdit.editingRowKey.value!==null&&p.rowEdit.cancelEditRow():p.cellEdit.cancelEditCell()},async save(){p.modalEdit.isModalVisible.value?await p.modalEdit.saveEdit():p.cellEdit.editingCell.value.rowKey===null?p.rowEdit.editingRowKey.value!==null&&await p.rowEdit.saveEditRow():await p.cellEdit.saveEditCell()},isEditing(e,t){return a().editMode===`modal`?p.modalEdit.isEditingRow(e):t?p.cellEdit.isEditingCell(e,t):p.rowEdit.isEditingRow(e)},getEditingData(){return p.modalEdit.isModalVisible.value?p.modalEdit.editingData.value:p.rowEdit.editingRowKey.value===null?null:p.rowEdit.getEditingRowData(p.rowEdit.editingRowKey.value)}},expand:{async row(e){if(m){let t=[...m.expandedKeys.value];t.includes(e)||(t.push(e),m.handleExpandChange(t))}},collapse(e){if(m){let t=m.expandedKeys.value.filter(t=>t!==e);m.handleExpandChange(t)}},async toggle(e){m?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await m?.expandAll()},collapseAll(){m?.collapseAll()},isExpanded(e){return m?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(m?.checkedKeys.value&&!m.checkedKeys.value.includes(e)){let t=[...m.checkedKeys.value,e];m.handleSelectionChange(t)}},unselect(e){if(m?.checkedKeys.value){let t=m.checkedKeys.value.filter(t=>t!==e);m.handleSelectionChange(t)}},all(){m?.selectAll()},clear(){m?.clearSelection()},isSelected(e){return m?.checkedKeys.value.includes(e)??!1},getSelected(){return m?.checkedKeys.value?n().filter(e=>m.checkedKeys.value.includes(r(e))):[]}},childSelection:{select(e,t){if(m?.childSelections.value){let n=m.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];m.childSelections.value.set(e,r),i(`child-selection-change`,e,r,[])}}},unselect(e,t){if(m?.childSelections.value){let n=(m.childSelections.value.get(e)||[]).filter(e=>e!==t);m.childSelections.value.set(e,n),i(`child-selection-change`,e,n,[])}},selectAll(e){if(m?.childSelections.value&&m.expandDataMap?.value){let t=m.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);m.childSelections.value.set(e,n),i(`child-selection-change`,e,n,t)}},clear(e){m?.childSelections.value&&(m.childSelections.value.set(e,[]),i(`child-selection-change`,e,[],[]))},getSelected(e){if(!m?.childSelections.value||!m.expandDataMap?.value)return[];let t=m.childSelections.value.get(e)||[];return(m.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){h?.addRow()},insert(){h?.insertRow()},delete(){h?.deleteRow()},copy(){h?.copyRow()},moveUp(){h?.moveRowUp()},moveDown(){h?.moveRowDown()},clearSelection(){h?.clearSelection()},getSelected(){return h?.selectedRowData.value||null},async print(e){h&&e&&await h.handlePrint((0,s.shallowRef)(e))},async download(e,t){h&&e&&await h.handleDownload((0,s.shallowRef)(e),t)}},clearAllSelections(){m?.clearAllSelections()}},expandedKeys:(0,s.computed)(()=>m?.expandedKeys.value??[]),checkedKeys:(0,s.computed)(()=>m?.checkedKeys.value??[]),eventHandlers:l}}const Z={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function Q(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function xe(e){let{data:t,config:n,emit:r}=e,i=(0,s.ref)(Z.page),a=(0,s.ref)(Z.pageSize),o=(0,s.computed)(()=>{let e=typeof t==`function`?t():(0,s.unref)(t);return Array.isArray(e)?e:[]}),c=(0,s.computed)(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??o.value.length)):o.value.length}),l=()=>n.value?.enabled?Math.max(1,Math.ceil(c.value/a.value)):1,u=(e,t)=>{let n=Math.min(Q(e,1),l());i.value!==n&&(i.value=n,t&&r?.(`pagination-change`,n,a.value))},d=e=>u(e,!0),f=e=>{let t=Q(e,Z.pageSize),n=a.value!==t;a.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},p=()=>u(1,!0),m=(0,s.computed)(()=>{let e=n.value;if(!e?.enabled||e.remote)return o.value;let t=(i.value-1)*a.value;return o.value.slice(t,t+a.value)}),h=(0,s.computed)(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:a.value,itemCount:c.value,showSizePicker:e.showSizePicker??Z.showSizePicker,showQuickJumper:e.showQuickJumper??Z.showQuickJumper,pageSizes:e.pageSizes??Z.pageSizes,simple:e.simple??Z.simple,size:e.size??Z.size,prefix:e=>`共 ${e.itemCount??0} 条`,suffix:e=>(e.itemCount??0)>0?`第 ${e.startIndex+1}-${e.endIndex} 条`:`暂无数据`,"onUpdate:page":d,"onUpdate:pageSize":f}:null});return(0,s.watch)(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{a.value=Q(t,Z.pageSize),i.value=Math.min(Q(e,Z.page),l())},{immediate:!0}),(0,s.watch)([c,a],()=>{let e=Math.min(i.value,l());e!==i.value&&(i.value=e,r?.(`pagination-change`,e,a.value))}),{currentPage:i,currentPageSize:a,paginatedData:m,paginationConfig:h,handlePageChange:d,handlePageSizeChange:f,resetToFirstPage:p,getTotalPages:l}}const Se=e=>e&&typeof e==`object`&&`error`in e?e.error:null;function Ce(n){let{actions:r,config:i,tableManager:a,rowKey:o,onRowDeleted:l,onViewDetail:u,isDeleteFeedbackHandled:d}=n,f=e.r(()=>i.value.feedback),{t:p}=e.i(()=>i.value.locale),m=e=>e===`edit`?i.value.editable&&r.value?.edit!==!1:typeof r.value?.[e]==`function`,h=e=>e!==!1&&typeof e==`function`,g=e=>e&&typeof e==`object`&&`data`in e?e.data:e,_=(e,n,r=`primary`,i)=>(0,s.h)(c.NButton,{size:`small`,type:r,quaternary:!0,onClick:i},()=>[(0,s.h)(t.t,{name:e,size:14,title:n})]),v=async(e,t)=>{let n=o(e),s=r.value?.edit;if(h(s)){try{await s(e,t)}catch(e){f.error(p(`table.actionFailed`,{action:p(`common.edit`)}),e)}return}i.value.editMode===`modal`?a.editStates.modalEdit.startEdit(n,{...e}):a.editStates.rowEdit.startEditRow(n)},y=async(e,t,n)=>{let r=d?.(e)===!0;try{let i=Se(await e(t,n));if(i!=null){r||f.error(p(`table.deleteFailed`),i);return}r||f.success(p(`table.deleteSuccess`)),l?.(t,n)}catch(e){throw r||f.error(p(`table.deleteFailed`),e),e}},b=async(e,t)=>{let n=r.value?.delete;h(n)&&await f.confirm({title:p(`table.deleteTitle`),content:p(`table.deleteContent`),positiveText:p(`common.confirm`),negativeText:p(`common.cancel`),type:`warning`})&&await y(n,e,t)},x=async(e,t)=>{let n=r.value?.detail;if(!h(n)){u?.(e);return}try{let r=g(await n(e,t));u?.(r||e)}catch(t){f.error(p(`table.detailFailed`),t),u?.(e)}},S=e=>a.editStates.rowEdit.isEditingRow(e)?[_(`mdi:check`,p(`common.save`),`primary`,()=>void a.editStates.rowEdit.saveEditRow().catch(e=>f.error(p(`table.actionFailed`,{action:p(`common.save`)}),e))),_(`mdi:close`,p(`common.cancel`),`default`,()=>a.editStates.rowEdit.cancelEditRow())]:[_(`mdi:pencil`,p(`common.edit`),`warning`,()=>a.editStates.rowEdit.startEditRow(e))],C=(e,t)=>{let n=[];return m(`detail`)&&n.push(_(`mdi:eye`,p(`common.detail`),`info`,()=>void x(e,t))),m(`edit`)&&(i.value.editMode===`modal`||h(r.value?.edit))&&n.push(_(`mdi:pencil`,p(`common.edit`),`warning`,()=>void v(e,t))),m(`delete`)&&n.push(_(`mdi:delete`,p(`common.delete`),`error`,()=>void b(e,t).catch(()=>void 0))),n},w=(e,n)=>{let i=r.value?.custom;if(!i?.length)return null;let a=i.filter(t=>t.show?t.show(e,n):!0);return a.length?(0,s.h)(c.NDropdown,{options:a.map(r=>{let i=typeof r.label==`function`?r.label(e,n):r.label,a=typeof r.icon==`function`?r.icon(e,n):r.icon;return{label:i,key:r.key,icon:()=>(0,s.h)(t.t,{name:a,size:14}),disabled:r.disabled?.(e,n)||!1}}),onSelect:t=>{let r=a.find(e=>e.key===t);if(!r)return;let i=typeof r.label==`function`?r.label(e,n):r.label;Promise.resolve(r.onClick(e,n)).catch(e=>f.error(p(`table.actionFailed`,{action:i}),e))}},()=>_(`mdi:dots-horizontal`,p(`table.moreActions`),`default`,()=>{})):null};return{renderActions:(e,t)=>{if(r.value?.render)return r.value.render(e,t);let n=o(e),l=[`row`,`both`].includes(i.value.editMode);if(l&&a.editStates.rowEdit.isEditingRow(n))return(0,s.h)(c.NSpace,{size:2,wrap:!1},()=>S(n));let u=h(r.value?.edit),d=[...l&&!u?S(n):[],...C(e,t)],f=w(e,t);return f&&d.push(f),(0,s.h)(c.NSpace,{size:2,wrap:!1},()=>d)},isActionEnabled:m}}const we=Symbol(`C_TABLE_GLOBAL_CONFIG`),Te={date:{format:`YYYY-MM-DD`},datetime:{format:`YYYY-MM-DD HH:mm:ss`},currency:{prefix:`¥`,precision:2},percent:{precision:2,suffix:`%`},number:{precision:0}};function Ee(e,t){if(e==null||e===``)return`-`;let n=new Date(typeof e==`number`?e:String(e));if(Number.isNaN(n.getTime()))return String(e);let r=e=>String(e).padStart(2,`0`);return t.replace(`YYYY`,String(n.getFullYear())).replace(`MM`,r(n.getMonth()+1)).replace(`DD`,r(n.getDate())).replace(`HH`,r(n.getHours())).replace(`mm`,r(n.getMinutes())).replace(`ss`,r(n.getSeconds()))}function De(e,t){if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):n.toLocaleString(`zh-CN`,{minimumFractionDigits:t,maximumFractionDigits:t})}const Oe={date:(e,t)=>Ee(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>Ee(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=De(e,t.precision??2);return n===`-`?`-`:`${t.prefix??`¥`}${n}${t.suffix??``}`},percent:(e,t)=>{if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):`${(n*100).toFixed(t.precision??2)}${t.suffix??`%`}`},number:(e,t)=>De(e,t.precision??0)};function ke(e,t,n,r){if(n.fn)return n.fn(e,t);if(n.type===`enum`)return n.mapping?n.mapping[String(e)]??String(e??`-`):String(e??`-`);let i=n.type&&Oe[n.type];return i?i(e,{...{...Te,...r}[n.type],...n.config}):String(e??`-`)}function Ae(){return(0,s.getCurrentInstance)()?(0,s.inject)(we,{}):{}}const je=(e,t)=>t===void 0?e:t&&e&&typeof t==`object`&&typeof e==`object`&&!Array.isArray(t)&&!Array.isArray(e)?{...e,...t}:t;function Me(e,t){let n=t.defaults??{},r={...n,...e};if([`edit`,`pagination`,`expand`,`selection`,`dynamicRows`,`toolbar`,`display`,`virtualScroll`,`summary`,`columnDrag`,`tree`,`rowDrag`,`crossPageSelection`,`export`,`formatterConfig`,`error`,`batchActions`].forEach(t=>{let i=je(n[t],e[t]);i!==void 0&&(r[t]=i)}),t.display){let e=typeof r.display==`object`?r.display:{};r.display={...t.display,...e}}if(t.pageSize&&r.pagination!==!1){let e=typeof r.pagination==`object`?r.pagination:{};e.pageSize||(r.pagination={...e,pageSize:t.pageSize})}return r}const Ne={number:c.NInputNumber,switch:c.NSwitch,input:c.NInput,email:c.NInput,mobile:c.NInput,date:e=>(0,s.h)(c.NDatePicker,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>(0,s.h)(c.NSelect,{...e,options:e.options||[]}),textarea:e=>(0,s.h)(c.NInput,{...e,type:`textarea`,rows:3})},Pe={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Fe=e=>e.map(e=>{let t=e.required?[{required:!0,message:`请输入${e.title}`,trigger:[`blur`,`input`],validator:async(t,n)=>{if(!n&&n!==0&&n!==!1)throw Error(`请输入${e.title}`)}}]:[];return{prop:e.key,label:e.title||e.key,type:Pe[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function Ie(e,t,n){if(e.editRender)return e.editRender(t,{},0);let r=e,i={value:t,"onUpdate:value":n,placeholder:`请输入${r.title??``}`,style:{width:`100%`},...e.editProps};return(0,s.h)(Ne[e.editType||`input`]||Ne.input,i)}function Le(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?ke(r,t,e.formatter,i):String(r??``)}function Re(e,n,r,i,a){let o=(e,n,r)=>(0,s.h)(`button`,{class:`cell-action-btn cell-action-${e}`,title:n,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[(0,s.h)(t.t,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return(0,s.h)(`div`,{class:`cell-editing-container`},[(0,s.h)(`div`,{class:`cell-editing-input`},[Ie(e,n,r)]),(0,s.h)(`div`,{class:`cell-editing-actions`},[o(`save`,`保存`,i),o(`cancel`,`取消`,a)])])}function ze(e,n,r,i,a,o){let c;return c=e.render?e.render(n,r)??String(i??``):e.formatter?ke(i,n,e.formatter,o):String(i??``),(0,s.h)(`div`,{class:`cell-edit-wrapper`},[(0,s.h)(`span`,{class:`cell-value`},c),(0,s.h)(t.t,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function Be(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:o,editModeChecker:c,showActionsColumn:l}=e,u=(0,s.ref)([]),d=(0,s.ref)(!1),f=e=>{let t=u.value.find(e=>e.key===`_actions`),n=e.filter(e=>e.key!==`_actions`);u.value=l.value?[...n,t||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]:n};(0,s.watch)([t,l],([e])=>{e?.length?f(e):u.value=[]},{deep:!0,immediate:!0});let p=(e,t,r,i)=>{let o=e.key??``,s=t[o],{isEditingCell:c,getEditingCellValue:l,updateEditingCellValue:u,saveEditCell:d,cancelEditCell:f,startEditCell:p}=a.editStates.cellEdit;return c(i,o)?Re(e,l(i,o)??s,e=>u(i,o,e),()=>d(),()=>f()):ze(e,t,r,s,()=>p(i,o),n.value.formatterConfig)},m=(e,t,r)=>{let o=e.key??``,s=t[o],l=i(t),u=c.value;return u.isNonEditable(e)?Le(e,t,r,s,n.value.formatterConfig):u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)?Ie(e,a.editStates.rowEdit.getEditingRowData(l)?.[o]??s,e=>a.editStates.rowEdit.updateEditingRowData(l,o,e)):u.isCellEditMode()?p(e,t,r,l):Le(e,t,r,s,n.value.formatterConfig)},h=e=>{let t=e.width||r||180;return typeof t==`number`?t:180},g=e=>{let t=e;return{key:`_index`,title:t.title||`序号`,width:typeof(t.width||50)==`number`&&t.width||50,titleAlign:`center`,align:`center`,render:(e,t)=>t+1,fixed:e.fixed}},_=e=>{let t=e,n={...t,width:h(e),titleAlign:t.titleAlign||`center`,align:t.align||`center`,render:e.render||((t,n)=>m(e,t,n))};return e.fixed&&(n.fixed=e.fixed),e.resizable&&typeof n.width==`number`&&(n.resizable=!0,n.minWidth=e.minWidth||80,n.maxWidth=e.maxWidth||500),n};return{reactiveColumns:u,showSettingsPanel:d,computedColumns:(0,s.computed)(()=>{let e=u.value.filter(e=>{let t=e;return t.visible!==!1&&t.key!==`_actions`}).map(e=>e.type===`index`?g(e):_(e));if(a.dynamicRowsState&&(e=a.dynamicRowsState.enhanceColumns(e)),a.expandState&&(n.value.expandable||n.value.enableSelection)&&(e=a.expandState.getTableColumns(e)),l.value){let t=u.value.find(e=>e.key===`_actions`);e.push({key:`_actions`,title:`操作`,width:t?.width??180,className:`c-table-actions-column`,align:`center`,titleAlign:`center`,render:o,fixed:t?.fixed})}return e}),computedScrollX:(0,s.computed)(()=>{if(e.scrollX!==void 0)return e.scrollX;if(u.value.some(e=>{let t=e;return t.fixed&&t.visible!==!1}))return u.value.filter(e=>e.visible!==!1).reduce((e,t)=>e+h(t),0)+200}),handleColumnChange:e=>{u.value=e.map(e=>{let t=e;return{...e,visible:t.visible!==!1,fixed:e.fixed,width:t.width||r,align:t.align||`center`,titleAlign:t.titleAlign||`center`}})}}}function Ve(e){let{data:t,onReorder:n,onSort:r}=e,i=(0,s.ref)(!1),a=null,o=0,c=!1,l=()=>{a?.destroy(),a=null,i.value=!1},u=async u=>{let d=++o;l();let f=(0,s.toValue)(e.config);if(!(!f?.enabled||!u||c))try{let{default:e}=await import(`sortablejs`);if(c||d!==o)return;let s=u.querySelector(`.n-data-table-tbody`);if(!s)return;a=new e(s,{animation:f.animationDuration??150,handle:f.handleSelector,ghostClass:f.ghostClass??`row-drag-ghost`,chosenClass:f.chosenClass??`row-drag-chosen`,onStart:()=>{i.value=!0},onEnd:e=>{if(i.value=!1,e.oldIndex==null||e.newIndex==null||e.oldIndex===e.newIndex)return;let a=[...t.value],[o]=a.splice(e.oldIndex,1);o&&(a.splice(e.newIndex,0,o),n?.(a),r?.(o,e.oldIndex,e.newIndex))}})}catch{}},d=()=>{o+=1,l()};return(0,s.onBeforeUnmount)(()=>{c=!0,d()}),{initRowDrag:u,destroyRowDrag:d,isDragging:i}}function He(e){let{allData:t,rowKey:n}=e,r=(0,s.ref)(new Set),i=()=>{let t=(0,s.toValue)(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},a=(0,s.computed)(()=>r.value.size),o=e=>e.map(e=>n(e)).filter(e=>r.value.has(e)),c=(t,a)=>{if(!(0,s.toValue)(e.config)?.enabled)return;let o=new Set(r.value);for(let e of a)o.delete(n(e));for(let e of t){let t=i();if(t&&o.size>=t)break;o.add(e)}r.value=o},l=()=>{if(!(0,s.toValue)(e.config)?.enabled)return;let a=[...new Set(t.value.map(e=>n(e)))],o=i();r.value=new Set(o?a.slice(0,o):a)},u=a=>{if(!(0,s.toValue)(e.config)?.enabled||!t.value.some(e=>n(e)===a))return!1;if(r.value.has(a))return!0;let o=i();return o&&r.value.size>=o?!1:(r.value=new Set([...r.value,a]),!0)},d=e=>{if(!r.value.has(e))return;let t=new Set(r.value);t.delete(e),r.value=t},f=()=>{r.value=new Set};return(0,s.watch)(t,e=>{let t=new Set(e.map(e=>n(e))),i=new Set([...r.value].filter(e=>t.has(e)));i.size!==r.value.size&&(r.value=i)}),(0,s.watch)(()=>[(0,s.toValue)(e.config)?.enabled,i()],([e,t])=>{if(!e){f();return}t&&r.value.size>t&&(r.value=new Set([...r.value].slice(0,t)))}),{selectedKeys:r,selectedCount:a,getPageCheckedKeys:o,handlePageSelectionChange:c,selectAll:l,select:u,unselect:d,clearAll:f,getSelectedRows:()=>t.value.filter(e=>r.value.has(n(e))),isSelected:e=>r.value.has(e)}}function Ue(e,t){return e.filter(e=>typeof e.key!=`string`||e.key.startsWith(`_`)||e.type===`selection`||e.type===`expand`?!1:t?.length?t.includes(e.key):e.visible!==!1)}function We(e,t,n){let r=e[t.key];return t.formatter?ke(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function Ge(e,t,n){let r=n&&/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return r.includes(t)||r.includes(`"`)||r.includes(`
|
|
2
|
-
`)||r.includes(`\r`)?`"${r.replace(/"/g,`""`)}"`:r}function
|
|
3
|
-
`)],{type:`text/csv;charset=utf-8;`}),`${Ke(n.filename)}.csv`)}async function Je(e,t,n){let r=Ue(t,n.columnKeys),i;try{i=await import(`xlsx`)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),qe(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>We(e,t,n.formatterConfig))),s=n.includeHeader===!1?o:[a,...o],c=i.utils.aoa_to_sheet(s),l=i.utils.book_new();i.utils.book_append_sheet(l,c,`Sheet1`),i.writeFile(l,`${Ke(n.filename)}.xlsx`)}function Ye(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>URL.revokeObjectURL(n),0)}async function Xe(e,t,n={}){n.format===`xlsx`?await Je(e,t,n):qe(e,t,n)}const Ze=e=>[{label:e.fixed?`✓ 取消固定`:`不固定`,key:`none`,disabled:!e.fixed},{label:e.fixed===`left`?`✓ 固定左侧`:`固定左侧`,key:`left`,disabled:!1},{label:e.fixed===`right`?`✓ 固定右侧`:`固定右侧`,key:`right`,disabled:!1}],Qe=[`_actions`],$e=[`selection`,`expand`],et=e=>Qe.includes(e.key)||$e.includes(e.type),$=e=>typeof e==`string`||typeof e==`number`&&Number.isFinite(e),tt=e=>typeof e==`number`&&Number.isFinite(e)&&e>=0||typeof e==`string`&&e.trim().length>0&&e.length<=128,nt=e=>e.map(e=>({...e})),rt=e=>{let t;try{t=JSON.parse(e)}catch{return[]}return Array.isArray(t)?t.flatMap((e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let n=e;return $(n.key)?[{key:n.key,order:t,...typeof n.visible==`boolean`&&{visible:n.visible},...tt(n.width)&&{width:n.width},...(n.fixed===`left`||n.fixed===`right`)&&{fixed:n.fixed}}]:[]}):[]},it=(e,t)=>{let n=new Map(rt(t).map(e=>[e.key,e]));return nt(e).map(e=>{let t=$(e.key)?n.get(e.key):void 0;return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:e}).sort((e,t)=>{let r=$(e.key)?n.get(e.key)?.order:void 0,i=$(t.key)?n.get(t.key)?.order:void 0;return(r??1/0)-(i??1/0)})},at=e=>JSON.stringify(e.filter(e=>$(e.key)).map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}))),ot={class:`column-management-tab`},st={class:`search-row`},ct={class:`resizable-control`},lt={class:`top-actions-bar`},ut={class:`stats-info`},dt={class:`quick-actions`},ft=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],pt={class:`column-info`},mt={class:`column-controls`},ht={class:`column-details`},gt={class:`column-actions`},_t={class:`drag-controls`},vt=(0,s.defineComponent)({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(e,{emit:n}){let r=e,i=n,a=e=>{if(!r.persistKey)return nt(e);try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);return t?it(e,t):nt(e)}catch{return nt(e)}},o=e=>{if(r.persistKey)try{localStorage.setItem(`c_table_cols_${r.persistKey}`,at(e))}catch{}},l=(0,s.ref)(a(r.columns)),u=(0,s.ref)(``),d=(0,s.ref)(),f=(0,s.ref)(null),p=(0,s.ref)(null),m=(0,s.ref)(!1);(0,s.onMounted)(()=>{m.value=l.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...l.value])}),(0,s.watch)(()=>r.columns,e=>{l.value=a(e),m.value=l.value.some(e=>e.resizable===!0)},{deep:!0});let h=(0,s.computed)(()=>{if(!u.value)return l.value;let e=u.value.toLowerCase();return l.value.filter(t=>String(t.title??``).toLowerCase().includes(e)||String(t.key??``).toLowerCase().includes(e))}),g=(0,s.computed)(()=>l.value.filter(e=>e.visible!==!1).length),_=(0,s.computed)(()=>l.value.length),v=e=>{l.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),T()},y=()=>v(!0),b=()=>v(!1),x=e=>{let t=h.value[e];return l.value.findIndex(e=>e.key===t.key)},S=(e,t)=>{let n=x(e);n!==-1&&(t(l.value[n]),T())},C=(e,t)=>{S(e,e=>{e.visible=t})},w=(e,t)=>{S(e,e=>{e.fixed=t===`none`?void 0:t})},T=()=>{o(l.value),i(`change`,[...l.value])},E=()=>{l.value=nt(r.columns),T()},D=e=>{l.value.forEach(t=>{et(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),T()},O=(e,t)=>{let n=x(e),r=x(t);if(n!==-1&&r!==-1){let[e]=l.value.splice(n,1);l.value.splice(r,0,e),T()}},k=(e,t)=>{if(h.value[e].key===`_actions`){t.preventDefault();return}f.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},A=(e,t)=>{t.preventDefault(),!(f.value===null||h.value[e].key===`_actions`)&&(p.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},j=e=>{f.value===null||h.value[e].key===`_actions`||(O(f.value,e),f.value=null,p.value=null)},M=()=>{f.value=null,p.value=null};return(e,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,ot,[(0,s.createCommentVNode)(` 搜索框和列宽调整开关 `),(0,s.createElementVNode)(`div`,st,[(0,s.createVNode)((0,s.unref)(c.NInput),{value:u.value,"onUpdate:value":n[0]||=e=>u.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:(0,s.withCtx)(()=>[(0,s.createVNode)(t.t,{name:`mdi:magnify`})]),_:1},8,[`value`]),(0,s.createElementVNode)(`div`,ct,[(0,s.createVNode)(t.t,{name:`mdi:arrow-split-vertical`,size:`14`,title:m.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),(0,s.createVNode)((0,s.unref)(c.NText),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:(0,s.withCtx)(()=>[...n[2]||=[(0,s.createTextVNode)(` 列宽调整 `,-1)]]),_:1}),(0,s.createVNode)((0,s.unref)(c.NSwitch),{value:m.value,"onUpdate:value":[n[1]||=e=>m.value=e,D],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),(0,s.createCommentVNode)(` 顶部操作栏:统计信息和快捷操作按钮 `),(0,s.createElementVNode)(`div`,lt,[(0,s.createElementVNode)(`div`,ut,[(0,s.createVNode)((0,s.unref)(c.NText),{depth:`3`,style:{fontSize:`13px`}},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)(` 已选 `+(0,s.toDisplayString)(g.value)+` / 总共 `+(0,s.toDisplayString)(_.value)+` 列 `,1)]),_:1})]),(0,s.createElementVNode)(`div`,dt,[(0,s.createVNode)((0,s.unref)(c.NSpace),{size:6},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{size:`tiny`,onClick:y},{default:(0,s.withCtx)(()=>[...n[3]||=[(0,s.createTextVNode)(` 全选 `,-1)]]),_:1}),(0,s.createVNode)((0,s.unref)(c.NButton),{size:`tiny`,onClick:b},{default:(0,s.withCtx)(()=>[...n[4]||=[(0,s.createTextVNode)(` 全不选 `,-1)]]),_:1}),(0,s.createVNode)((0,s.unref)(c.NButton),{size:`tiny`,onClick:E},{default:(0,s.withCtx)(()=>[...n[5]||=[(0,s.createTextVNode)(` 重置 `,-1)]]),_:1})]),_:1})])]),(0,s.createCommentVNode)(` 列列表 `),(0,s.createElementVNode)(`div`,{ref_key:`listRef`,ref:d,class:`column-list`},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(h.value,(e,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:e.key,class:(0,s.normalizeClass)([`column-item`,{disabled:e.key===`_actions`,"fixed-left":e.fixed===`left`,"fixed-right":e.fixed===`right`}]),draggable:e.key!==`_actions`,onDragstart:e=>k(r,e),onDragover:e=>A(r,e),onDragend:M,onDrop:e=>j(r)},[(0,s.createElementVNode)(`div`,pt,[(0,s.createElementVNode)(`div`,mt,[(0,s.createVNode)(t.t,{name:`mdi:drag`,size:`16`,class:(0,s.normalizeClass)([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),(0,s.createVNode)((0,s.unref)(c.NCheckbox),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>C(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),(0,s.createElementVNode)(`div`,ht,[(0,s.createVNode)((0,s.unref)(c.NSpace),{align:`center`,size:6},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NText),{strong:``,style:{fontSize:`13px`}},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NTag),{key:0,size:`tiny`,type:`info`},{default:(0,s.withCtx)(()=>[...n[6]||=[(0,s.createTextVNode)(` 左固定 `,-1)]]),_:1})):(0,s.createCommentVNode)(`v-if`,!0),e.fixed===`right`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NTag),{key:1,size:`tiny`,type:`warning`},{default:(0,s.withCtx)(()=>[...n[7]||=[(0,s.createTextVNode)(` 右固定 `,-1)]]),_:1})):(0,s.createCommentVNode)(`v-if`,!0)]),_:2},1024),(0,s.createVNode)((0,s.unref)(c.NText),{depth:`3`,style:{fontSize:`11px`}},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.key),1)]),_:2},1024)])]),(0,s.createElementVNode)(`div`,gt,[(0,s.createElementVNode)(`div`,_t,[(0,s.createVNode)(t.t,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:(0,s.normalizeClass)({disabled:r===0}),onClick:e=>r!==0&&O(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),(0,s.createVNode)(t.t,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==h.value.length-1,class:(0,s.normalizeClass)({disabled:r===h.value.length-1}),onClick:e=>r!==h.value.length-1&&O(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),(0,s.createVNode)((0,s.unref)(c.NDropdown),{options:(0,s.unref)(Ze)(e),onSelect:e=>w(r,e)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)(t.t,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:(0,s.normalizeStyle)({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,ft))),128))],512)]))}});var yt=n.t(vt,[[`__scopeId`,`data-v-6ff103ee`]]);function bt(e){return e}function xt(e){return e}function St(e,t){let n=new Map,r=[];return e.forEach((e,i)=>{let a;try{a=t(e)}catch(t){r.push({type:`error`,row:e,index:i,cause:t});return}if(a==null||a===``){r.push({type:`missing`,row:e,index:i});return}let o=n.get(a);if(o!==void 0){r.push({type:`duplicate`,row:e,index:i,key:a,firstIndex:o});return}n.set(a,i)}),r}function Ct(e,t,n){let r=new Set,i=new WeakSet,a=[...e],o=e=>{try{return n(e)}catch{return}},s=e=>e!=null&&e!==``;for(;a.length;){let e=a.pop();if(i.has(e))continue;i.add(e);let n=e[t];if(!Array.isArray(n)||n.length===0)continue;let c=o(e);s(c)&&r.add(c);for(let e of n)e&&typeof e==`object`&&a.push(e)}return[...r]}const wt=[`aria-busy`],Tt={key:1,class:`table-toolbar`},Et={class:`toolbar-left`},Dt={class:`toolbar-right`},Ot={key:2,class:`batch-actions-bar`},kt={class:`batch-info`},At={key:3,class:`table-error-state`},jt={class:`error-content`},Mt={class:`error-message`},Nt=(0,s.defineComponent)({name:`C_Table`,inheritAttrs:!1,__name:`index`,props:{wrapperClass:{},flexHeight:{type:Boolean},columns:{},data:{},loading:{},rowKey:{type:[String,Function],default:`id`},config:{default:()=>({})},crud:{}},emits:[`pagination-change`,`row-delete`,`batch-action-error`,`row-key-error`,`expand-change`,`selection-change`,`child-selection-change`,`parent-child-link-change`,`update:data`,`save`,`cancel`,`edit-error`,`row-add`,`row-copy`,`row-move`,`row-selection-change`,`view-detail`,`column-change`],setup(n,{expose:l,emit:u}){let d=n,f=u,p=(e,...t)=>{if(f(e,...t),d.crud)return{save:d.crud.save,cancel:d.crud.handleCancel,"pagination-change":d.crud.handlePaginationChange,"row-delete":d.crud.handleRowDelete,"view-detail":d.crud.detail?.show}[e]?.(...t)},m=Ae(),h=e=>typeof d.rowKey==`function`?d.rowKey(e):e[d.rowKey],g=(0,s.computed)(()=>{let e=d.config||{};if(d.crud){let t={};d.crud.actions&&(t.actions=d.crud.actions.value),d.crud.pagination&&(t.pagination=d.crud.pagination.value??void 0),e={...t,...e}}return Me(e,m)}),_=(0,s.computed)(()=>d.columns??d.crud?.columns.value??[]),v=(0,s.computed)(()=>w(g.value)),y=e.r(()=>v.value.feedback),{t:b}=e.i(()=>v.value.locale),x=(0,s.computed)(()=>T(v.value)),S=e=>e&&typeof e==`object`&&`value`in e?e.value:e,C=(0,s.computed)(()=>S(d.data)??d.crud?.data.value??[]),E=(0,s.computed)(()=>S(d.loading)??d.crud?.loading.value??!1),D=(0,s.computed)(()=>v.value.treeEnabled&&v.value.treeDefaultExpandAll?Ct(C.value,v.value.treeChildrenKey,h):[]),O=(0,s.computed)(()=>({...v.value,defaultExpandedKeys:[...new Set([...v.value.defaultExpandedKeys??[],...D.value])]})),k=``;(0,s.watch)(()=>C.value.map(e=>{try{return h(e)}catch{return}}),()=>{if(g.value.validateRowKeys===!1){k=``;return}let e=St(C.value,h);if(e.length===0){k=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==k&&(k=t,y.warning(b(`table.invalidRowKeys`,{count:e.length})),f(`row-key-error`,e))},{immediate:!0});let A=xe({data:C,config:(0,s.computed)(()=>v.value.pagination),emit:p}),j=be({config:O,data:()=>C.value,rowKey:h,emit:p,columns:()=>_.value,renderLoading:()=>(0,s.h)(r.t,{size:32,label:b(`table.loading`)})}),M=new Set;(0,s.watch)(D,e=>{if(!v.value.treeEnabled||!v.value.treeDefaultExpandAll){M.clear();return}let t=e.filter(e=>!M.has(e));e.forEach(e=>M.add(e));let n=j.expandedKeys.value,r=t.filter(e=>!n.includes(e));r.length&&j.expandState?.handleExpandChange([...n,...r])},{immediate:!0});let N=Ce({actions:(0,s.computed)(()=>g.value.actions||{}),config:v,tableManager:j,rowKey:h,onRowDeleted:(e,t)=>f(`row-delete`,e,t),isDeleteFeedbackHandled:e=>d.crud?.actions?.value.delete===e,onViewDetail:e=>p(`view-detail`,e)}),ee=(0,s.computed)(()=>{let{actions:e}=g.value;return!!(v.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),P=Be({rawColumns:_,config:v,columnWidth:v.value.columnWidth,scrollX:v.value.scrollX,rowKey:h,tableManager:j,actionsRenderer:N.renderActions,editModeChecker:x,showActionsColumn:ee}),{showSettingsPanel:F,reactiveColumns:te,computedColumns:ne,computedScrollX:re}=P,ie=Ve({data:A.paginatedData,rowKey:h,config:(0,s.computed)(()=>v.value.rowDrag),onReorder:e=>{let t=v.value.pagination;if(!t?.enabled||t.remote){p(`update:data`,e);return}let n=(A.currentPage.value-1)*A.currentPageSize.value,r=[...C.value];r.splice(n,e.length,...e),p(`update:data`,r)},onSort:(e,t,n)=>{let r=v.value.pagination?.enabled&&!v.value.pagination.remote?(A.currentPage.value-1)*A.currentPageSize.value:0;f(`row-move`,e,t+r,n+r)}}),I=He({allData:C,rowKey:h,config:(0,s.computed)(()=>v.value.crossPageSelection)}),L=(0,s.computed)(()=>v.value.crossPageSelection?.enabled===!0),ae=(0,s.computed)(()=>L.value?I.selectedCount.value:j.checkedKeys?.value?.length??0),R=(0,s.ref)(new Set),oe=async e=>{if(R.value.has(e.key))return;let t=L.value?[...I.selectedKeys.value]:j.checkedKeys?.value??[],n=L.value?I.getSelectedRows():C.value.filter(e=>t.includes(h(e)));R.value=new Set(R.value).add(e.key);try{await e.onClick(t,n),v.value.batchActions?.clearSelectionOnSuccess&&se()}catch(t){v.value.batchActions?.onError?.(t,e.key),f(`batch-action-error`,t,e.key)}finally{let t=new Set(R.value);t.delete(e.key),R.value=t}},se=()=>{L.value?I.clearAll():j.stateManager.selection.clear()},ce=(0,s.computed)(()=>L.value?I.getPageCheckedKeys(A.paginatedData.value):null),le=e=>{L.value&&I.handlePageSelectionChange(e,A.paginatedData.value),j.expandState?.handleSelectionChange?.(e)},ue=async()=>{let e=v.value.exportConfig??{};await Xe(C.value,_.value,{...e,formatterConfig:v.value.formatterConfig})},de=(0,s.computed)(()=>v.value.summaryRender),z=(0,s.ref)(),B=null,fe=0,pe=()=>{fe+=1,B?.destroy(),B=null},V=async()=>{let e=++fe;if(B?.destroy(),B=null,!(!v.value.enableColumnDrag||!z.value))try{let{default:t}=await import(`sortablejs`);if(e!==fe||!z.value)return;let n=z.value.querySelector(`.n-data-table-thead tr`);if(!n)return;B=new t(n,{animation:v.value.columnDragAnimationDuration,handle:v.value.columnDragHandleClass?`.${v.value.columnDragHandleClass}`:void 0,filter:`.c-table-actions-column`,preventOnFilter:!0,ghostClass:`column-drag-ghost`,onEnd:e=>{if(e.oldIndex==null||e.newIndex==null)return;let t=[...te.value],n=t.filter(e=>e.visible!==!1&&e.key!==`_actions`),r=n[e.oldIndex],i=n[e.newIndex];if(!r||!i||r===i)return;let a=t.indexOf(r),o=t.indexOf(i);t.splice(a,1),t.splice(o,0,r),P.handleColumnChange(t),f(`column-change`,t)}})}catch{}},H=(0,s.ref)(),U=(0,s.computed)(()=>({striped:v.value.striped,bordered:v.value.bordered,singleLine:v.value.singleLine,size:v.value.size,maxHeight:v.value.maxHeight})),W=(0,s.ref)(),G=(0,s.ref)(!1),K=(0,s.ref)({}),q=(0,s.computed)({get:()=>j.editStates.modalEdit.isModalVisible.value,set:e=>{j.editStates.modalEdit.isModalVisible.value=e}}),me=(0,s.computed)(()=>_.value.filter(e=>e.editable!==!1)),he=(0,s.computed)(()=>`edit-form-${j.editStates.modalEdit.editingRowKey.value??`new`}`),ge=(0,s.computed)(()=>Fe(me.value));(0,s.watch)(()=>j.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(K.value=a.t(e))},{immediate:!0,deep:!0});let J=null;(0,s.watch)(q,e=>{e&&J&&(clearTimeout(J),J=null),e||(J&&clearTimeout(J),J=setTimeout(()=>{K.value={},J=null},300))});let _e=async()=>{if(W.value){G.value=!0;try{await W.value.validate()}catch{G.value=!1;return}try{await j.editStates.modalEdit.saveEdit(K.value)}finally{G.value=!1}}},ve=()=>{K.value={},j.editStates.modalEdit.cancelEdit()},ye=e=>{P.handleColumnChange(e),f(`column-change`,P.reactiveColumns.value)},{edit:Y,expand:X,selection:Z,dynamicRows:Q}=j.stateManager,Se={startEdit:Y.start,cancelEdit:Y.cancel,saveEdit:Y.save,expandRow:X.row,collapseRow:X.collapse,toggleExpand:X.toggle,expandAll:X.all,collapseAll:X.collapseAll,selectRow:e=>L.value?I.select(e):(Z.select(e),Z.isSelected(e)),unselectRow:e=>{L.value?I.unselect(e):Z.unselect(e)},selectAll:()=>{L.value?I.selectAll():Z.all()},clearSelection:se,isRowSelected:e=>L.value?I.isSelected(e):Z.isSelected(e),clearAllSelections:()=>{I.clearAll(),j.stateManager.clearAllSelections()},selectChildRow:j.stateManager.childSelection.select,unselectChildRow:j.stateManager.childSelection.unselect,selectAllChildren:j.stateManager.childSelection.selectAll,clearChildrenSelection:j.stateManager.childSelection.clear,getChildSelectedRows:j.stateManager.childSelection.getSelected,addRow:Q.add,insertRow:Q.insert,deleteRow:Q.delete,copyRow:Q.copy,moveRowUp:Q.moveUp,moveRowDown:Q.moveDown,clearRowSelection:Q?.clearSelection,getSelectedRowData:Q.getSelected,printTable:e=>Q.print(e??z.value),downloadTableScreenshot:(e,t)=>Q.download(e??z.value,t),resetToFirstPage:A.resetToFirstPage,getTotalPages:A.getTotalPages,getSelectedRows:()=>L.value?I.getSelectedRows():Z.getSelected(),getEditingData:Y.getEditingData,isEditing:Y.isEditing,isExpanded:X.isExpanded,getManager:()=>j.stateManager,exportData:ue,crossPageSelection:{enabled:L,selectedKeys:I.selectedKeys,selectedCount:I.selectedCount,select:I.select,unselect:I.unselect,selectAll:I.selectAll,clearAll:I.clearAll,getSelectedRows:I.getSelectedRows}};return l(Se),(0,s.onMounted)(()=>{let e=d.crud?.tableRef;e&&(e.value=Se),V(),z.value&&ie.initRowDrag(z.value)}),(0,s.watch)([()=>v.value.enableColumnDrag,()=>v.value.columnDragHandleClass,()=>E.value,()=>ne.value.length],async()=>{await(0,s.nextTick)(),await V()},{immediate:!0,flush:`post`}),(0,s.watch)([()=>v.value.rowDrag,()=>E.value,()=>A.paginatedData.value.length,()=>A.currentPage.value],async()=>{await(0,s.nextTick)(),z.value&&await ie.initRowDrag(z.value)},{immediate:!0,deep:!0,flush:`post`}),(0,s.onBeforeUnmount)(()=>{J&&clearTimeout(J),pe(),ie.destroyRowDrag()}),(e,a)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{ref_key:`tableWrapperRef`,ref:z,class:(0,s.normalizeClass)([`c-table-wrapper`,[n.wrapperClass,{"c-table-wrapper--flex":n.flexHeight}]]),"aria-busy":E.value},[(0,s.createCommentVNode)(` 动态行工具栏 `),v.value.dynamicRows&&(0,s.unref)(j).dynamicRowsState?((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)((0,s.unref)(j).dynamicRowsState.renderToolbar(z.value)),{key:0})):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 表格工具栏 `),v.value.showToolbar?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,Tt,[(0,s.createElementVNode)(`div`,Et,[(0,s.renderSlot)(e.$slots,`toolbar-left`,{},void 0,!0),v.value.toolbarActions.length?((0,s.openBlock)(),(0,s.createBlock)(i.t,{key:0,actions:v.value.toolbarActions,config:{...v.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,s.createCommentVNode)(`v-if`,!0)]),(0,s.createElementVNode)(`div`,Dt,[(0,s.renderSlot)(e.$slots,`toolbar-right`,{},void 0,!0),v.value.toolbarRightActions.length?((0,s.openBlock)(),(0,s.createBlock)(i.t,{key:0,actions:v.value.toolbarRightActions,config:{align:`right`,...v.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,s.createCommentVNode)(`v-if`,!0),v.value.exportConfig?((0,s.openBlock)(),(0,s.createBlock)(t.t,{key:1,name:`mdi:download`,size:`18`,title:(0,s.unref)(b)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:a[0]||=e=>ue()},null,8,[`title`])):(0,s.createCommentVNode)(`v-if`,!0),v.value.enableColumnSettings?((0,s.openBlock)(),(0,s.createBlock)(t.t,{key:2,name:`mdi:cog`,size:`18`,title:(0,s.unref)(b)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:a[1]||=e=>F.value=!0},null,8,[`title`])):(0,s.createCommentVNode)(`v-if`,!0)])])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 批量操作栏 `),v.value.batchActions?.enabled&&ae.value>0?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,Ot,[(0,s.createElementVNode)(`span`,kt,(0,s.toDisplayString)((0,s.unref)(b)(`table.selectedCount`,{count:ae.value})),1),(0,s.createVNode)((0,s.unref)(c.NSpace),{size:8},{default:(0,s.withCtx)(()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(v.value.batchActions.actions||[],e=>((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NButton),{key:e.key,type:e.type||`default`,size:`small`,loading:R.value.has(e.key),disabled:R.value.has(e.key),onClick:t=>oe(e)},(0,s.createSlots)({default:(0,s.withCtx)(()=>[(0,s.createTextVNode)(` `+(0,s.toDisplayString)(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:(0,s.withCtx)(()=>[(0,s.createVNode)(t.t,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`loading`,`disabled`,`onClick`]))),128)),(0,s.createVNode)((0,s.unref)(c.NButton),{size:`small`,onClick:se},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`table.cancelSelection`)),1)]),_:1})]),_:1})])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 错误状态 `),v.value.error?.show?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,At,[(0,s.renderSlot)(e.$slots,`error`,{error:v.value.error},()=>[(0,s.createElementVNode)(`div`,jt,[(0,s.createVNode)(t.t,{name:`mdi:alert-circle-outline`,size:`48`}),(0,s.createElementVNode)(`p`,Mt,(0,s.toDisplayString)(v.value.error.message||(0,s.unref)(b)(`table.loadFailed`)),1),v.value.error.onRetry?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NButton),{key:0,type:`primary`,size:`small`,onClick:v.value.error.onRetry},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`common.retry`)),1)]),_:1},8,[`onClick`])):(0,s.createCommentVNode)(`v-if`,!0)])],!0)])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 表格主体 `),v.value.error?.show?(0,s.createCommentVNode)(`v-if`,!0):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NDataTable),(0,s.mergeProps)({key:4,ref_key:`tableRef`,ref:H},{...U.value,...e.$attrs},{"flex-height":n.flexHeight,columns:(0,s.unref)(ne),data:(0,s.unref)(A).paginatedData.value,loading:E.value,"row-key":h,"expanded-row-keys":(0,s.unref)(j).expandedKeys.value,"checked-row-keys":ce.value??(0,s.unref)(j).checkedKeys.value,"onUpdate:expandedRowKeys":(0,s.unref)(j).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":le,"scroll-x":(0,s.unref)(re),"virtual-scroll":v.value.virtualScroll,"min-row-height":v.value.virtualScroll?v.value.virtualItemHeight:void 0,"max-height":v.value.virtualScroll?v.value.virtualMaxHeight:v.value.maxHeight,summary:de.value,"summary-placement":v.value.summaryPosition,"children-key":v.value.treeEnabled?v.value.treeChildrenKey:void 0,indent:v.value.treeEnabled?v.value.treeIndent:void 0,"default-expand-all":v.value.treeEnabled?v.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),{loading:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`loading`,{},()=>[(0,s.createVNode)((0,s.unref)(r.t),{label:(0,s.unref)(b)(`table.loading`)},null,8,[`label`])],!0)]),_:3},16,[`flex-height`,`columns`,`data`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),(0,s.createCommentVNode)(` 分页 `),(0,s.unref)(A).paginationConfig.value?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NPagination),(0,s.mergeProps)({key:5},(0,s.unref)(A).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 编辑弹窗 `),v.value.editMode===`modal`||v.value.editMode===`both`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NModal),{key:6,show:q.value,"onUpdate:show":a[3]||=e=>q.value=e,title:v.value.modalTitle,width:v.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NSpace),{justify:`end`},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{onClick:ve},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`common.cancel`)),1)]),_:1}),(0,s.createVNode)((0,s.unref)(c.NButton),{type:`primary`,loading:G.value,onClick:_e},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`common.save`)),1)]),_:1},8,[`loading`])]),_:1})]),default:(0,s.withCtx)(()=>[q.value&&ge.value.length?((0,s.openBlock)(),(0,s.createBlock)(o.t,{ref_key:`editFormRef`,ref:W,key:he.value,modelValue:K.value,"onUpdate:modelValue":a[2]||=e=>K.value=e,options:ge.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):(0,s.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 动态行确认删除弹窗 `),v.value.dynamicRows&&(0,s.unref)(j).dynamicRowsState?((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)((0,s.unref)(j).dynamicRowsState.renderConfirmModal()),{key:7})):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 列设置抽屉 `),(0,s.createVNode)((0,s.unref)(c.NDrawer),{show:(0,s.unref)(F),"onUpdate:show":a[4]||=e=>(0,s.isRef)(F)?F.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NDrawerContent),{title:(0,s.unref)(b)(`table.columnSettings`),closable:``},{default:(0,s.withCtx)(()=>[(0,s.createVNode)(yt,{columns:(0,s.unref)(te),"persist-key":v.value.persistKey,onChange:ye},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],10,wt))}});var Pt=n.t(Nt,[[`__scopeId`,`data-v-26c4b784`]]);const Ft=(e,t)=>Number.isFinite(e)?Math.max(1,Math.floor(e)):t;function It(e){let t=(0,s.shallowRef)([]),n=(0,s.ref)(!1),r=(0,s.shallowRef)(),i=(0,s.ref)(0),o=a.t(e.initialQuery),c=(0,s.ref)(Ft(e.initialPage,1)),l=(0,s.ref)(Ft(e.pageSize,20)),u=(0,s.shallowRef)(a.t(o)),d=0,f=null,p=async()=>{let o=++d;f?.abort(),f=new AbortController,n.value=!0,r.value=void 0;try{let n=await e.request({page:c.value,pageSize:l.value,query:a.t(u.value),signal:f.signal});if(o!==d||f.signal.aborted)return!1;if(!Array.isArray(n.data)||!Number.isFinite(n.total))throw TypeError(`[C_Table] request 必须返回 { data: T[], total: number }`);return t.value=a.t([...n.data]),i.value=Math.max(0,Math.floor(n.total)),e.onSuccess?.({data:t.value,total:i.value}),!0}catch(t){return o!==d||f.signal.aborted?!1:(r.value=t,e.onError?.(t),!1)}finally{o===d&&(n.value=!1)}},m=async(e,t=!0)=>(u.value=a.t(typeof e==`function`?e(u.value):{...u.value,...e}),c.value=1,t?p():!0),h=async(e,t)=>(c.value=Ft(e,c.value),l.value=Ft(t,l.value),p()),g=async(e=!0)=>(u.value=a.t(o),c.value=1,e?p():!0),_=(0,s.computed)(()=>{let r=(0,s.toValue)(e.config)??{},a=typeof r.pagination==`object`?r.pagination:{};return{data:t.value,loading:n.value,columns:(0,s.toValue)(e.columns),rowKey:e.rowKey??`id`,config:{...r,pagination:{...a,enabled:!0,remote:!0,page:c.value,pageSize:l.value,total:i.value}}}}),v=(0,s.computed)(()=>({..._.value,onPaginationChange:h})),y=()=>{d+=1,f?.abort(),f=null,n.value=!1};return e.immediate!==!1&&(0,s.onMounted)(()=>void p()),(0,s.onScopeDispose)(y),{data:t,loading:n,error:r,total:i,page:c,pageSize:l,query:u,tableProps:_,execute:p,reload:p,setQuery:m,resetQuery:g,handlePaginationChange:h,bindings:v,cancel:y}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Pt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return bt}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return It}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return J}});
|
|
1
|
+
require(`./chunk.cjs`);const e=require(`./useComponentLocale.cjs`),t=require(`./feedback.cjs`),n=require(`./C_Icon2.cjs`),r=require(`./export-helper.cjs`),i=require(`./C_Loading2.cjs`),a=require(`./useActionTask.cjs`),o=require(`./C_ActionBar2.cjs`),s=require(`./data.cjs`);let c=require(`vue`),l=require(`naive-ui`);const u={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},d=e=>e===!1||e===void 0?u:e===!0?{editable:!0,editMode:`modal`,showRowActions:!0,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0}:{editable:e.enabled!==!1&&e.mode!==`none`,editMode:e.mode||`modal`,showRowActions:e.showRowActions!==!1&&e.mode!==`none`,modalTitle:e.modalTitle||`编辑数据`,modalWidth:e.modalWidth||600,onEditSave:e.onSave,onEditCancel:e.onCancel,onEditError:e.onError},f=e=>e?e===!0?{expandable:!0,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0}:{expandable:e.enabled!==!1,defaultExpandedKeys:e.defaultExpandedKeys,onLoadExpandData:e.onLoadData,onExpandError:e.onError,renderExpandContent:e.renderContent,rowExpandable:e.rowExpandable}:{expandable:!1,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0},p=e=>{if(!e)return{enableSelection:!1,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};if(e===!0)return{enableSelection:!0,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};let t=e.childSelection||{},n=e.parentChildLink||{};return{enableSelection:e.enabled!==!1,defaultCheckedKeys:e.defaultCheckedKeys,rowCheckable:e.rowCheckable,maxSelection:e.maxSelection,enableChildSelection:t.enabled||!1,childRowCheckable:t.childRowCheckable,enableParentChildLink:n.enabled||!1,parentChildLinkMode:n.mode||`loose`}},m=e=>{let t={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};return e===!1?{pagination:null}:e===!0||e===void 0?{pagination:t}:{pagination:{...t,...e}}},h=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},g={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function _(e){return e?{striped:e.striped??g.striped,bordered:e.bordered??g.bordered,singleLine:e.singleLine??g.singleLine,size:e.size??g.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??g.columnWidth}:{...g}}const v=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1,toolbarActions:e?.actions??[],toolbarRightActions:e?.rightActions??[],toolbarActionBarConfig:e?.actionBar??{}}),y=e=>e?e===!0?{virtualScroll:!0,virtualItemHeight:34,virtualMaxHeight:600}:{virtualScroll:e.enabled!==!1,virtualItemHeight:e.itemHeight??34,virtualMaxHeight:e.maxHeight??600}:{virtualScroll:!1,virtualItemHeight:34,virtualMaxHeight:600},b=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},x=e=>e?e===!0?{enableColumnDrag:!0,columnDragHandleClass:void 0,columnDragAnimationDuration:150}:{enableColumnDrag:e.enabled!==!1,columnDragHandleClass:e.handleClass,columnDragAnimationDuration:e.animationDuration??150}:{enableColumnDrag:!1,columnDragHandleClass:void 0,columnDragAnimationDuration:150},S=e=>e?e===!0?{treeEnabled:!0,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1}:{treeEnabled:e.enabled!==!1,treeChildrenKey:e.childrenKey??`children`,treeIndent:e.indent??16,treeDefaultExpandAll:e.defaultExpandAll??!1}:{treeEnabled:!1,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1},C=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},w=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function T(e={}){return{feedback:e.feedback,locale:e.locale,...d(e.edit),...f(e.expand),...p(e.selection),...m(e.pagination),...h(e.dynamicRows),..._(e.display),...v(e.toolbar),...y(e.virtualScroll),...b(e.summary),...x(e.columnDrag),...S(e.tree),...C(e.rowDrag),...w(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const E=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function D(e,t){return(typeof e.message==`function`?e.message():e.message)||t}function O(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function k(e){if(typeof e==`number`)return e;if(typeof e==`string`||Array.isArray(e))return e.length}function A(e,t){return e===!1?t:e instanceof Error?e.message||t:typeof e==`string`?e||t:Array.isArray(e)&&e.length>0?A(e[0],t):null}async function j(e,t,n,r){let i=D(e,`${n}校验失败`),a=e.transform?e.transform(t):t;if(e.required&&O(a))return D(e,`${n}不能为空`);if(!e.required&&O(a))return null;if(e.enum&&!e.enum.includes(a)||e.pattern&&!new RegExp(e.pattern).test(String(a)))return i;let o=k(a);if(e.len!==void 0&&o!==e.len||e.min!==void 0&&o!==void 0&&o<e.min||e.max!==void 0&&o!==void 0&&o>e.max)return i;let s,c=e=>{s=e};try{if(e.validator){let t=A(await e.validator(e,a,c,r,{}),i);if(t)return t}if(s||e.asyncValidator&&(await e.asyncValidator(e,a,c,r,{}),s))return A(s,i)}catch(e){return e instanceof Error&&e.message?e.message:i}return null}function M(e){let t=(0,c.ref)(null),n=(0,c.ref)({}),r=(0,c.ref)(!1),i=(0,c.ref)([]),a=e=>t.value===e,o=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=e=>{let a=o(e);return!a||r.value?!1:(t.value=e,n.value={[String(e)]:s.t(a)},i.value=[],!0)},u=async()=>{if(t.value===null||r.value)return;let i=e.data();if(!i||!Array.isArray(i))return;let a=i.findIndex(n=>e.rowKey(n)===t.value);r.value=!0;try{a>-1&&await e.onCancel?.(i[a],a),t.value=null,n.value={}}finally{r.value=!1}},d=async(n,r)=>{let a=(e.columns?.()||[]).filter(e=>e.editable!==!1&&e.editProps?.rules?.length).map(async e=>{let t=typeof e.key==`string`?e.key:``;if(!t)return null;let r=(await Promise.all(e.editProps.rules.map(r=>j(r,n[t],e.title||t,n)))).find(Boolean);return r?{field:t,message:r}:null}),o=(await Promise.all(a)).filter(Boolean);return t.value===r&&(i.value=o),o.length===0},f=async()=>{let e=t.value;if(e===null)return!0;let r=n.value[String(e)];return r?d(s.t(r),e):!0},p=async()=>{let i=t.value;if(i===null||r.value)return;let a=n.value[String(i)];if(!a)return;let c=s.t(a),l=o(i);r.value=!0;try{if(!await d(c,i))return;let r=e.data(),a=r.findIndex(t=>e.rowKey(t)===i);return a===-1||r[a]!==l?void 0:(await e.onSave?.(c,a,i),t.value=null,n.value={},{updatedData:c,rowIndex:a})}finally{r.value=!1}},m=e=>{if(t.value===e)return n.value[String(e)]};return{editingRowKey:t,editingData:n,isSaving:r,isEditingRow:a,startEditRow:l,cancelEditRow:u,saveEditRow:p,validateRow:f,validationErrors:i,getEditingRowData:m,updateEditingRowData:(e,t,n)=>{let i=m(e);!i||r.value||(i[t]=s.t(n))},findRowData:o}}function N(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function P(e){let t=(0,c.ref)({rowKey:null,columnKey:null}),n=(0,c.ref)({}),r=(0,c.ref)(!1),i=(0,c.ref)(null),a=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,o=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=(e,a)=>{let c=o(e);return!c||!a||r.value?!1:(t.value={rowKey:e,columnKey:a},n.value={[N(e,a)]:s.t(c[a])},i.value=null,!0)},u=async()=>{i.value=null;let{rowKey:r,columnKey:a}=t.value;if(r===null||a===null)return!0;let s=(e.columns?.()||[]).find(e=>e.key===a);if(!s||!s.editProps?.rules)return!0;let c=N(r,a),l=n.value[c],u=s.title||a,d={...o(r),[a]:l},f=(await Promise.all(s.editProps.rules.map(e=>j(e,l,u,d)))).find(Boolean);return f?(i.value=f,!1):!0};return{editingCell:t,editingData:n,isSaving:r,isEditingCell:a,startEditCell:l,saveEditCell:async()=>{let{rowKey:i,columnKey:a}=t.value;if(i===null||a===null||r.value)return;let c=N(i,a),l=s.t(n.value[c]),d=o(i);r.value=!0;try{if(!await u())return;let r=e.data(),o=r.findIndex(t=>e.rowKey(t)===i);if(o===-1||r[o]!==d)return;let c={...r[o],[a]:l};return await e.onSave?.(s.t(c),o,a,i),t.value={rowKey:null,columnKey:null},n.value={},{updatedData:c,rowIndex:o,columnKey:a}}finally{r.value=!1}},cancelEditCell:()=>{let{rowKey:e,columnKey:a}=t.value;r.value||(e!==null&&a!==null&&delete n.value[N(e,a)],t.value={rowKey:null,columnKey:null},i.value=null)},validateCell:u,cellValidationError:i,getEditingCellValue:(e,t)=>n.value[N(e,t)],updateEditingCellValue:(e,t,i)=>{!a(e,t)||r.value||(n.value[N(e,t)]=s.t(i))},findRowData:o}}function ee(e){let t=(0,c.ref)(!1),n=(0,c.ref)(!1),r=(0,c.ref)(null),i=(0,c.ref)({}),a=(0,c.computed)(()=>{if(r.value===null)return-1;let t=e.data();return Array.isArray(t)?t.findIndex(t=>e.rowKey(t)===r.value):-1});return{isModalVisible:t,isSaving:n,editingData:i,editingRowKey:r,editingRowIndex:a,startEdit:(a,o)=>{if(n.value)return!1;let c=e.data();if(!Array.isArray(c))return!1;let l=c.findIndex(t=>e.rowKey(t)===a);return l===-1?!1:(r.value=a,i.value=s.t(o??c[l]),t.value=!0,!0)},saveEdit:async o=>{if(n.value||r.value===null)return;let c=a.value;if(c===-1)return;let l=r.value,u=s.t(o??i.value);n.value=!0;try{return await e.onSave?.(u,c,l),t.value=!1,r.value=null,i.value={},{updatedData:u,rowIndex:c}}finally{n.value=!1}},cancelEdit:async()=>{if(n.value)return!1;let o=a.value;try{if(r.value!==null&&o>-1){let t=e.data();t[o]&&await e.onCancel?.(t[o],o)}}finally{t.value=!1,r.value=null,i.value={}}return!0},updateEditingData:e=>n.value?!1:(i.value=s.t(e),!0),resetEditingState:()=>n.value?!1:(r.value=null,i.value={},!0),isEditingRow:e=>r.value===e&&t.value,getEditingRowData:e=>r.value===e?i.value:null}}function F(e,t){if(!t)return e;let n=[],r=new WeakSet,i=e=>{if(r.has(e))return;r.add(e),n.push(e);let a=e[t];Array.isArray(a)&&a.forEach(e=>{e&&typeof e==`object`&&i(e)})};return e.forEach(i),n}function te(e,t,n,r){let i=new WeakSet,a=e=>{if(e===t)return n;if(!r||i.has(e))return e;i.add(e);let o=e[r];if(!Array.isArray(o))return e;let s=o.map(e=>e&&typeof e==`object`?a(e):e);return s.some((e,t)=>e!==o[t])?{...e,[r]:s}:e};return e.map(a)}function ne(e){return e}function I(e){return e}function re(e,t){let n=new Map,r=[];return e.forEach((e,i)=>{let a;try{a=t(e)}catch(t){r.push({type:`error`,row:e,index:i,cause:t});return}if(a==null||a===``){r.push({type:`missing`,row:e,index:i});return}let o=n.get(a);if(o!==void 0){r.push({type:`duplicate`,row:e,index:i,key:a,firstIndex:o});return}n.set(a,i)}),r}function ie(e,t,n){let r=new Set,i=new WeakSet,a=[...e],o=e=>{try{return n(e)}catch{return}},s=e=>e!=null&&e!==``;for(;a.length;){let e=a.pop();if(i.has(e))continue;i.add(e);let n=e[t];if(!Array.isArray(n)||n.length===0)continue;let c=o(e);s(c)&&r.add(c);for(let e of n)e&&typeof e==`object`&&a.push(e)}return[...r]}const ae=e=>({expandedKeys:(0,c.ref)([...e.defaultExpandedKeys||[]]),expandDataMap:(0,c.ref)(new Map),loadingMap:(0,c.ref)(new Map),errorMap:(0,c.ref)(new Map),checkedKeys:e.enableSelection?(0,c.ref)([...e.defaultCheckedKeys||[]]):(0,c.ref)([]),childSelections:(e.enableChildSelection,(0,c.ref)(new Map))}),oe=e=>{let t=(0,c.computed)(()=>F((0,c.unref)(e.data),e.childrenKey)),n=e.rowKey;return{data:t,getRowKey:n,getChildRowKey:e.childRowKey||(e=>e.id),findRow:e=>t.value.find(t=>n(t)===e),isRowExpandable:t=>e.rowExpandable?.(t)??!0,isRowCheckable:t=>e.rowCheckable?.(t)??!0,isChildRowCheckable:(t,n)=>e.childRowCheckable?.(t,n)??!0}},se=(e,t,n)=>{let r=new Map,i=new Map,a=!1,o=0,s=new Set(n.defaultExpandedKeys||[]),l=t=>{let n=t===void 0?new Set([...e.expandDataMap.value.keys(),...e.errorMap.value.keys(),...r.keys()]):new Set([t]);for(let t of n)r.delete(t),i.delete(t),e.expandDataMap.value.delete(t),e.errorMap.value.delete(t),e.loadingMap.value.delete(t),e.childSelections.value.delete(t)},u=async o=>{if(!n.onLoadData||a)return[];let s=t.getRowKey(o);if(e.expandDataMap.value.has(s))return e.expandDataMap.value.get(s);if(e.errorMap.value.has(s))return[];let c=r.get(s);if(c)return c.promise;let l={};i.set(s,o),e.loadingMap.value.set(s,!0);let u=()=>!a&&r.get(s)?.token===l,d,f=new Promise(e=>{d=e});return r.set(s,{token:l,promise:f}),(async()=>{try{let t=await n.onLoadData(o),r=Array.isArray(t)?t:[];return u()?(e.expandDataMap.value.set(s,r),n.enableChildSelection&&!e.childSelections.value.has(s)&&e.childSelections.value.set(s,[]),r):[]}catch(t){return u()&&(e.errorMap.value.set(s,t),n.onError?.(t,o)),[]}finally{u()&&(r.delete(s),e.loadingMap.value.set(s,!1))}})().then(d,()=>d([])),f};return(0,c.watch)(t.data,n=>{if(i.size===0)return;let r=new Map(n.map(e=>[t.getRowKey(e),e]));for(let[t,n]of i){let i=r.get(t);i!==n&&(l(t),i&&e.expandedKeys.value.includes(t)&&u(i),i||s.delete(t))}e.expandedKeys.value=e.expandedKeys.value.filter(e=>r.has(e))}),(0,c.getCurrentScope)()&&(0,c.onScopeDispose)(()=>{a=!0,l()}),{loadData:u,retryExpand:async e=>{let n=t.findRow(e);n&&(l(e),await u(n))},invalidateExpand:l,handleRowExpand:async(r,i)=>{let a=t.getRowKey(r);if(o+=1,i){if(s.add(a),e.expandedKeys.value.includes(a)||(e.expandedKeys.value=[...e.expandedKeys.value,a]),await u(r),!s.has(a))return}else s.delete(a),e.expandedKeys.value=e.expandedKeys.value.filter(e=>e!==a);n.onExpandChange?.(e.expandedKeys.value,r,i)},expandAll:async()=>{let r=++o,i=t.data.value.filter(t.isRowExpandable);s=new Set(i.map(t.getRowKey)),e.expandedKeys.value=[...s],await Promise.allSettled(i.map(u)),r===o&&(e.expandedKeys.value=i.map(t.getRowKey),n.onExpandChange?.(e.expandedKeys.value))},collapseAll:()=>{o+=1,s.clear(),e.expandedKeys.value=[],e.childSelections.value.clear(),n.onExpandChange?.(e.expandedKeys.value)},handleExpandChange:async r=>{let i=++o;s=new Set(r);let a=r.filter(t=>!e.expandedKeys.value.includes(t)),c=e.expandedKeys.value.filter(e=>!r.includes(e));for(let t of c)e.childSelections.value.delete(t);e.expandedKeys.value=[...r],await Promise.all(a.map(async e=>{let n=t.findRow(e);n&&await u(n)})),i===o&&n.onExpandChange?.(r)}}},ce=(e,t,n)=>{let r=[],i=[],a=(t,a)=>{let o=t.length===r.length&&t.every((e,t)=>e===r[t]),s=a.length===i.length&&a.every((e,t)=>e===i[t]);o&&s||(r=[...t],i=[...a],n.onSelectionChange?.(t,a,e.childSelections.value))},o=(0,c.computed)(()=>t.data.value.filter(t.isRowCheckable));return{selectAll:()=>{if(!n.enableSelection)return;let r=o.value.map(t.getRowKey),i=n.maxSelection?r.slice(0,n.maxSelection):r;e.checkedKeys.value=i;let s=new Set(i);a(i,o.value.filter(e=>s.has(t.getRowKey(e))))},clearSelection:()=>{n.enableSelection&&(e.checkedKeys.value=[],a([],[]))},handleSelectionChange:r=>{if(!n.enableSelection)return;let i=new Set(o.value.map(e=>t.getRowKey(e))),s=[...new Set(r)].filter(e=>i.has(e)),c=n.maxSelection?s.slice(0,Math.max(0,n.maxSelection)):s;e.checkedKeys.value=c;let l=new Set(c);a(c,t.data.value.filter(e=>l.has(t.getRowKey(e))))},selectedRowsCount:(0,c.computed)(()=>e.checkedKeys.value.length),selectableRows:o}},le=(e,t)=>{let n=()=>!!(t.enableParentChildLink&&t.enableSelection&&t.enableChildSelection);return{handleParentChildLink:(r,i,a)=>{if(!n())return;let o=t.parentChildLinkMode===`strict`?i.length===a&&a>0:i.length>0,s=[...e.checkedKeys.value],c=s.includes(r);o&&!c?e.checkedKeys.value=[...s,r]:!o&&c&&(e.checkedKeys.value=s.filter(e=>e!==r))},isLinkEnabled:n}},L=(e,t,n,r)=>({totalChildSelections:(0,c.computed)(()=>r.enableChildSelection?Array.from(e.childSelections.value.values()).reduce((e,t)=>e+t.length,0):0),clearAllSelections:()=>{e.checkedKeys.value=[],e.childSelections.value.clear(),r.onSelectionChange?.([],[],e.childSelections.value)},handleChildSelectionChange:(i,a)=>{if(!r.enableChildSelection)return;e.childSelections.value.set(i,a);let o=e.expandDataMap.value.get(i)||[],s=o.filter(e=>a.includes(t.getChildRowKey(e)));r.onChildSelectionChange?.(i,a,s),n.isLinkEnabled()&&n.handleParentChildLink(i,a,o.length)}}),ue=(e,t,n,r,i)=>{if(!i.enableChildSelection)return;let a=t.childSelections.value.get(e)||[],o=t.expandDataMap.value.get(e)||[],s=n.findRow(e);if(!s)return;let c=o.filter(e=>n.isChildRowCheckable(e,s));return{selectedKeys:a,isAllChecked:c.length>0&&c.every(e=>a.includes(n.getChildRowKey(e))),selectAll:()=>{let t=c.map(e=>n.getChildRowKey(e));r.handleChildSelectionChange(e,t)},clearAll:()=>{r.handleChildSelectionChange(e,[])}}},de=e=>(0,c.h)(`div`,{class:`flex justify-center items-center py-8`},e?[e()]:[(0,c.h)(l.NSpin,{size:`small`}),(0,c.h)(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),fe=()=>(0,c.h)(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),pe=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,align:`center`,titleAlign:`center`,render:(e,t)=>t+1},...Object.keys(t).filter(e=>![`id`,`key`].includes(e)).map(e=>({key:e,title:e.charAt(0).toUpperCase()+e.slice(1),width:120,align:`center`,titleAlign:`center`,ellipsis:{tooltip:!0}}))]},R=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0}),o.push(...pe(t)),(0,c.h)(`div`,{class:`p-4 bg-gray-50`},[(0,c.h)(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),(0,c.h)(l.NDataTable,{data:t,columns:o,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},z=(t,n,r,i,a)=>{let{t:o}=e.t(()=>a.locale),s=e=>{let s=n.getRowKey(e),u=t.expandDataMap.value.get(s)||[],d=t.loadingMap.value.get(s)||!1,f=ue(s,t,n,r,a);return a.renderContent?a.renderContent(e,u,d,f):d?de(a.renderLoading):t.errorMap.value.has(s)?(0,c.h)(`div`,{class:`c-table-expand-error`,role:`alert`},[(0,c.h)(`span`,o(`table.loadFailed`)),(0,c.h)(l.NButton,{size:`small`,onClick:()=>i.retryExpand(s)},()=>o(`common.retry`))]):u.length?R(s,u,f,n,r,a):fe()};return{getTableColumns:e=>e.map(e=>e.type===`selection`&&a.enableSelection?{type:`selection`,disabled:e=>!n.isRowCheckable(e),multiple:!a.maxSelection||a.maxSelection>1}:e.type===`expand`&&(a.onLoadData||a.renderContent)?{type:`expand`,expandable:n.isRowExpandable,renderExpand:s}:e)}};function me(e){let t=ae(e),n=oe(e),r=se(t,n,e),i=ce(t,n,e),a=L(t,n,le(t,e),e),o=z(t,n,a,r,e);return(0,c.watch)(n.data,()=>{!e.enableSelection||t.checkedKeys.value.length===0||i.handleSelectionChange(t.checkedKeys.value)}),e.defaultExpandedKeys?.length&&(0,c.nextTick)(async()=>{let i=e.defaultExpandedKeys||[];if(i.length===0)return;let a=i.map(async e=>{let i=n.findRow(e);i&&!t.expandDataMap.value.has(e)&&await r.loadData(i)});await Promise.allSettled(a)}),{expandedKeys:t.expandedKeys,checkedKeys:t.checkedKeys,childSelections:t.childSelections,selectedRowsCount:i.selectedRowsCount,totalChildSelections:a.totalChildSelections,expandAll:r.expandAll,collapseAll:r.collapseAll,expandRow:async e=>{if(t.expandedKeys.value.includes(e)&&!t.loadingMap.value.get(e))return;let i=n.findRow(e);i&&await r.handleRowExpand(i,!0)},handleExpandChange:r.handleExpandChange,selectAll:i.selectAll,clearSelection:i.clearSelection,clearAllSelections:a.clearAllSelections,handleSelectionChange:i.handleSelectionChange,getTableColumns:o.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap,errorMap:t.errorMap,retryExpand:r.retryExpand,invalidateExpand:r.invalidateExpand}}const he={text:`Robot Admin`,textSize:16,textColor:`rgba(128, 128, 128, 0.3)`,font:`Microsoft JhengHei`,opacity:.3,rotate:-20,position:`repeat`,xGap:200,yGap:120},B={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},ge={orientation:`portrait`,paperSize:`A4`,margin:`10mm 10mm 0 10mm`,style:`@page { margin: 10mm 10mm 0 10mm; } @media print { body { margin: 0; } }`,header:``,footer:``,showModal:!1,modalMessage:`正在准备打印...`,onLoadingStart:()=>{},onLoadingEnd:()=>{},onPrintDialogClose:()=>{}};function V(e,t,n,r){e.save(),e.translate(t/2,n/2),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}function H(e,t,n,r){[[50,50],[t-50,50],[50,n-50],[t-50,n-50]].forEach(([t,n])=>{e.save(),e.translate(t,n),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()})}function _e(e,t,n,r){let i=Math.sqrt(t*t+n*n),a=t/2,o=n/2;e.save(),e.translate(a,o),e.rotate(Math.atan2(n,t));let s=Math.floor(i/r.xGap),c=-i/2;for(let t=0;t<=s;t++){let n=c+t*r.xGap;e.fillText(r.text,n,0)}e.restore()}function ve(e,t,n,r){let i=Math.ceil(t/r.xGap)+1,a=Math.ceil(n/r.yGap)+1;for(let t=0;t<a;t++)for(let n=0;n<i;n++){let i=n*r.xGap+r.xGap/2,a=t*r.yGap+r.yGap/2;e.save(),e.translate(i,a),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}}function ye(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...he,...t},{width:i,height:a}=e;n.save(),n.globalAlpha=r.opacity,n.font=`${r.textSize}px ${r.font}`,n.fillStyle=r.textColor,n.textAlign=`center`,n.textBaseline=`middle`;let o={center:V,corner:H,diagonal:_e,repeat:ve};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function U(e,t={}){if(typeof window>`u`)throw Error(`截图功能仅支持浏览器环境`);let n={...B,...t},{default:r}=await import(`html2canvas`);return await r(e,{logging:n.logging,scale:n.scale,allowTaint:n.allowTaint,useCORS:n.useCORS,backgroundColor:n.backgroundColor,onclone:e=>{let t=e.body;t.style.transform=`scale(1)`}})}function be(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function xe(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=be(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function Se(e,t={}){if(typeof window>`u`)throw Error(`打印功能仅支持浏览器环境`);let n={...ge,...t},{default:r}=await import(`print-js`);return new Promise((t,i)=>{try{n.onLoadingStart?.(),r({printable:e,type:`image`,style:n.style,showModal:n.showModal,modalMessage:n.modalMessage,onLoadingEnd:n.onLoadingEnd,onPrintDialogClose:()=>{n.onPrintDialogClose?.(),t()}})}catch(e){i(e)}})}function Ce(e,t,n){let r=0,i=0;e.forEach(e=>{let{width:n,height:a}=e;t===`horizontal`?(r+=n,i=Math.max(i,a)):(r=Math.max(r,n),i+=a)});let a=(e.length-1)*n;return t===`horizontal`?r+=a:i+=a,{totalWidth:r,totalHeight:i}}function we(e,t){let{orientation:n,spacing:r,backgroundColor:i,totalWidth:a,totalHeight:o}=t,s=document.createElement(`canvas`);s.width=a,s.height=o;let c=s.getContext(`2d`);if(!c)throw Error(`无法创建画布上下文`);c.fillStyle=i,c.fillRect(0,0,a,o);let l=0,u=0;return e.forEach(e=>{c.drawImage(e,l,u),n===`horizontal`?l+=e.width+r:u+=e.height+r}),s}function W(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function Te(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>U(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=Ce(s,i,a);return r(60),we(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function Ee(e,t,n,r,i){r(70),t.watermark&&ye(e,t.watermark),r(90),await Se(be(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function De(){let e=t.t(),n=(0,c.ref)(!1),r=(0,c.ref)(0),i=e=>{r.value=Math.max(0,Math.min(100,e))},a=async(e,t={})=>{try{i(0),i(30);let n=await U(e,t.capture);i(60),t.watermark&&ye(n,t.watermark),i(90);let r=be(n,t.capture?.format||`png`,t.capture?.quality||.92);return i(100),r}catch(e){throw Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},o=async(t,r={})=>{n.value=!0,i(0);try{await(0,c.nextTick)();let n=await a(t,r);i(95),await Se(n,r.print),i(100),e.success(`打印完成`)}catch(t){throw e.error(`打印失败: ${t instanceof Error?t.message:`未知错误`}`,t),t}finally{n.value=!1,i(0)}},s=async(t,r,i={})=>{n.value=!0;try{await(0,c.nextTick)();let n=await U(t,i.capture);i.watermark&&ye(n,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;xe(n,r||o,a),e.success(`下载完成`)}catch(t){throw e.error(`下载失败`,t),t}finally{n.value=!1}},l=async(e,t=`Robot Admin`)=>o(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),u=async(e,t={})=>{let n=e.length;i(10);let r=e.map(async(e,r)=>{let o=await a(e,t);return i(10+(r+1)/n*70),o});return Promise.all(r)},d=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await Se(r,t),i<e.length-1&&await new Promise(e=>{setTimeout(()=>e(),1e3)})},Promise.resolve())};return{loading:n,progress:r,captureWithWatermark:a,printWithWatermark:o,downloadScreenshot:s,quickPrint:l,batchCapture:u,batchPrint:async(t,r={})=>{if(!t.length){e.warning(`没有要打印的元素`);return}n.value=!0;try{i(0);let n=await u(t,r);i(80),await d(n,r.print),i(100),e.success(`批量打印完成,共 ${t.length} 个元素`)}catch(t){throw e.error(`批量打印失败`,t),t}finally{n.value=!1,i(0)}},mergePrint:async(t,r={},a={})=>{let o=W(t,a,e);if(o){n.value=!0;try{await Ee(await Te(t,r,o,i),r,t.length,i,e)}catch(t){throw e.error(`合并打印失败`,t),t}finally{n.value=!1,i(0)}}},createPreset:(e,t)=>({use:e=>o(e,t),download:(e,n)=>s(e,n,t)}),updateProgress:i,utils:{captureElement:U,drawWatermark:ye,canvasToDataURL:be,downloadCanvas:xe,printImage:Se}}}const Oe={table:{watermark:{text:`Robot Admin - 数据表格`,position:`repeat`,textColor:`rgba(100, 100, 100, 0.25)`,textSize:14,xGap:250,yGap:120},capture:{scale:1.2},print:{orientation:`landscape`,style:`@page { margin: 8mm; } body { font-family: Arial, sans-serif; }`}},form:{watermark:{text:`Robot Admin - 表单数据`,position:`diagonal`,textColor:`rgba(150, 150, 150, 0.2)`,textSize:16},print:{orientation:`portrait`}},report:{watermark:{text:`Robot Admin - 机密报告`,position:`center`,textColor:`rgba(200, 50, 50, 0.15)`,textSize:24},capture:{quality:.95,format:`png`}}};function ke(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function G(e,t){return typeof t==`function`?t(e):e[t]}function K(e,t){let n=s.t(e?.()||{}),r=typeof t==`string`?t:`id`;return{...n,[r]:ke()}}function q(r,i={}){let a={enabled:!0,rowKey:`id`,enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0,confirmDelete:!0,deleteConfirmText:``,printPreset:`table`,printTargetSelector:`.c-table-wrapper`,defaultRowData:()=>({})},o=(0,c.reactive)({...a,...(0,c.toValue)(i)});(0,c.watch)(()=>(0,c.toValue)(i),e=>{let t=o;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,a,e)},{deep:!0});let u=t.t(()=>o.feedback),{t:d}=e.t(()=>o.locale),f=`c-table-radio-${ke()}`,p=(0,c.ref)(null),m=(0,c.ref)(!1),h=(0,c.computed)(()=>p.value===null?null:r.value.find(e=>G(e,o.rowKey)===p.value)||null),g=(0,c.computed)(()=>h.value?r.value.findIndex(e=>e===h.value):-1),_=(0,c.computed)(()=>g.value>0),v=(0,c.computed)(()=>g.value>=0&&g.value<r.value.length-1),{loading:y,progress:b,printWithWatermark:x,downloadScreenshot:S,quickPrint:C}=De(),w=()=>{if(o.printOptions)return o.printOptions;let e=Oe[o.printPreset||`table`];return o.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:o.printWatermarkText}}:e},T=e=>{o.onRowChange?.(e)},E=e=>{let t=G(e,o.rowKey);return t!=null&&t!==``&&!r.value.some(e=>G(e,o.rowKey)===t)?!0:(u.warning(d(`table.invalidRowKeys`,{count:1})),!1)},D=()=>{if(!o.enabled||!o.enableAdd)return;let e=K(o.defaultRowData,o.rowKey);E(e)&&(T([...r.value,e]),o.onRowAdd?.(e),u.success(d(`table.addRowSuccess`)))},O=()=>{if(!o.enabled||!o.enableInsert||!h.value){u.warning(d(`table.selectRowFirst`));return}let e=K(o.defaultRowData,o.rowKey);if(!E(e))return;let t=[...r.value];t.splice(g.value+1,0,e),T(t),o.onRowAdd?.(e),u.success(d(`table.insertRowSuccess`))},k=()=>{if(!o.enabled||!o.enableDelete||!h.value){u.warning(d(`table.selectDeleteRowFirst`));return}o.confirmDelete?m.value=!0:A()},A=()=>{if(!h.value)return;let e=h.value,t=g.value;T(r.value.filter((e,n)=>n!==t)),p.value=null,o.onSelectionChange?.(null,null),o.onRowDelete?.(e,t),u.success(d(`table.deleteRowSuccess`)),m.value=!1},j=()=>{if(!o.enabled||!o.enableCopy||!h.value){u.warning(d(`table.selectCopyRowFirst`));return}let e=h.value,t=typeof o.rowKey==`string`?o.rowKey:`id`,{[t]:n,...i}=s.t(e),a={...i,[t]:ke()};E(a)&&(T([...r.value,a]),o.onRowCopy?.(e,a),u.success(d(`table.copyRowSuccess`)))},M=()=>{if(!o.enabled||!o.enableMove||!_.value)return;let e=g.value,t=[...r.value],n=t[e];[t[e],t[e-1]]=[t[e-1],t[e]],T(t),o.onRowMove?.(n,e,e-1),u.success(d(`table.moveUpSuccess`))},N=()=>{if(!o.enabled||!o.enableMove||!v.value)return;let e=g.value,t=[...r.value],n=t[e];[t[e],t[e+1]]=[t[e+1],t[e]],T(t),o.onRowMove?.(n,e,e+1),u.success(d(`table.moveDownSuccess`))},P=e=>{if(!o.enabled)return;let t=r.value.find(t=>G(t,o.rowKey)===e);t&&(p.value=e,o.onSelectionChange?.(e,t))},ee=()=>{p.value=null,o.onSelectionChange?.(null,null)},F=async e=>{if(!e.value){u.error(d(`table.printTargetMissing`));return}let t=w();await x(e.value,t)};return(0,c.getCurrentScope)()&&(0,c.onScopeDispose)(()=>{p.value=null,m.value=!1}),{selectedRowKey:p,selectedRowData:h,selectedRowIndex:g,canMoveUp:_,canMoveDown:v,deleteConfirmVisible:m,printLoading:y,printProgress:b,addRow:D,insertRow:O,deleteRow:k,confirmDelete:A,copyRow:j,moveRowUp:M,moveRowDown:N,selectRow:P,clearSelection:ee,handlePrint:F,handleDownload:async(e,t)=>{if(!e.value){u.error(d(`table.downloadTargetMissing`));return}let n=w();await S(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){u.error(d(`table.printTargetMissing`));return}let t=o.printWatermarkText||`Robot Admin`;await C(e.value,t)},enhanceColumns:e=>{if(!o.enabled)return e;let t=[...e];return o.enabled&&o.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:d(`common.select`),width:80,align:`center`,editable:!1,render:e=>{let t=G(e,o.rowKey);return(0,c.h)(`div`,{class:`flex justify-center`},[(0,c.h)(`input`,{type:`radio`,name:f,"aria-label":d(`common.select`),checked:p.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&P(t)}})])}}),t},renderToolbar:e=>{if(!o.enabled)return null;let t=[];o.enablePrint&&t.push((0,c.h)(l.NButton,{loading:y.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(o.printTargetSelector);t?await F((0,c.shallowRef)(t)):u.warning(d(`table.printTargetMissing`))}catch(e){u.error(d(`table.printTargetMissing`),e)}}},{icon:()=>(0,c.h)(n.t,{name:`mdi:printer`,title:d(`common.print`)}),default:()=>d(`common.print`)}));let r=[];return o.enableAdd&&r.push((0,c.h)(l.NButton,{onClick:D,type:`primary`},{icon:()=>(0,c.h)(n.t,{name:`mdi:plus`,title:d(`table.addRow`)}),default:()=>d(`table.addRow`)})),o.enableInsert&&r.push((0,c.h)(l.NTooltip,{disabled:!!h.value},{trigger:()=>(0,c.h)(l.NButton,{onClick:O,disabled:!h.value,type:`primary`,ghost:!0},{icon:()=>(0,c.h)(n.t,{name:`mdi:table-row-plus-after`,title:d(`table.insertRow`)}),default:()=>d(`table.insertRow`)}),default:()=>d(`table.selectRowFirst`)})),o.enableDelete&&r.push((0,c.h)(l.NTooltip,{disabled:!!h.value},{trigger:()=>(0,c.h)(l.NButton,{onClick:k,disabled:!h.value,type:`error`,ghost:!0},{icon:()=>(0,c.h)(n.t,{name:`mdi:delete`,title:d(`table.deleteRow`)}),default:()=>d(`table.deleteRow`)}),default:()=>d(`table.selectDeleteRowFirst`)})),o.enableCopy&&r.push((0,c.h)(l.NTooltip,{disabled:!!h.value},{trigger:()=>(0,c.h)(l.NButton,{onClick:j,disabled:!h.value,type:`info`,ghost:!0},{icon:()=>(0,c.h)(n.t,{name:`mdi:content-copy`,title:d(`table.copyRow`)}),default:()=>d(`table.copyRow`)}),default:()=>d(`table.selectCopyRowFirst`)})),o.enableMove&&r.push((0,c.h)(l.NTooltip,{disabled:_.value},{trigger:()=>(0,c.h)(l.NButton,{onClick:M,disabled:!_.value,type:`warning`,ghost:!0},{icon:()=>(0,c.h)(n.t,{name:`mdi:arrow-up`,title:d(`table.moveUp`)}),default:()=>d(`table.moveUp`)}),default:()=>h.value?d(`table.firstRow`):d(`table.selectRowFirst`)}),(0,c.h)(l.NTooltip,{disabled:v.value},{trigger:()=>(0,c.h)(l.NButton,{onClick:N,disabled:!v.value,type:`warning`,ghost:!0},{icon:()=>(0,c.h)(n.t,{name:`mdi:arrow-down`,title:d(`table.moveDown`)}),default:()=>d(`table.moveDown`)}),default:()=>h.value?d(`table.lastRow`):d(`table.selectRowFirst`)})),r.length>0&&t.push((0,c.h)(l.NButtonGroup,{},()=>r)),(0,c.h)(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[(0,c.h)(l.NSpace,{},()=>t)])},renderConfirmModal:()=>(0,c.h)(l.NModal,{show:m.value,"onUpdate:show":e=>{m.value=e},preset:`dialog`,title:d(`table.deleteTitle`),content:o.deleteConfirmText||d(`table.deleteRowContent`),positiveText:d(`table.confirmDeleteRow`),negativeText:d(`common.cancel`),onPositiveClick:A})}}function Ae(n){let{data:r,rowKey:i,emit:a}=n,o=()=>(0,c.toValue)(n.config),s=()=>o().treeEnabled?o().treeChildrenKey??`children`:void 0,l=(0,c.computed)(()=>F(r(),s())),u=()=>l.value,d=t.t(()=>o().feedback),{t:f}=e.t(()=>o().locale),p={onSave:async(e,t,n,c)=>{let u=r(),d=c??i(e),f=l.value.find(e=>i(e)===d);if(!f)return;let p=l.value.indexOf(f),m={...f,...e};try{if(await o().onEditSave?.(m,p,n),await a(`save`,m,p,n),r()!==u||l.value.find(e=>i(e)===d)!==f)return;a(`update:data`,te(r(),f,m,s()))}catch(e){throw o().onEditError?.(e),a(`edit-error`,e),e}},onCancel:async(e,t)=>{try{await o().onEditCancel?.(e,t),await a(`cancel`,e,t)}catch(e){throw o().onEditError?.(e),a(`edit-error`,e),e}},onExpandChange:(e,t,n)=>{a(`expand-change`,e,t,n)},onSelectionChange:(e,t,n)=>{a(`selection-change`,e,t,n)},onChildSelectionChange:(e,t,n)=>{a(`child-selection-change`,e,t,n)},onRowChange:e=>{a(`update:data`,e),o().dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,t)=>{a(`row-selection-change`,e,t),o().dynamicRows?.onSelectionChange?.(e,t)},onRowAdd:e=>{a(`row-add`,e),o().dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,t)=>{a(`row-delete`,e,t),o().dynamicRows?.onRowDelete?.(e,t)},onRowCopy:(e,t)=>{a(`row-copy`,e,t),o().dynamicRows?.onRowCopy?.(e,t)},onRowMove:(e,t,n)=>{a(`row-move`,e,t,n),o().dynamicRows?.onRowMove?.(e,t,n)}},m=()=>({rowEdit:M({data:u,rowKey:i,onSave:(e,t,n)=>p.onSave(e,t,void 0,n),onCancel:p.onCancel,columns:n.columns}),cellEdit:P({data:u,rowKey:i,onSave:p.onSave,columns:n.columns}),modalEdit:ee({data:u,rowKey:i,onSave:(e,t,n)=>p.onSave(e,t,void 0,n),onCancel:p.onCancel})}),h=()=>me({data:(0,c.computed)(()=>r()),rowKey:i,get childrenKey(){return s()},childRowKey:e=>e.id,get locale(){return o().locale},renderLoading:n.renderLoading,get defaultExpandedKeys(){return o().defaultExpandedKeys},get onLoadData(){return o().onLoadExpandData},onError:(e,t)=>{let n=o().onExpandError;n?n(e,t):d.error(f(`table.loadFailed`),e)},get renderContent(){return o().renderExpandContent},get rowExpandable(){return o().rowExpandable},get enableSelection(){return o().enableSelection},get defaultCheckedKeys(){return o().defaultCheckedKeys},get rowCheckable(){return o().rowCheckable},get maxSelection(){return o().maxSelection},get enableChildSelection(){return o().enableChildSelection},get childRowCheckable(){return o().childRowCheckable},get enableParentChildLink(){return o().enableParentChildLink},get parentChildLinkMode(){return o().parentChildLinkMode},onExpandChange:p.onExpandChange,onSelectionChange:p.onSelectionChange,onChildSelectionChange:p.onChildSelectionChange}),g=()=>q((0,c.computed)(()=>r()),(0,c.computed)(()=>({...o().dynamicRows,rowKey:o().dynamicRows?.rowKey??(0,c.toValue)(n.rowKeyField)??i,enabled:!!o().dynamicRows,feedback:o().feedback,locale:o().locale,onRowChange:p.onRowChange,onSelectionChange:p.onRowSelectionChange,onRowAdd:p.onRowAdd,onRowDelete:p.onRowDelete,onRowCopy:p.onRowCopy,onRowMove:p.onRowMove}))),_=m(),v=h(),y=g();return{editStates:_,expandState:v,dynamicRowsState:y,stateManager:{edit:{start(e,t){let n=o().editMode;n===`modal`?_.modalEdit.startEdit(e):n===`cell`&&t?_.cellEdit.startEditCell(e,t):(n===`row`||n===`both`)&&_.rowEdit.startEditRow(e)},cancel(){_.modalEdit.isModalVisible.value?_.modalEdit.cancelEdit():_.cellEdit.editingCell.value.rowKey===null?_.rowEdit.editingRowKey.value!==null&&_.rowEdit.cancelEditRow():_.cellEdit.cancelEditCell()},async save(){_.modalEdit.isModalVisible.value?await _.modalEdit.saveEdit():_.cellEdit.editingCell.value.rowKey===null?_.rowEdit.editingRowKey.value!==null&&await _.rowEdit.saveEditRow():await _.cellEdit.saveEditCell()},isEditing(e,t){return o().editMode===`modal`?_.modalEdit.isEditingRow(e):t?_.cellEdit.isEditingCell(e,t):_.rowEdit.isEditingRow(e)},getEditingData(){return _.modalEdit.isModalVisible.value?_.modalEdit.editingData.value:_.rowEdit.editingRowKey.value===null?null:_.rowEdit.getEditingRowData(_.rowEdit.editingRowKey.value)}},expand:{async row(e){if(v){let t=[...v.expandedKeys.value];t.includes(e)||(t.push(e),v.handleExpandChange(t))}},collapse(e){if(v){let t=v.expandedKeys.value.filter(t=>t!==e);v.handleExpandChange(t)}},async toggle(e){v?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await v?.expandAll()},collapseAll(){v?.collapseAll()},isExpanded(e){return v?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(v?.checkedKeys.value&&!v.checkedKeys.value.includes(e)){let t=[...v.checkedKeys.value,e];v.handleSelectionChange(t)}},unselect(e){if(v?.checkedKeys.value){let t=v.checkedKeys.value.filter(t=>t!==e);v.handleSelectionChange(t)}},all(){v?.selectAll()},clear(){v?.clearSelection()},isSelected(e){return v?.checkedKeys.value.includes(e)??!1},getSelected(){if(!v?.checkedKeys.value)return[];let e=new Set(v.checkedKeys.value);return l.value.filter(t=>e.has(i(t)))}},childSelection:{select(e,t){if(v?.childSelections.value){let n=v.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];v.childSelections.value.set(e,r),a(`child-selection-change`,e,r,[])}}},unselect(e,t){if(v?.childSelections.value){let n=(v.childSelections.value.get(e)||[]).filter(e=>e!==t);v.childSelections.value.set(e,n),a(`child-selection-change`,e,n,[])}},selectAll(e){if(v?.childSelections.value&&v.expandDataMap?.value){let t=v.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);v.childSelections.value.set(e,n),a(`child-selection-change`,e,n,t)}},clear(e){v?.childSelections.value&&(v.childSelections.value.set(e,[]),a(`child-selection-change`,e,[],[]))},getSelected(e){if(!v?.childSelections.value||!v.expandDataMap?.value)return[];let t=v.childSelections.value.get(e)||[];return(v.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){y?.addRow()},insert(){y?.insertRow()},delete(){y?.deleteRow()},copy(){y?.copyRow()},moveUp(){y?.moveRowUp()},moveDown(){y?.moveRowDown()},clearSelection(){y?.clearSelection()},getSelected(){return y?.selectedRowData.value||null},async print(e){y&&e&&await y.handlePrint((0,c.shallowRef)(e))},async download(e,t){y&&e&&await y.handleDownload((0,c.shallowRef)(e),t)}},clearAllSelections(){v?.clearAllSelections()}},expandedKeys:(0,c.computed)(()=>v?.expandedKeys.value??[]),checkedKeys:(0,c.computed)(()=>v?.checkedKeys.value??[]),eventHandlers:p}}const J={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function je(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function Me(e){let{data:t,config:n,emit:r}=e,i=(0,c.ref)(J.page),a=(0,c.ref)(J.pageSize),o=(0,c.computed)(()=>{let e=typeof t==`function`?t():(0,c.unref)(t);return Array.isArray(e)?e:[]}),s=(0,c.computed)(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??o.value.length)):o.value.length}),l=()=>n.value?.enabled?Math.max(1,Math.ceil(s.value/a.value)):1,u=(e,t)=>{let n=Math.min(je(e,1),l());i.value!==n&&(i.value=n,t&&r?.(`pagination-change`,n,a.value))},d=e=>u(e,!0),f=e=>{let t=je(e,J.pageSize),n=a.value!==t;a.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},p=()=>u(1,!0),m=(0,c.computed)(()=>{let e=n.value;if(!e?.enabled||e.remote)return o.value;let t=(i.value-1)*a.value;return o.value.slice(t,t+a.value)}),h=(0,c.computed)(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:a.value,itemCount:s.value,showSizePicker:e.showSizePicker??J.showSizePicker,showQuickJumper:e.showQuickJumper??J.showQuickJumper,pageSizes:e.pageSizes??J.pageSizes,simple:e.simple??J.simple,size:e.size??J.size,prefix:e=>`共 ${e.itemCount??0} 条`,suffix:e=>(e.itemCount??0)>0?`第 ${e.startIndex+1}-${e.endIndex} 条`:`暂无数据`,"onUpdate:page":d,"onUpdate:pageSize":f}:null});return(0,c.watch)(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{a.value=je(t,J.pageSize),i.value=Math.min(je(e,J.page),l())},{immediate:!0}),(0,c.watch)([s,a],()=>{let e=Math.min(i.value,l());e!==i.value&&(i.value=e,r?.(`pagination-change`,e,a.value))}),{currentPage:i,currentPageSize:a,paginatedData:m,paginationConfig:h,handlePageChange:d,handlePageSizeChange:f,resetToFirstPage:p,getTotalPages:l}}function Ne(e){return e.flatMap(e=>e.visible===!1?[]:`children`in e&&Array.isArray(e.children)?Ne(e.children):`type`in e&&e.type?[]:[e])}function Pe(e,t){return e==null?t==null?0:-1:t==null?1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):0}function Y(e,t,n){let{sorter:r}=e;return typeof r==`function`?r(t,n):r&&typeof r==`object`&&typeof r.compare==`function`?r.compare(t,n):r===`default`||typeof r==`object`&&r.compare===`default`?Pe(t[e.key],n[e.key]):0}function Fe(e,t,n){let r=Array.isArray(t)?t:[t];if(t==null||r.length===0)return!0;let{filter:i}=e,a=t=>t==null?!0:typeof i==`function`?i(t,n):i===`default`?String(n[e.key]).includes(String(t)):!0;return e.filterMode===`and`?r.every(a):r.some(a)}function Ie(e,t){return e.filterOptionValues===void 0?e.filterOptionValue===void 0?Object.prototype.hasOwnProperty.call(t,e.key)?t[e.key]:e.defaultFilterOptionValues??e.defaultFilterOptionValue:e.filterOptionValue:e.filterOptionValues}function Le(e){let t=(0,c.shallowRef)(),n=(0,c.shallowRef)({}),r=(0,c.computed)(()=>Ne((0,c.toValue)(e.columns))),i=(0,c.computed)(()=>r.value.flatMap(e=>{if(e.filter!==`default`&&typeof e.filter!=`function`)return[];let t=Ie(e,n.value);return t==null||Array.isArray(t)&&t.length===0?[]:[{column:e,value:t}]})),a=(0,c.computed)(()=>{let t=(0,c.toValue)(e.data);if((0,c.toValue)(e.remote))return t;let n=i.value;return n.length?t.filter(e=>n.every(({column:t,value:n})=>Fe(t,n,e))):t}),o=(0,c.computed)(()=>{let e=r.value.filter(e=>e.sortOrder===!1||e.sortOrder===`ascend`||e.sortOrder===`descend`);return e.length?e.map(e=>({columnKey:e.key,order:e.sortOrder})):t.value===void 0?r.value.map(e=>({columnKey:e.key,order:e.defaultSortOrder})):t.value?Array.isArray(t.value)?t.value:[t.value]:[]});return{processedData:(0,c.computed)(()=>{if((0,c.toValue)(e.remote))return(0,c.toValue)(e.data);let t=o.value.flatMap(e=>{let t=r.value.find(t=>t.key===e.columnKey);if(!t?.sorter||!e.order)return[];let n=typeof t.sorter==`object`?t.sorter.multiple??0:0;return[{column:t,direction:e.order===`ascend`?1:-1,priority:n}]}).sort((e,t)=>t.priority-e.priority);return t.length?a.value.slice().sort((e,n)=>{for(let r of t){let t=Y(r.column,e,n)*r.direction;if(t)return t}return 0}):a.value}),setSorter:e=>{t.value=e},setFilters:e=>{n.value={...e}}}}const Re=e=>e&&typeof e==`object`&&`error`in e?e.error:null;function ze(r){let{actions:i,config:o,tableManager:s,rowKey:u,onRowDeleted:d,onViewDetail:f,isDeleteFeedbackHandled:p}=r,m=a.t(),h=!0;(0,c.getCurrentScope)()&&(0,c.onScopeDispose)(()=>{h=!1});let g=(e,t)=>JSON.stringify([typeof e,e,t]),_=t.t(()=>o.value.feedback),{t:v}=e.t(()=>o.value.locale),y=e=>e===`edit`?o.value.editable&&i.value?.edit!==!1:typeof i.value?.[e]==`function`,b=e=>e!==!1&&typeof e==`function`,x=e=>e&&typeof e==`object`&&`data`in e?e.data:e,S=(e,t,r=`primary`,i,a,o=!1)=>(0,c.h)(l.NButton,{size:`small`,type:r,quaternary:!0,onClick:i,loading:o||(a?m.isRunning(a):!1),disabled:a?m.isRunning(a):!1},()=>[(0,c.h)(n.t,{name:e,size:14,title:t})]),C=async(e,t)=>{let n=u(e),r=i.value?.edit;if(b(r)){try{await r(e,t)}catch(e){_.error(v(`table.actionFailed`,{action:v(`common.edit`)}),e)}return}o.value.editMode===`modal`?s.editStates.modalEdit.startEdit(n,{...e}):s.editStates.rowEdit.startEditRow(n)},w=(e,t)=>{h&&!t&&_.error(v(`table.deleteFailed`),e)},T=async(e,t,n)=>{let r=p?.(e)===!0;try{let i=await e(t,n);if(!h)return;let a=Re(i);if(a!=null){w(a,r);return}r||_.success(v(`table.deleteSuccess`)),d?.(t,n)}catch(e){throw w(e,r),e}},E=async(e,t)=>{let n=i.value?.delete;b(n)&&await _.confirm({title:v(`table.deleteTitle`),content:v(`table.deleteContent`),positiveText:v(`common.confirm`),negativeText:v(`common.cancel`),type:`warning`})&&h&&await T(n,e,t)},D=async(e,t)=>{let n=i.value?.detail;if(!b(n)){f?.(e);return}try{let r=await n(e,t);if(!h)return;let i=x(r);f?.(i||e)}catch(t){if(!h)return;_.error(v(`table.detailFailed`),t),f?.(e)}},O=(e,t)=>m.run(g(u(e),`edit`),()=>C(e,t)),k=(e,t)=>m.run(g(u(e),`delete`),()=>E(e,t)),A=(e,t)=>m.run(g(u(e),`detail`),()=>D(e,t)),j=e=>s.editStates.rowEdit.isEditingRow(e)?[S(`mdi:check`,v(`common.save`),`primary`,()=>void m.run(g(e,`save`),()=>s.editStates.rowEdit.saveEditRow()).catch(e=>_.error(v(`table.actionFailed`,{action:v(`common.save`)}),e)),g(e,`save`)),S(`mdi:close`,v(`common.cancel`),`default`,()=>void m.run(g(e,`cancel`),()=>s.editStates.rowEdit.cancelEditRow()).catch(e=>_.error(v(`table.actionFailed`,{action:v(`common.cancel`)}),e)),g(e,`cancel`))]:[S(`mdi:pencil`,v(`common.edit`),`warning`,()=>s.editStates.rowEdit.startEditRow(e))],M=(e,t)=>{let n=[];return y(`detail`)&&n.push(S(`mdi:eye`,v(`common.detail`),`info`,()=>void A(e,t),g(u(e),`detail`))),y(`edit`)&&(o.value.editMode===`modal`||b(i.value?.edit))&&n.push(S(`mdi:pencil`,v(`common.edit`),`warning`,()=>void O(e,t),g(u(e),`edit`))),y(`delete`)&&n.push(S(`mdi:delete`,v(`common.delete`),`error`,()=>void k(e,t).catch(()=>void 0),g(u(e),`delete`))),n},N=(e,t)=>{let r=i.value?.custom;if(!r?.length)return null;let a=r.filter(n=>n.show?n.show(e,t):!0);return a.length?(0,c.h)(l.NDropdown,{options:a.map(r=>{let i=typeof r.label==`function`?r.label(e,t):r.label,a=typeof r.icon==`function`?r.icon(e,t):r.icon;return{label:i,key:r.key,icon:()=>(0,c.h)(n.t,{name:a,size:14}),disabled:r.disabled?.(e,t)||m.isRunning(g(u(e),`custom:${r.key}`))}}),onSelect:n=>{let r=a.find(e=>e.key===n);if(!r)return;let i=typeof r.label==`function`?r.label(e,t):r.label;m.run(g(u(e),`custom:${r.key}`),()=>r.onClick(e,t),()=>!r.disabled?.(e,t)).catch(e=>_.error(v(`table.actionFailed`,{action:i}),e))}},()=>S(`mdi:dots-horizontal`,v(`table.moreActions`),`default`,()=>{},void 0,a.some(t=>m.isRunning(g(u(e),`custom:${t.key}`))))):null};return{renderActions:(e,t)=>{if(i.value?.render)return i.value.render(e,t);let n=u(e),r=o.value.editable&&[`row`,`both`].includes(o.value.editMode);if(r&&s.editStates.rowEdit.isEditingRow(n))return(0,c.h)(l.NSpace,{size:2,wrap:!1},()=>j(n));let a=b(i.value?.edit),d=[...r&&!a?j(n):[],...M(e,t)],f=N(e,t);return f&&d.push(f),(0,c.h)(l.NSpace,{size:2,wrap:!1},()=>d)},isActionEnabled:y}}const X=Symbol(`C_TABLE_GLOBAL_CONFIG`),Z={date:{format:`YYYY-MM-DD`},datetime:{format:`YYYY-MM-DD HH:mm:ss`},currency:{prefix:`¥`,precision:2},percent:{precision:2,suffix:`%`},number:{precision:0}};function Q(e,t){if(e==null||e===``)return`-`;let n=new Date(typeof e==`number`?e:String(e));if(Number.isNaN(n.getTime()))return String(e);let r=e=>String(e).padStart(2,`0`);return t.replace(`YYYY`,String(n.getFullYear())).replace(`MM`,r(n.getMonth()+1)).replace(`DD`,r(n.getDate())).replace(`HH`,r(n.getHours())).replace(`mm`,r(n.getMinutes())).replace(`ss`,r(n.getSeconds()))}function $(e,t){if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):n.toLocaleString(`zh-CN`,{minimumFractionDigits:t,maximumFractionDigits:t})}const Be={date:(e,t)=>Q(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>Q(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=$(e,t.precision??2);return n===`-`?`-`:`${t.prefix??`¥`}${n}${t.suffix??``}`},percent:(e,t)=>{if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):`${(n*100).toFixed(t.precision??2)}${t.suffix??`%`}`},number:(e,t)=>$(e,t.precision??0)};function Ve(e,t,n,r){if(n.fn)return n.fn(e,t);if(n.type===`enum`)return n.mapping?n.mapping[String(e)]??String(e??`-`):String(e??`-`);let i=n.type&&Be[n.type];return i?i(e,{...{...Z,...r}[n.type],...n.config}):String(e??`-`)}function He(){return(0,c.getCurrentInstance)()?(0,c.inject)(X,{}):{}}const Ue=(e,t)=>t===void 0?e:t&&e&&typeof t==`object`&&typeof e==`object`&&!Array.isArray(t)&&!Array.isArray(e)?{...e,...t}:t;function We(e,t){let n=t.defaults??{},r={...n,...e};if([`edit`,`pagination`,`expand`,`selection`,`dynamicRows`,`toolbar`,`display`,`virtualScroll`,`summary`,`columnDrag`,`tree`,`rowDrag`,`crossPageSelection`,`export`,`formatterConfig`,`error`,`batchActions`].forEach(t=>{let i=Ue(n[t],e[t]);i!==void 0&&(r[t]=i)}),t.display){let e=typeof r.display==`object`?r.display:{};r.display={...t.display,...e}}if(t.pageSize&&r.pagination!==!1){let e=typeof r.pagination==`object`?r.pagination:{};e.pageSize||(r.pagination={...e,pageSize:t.pageSize})}return r}const Ge=(0,c.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./date-picker.cjs`))),Ke={number:l.NInputNumber,switch:l.NSwitch,input:l.NInput,email:l.NInput,mobile:l.NInput,date:e=>(0,c.h)(Ge,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>(0,c.h)(l.NSelect,{...e,options:e.options||[]}),textarea:e=>(0,c.h)(l.NInput,{...e,type:`textarea`,rows:3})},qe={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Je=e=>e.map(e=>{let t=e.required?[{required:!0,message:`请输入${e.title}`,trigger:[`blur`,`input`],validator:async(t,n)=>{if(!n&&n!==0&&n!==!1)throw Error(`请输入${e.title}`)}}]:[];return{prop:e.key,label:e.title||e.key,type:qe[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function Ye(e,t,n,r={},i=0){if(e.editRender)return e.editRender(t,r,i,{onUpdate:n});let a=e,o={value:t,"onUpdate:value":n,placeholder:`请输入${a.title??``}`,style:{width:`100%`},...e.editProps};return(0,c.h)(Ke[e.editType||`input`]||Ke.input,o)}function Xe(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?Ve(r,t,e.formatter,i):String(r??``)}function Ze(e,t,r,i,a,o={rowData:{},rowIndex:0}){let s=(e,t,r)=>(0,c.h)(`button`,{class:`cell-action-btn cell-action-${e}`,title:t,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[(0,c.h)(n.t,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return(0,c.h)(`div`,{class:`cell-editing-container`},[(0,c.h)(`div`,{class:`cell-editing-input`},[Ye(e,t,r,o.rowData,o.rowIndex)]),(0,c.h)(`div`,{class:`cell-editing-actions`},[s(`save`,`保存`,i),s(`cancel`,`取消`,a)])])}function Qe(e,t,r,i,a,o){let s;return s=e.render?e.render(t,r)??String(i??``):e.formatter?Ve(i,t,e.formatter,o):String(i??``),(0,c.h)(`div`,{class:`cell-edit-wrapper`},[(0,c.h)(`span`,{class:`cell-value`},s),(0,c.h)(n.t,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function $e(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:o,editModeChecker:s,showActionsColumn:l}=e,u=(0,c.ref)([]),d=(0,c.ref)(!1),f=e=>{let t=u.value.find(e=>e.key===`_actions`),n=e.filter(e=>e.key!==`_actions`);u.value=l.value?[...n,t||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]:n};(0,c.watch)([t,l],([e])=>{e?.length?f(e):u.value=[]},{deep:!0,immediate:!0});let p=(e,t,r,i)=>{let o=e.key??``,s=t[o],{isEditingCell:c,getEditingCellValue:l,updateEditingCellValue:u,saveEditCell:d,cancelEditCell:f,startEditCell:p}=a.editStates.cellEdit;return c(i,o)?Ze(e,l(i,o),e=>u(i,o,e),()=>d(),()=>f(),{rowData:t,rowIndex:r}):Qe(e,t,r,s,()=>p(i,o),n.value.formatterConfig)},m=(e,t,r)=>{let o=e.key??``,c=t[o],l=i(t),u=s.value;if(u.isNonEditable(e))return Xe(e,t,r,c,n.value.formatterConfig);if(u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)){let n=a.editStates.rowEdit.getEditingRowData(l);return Ye(e,n?.[o],e=>a.editStates.rowEdit.updateEditingRowData(l,o,e),n??t,r)}return u.isCellEditMode()?p(e,t,r,l):Xe(e,t,r,c,n.value.formatterConfig)},h=e=>{let t=e.width||r||180;return typeof t==`number`?t:180},g=e=>{let t=e;return{key:`_index`,title:t.title||`序号`,width:typeof(t.width||50)==`number`&&t.width||50,titleAlign:`center`,align:`center`,render:(e,t)=>t+1,fixed:e.fixed}},_=e=>{let t=e,n={...t,width:h(e),titleAlign:t.titleAlign||`center`,align:t.align||`center`,render:(t,n)=>m(e,t,n)};return e.fixed&&(n.fixed=e.fixed),e.resizable&&typeof n.width==`number`&&(n.resizable=!0,n.minWidth=e.minWidth||80,n.maxWidth=e.maxWidth||500),n};return{reactiveColumns:u,showSettingsPanel:d,computedColumns:(0,c.computed)(()=>{let e=u.value.filter(e=>{let t=e;return t.visible!==!1&&t.key!==`_actions`}).map(e=>e.type===`index`?g(e):_(e));if(a.dynamicRowsState&&(e=a.dynamicRowsState.enhanceColumns(e)),a.expandState&&(n.value.expandable||n.value.enableSelection)&&(e=a.expandState.getTableColumns(e)),l.value){let t=u.value.find(e=>e.key===`_actions`);e.push({key:`_actions`,title:`操作`,width:t?.width??180,className:`c-table-actions-column`,align:`center`,titleAlign:`center`,render:o,fixed:t?.fixed})}return e}),computedScrollX:(0,c.computed)(()=>{if(e.scrollX!==void 0)return e.scrollX;if(u.value.some(e=>{let t=e;return t.fixed&&t.visible!==!1}))return u.value.filter(e=>e.visible!==!1).reduce((e,t)=>e+h(t),0)+200}),handleColumnChange:e=>{u.value=e.map(e=>{let t=e;return{...e,visible:t.visible!==!1,fixed:e.fixed,width:t.width||r,align:t.align||`center`,titleAlign:t.titleAlign||`center`}})}}}function et(e){let{data:t,onReorder:n,onSort:r}=e,i=(0,c.ref)(!1),a=null,o=0,s=!1,l=()=>{a?.destroy(),a=null,i.value=!1},u=async u=>{let d=++o;l();let f=(0,c.toValue)(e.config);if(!(!f?.enabled||!u||s))try{let{default:e}=await import(`sortablejs`);if(s||d!==o)return;let c=u.querySelector(`.n-data-table-tbody`);if(!c)return;a=new e(c,{animation:f.animationDuration??150,handle:f.handleSelector,ghostClass:f.ghostClass??`row-drag-ghost`,chosenClass:f.chosenClass??`row-drag-chosen`,onStart:()=>{i.value=!0},onEnd:e=>{if(i.value=!1,e.oldIndex==null||e.newIndex==null||e.oldIndex===e.newIndex)return;let a=[...t.value],[o]=a.splice(e.oldIndex,1);o&&(a.splice(e.newIndex,0,o),n?.(a),r?.(o,e.oldIndex,e.newIndex))}})}catch{}},d=()=>{o+=1,l()};return(0,c.onBeforeUnmount)(()=>{s=!0,d()}),{initRowDrag:u,destroyRowDrag:d,isDragging:i}}function tt(e){let t=(0,c.ref)(new Set),n=(0,c.shallowReactive)(new Map),r=()=>(0,c.toValue)(e.config)?.enabled===!0,i=(t=e.allData.value)=>F(t,(0,c.toValue)(e.childrenKey)),a=t=>e.rowCheckable?.(t)!==!1,o=()=>{let t=(0,c.toValue)(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},s=(0,c.computed)(()=>t.value.size),l=()=>[...t.value].flatMap(e=>{let t=n.get(e);return t?[t]:[]}),u=e=>{let t=o(),n=new Set;for(let r of e){if(t&&n.size>=t)break;n.add(r)}return n},d=(r,i=[])=>{let a=u(r);for(let t of i){let r=e.rowKey(t);a.has(r)&&n.set(r,t)}for(let e of n.keys())a.has(e)||n.delete(e);let o=t.value;o.size===a.size&&[...o].every(e=>a.has(e))||(t.value=a,e.onSelectionChange?.([...a],l()))},f=n=>i(n).map(e.rowKey).filter(e=>t.value.has(e)),p=(n,o)=>{if(!r())return;let s=i(o),c=new Set(s.filter(a).map(e.rowKey)),l=new Set(t.value);s.forEach(t=>l.delete(e.rowKey(t))),n.forEach(e=>{c.has(e)&&l.add(e)}),d(l,s)},m=()=>{if(!r())return;let n=i().filter(a),o=n.map(e.rowKey);d((0,c.toValue)(e.remote)?[...t.value,...o]:o,n)},h=n=>{if(!r())return!1;if(t.value.has(n))return!0;let s=i().find(t=>e.rowKey(t)===n&&a(t));if(!s)return!1;let c=o();return c&&t.value.size>=c?!1:(d([...t.value,n],[s]),!0)},g=e=>{if(!t.value.has(e))return;let n=new Set(t.value);n.delete(e),d(n)},_=()=>d([]);return(0,c.watch)(e.allData,a=>{if(!r()||t.value.size===0)return;let o=i(a);if((0,c.toValue)(e.remote)){for(let r of o){let i=e.rowKey(r);t.value.has(i)&&n.set(i,r)}return}let s=new Set(o.map(e.rowKey));d([...t.value].filter(e=>s.has(e)),o)}),(0,c.watch)(()=>[r(),o()],([e])=>{e?d(t.value):_()}),{selectedKeys:t,selectedCount:s,getPageCheckedKeys:f,handlePageSelectionChange:p,selectAll:m,select:h,unselect:g,clearAll:_,getSelectedRows:l,isSelected:e=>t.value.has(e)}}function nt(e,t){return e.filter(e=>typeof e.key!=`string`||e.key.startsWith(`_`)||e.type===`selection`||e.type===`expand`?!1:t?.length?t.includes(e.key):e.visible!==!1)}function rt(e,t,n){let r=e[t.key];return t.formatter?Ve(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function it(e,t,n){let r=n&&/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return r.includes(t)||r.includes(`"`)||r.includes(`
|
|
2
|
+
`)||r.includes(`\r`)?`"${r.replace(/"/g,`""`)}"`:r}function at(e){return[...e||`export`].map(e=>e.charCodeAt(0)<32||`<>:"/\\|?*`.includes(e)?`_`:e).join(``).trim()||`export`}function ot(e,t,n){let r=n.csvSeparator??`,`,i=n.preventFormulaInjection!==!1,a=nt(t,n.columnKeys),o=[];n.includeHeader!==!1&&o.push(a.map(e=>it(e.title??``,r,i)).join(r));for(let t of e){let e=a.map(e=>it(rt(t,e,n.formatterConfig),r,i));o.push(e.join(r))}ct(new Blob([``+o.join(`
|
|
3
|
+
`)],{type:`text/csv;charset=utf-8;`}),`${at(n.filename)}.csv`)}async function st(e,t,n){let r=nt(t,n.columnKeys),i;try{i=await import(`xlsx`)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),ot(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>rt(e,t,n.formatterConfig))),s=n.includeHeader===!1?o:[a,...o],c=i.utils.aoa_to_sheet(s),l=i.utils.book_new();i.utils.book_append_sheet(l,c,`Sheet1`),i.writeFile(l,`${at(n.filename)}.xlsx`)}function ct(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>URL.revokeObjectURL(n),0)}async function lt(e,t,n={}){n.format===`xlsx`?await st(e,t,n):ot(e,t,n)}const ut=e=>[{label:e.fixed?`✓ 取消固定`:`不固定`,key:`none`,disabled:!e.fixed},{label:e.fixed===`left`?`✓ 固定左侧`:`固定左侧`,key:`left`,disabled:!1},{label:e.fixed===`right`?`✓ 固定右侧`:`固定右侧`,key:`right`,disabled:!1}],dt=[`_actions`],ft=[`selection`,`expand`],pt=e=>dt.includes(e.key)||ft.includes(e.type),mt=e=>typeof e==`string`||typeof e==`number`&&Number.isFinite(e),ht=e=>typeof e==`number`&&Number.isFinite(e)&&e>=0||typeof e==`string`&&e.trim().length>0&&e.length<=128,gt=e=>e.map(e=>({...e})),_t=e=>{let t;try{t=JSON.parse(e)}catch{return[]}return Array.isArray(t)?t.flatMap((e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let n=e;return mt(n.key)?[{key:n.key,order:t,...typeof n.visible==`boolean`&&{visible:n.visible},...ht(n.width)&&{width:n.width},...(n.fixed===`left`||n.fixed===`right`)&&{fixed:n.fixed}}]:[]}):[]},vt=(e,t)=>{let n=new Map(_t(t).map(e=>[e.key,e]));return gt(e).map(e=>{let t=mt(e.key)?n.get(e.key):void 0;return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:e}).sort((e,t)=>{let r=mt(e.key)?n.get(e.key)?.order:void 0,i=mt(t.key)?n.get(t.key)?.order:void 0;return(r??1/0)-(i??1/0)})},yt=e=>JSON.stringify(e.filter(e=>mt(e.key)).map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}))),bt={class:`column-management-tab`},xt={class:`search-row`},St={class:`resizable-control`},Ct={class:`top-actions-bar`},wt={class:`stats-info`},Tt={class:`quick-actions`},Et=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],Dt={class:`column-info`},Ot={class:`column-controls`},kt={class:`column-details`},At={class:`column-actions`},jt={class:`drag-controls`},Mt=(0,c.defineComponent)({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t,a=e=>{if(!r.persistKey)return gt(e);try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);return t?vt(e,t):gt(e)}catch{return gt(e)}},o=e=>{if(r.persistKey)try{localStorage.setItem(`c_table_cols_${r.persistKey}`,yt(e))}catch{}},s=(0,c.ref)(a(r.columns)),u=(0,c.ref)(``),d=(0,c.ref)(),f=(0,c.ref)(null),p=(0,c.ref)(null),m=(0,c.ref)(!1);(0,c.onMounted)(()=>{m.value=s.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...s.value])}),(0,c.watch)(()=>r.columns,e=>{s.value=a(e),m.value=s.value.some(e=>e.resizable===!0)},{deep:!0});let h=(0,c.computed)(()=>{if(!u.value)return s.value;let e=u.value.toLowerCase();return s.value.filter(t=>String(t.title??``).toLowerCase().includes(e)||String(t.key??``).toLowerCase().includes(e))}),g=(0,c.computed)(()=>s.value.filter(e=>e.visible!==!1).length),_=(0,c.computed)(()=>s.value.length),v=e=>{s.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),T()},y=()=>v(!0),b=()=>v(!1),x=e=>{let t=h.value[e];return s.value.findIndex(e=>e.key===t.key)},S=(e,t)=>{let n=x(e);n!==-1&&(t(s.value[n]),T())},C=(e,t)=>{S(e,e=>{e.visible=t})},w=(e,t)=>{S(e,e=>{e.fixed=t===`none`?void 0:t})},T=()=>{o(s.value),i(`change`,[...s.value])},E=()=>{s.value=gt(r.columns),T()},D=e=>{s.value.forEach(t=>{pt(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),T()},O=(e,t)=>{let n=x(e),r=x(t);if(n!==-1&&r!==-1){let[e]=s.value.splice(n,1);s.value.splice(r,0,e),T()}},k=(e,t)=>{if(h.value[e].key===`_actions`){t.preventDefault();return}f.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},A=(e,t)=>{t.preventDefault(),!(f.value===null||h.value[e].key===`_actions`)&&(p.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},j=e=>{f.value===null||h.value[e].key===`_actions`||(O(f.value,e),f.value=null,p.value=null)},M=()=>{f.value=null,p.value=null};return(e,t)=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,bt,[(0,c.createCommentVNode)(` 搜索框和列宽调整开关 `),(0,c.createElementVNode)(`div`,xt,[(0,c.createVNode)((0,c.unref)(l.NInput),{value:u.value,"onUpdate:value":t[0]||=e=>u.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:(0,c.withCtx)(()=>[(0,c.createVNode)(n.t,{name:`mdi:magnify`})]),_:1},8,[`value`]),(0,c.createElementVNode)(`div`,St,[(0,c.createVNode)(n.t,{name:`mdi:arrow-split-vertical`,size:`14`,title:m.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),(0,c.createVNode)((0,c.unref)(l.NText),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:(0,c.withCtx)(()=>[...t[2]||=[(0,c.createTextVNode)(` 列宽调整 `,-1)]]),_:1}),(0,c.createVNode)((0,c.unref)(l.NSwitch),{value:m.value,"onUpdate:value":[t[1]||=e=>m.value=e,D],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),(0,c.createCommentVNode)(` 顶部操作栏:统计信息和快捷操作按钮 `),(0,c.createElementVNode)(`div`,Ct,[(0,c.createElementVNode)(`div`,wt,[(0,c.createVNode)((0,c.unref)(l.NText),{depth:`3`,style:{fontSize:`13px`}},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)(` 已选 `+(0,c.toDisplayString)(g.value)+` / 总共 `+(0,c.toDisplayString)(_.value)+` 列 `,1)]),_:1})]),(0,c.createElementVNode)(`div`,Tt,[(0,c.createVNode)((0,c.unref)(l.NSpace),{size:6},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(l.NButton),{size:`tiny`,onClick:y},{default:(0,c.withCtx)(()=>[...t[3]||=[(0,c.createTextVNode)(` 全选 `,-1)]]),_:1}),(0,c.createVNode)((0,c.unref)(l.NButton),{size:`tiny`,onClick:b},{default:(0,c.withCtx)(()=>[...t[4]||=[(0,c.createTextVNode)(` 全不选 `,-1)]]),_:1}),(0,c.createVNode)((0,c.unref)(l.NButton),{size:`tiny`,onClick:E},{default:(0,c.withCtx)(()=>[...t[5]||=[(0,c.createTextVNode)(` 重置 `,-1)]]),_:1})]),_:1})])]),(0,c.createCommentVNode)(` 列列表 `),(0,c.createElementVNode)(`div`,{ref_key:`listRef`,ref:d,class:`column-list`},[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(h.value,(e,r)=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{key:e.key,class:(0,c.normalizeClass)([`column-item`,{disabled:e.key===`_actions`,"fixed-left":e.fixed===`left`,"fixed-right":e.fixed===`right`}]),draggable:e.key!==`_actions`,onDragstart:e=>k(r,e),onDragover:e=>A(r,e),onDragend:M,onDrop:e=>j(r)},[(0,c.createElementVNode)(`div`,Dt,[(0,c.createElementVNode)(`div`,Ot,[(0,c.createVNode)(n.t,{name:`mdi:drag`,size:`16`,class:(0,c.normalizeClass)([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),(0,c.createVNode)((0,c.unref)(l.NCheckbox),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>C(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),(0,c.createElementVNode)(`div`,kt,[(0,c.createVNode)((0,c.unref)(l.NSpace),{align:`center`,size:6},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(l.NText),{strong:``,style:{fontSize:`13px`}},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.NTag),{key:0,size:`tiny`,type:`info`},{default:(0,c.withCtx)(()=>[...t[6]||=[(0,c.createTextVNode)(` 左固定 `,-1)]]),_:1})):(0,c.createCommentVNode)(`v-if`,!0),e.fixed===`right`?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.NTag),{key:1,size:`tiny`,type:`warning`},{default:(0,c.withCtx)(()=>[...t[7]||=[(0,c.createTextVNode)(` 右固定 `,-1)]]),_:1})):(0,c.createCommentVNode)(`v-if`,!0)]),_:2},1024),(0,c.createVNode)((0,c.unref)(l.NText),{depth:`3`,style:{fontSize:`11px`}},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)(e.key),1)]),_:2},1024)])]),(0,c.createElementVNode)(`div`,At,[(0,c.createElementVNode)(`div`,jt,[(0,c.createVNode)(n.t,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:(0,c.normalizeClass)({disabled:r===0}),onClick:e=>r!==0&&O(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),(0,c.createVNode)(n.t,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==h.value.length-1,class:(0,c.normalizeClass)({disabled:r===h.value.length-1}),onClick:e=>r!==h.value.length-1&&O(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),(0,c.createVNode)((0,c.unref)(l.NDropdown),{options:(0,c.unref)(ut)(e),onSelect:e=>w(r,e)},{default:(0,c.withCtx)(()=>[(0,c.createVNode)(n.t,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:(0,c.normalizeStyle)({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,Et))),128))],512)]))}});var Nt=r.t(Mt,[[`__scopeId`,`data-v-92119048`]]);const Pt=[`aria-busy`],Ft={key:1,class:`table-toolbar`},It={class:`toolbar-left`},Lt={class:`toolbar-right`},Rt={key:2,class:`batch-actions-bar`},zt={class:`batch-info`},Bt={key:3,class:`table-error-state`},Vt={class:`error-content`},Ht={class:`error-message`},Ut=(0,c.defineComponent)({name:`C_Table`,inheritAttrs:!1,__name:`index`,props:{wrapperClass:{},flexHeight:{type:Boolean},columns:{},data:{},loading:{},rowKey:{type:[String,Function],default:`id`},config:{default:()=>({})},pagination:{type:[Object,Boolean],default:void 0},remote:{type:Boolean,default:void 0},crud:{}},emits:[`pagination-change`,`row-delete`,`batch-action-error`,`row-key-error`,`expand-change`,`selection-change`,`child-selection-change`,`parent-child-link-change`,`update:data`,`save`,`cancel`,`edit-error`,`row-add`,`row-copy`,`row-move`,`row-selection-change`,`view-detail`,`column-change`],setup(r,{expose:u,emit:d}){let f=(0,c.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./C_Form.cjs`)).then(e=>e.C_Form)),p=r,m=d,h=(0,c.ref)(null),g=(e,...t)=>{if(m(e,...t),p.crud)return{save:p.crud.save,cancel:p.crud.handleCancel,"pagination-change":p.crud.handlePaginationChange,"row-delete":p.crud.handleRowDelete,"view-detail":p.crud.detail?.show}[e]?.(...t)},_=He(),v=e=>typeof p.rowKey==`function`?p.rowKey(e):e[p.rowKey],y=(0,c.computed)(()=>{let e=p.config||{};if(p.crud){let t={};p.crud.actions&&(t.actions=p.crud.actions.value),p.crud.pagination&&(t.pagination=p.crud.pagination.value??void 0),e={...t,...e}}return We(e,_)}),b=(0,c.computed)(()=>p.columns??p.crud?.columns.value??[]),x=(0,c.computed)(()=>T(y.value)),S=t.t(()=>x.value.feedback),{t:C}=e.t(()=>x.value.locale),w=(0,c.computed)(()=>E(x.value)),D=e=>e&&typeof e==`object`&&`value`in e?e.value:e,O=(0,c.computed)(()=>D(p.data)??p.crud?.data.value??[]),k=(0,c.computed)(()=>D(p.loading)??p.crud?.loading.value??!1),A=(0,c.computed)(()=>x.value.treeEnabled&&x.value.treeDefaultExpandAll?ie(O.value,x.value.treeChildrenKey,v):[]),j=(0,c.computed)(()=>({...x.value,defaultExpandedKeys:[...new Set([...x.value.defaultExpandedKeys??[],...A.value])]})),M=``;(0,c.watch)(()=>y.value.validateRowKeys===!1?[]:O.value.map(e=>{try{return v(e)}catch{return}}),()=>{if(y.value.validateRowKeys===!1){M=``;return}let e=re(O.value,v);if(e.length===0){M=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==M&&(M=t,S.warning(C(`table.invalidRowKeys`,{count:e.length})),m(`row-key-error`,e))},{immediate:!0});let N=(0,c.computed)(()=>p.pagination!==void 0),P=(0,c.computed)(()=>p.remote??x.value.pagination?.remote??!1),ee=(0,c.ref)((e=>{if(!e)return 10;if(e.defaultPageSize!==void 0)return e.defaultPageSize;let t=e.pageSizes?.[0];return typeof t==`number`?t:t?.value||10})(p.pagination)),F=(0,c.ref)(p.pagination?p.pagination.defaultPage??1:1),te=e=>{F.value=e},ne=e=>{ee.value=e},I=Ae({config:j,data:()=>O.value,rowKey:v,rowKeyField:()=>typeof p.rowKey==`string`?p.rowKey:void 0,emit:g,columns:()=>b.value,renderLoading:()=>(0,c.h)(i.t,{size:32,label:C(`table.loading`)})}),ae=new Set;(0,c.watch)(A,e=>{if(!x.value.treeEnabled||!x.value.treeDefaultExpandAll){ae.clear();return}let t=e.filter(e=>!ae.has(e));e.forEach(e=>ae.add(e));let n=I.expandedKeys.value,r=t.filter(e=>!n.includes(e));r.length&&I.expandState?.handleExpandChange([...n,...r])},{immediate:!0});let oe=ze({actions:(0,c.computed)(()=>y.value.actions||{}),config:x,tableManager:I,rowKey:v,onRowDeleted:(e,t)=>m(`row-delete`,e,t),isDeleteFeedbackHandled:e=>p.crud?.actions?.value.delete===e,onViewDetail:e=>g(`view-detail`,e)}),se=(0,c.computed)(()=>{let{actions:e}=y.value;return!!(x.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),ce=$e({rawColumns:b,config:x,columnWidth:x.value.columnWidth,scrollX:x.value.scrollX,rowKey:v,tableManager:I,actionsRenderer:oe.renderActions,editModeChecker:w,showActionsColumn:se}),{showSettingsPanel:le,reactiveColumns:L,computedColumns:ue,computedScrollX:de}=ce,fe=Le({data:O,columns:L,remote:()=>N.value||x.value.pagination?.remote===!0}),pe=Le({data:O,columns:L,remote:P}),R=Me({data:fe.processedData,config:(0,c.computed)(()=>N.value?null:x.value.pagination),emit:g}),z=(0,c.computed)(()=>{if(N.value){let e=h.value?.getCurrentPageData?.();if(e)return e;let t=pe.processedData.value;if(!p.pagination||P.value)return t;let n=p.pagination.pageSize??ee.value,r=Math.max(1,Math.min(p.pagination.page??F.value,Math.ceil(t.length/Math.max(1,n))));return t.slice((r-1)*n,r*n)}return R.paginatedData.value}),me=e=>{fe.setSorter(e),pe.setSorter(e)},he=e=>{fe.setFilters(e),pe.setFilters(e),!N.value&&!x.value.pagination?.remote&&R.resetToFirstPage()},B,ge=et({data:z,rowKey:v,config:(0,c.computed)(()=>x.value.rowDrag),onReorder:e=>{let t=new Map(O.value.map((e,t)=>[v(e),t]));if(B=z.value.map(e=>t.get(v(e))),N.value?P.value:x.value.pagination?.remote===!0){g(`update:data`,e);return}let n=[...O.value];B.forEach((t,r)=>{t!==void 0&&(n[t]=e[r])}),g(`update:data`,n)},onSort:(e,t,n)=>{let r=B?.[t]??t,i=B?.[n]??n;B=void 0,m(`row-move`,e,r,i)}}),V=tt({allData:O,rowKey:v,config:(0,c.computed)(()=>x.value.crossPageSelection),remote:()=>N.value?P.value:x.value.pagination?.remote===!0,childrenKey:()=>x.value.treeEnabled?x.value.treeChildrenKey:void 0,rowCheckable:e=>x.value.rowCheckable?.(e)??!0,onSelectionChange:(e,t)=>m(`selection-change`,e,t,new Map)}),H=(0,c.computed)(()=>x.value.crossPageSelection?.enabled===!0),_e=(0,c.computed)(()=>H.value?V.selectedCount.value:I.checkedKeys?.value?.length??0),ve=a.t(),ye=async e=>{if(ve.isRunning(e.key))return;let t=H.value?[...V.selectedKeys.value]:I.checkedKeys?.value??[],n=new Set(t),r=H.value?V.getSelectedRows():O.value.filter(e=>n.has(v(e)));try{if(!(await ve.run(e.key,()=>e.onClick(t,r))).executed)return;x.value.batchActions?.clearSelectionOnSuccess&&U()}catch(t){x.value.batchActions?.onError?.(t,e.key),m(`batch-action-error`,t,e.key)}},U=()=>{H.value?V.clearAll():I.stateManager.selection.clear()},be=(0,c.computed)(()=>H.value?V.getPageCheckedKeys(z.value):null),xe=e=>{if(H.value){V.handlePageSelectionChange(e,z.value);return}I.expandState?.handleSelectionChange?.(e)},Se=a.t(),Ce=async()=>{let e=x.value.exportConfig??{};await Se.run(`export`,async()=>{let t=()=>H.value?V.getSelectedRows():I.stateManager.selection.getSelected(),n=e.scope===`page`?z.value:O.value;await lt(e.requestData?await e.requestData():e.scope===`selected`?t():n,e.scope&&e.scope!==`source`?L.value:b.value,{...e,formatterConfig:x.value.formatterConfig})})},we=(0,c.computed)(()=>x.value.summaryRender),W=(0,c.ref)(),Te=null,Ee=0,De=()=>{Ee+=1,Te?.destroy(),Te=null},Oe=async()=>{let e=++Ee;if(Te?.destroy(),Te=null,!(!x.value.enableColumnDrag||!W.value))try{let{default:t}=await import(`sortablejs`);if(e!==Ee||!W.value)return;let n=W.value.querySelector(`.n-data-table-thead tr`);if(!n)return;Te=new t(n,{animation:x.value.columnDragAnimationDuration,handle:x.value.columnDragHandleClass?`.${x.value.columnDragHandleClass}`:void 0,filter:`.c-table-actions-column`,preventOnFilter:!0,ghostClass:`column-drag-ghost`,onEnd:e=>{if(e.oldIndex==null||e.newIndex==null)return;let t=[...L.value],n=t.filter(e=>e.visible!==!1&&e.key!==`_actions`),r=n[e.oldIndex],i=n[e.newIndex];if(!r||!i||r===i)return;let a=t.indexOf(r),o=t.indexOf(i);t.splice(a,1),t.splice(o,0,r),ce.handleColumnChange(t),m(`column-change`,t)}})}catch{}},ke=(0,c.computed)(()=>({striped:x.value.striped,bordered:x.value.bordered,singleLine:x.value.singleLine,size:x.value.size,maxHeight:x.value.maxHeight})),G=(0,c.ref)(),K=(0,c.ref)(!1),q=(0,c.ref)({}),J=(0,c.computed)({get:()=>I.editStates.modalEdit.isModalVisible.value,set:e=>{I.editStates.modalEdit.isModalVisible.value=e}}),je=(0,c.computed)(()=>b.value.filter(e=>e.editable!==!1)),Ne=(0,c.computed)(()=>`edit-form-${I.editStates.modalEdit.editingRowKey.value??`new`}`),Pe=(0,c.computed)(()=>Je(je.value));(0,c.watch)(()=>I.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(q.value=s.t(e))},{immediate:!0,deep:!0});let Y=null;(0,c.watch)(J,e=>{e&&Y&&(clearTimeout(Y),Y=null),e||(Y&&clearTimeout(Y),Y=setTimeout(()=>{q.value={},Y=null},300))});let Fe=async()=>{if(!G.value||K.value)return;let e=I.editStates.modalEdit.editingRowKey.value,t=s.t(q.value);K.value=!0;try{try{await G.value.validate()}catch{return}if(e!==I.editStates.modalEdit.editingRowKey.value||!s.a(t,q.value))return;await I.editStates.modalEdit.saveEdit(t)}finally{K.value=!1}},Ie=()=>{q.value={},I.editStates.modalEdit.cancelEdit()},Re=e=>{ce.handleColumnChange(e),m(`column-change`,ce.reactiveColumns.value)},{edit:X,expand:Z,selection:Q,dynamicRows:$}=I.stateManager,Be=()=>h.value?.getFilteredAndSortedData?.().length??pe.processedData.value.length,Ve={startEdit:X.start,cancelEdit:X.cancel,saveEdit:()=>I.editStates.modalEdit.isModalVisible.value?Fe():X.save(),expandRow:Z.row,collapseRow:Z.collapse,toggleExpand:Z.toggle,retryExpand:e=>I.expandState.retryExpand(e),invalidateExpand:e=>I.expandState.invalidateExpand(e),expandAll:Z.all,collapseAll:Z.collapseAll,selectRow:e=>H.value?V.select(e):(Q.select(e),Q.isSelected(e)),unselectRow:e=>{H.value?V.unselect(e):Q.unselect(e)},selectAll:()=>{H.value?V.selectAll():Q.all()},clearSelection:U,isRowSelected:e=>H.value?V.isSelected(e):Q.isSelected(e),clearAllSelections:()=>{V.clearAll(),I.stateManager.clearAllSelections()},selectChildRow:I.stateManager.childSelection.select,unselectChildRow:I.stateManager.childSelection.unselect,selectAllChildren:I.stateManager.childSelection.selectAll,clearChildrenSelection:I.stateManager.childSelection.clear,getChildSelectedRows:I.stateManager.childSelection.getSelected,addRow:$.add,insertRow:$.insert,deleteRow:$.delete,copyRow:$.copy,moveRowUp:$.moveUp,moveRowDown:$.moveDown,clearRowSelection:$?.clearSelection,getSelectedRowData:$.getSelected,printTable:e=>$.print(e??W.value),downloadTableScreenshot:(e,t)=>$.download(e??W.value,t),resetToFirstPage:()=>{N.value?(F.value=1,h.value?.page(1)):R.resetToFirstPage()},getTotalPages:()=>{if(!N.value)return R.getTotalPages();let e=p.pagination;if(!e)return 1;if(P.value&&e.itemCount===void 0&&e.pageCount!==void 0)return Math.max(1,e.pageCount);let t=P.value?e.itemCount??O.value.length:Be(),n=e.pageSize??ee.value;return Math.max(1,Math.ceil(t/Math.max(1,n)))},getSelectedRows:()=>H.value?V.getSelectedRows():Q.getSelected(),getEditingData:X.getEditingData,isEditing:X.isEditing,isExpanded:Z.isExpanded,getManager:()=>I.stateManager,exportData:Ce,crossPageSelection:{enabled:H,selectedKeys:V.selectedKeys,selectedCount:V.selectedCount,select:V.select,unselect:V.unselect,selectAll:V.selectAll,clearAll:V.clearAll,getSelectedRows:V.getSelectedRows}};return u(Ve),(0,c.onMounted)(()=>{let e=p.crud?.tableRef;e&&(e.value=Ve),Oe(),W.value&&ge.initRowDrag(W.value)}),(0,c.watch)([()=>x.value.enableColumnDrag,()=>x.value.columnDragHandleClass,()=>k.value,()=>ue.value.length],async()=>{await(0,c.nextTick)(),await Oe()},{immediate:!0,flush:`post`}),(0,c.watch)([()=>x.value.rowDrag,()=>k.value,()=>z.value.length,()=>R.currentPage.value],async()=>{await(0,c.nextTick)(),W.value&&await ge.initRowDrag(W.value)},{immediate:!0,deep:!0,flush:`post`}),(0,c.onBeforeUnmount)(()=>{Y&&clearTimeout(Y),De(),ge.destroyRowDrag()}),(e,t)=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,{ref_key:`tableWrapperRef`,ref:W,class:(0,c.normalizeClass)([`c-table-wrapper`,[r.wrapperClass,{"c-table-wrapper--flex":r.flexHeight}]]),"aria-busy":k.value},[(0,c.createCommentVNode)(` 动态行工具栏 `),x.value.dynamicRows&&(0,c.unref)(I).dynamicRowsState?((0,c.openBlock)(),(0,c.createBlock)((0,c.resolveDynamicComponent)((0,c.unref)(I).dynamicRowsState.renderToolbar(W.value)),{key:0})):(0,c.createCommentVNode)(`v-if`,!0),(0,c.createCommentVNode)(` 表格工具栏 `),x.value.showToolbar?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,Ft,[(0,c.createElementVNode)(`div`,It,[(0,c.renderSlot)(e.$slots,`toolbar-left`,{},void 0,!0),x.value.toolbarActions.length?((0,c.openBlock)(),(0,c.createBlock)(o.t,{key:0,actions:x.value.toolbarActions,config:{...x.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,c.createCommentVNode)(`v-if`,!0)]),(0,c.createElementVNode)(`div`,Lt,[(0,c.renderSlot)(e.$slots,`toolbar-right`,{},void 0,!0),x.value.toolbarRightActions.length?((0,c.openBlock)(),(0,c.createBlock)(o.t,{key:0,actions:x.value.toolbarRightActions,config:{align:`right`,...x.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,c.createCommentVNode)(`v-if`,!0),x.value.exportConfig?((0,c.openBlock)(),(0,c.createBlock)(n.t,{key:1,name:`mdi:download`,size:`18`,title:(0,c.unref)(C)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:t[0]||=e=>Ce()},null,8,[`title`])):(0,c.createCommentVNode)(`v-if`,!0),x.value.enableColumnSettings?((0,c.openBlock)(),(0,c.createBlock)(n.t,{key:2,name:`mdi:cog`,size:`18`,title:(0,c.unref)(C)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:t[1]||=e=>le.value=!0},null,8,[`title`])):(0,c.createCommentVNode)(`v-if`,!0)])])):(0,c.createCommentVNode)(`v-if`,!0),(0,c.createCommentVNode)(` 批量操作栏 `),x.value.batchActions?.enabled&&_e.value>0?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,Rt,[(0,c.createElementVNode)(`span`,zt,(0,c.toDisplayString)((0,c.unref)(C)(`table.selectedCount`,{count:_e.value})),1),(0,c.createVNode)((0,c.unref)(l.NSpace),{size:8},{default:(0,c.withCtx)(()=>[((0,c.openBlock)(!0),(0,c.createElementBlock)(c.Fragment,null,(0,c.renderList)(x.value.batchActions.actions||[],e=>((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.NButton),{key:e.key,type:e.type||`default`,size:`small`,loading:(0,c.unref)(ve).isRunning(e.key),disabled:(0,c.unref)(ve).isRunning(e.key),onClick:t=>ye(e)},(0,c.createSlots)({default:(0,c.withCtx)(()=>[(0,c.createTextVNode)(` `+(0,c.toDisplayString)(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:(0,c.withCtx)(()=>[(0,c.createVNode)(n.t,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`loading`,`disabled`,`onClick`]))),128)),(0,c.createVNode)((0,c.unref)(l.NButton),{size:`small`,onClick:U},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)((0,c.unref)(C)(`table.cancelSelection`)),1)]),_:1})]),_:1})])):(0,c.createCommentVNode)(`v-if`,!0),(0,c.createCommentVNode)(` 错误状态 `),x.value.error?.show?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,Bt,[(0,c.renderSlot)(e.$slots,`error`,{error:x.value.error},()=>[(0,c.createElementVNode)(`div`,Vt,[(0,c.createVNode)(n.t,{name:`mdi:alert-circle-outline`,size:`48`}),(0,c.createElementVNode)(`p`,Ht,(0,c.toDisplayString)(x.value.error.message||(0,c.unref)(C)(`table.loadFailed`)),1),x.value.error.onRetry?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.NButton),{key:0,type:`primary`,size:`small`,onClick:x.value.error.onRetry},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)((0,c.unref)(C)(`common.retry`)),1)]),_:1},8,[`onClick`])):(0,c.createCommentVNode)(`v-if`,!0)])],!0)])):(0,c.createCommentVNode)(`v-if`,!0),(0,c.createCommentVNode)(` 表格主体 `),x.value.error?.show?(0,c.createCommentVNode)(`v-if`,!0):((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.NDataTable),(0,c.mergeProps)({key:4,ref_key:`tableRef`,ref:h},{...ke.value,...e.$attrs},{"flex-height":r.flexHeight,columns:(0,c.unref)(ue),data:N.value?O.value:(0,c.unref)(R).paginatedData.value,pagination:N.value?p.pagination:!1,remote:N.value?P.value:!0,"onUpdate:sorter":me,"onUpdate:filters":he,"onUpdate:pageSize":ne,"onUpdate:page":te,loading:k.value,"row-key":v,"expanded-row-keys":(0,c.unref)(I).expandedKeys.value,"checked-row-keys":be.value??(0,c.unref)(I).checkedKeys.value,"onUpdate:expandedRowKeys":(0,c.unref)(I).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":xe,"scroll-x":(0,c.unref)(de),"virtual-scroll":x.value.virtualScroll,"min-row-height":x.value.virtualScroll?x.value.virtualItemHeight:void 0,"max-height":x.value.virtualScroll?x.value.virtualMaxHeight:x.value.maxHeight,summary:we.value,"summary-placement":x.value.summaryPosition,"children-key":x.value.treeEnabled?x.value.treeChildrenKey:void 0,indent:x.value.treeEnabled?x.value.treeIndent:void 0,"default-expand-all":x.value.treeEnabled?x.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),{loading:(0,c.withCtx)(()=>[(0,c.renderSlot)(e.$slots,`loading`,{},()=>[(0,c.createVNode)((0,c.unref)(i.t),{label:(0,c.unref)(C)(`table.loading`)},null,8,[`label`])],!0)]),_:3},16,[`flex-height`,`columns`,`data`,`pagination`,`remote`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),(0,c.createCommentVNode)(` 分页 `),!N.value&&(0,c.unref)(R).paginationConfig.value?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.NPagination),(0,c.mergeProps)({key:5},(0,c.unref)(R).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):(0,c.createCommentVNode)(`v-if`,!0),(0,c.createCommentVNode)(` 编辑弹窗 `),x.value.editMode===`modal`||x.value.editMode===`both`?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(l.NModal),{key:6,show:J.value,"onUpdate:show":t[3]||=e=>J.value=e,title:x.value.modalTitle,width:x.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(l.NSpace),{justify:`end`},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(l.NButton),{disabled:K.value,onClick:Ie},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)((0,c.unref)(C)(`common.cancel`)),1)]),_:1},8,[`disabled`]),(0,c.createVNode)((0,c.unref)(l.NButton),{type:`primary`,disabled:!G.value||K.value,loading:K.value,onClick:Fe},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)((0,c.unref)(C)(`common.save`)),1)]),_:1},8,[`disabled`,`loading`])]),_:1})]),default:(0,c.withCtx)(()=>[J.value&&Pe.value.length?((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(f),{ref_key:`editFormRef`,ref:G,key:Ne.value,modelValue:q.value,"onUpdate:modelValue":t[2]||=e=>q.value=e,options:Pe.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):(0,c.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):(0,c.createCommentVNode)(`v-if`,!0),(0,c.createCommentVNode)(` 动态行确认删除弹窗 `),x.value.dynamicRows&&(0,c.unref)(I).dynamicRowsState?((0,c.openBlock)(),(0,c.createBlock)((0,c.resolveDynamicComponent)((0,c.unref)(I).dynamicRowsState.renderConfirmModal()),{key:7})):(0,c.createCommentVNode)(`v-if`,!0),(0,c.createCommentVNode)(` 列设置抽屉 `),(0,c.createVNode)((0,c.unref)(l.NDrawer),{show:(0,c.unref)(le),"onUpdate:show":t[4]||=e=>(0,c.isRef)(le)?le.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(l.NDrawerContent),{title:(0,c.unref)(C)(`table.columnSettings`),closable:``},{default:(0,c.withCtx)(()=>[(0,c.createVNode)(Nt,{columns:(0,c.unref)(L),"persist-key":x.value.persistKey,onChange:Re},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],10,Pt))}});var Wt=r.t(Ut,[[`__scopeId`,`data-v-28a4fd4b`]]);const Gt=(e,t)=>Number.isFinite(e)?Math.max(1,Math.floor(e)):t;function Kt(e){let t=(0,c.shallowRef)([]),n=(0,c.ref)(!1),r=(0,c.shallowRef)(),i=(0,c.ref)(0),a=s.t(e.initialQuery),o=(0,c.ref)(Gt(e.initialPage,1)),l=(0,c.ref)(Gt(e.pageSize,20)),u=(0,c.shallowRef)(s.t(a)),d=0,f=null,p=async()=>{let a=++d;f?.abort(),f=new AbortController,n.value=!0,r.value=void 0;try{let n=await e.request({page:o.value,pageSize:l.value,query:s.t(u.value),signal:f.signal});if(a!==d||f.signal.aborted)return!1;if(!Array.isArray(n.data)||!Number.isFinite(n.total))throw TypeError(`[C_Table] request 必须返回 { data: T[], total: number }`);return t.value=s.t([...n.data]),i.value=Math.max(0,Math.floor(n.total)),e.onSuccess?.({data:t.value,total:i.value}),!0}catch(t){return a!==d||f.signal.aborted?!1:(r.value=t,e.onError?.(t),!1)}finally{a===d&&(n.value=!1)}},m=async(e,t=!0)=>(u.value=s.t(typeof e==`function`?e(u.value):{...u.value,...e}),o.value=1,t?p():!0),h=async(e,t)=>(o.value=Gt(e,o.value),l.value=Gt(t,l.value),p()),g=async(e=!0)=>(u.value=s.t(a),o.value=1,e?p():!0),_=(0,c.computed)(()=>{let r=(0,c.toValue)(e.config)??{},a=typeof r.pagination==`object`?r.pagination:{};return{data:t.value,loading:n.value,columns:(0,c.toValue)(e.columns),rowKey:e.rowKey??`id`,config:{...r,pagination:{...a,enabled:!0,remote:!0,page:o.value,pageSize:l.value,total:i.value}}}}),v=(0,c.computed)(()=>({..._.value,onPaginationChange:h})),y=()=>{d+=1,f?.abort(),f=null,n.value=!1};return e.immediate!==!1&&(0,c.onMounted)(()=>void p()),(0,c.onScopeDispose)(y),{data:t,loading:n,error:r,total:i,page:o,pageSize:l,query:u,tableProps:_,execute:p,reload:p,setQuery:m,resetQuery:g,handlePaginationChange:h,bindings:v,cancel:y}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return $e}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return I}});
|