@robot-admin/naive-ui-components 0.13.6 → 0.13.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +37 -2
  3. package/README_EN.md +37 -2
  4. package/dist/C_Form.base.css +174 -169
  5. package/dist/C_Form.cjs +1 -1
  6. package/dist/C_Form.css +174 -169
  7. package/dist/C_Form.d.cts +2 -2
  8. package/dist/C_Form.d.ts +2 -2
  9. package/dist/C_Form.js +1 -1
  10. package/dist/C_Form2.cjs +1 -1
  11. package/dist/C_Form2.js +1 -1
  12. package/dist/C_FormModal.css +15 -15
  13. package/dist/C_FormModal2.cjs +1 -1
  14. package/dist/C_FormModal2.js +1 -1
  15. package/dist/C_Loading.css +54 -71
  16. package/dist/C_Loading2.cjs +1 -1
  17. package/dist/C_Loading2.js +1 -1
  18. package/dist/C_Table.base.css +340 -352
  19. package/dist/C_Table.css +340 -352
  20. package/dist/constants.d.cts +1 -1
  21. package/dist/constants.d.ts +1 -1
  22. package/dist/constants2.d.cts +3 -3
  23. package/dist/constants2.d.ts +3 -3
  24. package/dist/constants3.d.cts +5 -5
  25. package/dist/constants3.d.ts +5 -5
  26. package/dist/constants4.d.cts +4 -4
  27. package/dist/constants4.d.ts +4 -4
  28. package/dist/constants5.d.cts +2 -2
  29. package/dist/constants5.d.ts +2 -2
  30. package/dist/data.d.cts +9 -9
  31. package/dist/data.d.ts +9 -9
  32. package/dist/index.cjs +1 -1
  33. package/dist/index.d.cts +2 -2
  34. package/dist/index.d.ts +2 -2
  35. package/dist/index.js +1 -1
  36. package/dist/index.vue.d.cts +4 -4
  37. package/dist/index.vue.d.ts +4 -4
  38. package/dist/index10.vue.d.cts +4 -4
  39. package/dist/index10.vue.d.ts +2 -2
  40. package/dist/index11.vue.d.cts +2 -2
  41. package/dist/index11.vue.d.ts +5 -5
  42. package/dist/index12.vue.d.cts +5 -5
  43. package/dist/index12.vue.d.ts +1 -1
  44. package/dist/index13.vue.d.cts +1 -1
  45. package/dist/index13.vue.d.ts +3 -3
  46. package/dist/index14.vue.d.cts +3 -3
  47. package/dist/index14.vue.d.ts +3 -3
  48. package/dist/index15.vue.d.cts +3 -3
  49. package/dist/index17.vue.d.ts +1 -1
  50. package/dist/index18.vue.d.cts +1 -1
  51. package/dist/index18.vue.d.ts +3 -3
  52. package/dist/index19.vue.d.cts +3 -3
  53. package/dist/index19.vue.d.ts +1 -1
  54. package/dist/index2.vue.d.cts +1 -1
  55. package/dist/index2.vue.d.ts +1 -1
  56. package/dist/index20.vue.d.cts +1 -1
  57. package/dist/index20.vue.d.ts +1 -1
  58. package/dist/index21.vue.d.cts +3 -3
  59. package/dist/index21.vue.d.ts +3 -3
  60. package/dist/index22.vue.d.cts +2 -2
  61. package/dist/index22.vue.d.ts +2 -2
  62. package/dist/index23.vue.d.cts +2 -2
  63. package/dist/index23.vue.d.ts +2 -2
  64. package/dist/index25.vue.d.cts +2 -2
  65. package/dist/index25.vue.d.ts +2 -2
  66. package/dist/index27.vue.d.cts +3 -3
  67. package/dist/index27.vue.d.ts +3 -3
  68. package/dist/index28.vue.d.cts +3 -3
  69. package/dist/index28.vue.d.ts +3 -3
  70. package/dist/index3.vue.d.cts +3 -3
  71. package/dist/index3.vue.d.ts +3 -3
  72. package/dist/index4.vue.d.cts +1 -1
  73. package/dist/index6.vue.d.ts +3 -3
  74. package/dist/index7.vue.d.cts +3 -3
  75. package/dist/index8.vue.d.ts +3 -3
  76. package/dist/index9.vue.d.cts +3 -3
  77. package/dist/index9.vue.d.ts +4 -4
  78. package/dist/mapUtils.d.cts +1 -1
  79. package/dist/mapUtils.d.ts +1 -1
  80. package/dist/presets.d.cts +1 -1
  81. package/dist/presets.d.ts +1 -1
  82. package/dist/style.css +355 -367
  83. package/dist/useCollapsePanel.d.cts +2 -2
  84. package/dist/useCollapsePanel.d.ts +2 -2
  85. package/dist/useCropperCore.d.cts +9 -9
  86. package/dist/useCropperCore.d.ts +9 -9
  87. package/dist/useDraggableLayout.d.cts +8 -8
  88. package/dist/useDraggableLayout.d.ts +8 -8
  89. package/dist/useDynamicFormState.d.cts +25 -5
  90. package/dist/useDynamicFormState.d.ts +25 -5
  91. package/dist/useEdgeInteraction.d.cts +1 -1
  92. package/dist/useEdgeInteraction.d.ts +1 -1
  93. package/dist/useQRCode.d.cts +3 -3
  94. package/dist/useQRCode.d.ts +3 -3
  95. package/dist/useSearchState.d.cts +5 -5
  96. package/dist/useSearchState.d.ts +5 -5
  97. package/dist/useSignatureHistory.d.cts +4 -4
  98. package/dist/useSignatureHistory.d.ts +4 -4
  99. package/dist/useSplitResize.d.cts +3 -3
  100. package/dist/useSplitResize.d.ts +3 -3
  101. package/dist/useTableQuery.cjs +2 -2
  102. package/dist/useTableQuery.d.cts +6 -2
  103. package/dist/useTableQuery.d.ts +6 -2
  104. package/dist/useTableQuery.js +2 -2
  105. package/dist/useTimeSelection.d.cts +1 -1
  106. package/dist/useTimeSelection.d.ts +1 -1
  107. package/dist/useTreeOperations.d.cts +7 -7
  108. package/dist/useTreeOperations.d.ts +7 -7
  109. package/dist/useWorkflowValidation.d.cts +1 -1
  110. package/dist/useWorkflowValidation.d.ts +1 -1
  111. package/dist/verification.d.cts +3 -3
  112. package/dist/verification.d.ts +3 -3
  113. package/package.json +2 -1
@@ -66,24 +66,24 @@ type __VLS_Slots = {} & {
66
66
  second?: (props: typeof __VLS_13) => any;
67
67
  };
68
68
  declare const __VLS_base: vue.DefineComponent<Props, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
69
- resize: (firstSize: number, secondSize: number) => any;
70
69
  expand: (target: CollapseTarget) => any;
70
+ resize: (firstSize: number, secondSize: number) => any;
71
71
  collapse: (target: CollapseTarget) => any;
72
72
  "drag-start": (size: number) => any;
73
73
  "drag-end": (size: number) => any;
74
74
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
75
- onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
76
75
  onExpand?: ((target: CollapseTarget) => any) | undefined;
76
+ onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
77
77
  onCollapse?: ((target: CollapseTarget) => any) | undefined;
78
78
  "onDrag-start"?: ((size: number) => any) | undefined;
79
79
  "onDrag-end"?: ((size: number) => any) | undefined;
80
80
  }>, {
81
81
  disabled: boolean;
82
82
  direction: SplitDirection;
83
- collapsible: boolean;
84
83
  maxSize: number;
85
84
  defaultSize: number;
86
85
  minSize: number;
86
+ collapsible: boolean;
87
87
  showCollapseButton: boolean;
88
88
  gutterSize: number;
89
89
  step: number;
@@ -66,24 +66,24 @@ type __VLS_Slots = {} & {
66
66
  second?: (props: typeof __VLS_13) => any;
67
67
  };
68
68
  declare const __VLS_base: vue.DefineComponent<Props, SplitPaneExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
69
- resize: (firstSize: number, secondSize: number) => any;
70
69
  expand: (target: CollapseTarget) => any;
70
+ resize: (firstSize: number, secondSize: number) => any;
71
71
  collapse: (target: CollapseTarget) => any;
72
72
  "drag-start": (size: number) => any;
73
73
  "drag-end": (size: number) => any;
74
74
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
75
- onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
76
75
  onExpand?: ((target: CollapseTarget) => any) | undefined;
76
+ onResize?: ((firstSize: number, secondSize: number) => any) | undefined;
77
77
  onCollapse?: ((target: CollapseTarget) => any) | undefined;
78
78
  "onDrag-start"?: ((size: number) => any) | undefined;
79
79
  "onDrag-end"?: ((size: number) => any) | undefined;
80
80
  }>, {
81
81
  disabled: boolean;
82
82
  direction: SplitDirection;
83
- collapsible: boolean;
84
83
  maxSize: number;
85
84
  defaultSize: number;
86
85
  minSize: number;
86
+ collapsible: boolean;
87
87
  showCollapseButton: boolean;
88
88
  gutterSize: number;
89
89
  step: number;
@@ -1,3 +1,3 @@
1
- require(`./chunk.cjs`);const e=require(`./config.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./C_Loading2.cjs`),i=require(`./C_ActionBar2.cjs`),a=require(`./data.cjs`),o=require(`./C_Form2.cjs`);let s=require(`vue`),c=require(`naive-ui`);const l={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},u=e=>e===!1||e===void 0?l:e===!0?{editable:!0,editMode:`modal`,showRowActions:!0,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0}:{editable:e.enabled!==!1&&e.mode!==`none`,editMode:e.mode||`modal`,showRowActions:e.showRowActions!==!1&&e.mode!==`none`,modalTitle:e.modalTitle||`编辑数据`,modalWidth:e.modalWidth||600,onEditSave:e.onSave,onEditCancel:e.onCancel,onEditError:e.onError},d=e=>e?e===!0?{expandable:!0,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0}:{expandable:e.enabled!==!1,defaultExpandedKeys:e.defaultExpandedKeys,onLoadExpandData:e.onLoadData,onExpandError:e.onError,renderExpandContent:e.renderContent,rowExpandable:e.rowExpandable}:{expandable:!1,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0},f=e=>{if(!e)return{enableSelection:!1,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};if(e===!0)return{enableSelection:!0,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};let t=e.childSelection||{},n=e.parentChildLink||{};return{enableSelection:e.enabled!==!1,defaultCheckedKeys:e.defaultCheckedKeys,rowCheckable:e.rowCheckable,maxSelection:e.maxSelection,enableChildSelection:t.enabled||!1,childRowCheckable:t.childRowCheckable,enableParentChildLink:n.enabled||!1,parentChildLinkMode:n.mode||`loose`}},p=e=>{let t={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};return e===!1?{pagination:null}:e===!0||e===void 0?{pagination:t}:{pagination:{...t,...e}}},m=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},h={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function g(e){return e?{striped:e.striped??h.striped,bordered:e.bordered??h.bordered,singleLine:e.singleLine??h.singleLine,size:e.size??h.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??h.columnWidth}:{...h}}const _=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1,toolbarActions:e?.actions??[],toolbarRightActions:e?.rightActions??[],toolbarActionBarConfig:e?.actionBar??{}}),v=e=>e?e===!0?{virtualScroll:!0,virtualItemHeight:34,virtualMaxHeight:600}:{virtualScroll:e.enabled!==!1,virtualItemHeight:e.itemHeight??34,virtualMaxHeight:e.maxHeight??600}:{virtualScroll:!1,virtualItemHeight:34,virtualMaxHeight:600},y=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},b=e=>e?e===!0?{enableColumnDrag:!0,columnDragHandleClass:void 0,columnDragAnimationDuration:150}:{enableColumnDrag:e.enabled!==!1,columnDragHandleClass:e.handleClass,columnDragAnimationDuration:e.animationDuration??150}:{enableColumnDrag:!1,columnDragHandleClass:void 0,columnDragAnimationDuration:150},x=e=>e?e===!0?{treeEnabled:!0,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1}:{treeEnabled:e.enabled!==!1,treeChildrenKey:e.childrenKey??`children`,treeIndent:e.indent??16,treeDefaultExpandAll:e.defaultExpandAll??!1}:{treeEnabled:!1,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1},S=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},C=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function w(e={}){return{feedback:e.feedback,locale:e.locale,...u(e.edit),...d(e.expand),...f(e.selection),...p(e.pagination),...m(e.dynamicRows),...g(e.display),..._(e.toolbar),...v(e.virtualScroll),...y(e.summary),...b(e.columnDrag),...x(e.tree),...S(e.rowDrag),...C(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const T=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function E(e,t){return(typeof e.message==`function`?e.message():e.message)||t}function D(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function O(e){if(typeof e==`number`)return e;if(typeof e==`string`||Array.isArray(e))return e.length}function k(e,t){return e===!1?t:e instanceof Error?e.message||t:typeof e==`string`?e||t:Array.isArray(e)&&e.length>0?k(e[0],t):null}async function A(e,t,n,r){let i=E(e,`${n}校验失败`),a=e.transform?e.transform(t):t;if(e.required&&D(a))return E(e,`${n}不能为空`);if(!e.required&&D(a))return null;if(e.enum&&!e.enum.includes(a)||e.pattern&&!new RegExp(e.pattern).test(String(a)))return i;let o=O(a);if(e.len!==void 0&&o!==e.len||e.min!==void 0&&o!==void 0&&o<e.min||e.max!==void 0&&o!==void 0&&o>e.max)return i;let s,c=e=>{s=e};try{if(e.validator){let t=k(await e.validator(e,a,c,r,{}),i);if(t)return t}if(s||e.asyncValidator&&(await e.asyncValidator(e,a,c,r,{}),s))return k(s,i)}catch(e){return e instanceof Error&&e.message?e.message:i}return null}function j(e){let t=(0,s.ref)(null),n=(0,s.ref)({}),r=(0,s.ref)(!1),i=(0,s.ref)([]),o=e=>t.value===e,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=e=>{let o=c(e);return!o||r.value?!1:(t.value=e,n.value={[String(e)]:a.t(o)},i.value=[],!0)},u=async()=>{if(t.value===null||r.value)return;let i=e.data();if(!i||!Array.isArray(i))return;let a=i.findIndex(n=>e.rowKey(n)===t.value);a>-1&&await e.onCancel?.(i[a],a),t.value=null,n.value={}},d=async()=>{if(i.value=[],t.value===null)return!0;let r=e.columns?.()||[],a=n.value[String(t.value)];if(!a)return!0;let o=r.filter(e=>e.editable!==!1&&e.editProps?.rules?.length).map(e=>{let t=typeof e.key==`string`?e.key:``;if(!t)return null;let n=e.title||t,r=a[t];return Promise.all(e.editProps.rules.map(e=>A(e,r,n,a))).then(e=>{let n=e.find(Boolean);return n?{field:t,message:n}:null})}).filter(Boolean),s=(await Promise.all(o)).filter(Boolean);return i.value=s,s.length===0},f=async()=>{if(t.value===null||r.value||!await d())return;let i=t.value,o=e.data();if(!o||!Array.isArray(o))return;let s=o.findIndex(t=>e.rowKey(t)===i);if(s===-1)return;let c=n.value[String(i)];if(c){r.value=!0;try{await e.onSave?.(a.t(c),s),t.value=null,n.value={}}finally{r.value=!1}return{updatedData:c,rowIndex:s}}},p=e=>{if(t.value===e)return n.value[String(e)]};return{editingRowKey:t,editingData:n,isSaving:r,isEditingRow:o,startEditRow:l,cancelEditRow:u,saveEditRow:f,validateRow:d,validationErrors:i,getEditingRowData:p,updateEditingRowData:(e,t,n)=>{let r=p(e);r&&(r[t]=a.t(n))},findRowData:c}}function M(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function N(e){let t=(0,s.ref)({rowKey:null,columnKey:null}),n=(0,s.ref)({}),r=(0,s.ref)(!1),i=(0,s.ref)(null),o=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=(e,o)=>{let s=c(e);return!s||!o||r.value?!1:(t.value={rowKey:e,columnKey:o},n.value={[M(e,o)]:a.t(s[o])},i.value=null,!0)},u=async()=>{i.value=null;let{rowKey:r,columnKey:a}=t.value;if(r===null||a===null)return!0;let o=(e.columns?.()||[]).find(e=>e.key===a);if(!o||!o.editProps?.rules)return!0;let s=M(r,a),l=n.value[s],u=o.title||a,d={...c(r),[a]:l},f=(await Promise.all(o.editProps.rules.map(e=>A(e,l,u,d)))).find(Boolean);return f?(i.value=f,!1):!0};return{editingCell:t,editingData:n,isSaving:r,isEditingCell:o,startEditCell:l,saveEditCell:async()=>{let{rowKey:i,columnKey:o}=t.value;if(i===null||o===null||r.value||!await u())return;let s=e.data();if(!s||!Array.isArray(s))return;let c=s.findIndex(t=>e.rowKey(t)===i);if(c===-1)return;let l=M(i,o),d=n.value[l],f={...s[c],[o]:d};r.value=!0;try{await e.onSave?.(a.t(f),c,o),t.value={rowKey:null,columnKey:null},n.value={}}finally{r.value=!1}return{updatedData:f,rowIndex:c,columnKey:o}},cancelEditCell:()=>{let{rowKey:e,columnKey:a}=t.value;r.value||(e!==null&&a!==null&&delete n.value[M(e,a)],t.value={rowKey:null,columnKey:null},i.value=null)},validateCell:u,cellValidationError:i,getEditingCellValue:(e,t)=>n.value[M(e,t)],updateEditingCellValue:(e,t,r)=>{o(e,t)&&(n.value[M(e,t)]=a.t(r))},findRowData:c}}function ee(e){let t=(0,s.ref)(!1),n=(0,s.ref)(!1),r=(0,s.ref)(null),i=(0,s.ref)({}),o=(0,s.computed)(()=>{if(r.value===null)return-1;let t=e.data();return Array.isArray(t)?t.findIndex(t=>e.rowKey(t)===r.value):-1});return{isModalVisible:t,isSaving:n,editingData:i,editingRowKey:r,editingRowIndex:o,startEdit:(o,s)=>{if(n.value)return!1;let c=e.data();if(!Array.isArray(c))return!1;let l=c.findIndex(t=>e.rowKey(t)===o);return l===-1?!1:(r.value=o,i.value=a.t(s??c[l]),t.value=!0,!0)},saveEdit:async s=>{if(n.value||r.value===null)return;let c=o.value;if(c===-1)return;let l=a.t(s??i.value);n.value=!0;try{return await e.onSave?.(l,c),t.value=!1,r.value=null,i.value={},{updatedData:l,rowIndex:c}}finally{n.value=!1}},cancelEdit:async()=>{if(n.value)return!1;let a=o.value;try{if(r.value!==null&&a>-1){let t=e.data();t[a]&&await e.onCancel?.(t[a],a)}}finally{t.value=!1,r.value=null,i.value={}}return!0},updateEditingData:e=>n.value?!1:(i.value=a.t(e),!0),resetEditingState:()=>n.value?!1:(r.value=null,i.value={},!0),isEditingRow:e=>r.value===e&&t.value,getEditingRowData:e=>r.value===e?i.value:null}}const P=e=>({expandedKeys:(0,s.ref)([...e.defaultExpandedKeys||[]]),expandDataMap:(0,s.ref)(new Map),loadingMap:(0,s.ref)(new Map),checkedKeys:e.enableSelection?(0,s.ref)([...e.defaultCheckedKeys||[]]):(0,s.ref)([]),childSelections:(e.enableChildSelection,(0,s.ref)(new Map))}),F=e=>{let t=(0,s.computed)(()=>(0,s.unref)(e.data)),n=e.rowKey;return{data:t,getRowKey:n,getChildRowKey:e.childRowKey||(e=>e.id),findRow:e=>t.value.find(t=>n(t)===e),isRowExpandable:t=>e.rowExpandable?.(t)??!0,isRowCheckable:t=>e.rowCheckable?.(t)??!0,isChildRowCheckable:(t,n)=>e.childRowCheckable?.(t,n)??!0}},te=(e,t,n)=>{let r=new Map,i=0,a=new Set(n.defaultExpandedKeys||[]),o=async i=>{if(!n.onLoadData)return[];let a=t.getRowKey(i),o=e.expandDataMap.value.get(a);if(o)return o;let s=r.get(a);if(s)return s;e.loadingMap.value.set(a,!0);let c=(async()=>{try{let t=await n.onLoadData(i)||[];return e.expandDataMap.value.set(a,t),n.enableChildSelection&&!e.childSelections.value.has(a)&&e.childSelections.value.set(a,[]),t}catch(e){return n.onError?.(e,i),[]}finally{r.delete(a),e.loadingMap.value.set(a,!1)}})();return r.set(a,c),c};return{loadData:o,handleRowExpand:async(r,s)=>{let c=t.getRowKey(r);if(i+=1,s){if(a.add(c),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)}}}},ne=(e,t,n)=>{let r=(0,s.computed)(()=>t.data.value.filter(t.isRowCheckable));return{selectAll:()=>{if(!n.enableSelection)return;let i=r.value.map(t.getRowKey),a=n.maxSelection?i.slice(0,n.maxSelection):i;e.checkedKeys.value=a;let o=r.value.filter(e=>a.includes(t.getRowKey(e)));n.onSelectionChange?.(a,o,e.childSelections.value)},clearSelection:()=>{n.enableSelection&&(e.checkedKeys.value=[],n.onSelectionChange?.([],[],e.childSelections.value))},handleSelectionChange:i=>{if(!n.enableSelection)return;let a=new Set(r.value.map(e=>t.getRowKey(e))),o=[...new Set(i)].filter(e=>a.has(e)),s=n.maxSelection?o.slice(0,Math.max(0,n.maxSelection)):o;e.checkedKeys.value=s;let c=t.data.value.filter(e=>s.includes(t.getRowKey(e)));n.onSelectionChange?.(s,c,e.childSelections.value)},selectedRowsCount:(0,s.computed)(()=>e.checkedKeys.value.length),selectableRows:r}},re=(e,t)=>{let n=()=>!!(t.enableParentChildLink&&t.enableSelection&&t.enableChildSelection);return{handleParentChildLink:(r,i,a)=>{if(!n())return;let o=t.parentChildLinkMode===`strict`?i.length===a&&a>0:i.length>0,s=[...e.checkedKeys.value],c=s.includes(r);o&&!c?e.checkedKeys.value=[...s,r]:!o&&c&&(e.checkedKeys.value=s.filter(e=>e!==r))},isLinkEnabled:n}},ie=(e,t,n,r)=>({totalChildSelections:(0,s.computed)(()=>r.enableChildSelection?Array.from(e.childSelections.value.values()).reduce((e,t)=>e+t.length,0):0),clearAllSelections:()=>{e.checkedKeys.value=[],e.childSelections.value.clear(),r.onSelectionChange?.([],[],e.childSelections.value)},handleChildSelectionChange:(i,a)=>{if(!r.enableChildSelection)return;e.childSelections.value.set(i,a);let o=e.expandDataMap.value.get(i)||[],s=o.filter(e=>a.includes(t.getChildRowKey(e)));r.onChildSelectionChange?.(i,a,s),n.isLinkEnabled()&&n.handleParentChildLink(i,a,o.length)}}),I=(e,t,n,r,i)=>{if(!i.enableChildSelection)return;let a=t.childSelections.value.get(e)||[],o=t.expandDataMap.value.get(e)||[],s=n.findRow(e);if(!s)return;let c=o.filter(e=>n.isChildRowCheckable(e,s));return{selectedKeys:a,isAllChecked:c.length>0&&c.every(e=>a.includes(n.getChildRowKey(e))),selectAll:()=>{let t=c.map(e=>n.getChildRowKey(e));r.handleChildSelectionChange(e,t)},clearAll:()=>{r.handleChildSelectionChange(e,[])}}},L=()=>(0,s.h)(`div`,{class:`flex justify-center items-center py-8`},[(0,s.h)(c.NSpin,{size:`small`}),(0,s.h)(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),ae=()=>(0,s.h)(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),R=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,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}}))]},oe=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0}),o.push(...R(t)),(0,s.h)(`div`,{class:`p-4 bg-gray-50`},[(0,s.h)(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),(0,s.h)(c.NDataTable,{data:t,columns:o,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},se=(e,t,n,r,i)=>{let a=a=>{let o=t.getRowKey(a),c=e.expandDataMap.value.get(o)||[],l=e.loadingMap.value.get(o)||!1;!c.length&&!l&&e.expandedKeys.value.includes(o)&&(0,s.nextTick)(()=>{r.loadData(a)});let u=I(o,e,t,n,i);return i.renderContent?i.renderContent(a,c,l,u):l?L():c.length?oe(o,c,u,t,n,i):ae()};return{getTableColumns:e=>e.map(e=>e.type===`selection`&&i.enableSelection?{type:`selection`,disabled:e=>!t.isRowCheckable(e),multiple:!i.maxSelection||i.maxSelection>1}:e.type===`expand`&&(i.onLoadData||i.renderContent)?{type:`expand`,expandable:t.isRowExpandable,renderExpand:a}:e)}};function ce(e){let t=P(e),n=F(e),r=te(t,n,e),i=ne(t,n,e),a=ie(t,n,re(t,e),e),o=se(t,n,a,r,e);return e.onSelectionChange&&e.enableSelection&&(0,s.watchEffect)(()=>{if(!e.onSelectionChange)return;let r=n.data.value.filter(e=>t.checkedKeys.value.includes(n.getRowKey(e))),i=t.checkedKeys.value.length>0,a=n.data.value.length>0;(i||!a)&&e.onSelectionChange(t.checkedKeys.value,r,t.childSelections.value)}),e.defaultExpandedKeys?.length&&(0,s.nextTick)(async()=>{let i=e.defaultExpandedKeys||[];if(i.length===0)return;let a=i.map(async e=>{let i=n.findRow(e);i&&!t.expandDataMap.value.has(e)&&await r.loadData(i)});await Promise.allSettled(a)}),{expandedKeys:t.expandedKeys,checkedKeys:t.checkedKeys,childSelections:t.childSelections,selectedRowsCount:i.selectedRowsCount,totalChildSelections:a.totalChildSelections,expandAll:r.expandAll,collapseAll:r.collapseAll,expandRow:async e=>{if(t.expandedKeys.value.includes(e))return;let i=n.findRow(e);i&&await r.handleRowExpand(i,!0)},handleExpandChange:r.handleExpandChange,selectAll:i.selectAll,clearSelection:i.clearSelection,clearAllSelections:a.clearAllSelections,handleSelectionChange:i.handleSelectionChange,getTableColumns:o.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap}}const le={text:`Robot Admin`,textSize:16,textColor:`rgba(128, 128, 128, 0.3)`,font:`Microsoft JhengHei`,opacity:.3,rotate:-20,position:`repeat`,xGap:200,yGap:120},ue={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},de={orientation:`portrait`,paperSize:`A4`,margin:`10mm 10mm 0 10mm`,style:`@page { margin: 10mm 10mm 0 10mm; } @media print { body { margin: 0; } }`,header:``,footer:``,showModal:!1,modalMessage:`正在准备打印...`,onLoadingStart:()=>{},onLoadingEnd:()=>{},onPrintDialogClose:()=>{}};function z(e,t,n,r){e.save(),e.translate(t/2,n/2),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}function B(e,t,n,r){[[50,50],[t-50,50],[50,n-50],[t-50,n-50]].forEach(([t,n])=>{e.save(),e.translate(t,n),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()})}function fe(e,t,n,r){let i=Math.sqrt(t*t+n*n),a=t/2,o=n/2;e.save(),e.translate(a,o),e.rotate(Math.atan2(n,t));let s=Math.floor(i/r.xGap),c=-i/2;for(let t=0;t<=s;t++){let n=c+t*r.xGap;e.fillText(r.text,n,0)}e.restore()}function pe(e,t,n,r){let i=Math.ceil(t/r.xGap)+1,a=Math.ceil(n/r.yGap)+1;for(let t=0;t<a;t++)for(let n=0;n<i;n++){let i=n*r.xGap+r.xGap/2,a=t*r.yGap+r.yGap/2;e.save(),e.translate(i,a),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}}function V(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...le,...t},{width:i,height:a}=e;n.save(),n.globalAlpha=r.opacity,n.font=`${r.textSize}px ${r.font}`,n.fillStyle=r.textColor,n.textAlign=`center`,n.textBaseline=`middle`;let o={center:z,corner:B,diagonal:fe,repeat:pe};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function H(e,t={}){if(typeof window>`u`)throw Error(`截图功能仅支持浏览器环境`);let n={...ue,...t},{default:r}=await import(`html2canvas`);return await r(e,{logging:n.logging,scale:n.scale,allowTaint:n.allowTaint,useCORS:n.useCORS,backgroundColor:n.backgroundColor,onclone:e=>{let t=e.body;t.style.transform=`scale(1)`}})}function U(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function W(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=U(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function G(e,t={}){if(typeof window>`u`)throw Error(`打印功能仅支持浏览器环境`);let n={...de,...t},{default:r}=await import(`print-js`);return new Promise((t,i)=>{try{n.onLoadingStart?.(),r({printable:e,type:`image`,style:n.style,showModal:n.showModal,modalMessage:n.modalMessage,onLoadingEnd:n.onLoadingEnd,onPrintDialogClose:()=>{n.onPrintDialogClose?.(),t()}})}catch(e){i(e)}})}function K(e,t,n){let r=0,i=0;e.forEach(e=>{let{width:n,height:a}=e;t===`horizontal`?(r+=n,i=Math.max(i,a)):(r=Math.max(r,n),i+=a)});let a=(e.length-1)*n;return t===`horizontal`?r+=a:i+=a,{totalWidth:r,totalHeight:i}}function q(e,t){let{orientation:n,spacing:r,backgroundColor:i,totalWidth:a,totalHeight:o}=t,s=document.createElement(`canvas`);s.width=a,s.height=o;let c=s.getContext(`2d`);if(!c)throw Error(`无法创建画布上下文`);c.fillStyle=i,c.fillRect(0,0,a,o);let l=0,u=0;return e.forEach(e=>{c.drawImage(e,l,u),n===`horizontal`?l+=e.width+r:u+=e.height+r}),s}function me(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function he(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>H(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=K(s,i,a);return r(60),q(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function ge(e,t,n,r,i){r(70),t.watermark&&V(e,t.watermark),r(90),await G(U(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function J(){let t=e.r(),n=(0,s.ref)(!1),r=(0,s.ref)(0),i=e=>{r.value=Math.max(0,Math.min(100,e))},a=async(e,t={})=>{try{i(0),i(30);let n=await H(e,t.capture);i(60),t.watermark&&V(n,t.watermark),i(90);let r=U(n,t.capture?.format||`png`,t.capture?.quality||.92);return i(100),r}catch(e){throw Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},o=async(e,r={})=>{n.value=!0,i(0);try{await(0,s.nextTick)();let n=await a(e,r);i(95),await G(n,r.print),i(100),t.success(`打印完成`)}catch(e){throw t.error(`打印失败: ${e instanceof Error?e.message:`未知错误`}`,e),e}finally{n.value=!1,i(0)}},c=async(e,r,i={})=>{n.value=!0;try{await(0,s.nextTick)();let n=await H(e,i.capture);i.watermark&&V(n,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;W(n,r||o,a),t.success(`下载完成`)}catch(e){throw t.error(`下载失败`,e),e}finally{n.value=!1}},l=async(e,t=`Robot Admin`)=>o(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),u=async(e,t={})=>{let n=e.length;i(10);let r=e.map(async(e,r)=>{let o=await a(e,t);return i(10+(r+1)/n*70),o});return Promise.all(r)},d=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await G(r,t),i<e.length-1&&await new Promise(e=>{setTimeout(()=>e(),1e3)})},Promise.resolve())};return{loading:n,progress:r,captureWithWatermark:a,printWithWatermark:o,downloadScreenshot:c,quickPrint:l,batchCapture:u,batchPrint:async(e,r={})=>{if(!e.length){t.warning(`没有要打印的元素`);return}n.value=!0;try{i(0);let n=await u(e,r);i(80),await d(n,r.print),i(100),t.success(`批量打印完成,共 ${e.length} 个元素`)}catch(e){throw t.error(`批量打印失败`,e),e}finally{n.value=!1,i(0)}},mergePrint:async(e,r={},a={})=>{let o=me(e,a,t);if(o){n.value=!0;try{await ge(await he(e,r,o,i),r,e.length,i,t)}catch(e){throw t.error(`合并打印失败`,e),e}finally{n.value=!1,i(0)}}},createPreset:(e,t)=>({use:e=>o(e,t),download:(e,n)=>c(e,n,t)}),updateProgress:i,utils:{captureElement:H,drawWatermark:V,canvasToDataURL:U,downloadCanvas:W,printImage:G}}}const _e={table:{watermark:{text:`Robot Admin - 数据表格`,position:`repeat`,textColor:`rgba(100, 100, 100, 0.25)`,textSize:14,xGap:250,yGap:120},capture:{scale:1.2},print:{orientation:`landscape`,style:`@page { margin: 8mm; } body { font-family: Arial, sans-serif; }`}},form:{watermark:{text:`Robot Admin - 表单数据`,position:`diagonal`,textColor:`rgba(150, 150, 150, 0.2)`,textSize:16},print:{orientation:`portrait`}},report:{watermark:{text:`Robot Admin - 机密报告`,position:`center`,textColor:`rgba(200, 50, 50, 0.15)`,textSize:24},capture:{quality:.95,format:`png`}}};function ve(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function ye(e,t){return typeof t==`function`?t(e):e[t]}function Y(e,t){let n=e?.()||{},r=typeof t==`string`?t:`id`;return{...n,[r]:ve()}}function X(n,r={}){let i={enabled:!0,rowKey:`id`,enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0,confirmDelete:!0,deleteConfirmText:``,printPreset:`table`,printTargetSelector:`.c-table-wrapper`,defaultRowData:()=>({})},a=(0,s.reactive)({...i,...(0,s.toValue)(r)});(0,s.watch)(()=>(0,s.toValue)(r),e=>{let t=a;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,i,e)},{deep:!0});let o=e.r(()=>a.feedback),{t:l}=e.i(()=>a.locale),u=`c-table-radio-${ve()}`,d=(0,s.ref)(null),f=(0,s.ref)(!1),p=(0,s.computed)(()=>d.value===null?null:n.value.find(e=>ye(e,a.rowKey)===d.value)||null),m=(0,s.computed)(()=>p.value?n.value.findIndex(e=>e===p.value):-1),h=(0,s.computed)(()=>m.value>0),g=(0,s.computed)(()=>m.value>=0&&m.value<n.value.length-1),{loading:_,progress:v,printWithWatermark:y,downloadScreenshot:b,quickPrint:x}=J(),S=()=>{if(a.printOptions)return a.printOptions;let e=_e[a.printPreset||`table`];return a.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:a.printWatermarkText}}:e},C=e=>{a.onRowChange?.(e)},w=()=>{if(!a.enabled||!a.enableAdd)return;let e=Y(a.defaultRowData,a.rowKey);C([...n.value,e]),a.onRowAdd?.(e),o.success(l(`table.addRowSuccess`))},T=()=>{if(!a.enabled||!a.enableInsert||!p.value){o.warning(l(`table.selectRowFirst`));return}let e=Y(a.defaultRowData,a.rowKey),t=[...n.value];t.splice(m.value+1,0,e),C(t),a.onRowAdd?.(e),o.success(l(`table.insertRowSuccess`))},E=()=>{if(!a.enabled||!a.enableDelete||!p.value){o.warning(l(`table.selectDeleteRowFirst`));return}a.confirmDelete?f.value=!0:D()},D=()=>{if(!p.value)return;let e=p.value,t=m.value;C(n.value.filter((e,n)=>n!==t)),d.value=null,a.onSelectionChange?.(null,null),a.onRowDelete?.(e,t),o.success(l(`table.deleteRowSuccess`)),f.value=!1},O=()=>{if(!a.enabled||!a.enableCopy||!p.value){o.warning(l(`table.selectCopyRowFirst`));return}let e=p.value,t=typeof a.rowKey==`string`?a.rowKey:`id`,{[t]:r,...i}=e,s={...i,[t]:ve()};C([...n.value,s]),a.onRowCopy?.(e,s),o.success(l(`table.copyRowSuccess`))},k=()=>{if(!a.enabled||!a.enableMove||!h.value)return;let e=m.value,t=[...n.value],r=t[e];[t[e],t[e-1]]=[t[e-1],t[e]],C(t),a.onRowMove?.(r,e,e-1),o.success(l(`table.moveUpSuccess`))},A=()=>{if(!a.enabled||!a.enableMove||!g.value)return;let e=m.value,t=[...n.value],r=t[e];[t[e],t[e+1]]=[t[e+1],t[e]],C(t),a.onRowMove?.(r,e,e+1),o.success(l(`table.moveDownSuccess`))},j=e=>{if(!a.enabled)return;let t=n.value.find(t=>ye(t,a.rowKey)===e);t&&(d.value=e,a.onSelectionChange?.(e,t))},M=()=>{d.value=null,a.onSelectionChange?.(null,null)},N=async e=>{if(!e.value){o.error(l(`table.printTargetMissing`));return}let t=S();await y(e.value,t)};return(0,s.onBeforeUnmount)(()=>{d.value=null,f.value=!1}),{selectedRowKey:d,selectedRowData:p,selectedRowIndex:m,canMoveUp:h,canMoveDown:g,deleteConfirmVisible:f,printLoading:_,printProgress:v,addRow:w,insertRow:T,deleteRow:E,confirmDelete:D,copyRow:O,moveRowUp:k,moveRowDown:A,selectRow:j,clearSelection:M,handlePrint:N,handleDownload:async(e,t)=>{if(!e.value){o.error(l(`table.downloadTargetMissing`));return}let n=S();await b(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){o.error(l(`table.printTargetMissing`));return}let t=a.printWatermarkText||`Robot Admin`;await x(e.value,t)},enhanceColumns:e=>{if(!a.enabled)return e;let t=[...e];return a.enabled&&a.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:l(`common.select`),width:80,align:`center`,editable:!1,render:e=>{let t=ye(e,a.rowKey);return(0,s.h)(`div`,{class:`flex justify-center`},[(0,s.h)(`input`,{type:`radio`,name:u,"aria-label":l(`common.select`),checked:d.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&j(t)}})])}}),t},renderToolbar:e=>{if(!a.enabled)return null;let n=[];a.enablePrint&&n.push((0,s.h)(c.NButton,{loading:_.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(a.printTargetSelector);t?await N((0,s.shallowRef)(t)):o.warning(l(`table.printTargetMissing`))}catch(e){o.error(l(`table.printTargetMissing`),e)}}},{icon:()=>(0,s.h)(t.t,{name:`mdi:printer`,title:l(`common.print`)}),default:()=>l(`common.print`)}));let r=[];return a.enableAdd&&r.push((0,s.h)(c.NButton,{onClick:w,type:`primary`},{icon:()=>(0,s.h)(t.t,{name:`mdi:plus`,title:l(`table.addRow`)}),default:()=>l(`table.addRow`)})),a.enableInsert&&r.push((0,s.h)(c.NTooltip,{disabled:!!p.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:T,disabled:!p.value,type:`primary`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:table-row-plus-after`,title:l(`table.insertRow`)}),default:()=>l(`table.insertRow`)}),default:()=>l(`table.selectRowFirst`)})),a.enableDelete&&r.push((0,s.h)(c.NTooltip,{disabled:!!p.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:E,disabled:!p.value,type:`error`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:delete`,title:l(`table.deleteRow`)}),default:()=>l(`table.deleteRow`)}),default:()=>l(`table.selectDeleteRowFirst`)})),a.enableCopy&&r.push((0,s.h)(c.NTooltip,{disabled:!!p.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:O,disabled:!p.value,type:`info`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:content-copy`,title:l(`table.copyRow`)}),default:()=>l(`table.copyRow`)}),default:()=>l(`table.selectCopyRowFirst`)})),a.enableMove&&r.push((0,s.h)(c.NTooltip,{disabled:h.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:k,disabled:!h.value,type:`warning`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:arrow-up`,title:l(`table.moveUp`)}),default:()=>l(`table.moveUp`)}),default:()=>p.value?l(`table.firstRow`):l(`table.selectRowFirst`)}),(0,s.h)(c.NTooltip,{disabled:g.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:A,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:arrow-down`,title:l(`table.moveDown`)}),default:()=>l(`table.moveDown`)}),default:()=>p.value?l(`table.lastRow`):l(`table.selectRowFirst`)})),r.length>0&&n.push((0,s.h)(c.NButtonGroup,{},()=>r)),(0,s.h)(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[(0,s.h)(c.NSpace,{},()=>n)])},renderConfirmModal:()=>(0,s.h)(c.NModal,{show:f.value,"onUpdate:show":e=>{f.value=e},preset:`dialog`,title:l(`table.deleteTitle`),content:a.deleteConfirmText||l(`table.deleteRowContent`),positiveText:l(`table.confirmDeleteRow`),negativeText:l(`common.cancel`),onPositiveClick:D})}}function be(t){let{data:n,rowKey:r,emit:i}=t,a=()=>(0,s.toValue)(t.config),o=e.r(()=>a().feedback),{t:c}=e.i(()=>a().locale),l={onSave:async(e,t,r)=>{if(!e||t<0||t>=n().length)return;let o=[...n()];o[t]={...o[t],...e};try{await a().onEditSave?.(o[t],t,r),await i(`save`,o[t],t,r),i(`update:data`,o)}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},onCancel:async(e,t)=>{try{await a().onEditCancel?.(e,t),await i(`cancel`,e,t)}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},onExpandChange:(e,t,n)=>{i(`expand-change`,e,t,n)},onSelectionChange:(e,t,n)=>{i(`selection-change`,e,t,n)},onChildSelectionChange:(e,t,n)=>{i(`child-selection-change`,e,t,n)},onRowChange:e=>{i(`update:data`,e),a().dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,t)=>{i(`row-selection-change`,e,t),a().dynamicRows?.onSelectionChange?.(e,t)},onRowAdd:e=>{i(`row-add`,e),a().dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,t)=>{i(`row-delete`,e,t),a().dynamicRows?.onRowDelete?.(e,t)},onRowCopy:(e,t)=>{i(`row-copy`,e,t),a().dynamicRows?.onRowCopy?.(e,t)},onRowMove:(e,t,n)=>{i(`row-move`,e,t,n),a().dynamicRows?.onRowMove?.(e,t,n)}},u=()=>({rowEdit:j({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel,columns:t.columns}),cellEdit:N({data:n,rowKey:r,onSave:l.onSave,columns:t.columns}),modalEdit:ee({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel})}),d=()=>ce({data:(0,s.computed)(()=>n()),rowKey:r,childRowKey:e=>e.id,get defaultExpandedKeys(){return a().defaultExpandedKeys},get onLoadData(){return a().onLoadExpandData},onError:(e,t)=>{let n=a().onExpandError;n?n(e,t):o.error(c(`table.loadFailed`),e)},get renderContent(){return a().renderExpandContent},get rowExpandable(){return a().rowExpandable},get enableSelection(){return a().enableSelection},get defaultCheckedKeys(){return a().defaultCheckedKeys},get rowCheckable(){return a().rowCheckable},get maxSelection(){return a().maxSelection},get enableChildSelection(){return a().enableChildSelection},get childRowCheckable(){return a().childRowCheckable},get enableParentChildLink(){return a().enableParentChildLink},get parentChildLinkMode(){return a().parentChildLinkMode},onExpandChange:l.onExpandChange,onSelectionChange:l.onSelectionChange,onChildSelectionChange:l.onChildSelectionChange}),f=()=>X((0,s.computed)(()=>n()),(0,s.computed)(()=>({...a().dynamicRows,enabled:!!a().dynamicRows,feedback:a().feedback,locale:a().locale,onRowChange:l.onRowChange,onSelectionChange:l.onRowSelectionChange,onRowAdd:l.onRowAdd,onRowDelete:l.onRowDelete,onRowCopy:l.onRowCopy,onRowMove:l.onRowMove}))),p=u(),m=d(),h=f();return{editStates:p,expandState:m,dynamicRowsState:h,stateManager:{edit:{start(e,t){let n=a().editMode;n===`modal`?p.modalEdit.startEdit(e):n===`cell`&&t?p.cellEdit.startEditCell(e,t):(n===`row`||n===`both`)&&p.rowEdit.startEditRow(e)},cancel(){p.modalEdit.isModalVisible.value?p.modalEdit.cancelEdit():p.cellEdit.editingCell.value.rowKey===null?p.rowEdit.editingRowKey.value!==null&&p.rowEdit.cancelEditRow():p.cellEdit.cancelEditCell()},async save(){p.modalEdit.isModalVisible.value?await p.modalEdit.saveEdit():p.cellEdit.editingCell.value.rowKey===null?p.rowEdit.editingRowKey.value!==null&&await p.rowEdit.saveEditRow():await p.cellEdit.saveEditCell()},isEditing(e,t){return a().editMode===`modal`?p.modalEdit.isEditingRow(e):t?p.cellEdit.isEditingCell(e,t):p.rowEdit.isEditingRow(e)},getEditingData(){return p.modalEdit.isModalVisible.value?p.modalEdit.editingData.value:p.rowEdit.editingRowKey.value===null?null:p.rowEdit.getEditingRowData(p.rowEdit.editingRowKey.value)}},expand:{async row(e){if(m){let t=[...m.expandedKeys.value];t.includes(e)||(t.push(e),m.handleExpandChange(t))}},collapse(e){if(m){let t=m.expandedKeys.value.filter(t=>t!==e);m.handleExpandChange(t)}},async toggle(e){m?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await m?.expandAll()},collapseAll(){m?.collapseAll()},isExpanded(e){return m?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(m?.checkedKeys.value&&!m.checkedKeys.value.includes(e)){let t=[...m.checkedKeys.value,e];m.handleSelectionChange(t)}},unselect(e){if(m?.checkedKeys.value){let t=m.checkedKeys.value.filter(t=>t!==e);m.handleSelectionChange(t)}},all(){m?.selectAll()},clear(){m?.clearSelection()},isSelected(e){return m?.checkedKeys.value.includes(e)??!1},getSelected(){return m?.checkedKeys.value?n().filter(e=>m.checkedKeys.value.includes(r(e))):[]}},childSelection:{select(e,t){if(m?.childSelections.value){let n=m.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];m.childSelections.value.set(e,r),i(`child-selection-change`,e,r,[])}}},unselect(e,t){if(m?.childSelections.value){let n=(m.childSelections.value.get(e)||[]).filter(e=>e!==t);m.childSelections.value.set(e,n),i(`child-selection-change`,e,n,[])}},selectAll(e){if(m?.childSelections.value&&m.expandDataMap?.value){let t=m.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);m.childSelections.value.set(e,n),i(`child-selection-change`,e,n,t)}},clear(e){m?.childSelections.value&&(m.childSelections.value.set(e,[]),i(`child-selection-change`,e,[],[]))},getSelected(e){if(!m?.childSelections.value||!m.expandDataMap?.value)return[];let t=m.childSelections.value.get(e)||[];return(m.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){h?.addRow()},insert(){h?.insertRow()},delete(){h?.deleteRow()},copy(){h?.copyRow()},moveUp(){h?.moveRowUp()},moveDown(){h?.moveRowDown()},clearSelection(){h?.clearSelection()},getSelected(){return h?.selectedRowData.value||null},async print(e){h&&e&&await h.handlePrint((0,s.shallowRef)(e))},async download(e,t){h&&e&&await h.handleDownload((0,s.shallowRef)(e),t)}},clearAllSelections(){m?.clearAllSelections()}},expandedKeys:(0,s.computed)(()=>m?.expandedKeys.value??[]),checkedKeys:(0,s.computed)(()=>m?.checkedKeys.value??[]),eventHandlers:l}}const Z={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function Q(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function xe(e){let{data:t,config:n,emit:r}=e,i=(0,s.ref)(Z.page),a=(0,s.ref)(Z.pageSize),o=(0,s.computed)(()=>{let e=typeof t==`function`?t():(0,s.unref)(t);return Array.isArray(e)?e:[]}),c=(0,s.computed)(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??o.value.length)):o.value.length}),l=()=>n.value?.enabled?Math.max(1,Math.ceil(c.value/a.value)):1,u=(e,t)=>{let n=Math.min(Q(e,1),l());i.value!==n&&(i.value=n,t&&r?.(`pagination-change`,n,a.value))},d=e=>u(e,!0),f=e=>{let t=Q(e,Z.pageSize),n=a.value!==t;a.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},p=()=>u(1,!0),m=(0,s.computed)(()=>{let e=n.value;if(!e?.enabled||e.remote)return o.value;let t=(i.value-1)*a.value;return o.value.slice(t,t+a.value)}),h=(0,s.computed)(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:a.value,itemCount:c.value,showSizePicker:e.showSizePicker??Z.showSizePicker,showQuickJumper:e.showQuickJumper??Z.showQuickJumper,pageSizes:e.pageSizes??Z.pageSizes,simple:e.simple??Z.simple,size:e.size??Z.size,prefix:e=>`共 ${e.itemCount??0} 条`,suffix:e=>(e.itemCount??0)>0?`第 ${e.startIndex+1}-${e.endIndex} 条`:`暂无数据`,"onUpdate:page":d,"onUpdate:pageSize":f}:null});return(0,s.watch)(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{a.value=Q(t,Z.pageSize),i.value=Math.min(Q(e,Z.page),l())},{immediate:!0}),(0,s.watch)([c,a],()=>{let e=Math.min(i.value,l());e!==i.value&&(i.value=e,r?.(`pagination-change`,e,a.value))}),{currentPage:i,currentPageSize:a,paginatedData:m,paginationConfig:h,handlePageChange:d,handlePageSizeChange:f,resetToFirstPage:p,getTotalPages:l}}const Se=e=>e&&typeof e==`object`&&`error`in e?e.error:null;function Ce(n){let{actions:r,config:i,tableManager:a,rowKey:o,onRowDeleted:l,onViewDetail:u,isDeleteFeedbackHandled:d}=n,f=e.r(()=>i.value.feedback),{t:p}=e.i(()=>i.value.locale),m=e=>e===`edit`?i.value.editable&&r.value?.edit!==!1:typeof r.value?.[e]==`function`,h=e=>e!==!1&&typeof e==`function`,g=e=>e&&typeof e==`object`&&`data`in e?e.data:e,_=(e,n,r=`primary`,i)=>(0,s.h)(c.NButton,{size:`small`,type:r,quaternary:!0,onClick:i},()=>[(0,s.h)(t.t,{name:e,size:14,title:n})]),v=async(e,t)=>{let n=o(e),s=r.value?.edit;if(h(s)){try{await s(e,t)}catch(e){f.error(p(`table.actionFailed`,{action:p(`common.edit`)}),e)}return}i.value.editMode===`modal`?a.editStates.modalEdit.startEdit(n,{...e}):a.editStates.rowEdit.startEditRow(n)},y=async(e,t,n)=>{let r=d?.(e)===!0;try{let i=Se(await e(t,n));if(i!=null){r||f.error(p(`table.deleteFailed`),i);return}r||f.success(p(`table.deleteSuccess`)),l?.(t,n)}catch(e){throw r||f.error(p(`table.deleteFailed`),e),e}},b=async(e,t)=>{let n=r.value?.delete;h(n)&&await f.confirm({title:p(`table.deleteTitle`),content:p(`table.deleteContent`),positiveText:p(`common.confirm`),negativeText:p(`common.cancel`),type:`warning`})&&await y(n,e,t)},x=async(e,t)=>{let n=r.value?.detail;if(!h(n)){u?.(e);return}try{let r=g(await n(e,t));u?.(r||e)}catch(t){f.error(p(`table.detailFailed`),t),u?.(e)}},S=e=>a.editStates.rowEdit.isEditingRow(e)?[_(`mdi:check`,p(`common.save`),`primary`,()=>void a.editStates.rowEdit.saveEditRow().catch(e=>f.error(p(`table.actionFailed`,{action:p(`common.save`)}),e))),_(`mdi:close`,p(`common.cancel`),`default`,()=>a.editStates.rowEdit.cancelEditRow())]:[_(`mdi:pencil`,p(`common.edit`),`warning`,()=>a.editStates.rowEdit.startEditRow(e))],C=(e,t)=>{let n=[];return m(`detail`)&&n.push(_(`mdi:eye`,p(`common.detail`),`info`,()=>void x(e,t))),m(`edit`)&&(i.value.editMode===`modal`||h(r.value?.edit))&&n.push(_(`mdi:pencil`,p(`common.edit`),`warning`,()=>void v(e,t))),m(`delete`)&&n.push(_(`mdi:delete`,p(`common.delete`),`error`,()=>void b(e,t).catch(()=>void 0))),n},w=(e,n)=>{let i=r.value?.custom;if(!i?.length)return null;let a=i.filter(t=>t.show?t.show(e,n):!0);return a.length?(0,s.h)(c.NDropdown,{options:a.map(r=>{let i=typeof r.label==`function`?r.label(e,n):r.label,a=typeof r.icon==`function`?r.icon(e,n):r.icon;return{label:i,key:r.key,icon:()=>(0,s.h)(t.t,{name:a,size:14}),disabled:r.disabled?.(e,n)||!1}}),onSelect:t=>{let r=a.find(e=>e.key===t);if(!r)return;let i=typeof r.label==`function`?r.label(e,n):r.label;Promise.resolve(r.onClick(e,n)).catch(e=>f.error(p(`table.actionFailed`,{action:i}),e))}},()=>_(`mdi:dots-horizontal`,p(`table.moreActions`),`default`,()=>{})):null};return{renderActions:(e,t)=>{if(r.value?.render)return r.value.render(e,t);let n=o(e),l=[`row`,`both`].includes(i.value.editMode);if(l&&a.editStates.rowEdit.isEditingRow(n))return(0,s.h)(c.NSpace,{size:2,wrap:!1},()=>S(n));let u=h(r.value?.edit),d=[...l&&!u?S(n):[],...C(e,t)],f=w(e,t);return f&&d.push(f),(0,s.h)(c.NSpace,{size:2,wrap:!1},()=>d)},isActionEnabled:m}}const we=Symbol(`C_TABLE_GLOBAL_CONFIG`),Te={date:{format:`YYYY-MM-DD`},datetime:{format:`YYYY-MM-DD HH:mm:ss`},currency:{prefix:`¥`,precision:2},percent:{precision:2,suffix:`%`},number:{precision:0}};function Ee(e,t){if(e==null||e===``)return`-`;let n=new Date(typeof e==`number`?e:String(e));if(Number.isNaN(n.getTime()))return String(e);let r=e=>String(e).padStart(2,`0`);return t.replace(`YYYY`,String(n.getFullYear())).replace(`MM`,r(n.getMonth()+1)).replace(`DD`,r(n.getDate())).replace(`HH`,r(n.getHours())).replace(`mm`,r(n.getMinutes())).replace(`ss`,r(n.getSeconds()))}function De(e,t){if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):n.toLocaleString(`zh-CN`,{minimumFractionDigits:t,maximumFractionDigits:t})}const Oe={date:(e,t)=>Ee(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>Ee(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=De(e,t.precision??2);return n===`-`?`-`:`${t.prefix??`¥`}${n}${t.suffix??``}`},percent:(e,t)=>{if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):`${(n*100).toFixed(t.precision??2)}${t.suffix??`%`}`},number:(e,t)=>De(e,t.precision??0)};function ke(e,t,n,r){if(n.fn)return n.fn(e,t);if(n.type===`enum`)return n.mapping?n.mapping[String(e)]??String(e??`-`):String(e??`-`);let i=n.type&&Oe[n.type];return i?i(e,{...{...Te,...r}[n.type],...n.config}):String(e??`-`)}function Ae(){return(0,s.getCurrentInstance)()?(0,s.inject)(we,{}):{}}const je=(e,t)=>t===void 0?e:t&&e&&typeof t==`object`&&typeof e==`object`&&!Array.isArray(t)&&!Array.isArray(e)?{...e,...t}:t;function Me(e,t){let n=t.defaults??{},r={...n,...e};if([`edit`,`pagination`,`expand`,`selection`,`dynamicRows`,`toolbar`,`display`,`virtualScroll`,`summary`,`columnDrag`,`tree`,`rowDrag`,`crossPageSelection`,`export`,`formatterConfig`,`error`,`batchActions`].forEach(t=>{let i=je(n[t],e[t]);i!==void 0&&(r[t]=i)}),t.display){let e=typeof r.display==`object`?r.display:{};r.display={...t.display,...e}}if(t.pageSize&&r.pagination!==!1){let e=typeof r.pagination==`object`?r.pagination:{};e.pageSize||(r.pagination={...e,pageSize:t.pageSize})}return r}const Ne={number:c.NInputNumber,switch:c.NSwitch,input:c.NInput,email:c.NInput,mobile:c.NInput,date:e=>(0,s.h)(c.NDatePicker,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>(0,s.h)(c.NSelect,{...e,options:e.options||[]}),textarea:e=>(0,s.h)(c.NInput,{...e,type:`textarea`,rows:3})},Pe={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Fe=e=>e.map(e=>{let t=e.required?[{required:!0,message:`请输入${e.title}`,trigger:[`blur`,`input`],validator:async(t,n)=>{if(!n&&n!==0&&n!==!1)throw Error(`请输入${e.title}`)}}]:[];return{prop:e.key,label:e.title||e.key,type:Pe[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function Ie(e,t,n){if(e.editRender)return e.editRender(t,{},0);let r=e,i={value:t,"onUpdate:value":n,placeholder:`请输入${r.title??``}`,style:{width:`100%`},...e.editProps};return(0,s.h)(Ne[e.editType||`input`]||Ne.input,i)}function Le(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?ke(r,t,e.formatter,i):String(r??``)}function Re(e,n,r,i,a){let o=(e,n,r)=>(0,s.h)(`button`,{class:`cell-action-btn cell-action-${e}`,title:n,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[(0,s.h)(t.t,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return(0,s.h)(`div`,{class:`cell-editing-container`},[(0,s.h)(`div`,{class:`cell-editing-input`},[Ie(e,n,r)]),(0,s.h)(`div`,{class:`cell-editing-actions`},[o(`save`,`保存`,i),o(`cancel`,`取消`,a)])])}function ze(e,n,r,i,a,o){let c;return c=e.render?e.render(n,r)??String(i??``):e.formatter?ke(i,n,e.formatter,o):String(i??``),(0,s.h)(`div`,{class:`cell-edit-wrapper`},[(0,s.h)(`span`,{class:`cell-value`},c),(0,s.h)(t.t,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function Be(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:o,editModeChecker:c,showActionsColumn:l}=e,u=(0,s.ref)([]),d=(0,s.ref)(!1),f=e=>{let t=u.value.find(e=>e.key===`_actions`),n=e.filter(e=>e.key!==`_actions`);u.value=l.value?[...n,t||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]:n};(0,s.watch)([t,l],([e])=>{e?.length?f(e):u.value=[]},{deep:!0,immediate:!0});let p=(e,t,r,i)=>{let o=e.key??``,s=t[o],{isEditingCell:c,getEditingCellValue:l,updateEditingCellValue:u,saveEditCell:d,cancelEditCell:f,startEditCell:p}=a.editStates.cellEdit;return c(i,o)?Re(e,l(i,o)??s,e=>u(i,o,e),()=>d(),()=>f()):ze(e,t,r,s,()=>p(i,o),n.value.formatterConfig)},m=(e,t,r)=>{let o=e.key??``,s=t[o],l=i(t),u=c.value;return u.isNonEditable(e)?Le(e,t,r,s,n.value.formatterConfig):u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)?Ie(e,a.editStates.rowEdit.getEditingRowData(l)?.[o]??s,e=>a.editStates.rowEdit.updateEditingRowData(l,o,e)):u.isCellEditMode()?p(e,t,r,l):Le(e,t,r,s,n.value.formatterConfig)},h=e=>{let t=e.width||r||180;return typeof t==`number`?t:180},g=e=>{let t=e;return{key:`_index`,title:t.title||`序号`,width:typeof(t.width||50)==`number`&&t.width||50,titleAlign:`center`,align:`center`,render:(e,t)=>t+1,fixed:e.fixed}},_=e=>{let t=e,n={...t,width:h(e),titleAlign:t.titleAlign||`center`,align:t.align||`center`,render:e.render||((t,n)=>m(e,t,n))};return e.fixed&&(n.fixed=e.fixed),e.resizable&&typeof n.width==`number`&&(n.resizable=!0,n.minWidth=e.minWidth||80,n.maxWidth=e.maxWidth||500),n};return{reactiveColumns:u,showSettingsPanel:d,computedColumns:(0,s.computed)(()=>{let e=u.value.filter(e=>{let t=e;return t.visible!==!1&&t.key!==`_actions`}).map(e=>e.type===`index`?g(e):_(e));if(a.dynamicRowsState&&(e=a.dynamicRowsState.enhanceColumns(e)),a.expandState&&(n.value.expandable||n.value.enableSelection)&&(e=a.expandState.getTableColumns(e)),l.value){let t=u.value.find(e=>e.key===`_actions`);e.push({key:`_actions`,title:`操作`,width:t?.width??180,className:`c-table-actions-column`,align:`center`,titleAlign:`center`,render:o,fixed:t?.fixed})}return e}),computedScrollX:(0,s.computed)(()=>{if(e.scrollX!==void 0)return e.scrollX;if(u.value.some(e=>{let t=e;return t.fixed&&t.visible!==!1}))return u.value.filter(e=>e.visible!==!1).reduce((e,t)=>e+h(t),0)+200}),handleColumnChange:e=>{u.value=e.map(e=>{let t=e;return{...e,visible:t.visible!==!1,fixed:e.fixed,width:t.width||r,align:t.align||`center`,titleAlign:t.titleAlign||`center`}})}}}function Ve(e){let{data:t,onReorder:n,onSort:r}=e,i=(0,s.ref)(!1),a=null,o=0,c=!1,l=()=>{a?.destroy(),a=null,i.value=!1},u=async u=>{let d=++o;l();let f=(0,s.toValue)(e.config);if(!(!f?.enabled||!u||c))try{let{default:e}=await import(`sortablejs`);if(c||d!==o)return;let s=u.querySelector(`.n-data-table-tbody`);if(!s)return;a=new e(s,{animation:f.animationDuration??150,handle:f.handleSelector,ghostClass:f.ghostClass??`row-drag-ghost`,chosenClass:f.chosenClass??`row-drag-chosen`,onStart:()=>{i.value=!0},onEnd:e=>{if(i.value=!1,e.oldIndex==null||e.newIndex==null||e.oldIndex===e.newIndex)return;let a=[...t.value],[o]=a.splice(e.oldIndex,1);o&&(a.splice(e.newIndex,0,o),n?.(a),r?.(o,e.oldIndex,e.newIndex))}})}catch{}},d=()=>{o+=1,l()};return(0,s.onBeforeUnmount)(()=>{c=!0,d()}),{initRowDrag:u,destroyRowDrag:d,isDragging:i}}function He(e){let{allData:t,rowKey:n}=e,r=(0,s.ref)(new Set),i=()=>{let t=(0,s.toValue)(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},a=(0,s.computed)(()=>r.value.size),o=e=>e.map(e=>n(e)).filter(e=>r.value.has(e)),c=(t,a)=>{if(!(0,s.toValue)(e.config)?.enabled)return;let o=new Set(r.value);for(let e of a)o.delete(n(e));for(let e of t){let t=i();if(t&&o.size>=t)break;o.add(e)}r.value=o},l=()=>{if(!(0,s.toValue)(e.config)?.enabled)return;let a=[...new Set(t.value.map(e=>n(e)))],o=i();r.value=new Set(o?a.slice(0,o):a)},u=a=>{if(!(0,s.toValue)(e.config)?.enabled||!t.value.some(e=>n(e)===a))return!1;if(r.value.has(a))return!0;let o=i();return o&&r.value.size>=o?!1:(r.value=new Set([...r.value,a]),!0)},d=e=>{if(!r.value.has(e))return;let t=new Set(r.value);t.delete(e),r.value=t},f=()=>{r.value=new Set};return(0,s.watch)(t,e=>{let t=new Set(e.map(e=>n(e))),i=new Set([...r.value].filter(e=>t.has(e)));i.size!==r.value.size&&(r.value=i)}),(0,s.watch)(()=>[(0,s.toValue)(e.config)?.enabled,i()],([e,t])=>{if(!e){f();return}t&&r.value.size>t&&(r.value=new Set([...r.value].slice(0,t)))}),{selectedKeys:r,selectedCount:a,getPageCheckedKeys:o,handlePageSelectionChange:c,selectAll:l,select:u,unselect:d,clearAll:f,getSelectedRows:()=>t.value.filter(e=>r.value.has(n(e))),isSelected:e=>r.value.has(e)}}function Ue(e,t){return e.filter(e=>typeof e.key!=`string`||e.key.startsWith(`_`)||e.type===`selection`||e.type===`expand`?!1:t?.length?t.includes(e.key):e.visible!==!1)}function We(e,t,n){let r=e[t.key];return t.formatter?ke(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function Ge(e,t,n){let r=n&&/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return r.includes(t)||r.includes(`"`)||r.includes(`
1
+ require(`./chunk.cjs`);const e=require(`./config.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./C_Loading2.cjs`),i=require(`./C_ActionBar2.cjs`),a=require(`./data.cjs`),o=require(`./C_Form2.cjs`);let s=require(`vue`),c=require(`naive-ui`);const l={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},u=e=>e===!1||e===void 0?l:e===!0?{editable:!0,editMode:`modal`,showRowActions:!0,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0}:{editable:e.enabled!==!1&&e.mode!==`none`,editMode:e.mode||`modal`,showRowActions:e.showRowActions!==!1&&e.mode!==`none`,modalTitle:e.modalTitle||`编辑数据`,modalWidth:e.modalWidth||600,onEditSave:e.onSave,onEditCancel:e.onCancel,onEditError:e.onError},d=e=>e?e===!0?{expandable:!0,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0}:{expandable:e.enabled!==!1,defaultExpandedKeys:e.defaultExpandedKeys,onLoadExpandData:e.onLoadData,onExpandError:e.onError,renderExpandContent:e.renderContent,rowExpandable:e.rowExpandable}:{expandable:!1,defaultExpandedKeys:void 0,onLoadExpandData:void 0,onExpandError:void 0,renderExpandContent:void 0,rowExpandable:void 0},f=e=>{if(!e)return{enableSelection:!1,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};if(e===!0)return{enableSelection:!0,defaultCheckedKeys:void 0,rowCheckable:void 0,maxSelection:void 0,enableChildSelection:!1,childRowCheckable:void 0,enableParentChildLink:!1,parentChildLinkMode:`loose`};let t=e.childSelection||{},n=e.parentChildLink||{};return{enableSelection:e.enabled!==!1,defaultCheckedKeys:e.defaultCheckedKeys,rowCheckable:e.rowCheckable,maxSelection:e.maxSelection,enableChildSelection:t.enabled||!1,childRowCheckable:t.childRowCheckable,enableParentChildLink:n.enabled||!1,parentChildLinkMode:n.mode||`loose`}},p=e=>{let t={enabled:!0,page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};return e===!1?{pagination:null}:e===!0||e===void 0?{pagination:t}:{pagination:{...t,...e}}},m=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},h={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function g(e){return e?{striped:e.striped??h.striped,bordered:e.bordered??h.bordered,singleLine:e.singleLine??h.singleLine,size:e.size??h.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??h.columnWidth}:{...h}}const _=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1,toolbarActions:e?.actions??[],toolbarRightActions:e?.rightActions??[],toolbarActionBarConfig:e?.actionBar??{}}),v=e=>e?e===!0?{virtualScroll:!0,virtualItemHeight:34,virtualMaxHeight:600}:{virtualScroll:e.enabled!==!1,virtualItemHeight:e.itemHeight??34,virtualMaxHeight:e.maxHeight??600}:{virtualScroll:!1,virtualItemHeight:34,virtualMaxHeight:600},y=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},b=e=>e?e===!0?{enableColumnDrag:!0,columnDragHandleClass:void 0,columnDragAnimationDuration:150}:{enableColumnDrag:e.enabled!==!1,columnDragHandleClass:e.handleClass,columnDragAnimationDuration:e.animationDuration??150}:{enableColumnDrag:!1,columnDragHandleClass:void 0,columnDragAnimationDuration:150},x=e=>e?e===!0?{treeEnabled:!0,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1}:{treeEnabled:e.enabled!==!1,treeChildrenKey:e.childrenKey??`children`,treeIndent:e.indent??16,treeDefaultExpandAll:e.defaultExpandAll??!1}:{treeEnabled:!1,treeChildrenKey:`children`,treeIndent:16,treeDefaultExpandAll:!1},S=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},C=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function w(e={}){return{feedback:e.feedback,locale:e.locale,...u(e.edit),...d(e.expand),...f(e.selection),...p(e.pagination),...m(e.dynamicRows),...g(e.display),..._(e.toolbar),...v(e.virtualScroll),...y(e.summary),...b(e.columnDrag),...x(e.tree),...S(e.rowDrag),...C(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const T=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function E(e,t){return(typeof e.message==`function`?e.message():e.message)||t}function D(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function O(e){if(typeof e==`number`)return e;if(typeof e==`string`||Array.isArray(e))return e.length}function k(e,t){return e===!1?t:e instanceof Error?e.message||t:typeof e==`string`?e||t:Array.isArray(e)&&e.length>0?k(e[0],t):null}async function A(e,t,n,r){let i=E(e,`${n}校验失败`),a=e.transform?e.transform(t):t;if(e.required&&D(a))return E(e,`${n}不能为空`);if(!e.required&&D(a))return null;if(e.enum&&!e.enum.includes(a)||e.pattern&&!new RegExp(e.pattern).test(String(a)))return i;let o=O(a);if(e.len!==void 0&&o!==e.len||e.min!==void 0&&o!==void 0&&o<e.min||e.max!==void 0&&o!==void 0&&o>e.max)return i;let s,c=e=>{s=e};try{if(e.validator){let t=k(await e.validator(e,a,c,r,{}),i);if(t)return t}if(s||e.asyncValidator&&(await e.asyncValidator(e,a,c,r,{}),s))return k(s,i)}catch(e){return e instanceof Error&&e.message?e.message:i}return null}function j(e){let t=(0,s.ref)(null),n=(0,s.ref)({}),r=(0,s.ref)(!1),i=(0,s.ref)([]),o=e=>t.value===e,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=e=>{let o=c(e);return!o||r.value?!1:(t.value=e,n.value={[String(e)]:a.t(o)},i.value=[],!0)},u=async()=>{if(t.value===null||r.value)return;let i=e.data();if(!i||!Array.isArray(i))return;let a=i.findIndex(n=>e.rowKey(n)===t.value);a>-1&&await e.onCancel?.(i[a],a),t.value=null,n.value={}},d=async()=>{if(i.value=[],t.value===null)return!0;let r=e.columns?.()||[],a=n.value[String(t.value)];if(!a)return!0;let o=r.filter(e=>e.editable!==!1&&e.editProps?.rules?.length).map(e=>{let t=typeof e.key==`string`?e.key:``;if(!t)return null;let n=e.title||t,r=a[t];return Promise.all(e.editProps.rules.map(e=>A(e,r,n,a))).then(e=>{let n=e.find(Boolean);return n?{field:t,message:n}:null})}).filter(Boolean),s=(await Promise.all(o)).filter(Boolean);return i.value=s,s.length===0},f=async()=>{if(t.value===null||r.value||!await d())return;let i=t.value,o=e.data();if(!o||!Array.isArray(o))return;let s=o.findIndex(t=>e.rowKey(t)===i);if(s===-1)return;let c=n.value[String(i)];if(c){r.value=!0;try{await e.onSave?.(a.t(c),s),t.value=null,n.value={}}finally{r.value=!1}return{updatedData:c,rowIndex:s}}},p=e=>{if(t.value===e)return n.value[String(e)]};return{editingRowKey:t,editingData:n,isSaving:r,isEditingRow:o,startEditRow:l,cancelEditRow:u,saveEditRow:f,validateRow:d,validationErrors:i,getEditingRowData:p,updateEditingRowData:(e,t,n)=>{let r=p(e);r&&(r[t]=a.t(n))},findRowData:c}}function M(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function N(e){let t=(0,s.ref)({rowKey:null,columnKey:null}),n=(0,s.ref)({}),r=(0,s.ref)(!1),i=(0,s.ref)(null),o=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=(e,o)=>{let s=c(e);return!s||!o||r.value?!1:(t.value={rowKey:e,columnKey:o},n.value={[M(e,o)]:a.t(s[o])},i.value=null,!0)},u=async()=>{i.value=null;let{rowKey:r,columnKey:a}=t.value;if(r===null||a===null)return!0;let o=(e.columns?.()||[]).find(e=>e.key===a);if(!o||!o.editProps?.rules)return!0;let s=M(r,a),l=n.value[s],u=o.title||a,d={...c(r),[a]:l},f=(await Promise.all(o.editProps.rules.map(e=>A(e,l,u,d)))).find(Boolean);return f?(i.value=f,!1):!0};return{editingCell:t,editingData:n,isSaving:r,isEditingCell:o,startEditCell:l,saveEditCell:async()=>{let{rowKey:i,columnKey:o}=t.value;if(i===null||o===null||r.value||!await u())return;let s=e.data();if(!s||!Array.isArray(s))return;let c=s.findIndex(t=>e.rowKey(t)===i);if(c===-1)return;let l=M(i,o),d=n.value[l],f={...s[c],[o]:d};r.value=!0;try{await e.onSave?.(a.t(f),c,o),t.value={rowKey:null,columnKey:null},n.value={}}finally{r.value=!1}return{updatedData:f,rowIndex:c,columnKey:o}},cancelEditCell:()=>{let{rowKey:e,columnKey:a}=t.value;r.value||(e!==null&&a!==null&&delete n.value[M(e,a)],t.value={rowKey:null,columnKey:null},i.value=null)},validateCell:u,cellValidationError:i,getEditingCellValue:(e,t)=>n.value[M(e,t)],updateEditingCellValue:(e,t,r)=>{o(e,t)&&(n.value[M(e,t)]=a.t(r))},findRowData:c}}function ee(e){let t=(0,s.ref)(!1),n=(0,s.ref)(!1),r=(0,s.ref)(null),i=(0,s.ref)({}),o=(0,s.computed)(()=>{if(r.value===null)return-1;let t=e.data();return Array.isArray(t)?t.findIndex(t=>e.rowKey(t)===r.value):-1});return{isModalVisible:t,isSaving:n,editingData:i,editingRowKey:r,editingRowIndex:o,startEdit:(o,s)=>{if(n.value)return!1;let c=e.data();if(!Array.isArray(c))return!1;let l=c.findIndex(t=>e.rowKey(t)===o);return l===-1?!1:(r.value=o,i.value=a.t(s??c[l]),t.value=!0,!0)},saveEdit:async s=>{if(n.value||r.value===null)return;let c=o.value;if(c===-1)return;let l=a.t(s??i.value);n.value=!0;try{return await e.onSave?.(l,c),t.value=!1,r.value=null,i.value={},{updatedData:l,rowIndex:c}}finally{n.value=!1}},cancelEdit:async()=>{if(n.value)return!1;let a=o.value;try{if(r.value!==null&&a>-1){let t=e.data();t[a]&&await e.onCancel?.(t[a],a)}}finally{t.value=!1,r.value=null,i.value={}}return!0},updateEditingData:e=>n.value?!1:(i.value=a.t(e),!0),resetEditingState:()=>n.value?!1:(r.value=null,i.value={},!0),isEditingRow:e=>r.value===e&&t.value,getEditingRowData:e=>r.value===e?i.value:null}}const P=e=>({expandedKeys:(0,s.ref)([...e.defaultExpandedKeys||[]]),expandDataMap:(0,s.ref)(new Map),loadingMap:(0,s.ref)(new Map),checkedKeys:e.enableSelection?(0,s.ref)([...e.defaultCheckedKeys||[]]):(0,s.ref)([]),childSelections:(e.enableChildSelection,(0,s.ref)(new Map))}),F=e=>{let t=(0,s.computed)(()=>(0,s.unref)(e.data)),n=e.rowKey;return{data:t,getRowKey:n,getChildRowKey:e.childRowKey||(e=>e.id),findRow:e=>t.value.find(t=>n(t)===e),isRowExpandable:t=>e.rowExpandable?.(t)??!0,isRowCheckable:t=>e.rowCheckable?.(t)??!0,isChildRowCheckable:(t,n)=>e.childRowCheckable?.(t,n)??!0}},te=(e,t,n)=>{let r=new Map,i=0,a=new Set(n.defaultExpandedKeys||[]),o=async i=>{if(!n.onLoadData)return[];let a=t.getRowKey(i),o=e.expandDataMap.value.get(a);if(o)return o;let s=r.get(a);if(s)return s;e.loadingMap.value.set(a,!0);let c=(async()=>{try{let t=await n.onLoadData(i)||[];return e.expandDataMap.value.set(a,t),n.enableChildSelection&&!e.childSelections.value.has(a)&&e.childSelections.value.set(a,[]),t}catch(e){return n.onError?.(e,i),[]}finally{r.delete(a),e.loadingMap.value.set(a,!1)}})();return r.set(a,c),c};return{loadData:o,handleRowExpand:async(r,s)=>{let c=t.getRowKey(r);if(i+=1,s){if(a.add(c),e.expandedKeys.value.includes(c)||(e.expandedKeys.value=[...e.expandedKeys.value,c]),await o(r),!a.has(c))return}else a.delete(c),e.expandedKeys.value=e.expandedKeys.value.filter(e=>e!==c);n.onExpandChange?.(e.expandedKeys.value,r,s)},expandAll:async()=>{let r=++i,s=t.data.value.filter(t.isRowExpandable);a=new Set(s.map(t.getRowKey)),e.expandedKeys.value=[...a],await Promise.allSettled(s.map(o)),r===i&&(e.expandedKeys.value=s.map(t.getRowKey),n.onExpandChange?.(e.expandedKeys.value))},collapseAll:()=>{i+=1,a.clear(),e.expandedKeys.value=[],e.childSelections.value.clear(),n.onExpandChange?.(e.expandedKeys.value)},handleExpandChange:async r=>{let s=++i;a=new Set(r);let c=r.filter(t=>!e.expandedKeys.value.includes(t)),l=e.expandedKeys.value.filter(e=>!r.includes(e));for(let t of l)e.childSelections.value.delete(t);e.expandedKeys.value=[...r],await Promise.all(c.map(async e=>{let n=t.findRow(e);n&&await o(n)})),s===i&&n.onExpandChange?.(r)}}},ne=(e,t,n)=>{let r=(0,s.computed)(()=>t.data.value.filter(t.isRowCheckable));return{selectAll:()=>{if(!n.enableSelection)return;let i=r.value.map(t.getRowKey),a=n.maxSelection?i.slice(0,n.maxSelection):i;e.checkedKeys.value=a;let o=r.value.filter(e=>a.includes(t.getRowKey(e)));n.onSelectionChange?.(a,o,e.childSelections.value)},clearSelection:()=>{n.enableSelection&&(e.checkedKeys.value=[],n.onSelectionChange?.([],[],e.childSelections.value))},handleSelectionChange:i=>{if(!n.enableSelection)return;let a=new Set(r.value.map(e=>t.getRowKey(e))),o=[...new Set(i)].filter(e=>a.has(e)),s=n.maxSelection?o.slice(0,Math.max(0,n.maxSelection)):o;e.checkedKeys.value=s;let c=t.data.value.filter(e=>s.includes(t.getRowKey(e)));n.onSelectionChange?.(s,c,e.childSelections.value)},selectedRowsCount:(0,s.computed)(()=>e.checkedKeys.value.length),selectableRows:r}},re=(e,t)=>{let n=()=>!!(t.enableParentChildLink&&t.enableSelection&&t.enableChildSelection);return{handleParentChildLink:(r,i,a)=>{if(!n())return;let o=t.parentChildLinkMode===`strict`?i.length===a&&a>0:i.length>0,s=[...e.checkedKeys.value],c=s.includes(r);o&&!c?e.checkedKeys.value=[...s,r]:!o&&c&&(e.checkedKeys.value=s.filter(e=>e!==r))},isLinkEnabled:n}},ie=(e,t,n,r)=>({totalChildSelections:(0,s.computed)(()=>r.enableChildSelection?Array.from(e.childSelections.value.values()).reduce((e,t)=>e+t.length,0):0),clearAllSelections:()=>{e.checkedKeys.value=[],e.childSelections.value.clear(),r.onSelectionChange?.([],[],e.childSelections.value)},handleChildSelectionChange:(i,a)=>{if(!r.enableChildSelection)return;e.childSelections.value.set(i,a);let o=e.expandDataMap.value.get(i)||[],s=o.filter(e=>a.includes(t.getChildRowKey(e)));r.onChildSelectionChange?.(i,a,s),n.isLinkEnabled()&&n.handleParentChildLink(i,a,o.length)}}),I=(e,t,n,r,i)=>{if(!i.enableChildSelection)return;let a=t.childSelections.value.get(e)||[],o=t.expandDataMap.value.get(e)||[],s=n.findRow(e);if(!s)return;let c=o.filter(e=>n.isChildRowCheckable(e,s));return{selectedKeys:a,isAllChecked:c.length>0&&c.every(e=>a.includes(n.getChildRowKey(e))),selectAll:()=>{let t=c.map(e=>n.getChildRowKey(e));r.handleChildSelectionChange(e,t)},clearAll:()=>{r.handleChildSelectionChange(e,[])}}},L=e=>(0,s.h)(`div`,{class:`flex justify-center items-center py-8`},e?[e()]:[(0,s.h)(c.NSpin,{size:`small`}),(0,s.h)(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),ae=()=>(0,s.h)(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),R=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,align:`center`,titleAlign:`center`,render:(e,t)=>t+1},...Object.keys(t).filter(e=>![`id`,`key`].includes(e)).map(e=>({key:e,title:e.charAt(0).toUpperCase()+e.slice(1),width:120,align:`center`,titleAlign:`center`,ellipsis:{tooltip:!0}}))]},oe=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0}),o.push(...R(t)),(0,s.h)(`div`,{class:`p-4 bg-gray-50`},[(0,s.h)(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),(0,s.h)(c.NDataTable,{data:t,columns:o,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},se=(e,t,n,r,i)=>{let a=a=>{let o=t.getRowKey(a),c=e.expandDataMap.value.get(o)||[],l=e.loadingMap.value.get(o)||!1;!c.length&&!l&&e.expandedKeys.value.includes(o)&&(0,s.nextTick)(()=>{r.loadData(a)});let u=I(o,e,t,n,i);return i.renderContent?i.renderContent(a,c,l,u):l?L(i.renderLoading):c.length?oe(o,c,u,t,n,i):ae()};return{getTableColumns:e=>e.map(e=>e.type===`selection`&&i.enableSelection?{type:`selection`,disabled:e=>!t.isRowCheckable(e),multiple:!i.maxSelection||i.maxSelection>1}:e.type===`expand`&&(i.onLoadData||i.renderContent)?{type:`expand`,expandable:t.isRowExpandable,renderExpand:a}:e)}};function ce(e){let t=P(e),n=F(e),r=te(t,n,e),i=ne(t,n,e),a=ie(t,n,re(t,e),e),o=se(t,n,a,r,e);return e.onSelectionChange&&e.enableSelection&&(0,s.watchEffect)(()=>{if(!e.onSelectionChange)return;let r=n.data.value.filter(e=>t.checkedKeys.value.includes(n.getRowKey(e))),i=t.checkedKeys.value.length>0,a=n.data.value.length>0;(i||!a)&&e.onSelectionChange(t.checkedKeys.value,r,t.childSelections.value)}),e.defaultExpandedKeys?.length&&(0,s.nextTick)(async()=>{let i=e.defaultExpandedKeys||[];if(i.length===0)return;let a=i.map(async e=>{let i=n.findRow(e);i&&!t.expandDataMap.value.has(e)&&await r.loadData(i)});await Promise.allSettled(a)}),{expandedKeys:t.expandedKeys,checkedKeys:t.checkedKeys,childSelections:t.childSelections,selectedRowsCount:i.selectedRowsCount,totalChildSelections:a.totalChildSelections,expandAll:r.expandAll,collapseAll:r.collapseAll,expandRow:async e=>{if(t.expandedKeys.value.includes(e)&&!t.loadingMap.value.get(e))return;let i=n.findRow(e);i&&await r.handleRowExpand(i,!0)},handleExpandChange:r.handleExpandChange,selectAll:i.selectAll,clearSelection:i.clearSelection,clearAllSelections:a.clearAllSelections,handleSelectionChange:i.handleSelectionChange,getTableColumns:o.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap}}const le={text:`Robot Admin`,textSize:16,textColor:`rgba(128, 128, 128, 0.3)`,font:`Microsoft JhengHei`,opacity:.3,rotate:-20,position:`repeat`,xGap:200,yGap:120},ue={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},de={orientation:`portrait`,paperSize:`A4`,margin:`10mm 10mm 0 10mm`,style:`@page { margin: 10mm 10mm 0 10mm; } @media print { body { margin: 0; } }`,header:``,footer:``,showModal:!1,modalMessage:`正在准备打印...`,onLoadingStart:()=>{},onLoadingEnd:()=>{},onPrintDialogClose:()=>{}};function z(e,t,n,r){e.save(),e.translate(t/2,n/2),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}function B(e,t,n,r){[[50,50],[t-50,50],[50,n-50],[t-50,n-50]].forEach(([t,n])=>{e.save(),e.translate(t,n),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()})}function fe(e,t,n,r){let i=Math.sqrt(t*t+n*n),a=t/2,o=n/2;e.save(),e.translate(a,o),e.rotate(Math.atan2(n,t));let s=Math.floor(i/r.xGap),c=-i/2;for(let t=0;t<=s;t++){let n=c+t*r.xGap;e.fillText(r.text,n,0)}e.restore()}function pe(e,t,n,r){let i=Math.ceil(t/r.xGap)+1,a=Math.ceil(n/r.yGap)+1;for(let t=0;t<a;t++)for(let n=0;n<i;n++){let i=n*r.xGap+r.xGap/2,a=t*r.yGap+r.yGap/2;e.save(),e.translate(i,a),e.rotate(r.rotate*Math.PI/180),e.fillText(r.text,0,0),e.restore()}}function V(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...le,...t},{width:i,height:a}=e;n.save(),n.globalAlpha=r.opacity,n.font=`${r.textSize}px ${r.font}`,n.fillStyle=r.textColor,n.textAlign=`center`,n.textBaseline=`middle`;let o={center:z,corner:B,diagonal:fe,repeat:pe};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function H(e,t={}){if(typeof window>`u`)throw Error(`截图功能仅支持浏览器环境`);let n={...ue,...t},{default:r}=await import(`html2canvas`);return await r(e,{logging:n.logging,scale:n.scale,allowTaint:n.allowTaint,useCORS:n.useCORS,backgroundColor:n.backgroundColor,onclone:e=>{let t=e.body;t.style.transform=`scale(1)`}})}function U(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function W(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=U(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function G(e,t={}){if(typeof window>`u`)throw Error(`打印功能仅支持浏览器环境`);let n={...de,...t},{default:r}=await import(`print-js`);return new Promise((t,i)=>{try{n.onLoadingStart?.(),r({printable:e,type:`image`,style:n.style,showModal:n.showModal,modalMessage:n.modalMessage,onLoadingEnd:n.onLoadingEnd,onPrintDialogClose:()=>{n.onPrintDialogClose?.(),t()}})}catch(e){i(e)}})}function K(e,t,n){let r=0,i=0;e.forEach(e=>{let{width:n,height:a}=e;t===`horizontal`?(r+=n,i=Math.max(i,a)):(r=Math.max(r,n),i+=a)});let a=(e.length-1)*n;return t===`horizontal`?r+=a:i+=a,{totalWidth:r,totalHeight:i}}function q(e,t){let{orientation:n,spacing:r,backgroundColor:i,totalWidth:a,totalHeight:o}=t,s=document.createElement(`canvas`);s.width=a,s.height=o;let c=s.getContext(`2d`);if(!c)throw Error(`无法创建画布上下文`);c.fillStyle=i,c.fillRect(0,0,a,o);let l=0,u=0;return e.forEach(e=>{c.drawImage(e,l,u),n===`horizontal`?l+=e.width+r:u+=e.height+r}),s}function me(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function he(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>H(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=K(s,i,a);return r(60),q(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function ge(e,t,n,r,i){r(70),t.watermark&&V(e,t.watermark),r(90),await G(U(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function J(){let t=e.r(),n=(0,s.ref)(!1),r=(0,s.ref)(0),i=e=>{r.value=Math.max(0,Math.min(100,e))},a=async(e,t={})=>{try{i(0),i(30);let n=await H(e,t.capture);i(60),t.watermark&&V(n,t.watermark),i(90);let r=U(n,t.capture?.format||`png`,t.capture?.quality||.92);return i(100),r}catch(e){throw Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},o=async(e,r={})=>{n.value=!0,i(0);try{await(0,s.nextTick)();let n=await a(e,r);i(95),await G(n,r.print),i(100),t.success(`打印完成`)}catch(e){throw t.error(`打印失败: ${e instanceof Error?e.message:`未知错误`}`,e),e}finally{n.value=!1,i(0)}},c=async(e,r,i={})=>{n.value=!0;try{await(0,s.nextTick)();let n=await H(e,i.capture);i.watermark&&V(n,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;W(n,r||o,a),t.success(`下载完成`)}catch(e){throw t.error(`下载失败`,e),e}finally{n.value=!1}},l=async(e,t=`Robot Admin`)=>o(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),u=async(e,t={})=>{let n=e.length;i(10);let r=e.map(async(e,r)=>{let o=await a(e,t);return i(10+(r+1)/n*70),o});return Promise.all(r)},d=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await G(r,t),i<e.length-1&&await new Promise(e=>{setTimeout(()=>e(),1e3)})},Promise.resolve())};return{loading:n,progress:r,captureWithWatermark:a,printWithWatermark:o,downloadScreenshot:c,quickPrint:l,batchCapture:u,batchPrint:async(e,r={})=>{if(!e.length){t.warning(`没有要打印的元素`);return}n.value=!0;try{i(0);let n=await u(e,r);i(80),await d(n,r.print),i(100),t.success(`批量打印完成,共 ${e.length} 个元素`)}catch(e){throw t.error(`批量打印失败`,e),e}finally{n.value=!1,i(0)}},mergePrint:async(e,r={},a={})=>{let o=me(e,a,t);if(o){n.value=!0;try{await ge(await he(e,r,o,i),r,e.length,i,t)}catch(e){throw t.error(`合并打印失败`,e),e}finally{n.value=!1,i(0)}}},createPreset:(e,t)=>({use:e=>o(e,t),download:(e,n)=>c(e,n,t)}),updateProgress:i,utils:{captureElement:H,drawWatermark:V,canvasToDataURL:U,downloadCanvas:W,printImage:G}}}const _e={table:{watermark:{text:`Robot Admin - 数据表格`,position:`repeat`,textColor:`rgba(100, 100, 100, 0.25)`,textSize:14,xGap:250,yGap:120},capture:{scale:1.2},print:{orientation:`landscape`,style:`@page { margin: 8mm; } body { font-family: Arial, sans-serif; }`}},form:{watermark:{text:`Robot Admin - 表单数据`,position:`diagonal`,textColor:`rgba(150, 150, 150, 0.2)`,textSize:16},print:{orientation:`portrait`}},report:{watermark:{text:`Robot Admin - 机密报告`,position:`center`,textColor:`rgba(200, 50, 50, 0.15)`,textSize:24},capture:{quality:.95,format:`png`}}};function ve(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function ye(e,t){return typeof t==`function`?t(e):e[t]}function Y(e,t){let n=e?.()||{},r=typeof t==`string`?t:`id`;return{...n,[r]:ve()}}function X(n,r={}){let i={enabled:!0,rowKey:`id`,enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0,confirmDelete:!0,deleteConfirmText:``,printPreset:`table`,printTargetSelector:`.c-table-wrapper`,defaultRowData:()=>({})},a=(0,s.reactive)({...i,...(0,s.toValue)(r)});(0,s.watch)(()=>(0,s.toValue)(r),e=>{let t=a;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,i,e)},{deep:!0});let o=e.r(()=>a.feedback),{t:l}=e.i(()=>a.locale),u=`c-table-radio-${ve()}`,d=(0,s.ref)(null),f=(0,s.ref)(!1),p=(0,s.computed)(()=>d.value===null?null:n.value.find(e=>ye(e,a.rowKey)===d.value)||null),m=(0,s.computed)(()=>p.value?n.value.findIndex(e=>e===p.value):-1),h=(0,s.computed)(()=>m.value>0),g=(0,s.computed)(()=>m.value>=0&&m.value<n.value.length-1),{loading:_,progress:v,printWithWatermark:y,downloadScreenshot:b,quickPrint:x}=J(),S=()=>{if(a.printOptions)return a.printOptions;let e=_e[a.printPreset||`table`];return a.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:a.printWatermarkText}}:e},C=e=>{a.onRowChange?.(e)},w=()=>{if(!a.enabled||!a.enableAdd)return;let e=Y(a.defaultRowData,a.rowKey);C([...n.value,e]),a.onRowAdd?.(e),o.success(l(`table.addRowSuccess`))},T=()=>{if(!a.enabled||!a.enableInsert||!p.value){o.warning(l(`table.selectRowFirst`));return}let e=Y(a.defaultRowData,a.rowKey),t=[...n.value];t.splice(m.value+1,0,e),C(t),a.onRowAdd?.(e),o.success(l(`table.insertRowSuccess`))},E=()=>{if(!a.enabled||!a.enableDelete||!p.value){o.warning(l(`table.selectDeleteRowFirst`));return}a.confirmDelete?f.value=!0:D()},D=()=>{if(!p.value)return;let e=p.value,t=m.value;C(n.value.filter((e,n)=>n!==t)),d.value=null,a.onSelectionChange?.(null,null),a.onRowDelete?.(e,t),o.success(l(`table.deleteRowSuccess`)),f.value=!1},O=()=>{if(!a.enabled||!a.enableCopy||!p.value){o.warning(l(`table.selectCopyRowFirst`));return}let e=p.value,t=typeof a.rowKey==`string`?a.rowKey:`id`,{[t]:r,...i}=e,s={...i,[t]:ve()};C([...n.value,s]),a.onRowCopy?.(e,s),o.success(l(`table.copyRowSuccess`))},k=()=>{if(!a.enabled||!a.enableMove||!h.value)return;let e=m.value,t=[...n.value],r=t[e];[t[e],t[e-1]]=[t[e-1],t[e]],C(t),a.onRowMove?.(r,e,e-1),o.success(l(`table.moveUpSuccess`))},A=()=>{if(!a.enabled||!a.enableMove||!g.value)return;let e=m.value,t=[...n.value],r=t[e];[t[e],t[e+1]]=[t[e+1],t[e]],C(t),a.onRowMove?.(r,e,e+1),o.success(l(`table.moveDownSuccess`))},j=e=>{if(!a.enabled)return;let t=n.value.find(t=>ye(t,a.rowKey)===e);t&&(d.value=e,a.onSelectionChange?.(e,t))},M=()=>{d.value=null,a.onSelectionChange?.(null,null)},N=async e=>{if(!e.value){o.error(l(`table.printTargetMissing`));return}let t=S();await y(e.value,t)};return(0,s.onBeforeUnmount)(()=>{d.value=null,f.value=!1}),{selectedRowKey:d,selectedRowData:p,selectedRowIndex:m,canMoveUp:h,canMoveDown:g,deleteConfirmVisible:f,printLoading:_,printProgress:v,addRow:w,insertRow:T,deleteRow:E,confirmDelete:D,copyRow:O,moveRowUp:k,moveRowDown:A,selectRow:j,clearSelection:M,handlePrint:N,handleDownload:async(e,t)=>{if(!e.value){o.error(l(`table.downloadTargetMissing`));return}let n=S();await b(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){o.error(l(`table.printTargetMissing`));return}let t=a.printWatermarkText||`Robot Admin`;await x(e.value,t)},enhanceColumns:e=>{if(!a.enabled)return e;let t=[...e];return a.enabled&&a.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:l(`common.select`),width:80,align:`center`,editable:!1,render:e=>{let t=ye(e,a.rowKey);return(0,s.h)(`div`,{class:`flex justify-center`},[(0,s.h)(`input`,{type:`radio`,name:u,"aria-label":l(`common.select`),checked:d.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&j(t)}})])}}),t},renderToolbar:e=>{if(!a.enabled)return null;let n=[];a.enablePrint&&n.push((0,s.h)(c.NButton,{loading:_.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(a.printTargetSelector);t?await N((0,s.shallowRef)(t)):o.warning(l(`table.printTargetMissing`))}catch(e){o.error(l(`table.printTargetMissing`),e)}}},{icon:()=>(0,s.h)(t.t,{name:`mdi:printer`,title:l(`common.print`)}),default:()=>l(`common.print`)}));let r=[];return a.enableAdd&&r.push((0,s.h)(c.NButton,{onClick:w,type:`primary`},{icon:()=>(0,s.h)(t.t,{name:`mdi:plus`,title:l(`table.addRow`)}),default:()=>l(`table.addRow`)})),a.enableInsert&&r.push((0,s.h)(c.NTooltip,{disabled:!!p.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:T,disabled:!p.value,type:`primary`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:table-row-plus-after`,title:l(`table.insertRow`)}),default:()=>l(`table.insertRow`)}),default:()=>l(`table.selectRowFirst`)})),a.enableDelete&&r.push((0,s.h)(c.NTooltip,{disabled:!!p.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:E,disabled:!p.value,type:`error`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:delete`,title:l(`table.deleteRow`)}),default:()=>l(`table.deleteRow`)}),default:()=>l(`table.selectDeleteRowFirst`)})),a.enableCopy&&r.push((0,s.h)(c.NTooltip,{disabled:!!p.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:O,disabled:!p.value,type:`info`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:content-copy`,title:l(`table.copyRow`)}),default:()=>l(`table.copyRow`)}),default:()=>l(`table.selectCopyRowFirst`)})),a.enableMove&&r.push((0,s.h)(c.NTooltip,{disabled:h.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:k,disabled:!h.value,type:`warning`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:arrow-up`,title:l(`table.moveUp`)}),default:()=>l(`table.moveUp`)}),default:()=>p.value?l(`table.firstRow`):l(`table.selectRowFirst`)}),(0,s.h)(c.NTooltip,{disabled:g.value},{trigger:()=>(0,s.h)(c.NButton,{onClick:A,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>(0,s.h)(t.t,{name:`mdi:arrow-down`,title:l(`table.moveDown`)}),default:()=>l(`table.moveDown`)}),default:()=>p.value?l(`table.lastRow`):l(`table.selectRowFirst`)})),r.length>0&&n.push((0,s.h)(c.NButtonGroup,{},()=>r)),(0,s.h)(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[(0,s.h)(c.NSpace,{},()=>n)])},renderConfirmModal:()=>(0,s.h)(c.NModal,{show:f.value,"onUpdate:show":e=>{f.value=e},preset:`dialog`,title:l(`table.deleteTitle`),content:a.deleteConfirmText||l(`table.deleteRowContent`),positiveText:l(`table.confirmDeleteRow`),negativeText:l(`common.cancel`),onPositiveClick:D})}}function be(t){let{data:n,rowKey:r,emit:i}=t,a=()=>(0,s.toValue)(t.config),o=e.r(()=>a().feedback),{t:c}=e.i(()=>a().locale),l={onSave:async(e,t,r)=>{if(!e||t<0||t>=n().length)return;let o=[...n()];o[t]={...o[t],...e};try{await a().onEditSave?.(o[t],t,r),await i(`save`,o[t],t,r),i(`update:data`,o)}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},onCancel:async(e,t)=>{try{await a().onEditCancel?.(e,t),await i(`cancel`,e,t)}catch(e){throw a().onEditError?.(e),i(`edit-error`,e),e}},onExpandChange:(e,t,n)=>{i(`expand-change`,e,t,n)},onSelectionChange:(e,t,n)=>{i(`selection-change`,e,t,n)},onChildSelectionChange:(e,t,n)=>{i(`child-selection-change`,e,t,n)},onRowChange:e=>{i(`update:data`,e),a().dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,t)=>{i(`row-selection-change`,e,t),a().dynamicRows?.onSelectionChange?.(e,t)},onRowAdd:e=>{i(`row-add`,e),a().dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,t)=>{i(`row-delete`,e,t),a().dynamicRows?.onRowDelete?.(e,t)},onRowCopy:(e,t)=>{i(`row-copy`,e,t),a().dynamicRows?.onRowCopy?.(e,t)},onRowMove:(e,t,n)=>{i(`row-move`,e,t,n),a().dynamicRows?.onRowMove?.(e,t,n)}},u=()=>({rowEdit:j({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel,columns:t.columns}),cellEdit:N({data:n,rowKey:r,onSave:l.onSave,columns:t.columns}),modalEdit:ee({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel})}),d=()=>ce({data:(0,s.computed)(()=>n()),rowKey:r,childRowKey:e=>e.id,renderLoading:t.renderLoading,get defaultExpandedKeys(){return a().defaultExpandedKeys},get onLoadData(){return a().onLoadExpandData},onError:(e,t)=>{let n=a().onExpandError;n?n(e,t):o.error(c(`table.loadFailed`),e)},get renderContent(){return a().renderExpandContent},get rowExpandable(){return a().rowExpandable},get enableSelection(){return a().enableSelection},get defaultCheckedKeys(){return a().defaultCheckedKeys},get rowCheckable(){return a().rowCheckable},get maxSelection(){return a().maxSelection},get enableChildSelection(){return a().enableChildSelection},get childRowCheckable(){return a().childRowCheckable},get enableParentChildLink(){return a().enableParentChildLink},get parentChildLinkMode(){return a().parentChildLinkMode},onExpandChange:l.onExpandChange,onSelectionChange:l.onSelectionChange,onChildSelectionChange:l.onChildSelectionChange}),f=()=>X((0,s.computed)(()=>n()),(0,s.computed)(()=>({...a().dynamicRows,enabled:!!a().dynamicRows,feedback:a().feedback,locale:a().locale,onRowChange:l.onRowChange,onSelectionChange:l.onRowSelectionChange,onRowAdd:l.onRowAdd,onRowDelete:l.onRowDelete,onRowCopy:l.onRowCopy,onRowMove:l.onRowMove}))),p=u(),m=d(),h=f();return{editStates:p,expandState:m,dynamicRowsState:h,stateManager:{edit:{start(e,t){let n=a().editMode;n===`modal`?p.modalEdit.startEdit(e):n===`cell`&&t?p.cellEdit.startEditCell(e,t):(n===`row`||n===`both`)&&p.rowEdit.startEditRow(e)},cancel(){p.modalEdit.isModalVisible.value?p.modalEdit.cancelEdit():p.cellEdit.editingCell.value.rowKey===null?p.rowEdit.editingRowKey.value!==null&&p.rowEdit.cancelEditRow():p.cellEdit.cancelEditCell()},async save(){p.modalEdit.isModalVisible.value?await p.modalEdit.saveEdit():p.cellEdit.editingCell.value.rowKey===null?p.rowEdit.editingRowKey.value!==null&&await p.rowEdit.saveEditRow():await p.cellEdit.saveEditCell()},isEditing(e,t){return a().editMode===`modal`?p.modalEdit.isEditingRow(e):t?p.cellEdit.isEditingCell(e,t):p.rowEdit.isEditingRow(e)},getEditingData(){return p.modalEdit.isModalVisible.value?p.modalEdit.editingData.value:p.rowEdit.editingRowKey.value===null?null:p.rowEdit.getEditingRowData(p.rowEdit.editingRowKey.value)}},expand:{async row(e){if(m){let t=[...m.expandedKeys.value];t.includes(e)||(t.push(e),m.handleExpandChange(t))}},collapse(e){if(m){let t=m.expandedKeys.value.filter(t=>t!==e);m.handleExpandChange(t)}},async toggle(e){m?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await m?.expandAll()},collapseAll(){m?.collapseAll()},isExpanded(e){return m?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(m?.checkedKeys.value&&!m.checkedKeys.value.includes(e)){let t=[...m.checkedKeys.value,e];m.handleSelectionChange(t)}},unselect(e){if(m?.checkedKeys.value){let t=m.checkedKeys.value.filter(t=>t!==e);m.handleSelectionChange(t)}},all(){m?.selectAll()},clear(){m?.clearSelection()},isSelected(e){return m?.checkedKeys.value.includes(e)??!1},getSelected(){return m?.checkedKeys.value?n().filter(e=>m.checkedKeys.value.includes(r(e))):[]}},childSelection:{select(e,t){if(m?.childSelections.value){let n=m.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];m.childSelections.value.set(e,r),i(`child-selection-change`,e,r,[])}}},unselect(e,t){if(m?.childSelections.value){let n=(m.childSelections.value.get(e)||[]).filter(e=>e!==t);m.childSelections.value.set(e,n),i(`child-selection-change`,e,n,[])}},selectAll(e){if(m?.childSelections.value&&m.expandDataMap?.value){let t=m.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);m.childSelections.value.set(e,n),i(`child-selection-change`,e,n,t)}},clear(e){m?.childSelections.value&&(m.childSelections.value.set(e,[]),i(`child-selection-change`,e,[],[]))},getSelected(e){if(!m?.childSelections.value||!m.expandDataMap?.value)return[];let t=m.childSelections.value.get(e)||[];return(m.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){h?.addRow()},insert(){h?.insertRow()},delete(){h?.deleteRow()},copy(){h?.copyRow()},moveUp(){h?.moveRowUp()},moveDown(){h?.moveRowDown()},clearSelection(){h?.clearSelection()},getSelected(){return h?.selectedRowData.value||null},async print(e){h&&e&&await h.handlePrint((0,s.shallowRef)(e))},async download(e,t){h&&e&&await h.handleDownload((0,s.shallowRef)(e),t)}},clearAllSelections(){m?.clearAllSelections()}},expandedKeys:(0,s.computed)(()=>m?.expandedKeys.value??[]),checkedKeys:(0,s.computed)(()=>m?.checkedKeys.value??[]),eventHandlers:l}}const Z={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function Q(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function xe(e){let{data:t,config:n,emit:r}=e,i=(0,s.ref)(Z.page),a=(0,s.ref)(Z.pageSize),o=(0,s.computed)(()=>{let e=typeof t==`function`?t():(0,s.unref)(t);return Array.isArray(e)?e:[]}),c=(0,s.computed)(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??o.value.length)):o.value.length}),l=()=>n.value?.enabled?Math.max(1,Math.ceil(c.value/a.value)):1,u=(e,t)=>{let n=Math.min(Q(e,1),l());i.value!==n&&(i.value=n,t&&r?.(`pagination-change`,n,a.value))},d=e=>u(e,!0),f=e=>{let t=Q(e,Z.pageSize),n=a.value!==t;a.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},p=()=>u(1,!0),m=(0,s.computed)(()=>{let e=n.value;if(!e?.enabled||e.remote)return o.value;let t=(i.value-1)*a.value;return o.value.slice(t,t+a.value)}),h=(0,s.computed)(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:a.value,itemCount:c.value,showSizePicker:e.showSizePicker??Z.showSizePicker,showQuickJumper:e.showQuickJumper??Z.showQuickJumper,pageSizes:e.pageSizes??Z.pageSizes,simple:e.simple??Z.simple,size:e.size??Z.size,prefix:e=>`共 ${e.itemCount??0} 条`,suffix:e=>(e.itemCount??0)>0?`第 ${e.startIndex+1}-${e.endIndex} 条`:`暂无数据`,"onUpdate:page":d,"onUpdate:pageSize":f}:null});return(0,s.watch)(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{a.value=Q(t,Z.pageSize),i.value=Math.min(Q(e,Z.page),l())},{immediate:!0}),(0,s.watch)([c,a],()=>{let e=Math.min(i.value,l());e!==i.value&&(i.value=e,r?.(`pagination-change`,e,a.value))}),{currentPage:i,currentPageSize:a,paginatedData:m,paginationConfig:h,handlePageChange:d,handlePageSizeChange:f,resetToFirstPage:p,getTotalPages:l}}const Se=e=>e&&typeof e==`object`&&`error`in e?e.error:null;function Ce(n){let{actions:r,config:i,tableManager:a,rowKey:o,onRowDeleted:l,onViewDetail:u,isDeleteFeedbackHandled:d}=n,f=e.r(()=>i.value.feedback),{t:p}=e.i(()=>i.value.locale),m=e=>e===`edit`?i.value.editable&&r.value?.edit!==!1:typeof r.value?.[e]==`function`,h=e=>e!==!1&&typeof e==`function`,g=e=>e&&typeof e==`object`&&`data`in e?e.data:e,_=(e,n,r=`primary`,i)=>(0,s.h)(c.NButton,{size:`small`,type:r,quaternary:!0,onClick:i},()=>[(0,s.h)(t.t,{name:e,size:14,title:n})]),v=async(e,t)=>{let n=o(e),s=r.value?.edit;if(h(s)){try{await s(e,t)}catch(e){f.error(p(`table.actionFailed`,{action:p(`common.edit`)}),e)}return}i.value.editMode===`modal`?a.editStates.modalEdit.startEdit(n,{...e}):a.editStates.rowEdit.startEditRow(n)},y=async(e,t,n)=>{let r=d?.(e)===!0;try{let i=Se(await e(t,n));if(i!=null){r||f.error(p(`table.deleteFailed`),i);return}r||f.success(p(`table.deleteSuccess`)),l?.(t,n)}catch(e){throw r||f.error(p(`table.deleteFailed`),e),e}},b=async(e,t)=>{let n=r.value?.delete;h(n)&&await f.confirm({title:p(`table.deleteTitle`),content:p(`table.deleteContent`),positiveText:p(`common.confirm`),negativeText:p(`common.cancel`),type:`warning`})&&await y(n,e,t)},x=async(e,t)=>{let n=r.value?.detail;if(!h(n)){u?.(e);return}try{let r=g(await n(e,t));u?.(r||e)}catch(t){f.error(p(`table.detailFailed`),t),u?.(e)}},S=e=>a.editStates.rowEdit.isEditingRow(e)?[_(`mdi:check`,p(`common.save`),`primary`,()=>void a.editStates.rowEdit.saveEditRow().catch(e=>f.error(p(`table.actionFailed`,{action:p(`common.save`)}),e))),_(`mdi:close`,p(`common.cancel`),`default`,()=>a.editStates.rowEdit.cancelEditRow())]:[_(`mdi:pencil`,p(`common.edit`),`warning`,()=>a.editStates.rowEdit.startEditRow(e))],C=(e,t)=>{let n=[];return m(`detail`)&&n.push(_(`mdi:eye`,p(`common.detail`),`info`,()=>void x(e,t))),m(`edit`)&&(i.value.editMode===`modal`||h(r.value?.edit))&&n.push(_(`mdi:pencil`,p(`common.edit`),`warning`,()=>void v(e,t))),m(`delete`)&&n.push(_(`mdi:delete`,p(`common.delete`),`error`,()=>void b(e,t).catch(()=>void 0))),n},w=(e,n)=>{let i=r.value?.custom;if(!i?.length)return null;let a=i.filter(t=>t.show?t.show(e,n):!0);return a.length?(0,s.h)(c.NDropdown,{options:a.map(r=>{let i=typeof r.label==`function`?r.label(e,n):r.label,a=typeof r.icon==`function`?r.icon(e,n):r.icon;return{label:i,key:r.key,icon:()=>(0,s.h)(t.t,{name:a,size:14}),disabled:r.disabled?.(e,n)||!1}}),onSelect:t=>{let r=a.find(e=>e.key===t);if(!r)return;let i=typeof r.label==`function`?r.label(e,n):r.label;Promise.resolve(r.onClick(e,n)).catch(e=>f.error(p(`table.actionFailed`,{action:i}),e))}},()=>_(`mdi:dots-horizontal`,p(`table.moreActions`),`default`,()=>{})):null};return{renderActions:(e,t)=>{if(r.value?.render)return r.value.render(e,t);let n=o(e),l=[`row`,`both`].includes(i.value.editMode);if(l&&a.editStates.rowEdit.isEditingRow(n))return(0,s.h)(c.NSpace,{size:2,wrap:!1},()=>S(n));let u=h(r.value?.edit),d=[...l&&!u?S(n):[],...C(e,t)],f=w(e,t);return f&&d.push(f),(0,s.h)(c.NSpace,{size:2,wrap:!1},()=>d)},isActionEnabled:m}}const we=Symbol(`C_TABLE_GLOBAL_CONFIG`),Te={date:{format:`YYYY-MM-DD`},datetime:{format:`YYYY-MM-DD HH:mm:ss`},currency:{prefix:`¥`,precision:2},percent:{precision:2,suffix:`%`},number:{precision:0}};function Ee(e,t){if(e==null||e===``)return`-`;let n=new Date(typeof e==`number`?e:String(e));if(Number.isNaN(n.getTime()))return String(e);let r=e=>String(e).padStart(2,`0`);return t.replace(`YYYY`,String(n.getFullYear())).replace(`MM`,r(n.getMonth()+1)).replace(`DD`,r(n.getDate())).replace(`HH`,r(n.getHours())).replace(`mm`,r(n.getMinutes())).replace(`ss`,r(n.getSeconds()))}function De(e,t){if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):n.toLocaleString(`zh-CN`,{minimumFractionDigits:t,maximumFractionDigits:t})}const Oe={date:(e,t)=>Ee(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>Ee(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=De(e,t.precision??2);return n===`-`?`-`:`${t.prefix??`¥`}${n}${t.suffix??``}`},percent:(e,t)=>{if(e==null||e===``)return`-`;let n=Number(e);return Number.isNaN(n)?String(e):`${(n*100).toFixed(t.precision??2)}${t.suffix??`%`}`},number:(e,t)=>De(e,t.precision??0)};function ke(e,t,n,r){if(n.fn)return n.fn(e,t);if(n.type===`enum`)return n.mapping?n.mapping[String(e)]??String(e??`-`):String(e??`-`);let i=n.type&&Oe[n.type];return i?i(e,{...{...Te,...r}[n.type],...n.config}):String(e??`-`)}function Ae(){return(0,s.getCurrentInstance)()?(0,s.inject)(we,{}):{}}const je=(e,t)=>t===void 0?e:t&&e&&typeof t==`object`&&typeof e==`object`&&!Array.isArray(t)&&!Array.isArray(e)?{...e,...t}:t;function Me(e,t){let n=t.defaults??{},r={...n,...e};if([`edit`,`pagination`,`expand`,`selection`,`dynamicRows`,`toolbar`,`display`,`virtualScroll`,`summary`,`columnDrag`,`tree`,`rowDrag`,`crossPageSelection`,`export`,`formatterConfig`,`error`,`batchActions`].forEach(t=>{let i=je(n[t],e[t]);i!==void 0&&(r[t]=i)}),t.display){let e=typeof r.display==`object`?r.display:{};r.display={...t.display,...e}}if(t.pageSize&&r.pagination!==!1){let e=typeof r.pagination==`object`?r.pagination:{};e.pageSize||(r.pagination={...e,pageSize:t.pageSize})}return r}const Ne={number:c.NInputNumber,switch:c.NSwitch,input:c.NInput,email:c.NInput,mobile:c.NInput,date:e=>(0,s.h)(c.NDatePicker,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>(0,s.h)(c.NSelect,{...e,options:e.options||[]}),textarea:e=>(0,s.h)(c.NInput,{...e,type:`textarea`,rows:3})},Pe={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Fe=e=>e.map(e=>{let t=e.required?[{required:!0,message:`请输入${e.title}`,trigger:[`blur`,`input`],validator:async(t,n)=>{if(!n&&n!==0&&n!==!1)throw Error(`请输入${e.title}`)}}]:[];return{prop:e.key,label:e.title||e.key,type:Pe[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function Ie(e,t,n){if(e.editRender)return e.editRender(t,{},0);let r=e,i={value:t,"onUpdate:value":n,placeholder:`请输入${r.title??``}`,style:{width:`100%`},...e.editProps};return(0,s.h)(Ne[e.editType||`input`]||Ne.input,i)}function Le(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?ke(r,t,e.formatter,i):String(r??``)}function Re(e,n,r,i,a){let o=(e,n,r)=>(0,s.h)(`button`,{class:`cell-action-btn cell-action-${e}`,title:n,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[(0,s.h)(t.t,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return(0,s.h)(`div`,{class:`cell-editing-container`},[(0,s.h)(`div`,{class:`cell-editing-input`},[Ie(e,n,r)]),(0,s.h)(`div`,{class:`cell-editing-actions`},[o(`save`,`保存`,i),o(`cancel`,`取消`,a)])])}function ze(e,n,r,i,a,o){let c;return c=e.render?e.render(n,r)??String(i??``):e.formatter?ke(i,n,e.formatter,o):String(i??``),(0,s.h)(`div`,{class:`cell-edit-wrapper`},[(0,s.h)(`span`,{class:`cell-value`},c),(0,s.h)(t.t,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function Be(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:o,editModeChecker:c,showActionsColumn:l}=e,u=(0,s.ref)([]),d=(0,s.ref)(!1),f=e=>{let t=u.value.find(e=>e.key===`_actions`),n=e.filter(e=>e.key!==`_actions`);u.value=l.value?[...n,t||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]:n};(0,s.watch)([t,l],([e])=>{e?.length?f(e):u.value=[]},{deep:!0,immediate:!0});let p=(e,t,r,i)=>{let o=e.key??``,s=t[o],{isEditingCell:c,getEditingCellValue:l,updateEditingCellValue:u,saveEditCell:d,cancelEditCell:f,startEditCell:p}=a.editStates.cellEdit;return c(i,o)?Re(e,l(i,o)??s,e=>u(i,o,e),()=>d(),()=>f()):ze(e,t,r,s,()=>p(i,o),n.value.formatterConfig)},m=(e,t,r)=>{let o=e.key??``,s=t[o],l=i(t),u=c.value;return u.isNonEditable(e)?Le(e,t,r,s,n.value.formatterConfig):u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)?Ie(e,a.editStates.rowEdit.getEditingRowData(l)?.[o]??s,e=>a.editStates.rowEdit.updateEditingRowData(l,o,e)):u.isCellEditMode()?p(e,t,r,l):Le(e,t,r,s,n.value.formatterConfig)},h=e=>{let t=e.width||r||180;return typeof t==`number`?t:180},g=e=>{let t=e;return{key:`_index`,title:t.title||`序号`,width:typeof(t.width||50)==`number`&&t.width||50,titleAlign:`center`,align:`center`,render:(e,t)=>t+1,fixed:e.fixed}},_=e=>{let t=e,n={...t,width:h(e),titleAlign:t.titleAlign||`center`,align:t.align||`center`,render:e.render||((t,n)=>m(e,t,n))};return e.fixed&&(n.fixed=e.fixed),e.resizable&&typeof n.width==`number`&&(n.resizable=!0,n.minWidth=e.minWidth||80,n.maxWidth=e.maxWidth||500),n};return{reactiveColumns:u,showSettingsPanel:d,computedColumns:(0,s.computed)(()=>{let e=u.value.filter(e=>{let t=e;return t.visible!==!1&&t.key!==`_actions`}).map(e=>e.type===`index`?g(e):_(e));if(a.dynamicRowsState&&(e=a.dynamicRowsState.enhanceColumns(e)),a.expandState&&(n.value.expandable||n.value.enableSelection)&&(e=a.expandState.getTableColumns(e)),l.value){let t=u.value.find(e=>e.key===`_actions`);e.push({key:`_actions`,title:`操作`,width:t?.width??180,className:`c-table-actions-column`,align:`center`,titleAlign:`center`,render:o,fixed:t?.fixed})}return e}),computedScrollX:(0,s.computed)(()=>{if(e.scrollX!==void 0)return e.scrollX;if(u.value.some(e=>{let t=e;return t.fixed&&t.visible!==!1}))return u.value.filter(e=>e.visible!==!1).reduce((e,t)=>e+h(t),0)+200}),handleColumnChange:e=>{u.value=e.map(e=>{let t=e;return{...e,visible:t.visible!==!1,fixed:e.fixed,width:t.width||r,align:t.align||`center`,titleAlign:t.titleAlign||`center`}})}}}function Ve(e){let{data:t,onReorder:n,onSort:r}=e,i=(0,s.ref)(!1),a=null,o=0,c=!1,l=()=>{a?.destroy(),a=null,i.value=!1},u=async u=>{let d=++o;l();let f=(0,s.toValue)(e.config);if(!(!f?.enabled||!u||c))try{let{default:e}=await import(`sortablejs`);if(c||d!==o)return;let s=u.querySelector(`.n-data-table-tbody`);if(!s)return;a=new e(s,{animation:f.animationDuration??150,handle:f.handleSelector,ghostClass:f.ghostClass??`row-drag-ghost`,chosenClass:f.chosenClass??`row-drag-chosen`,onStart:()=>{i.value=!0},onEnd:e=>{if(i.value=!1,e.oldIndex==null||e.newIndex==null||e.oldIndex===e.newIndex)return;let a=[...t.value],[o]=a.splice(e.oldIndex,1);o&&(a.splice(e.newIndex,0,o),n?.(a),r?.(o,e.oldIndex,e.newIndex))}})}catch{}},d=()=>{o+=1,l()};return(0,s.onBeforeUnmount)(()=>{c=!0,d()}),{initRowDrag:u,destroyRowDrag:d,isDragging:i}}function He(e){let{allData:t,rowKey:n}=e,r=(0,s.ref)(new Set),i=()=>{let t=(0,s.toValue)(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},a=(0,s.computed)(()=>r.value.size),o=e=>e.map(e=>n(e)).filter(e=>r.value.has(e)),c=(t,a)=>{if(!(0,s.toValue)(e.config)?.enabled)return;let o=new Set(r.value);for(let e of a)o.delete(n(e));for(let e of t){let t=i();if(t&&o.size>=t)break;o.add(e)}r.value=o},l=()=>{if(!(0,s.toValue)(e.config)?.enabled)return;let a=[...new Set(t.value.map(e=>n(e)))],o=i();r.value=new Set(o?a.slice(0,o):a)},u=a=>{if(!(0,s.toValue)(e.config)?.enabled||!t.value.some(e=>n(e)===a))return!1;if(r.value.has(a))return!0;let o=i();return o&&r.value.size>=o?!1:(r.value=new Set([...r.value,a]),!0)},d=e=>{if(!r.value.has(e))return;let t=new Set(r.value);t.delete(e),r.value=t},f=()=>{r.value=new Set};return(0,s.watch)(t,e=>{let t=new Set(e.map(e=>n(e))),i=new Set([...r.value].filter(e=>t.has(e)));i.size!==r.value.size&&(r.value=i)}),(0,s.watch)(()=>[(0,s.toValue)(e.config)?.enabled,i()],([e,t])=>{if(!e){f();return}t&&r.value.size>t&&(r.value=new Set([...r.value].slice(0,t)))}),{selectedKeys:r,selectedCount:a,getPageCheckedKeys:o,handlePageSelectionChange:c,selectAll:l,select:u,unselect:d,clearAll:f,getSelectedRows:()=>t.value.filter(e=>r.value.has(n(e))),isSelected:e=>r.value.has(e)}}function Ue(e,t){return e.filter(e=>typeof e.key!=`string`||e.key.startsWith(`_`)||e.type===`selection`||e.type===`expand`?!1:t?.length?t.includes(e.key):e.visible!==!1)}function We(e,t,n){let r=e[t.key];return t.formatter?ke(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function Ge(e,t,n){let r=n&&/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return r.includes(t)||r.includes(`"`)||r.includes(`
2
2
  `)||r.includes(`\r`)?`"${r.replace(/"/g,`""`)}"`:r}function Ke(e){return[...e||`export`].map(e=>e.charCodeAt(0)<32||`<>:"/\\|?*`.includes(e)?`_`:e).join(``).trim()||`export`}function qe(e,t,n){let r=n.csvSeparator??`,`,i=n.preventFormulaInjection!==!1,a=Ue(t,n.columnKeys),o=[];n.includeHeader!==!1&&o.push(a.map(e=>Ge(e.title??``,r,i)).join(r));for(let t of e){let e=a.map(e=>Ge(We(t,e,n.formatterConfig),r,i));o.push(e.join(r))}Ye(new Blob([``+o.join(`
3
- `)],{type:`text/csv;charset=utf-8;`}),`${Ke(n.filename)}.csv`)}async function Je(e,t,n){let r=Ue(t,n.columnKeys),i;try{i=await import(`xlsx`)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),qe(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>We(e,t,n.formatterConfig))),s=n.includeHeader===!1?o:[a,...o],c=i.utils.aoa_to_sheet(s),l=i.utils.book_new();i.utils.book_append_sheet(l,c,`Sheet1`),i.writeFile(l,`${Ke(n.filename)}.xlsx`)}function Ye(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>URL.revokeObjectURL(n),0)}async function Xe(e,t,n={}){n.format===`xlsx`?await Je(e,t,n):qe(e,t,n)}const Ze=e=>[{label:e.fixed?`✓ 取消固定`:`不固定`,key:`none`,disabled:!e.fixed},{label:e.fixed===`left`?`✓ 固定左侧`:`固定左侧`,key:`left`,disabled:!1},{label:e.fixed===`right`?`✓ 固定右侧`:`固定右侧`,key:`right`,disabled:!1}],Qe=[`_actions`],$e=[`selection`,`expand`],et=e=>Qe.includes(e.key)||$e.includes(e.type),$=e=>typeof e==`string`||typeof e==`number`&&Number.isFinite(e),tt=e=>typeof e==`number`&&Number.isFinite(e)&&e>=0||typeof e==`string`&&e.trim().length>0&&e.length<=128,nt=e=>e.map(e=>({...e})),rt=e=>{let t;try{t=JSON.parse(e)}catch{return[]}return Array.isArray(t)?t.flatMap((e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let n=e;return $(n.key)?[{key:n.key,order:t,...typeof n.visible==`boolean`&&{visible:n.visible},...tt(n.width)&&{width:n.width},...(n.fixed===`left`||n.fixed===`right`)&&{fixed:n.fixed}}]:[]}):[]},it=(e,t)=>{let n=new Map(rt(t).map(e=>[e.key,e]));return nt(e).map(e=>{let t=$(e.key)?n.get(e.key):void 0;return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:e}).sort((e,t)=>{let r=$(e.key)?n.get(e.key)?.order:void 0,i=$(t.key)?n.get(t.key)?.order:void 0;return(r??1/0)-(i??1/0)})},at=e=>JSON.stringify(e.filter(e=>$(e.key)).map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}))),ot={class:`column-management-tab`},st={class:`search-row`},ct={class:`resizable-control`},lt={class:`top-actions-bar`},ut={class:`stats-info`},dt={class:`quick-actions`},ft=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],pt={class:`column-info`},mt={class:`column-controls`},ht={class:`column-details`},gt={class:`column-actions`},_t={class:`drag-controls`},vt=(0,s.defineComponent)({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(e,{emit:n}){let r=e,i=n,a=e=>{if(!r.persistKey)return nt(e);try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);return t?it(e,t):nt(e)}catch{return nt(e)}},o=e=>{if(r.persistKey)try{localStorage.setItem(`c_table_cols_${r.persistKey}`,at(e))}catch{}},l=(0,s.ref)(a(r.columns)),u=(0,s.ref)(``),d=(0,s.ref)(),f=(0,s.ref)(null),p=(0,s.ref)(null),m=(0,s.ref)(!1);(0,s.onMounted)(()=>{m.value=l.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...l.value])}),(0,s.watch)(()=>r.columns,e=>{l.value=a(e),m.value=l.value.some(e=>e.resizable===!0)},{deep:!0});let h=(0,s.computed)(()=>{if(!u.value)return l.value;let e=u.value.toLowerCase();return l.value.filter(t=>String(t.title??``).toLowerCase().includes(e)||String(t.key??``).toLowerCase().includes(e))}),g=(0,s.computed)(()=>l.value.filter(e=>e.visible!==!1).length),_=(0,s.computed)(()=>l.value.length),v=e=>{l.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),T()},y=()=>v(!0),b=()=>v(!1),x=e=>{let t=h.value[e];return l.value.findIndex(e=>e.key===t.key)},S=(e,t)=>{let n=x(e);n!==-1&&(t(l.value[n]),T())},C=(e,t)=>{S(e,e=>{e.visible=t})},w=(e,t)=>{S(e,e=>{e.fixed=t===`none`?void 0:t})},T=()=>{o(l.value),i(`change`,[...l.value])},E=()=>{l.value=nt(r.columns),T()},D=e=>{l.value.forEach(t=>{et(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),T()},O=(e,t)=>{let n=x(e),r=x(t);if(n!==-1&&r!==-1){let[e]=l.value.splice(n,1);l.value.splice(r,0,e),T()}},k=(e,t)=>{if(h.value[e].key===`_actions`){t.preventDefault();return}f.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},A=(e,t)=>{t.preventDefault(),!(f.value===null||h.value[e].key===`_actions`)&&(p.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},j=e=>{f.value===null||h.value[e].key===`_actions`||(O(f.value,e),f.value=null,p.value=null)},M=()=>{f.value=null,p.value=null};return(e,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,ot,[(0,s.createCommentVNode)(` 搜索框和列宽调整开关 `),(0,s.createElementVNode)(`div`,st,[(0,s.createVNode)((0,s.unref)(c.NInput),{value:u.value,"onUpdate:value":n[0]||=e=>u.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:(0,s.withCtx)(()=>[(0,s.createVNode)(t.t,{name:`mdi:magnify`})]),_:1},8,[`value`]),(0,s.createElementVNode)(`div`,ct,[(0,s.createVNode)(t.t,{name:`mdi:arrow-split-vertical`,size:`14`,title:m.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),(0,s.createVNode)((0,s.unref)(c.NText),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:(0,s.withCtx)(()=>[...n[2]||=[(0,s.createTextVNode)(` 列宽调整 `,-1)]]),_:1}),(0,s.createVNode)((0,s.unref)(c.NSwitch),{value:m.value,"onUpdate:value":[n[1]||=e=>m.value=e,D],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),(0,s.createCommentVNode)(` 顶部操作栏:统计信息和快捷操作按钮 `),(0,s.createElementVNode)(`div`,lt,[(0,s.createElementVNode)(`div`,ut,[(0,s.createVNode)((0,s.unref)(c.NText),{depth:`3`,style:{fontSize:`13px`}},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)(` 已选 `+(0,s.toDisplayString)(g.value)+` / 总共 `+(0,s.toDisplayString)(_.value)+` 列 `,1)]),_:1})]),(0,s.createElementVNode)(`div`,dt,[(0,s.createVNode)((0,s.unref)(c.NSpace),{size:6},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{size:`tiny`,onClick:y},{default:(0,s.withCtx)(()=>[...n[3]||=[(0,s.createTextVNode)(` 全选 `,-1)]]),_:1}),(0,s.createVNode)((0,s.unref)(c.NButton),{size:`tiny`,onClick:b},{default:(0,s.withCtx)(()=>[...n[4]||=[(0,s.createTextVNode)(` 全不选 `,-1)]]),_:1}),(0,s.createVNode)((0,s.unref)(c.NButton),{size:`tiny`,onClick:E},{default:(0,s.withCtx)(()=>[...n[5]||=[(0,s.createTextVNode)(` 重置 `,-1)]]),_:1})]),_:1})])]),(0,s.createCommentVNode)(` 列列表 `),(0,s.createElementVNode)(`div`,{ref_key:`listRef`,ref:d,class:`column-list`},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(h.value,(e,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:e.key,class:(0,s.normalizeClass)([`column-item`,{disabled:e.key===`_actions`,"fixed-left":e.fixed===`left`,"fixed-right":e.fixed===`right`}]),draggable:e.key!==`_actions`,onDragstart:e=>k(r,e),onDragover:e=>A(r,e),onDragend:M,onDrop:e=>j(r)},[(0,s.createElementVNode)(`div`,pt,[(0,s.createElementVNode)(`div`,mt,[(0,s.createVNode)(t.t,{name:`mdi:drag`,size:`16`,class:(0,s.normalizeClass)([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),(0,s.createVNode)((0,s.unref)(c.NCheckbox),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>C(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),(0,s.createElementVNode)(`div`,ht,[(0,s.createVNode)((0,s.unref)(c.NSpace),{align:`center`,size:6},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NText),{strong:``,style:{fontSize:`13px`}},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NTag),{key:0,size:`tiny`,type:`info`},{default:(0,s.withCtx)(()=>[...n[6]||=[(0,s.createTextVNode)(` 左固定 `,-1)]]),_:1})):(0,s.createCommentVNode)(`v-if`,!0),e.fixed===`right`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NTag),{key:1,size:`tiny`,type:`warning`},{default:(0,s.withCtx)(()=>[...n[7]||=[(0,s.createTextVNode)(` 右固定 `,-1)]]),_:1})):(0,s.createCommentVNode)(`v-if`,!0)]),_:2},1024),(0,s.createVNode)((0,s.unref)(c.NText),{depth:`3`,style:{fontSize:`11px`}},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.key),1)]),_:2},1024)])]),(0,s.createElementVNode)(`div`,gt,[(0,s.createElementVNode)(`div`,_t,[(0,s.createVNode)(t.t,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:(0,s.normalizeClass)({disabled:r===0}),onClick:e=>r!==0&&O(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),(0,s.createVNode)(t.t,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==h.value.length-1,class:(0,s.normalizeClass)({disabled:r===h.value.length-1}),onClick:e=>r!==h.value.length-1&&O(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),(0,s.createVNode)((0,s.unref)(c.NDropdown),{options:(0,s.unref)(Ze)(e),onSelect:e=>w(r,e)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)(t.t,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:(0,s.normalizeStyle)({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,ft))),128))],512)]))}});var yt=n.t(vt,[[`__scopeId`,`data-v-6ff103ee`]]);function bt(e){return e}function xt(e){return e}function St(e,t){let n=new Map,r=[];return e.forEach((e,i)=>{let a;try{a=t(e)}catch(t){r.push({type:`error`,row:e,index:i,cause:t});return}if(a==null||a===``){r.push({type:`missing`,row:e,index:i});return}let o=n.get(a);if(o!==void 0){r.push({type:`duplicate`,row:e,index:i,key:a,firstIndex:o});return}n.set(a,i)}),r}function Ct(e,t,n){let r=new Set,i=new WeakSet,a=[...e],o=e=>{try{return n(e)}catch{return}},s=e=>e!=null&&e!==``;for(;a.length;){let e=a.pop();if(i.has(e))continue;i.add(e);let n=e[t];if(!Array.isArray(n)||n.length===0)continue;let c=o(e);s(c)&&r.add(c);for(let e of n)e&&typeof e==`object`&&a.push(e)}return[...r]}const wt={key:1,class:`table-toolbar`},Tt={class:`toolbar-left`},Et={class:`toolbar-right`},Dt={key:2,class:`batch-actions-bar`},Ot={class:`batch-info`},kt={key:3,class:`table-error-state`},At={class:`error-content`},jt={class:`error-message`},Mt=(0,s.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:l,emit:u}){let d=n,f=u,p=(e,...t)=>{if(f(e,...t),d.crud)return{save:d.crud.save,cancel:d.crud.handleCancel,"pagination-change":d.crud.handlePaginationChange,"row-delete":d.crud.handleRowDelete,"view-detail":d.crud.detail?.show}[e]?.(...t)},m=Ae(),h=e=>typeof d.rowKey==`function`?d.rowKey(e):e[d.rowKey],g=(0,s.computed)(()=>{let e=d.config||{};if(d.crud){let t={};d.crud.actions&&(t.actions=d.crud.actions.value),d.crud.pagination&&(t.pagination=d.crud.pagination.value??void 0),e={...t,...e}}return Me(e,m)}),_=(0,s.computed)(()=>d.columns??d.crud?.columns.value??[]),v=(0,s.computed)(()=>w(g.value)),y=e.r(()=>v.value.feedback),{t:b}=e.i(()=>v.value.locale),x=(0,s.computed)(()=>T(v.value)),S=e=>e&&typeof e==`object`&&`value`in e?e.value:e,C=(0,s.computed)(()=>S(d.data)??d.crud?.data.value??[]),E=(0,s.computed)(()=>S(d.loading)??d.crud?.loading.value??!1),D=(0,s.computed)(()=>v.value.treeEnabled&&v.value.treeDefaultExpandAll?Ct(C.value,v.value.treeChildrenKey,h):[]),O=(0,s.computed)(()=>({...v.value,defaultExpandedKeys:[...new Set([...v.value.defaultExpandedKeys??[],...D.value])]})),k=``;(0,s.watch)(()=>C.value.map(e=>{try{return h(e)}catch{return}}),()=>{if(g.value.validateRowKeys===!1){k=``;return}let e=St(C.value,h);if(e.length===0){k=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==k&&(k=t,y.warning(b(`table.invalidRowKeys`,{count:e.length})),f(`row-key-error`,e))},{immediate:!0});let A=xe({data:C,config:(0,s.computed)(()=>v.value.pagination),emit:p}),j=be({config:O,data:()=>C.value,rowKey:h,emit:p,columns:()=>_.value}),M=new Set;(0,s.watch)(D,e=>{if(!v.value.treeEnabled||!v.value.treeDefaultExpandAll){M.clear();return}let t=e.filter(e=>!M.has(e));e.forEach(e=>M.add(e));let n=j.expandedKeys.value,r=t.filter(e=>!n.includes(e));r.length&&j.expandState?.handleExpandChange([...n,...r])},{immediate:!0});let N=Ce({actions:(0,s.computed)(()=>g.value.actions||{}),config:v,tableManager:j,rowKey:h,onRowDeleted:(e,t)=>f(`row-delete`,e,t),isDeleteFeedbackHandled:e=>d.crud?.actions?.value.delete===e,onViewDetail:e=>p(`view-detail`,e)}),ee=(0,s.computed)(()=>{let{actions:e}=g.value;return!!(v.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),P=Be({rawColumns:_,config:v,columnWidth:v.value.columnWidth,scrollX:v.value.scrollX,rowKey:h,tableManager:j,actionsRenderer:N.renderActions,editModeChecker:x,showActionsColumn:ee}),{showSettingsPanel:F,reactiveColumns:te,computedColumns:ne,computedScrollX:re}=P,ie=Ve({data:A.paginatedData,rowKey:h,config:(0,s.computed)(()=>v.value.rowDrag),onReorder:e=>{let t=v.value.pagination;if(!t?.enabled||t.remote){p(`update:data`,e);return}let n=(A.currentPage.value-1)*A.currentPageSize.value,r=[...C.value];r.splice(n,e.length,...e),p(`update:data`,r)},onSort:(e,t,n)=>{let r=v.value.pagination?.enabled&&!v.value.pagination.remote?(A.currentPage.value-1)*A.currentPageSize.value:0;f(`row-move`,e,t+r,n+r)}}),I=He({allData:C,rowKey:h,config:(0,s.computed)(()=>v.value.crossPageSelection)}),L=(0,s.computed)(()=>v.value.crossPageSelection?.enabled===!0),ae=(0,s.computed)(()=>L.value?I.selectedCount.value:j.checkedKeys?.value?.length??0),R=(0,s.ref)(new Set),oe=async e=>{if(R.value.has(e.key))return;let t=L.value?[...I.selectedKeys.value]:j.checkedKeys?.value??[],n=L.value?I.getSelectedRows():C.value.filter(e=>t.includes(h(e)));R.value=new Set(R.value).add(e.key);try{await e.onClick(t,n),v.value.batchActions?.clearSelectionOnSuccess&&se()}catch(t){v.value.batchActions?.onError?.(t,e.key),f(`batch-action-error`,t,e.key)}finally{let t=new Set(R.value);t.delete(e.key),R.value=t}},se=()=>{L.value?I.clearAll():j.stateManager.selection.clear()},ce=(0,s.computed)(()=>L.value?I.getPageCheckedKeys(A.paginatedData.value):null),le=e=>{L.value&&I.handlePageSelectionChange(e,A.paginatedData.value),j.expandState?.handleSelectionChange?.(e)},ue=async()=>{let e=v.value.exportConfig??{};await Xe(C.value,_.value,{...e,formatterConfig:v.value.formatterConfig})},de=(0,s.computed)(()=>v.value.summaryRender),z=(0,s.ref)(),B=null,fe=0,pe=()=>{fe+=1,B?.destroy(),B=null},V=async()=>{let e=++fe;if(B?.destroy(),B=null,!(!v.value.enableColumnDrag||!z.value))try{let{default:t}=await import(`sortablejs`);if(e!==fe||!z.value)return;let n=z.value.querySelector(`.n-data-table-thead tr`);if(!n)return;B=new t(n,{animation:v.value.columnDragAnimationDuration,handle:v.value.columnDragHandleClass?`.${v.value.columnDragHandleClass}`:void 0,filter:`.c-table-actions-column`,preventOnFilter:!0,ghostClass:`column-drag-ghost`,onEnd:e=>{if(e.oldIndex==null||e.newIndex==null)return;let t=[...te.value],n=t.filter(e=>e.visible!==!1&&e.key!==`_actions`),r=n[e.oldIndex],i=n[e.newIndex];if(!r||!i||r===i)return;let a=t.indexOf(r),o=t.indexOf(i);t.splice(a,1),t.splice(o,0,r),P.handleColumnChange(t),f(`column-change`,t)}})}catch{}},H=(0,s.ref)(),U=(0,s.computed)(()=>({striped:v.value.striped,bordered:v.value.bordered,singleLine:v.value.singleLine,size:v.value.size,maxHeight:v.value.maxHeight})),W=(0,s.ref)(),G=(0,s.ref)(!1),K=(0,s.ref)({}),q=(0,s.computed)({get:()=>j.editStates.modalEdit.isModalVisible.value,set:e=>{j.editStates.modalEdit.isModalVisible.value=e}}),me=(0,s.computed)(()=>_.value.filter(e=>e.editable!==!1)),he=(0,s.computed)(()=>`edit-form-${j.editStates.modalEdit.editingRowKey.value??`new`}`),ge=(0,s.computed)(()=>Fe(me.value));(0,s.watch)(()=>j.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(K.value=a.t(e))},{immediate:!0,deep:!0});let J=null;(0,s.watch)(q,e=>{e&&J&&(clearTimeout(J),J=null),e||(J&&clearTimeout(J),J=setTimeout(()=>{K.value={},J=null},300))});let _e=async()=>{if(W.value){G.value=!0;try{await W.value.validate()}catch{G.value=!1;return}try{await j.editStates.modalEdit.saveEdit(K.value)}finally{G.value=!1}}},ve=()=>{K.value={},j.editStates.modalEdit.cancelEdit()},ye=e=>{P.handleColumnChange(e),f(`column-change`,P.reactiveColumns.value)},{edit:Y,expand:X,selection:Z,dynamicRows:Q}=j.stateManager,Se={startEdit:Y.start,cancelEdit:Y.cancel,saveEdit:Y.save,expandRow:X.row,collapseRow:X.collapse,toggleExpand:X.toggle,expandAll:X.all,collapseAll:X.collapseAll,selectRow:e=>L.value?I.select(e):(Z.select(e),Z.isSelected(e)),unselectRow:e=>{L.value?I.unselect(e):Z.unselect(e)},selectAll:()=>{L.value?I.selectAll():Z.all()},clearSelection:se,isRowSelected:e=>L.value?I.isSelected(e):Z.isSelected(e),clearAllSelections:()=>{I.clearAll(),j.stateManager.clearAllSelections()},selectChildRow:j.stateManager.childSelection.select,unselectChildRow:j.stateManager.childSelection.unselect,selectAllChildren:j.stateManager.childSelection.selectAll,clearChildrenSelection:j.stateManager.childSelection.clear,getChildSelectedRows:j.stateManager.childSelection.getSelected,addRow:Q.add,insertRow:Q.insert,deleteRow:Q.delete,copyRow:Q.copy,moveRowUp:Q.moveUp,moveRowDown:Q.moveDown,clearRowSelection:Q?.clearSelection,getSelectedRowData:Q.getSelected,printTable:e=>Q.print(e??z.value),downloadTableScreenshot:(e,t)=>Q.download(e??z.value,t),resetToFirstPage:A.resetToFirstPage,getTotalPages:A.getTotalPages,getSelectedRows:()=>L.value?I.getSelectedRows():Z.getSelected(),getEditingData:Y.getEditingData,isEditing:Y.isEditing,isExpanded:X.isExpanded,getManager:()=>j.stateManager,exportData:ue,crossPageSelection:{enabled:L,selectedKeys:I.selectedKeys,selectedCount:I.selectedCount,select:I.select,unselect:I.unselect,selectAll:I.selectAll,clearAll:I.clearAll,getSelectedRows:I.getSelectedRows}};return l(Se),(0,s.onMounted)(()=>{let e=d.crud?.tableRef;e&&(e.value=Se),V(),z.value&&ie.initRowDrag(z.value)}),(0,s.watch)([()=>v.value.enableColumnDrag,()=>v.value.columnDragHandleClass,()=>E.value,()=>ne.value.length],async()=>{await(0,s.nextTick)(),await V()},{immediate:!0,flush:`post`}),(0,s.watch)([()=>v.value.rowDrag,()=>E.value,()=>A.paginatedData.value.length,()=>A.currentPage.value],async()=>{await(0,s.nextTick)(),z.value&&await ie.initRowDrag(z.value)},{immediate:!0,deep:!0,flush:`post`}),(0,s.onBeforeUnmount)(()=>{J&&clearTimeout(J),pe(),ie.destroyRowDrag()}),(e,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{ref_key:`tableWrapperRef`,ref:z,class:`c-table-wrapper`},[(0,s.createCommentVNode)(` 动态行工具栏 `),v.value.dynamicRows&&(0,s.unref)(j).dynamicRowsState?((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)((0,s.unref)(j).dynamicRowsState.renderToolbar(z.value)),{key:0})):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 表格工具栏 `),v.value.showToolbar?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,wt,[(0,s.createElementVNode)(`div`,Tt,[(0,s.renderSlot)(e.$slots,`toolbar-left`,{},void 0,!0),v.value.toolbarActions.length?((0,s.openBlock)(),(0,s.createBlock)(i.t,{key:0,actions:v.value.toolbarActions,config:{...v.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,s.createCommentVNode)(`v-if`,!0)]),(0,s.createElementVNode)(`div`,Et,[(0,s.renderSlot)(e.$slots,`toolbar-right`,{},void 0,!0),v.value.toolbarRightActions.length?((0,s.openBlock)(),(0,s.createBlock)(i.t,{key:0,actions:v.value.toolbarRightActions,config:{align:`right`,...v.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,s.createCommentVNode)(`v-if`,!0),v.value.exportConfig?((0,s.openBlock)(),(0,s.createBlock)(t.t,{key:1,name:`mdi:download`,size:`18`,title:(0,s.unref)(b)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:n[0]||=e=>ue()},null,8,[`title`])):(0,s.createCommentVNode)(`v-if`,!0),v.value.enableColumnSettings?((0,s.openBlock)(),(0,s.createBlock)(t.t,{key:2,name:`mdi:cog`,size:`18`,title:(0,s.unref)(b)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:n[1]||=e=>F.value=!0},null,8,[`title`])):(0,s.createCommentVNode)(`v-if`,!0)])])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 批量操作栏 `),v.value.batchActions?.enabled&&ae.value>0?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,Dt,[(0,s.createElementVNode)(`span`,Ot,(0,s.toDisplayString)((0,s.unref)(b)(`table.selectedCount`,{count:ae.value})),1),(0,s.createVNode)((0,s.unref)(c.NSpace),{size:8},{default:(0,s.withCtx)(()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(v.value.batchActions.actions||[],e=>((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NButton),{key:e.key,type:e.type||`default`,size:`small`,loading:R.value.has(e.key),disabled:R.value.has(e.key),onClick:t=>oe(e)},(0,s.createSlots)({default:(0,s.withCtx)(()=>[(0,s.createTextVNode)(` `+(0,s.toDisplayString)(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:(0,s.withCtx)(()=>[(0,s.createVNode)(t.t,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`loading`,`disabled`,`onClick`]))),128)),(0,s.createVNode)((0,s.unref)(c.NButton),{size:`small`,onClick:se},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`table.cancelSelection`)),1)]),_:1})]),_:1})])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 错误状态 `),v.value.error?.show?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,kt,[(0,s.renderSlot)(e.$slots,`error`,{error:v.value.error},()=>[(0,s.createElementVNode)(`div`,At,[(0,s.createVNode)(t.t,{name:`mdi:alert-circle-outline`,size:`48`}),(0,s.createElementVNode)(`p`,jt,(0,s.toDisplayString)(v.value.error.message||(0,s.unref)(b)(`table.loadFailed`)),1),v.value.error.onRetry?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NButton),{key:0,type:`primary`,size:`small`,onClick:v.value.error.onRetry},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`common.retry`)),1)]),_:1},8,[`onClick`])):(0,s.createCommentVNode)(`v-if`,!0)])],!0)])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 表格主体 `),v.value.error?.show?(0,s.createCommentVNode)(`v-if`,!0):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NDataTable),(0,s.mergeProps)({key:4,ref_key:`tableRef`,ref:H},{...U.value,...e.$attrs},{columns:(0,s.unref)(ne),data:(0,s.unref)(A).paginatedData.value,loading:E.value,"row-key":h,"expanded-row-keys":(0,s.unref)(j).expandedKeys.value,"checked-row-keys":ce.value??(0,s.unref)(j).checkedKeys.value,"onUpdate:expandedRowKeys":(0,s.unref)(j).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":le,"scroll-x":(0,s.unref)(re),"virtual-scroll":v.value.virtualScroll,"min-row-height":v.value.virtualScroll?v.value.virtualItemHeight:void 0,"max-height":v.value.virtualScroll?v.value.virtualMaxHeight:v.value.maxHeight,summary:de.value,"summary-placement":v.value.summaryPosition,"children-key":v.value.treeEnabled?v.value.treeChildrenKey:void 0,indent:v.value.treeEnabled?v.value.treeIndent:void 0,"default-expand-all":v.value.treeEnabled?v.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),{loading:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`loading`,{},()=>[(0,s.createVNode)((0,s.unref)(r.t),{label:(0,s.unref)(b)(`table.loading`)},null,8,[`label`])],!0)]),_:3},16,[`columns`,`data`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),(0,s.createCommentVNode)(` 分页 `),(0,s.unref)(A).paginationConfig.value?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NPagination),(0,s.mergeProps)({key:5},(0,s.unref)(A).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 编辑弹窗 `),v.value.editMode===`modal`||v.value.editMode===`both`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NModal),{key:6,show:q.value,"onUpdate:show":n[3]||=e=>q.value=e,title:v.value.modalTitle,width:v.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NSpace),{justify:`end`},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{onClick:ve},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`common.cancel`)),1)]),_:1}),(0,s.createVNode)((0,s.unref)(c.NButton),{type:`primary`,loading:G.value,onClick:_e},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`common.save`)),1)]),_:1},8,[`loading`])]),_:1})]),default:(0,s.withCtx)(()=>[q.value&&ge.value.length?((0,s.openBlock)(),(0,s.createBlock)(o.t,{ref_key:`editFormRef`,ref:W,key:he.value,modelValue:K.value,"onUpdate:modelValue":n[2]||=e=>K.value=e,options:ge.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):(0,s.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 动态行确认删除弹窗 `),v.value.dynamicRows&&(0,s.unref)(j).dynamicRowsState?((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)((0,s.unref)(j).dynamicRowsState.renderConfirmModal()),{key:7})):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 列设置抽屉 `),(0,s.createVNode)((0,s.unref)(c.NDrawer),{show:(0,s.unref)(F),"onUpdate:show":n[4]||=e=>(0,s.isRef)(F)?F.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NDrawerContent),{title:(0,s.unref)(b)(`table.columnSettings`),closable:``},{default:(0,s.withCtx)(()=>[(0,s.createVNode)(yt,{columns:(0,s.unref)(te),"persist-key":v.value.persistKey,onChange:ye},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],512))}});var Nt=n.t(Mt,[[`__scopeId`,`data-v-be2bef78`]]);const Pt=(e,t)=>Number.isFinite(e)?Math.max(1,Math.floor(e)):t;function Ft(e){let t=(0,s.shallowRef)([]),n=(0,s.ref)(!1),r=(0,s.shallowRef)(),i=(0,s.ref)(0),o=a.t(e.initialQuery),c=(0,s.ref)(Pt(e.initialPage,1)),l=(0,s.ref)(Pt(e.pageSize,20)),u=(0,s.shallowRef)(a.t(o)),d=0,f=null,p=async()=>{let o=++d;f?.abort(),f=new AbortController,n.value=!0,r.value=void 0;try{let n=await e.request({page:c.value,pageSize:l.value,query:a.t(u.value),signal:f.signal});if(o!==d||f.signal.aborted)return!1;if(!Array.isArray(n.data)||!Number.isFinite(n.total))throw TypeError(`[C_Table] request 必须返回 { data: T[], total: number }`);return t.value=a.t([...n.data]),i.value=Math.max(0,Math.floor(n.total)),e.onSuccess?.({data:t.value,total:i.value}),!0}catch(t){return o!==d||f.signal.aborted?!1:(r.value=t,e.onError?.(t),!1)}finally{o===d&&(n.value=!1)}},m=async(e,t=!0)=>(u.value=a.t(typeof e==`function`?e(u.value):{...u.value,...e}),c.value=1,t?p():!0),h=async(e,t)=>(c.value=Pt(e,c.value),l.value=Pt(t,l.value),p()),g=async(e=!0)=>(u.value=a.t(o),c.value=1,e?p():!0),_=(0,s.computed)(()=>{let r=(0,s.toValue)(e.config)??{},a=typeof r.pagination==`object`?r.pagination:{};return{data:t.value,loading:n.value,columns:(0,s.toValue)(e.columns),rowKey:e.rowKey??`id`,config:{...r,pagination:{...a,enabled:!0,remote:!0,page:c.value,pageSize:l.value,total:i.value}}}}),v=(0,s.computed)(()=>({..._.value,onPaginationChange:h})),y=()=>{d+=1,f?.abort(),f=null,n.value=!1};return e.immediate!==!1&&(0,s.onMounted)(()=>void p()),(0,s.onScopeDispose)(y),{data:t,loading:n,error:r,total:i,page:c,pageSize:l,query:u,tableProps:_,execute:p,reload:p,setQuery:m,resetQuery:g,handlePaginationChange:h,bindings:v,cancel:y}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return bt}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Ft}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return J}});
3
+ `)],{type:`text/csv;charset=utf-8;`}),`${Ke(n.filename)}.csv`)}async function Je(e,t,n){let r=Ue(t,n.columnKeys),i;try{i=await import(`xlsx`)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),qe(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>We(e,t,n.formatterConfig))),s=n.includeHeader===!1?o:[a,...o],c=i.utils.aoa_to_sheet(s),l=i.utils.book_new();i.utils.book_append_sheet(l,c,`Sheet1`),i.writeFile(l,`${Ke(n.filename)}.xlsx`)}function Ye(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.style.display=`none`,document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>URL.revokeObjectURL(n),0)}async function Xe(e,t,n={}){n.format===`xlsx`?await Je(e,t,n):qe(e,t,n)}const Ze=e=>[{label:e.fixed?`✓ 取消固定`:`不固定`,key:`none`,disabled:!e.fixed},{label:e.fixed===`left`?`✓ 固定左侧`:`固定左侧`,key:`left`,disabled:!1},{label:e.fixed===`right`?`✓ 固定右侧`:`固定右侧`,key:`right`,disabled:!1}],Qe=[`_actions`],$e=[`selection`,`expand`],et=e=>Qe.includes(e.key)||$e.includes(e.type),$=e=>typeof e==`string`||typeof e==`number`&&Number.isFinite(e),tt=e=>typeof e==`number`&&Number.isFinite(e)&&e>=0||typeof e==`string`&&e.trim().length>0&&e.length<=128,nt=e=>e.map(e=>({...e})),rt=e=>{let t;try{t=JSON.parse(e)}catch{return[]}return Array.isArray(t)?t.flatMap((e,t)=>{if(!e||typeof e!=`object`||Array.isArray(e))return[];let n=e;return $(n.key)?[{key:n.key,order:t,...typeof n.visible==`boolean`&&{visible:n.visible},...tt(n.width)&&{width:n.width},...(n.fixed===`left`||n.fixed===`right`)&&{fixed:n.fixed}}]:[]}):[]},it=(e,t)=>{let n=new Map(rt(t).map(e=>[e.key,e]));return nt(e).map(e=>{let t=$(e.key)?n.get(e.key):void 0;return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:e}).sort((e,t)=>{let r=$(e.key)?n.get(e.key)?.order:void 0,i=$(t.key)?n.get(t.key)?.order:void 0;return(r??1/0)-(i??1/0)})},at=e=>JSON.stringify(e.filter(e=>$(e.key)).map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}))),ot={class:`column-management-tab`},st={class:`search-row`},ct={class:`resizable-control`},lt={class:`top-actions-bar`},ut={class:`stats-info`},dt={class:`quick-actions`},ft=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],pt={class:`column-info`},mt={class:`column-controls`},ht={class:`column-details`},gt={class:`column-actions`},_t={class:`drag-controls`},vt=(0,s.defineComponent)({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(e,{emit:n}){let r=e,i=n,a=e=>{if(!r.persistKey)return nt(e);try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);return t?it(e,t):nt(e)}catch{return nt(e)}},o=e=>{if(r.persistKey)try{localStorage.setItem(`c_table_cols_${r.persistKey}`,at(e))}catch{}},l=(0,s.ref)(a(r.columns)),u=(0,s.ref)(``),d=(0,s.ref)(),f=(0,s.ref)(null),p=(0,s.ref)(null),m=(0,s.ref)(!1);(0,s.onMounted)(()=>{m.value=l.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...l.value])}),(0,s.watch)(()=>r.columns,e=>{l.value=a(e),m.value=l.value.some(e=>e.resizable===!0)},{deep:!0});let h=(0,s.computed)(()=>{if(!u.value)return l.value;let e=u.value.toLowerCase();return l.value.filter(t=>String(t.title??``).toLowerCase().includes(e)||String(t.key??``).toLowerCase().includes(e))}),g=(0,s.computed)(()=>l.value.filter(e=>e.visible!==!1).length),_=(0,s.computed)(()=>l.value.length),v=e=>{l.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),T()},y=()=>v(!0),b=()=>v(!1),x=e=>{let t=h.value[e];return l.value.findIndex(e=>e.key===t.key)},S=(e,t)=>{let n=x(e);n!==-1&&(t(l.value[n]),T())},C=(e,t)=>{S(e,e=>{e.visible=t})},w=(e,t)=>{S(e,e=>{e.fixed=t===`none`?void 0:t})},T=()=>{o(l.value),i(`change`,[...l.value])},E=()=>{l.value=nt(r.columns),T()},D=e=>{l.value.forEach(t=>{et(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),T()},O=(e,t)=>{let n=x(e),r=x(t);if(n!==-1&&r!==-1){let[e]=l.value.splice(n,1);l.value.splice(r,0,e),T()}},k=(e,t)=>{if(h.value[e].key===`_actions`){t.preventDefault();return}f.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},A=(e,t)=>{t.preventDefault(),!(f.value===null||h.value[e].key===`_actions`)&&(p.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},j=e=>{f.value===null||h.value[e].key===`_actions`||(O(f.value,e),f.value=null,p.value=null)},M=()=>{f.value=null,p.value=null};return(e,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,ot,[(0,s.createCommentVNode)(` 搜索框和列宽调整开关 `),(0,s.createElementVNode)(`div`,st,[(0,s.createVNode)((0,s.unref)(c.NInput),{value:u.value,"onUpdate:value":n[0]||=e=>u.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:(0,s.withCtx)(()=>[(0,s.createVNode)(t.t,{name:`mdi:magnify`})]),_:1},8,[`value`]),(0,s.createElementVNode)(`div`,ct,[(0,s.createVNode)(t.t,{name:`mdi:arrow-split-vertical`,size:`14`,title:m.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),(0,s.createVNode)((0,s.unref)(c.NText),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:(0,s.withCtx)(()=>[...n[2]||=[(0,s.createTextVNode)(` 列宽调整 `,-1)]]),_:1}),(0,s.createVNode)((0,s.unref)(c.NSwitch),{value:m.value,"onUpdate:value":[n[1]||=e=>m.value=e,D],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),(0,s.createCommentVNode)(` 顶部操作栏:统计信息和快捷操作按钮 `),(0,s.createElementVNode)(`div`,lt,[(0,s.createElementVNode)(`div`,ut,[(0,s.createVNode)((0,s.unref)(c.NText),{depth:`3`,style:{fontSize:`13px`}},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)(` 已选 `+(0,s.toDisplayString)(g.value)+` / 总共 `+(0,s.toDisplayString)(_.value)+` 列 `,1)]),_:1})]),(0,s.createElementVNode)(`div`,dt,[(0,s.createVNode)((0,s.unref)(c.NSpace),{size:6},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{size:`tiny`,onClick:y},{default:(0,s.withCtx)(()=>[...n[3]||=[(0,s.createTextVNode)(` 全选 `,-1)]]),_:1}),(0,s.createVNode)((0,s.unref)(c.NButton),{size:`tiny`,onClick:b},{default:(0,s.withCtx)(()=>[...n[4]||=[(0,s.createTextVNode)(` 全不选 `,-1)]]),_:1}),(0,s.createVNode)((0,s.unref)(c.NButton),{size:`tiny`,onClick:E},{default:(0,s.withCtx)(()=>[...n[5]||=[(0,s.createTextVNode)(` 重置 `,-1)]]),_:1})]),_:1})])]),(0,s.createCommentVNode)(` 列列表 `),(0,s.createElementVNode)(`div`,{ref_key:`listRef`,ref:d,class:`column-list`},[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(h.value,(e,r)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:e.key,class:(0,s.normalizeClass)([`column-item`,{disabled:e.key===`_actions`,"fixed-left":e.fixed===`left`,"fixed-right":e.fixed===`right`}]),draggable:e.key!==`_actions`,onDragstart:e=>k(r,e),onDragover:e=>A(r,e),onDragend:M,onDrop:e=>j(r)},[(0,s.createElementVNode)(`div`,pt,[(0,s.createElementVNode)(`div`,mt,[(0,s.createVNode)(t.t,{name:`mdi:drag`,size:`16`,class:(0,s.normalizeClass)([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),(0,s.createVNode)((0,s.unref)(c.NCheckbox),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>C(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),(0,s.createElementVNode)(`div`,ht,[(0,s.createVNode)((0,s.unref)(c.NSpace),{align:`center`,size:6},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NText),{strong:``,style:{fontSize:`13px`}},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NTag),{key:0,size:`tiny`,type:`info`},{default:(0,s.withCtx)(()=>[...n[6]||=[(0,s.createTextVNode)(` 左固定 `,-1)]]),_:1})):(0,s.createCommentVNode)(`v-if`,!0),e.fixed===`right`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NTag),{key:1,size:`tiny`,type:`warning`},{default:(0,s.withCtx)(()=>[...n[7]||=[(0,s.createTextVNode)(` 右固定 `,-1)]]),_:1})):(0,s.createCommentVNode)(`v-if`,!0)]),_:2},1024),(0,s.createVNode)((0,s.unref)(c.NText),{depth:`3`,style:{fontSize:`11px`}},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.key),1)]),_:2},1024)])]),(0,s.createElementVNode)(`div`,gt,[(0,s.createElementVNode)(`div`,_t,[(0,s.createVNode)(t.t,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:(0,s.normalizeClass)({disabled:r===0}),onClick:e=>r!==0&&O(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),(0,s.createVNode)(t.t,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==h.value.length-1,class:(0,s.normalizeClass)({disabled:r===h.value.length-1}),onClick:e=>r!==h.value.length-1&&O(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),(0,s.createVNode)((0,s.unref)(c.NDropdown),{options:(0,s.unref)(Ze)(e),onSelect:e=>w(r,e)},{default:(0,s.withCtx)(()=>[(0,s.createVNode)(t.t,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:(0,s.normalizeStyle)({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,ft))),128))],512)]))}});var yt=n.t(vt,[[`__scopeId`,`data-v-6ff103ee`]]);function bt(e){return e}function xt(e){return e}function St(e,t){let n=new Map,r=[];return e.forEach((e,i)=>{let a;try{a=t(e)}catch(t){r.push({type:`error`,row:e,index:i,cause:t});return}if(a==null||a===``){r.push({type:`missing`,row:e,index:i});return}let o=n.get(a);if(o!==void 0){r.push({type:`duplicate`,row:e,index:i,key:a,firstIndex:o});return}n.set(a,i)}),r}function Ct(e,t,n){let r=new Set,i=new WeakSet,a=[...e],o=e=>{try{return n(e)}catch{return}},s=e=>e!=null&&e!==``;for(;a.length;){let e=a.pop();if(i.has(e))continue;i.add(e);let n=e[t];if(!Array.isArray(n)||n.length===0)continue;let c=o(e);s(c)&&r.add(c);for(let e of n)e&&typeof e==`object`&&a.push(e)}return[...r]}const wt=[`aria-busy`],Tt={key:1,class:`table-toolbar`},Et={class:`toolbar-left`},Dt={class:`toolbar-right`},Ot={key:2,class:`batch-actions-bar`},kt={class:`batch-info`},At={key:3,class:`table-error-state`},jt={class:`error-content`},Mt={class:`error-message`},Nt=(0,s.defineComponent)({name:`C_Table`,inheritAttrs:!1,__name:`index`,props:{columns:{},data:{},loading:{},rowKey:{type:[String,Function],default:`id`},config:{default:()=>({})},crud:{}},emits:[`pagination-change`,`row-delete`,`batch-action-error`,`row-key-error`,`expand-change`,`selection-change`,`child-selection-change`,`parent-child-link-change`,`update:data`,`save`,`cancel`,`edit-error`,`row-add`,`row-copy`,`row-move`,`row-selection-change`,`view-detail`,`column-change`],setup(n,{expose:l,emit:u}){let d=n,f=u,p=(e,...t)=>{if(f(e,...t),d.crud)return{save:d.crud.save,cancel:d.crud.handleCancel,"pagination-change":d.crud.handlePaginationChange,"row-delete":d.crud.handleRowDelete,"view-detail":d.crud.detail?.show}[e]?.(...t)},m=Ae(),h=e=>typeof d.rowKey==`function`?d.rowKey(e):e[d.rowKey],g=(0,s.computed)(()=>{let e=d.config||{};if(d.crud){let t={};d.crud.actions&&(t.actions=d.crud.actions.value),d.crud.pagination&&(t.pagination=d.crud.pagination.value??void 0),e={...t,...e}}return Me(e,m)}),_=(0,s.computed)(()=>d.columns??d.crud?.columns.value??[]),v=(0,s.computed)(()=>w(g.value)),y=e.r(()=>v.value.feedback),{t:b}=e.i(()=>v.value.locale),x=(0,s.computed)(()=>T(v.value)),S=e=>e&&typeof e==`object`&&`value`in e?e.value:e,C=(0,s.computed)(()=>S(d.data)??d.crud?.data.value??[]),E=(0,s.computed)(()=>S(d.loading)??d.crud?.loading.value??!1),D=(0,s.computed)(()=>v.value.treeEnabled&&v.value.treeDefaultExpandAll?Ct(C.value,v.value.treeChildrenKey,h):[]),O=(0,s.computed)(()=>({...v.value,defaultExpandedKeys:[...new Set([...v.value.defaultExpandedKeys??[],...D.value])]})),k=``;(0,s.watch)(()=>C.value.map(e=>{try{return h(e)}catch{return}}),()=>{if(g.value.validateRowKeys===!1){k=``;return}let e=St(C.value,h);if(e.length===0){k=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==k&&(k=t,y.warning(b(`table.invalidRowKeys`,{count:e.length})),f(`row-key-error`,e))},{immediate:!0});let A=xe({data:C,config:(0,s.computed)(()=>v.value.pagination),emit:p}),j=be({config:O,data:()=>C.value,rowKey:h,emit:p,columns:()=>_.value,renderLoading:()=>(0,s.h)(r.t,{size:32,label:b(`table.loading`)})}),M=new Set;(0,s.watch)(D,e=>{if(!v.value.treeEnabled||!v.value.treeDefaultExpandAll){M.clear();return}let t=e.filter(e=>!M.has(e));e.forEach(e=>M.add(e));let n=j.expandedKeys.value,r=t.filter(e=>!n.includes(e));r.length&&j.expandState?.handleExpandChange([...n,...r])},{immediate:!0});let N=Ce({actions:(0,s.computed)(()=>g.value.actions||{}),config:v,tableManager:j,rowKey:h,onRowDeleted:(e,t)=>f(`row-delete`,e,t),isDeleteFeedbackHandled:e=>d.crud?.actions?.value.delete===e,onViewDetail:e=>p(`view-detail`,e)}),ee=(0,s.computed)(()=>{let{actions:e}=g.value;return!!(v.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),P=Be({rawColumns:_,config:v,columnWidth:v.value.columnWidth,scrollX:v.value.scrollX,rowKey:h,tableManager:j,actionsRenderer:N.renderActions,editModeChecker:x,showActionsColumn:ee}),{showSettingsPanel:F,reactiveColumns:te,computedColumns:ne,computedScrollX:re}=P,ie=Ve({data:A.paginatedData,rowKey:h,config:(0,s.computed)(()=>v.value.rowDrag),onReorder:e=>{let t=v.value.pagination;if(!t?.enabled||t.remote){p(`update:data`,e);return}let n=(A.currentPage.value-1)*A.currentPageSize.value,r=[...C.value];r.splice(n,e.length,...e),p(`update:data`,r)},onSort:(e,t,n)=>{let r=v.value.pagination?.enabled&&!v.value.pagination.remote?(A.currentPage.value-1)*A.currentPageSize.value:0;f(`row-move`,e,t+r,n+r)}}),I=He({allData:C,rowKey:h,config:(0,s.computed)(()=>v.value.crossPageSelection)}),L=(0,s.computed)(()=>v.value.crossPageSelection?.enabled===!0),ae=(0,s.computed)(()=>L.value?I.selectedCount.value:j.checkedKeys?.value?.length??0),R=(0,s.ref)(new Set),oe=async e=>{if(R.value.has(e.key))return;let t=L.value?[...I.selectedKeys.value]:j.checkedKeys?.value??[],n=L.value?I.getSelectedRows():C.value.filter(e=>t.includes(h(e)));R.value=new Set(R.value).add(e.key);try{await e.onClick(t,n),v.value.batchActions?.clearSelectionOnSuccess&&se()}catch(t){v.value.batchActions?.onError?.(t,e.key),f(`batch-action-error`,t,e.key)}finally{let t=new Set(R.value);t.delete(e.key),R.value=t}},se=()=>{L.value?I.clearAll():j.stateManager.selection.clear()},ce=(0,s.computed)(()=>L.value?I.getPageCheckedKeys(A.paginatedData.value):null),le=e=>{L.value&&I.handlePageSelectionChange(e,A.paginatedData.value),j.expandState?.handleSelectionChange?.(e)},ue=async()=>{let e=v.value.exportConfig??{};await Xe(C.value,_.value,{...e,formatterConfig:v.value.formatterConfig})},de=(0,s.computed)(()=>v.value.summaryRender),z=(0,s.ref)(),B=null,fe=0,pe=()=>{fe+=1,B?.destroy(),B=null},V=async()=>{let e=++fe;if(B?.destroy(),B=null,!(!v.value.enableColumnDrag||!z.value))try{let{default:t}=await import(`sortablejs`);if(e!==fe||!z.value)return;let n=z.value.querySelector(`.n-data-table-thead tr`);if(!n)return;B=new t(n,{animation:v.value.columnDragAnimationDuration,handle:v.value.columnDragHandleClass?`.${v.value.columnDragHandleClass}`:void 0,filter:`.c-table-actions-column`,preventOnFilter:!0,ghostClass:`column-drag-ghost`,onEnd:e=>{if(e.oldIndex==null||e.newIndex==null)return;let t=[...te.value],n=t.filter(e=>e.visible!==!1&&e.key!==`_actions`),r=n[e.oldIndex],i=n[e.newIndex];if(!r||!i||r===i)return;let a=t.indexOf(r),o=t.indexOf(i);t.splice(a,1),t.splice(o,0,r),P.handleColumnChange(t),f(`column-change`,t)}})}catch{}},H=(0,s.ref)(),U=(0,s.computed)(()=>({striped:v.value.striped,bordered:v.value.bordered,singleLine:v.value.singleLine,size:v.value.size,maxHeight:v.value.maxHeight})),W=(0,s.ref)(),G=(0,s.ref)(!1),K=(0,s.ref)({}),q=(0,s.computed)({get:()=>j.editStates.modalEdit.isModalVisible.value,set:e=>{j.editStates.modalEdit.isModalVisible.value=e}}),me=(0,s.computed)(()=>_.value.filter(e=>e.editable!==!1)),he=(0,s.computed)(()=>`edit-form-${j.editStates.modalEdit.editingRowKey.value??`new`}`),ge=(0,s.computed)(()=>Fe(me.value));(0,s.watch)(()=>j.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(K.value=a.t(e))},{immediate:!0,deep:!0});let J=null;(0,s.watch)(q,e=>{e&&J&&(clearTimeout(J),J=null),e||(J&&clearTimeout(J),J=setTimeout(()=>{K.value={},J=null},300))});let _e=async()=>{if(W.value){G.value=!0;try{await W.value.validate()}catch{G.value=!1;return}try{await j.editStates.modalEdit.saveEdit(K.value)}finally{G.value=!1}}},ve=()=>{K.value={},j.editStates.modalEdit.cancelEdit()},ye=e=>{P.handleColumnChange(e),f(`column-change`,P.reactiveColumns.value)},{edit:Y,expand:X,selection:Z,dynamicRows:Q}=j.stateManager,Se={startEdit:Y.start,cancelEdit:Y.cancel,saveEdit:Y.save,expandRow:X.row,collapseRow:X.collapse,toggleExpand:X.toggle,expandAll:X.all,collapseAll:X.collapseAll,selectRow:e=>L.value?I.select(e):(Z.select(e),Z.isSelected(e)),unselectRow:e=>{L.value?I.unselect(e):Z.unselect(e)},selectAll:()=>{L.value?I.selectAll():Z.all()},clearSelection:se,isRowSelected:e=>L.value?I.isSelected(e):Z.isSelected(e),clearAllSelections:()=>{I.clearAll(),j.stateManager.clearAllSelections()},selectChildRow:j.stateManager.childSelection.select,unselectChildRow:j.stateManager.childSelection.unselect,selectAllChildren:j.stateManager.childSelection.selectAll,clearChildrenSelection:j.stateManager.childSelection.clear,getChildSelectedRows:j.stateManager.childSelection.getSelected,addRow:Q.add,insertRow:Q.insert,deleteRow:Q.delete,copyRow:Q.copy,moveRowUp:Q.moveUp,moveRowDown:Q.moveDown,clearRowSelection:Q?.clearSelection,getSelectedRowData:Q.getSelected,printTable:e=>Q.print(e??z.value),downloadTableScreenshot:(e,t)=>Q.download(e??z.value,t),resetToFirstPage:A.resetToFirstPage,getTotalPages:A.getTotalPages,getSelectedRows:()=>L.value?I.getSelectedRows():Z.getSelected(),getEditingData:Y.getEditingData,isEditing:Y.isEditing,isExpanded:X.isExpanded,getManager:()=>j.stateManager,exportData:ue,crossPageSelection:{enabled:L,selectedKeys:I.selectedKeys,selectedCount:I.selectedCount,select:I.select,unselect:I.unselect,selectAll:I.selectAll,clearAll:I.clearAll,getSelectedRows:I.getSelectedRows}};return l(Se),(0,s.onMounted)(()=>{let e=d.crud?.tableRef;e&&(e.value=Se),V(),z.value&&ie.initRowDrag(z.value)}),(0,s.watch)([()=>v.value.enableColumnDrag,()=>v.value.columnDragHandleClass,()=>E.value,()=>ne.value.length],async()=>{await(0,s.nextTick)(),await V()},{immediate:!0,flush:`post`}),(0,s.watch)([()=>v.value.rowDrag,()=>E.value,()=>A.paginatedData.value.length,()=>A.currentPage.value],async()=>{await(0,s.nextTick)(),z.value&&await ie.initRowDrag(z.value)},{immediate:!0,deep:!0,flush:`post`}),(0,s.onBeforeUnmount)(()=>{J&&clearTimeout(J),pe(),ie.destroyRowDrag()}),(e,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{ref_key:`tableWrapperRef`,ref:z,class:`c-table-wrapper`,"aria-busy":E.value},[(0,s.createCommentVNode)(` 动态行工具栏 `),v.value.dynamicRows&&(0,s.unref)(j).dynamicRowsState?((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)((0,s.unref)(j).dynamicRowsState.renderToolbar(z.value)),{key:0})):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 表格工具栏 `),v.value.showToolbar?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,Tt,[(0,s.createElementVNode)(`div`,Et,[(0,s.renderSlot)(e.$slots,`toolbar-left`,{},void 0,!0),v.value.toolbarActions.length?((0,s.openBlock)(),(0,s.createBlock)(i.t,{key:0,actions:v.value.toolbarActions,config:{...v.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,s.createCommentVNode)(`v-if`,!0)]),(0,s.createElementVNode)(`div`,Dt,[(0,s.renderSlot)(e.$slots,`toolbar-right`,{},void 0,!0),v.value.toolbarRightActions.length?((0,s.openBlock)(),(0,s.createBlock)(i.t,{key:0,actions:v.value.toolbarRightActions,config:{align:`right`,...v.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,s.createCommentVNode)(`v-if`,!0),v.value.exportConfig?((0,s.openBlock)(),(0,s.createBlock)(t.t,{key:1,name:`mdi:download`,size:`18`,title:(0,s.unref)(b)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:n[0]||=e=>ue()},null,8,[`title`])):(0,s.createCommentVNode)(`v-if`,!0),v.value.enableColumnSettings?((0,s.openBlock)(),(0,s.createBlock)(t.t,{key:2,name:`mdi:cog`,size:`18`,title:(0,s.unref)(b)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:n[1]||=e=>F.value=!0},null,8,[`title`])):(0,s.createCommentVNode)(`v-if`,!0)])])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 批量操作栏 `),v.value.batchActions?.enabled&&ae.value>0?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,Ot,[(0,s.createElementVNode)(`span`,kt,(0,s.toDisplayString)((0,s.unref)(b)(`table.selectedCount`,{count:ae.value})),1),(0,s.createVNode)((0,s.unref)(c.NSpace),{size:8},{default:(0,s.withCtx)(()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(v.value.batchActions.actions||[],e=>((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NButton),{key:e.key,type:e.type||`default`,size:`small`,loading:R.value.has(e.key),disabled:R.value.has(e.key),onClick:t=>oe(e)},(0,s.createSlots)({default:(0,s.withCtx)(()=>[(0,s.createTextVNode)(` `+(0,s.toDisplayString)(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:(0,s.withCtx)(()=>[(0,s.createVNode)(t.t,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`loading`,`disabled`,`onClick`]))),128)),(0,s.createVNode)((0,s.unref)(c.NButton),{size:`small`,onClick:se},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`table.cancelSelection`)),1)]),_:1})]),_:1})])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 错误状态 `),v.value.error?.show?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,At,[(0,s.renderSlot)(e.$slots,`error`,{error:v.value.error},()=>[(0,s.createElementVNode)(`div`,jt,[(0,s.createVNode)(t.t,{name:`mdi:alert-circle-outline`,size:`48`}),(0,s.createElementVNode)(`p`,Mt,(0,s.toDisplayString)(v.value.error.message||(0,s.unref)(b)(`table.loadFailed`)),1),v.value.error.onRetry?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NButton),{key:0,type:`primary`,size:`small`,onClick:v.value.error.onRetry},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`common.retry`)),1)]),_:1},8,[`onClick`])):(0,s.createCommentVNode)(`v-if`,!0)])],!0)])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 表格主体 `),v.value.error?.show?(0,s.createCommentVNode)(`v-if`,!0):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NDataTable),(0,s.mergeProps)({key:4,ref_key:`tableRef`,ref:H},{...U.value,...e.$attrs},{columns:(0,s.unref)(ne),data:(0,s.unref)(A).paginatedData.value,loading:E.value,"row-key":h,"expanded-row-keys":(0,s.unref)(j).expandedKeys.value,"checked-row-keys":ce.value??(0,s.unref)(j).checkedKeys.value,"onUpdate:expandedRowKeys":(0,s.unref)(j).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":le,"scroll-x":(0,s.unref)(re),"virtual-scroll":v.value.virtualScroll,"min-row-height":v.value.virtualScroll?v.value.virtualItemHeight:void 0,"max-height":v.value.virtualScroll?v.value.virtualMaxHeight:v.value.maxHeight,summary:de.value,"summary-placement":v.value.summaryPosition,"children-key":v.value.treeEnabled?v.value.treeChildrenKey:void 0,indent:v.value.treeEnabled?v.value.treeIndent:void 0,"default-expand-all":v.value.treeEnabled?v.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),{loading:(0,s.withCtx)(()=>[(0,s.renderSlot)(e.$slots,`loading`,{},()=>[(0,s.createVNode)((0,s.unref)(r.t),{label:(0,s.unref)(b)(`table.loading`)},null,8,[`label`])],!0)]),_:3},16,[`columns`,`data`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),(0,s.createCommentVNode)(` 分页 `),(0,s.unref)(A).paginationConfig.value?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NPagination),(0,s.mergeProps)({key:5},(0,s.unref)(A).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 编辑弹窗 `),v.value.editMode===`modal`||v.value.editMode===`both`?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(c.NModal),{key:6,show:q.value,"onUpdate:show":n[3]||=e=>q.value=e,title:v.value.modalTitle,width:v.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NSpace),{justify:`end`},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NButton),{onClick:ve},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`common.cancel`)),1)]),_:1}),(0,s.createVNode)((0,s.unref)(c.NButton),{type:`primary`,loading:G.value,onClick:_e},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(b)(`common.save`)),1)]),_:1},8,[`loading`])]),_:1})]),default:(0,s.withCtx)(()=>[q.value&&ge.value.length?((0,s.openBlock)(),(0,s.createBlock)(o.t,{ref_key:`editFormRef`,ref:W,key:he.value,modelValue:K.value,"onUpdate:modelValue":n[2]||=e=>K.value=e,options:ge.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):(0,s.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 动态行确认删除弹窗 `),v.value.dynamicRows&&(0,s.unref)(j).dynamicRowsState?((0,s.openBlock)(),(0,s.createBlock)((0,s.resolveDynamicComponent)((0,s.unref)(j).dynamicRowsState.renderConfirmModal()),{key:7})):(0,s.createCommentVNode)(`v-if`,!0),(0,s.createCommentVNode)(` 列设置抽屉 `),(0,s.createVNode)((0,s.unref)(c.NDrawer),{show:(0,s.unref)(F),"onUpdate:show":n[4]||=e=>(0,s.isRef)(F)?F.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.NDrawerContent),{title:(0,s.unref)(b)(`table.columnSettings`),closable:``},{default:(0,s.withCtx)(()=>[(0,s.createVNode)(yt,{columns:(0,s.unref)(te),"persist-key":v.value.persistKey,onChange:ye},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],8,wt))}});var Pt=n.t(Nt,[[`__scopeId`,`data-v-f623c0e1`]]);const Ft=(e,t)=>Number.isFinite(e)?Math.max(1,Math.floor(e)):t;function It(e){let t=(0,s.shallowRef)([]),n=(0,s.ref)(!1),r=(0,s.shallowRef)(),i=(0,s.ref)(0),o=a.t(e.initialQuery),c=(0,s.ref)(Ft(e.initialPage,1)),l=(0,s.ref)(Ft(e.pageSize,20)),u=(0,s.shallowRef)(a.t(o)),d=0,f=null,p=async()=>{let o=++d;f?.abort(),f=new AbortController,n.value=!0,r.value=void 0;try{let n=await e.request({page:c.value,pageSize:l.value,query:a.t(u.value),signal:f.signal});if(o!==d||f.signal.aborted)return!1;if(!Array.isArray(n.data)||!Number.isFinite(n.total))throw TypeError(`[C_Table] request 必须返回 { data: T[], total: number }`);return t.value=a.t([...n.data]),i.value=Math.max(0,Math.floor(n.total)),e.onSuccess?.({data:t.value,total:i.value}),!0}catch(t){return o!==d||f.signal.aborted?!1:(r.value=t,e.onError?.(t),!1)}finally{o===d&&(n.value=!1)}},m=async(e,t=!0)=>(u.value=a.t(typeof e==`function`?e(u.value):{...u.value,...e}),c.value=1,t?p():!0),h=async(e,t)=>(c.value=Ft(e,c.value),l.value=Ft(t,l.value),p()),g=async(e=!0)=>(u.value=a.t(o),c.value=1,e?p():!0),_=(0,s.computed)(()=>{let r=(0,s.toValue)(e.config)??{},a=typeof r.pagination==`object`?r.pagination:{};return{data:t.value,loading:n.value,columns:(0,s.toValue)(e.columns),rowKey:e.rowKey??`id`,config:{...r,pagination:{...a,enabled:!0,remote:!0,page:c.value,pageSize:l.value,total:i.value}}}}),v=(0,s.computed)(()=>({..._.value,onPaginationChange:h})),y=()=>{d+=1,f?.abort(),f=null,n.value=!1};return e.immediate!==!1&&(0,s.onMounted)(()=>void p()),(0,s.onScopeDispose)(y),{data:t,loading:n,error:r,total:i,page:c,pageSize:l,query:u,tableProps:_,execute:p,reload:p,setQuery:m,resetQuery:g,handlePaginationChange:h,bindings:v,cancel:y}}Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Pt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return bt}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return It}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return J}});
@@ -2,7 +2,7 @@ import { f as ActionItem, s as ActionBarConfig } from "./presets.cjs";
2
2
  import { i as ComponentLocale, r as ComponentFeedback } from "./config.cjs";
3
3
  import * as vue from "vue";
4
4
  import { App, ComputedRef, InjectionKey, MaybeRef, MaybeRefOrGetter, Ref, VNodeChild } from "vue";
5
- import { DataTableColumn, DataTableColumns, DataTableRowKey, FormItemRule, PaginationProps } from "naive-ui";
5
+ import { DataTableBaseColumn, DataTableColumn, DataTableRowKey, FormItemRule, PaginationProps } from "naive-ui";
6
6
  import * as _vue_shared0 from "@vue/shared";
7
7
  import { HLJSApi } from "highlight.js";
8
8
 
@@ -776,7 +776,7 @@ interface EditProps {
776
776
  * - BuiltInTableColumn:内置列(selection/expand),不需要 key/title
777
777
  * - TableColumn:以上二者联合
778
778
  */
779
- interface BaseTableColumn<T extends object = DataRecord> extends Omit<DataTableColumns<T>[number], 'key' | 'title' | 'render' | 'type'> {
779
+ interface BaseTableColumn<T extends object = DataRecord> extends Omit<DataTableBaseColumn<T>, 'key' | 'title' | 'render' | 'type'> {
780
780
  key?: DataTableRowKey;
781
781
  title?: string;
782
782
  visible?: boolean;
@@ -943,6 +943,8 @@ interface UseTableExpandOptions<T extends object = DataRecord, C = DataRecord> e
943
943
  data: Ref<T[]> | ComputedRef<T[]>;
944
944
  rowKey: (row: T) => DataTableRowKey;
945
945
  childRowKey?: (child: C) => DataTableRowKey;
946
+ /** 展开数据等待时的加载内容,C_Table 内置统一 SVG;独立引擎可按需提供。 */
947
+ renderLoading?: () => VNodeChild;
946
948
  defaultExpandedKeys?: DataTableRowKey[];
947
949
  onExpandChange?: (expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean) => void;
948
950
  onSelectionChange?: (checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>) => void;
@@ -1273,6 +1275,8 @@ interface TableManagerParams {
1273
1275
  emit: (...args: any[]) => unknown;
1274
1276
  /** 列配置(用于编辑校验) */
1275
1277
  columns?: () => TableColumn[];
1278
+ /** UI 壳提供加载内容,状态引擎保持可独立调用。 */
1279
+ renderLoading?: () => VNodeChild;
1276
1280
  }
1277
1281
  /**
1278
1282
  * 事件处理器接口
@@ -2,7 +2,7 @@ import { f as ActionItem, s as ActionBarConfig } from "./presets.js";
2
2
  import { i as ComponentLocale, r as ComponentFeedback } from "./config.js";
3
3
  import * as vue from "vue";
4
4
  import { App, ComputedRef, InjectionKey, MaybeRef, MaybeRefOrGetter, Ref, VNodeChild } from "vue";
5
- import { DataTableColumn, DataTableColumns, DataTableRowKey, FormItemRule, PaginationProps } from "naive-ui";
5
+ import { DataTableBaseColumn, DataTableColumn, DataTableRowKey, FormItemRule, PaginationProps } from "naive-ui";
6
6
  import * as _vue_shared0 from "@vue/shared";
7
7
  import { HLJSApi } from "highlight.js";
8
8
 
@@ -776,7 +776,7 @@ interface EditProps {
776
776
  * - BuiltInTableColumn:内置列(selection/expand),不需要 key/title
777
777
  * - TableColumn:以上二者联合
778
778
  */
779
- interface BaseTableColumn<T extends object = DataRecord> extends Omit<DataTableColumns<T>[number], 'key' | 'title' | 'render' | 'type'> {
779
+ interface BaseTableColumn<T extends object = DataRecord> extends Omit<DataTableBaseColumn<T>, 'key' | 'title' | 'render' | 'type'> {
780
780
  key?: DataTableRowKey;
781
781
  title?: string;
782
782
  visible?: boolean;
@@ -943,6 +943,8 @@ interface UseTableExpandOptions<T extends object = DataRecord, C = DataRecord> e
943
943
  data: Ref<T[]> | ComputedRef<T[]>;
944
944
  rowKey: (row: T) => DataTableRowKey;
945
945
  childRowKey?: (child: C) => DataTableRowKey;
946
+ /** 展开数据等待时的加载内容,C_Table 内置统一 SVG;独立引擎可按需提供。 */
947
+ renderLoading?: () => VNodeChild;
946
948
  defaultExpandedKeys?: DataTableRowKey[];
947
949
  onExpandChange?: (expandedKeys: DataTableRowKey[], row?: T, expanded?: boolean) => void;
948
950
  onSelectionChange?: (checkedKeys: DataTableRowKey[], checkedRows: T[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]>) => void;
@@ -1273,6 +1275,8 @@ interface TableManagerParams {
1273
1275
  emit: (...args: any[]) => unknown;
1274
1276
  /** 列配置(用于编辑校验) */
1275
1277
  columns?: () => TableColumn[];
1278
+ /** UI 壳提供加载内容,状态引擎保持可独立调用。 */
1279
+ renderLoading?: () => VNodeChild;
1276
1280
  }
1277
1281
  /**
1278
1282
  * 事件处理器接口