@robot-admin/naive-ui-components 0.10.3 → 0.11.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 +111 -100
- package/LICENSE +21 -21
- package/README.md +463 -318
- package/README_EN.md +404 -0
- package/SECURITY.md +23 -0
- package/dist/C_ActionBar.cjs +1 -1
- package/dist/C_ActionBar.css +46 -48
- package/dist/C_ActionBar.d.cts +1 -1
- package/dist/C_ActionBar.js +1 -1
- package/dist/C_ActionBar2.cjs +1 -0
- package/dist/C_ActionBar2.js +1 -2
- package/dist/C_AntV.cjs +1 -1
- package/dist/C_AntV.css +3 -3
- package/dist/C_AntV.d.cts +1 -1
- package/dist/C_AntV.js +1 -1
- package/dist/C_AntV2.cjs +4 -0
- package/dist/C_AntV2.js +3 -4
- package/dist/C_AudioPlayer.cjs +1 -1
- package/dist/C_AudioPlayer.css +15 -7
- package/dist/C_AudioPlayer.d.cts +1 -1
- package/dist/C_AudioPlayer.js +1 -1
- package/dist/C_AudioPlayer2.cjs +1 -0
- package/dist/C_AudioPlayer2.js +1 -2
- package/dist/C_AvatarGroup.cjs +1 -1
- package/dist/C_AvatarGroup.css +15 -7
- package/dist/C_AvatarGroup.d.cts +1 -1
- package/dist/C_AvatarGroup2.cjs +1 -0
- package/dist/C_AvatarGroup2.js +1 -2
- package/dist/C_Barcode.cjs +1 -1
- package/dist/C_Barcode.css +0 -2
- package/dist/C_Barcode.d.cts +1 -1
- package/dist/C_Barcode2.cjs +1 -0
- package/dist/C_Barcode2.js +1 -2
- package/dist/C_Breadcrumb.cjs +1 -1
- package/dist/C_Breadcrumb.css +0 -2
- package/dist/C_Breadcrumb.d.cts +2 -2
- package/dist/C_Breadcrumb.d.ts +1 -2
- package/dist/C_Breadcrumb.js +1 -1
- package/dist/C_Breadcrumb2.cjs +1 -0
- package/dist/C_Breadcrumb2.js +1 -2
- package/dist/C_Captcha.cjs +1 -1
- package/dist/C_Captcha.css +46 -21
- package/dist/C_Captcha.d.cts +3 -2
- package/dist/C_Captcha.d.ts +3 -2
- package/dist/C_Captcha.js +1 -1
- package/dist/C_Captcha2.cjs +1 -0
- package/dist/C_Captcha2.js +1 -2
- package/dist/C_Cascade.cjs +1 -1
- package/dist/C_Cascade.css +0 -2
- package/dist/C_Cascade.d.cts +1 -1
- package/dist/C_Cascade.d.ts +1 -1
- package/dist/C_Cascade2.cjs +1 -0
- package/dist/C_Cascade2.js +1 -2
- package/dist/C_Chat.cjs +1 -1
- package/dist/C_Chat.css +0 -2
- package/dist/C_Chat.d.cts +1 -1
- package/dist/C_Chat.d.ts +1 -1
- package/dist/C_Chat.js +1 -1
- package/dist/C_Chat2.cjs +1 -0
- package/dist/C_Chat2.js +1 -2
- package/dist/C_City.cjs +1 -1
- package/dist/C_City.css +28 -30
- package/dist/C_City.d.cts +1 -1
- package/dist/C_City.d.ts +1 -1
- package/dist/C_City2.cjs +1 -0
- package/dist/C_City2.js +1 -2
- package/dist/C_Code.cjs +1 -1
- package/dist/C_Code.css +241 -4
- package/dist/C_Code.d.cts +1 -1
- package/dist/C_Code.d.ts +1 -1
- package/dist/C_Code.js +1 -1
- package/dist/C_Code2.cjs +1 -0
- package/dist/C_Code2.js +1 -2
- package/dist/C_CollapsePanel.cjs +1 -1
- package/dist/C_CollapsePanel.css +12 -6
- package/dist/C_CollapsePanel.d.cts +1 -1
- package/dist/C_CollapsePanel.js +1 -1
- package/dist/C_CollapsePanel2.cjs +1 -0
- package/dist/C_CollapsePanel2.js +1 -2
- package/dist/C_ContextMenu.cjs +1 -1
- package/dist/C_ContextMenu.css +16 -18
- package/dist/C_ContextMenu.d.cts +1 -1
- package/dist/C_ContextMenu.d.ts +1 -1
- package/dist/C_ContextMenu.js +1 -1
- package/dist/C_ContextMenu2.cjs +1 -0
- package/dist/C_ContextMenu2.js +1 -2
- package/dist/C_Cron.cjs +1 -1
- package/dist/C_Cron.css +18 -8
- package/dist/C_Cron.d.cts +1 -1
- package/dist/C_Cron.js +1 -1
- package/dist/C_Cron2.cjs +1 -0
- package/dist/C_Cron2.js +1 -2
- package/dist/C_Date.cjs +1 -1
- package/dist/C_Date.css +1 -0
- package/dist/C_Date.d.cts +2 -2
- package/dist/C_Date.d.ts +2 -2
- package/dist/C_Date2.cjs +1 -0
- package/dist/C_Date2.js +1 -2
- package/dist/C_Draggable.cjs +1 -1
- package/dist/C_Draggable.css +9 -5
- package/dist/C_Draggable.d.cts +1 -1
- package/dist/C_Draggable2.cjs +1 -0
- package/dist/C_Draggable2.js +1 -2
- package/dist/C_Editor.cjs +1 -1
- package/dist/C_Editor.css +80 -67
- package/dist/C_Editor.d.cts +1 -1
- package/dist/C_Editor.d.ts +1 -1
- package/dist/C_Editor2.cjs +1 -0
- package/dist/C_Editor2.js +1 -2
- package/dist/C_FilePreview.cjs +1 -1
- package/dist/C_FilePreview.css +0 -2
- package/dist/C_FilePreview.d.cts +1 -1
- package/dist/C_FilePreview.js +1 -1
- package/dist/C_FilePreview2.cjs +1 -0
- package/dist/C_FilePreview2.js +1 -2
- package/dist/C_Form.base.css +980 -0
- package/dist/C_Form.cjs +1 -1
- package/dist/C_Form.css +256 -155
- 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_Form2.cjs +1 -0
- package/dist/C_Form2.js +1 -2
- package/dist/C_FormSearch.cjs +1 -1
- package/dist/C_FormSearch.css +47 -47
- package/dist/C_FormSearch.d.cts +2 -2
- package/dist/C_FormSearch.d.ts +2 -2
- package/dist/C_FormSearch2.cjs +1 -0
- package/dist/C_FormSearch2.js +1 -2
- package/dist/C_FormulaEditor.cjs +1 -1
- package/dist/C_FormulaEditor.css +64 -38
- package/dist/C_FormulaEditor.d.cts +1 -1
- package/dist/C_FormulaEditor.js +1 -1
- package/dist/C_FormulaEditor2.cjs +2 -0
- package/dist/C_FormulaEditor2.js +2 -2
- package/dist/C_FullCalendar.cjs +1 -1
- package/dist/C_FullCalendar.css +0 -2
- package/dist/C_FullCalendar.d.cts +1 -1
- package/dist/C_FullCalendar2.cjs +1 -0
- package/dist/C_FullCalendar2.js +1 -2
- package/dist/C_GlobalSearch.cjs +1 -1
- package/dist/C_GlobalSearch.css +111 -113
- package/dist/C_GlobalSearch.d.cts +1 -1
- package/dist/C_GlobalSearch2.cjs +1 -0
- package/dist/C_GlobalSearch2.js +1 -2
- package/dist/C_Guide.cjs +1 -1
- package/dist/C_Guide.css +1 -0
- package/dist/C_Guide.d.cts +1 -1
- package/dist/C_Guide.d.ts +1 -1
- package/dist/C_Guide.js +1 -1
- package/dist/C_Guide2.cjs +1 -0
- package/dist/C_Guide2.js +1 -2
- package/dist/C_Icon.cjs +1 -1
- package/dist/C_Icon.css +58 -0
- package/dist/C_Icon.d.cts +1 -1
- package/dist/C_Icon.d.ts +1 -1
- package/dist/C_Icon2.cjs +1 -0
- package/dist/C_Icon2.js +1 -2
- package/dist/C_ImageCropper.cjs +1 -1
- package/dist/C_ImageCropper.css +0 -2
- package/dist/C_ImageCropper.d.cts +1 -1
- package/dist/C_ImageCropper.js +1 -1
- package/dist/C_ImageCropper2.cjs +1 -0
- package/dist/C_ImageCropper2.js +1 -2
- package/dist/C_Language.cjs +1 -1
- package/dist/C_Language.css +1 -0
- package/dist/C_Language.d.cts +1 -1
- package/dist/C_Language.d.ts +1 -1
- package/dist/C_Language.js +1 -1
- package/dist/C_Language2.cjs +1 -0
- package/dist/C_Language2.js +1 -2
- package/dist/C_Login.cjs +1 -1
- package/dist/C_Login.css +92 -76
- package/dist/C_Login.d.cts +1 -1
- package/dist/C_Login.d.ts +1 -1
- package/dist/C_Login.js +1 -1
- package/dist/C_Login2.cjs +1 -0
- package/dist/C_Login2.js +1 -2
- package/dist/C_Map.cjs +1 -1
- package/dist/C_Map.css +665 -5
- package/dist/C_Map.d.cts +1 -1
- package/dist/C_Map2.cjs +1 -0
- package/dist/C_Map2.js +1 -2
- package/dist/C_Markdown.cjs +1 -1
- package/dist/C_Markdown.css +940 -35
- package/dist/C_Markdown.d.cts +1 -1
- package/dist/C_Markdown.d.ts +1 -1
- package/dist/C_Markdown2.cjs +1 -0
- package/dist/C_Markdown2.js +1 -2
- package/dist/C_Menu.cjs +1 -1
- package/dist/C_Menu.css +1 -0
- package/dist/C_Menu.d.cts +3 -3
- package/dist/C_Menu.d.ts +3 -4
- package/dist/C_Menu.js +1 -1
- package/dist/C_Menu2.cjs +1 -0
- package/dist/C_Menu2.js +1 -2
- package/dist/C_NotificationCenter.cjs +1 -1
- package/dist/C_NotificationCenter.css +95 -47
- package/dist/C_NotificationCenter.d.cts +1 -1
- package/dist/C_NotificationCenter.js +1 -1
- package/dist/C_NotificationCenter2.cjs +1 -0
- package/dist/C_NotificationCenter2.js +1 -2
- package/dist/C_OrgChart.cjs +1 -1
- package/dist/C_OrgChart.css +6 -4
- package/dist/C_OrgChart.d.cts +1 -1
- package/dist/C_OrgChart.d.ts +1 -1
- package/dist/C_OrgChart2.cjs +1 -0
- package/dist/C_OrgChart2.js +1 -2
- package/dist/C_Progress.cjs +1 -1
- package/dist/C_Progress.css +1 -0
- package/dist/C_Progress.d.cts +1 -1
- package/dist/C_Progress.d.ts +1 -1
- package/dist/C_Progress2.cjs +1 -0
- package/dist/C_Progress2.js +1 -2
- package/dist/C_QRCode.cjs +1 -1
- package/dist/C_QRCode.css +8 -10
- package/dist/C_QRCode.d.cts +1 -1
- package/dist/C_QRCode2.cjs +1 -0
- package/dist/C_QRCode2.js +1 -2
- package/dist/C_Signature.cjs +1 -1
- package/dist/C_Signature.css +0 -2
- package/dist/C_Signature.d.cts +1 -1
- package/dist/C_Signature.js +1 -1
- package/dist/C_Signature2.cjs +1 -0
- package/dist/C_Signature2.js +1 -2
- package/dist/C_Skeleton.cjs +1 -1
- package/dist/C_Skeleton.css +0 -2
- package/dist/C_Skeleton.d.cts +1 -1
- package/dist/C_Skeleton.d.ts +1 -1
- package/dist/C_Skeleton2.cjs +1 -0
- package/dist/C_Skeleton2.js +1 -2
- package/dist/C_SplitPane.cjs +1 -1
- package/dist/C_SplitPane.css +27 -11
- package/dist/C_SplitPane.d.cts +1 -1
- package/dist/C_SplitPane.js +1 -1
- package/dist/C_SplitPane2.cjs +1 -0
- package/dist/C_SplitPane2.js +1 -2
- package/dist/C_Steps.cjs +1 -1
- package/dist/C_Steps.css +37 -39
- package/dist/C_Steps.d.cts +1 -1
- package/dist/C_Steps.d.ts +1 -1
- package/dist/C_Steps2.cjs +1 -0
- package/dist/C_Steps2.js +1 -2
- package/dist/C_Table.base.css +1588 -0
- package/dist/C_Table.cjs +1 -1
- package/dist/C_Table.css +1202 -112
- package/dist/C_Table.d.cts +2 -2
- package/dist/C_Table.d.ts +11 -2
- package/dist/C_Table.js +1 -1
- package/dist/C_TagsView.cjs +1 -1
- package/dist/C_TagsView.css +44 -40
- package/dist/C_TagsView.d.cts +2 -2
- package/dist/C_TagsView.d.ts +2 -3
- package/dist/C_TagsView.js +1 -1
- package/dist/C_TagsView2.cjs +1 -0
- package/dist/C_TagsView2.js +1 -2
- package/dist/C_Theme.cjs +1 -1
- package/dist/C_Theme.css +1 -0
- package/dist/C_Theme.d.cts +1 -1
- package/dist/C_Theme.d.ts +1 -1
- package/dist/C_Theme.js +1 -1
- package/dist/C_Theme2.cjs +1 -0
- package/dist/C_Theme2.js +1 -2
- package/dist/C_Time.cjs +1 -1
- package/dist/C_Time.css +0 -2
- package/dist/C_Time.d.cts +2 -2
- package/dist/C_Time.d.ts +2 -2
- package/dist/C_Time2.cjs +1 -0
- package/dist/C_Time2.js +1 -2
- package/dist/C_Timeline.cjs +1 -1
- package/dist/C_Timeline.css +44 -46
- package/dist/C_Timeline.d.cts +1 -1
- package/dist/C_Timeline.js +1 -1
- package/dist/C_Timeline2.cjs +1 -0
- package/dist/C_Timeline2.js +1 -2
- package/dist/C_Transfer.cjs +1 -1
- package/dist/C_Transfer.css +21 -9
- package/dist/C_Transfer.d.cts +1 -1
- package/dist/C_Transfer.js +1 -1
- package/dist/C_Transfer2.cjs +1 -0
- package/dist/C_Transfer2.js +1 -2
- package/dist/C_Tree.cjs +1 -1
- package/dist/C_Tree.css +0 -2
- package/dist/C_Tree.d.cts +1 -1
- package/dist/C_Tree.js +1 -1
- package/dist/C_Tree2.cjs +1 -0
- package/dist/C_Tree2.js +1 -2
- package/dist/C_Upload.cjs +1 -1
- package/dist/C_Upload.css +17 -17
- package/dist/C_Upload.d.cts +1 -1
- package/dist/C_Upload.js +1 -1
- package/dist/C_Upload2.cjs +1 -0
- package/dist/C_Upload2.js +1 -25
- package/dist/C_VideoPlayer.cjs +1 -1
- package/dist/C_VideoPlayer.css +35 -24
- package/dist/C_VideoPlayer.d.cts +2 -2
- package/dist/C_VideoPlayer.d.ts +2 -2
- package/dist/C_VideoPlayer.js +1 -1
- package/dist/C_VideoPlayer2.cjs +3 -0
- package/dist/C_VideoPlayer2.js +3 -4
- package/dist/C_VtableGantt.cjs +1 -1
- package/dist/C_VtableGantt.css +15 -7
- package/dist/C_VtableGantt.d.cts +1 -1
- package/dist/C_VtableGantt.d.ts +1 -1
- package/dist/C_VtableGantt.js +1 -1
- package/dist/C_VtableGantt2.cjs +1 -0
- package/dist/C_VtableGantt2.js +1 -2
- package/dist/C_WaterFall.cjs +1 -1
- package/dist/C_WaterFall.css +15 -17
- package/dist/C_WaterFall.d.cts +1 -1
- package/dist/C_WaterFall2.cjs +1 -0
- package/dist/C_WaterFall2.js +1 -2
- package/dist/C_WorkFlow.cjs +1 -1
- package/dist/C_WorkFlow.css +257 -197
- package/dist/C_WorkFlow.d.cts +1 -1
- package/dist/C_WorkFlow.js +1 -1
- package/dist/C_WorkFlow2.cjs +1 -0
- package/dist/C_WorkFlow2.js +1 -2
- package/dist/city.cjs +1 -0
- package/dist/city.js +1 -2
- package/dist/config.cjs +1 -0
- package/dist/config.d.cts +33 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.js +1 -0
- package/dist/constants.d.cts +272 -0
- package/dist/constants.d.ts +6 -7
- package/dist/constants2.d.cts +177 -0
- package/dist/constants2.d.ts +5 -6
- package/dist/constants3.d.cts +479 -0
- package/dist/constants3.d.ts +17 -13
- package/dist/constants4.d.cts +420 -0
- package/dist/constants4.d.ts +30 -40
- package/dist/constants5.d.cts +491 -0
- package/dist/constants5.d.ts +22 -6
- package/dist/data.cjs +1 -0
- package/dist/data.d.cts +67 -0
- package/dist/data.d.ts +13 -13
- package/dist/data.js +1 -0
- package/dist/export-helper.cjs +1 -0
- package/dist/helpers.cjs +1 -0
- package/dist/helpers.js +1 -0
- package/dist/html.cjs +1 -0
- package/dist/html.js +1 -0
- package/dist/images/marker-icon-2x.png +0 -0
- package/dist/images/marker-icon.png +0 -0
- package/dist/images/marker-shadow.png +0 -0
- package/dist/index.cjs +1 -2
- package/dist/index.d.cts +60 -99
- package/dist/index.d.ts +41 -83
- package/dist/index.js +1 -2
- package/dist/index.vue.d.cts +79 -0
- package/dist/index.vue.d.ts +3 -4
- package/dist/index10.vue.d.cts +47 -0
- package/dist/index10.vue.d.ts +80 -40
- package/dist/index11.vue.d.cts +88 -0
- package/dist/index11.vue.d.ts +68 -78
- package/dist/index12.vue.d.cts +79 -0
- package/dist/index12.vue.d.ts +49 -45
- package/dist/index13.vue.d.cts +64 -0
- package/dist/index13.vue.d.ts +99 -34
- package/dist/index14.vue.d.cts +106 -0
- package/dist/index14.vue.d.ts +82 -99
- package/dist/index15.vue.d.cts +91 -0
- package/dist/index15.vue.d.ts +25 -83
- package/dist/index16.vue.d.cts +34 -0
- package/dist/index16.vue.d.ts +113 -24
- package/dist/index17.vue.d.cts +124 -0
- package/dist/index17.vue.d.ts +76 -110
- package/dist/index18.vue.d.cts +83 -0
- package/dist/index18.vue.d.ts +67 -73
- package/dist/index19.vue.d.cts +101 -0
- package/dist/index19.vue.d.ts +93 -59
- package/dist/index2.vue.d.cts +82 -0
- package/dist/index2.vue.d.ts +1 -2
- package/dist/index20.vue.d.cts +54 -0
- package/dist/index20.vue.d.ts +40 -88
- package/dist/index21.vue.d.cts +103 -0
- package/dist/index21.vue.d.ts +89 -41
- package/dist/index22.vue.d.cts +45 -0
- package/dist/index22.vue.d.ts +37 -96
- package/dist/index23.vue.d.cts +19 -0
- package/dist/index23.vue.d.ts +8 -35
- package/dist/{index28.vue.d.ts → index24.vue.d.cts} +5 -6
- package/dist/index24.vue.d.ts +650 -86
- package/dist/index25.vue.d.cts +96 -0
- package/dist/index25.vue.d.ts +86 -10
- package/dist/index26.vue.d.cts +111 -0
- package/dist/index26.vue.d.ts +3 -4
- package/dist/index27.vue.d.cts +80 -0
- package/dist/index27.vue.d.ts +3 -4
- package/dist/index3.vue.d.cts +87 -0
- package/dist/index3.vue.d.ts +2 -3
- package/dist/index4.vue.d.cts +37 -0
- package/dist/index4.vue.d.ts +5 -6
- package/dist/index5.vue.d.cts +133 -0
- package/dist/index5.vue.d.ts +2 -3
- package/dist/index6.vue.d.cts +29 -0
- package/dist/index6.vue.d.ts +25 -38
- package/dist/index7.vue.d.cts +32 -0
- package/dist/index7.vue.d.ts +117 -23
- package/dist/index8.vue.d.cts +127 -0
- package/dist/index8.vue.d.ts +17 -111
- package/dist/index9.vue.d.cts +34 -0
- package/dist/index9.vue.d.ts +38 -26
- package/dist/{menuAdapter.d.ts → public.d.ts} +2 -3
- package/dist/resolver.cjs +1 -2
- package/dist/resolver.d.cts +6 -4
- package/dist/resolver.d.ts +6 -4
- package/dist/resolver.js +1 -2
- package/dist/storage.cjs +1 -0
- package/dist/storage.js +1 -2
- package/dist/style.css +9864 -7702
- package/dist/types.d.cts +107 -0
- package/dist/types.d.ts +58 -0
- package/dist/types2.d.cts +58 -0
- package/dist/useCalendarEvents.d.cts +150 -0
- package/dist/useCalendarEvents.d.ts +3 -4
- package/dist/useCollapsePanel.d.cts +133 -0
- package/dist/useCollapsePanel.d.ts +1 -2
- package/dist/useCropperCore.d.cts +104 -0
- package/dist/useCropperCore.d.ts +12 -10
- package/dist/useDraggableLayout.d.cts +196 -0
- package/dist/useDraggableLayout.d.ts +18 -16
- package/dist/useDynamicFormState.d.cts +749 -0
- package/dist/useDynamicFormState.d.ts +234 -112
- package/dist/useEdgeInteraction.d.cts +324 -0
- package/dist/useEdgeInteraction.d.ts +6 -7
- package/dist/useFullscreen.d.cts +165 -0
- package/dist/useFullscreen.d.ts +1 -2
- package/dist/useGlobalSearch.d.cts +110 -0
- package/dist/useGlobalSearch.d.ts +17 -9
- package/dist/useInfiniteScroll.d.cts +177 -0
- package/dist/useInfiniteScroll.d.ts +11 -3
- package/dist/useQRCode.d.cts +89 -0
- package/dist/useQRCode.d.ts +7 -5
- package/dist/useSearchState.d.cts +871 -0
- package/dist/useSearchState.d.ts +828 -28
- package/dist/useSignatureHistory.d.cts +197 -0
- package/dist/useSignatureHistory.d.ts +9 -4
- package/dist/useSplitResize.d.cts +157 -0
- package/dist/useSplitResize.d.ts +3 -4
- package/dist/useTableQuery.cjs +3 -0
- package/dist/{useModalEdit.d.ts → useTableQuery.d.cts} +624 -211
- package/dist/useTableQuery.d.ts +1721 -0
- package/dist/useTableQuery.js +3 -0
- package/dist/useTimeSelection.d.cts +116 -0
- package/dist/useTimeSelection.d.ts +19 -8
- package/dist/useTreeOperations.d.cts +185 -0
- package/dist/useTreeOperations.d.ts +14 -12
- package/dist/useWorkflowValidation.d.cts +1051 -0
- package/dist/useWorkflowValidation.d.ts +66 -67
- package/dist/verification.d.cts +58 -0
- package/dist/verification.d.ts +58 -0
- package/package.json +101 -69
- package/dist/C_ActionBar-BAcfOfRw.css.map +0 -1
- package/dist/C_ActionBar-DG2HW7t5.css.map +0 -1
- package/dist/C_ActionBar.js.map +0 -1
- package/dist/C_ActionBar2.js.map +0 -1
- package/dist/C_AntV-D_jTK8oZ.css.map +0 -1
- package/dist/C_AntV-DanTAq22.css.map +0 -1
- package/dist/C_AntV.js.map +0 -1
- package/dist/C_AntV2.js.map +0 -1
- package/dist/C_AudioPlayer-BnYIJXPD.css.map +0 -1
- package/dist/C_AudioPlayer-ldTy9Y34.css.map +0 -1
- package/dist/C_AudioPlayer.js.map +0 -1
- package/dist/C_AudioPlayer2.js.map +0 -1
- package/dist/C_AvatarGroup-B9d-GJ9c.css.map +0 -1
- package/dist/C_AvatarGroup-SIzxuuZr.css.map +0 -1
- package/dist/C_AvatarGroup.js.map +0 -1
- package/dist/C_AvatarGroup2.js.map +0 -1
- package/dist/C_Barcode-CAU2mFcx.css.map +0 -1
- package/dist/C_Barcode-D2oJaEg3.css.map +0 -1
- package/dist/C_Barcode.js.map +0 -1
- package/dist/C_Barcode2.js.map +0 -1
- package/dist/C_Breadcrumb-BiH0d9AI.css.map +0 -1
- package/dist/C_Breadcrumb-Bqqrl8nX.css.map +0 -1
- package/dist/C_Breadcrumb.js.map +0 -1
- package/dist/C_Breadcrumb2.js.map +0 -1
- package/dist/C_Captcha-B3yrtG7t.css.map +0 -1
- package/dist/C_Captcha-D4hDdWDu.css.map +0 -1
- package/dist/C_Captcha.js.map +0 -1
- package/dist/C_Captcha2.js.map +0 -1
- package/dist/C_Cascade-CmCrLVft.css.map +0 -1
- package/dist/C_Cascade-U6A5AJJb.css.map +0 -1
- package/dist/C_Cascade.js.map +0 -1
- package/dist/C_Cascade2.js.map +0 -1
- package/dist/C_Chat-CF1SU7mc.css.map +0 -1
- package/dist/C_Chat-DeUv6uuI.css.map +0 -1
- package/dist/C_Chat.js.map +0 -1
- package/dist/C_Chat2.js.map +0 -1
- package/dist/C_City-DdkX6u64.css.map +0 -1
- package/dist/C_City-iP-dIvui.css.map +0 -1
- package/dist/C_City.js.map +0 -1
- package/dist/C_City2.js.map +0 -1
- package/dist/C_Code-BWmJMNS7.css.map +0 -1
- package/dist/C_Code-k14vjgVl.css.map +0 -1
- package/dist/C_Code.js.map +0 -1
- package/dist/C_Code2.js.map +0 -1
- package/dist/C_CollapsePanel-BSKcWSmY.css.map +0 -1
- package/dist/C_CollapsePanel-DRvRq8tB.css.map +0 -1
- package/dist/C_CollapsePanel.js.map +0 -1
- package/dist/C_CollapsePanel2.js.map +0 -1
- package/dist/C_ContextMenu-Bn_uhJSo.css.map +0 -1
- package/dist/C_ContextMenu-C9iuxG2n.css.map +0 -1
- package/dist/C_ContextMenu.js.map +0 -1
- package/dist/C_ContextMenu2.js.map +0 -1
- package/dist/C_Cron-BIQ2By9v.css.map +0 -1
- package/dist/C_Cron-BNSAGD6A.css.map +0 -1
- package/dist/C_Cron.js.map +0 -1
- package/dist/C_Cron2.js.map +0 -1
- package/dist/C_Date.js.map +0 -1
- package/dist/C_Date2.js.map +0 -1
- package/dist/C_Draggable-BDAbk4s5.css.map +0 -1
- package/dist/C_Draggable-UhfDLXop.css.map +0 -1
- package/dist/C_Draggable.js.map +0 -1
- package/dist/C_Draggable2.js.map +0 -1
- package/dist/C_Editor-CZOaChru.css.map +0 -1
- package/dist/C_Editor-kJAQq5z6.css.map +0 -1
- package/dist/C_Editor.js.map +0 -1
- package/dist/C_Editor2.js.map +0 -1
- package/dist/C_FilePreview-Bs_omgJS.css.map +0 -1
- package/dist/C_FilePreview-DbwoyF2j.css.map +0 -1
- package/dist/C_FilePreview.js.map +0 -1
- package/dist/C_FilePreview2.js.map +0 -1
- package/dist/C_Form-B_2ql62V.css.map +0 -1
- package/dist/C_Form-CX-7xsz3.css.map +0 -1
- package/dist/C_Form.js.map +0 -1
- package/dist/C_Form2.js.map +0 -1
- package/dist/C_FormSearch-C3F8peAY.css.map +0 -1
- package/dist/C_FormSearch-qW56bJPo.css.map +0 -1
- package/dist/C_FormSearch.js.map +0 -1
- package/dist/C_FormSearch2.js.map +0 -1
- package/dist/C_FormulaEditor-ChOvDbsZ.css.map +0 -1
- package/dist/C_FormulaEditor-mfiIUDY4.css.map +0 -1
- package/dist/C_FormulaEditor.js.map +0 -1
- package/dist/C_FormulaEditor2.js.map +0 -1
- package/dist/C_FullCalendar-C2nsqrgS.css.map +0 -1
- package/dist/C_FullCalendar-DdFtXVhy.css.map +0 -1
- package/dist/C_FullCalendar.js.map +0 -1
- package/dist/C_FullCalendar2.js.map +0 -1
- package/dist/C_GlobalSearch-Dq4Wo01K.css.map +0 -1
- package/dist/C_GlobalSearch-RB7J43gu.css.map +0 -1
- package/dist/C_GlobalSearch.js.map +0 -1
- package/dist/C_GlobalSearch2.js.map +0 -1
- package/dist/C_Guide.js.map +0 -1
- package/dist/C_Guide2.js.map +0 -1
- package/dist/C_Icon.js.map +0 -1
- package/dist/C_Icon2.js.map +0 -1
- package/dist/C_ImageCropper-CdTX2nxU.css.map +0 -1
- package/dist/C_ImageCropper-ilOqPklJ.css.map +0 -1
- package/dist/C_ImageCropper.js.map +0 -1
- package/dist/C_ImageCropper2.js.map +0 -1
- package/dist/C_Language.js.map +0 -1
- package/dist/C_Language2.js.map +0 -1
- package/dist/C_Login-B3qYkLrN.css.map +0 -1
- package/dist/C_Login-xMI1_ojE.css.map +0 -1
- package/dist/C_Login.js.map +0 -1
- package/dist/C_Login2.js.map +0 -1
- package/dist/C_Map-CWMMN58_.css.map +0 -1
- package/dist/C_Map-xSR2H-9o.css.map +0 -1
- package/dist/C_Map.js.map +0 -1
- package/dist/C_Map2.js.map +0 -1
- package/dist/C_Markdown-C7lTVJ1S.css.map +0 -1
- package/dist/C_Markdown-CZDm_baQ.css.map +0 -1
- package/dist/C_Markdown.js.map +0 -1
- package/dist/C_Markdown2.js.map +0 -1
- package/dist/C_Menu.js.map +0 -1
- package/dist/C_Menu2.js.map +0 -1
- package/dist/C_NotificationCenter-D7GGGWg7.css.map +0 -1
- package/dist/C_NotificationCenter-SSmeHA45.css.map +0 -1
- package/dist/C_NotificationCenter.js.map +0 -1
- package/dist/C_NotificationCenter2.js.map +0 -1
- package/dist/C_OrgChart-ChZu346B.css.map +0 -1
- package/dist/C_OrgChart-DqBufOv5.css.map +0 -1
- package/dist/C_OrgChart.js.map +0 -1
- package/dist/C_OrgChart2.js.map +0 -1
- package/dist/C_Progress.js.map +0 -1
- package/dist/C_Progress2.js.map +0 -1
- package/dist/C_QRCode-B_1lHUdx.css.map +0 -1
- package/dist/C_QRCode-CuQRYu0s.css.map +0 -1
- package/dist/C_QRCode.js.map +0 -1
- package/dist/C_QRCode2.js.map +0 -1
- package/dist/C_Signature-Bp-RBpAl.css.map +0 -1
- package/dist/C_Signature-Cb2VW1ok.css.map +0 -1
- package/dist/C_Signature.js.map +0 -1
- package/dist/C_Signature2.js.map +0 -1
- package/dist/C_Skeleton-BNPbaut7.css.map +0 -1
- package/dist/C_Skeleton-Djsjw8XY.css.map +0 -1
- package/dist/C_Skeleton.js.map +0 -1
- package/dist/C_Skeleton2.js.map +0 -1
- package/dist/C_SplitPane-CgGWYsRE.css.map +0 -1
- package/dist/C_SplitPane-DGf6WEeR.css.map +0 -1
- package/dist/C_SplitPane.js.map +0 -1
- package/dist/C_SplitPane2.js.map +0 -1
- package/dist/C_Steps-27Exh7PM.css.map +0 -1
- package/dist/C_Steps-DU9ZsFrs.css.map +0 -1
- package/dist/C_Steps.js.map +0 -1
- package/dist/C_Steps2.js.map +0 -1
- package/dist/C_Table--kbQaaBv.css.map +0 -1
- package/dist/C_Table-D631kdXC.css.map +0 -1
- package/dist/C_Table.js.map +0 -1
- package/dist/C_Table2.js +0 -4
- package/dist/C_Table2.js.map +0 -1
- package/dist/C_TagsView-BN8vMRsY.css.map +0 -1
- package/dist/C_TagsView-s1dnSJAV.css.map +0 -1
- package/dist/C_TagsView.js.map +0 -1
- package/dist/C_TagsView2.js.map +0 -1
- package/dist/C_Theme.js.map +0 -1
- package/dist/C_Theme2.js.map +0 -1
- package/dist/C_Time-BQ9PGy8B.css.map +0 -1
- package/dist/C_Time-CO73krC6.css.map +0 -1
- package/dist/C_Time.js.map +0 -1
- package/dist/C_Time2.js.map +0 -1
- package/dist/C_Timeline-4rk0Dzgn.css.map +0 -1
- package/dist/C_Timeline-DdESmqwL.css.map +0 -1
- package/dist/C_Timeline.js.map +0 -1
- package/dist/C_Timeline2.js.map +0 -1
- package/dist/C_Transfer-B-vjvhjI.css.map +0 -1
- package/dist/C_Transfer-EzdHzZNv.css.map +0 -1
- package/dist/C_Transfer.js.map +0 -1
- package/dist/C_Transfer2.js.map +0 -1
- package/dist/C_Tree-CsXgGfhn.css.map +0 -1
- package/dist/C_Tree-P7eRpnOa.css.map +0 -1
- package/dist/C_Tree.js.map +0 -1
- package/dist/C_Tree2.js.map +0 -1
- package/dist/C_Upload-CHjiVVh7.css.map +0 -1
- package/dist/C_Upload-DE3OLsZD.css.map +0 -1
- package/dist/C_Upload.js.map +0 -1
- package/dist/C_Upload2.js.map +0 -1
- package/dist/C_VideoPlayer-CnaNOFtW.css.map +0 -1
- package/dist/C_VideoPlayer-cnP88zNV.css.map +0 -1
- package/dist/C_VideoPlayer.js.map +0 -1
- package/dist/C_VideoPlayer2.js.map +0 -1
- package/dist/C_VtableGantt-CZlJgvpC.css.map +0 -1
- package/dist/C_VtableGantt-DKfQkql0.css.map +0 -1
- package/dist/C_VtableGantt.js.map +0 -1
- package/dist/C_VtableGantt2.js.map +0 -1
- package/dist/C_WaterFall-BJ_39ext.css.map +0 -1
- package/dist/C_WaterFall-cYc1vntE.css.map +0 -1
- package/dist/C_WaterFall.js.map +0 -1
- package/dist/C_WaterFall2.js.map +0 -1
- package/dist/C_WorkFlow-BFzRGGhJ.css.map +0 -1
- package/dist/C_WorkFlow-DSyCOvRp.css.map +0 -1
- package/dist/C_WorkFlow.js.map +0 -1
- package/dist/C_WorkFlow2.js.map +0 -1
- package/dist/_shared.cjs +0 -1
- package/dist/_shared.d.cts +0 -2
- package/dist/_shared.d.ts +0 -2
- package/dist/_shared.js +0 -1
- package/dist/city.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/menuAdapter.js +0 -2
- package/dist/menuAdapter.js.map +0 -1
- package/dist/resolver.cjs.map +0 -1
- package/dist/resolver.js.map +0 -1
- package/dist/storage.js.map +0 -1
- /package/dist/{chunk.js → chunk.cjs} +0 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import * as vue from "vue";
|
|
2
|
+
import { Ref } from "vue";
|
|
3
|
+
|
|
4
|
+
//#region src/components/C_Signature/types.d.ts
|
|
5
|
+
/** 画笔模式 */
|
|
6
|
+
type PenMode = "pen" | "eraser";
|
|
7
|
+
/** 导出格式 */
|
|
8
|
+
type SignatureExportFormat = "png" | "jpeg" | "svg" | "blob";
|
|
9
|
+
/** 画笔配置 */
|
|
10
|
+
interface PenConfig {
|
|
11
|
+
color: string;
|
|
12
|
+
width: number;
|
|
13
|
+
opacity: number;
|
|
14
|
+
}
|
|
15
|
+
/** 橡皮擦配置 */
|
|
16
|
+
interface EraserConfig {
|
|
17
|
+
size: number;
|
|
18
|
+
}
|
|
19
|
+
/** 水印配置 */
|
|
20
|
+
interface WatermarkConfig {
|
|
21
|
+
show: boolean;
|
|
22
|
+
text: string;
|
|
23
|
+
fontSize: number;
|
|
24
|
+
color: string;
|
|
25
|
+
position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
|
|
26
|
+
}
|
|
27
|
+
/** 导出配置 */
|
|
28
|
+
interface ExportOptions {
|
|
29
|
+
format?: SignatureExportFormat;
|
|
30
|
+
quality?: number;
|
|
31
|
+
includeBackground?: boolean;
|
|
32
|
+
backgroundColor?: string;
|
|
33
|
+
includeWatermark?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/** 签名路径点 */
|
|
36
|
+
interface SignaturePoint {
|
|
37
|
+
x: number;
|
|
38
|
+
y: number;
|
|
39
|
+
pressure?: number;
|
|
40
|
+
timestamp?: number;
|
|
41
|
+
}
|
|
42
|
+
/** 签名笔画 */
|
|
43
|
+
interface SignatureStroke {
|
|
44
|
+
points: SignaturePoint[];
|
|
45
|
+
color: string;
|
|
46
|
+
width: number;
|
|
47
|
+
opacity: number;
|
|
48
|
+
mode: PenMode;
|
|
49
|
+
}
|
|
50
|
+
/** 签名历史快照 */
|
|
51
|
+
interface SignatureSnapshot {
|
|
52
|
+
strokes: SignatureStroke[];
|
|
53
|
+
timestamp: number;
|
|
54
|
+
}
|
|
55
|
+
/** 组件 Props */
|
|
56
|
+
interface SignatureProps {
|
|
57
|
+
width?: number | string;
|
|
58
|
+
height?: number | string;
|
|
59
|
+
penConfig?: Partial<PenConfig>;
|
|
60
|
+
eraserConfig?: Partial<EraserConfig>;
|
|
61
|
+
disabled?: boolean;
|
|
62
|
+
readonly?: boolean;
|
|
63
|
+
backgroundImage?: string;
|
|
64
|
+
backgroundColor?: string;
|
|
65
|
+
watermark?: Partial<WatermarkConfig>;
|
|
66
|
+
showToolbar?: boolean;
|
|
67
|
+
maxHistory?: number;
|
|
68
|
+
}
|
|
69
|
+
/** 组件暴露方法 */
|
|
70
|
+
interface SignatureExpose {
|
|
71
|
+
clear: () => void;
|
|
72
|
+
undo: () => boolean;
|
|
73
|
+
redo: () => boolean;
|
|
74
|
+
export: (options?: ExportOptions) => Promise<string | Blob>;
|
|
75
|
+
download: (filename?: string, options?: ExportOptions) => Promise<void>;
|
|
76
|
+
loadImage: (imageUrl: string) => Promise<void>;
|
|
77
|
+
getSignatureData: () => SignatureStroke[];
|
|
78
|
+
loadSignatureData: (data: SignatureStroke[]) => void;
|
|
79
|
+
isEmpty: () => boolean;
|
|
80
|
+
}
|
|
81
|
+
/** 组件事件 */
|
|
82
|
+
interface SignatureEmits {
|
|
83
|
+
"start-draw": [];
|
|
84
|
+
drawing: [point: SignaturePoint];
|
|
85
|
+
"end-draw": [stroke: SignatureStroke];
|
|
86
|
+
clear: [];
|
|
87
|
+
undo: [];
|
|
88
|
+
redo: [];
|
|
89
|
+
change: [data: SignatureStroke[]];
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
//#region src/components/C_Signature/index.vue.d.ts
|
|
93
|
+
declare const __VLS_export: vue.DefineComponent<SignatureProps, SignatureExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
94
|
+
change: (data: SignatureStroke[]) => any;
|
|
95
|
+
clear: () => any;
|
|
96
|
+
"start-draw": () => any;
|
|
97
|
+
drawing: (point: SignaturePoint) => any;
|
|
98
|
+
"end-draw": (stroke: SignatureStroke) => any;
|
|
99
|
+
undo: () => any;
|
|
100
|
+
redo: () => any;
|
|
101
|
+
}, string, vue.PublicProps, Readonly<SignatureProps> & Readonly<{
|
|
102
|
+
onChange?: ((data: SignatureStroke[]) => any) | undefined;
|
|
103
|
+
onClear?: (() => any) | undefined;
|
|
104
|
+
"onStart-draw"?: (() => any) | undefined;
|
|
105
|
+
onDrawing?: ((point: SignaturePoint) => any) | undefined;
|
|
106
|
+
"onEnd-draw"?: ((stroke: SignatureStroke) => any) | undefined;
|
|
107
|
+
onUndo?: (() => any) | undefined;
|
|
108
|
+
onRedo?: (() => any) | undefined;
|
|
109
|
+
}>, {
|
|
110
|
+
disabled: boolean;
|
|
111
|
+
height: number | string;
|
|
112
|
+
width: number | string;
|
|
113
|
+
readonly: boolean;
|
|
114
|
+
showToolbar: boolean;
|
|
115
|
+
maxHistory: number;
|
|
116
|
+
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
117
|
+
declare const _default: typeof __VLS_export;
|
|
118
|
+
//#endregion
|
|
119
|
+
//#region src/components/C_Signature/composables/useSignatureCanvas.d.ts
|
|
120
|
+
interface UseSignatureCanvasOptions {
|
|
121
|
+
canvasRef: Ref<HTMLCanvasElement | null>;
|
|
122
|
+
penConfig: Ref<PenConfig>;
|
|
123
|
+
mode: Ref<PenMode>;
|
|
124
|
+
disabled: Ref<boolean>;
|
|
125
|
+
onStrokeComplete: (stroke: SignatureStroke) => void;
|
|
126
|
+
onDrawStart: () => void;
|
|
127
|
+
onDrawing: (point: SignaturePoint) => void;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
*
|
|
131
|
+
*/
|
|
132
|
+
declare function useSignatureCanvas(options: UseSignatureCanvasOptions): {
|
|
133
|
+
isDrawing: Readonly<Ref<boolean, boolean>>;
|
|
134
|
+
initCanvas: () => void;
|
|
135
|
+
bindEvents: () => void;
|
|
136
|
+
unbindEvents: () => void;
|
|
137
|
+
redrawStrokes: (strokes: SignatureStroke[]) => void;
|
|
138
|
+
clearCanvas: () => void;
|
|
139
|
+
};
|
|
140
|
+
//#endregion
|
|
141
|
+
//#region src/components/C_Signature/composables/useSignatureExport.d.ts
|
|
142
|
+
interface UseSignatureExportOptions {
|
|
143
|
+
canvasRef: Ref<HTMLCanvasElement | null>;
|
|
144
|
+
watermark?: Ref<Partial<WatermarkConfig>>;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
*
|
|
148
|
+
*/
|
|
149
|
+
declare function useSignatureExport(options: UseSignatureExportOptions): {
|
|
150
|
+
exportSignature: (options?: ExportOptions) => Promise<string | Blob>;
|
|
151
|
+
download: (filename?: string, options?: ExportOptions) => Promise<void>;
|
|
152
|
+
loadImage: (imageUrl: string) => Promise<void>;
|
|
153
|
+
};
|
|
154
|
+
//#endregion
|
|
155
|
+
//#region src/components/C_Signature/composables/useSignatureHistory.d.ts
|
|
156
|
+
interface UseSignatureHistoryOptions {
|
|
157
|
+
maxHistory?: number;
|
|
158
|
+
onChange?: (strokes: SignatureStroke[]) => void;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
*
|
|
162
|
+
*/
|
|
163
|
+
declare function useSignatureHistory(options?: UseSignatureHistoryOptions): {
|
|
164
|
+
strokes: Readonly<vue.Ref<readonly {
|
|
165
|
+
readonly points: readonly {
|
|
166
|
+
readonly x: number;
|
|
167
|
+
readonly y: number;
|
|
168
|
+
readonly pressure?: number | undefined;
|
|
169
|
+
readonly timestamp?: number | undefined;
|
|
170
|
+
}[];
|
|
171
|
+
readonly color: string;
|
|
172
|
+
readonly width: number;
|
|
173
|
+
readonly opacity: number;
|
|
174
|
+
readonly mode: PenMode;
|
|
175
|
+
}[], readonly {
|
|
176
|
+
readonly points: readonly {
|
|
177
|
+
readonly x: number;
|
|
178
|
+
readonly y: number;
|
|
179
|
+
readonly pressure?: number | undefined;
|
|
180
|
+
readonly timestamp?: number | undefined;
|
|
181
|
+
}[];
|
|
182
|
+
readonly color: string;
|
|
183
|
+
readonly width: number;
|
|
184
|
+
readonly opacity: number;
|
|
185
|
+
readonly mode: PenMode;
|
|
186
|
+
}[]>>;
|
|
187
|
+
canUndo: Readonly<vue.Ref<boolean, boolean>>;
|
|
188
|
+
canRedo: Readonly<vue.Ref<boolean, boolean>>;
|
|
189
|
+
isEmpty: Readonly<vue.Ref<boolean, boolean>>;
|
|
190
|
+
addStroke: (stroke: SignatureStroke) => void;
|
|
191
|
+
undo: () => boolean;
|
|
192
|
+
redo: () => boolean;
|
|
193
|
+
clear: () => void;
|
|
194
|
+
loadData: (data: SignatureStroke[]) => void;
|
|
195
|
+
};
|
|
196
|
+
//#endregion
|
|
197
|
+
export { EraserConfig as a, PenMode as c, SignatureExpose as d, SignaturePoint as f, WatermarkConfig as g, SignatureStroke as h, _default as i, SignatureEmits as l, SignatureSnapshot as m, useSignatureExport as n, ExportOptions as o, SignatureProps as p, useSignatureCanvas as r, PenConfig as s, useSignatureHistory as t, SignatureExportFormat as u };
|
|
@@ -107,9 +107,9 @@ declare const __VLS_export: vue.DefineComponent<SignatureProps, SignatureExpose,
|
|
|
107
107
|
onUndo?: (() => any) | undefined;
|
|
108
108
|
onRedo?: (() => any) | undefined;
|
|
109
109
|
}>, {
|
|
110
|
-
width: number | string;
|
|
111
|
-
height: number | string;
|
|
112
110
|
disabled: boolean;
|
|
111
|
+
height: number | string;
|
|
112
|
+
width: number | string;
|
|
113
113
|
readonly: boolean;
|
|
114
114
|
showToolbar: boolean;
|
|
115
115
|
maxHistory: number;
|
|
@@ -126,6 +126,9 @@ interface UseSignatureCanvasOptions {
|
|
|
126
126
|
onDrawStart: () => void;
|
|
127
127
|
onDrawing: (point: SignaturePoint) => void;
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
*
|
|
131
|
+
*/
|
|
129
132
|
declare function useSignatureCanvas(options: UseSignatureCanvasOptions): {
|
|
130
133
|
isDrawing: Readonly<Ref<boolean, boolean>>;
|
|
131
134
|
initCanvas: () => void;
|
|
@@ -154,6 +157,9 @@ interface UseSignatureHistoryOptions {
|
|
|
154
157
|
maxHistory?: number;
|
|
155
158
|
onChange?: (strokes: SignatureStroke[]) => void;
|
|
156
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
*
|
|
162
|
+
*/
|
|
157
163
|
declare function useSignatureHistory(options?: UseSignatureHistoryOptions): {
|
|
158
164
|
strokes: Readonly<vue.Ref<readonly {
|
|
159
165
|
readonly points: readonly {
|
|
@@ -188,5 +194,4 @@ declare function useSignatureHistory(options?: UseSignatureHistoryOptions): {
|
|
|
188
194
|
loadData: (data: SignatureStroke[]) => void;
|
|
189
195
|
};
|
|
190
196
|
//#endregion
|
|
191
|
-
export { EraserConfig as a, PenMode as c, SignatureExpose as d, SignaturePoint as f, WatermarkConfig as g, SignatureStroke as h, _default as i, SignatureEmits as l, SignatureSnapshot as m, useSignatureExport as n, ExportOptions as o, SignatureProps as p, useSignatureCanvas as r, PenConfig as s, useSignatureHistory as t, SignatureExportFormat as u };
|
|
192
|
-
//# sourceMappingURL=useSignatureHistory.d.ts.map
|
|
197
|
+
export { EraserConfig as a, PenMode as c, SignatureExpose as d, SignaturePoint as f, WatermarkConfig as g, SignatureStroke as h, _default as i, SignatureEmits as l, SignatureSnapshot as m, useSignatureExport as n, ExportOptions as o, SignatureProps as p, useSignatureCanvas as r, PenConfig as s, useSignatureHistory as t, SignatureExportFormat as u };
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import * as vue from "vue";
|
|
2
|
+
import { Ref } from "vue";
|
|
3
|
+
|
|
4
|
+
//#region src/components/C_SplitPane/types.d.ts
|
|
5
|
+
type SplitDirection = "horizontal" | "vertical";
|
|
6
|
+
type CollapseTarget = "first" | "second";
|
|
7
|
+
interface PanelInfo {
|
|
8
|
+
size: number;
|
|
9
|
+
collapsed: boolean;
|
|
10
|
+
}
|
|
11
|
+
interface SplitPaneProps {
|
|
12
|
+
direction?: SplitDirection;
|
|
13
|
+
defaultSize?: number;
|
|
14
|
+
minSize?: number;
|
|
15
|
+
maxSize?: number;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
collapsible?: boolean;
|
|
18
|
+
showCollapseButton?: boolean;
|
|
19
|
+
gutterSize?: number;
|
|
20
|
+
step?: number;
|
|
21
|
+
}
|
|
22
|
+
interface SplitPaneExpose {
|
|
23
|
+
collapse: (target?: CollapseTarget) => void;
|
|
24
|
+
expand: () => void;
|
|
25
|
+
toggle: (target?: CollapseTarget) => void;
|
|
26
|
+
resetSize: () => void;
|
|
27
|
+
getPanelInfo: () => {
|
|
28
|
+
first: PanelInfo;
|
|
29
|
+
second: PanelInfo;
|
|
30
|
+
};
|
|
31
|
+
setSize: (size: number) => void;
|
|
32
|
+
}
|
|
33
|
+
interface SplitPaneEmits {
|
|
34
|
+
resize: [firstSize: number, secondSize: number];
|
|
35
|
+
collapse: [target: CollapseTarget];
|
|
36
|
+
expand: [target: CollapseTarget];
|
|
37
|
+
"drag-start": [size: number];
|
|
38
|
+
"drag-end": [size: number];
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/components/C_SplitPane/index.vue.d.ts
|
|
42
|
+
interface Props {
|
|
43
|
+
/** 分割方向 */
|
|
44
|
+
direction?: SplitDirection;
|
|
45
|
+
/** 首面板默认大小(百分比 0-100) */
|
|
46
|
+
defaultSize?: number;
|
|
47
|
+
/** 首面板最小大小(百分比 0-100) */
|
|
48
|
+
minSize?: number;
|
|
49
|
+
/** 首面板最大大小(百分比 0-100) */
|
|
50
|
+
maxSize?: number;
|
|
51
|
+
/** 是否禁用拖拽调整 */
|
|
52
|
+
disabled?: boolean;
|
|
53
|
+
/** 是否可折叠 */
|
|
54
|
+
collapsible?: boolean;
|
|
55
|
+
/** 是否显示折叠按钮 */
|
|
56
|
+
showCollapseButton?: boolean;
|
|
57
|
+
/** 分割线宽度(px) */
|
|
58
|
+
gutterSize?: number;
|
|
59
|
+
/** 键盘微调步长(百分比) */
|
|
60
|
+
step?: number;
|
|
61
|
+
}
|
|
62
|
+
declare var __VLS_1: {}, __VLS_13: {};
|
|
63
|
+
type __VLS_Slots = {} & {
|
|
64
|
+
first?: (props: typeof __VLS_1) => any;
|
|
65
|
+
} & {
|
|
66
|
+
second?: (props: typeof __VLS_13) => any;
|
|
67
|
+
};
|
|
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
|
+
expand: (target: CollapseTarget) => any;
|
|
72
|
+
"drag-start": (size: number) => any;
|
|
73
|
+
"drag-end": (size: number) => any;
|
|
74
|
+
}, string, vue.PublicProps, Readonly<Props> & Readonly<{
|
|
75
|
+
onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
|
|
76
|
+
onCollapse?: ((target: CollapseTarget) => any) | undefined;
|
|
77
|
+
onExpand?: ((target: CollapseTarget) => any) | undefined;
|
|
78
|
+
"onDrag-start"?: ((size: number) => any) | undefined;
|
|
79
|
+
"onDrag-end"?: ((size: number) => any) | undefined;
|
|
80
|
+
}>, {
|
|
81
|
+
disabled: boolean;
|
|
82
|
+
direction: SplitDirection;
|
|
83
|
+
collapsible: boolean;
|
|
84
|
+
step: number;
|
|
85
|
+
defaultSize: number;
|
|
86
|
+
minSize: number;
|
|
87
|
+
maxSize: number;
|
|
88
|
+
showCollapseButton: boolean;
|
|
89
|
+
gutterSize: number;
|
|
90
|
+
}, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
|
|
91
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
92
|
+
declare const _default: typeof __VLS_export;
|
|
93
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
94
|
+
new (): {
|
|
95
|
+
$slots: S;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
//#endregion
|
|
99
|
+
//#region src/components/C_SplitPane/composables/useSplitResize.d.ts
|
|
100
|
+
interface UseSplitResizeOptions {
|
|
101
|
+
/** 容器引用 */
|
|
102
|
+
containerRef: Ref<HTMLElement | null>;
|
|
103
|
+
/** 分割方向 */
|
|
104
|
+
direction: Ref<SplitDirection>;
|
|
105
|
+
/** 首面板默认大小(百分比) */
|
|
106
|
+
defaultSize: number;
|
|
107
|
+
/** 首面板最小大小(百分比) */
|
|
108
|
+
minSize: number;
|
|
109
|
+
/** 首面板最大大小(百分比) */
|
|
110
|
+
maxSize: number;
|
|
111
|
+
/** 是否禁用 */
|
|
112
|
+
disabled: Ref<boolean>;
|
|
113
|
+
/** 是否可折叠 */
|
|
114
|
+
collapsible: Ref<boolean>;
|
|
115
|
+
/** 键盘微调步长(百分比) */
|
|
116
|
+
step: number;
|
|
117
|
+
/** resize 回调 */
|
|
118
|
+
onResize?: (firstSize: number, secondSize: number) => void;
|
|
119
|
+
/** 折叠回调 */
|
|
120
|
+
onCollapse?: (target: CollapseTarget) => void;
|
|
121
|
+
/** 展开回调 */
|
|
122
|
+
onExpand?: (target: CollapseTarget) => void;
|
|
123
|
+
/** 拖拽开始回调 */
|
|
124
|
+
onDragStart?: (size: number) => void;
|
|
125
|
+
/** 拖拽结束回调 */
|
|
126
|
+
onDragEnd?: (size: number) => void;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* 分割面板拖拽调整逻辑
|
|
130
|
+
*/
|
|
131
|
+
declare function useSplitResize(options: UseSplitResizeOptions): {
|
|
132
|
+
panelSize: Ref<number, number>;
|
|
133
|
+
isDragging: Ref<boolean, boolean>;
|
|
134
|
+
collapsedTarget: Ref<CollapseTarget | null, CollapseTarget | null>;
|
|
135
|
+
isFirstCollapsed: vue.ComputedRef<boolean>;
|
|
136
|
+
isSecondCollapsed: vue.ComputedRef<boolean>;
|
|
137
|
+
handleMouseDown: (e: MouseEvent | TouchEvent) => void;
|
|
138
|
+
handleDoubleClick: () => void;
|
|
139
|
+
handleKeyDown: (e: KeyboardEvent) => void;
|
|
140
|
+
collapse: (target?: CollapseTarget) => void;
|
|
141
|
+
expand: () => void;
|
|
142
|
+
toggle: (target?: CollapseTarget) => void;
|
|
143
|
+
resetSize: () => void;
|
|
144
|
+
setSize: (size: number) => void;
|
|
145
|
+
getPanelInfo: () => {
|
|
146
|
+
first: {
|
|
147
|
+
size: number;
|
|
148
|
+
collapsed: boolean;
|
|
149
|
+
};
|
|
150
|
+
second: {
|
|
151
|
+
size: number;
|
|
152
|
+
collapsed: boolean;
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
//#endregion
|
|
157
|
+
export { SplitDirection as a, SplitPaneProps as c, PanelInfo as i, _default as n, SplitPaneEmits as o, CollapseTarget as r, SplitPaneExpose as s, useSplitResize as t };
|
package/dist/useSplitResize.d.ts
CHANGED
|
@@ -80,13 +80,13 @@ declare const __VLS_base: vue.DefineComponent<Props, SplitPaneExpose, {}, {}, {}
|
|
|
80
80
|
}>, {
|
|
81
81
|
disabled: boolean;
|
|
82
82
|
direction: SplitDirection;
|
|
83
|
+
collapsible: boolean;
|
|
84
|
+
step: number;
|
|
83
85
|
defaultSize: number;
|
|
84
86
|
minSize: number;
|
|
85
87
|
maxSize: number;
|
|
86
|
-
collapsible: boolean;
|
|
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;
|
|
@@ -154,5 +154,4 @@ declare function useSplitResize(options: UseSplitResizeOptions): {
|
|
|
154
154
|
};
|
|
155
155
|
};
|
|
156
156
|
//#endregion
|
|
157
|
-
export { SplitDirection as a, SplitPaneProps as c, PanelInfo as i, _default as n, SplitPaneEmits as o, CollapseTarget as r, SplitPaneExpose as s, useSplitResize as t };
|
|
158
|
-
//# sourceMappingURL=useSplitResize.d.ts.map
|
|
157
|
+
export { SplitDirection as a, SplitPaneProps as c, PanelInfo as i, _default as n, SplitPaneEmits as o, CollapseTarget as r, SplitPaneExpose as s, useSplitResize as t };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
require(`./chunk.cjs`);const e=require(`./config.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./data.cjs`),i=require(`./C_Form2.cjs`);let a=require(`vue`),o=require(`naive-ui`);const s={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},c=e=>e===!1||e===void 0?s: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},l=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},u=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`}},d=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}}},f=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},p={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function m(e){return e?{striped:e.striped??p.striped,bordered:e.bordered??p.bordered,singleLine:e.singleLine??p.singleLine,size:e.size??p.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??p.columnWidth}:{...p}}const h=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1}),g=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},_=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},v=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},y=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},b=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},x=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function S(e={}){return{feedback:e.feedback,locale:e.locale,...c(e.edit),...l(e.expand),...u(e.selection),...d(e.pagination),...f(e.dynamicRows),...m(e.display),...h(e.toolbar),...g(e.virtualScroll),..._(e.summary),...v(e.columnDrag),...y(e.tree),...b(e.rowDrag),...x(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const C=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function w(e,t){return(typeof e.message==`function`?e.message():e.message)||t}function T(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function E(e){if(typeof e==`number`)return e;if(typeof e==`string`||Array.isArray(e))return e.length}function D(e,t){return e===!1?t:e instanceof Error?e.message||t:typeof e==`string`?e||t:Array.isArray(e)&&e.length>0?D(e[0],t):null}async function O(e,t,n,r){let i=w(e,`${n}校验失败`),a=e.transform?e.transform(t):t;if(e.required&&T(a))return w(e,`${n}不能为空`);if(!e.required&&T(a))return null;if(e.enum&&!e.enum.includes(a)||e.pattern&&!new RegExp(e.pattern).test(String(a)))return i;let o=E(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=D(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 D(s,i)}catch(e){return e instanceof Error&&e.message?e.message:i}return null}function k(e){let t=(0,a.ref)(null),n=(0,a.ref)({}),i=(0,a.ref)(!1),o=(0,a.ref)([]),s=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 a=c(e);return!a||i.value?!1:(t.value=e,n.value={[String(e)]:r.t(a)},o.value=[],!0)},u=async()=>{if(t.value===null||i.value)return;let r=e.data();if(!r||!Array.isArray(r))return;let a=r.findIndex(n=>e.rowKey(n)===t.value);a>-1&&await e.onCancel?.(r[a],a),t.value=null,n.value={}},d=async()=>{if(o.value=[],t.value===null)return!0;let r=e.columns?.()||[],i=n.value[String(t.value)];if(!i)return!0;let a=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=i[t];return Promise.all(e.editProps.rules.map(e=>O(e,r,n,i))).then(e=>{let n=e.find(Boolean);return n?{field:t,message:n}:null})}).filter(Boolean),s=(await Promise.all(a)).filter(Boolean);return o.value=s,s.length===0},f=async()=>{if(t.value===null||i.value||!await d())return;let a=t.value,o=e.data();if(!o||!Array.isArray(o))return;let s=o.findIndex(t=>e.rowKey(t)===a);if(s===-1)return;let c=n.value[String(a)];if(c){i.value=!0;try{await e.onSave?.(r.t(c),s),t.value=null,n.value={}}finally{i.value=!1}return{updatedData:c,rowIndex:s}}},p=e=>{if(t.value===e)return n.value[String(e)]};return{editingRowKey:t,editingData:n,isSaving:i,isEditingRow:s,startEditRow:l,cancelEditRow:u,saveEditRow:f,validateRow:d,validationErrors:o,getEditingRowData:p,updateEditingRowData:(e,t,n)=>{let i=p(e);i&&(i[t]=r.t(n))},findRowData:c}}function A(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function j(e){let t=(0,a.ref)({rowKey:null,columnKey:null}),n=(0,a.ref)({}),i=(0,a.ref)(!1),o=(0,a.ref)(null),s=(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,a)=>{let s=c(e);return!s||!a||i.value?!1:(t.value={rowKey:e,columnKey:a},n.value={[A(e,a)]:r.t(s[a])},o.value=null,!0)},u=async()=>{o.value=null;let{rowKey:r,columnKey:i}=t.value;if(r===null||i===null)return!0;let a=(e.columns?.()||[]).find(e=>e.key===i);if(!a||!a.editProps?.rules)return!0;let s=A(r,i),l=n.value[s],u=a.title||i,d={...c(r),[i]:l},f=(await Promise.all(a.editProps.rules.map(e=>O(e,l,u,d)))).find(Boolean);return f?(o.value=f,!1):!0};return{editingCell:t,editingData:n,isSaving:i,isEditingCell:s,startEditCell:l,saveEditCell:async()=>{let{rowKey:a,columnKey:o}=t.value;if(a===null||o===null||i.value||!await u())return;let s=e.data();if(!s||!Array.isArray(s))return;let c=s.findIndex(t=>e.rowKey(t)===a);if(c===-1)return;let l=A(a,o),d=n.value[l],f={...s[c],[o]:d};i.value=!0;try{await e.onSave?.(r.t(f),c,o),t.value={rowKey:null,columnKey:null},n.value={}}finally{i.value=!1}return{updatedData:f,rowIndex:c,columnKey:o}},cancelEditCell:()=>{let{rowKey:e,columnKey:r}=t.value;i.value||(e!==null&&r!==null&&delete n.value[A(e,r)],t.value={rowKey:null,columnKey:null},o.value=null)},validateCell:u,cellValidationError:o,getEditingCellValue:(e,t)=>n.value[A(e,t)],updateEditingCellValue:(e,t,i)=>{s(e,t)&&(n.value[A(e,t)]=r.t(i))},findRowData:c}}function M(e){let t=(0,a.ref)(!1),n=(0,a.ref)(!1),i=(0,a.ref)(null),o=(0,a.ref)({}),s=(0,a.computed)(()=>{if(i.value===null)return-1;let t=e.data();return Array.isArray(t)?t.findIndex(t=>e.rowKey(t)===i.value):-1});return{isModalVisible:t,isSaving:n,editingData:o,editingRowKey:i,editingRowIndex:s,startEdit:(a,s)=>{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:(i.value=a,o.value=r.t(s??c[l]),t.value=!0,!0)},saveEdit:async a=>{if(n.value||i.value===null)return;let c=s.value;if(c===-1)return;let l=r.t(a??o.value);n.value=!0;try{return await e.onSave?.(l,c),t.value=!1,i.value=null,o.value={},{updatedData:l,rowIndex:c}}finally{n.value=!1}},cancelEdit:async()=>{if(n.value)return!1;let r=s.value;try{if(i.value!==null&&r>-1){let t=e.data();t[r]&&await e.onCancel?.(t[r],r)}}finally{t.value=!1,i.value=null,o.value={}}return!0},updateEditingData:e=>n.value?!1:(o.value=r.t(e),!0),resetEditingState:()=>n.value?!1:(i.value=null,o.value={},!0),isEditingRow:e=>i.value===e&&t.value,getEditingRowData:e=>i.value===e?o.value:null}}const N=e=>({expandedKeys:(0,a.ref)([...e.defaultExpandedKeys||[]]),expandDataMap:(0,a.ref)(new Map),loadingMap:(0,a.ref)(new Map),checkedKeys:e.enableSelection?(0,a.ref)([...e.defaultCheckedKeys||[]]):(0,a.ref)([]),childSelections:(e.enableChildSelection,(0,a.ref)(new Map))}),ee=e=>{let t=(0,a.computed)(()=>(0,a.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}},P=(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),await o(r),!a.has(c))return;e.expandedKeys.value.includes(c)||(e.expandedKeys.value=[...e.expandedKeys.value,c])}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)),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));if(await Promise.all(c.map(async e=>{let n=t.findRow(e);n&&await o(n)})),s===i){for(let t of l)e.childSelections.value.delete(t);e.expandedKeys.value=r,n.onExpandChange?.(r)}}}},F=(e,t,n)=>{let r=(0,a.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,a.computed)(()=>e.checkedKeys.value.length),selectableRows:r}},I=(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}},te=(e,t,n,r)=>({totalChildSelections:(0,a.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)}}),L=(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,[])}}},ne=()=>(0,a.h)(`div`,{class:`flex justify-center items-center py-8`},[(0,a.h)(o.NSpin,{size:`small`}),(0,a.h)(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),R=()=>(0,a.h)(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),re=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,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,ellipsis:{tooltip:!0}}))]},ie=(e,t,n,r,i,s)=>{let c=[];return s.enableChildSelection&&c.push({type:`selection`,multiple:!0}),c.push(...re(t)),(0,a.h)(`div`,{class:`p-4 bg-gray-50`},[(0,a.h)(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),(0,a.h)(o.NDataTable,{data:t,columns:c,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:s.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},ae=(e,t,n,r,i)=>{let o=o=>{let s=t.getRowKey(o),c=e.expandDataMap.value.get(s)||[],l=e.loadingMap.value.get(s)||!1;!c.length&&!l&&e.expandedKeys.value.includes(s)&&(0,a.nextTick)(()=>{r.loadData(o)});let u=L(s,e,t,n,i);return i.renderContent?i.renderContent(o,c,l,u):l?ne():c.length?ie(s,c,u,t,n,i):R()};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:o}:e)}};function oe(e){let t=N(e),n=ee(e),r=P(t,n,e),i=F(t,n,e),o=te(t,n,I(t,e),e),s=ae(t,n,o,r,e);return e.onSelectionChange&&e.enableSelection&&(0,a.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,a.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:o.totalChildSelections,expandAll:r.expandAll,collapseAll:r.collapseAll,expandRow:async e=>{if(t.expandedKeys.value.includes(e))return;let i=n.findRow(e);i&&await r.handleRowExpand(i,!0)},handleExpandChange:r.handleExpandChange,selectAll:i.selectAll,clearSelection:i.clearSelection,clearAllSelections:o.clearAllSelections,handleSelectionChange:i.handleSelectionChange,getTableColumns:s.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap}}const z={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},se={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 ce(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 le(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 ue(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 de(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={...z,...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:ce,corner:le,diagonal:ue,repeat:de};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={...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 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={...se,...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 fe(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 pe(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 K(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function me(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}=fe(s,i,a);return r(60),pe(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function he(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 ge(){let t=e.r(),n=(0,a.ref)(!1),r=(0,a.ref)(0),i=e=>{r.value=Math.max(0,Math.min(100,e))},o=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:`未知错误`}`)}},s=async(e,r={})=>{n.value=!0,i(0);try{await(0,a.nextTick)();let n=await o(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,a.nextTick)();let n=await H(e,i.capture);i.watermark&&V(n,i.watermark);let o=i.capture?.format||`png`,s=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${o}`;W(n,r||s,o),t.success(`下载完成`)}catch(e){throw t.error(`下载失败`,e),e}finally{n.value=!1}},l=async(e,t=`Robot Admin`)=>s(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 a=await o(e,t);return i(10+(r+1)/n*70),a});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:o,printWithWatermark:s,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=K(e,a,t);if(o){n.value=!0;try{await he(await me(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=>s(e,t),download:(e,n)=>c(e,n,t)}),updateProgress:i,utils:{captureElement:H,drawWatermark:V,canvasToDataURL:U,downloadCanvas:W,printImage:G}}}const q={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 J(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function Y(e,t){return typeof t==`function`?t(e):e[t]}function X(e,t){let n=e?.()||{},r=typeof t==`string`?t:`id`;return{...n,[r]:J()}}function Z(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:()=>({})},s=(0,a.reactive)({...i,...(0,a.toValue)(r)});(0,a.watch)(()=>(0,a.toValue)(r),e=>{let t=s;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,i,e)},{deep:!0});let c=e.r(()=>s.feedback),{t:l}=e.i(()=>s.locale),u=`c-table-radio-${J()}`,d=(0,a.ref)(null),f=(0,a.ref)(!1),p=(0,a.computed)(()=>d.value===null?null:n.value.find(e=>Y(e,s.rowKey)===d.value)||null),m=(0,a.computed)(()=>p.value?n.value.findIndex(e=>e===p.value):-1),h=(0,a.computed)(()=>m.value>0),g=(0,a.computed)(()=>m.value>=0&&m.value<n.value.length-1),{loading:_,progress:v,printWithWatermark:y,downloadScreenshot:b,quickPrint:x}=ge(),S=()=>{if(s.printOptions)return s.printOptions;let e=q[s.printPreset||`table`];return s.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:s.printWatermarkText}}:e},C=e=>{s.onRowChange?.(e)},w=()=>{if(!s.enabled||!s.enableAdd)return;let e=X(s.defaultRowData,s.rowKey);C([...n.value,e]),s.onRowAdd?.(e),c.success(l(`table.addRowSuccess`))},T=()=>{if(!s.enabled||!s.enableInsert||!p.value){c.warning(l(`table.selectRowFirst`));return}let e=X(s.defaultRowData,s.rowKey),t=[...n.value];t.splice(m.value+1,0,e),C(t),s.onRowAdd?.(e),c.success(l(`table.insertRowSuccess`))},E=()=>{if(!s.enabled||!s.enableDelete||!p.value){c.warning(l(`table.selectDeleteRowFirst`));return}s.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,s.onSelectionChange?.(null,null),s.onRowDelete?.(e,t),c.success(l(`table.deleteRowSuccess`)),f.value=!1},O=()=>{if(!s.enabled||!s.enableCopy||!p.value){c.warning(l(`table.selectCopyRowFirst`));return}let e=p.value,t=typeof s.rowKey==`string`?s.rowKey:`id`,{[t]:r,...i}=e,a={...i,[t]:J()};C([...n.value,a]),s.onRowCopy?.(e,a),c.success(l(`table.copyRowSuccess`))},k=()=>{if(!s.enabled||!s.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),s.onRowMove?.(r,e,e-1),c.success(l(`table.moveUpSuccess`))},A=()=>{if(!s.enabled||!s.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),s.onRowMove?.(r,e,e+1),c.success(l(`table.moveDownSuccess`))},j=e=>{if(!s.enabled)return;let t=n.value.find(t=>Y(t,s.rowKey)===e);t&&(d.value=e,s.onSelectionChange?.(e,t))},M=()=>{d.value=null,s.onSelectionChange?.(null,null)},N=async e=>{if(!e.value){c.error(l(`table.printTargetMissing`));return}let t=S();await y(e.value,t)};return(0,a.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){c.error(l(`table.downloadTargetMissing`));return}let n=S();await b(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){c.error(l(`table.printTargetMissing`));return}let t=s.printWatermarkText||`Robot Admin`;await x(e.value,t)},enhanceColumns:e=>{if(!s.enabled)return e;let t=[...e];return s.enabled&&s.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:l(`common.select`),width:80,align:`center`,editable:!1,render:e=>{let t=Y(e,s.rowKey);return(0,a.h)(`div`,{class:`flex justify-center`},[(0,a.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(!s.enabled)return null;let n=[];s.enablePrint&&n.push((0,a.h)(o.NButton,{loading:_.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(s.printTargetSelector);t?await N((0,a.shallowRef)(t)):c.warning(l(`table.printTargetMissing`))}catch(e){c.error(l(`table.printTargetMissing`),e)}}},{icon:()=>(0,a.h)(t.t,{name:`mdi:printer`,title:l(`common.print`)}),default:()=>l(`common.print`)}));let r=[];return s.enableAdd&&r.push((0,a.h)(o.NButton,{onClick:w,type:`primary`},{icon:()=>(0,a.h)(t.t,{name:`mdi:plus`,title:l(`table.addRow`)}),default:()=>l(`table.addRow`)})),s.enableInsert&&r.push((0,a.h)(o.NTooltip,{disabled:!!p.value},{trigger:()=>(0,a.h)(o.NButton,{onClick:T,disabled:!p.value,type:`primary`,ghost:!0},{icon:()=>(0,a.h)(t.t,{name:`mdi:table-row-plus-after`,title:l(`table.insertRow`)}),default:()=>l(`table.insertRow`)}),default:()=>l(`table.selectRowFirst`)})),s.enableDelete&&r.push((0,a.h)(o.NTooltip,{disabled:!!p.value},{trigger:()=>(0,a.h)(o.NButton,{onClick:E,disabled:!p.value,type:`error`,ghost:!0},{icon:()=>(0,a.h)(t.t,{name:`mdi:delete`,title:l(`table.deleteRow`)}),default:()=>l(`table.deleteRow`)}),default:()=>l(`table.selectDeleteRowFirst`)})),s.enableCopy&&r.push((0,a.h)(o.NTooltip,{disabled:!!p.value},{trigger:()=>(0,a.h)(o.NButton,{onClick:O,disabled:!p.value,type:`info`,ghost:!0},{icon:()=>(0,a.h)(t.t,{name:`mdi:content-copy`,title:l(`table.copyRow`)}),default:()=>l(`table.copyRow`)}),default:()=>l(`table.selectCopyRowFirst`)})),s.enableMove&&r.push((0,a.h)(o.NTooltip,{disabled:h.value},{trigger:()=>(0,a.h)(o.NButton,{onClick:k,disabled:!h.value,type:`warning`,ghost:!0},{icon:()=>(0,a.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,a.h)(o.NTooltip,{disabled:g.value},{trigger:()=>(0,a.h)(o.NButton,{onClick:A,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>(0,a.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,a.h)(o.NButtonGroup,{},()=>r)),(0,a.h)(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[(0,a.h)(o.NSpace,{},()=>n)])},renderConfirmModal:()=>(0,a.h)(o.NModal,{show:f.value,"onUpdate:show":e=>{f.value=e},preset:`dialog`,title:l(`table.deleteTitle`),content:s.deleteConfirmText||l(`table.deleteRowContent`),positiveText:l(`table.confirmDeleteRow`),negativeText:l(`common.cancel`),onPositiveClick:D})}}function _e(t){let{data:n,rowKey:r,emit:i}=t,o=()=>(0,a.toValue)(t.config),s=e.r(()=>o().feedback),{t:c}=e.i(()=>o().locale),l={onSave:async(e,t,r)=>{if(!e||t<0||t>=n().length)return;let a=[...n()];a[t]={...a[t],...e};try{await o().onEditSave?.(a[t],t,r),await i(`save`,a[t],t,r),i(`update:data`,a)}catch(e){throw o().onEditError?.(e),i(`edit-error`,e),e}},onCancel:async(e,t)=>{try{await o().onEditCancel?.(e,t),await i(`cancel`,e,t)}catch(e){throw o().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),o().dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,t)=>{i(`row-selection-change`,e,t),o().dynamicRows?.onSelectionChange?.(e,t)},onRowAdd:e=>{i(`row-add`,e),o().dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,t)=>{i(`row-delete`,e,t),o().dynamicRows?.onRowDelete?.(e,t)},onRowCopy:(e,t)=>{i(`row-copy`,e,t),o().dynamicRows?.onRowCopy?.(e,t)},onRowMove:(e,t,n)=>{i(`row-move`,e,t,n),o().dynamicRows?.onRowMove?.(e,t,n)}},u=()=>({rowEdit:k({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel,columns:t.columns}),cellEdit:j({data:n,rowKey:r,onSave:l.onSave,columns:t.columns}),modalEdit:M({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel})}),d=()=>oe({data:(0,a.computed)(()=>n()),rowKey:r,childRowKey:e=>e.id,get defaultExpandedKeys(){return o().defaultExpandedKeys},get onLoadData(){return o().onLoadExpandData},onError:(e,t)=>{let n=o().onExpandError;n?n(e,t):s.error(c(`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:l.onExpandChange,onSelectionChange:l.onSelectionChange,onChildSelectionChange:l.onChildSelectionChange}),f=()=>Z((0,a.computed)(()=>n()),(0,a.computed)(()=>({...o().dynamicRows,enabled:!!o().dynamicRows,feedback:o().feedback,locale:o().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=o().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 o().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,a.shallowRef)(e))},async download(e,t){h&&e&&await h.handleDownload((0,a.shallowRef)(e),t)}},clearAllSelections(){m?.clearAllSelections()}},expandedKeys:(0,a.computed)(()=>m?.expandedKeys.value??[]),checkedKeys:(0,a.computed)(()=>m?.checkedKeys.value??[]),eventHandlers:l}}const Q={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function $(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function ve(e){let{data:t,config:n,emit:r}=e,i=(0,a.ref)(Q.page),o=(0,a.ref)(Q.pageSize),s=(0,a.computed)(()=>{let e=typeof t==`function`?t():(0,a.unref)(t);return Array.isArray(e)?e:[]}),c=(0,a.computed)(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??s.value.length)):s.value.length}),l=()=>n.value?.enabled?Math.max(1,Math.ceil(c.value/o.value)):1,u=(e,t)=>{let n=Math.min($(e,1),l());i.value!==n&&(i.value=n,t&&r?.(`pagination-change`,n,o.value))},d=e=>u(e,!0),f=e=>{let t=$(e,Q.pageSize),n=o.value!==t;o.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},p=()=>u(1,!0),m=(0,a.computed)(()=>{let e=n.value;if(!e?.enabled||e.remote)return s.value;let t=(i.value-1)*o.value;return s.value.slice(t,t+o.value)}),h=(0,a.computed)(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:o.value,itemCount:c.value,showSizePicker:e.showSizePicker??Q.showSizePicker,showQuickJumper:e.showQuickJumper??Q.showQuickJumper,pageSizes:e.pageSizes??Q.pageSizes,simple:e.simple??Q.simple,size:e.size??Q.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,a.watch)(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{o.value=$(t,Q.pageSize),i.value=Math.min($(e,Q.page),l())},{immediate:!0}),(0,a.watch)([c,o],()=>{let e=Math.min(i.value,l());e!==i.value&&(i.value=e,r?.(`pagination-change`,e,o.value))}),{currentPage:i,currentPageSize:o,paginatedData:m,paginationConfig:h,handlePageChange:d,handlePageSizeChange:f,resetToFirstPage:p,getTotalPages:l}}function ye(n){let{actions:r,config:i,tableManager:s,rowKey:c,onRowDeleted:l,onViewDetail:u}=n,d=e.r(()=>i.value.feedback),{t:f}=e.i(()=>i.value.locale),p=e=>e===`edit`?i.value.editable&&r.value?.edit!==!1:typeof r.value?.[e]==`function`,m=e=>e!==!1&&typeof e==`function`,h=e=>e&&typeof e==`object`&&`data`in e?e.data:e,g=(e,n,r=`primary`,i)=>(0,a.h)(o.NButton,{size:`small`,type:r,quaternary:!0,onClick:i},()=>[(0,a.h)(t.t,{name:e,size:14,title:n})]),_=async(e,t)=>{let n=c(e),a=r.value?.edit;if(m(a)){try{await a(e,t)}catch(e){d.error(f(`table.actionFailed`,{action:f(`common.edit`)}),e)}return}i.value.editMode===`modal`?s.editStates.modalEdit.startEdit(n,{...e}):s.editStates.rowEdit.startEditRow(n)},v=async(e,t,n)=>{try{await e(t,n),d.success(f(`table.deleteSuccess`)),l?.(t,n)}catch(e){throw d.error(f(`table.deleteFailed`),e),e}},y=async(e,t)=>{let n=r.value?.delete;m(n)&&await d.confirm({title:f(`table.deleteTitle`),content:f(`table.deleteContent`),positiveText:f(`common.confirm`),negativeText:f(`common.cancel`),type:`warning`})&&await v(n,e,t)},b=async(e,t)=>{let n=r.value?.detail;if(!m(n)){u?.(e);return}try{let r=h(await n(e,t));u?.(r||e)}catch(t){d.error(f(`table.detailFailed`),t),u?.(e)}},x=e=>s.editStates.rowEdit.isEditingRow(e)?[g(`mdi:check`,f(`common.save`),`primary`,()=>void s.editStates.rowEdit.saveEditRow().catch(e=>d.error(f(`table.actionFailed`,{action:f(`common.save`)}),e))),g(`mdi:close`,f(`common.cancel`),`default`,()=>s.editStates.rowEdit.cancelEditRow())]:[g(`mdi:pencil`,f(`common.edit`),`warning`,()=>s.editStates.rowEdit.startEditRow(e))],S=(e,t)=>{let n=[];return p(`detail`)&&n.push(g(`mdi:eye`,f(`common.detail`),`info`,()=>void b(e,t))),p(`edit`)&&(i.value.editMode===`modal`||m(r.value?.edit))&&n.push(g(`mdi:pencil`,f(`common.edit`),`warning`,()=>void _(e,t))),p(`delete`)&&n.push(g(`mdi:delete`,f(`common.delete`),`error`,()=>void y(e,t).catch(()=>void 0))),n},C=(e,n)=>{let i=r.value?.custom;if(!i?.length)return null;let s=i.filter(t=>t.show?t.show(e,n):!0);return s.length?(0,a.h)(o.NDropdown,{options:s.map(r=>{let i=typeof r.label==`function`?r.label(e,n):r.label,o=typeof r.icon==`function`?r.icon(e,n):r.icon;return{label:i,key:r.key,icon:()=>(0,a.h)(t.t,{name:o,size:14}),disabled:r.disabled?.(e,n)||!1}}),onSelect:t=>{let r=s.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=>d.error(f(`table.actionFailed`,{action:i}),e))}},()=>g(`mdi:dots-horizontal`,f(`table.moreActions`),`default`,()=>{})):null};return{renderActions:(e,t)=>{if(r.value?.render)return r.value.render(e,t);let n=c(e),l=[`row`,`both`].includes(i.value.editMode);if(l&&s.editStates.rowEdit.isEditingRow(n))return(0,a.h)(o.NSpace,{size:2,wrap:!1},()=>x(n));let u=m(r.value?.edit),d=[...l&&!u?x(n):[],...S(e,t)],f=C(e,t);return f&&d.push(f),(0,a.h)(o.NSpace,{size:2,wrap:!1},()=>d)},isActionEnabled:p}}const be=Symbol(`C_TABLE_GLOBAL_CONFIG`),xe={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 Se(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 Ce(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 we={date:(e,t)=>Se(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>Se(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=Ce(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)=>Ce(e,t.precision??0)};function Te(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&&we[n.type];return i?i(e,{...{...xe,...r}[n.type],...n.config}):String(e??`-`)}function Ee(){return(0,a.getCurrentInstance)()?(0,a.inject)(be,{}):{}}const De=(e,t)=>t===void 0?e:t&&e&&typeof t==`object`&&typeof e==`object`&&!Array.isArray(t)&&!Array.isArray(e)?{...e,...t}:t;function Oe(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=De(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 ke={number:o.NInputNumber,switch:o.NSwitch,input:o.NInput,email:o.NInput,mobile:o.NInput,date:e=>(0,a.h)(o.NDatePicker,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>(0,a.h)(o.NSelect,{...e,options:e.options||[]}),textarea:e=>(0,a.h)(o.NInput,{...e,type:`textarea`,rows:3})},Ae={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:Ae[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function Me(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,a.h)(ke[e.editType||`input`]||ke.input,i)}function Ne(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?Te(r,t,e.formatter,i):String(r??``)}function Pe(e,n,r,i,o){let s=(e,n,r)=>(0,a.h)(`button`,{class:`cell-action-btn cell-action-${e}`,title:n,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[(0,a.h)(t.t,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return(0,a.h)(`div`,{class:`cell-editing-container`},[(0,a.h)(`div`,{class:`cell-editing-input`},[Me(e,n,r)]),(0,a.h)(`div`,{class:`cell-editing-actions`},[s(`save`,`保存`,i),s(`cancel`,`取消`,o)])])}function Fe(e,n,r,i,o,s){let c;return c=e.render?e.render(n,r)??String(i??``):e.formatter?Te(i,n,e.formatter,s):String(i??``),(0,a.h)(`div`,{class:`cell-edit-wrapper`},[(0,a.h)(`span`,{class:`cell-value`},c),(0,a.h)(t.t,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),o()}})])}function Ie(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:o,actionsRenderer:s,editModeChecker:c,showActionsColumn:l}=e,u=(0,a.ref)([]),d=(0,a.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,a.watch)([t,l],([e])=>{e?.length?f(e):u.value=[]},{deep:!0,immediate:!0});let p=(e,t,r,i)=>{let a=e.key??``,s=t[a],{isEditingCell:c,getEditingCellValue:l,updateEditingCellValue:u,saveEditCell:d,cancelEditCell:f,startEditCell:p}=o.editStates.cellEdit;return c(i,a)?Pe(e,l(i,a)??s,e=>u(i,a,e),()=>d(),()=>f()):Fe(e,t,r,s,()=>p(i,a),n.value.formatterConfig)},m=(e,t,r)=>{let a=e.key??``,s=t[a],l=i(t),u=c.value;return u.isNonEditable(e)?Ne(e,t,r,s,n.value.formatterConfig):u.isRowEditMode()&&o.editStates.rowEdit.isEditingRow(l)?Me(e,o.editStates.rowEdit.getEditingRowData(l)?.[a]??s,e=>o.editStates.rowEdit.updateEditingRowData(l,a,e)):u.isCellEditMode()?p(e,t,r,l):Ne(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,a.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(o.dynamicRowsState&&(e=o.dynamicRowsState.enhanceColumns(e)),o.expandState&&(n.value.expandable||n.value.enableSelection)&&(e=o.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:s,fixed:t?.fixed})}return e}),computedScrollX:(0,a.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 Le(e){let{data:t,onReorder:n,onSort:r}=e,i=(0,a.ref)(!1),o=null,s=0,c=!1,l=()=>{o?.destroy(),o=null,i.value=!1},u=async u=>{let d=++s;l();let f=(0,a.toValue)(e.config);if(!(!f?.enabled||!u||c))try{let{default:e}=await import(`sortablejs`);if(c||d!==s)return;let a=u.querySelector(`.n-data-table-tbody`);if(!a)return;o=new e(a,{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=()=>{s+=1,l()};return(0,a.onBeforeUnmount)(()=>{c=!0,d()}),{initRowDrag:u,destroyRowDrag:d,isDragging:i}}function Re(e){let{allData:t,rowKey:n}=e,r=(0,a.ref)(new Set),i=()=>{let t=(0,a.toValue)(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},o=(0,a.computed)(()=>r.value.size),s=e=>e.map(e=>n(e)).filter(e=>r.value.has(e)),c=(t,o)=>{if(!(0,a.toValue)(e.config)?.enabled)return;let s=new Set(r.value);for(let e of o)s.delete(n(e));for(let e of t){let t=i();if(t&&s.size>=t)break;s.add(e)}r.value=s},l=()=>{if(!(0,a.toValue)(e.config)?.enabled)return;let o=[...new Set(t.value.map(e=>n(e)))],s=i();r.value=new Set(s?o.slice(0,s):o)},u=o=>{if(!(0,a.toValue)(e.config)?.enabled||!t.value.some(e=>n(e)===o))return!1;if(r.value.has(o))return!0;let s=i();return s&&r.value.size>=s?!1:(r.value=new Set([...r.value,o]),!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,a.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,a.watch)(()=>[(0,a.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:o,getPageCheckedKeys:s,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 ze(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 Be(e,t,n){let r=e[t.key];return t.formatter?Te(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function Ve(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 He(e){return[...e||`export`].map(e=>e.charCodeAt(0)<32||`<>:"/\\|?*`.includes(e)?`_`:e).join(``).trim()||`export`}function Ue(e,t,n){let r=n.csvSeparator??`,`,i=n.preventFormulaInjection!==!1,a=ze(t,n.columnKeys),o=[];n.includeHeader!==!1&&o.push(a.map(e=>Ve(e.title??``,r,i)).join(r));for(let t of e){let e=a.map(e=>Ve(Be(t,e,n.formatterConfig),r,i));o.push(e.join(r))}Ge(new Blob([``+o.join(`
|
|
3
|
+
`)],{type:`text/csv;charset=utf-8;`}),`${He(n.filename)}.csv`)}async function We(e,t,n){let r=ze(t,n.columnKeys),i;try{i=await import(`xlsx`)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),Ue(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>Be(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,`${He(n.filename)}.xlsx`)}function Ge(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 Ke(e,t,n={}){n.format===`xlsx`?await We(e,t,n):Ue(e,t,n)}const qe=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}],Je=[`_actions`],Ye=[`selection`,`expand`],Xe=e=>Je.includes(e.key)||Ye.includes(e.type),Ze={class:`column-management-tab`},Qe={class:`search-row`},$e={class:`resizable-control`},et={class:`top-actions-bar`},tt={class:`stats-info`},nt={class:`quick-actions`},rt=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],it={class:`column-info`},at={class:`column-controls`},ot={class:`column-details`},st={class:`column-actions`},ct={class:`drag-controls`},lt=(0,a.defineComponent)({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(e,{emit:n}){let r=e,i=n,s=e=>{if(!r.persistKey)return[...e];try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);if(!t)return[...e];let n=JSON.parse(t);if(!Array.isArray(n))return[...e];let i=new Map(n.map((e,t)=>[e.key,{...e,order:t}])),a=e.map(e=>{let t=i.get(e.key);return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:{...e}});return a.sort((e,t)=>(i.get(e.key)?.order??999)-(i.get(t.key)?.order??999)),a}catch{return[...e]}},c=e=>{if(r.persistKey)try{let t=e.map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}));localStorage.setItem(`c_table_cols_${r.persistKey}`,JSON.stringify(t))}catch{}},l=(0,a.ref)(s(r.columns)),u=(0,a.ref)(``),d=(0,a.ref)(),f=(0,a.ref)(null),p=(0,a.ref)(null),m=(0,a.ref)(!1);(0,a.onMounted)(()=>{m.value=l.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...l.value])}),(0,a.watch)(()=>r.columns,e=>{l.value=s(e),m.value=l.value.some(e=>e.resizable===!0)},{deep:!0});let h=(0,a.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,a.computed)(()=>l.value.filter(e=>e.visible!==!1).length),_=(0,a.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=()=>{c(l.value),i(`change`,[...l.value])},E=()=>{l.value=[...r.columns],T()},D=e=>{l.value.forEach(t=>{Xe(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,a.openBlock)(),(0,a.createElementBlock)(`div`,Ze,[(0,a.createCommentVNode)(` 搜索框和列宽调整开关 `),(0,a.createElementVNode)(`div`,Qe,[(0,a.createVNode)((0,a.unref)(o.NInput),{value:u.value,"onUpdate:value":n[0]||=e=>u.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:(0,a.withCtx)(()=>[(0,a.createVNode)(t.t,{name:`mdi:magnify`})]),_:1},8,[`value`]),(0,a.createElementVNode)(`div`,$e,[(0,a.createVNode)(t.t,{name:`mdi:arrow-split-vertical`,size:`14`,title:m.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),(0,a.createVNode)((0,a.unref)(o.NText),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:(0,a.withCtx)(()=>[...n[2]||=[(0,a.createTextVNode)(` 列宽调整 `,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NSwitch),{value:m.value,"onUpdate:value":[n[1]||=e=>m.value=e,D],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),(0,a.createCommentVNode)(` 顶部操作栏:统计信息和快捷操作按钮 `),(0,a.createElementVNode)(`div`,et,[(0,a.createElementVNode)(`div`,tt,[(0,a.createVNode)((0,a.unref)(o.NText),{depth:`3`,style:{fontSize:`13px`}},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` 已选 `+(0,a.toDisplayString)(g.value)+` / 总共 `+(0,a.toDisplayString)(_.value)+` 列 `,1)]),_:1})]),(0,a.createElementVNode)(`div`,nt,[(0,a.createVNode)((0,a.unref)(o.NSpace),{size:6},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{size:`tiny`,onClick:y},{default:(0,a.withCtx)(()=>[...n[3]||=[(0,a.createTextVNode)(` 全选 `,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{size:`tiny`,onClick:b},{default:(0,a.withCtx)(()=>[...n[4]||=[(0,a.createTextVNode)(` 全不选 `,-1)]]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{size:`tiny`,onClick:E},{default:(0,a.withCtx)(()=>[...n[5]||=[(0,a.createTextVNode)(` 重置 `,-1)]]),_:1})]),_:1})])]),(0,a.createCommentVNode)(` 列列表 `),(0,a.createElementVNode)(`div`,{ref_key:`listRef`,ref:d,class:`column-list`},[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(h.value,(e,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:e.key,class:(0,a.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,a.createElementVNode)(`div`,it,[(0,a.createElementVNode)(`div`,at,[(0,a.createVNode)(t.t,{name:`mdi:drag`,size:`16`,class:(0,a.normalizeClass)([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),(0,a.createVNode)((0,a.unref)(o.NCheckbox),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>C(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),(0,a.createElementVNode)(`div`,ot,[(0,a.createVNode)((0,a.unref)(o.NSpace),{align:`center`,size:6},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NText),{strong:``,style:{fontSize:`13px`}},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NTag),{key:0,size:`tiny`,type:`info`},{default:(0,a.withCtx)(()=>[...n[6]||=[(0,a.createTextVNode)(` 左固定 `,-1)]]),_:1})):(0,a.createCommentVNode)(`v-if`,!0),e.fixed===`right`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NTag),{key:1,size:`tiny`,type:`warning`},{default:(0,a.withCtx)(()=>[...n[7]||=[(0,a.createTextVNode)(` 右固定 `,-1)]]),_:1})):(0,a.createCommentVNode)(`v-if`,!0)]),_:2},1024),(0,a.createVNode)((0,a.unref)(o.NText),{depth:`3`,style:{fontSize:`11px`}},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(e.key),1)]),_:2},1024)])]),(0,a.createElementVNode)(`div`,st,[(0,a.createElementVNode)(`div`,ct,[(0,a.createVNode)(t.t,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:(0,a.normalizeClass)({disabled:r===0}),onClick:e=>r!==0&&O(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),(0,a.createVNode)(t.t,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==h.value.length-1,class:(0,a.normalizeClass)({disabled:r===h.value.length-1}),onClick:e=>r!==h.value.length-1&&O(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),(0,a.createVNode)((0,a.unref)(o.NDropdown),{options:(0,a.unref)(qe)(e),onSelect:e=>w(r,e)},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(t.t,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:(0,a.normalizeStyle)({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,rt))),128))],512)]))}});var ut=n.t(lt,[[`__scopeId`,`data-v-022be568`]]);function dt(e){return e}function ft(e){return e}function pt(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}const mt={key:1,class:`table-toolbar`},ht={class:`toolbar-left`},gt={class:`toolbar-right`},_t={key:2,class:`batch-actions-bar`},vt={class:`batch-info`},yt={key:3,class:`table-error-state`},bt={class:`error-content`},xt={class:`error-message`},St=(0,a.defineComponent)({name:`C_Table`,inheritAttrs:!1,__name:`index`,props:{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:s,emit:c}){let l=n,u=c,d=(e,...t)=>{if(u(e,...t),l.crud)return{save:l.crud.save,cancel:l.crud.handleCancel,"pagination-change":l.crud.handlePaginationChange,"row-delete":l.crud.handleRowDelete,"view-detail":l.crud.detail?.show}[e]?.(...t)},f=Ee(),p=e=>typeof l.rowKey==`function`?l.rowKey(e):e[l.rowKey],m=(0,a.computed)(()=>{let e=l.config||{};if(l.crud){let t={};l.crud.actions&&(t.actions=l.crud.actions.value),l.crud.pagination&&(t.pagination=l.crud.pagination.value??void 0),e={...t,...e}}return Oe(e,f)}),h=(0,a.computed)(()=>l.columns??l.crud?.columns.value??[]),g=(0,a.computed)(()=>S(m.value)),_=e.r(()=>g.value.feedback),{t:v}=e.i(()=>g.value.locale),y=(0,a.computed)(()=>C(g.value)),b=e=>e&&typeof e==`object`&&`value`in e?e.value:e,x=(0,a.computed)(()=>b(l.data)??l.crud?.data.value??[]),w=(0,a.computed)(()=>b(l.loading)??l.crud?.loading.value??!1),T=``;(0,a.watch)(()=>x.value.map(e=>{try{return p(e)}catch{return}}),()=>{if(m.value.validateRowKeys===!1){T=``;return}let e=pt(x.value,p);if(e.length===0){T=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==T&&(T=t,_.warning(v(`table.invalidRowKeys`,{count:e.length})),u(`row-key-error`,e))},{immediate:!0});let E=ve({data:x,config:(0,a.computed)(()=>g.value.pagination),emit:d}),D=_e({config:g,data:()=>x.value,rowKey:p,emit:d,columns:()=>h.value}),O=ye({actions:(0,a.computed)(()=>m.value.actions||{}),config:g,tableManager:D,rowKey:p,onRowDeleted:(e,t)=>u(`row-delete`,e,t),onViewDetail:e=>d(`view-detail`,e)}),k=(0,a.computed)(()=>{let{actions:e}=m.value;return!!(g.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),A=Ie({rawColumns:h,config:g,columnWidth:g.value.columnWidth,scrollX:g.value.scrollX,rowKey:p,tableManager:D,actionsRenderer:O.renderActions,editModeChecker:y,showActionsColumn:k}),{showSettingsPanel:j,reactiveColumns:M,computedColumns:N,computedScrollX:ee}=A,P=Le({data:E.paginatedData,rowKey:p,config:(0,a.computed)(()=>g.value.rowDrag),onReorder:e=>{let t=g.value.pagination;if(!t?.enabled||t.remote){d(`update:data`,e);return}let n=(E.currentPage.value-1)*E.currentPageSize.value,r=[...x.value];r.splice(n,e.length,...e),d(`update:data`,r)},onSort:(e,t,n)=>{let r=g.value.pagination?.enabled&&!g.value.pagination.remote?(E.currentPage.value-1)*E.currentPageSize.value:0;u(`row-move`,e,t+r,n+r)}}),F=Re({allData:x,rowKey:p,config:(0,a.computed)(()=>g.value.crossPageSelection)}),I=(0,a.computed)(()=>g.value.crossPageSelection?.enabled===!0),te=(0,a.computed)(()=>I.value?F.selectedCount.value:D.checkedKeys?.value?.length??0),L=(0,a.ref)(new Set),ne=async e=>{if(L.value.has(e.key))return;let t=I.value?[...F.selectedKeys.value]:D.checkedKeys?.value??[],n=I.value?F.getSelectedRows():x.value.filter(e=>t.includes(p(e)));L.value=new Set(L.value).add(e.key);try{await e.onClick(t,n),g.value.batchActions?.clearSelectionOnSuccess&&R()}catch(t){g.value.batchActions?.onError?.(t,e.key),u(`batch-action-error`,t,e.key)}finally{let t=new Set(L.value);t.delete(e.key),L.value=t}},R=()=>{I.value?F.clearAll():D.stateManager.selection.clear()},re=(0,a.computed)(()=>I.value?F.getPageCheckedKeys(E.paginatedData.value):null),ie=e=>{I.value&&F.handlePageSelectionChange(e,E.paginatedData.value),D.expandState?.handleSelectionChange?.(e)},ae=async()=>{let e=g.value.exportConfig??{};await Ke(x.value,h.value,{...e,formatterConfig:g.value.formatterConfig})},oe=(0,a.computed)(()=>{let e=g.value;if(e.summaryRender)return t=>{let n=e.summaryRender(t);return N.value.map(e=>{let t=n[e.key];return t?{value:t.value,colSpan:t.colSpan??1}:{value:``}})}}),z=(0,a.ref)(),B=null,se=0,ce=()=>{se+=1,B?.destroy(),B=null},le=async()=>{let e=++se;if(B?.destroy(),B=null,!(!g.value.enableColumnDrag||!z.value))try{let{default:t}=await import(`sortablejs`);if(e!==se||!z.value)return;let n=z.value.querySelector(`.n-data-table-thead tr`);if(!n)return;B=new t(n,{animation:g.value.columnDragAnimationDuration,handle:g.value.columnDragHandleClass?`.${g.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=[...M.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),A.handleColumnChange(t),u(`column-change`,t)}})}catch{}},ue=(0,a.ref)(),de=(0,a.computed)(()=>({striped:g.value.striped,bordered:g.value.bordered,singleLine:g.value.singleLine,size:g.value.size,maxHeight:g.value.maxHeight})),V=(0,a.ref)(),H=(0,a.ref)(!1),U=(0,a.ref)({}),W=(0,a.computed)({get:()=>D.editStates.modalEdit.isModalVisible.value,set:e=>{D.editStates.modalEdit.isModalVisible.value=e}}),G=(0,a.computed)(()=>h.value.filter(e=>e.editable!==!1)),fe=(0,a.computed)(()=>`edit-form-${D.editStates.modalEdit.editingRowKey.value??`new`}`),pe=(0,a.computed)(()=>je(G.value));(0,a.watch)(()=>D.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(U.value=r.t(e))},{immediate:!0,deep:!0});let K=null;(0,a.watch)(W,e=>{e&&K&&(clearTimeout(K),K=null),e||(K&&clearTimeout(K),K=setTimeout(()=>{U.value={},K=null},300))});let me=async()=>{if(V.value){H.value=!0;try{await V.value.validate()}catch{H.value=!1;return}try{await D.editStates.modalEdit.saveEdit(U.value)}finally{H.value=!1}}},he=()=>{U.value={},D.editStates.modalEdit.cancelEdit()},ge=e=>{A.handleColumnChange(e),u(`column-change`,A.reactiveColumns.value)},{edit:q,expand:J,selection:Y,dynamicRows:X}=D.stateManager,Z={startEdit:q.start,cancelEdit:q.cancel,saveEdit:q.save,expandRow:J.row,collapseRow:J.collapse,toggleExpand:J.toggle,expandAll:J.all,collapseAll:J.collapseAll,selectRow:e=>I.value?F.select(e):(Y.select(e),Y.isSelected(e)),unselectRow:e=>{I.value?F.unselect(e):Y.unselect(e)},selectAll:()=>{I.value?F.selectAll():Y.all()},clearSelection:R,isRowSelected:e=>I.value?F.isSelected(e):Y.isSelected(e),clearAllSelections:()=>{F.clearAll(),D.stateManager.clearAllSelections()},selectChildRow:D.stateManager.childSelection.select,unselectChildRow:D.stateManager.childSelection.unselect,selectAllChildren:D.stateManager.childSelection.selectAll,clearChildrenSelection:D.stateManager.childSelection.clear,getChildSelectedRows:D.stateManager.childSelection.getSelected,addRow:X.add,insertRow:X.insert,deleteRow:X.delete,copyRow:X.copy,moveRowUp:X.moveUp,moveRowDown:X.moveDown,clearRowSelection:X?.clearSelection,getSelectedRowData:X.getSelected,printTable:e=>X.print(e??z.value),downloadTableScreenshot:(e,t)=>X.download(e??z.value,t),resetToFirstPage:E.resetToFirstPage,getTotalPages:E.getTotalPages,getSelectedRows:()=>I.value?F.getSelectedRows():Y.getSelected(),getEditingData:q.getEditingData,isEditing:q.isEditing,isExpanded:J.isExpanded,getManager:()=>D.stateManager,exportData:ae,crossPageSelection:{enabled:I,selectedKeys:F.selectedKeys,selectedCount:F.selectedCount,select:F.select,unselect:F.unselect,selectAll:F.selectAll,clearAll:F.clearAll,getSelectedRows:F.getSelectedRows}};return s(Z),(0,a.onMounted)(()=>{let e=l.crud?.tableRef;e&&(e.value=Z),le(),z.value&&P.initRowDrag(z.value)}),(0,a.watch)([()=>g.value.enableColumnDrag,()=>g.value.columnDragHandleClass,()=>w.value,()=>N.value.length],async()=>{await(0,a.nextTick)(),await le()},{immediate:!0,flush:`post`}),(0,a.watch)([()=>g.value.rowDrag,()=>w.value,()=>E.paginatedData.value.length,()=>E.currentPage.value],async()=>{await(0,a.nextTick)(),z.value&&await P.initRowDrag(z.value)},{immediate:!0,deep:!0,flush:`post`}),(0,a.onBeforeUnmount)(()=>{K&&clearTimeout(K),ce(),P.destroyRowDrag()}),(e,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{ref_key:`tableWrapperRef`,ref:z,class:`c-table-wrapper`},[(0,a.createCommentVNode)(` 动态行工具栏 `),g.value.dynamicRows&&(0,a.unref)(D).dynamicRowsState?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)((0,a.unref)(D).dynamicRowsState.renderToolbar(z.value)),{key:0})):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 表格工具栏 `),g.value.showToolbar?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,mt,[(0,a.createElementVNode)(`div`,ht,[(0,a.renderSlot)(e.$slots,`toolbar-left`,{},void 0,!0)]),(0,a.createElementVNode)(`div`,gt,[(0,a.renderSlot)(e.$slots,`toolbar-right`,{},void 0,!0),g.value.exportConfig?((0,a.openBlock)(),(0,a.createBlock)(t.t,{key:0,name:`mdi:download`,size:`18`,title:(0,a.unref)(v)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:n[0]||=e=>ae()},null,8,[`title`])):(0,a.createCommentVNode)(`v-if`,!0),g.value.enableColumnSettings?((0,a.openBlock)(),(0,a.createBlock)(t.t,{key:1,name:`mdi:cog`,size:`18`,title:(0,a.unref)(v)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:n[1]||=e=>j.value=!0},null,8,[`title`])):(0,a.createCommentVNode)(`v-if`,!0)])])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 批量操作栏 `),g.value.batchActions?.enabled&&te.value>0?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,_t,[(0,a.createElementVNode)(`span`,vt,(0,a.toDisplayString)((0,a.unref)(v)(`table.selectedCount`,{count:te.value})),1),(0,a.createVNode)((0,a.unref)(o.NSpace),{size:8},{default:(0,a.withCtx)(()=>[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(g.value.batchActions.actions||[],e=>((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NButton),{key:e.key,type:e.type||`default`,size:`small`,loading:L.value.has(e.key),disabled:L.value.has(e.key),onClick:t=>ne(e)},(0,a.createSlots)({default:(0,a.withCtx)(()=>[(0,a.createTextVNode)(` `+(0,a.toDisplayString)(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:(0,a.withCtx)(()=>[(0,a.createVNode)(t.t,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`loading`,`disabled`,`onClick`]))),128)),(0,a.createVNode)((0,a.unref)(o.NButton),{size:`small`,onClick:R},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)((0,a.unref)(v)(`table.cancelSelection`)),1)]),_:1})]),_:1})])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 错误状态 `),g.value.error?.show?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,yt,[(0,a.renderSlot)(e.$slots,`error`,{error:g.value.error},()=>[(0,a.createElementVNode)(`div`,bt,[(0,a.createVNode)(t.t,{name:`mdi:alert-circle-outline`,size:`48`}),(0,a.createElementVNode)(`p`,xt,(0,a.toDisplayString)(g.value.error.message||(0,a.unref)(v)(`table.loadFailed`)),1),g.value.error.onRetry?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NButton),{key:0,type:`primary`,size:`small`,onClick:g.value.error.onRetry},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)((0,a.unref)(v)(`common.retry`)),1)]),_:1},8,[`onClick`])):(0,a.createCommentVNode)(`v-if`,!0)])],!0)])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 表格主体 `),g.value.error?.show?(0,a.createCommentVNode)(`v-if`,!0):((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NDataTable),(0,a.mergeProps)({key:4,ref_key:`tableRef`,ref:ue},{...de.value,...e.$attrs},{columns:(0,a.unref)(N),data:(0,a.unref)(E).paginatedData.value,loading:w.value,"row-key":p,"expanded-row-keys":(0,a.unref)(D).expandedKeys.value,"checked-row-keys":re.value??(0,a.unref)(D).checkedKeys.value,"onUpdate:expandedRowKeys":(0,a.unref)(D).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":ie,"scroll-x":(0,a.unref)(ee),"virtual-scroll":g.value.virtualScroll,"min-row-height":g.value.virtualScroll?g.value.virtualItemHeight:void 0,"max-height":g.value.virtualScroll?g.value.virtualMaxHeight:g.value.maxHeight,summary:oe.value,"summary-placement":g.value.summaryPosition,"children-key":g.value.treeEnabled?g.value.treeChildrenKey:void 0,indent:g.value.treeEnabled?g.value.treeIndent:void 0,"default-expand-all":g.value.treeEnabled?g.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),null,16,[`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,a.createCommentVNode)(` 分页 `),(0,a.unref)(E).paginationConfig.value?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NPagination),(0,a.mergeProps)({key:5},(0,a.unref)(E).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 编辑弹窗 `),g.value.editMode===`modal`||g.value.editMode===`both`?((0,a.openBlock)(),(0,a.createBlock)((0,a.unref)(o.NModal),{key:6,show:W.value,"onUpdate:show":n[3]||=e=>W.value=e,title:g.value.modalTitle,width:g.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NSpace),{justify:`end`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NButton),{onClick:he},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)((0,a.unref)(v)(`common.cancel`)),1)]),_:1}),(0,a.createVNode)((0,a.unref)(o.NButton),{type:`primary`,loading:H.value,onClick:me},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)((0,a.unref)(v)(`common.save`)),1)]),_:1},8,[`loading`])]),_:1})]),default:(0,a.withCtx)(()=>[W.value&&pe.value.length?((0,a.openBlock)(),(0,a.createBlock)(i.t,{ref_key:`editFormRef`,ref:V,key:fe.value,modelValue:U.value,"onUpdate:modelValue":n[2]||=e=>U.value=e,options:pe.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):(0,a.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 动态行确认删除弹窗 `),g.value.dynamicRows&&(0,a.unref)(D).dynamicRowsState?((0,a.openBlock)(),(0,a.createBlock)((0,a.resolveDynamicComponent)((0,a.unref)(D).dynamicRowsState.renderConfirmModal()),{key:7})):(0,a.createCommentVNode)(`v-if`,!0),(0,a.createCommentVNode)(` 列设置抽屉 `),(0,a.createVNode)((0,a.unref)(o.NDrawer),{show:(0,a.unref)(j),"onUpdate:show":n[4]||=e=>(0,a.isRef)(j)?j.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:(0,a.withCtx)(()=>[(0,a.createVNode)((0,a.unref)(o.NDrawerContent),{title:(0,a.unref)(v)(`table.columnSettings`),closable:``},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(ut,{columns:(0,a.unref)(M),"persist-key":g.value.persistKey,onChange:ge},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],512))}});var Ct=n.t(St,[[`__scopeId`,`data-v-eff47d90`]]);const wt=(e,t)=>Number.isFinite(e)?Math.max(1,Math.floor(e)):t;function Tt(e){let t=(0,a.shallowRef)([]),n=(0,a.ref)(!1),i=(0,a.shallowRef)(),o=(0,a.ref)(0),s=r.t(e.initialQuery),c=(0,a.ref)(wt(e.initialPage,1)),l=(0,a.ref)(wt(e.pageSize,20)),u=(0,a.shallowRef)(r.t(s)),d=0,f=null,p=async()=>{let a=++d;f?.abort(),f=new AbortController,n.value=!0,i.value=void 0;try{let n=await e.request({page:c.value,pageSize:l.value,query:r.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=r.t([...n.data]),o.value=Math.max(0,Math.floor(n.total)),e.onSuccess?.({data:t.value,total:o.value}),!0}catch(t){return a!==d||f.signal.aborted?!1:(i.value=t,e.onError?.(t),!1)}finally{a===d&&(n.value=!1)}},m=async(e,t=!0)=>(u.value=r.t(typeof e==`function`?e(u.value):{...u.value,...e}),c.value=1,t?p():!0),h=async(e,t)=>(c.value=wt(e,c.value),l.value=wt(t,l.value),p()),g=async(e=!0)=>(u.value=r.t(s),c.value=1,e?p():!0),_=(0,a.computed)(()=>{let r=(0,a.toValue)(e.config)??{},i=typeof r.pagination==`object`?r.pagination:{};return{data:t.value,loading:n.value,columns:(0,a.toValue)(e.columns),rowKey:e.rowKey??`id`,config:{...r,pagination:{...i,enabled:!0,remote:!0,page:c.value,pageSize:l.value,total:o.value}}}}),v=(0,a.computed)(()=>({..._.value,onPaginationChange:h})),y=()=>{d+=1,f?.abort(),f=null,n.value=!1};return e.immediate!==!1&&(0,a.onMounted)(()=>void p()),(0,a.onScopeDispose)(y),{data:t,loading:n,error:i,total:o,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 k}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return pt}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return ft}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return dt}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Tt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return ge}});
|