@robot-admin/naive-ui-components 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +27 -1
  3. package/README_EN.md +26 -0
  4. package/dist/C_ActionBar.css +60 -60
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +49 -49
  8. package/dist/C_AntV2.cjs +3 -3
  9. package/dist/C_AntV2.js +3 -3
  10. package/dist/C_AudioPlayer.css +81 -66
  11. package/dist/C_AudioPlayer2.cjs +1 -1
  12. package/dist/C_AudioPlayer2.js +1 -1
  13. package/dist/C_AvatarGroup.css +40 -25
  14. package/dist/C_AvatarGroup2.cjs +1 -1
  15. package/dist/C_AvatarGroup2.js +1 -1
  16. package/dist/C_Barcode.css +6 -6
  17. package/dist/C_Barcode2.cjs +1 -1
  18. package/dist/C_Barcode2.js +1 -1
  19. package/dist/C_Breadcrumb.css +14 -14
  20. package/dist/C_Breadcrumb2.cjs +1 -1
  21. package/dist/C_Breadcrumb2.js +1 -1
  22. package/dist/C_Captcha.css +50 -50
  23. package/dist/C_Captcha2.cjs +1 -1
  24. package/dist/C_Captcha2.js +1 -1
  25. package/dist/C_Cascade.css +2 -2
  26. package/dist/C_Cascade2.cjs +1 -1
  27. package/dist/C_Cascade2.js +1 -1
  28. package/dist/C_Chat.css +96 -78
  29. package/dist/C_Chat2.cjs +1 -1
  30. package/dist/C_Chat2.js +1 -1
  31. package/dist/C_City.css +52 -28
  32. package/dist/C_City2.cjs +1 -1
  33. package/dist/C_City2.js +1 -1
  34. package/dist/C_Code.css +48 -42
  35. package/dist/C_Code2.cjs +1 -1
  36. package/dist/C_Code2.js +1 -1
  37. package/dist/C_CollapsePanel.css +14 -14
  38. package/dist/C_CollapsePanel2.cjs +1 -1
  39. package/dist/C_CollapsePanel2.js +1 -1
  40. package/dist/C_ContextMenu.css +14 -14
  41. package/dist/C_ContextMenu2.cjs +1 -1
  42. package/dist/C_ContextMenu2.js +1 -1
  43. package/dist/C_Cron.css +94 -55
  44. package/dist/C_Cron2.cjs +1 -1
  45. package/dist/C_Cron2.js +1 -1
  46. package/dist/C_Date2.cjs +1 -1
  47. package/dist/C_Date2.js +1 -1
  48. package/dist/C_Draggable.css +48 -48
  49. package/dist/C_Draggable2.cjs +1 -1
  50. package/dist/C_Draggable2.js +1 -1
  51. package/dist/C_Editor.css +13 -14
  52. package/dist/C_Editor2.cjs +1 -1
  53. package/dist/C_Editor2.js +1 -1
  54. package/dist/C_FilePreview.css +18 -18
  55. package/dist/C_FilePreview2.cjs +1 -1
  56. package/dist/C_FilePreview2.js +1 -1
  57. package/dist/C_Form.base.css +36 -36
  58. package/dist/C_Form.css +49 -50
  59. package/dist/C_Form2.cjs +1 -1
  60. package/dist/C_Form2.js +1 -1
  61. package/dist/C_FormModal.css +8 -8
  62. package/dist/C_FormModal2.cjs +1 -1
  63. package/dist/C_FormModal2.js +1 -1
  64. package/dist/C_FormSearch.css +45 -45
  65. package/dist/C_FormSearch2.cjs +1 -1
  66. package/dist/C_FormSearch2.js +1 -1
  67. package/dist/C_FormulaEditor.css +94 -55
  68. package/dist/C_FormulaEditor2.cjs +2 -2
  69. package/dist/C_FormulaEditor2.js +2 -2
  70. package/dist/C_FullCalendar.css +8 -1
  71. package/dist/C_FullCalendar2.cjs +1 -1
  72. package/dist/C_FullCalendar2.js +1 -1
  73. package/dist/C_GlobalSearch2.cjs +1 -1
  74. package/dist/C_GlobalSearch2.js +1 -1
  75. package/dist/C_Guide.css +14 -14
  76. package/dist/C_Guide2.cjs +1 -1
  77. package/dist/C_Guide2.js +1 -1
  78. package/dist/C_Icon.css +14 -14
  79. package/dist/C_Icon2.cjs +1 -1
  80. package/dist/C_Icon2.js +1 -1
  81. package/dist/C_ImageCropper.css +22 -22
  82. package/dist/C_ImageCropper2.cjs +1 -1
  83. package/dist/C_ImageCropper2.js +1 -1
  84. package/dist/C_Language.css +14 -14
  85. package/dist/C_Language2.cjs +1 -1
  86. package/dist/C_Language2.js +1 -1
  87. package/dist/C_Login.css +134 -134
  88. package/dist/C_Login2.cjs +1 -1
  89. package/dist/C_Login2.js +1 -1
  90. package/dist/C_Map.css +3 -3
  91. package/dist/C_Map2.cjs +1 -1
  92. package/dist/C_Map2.js +1 -1
  93. package/dist/C_Markdown.css +35 -35
  94. package/dist/C_Markdown2.cjs +1 -1
  95. package/dist/C_Markdown2.js +1 -1
  96. package/dist/C_Menu2.cjs +1 -1
  97. package/dist/C_Menu2.js +1 -1
  98. package/dist/C_NotificationCenter.css +30 -30
  99. package/dist/C_NotificationCenter2.cjs +1 -1
  100. package/dist/C_NotificationCenter2.js +1 -1
  101. package/dist/C_OrgChart.css +4 -0
  102. package/dist/C_OrgChart2.cjs +1 -1
  103. package/dist/C_OrgChart2.js +1 -1
  104. package/dist/C_Progress2.cjs +1 -1
  105. package/dist/C_Progress2.js +1 -1
  106. package/dist/C_QRCode.css +8 -8
  107. package/dist/C_QRCode2.cjs +1 -1
  108. package/dist/C_QRCode2.js +1 -1
  109. package/dist/C_Signature.css +14 -14
  110. package/dist/C_Signature2.cjs +1 -1
  111. package/dist/C_Signature2.js +1 -1
  112. package/dist/C_Skeleton2.cjs +1 -1
  113. package/dist/C_Skeleton2.js +1 -1
  114. package/dist/C_SplitPane.css +39 -39
  115. package/dist/C_SplitPane2.cjs +1 -1
  116. package/dist/C_SplitPane2.js +1 -1
  117. package/dist/C_Steps.css +48 -38
  118. package/dist/C_Steps2.cjs +1 -1
  119. package/dist/C_Steps2.js +1 -1
  120. package/dist/C_Table.base.css +160 -160
  121. package/dist/C_Table.css +173 -174
  122. package/dist/C_TagsView.css +52 -52
  123. package/dist/C_TagsView2.cjs +1 -1
  124. package/dist/C_TagsView2.js +1 -1
  125. package/dist/C_Theme.css +14 -14
  126. package/dist/C_Theme2.cjs +1 -1
  127. package/dist/C_Theme2.js +1 -1
  128. package/dist/C_Time.css +4 -4
  129. package/dist/C_Time2.cjs +1 -1
  130. package/dist/C_Time2.js +1 -1
  131. package/dist/C_Timeline.css +76 -58
  132. package/dist/C_Timeline2.cjs +1 -1
  133. package/dist/C_Timeline2.js +1 -1
  134. package/dist/C_Transfer.css +51 -51
  135. package/dist/C_Transfer2.cjs +1 -1
  136. package/dist/C_Transfer2.js +1 -1
  137. package/dist/C_Tree.css +35 -32
  138. package/dist/C_Tree2.cjs +1 -1
  139. package/dist/C_Tree2.js +1 -1
  140. package/dist/C_Upload.css +53 -50
  141. package/dist/C_Upload2.cjs +1 -1
  142. package/dist/C_Upload2.js +1 -1
  143. package/dist/C_VideoPlayer.css +17 -13
  144. package/dist/C_VideoPlayer2.cjs +2 -2
  145. package/dist/C_VideoPlayer2.js +2 -2
  146. package/dist/C_VtableGantt.css +19 -19
  147. package/dist/C_VtableGantt2.cjs +1 -1
  148. package/dist/C_VtableGantt2.js +1 -1
  149. package/dist/C_WaterFall.css +19 -15
  150. package/dist/C_WaterFall2.cjs +1 -1
  151. package/dist/C_WaterFall2.js +1 -1
  152. package/dist/C_WorkFlow.css +123 -123
  153. package/dist/C_WorkFlow2.cjs +1 -1
  154. package/dist/C_WorkFlow2.js +1 -1
  155. package/dist/constants.d.cts +4 -4
  156. package/dist/constants.d.ts +4 -4
  157. package/dist/constants2.d.cts +4 -4
  158. package/dist/constants2.d.ts +4 -4
  159. package/dist/constants3.d.cts +9 -5
  160. package/dist/constants3.d.ts +9 -5
  161. package/dist/constants4.d.cts +5 -5
  162. package/dist/constants4.d.ts +5 -5
  163. package/dist/constants5.d.cts +2 -2
  164. package/dist/constants5.d.ts +2 -2
  165. package/dist/data.d.cts +15 -15
  166. package/dist/data.d.ts +15 -15
  167. package/dist/data2.cjs +1 -1
  168. package/dist/data2.js +1 -1
  169. package/dist/index.cjs +1 -1
  170. package/dist/index.d.cts +0 -1
  171. package/dist/index.js +1 -1
  172. package/dist/index.vue.d.cts +2 -0
  173. package/dist/index.vue.d.ts +2 -0
  174. package/dist/index10.vue.d.cts +1 -1
  175. package/dist/index10.vue.d.ts +3 -3
  176. package/dist/index11.vue.d.cts +3 -3
  177. package/dist/index11.vue.d.ts +3 -3
  178. package/dist/index12.vue.d.cts +3 -3
  179. package/dist/index13.vue.d.ts +2 -2
  180. package/dist/index14.vue.d.cts +2 -2
  181. package/dist/index14.vue.d.ts +14 -47
  182. package/dist/index15.vue.d.cts +14 -47
  183. package/dist/index15.vue.d.ts +2 -2
  184. package/dist/index16.vue.d.cts +2 -2
  185. package/dist/index17.vue.d.ts +5 -5
  186. package/dist/index18.vue.d.cts +5 -5
  187. package/dist/index18.vue.d.ts +2 -2
  188. package/dist/index19.vue.d.cts +1 -1
  189. package/dist/index19.vue.d.ts +1 -1
  190. package/dist/index2.vue.d.cts +2 -2
  191. package/dist/index2.vue.d.ts +2 -2
  192. package/dist/index20.vue.d.cts +2 -2
  193. package/dist/index20.vue.d.ts +2 -2
  194. package/dist/index21.vue.d.cts +2 -2
  195. package/dist/index21.vue.d.ts +2 -2
  196. package/dist/index22.vue.d.cts +2 -2
  197. package/dist/index22.vue.d.ts +2 -2
  198. package/dist/index24.vue.d.cts +3 -3
  199. package/dist/index24.vue.d.ts +3 -3
  200. package/dist/index25.vue.d.cts +1 -1
  201. package/dist/index25.vue.d.ts +1 -1
  202. package/dist/index26.vue.d.cts +4 -4
  203. package/dist/index26.vue.d.ts +4 -4
  204. package/dist/index27.vue.d.cts +3 -3
  205. package/dist/index27.vue.d.ts +3 -3
  206. package/dist/index3.vue.d.cts +4 -4
  207. package/dist/index3.vue.d.ts +4 -4
  208. package/dist/index4.vue.d.cts +2 -2
  209. package/dist/index5.vue.d.ts +2 -2
  210. package/dist/index6.vue.d.cts +2 -2
  211. package/dist/index7.vue.d.ts +2 -2
  212. package/dist/index8.vue.d.cts +2 -2
  213. package/dist/index9.vue.d.ts +1 -1
  214. package/dist/mapUtils.d.cts +3 -3
  215. package/dist/mapUtils.d.ts +3 -3
  216. package/dist/presets.d.cts +1 -1
  217. package/dist/presets.d.ts +1 -1
  218. package/dist/style.css +1573 -1365
  219. package/dist/useCalendarEvents.d.cts +23 -18
  220. package/dist/useCalendarEvents.d.ts +23 -18
  221. package/dist/useCollapsePanel.d.cts +7 -6
  222. package/dist/useCollapsePanel.d.ts +7 -6
  223. package/dist/useCropperCore.d.cts +34 -19
  224. package/dist/useCropperCore.d.ts +34 -19
  225. package/dist/useDraggableLayout.d.cts +4 -4
  226. package/dist/useDraggableLayout.d.ts +4 -4
  227. package/dist/useDynamicFormState.d.cts +7 -2
  228. package/dist/useDynamicFormState.d.ts +7 -2
  229. package/dist/useEdgeInteraction.d.cts +19 -19
  230. package/dist/useEdgeInteraction.d.ts +19 -19
  231. package/dist/useFullscreen.d.cts +6 -6
  232. package/dist/useFullscreen.d.ts +6 -6
  233. package/dist/useInfiniteScroll.d.cts +4 -4
  234. package/dist/useInfiniteScroll.d.ts +4 -4
  235. package/dist/useQRCode.d.cts +5 -4
  236. package/dist/useQRCode.d.ts +5 -4
  237. package/dist/useSearchState.d.cts +9 -9
  238. package/dist/useSearchState.d.ts +9 -9
  239. package/dist/useSignatureHistory.d.cts +18 -10
  240. package/dist/useSignatureHistory.d.ts +18 -10
  241. package/dist/useSplitResize.d.cts +3 -3
  242. package/dist/useSplitResize.d.ts +3 -3
  243. package/dist/useTableQuery.cjs +3 -3
  244. package/dist/useTableQuery.d.cts +3 -6
  245. package/dist/useTableQuery.d.ts +3 -6
  246. package/dist/useTableQuery.js +3 -3
  247. package/dist/useTimeSelection.d.cts +8 -5
  248. package/dist/useTimeSelection.d.ts +8 -5
  249. package/dist/useTreeOperations.d.cts +8 -8
  250. package/dist/useTreeOperations.d.ts +8 -8
  251. package/dist/useWorkflowValidation.d.cts +10 -8
  252. package/dist/useWorkflowValidation.d.ts +10 -8
  253. package/dist/verification.d.cts +3 -3
  254. package/dist/verification.d.ts +3 -3
  255. package/package.json +4 -3
@@ -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_ActionBar2.cjs`),i=require(`./data.cjs`),a=require(`./C_Form2.cjs`);let o=require(`vue`),s=require(`naive-ui`);const c={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},l=e=>e===!1||e===void 0?c: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},u=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},d=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`}},f=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}}},p=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},m={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function h(e){return e?{striped:e.striped??m.striped,bordered:e.bordered??m.bordered,singleLine:e.singleLine??m.singleLine,size:e.size??m.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??m.columnWidth}:{...m}}const g=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1,toolbarActions:e?.actions??[],toolbarRightActions:e?.rightActions??[],toolbarActionBarConfig:e?.actionBar??{}}),_=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},v=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},y=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},b=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},x=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},S=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function C(e={}){return{feedback:e.feedback,locale:e.locale,...l(e.edit),...u(e.expand),...d(e.selection),...f(e.pagination),...p(e.dynamicRows),...h(e.display),...g(e.toolbar),..._(e.virtualScroll),...v(e.summary),...y(e.columnDrag),...b(e.tree),...x(e.rowDrag),...S(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const w=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function T(e,t){return(typeof e.message==`function`?e.message():e.message)||t}function E(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function D(e){if(typeof e==`number`)return e;if(typeof e==`string`||Array.isArray(e))return e.length}function O(e,t){return e===!1?t:e instanceof Error?e.message||t:typeof e==`string`?e||t:Array.isArray(e)&&e.length>0?O(e[0],t):null}async function k(e,t,n,r){let i=T(e,`${n}校验失败`),a=e.transform?e.transform(t):t;if(e.required&&E(a))return T(e,`${n}不能为空`);if(!e.required&&E(a))return null;if(e.enum&&!e.enum.includes(a)||e.pattern&&!new RegExp(e.pattern).test(String(a)))return i;let o=D(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=O(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 O(s,i)}catch(e){return e instanceof Error&&e.message?e.message:i}return null}function A(e){let t=(0,o.ref)(null),n=(0,o.ref)({}),r=(0,o.ref)(!1),a=(0,o.ref)([]),s=e=>t.value===e,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=e=>{let o=c(e);return!o||r.value?!1:(t.value=e,n.value={[String(e)]:i.t(o)},a.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(a.value=[],t.value===null)return!0;let r=e.columns?.()||[],i=n.value[String(t.value)];if(!i)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=i[t];return Promise.all(e.editProps.rules.map(e=>k(e,r,n,i))).then(e=>{let n=e.find(Boolean);return n?{field:t,message:n}:null})}).filter(Boolean),s=(await Promise.all(o)).filter(Boolean);return a.value=s,s.length===0},f=async()=>{if(t.value===null||r.value||!await d())return;let a=t.value,o=e.data();if(!o||!Array.isArray(o))return;let s=o.findIndex(t=>e.rowKey(t)===a);if(s===-1)return;let c=n.value[String(a)];if(c){r.value=!0;try{await e.onSave?.(i.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:s,startEditRow:l,cancelEditRow:u,saveEditRow:f,validateRow:d,validationErrors:a,getEditingRowData:p,updateEditingRowData:(e,t,n)=>{let r=p(e);r&&(r[t]=i.t(n))},findRowData:c}}function j(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function M(e){let t=(0,o.ref)({rowKey:null,columnKey:null}),n=(0,o.ref)({}),r=(0,o.ref)(!1),a=(0,o.ref)(null),s=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=(e,o)=>{let s=c(e);return!s||!o||r.value?!1:(t.value={rowKey:e,columnKey:o},n.value={[j(e,o)]:i.t(s[o])},a.value=null,!0)},u=async()=>{a.value=null;let{rowKey:r,columnKey:i}=t.value;if(r===null||i===null)return!0;let o=(e.columns?.()||[]).find(e=>e.key===i);if(!o||!o.editProps?.rules)return!0;let s=j(r,i),l=n.value[s],u=o.title||i,d={...c(r),[i]:l},f=(await Promise.all(o.editProps.rules.map(e=>k(e,l,u,d)))).find(Boolean);return f?(a.value=f,!1):!0};return{editingCell:t,editingData:n,isSaving:r,isEditingCell:s,startEditCell:l,saveEditCell:async()=>{let{rowKey:a,columnKey:o}=t.value;if(a===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)===a);if(c===-1)return;let l=j(a,o),d=n.value[l],f={...s[c],[o]:d};r.value=!0;try{await e.onSave?.(i.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:i}=t.value;r.value||(e!==null&&i!==null&&delete n.value[j(e,i)],t.value={rowKey:null,columnKey:null},a.value=null)},validateCell:u,cellValidationError:a,getEditingCellValue:(e,t)=>n.value[j(e,t)],updateEditingCellValue:(e,t,r)=>{s(e,t)&&(n.value[j(e,t)]=i.t(r))},findRowData:c}}function N(e){let t=(0,o.ref)(!1),n=(0,o.ref)(!1),r=(0,o.ref)(null),a=(0,o.ref)({}),s=(0,o.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:a,editingRowKey:r,editingRowIndex:s,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,a.value=i.t(s??c[l]),t.value=!0,!0)},saveEdit:async o=>{if(n.value||r.value===null)return;let c=s.value;if(c===-1)return;let l=i.t(o??a.value);n.value=!0;try{return await e.onSave?.(l,c),t.value=!1,r.value=null,a.value={},{updatedData:l,rowIndex:c}}finally{n.value=!1}},cancelEdit:async()=>{if(n.value)return!1;let i=s.value;try{if(r.value!==null&&i>-1){let t=e.data();t[i]&&await e.onCancel?.(t[i],i)}}finally{t.value=!1,r.value=null,a.value={}}return!0},updateEditingData:e=>n.value?!1:(a.value=i.t(e),!0),resetEditingState:()=>n.value?!1:(r.value=null,a.value={},!0),isEditingRow:e=>r.value===e&&t.value,getEditingRowData:e=>r.value===e?a.value:null}}const P=e=>({expandedKeys:(0,o.ref)([...e.defaultExpandedKeys||[]]),expandDataMap:(0,o.ref)(new Map),loadingMap:(0,o.ref)(new Map),checkedKeys:e.enableSelection?(0,o.ref)([...e.defaultCheckedKeys||[]]):(0,o.ref)([]),childSelections:(e.enableChildSelection,(0,o.ref)(new Map))}),ee=e=>{let t=(0,o.computed)(()=>(0,o.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}},F=(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)}}}},I=(e,t,n)=>{let r=(0,o.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,o.computed)(()=>e.checkedKeys.value.length),selectableRows:r}},L=(e,t)=>{let n=()=>!!(t.enableParentChildLink&&t.enableSelection&&t.enableChildSelection);return{handleParentChildLink:(r,i,a)=>{if(!n())return;let o=t.parentChildLinkMode===`strict`?i.length===a&&a>0:i.length>0,s=[...e.checkedKeys.value],c=s.includes(r);o&&!c?e.checkedKeys.value=[...s,r]:!o&&c&&(e.checkedKeys.value=s.filter(e=>e!==r))},isLinkEnabled:n}},te=(e,t,n,r)=>({totalChildSelections:(0,o.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)}}),R=(e,t,n,r,i)=>{if(!i.enableChildSelection)return;let a=t.childSelections.value.get(e)||[],o=t.expandDataMap.value.get(e)||[],s=n.findRow(e);if(!s)return;let c=o.filter(e=>n.isChildRowCheckable(e,s));return{selectedKeys:a,isAllChecked:c.length>0&&c.every(e=>a.includes(n.getChildRowKey(e))),selectAll:()=>{let t=c.map(e=>n.getChildRowKey(e));r.handleChildSelectionChange(e,t)},clearAll:()=>{r.handleChildSelectionChange(e,[])}}},ne=()=>(0,o.h)(`div`,{class:`flex justify-center items-center py-8`},[(0,o.h)(s.NSpin,{size:`small`}),(0,o.h)(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),z=()=>(0,o.h)(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),re=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,render:(e,t)=>t+1},...Object.keys(t).filter(e=>![`id`,`key`].includes(e)).map(e=>({key:e,title:e.charAt(0).toUpperCase()+e.slice(1),width:120,ellipsis:{tooltip:!0}}))]},ie=(e,t,n,r,i,a)=>{let c=[];return a.enableChildSelection&&c.push({type:`selection`,multiple:!0}),c.push(...re(t)),(0,o.h)(`div`,{class:`p-4 bg-gray-50`},[(0,o.h)(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),(0,o.h)(s.NDataTable,{data:t,columns:c,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},ae=(e,t,n,r,i)=>{let a=a=>{let s=t.getRowKey(a),c=e.expandDataMap.value.get(s)||[],l=e.loadingMap.value.get(s)||!1;!c.length&&!l&&e.expandedKeys.value.includes(s)&&(0,o.nextTick)(()=>{r.loadData(a)});let u=R(s,e,t,n,i);return i.renderContent?i.renderContent(a,c,l,u):l?ne():c.length?ie(s,c,u,t,n,i):z()};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 oe(e){let t=P(e),n=ee(e),r=F(t,n,e),i=I(t,n,e),a=te(t,n,L(t,e),e),s=ae(t,n,a,r,e);return e.onSelectionChange&&e.enableSelection&&(0,o.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,o.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:s.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap}}const B={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},V={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},H={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 se(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 ce(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 le(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 ue(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 U(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...B,...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:se,corner:ce,diagonal:le,repeat:ue};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function W(e,t={}){if(typeof window>`u`)throw Error(`截图功能仅支持浏览器环境`);let n={...V,...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 G(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function K(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=G(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function q(e,t={}){if(typeof window>`u`)throw Error(`打印功能仅支持浏览器环境`);let n={...H,...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 de(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 fe(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 J(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function pe(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>W(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=de(s,i,a);return r(60),fe(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function me(e,t,n,r,i){r(70),t.watermark&&U(e,t.watermark),r(90),await q(G(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function he(){let t=e.r(),n=(0,o.ref)(!1),r=(0,o.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 W(e,t.capture);i(60),t.watermark&&U(n,t.watermark),i(90);let r=G(n,t.capture?.format||`png`,t.capture?.quality||.92);return i(100),r}catch(e){throw Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},s=async(e,r={})=>{n.value=!0,i(0);try{await(0,o.nextTick)();let n=await a(e,r);i(95),await q(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,o.nextTick)();let n=await W(e,i.capture);i.watermark&&U(n,i.watermark);let a=i.capture?.format||`png`,s=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;K(n,r||s,a),t.success(`下载完成`)}catch(e){throw t.error(`下载失败`,e),e}finally{n.value=!1}},l=async(e,t=`Robot Admin`)=>s(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),u=async(e,t={})=>{let n=e.length;i(10);let r=e.map(async(e,r)=>{let 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 q(r,t),i<e.length-1&&await new Promise(e=>{setTimeout(()=>e(),1e3)})},Promise.resolve())};return{loading:n,progress:r,captureWithWatermark:a,printWithWatermark:s,downloadScreenshot:c,quickPrint:l,batchCapture:u,batchPrint:async(e,r={})=>{if(!e.length){t.warning(`没有要打印的元素`);return}n.value=!0;try{i(0);let n=await u(e,r);i(80),await d(n,r.print),i(100),t.success(`批量打印完成,共 ${e.length} 个元素`)}catch(e){throw t.error(`批量打印失败`,e),e}finally{n.value=!1,i(0)}},mergePrint:async(e,r={},a={})=>{let o=J(e,a,t);if(o){n.value=!0;try{await me(await pe(e,r,o,i),r,e.length,i,t)}catch(e){throw t.error(`合并打印失败`,e),e}finally{n.value=!1,i(0)}}},createPreset:(e,t)=>({use:e=>s(e,t),download:(e,n)=>c(e,n,t)}),updateProgress:i,utils:{captureElement:W,drawWatermark:U,canvasToDataURL:G,downloadCanvas:K,printImage:q}}}const Y={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 X(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function Z(e,t){return typeof t==`function`?t(e):e[t]}function Q(e,t){let n=e?.()||{},r=typeof t==`string`?t:`id`;return{...n,[r]:X()}}function ge(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,o.reactive)({...i,...(0,o.toValue)(r)});(0,o.watch)(()=>(0,o.toValue)(r),e=>{let t=a;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,i,e)},{deep:!0});let c=e.r(()=>a.feedback),{t:l}=e.i(()=>a.locale),u=`c-table-radio-${X()}`,d=(0,o.ref)(null),f=(0,o.ref)(!1),p=(0,o.computed)(()=>d.value===null?null:n.value.find(e=>Z(e,a.rowKey)===d.value)||null),m=(0,o.computed)(()=>p.value?n.value.findIndex(e=>e===p.value):-1),h=(0,o.computed)(()=>m.value>0),g=(0,o.computed)(()=>m.value>=0&&m.value<n.value.length-1),{loading:_,progress:v,printWithWatermark:y,downloadScreenshot:b,quickPrint:x}=he(),S=()=>{if(a.printOptions)return a.printOptions;let e=Y[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=Q(a.defaultRowData,a.rowKey);C([...n.value,e]),a.onRowAdd?.(e),c.success(l(`table.addRowSuccess`))},T=()=>{if(!a.enabled||!a.enableInsert||!p.value){c.warning(l(`table.selectRowFirst`));return}let e=Q(a.defaultRowData,a.rowKey),t=[...n.value];t.splice(m.value+1,0,e),C(t),a.onRowAdd?.(e),c.success(l(`table.insertRowSuccess`))},E=()=>{if(!a.enabled||!a.enableDelete||!p.value){c.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),c.success(l(`table.deleteRowSuccess`)),f.value=!1},O=()=>{if(!a.enabled||!a.enableCopy||!p.value){c.warning(l(`table.selectCopyRowFirst`));return}let e=p.value,t=typeof a.rowKey==`string`?a.rowKey:`id`,{[t]:r,...i}=e,o={...i,[t]:X()};C([...n.value,o]),a.onRowCopy?.(e,o),c.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),c.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),c.success(l(`table.moveDownSuccess`))},j=e=>{if(!a.enabled)return;let t=n.value.find(t=>Z(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){c.error(l(`table.printTargetMissing`));return}let t=S();await y(e.value,t)};return(0,o.onBeforeUnmount)(()=>{d.value=null,f.value=!1}),{selectedRowKey:d,selectedRowData:p,selectedRowIndex:m,canMoveUp:h,canMoveDown:g,deleteConfirmVisible:f,printLoading:_,printProgress:v,addRow:w,insertRow:T,deleteRow:E,confirmDelete:D,copyRow:O,moveRowUp:k,moveRowDown:A,selectRow:j,clearSelection:M,handlePrint:N,handleDownload:async(e,t)=>{if(!e.value){c.error(l(`table.downloadTargetMissing`));return}let n=S();await b(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){c.error(l(`table.printTargetMissing`));return}let t=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=Z(e,a.rowKey);return(0,o.h)(`div`,{class:`flex justify-center`},[(0,o.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,o.h)(s.NButton,{loading:_.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(a.printTargetSelector);t?await N((0,o.shallowRef)(t)):c.warning(l(`table.printTargetMissing`))}catch(e){c.error(l(`table.printTargetMissing`),e)}}},{icon:()=>(0,o.h)(t.t,{name:`mdi:printer`,title:l(`common.print`)}),default:()=>l(`common.print`)}));let r=[];return a.enableAdd&&r.push((0,o.h)(s.NButton,{onClick:w,type:`primary`},{icon:()=>(0,o.h)(t.t,{name:`mdi:plus`,title:l(`table.addRow`)}),default:()=>l(`table.addRow`)})),a.enableInsert&&r.push((0,o.h)(s.NTooltip,{disabled:!!p.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:T,disabled:!p.value,type:`primary`,ghost:!0},{icon:()=>(0,o.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,o.h)(s.NTooltip,{disabled:!!p.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:E,disabled:!p.value,type:`error`,ghost:!0},{icon:()=>(0,o.h)(t.t,{name:`mdi:delete`,title:l(`table.deleteRow`)}),default:()=>l(`table.deleteRow`)}),default:()=>l(`table.selectDeleteRowFirst`)})),a.enableCopy&&r.push((0,o.h)(s.NTooltip,{disabled:!!p.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:O,disabled:!p.value,type:`info`,ghost:!0},{icon:()=>(0,o.h)(t.t,{name:`mdi:content-copy`,title:l(`table.copyRow`)}),default:()=>l(`table.copyRow`)}),default:()=>l(`table.selectCopyRowFirst`)})),a.enableMove&&r.push((0,o.h)(s.NTooltip,{disabled:h.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:k,disabled:!h.value,type:`warning`,ghost:!0},{icon:()=>(0,o.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,o.h)(s.NTooltip,{disabled:g.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:A,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>(0,o.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,o.h)(s.NButtonGroup,{},()=>r)),(0,o.h)(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[(0,o.h)(s.NSpace,{},()=>n)])},renderConfirmModal:()=>(0,o.h)(s.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 _e(t){let{data:n,rowKey:r,emit:i}=t,a=()=>(0,o.toValue)(t.config),s=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:A({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel,columns:t.columns}),cellEdit:M({data:n,rowKey:r,onSave:l.onSave,columns:t.columns}),modalEdit:N({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel})}),d=()=>oe({data:(0,o.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):s.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=()=>ge((0,o.computed)(()=>n()),(0,o.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,o.shallowRef)(e))},async download(e,t){h&&e&&await h.handleDownload((0,o.shallowRef)(e),t)}},clearAllSelections(){m?.clearAllSelections()}},expandedKeys:(0,o.computed)(()=>m?.expandedKeys.value??[]),checkedKeys:(0,o.computed)(()=>m?.checkedKeys.value??[]),eventHandlers:l}}const $={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function ve(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function ye(e){let{data:t,config:n,emit:r}=e,i=(0,o.ref)($.page),a=(0,o.ref)($.pageSize),s=(0,o.computed)(()=>{let e=typeof t==`function`?t():(0,o.unref)(t);return Array.isArray(e)?e:[]}),c=(0,o.computed)(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??s.value.length)):s.value.length}),l=()=>n.value?.enabled?Math.max(1,Math.ceil(c.value/a.value)):1,u=(e,t)=>{let n=Math.min(ve(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=ve(e,$.pageSize),n=a.value!==t;a.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},p=()=>u(1,!0),m=(0,o.computed)(()=>{let e=n.value;if(!e?.enabled||e.remote)return s.value;let t=(i.value-1)*a.value;return s.value.slice(t,t+a.value)}),h=(0,o.computed)(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:a.value,itemCount:c.value,showSizePicker:e.showSizePicker??$.showSizePicker,showQuickJumper:e.showQuickJumper??$.showQuickJumper,pageSizes:e.pageSizes??$.pageSizes,simple:e.simple??$.simple,size:e.size??$.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,o.watch)(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{a.value=ve(t,$.pageSize),i.value=Math.min(ve(e,$.page),l())},{immediate:!0}),(0,o.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}}function be(n){let{actions:r,config:i,tableManager:a,rowKey:c,onRowDeleted:l,onViewDetail:u}=n,d=e.r(()=>i.value.feedback),{t:f}=e.i(()=>i.value.locale),p=e=>e===`edit`?i.value.editable&&r.value?.edit!==!1:typeof r.value?.[e]==`function`,m=e=>e!==!1&&typeof e==`function`,h=e=>e&&typeof e==`object`&&`data`in e?e.data:e,g=(e,n,r=`primary`,i)=>(0,o.h)(s.NButton,{size:`small`,type:r,quaternary:!0,onClick:i},()=>[(0,o.h)(t.t,{name:e,size:14,title:n})]),_=async(e,t)=>{let n=c(e),o=r.value?.edit;if(m(o)){try{await o(e,t)}catch(e){d.error(f(`table.actionFailed`,{action:f(`common.edit`)}),e)}return}i.value.editMode===`modal`?a.editStates.modalEdit.startEdit(n,{...e}):a.editStates.rowEdit.startEditRow(n)},v=async(e,t,n)=>{try{await e(t,n),d.success(f(`table.deleteSuccess`)),l?.(t,n)}catch(e){throw d.error(f(`table.deleteFailed`),e),e}},y=async(e,t)=>{let n=r.value?.delete;m(n)&&await d.confirm({title:f(`table.deleteTitle`),content:f(`table.deleteContent`),positiveText:f(`common.confirm`),negativeText:f(`common.cancel`),type:`warning`})&&await v(n,e,t)},b=async(e,t)=>{let n=r.value?.detail;if(!m(n)){u?.(e);return}try{let r=h(await n(e,t));u?.(r||e)}catch(t){d.error(f(`table.detailFailed`),t),u?.(e)}},x=e=>a.editStates.rowEdit.isEditingRow(e)?[g(`mdi:check`,f(`common.save`),`primary`,()=>void a.editStates.rowEdit.saveEditRow().catch(e=>d.error(f(`table.actionFailed`,{action:f(`common.save`)}),e))),g(`mdi:close`,f(`common.cancel`),`default`,()=>a.editStates.rowEdit.cancelEditRow())]:[g(`mdi:pencil`,f(`common.edit`),`warning`,()=>a.editStates.rowEdit.startEditRow(e))],S=(e,t)=>{let n=[];return p(`detail`)&&n.push(g(`mdi:eye`,f(`common.detail`),`info`,()=>void b(e,t))),p(`edit`)&&(i.value.editMode===`modal`||m(r.value?.edit))&&n.push(g(`mdi:pencil`,f(`common.edit`),`warning`,()=>void _(e,t))),p(`delete`)&&n.push(g(`mdi:delete`,f(`common.delete`),`error`,()=>void y(e,t).catch(()=>void 0))),n},C=(e,n)=>{let i=r.value?.custom;if(!i?.length)return null;let a=i.filter(t=>t.show?t.show(e,n):!0);return a.length?(0,o.h)(s.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,o.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=>d.error(f(`table.actionFailed`,{action:i}),e))}},()=>g(`mdi:dots-horizontal`,f(`table.moreActions`),`default`,()=>{})):null};return{renderActions:(e,t)=>{if(r.value?.render)return r.value.render(e,t);let n=c(e),l=[`row`,`both`].includes(i.value.editMode);if(l&&a.editStates.rowEdit.isEditingRow(n))return(0,o.h)(s.NSpace,{size:2,wrap:!1},()=>x(n));let u=m(r.value?.edit),d=[...l&&!u?x(n):[],...S(e,t)],f=C(e,t);return f&&d.push(f),(0,o.h)(s.NSpace,{size:2,wrap:!1},()=>d)},isActionEnabled:p}}const xe=Symbol(`C_TABLE_GLOBAL_CONFIG`),Se={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 Ce(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 we(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 Te={date:(e,t)=>Ce(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>Ce(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=we(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)=>we(e,t.precision??0)};function Ee(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&&Te[n.type];return i?i(e,{...{...Se,...r}[n.type],...n.config}):String(e??`-`)}function De(){return(0,o.getCurrentInstance)()?(0,o.inject)(xe,{}):{}}const Oe=(e,t)=>t===void 0?e:t&&e&&typeof t==`object`&&typeof e==`object`&&!Array.isArray(t)&&!Array.isArray(e)?{...e,...t}:t;function ke(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=Oe(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 Ae={number:s.NInputNumber,switch:s.NSwitch,input:s.NInput,email:s.NInput,mobile:s.NInput,date:e=>(0,o.h)(s.NDatePicker,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>(0,o.h)(s.NSelect,{...e,options:e.options||[]}),textarea:e=>(0,o.h)(s.NInput,{...e,type:`textarea`,rows:3})},je={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Me=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:je[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function Ne(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,o.h)(Ae[e.editType||`input`]||Ae.input,i)}function Pe(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?Ee(r,t,e.formatter,i):String(r??``)}function Fe(e,n,r,i,a){let s=(e,n,r)=>(0,o.h)(`button`,{class:`cell-action-btn cell-action-${e}`,title:n,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[(0,o.h)(t.t,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return(0,o.h)(`div`,{class:`cell-editing-container`},[(0,o.h)(`div`,{class:`cell-editing-input`},[Ne(e,n,r)]),(0,o.h)(`div`,{class:`cell-editing-actions`},[s(`save`,`保存`,i),s(`cancel`,`取消`,a)])])}function Ie(e,n,r,i,a,s){let c;return c=e.render?e.render(n,r)??String(i??``):e.formatter?Ee(i,n,e.formatter,s):String(i??``),(0,o.h)(`div`,{class:`cell-edit-wrapper`},[(0,o.h)(`span`,{class:`cell-value`},c),(0,o.h)(t.t,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function Le(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:s,editModeChecker:c,showActionsColumn:l}=e,u=(0,o.ref)([]),d=(0,o.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,o.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)?Fe(e,l(i,o)??s,e=>u(i,o,e),()=>d(),()=>f()):Ie(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)?Pe(e,t,r,s,n.value.formatterConfig):u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)?Ne(e,a.editStates.rowEdit.getEditingRowData(l)?.[o]??s,e=>a.editStates.rowEdit.updateEditingRowData(l,o,e)):u.isCellEditMode()?p(e,t,r,l):Pe(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,o.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:s,fixed:t?.fixed})}return e}),computedScrollX:(0,o.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 Re(e){let{data:t,onReorder:n,onSort:r}=e,i=(0,o.ref)(!1),a=null,s=0,c=!1,l=()=>{a?.destroy(),a=null,i.value=!1},u=async u=>{let d=++s;l();let f=(0,o.toValue)(e.config);if(!(!f?.enabled||!u||c))try{let{default:e}=await import(`sortablejs`);if(c||d!==s)return;let o=u.querySelector(`.n-data-table-tbody`);if(!o)return;a=new e(o,{animation:f.animationDuration??150,handle:f.handleSelector,ghostClass:f.ghostClass??`row-drag-ghost`,chosenClass:f.chosenClass??`row-drag-chosen`,onStart:()=>{i.value=!0},onEnd:e=>{if(i.value=!1,e.oldIndex==null||e.newIndex==null||e.oldIndex===e.newIndex)return;let a=[...t.value],[o]=a.splice(e.oldIndex,1);o&&(a.splice(e.newIndex,0,o),n?.(a),r?.(o,e.oldIndex,e.newIndex))}})}catch{}},d=()=>{s+=1,l()};return(0,o.onBeforeUnmount)(()=>{c=!0,d()}),{initRowDrag:u,destroyRowDrag:d,isDragging:i}}function ze(e){let{allData:t,rowKey:n}=e,r=(0,o.ref)(new Set),i=()=>{let t=(0,o.toValue)(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},a=(0,o.computed)(()=>r.value.size),s=e=>e.map(e=>n(e)).filter(e=>r.value.has(e)),c=(t,a)=>{if(!(0,o.toValue)(e.config)?.enabled)return;let s=new Set(r.value);for(let e of a)s.delete(n(e));for(let e of t){let t=i();if(t&&s.size>=t)break;s.add(e)}r.value=s},l=()=>{if(!(0,o.toValue)(e.config)?.enabled)return;let a=[...new Set(t.value.map(e=>n(e)))],s=i();r.value=new Set(s?a.slice(0,s):a)},u=a=>{if(!(0,o.toValue)(e.config)?.enabled||!t.value.some(e=>n(e)===a))return!1;if(r.value.has(a))return!0;let s=i();return s&&r.value.size>=s?!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,o.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,o.watch)(()=>[(0,o.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:s,handlePageSelectionChange:c,selectAll:l,select:u,unselect:d,clearAll:f,getSelectedRows:()=>t.value.filter(e=>r.value.has(n(e))),isSelected:e=>r.value.has(e)}}function Be(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 Ve(e,t,n){let r=e[t.key];return t.formatter?Ee(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function He(e,t,n){let r=n&&/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return r.includes(t)||r.includes(`"`)||r.includes(`
2
- `)||r.includes(`\r`)?`"${r.replace(/"/g,`""`)}"`:r}function Ue(e){return[...e||`export`].map(e=>e.charCodeAt(0)<32||`<>:"/\\|?*`.includes(e)?`_`:e).join(``).trim()||`export`}function We(e,t,n){let r=n.csvSeparator??`,`,i=n.preventFormulaInjection!==!1,a=Be(t,n.columnKeys),o=[];n.includeHeader!==!1&&o.push(a.map(e=>He(e.title??``,r,i)).join(r));for(let t of e){let e=a.map(e=>He(Ve(t,e,n.formatterConfig),r,i));o.push(e.join(r))}Ke(new Blob([``+o.join(`
3
- `)],{type:`text/csv;charset=utf-8;`}),`${Ue(n.filename)}.csv`)}async function Ge(e,t,n){let r=Be(t,n.columnKeys),i;try{i=await import(`xlsx`)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),We(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>Ve(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,`${Ue(n.filename)}.xlsx`)}function Ke(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 qe(e,t,n={}){n.format===`xlsx`?await Ge(e,t,n):We(e,t,n)}const Je=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}],Ye=[`_actions`],Xe=[`selection`,`expand`],Ze=e=>Ye.includes(e.key)||Xe.includes(e.type),Qe={class:`column-management-tab`},$e={class:`search-row`},et={class:`resizable-control`},tt={class:`top-actions-bar`},nt={class:`stats-info`},rt={class:`quick-actions`},it=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],at={class:`column-info`},ot={class:`column-controls`},st={class:`column-details`},ct={class:`column-actions`},lt={class:`drag-controls`},ut=(0,o.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[...e];try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);if(!t)return[...e];let n=JSON.parse(t);if(!Array.isArray(n))return[...e];let i=new Map(n.map((e,t)=>[e.key,{...e,order:t}])),a=e.map(e=>{let t=i.get(e.key);return t?{...e,visible:t.visible??e.visible,width:t.width??e.width,fixed:t.fixed??e.fixed}:{...e}});return a.sort((e,t)=>(i.get(e.key)?.order??999)-(i.get(t.key)?.order??999)),a}catch{return[...e]}},c=e=>{if(r.persistKey)try{let t=e.map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}));localStorage.setItem(`c_table_cols_${r.persistKey}`,JSON.stringify(t))}catch{}},l=(0,o.ref)(a(r.columns)),u=(0,o.ref)(``),d=(0,o.ref)(),f=(0,o.ref)(null),p=(0,o.ref)(null),m=(0,o.ref)(!1);(0,o.onMounted)(()=>{m.value=l.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...l.value])}),(0,o.watch)(()=>r.columns,e=>{l.value=a(e),m.value=l.value.some(e=>e.resizable===!0)},{deep:!0});let h=(0,o.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,o.computed)(()=>l.value.filter(e=>e.visible!==!1).length),_=(0,o.computed)(()=>l.value.length),v=e=>{l.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),T()},y=()=>v(!0),b=()=>v(!1),x=e=>{let t=h.value[e];return l.value.findIndex(e=>e.key===t.key)},S=(e,t)=>{let n=x(e);n!==-1&&(t(l.value[n]),T())},C=(e,t)=>{S(e,e=>{e.visible=t})},w=(e,t)=>{S(e,e=>{e.fixed=t===`none`?void 0:t})},T=()=>{c(l.value),i(`change`,[...l.value])},E=()=>{l.value=[...r.columns],T()},D=e=>{l.value.forEach(t=>{Ze(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,o.openBlock)(),(0,o.createElementBlock)(`div`,Qe,[(0,o.createCommentVNode)(` 搜索框和列宽调整开关 `),(0,o.createElementVNode)(`div`,$e,[(0,o.createVNode)((0,o.unref)(s.NInput),{value:u.value,"onUpdate:value":n[0]||=e=>u.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:(0,o.withCtx)(()=>[(0,o.createVNode)(t.t,{name:`mdi:magnify`})]),_:1},8,[`value`]),(0,o.createElementVNode)(`div`,et,[(0,o.createVNode)(t.t,{name:`mdi:arrow-split-vertical`,size:`14`,title:m.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),(0,o.createVNode)((0,o.unref)(s.NText),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:(0,o.withCtx)(()=>[...n[2]||=[(0,o.createTextVNode)(` 列宽调整 `,-1)]]),_:1}),(0,o.createVNode)((0,o.unref)(s.NSwitch),{value:m.value,"onUpdate:value":[n[1]||=e=>m.value=e,D],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),(0,o.createCommentVNode)(` 顶部操作栏:统计信息和快捷操作按钮 `),(0,o.createElementVNode)(`div`,tt,[(0,o.createElementVNode)(`div`,nt,[(0,o.createVNode)((0,o.unref)(s.NText),{depth:`3`,style:{fontSize:`13px`}},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)(` 已选 `+(0,o.toDisplayString)(g.value)+` / 总共 `+(0,o.toDisplayString)(_.value)+` 列 `,1)]),_:1})]),(0,o.createElementVNode)(`div`,rt,[(0,o.createVNode)((0,o.unref)(s.NSpace),{size:6},{default:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NButton),{size:`tiny`,onClick:y},{default:(0,o.withCtx)(()=>[...n[3]||=[(0,o.createTextVNode)(` 全选 `,-1)]]),_:1}),(0,o.createVNode)((0,o.unref)(s.NButton),{size:`tiny`,onClick:b},{default:(0,o.withCtx)(()=>[...n[4]||=[(0,o.createTextVNode)(` 全不选 `,-1)]]),_:1}),(0,o.createVNode)((0,o.unref)(s.NButton),{size:`tiny`,onClick:E},{default:(0,o.withCtx)(()=>[...n[5]||=[(0,o.createTextVNode)(` 重置 `,-1)]]),_:1})]),_:1})])]),(0,o.createCommentVNode)(` 列列表 `),(0,o.createElementVNode)(`div`,{ref_key:`listRef`,ref:d,class:`column-list`},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(h.value,(e,r)=>((0,o.openBlock)(),(0,o.createElementBlock)(`div`,{key:e.key,class:(0,o.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,o.createElementVNode)(`div`,at,[(0,o.createElementVNode)(`div`,ot,[(0,o.createVNode)(t.t,{name:`mdi:drag`,size:`16`,class:(0,o.normalizeClass)([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),(0,o.createVNode)((0,o.unref)(s.NCheckbox),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>C(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),(0,o.createElementVNode)(`div`,st,[(0,o.createVNode)((0,o.unref)(s.NSpace),{align:`center`,size:6},{default:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NText),{strong:``,style:{fontSize:`13px`}},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NTag),{key:0,size:`tiny`,type:`info`},{default:(0,o.withCtx)(()=>[...n[6]||=[(0,o.createTextVNode)(` 左固定 `,-1)]]),_:1})):(0,o.createCommentVNode)(`v-if`,!0),e.fixed===`right`?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NTag),{key:1,size:`tiny`,type:`warning`},{default:(0,o.withCtx)(()=>[...n[7]||=[(0,o.createTextVNode)(` 右固定 `,-1)]]),_:1})):(0,o.createCommentVNode)(`v-if`,!0)]),_:2},1024),(0,o.createVNode)((0,o.unref)(s.NText),{depth:`3`,style:{fontSize:`11px`}},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.key),1)]),_:2},1024)])]),(0,o.createElementVNode)(`div`,ct,[(0,o.createElementVNode)(`div`,lt,[(0,o.createVNode)(t.t,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:(0,o.normalizeClass)({disabled:r===0}),onClick:e=>r!==0&&O(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),(0,o.createVNode)(t.t,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==h.value.length-1,class:(0,o.normalizeClass)({disabled:r===h.value.length-1}),onClick:e=>r!==h.value.length-1&&O(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),(0,o.createVNode)((0,o.unref)(s.NDropdown),{options:(0,o.unref)(Je)(e),onSelect:e=>w(r,e)},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(t.t,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:(0,o.normalizeStyle)({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,it))),128))],512)]))}});var dt=n.t(ut,[[`__scopeId`,`data-v-022be568`]]);function ft(e){return e}function pt(e){return e}function mt(e,t){let n=new Map,r=[];return e.forEach((e,i)=>{let a;try{a=t(e)}catch(t){r.push({type:`error`,row:e,index:i,cause:t});return}if(a==null||a===``){r.push({type:`missing`,row:e,index:i});return}let o=n.get(a);if(o!==void 0){r.push({type:`duplicate`,row:e,index:i,key:a,firstIndex:o});return}n.set(a,i)}),r}const ht={key:1,class:`table-toolbar`},gt={class:`toolbar-left`},_t={class:`toolbar-right`},vt={key:2,class:`batch-actions-bar`},yt={class:`batch-info`},bt={key:3,class:`table-error-state`},xt={class:`error-content`},St={class:`error-message`},Ct=(0,o.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:c,emit:l}){let u=n,d=l,f=(e,...t)=>{if(d(e,...t),u.crud)return{save:u.crud.save,cancel:u.crud.handleCancel,"pagination-change":u.crud.handlePaginationChange,"row-delete":u.crud.handleRowDelete,"view-detail":u.crud.detail?.show}[e]?.(...t)},p=De(),m=e=>typeof u.rowKey==`function`?u.rowKey(e):e[u.rowKey],h=(0,o.computed)(()=>{let e=u.config||{};if(u.crud){let t={};u.crud.actions&&(t.actions=u.crud.actions.value),u.crud.pagination&&(t.pagination=u.crud.pagination.value??void 0),e={...t,...e}}return ke(e,p)}),g=(0,o.computed)(()=>u.columns??u.crud?.columns.value??[]),_=(0,o.computed)(()=>C(h.value)),v=e.r(()=>_.value.feedback),{t:y}=e.i(()=>_.value.locale),b=(0,o.computed)(()=>w(_.value)),x=e=>e&&typeof e==`object`&&`value`in e?e.value:e,S=(0,o.computed)(()=>x(u.data)??u.crud?.data.value??[]),T=(0,o.computed)(()=>x(u.loading)??u.crud?.loading.value??!1),E=``;(0,o.watch)(()=>S.value.map(e=>{try{return m(e)}catch{return}}),()=>{if(h.value.validateRowKeys===!1){E=``;return}let e=mt(S.value,m);if(e.length===0){E=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==E&&(E=t,v.warning(y(`table.invalidRowKeys`,{count:e.length})),d(`row-key-error`,e))},{immediate:!0});let D=ye({data:S,config:(0,o.computed)(()=>_.value.pagination),emit:f}),O=_e({config:_,data:()=>S.value,rowKey:m,emit:f,columns:()=>g.value}),k=be({actions:(0,o.computed)(()=>h.value.actions||{}),config:_,tableManager:O,rowKey:m,onRowDeleted:(e,t)=>d(`row-delete`,e,t),onViewDetail:e=>f(`view-detail`,e)}),A=(0,o.computed)(()=>{let{actions:e}=h.value;return!!(_.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),j=Le({rawColumns:g,config:_,columnWidth:_.value.columnWidth,scrollX:_.value.scrollX,rowKey:m,tableManager:O,actionsRenderer:k.renderActions,editModeChecker:b,showActionsColumn:A}),{showSettingsPanel:M,reactiveColumns:N,computedColumns:P,computedScrollX:ee}=j,F=Re({data:D.paginatedData,rowKey:m,config:(0,o.computed)(()=>_.value.rowDrag),onReorder:e=>{let t=_.value.pagination;if(!t?.enabled||t.remote){f(`update:data`,e);return}let n=(D.currentPage.value-1)*D.currentPageSize.value,r=[...S.value];r.splice(n,e.length,...e),f(`update:data`,r)},onSort:(e,t,n)=>{let r=_.value.pagination?.enabled&&!_.value.pagination.remote?(D.currentPage.value-1)*D.currentPageSize.value:0;d(`row-move`,e,t+r,n+r)}}),I=ze({allData:S,rowKey:m,config:(0,o.computed)(()=>_.value.crossPageSelection)}),L=(0,o.computed)(()=>_.value.crossPageSelection?.enabled===!0),te=(0,o.computed)(()=>L.value?I.selectedCount.value:O.checkedKeys?.value?.length??0),R=(0,o.ref)(new Set),ne=async e=>{if(R.value.has(e.key))return;let t=L.value?[...I.selectedKeys.value]:O.checkedKeys?.value??[],n=L.value?I.getSelectedRows():S.value.filter(e=>t.includes(m(e)));R.value=new Set(R.value).add(e.key);try{await e.onClick(t,n),_.value.batchActions?.clearSelectionOnSuccess&&z()}catch(t){_.value.batchActions?.onError?.(t,e.key),d(`batch-action-error`,t,e.key)}finally{let t=new Set(R.value);t.delete(e.key),R.value=t}},z=()=>{L.value?I.clearAll():O.stateManager.selection.clear()},re=(0,o.computed)(()=>L.value?I.getPageCheckedKeys(D.paginatedData.value):null),ie=e=>{L.value&&I.handlePageSelectionChange(e,D.paginatedData.value),O.expandState?.handleSelectionChange?.(e)},ae=async()=>{let e=_.value.exportConfig??{};await qe(S.value,g.value,{...e,formatterConfig:_.value.formatterConfig})},oe=(0,o.computed)(()=>{let e=_.value;if(e.summaryRender)return t=>{let n=e.summaryRender(t);return P.value.map(e=>{let t=n[e.key];return t?{value:t.value,colSpan:t.colSpan??1}:{value:``}})}}),B=(0,o.ref)(),V=null,H=0,se=()=>{H+=1,V?.destroy(),V=null},ce=async()=>{let e=++H;if(V?.destroy(),V=null,!(!_.value.enableColumnDrag||!B.value))try{let{default:t}=await import(`sortablejs`);if(e!==H||!B.value)return;let n=B.value.querySelector(`.n-data-table-thead tr`);if(!n)return;V=new t(n,{animation:_.value.columnDragAnimationDuration,handle:_.value.columnDragHandleClass?`.${_.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=[...N.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),j.handleColumnChange(t),d(`column-change`,t)}})}catch{}},le=(0,o.ref)(),ue=(0,o.computed)(()=>({striped:_.value.striped,bordered:_.value.bordered,singleLine:_.value.singleLine,size:_.value.size,maxHeight:_.value.maxHeight})),U=(0,o.ref)(),W=(0,o.ref)(!1),G=(0,o.ref)({}),K=(0,o.computed)({get:()=>O.editStates.modalEdit.isModalVisible.value,set:e=>{O.editStates.modalEdit.isModalVisible.value=e}}),q=(0,o.computed)(()=>g.value.filter(e=>e.editable!==!1)),de=(0,o.computed)(()=>`edit-form-${O.editStates.modalEdit.editingRowKey.value??`new`}`),fe=(0,o.computed)(()=>Me(q.value));(0,o.watch)(()=>O.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(G.value=i.t(e))},{immediate:!0,deep:!0});let J=null;(0,o.watch)(K,e=>{e&&J&&(clearTimeout(J),J=null),e||(J&&clearTimeout(J),J=setTimeout(()=>{G.value={},J=null},300))});let pe=async()=>{if(U.value){W.value=!0;try{await U.value.validate()}catch{W.value=!1;return}try{await O.editStates.modalEdit.saveEdit(G.value)}finally{W.value=!1}}},me=()=>{G.value={},O.editStates.modalEdit.cancelEdit()},he=e=>{j.handleColumnChange(e),d(`column-change`,j.reactiveColumns.value)},{edit:Y,expand:X,selection:Z,dynamicRows:Q}=O.stateManager,ge={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:z,isRowSelected:e=>L.value?I.isSelected(e):Z.isSelected(e),clearAllSelections:()=>{I.clearAll(),O.stateManager.clearAllSelections()},selectChildRow:O.stateManager.childSelection.select,unselectChildRow:O.stateManager.childSelection.unselect,selectAllChildren:O.stateManager.childSelection.selectAll,clearChildrenSelection:O.stateManager.childSelection.clear,getChildSelectedRows:O.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??B.value),downloadTableScreenshot:(e,t)=>Q.download(e??B.value,t),resetToFirstPage:D.resetToFirstPage,getTotalPages:D.getTotalPages,getSelectedRows:()=>L.value?I.getSelectedRows():Z.getSelected(),getEditingData:Y.getEditingData,isEditing:Y.isEditing,isExpanded:X.isExpanded,getManager:()=>O.stateManager,exportData:ae,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 c(ge),(0,o.onMounted)(()=>{let e=u.crud?.tableRef;e&&(e.value=ge),ce(),B.value&&F.initRowDrag(B.value)}),(0,o.watch)([()=>_.value.enableColumnDrag,()=>_.value.columnDragHandleClass,()=>T.value,()=>P.value.length],async()=>{await(0,o.nextTick)(),await ce()},{immediate:!0,flush:`post`}),(0,o.watch)([()=>_.value.rowDrag,()=>T.value,()=>D.paginatedData.value.length,()=>D.currentPage.value],async()=>{await(0,o.nextTick)(),B.value&&await F.initRowDrag(B.value)},{immediate:!0,deep:!0,flush:`post`}),(0,o.onBeforeUnmount)(()=>{J&&clearTimeout(J),se(),F.destroyRowDrag()}),(e,n)=>((0,o.openBlock)(),(0,o.createElementBlock)(`div`,{ref_key:`tableWrapperRef`,ref:B,class:`c-table-wrapper`},[(0,o.createCommentVNode)(` 动态行工具栏 `),_.value.dynamicRows&&(0,o.unref)(O).dynamicRowsState?((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)((0,o.unref)(O).dynamicRowsState.renderToolbar(B.value)),{key:0})):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 表格工具栏 `),_.value.showToolbar?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,ht,[(0,o.createElementVNode)(`div`,gt,[(0,o.renderSlot)(e.$slots,`toolbar-left`,{},void 0,!0),_.value.toolbarActions.length?((0,o.openBlock)(),(0,o.createBlock)(r.t,{key:0,actions:_.value.toolbarActions,config:{..._.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,o.createCommentVNode)(`v-if`,!0)]),(0,o.createElementVNode)(`div`,_t,[(0,o.renderSlot)(e.$slots,`toolbar-right`,{},void 0,!0),_.value.toolbarRightActions.length?((0,o.openBlock)(),(0,o.createBlock)(r.t,{key:0,actions:_.value.toolbarRightActions,config:{align:`right`,..._.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,o.createCommentVNode)(`v-if`,!0),_.value.exportConfig?((0,o.openBlock)(),(0,o.createBlock)(t.t,{key:1,name:`mdi:download`,size:`18`,title:(0,o.unref)(y)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:n[0]||=e=>ae()},null,8,[`title`])):(0,o.createCommentVNode)(`v-if`,!0),_.value.enableColumnSettings?((0,o.openBlock)(),(0,o.createBlock)(t.t,{key:2,name:`mdi:cog`,size:`18`,title:(0,o.unref)(y)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:n[1]||=e=>M.value=!0},null,8,[`title`])):(0,o.createCommentVNode)(`v-if`,!0)])])):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 批量操作栏 `),_.value.batchActions?.enabled&&te.value>0?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,vt,[(0,o.createElementVNode)(`span`,yt,(0,o.toDisplayString)((0,o.unref)(y)(`table.selectedCount`,{count:te.value})),1),(0,o.createVNode)((0,o.unref)(s.NSpace),{size:8},{default:(0,o.withCtx)(()=>[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(_.value.batchActions.actions||[],e=>((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NButton),{key:e.key,type:e.type||`default`,size:`small`,loading:R.value.has(e.key),disabled:R.value.has(e.key),onClick:t=>ne(e)},(0,o.createSlots)({default:(0,o.withCtx)(()=>[(0,o.createTextVNode)(` `+(0,o.toDisplayString)(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:(0,o.withCtx)(()=>[(0,o.createVNode)(t.t,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`loading`,`disabled`,`onClick`]))),128)),(0,o.createVNode)((0,o.unref)(s.NButton),{size:`small`,onClick:z},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)((0,o.unref)(y)(`table.cancelSelection`)),1)]),_:1})]),_:1})])):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 错误状态 `),_.value.error?.show?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,bt,[(0,o.renderSlot)(e.$slots,`error`,{error:_.value.error},()=>[(0,o.createElementVNode)(`div`,xt,[(0,o.createVNode)(t.t,{name:`mdi:alert-circle-outline`,size:`48`}),(0,o.createElementVNode)(`p`,St,(0,o.toDisplayString)(_.value.error.message||(0,o.unref)(y)(`table.loadFailed`)),1),_.value.error.onRetry?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NButton),{key:0,type:`primary`,size:`small`,onClick:_.value.error.onRetry},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)((0,o.unref)(y)(`common.retry`)),1)]),_:1},8,[`onClick`])):(0,o.createCommentVNode)(`v-if`,!0)])],!0)])):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 表格主体 `),_.value.error?.show?(0,o.createCommentVNode)(`v-if`,!0):((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NDataTable),(0,o.mergeProps)({key:4,ref_key:`tableRef`,ref:le},{...ue.value,...e.$attrs},{columns:(0,o.unref)(P),data:(0,o.unref)(D).paginatedData.value,loading:T.value,"row-key":m,"expanded-row-keys":(0,o.unref)(O).expandedKeys.value,"checked-row-keys":re.value??(0,o.unref)(O).checkedKeys.value,"onUpdate:expandedRowKeys":(0,o.unref)(O).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":ie,"scroll-x":(0,o.unref)(ee),"virtual-scroll":_.value.virtualScroll,"min-row-height":_.value.virtualScroll?_.value.virtualItemHeight:void 0,"max-height":_.value.virtualScroll?_.value.virtualMaxHeight:_.value.maxHeight,summary:oe.value,"summary-placement":_.value.summaryPosition,"children-key":_.value.treeEnabled?_.value.treeChildrenKey:void 0,indent:_.value.treeEnabled?_.value.treeIndent:void 0,"default-expand-all":_.value.treeEnabled?_.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),null,16,[`columns`,`data`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),(0,o.createCommentVNode)(` 分页 `),(0,o.unref)(D).paginationConfig.value?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NPagination),(0,o.mergeProps)({key:5},(0,o.unref)(D).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 编辑弹窗 `),_.value.editMode===`modal`||_.value.editMode===`both`?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NModal),{key:6,show:K.value,"onUpdate:show":n[3]||=e=>K.value=e,title:_.value.modalTitle,width:_.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NSpace),{justify:`end`},{default:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NButton),{onClick:me},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)((0,o.unref)(y)(`common.cancel`)),1)]),_:1}),(0,o.createVNode)((0,o.unref)(s.NButton),{type:`primary`,loading:W.value,onClick:pe},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)((0,o.unref)(y)(`common.save`)),1)]),_:1},8,[`loading`])]),_:1})]),default:(0,o.withCtx)(()=>[K.value&&fe.value.length?((0,o.openBlock)(),(0,o.createBlock)(a.t,{ref_key:`editFormRef`,ref:U,key:de.value,modelValue:G.value,"onUpdate:modelValue":n[2]||=e=>G.value=e,options:fe.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):(0,o.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 动态行确认删除弹窗 `),_.value.dynamicRows&&(0,o.unref)(O).dynamicRowsState?((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)((0,o.unref)(O).dynamicRowsState.renderConfirmModal()),{key:7})):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 列设置抽屉 `),(0,o.createVNode)((0,o.unref)(s.NDrawer),{show:(0,o.unref)(M),"onUpdate:show":n[4]||=e=>(0,o.isRef)(M)?M.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NDrawerContent),{title:(0,o.unref)(y)(`table.columnSettings`),closable:``},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(dt,{columns:(0,o.unref)(N),"persist-key":_.value.persistKey,onChange:he},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],512))}});var wt=n.t(Ct,[[`__scopeId`,`data-v-4bd8844d`]]);const Tt=(e,t)=>Number.isFinite(e)?Math.max(1,Math.floor(e)):t;function Et(e){let t=(0,o.shallowRef)([]),n=(0,o.ref)(!1),r=(0,o.shallowRef)(),a=(0,o.ref)(0),s=i.t(e.initialQuery),c=(0,o.ref)(Tt(e.initialPage,1)),l=(0,o.ref)(Tt(e.pageSize,20)),u=(0,o.shallowRef)(i.t(s)),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:i.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=i.t([...n.data]),a.value=Math.max(0,Math.floor(n.total)),e.onSuccess?.({data:t.value,total:a.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=i.t(typeof e==`function`?e(u.value):{...u.value,...e}),c.value=1,t?p():!0),h=async(e,t)=>(c.value=Tt(e,c.value),l.value=Tt(t,l.value),p()),g=async(e=!0)=>(u.value=i.t(s),c.value=1,e?p():!0),_=(0,o.computed)(()=>{let r=(0,o.toValue)(e.config)??{},i=typeof r.pagination==`object`?r.pagination:{};return{data:t.value,loading:n.value,columns:(0,o.toValue)(e.columns),rowKey:e.rowKey??`id`,config:{...r,pagination:{...i,enabled:!0,remote:!0,page:c.value,pageSize:l.value,total:a.value}}}}),v=(0,o.computed)(()=>({..._.value,onPaginationChange:h})),y=()=>{d+=1,f?.abort(),f=null,n.value=!1};return e.immediate!==!1&&(0,o.onMounted)(()=>void p()),(0,o.onScopeDispose)(y),{data:t,loading:n,error:r,total:a,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 A}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return mt}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return pt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return wt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return ft}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Et}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return he}});
1
+ require(`./chunk.cjs`);const e=require(`./config.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./C_ActionBar2.cjs`),i=require(`./data.cjs`),a=require(`./C_Form2.cjs`);let o=require(`vue`),s=require(`naive-ui`);const c={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},l=e=>e===!1||e===void 0?c: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},u=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},d=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`}},f=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}}},p=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},m={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function h(e){return e?{striped:e.striped??m.striped,bordered:e.bordered??m.bordered,singleLine:e.singleLine??m.singleLine,size:e.size??m.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??m.columnWidth}:{...m}}const g=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1,toolbarActions:e?.actions??[],toolbarRightActions:e?.rightActions??[],toolbarActionBarConfig:e?.actionBar??{}}),_=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},v=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},y=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},b=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},x=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},S=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function C(e={}){return{feedback:e.feedback,locale:e.locale,...l(e.edit),...u(e.expand),...d(e.selection),...f(e.pagination),...p(e.dynamicRows),...h(e.display),...g(e.toolbar),..._(e.virtualScroll),...v(e.summary),...y(e.columnDrag),...b(e.tree),...x(e.rowDrag),...S(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const w=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function T(e,t){return(typeof e.message==`function`?e.message():e.message)||t}function E(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function D(e){if(typeof e==`number`)return e;if(typeof e==`string`||Array.isArray(e))return e.length}function O(e,t){return e===!1?t:e instanceof Error?e.message||t:typeof e==`string`?e||t:Array.isArray(e)&&e.length>0?O(e[0],t):null}async function k(e,t,n,r){let i=T(e,`${n}校验失败`),a=e.transform?e.transform(t):t;if(e.required&&E(a))return T(e,`${n}不能为空`);if(!e.required&&E(a))return null;if(e.enum&&!e.enum.includes(a)||e.pattern&&!new RegExp(e.pattern).test(String(a)))return i;let o=D(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=O(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 O(s,i)}catch(e){return e instanceof Error&&e.message?e.message:i}return null}function A(e){let t=(0,o.ref)(null),n=(0,o.ref)({}),r=(0,o.ref)(!1),a=(0,o.ref)([]),s=e=>t.value===e,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=e=>{let o=c(e);return!o||r.value?!1:(t.value=e,n.value={[String(e)]:i.t(o)},a.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(a.value=[],t.value===null)return!0;let r=e.columns?.()||[],i=n.value[String(t.value)];if(!i)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=i[t];return Promise.all(e.editProps.rules.map(e=>k(e,r,n,i))).then(e=>{let n=e.find(Boolean);return n?{field:t,message:n}:null})}).filter(Boolean),s=(await Promise.all(o)).filter(Boolean);return a.value=s,s.length===0},f=async()=>{if(t.value===null||r.value||!await d())return;let a=t.value,o=e.data();if(!o||!Array.isArray(o))return;let s=o.findIndex(t=>e.rowKey(t)===a);if(s===-1)return;let c=n.value[String(a)];if(c){r.value=!0;try{await e.onSave?.(i.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:s,startEditRow:l,cancelEditRow:u,saveEditRow:f,validateRow:d,validationErrors:a,getEditingRowData:p,updateEditingRowData:(e,t,n)=>{let r=p(e);r&&(r[t]=i.t(n))},findRowData:c}}function j(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function M(e){let t=(0,o.ref)({rowKey:null,columnKey:null}),n=(0,o.ref)({}),r=(0,o.ref)(!1),a=(0,o.ref)(null),s=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,c=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},l=(e,o)=>{let s=c(e);return!s||!o||r.value?!1:(t.value={rowKey:e,columnKey:o},n.value={[j(e,o)]:i.t(s[o])},a.value=null,!0)},u=async()=>{a.value=null;let{rowKey:r,columnKey:i}=t.value;if(r===null||i===null)return!0;let o=(e.columns?.()||[]).find(e=>e.key===i);if(!o||!o.editProps?.rules)return!0;let s=j(r,i),l=n.value[s],u=o.title||i,d={...c(r),[i]:l},f=(await Promise.all(o.editProps.rules.map(e=>k(e,l,u,d)))).find(Boolean);return f?(a.value=f,!1):!0};return{editingCell:t,editingData:n,isSaving:r,isEditingCell:s,startEditCell:l,saveEditCell:async()=>{let{rowKey:a,columnKey:o}=t.value;if(a===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)===a);if(c===-1)return;let l=j(a,o),d=n.value[l],f={...s[c],[o]:d};r.value=!0;try{await e.onSave?.(i.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:i}=t.value;r.value||(e!==null&&i!==null&&delete n.value[j(e,i)],t.value={rowKey:null,columnKey:null},a.value=null)},validateCell:u,cellValidationError:a,getEditingCellValue:(e,t)=>n.value[j(e,t)],updateEditingCellValue:(e,t,r)=>{s(e,t)&&(n.value[j(e,t)]=i.t(r))},findRowData:c}}function N(e){let t=(0,o.ref)(!1),n=(0,o.ref)(!1),r=(0,o.ref)(null),a=(0,o.ref)({}),s=(0,o.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:a,editingRowKey:r,editingRowIndex:s,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,a.value=i.t(s??c[l]),t.value=!0,!0)},saveEdit:async o=>{if(n.value||r.value===null)return;let c=s.value;if(c===-1)return;let l=i.t(o??a.value);n.value=!0;try{return await e.onSave?.(l,c),t.value=!1,r.value=null,a.value={},{updatedData:l,rowIndex:c}}finally{n.value=!1}},cancelEdit:async()=>{if(n.value)return!1;let i=s.value;try{if(r.value!==null&&i>-1){let t=e.data();t[i]&&await e.onCancel?.(t[i],i)}}finally{t.value=!1,r.value=null,a.value={}}return!0},updateEditingData:e=>n.value?!1:(a.value=i.t(e),!0),resetEditingState:()=>n.value?!1:(r.value=null,a.value={},!0),isEditingRow:e=>r.value===e&&t.value,getEditingRowData:e=>r.value===e?a.value:null}}const P=e=>({expandedKeys:(0,o.ref)([...e.defaultExpandedKeys||[]]),expandDataMap:(0,o.ref)(new Map),loadingMap:(0,o.ref)(new Map),checkedKeys:e.enableSelection?(0,o.ref)([...e.defaultCheckedKeys||[]]):(0,o.ref)([]),childSelections:(e.enableChildSelection,(0,o.ref)(new Map))}),F=e=>{let t=(0,o.computed)(()=>(0,o.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}},ee=(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)}}}},te=(e,t,n)=>{let r=(0,o.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,o.computed)(()=>e.checkedKeys.value.length),selectableRows:r}},ne=(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}},re=(e,t,n,r)=>({totalChildSelections:(0,o.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,o.h)(`div`,{class:`flex justify-center items-center py-8`},[(0,o.h)(s.NSpin,{size:`small`}),(0,o.h)(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),ie=()=>(0,o.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}}))]},ae=(e,t,n,r,i,a)=>{let c=[];return a.enableChildSelection&&c.push({type:`selection`,multiple:!0}),c.push(...R(t)),(0,o.h)(`div`,{class:`p-4 bg-gray-50`},[(0,o.h)(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),(0,o.h)(s.NDataTable,{data:t,columns:c,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},oe=(e,t,n,r,i)=>{let a=a=>{let s=t.getRowKey(a),c=e.expandDataMap.value.get(s)||[],l=e.loadingMap.value.get(s)||!1;!c.length&&!l&&e.expandedKeys.value.includes(s)&&(0,o.nextTick)(()=>{r.loadData(a)});let u=I(s,e,t,n,i);return i.renderContent?i.renderContent(a,c,l,u):l?L():c.length?ae(s,c,u,t,n,i):ie()};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 se(e){let t=P(e),n=F(e),r=ee(t,n,e),i=te(t,n,e),a=re(t,n,ne(t,e),e),s=oe(t,n,a,r,e);return e.onSelectionChange&&e.enableSelection&&(0,o.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,o.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:s.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap}}const ce={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},le={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},ue={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 de(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 fe(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={...ce,...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:de,repeat:fe};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={...le,...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={...ue,...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 pe(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function me(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>H(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=K(s,i,a);return r(60),q(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function he(e,t,n,r,i){r(70),t.watermark&&V(e,t.watermark),r(90),await G(U(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function J(){let t=e.r(),n=(0,o.ref)(!1),r=(0,o.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:`未知错误`}`)}},s=async(e,r={})=>{n.value=!0,i(0);try{await(0,o.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,o.nextTick)();let n=await H(e,i.capture);i.watermark&&V(n,i.watermark);let a=i.capture?.format||`png`,s=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;W(n,r||s,a),t.success(`下载完成`)}catch(e){throw t.error(`下载失败`,e),e}finally{n.value=!1}},l=async(e,t=`Robot Admin`)=>s(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),u=async(e,t={})=>{let n=e.length;i(10);let r=e.map(async(e,r)=>{let 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:s,downloadScreenshot:c,quickPrint:l,batchCapture:u,batchPrint:async(e,r={})=>{if(!e.length){t.warning(`没有要打印的元素`);return}n.value=!0;try{i(0);let n=await u(e,r);i(80),await d(n,r.print),i(100),t.success(`批量打印完成,共 ${e.length} 个元素`)}catch(e){throw t.error(`批量打印失败`,e),e}finally{n.value=!1,i(0)}},mergePrint:async(e,r={},a={})=>{let o=pe(e,a,t);if(o){n.value=!0;try{await he(await me(e,r,o,i),r,e.length,i,t)}catch(e){throw t.error(`合并打印失败`,e),e}finally{n.value=!1,i(0)}}},createPreset:(e,t)=>({use:e=>s(e,t),download:(e,n)=>c(e,n,t)}),updateProgress:i,utils:{captureElement:H,drawWatermark:V,canvasToDataURL:U,downloadCanvas:W,printImage:G}}}const ge={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 _e(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function ve(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]:_e()}}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,o.reactive)({...i,...(0,o.toValue)(r)});(0,o.watch)(()=>(0,o.toValue)(r),e=>{let t=a;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,i,e)},{deep:!0});let c=e.r(()=>a.feedback),{t:l}=e.i(()=>a.locale),u=`c-table-radio-${_e()}`,d=(0,o.ref)(null),f=(0,o.ref)(!1),p=(0,o.computed)(()=>d.value===null?null:n.value.find(e=>ve(e,a.rowKey)===d.value)||null),m=(0,o.computed)(()=>p.value?n.value.findIndex(e=>e===p.value):-1),h=(0,o.computed)(()=>m.value>0),g=(0,o.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=ge[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),c.success(l(`table.addRowSuccess`))},T=()=>{if(!a.enabled||!a.enableInsert||!p.value){c.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),c.success(l(`table.insertRowSuccess`))},E=()=>{if(!a.enabled||!a.enableDelete||!p.value){c.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),c.success(l(`table.deleteRowSuccess`)),f.value=!1},O=()=>{if(!a.enabled||!a.enableCopy||!p.value){c.warning(l(`table.selectCopyRowFirst`));return}let e=p.value,t=typeof a.rowKey==`string`?a.rowKey:`id`,{[t]:r,...i}=e,o={...i,[t]:_e()};C([...n.value,o]),a.onRowCopy?.(e,o),c.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),c.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),c.success(l(`table.moveDownSuccess`))},j=e=>{if(!a.enabled)return;let t=n.value.find(t=>ve(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){c.error(l(`table.printTargetMissing`));return}let t=S();await y(e.value,t)};return(0,o.onBeforeUnmount)(()=>{d.value=null,f.value=!1}),{selectedRowKey:d,selectedRowData:p,selectedRowIndex:m,canMoveUp:h,canMoveDown:g,deleteConfirmVisible:f,printLoading:_,printProgress:v,addRow:w,insertRow:T,deleteRow:E,confirmDelete:D,copyRow:O,moveRowUp:k,moveRowDown:A,selectRow:j,clearSelection:M,handlePrint:N,handleDownload:async(e,t)=>{if(!e.value){c.error(l(`table.downloadTargetMissing`));return}let n=S();await b(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){c.error(l(`table.printTargetMissing`));return}let t=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=ve(e,a.rowKey);return(0,o.h)(`div`,{class:`flex justify-center`},[(0,o.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,o.h)(s.NButton,{loading:_.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(a.printTargetSelector);t?await N((0,o.shallowRef)(t)):c.warning(l(`table.printTargetMissing`))}catch(e){c.error(l(`table.printTargetMissing`),e)}}},{icon:()=>(0,o.h)(t.t,{name:`mdi:printer`,title:l(`common.print`)}),default:()=>l(`common.print`)}));let r=[];return a.enableAdd&&r.push((0,o.h)(s.NButton,{onClick:w,type:`primary`},{icon:()=>(0,o.h)(t.t,{name:`mdi:plus`,title:l(`table.addRow`)}),default:()=>l(`table.addRow`)})),a.enableInsert&&r.push((0,o.h)(s.NTooltip,{disabled:!!p.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:T,disabled:!p.value,type:`primary`,ghost:!0},{icon:()=>(0,o.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,o.h)(s.NTooltip,{disabled:!!p.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:E,disabled:!p.value,type:`error`,ghost:!0},{icon:()=>(0,o.h)(t.t,{name:`mdi:delete`,title:l(`table.deleteRow`)}),default:()=>l(`table.deleteRow`)}),default:()=>l(`table.selectDeleteRowFirst`)})),a.enableCopy&&r.push((0,o.h)(s.NTooltip,{disabled:!!p.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:O,disabled:!p.value,type:`info`,ghost:!0},{icon:()=>(0,o.h)(t.t,{name:`mdi:content-copy`,title:l(`table.copyRow`)}),default:()=>l(`table.copyRow`)}),default:()=>l(`table.selectCopyRowFirst`)})),a.enableMove&&r.push((0,o.h)(s.NTooltip,{disabled:h.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:k,disabled:!h.value,type:`warning`,ghost:!0},{icon:()=>(0,o.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,o.h)(s.NTooltip,{disabled:g.value},{trigger:()=>(0,o.h)(s.NButton,{onClick:A,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>(0,o.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,o.h)(s.NButtonGroup,{},()=>r)),(0,o.h)(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[(0,o.h)(s.NSpace,{},()=>n)])},renderConfirmModal:()=>(0,o.h)(s.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 ye(t){let{data:n,rowKey:r,emit:i}=t,a=()=>(0,o.toValue)(t.config),s=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:A({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel,columns:t.columns}),cellEdit:M({data:n,rowKey:r,onSave:l.onSave,columns:t.columns}),modalEdit:N({data:n,rowKey:r,onSave:l.onSave,onCancel:l.onCancel})}),d=()=>se({data:(0,o.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):s.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,o.computed)(()=>n()),(0,o.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,o.shallowRef)(e))},async download(e,t){h&&e&&await h.handleDownload((0,o.shallowRef)(e),t)}},clearAllSelections(){m?.clearAllSelections()}},expandedKeys:(0,o.computed)(()=>m?.expandedKeys.value??[]),checkedKeys:(0,o.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 be(e){let{data:t,config:n,emit:r}=e,i=(0,o.ref)(Z.page),a=(0,o.ref)(Z.pageSize),s=(0,o.computed)(()=>{let e=typeof t==`function`?t():(0,o.unref)(t);return Array.isArray(e)?e:[]}),c=(0,o.computed)(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??s.value.length)):s.value.length}),l=()=>n.value?.enabled?Math.max(1,Math.ceil(c.value/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,o.computed)(()=>{let e=n.value;if(!e?.enabled||e.remote)return s.value;let t=(i.value-1)*a.value;return s.value.slice(t,t+a.value)}),h=(0,o.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,o.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,o.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 xe=e=>e&&typeof e==`object`&&`error`in e?e.error:null;function Se(n){let{actions:r,config:i,tableManager:a,rowKey:c,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,o.h)(s.NButton,{size:`small`,type:r,quaternary:!0,onClick:i},()=>[(0,o.h)(t.t,{name:e,size:14,title:n})]),v=async(e,t)=>{let n=c(e),o=r.value?.edit;if(h(o)){try{await o(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=xe(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,o.h)(s.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,o.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=c(e),l=[`row`,`both`].includes(i.value.editMode);if(l&&a.editStates.rowEdit.isEditingRow(n))return(0,o.h)(s.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,o.h)(s.NSpace,{size:2,wrap:!1},()=>d)},isActionEnabled:m}}const Ce=Symbol(`C_TABLE_GLOBAL_CONFIG`),we={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 Te(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 Ee(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 De={date:(e,t)=>Te(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>Te(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=Ee(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)=>Ee(e,t.precision??0)};function Oe(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&&De[n.type];return i?i(e,{...{...we,...r}[n.type],...n.config}):String(e??`-`)}function ke(){return(0,o.getCurrentInstance)()?(0,o.inject)(Ce,{}):{}}const Ae=(e,t)=>t===void 0?e:t&&e&&typeof t==`object`&&typeof e==`object`&&!Array.isArray(t)&&!Array.isArray(e)?{...e,...t}:t;function je(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=Ae(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 Me={number:s.NInputNumber,switch:s.NSwitch,input:s.NInput,email:s.NInput,mobile:s.NInput,date:e=>(0,o.h)(s.NDatePicker,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>(0,o.h)(s.NSelect,{...e,options:e.options||[]}),textarea:e=>(0,o.h)(s.NInput,{...e,type:`textarea`,rows:3})},Ne={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Pe=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:Ne[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function Fe(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,o.h)(Me[e.editType||`input`]||Me.input,i)}function Ie(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?Oe(r,t,e.formatter,i):String(r??``)}function Le(e,n,r,i,a){let s=(e,n,r)=>(0,o.h)(`button`,{class:`cell-action-btn cell-action-${e}`,title:n,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[(0,o.h)(t.t,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return(0,o.h)(`div`,{class:`cell-editing-container`},[(0,o.h)(`div`,{class:`cell-editing-input`},[Fe(e,n,r)]),(0,o.h)(`div`,{class:`cell-editing-actions`},[s(`save`,`保存`,i),s(`cancel`,`取消`,a)])])}function Re(e,n,r,i,a,s){let c;return c=e.render?e.render(n,r)??String(i??``):e.formatter?Oe(i,n,e.formatter,s):String(i??``),(0,o.h)(`div`,{class:`cell-edit-wrapper`},[(0,o.h)(`span`,{class:`cell-value`},c),(0,o.h)(t.t,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function ze(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:s,editModeChecker:c,showActionsColumn:l}=e,u=(0,o.ref)([]),d=(0,o.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,o.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)?Le(e,l(i,o)??s,e=>u(i,o,e),()=>d(),()=>f()):Re(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)?Ie(e,t,r,s,n.value.formatterConfig):u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)?Fe(e,a.editStates.rowEdit.getEditingRowData(l)?.[o]??s,e=>a.editStates.rowEdit.updateEditingRowData(l,o,e)):u.isCellEditMode()?p(e,t,r,l):Ie(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,o.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:s,fixed:t?.fixed})}return e}),computedScrollX:(0,o.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 Be(e){let{data:t,onReorder:n,onSort:r}=e,i=(0,o.ref)(!1),a=null,s=0,c=!1,l=()=>{a?.destroy(),a=null,i.value=!1},u=async u=>{let d=++s;l();let f=(0,o.toValue)(e.config);if(!(!f?.enabled||!u||c))try{let{default:e}=await import(`sortablejs`);if(c||d!==s)return;let o=u.querySelector(`.n-data-table-tbody`);if(!o)return;a=new e(o,{animation:f.animationDuration??150,handle:f.handleSelector,ghostClass:f.ghostClass??`row-drag-ghost`,chosenClass:f.chosenClass??`row-drag-chosen`,onStart:()=>{i.value=!0},onEnd:e=>{if(i.value=!1,e.oldIndex==null||e.newIndex==null||e.oldIndex===e.newIndex)return;let a=[...t.value],[o]=a.splice(e.oldIndex,1);o&&(a.splice(e.newIndex,0,o),n?.(a),r?.(o,e.oldIndex,e.newIndex))}})}catch{}},d=()=>{s+=1,l()};return(0,o.onBeforeUnmount)(()=>{c=!0,d()}),{initRowDrag:u,destroyRowDrag:d,isDragging:i}}function Ve(e){let{allData:t,rowKey:n}=e,r=(0,o.ref)(new Set),i=()=>{let t=(0,o.toValue)(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},a=(0,o.computed)(()=>r.value.size),s=e=>e.map(e=>n(e)).filter(e=>r.value.has(e)),c=(t,a)=>{if(!(0,o.toValue)(e.config)?.enabled)return;let s=new Set(r.value);for(let e of a)s.delete(n(e));for(let e of t){let t=i();if(t&&s.size>=t)break;s.add(e)}r.value=s},l=()=>{if(!(0,o.toValue)(e.config)?.enabled)return;let a=[...new Set(t.value.map(e=>n(e)))],s=i();r.value=new Set(s?a.slice(0,s):a)},u=a=>{if(!(0,o.toValue)(e.config)?.enabled||!t.value.some(e=>n(e)===a))return!1;if(r.value.has(a))return!0;let s=i();return s&&r.value.size>=s?!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,o.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,o.watch)(()=>[(0,o.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:s,handlePageSelectionChange:c,selectAll:l,select:u,unselect:d,clearAll:f,getSelectedRows:()=>t.value.filter(e=>r.value.has(n(e))),isSelected:e=>r.value.has(e)}}function He(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 Ue(e,t,n){let r=e[t.key];return t.formatter?Oe(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function We(e,t,n){let r=n&&/^[=+\-@\t\r]/.test(e)?`'${e}`:e;return r.includes(t)||r.includes(`"`)||r.includes(`
2
+ `)||r.includes(`\r`)?`"${r.replace(/"/g,`""`)}"`:r}function Ge(e){return[...e||`export`].map(e=>e.charCodeAt(0)<32||`<>:"/\\|?*`.includes(e)?`_`:e).join(``).trim()||`export`}function Ke(e,t,n){let r=n.csvSeparator??`,`,i=n.preventFormulaInjection!==!1,a=He(t,n.columnKeys),o=[];n.includeHeader!==!1&&o.push(a.map(e=>We(e.title??``,r,i)).join(r));for(let t of e){let e=a.map(e=>We(Ue(t,e,n.formatterConfig),r,i));o.push(e.join(r))}Je(new Blob([``+o.join(`
3
+ `)],{type:`text/csv;charset=utf-8;`}),`${Ge(n.filename)}.csv`)}async function qe(e,t,n){let r=He(t,n.columnKeys),i;try{i=await import(`xlsx`)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),Ke(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>Ue(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,`${Ge(n.filename)}.xlsx`)}function Je(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 Ye(e,t,n={}){n.format===`xlsx`?await qe(e,t,n):Ke(e,t,n)}const Xe=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}],Ze=[`_actions`],Qe=[`selection`,`expand`],$e=e=>Ze.includes(e.key)||Qe.includes(e.type),$=e=>typeof e==`string`||typeof e==`number`&&Number.isFinite(e),et=e=>typeof e==`number`&&Number.isFinite(e)&&e>=0||typeof e==`string`&&e.trim().length>0&&e.length<=128,tt=e=>e.map(e=>({...e})),nt=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},...et(n.width)&&{width:n.width},...(n.fixed===`left`||n.fixed===`right`)&&{fixed:n.fixed}}]:[]}):[]},rt=(e,t)=>{let n=new Map(nt(t).map(e=>[e.key,e]));return tt(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)})},it=e=>JSON.stringify(e.filter(e=>$(e.key)).map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}))),at={class:`column-management-tab`},ot={class:`search-row`},st={class:`resizable-control`},ct={class:`top-actions-bar`},lt={class:`stats-info`},ut={class:`quick-actions`},dt=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],ft={class:`column-info`},pt={class:`column-controls`},mt={class:`column-details`},ht={class:`column-actions`},gt={class:`drag-controls`},_t=(0,o.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 tt(e);try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);return t?rt(e,t):tt(e)}catch{return tt(e)}},c=e=>{if(r.persistKey)try{localStorage.setItem(`c_table_cols_${r.persistKey}`,it(e))}catch{}},l=(0,o.ref)(a(r.columns)),u=(0,o.ref)(``),d=(0,o.ref)(),f=(0,o.ref)(null),p=(0,o.ref)(null),m=(0,o.ref)(!1);(0,o.onMounted)(()=>{m.value=l.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...l.value])}),(0,o.watch)(()=>r.columns,e=>{l.value=a(e),m.value=l.value.some(e=>e.resizable===!0)},{deep:!0});let h=(0,o.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,o.computed)(()=>l.value.filter(e=>e.visible!==!1).length),_=(0,o.computed)(()=>l.value.length),v=e=>{l.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),T()},y=()=>v(!0),b=()=>v(!1),x=e=>{let t=h.value[e];return l.value.findIndex(e=>e.key===t.key)},S=(e,t)=>{let n=x(e);n!==-1&&(t(l.value[n]),T())},C=(e,t)=>{S(e,e=>{e.visible=t})},w=(e,t)=>{S(e,e=>{e.fixed=t===`none`?void 0:t})},T=()=>{c(l.value),i(`change`,[...l.value])},E=()=>{l.value=tt(r.columns),T()},D=e=>{l.value.forEach(t=>{$e(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,o.openBlock)(),(0,o.createElementBlock)(`div`,at,[(0,o.createCommentVNode)(` 搜索框和列宽调整开关 `),(0,o.createElementVNode)(`div`,ot,[(0,o.createVNode)((0,o.unref)(s.NInput),{value:u.value,"onUpdate:value":n[0]||=e=>u.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:(0,o.withCtx)(()=>[(0,o.createVNode)(t.t,{name:`mdi:magnify`})]),_:1},8,[`value`]),(0,o.createElementVNode)(`div`,st,[(0,o.createVNode)(t.t,{name:`mdi:arrow-split-vertical`,size:`14`,title:m.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),(0,o.createVNode)((0,o.unref)(s.NText),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:(0,o.withCtx)(()=>[...n[2]||=[(0,o.createTextVNode)(` 列宽调整 `,-1)]]),_:1}),(0,o.createVNode)((0,o.unref)(s.NSwitch),{value:m.value,"onUpdate:value":[n[1]||=e=>m.value=e,D],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),(0,o.createCommentVNode)(` 顶部操作栏:统计信息和快捷操作按钮 `),(0,o.createElementVNode)(`div`,ct,[(0,o.createElementVNode)(`div`,lt,[(0,o.createVNode)((0,o.unref)(s.NText),{depth:`3`,style:{fontSize:`13px`}},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)(` 已选 `+(0,o.toDisplayString)(g.value)+` / 总共 `+(0,o.toDisplayString)(_.value)+` 列 `,1)]),_:1})]),(0,o.createElementVNode)(`div`,ut,[(0,o.createVNode)((0,o.unref)(s.NSpace),{size:6},{default:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NButton),{size:`tiny`,onClick:y},{default:(0,o.withCtx)(()=>[...n[3]||=[(0,o.createTextVNode)(` 全选 `,-1)]]),_:1}),(0,o.createVNode)((0,o.unref)(s.NButton),{size:`tiny`,onClick:b},{default:(0,o.withCtx)(()=>[...n[4]||=[(0,o.createTextVNode)(` 全不选 `,-1)]]),_:1}),(0,o.createVNode)((0,o.unref)(s.NButton),{size:`tiny`,onClick:E},{default:(0,o.withCtx)(()=>[...n[5]||=[(0,o.createTextVNode)(` 重置 `,-1)]]),_:1})]),_:1})])]),(0,o.createCommentVNode)(` 列列表 `),(0,o.createElementVNode)(`div`,{ref_key:`listRef`,ref:d,class:`column-list`},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(h.value,(e,r)=>((0,o.openBlock)(),(0,o.createElementBlock)(`div`,{key:e.key,class:(0,o.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,o.createElementVNode)(`div`,ft,[(0,o.createElementVNode)(`div`,pt,[(0,o.createVNode)(t.t,{name:`mdi:drag`,size:`16`,class:(0,o.normalizeClass)([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),(0,o.createVNode)((0,o.unref)(s.NCheckbox),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>C(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),(0,o.createElementVNode)(`div`,mt,[(0,o.createVNode)((0,o.unref)(s.NSpace),{align:`center`,size:6},{default:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NText),{strong:``,style:{fontSize:`13px`}},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NTag),{key:0,size:`tiny`,type:`info`},{default:(0,o.withCtx)(()=>[...n[6]||=[(0,o.createTextVNode)(` 左固定 `,-1)]]),_:1})):(0,o.createCommentVNode)(`v-if`,!0),e.fixed===`right`?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NTag),{key:1,size:`tiny`,type:`warning`},{default:(0,o.withCtx)(()=>[...n[7]||=[(0,o.createTextVNode)(` 右固定 `,-1)]]),_:1})):(0,o.createCommentVNode)(`v-if`,!0)]),_:2},1024),(0,o.createVNode)((0,o.unref)(s.NText),{depth:`3`,style:{fontSize:`11px`}},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.key),1)]),_:2},1024)])]),(0,o.createElementVNode)(`div`,ht,[(0,o.createElementVNode)(`div`,gt,[(0,o.createVNode)(t.t,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:(0,o.normalizeClass)({disabled:r===0}),onClick:e=>r!==0&&O(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),(0,o.createVNode)(t.t,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==h.value.length-1,class:(0,o.normalizeClass)({disabled:r===h.value.length-1}),onClick:e=>r!==h.value.length-1&&O(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),(0,o.createVNode)((0,o.unref)(s.NDropdown),{options:(0,o.unref)(Xe)(e),onSelect:e=>w(r,e)},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(t.t,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:(0,o.normalizeStyle)({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,dt))),128))],512)]))}});var vt=n.t(_t,[[`__scopeId`,`data-v-3f6dcabc`]]);function yt(e){return e}function bt(e){return e}function xt(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 St(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 Ct={key:1,class:`table-toolbar`},wt={class:`toolbar-left`},Tt={class:`toolbar-right`},Et={key:2,class:`batch-actions-bar`},Dt={class:`batch-info`},Ot={key:3,class:`table-error-state`},kt={class:`error-content`},At={class:`error-message`},jt=(0,o.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:c,emit:l}){let u=n,d=l,f=(e,...t)=>{if(d(e,...t),u.crud)return{save:u.crud.save,cancel:u.crud.handleCancel,"pagination-change":u.crud.handlePaginationChange,"row-delete":u.crud.handleRowDelete,"view-detail":u.crud.detail?.show}[e]?.(...t)},p=ke(),m=e=>typeof u.rowKey==`function`?u.rowKey(e):e[u.rowKey],h=(0,o.computed)(()=>{let e=u.config||{};if(u.crud){let t={};u.crud.actions&&(t.actions=u.crud.actions.value),u.crud.pagination&&(t.pagination=u.crud.pagination.value??void 0),e={...t,...e}}return je(e,p)}),g=(0,o.computed)(()=>u.columns??u.crud?.columns.value??[]),_=(0,o.computed)(()=>C(h.value)),v=e.r(()=>_.value.feedback),{t:y}=e.i(()=>_.value.locale),b=(0,o.computed)(()=>w(_.value)),x=e=>e&&typeof e==`object`&&`value`in e?e.value:e,S=(0,o.computed)(()=>x(u.data)??u.crud?.data.value??[]),T=(0,o.computed)(()=>x(u.loading)??u.crud?.loading.value??!1),E=(0,o.computed)(()=>_.value.treeEnabled&&_.value.treeDefaultExpandAll?St(S.value,_.value.treeChildrenKey,m):[]),D=(0,o.computed)(()=>({..._.value,defaultExpandedKeys:[...new Set([..._.value.defaultExpandedKeys??[],...E.value])]})),O=``;(0,o.watch)(()=>S.value.map(e=>{try{return m(e)}catch{return}}),()=>{if(h.value.validateRowKeys===!1){O=``;return}let e=xt(S.value,m);if(e.length===0){O=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==O&&(O=t,v.warning(y(`table.invalidRowKeys`,{count:e.length})),d(`row-key-error`,e))},{immediate:!0});let k=be({data:S,config:(0,o.computed)(()=>_.value.pagination),emit:f}),A=ye({config:D,data:()=>S.value,rowKey:m,emit:f,columns:()=>g.value}),j=new Set;(0,o.watch)(E,e=>{if(!_.value.treeEnabled||!_.value.treeDefaultExpandAll){j.clear();return}let t=e.filter(e=>!j.has(e));e.forEach(e=>j.add(e));let n=A.expandedKeys.value,r=t.filter(e=>!n.includes(e));r.length&&A.expandState?.handleExpandChange([...n,...r])},{immediate:!0});let M=Se({actions:(0,o.computed)(()=>h.value.actions||{}),config:_,tableManager:A,rowKey:m,onRowDeleted:(e,t)=>d(`row-delete`,e,t),isDeleteFeedbackHandled:e=>u.crud?.actions?.value.delete===e,onViewDetail:e=>f(`view-detail`,e)}),N=(0,o.computed)(()=>{let{actions:e}=h.value;return!!(_.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),P=ze({rawColumns:g,config:_,columnWidth:_.value.columnWidth,scrollX:_.value.scrollX,rowKey:m,tableManager:A,actionsRenderer:M.renderActions,editModeChecker:b,showActionsColumn:N}),{showSettingsPanel:F,reactiveColumns:ee,computedColumns:te,computedScrollX:ne}=P,re=Be({data:k.paginatedData,rowKey:m,config:(0,o.computed)(()=>_.value.rowDrag),onReorder:e=>{let t=_.value.pagination;if(!t?.enabled||t.remote){f(`update:data`,e);return}let n=(k.currentPage.value-1)*k.currentPageSize.value,r=[...S.value];r.splice(n,e.length,...e),f(`update:data`,r)},onSort:(e,t,n)=>{let r=_.value.pagination?.enabled&&!_.value.pagination.remote?(k.currentPage.value-1)*k.currentPageSize.value:0;d(`row-move`,e,t+r,n+r)}}),I=Ve({allData:S,rowKey:m,config:(0,o.computed)(()=>_.value.crossPageSelection)}),L=(0,o.computed)(()=>_.value.crossPageSelection?.enabled===!0),ie=(0,o.computed)(()=>L.value?I.selectedCount.value:A.checkedKeys?.value?.length??0),R=(0,o.ref)(new Set),ae=async e=>{if(R.value.has(e.key))return;let t=L.value?[...I.selectedKeys.value]:A.checkedKeys?.value??[],n=L.value?I.getSelectedRows():S.value.filter(e=>t.includes(m(e)));R.value=new Set(R.value).add(e.key);try{await e.onClick(t,n),_.value.batchActions?.clearSelectionOnSuccess&&oe()}catch(t){_.value.batchActions?.onError?.(t,e.key),d(`batch-action-error`,t,e.key)}finally{let t=new Set(R.value);t.delete(e.key),R.value=t}},oe=()=>{L.value?I.clearAll():A.stateManager.selection.clear()},se=(0,o.computed)(()=>L.value?I.getPageCheckedKeys(k.paginatedData.value):null),ce=e=>{L.value&&I.handlePageSelectionChange(e,k.paginatedData.value),A.expandState?.handleSelectionChange?.(e)},le=async()=>{let e=_.value.exportConfig??{};await Ye(S.value,g.value,{...e,formatterConfig:_.value.formatterConfig})},ue=(0,o.computed)(()=>_.value.summaryRender),z=(0,o.ref)(),B=null,de=0,fe=()=>{de+=1,B?.destroy(),B=null},V=async()=>{let e=++de;if(B?.destroy(),B=null,!(!_.value.enableColumnDrag||!z.value))try{let{default:t}=await import(`sortablejs`);if(e!==de||!z.value)return;let n=z.value.querySelector(`.n-data-table-thead tr`);if(!n)return;B=new t(n,{animation:_.value.columnDragAnimationDuration,handle:_.value.columnDragHandleClass?`.${_.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=[...ee.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),d(`column-change`,t)}})}catch{}},H=(0,o.ref)(),U=(0,o.computed)(()=>({striped:_.value.striped,bordered:_.value.bordered,singleLine:_.value.singleLine,size:_.value.size,maxHeight:_.value.maxHeight})),W=(0,o.ref)(),G=(0,o.ref)(!1),K=(0,o.ref)({}),q=(0,o.computed)({get:()=>A.editStates.modalEdit.isModalVisible.value,set:e=>{A.editStates.modalEdit.isModalVisible.value=e}}),pe=(0,o.computed)(()=>g.value.filter(e=>e.editable!==!1)),me=(0,o.computed)(()=>`edit-form-${A.editStates.modalEdit.editingRowKey.value??`new`}`),he=(0,o.computed)(()=>Pe(pe.value));(0,o.watch)(()=>A.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(K.value=i.t(e))},{immediate:!0,deep:!0});let J=null;(0,o.watch)(q,e=>{e&&J&&(clearTimeout(J),J=null),e||(J&&clearTimeout(J),J=setTimeout(()=>{K.value={},J=null},300))});let ge=async()=>{if(W.value){G.value=!0;try{await W.value.validate()}catch{G.value=!1;return}try{await A.editStates.modalEdit.saveEdit(K.value)}finally{G.value=!1}}},_e=()=>{K.value={},A.editStates.modalEdit.cancelEdit()},ve=e=>{P.handleColumnChange(e),d(`column-change`,P.reactiveColumns.value)},{edit:Y,expand:X,selection:Z,dynamicRows:Q}=A.stateManager,xe={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:oe,isRowSelected:e=>L.value?I.isSelected(e):Z.isSelected(e),clearAllSelections:()=>{I.clearAll(),A.stateManager.clearAllSelections()},selectChildRow:A.stateManager.childSelection.select,unselectChildRow:A.stateManager.childSelection.unselect,selectAllChildren:A.stateManager.childSelection.selectAll,clearChildrenSelection:A.stateManager.childSelection.clear,getChildSelectedRows:A.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:k.resetToFirstPage,getTotalPages:k.getTotalPages,getSelectedRows:()=>L.value?I.getSelectedRows():Z.getSelected(),getEditingData:Y.getEditingData,isEditing:Y.isEditing,isExpanded:X.isExpanded,getManager:()=>A.stateManager,exportData:le,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 c(xe),(0,o.onMounted)(()=>{let e=u.crud?.tableRef;e&&(e.value=xe),V(),z.value&&re.initRowDrag(z.value)}),(0,o.watch)([()=>_.value.enableColumnDrag,()=>_.value.columnDragHandleClass,()=>T.value,()=>te.value.length],async()=>{await(0,o.nextTick)(),await V()},{immediate:!0,flush:`post`}),(0,o.watch)([()=>_.value.rowDrag,()=>T.value,()=>k.paginatedData.value.length,()=>k.currentPage.value],async()=>{await(0,o.nextTick)(),z.value&&await re.initRowDrag(z.value)},{immediate:!0,deep:!0,flush:`post`}),(0,o.onBeforeUnmount)(()=>{J&&clearTimeout(J),fe(),re.destroyRowDrag()}),(e,n)=>((0,o.openBlock)(),(0,o.createElementBlock)(`div`,{ref_key:`tableWrapperRef`,ref:z,class:`c-table-wrapper`},[(0,o.createCommentVNode)(` 动态行工具栏 `),_.value.dynamicRows&&(0,o.unref)(A).dynamicRowsState?((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)((0,o.unref)(A).dynamicRowsState.renderToolbar(z.value)),{key:0})):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 表格工具栏 `),_.value.showToolbar?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,Ct,[(0,o.createElementVNode)(`div`,wt,[(0,o.renderSlot)(e.$slots,`toolbar-left`,{},void 0,!0),_.value.toolbarActions.length?((0,o.openBlock)(),(0,o.createBlock)(r.t,{key:0,actions:_.value.toolbarActions,config:{..._.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,o.createCommentVNode)(`v-if`,!0)]),(0,o.createElementVNode)(`div`,Tt,[(0,o.renderSlot)(e.$slots,`toolbar-right`,{},void 0,!0),_.value.toolbarRightActions.length?((0,o.openBlock)(),(0,o.createBlock)(r.t,{key:0,actions:_.value.toolbarRightActions,config:{align:`right`,..._.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):(0,o.createCommentVNode)(`v-if`,!0),_.value.exportConfig?((0,o.openBlock)(),(0,o.createBlock)(t.t,{key:1,name:`mdi:download`,size:`18`,title:(0,o.unref)(y)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:n[0]||=e=>le()},null,8,[`title`])):(0,o.createCommentVNode)(`v-if`,!0),_.value.enableColumnSettings?((0,o.openBlock)(),(0,o.createBlock)(t.t,{key:2,name:`mdi:cog`,size:`18`,title:(0,o.unref)(y)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:n[1]||=e=>F.value=!0},null,8,[`title`])):(0,o.createCommentVNode)(`v-if`,!0)])])):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 批量操作栏 `),_.value.batchActions?.enabled&&ie.value>0?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,Et,[(0,o.createElementVNode)(`span`,Dt,(0,o.toDisplayString)((0,o.unref)(y)(`table.selectedCount`,{count:ie.value})),1),(0,o.createVNode)((0,o.unref)(s.NSpace),{size:8},{default:(0,o.withCtx)(()=>[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(_.value.batchActions.actions||[],e=>((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NButton),{key:e.key,type:e.type||`default`,size:`small`,loading:R.value.has(e.key),disabled:R.value.has(e.key),onClick:t=>ae(e)},(0,o.createSlots)({default:(0,o.withCtx)(()=>[(0,o.createTextVNode)(` `+(0,o.toDisplayString)(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:(0,o.withCtx)(()=>[(0,o.createVNode)(t.t,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`loading`,`disabled`,`onClick`]))),128)),(0,o.createVNode)((0,o.unref)(s.NButton),{size:`small`,onClick:oe},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)((0,o.unref)(y)(`table.cancelSelection`)),1)]),_:1})]),_:1})])):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 错误状态 `),_.value.error?.show?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,Ot,[(0,o.renderSlot)(e.$slots,`error`,{error:_.value.error},()=>[(0,o.createElementVNode)(`div`,kt,[(0,o.createVNode)(t.t,{name:`mdi:alert-circle-outline`,size:`48`}),(0,o.createElementVNode)(`p`,At,(0,o.toDisplayString)(_.value.error.message||(0,o.unref)(y)(`table.loadFailed`)),1),_.value.error.onRetry?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NButton),{key:0,type:`primary`,size:`small`,onClick:_.value.error.onRetry},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)((0,o.unref)(y)(`common.retry`)),1)]),_:1},8,[`onClick`])):(0,o.createCommentVNode)(`v-if`,!0)])],!0)])):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 表格主体 `),_.value.error?.show?(0,o.createCommentVNode)(`v-if`,!0):((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NDataTable),(0,o.mergeProps)({key:4,ref_key:`tableRef`,ref:H},{...U.value,...e.$attrs},{columns:(0,o.unref)(te),data:(0,o.unref)(k).paginatedData.value,loading:T.value,"row-key":m,"expanded-row-keys":(0,o.unref)(A).expandedKeys.value,"checked-row-keys":se.value??(0,o.unref)(A).checkedKeys.value,"onUpdate:expandedRowKeys":(0,o.unref)(A).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":ce,"scroll-x":(0,o.unref)(ne),"virtual-scroll":_.value.virtualScroll,"min-row-height":_.value.virtualScroll?_.value.virtualItemHeight:void 0,"max-height":_.value.virtualScroll?_.value.virtualMaxHeight:_.value.maxHeight,summary:ue.value,"summary-placement":_.value.summaryPosition,"children-key":_.value.treeEnabled?_.value.treeChildrenKey:void 0,indent:_.value.treeEnabled?_.value.treeIndent:void 0,"default-expand-all":_.value.treeEnabled?_.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),null,16,[`columns`,`data`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),(0,o.createCommentVNode)(` 分页 `),(0,o.unref)(k).paginationConfig.value?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NPagination),(0,o.mergeProps)({key:5},(0,o.unref)(k).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 编辑弹窗 `),_.value.editMode===`modal`||_.value.editMode===`both`?((0,o.openBlock)(),(0,o.createBlock)((0,o.unref)(s.NModal),{key:6,show:q.value,"onUpdate:show":n[3]||=e=>q.value=e,title:_.value.modalTitle,width:_.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NSpace),{justify:`end`},{default:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NButton),{onClick:_e},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)((0,o.unref)(y)(`common.cancel`)),1)]),_:1}),(0,o.createVNode)((0,o.unref)(s.NButton),{type:`primary`,loading:G.value,onClick:ge},{default:(0,o.withCtx)(()=>[(0,o.createTextVNode)((0,o.toDisplayString)((0,o.unref)(y)(`common.save`)),1)]),_:1},8,[`loading`])]),_:1})]),default:(0,o.withCtx)(()=>[q.value&&he.value.length?((0,o.openBlock)(),(0,o.createBlock)(a.t,{ref_key:`editFormRef`,ref:W,key:me.value,modelValue:K.value,"onUpdate:modelValue":n[2]||=e=>K.value=e,options:he.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):(0,o.createCommentVNode)(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 动态行确认删除弹窗 `),_.value.dynamicRows&&(0,o.unref)(A).dynamicRowsState?((0,o.openBlock)(),(0,o.createBlock)((0,o.resolveDynamicComponent)((0,o.unref)(A).dynamicRowsState.renderConfirmModal()),{key:7})):(0,o.createCommentVNode)(`v-if`,!0),(0,o.createCommentVNode)(` 列设置抽屉 `),(0,o.createVNode)((0,o.unref)(s.NDrawer),{show:(0,o.unref)(F),"onUpdate:show":n[4]||=e=>(0,o.isRef)(F)?F.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:(0,o.withCtx)(()=>[(0,o.createVNode)((0,o.unref)(s.NDrawerContent),{title:(0,o.unref)(y)(`table.columnSettings`),closable:``},{default:(0,o.withCtx)(()=>[(0,o.createVNode)(vt,{columns:(0,o.unref)(ee),"persist-key":_.value.persistKey,onChange:ve},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],512))}});var Mt=n.t(jt,[[`__scopeId`,`data-v-b0b68bbc`]]);const Nt=(e,t)=>Number.isFinite(e)?Math.max(1,Math.floor(e)):t;function Pt(e){let t=(0,o.shallowRef)([]),n=(0,o.ref)(!1),r=(0,o.shallowRef)(),a=(0,o.ref)(0),s=i.t(e.initialQuery),c=(0,o.ref)(Nt(e.initialPage,1)),l=(0,o.ref)(Nt(e.pageSize,20)),u=(0,o.shallowRef)(i.t(s)),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:i.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=i.t([...n.data]),a.value=Math.max(0,Math.floor(n.total)),e.onSuccess?.({data:t.value,total:a.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=i.t(typeof e==`function`?e(u.value):{...u.value,...e}),c.value=1,t?p():!0),h=async(e,t)=>(c.value=Nt(e,c.value),l.value=Nt(t,l.value),p()),g=async(e=!0)=>(u.value=i.t(s),c.value=1,e?p():!0),_=(0,o.computed)(()=>{let r=(0,o.toValue)(e.config)??{},i=typeof r.pagination==`object`?r.pagination:{};return{data:t.value,loading:n.value,columns:(0,o.toValue)(e.columns),rowKey:e.rowKey??`id`,config:{...r,pagination:{...i,enabled:!0,remote:!0,page:c.value,pageSize:l.value,total:a.value}}}}),v=(0,o.computed)(()=>({..._.value,onPaginationChange:h})),y=()=>{d+=1,f?.abort(),f=null,n.value=!1};return e.immediate!==!1&&(0,o.onMounted)(()=>void p()),(0,o.onScopeDispose)(y),{data:t,loading:n,error:r,total:a,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 A}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return bt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return yt}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Pt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return J}});
@@ -730,6 +730,8 @@ interface UseTableActionsOptions<T extends object = DataRecord> {
730
730
  /** 事件发射器 */
731
731
  /** Deletion action completion notification; kept separate from CRUD data mutation. */
732
732
  onRowDeleted?: (row: T, index: number) => void;
733
+ /** A bound CRUD action may already report success or failure to the user. */
734
+ isDeleteFeedbackHandled?: (action: ApiFunction<T>) => boolean;
733
735
  /** 查看详情回调 */
734
736
  onViewDetail?: (data: T) => void;
735
737
  }
@@ -1105,7 +1107,7 @@ declare const __VLS_export: <T extends object = DataRecord>(__VLS_props: NonNull
1105
1107
  error: ErrorConfig;
1106
1108
  }) => any;
1107
1109
  };
1108
- emit: ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1110
+ emit: ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1109
1111
  }>) => vue.VNode & {
1110
1112
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
1111
1113
  };
@@ -1546,11 +1548,6 @@ declare const useHighlight: (options?: HighlightPluginOptions) => {
1546
1548
  * ! @return void
1547
1549
  */
1548
1550
  declare function setupHighlight(app: App, options?: HighlightPluginOptions): void;
1549
- declare global {
1550
- interface Window {
1551
- hljs: HLJSApi;
1552
- }
1553
- }
1554
1551
  //#endregion
1555
1552
  //#region src/utils/storage.d.ts
1556
1553
  /** SSR-safe localStorage helpers. Storage failures never break component state. */
@@ -730,6 +730,8 @@ interface UseTableActionsOptions<T extends object = DataRecord> {
730
730
  /** 事件发射器 */
731
731
  /** Deletion action completion notification; kept separate from CRUD data mutation. */
732
732
  onRowDeleted?: (row: T, index: number) => void;
733
+ /** A bound CRUD action may already report success or failure to the user. */
734
+ isDeleteFeedbackHandled?: (action: ApiFunction<T>) => boolean;
733
735
  /** 查看详情回调 */
734
736
  onViewDetail?: (data: T) => void;
735
737
  }
@@ -1105,7 +1107,7 @@ declare const __VLS_export: <T extends object = DataRecord>(__VLS_props: NonNull
1105
1107
  error: ErrorConfig;
1106
1108
  }) => any;
1107
1109
  };
1108
- emit: ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1110
+ emit: ((evt: "save", rowData: DataRecord, rowIndex: number, columnKey?: string | undefined) => void) & ((evt: "cancel", rowData: DataRecord, rowIndex: number) => void) & ((evt: "pagination-change", ...args: [page: number, pageSize: number] & [page: number, pageSize: number]) => void) & ((evt: "row-delete", ...args: [deletedRow: DataRecord, index: number] & [deletedRow: DataRecord, index: number]) => void) & ((evt: "batch-action-error", error: unknown, actionKey: string) => void) & ((evt: "row-key-error", issues: TableRowKeyIssue<DataRecord>[]) => void) & ((evt: "expand-change", expandedKeys: DataTableRowKey[], row?: DataRecord | undefined, expanded?: boolean | undefined) => void) & ((evt: "selection-change", checkedKeys: DataTableRowKey[], checkedRows: DataRecord[], childSelections?: Map<DataTableRowKey, DataTableRowKey[]> | undefined) => void) & ((evt: "child-selection-change", parentKey: DataTableRowKey, childKeys: DataTableRowKey[], childRows: DataRecord[]) => void) & ((evt: "parent-child-link-change", parentKey: DataTableRowKey, shouldSelect: boolean) => void) & ((evt: "update:data", data: DataRecord[]) => void) & ((evt: "edit-error", error: unknown) => void) & ((evt: "row-add", newRow: DataRecord) => void) & ((evt: "row-copy", originalRow: DataRecord, newRow: DataRecord) => void) & ((evt: "row-move", row: DataRecord, fromIndex: number, toIndex: number) => void) & ((evt: "row-selection-change", selectedKey: DataTableRowKey | null, selectedRow: DataRecord | null) => void) & ((evt: "view-detail", data: DataRecord) => void) & ((evt: "column-change", columns: TableColumn[]) => void);
1109
1111
  }>) => vue.VNode & {
1110
1112
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
1111
1113
  };
@@ -1546,11 +1548,6 @@ declare const useHighlight: (options?: HighlightPluginOptions) => {
1546
1548
  * ! @return void
1547
1549
  */
1548
1550
  declare function setupHighlight(app: App, options?: HighlightPluginOptions): void;
1549
- declare global {
1550
- interface Window {
1551
- hljs: HLJSApi;
1552
- }
1553
- }
1554
1551
  //#endregion
1555
1552
  //#region src/utils/storage.d.ts
1556
1553
  /** SSR-safe localStorage helpers. Storage failures never break component state. */