@robot-admin/naive-ui-components 0.14.2 → 0.15.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 +30 -0
  2. package/README.md +130 -721
  3. package/README_EN.md +137 -658
  4. package/dist/C_ActionBar.css +57 -58
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +215 -222
  8. package/dist/C_AntV2.cjs +2 -2
  9. package/dist/C_AntV2.js +2 -2
  10. package/dist/C_AudioPlayer.css +11 -12
  11. package/dist/C_AvatarGroup.css +5 -6
  12. package/dist/C_Barcode.css +1 -1
  13. package/dist/C_Breadcrumb.css +15 -17
  14. package/dist/C_Breadcrumb2.cjs +1 -1
  15. package/dist/C_Breadcrumb2.js +1 -1
  16. package/dist/C_Captcha.css +45 -47
  17. package/dist/C_Captcha2.cjs +1 -1
  18. package/dist/C_Captcha2.js +1 -1
  19. package/dist/C_Cascade.css +2 -2
  20. package/dist/C_Chat.css +8 -8
  21. package/dist/C_City.css +6 -7
  22. package/dist/C_Code.css +14 -15
  23. package/dist/C_CollapsePanel.css +12 -13
  24. package/dist/C_ContextMenu.css +31 -31
  25. package/dist/C_Cron.css +272 -275
  26. package/dist/C_Date.css +1 -1
  27. package/dist/C_Draggable.css +10 -11
  28. package/dist/C_Editor.css +2 -2
  29. package/dist/C_FilePreview.css +193 -193
  30. package/dist/C_Form.base.css +607 -601
  31. package/dist/C_Form.cjs +1 -1
  32. package/dist/C_Form.css +609 -603
  33. package/dist/C_Form.d.cts +2 -2
  34. package/dist/C_Form.d.ts +2 -2
  35. package/dist/C_Form.js +1 -1
  36. package/dist/C_FormModal.cjs +1 -1
  37. package/dist/C_FormModal.css +14 -20
  38. package/dist/C_FormModal.js +1 -1
  39. package/dist/C_FormModal2.cjs +1 -1
  40. package/dist/C_FormModal2.js +1 -1
  41. package/dist/C_FormSearch.css +53 -55
  42. package/dist/C_FormSearch2.cjs +1 -1
  43. package/dist/C_FormSearch2.js +1 -1
  44. package/dist/C_FormulaEditor.css +314 -315
  45. package/dist/C_FullCalendar.css +14 -16
  46. package/dist/C_FullCalendar2.cjs +1 -1
  47. package/dist/C_FullCalendar2.js +1 -1
  48. package/dist/C_GlobalSearch.css +2 -2
  49. package/dist/C_Guide.css +14 -15
  50. package/dist/C_Icon.css +7 -8
  51. package/dist/C_ImageCropper.css +69 -69
  52. package/dist/C_Language.css +8 -8
  53. package/dist/C_Loading.css +20 -22
  54. package/dist/C_Loading2.cjs +1 -1
  55. package/dist/C_Loading2.js +1 -1
  56. package/dist/C_Login.css +130 -135
  57. package/dist/C_Login2.cjs +1 -1
  58. package/dist/C_Login2.js +1 -1
  59. package/dist/C_Map.css +22 -23
  60. package/dist/C_Markdown.css +2 -2
  61. package/dist/C_Menu.css +2 -5
  62. package/dist/C_Menu2.cjs +1 -1
  63. package/dist/C_Menu2.js +1 -1
  64. package/dist/C_NotificationCenter.css +300 -301
  65. package/dist/C_OrgChart.css +3 -3
  66. package/dist/C_PageLoading.css +35 -39
  67. package/dist/C_QRCode.css +5 -6
  68. package/dist/C_Signature.css +5 -6
  69. package/dist/C_Skeleton.css +6 -7
  70. package/dist/C_SplitPane.css +2 -2
  71. package/dist/C_Steps.css +2 -2
  72. package/dist/C_Table.base.css +1097 -870
  73. package/dist/C_Table.cjs +1 -1
  74. package/dist/C_Table.css +1101 -874
  75. package/dist/C_Table.d.cts +1 -1
  76. package/dist/C_Table.d.ts +1 -1
  77. package/dist/C_Table.js +1 -1
  78. package/dist/C_Tabs.css +2 -2
  79. package/dist/C_TagsView.css +72 -76
  80. package/dist/C_TagsView2.cjs +1 -1
  81. package/dist/C_TagsView2.js +1 -1
  82. package/dist/C_Theme.css +7 -8
  83. package/dist/C_Time.css +1 -1
  84. package/dist/C_Timeline.css +8 -8
  85. package/dist/C_Transfer.css +10 -11
  86. package/dist/C_Tree.css +16 -17
  87. package/dist/C_Upload.css +147 -148
  88. package/dist/C_VideoPlayer.css +280 -281
  89. package/dist/C_VtableGantt.css +2 -2
  90. package/dist/C_WaterFall.css +17 -18
  91. package/dist/C_WorkFlow.css +453 -457
  92. package/dist/C_WorkFlow2.cjs +1 -1
  93. package/dist/C_WorkFlow2.js +1 -1
  94. package/dist/Card.cjs +1 -0
  95. package/dist/Card.js +1 -0
  96. package/dist/Custom.cjs +1 -0
  97. package/dist/Custom.js +1 -0
  98. package/dist/Dynamic.cjs +1 -0
  99. package/dist/Dynamic.js +1 -0
  100. package/dist/Steps.cjs +1 -0
  101. package/dist/Steps.js +1 -0
  102. package/dist/Tabs.cjs +1 -0
  103. package/dist/Tabs.js +1 -0
  104. package/dist/cascader.cjs +1 -0
  105. package/dist/cascader.js +1 -0
  106. package/dist/color-picker.cjs +1 -0
  107. package/dist/color-picker.js +1 -0
  108. package/dist/constants.d.cts +1 -1
  109. package/dist/constants.d.ts +1 -1
  110. package/dist/constants3.d.cts +5 -5
  111. package/dist/constants3.d.ts +5 -5
  112. package/dist/constants4.d.cts +4 -4
  113. package/dist/constants4.d.ts +4 -4
  114. package/dist/constants5.d.cts +2 -2
  115. package/dist/constants5.d.ts +2 -2
  116. package/dist/context.cjs +1 -0
  117. package/dist/context.js +1 -0
  118. package/dist/contracts.d.cts +24 -0
  119. package/dist/contracts.d.ts +24 -0
  120. package/dist/createPageLoading.cjs +1 -1
  121. package/dist/createPageLoading.js +1 -1
  122. package/dist/data.cjs +1 -1
  123. package/dist/data.d.cts +9 -9
  124. package/dist/data.d.ts +9 -9
  125. package/dist/data.js +1 -1
  126. package/dist/date-picker.cjs +1 -0
  127. package/dist/date-picker.js +1 -0
  128. package/dist/feedback.cjs +1 -0
  129. package/dist/feedback.js +1 -0
  130. package/dist/helpers.cjs +1 -1
  131. package/dist/helpers.js +1 -1
  132. package/dist/index.cjs +1 -1
  133. package/dist/index.d.cts +6 -4
  134. package/dist/index.d.ts +6 -4
  135. package/dist/index.js +1 -1
  136. package/dist/index.vue.d.cts +4 -4
  137. package/dist/index.vue.d.ts +4 -4
  138. package/dist/index10.vue.d.cts +3 -3
  139. package/dist/index11.vue.d.ts +2 -2
  140. package/dist/index12.vue.d.cts +2 -2
  141. package/dist/index12.vue.d.ts +1 -1
  142. package/dist/index13.vue.d.cts +1 -1
  143. package/dist/index13.vue.d.ts +3 -3
  144. package/dist/index14.vue.d.cts +3 -3
  145. package/dist/index14.vue.d.ts +7 -7
  146. package/dist/index15.vue.d.cts +7 -7
  147. package/dist/index16.vue.d.ts +1 -1
  148. package/dist/index17.vue.d.cts +1 -1
  149. package/dist/index17.vue.d.ts +1 -1
  150. package/dist/index18.vue.d.cts +1 -1
  151. package/dist/index18.vue.d.ts +1 -1
  152. package/dist/index19.vue.d.cts +1 -1
  153. package/dist/index19.vue.d.ts +2 -9
  154. package/dist/index2.vue.d.cts +2 -2
  155. package/dist/index2.vue.d.ts +2 -2
  156. package/dist/index20.vue.d.cts +1 -1
  157. package/dist/index20.vue.d.ts +1 -1
  158. package/dist/index21.vue.d.cts +1 -1
  159. package/dist/index21.vue.d.ts +1 -1
  160. package/dist/index22.vue.d.cts +2 -2
  161. package/dist/index22.vue.d.ts +2 -2
  162. package/dist/index23.vue.d.cts +1 -1
  163. package/dist/index23.vue.d.ts +1 -1
  164. package/dist/index25.vue.d.cts +4 -4
  165. package/dist/index25.vue.d.ts +4 -4
  166. package/dist/index26.vue.d.cts +1 -1
  167. package/dist/index26.vue.d.ts +1 -1
  168. package/dist/index27.vue.d.cts +4 -4
  169. package/dist/index27.vue.d.ts +4 -4
  170. package/dist/index28.vue.d.cts +1 -1
  171. package/dist/index28.vue.d.ts +1 -1
  172. package/dist/index3.vue.d.cts +4 -4
  173. package/dist/index3.vue.d.ts +4 -4
  174. package/dist/index4.vue.d.cts +2 -9
  175. package/dist/index6.vue.d.ts +3 -3
  176. package/dist/index7.vue.d.cts +3 -3
  177. package/dist/index8.vue.d.ts +2 -2
  178. package/dist/index9.vue.d.cts +2 -2
  179. package/dist/index9.vue.d.ts +3 -3
  180. package/dist/mapUtils.d.cts +2 -2
  181. package/dist/mapUtils.d.ts +2 -2
  182. package/dist/presets.d.cts +8 -2
  183. package/dist/presets.d.ts +8 -2
  184. package/dist/rate.cjs +1 -0
  185. package/dist/rate.js +1 -0
  186. package/dist/slider.cjs +1 -0
  187. package/dist/slider.js +1 -0
  188. package/dist/style.css +10898 -10915
  189. package/dist/time-picker.cjs +1 -0
  190. package/dist/time-picker.js +1 -0
  191. package/dist/upload.cjs +1 -0
  192. package/dist/upload.js +1 -0
  193. package/dist/useActionTask.cjs +1 -0
  194. package/dist/useActionTask.js +1 -0
  195. package/dist/useCalendarEvents.d.cts +1 -1
  196. package/dist/useCalendarEvents.d.ts +1 -1
  197. package/dist/useCollapsePanel.d.cts +4 -4
  198. package/dist/useCollapsePanel.d.ts +4 -4
  199. package/dist/useComponentLocale.cjs +1 -0
  200. package/dist/useComponentLocale.js +1 -0
  201. package/dist/useCropperCore.d.cts +6 -6
  202. package/dist/useCropperCore.d.ts +6 -6
  203. package/dist/useDraggableLayout.d.cts +1 -1
  204. package/dist/useDraggableLayout.d.ts +1 -1
  205. package/dist/useDynamicFormState.cjs +1 -0
  206. package/dist/useDynamicFormState.d.cts +64 -40
  207. package/dist/useDynamicFormState.d.ts +64 -40
  208. package/dist/useDynamicFormState.js +1 -0
  209. package/dist/useEdgeInteraction.d.cts +3 -3
  210. package/dist/useEdgeInteraction.d.ts +3 -3
  211. package/dist/useGlobalSearch.d.cts +1 -1
  212. package/dist/useGlobalSearch.d.ts +1 -1
  213. package/dist/useQRCode.d.cts +2 -2
  214. package/dist/useQRCode.d.ts +2 -2
  215. package/dist/useSearchState.d.cts +15 -725
  216. package/dist/useSearchState.d.ts +15 -834
  217. package/dist/useSignatureHistory.d.cts +4 -4
  218. package/dist/useSignatureHistory.d.ts +4 -4
  219. package/dist/useSplitResize.d.cts +3 -3
  220. package/dist/useSplitResize.d.ts +3 -3
  221. package/dist/useTableQuery.cjs +3 -3
  222. package/dist/useTableQuery.d.cts +73 -34
  223. package/dist/useTableQuery.d.ts +73 -34
  224. package/dist/useTableQuery.js +3 -3
  225. package/dist/useTimeSelection.d.cts +1 -1
  226. package/dist/useTimeSelection.d.ts +1 -1
  227. package/dist/useTreeOperations.d.cts +5 -5
  228. package/dist/useTreeOperations.d.ts +5 -5
  229. package/dist/useWorkflowValidation.d.cts +3 -3
  230. package/dist/useWorkflowValidation.d.ts +3 -3
  231. package/dist/verification.d.cts +4 -4
  232. package/dist/verification.d.ts +4 -4
  233. package/docs/architecture.en.md +83 -0
  234. package/docs/architecture.md +83 -0
  235. package/docs/assets/README.md +47 -0
  236. package/docs/assets/naive-ui-components-banner.png +0 -0
  237. package/docs/assets/naive-ui-components-banner.svg +69 -0
  238. package/docs/assets/naive-ui-components-logo.png +0 -0
  239. package/docs/assets/naive-ui-components-logo.svg +22 -0
  240. package/docs/components.en.md +118 -0
  241. package/docs/components.md +118 -0
  242. package/docs/engineering.en.md +132 -0
  243. package/docs/engineering.md +133 -0
  244. package/docs/guides/usage.en.md +638 -0
  245. package/docs/guides/usage.md +699 -0
  246. package/docs/performance-0.15.0.md +20 -0
  247. package/docs/security-scan-2026-10-06.md +11 -0
  248. package/docs/security-scan-2026-10-18.md +16 -0
  249. package/package.json +35 -12
  250. package/dist/C_Form2.cjs +0 -1
  251. package/dist/C_Form2.js +0 -1
  252. package/dist/config.cjs +0 -1
  253. package/dist/config.d.cts +0 -33
  254. package/dist/config.d.ts +0 -33
  255. package/dist/config.js +0 -1
@@ -1,3 +1,3 @@
1
- import{i as e,r as t}from"./config.js";import{t as n}from"./C_Icon2.js";import{t as r}from"./export-helper.js";import{t as i}from"./C_Loading2.js";import{t as a}from"./C_ActionBar2.js";import{t as o}from"./data.js";import{t as s}from"./C_Form2.js";import{Fragment as c,computed as l,createBlock as u,createCommentVNode as d,createElementBlock as f,createElementVNode as p,createSlots as m,createTextVNode as h,createVNode as g,defineComponent as _,getCurrentInstance as v,h as y,inject as b,isRef as x,mergeProps as ee,nextTick as S,normalizeClass as C,normalizeStyle as w,onBeforeUnmount as te,onMounted as ne,onScopeDispose as re,openBlock as T,reactive as E,ref as D,renderList as ie,renderSlot as O,resolveDynamicComponent as ae,shallowRef as k,toDisplayString as A,toValue as j,unref as M,watch as N,watchEffect as P,withCtx as F}from"vue";import{NButton as I,NButtonGroup as oe,NCheckbox as L,NDataTable as se,NDatePicker as ce,NDrawer as le,NDrawerContent as ue,NDropdown as de,NInput as R,NInputNumber as fe,NModal as pe,NPagination as me,NSelect as he,NSpace as z,NSpin as ge,NSwitch as _e,NTag as B,NText as V,NTooltip as H}from"naive-ui";const ve={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},ye=e=>e===!1||e===void 0?ve: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},be=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},xe=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`}},Se=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}}},Ce=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},U={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function we(e){return e?{striped:e.striped??U.striped,bordered:e.bordered??U.bordered,singleLine:e.singleLine??U.singleLine,size:e.size??U.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??U.columnWidth}:{...U}}const W=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1,toolbarActions:e?.actions??[],toolbarRightActions:e?.rightActions??[],toolbarActionBarConfig:e?.actionBar??{}}),G=e=>e?e===!0?{virtualScroll:!0,virtualItemHeight:34,virtualMaxHeight:600}:{virtualScroll:e.enabled!==!1,virtualItemHeight:e.itemHeight??34,virtualMaxHeight:e.maxHeight??600}:{virtualScroll:!1,virtualItemHeight:34,virtualMaxHeight:600},Te=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},K=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},Ee=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},De=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},Oe=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function ke(e={}){return{feedback:e.feedback,locale:e.locale,...ye(e.edit),...be(e.expand),...xe(e.selection),...Se(e.pagination),...Ce(e.dynamicRows),...we(e.display),...W(e.toolbar),...G(e.virtualScroll),...Te(e.summary),...K(e.columnDrag),...Ee(e.tree),...De(e.rowDrag),...Oe(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const Ae=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function je(e,t){return(typeof e.message==`function`?e.message():e.message)||t}function Me(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function Ne(e){if(typeof e==`number`)return e;if(typeof e==`string`||Array.isArray(e))return e.length}function q(e,t){return e===!1?t:e instanceof Error?e.message||t:typeof e==`string`?e||t:Array.isArray(e)&&e.length>0?q(e[0],t):null}async function J(e,t,n,r){let i=je(e,`${n}校验失败`),a=e.transform?e.transform(t):t;if(e.required&&Me(a))return je(e,`${n}不能为空`);if(!e.required&&Me(a))return null;if(e.enum&&!e.enum.includes(a)||e.pattern&&!new RegExp(e.pattern).test(String(a)))return i;let o=Ne(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=q(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 q(s,i)}catch(e){return e instanceof Error&&e.message?e.message:i}return null}function Pe(e){let t=D(null),n=D({}),r=D(!1),i=D([]),a=e=>t.value===e,s=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},c=e=>{let a=s(e);return!a||r.value?!1:(t.value=e,n.value={[String(e)]:o(a)},i.value=[],!0)},l=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={}},u=async()=>{if(i.value=[],t.value===null)return!0;let r=e.columns?.()||[],a=n.value[String(t.value)];if(!a)return!0;let o=r.filter(e=>e.editable!==!1&&e.editProps?.rules?.length).map(e=>{let t=typeof e.key==`string`?e.key:``;if(!t)return null;let n=e.title||t,r=a[t];return Promise.all(e.editProps.rules.map(e=>J(e,r,n,a))).then(e=>{let n=e.find(Boolean);return n?{field:t,message:n}:null})}).filter(Boolean),s=(await Promise.all(o)).filter(Boolean);return i.value=s,s.length===0},d=async()=>{if(t.value===null||r.value||!await u())return;let i=t.value,a=e.data();if(!a||!Array.isArray(a))return;let s=a.findIndex(t=>e.rowKey(t)===i);if(s===-1)return;let c=n.value[String(i)];if(c){r.value=!0;try{await e.onSave?.(o(c),s),t.value=null,n.value={}}finally{r.value=!1}return{updatedData:c,rowIndex:s}}},f=e=>{if(t.value===e)return n.value[String(e)]};return{editingRowKey:t,editingData:n,isSaving:r,isEditingRow:a,startEditRow:c,cancelEditRow:l,saveEditRow:d,validateRow:u,validationErrors:i,getEditingRowData:f,updateEditingRowData:(e,t,n)=>{let r=f(e);r&&(r[t]=o(n))},findRowData:s}}function Y(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function Fe(e){let t=D({rowKey:null,columnKey:null}),n=D({}),r=D(!1),i=D(null),a=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,s=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},c=(e,a)=>{let c=s(e);return!c||!a||r.value?!1:(t.value={rowKey:e,columnKey:a},n.value={[Y(e,a)]:o(c[a])},i.value=null,!0)},l=async()=>{i.value=null;let{rowKey:r,columnKey:a}=t.value;if(r===null||a===null)return!0;let o=(e.columns?.()||[]).find(e=>e.key===a);if(!o||!o.editProps?.rules)return!0;let c=Y(r,a),l=n.value[c],u=o.title||a,d={...s(r),[a]:l},f=(await Promise.all(o.editProps.rules.map(e=>J(e,l,u,d)))).find(Boolean);return f?(i.value=f,!1):!0};return{editingCell:t,editingData:n,isSaving:r,isEditingCell:a,startEditCell:c,saveEditCell:async()=>{let{rowKey:i,columnKey:a}=t.value;if(i===null||a===null||r.value||!await l())return;let s=e.data();if(!s||!Array.isArray(s))return;let c=s.findIndex(t=>e.rowKey(t)===i);if(c===-1)return;let u=Y(i,a),d=n.value[u],f={...s[c],[a]:d};r.value=!0;try{await e.onSave?.(o(f),c,a),t.value={rowKey:null,columnKey:null},n.value={}}finally{r.value=!1}return{updatedData:f,rowIndex:c,columnKey:a}},cancelEditCell:()=>{let{rowKey:e,columnKey:a}=t.value;r.value||(e!==null&&a!==null&&delete n.value[Y(e,a)],t.value={rowKey:null,columnKey:null},i.value=null)},validateCell:l,cellValidationError:i,getEditingCellValue:(e,t)=>n.value[Y(e,t)],updateEditingCellValue:(e,t,r)=>{a(e,t)&&(n.value[Y(e,t)]=o(r))},findRowData:s}}function Ie(e){let t=D(!1),n=D(!1),r=D(null),i=D({}),a=l(()=>{if(r.value===null)return-1;let t=e.data();return Array.isArray(t)?t.findIndex(t=>e.rowKey(t)===r.value):-1});return{isModalVisible:t,isSaving:n,editingData:i,editingRowKey:r,editingRowIndex:a,startEdit:(a,s)=>{if(n.value)return!1;let c=e.data();if(!Array.isArray(c))return!1;let l=c.findIndex(t=>e.rowKey(t)===a);return l===-1?!1:(r.value=a,i.value=o(s??c[l]),t.value=!0,!0)},saveEdit:async s=>{if(n.value||r.value===null)return;let c=a.value;if(c===-1)return;let l=o(s??i.value);n.value=!0;try{return await e.onSave?.(l,c),t.value=!1,r.value=null,i.value={},{updatedData:l,rowIndex:c}}finally{n.value=!1}},cancelEdit:async()=>{if(n.value)return!1;let o=a.value;try{if(r.value!==null&&o>-1){let t=e.data();t[o]&&await e.onCancel?.(t[o],o)}}finally{t.value=!1,r.value=null,i.value={}}return!0},updateEditingData:e=>n.value?!1:(i.value=o(e),!0),resetEditingState:()=>n.value?!1:(r.value=null,i.value={},!0),isEditingRow:e=>r.value===e&&t.value,getEditingRowData:e=>r.value===e?i.value:null}}const Le=e=>({expandedKeys:D([...e.defaultExpandedKeys||[]]),expandDataMap:D(new Map),loadingMap:D(new Map),checkedKeys:e.enableSelection?D([...e.defaultCheckedKeys||[]]):D([]),childSelections:(e.enableChildSelection,D(new Map))}),Re=e=>{let t=l(()=>M(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}},ze=(e,t,n)=>{let r=new Map,i=0,a=new Set(n.defaultExpandedKeys||[]),o=async i=>{if(!n.onLoadData)return[];let a=t.getRowKey(i),o=e.expandDataMap.value.get(a);if(o)return o;let s=r.get(a);if(s)return s;e.loadingMap.value.set(a,!0);let c=(async()=>{try{let t=await n.onLoadData(i)||[];return e.expandDataMap.value.set(a,t),n.enableChildSelection&&!e.childSelections.value.has(a)&&e.childSelections.value.set(a,[]),t}catch(e){return n.onError?.(e,i),[]}finally{r.delete(a),e.loadingMap.value.set(a,!1)}})();return r.set(a,c),c};return{loadData:o,handleRowExpand:async(r,s)=>{let c=t.getRowKey(r);if(i+=1,s){if(a.add(c),e.expandedKeys.value.includes(c)||(e.expandedKeys.value=[...e.expandedKeys.value,c]),await o(r),!a.has(c))return}else a.delete(c),e.expandedKeys.value=e.expandedKeys.value.filter(e=>e!==c);n.onExpandChange?.(e.expandedKeys.value,r,s)},expandAll:async()=>{let r=++i,s=t.data.value.filter(t.isRowExpandable);a=new Set(s.map(t.getRowKey)),e.expandedKeys.value=[...a],await Promise.allSettled(s.map(o)),r===i&&(e.expandedKeys.value=s.map(t.getRowKey),n.onExpandChange?.(e.expandedKeys.value))},collapseAll:()=>{i+=1,a.clear(),e.expandedKeys.value=[],e.childSelections.value.clear(),n.onExpandChange?.(e.expandedKeys.value)},handleExpandChange:async r=>{let s=++i;a=new Set(r);let c=r.filter(t=>!e.expandedKeys.value.includes(t)),l=e.expandedKeys.value.filter(e=>!r.includes(e));for(let t of l)e.childSelections.value.delete(t);e.expandedKeys.value=[...r],await Promise.all(c.map(async e=>{let n=t.findRow(e);n&&await o(n)})),s===i&&n.onExpandChange?.(r)}}},X=(e,t,n)=>{let r=l(()=>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:l(()=>e.checkedKeys.value.length),selectableRows:r}},Be=(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}},Ve=(e,t,n,r)=>({totalChildSelections:l(()=>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)}}),He=(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,[])}}},Ue=e=>y(`div`,{class:`flex justify-center items-center py-8`},e?[e()]:[y(ge,{size:`small`}),y(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),Z=()=>y(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),We=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,align:`center`,titleAlign:`center`,render:(e,t)=>t+1},...Object.keys(t).filter(e=>![`id`,`key`].includes(e)).map(e=>({key:e,title:e.charAt(0).toUpperCase()+e.slice(1),width:120,align:`center`,titleAlign:`center`,ellipsis:{tooltip:!0}}))]},Ge=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0}),o.push(...We(t)),y(`div`,{class:`p-4 bg-gray-50`},[y(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),y(se,{data:t,columns:o,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},Ke=(e,t,n,r,i)=>{let a=a=>{let o=t.getRowKey(a),s=e.expandDataMap.value.get(o)||[],c=e.loadingMap.value.get(o)||!1;!s.length&&!c&&e.expandedKeys.value.includes(o)&&S(()=>{r.loadData(a)});let l=He(o,e,t,n,i);return i.renderContent?i.renderContent(a,s,c,l):c?Ue(i.renderLoading):s.length?Ge(o,s,l,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 qe(e){let t=Le(e),n=Re(e),r=ze(t,n,e),i=X(t,n,e),a=Ve(t,n,Be(t,e),e),o=Ke(t,n,a,r,e);return e.onSelectionChange&&e.enableSelection&&P(()=>{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&&S(async()=>{let i=e.defaultExpandedKeys||[];if(i.length===0)return;let a=i.map(async e=>{let i=n.findRow(e);i&&!t.expandDataMap.value.has(e)&&await r.loadData(i)});await Promise.allSettled(a)}),{expandedKeys:t.expandedKeys,checkedKeys:t.checkedKeys,childSelections:t.childSelections,selectedRowsCount:i.selectedRowsCount,totalChildSelections:a.totalChildSelections,expandAll:r.expandAll,collapseAll:r.collapseAll,expandRow:async e=>{if(t.expandedKeys.value.includes(e)&&!t.loadingMap.value.get(e))return;let i=n.findRow(e);i&&await r.handleRowExpand(i,!0)},handleExpandChange:r.handleExpandChange,selectAll:i.selectAll,clearSelection:i.clearSelection,clearAllSelections:a.clearAllSelections,handleSelectionChange:i.handleSelectionChange,getTableColumns:o.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap}}const Je={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},Ye={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},Q={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 Xe(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 Ze(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 Qe(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 $e(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 et(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...Je,...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:Xe,corner:Ze,diagonal:Qe,repeat:$e};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function tt(e,t={}){if(typeof window>`u`)throw Error(`截图功能仅支持浏览器环境`);let n={...Ye,...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 nt(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function rt(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=nt(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function it(e,t={}){if(typeof window>`u`)throw Error(`打印功能仅支持浏览器环境`);let n={...Q,...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 at(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 ot(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 st(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function ct(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>tt(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=at(s,i,a);return r(60),ot(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function lt(e,t,n,r,i){r(70),t.watermark&&et(e,t.watermark),r(90),await it(nt(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function ut(){let e=t(),n=D(!1),r=D(0),i=e=>{r.value=Math.max(0,Math.min(100,e))},a=async(e,t={})=>{try{i(0),i(30);let n=await tt(e,t.capture);i(60),t.watermark&&et(n,t.watermark),i(90);let r=nt(n,t.capture?.format||`png`,t.capture?.quality||.92);return i(100),r}catch(e){throw Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},o=async(t,r={})=>{n.value=!0,i(0);try{await S();let n=await a(t,r);i(95),await it(n,r.print),i(100),e.success(`打印完成`)}catch(t){throw e.error(`打印失败: ${t instanceof Error?t.message:`未知错误`}`,t),t}finally{n.value=!1,i(0)}},s=async(t,r,i={})=>{n.value=!0;try{await S();let n=await tt(t,i.capture);i.watermark&&et(n,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;rt(n,r||o,a),e.success(`下载完成`)}catch(t){throw e.error(`下载失败`,t),t}finally{n.value=!1}},c=async(e,t=`Robot Admin`)=>o(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),l=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)},u=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await it(r,t),i<e.length-1&&await new Promise(e=>{setTimeout(()=>e(),1e3)})},Promise.resolve())};return{loading:n,progress:r,captureWithWatermark:a,printWithWatermark:o,downloadScreenshot:s,quickPrint:c,batchCapture:l,batchPrint:async(t,r={})=>{if(!t.length){e.warning(`没有要打印的元素`);return}n.value=!0;try{i(0);let n=await l(t,r);i(80),await u(n,r.print),i(100),e.success(`批量打印完成,共 ${t.length} 个元素`)}catch(t){throw e.error(`批量打印失败`,t),t}finally{n.value=!1,i(0)}},mergePrint:async(t,r={},a={})=>{let o=st(t,a,e);if(o){n.value=!0;try{await lt(await ct(t,r,o,i),r,t.length,i,e)}catch(t){throw e.error(`合并打印失败`,t),t}finally{n.value=!1,i(0)}}},createPreset:(e,t)=>({use:e=>o(e,t),download:(e,n)=>s(e,n,t)}),updateProgress:i,utils:{captureElement:tt,drawWatermark:et,canvasToDataURL:nt,downloadCanvas:rt,printImage:it}}}const dt={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 ft(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function pt(e,t){return typeof t==`function`?t(e):e[t]}function mt(e,t){let n=e?.()||{},r=typeof t==`string`?t:`id`;return{...n,[r]:ft()}}function ht(r,i={}){let a={enabled:!0,rowKey:`id`,enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0,confirmDelete:!0,deleteConfirmText:``,printPreset:`table`,printTargetSelector:`.c-table-wrapper`,defaultRowData:()=>({})},o=E({...a,...j(i)});N(()=>j(i),e=>{let t=o;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,a,e)},{deep:!0});let s=t(()=>o.feedback),{t:c}=e(()=>o.locale),u=`c-table-radio-${ft()}`,d=D(null),f=D(!1),p=l(()=>d.value===null?null:r.value.find(e=>pt(e,o.rowKey)===d.value)||null),m=l(()=>p.value?r.value.findIndex(e=>e===p.value):-1),h=l(()=>m.value>0),g=l(()=>m.value>=0&&m.value<r.value.length-1),{loading:_,progress:v,printWithWatermark:b,downloadScreenshot:x,quickPrint:ee}=ut(),S=()=>{if(o.printOptions)return o.printOptions;let e=dt[o.printPreset||`table`];return o.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:o.printWatermarkText}}:e},C=e=>{o.onRowChange?.(e)},w=()=>{if(!o.enabled||!o.enableAdd)return;let e=mt(o.defaultRowData,o.rowKey);C([...r.value,e]),o.onRowAdd?.(e),s.success(c(`table.addRowSuccess`))},ne=()=>{if(!o.enabled||!o.enableInsert||!p.value){s.warning(c(`table.selectRowFirst`));return}let e=mt(o.defaultRowData,o.rowKey),t=[...r.value];t.splice(m.value+1,0,e),C(t),o.onRowAdd?.(e),s.success(c(`table.insertRowSuccess`))},re=()=>{if(!o.enabled||!o.enableDelete||!p.value){s.warning(c(`table.selectDeleteRowFirst`));return}o.confirmDelete?f.value=!0:T()},T=()=>{if(!p.value)return;let e=p.value,t=m.value;C(r.value.filter((e,n)=>n!==t)),d.value=null,o.onSelectionChange?.(null,null),o.onRowDelete?.(e,t),s.success(c(`table.deleteRowSuccess`)),f.value=!1},ie=()=>{if(!o.enabled||!o.enableCopy||!p.value){s.warning(c(`table.selectCopyRowFirst`));return}let e=p.value,t=typeof o.rowKey==`string`?o.rowKey:`id`,{[t]:n,...i}=e,a={...i,[t]:ft()};C([...r.value,a]),o.onRowCopy?.(e,a),s.success(c(`table.copyRowSuccess`))},O=()=>{if(!o.enabled||!o.enableMove||!h.value)return;let e=m.value,t=[...r.value],n=t[e];[t[e],t[e-1]]=[t[e-1],t[e]],C(t),o.onRowMove?.(n,e,e-1),s.success(c(`table.moveUpSuccess`))},ae=()=>{if(!o.enabled||!o.enableMove||!g.value)return;let e=m.value,t=[...r.value],n=t[e];[t[e],t[e+1]]=[t[e+1],t[e]],C(t),o.onRowMove?.(n,e,e+1),s.success(c(`table.moveDownSuccess`))},A=e=>{if(!o.enabled)return;let t=r.value.find(t=>pt(t,o.rowKey)===e);t&&(d.value=e,o.onSelectionChange?.(e,t))},M=()=>{d.value=null,o.onSelectionChange?.(null,null)},P=async e=>{if(!e.value){s.error(c(`table.printTargetMissing`));return}let t=S();await b(e.value,t)};return te(()=>{d.value=null,f.value=!1}),{selectedRowKey:d,selectedRowData:p,selectedRowIndex:m,canMoveUp:h,canMoveDown:g,deleteConfirmVisible:f,printLoading:_,printProgress:v,addRow:w,insertRow:ne,deleteRow:re,confirmDelete:T,copyRow:ie,moveRowUp:O,moveRowDown:ae,selectRow:A,clearSelection:M,handlePrint:P,handleDownload:async(e,t)=>{if(!e.value){s.error(c(`table.downloadTargetMissing`));return}let n=S();await x(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){s.error(c(`table.printTargetMissing`));return}let t=o.printWatermarkText||`Robot Admin`;await ee(e.value,t)},enhanceColumns:e=>{if(!o.enabled)return e;let t=[...e];return o.enabled&&o.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:c(`common.select`),width:80,align:`center`,editable:!1,render:e=>{let t=pt(e,o.rowKey);return y(`div`,{class:`flex justify-center`},[y(`input`,{type:`radio`,name:u,"aria-label":c(`common.select`),checked:d.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&A(t)}})])}}),t},renderToolbar:e=>{if(!o.enabled)return null;let t=[];o.enablePrint&&t.push(y(I,{loading:_.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(o.printTargetSelector);t?await P(k(t)):s.warning(c(`table.printTargetMissing`))}catch(e){s.error(c(`table.printTargetMissing`),e)}}},{icon:()=>y(n,{name:`mdi:printer`,title:c(`common.print`)}),default:()=>c(`common.print`)}));let r=[];return o.enableAdd&&r.push(y(I,{onClick:w,type:`primary`},{icon:()=>y(n,{name:`mdi:plus`,title:c(`table.addRow`)}),default:()=>c(`table.addRow`)})),o.enableInsert&&r.push(y(H,{disabled:!!p.value},{trigger:()=>y(I,{onClick:ne,disabled:!p.value,type:`primary`,ghost:!0},{icon:()=>y(n,{name:`mdi:table-row-plus-after`,title:c(`table.insertRow`)}),default:()=>c(`table.insertRow`)}),default:()=>c(`table.selectRowFirst`)})),o.enableDelete&&r.push(y(H,{disabled:!!p.value},{trigger:()=>y(I,{onClick:re,disabled:!p.value,type:`error`,ghost:!0},{icon:()=>y(n,{name:`mdi:delete`,title:c(`table.deleteRow`)}),default:()=>c(`table.deleteRow`)}),default:()=>c(`table.selectDeleteRowFirst`)})),o.enableCopy&&r.push(y(H,{disabled:!!p.value},{trigger:()=>y(I,{onClick:ie,disabled:!p.value,type:`info`,ghost:!0},{icon:()=>y(n,{name:`mdi:content-copy`,title:c(`table.copyRow`)}),default:()=>c(`table.copyRow`)}),default:()=>c(`table.selectCopyRowFirst`)})),o.enableMove&&r.push(y(H,{disabled:h.value},{trigger:()=>y(I,{onClick:O,disabled:!h.value,type:`warning`,ghost:!0},{icon:()=>y(n,{name:`mdi:arrow-up`,title:c(`table.moveUp`)}),default:()=>c(`table.moveUp`)}),default:()=>p.value?c(`table.firstRow`):c(`table.selectRowFirst`)}),y(H,{disabled:g.value},{trigger:()=>y(I,{onClick:ae,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>y(n,{name:`mdi:arrow-down`,title:c(`table.moveDown`)}),default:()=>c(`table.moveDown`)}),default:()=>p.value?c(`table.lastRow`):c(`table.selectRowFirst`)})),r.length>0&&t.push(y(oe,{},()=>r)),y(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[y(z,{},()=>t)])},renderConfirmModal:()=>y(pe,{show:f.value,"onUpdate:show":e=>{f.value=e},preset:`dialog`,title:c(`table.deleteTitle`),content:o.deleteConfirmText||c(`table.deleteRowContent`),positiveText:c(`table.confirmDeleteRow`),negativeText:c(`common.cancel`),onPositiveClick:T})}}function gt(n){let{data:r,rowKey:i,emit:a}=n,o=()=>j(n.config),s=t(()=>o().feedback),{t:c}=e(()=>o().locale),u={onSave:async(e,t,n)=>{if(!e||t<0||t>=r().length)return;let i=[...r()];i[t]={...i[t],...e};try{await o().onEditSave?.(i[t],t,n),await a(`save`,i[t],t,n),a(`update:data`,i)}catch(e){throw o().onEditError?.(e),a(`edit-error`,e),e}},onCancel:async(e,t)=>{try{await o().onEditCancel?.(e,t),await a(`cancel`,e,t)}catch(e){throw o().onEditError?.(e),a(`edit-error`,e),e}},onExpandChange:(e,t,n)=>{a(`expand-change`,e,t,n)},onSelectionChange:(e,t,n)=>{a(`selection-change`,e,t,n)},onChildSelectionChange:(e,t,n)=>{a(`child-selection-change`,e,t,n)},onRowChange:e=>{a(`update:data`,e),o().dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,t)=>{a(`row-selection-change`,e,t),o().dynamicRows?.onSelectionChange?.(e,t)},onRowAdd:e=>{a(`row-add`,e),o().dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,t)=>{a(`row-delete`,e,t),o().dynamicRows?.onRowDelete?.(e,t)},onRowCopy:(e,t)=>{a(`row-copy`,e,t),o().dynamicRows?.onRowCopy?.(e,t)},onRowMove:(e,t,n)=>{a(`row-move`,e,t,n),o().dynamicRows?.onRowMove?.(e,t,n)}},d=()=>({rowEdit:Pe({data:r,rowKey:i,onSave:u.onSave,onCancel:u.onCancel,columns:n.columns}),cellEdit:Fe({data:r,rowKey:i,onSave:u.onSave,columns:n.columns}),modalEdit:Ie({data:r,rowKey:i,onSave:u.onSave,onCancel:u.onCancel})}),f=()=>qe({data:l(()=>r()),rowKey:i,childRowKey:e=>e.id,renderLoading:n.renderLoading,get defaultExpandedKeys(){return o().defaultExpandedKeys},get onLoadData(){return o().onLoadExpandData},onError:(e,t)=>{let n=o().onExpandError;n?n(e,t):s.error(c(`table.loadFailed`),e)},get renderContent(){return o().renderExpandContent},get rowExpandable(){return o().rowExpandable},get enableSelection(){return o().enableSelection},get defaultCheckedKeys(){return o().defaultCheckedKeys},get rowCheckable(){return o().rowCheckable},get maxSelection(){return o().maxSelection},get enableChildSelection(){return o().enableChildSelection},get childRowCheckable(){return o().childRowCheckable},get enableParentChildLink(){return o().enableParentChildLink},get parentChildLinkMode(){return o().parentChildLinkMode},onExpandChange:u.onExpandChange,onSelectionChange:u.onSelectionChange,onChildSelectionChange:u.onChildSelectionChange}),p=()=>ht(l(()=>r()),l(()=>({...o().dynamicRows,enabled:!!o().dynamicRows,feedback:o().feedback,locale:o().locale,onRowChange:u.onRowChange,onSelectionChange:u.onRowSelectionChange,onRowAdd:u.onRowAdd,onRowDelete:u.onRowDelete,onRowCopy:u.onRowCopy,onRowMove:u.onRowMove}))),m=d(),h=f(),g=p();return{editStates:m,expandState:h,dynamicRowsState:g,stateManager:{edit:{start(e,t){let n=o().editMode;n===`modal`?m.modalEdit.startEdit(e):n===`cell`&&t?m.cellEdit.startEditCell(e,t):(n===`row`||n===`both`)&&m.rowEdit.startEditRow(e)},cancel(){m.modalEdit.isModalVisible.value?m.modalEdit.cancelEdit():m.cellEdit.editingCell.value.rowKey===null?m.rowEdit.editingRowKey.value!==null&&m.rowEdit.cancelEditRow():m.cellEdit.cancelEditCell()},async save(){m.modalEdit.isModalVisible.value?await m.modalEdit.saveEdit():m.cellEdit.editingCell.value.rowKey===null?m.rowEdit.editingRowKey.value!==null&&await m.rowEdit.saveEditRow():await m.cellEdit.saveEditCell()},isEditing(e,t){return o().editMode===`modal`?m.modalEdit.isEditingRow(e):t?m.cellEdit.isEditingCell(e,t):m.rowEdit.isEditingRow(e)},getEditingData(){return m.modalEdit.isModalVisible.value?m.modalEdit.editingData.value:m.rowEdit.editingRowKey.value===null?null:m.rowEdit.getEditingRowData(m.rowEdit.editingRowKey.value)}},expand:{async row(e){if(h){let t=[...h.expandedKeys.value];t.includes(e)||(t.push(e),h.handleExpandChange(t))}},collapse(e){if(h){let t=h.expandedKeys.value.filter(t=>t!==e);h.handleExpandChange(t)}},async toggle(e){h?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await h?.expandAll()},collapseAll(){h?.collapseAll()},isExpanded(e){return h?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(h?.checkedKeys.value&&!h.checkedKeys.value.includes(e)){let t=[...h.checkedKeys.value,e];h.handleSelectionChange(t)}},unselect(e){if(h?.checkedKeys.value){let t=h.checkedKeys.value.filter(t=>t!==e);h.handleSelectionChange(t)}},all(){h?.selectAll()},clear(){h?.clearSelection()},isSelected(e){return h?.checkedKeys.value.includes(e)??!1},getSelected(){return h?.checkedKeys.value?r().filter(e=>h.checkedKeys.value.includes(i(e))):[]}},childSelection:{select(e,t){if(h?.childSelections.value){let n=h.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];h.childSelections.value.set(e,r),a(`child-selection-change`,e,r,[])}}},unselect(e,t){if(h?.childSelections.value){let n=(h.childSelections.value.get(e)||[]).filter(e=>e!==t);h.childSelections.value.set(e,n),a(`child-selection-change`,e,n,[])}},selectAll(e){if(h?.childSelections.value&&h.expandDataMap?.value){let t=h.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);h.childSelections.value.set(e,n),a(`child-selection-change`,e,n,t)}},clear(e){h?.childSelections.value&&(h.childSelections.value.set(e,[]),a(`child-selection-change`,e,[],[]))},getSelected(e){if(!h?.childSelections.value||!h.expandDataMap?.value)return[];let t=h.childSelections.value.get(e)||[];return(h.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){g?.addRow()},insert(){g?.insertRow()},delete(){g?.deleteRow()},copy(){g?.copyRow()},moveUp(){g?.moveRowUp()},moveDown(){g?.moveRowDown()},clearSelection(){g?.clearSelection()},getSelected(){return g?.selectedRowData.value||null},async print(e){g&&e&&await g.handlePrint(k(e))},async download(e,t){g&&e&&await g.handleDownload(k(e),t)}},clearAllSelections(){h?.clearAllSelections()}},expandedKeys:l(()=>h?.expandedKeys.value??[]),checkedKeys:l(()=>h?.checkedKeys.value??[]),eventHandlers:u}}const $={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function _t(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function vt(e){let{data:t,config:n,emit:r}=e,i=D($.page),a=D($.pageSize),o=l(()=>{let e=typeof t==`function`?t():M(t);return Array.isArray(e)?e:[]}),s=l(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??o.value.length)):o.value.length}),c=()=>n.value?.enabled?Math.max(1,Math.ceil(s.value/a.value)):1,u=(e,t)=>{let n=Math.min(_t(e,1),c());i.value!==n&&(i.value=n,t&&r?.(`pagination-change`,n,a.value))},d=e=>u(e,!0),f=e=>{let t=_t(e,$.pageSize),n=a.value!==t;a.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},p=()=>u(1,!0),m=l(()=>{let e=n.value;if(!e?.enabled||e.remote)return o.value;let t=(i.value-1)*a.value;return o.value.slice(t,t+a.value)}),h=l(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:a.value,itemCount:s.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 N(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{a.value=_t(t,$.pageSize),i.value=Math.min(_t(e,$.page),c())},{immediate:!0}),N([s,a],()=>{let e=Math.min(i.value,c());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:c}}const yt=e=>e&&typeof e==`object`&&`error`in e?e.error:null;function bt(r){let{actions:i,config:a,tableManager:o,rowKey:s,onRowDeleted:c,onViewDetail:l,isDeleteFeedbackHandled:u}=r,d=t(()=>a.value.feedback),{t:f}=e(()=>a.value.locale),p=e=>e===`edit`?a.value.editable&&i.value?.edit!==!1:typeof i.value?.[e]==`function`,m=e=>e!==!1&&typeof e==`function`,h=e=>e&&typeof e==`object`&&`data`in e?e.data:e,g=(e,t,r=`primary`,i)=>y(I,{size:`small`,type:r,quaternary:!0,onClick:i},()=>[y(n,{name:e,size:14,title:t})]),_=async(e,t)=>{let n=s(e),r=i.value?.edit;if(m(r)){try{await r(e,t)}catch(e){d.error(f(`table.actionFailed`,{action:f(`common.edit`)}),e)}return}a.value.editMode===`modal`?o.editStates.modalEdit.startEdit(n,{...e}):o.editStates.rowEdit.startEditRow(n)},v=async(e,t,n)=>{let r=u?.(e)===!0;try{let i=yt(await e(t,n));if(i!=null){r||d.error(f(`table.deleteFailed`),i);return}r||d.success(f(`table.deleteSuccess`)),c?.(t,n)}catch(e){throw r||d.error(f(`table.deleteFailed`),e),e}},b=async(e,t)=>{let n=i.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)},x=async(e,t)=>{let n=i.value?.detail;if(!m(n)){l?.(e);return}try{let r=h(await n(e,t));l?.(r||e)}catch(t){d.error(f(`table.detailFailed`),t),l?.(e)}},ee=e=>o.editStates.rowEdit.isEditingRow(e)?[g(`mdi:check`,f(`common.save`),`primary`,()=>void o.editStates.rowEdit.saveEditRow().catch(e=>d.error(f(`table.actionFailed`,{action:f(`common.save`)}),e))),g(`mdi:close`,f(`common.cancel`),`default`,()=>o.editStates.rowEdit.cancelEditRow())]:[g(`mdi:pencil`,f(`common.edit`),`warning`,()=>o.editStates.rowEdit.startEditRow(e))],S=(e,t)=>{let n=[];return p(`detail`)&&n.push(g(`mdi:eye`,f(`common.detail`),`info`,()=>void x(e,t))),p(`edit`)&&(a.value.editMode===`modal`||m(i.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 b(e,t).catch(()=>void 0))),n},C=(e,t)=>{let r=i.value?.custom;if(!r?.length)return null;let a=r.filter(n=>n.show?n.show(e,t):!0);return a.length?y(de,{options:a.map(r=>{let i=typeof r.label==`function`?r.label(e,t):r.label,a=typeof r.icon==`function`?r.icon(e,t):r.icon;return{label:i,key:r.key,icon:()=>y(n,{name:a,size:14}),disabled:r.disabled?.(e,t)||!1}}),onSelect:n=>{let r=a.find(e=>e.key===n);if(!r)return;let i=typeof r.label==`function`?r.label(e,t):r.label;Promise.resolve(r.onClick(e,t)).catch(e=>d.error(f(`table.actionFailed`,{action:i}),e))}},()=>g(`mdi:dots-horizontal`,f(`table.moreActions`),`default`,()=>{})):null};return{renderActions:(e,t)=>{if(i.value?.render)return i.value.render(e,t);let n=s(e),r=[`row`,`both`].includes(a.value.editMode);if(r&&o.editStates.rowEdit.isEditingRow(n))return y(z,{size:2,wrap:!1},()=>ee(n));let c=m(i.value?.edit),l=[...r&&!c?ee(n):[],...S(e,t)],u=C(e,t);return u&&l.push(u),y(z,{size:2,wrap:!1},()=>l)},isActionEnabled:p}}const xt=Symbol(`C_TABLE_GLOBAL_CONFIG`),St={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 Ct(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 wt(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 Tt={date:(e,t)=>Ct(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>Ct(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=wt(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)=>wt(e,t.precision??0)};function Et(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&&Tt[n.type];return i?i(e,{...{...St,...r}[n.type],...n.config}):String(e??`-`)}function Dt(){return v()?b(xt,{}):{}}const Ot=(e,t)=>t===void 0?e:t&&e&&typeof t==`object`&&typeof e==`object`&&!Array.isArray(t)&&!Array.isArray(e)?{...e,...t}:t;function kt(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=Ot(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 At={number:fe,switch:_e,input:R,email:R,mobile:R,date:e=>y(ce,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>y(he,{...e,options:e.options||[]}),textarea:e=>y(R,{...e,type:`textarea`,rows:3})},jt={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},Mt=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:jt[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function Nt(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 y(At[e.editType||`input`]||At.input,i)}function Pt(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?Et(r,t,e.formatter,i):String(r??``)}function Ft(e,t,r,i,a){let o=(e,t,r)=>y(`button`,{class:`cell-action-btn cell-action-${e}`,title:t,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[y(n,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return y(`div`,{class:`cell-editing-container`},[y(`div`,{class:`cell-editing-input`},[Nt(e,t,r)]),y(`div`,{class:`cell-editing-actions`},[o(`save`,`保存`,i),o(`cancel`,`取消`,a)])])}function It(e,t,r,i,a,o){let s;return s=e.render?e.render(t,r)??String(i??``):e.formatter?Et(i,t,e.formatter,o):String(i??``),y(`div`,{class:`cell-edit-wrapper`},[y(`span`,{class:`cell-value`},s),y(n,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function Lt(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:o,editModeChecker:s,showActionsColumn:c}=e,u=D([]),d=D(!1),f=e=>{let t=u.value.find(e=>e.key===`_actions`),n=e.filter(e=>e.key!==`_actions`);u.value=c.value?[...n,t||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]:n};N([t,c],([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)?Ft(e,l(i,o)??s,e=>u(i,o,e),()=>d(),()=>f()):It(e,t,r,s,()=>p(i,o),n.value.formatterConfig)},m=(e,t,r)=>{let o=e.key??``,c=t[o],l=i(t),u=s.value;return u.isNonEditable(e)?Pt(e,t,r,c,n.value.formatterConfig):u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)?Nt(e,a.editStates.rowEdit.getEditingRowData(l)?.[o]??c,e=>a.editStates.rowEdit.updateEditingRowData(l,o,e)):u.isCellEditMode()?p(e,t,r,l):Pt(e,t,r,c,n.value.formatterConfig)},h=e=>{let t=e.width||r||180;return typeof t==`number`?t:180},g=e=>{let t=e;return{key:`_index`,title:t.title||`序号`,width:typeof(t.width||50)==`number`&&t.width||50,titleAlign:`center`,align:`center`,render:(e,t)=>t+1,fixed:e.fixed}},_=e=>{let t=e,n={...t,width:h(e),titleAlign:t.titleAlign||`center`,align:t.align||`center`,render: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:l(()=>{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)),c.value){let t=u.value.find(e=>e.key===`_actions`);e.push({key:`_actions`,title:`操作`,width:t?.width??180,className:`c-table-actions-column`,align:`center`,titleAlign:`center`,render:o,fixed:t?.fixed})}return e}),computedScrollX:l(()=>{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 Rt(e){let{data:t,onReorder:n,onSort:r}=e,i=D(!1),a=null,o=0,s=!1,c=()=>{a?.destroy(),a=null,i.value=!1},l=async l=>{let u=++o;c();let d=j(e.config);if(!(!d?.enabled||!l||s))try{let{default:e}=await import(`sortablejs`);if(s||u!==o)return;let c=l.querySelector(`.n-data-table-tbody`);if(!c)return;a=new e(c,{animation:d.animationDuration??150,handle:d.handleSelector,ghostClass:d.ghostClass??`row-drag-ghost`,chosenClass:d.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{}},u=()=>{o+=1,c()};return te(()=>{s=!0,u()}),{initRowDrag:l,destroyRowDrag:u,isDragging:i}}function zt(e){let{allData:t,rowKey:n}=e,r=D(new Set),i=()=>{let t=j(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},a=l(()=>r.value.size),o=e=>e.map(e=>n(e)).filter(e=>r.value.has(e)),s=(t,a)=>{if(!j(e.config)?.enabled)return;let o=new Set(r.value);for(let e of a)o.delete(n(e));for(let e of t){let t=i();if(t&&o.size>=t)break;o.add(e)}r.value=o},c=()=>{if(!j(e.config)?.enabled)return;let a=[...new Set(t.value.map(e=>n(e)))],o=i();r.value=new Set(o?a.slice(0,o):a)},u=a=>{if(!j(e.config)?.enabled||!t.value.some(e=>n(e)===a))return!1;if(r.value.has(a))return!0;let o=i();return o&&r.value.size>=o?!1:(r.value=new Set([...r.value,a]),!0)},d=e=>{if(!r.value.has(e))return;let t=new Set(r.value);t.delete(e),r.value=t},f=()=>{r.value=new Set};return N(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)}),N(()=>[j(e.config)?.enabled,i()],([e,t])=>{if(!e){f();return}t&&r.value.size>t&&(r.value=new Set([...r.value].slice(0,t)))}),{selectedKeys:r,selectedCount:a,getPageCheckedKeys:o,handlePageSelectionChange:s,selectAll:c,select:u,unselect:d,clearAll:f,getSelectedRows:()=>t.value.filter(e=>r.value.has(n(e))),isSelected:e=>r.value.has(e)}}function Bt(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 Vt(e,t,n){let r=e[t.key];return t.formatter?Et(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function Ht(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 Ut(e){return[...e||`export`].map(e=>e.charCodeAt(0)<32||`<>:"/\\|?*`.includes(e)?`_`:e).join(``).trim()||`export`}function Wt(e,t,n){let r=n.csvSeparator??`,`,i=n.preventFormulaInjection!==!1,a=Bt(t,n.columnKeys),o=[];n.includeHeader!==!1&&o.push(a.map(e=>Ht(e.title??``,r,i)).join(r));for(let t of e){let e=a.map(e=>Ht(Vt(t,e,n.formatterConfig),r,i));o.push(e.join(r))}Kt(new Blob([``+o.join(`
3
- `)],{type:`text/csv;charset=utf-8;`}),`${Ut(n.filename)}.csv`)}async function Gt(e,t,n){let r=Bt(t,n.columnKeys),i;try{i=await import(`xlsx`)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),Wt(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>Vt(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,`${Ut(n.filename)}.xlsx`)}function Kt(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 qt(e,t,n={}){n.format===`xlsx`?await Gt(e,t,n):Wt(e,t,n)}const Jt=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}],Yt=[`_actions`],Xt=[`selection`,`expand`],Zt=e=>Yt.includes(e.key)||Xt.includes(e.type),Qt=e=>typeof e==`string`||typeof e==`number`&&Number.isFinite(e),$t=e=>typeof e==`number`&&Number.isFinite(e)&&e>=0||typeof e==`string`&&e.trim().length>0&&e.length<=128,en=e=>e.map(e=>({...e})),tn=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 Qt(n.key)?[{key:n.key,order:t,...typeof n.visible==`boolean`&&{visible:n.visible},...$t(n.width)&&{width:n.width},...(n.fixed===`left`||n.fixed===`right`)&&{fixed:n.fixed}}]:[]}):[]},nn=(e,t)=>{let n=new Map(tn(t).map(e=>[e.key,e]));return en(e).map(e=>{let t=Qt(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=Qt(e.key)?n.get(e.key)?.order:void 0,i=Qt(t.key)?n.get(t.key)?.order:void 0;return(r??1/0)-(i??1/0)})},rn=e=>JSON.stringify(e.filter(e=>Qt(e.key)).map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}))),an={class:`column-management-tab`},on={class:`search-row`},sn={class:`resizable-control`},cn={class:`top-actions-bar`},ln={class:`stats-info`},un={class:`quick-actions`},dn=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],fn={class:`column-info`},pn={class:`column-controls`},mn={class:`column-details`},hn={class:`column-actions`},gn={class:`drag-controls`};var _n=r(_({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t,a=e=>{if(!r.persistKey)return en(e);try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);return t?nn(e,t):en(e)}catch{return en(e)}},o=e=>{if(r.persistKey)try{localStorage.setItem(`c_table_cols_${r.persistKey}`,rn(e))}catch{}},s=D(a(r.columns)),m=D(``),_=D(),v=D(null),y=D(null),b=D(!1);ne(()=>{b.value=s.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...s.value])}),N(()=>r.columns,e=>{s.value=a(e),b.value=s.value.some(e=>e.resizable===!0)},{deep:!0});let x=l(()=>{if(!m.value)return s.value;let e=m.value.toLowerCase();return s.value.filter(t=>String(t.title??``).toLowerCase().includes(e)||String(t.key??``).toLowerCase().includes(e))}),ee=l(()=>s.value.filter(e=>e.visible!==!1).length),S=l(()=>s.value.length),te=e=>{s.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),P()},re=()=>te(!0),E=()=>te(!1),O=e=>{let t=x.value[e];return s.value.findIndex(e=>e.key===t.key)},ae=(e,t)=>{let n=O(e);n!==-1&&(t(s.value[n]),P())},k=(e,t)=>{ae(e,e=>{e.visible=t})},j=(e,t)=>{ae(e,e=>{e.fixed=t===`none`?void 0:t})},P=()=>{o(s.value),i(`change`,[...s.value])},oe=()=>{s.value=en(r.columns),P()},se=e=>{s.value.forEach(t=>{Zt(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),P()},ce=(e,t)=>{let n=O(e),r=O(t);if(n!==-1&&r!==-1){let[e]=s.value.splice(n,1);s.value.splice(r,0,e),P()}},le=(e,t)=>{if(x.value[e].key===`_actions`){t.preventDefault();return}v.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},ue=(e,t)=>{t.preventDefault(),!(v.value===null||x.value[e].key===`_actions`)&&(y.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},fe=e=>{v.value===null||x.value[e].key===`_actions`||(ce(v.value,e),v.value=null,y.value=null)},pe=()=>{v.value=null,y.value=null};return(e,t)=>(T(),f(`div`,an,[d(` 搜索框和列宽调整开关 `),p(`div`,on,[g(M(R),{value:m.value,"onUpdate:value":t[0]||=e=>m.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:F(()=>[g(n,{name:`mdi:magnify`})]),_:1},8,[`value`]),p(`div`,sn,[g(n,{name:`mdi:arrow-split-vertical`,size:`14`,title:b.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),g(M(V),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:F(()=>[...t[2]||=[h(` 列宽调整 `,-1)]]),_:1}),g(M(_e),{value:b.value,"onUpdate:value":[t[1]||=e=>b.value=e,se],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),d(` 顶部操作栏:统计信息和快捷操作按钮 `),p(`div`,cn,[p(`div`,ln,[g(M(V),{depth:`3`,style:{fontSize:`13px`}},{default:F(()=>[h(` 已选 `+A(ee.value)+` / 总共 `+A(S.value)+` 列 `,1)]),_:1})]),p(`div`,un,[g(M(z),{size:6},{default:F(()=>[g(M(I),{size:`tiny`,onClick:re},{default:F(()=>[...t[3]||=[h(` 全选 `,-1)]]),_:1}),g(M(I),{size:`tiny`,onClick:E},{default:F(()=>[...t[4]||=[h(` 全不选 `,-1)]]),_:1}),g(M(I),{size:`tiny`,onClick:oe},{default:F(()=>[...t[5]||=[h(` 重置 `,-1)]]),_:1})]),_:1})])]),d(` 列列表 `),p(`div`,{ref_key:`listRef`,ref:_,class:`column-list`},[(T(!0),f(c,null,ie(x.value,(e,r)=>(T(),f(`div`,{key:e.key,class:C([`column-item`,{disabled:e.key===`_actions`,"fixed-left":e.fixed===`left`,"fixed-right":e.fixed===`right`}]),draggable:e.key!==`_actions`,onDragstart:e=>le(r,e),onDragover:e=>ue(r,e),onDragend:pe,onDrop:e=>fe(r)},[p(`div`,fn,[p(`div`,pn,[g(n,{name:`mdi:drag`,size:`16`,class:C([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),g(M(L),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>k(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),p(`div`,mn,[g(M(z),{align:`center`,size:6},{default:F(()=>[g(M(V),{strong:``,style:{fontSize:`13px`}},{default:F(()=>[h(A(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?(T(),u(M(B),{key:0,size:`tiny`,type:`info`},{default:F(()=>[...t[6]||=[h(` 左固定 `,-1)]]),_:1})):d(`v-if`,!0),e.fixed===`right`?(T(),u(M(B),{key:1,size:`tiny`,type:`warning`},{default:F(()=>[...t[7]||=[h(` 右固定 `,-1)]]),_:1})):d(`v-if`,!0)]),_:2},1024),g(M(V),{depth:`3`,style:{fontSize:`11px`}},{default:F(()=>[h(A(e.key),1)]),_:2},1024)])]),p(`div`,hn,[p(`div`,gn,[g(n,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:C({disabled:r===0}),onClick:e=>r!==0&&ce(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),g(n,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==x.value.length-1,class:C({disabled:r===x.value.length-1}),onClick:e=>r!==x.value.length-1&&ce(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),g(M(de),{options:M(Jt)(e),onSelect:e=>j(r,e)},{default:F(()=>[g(n,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:w({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,dn))),128))],512)]))}}),[[`__scopeId`,`data-v-6ff103ee`]]);function vn(e){return e}function yn(e){return e}function bn(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 xn(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 Sn=[`aria-busy`],Cn={key:1,class:`table-toolbar`},wn={class:`toolbar-left`},Tn={class:`toolbar-right`},En={key:2,class:`batch-actions-bar`},Dn={class:`batch-info`},On={key:3,class:`table-error-state`},kn={class:`error-content`},An={class:`error-message`};var jn=r(_({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(r,{expose:_,emit:v}){let b=r,C=v,w=(e,...t)=>{if(C(e,...t),b.crud)return{save:b.crud.save,cancel:b.crud.handleCancel,"pagination-change":b.crud.handlePaginationChange,"row-delete":b.crud.handleRowDelete,"view-detail":b.crud.detail?.show}[e]?.(...t)},re=Dt(),E=e=>typeof b.rowKey==`function`?b.rowKey(e):e[b.rowKey],k=l(()=>{let e=b.config||{};if(b.crud){let t={};b.crud.actions&&(t.actions=b.crud.actions.value),b.crud.pagination&&(t.pagination=b.crud.pagination.value??void 0),e={...t,...e}}return kt(e,re)}),j=l(()=>b.columns??b.crud?.columns.value??[]),P=l(()=>ke(k.value)),oe=t(()=>P.value.feedback),{t:L}=e(()=>P.value.locale),ce=l(()=>Ae(P.value)),de=e=>e&&typeof e==`object`&&`value`in e?e.value:e,R=l(()=>de(b.data)??b.crud?.data.value??[]),fe=l(()=>de(b.loading)??b.crud?.loading.value??!1),he=l(()=>P.value.treeEnabled&&P.value.treeDefaultExpandAll?xn(R.value,P.value.treeChildrenKey,E):[]),ge=l(()=>({...P.value,defaultExpandedKeys:[...new Set([...P.value.defaultExpandedKeys??[],...he.value])]})),_e=``;N(()=>R.value.map(e=>{try{return E(e)}catch{return}}),()=>{if(k.value.validateRowKeys===!1){_e=``;return}let e=bn(R.value,E);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,oe.warning(L(`table.invalidRowKeys`,{count:e.length})),C(`row-key-error`,e))},{immediate:!0});let B=vt({data:R,config:l(()=>P.value.pagination),emit:w}),V=gt({config:ge,data:()=>R.value,rowKey:E,emit:w,columns:()=>j.value,renderLoading:()=>y(i,{size:32,label:L(`table.loading`)})}),H=new Set;N(he,e=>{if(!P.value.treeEnabled||!P.value.treeDefaultExpandAll){H.clear();return}let t=e.filter(e=>!H.has(e));e.forEach(e=>H.add(e));let n=V.expandedKeys.value,r=t.filter(e=>!n.includes(e));r.length&&V.expandState?.handleExpandChange([...n,...r])},{immediate:!0});let ve=bt({actions:l(()=>k.value.actions||{}),config:P,tableManager:V,rowKey:E,onRowDeleted:(e,t)=>C(`row-delete`,e,t),isDeleteFeedbackHandled:e=>b.crud?.actions?.value.delete===e,onViewDetail:e=>w(`view-detail`,e)}),ye=l(()=>{let{actions:e}=k.value;return!!(P.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),be=Lt({rawColumns:j,config:P,columnWidth:P.value.columnWidth,scrollX:P.value.scrollX,rowKey:E,tableManager:V,actionsRenderer:ve.renderActions,editModeChecker:ce,showActionsColumn:ye}),{showSettingsPanel:xe,reactiveColumns:Se,computedColumns:Ce,computedScrollX:U}=be,we=Rt({data:B.paginatedData,rowKey:E,config:l(()=>P.value.rowDrag),onReorder:e=>{let t=P.value.pagination;if(!t?.enabled||t.remote){w(`update:data`,e);return}let n=(B.currentPage.value-1)*B.currentPageSize.value,r=[...R.value];r.splice(n,e.length,...e),w(`update:data`,r)},onSort:(e,t,n)=>{let r=P.value.pagination?.enabled&&!P.value.pagination.remote?(B.currentPage.value-1)*B.currentPageSize.value:0;C(`row-move`,e,t+r,n+r)}}),W=zt({allData:R,rowKey:E,config:l(()=>P.value.crossPageSelection)}),G=l(()=>P.value.crossPageSelection?.enabled===!0),Te=l(()=>G.value?W.selectedCount.value:V.checkedKeys?.value?.length??0),K=D(new Set),Ee=async e=>{if(K.value.has(e.key))return;let t=G.value?[...W.selectedKeys.value]:V.checkedKeys?.value??[],n=G.value?W.getSelectedRows():R.value.filter(e=>t.includes(E(e)));K.value=new Set(K.value).add(e.key);try{await e.onClick(t,n),P.value.batchActions?.clearSelectionOnSuccess&&De()}catch(t){P.value.batchActions?.onError?.(t,e.key),C(`batch-action-error`,t,e.key)}finally{let t=new Set(K.value);t.delete(e.key),K.value=t}},De=()=>{G.value?W.clearAll():V.stateManager.selection.clear()},Oe=l(()=>G.value?W.getPageCheckedKeys(B.paginatedData.value):null),je=e=>{G.value&&W.handlePageSelectionChange(e,B.paginatedData.value),V.expandState?.handleSelectionChange?.(e)},Me=async()=>{let e=P.value.exportConfig??{};await qt(R.value,j.value,{...e,formatterConfig:P.value.formatterConfig})},Ne=l(()=>P.value.summaryRender),q=D(),J=null,Pe=0,Y=()=>{Pe+=1,J?.destroy(),J=null},Fe=async()=>{let e=++Pe;if(J?.destroy(),J=null,!(!P.value.enableColumnDrag||!q.value))try{let{default:t}=await import(`sortablejs`);if(e!==Pe||!q.value)return;let n=q.value.querySelector(`.n-data-table-thead tr`);if(!n)return;J=new t(n,{animation:P.value.columnDragAnimationDuration,handle:P.value.columnDragHandleClass?`.${P.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=[...Se.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),be.handleColumnChange(t),C(`column-change`,t)}})}catch{}},Ie=D(),Le=l(()=>({striped:P.value.striped,bordered:P.value.bordered,singleLine:P.value.singleLine,size:P.value.size,maxHeight:P.value.maxHeight})),Re=D(),ze=D(!1),X=D({}),Be=l({get:()=>V.editStates.modalEdit.isModalVisible.value,set:e=>{V.editStates.modalEdit.isModalVisible.value=e}}),Ve=l(()=>j.value.filter(e=>e.editable!==!1)),He=l(()=>`edit-form-${V.editStates.modalEdit.editingRowKey.value??`new`}`),Ue=l(()=>Mt(Ve.value));N(()=>V.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(X.value=o(e))},{immediate:!0,deep:!0});let Z=null;N(Be,e=>{e&&Z&&(clearTimeout(Z),Z=null),e||(Z&&clearTimeout(Z),Z=setTimeout(()=>{X.value={},Z=null},300))});let We=async()=>{if(Re.value){ze.value=!0;try{await Re.value.validate()}catch{ze.value=!1;return}try{await V.editStates.modalEdit.saveEdit(X.value)}finally{ze.value=!1}}},Ge=()=>{X.value={},V.editStates.modalEdit.cancelEdit()},Ke=e=>{be.handleColumnChange(e),C(`column-change`,be.reactiveColumns.value)},{edit:qe,expand:Je,selection:Ye,dynamicRows:Q}=V.stateManager,Xe={startEdit:qe.start,cancelEdit:qe.cancel,saveEdit:qe.save,expandRow:Je.row,collapseRow:Je.collapse,toggleExpand:Je.toggle,expandAll:Je.all,collapseAll:Je.collapseAll,selectRow:e=>G.value?W.select(e):(Ye.select(e),Ye.isSelected(e)),unselectRow:e=>{G.value?W.unselect(e):Ye.unselect(e)},selectAll:()=>{G.value?W.selectAll():Ye.all()},clearSelection:De,isRowSelected:e=>G.value?W.isSelected(e):Ye.isSelected(e),clearAllSelections:()=>{W.clearAll(),V.stateManager.clearAllSelections()},selectChildRow:V.stateManager.childSelection.select,unselectChildRow:V.stateManager.childSelection.unselect,selectAllChildren:V.stateManager.childSelection.selectAll,clearChildrenSelection:V.stateManager.childSelection.clear,getChildSelectedRows:V.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??q.value),downloadTableScreenshot:(e,t)=>Q.download(e??q.value,t),resetToFirstPage:B.resetToFirstPage,getTotalPages:B.getTotalPages,getSelectedRows:()=>G.value?W.getSelectedRows():Ye.getSelected(),getEditingData:qe.getEditingData,isEditing:qe.isEditing,isExpanded:Je.isExpanded,getManager:()=>V.stateManager,exportData:Me,crossPageSelection:{enabled:G,selectedKeys:W.selectedKeys,selectedCount:W.selectedCount,select:W.select,unselect:W.unselect,selectAll:W.selectAll,clearAll:W.clearAll,getSelectedRows:W.getSelectedRows}};return _(Xe),ne(()=>{let e=b.crud?.tableRef;e&&(e.value=Xe),Fe(),q.value&&we.initRowDrag(q.value)}),N([()=>P.value.enableColumnDrag,()=>P.value.columnDragHandleClass,()=>fe.value,()=>Ce.value.length],async()=>{await S(),await Fe()},{immediate:!0,flush:`post`}),N([()=>P.value.rowDrag,()=>fe.value,()=>B.paginatedData.value.length,()=>B.currentPage.value],async()=>{await S(),q.value&&await we.initRowDrag(q.value)},{immediate:!0,deep:!0,flush:`post`}),te(()=>{Z&&clearTimeout(Z),Y(),we.destroyRowDrag()}),(e,t)=>(T(),f(`div`,{ref_key:`tableWrapperRef`,ref:q,class:`c-table-wrapper`,"aria-busy":fe.value},[d(` 动态行工具栏 `),P.value.dynamicRows&&M(V).dynamicRowsState?(T(),u(ae(M(V).dynamicRowsState.renderToolbar(q.value)),{key:0})):d(`v-if`,!0),d(` 表格工具栏 `),P.value.showToolbar?(T(),f(`div`,Cn,[p(`div`,wn,[O(e.$slots,`toolbar-left`,{},void 0,!0),P.value.toolbarActions.length?(T(),u(a,{key:0,actions:P.value.toolbarActions,config:{...P.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):d(`v-if`,!0)]),p(`div`,Tn,[O(e.$slots,`toolbar-right`,{},void 0,!0),P.value.toolbarRightActions.length?(T(),u(a,{key:0,actions:P.value.toolbarRightActions,config:{align:`right`,...P.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):d(`v-if`,!0),P.value.exportConfig?(T(),u(n,{key:1,name:`mdi:download`,size:`18`,title:M(L)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:t[0]||=e=>Me()},null,8,[`title`])):d(`v-if`,!0),P.value.enableColumnSettings?(T(),u(n,{key:2,name:`mdi:cog`,size:`18`,title:M(L)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:t[1]||=e=>xe.value=!0},null,8,[`title`])):d(`v-if`,!0)])])):d(`v-if`,!0),d(` 批量操作栏 `),P.value.batchActions?.enabled&&Te.value>0?(T(),f(`div`,En,[p(`span`,Dn,A(M(L)(`table.selectedCount`,{count:Te.value})),1),g(M(z),{size:8},{default:F(()=>[(T(!0),f(c,null,ie(P.value.batchActions.actions||[],e=>(T(),u(M(I),{key:e.key,type:e.type||`default`,size:`small`,loading:K.value.has(e.key),disabled:K.value.has(e.key),onClick:t=>Ee(e)},m({default:F(()=>[h(` `+A(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:F(()=>[g(n,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`loading`,`disabled`,`onClick`]))),128)),g(M(I),{size:`small`,onClick:De},{default:F(()=>[h(A(M(L)(`table.cancelSelection`)),1)]),_:1})]),_:1})])):d(`v-if`,!0),d(` 错误状态 `),P.value.error?.show?(T(),f(`div`,On,[O(e.$slots,`error`,{error:P.value.error},()=>[p(`div`,kn,[g(n,{name:`mdi:alert-circle-outline`,size:`48`}),p(`p`,An,A(P.value.error.message||M(L)(`table.loadFailed`)),1),P.value.error.onRetry?(T(),u(M(I),{key:0,type:`primary`,size:`small`,onClick:P.value.error.onRetry},{default:F(()=>[h(A(M(L)(`common.retry`)),1)]),_:1},8,[`onClick`])):d(`v-if`,!0)])],!0)])):d(`v-if`,!0),d(` 表格主体 `),P.value.error?.show?d(`v-if`,!0):(T(),u(M(se),ee({key:4,ref_key:`tableRef`,ref:Ie},{...Le.value,...e.$attrs},{columns:M(Ce),data:M(B).paginatedData.value,loading:fe.value,"row-key":E,"expanded-row-keys":M(V).expandedKeys.value,"checked-row-keys":Oe.value??M(V).checkedKeys.value,"onUpdate:expandedRowKeys":M(V).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":je,"scroll-x":M(U),"virtual-scroll":P.value.virtualScroll,"min-row-height":P.value.virtualScroll?P.value.virtualItemHeight:void 0,"max-height":P.value.virtualScroll?P.value.virtualMaxHeight:P.value.maxHeight,summary:Ne.value,"summary-placement":P.value.summaryPosition,"children-key":P.value.treeEnabled?P.value.treeChildrenKey:void 0,indent:P.value.treeEnabled?P.value.treeIndent:void 0,"default-expand-all":P.value.treeEnabled?P.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),{loading:F(()=>[O(e.$slots,`loading`,{},()=>[g(M(i),{label:M(L)(`table.loading`)},null,8,[`label`])],!0)]),_:3},16,[`columns`,`data`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),d(` 分页 `),M(B).paginationConfig.value?(T(),u(M(me),ee({key:5},M(B).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):d(`v-if`,!0),d(` 编辑弹窗 `),P.value.editMode===`modal`||P.value.editMode===`both`?(T(),u(M(pe),{key:6,show:Be.value,"onUpdate:show":t[3]||=e=>Be.value=e,title:P.value.modalTitle,width:P.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:F(()=>[g(M(z),{justify:`end`},{default:F(()=>[g(M(I),{onClick:Ge},{default:F(()=>[h(A(M(L)(`common.cancel`)),1)]),_:1}),g(M(I),{type:`primary`,loading:ze.value,onClick:We},{default:F(()=>[h(A(M(L)(`common.save`)),1)]),_:1},8,[`loading`])]),_:1})]),default:F(()=>[Be.value&&Ue.value.length?(T(),u(s,{ref_key:`editFormRef`,ref:Re,key:He.value,modelValue:X.value,"onUpdate:modelValue":t[2]||=e=>X.value=e,options:Ue.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):d(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):d(`v-if`,!0),d(` 动态行确认删除弹窗 `),P.value.dynamicRows&&M(V).dynamicRowsState?(T(),u(ae(M(V).dynamicRowsState.renderConfirmModal()),{key:7})):d(`v-if`,!0),d(` 列设置抽屉 `),g(M(le),{show:M(xe),"onUpdate:show":t[4]||=e=>x(xe)?xe.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:F(()=>[g(M(ue),{title:M(L)(`table.columnSettings`),closable:``},{default:F(()=>[g(_n,{columns:M(Se),"persist-key":P.value.persistKey,onChange:Ke},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],8,Sn))}}),[[`__scopeId`,`data-v-f623c0e1`]]);const Mn=(e,t)=>Number.isFinite(e)?Math.max(1,Math.floor(e)):t;function Nn(e){let t=k([]),n=D(!1),r=k(),i=D(0),a=o(e.initialQuery),s=D(Mn(e.initialPage,1)),c=D(Mn(e.pageSize,20)),u=k(o(a)),d=0,f=null,p=async()=>{let a=++d;f?.abort(),f=new AbortController,n.value=!0,r.value=void 0;try{let n=await e.request({page:s.value,pageSize:c.value,query:o(u.value),signal:f.signal});if(a!==d||f.signal.aborted)return!1;if(!Array.isArray(n.data)||!Number.isFinite(n.total))throw TypeError(`[C_Table] request 必须返回 { data: T[], total: number }`);return t.value=o([...n.data]),i.value=Math.max(0,Math.floor(n.total)),e.onSuccess?.({data:t.value,total:i.value}),!0}catch(t){return a!==d||f.signal.aborted?!1:(r.value=t,e.onError?.(t),!1)}finally{a===d&&(n.value=!1)}},m=async(e,t=!0)=>(u.value=o(typeof e==`function`?e(u.value):{...u.value,...e}),s.value=1,t?p():!0),h=async(e,t)=>(s.value=Mn(e,s.value),c.value=Mn(t,c.value),p()),g=async(e=!0)=>(u.value=o(a),s.value=1,e?p():!0),_=l(()=>{let r=j(e.config)??{},a=typeof r.pagination==`object`?r.pagination:{};return{data:t.value,loading:n.value,columns:j(e.columns),rowKey:e.rowKey??`id`,config:{...r,pagination:{...a,enabled:!0,remote:!0,page:s.value,pageSize:c.value,total:i.value}}}}),v=l(()=>({..._.value,onPaginationChange:h})),y=()=>{d+=1,f?.abort(),f=null,n.value=!1};return e.immediate!==!1&&ne(()=>void p()),re(y),{data:t,loading:n,error:r,total:i,page:s,pageSize:c,query:u,tableProps:_,execute:p,reload:p,setQuery:m,resetQuery:g,handlePaginationChange:h,bindings:v,cancel:y}}export{Pe as C,Fe as S,ke as T,ht as _,bn as a,qe as b,Rt as c,Et as d,kt as f,gt as g,vt as h,yn as i,Lt as l,bt as m,jn as n,qt as o,Dt as p,vn as r,zt as s,Nn as t,xt as u,dt as v,Ae as w,Ie as x,ut as y};
1
+ import{t as e}from"./useComponentLocale.js";import{t}from"./feedback.js";import{t as n}from"./C_Icon2.js";import{t as r}from"./export-helper.js";import{t as i}from"./C_Loading2.js";import{t as a}from"./useActionTask.js";import{t as o}from"./C_ActionBar2.js";import{a as s,t as c}from"./data.js";import{Fragment as l,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createSlots as h,createTextVNode as g,createVNode as _,defineAsyncComponent as v,defineComponent as y,getCurrentInstance as b,getCurrentScope as x,h as S,inject as C,isRef as ee,mergeProps as te,nextTick as w,normalizeClass as T,normalizeStyle as E,onBeforeUnmount as ne,onMounted as re,onScopeDispose as D,openBlock as O,reactive as ie,ref as k,renderList as ae,renderSlot as oe,resolveDynamicComponent as A,shallowReactive as se,shallowRef as j,toDisplayString as M,toValue as N,unref as P,watch as F,withCtx as I}from"vue";import{NButton as L,NButtonGroup as ce,NCheckbox as R,NDataTable as le,NDrawer as ue,NDrawerContent as de,NDropdown as fe,NInput as z,NInputNumber as pe,NModal as me,NPagination as he,NSelect as ge,NSpace as _e,NSpin as B,NSwitch as ve,NTag as ye,NText as be,NTooltip as V}from"naive-ui";const H={editable:!1,editMode:`none`,showRowActions:!1,modalTitle:`编辑数据`,modalWidth:600,onEditSave:void 0,onEditCancel:void 0,onEditError:void 0},xe=e=>e===!1||e===void 0?H: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},Se=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},Ce=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`}},we=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}}},Te=e=>e?e===!0?{dynamicRows:{enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0}}:{dynamicRows:e}:{dynamicRows:void 0},U={striped:!0,bordered:!0,singleLine:!0,size:`medium`,maxHeight:void 0,scrollX:void 0,columnWidth:180};function Ee(e){return e?{striped:e.striped??U.striped,bordered:e.bordered??U.bordered,singleLine:e.singleLine??U.singleLine,size:e.size??U.size,maxHeight:e.maxHeight,scrollX:e.scrollX,columnWidth:e.columnWidth??U.columnWidth}:{...U}}const De=e=>({showToolbar:e?.show!==!1,enableColumnSettings:e?.columnSettings!==!1,toolbarActions:e?.actions??[],toolbarRightActions:e?.rightActions??[],toolbarActionBarConfig:e?.actionBar??{}}),Oe=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},ke=e=>e?{summaryPosition:e.position??`bottom`,summaryRender:e.render}:{summaryPosition:void 0,summaryRender:void 0},Ae=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},je=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},Me=e=>e?e===!0?{rowDrag:{enabled:!0}}:{rowDrag:e.enabled===!1?void 0:e}:{rowDrag:void 0},Ne=e=>e?e===!0?{crossPageSelection:{enabled:!0}}:{crossPageSelection:e.enabled===!1?void 0:e}:{crossPageSelection:void 0};function Pe(e={}){return{feedback:e.feedback,locale:e.locale,...xe(e.edit),...Se(e.expand),...Ce(e.selection),...we(e.pagination),...Te(e.dynamicRows),...Ee(e.display),...De(e.toolbar),...Oe(e.virtualScroll),...ke(e.summary),...Ae(e.columnDrag),...je(e.tree),...Me(e.rowDrag),...Ne(e.crossPageSelection),exportConfig:e.export,persistKey:e.persistKey,formatterConfig:e.formatterConfig,error:e.error,batchActions:e.batchActions}}const Fe=e=>({isNonEditable:t=>!e.editable||t.editable===!1||e.editMode===`none`,isRowEditMode:()=>[`row`,`both`].includes(e.editMode),isCellEditMode:()=>[`cell`,`both`].includes(e.editMode)});function Ie(e,t){return(typeof e.message==`function`?e.message():e.message)||t}function Le(e){return e==null||e===``||Array.isArray(e)&&e.length===0}function W(e){if(typeof e==`number`)return e;if(typeof e==`string`||Array.isArray(e))return e.length}function G(e,t){return e===!1?t:e instanceof Error?e.message||t:typeof e==`string`?e||t:Array.isArray(e)&&e.length>0?G(e[0],t):null}async function Re(e,t,n,r){let i=Ie(e,`${n}校验失败`),a=e.transform?e.transform(t):t;if(e.required&&Le(a))return Ie(e,`${n}不能为空`);if(!e.required&&Le(a))return null;if(e.enum&&!e.enum.includes(a)||e.pattern&&!new RegExp(e.pattern).test(String(a)))return i;let o=W(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=G(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 G(s,i)}catch(e){return e instanceof Error&&e.message?e.message:i}return null}function ze(e){let t=k(null),n=k({}),r=k(!1),i=k([]),a=e=>t.value===e,o=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},s=e=>{let a=o(e);return!a||r.value?!1:(t.value=e,n.value={[String(e)]:c(a)},i.value=[],!0)},l=async()=>{if(t.value===null||r.value)return;let i=e.data();if(!i||!Array.isArray(i))return;let a=i.findIndex(n=>e.rowKey(n)===t.value);r.value=!0;try{a>-1&&await e.onCancel?.(i[a],a),t.value=null,n.value={}}finally{r.value=!1}},u=async(n,r)=>{let a=(e.columns?.()||[]).filter(e=>e.editable!==!1&&e.editProps?.rules?.length).map(async e=>{let t=typeof e.key==`string`?e.key:``;if(!t)return null;let r=(await Promise.all(e.editProps.rules.map(r=>Re(r,n[t],e.title||t,n)))).find(Boolean);return r?{field:t,message:r}:null}),o=(await Promise.all(a)).filter(Boolean);return t.value===r&&(i.value=o),o.length===0},d=async()=>{let e=t.value;if(e===null)return!0;let r=n.value[String(e)];return r?u(c(r),e):!0},f=async()=>{let i=t.value;if(i===null||r.value)return;let a=n.value[String(i)];if(!a)return;let s=c(a),l=o(i);r.value=!0;try{if(!await u(s,i))return;let r=e.data(),a=r.findIndex(t=>e.rowKey(t)===i);return a===-1||r[a]!==l?void 0:(await e.onSave?.(s,a,i),t.value=null,n.value={},{updatedData:s,rowIndex:a})}finally{r.value=!1}},p=e=>{if(t.value===e)return n.value[String(e)]};return{editingRowKey:t,editingData:n,isSaving:r,isEditingRow:a,startEditRow:s,cancelEditRow:l,saveEditRow:f,validateRow:d,validationErrors:i,getEditingRowData:p,updateEditingRowData:(e,t,n)=>{let i=p(e);!i||r.value||(i[t]=c(n))},findRowData:o}}function K(e,t){let n=String(e);return`${typeof e}:${n.length}:${n}|${t.length}:${t}`}function Be(e){let t=k({rowKey:null,columnKey:null}),n=k({}),r=k(!1),i=k(null),a=(e,n)=>t.value.rowKey===e&&t.value.columnKey===n,o=t=>{let n=e.data();return!n||!Array.isArray(n)?null:n.find(n=>e.rowKey(n)===t)},s=(e,a)=>{let s=o(e);return!s||!a||r.value?!1:(t.value={rowKey:e,columnKey:a},n.value={[K(e,a)]:c(s[a])},i.value=null,!0)},l=async()=>{i.value=null;let{rowKey:r,columnKey:a}=t.value;if(r===null||a===null)return!0;let s=(e.columns?.()||[]).find(e=>e.key===a);if(!s||!s.editProps?.rules)return!0;let c=K(r,a),l=n.value[c],u=s.title||a,d={...o(r),[a]:l},f=(await Promise.all(s.editProps.rules.map(e=>Re(e,l,u,d)))).find(Boolean);return f?(i.value=f,!1):!0};return{editingCell:t,editingData:n,isSaving:r,isEditingCell:a,startEditCell:s,saveEditCell:async()=>{let{rowKey:i,columnKey:a}=t.value;if(i===null||a===null||r.value)return;let s=K(i,a),u=c(n.value[s]),d=o(i);r.value=!0;try{if(!await l())return;let r=e.data(),o=r.findIndex(t=>e.rowKey(t)===i);if(o===-1||r[o]!==d)return;let s={...r[o],[a]:u};return await e.onSave?.(c(s),o,a,i),t.value={rowKey:null,columnKey:null},n.value={},{updatedData:s,rowIndex:o,columnKey:a}}finally{r.value=!1}},cancelEditCell:()=>{let{rowKey:e,columnKey:a}=t.value;r.value||(e!==null&&a!==null&&delete n.value[K(e,a)],t.value={rowKey:null,columnKey:null},i.value=null)},validateCell:l,cellValidationError:i,getEditingCellValue:(e,t)=>n.value[K(e,t)],updateEditingCellValue:(e,t,i)=>{!a(e,t)||r.value||(n.value[K(e,t)]=c(i))},findRowData:o}}function q(e){let t=k(!1),n=k(!1),r=k(null),i=k({}),a=u(()=>{if(r.value===null)return-1;let t=e.data();return Array.isArray(t)?t.findIndex(t=>e.rowKey(t)===r.value):-1});return{isModalVisible:t,isSaving:n,editingData:i,editingRowKey:r,editingRowIndex:a,startEdit:(a,o)=>{if(n.value)return!1;let s=e.data();if(!Array.isArray(s))return!1;let l=s.findIndex(t=>e.rowKey(t)===a);return l===-1?!1:(r.value=a,i.value=c(o??s[l]),t.value=!0,!0)},saveEdit:async o=>{if(n.value||r.value===null)return;let s=a.value;if(s===-1)return;let l=r.value,u=c(o??i.value);n.value=!0;try{return await e.onSave?.(u,s,l),t.value=!1,r.value=null,i.value={},{updatedData:u,rowIndex:s}}finally{n.value=!1}},cancelEdit:async()=>{if(n.value)return!1;let o=a.value;try{if(r.value!==null&&o>-1){let t=e.data();t[o]&&await e.onCancel?.(t[o],o)}}finally{t.value=!1,r.value=null,i.value={}}return!0},updateEditingData:e=>n.value?!1:(i.value=c(e),!0),resetEditingState:()=>n.value?!1:(r.value=null,i.value={},!0),isEditingRow:e=>r.value===e&&t.value,getEditingRowData:e=>r.value===e?i.value:null}}function J(e,t){if(!t)return e;let n=[],r=new WeakSet,i=e=>{if(r.has(e))return;r.add(e),n.push(e);let a=e[t];Array.isArray(a)&&a.forEach(e=>{e&&typeof e==`object`&&i(e)})};return e.forEach(i),n}function Ve(e,t,n,r){let i=new WeakSet,a=e=>{if(e===t)return n;if(!r||i.has(e))return e;i.add(e);let o=e[r];if(!Array.isArray(o))return e;let s=o.map(e=>e&&typeof e==`object`?a(e):e);return s.some((e,t)=>e!==o[t])?{...e,[r]:s}:e};return e.map(a)}function He(e){return e}function Ue(e){return e}function We(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 Ge(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 Ke=e=>({expandedKeys:k([...e.defaultExpandedKeys||[]]),expandDataMap:k(new Map),loadingMap:k(new Map),errorMap:k(new Map),checkedKeys:e.enableSelection?k([...e.defaultCheckedKeys||[]]):k([]),childSelections:(e.enableChildSelection,k(new Map))}),qe=e=>{let t=u(()=>J(P(e.data),e.childrenKey)),n=e.rowKey;return{data:t,getRowKey:n,getChildRowKey:e.childRowKey||(e=>e.id),findRow:e=>t.value.find(t=>n(t)===e),isRowExpandable:t=>e.rowExpandable?.(t)??!0,isRowCheckable:t=>e.rowCheckable?.(t)??!0,isChildRowCheckable:(t,n)=>e.childRowCheckable?.(t,n)??!0}},Je=(e,t,n)=>{let r=new Map,i=new Map,a=!1,o=0,s=new Set(n.defaultExpandedKeys||[]),c=t=>{let n=t===void 0?new Set([...e.expandDataMap.value.keys(),...e.errorMap.value.keys(),...r.keys()]):new Set([t]);for(let t of n)r.delete(t),i.delete(t),e.expandDataMap.value.delete(t),e.errorMap.value.delete(t),e.loadingMap.value.delete(t),e.childSelections.value.delete(t)},l=async o=>{if(!n.onLoadData||a)return[];let s=t.getRowKey(o);if(e.expandDataMap.value.has(s))return e.expandDataMap.value.get(s);if(e.errorMap.value.has(s))return[];let c=r.get(s);if(c)return c.promise;let l={};i.set(s,o),e.loadingMap.value.set(s,!0);let u=()=>!a&&r.get(s)?.token===l,d,f=new Promise(e=>{d=e});return r.set(s,{token:l,promise:f}),(async()=>{try{let t=await n.onLoadData(o),r=Array.isArray(t)?t:[];return u()?(e.expandDataMap.value.set(s,r),n.enableChildSelection&&!e.childSelections.value.has(s)&&e.childSelections.value.set(s,[]),r):[]}catch(t){return u()&&(e.errorMap.value.set(s,t),n.onError?.(t,o)),[]}finally{u()&&(r.delete(s),e.loadingMap.value.set(s,!1))}})().then(d,()=>d([])),f};return F(t.data,n=>{if(i.size===0)return;let r=new Map(n.map(e=>[t.getRowKey(e),e]));for(let[t,n]of i){let i=r.get(t);i!==n&&(c(t),i&&e.expandedKeys.value.includes(t)&&l(i),i||s.delete(t))}e.expandedKeys.value=e.expandedKeys.value.filter(e=>r.has(e))}),x()&&D(()=>{a=!0,c()}),{loadData:l,retryExpand:async e=>{let n=t.findRow(e);n&&(c(e),await l(n))},invalidateExpand:c,handleRowExpand:async(r,i)=>{let a=t.getRowKey(r);if(o+=1,i){if(s.add(a),e.expandedKeys.value.includes(a)||(e.expandedKeys.value=[...e.expandedKeys.value,a]),await l(r),!s.has(a))return}else s.delete(a),e.expandedKeys.value=e.expandedKeys.value.filter(e=>e!==a);n.onExpandChange?.(e.expandedKeys.value,r,i)},expandAll:async()=>{let r=++o,i=t.data.value.filter(t.isRowExpandable);s=new Set(i.map(t.getRowKey)),e.expandedKeys.value=[...s],await Promise.allSettled(i.map(l)),r===o&&(e.expandedKeys.value=i.map(t.getRowKey),n.onExpandChange?.(e.expandedKeys.value))},collapseAll:()=>{o+=1,s.clear(),e.expandedKeys.value=[],e.childSelections.value.clear(),n.onExpandChange?.(e.expandedKeys.value)},handleExpandChange:async r=>{let i=++o;s=new Set(r);let a=r.filter(t=>!e.expandedKeys.value.includes(t)),c=e.expandedKeys.value.filter(e=>!r.includes(e));for(let t of c)e.childSelections.value.delete(t);e.expandedKeys.value=[...r],await Promise.all(a.map(async e=>{let n=t.findRow(e);n&&await l(n)})),i===o&&n.onExpandChange?.(r)}}},Ye=(e,t,n)=>{let r=[],i=[],a=(t,a)=>{let o=t.length===r.length&&t.every((e,t)=>e===r[t]),s=a.length===i.length&&a.every((e,t)=>e===i[t]);o&&s||(r=[...t],i=[...a],n.onSelectionChange?.(t,a,e.childSelections.value))},o=u(()=>t.data.value.filter(t.isRowCheckable));return{selectAll:()=>{if(!n.enableSelection)return;let r=o.value.map(t.getRowKey),i=n.maxSelection?r.slice(0,n.maxSelection):r;e.checkedKeys.value=i;let s=new Set(i);a(i,o.value.filter(e=>s.has(t.getRowKey(e))))},clearSelection:()=>{n.enableSelection&&(e.checkedKeys.value=[],a([],[]))},handleSelectionChange:r=>{if(!n.enableSelection)return;let i=new Set(o.value.map(e=>t.getRowKey(e))),s=[...new Set(r)].filter(e=>i.has(e)),c=n.maxSelection?s.slice(0,Math.max(0,n.maxSelection)):s;e.checkedKeys.value=c;let l=new Set(c);a(c,t.data.value.filter(e=>l.has(t.getRowKey(e))))},selectedRowsCount:u(()=>e.checkedKeys.value.length),selectableRows:o}},Xe=(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}},Ze=(e,t,n,r)=>({totalChildSelections:u(()=>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)}}),Y=(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,[])}}},Qe=e=>S(`div`,{class:`flex justify-center items-center py-8`},e?[e()]:[S(B,{size:`small`}),S(`span`,{class:`ml-2 text-gray-500`},`加载中...`)]),$e=()=>S(`div`,{class:`text-center py-8 text-gray-400`},`暂无数据`),et=e=>{if(!e.length)return[];let t=e[0];return!t||typeof t!=`object`?[]:[{title:`序号`,key:`_index`,width:60,align:`center`,titleAlign:`center`,render:(e,t)=>t+1},...Object.keys(t).filter(e=>![`id`,`key`].includes(e)).map(e=>({key:e,title:e.charAt(0).toUpperCase()+e.slice(1),width:120,align:`center`,titleAlign:`center`,ellipsis:{tooltip:!0}}))]},tt=(e,t,n,r,i,a)=>{let o=[];return a.enableChildSelection&&o.push({type:`selection`,multiple:!0}),o.push(...et(t)),S(`div`,{class:`p-4 bg-gray-50`},[S(`div`,{class:`mb-2 text-sm text-gray-600`},`详细信息 (${t.length} 条)`),S(le,{data:t,columns:o,size:`small`,striped:!0,checkedRowKeys:n?.selectedKeys||[],rowKey:e=>r.getChildRowKey(e),onUpdateCheckedRowKeys:a.enableChildSelection?t=>{i.handleChildSelectionChange(e,t)}:void 0})])},nt=(t,n,r,i,a)=>{let{t:o}=e(()=>a.locale),s=e=>{let s=n.getRowKey(e),c=t.expandDataMap.value.get(s)||[],l=t.loadingMap.value.get(s)||!1,u=Y(s,t,n,r,a);return a.renderContent?a.renderContent(e,c,l,u):l?Qe(a.renderLoading):t.errorMap.value.has(s)?S(`div`,{class:`c-table-expand-error`,role:`alert`},[S(`span`,o(`table.loadFailed`)),S(L,{size:`small`,onClick:()=>i.retryExpand(s)},()=>o(`common.retry`))]):c.length?tt(s,c,u,n,r,a):$e()};return{getTableColumns:e=>e.map(e=>e.type===`selection`&&a.enableSelection?{type:`selection`,disabled:e=>!n.isRowCheckable(e),multiple:!a.maxSelection||a.maxSelection>1}:e.type===`expand`&&(a.onLoadData||a.renderContent)?{type:`expand`,expandable:n.isRowExpandable,renderExpand:s}:e)}};function rt(e){let t=Ke(e),n=qe(e),r=Je(t,n,e),i=Ye(t,n,e),a=Ze(t,n,Xe(t,e),e),o=nt(t,n,a,r,e);return F(n.data,()=>{!e.enableSelection||t.checkedKeys.value.length===0||i.handleSelectionChange(t.checkedKeys.value)}),e.defaultExpandedKeys?.length&&w(async()=>{let i=e.defaultExpandedKeys||[];if(i.length===0)return;let a=i.map(async e=>{let i=n.findRow(e);i&&!t.expandDataMap.value.has(e)&&await r.loadData(i)});await Promise.allSettled(a)}),{expandedKeys:t.expandedKeys,checkedKeys:t.checkedKeys,childSelections:t.childSelections,selectedRowsCount:i.selectedRowsCount,totalChildSelections:a.totalChildSelections,expandAll:r.expandAll,collapseAll:r.collapseAll,expandRow:async e=>{if(t.expandedKeys.value.includes(e)&&!t.loadingMap.value.get(e))return;let i=n.findRow(e);i&&await r.handleRowExpand(i,!0)},handleExpandChange:r.handleExpandChange,selectAll:i.selectAll,clearSelection:i.clearSelection,clearAllSelections:a.clearAllSelections,handleSelectionChange:i.handleSelectionChange,getTableColumns:o.getTableColumns,expandDataMap:t.expandDataMap,loadingMap:t.loadingMap,errorMap:t.errorMap,retryExpand:r.retryExpand,invalidateExpand:r.invalidateExpand}}const it={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},at={scale:1,quality:.92,format:`png`,backgroundColor:`#ffffff`,logging:!1,allowTaint:!0,useCORS:!0},ot={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 st(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 ct(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 lt(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 X(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 ut(e,t){let n=e.getContext(`2d`);if(!n)return e;let r={...it,...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:st,corner:ct,diagonal:lt,repeat:X};return(o[r.position]||o.repeat)(n,i,a,r),n.restore(),e}async function dt(e,t={}){if(typeof window>`u`)throw Error(`截图功能仅支持浏览器环境`);let n={...at,...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 ft(e,t=`png`,n=.92){let r=`image/${t}`;return t===`png`?e.toDataURL(r):e.toDataURL(r,n)}function pt(e,t=`screenshot-${new Date().toISOString().slice(0,10)}.png`,n=`png`){let r=ft(e,n),i=document.createElement(`a`);i.download=t,i.href=r,document.body.appendChild(i),i.click(),document.body.removeChild(i)}async function Z(e,t={}){if(typeof window>`u`)throw Error(`打印功能仅支持浏览器环境`);let n={...ot,...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 mt(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 ht(e,t,n){return e.length?{orientation:t.orientation||`vertical`,spacing:t.spacing||20,backgroundColor:t.backgroundColor||`#ffffff`}:(n.warning(`没有要打印的元素`),null)}async function gt(e,t,n,r){let{orientation:i,spacing:a,backgroundColor:o}=n;r(10);let s=await Promise.all(e.map(e=>dt(e,t.capture)));r(50);let{totalWidth:c,totalHeight:l}=mt(s,i,a);return r(60),Q(s,{orientation:i,spacing:a,backgroundColor:o,totalWidth:c,totalHeight:l})}async function _t(e,t,n,r,i){r(70),t.watermark&&ut(e,t.watermark),r(90),await Z(ft(e,t.capture?.format,t.capture?.quality),t.print),r(100),i.success(`合并打印完成,共合并 ${n} 个元素`)}function vt(){let e=t(),n=k(!1),r=k(0),i=e=>{r.value=Math.max(0,Math.min(100,e))},a=async(e,t={})=>{try{i(0),i(30);let n=await dt(e,t.capture);i(60),t.watermark&&ut(n,t.watermark),i(90);let r=ft(n,t.capture?.format||`png`,t.capture?.quality||.92);return i(100),r}catch(e){throw Error(`截图失败: ${e instanceof Error?e.message:`未知错误`}`)}},o=async(t,r={})=>{n.value=!0,i(0);try{await w();let n=await a(t,r);i(95),await Z(n,r.print),i(100),e.success(`打印完成`)}catch(t){throw e.error(`打印失败: ${t instanceof Error?t.message:`未知错误`}`,t),t}finally{n.value=!1,i(0)}},s=async(t,r,i={})=>{n.value=!0;try{await w();let n=await dt(t,i.capture);i.watermark&&ut(n,i.watermark);let a=i.capture?.format||`png`,o=`screenshot-${new Date().toISOString().slice(0,19).replace(/:/g,`-`)}.${a}`;pt(n,r||o,a),e.success(`下载完成`)}catch(t){throw e.error(`下载失败`,t),t}finally{n.value=!1}},c=async(e,t=`Robot Admin`)=>o(e,{watermark:{text:t,position:`repeat`,textColor:`rgba(128, 128, 128, 0.3)`}}),l=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)},u=async(e,t={})=>{await e.reduce(async(n,r,i)=>{await n,await Z(r,t),i<e.length-1&&await new Promise(e=>{setTimeout(()=>e(),1e3)})},Promise.resolve())};return{loading:n,progress:r,captureWithWatermark:a,printWithWatermark:o,downloadScreenshot:s,quickPrint:c,batchCapture:l,batchPrint:async(t,r={})=>{if(!t.length){e.warning(`没有要打印的元素`);return}n.value=!0;try{i(0);let n=await l(t,r);i(80),await u(n,r.print),i(100),e.success(`批量打印完成,共 ${t.length} 个元素`)}catch(t){throw e.error(`批量打印失败`,t),t}finally{n.value=!1,i(0)}},mergePrint:async(t,r={},a={})=>{let o=ht(t,a,e);if(o){n.value=!0;try{await _t(await gt(t,r,o,i),r,t.length,i,e)}catch(t){throw e.error(`合并打印失败`,t),t}finally{n.value=!1,i(0)}}},createPreset:(e,t)=>({use:e=>o(e,t),download:(e,n)=>s(e,n,t)}),updateProgress:i,utils:{captureElement:dt,drawWatermark:ut,canvasToDataURL:ft,downloadCanvas:pt,printImage:Z}}}const yt={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 bt(){return typeof crypto<`u`&&typeof crypto.randomUUID==`function`?`row_${crypto.randomUUID()}`:`row_${Date.now()}_${Math.random().toString(36).substr(2,9)}`}function xt(e,t){return typeof t==`function`?t(e):e[t]}function St(e,t){let n=c(e?.()||{}),r=typeof t==`string`?t:`id`;return{...n,[r]:bt()}}function Ct(r,i={}){let a={enabled:!0,rowKey:`id`,enableRadioSelection:!0,enableAdd:!0,enableInsert:!0,enableDelete:!0,enableCopy:!0,enableMove:!0,enablePrint:!0,confirmDelete:!0,deleteConfirmText:``,printPreset:`table`,printTargetSelector:`.c-table-wrapper`,defaultRowData:()=>({})},o=ie({...a,...N(i)});F(()=>N(i),e=>{let t=o;Object.keys(t).forEach(e=>delete t[e]),Object.assign(t,a,e)},{deep:!0});let s=t(()=>o.feedback),{t:l}=e(()=>o.locale),d=`c-table-radio-${bt()}`,f=k(null),p=k(!1),m=u(()=>f.value===null?null:r.value.find(e=>xt(e,o.rowKey)===f.value)||null),h=u(()=>m.value?r.value.findIndex(e=>e===m.value):-1),g=u(()=>h.value>0),_=u(()=>h.value>=0&&h.value<r.value.length-1),{loading:v,progress:y,printWithWatermark:b,downloadScreenshot:C,quickPrint:ee}=vt(),te=()=>{if(o.printOptions)return o.printOptions;let e=yt[o.printPreset||`table`];return o.printWatermarkText&&e.watermark?{...e,watermark:{...e.watermark,text:o.printWatermarkText}}:e},w=e=>{o.onRowChange?.(e)},T=e=>{let t=xt(e,o.rowKey);return t!=null&&t!==``&&!r.value.some(e=>xt(e,o.rowKey)===t)?!0:(s.warning(l(`table.invalidRowKeys`,{count:1})),!1)},E=()=>{if(!o.enabled||!o.enableAdd)return;let e=St(o.defaultRowData,o.rowKey);T(e)&&(w([...r.value,e]),o.onRowAdd?.(e),s.success(l(`table.addRowSuccess`)))},ne=()=>{if(!o.enabled||!o.enableInsert||!m.value){s.warning(l(`table.selectRowFirst`));return}let e=St(o.defaultRowData,o.rowKey);if(!T(e))return;let t=[...r.value];t.splice(h.value+1,0,e),w(t),o.onRowAdd?.(e),s.success(l(`table.insertRowSuccess`))},re=()=>{if(!o.enabled||!o.enableDelete||!m.value){s.warning(l(`table.selectDeleteRowFirst`));return}o.confirmDelete?p.value=!0:O()},O=()=>{if(!m.value)return;let e=m.value,t=h.value;w(r.value.filter((e,n)=>n!==t)),f.value=null,o.onSelectionChange?.(null,null),o.onRowDelete?.(e,t),s.success(l(`table.deleteRowSuccess`)),p.value=!1},ae=()=>{if(!o.enabled||!o.enableCopy||!m.value){s.warning(l(`table.selectCopyRowFirst`));return}let e=m.value,t=typeof o.rowKey==`string`?o.rowKey:`id`,{[t]:n,...i}=c(e),a={...i,[t]:bt()};T(a)&&(w([...r.value,a]),o.onRowCopy?.(e,a),s.success(l(`table.copyRowSuccess`)))},oe=()=>{if(!o.enabled||!o.enableMove||!g.value)return;let e=h.value,t=[...r.value],n=t[e];[t[e],t[e-1]]=[t[e-1],t[e]],w(t),o.onRowMove?.(n,e,e-1),s.success(l(`table.moveUpSuccess`))},A=()=>{if(!o.enabled||!o.enableMove||!_.value)return;let e=h.value,t=[...r.value],n=t[e];[t[e],t[e+1]]=[t[e+1],t[e]],w(t),o.onRowMove?.(n,e,e+1),s.success(l(`table.moveDownSuccess`))},se=e=>{if(!o.enabled)return;let t=r.value.find(t=>xt(t,o.rowKey)===e);t&&(f.value=e,o.onSelectionChange?.(e,t))},M=()=>{f.value=null,o.onSelectionChange?.(null,null)},P=async e=>{if(!e.value){s.error(l(`table.printTargetMissing`));return}let t=te();await b(e.value,t)};return x()&&D(()=>{f.value=null,p.value=!1}),{selectedRowKey:f,selectedRowData:m,selectedRowIndex:h,canMoveUp:g,canMoveDown:_,deleteConfirmVisible:p,printLoading:v,printProgress:y,addRow:E,insertRow:ne,deleteRow:re,confirmDelete:O,copyRow:ae,moveRowUp:oe,moveRowDown:A,selectRow:se,clearSelection:M,handlePrint:P,handleDownload:async(e,t)=>{if(!e.value){s.error(l(`table.downloadTargetMissing`));return}let n=te();await C(e.value,t,n)},handleQuickPrint:async e=>{if(!e.value){s.error(l(`table.printTargetMissing`));return}let t=o.printWatermarkText||`Robot Admin`;await ee(e.value,t)},enhanceColumns:e=>{if(!o.enabled)return e;let t=[...e];return o.enabled&&o.enableRadioSelection&&t.unshift({key:`_radio_selection`,title:l(`common.select`),width:80,align:`center`,editable:!1,render:e=>{let t=xt(e,o.rowKey);return S(`div`,{class:`flex justify-center`},[S(`input`,{type:`radio`,name:d,"aria-label":l(`common.select`),checked:f.value===t,class:`cursor-pointer accent-blue-500 scale-110`,onChange:e=>{e.target.checked&&se(t)}})])}}),t},renderToolbar:e=>{if(!o.enabled)return null;let t=[];o.enablePrint&&t.push(S(L,{loading:v.value,type:`primary`,ghost:!0,onClick:async()=>{try{let t=e??document.querySelector(o.printTargetSelector);t?await P(j(t)):s.warning(l(`table.printTargetMissing`))}catch(e){s.error(l(`table.printTargetMissing`),e)}}},{icon:()=>S(n,{name:`mdi:printer`,title:l(`common.print`)}),default:()=>l(`common.print`)}));let r=[];return o.enableAdd&&r.push(S(L,{onClick:E,type:`primary`},{icon:()=>S(n,{name:`mdi:plus`,title:l(`table.addRow`)}),default:()=>l(`table.addRow`)})),o.enableInsert&&r.push(S(V,{disabled:!!m.value},{trigger:()=>S(L,{onClick:ne,disabled:!m.value,type:`primary`,ghost:!0},{icon:()=>S(n,{name:`mdi:table-row-plus-after`,title:l(`table.insertRow`)}),default:()=>l(`table.insertRow`)}),default:()=>l(`table.selectRowFirst`)})),o.enableDelete&&r.push(S(V,{disabled:!!m.value},{trigger:()=>S(L,{onClick:re,disabled:!m.value,type:`error`,ghost:!0},{icon:()=>S(n,{name:`mdi:delete`,title:l(`table.deleteRow`)}),default:()=>l(`table.deleteRow`)}),default:()=>l(`table.selectDeleteRowFirst`)})),o.enableCopy&&r.push(S(V,{disabled:!!m.value},{trigger:()=>S(L,{onClick:ae,disabled:!m.value,type:`info`,ghost:!0},{icon:()=>S(n,{name:`mdi:content-copy`,title:l(`table.copyRow`)}),default:()=>l(`table.copyRow`)}),default:()=>l(`table.selectCopyRowFirst`)})),o.enableMove&&r.push(S(V,{disabled:g.value},{trigger:()=>S(L,{onClick:oe,disabled:!g.value,type:`warning`,ghost:!0},{icon:()=>S(n,{name:`mdi:arrow-up`,title:l(`table.moveUp`)}),default:()=>l(`table.moveUp`)}),default:()=>m.value?l(`table.firstRow`):l(`table.selectRowFirst`)}),S(V,{disabled:_.value},{trigger:()=>S(L,{onClick:A,disabled:!_.value,type:`warning`,ghost:!0},{icon:()=>S(n,{name:`mdi:arrow-down`,title:l(`table.moveDown`)}),default:()=>l(`table.moveDown`)}),default:()=>m.value?l(`table.lastRow`):l(`table.selectRowFirst`)})),r.length>0&&t.push(S(ce,{},()=>r)),S(`div`,{class:`dynamic-rows-toolbar mb-4 flex justify-end`},[S(_e,{},()=>t)])},renderConfirmModal:()=>S(me,{show:p.value,"onUpdate:show":e=>{p.value=e},preset:`dialog`,title:l(`table.deleteTitle`),content:o.deleteConfirmText||l(`table.deleteRowContent`),positiveText:l(`table.confirmDeleteRow`),negativeText:l(`common.cancel`),onPositiveClick:O})}}function wt(n){let{data:r,rowKey:i,emit:a}=n,o=()=>N(n.config),s=()=>o().treeEnabled?o().treeChildrenKey??`children`:void 0,c=u(()=>J(r(),s())),l=()=>c.value,d=t(()=>o().feedback),{t:f}=e(()=>o().locale),p={onSave:async(e,t,n,l)=>{let u=r(),d=l??i(e),f=c.value.find(e=>i(e)===d);if(!f)return;let p=c.value.indexOf(f),m={...f,...e};try{if(await o().onEditSave?.(m,p,n),await a(`save`,m,p,n),r()!==u||c.value.find(e=>i(e)===d)!==f)return;a(`update:data`,Ve(r(),f,m,s()))}catch(e){throw o().onEditError?.(e),a(`edit-error`,e),e}},onCancel:async(e,t)=>{try{await o().onEditCancel?.(e,t),await a(`cancel`,e,t)}catch(e){throw o().onEditError?.(e),a(`edit-error`,e),e}},onExpandChange:(e,t,n)=>{a(`expand-change`,e,t,n)},onSelectionChange:(e,t,n)=>{a(`selection-change`,e,t,n)},onChildSelectionChange:(e,t,n)=>{a(`child-selection-change`,e,t,n)},onRowChange:e=>{a(`update:data`,e),o().dynamicRows?.onRowChange?.(e)},onRowSelectionChange:(e,t)=>{a(`row-selection-change`,e,t),o().dynamicRows?.onSelectionChange?.(e,t)},onRowAdd:e=>{a(`row-add`,e),o().dynamicRows?.onRowAdd?.(e)},onRowDelete:(e,t)=>{a(`row-delete`,e,t),o().dynamicRows?.onRowDelete?.(e,t)},onRowCopy:(e,t)=>{a(`row-copy`,e,t),o().dynamicRows?.onRowCopy?.(e,t)},onRowMove:(e,t,n)=>{a(`row-move`,e,t,n),o().dynamicRows?.onRowMove?.(e,t,n)}},m=()=>({rowEdit:ze({data:l,rowKey:i,onSave:(e,t,n)=>p.onSave(e,t,void 0,n),onCancel:p.onCancel,columns:n.columns}),cellEdit:Be({data:l,rowKey:i,onSave:p.onSave,columns:n.columns}),modalEdit:q({data:l,rowKey:i,onSave:(e,t,n)=>p.onSave(e,t,void 0,n),onCancel:p.onCancel})}),h=()=>rt({data:u(()=>r()),rowKey:i,get childrenKey(){return s()},childRowKey:e=>e.id,get locale(){return o().locale},renderLoading:n.renderLoading,get defaultExpandedKeys(){return o().defaultExpandedKeys},get onLoadData(){return o().onLoadExpandData},onError:(e,t)=>{let n=o().onExpandError;n?n(e,t):d.error(f(`table.loadFailed`),e)},get renderContent(){return o().renderExpandContent},get rowExpandable(){return o().rowExpandable},get enableSelection(){return o().enableSelection},get defaultCheckedKeys(){return o().defaultCheckedKeys},get rowCheckable(){return o().rowCheckable},get maxSelection(){return o().maxSelection},get enableChildSelection(){return o().enableChildSelection},get childRowCheckable(){return o().childRowCheckable},get enableParentChildLink(){return o().enableParentChildLink},get parentChildLinkMode(){return o().parentChildLinkMode},onExpandChange:p.onExpandChange,onSelectionChange:p.onSelectionChange,onChildSelectionChange:p.onChildSelectionChange}),g=()=>Ct(u(()=>r()),u(()=>({...o().dynamicRows,rowKey:o().dynamicRows?.rowKey??N(n.rowKeyField)??i,enabled:!!o().dynamicRows,feedback:o().feedback,locale:o().locale,onRowChange:p.onRowChange,onSelectionChange:p.onRowSelectionChange,onRowAdd:p.onRowAdd,onRowDelete:p.onRowDelete,onRowCopy:p.onRowCopy,onRowMove:p.onRowMove}))),_=m(),v=h(),y=g();return{editStates:_,expandState:v,dynamicRowsState:y,stateManager:{edit:{start(e,t){let n=o().editMode;n===`modal`?_.modalEdit.startEdit(e):n===`cell`&&t?_.cellEdit.startEditCell(e,t):(n===`row`||n===`both`)&&_.rowEdit.startEditRow(e)},cancel(){_.modalEdit.isModalVisible.value?_.modalEdit.cancelEdit():_.cellEdit.editingCell.value.rowKey===null?_.rowEdit.editingRowKey.value!==null&&_.rowEdit.cancelEditRow():_.cellEdit.cancelEditCell()},async save(){_.modalEdit.isModalVisible.value?await _.modalEdit.saveEdit():_.cellEdit.editingCell.value.rowKey===null?_.rowEdit.editingRowKey.value!==null&&await _.rowEdit.saveEditRow():await _.cellEdit.saveEditCell()},isEditing(e,t){return o().editMode===`modal`?_.modalEdit.isEditingRow(e):t?_.cellEdit.isEditingCell(e,t):_.rowEdit.isEditingRow(e)},getEditingData(){return _.modalEdit.isModalVisible.value?_.modalEdit.editingData.value:_.rowEdit.editingRowKey.value===null?null:_.rowEdit.getEditingRowData(_.rowEdit.editingRowKey.value)}},expand:{async row(e){if(v){let t=[...v.expandedKeys.value];t.includes(e)||(t.push(e),v.handleExpandChange(t))}},collapse(e){if(v){let t=v.expandedKeys.value.filter(t=>t!==e);v.handleExpandChange(t)}},async toggle(e){v?.expandedKeys.value.includes(e)?this.collapse(e):await this.row(e)},async all(){await v?.expandAll()},collapseAll(){v?.collapseAll()},isExpanded(e){return v?.expandedKeys.value.includes(e)??!1}},selection:{select(e){if(v?.checkedKeys.value&&!v.checkedKeys.value.includes(e)){let t=[...v.checkedKeys.value,e];v.handleSelectionChange(t)}},unselect(e){if(v?.checkedKeys.value){let t=v.checkedKeys.value.filter(t=>t!==e);v.handleSelectionChange(t)}},all(){v?.selectAll()},clear(){v?.clearSelection()},isSelected(e){return v?.checkedKeys.value.includes(e)??!1},getSelected(){if(!v?.checkedKeys.value)return[];let e=new Set(v.checkedKeys.value);return c.value.filter(t=>e.has(i(t)))}},childSelection:{select(e,t){if(v?.childSelections.value){let n=v.childSelections.value.get(e)||[];if(!n.includes(t)){let r=[...n,t];v.childSelections.value.set(e,r),a(`child-selection-change`,e,r,[])}}},unselect(e,t){if(v?.childSelections.value){let n=(v.childSelections.value.get(e)||[]).filter(e=>e!==t);v.childSelections.value.set(e,n),a(`child-selection-change`,e,n,[])}},selectAll(e){if(v?.childSelections.value&&v.expandDataMap?.value){let t=v.expandDataMap.value.get(e)||[],n=t.map(e=>e.id);v.childSelections.value.set(e,n),a(`child-selection-change`,e,n,t)}},clear(e){v?.childSelections.value&&(v.childSelections.value.set(e,[]),a(`child-selection-change`,e,[],[]))},getSelected(e){if(!v?.childSelections.value||!v.expandDataMap?.value)return[];let t=v.childSelections.value.get(e)||[];return(v.expandDataMap.value.get(e)||[]).filter(e=>t.includes(e.id))}},dynamicRows:{add(){y?.addRow()},insert(){y?.insertRow()},delete(){y?.deleteRow()},copy(){y?.copyRow()},moveUp(){y?.moveRowUp()},moveDown(){y?.moveRowDown()},clearSelection(){y?.clearSelection()},getSelected(){return y?.selectedRowData.value||null},async print(e){y&&e&&await y.handlePrint(j(e))},async download(e,t){y&&e&&await y.handleDownload(j(e),t)}},clearAllSelections(){v?.clearAllSelections()}},expandedKeys:u(()=>v?.expandedKeys.value??[]),checkedKeys:u(()=>v?.checkedKeys.value??[]),eventHandlers:p}}const $={page:1,pageSize:10,showSizePicker:!0,showQuickJumper:!0,pageSizes:[10,20,50,100],simple:!1,size:`medium`};function Tt(e,t){return!Number.isFinite(e)||(e??0)<=0?t:Math.max(1,Math.trunc(e))}function Et(e){let{data:t,config:n,emit:r}=e,i=k($.page),a=k($.pageSize),o=u(()=>{let e=typeof t==`function`?t():P(t);return Array.isArray(e)?e:[]}),s=u(()=>{let e=n.value;return e?.remote?Math.max(0,Math.trunc(e.total??o.value.length)):o.value.length}),c=()=>n.value?.enabled?Math.max(1,Math.ceil(s.value/a.value)):1,l=(e,t)=>{let n=Math.min(Tt(e,1),c());i.value!==n&&(i.value=n,t&&r?.(`pagination-change`,n,a.value))},d=e=>l(e,!0),f=e=>{let t=Tt(e,$.pageSize),n=a.value!==t;a.value=t,i.value=1,n&&r?.(`pagination-change`,1,t)},p=()=>l(1,!0),m=u(()=>{let e=n.value;if(!e?.enabled||e.remote)return o.value;let t=(i.value-1)*a.value;return o.value.slice(t,t+a.value)}),h=u(()=>{let e=n.value;return e?.enabled?{page:i.value,pageSize:a.value,itemCount:s.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 F(()=>[n.value?.page,n.value?.pageSize],([e,t])=>{a.value=Tt(t,$.pageSize),i.value=Math.min(Tt(e,$.page),c())},{immediate:!0}),F([s,a],()=>{let e=Math.min(i.value,c());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:c}}function Dt(e){return e.flatMap(e=>e.visible===!1?[]:`children`in e&&Array.isArray(e.children)?Dt(e.children):`type`in e&&e.type?[]:[e])}function Ot(e,t){return e==null?t==null?0:-1:t==null?1:typeof e==`number`&&typeof t==`number`?e-t:typeof e==`string`&&typeof t==`string`?e.localeCompare(t):0}function kt(e,t,n){let{sorter:r}=e;return typeof r==`function`?r(t,n):r&&typeof r==`object`&&typeof r.compare==`function`?r.compare(t,n):r===`default`||typeof r==`object`&&r.compare===`default`?Ot(t[e.key],n[e.key]):0}function At(e,t,n){let r=Array.isArray(t)?t:[t];if(t==null||r.length===0)return!0;let{filter:i}=e,a=t=>t==null?!0:typeof i==`function`?i(t,n):i===`default`?String(n[e.key]).includes(String(t)):!0;return e.filterMode===`and`?r.every(a):r.some(a)}function jt(e,t){return e.filterOptionValues===void 0?e.filterOptionValue===void 0?Object.prototype.hasOwnProperty.call(t,e.key)?t[e.key]:e.defaultFilterOptionValues??e.defaultFilterOptionValue:e.filterOptionValue:e.filterOptionValues}function Mt(e){let t=j(),n=j({}),r=u(()=>Dt(N(e.columns))),i=u(()=>r.value.flatMap(e=>{if(e.filter!==`default`&&typeof e.filter!=`function`)return[];let t=jt(e,n.value);return t==null||Array.isArray(t)&&t.length===0?[]:[{column:e,value:t}]})),a=u(()=>{let t=N(e.data);if(N(e.remote))return t;let n=i.value;return n.length?t.filter(e=>n.every(({column:t,value:n})=>At(t,n,e))):t}),o=u(()=>{let e=r.value.filter(e=>e.sortOrder===!1||e.sortOrder===`ascend`||e.sortOrder===`descend`);return e.length?e.map(e=>({columnKey:e.key,order:e.sortOrder})):t.value===void 0?r.value.map(e=>({columnKey:e.key,order:e.defaultSortOrder})):t.value?Array.isArray(t.value)?t.value:[t.value]:[]});return{processedData:u(()=>{if(N(e.remote))return N(e.data);let t=o.value.flatMap(e=>{let t=r.value.find(t=>t.key===e.columnKey);if(!t?.sorter||!e.order)return[];let n=typeof t.sorter==`object`?t.sorter.multiple??0:0;return[{column:t,direction:e.order===`ascend`?1:-1,priority:n}]}).sort((e,t)=>t.priority-e.priority);return t.length?a.value.slice().sort((e,n)=>{for(let r of t){let t=kt(r.column,e,n)*r.direction;if(t)return t}return 0}):a.value}),setSorter:e=>{t.value=e},setFilters:e=>{n.value={...e}}}}const Nt=e=>e&&typeof e==`object`&&`error`in e?e.error:null;function Pt(r){let{actions:i,config:o,tableManager:s,rowKey:c,onRowDeleted:l,onViewDetail:u,isDeleteFeedbackHandled:d}=r,f=a(),p=!0;x()&&D(()=>{p=!1});let m=(e,t)=>JSON.stringify([typeof e,e,t]),h=t(()=>o.value.feedback),{t:g}=e(()=>o.value.locale),_=e=>e===`edit`?o.value.editable&&i.value?.edit!==!1:typeof i.value?.[e]==`function`,v=e=>e!==!1&&typeof e==`function`,y=e=>e&&typeof e==`object`&&`data`in e?e.data:e,b=(e,t,r=`primary`,i,a,o=!1)=>S(L,{size:`small`,type:r,quaternary:!0,onClick:i,loading:o||(a?f.isRunning(a):!1),disabled:a?f.isRunning(a):!1},()=>[S(n,{name:e,size:14,title:t})]),C=async(e,t)=>{let n=c(e),r=i.value?.edit;if(v(r)){try{await r(e,t)}catch(e){h.error(g(`table.actionFailed`,{action:g(`common.edit`)}),e)}return}o.value.editMode===`modal`?s.editStates.modalEdit.startEdit(n,{...e}):s.editStates.rowEdit.startEditRow(n)},ee=(e,t)=>{p&&!t&&h.error(g(`table.deleteFailed`),e)},te=async(e,t,n)=>{let r=d?.(e)===!0;try{let i=await e(t,n);if(!p)return;let a=Nt(i);if(a!=null){ee(a,r);return}r||h.success(g(`table.deleteSuccess`)),l?.(t,n)}catch(e){throw ee(e,r),e}},w=async(e,t)=>{let n=i.value?.delete;v(n)&&await h.confirm({title:g(`table.deleteTitle`),content:g(`table.deleteContent`),positiveText:g(`common.confirm`),negativeText:g(`common.cancel`),type:`warning`})&&p&&await te(n,e,t)},T=async(e,t)=>{let n=i.value?.detail;if(!v(n)){u?.(e);return}try{let r=await n(e,t);if(!p)return;let i=y(r);u?.(i||e)}catch(t){if(!p)return;h.error(g(`table.detailFailed`),t),u?.(e)}},E=(e,t)=>f.run(m(c(e),`edit`),()=>C(e,t)),ne=(e,t)=>f.run(m(c(e),`delete`),()=>w(e,t)),re=(e,t)=>f.run(m(c(e),`detail`),()=>T(e,t)),O=e=>s.editStates.rowEdit.isEditingRow(e)?[b(`mdi:check`,g(`common.save`),`primary`,()=>void f.run(m(e,`save`),()=>s.editStates.rowEdit.saveEditRow()).catch(e=>h.error(g(`table.actionFailed`,{action:g(`common.save`)}),e)),m(e,`save`)),b(`mdi:close`,g(`common.cancel`),`default`,()=>void f.run(m(e,`cancel`),()=>s.editStates.rowEdit.cancelEditRow()).catch(e=>h.error(g(`table.actionFailed`,{action:g(`common.cancel`)}),e)),m(e,`cancel`))]:[b(`mdi:pencil`,g(`common.edit`),`warning`,()=>s.editStates.rowEdit.startEditRow(e))],ie=(e,t)=>{let n=[];return _(`detail`)&&n.push(b(`mdi:eye`,g(`common.detail`),`info`,()=>void re(e,t),m(c(e),`detail`))),_(`edit`)&&(o.value.editMode===`modal`||v(i.value?.edit))&&n.push(b(`mdi:pencil`,g(`common.edit`),`warning`,()=>void E(e,t),m(c(e),`edit`))),_(`delete`)&&n.push(b(`mdi:delete`,g(`common.delete`),`error`,()=>void ne(e,t).catch(()=>void 0),m(c(e),`delete`))),n},k=(e,t)=>{let r=i.value?.custom;if(!r?.length)return null;let a=r.filter(n=>n.show?n.show(e,t):!0);return a.length?S(fe,{options:a.map(r=>{let i=typeof r.label==`function`?r.label(e,t):r.label,a=typeof r.icon==`function`?r.icon(e,t):r.icon;return{label:i,key:r.key,icon:()=>S(n,{name:a,size:14}),disabled:r.disabled?.(e,t)||f.isRunning(m(c(e),`custom:${r.key}`))}}),onSelect:n=>{let r=a.find(e=>e.key===n);if(!r)return;let i=typeof r.label==`function`?r.label(e,t):r.label;f.run(m(c(e),`custom:${r.key}`),()=>r.onClick(e,t),()=>!r.disabled?.(e,t)).catch(e=>h.error(g(`table.actionFailed`,{action:i}),e))}},()=>b(`mdi:dots-horizontal`,g(`table.moreActions`),`default`,()=>{},void 0,a.some(t=>f.isRunning(m(c(e),`custom:${t.key}`))))):null};return{renderActions:(e,t)=>{if(i.value?.render)return i.value.render(e,t);let n=c(e),r=o.value.editable&&[`row`,`both`].includes(o.value.editMode);if(r&&s.editStates.rowEdit.isEditingRow(n))return S(_e,{size:2,wrap:!1},()=>O(n));let a=v(i.value?.edit),l=[...r&&!a?O(n):[],...ie(e,t)],u=k(e,t);return u&&l.push(u),S(_e,{size:2,wrap:!1},()=>l)},isActionEnabled:_}}const Ft=Symbol(`C_TABLE_GLOBAL_CONFIG`),It={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 Lt(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 Rt(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 zt={date:(e,t)=>Lt(e,t.format??`YYYY-MM-DD`),datetime:(e,t)=>Lt(e,t.format??`YYYY-MM-DD HH:mm:ss`),currency:(e,t)=>{let n=Rt(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)=>Rt(e,t.precision??0)};function Bt(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&&zt[n.type];return i?i(e,{...{...It,...r}[n.type],...n.config}):String(e??`-`)}function Vt(){return b()?C(Ft,{}):{}}const Ht=(e,t)=>t===void 0?e:t&&e&&typeof t==`object`&&typeof e==`object`&&!Array.isArray(t)&&!Array.isArray(e)?{...e,...t}:t;function Ut(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=Ht(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 Wt=v(()=>import(`./date-picker.js`)),Gt={number:pe,switch:ve,input:z,email:z,mobile:z,date:e=>S(Wt,{...e,type:`date`,format:`yyyy-MM-dd`}),select:e=>S(ge,{...e,options:e.options||[]}),textarea:e=>S(z,{...e,type:`textarea`,rows:3})},Kt={number:`inputNumber`,date:`datePicker`,textarea:`textarea`,select:`select`,switch:`switch`},qt=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:Kt[e.editType||`input`]||`input`,placeholder:`请输入${e.title}`,rules:t,attrs:e.editProps||{},layout:{span:1},show:!0}});function Jt(e,t,n,r={},i=0){if(e.editRender)return e.editRender(t,r,i,{onUpdate:n});let a=e,o={value:t,"onUpdate:value":n,placeholder:`请输入${a.title??``}`,style:{width:`100%`},...e.editProps};return S(Gt[e.editType||`input`]||Gt.input,o)}function Yt(e,t,n,r,i){return e.render?e.render(t,n)??String(r??``):e.formatter?Bt(r,t,e.formatter,i):String(r??``)}function Xt(e,t,r,i,a,o={rowData:{},rowIndex:0}){let s=(e,t,r)=>S(`button`,{class:`cell-action-btn cell-action-${e}`,title:t,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),r(e)}},[S(n,{name:`mdi:${e===`save`?`check`:`close`}`,title:e===`save`?`保存`:`取消`,size:12})]);return S(`div`,{class:`cell-editing-container`},[S(`div`,{class:`cell-editing-input`},[Jt(e,t,r,o.rowData,o.rowIndex)]),S(`div`,{class:`cell-editing-actions`},[s(`save`,`保存`,i),s(`cancel`,`取消`,a)])])}function Zt(e,t,r,i,a,o){let s;return s=e.render?e.render(t,r)??String(i??``):e.formatter?Bt(i,t,e.formatter,o):String(i??``),S(`div`,{class:`cell-edit-wrapper`},[S(`span`,{class:`cell-value`},s),S(n,{name:`mdi:square-edit-outline`,title:`编辑`,class:`cell-edit-icon`,size:14,clickable:!0,onClick:e=>{e.stopPropagation(),a()}})])}function Qt(e){let{rawColumns:t,config:n,columnWidth:r,rowKey:i,tableManager:a,actionsRenderer:o,editModeChecker:s,showActionsColumn:c}=e,l=k([]),d=k(!1),f=e=>{let t=l.value.find(e=>e.key===`_actions`),n=e.filter(e=>e.key!==`_actions`);l.value=c.value?[...n,t||{key:`_actions`,title:`操作`,width:180,editable:!1,visible:!0,fixed:`right`}]:n};F([t,c],([e])=>{e?.length?f(e):l.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)?Xt(e,l(i,o),e=>u(i,o,e),()=>d(),()=>f(),{rowData:t,rowIndex:r}):Zt(e,t,r,s,()=>p(i,o),n.value.formatterConfig)},m=(e,t,r)=>{let o=e.key??``,c=t[o],l=i(t),u=s.value;if(u.isNonEditable(e))return Yt(e,t,r,c,n.value.formatterConfig);if(u.isRowEditMode()&&a.editStates.rowEdit.isEditingRow(l)){let n=a.editStates.rowEdit.getEditingRowData(l);return Jt(e,n?.[o],e=>a.editStates.rowEdit.updateEditingRowData(l,o,e),n??t,r)}return u.isCellEditMode()?p(e,t,r,l):Yt(e,t,r,c,n.value.formatterConfig)},h=e=>{let t=e.width||r||180;return typeof t==`number`?t:180},g=e=>{let t=e;return{key:`_index`,title:t.title||`序号`,width:typeof(t.width||50)==`number`&&t.width||50,titleAlign:`center`,align:`center`,render:(e,t)=>t+1,fixed:e.fixed}},_=e=>{let t=e,n={...t,width:h(e),titleAlign:t.titleAlign||`center`,align:t.align||`center`,render:(t,n)=>m(e,t,n)};return e.fixed&&(n.fixed=e.fixed),e.resizable&&typeof n.width==`number`&&(n.resizable=!0,n.minWidth=e.minWidth||80,n.maxWidth=e.maxWidth||500),n};return{reactiveColumns:l,showSettingsPanel:d,computedColumns:u(()=>{let e=l.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)),c.value){let t=l.value.find(e=>e.key===`_actions`);e.push({key:`_actions`,title:`操作`,width:t?.width??180,className:`c-table-actions-column`,align:`center`,titleAlign:`center`,render:o,fixed:t?.fixed})}return e}),computedScrollX:u(()=>{if(e.scrollX!==void 0)return e.scrollX;if(l.value.some(e=>{let t=e;return t.fixed&&t.visible!==!1}))return l.value.filter(e=>e.visible!==!1).reduce((e,t)=>e+h(t),0)+200}),handleColumnChange:e=>{l.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 $t(e){let{data:t,onReorder:n,onSort:r}=e,i=k(!1),a=null,o=0,s=!1,c=()=>{a?.destroy(),a=null,i.value=!1},l=async l=>{let u=++o;c();let d=N(e.config);if(!(!d?.enabled||!l||s))try{let{default:e}=await import(`sortablejs`);if(s||u!==o)return;let c=l.querySelector(`.n-data-table-tbody`);if(!c)return;a=new e(c,{animation:d.animationDuration??150,handle:d.handleSelector,ghostClass:d.ghostClass??`row-drag-ghost`,chosenClass:d.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{}},u=()=>{o+=1,c()};return ne(()=>{s=!0,u()}),{initRowDrag:l,destroyRowDrag:u,isDragging:i}}function en(e){let t=k(new Set),n=se(new Map),r=()=>N(e.config)?.enabled===!0,i=(t=e.allData.value)=>J(t,N(e.childrenKey)),a=t=>e.rowCheckable?.(t)!==!1,o=()=>{let t=N(e.config)?.maxSelection;return Number.isFinite(t)&&(t??0)>0?Math.trunc(t):void 0},s=u(()=>t.value.size),c=()=>[...t.value].flatMap(e=>{let t=n.get(e);return t?[t]:[]}),l=e=>{let t=o(),n=new Set;for(let r of e){if(t&&n.size>=t)break;n.add(r)}return n},d=(r,i=[])=>{let a=l(r);for(let t of i){let r=e.rowKey(t);a.has(r)&&n.set(r,t)}for(let e of n.keys())a.has(e)||n.delete(e);let o=t.value;o.size===a.size&&[...o].every(e=>a.has(e))||(t.value=a,e.onSelectionChange?.([...a],c()))},f=n=>i(n).map(e.rowKey).filter(e=>t.value.has(e)),p=(n,o)=>{if(!r())return;let s=i(o),c=new Set(s.filter(a).map(e.rowKey)),l=new Set(t.value);s.forEach(t=>l.delete(e.rowKey(t))),n.forEach(e=>{c.has(e)&&l.add(e)}),d(l,s)},m=()=>{if(!r())return;let n=i().filter(a),o=n.map(e.rowKey);d(N(e.remote)?[...t.value,...o]:o,n)},h=n=>{if(!r())return!1;if(t.value.has(n))return!0;let s=i().find(t=>e.rowKey(t)===n&&a(t));if(!s)return!1;let c=o();return c&&t.value.size>=c?!1:(d([...t.value,n],[s]),!0)},g=e=>{if(!t.value.has(e))return;let n=new Set(t.value);n.delete(e),d(n)},_=()=>d([]);return F(e.allData,a=>{if(!r()||t.value.size===0)return;let o=i(a);if(N(e.remote)){for(let r of o){let i=e.rowKey(r);t.value.has(i)&&n.set(i,r)}return}let s=new Set(o.map(e.rowKey));d([...t.value].filter(e=>s.has(e)),o)}),F(()=>[r(),o()],([e])=>{e?d(t.value):_()}),{selectedKeys:t,selectedCount:s,getPageCheckedKeys:f,handlePageSelectionChange:p,selectAll:m,select:h,unselect:g,clearAll:_,getSelectedRows:c,isSelected:e=>t.value.has(e)}}function tn(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 nn(e,t,n){let r=e[t.key];return t.formatter?Bt(r,e,t.formatter,n):r==null?``:typeof r==`boolean`?r?`是`:`否`:String(r)}function rn(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 an(e){return[...e||`export`].map(e=>e.charCodeAt(0)<32||`<>:"/\\|?*`.includes(e)?`_`:e).join(``).trim()||`export`}function on(e,t,n){let r=n.csvSeparator??`,`,i=n.preventFormulaInjection!==!1,a=tn(t,n.columnKeys),o=[];n.includeHeader!==!1&&o.push(a.map(e=>rn(e.title??``,r,i)).join(r));for(let t of e){let e=a.map(e=>rn(nn(t,e,n.formatterConfig),r,i));o.push(e.join(r))}cn(new Blob([``+o.join(`
3
+ `)],{type:`text/csv;charset=utf-8;`}),`${an(n.filename)}.csv`)}async function sn(e,t,n){let r=tn(t,n.columnKeys),i;try{i=await import(`xlsx`)}catch(r){n.onFallback?.(`xlsx`,`csv`,r),on(e,t,{...n,format:`csv`});return}let a=r.map(e=>e.title??e.key??``),o=e.map(e=>r.map(t=>nn(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,`${an(n.filename)}.xlsx`)}function cn(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 ln(e,t,n={}){n.format===`xlsx`?await sn(e,t,n):on(e,t,n)}const un=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}],dn=[`_actions`],fn=[`selection`,`expand`],pn=e=>dn.includes(e.key)||fn.includes(e.type),mn=e=>typeof e==`string`||typeof e==`number`&&Number.isFinite(e),hn=e=>typeof e==`number`&&Number.isFinite(e)&&e>=0||typeof e==`string`&&e.trim().length>0&&e.length<=128,gn=e=>e.map(e=>({...e})),_n=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 mn(n.key)?[{key:n.key,order:t,...typeof n.visible==`boolean`&&{visible:n.visible},...hn(n.width)&&{width:n.width},...(n.fixed===`left`||n.fixed===`right`)&&{fixed:n.fixed}}]:[]}):[]},vn=(e,t)=>{let n=new Map(_n(t).map(e=>[e.key,e]));return gn(e).map(e=>{let t=mn(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=mn(e.key)?n.get(e.key)?.order:void 0,i=mn(t.key)?n.get(t.key)?.order:void 0;return(r??1/0)-(i??1/0)})},yn=e=>JSON.stringify(e.filter(e=>mn(e.key)).map(e=>({key:e.key,visible:e.visible,width:e.width,fixed:e.fixed}))),bn={class:`column-management-tab`},xn={class:`search-row`},Sn={class:`resizable-control`},Cn={class:`top-actions-bar`},wn={class:`stats-info`},Tn={class:`quick-actions`},En=[`draggable`,`onDragstart`,`onDragover`,`onDrop`],Dn={class:`column-info`},On={class:`column-controls`},kn={class:`column-details`},An={class:`column-actions`},jn={class:`drag-controls`};var Mn=r(y({name:`ColumnSettings`,__name:`index`,props:{columns:{},persistKey:{}},emits:[`change`],setup(e,{emit:t}){let r=e,i=t,a=e=>{if(!r.persistKey)return gn(e);try{let t=localStorage.getItem(`c_table_cols_${r.persistKey}`);return t?vn(e,t):gn(e)}catch{return gn(e)}},o=e=>{if(r.persistKey)try{localStorage.setItem(`c_table_cols_${r.persistKey}`,yn(e))}catch{}},s=k(a(r.columns)),c=k(``),h=k(),v=k(null),y=k(null),b=k(!1);re(()=>{b.value=s.value.some(e=>e.resizable===!0),r.persistKey&&i(`change`,[...s.value])}),F(()=>r.columns,e=>{s.value=a(e),b.value=s.value.some(e=>e.resizable===!0)},{deep:!0});let x=u(()=>{if(!c.value)return s.value;let e=c.value.toLowerCase();return s.value.filter(t=>String(t.title??``).toLowerCase().includes(e)||String(t.key??``).toLowerCase().includes(e))}),S=u(()=>s.value.filter(e=>e.visible!==!1).length),C=u(()=>s.value.length),ee=e=>{s.value.forEach(t=>{t.key!==`_actions`&&(t.visible=e)}),A()},te=()=>ee(!0),w=()=>ee(!1),ne=e=>{let t=x.value[e];return s.value.findIndex(e=>e.key===t.key)},D=(e,t)=>{let n=ne(e);n!==-1&&(t(s.value[n]),A())},ie=(e,t)=>{D(e,e=>{e.visible=t})},oe=(e,t)=>{D(e,e=>{e.fixed=t===`none`?void 0:t})},A=()=>{o(s.value),i(`change`,[...s.value])},se=()=>{s.value=gn(r.columns),A()},j=e=>{s.value.forEach(t=>{pn(t)||(t.resizable=e,e&&(t.minWidth=t.minWidth||80,t.maxWidth=t.maxWidth||500))}),A()},N=(e,t)=>{let n=ne(e),r=ne(t);if(n!==-1&&r!==-1){let[e]=s.value.splice(n,1);s.value.splice(r,0,e),A()}},ce=(e,t)=>{if(x.value[e].key===`_actions`){t.preventDefault();return}v.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`)},le=(e,t)=>{t.preventDefault(),!(v.value===null||x.value[e].key===`_actions`)&&(y.value=e,t.dataTransfer&&(t.dataTransfer.dropEffect=`move`))},ue=e=>{v.value===null||x.value[e].key===`_actions`||(N(v.value,e),v.value=null,y.value=null)},de=()=>{v.value=null,y.value=null};return(e,t)=>(O(),p(`div`,bn,[f(` 搜索框和列宽调整开关 `),m(`div`,xn,[_(P(z),{value:c.value,"onUpdate:value":t[0]||=e=>c.value=e,placeholder:`搜索列名...`,clearable:``,class:`search-input`},{prefix:I(()=>[_(n,{name:`mdi:magnify`})]),_:1},8,[`value`]),m(`div`,Sn,[_(n,{name:`mdi:arrow-split-vertical`,size:`14`,title:b.value?`开启后可拖拽列边界调整宽度`:`允许调整列宽`},null,8,[`title`]),_(P(be),{style:{fontSize:`12px`,marginLeft:`4px`}},{default:I(()=>[...t[2]||=[g(` 列宽调整 `,-1)]]),_:1}),_(P(ve),{value:b.value,"onUpdate:value":[t[1]||=e=>b.value=e,j],size:`small`,style:{"margin-left":`6px`}},null,8,[`value`])])]),f(` 顶部操作栏:统计信息和快捷操作按钮 `),m(`div`,Cn,[m(`div`,wn,[_(P(be),{depth:`3`,style:{fontSize:`13px`}},{default:I(()=>[g(` 已选 `+M(S.value)+` / 总共 `+M(C.value)+` 列 `,1)]),_:1})]),m(`div`,Tn,[_(P(_e),{size:6},{default:I(()=>[_(P(L),{size:`tiny`,onClick:te},{default:I(()=>[...t[3]||=[g(` 全选 `,-1)]]),_:1}),_(P(L),{size:`tiny`,onClick:w},{default:I(()=>[...t[4]||=[g(` 全不选 `,-1)]]),_:1}),_(P(L),{size:`tiny`,onClick:se},{default:I(()=>[...t[5]||=[g(` 重置 `,-1)]]),_:1})]),_:1})])]),f(` 列列表 `),m(`div`,{ref_key:`listRef`,ref:h,class:`column-list`},[(O(!0),p(l,null,ae(x.value,(e,r)=>(O(),p(`div`,{key:e.key,class:T([`column-item`,{disabled:e.key===`_actions`,"fixed-left":e.fixed===`left`,"fixed-right":e.fixed===`right`}]),draggable:e.key!==`_actions`,onDragstart:e=>ce(r,e),onDragover:e=>le(r,e),onDragend:de,onDrop:e=>ue(r)},[m(`div`,Dn,[m(`div`,On,[_(n,{name:`mdi:drag`,size:`16`,class:T([`drag-handle`,{disabled:e.key===`_actions`}])},null,8,[`class`]),_(P(R),{checked:e.visible!==!1,disabled:e.key===`_actions`,"onUpdate:checked":e=>ie(r,e)},null,8,[`checked`,`disabled`,`onUpdate:checked`])]),m(`div`,kn,[_(P(_e),{align:`center`,size:6},{default:I(()=>[_(P(be),{strong:``,style:{fontSize:`13px`}},{default:I(()=>[g(M(e.title||e.key),1)]),_:2},1024),e.fixed===`left`?(O(),d(P(ye),{key:0,size:`tiny`,type:`info`},{default:I(()=>[...t[6]||=[g(` 左固定 `,-1)]]),_:1})):f(`v-if`,!0),e.fixed===`right`?(O(),d(P(ye),{key:1,size:`tiny`,type:`warning`},{default:I(()=>[...t[7]||=[g(` 右固定 `,-1)]]),_:1})):f(`v-if`,!0)]),_:2},1024),_(P(be),{depth:`3`,style:{fontSize:`11px`}},{default:I(()=>[g(M(e.key),1)]),_:2},1024)])]),m(`div`,An,[m(`div`,jn,[_(n,{name:`mdi:chevron-up`,size:`14`,title:`上移`,clickable:r!==0,class:T({disabled:r===0}),onClick:e=>r!==0&&N(r,r-1)},null,8,[`clickable`,`class`,`onClick`]),_(n,{name:`mdi:chevron-down`,size:`14`,title:`下移`,clickable:r!==x.value.length-1,class:T({disabled:r===x.value.length-1}),onClick:e=>r!==x.value.length-1&&N(r,r+1)},null,8,[`clickable`,`class`,`onClick`])]),_(P(fe),{options:P(un)(e),onSelect:e=>oe(r,e)},{default:I(()=>[_(n,{name:`mdi:pin`,size:`14`,title:`固定列`,clickable:``,style:E({color:e.fixed?`var(--n-primary-color)`:void 0})},null,8,[`style`])]),_:2},1032,[`options`,`onSelect`])])],42,En))),128))],512)]))}}),[[`__scopeId`,`data-v-92119048`]]);const Nn=[`aria-busy`],Pn={key:1,class:`table-toolbar`},Fn={class:`toolbar-left`},In={class:`toolbar-right`},Ln={key:2,class:`batch-actions-bar`},Rn={class:`batch-info`},zn={key:3,class:`table-error-state`},Bn={class:`error-content`},Vn={class:`error-message`};var Hn=r(y({name:`C_Table`,inheritAttrs:!1,__name:`index`,props:{wrapperClass:{},flexHeight:{type:Boolean},columns:{},data:{},loading:{},rowKey:{type:[String,Function],default:`id`},config:{default:()=>({})},pagination:{type:[Object,Boolean],default:void 0},remote:{type:Boolean,default:void 0},crud:{}},emits:[`pagination-change`,`row-delete`,`batch-action-error`,`row-key-error`,`expand-change`,`selection-change`,`child-selection-change`,`parent-child-link-change`,`update:data`,`save`,`cancel`,`edit-error`,`row-add`,`row-copy`,`row-move`,`row-selection-change`,`view-detail`,`column-change`],setup(r,{expose:y,emit:b}){let x=v(()=>import(`./C_Form.js`).then(e=>e.C_Form)),C=r,E=b,D=k(null),ie=(e,...t)=>{if(E(e,...t),C.crud)return{save:C.crud.save,cancel:C.crud.handleCancel,"pagination-change":C.crud.handlePaginationChange,"row-delete":C.crud.handleRowDelete,"view-detail":C.crud.detail?.show}[e]?.(...t)},se=Vt(),j=e=>typeof C.rowKey==`function`?C.rowKey(e):e[C.rowKey],N=u(()=>{let e=C.config||{};if(C.crud){let t={};C.crud.actions&&(t.actions=C.crud.actions.value),C.crud.pagination&&(t.pagination=C.crud.pagination.value??void 0),e={...t,...e}}return Ut(e,se)}),ce=u(()=>C.columns??C.crud?.columns.value??[]),R=u(()=>Pe(N.value)),fe=t(()=>R.value.feedback),{t:z}=e(()=>R.value.locale),pe=u(()=>Fe(R.value)),ge=e=>e&&typeof e==`object`&&`value`in e?e.value:e,B=u(()=>ge(C.data)??C.crud?.data.value??[]),ve=u(()=>ge(C.loading)??C.crud?.loading.value??!1),ye=u(()=>R.value.treeEnabled&&R.value.treeDefaultExpandAll?Ge(B.value,R.value.treeChildrenKey,j):[]),be=u(()=>({...R.value,defaultExpandedKeys:[...new Set([...R.value.defaultExpandedKeys??[],...ye.value])]})),V=``;F(()=>N.value.validateRowKeys===!1?[]:B.value.map(e=>{try{return j(e)}catch{return}}),()=>{if(N.value.validateRowKeys===!1){V=``;return}let e=We(B.value,j);if(e.length===0){V=``;return}let t=e.map(e=>[e.type,e.index,e.firstIndex,String(e.key)].join(`:`)).join(`|`);t!==V&&(V=t,fe.warning(z(`table.invalidRowKeys`,{count:e.length})),E(`row-key-error`,e))},{immediate:!0});let H=u(()=>C.pagination!==void 0),xe=u(()=>C.remote??R.value.pagination?.remote??!1),Se=k((e=>{if(!e)return 10;if(e.defaultPageSize!==void 0)return e.defaultPageSize;let t=e.pageSizes?.[0];return typeof t==`number`?t:t?.value||10})(C.pagination)),Ce=k(C.pagination?C.pagination.defaultPage??1:1),we=e=>{Ce.value=e},Te=e=>{Se.value=e},U=wt({config:be,data:()=>B.value,rowKey:j,rowKeyField:()=>typeof C.rowKey==`string`?C.rowKey:void 0,emit:ie,columns:()=>ce.value,renderLoading:()=>S(i,{size:32,label:z(`table.loading`)})}),Ee=new Set;F(ye,e=>{if(!R.value.treeEnabled||!R.value.treeDefaultExpandAll){Ee.clear();return}let t=e.filter(e=>!Ee.has(e));e.forEach(e=>Ee.add(e));let n=U.expandedKeys.value,r=t.filter(e=>!n.includes(e));r.length&&U.expandState?.handleExpandChange([...n,...r])},{immediate:!0});let De=Pt({actions:u(()=>N.value.actions||{}),config:R,tableManager:U,rowKey:j,onRowDeleted:(e,t)=>E(`row-delete`,e,t),isDeleteFeedbackHandled:e=>C.crud?.actions?.value.delete===e,onViewDetail:e=>ie(`view-detail`,e)}),Oe=u(()=>{let{actions:e}=N.value;return!!(R.value.showRowActions||e?.delete||e?.detail||e?.custom?.length||e?.render)}),ke=Qt({rawColumns:ce,config:R,columnWidth:R.value.columnWidth,scrollX:R.value.scrollX,rowKey:j,tableManager:U,actionsRenderer:De.renderActions,editModeChecker:pe,showActionsColumn:Oe}),{showSettingsPanel:Ae,reactiveColumns:je,computedColumns:Me,computedScrollX:Ne}=ke,Ie=Mt({data:B,columns:je,remote:()=>H.value||R.value.pagination?.remote===!0}),Le=Mt({data:B,columns:je,remote:xe}),W=Et({data:Ie.processedData,config:u(()=>H.value?null:R.value.pagination),emit:ie}),G=u(()=>{if(H.value){let e=D.value?.getCurrentPageData?.();if(e)return e;let t=Le.processedData.value;if(!C.pagination||xe.value)return t;let n=C.pagination.pageSize??Se.value,r=Math.max(1,Math.min(C.pagination.page??Ce.value,Math.ceil(t.length/Math.max(1,n))));return t.slice((r-1)*n,r*n)}return W.paginatedData.value}),Re=e=>{Ie.setSorter(e),Le.setSorter(e)},ze=e=>{Ie.setFilters(e),Le.setFilters(e),!H.value&&!R.value.pagination?.remote&&W.resetToFirstPage()},K,Be=$t({data:G,rowKey:j,config:u(()=>R.value.rowDrag),onReorder:e=>{let t=new Map(B.value.map((e,t)=>[j(e),t]));if(K=G.value.map(e=>t.get(j(e))),H.value?xe.value:R.value.pagination?.remote===!0){ie(`update:data`,e);return}let n=[...B.value];K.forEach((t,r)=>{t!==void 0&&(n[t]=e[r])}),ie(`update:data`,n)},onSort:(e,t,n)=>{let r=K?.[t]??t,i=K?.[n]??n;K=void 0,E(`row-move`,e,r,i)}}),q=en({allData:B,rowKey:j,config:u(()=>R.value.crossPageSelection),remote:()=>H.value?xe.value:R.value.pagination?.remote===!0,childrenKey:()=>R.value.treeEnabled?R.value.treeChildrenKey:void 0,rowCheckable:e=>R.value.rowCheckable?.(e)??!0,onSelectionChange:(e,t)=>E(`selection-change`,e,t,new Map)}),J=u(()=>R.value.crossPageSelection?.enabled===!0),Ve=u(()=>J.value?q.selectedCount.value:U.checkedKeys?.value?.length??0),He=a(),Ue=async e=>{if(He.isRunning(e.key))return;let t=J.value?[...q.selectedKeys.value]:U.checkedKeys?.value??[],n=new Set(t),r=J.value?q.getSelectedRows():B.value.filter(e=>n.has(j(e)));try{if(!(await He.run(e.key,()=>e.onClick(t,r))).executed)return;R.value.batchActions?.clearSelectionOnSuccess&&Ke()}catch(t){R.value.batchActions?.onError?.(t,e.key),E(`batch-action-error`,t,e.key)}},Ke=()=>{J.value?q.clearAll():U.stateManager.selection.clear()},qe=u(()=>J.value?q.getPageCheckedKeys(G.value):null),Je=e=>{if(J.value){q.handlePageSelectionChange(e,G.value);return}U.expandState?.handleSelectionChange?.(e)},Ye=a(),Xe=async()=>{let e=R.value.exportConfig??{};await Ye.run(`export`,async()=>{let t=()=>J.value?q.getSelectedRows():U.stateManager.selection.getSelected(),n=e.scope===`page`?G.value:B.value;await ln(e.requestData?await e.requestData():e.scope===`selected`?t():n,e.scope&&e.scope!==`source`?je.value:ce.value,{...e,formatterConfig:R.value.formatterConfig})})},Ze=u(()=>R.value.summaryRender),Y=k(),Qe=null,$e=0,et=()=>{$e+=1,Qe?.destroy(),Qe=null},tt=async()=>{let e=++$e;if(Qe?.destroy(),Qe=null,!(!R.value.enableColumnDrag||!Y.value))try{let{default:t}=await import(`sortablejs`);if(e!==$e||!Y.value)return;let n=Y.value.querySelector(`.n-data-table-thead tr`);if(!n)return;Qe=new t(n,{animation:R.value.columnDragAnimationDuration,handle:R.value.columnDragHandleClass?`.${R.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=[...je.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),ke.handleColumnChange(t),E(`column-change`,t)}})}catch{}},nt=u(()=>({striped:R.value.striped,bordered:R.value.bordered,singleLine:R.value.singleLine,size:R.value.size,maxHeight:R.value.maxHeight})),rt=k(),it=k(!1),at=k({}),ot=u({get:()=>U.editStates.modalEdit.isModalVisible.value,set:e=>{U.editStates.modalEdit.isModalVisible.value=e}}),st=u(()=>ce.value.filter(e=>e.editable!==!1)),ct=u(()=>`edit-form-${U.editStates.modalEdit.editingRowKey.value??`new`}`),lt=u(()=>qt(st.value));F(()=>U.editStates.modalEdit.editingData.value,e=>{e&&Object.keys(e).length>0&&(at.value=c(e))},{immediate:!0,deep:!0});let X=null;F(ot,e=>{e&&X&&(clearTimeout(X),X=null),e||(X&&clearTimeout(X),X=setTimeout(()=>{at.value={},X=null},300))});let ut=async()=>{if(!rt.value||it.value)return;let e=U.editStates.modalEdit.editingRowKey.value,t=c(at.value);it.value=!0;try{try{await rt.value.validate()}catch{return}if(e!==U.editStates.modalEdit.editingRowKey.value||!s(t,at.value))return;await U.editStates.modalEdit.saveEdit(t)}finally{it.value=!1}},dt=()=>{at.value={},U.editStates.modalEdit.cancelEdit()},ft=e=>{ke.handleColumnChange(e),E(`column-change`,ke.reactiveColumns.value)},{edit:pt,expand:Z,selection:mt,dynamicRows:Q}=U.stateManager,ht=()=>D.value?.getFilteredAndSortedData?.().length??Le.processedData.value.length,gt={startEdit:pt.start,cancelEdit:pt.cancel,saveEdit:()=>U.editStates.modalEdit.isModalVisible.value?ut():pt.save(),expandRow:Z.row,collapseRow:Z.collapse,toggleExpand:Z.toggle,retryExpand:e=>U.expandState.retryExpand(e),invalidateExpand:e=>U.expandState.invalidateExpand(e),expandAll:Z.all,collapseAll:Z.collapseAll,selectRow:e=>J.value?q.select(e):(mt.select(e),mt.isSelected(e)),unselectRow:e=>{J.value?q.unselect(e):mt.unselect(e)},selectAll:()=>{J.value?q.selectAll():mt.all()},clearSelection:Ke,isRowSelected:e=>J.value?q.isSelected(e):mt.isSelected(e),clearAllSelections:()=>{q.clearAll(),U.stateManager.clearAllSelections()},selectChildRow:U.stateManager.childSelection.select,unselectChildRow:U.stateManager.childSelection.unselect,selectAllChildren:U.stateManager.childSelection.selectAll,clearChildrenSelection:U.stateManager.childSelection.clear,getChildSelectedRows:U.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??Y.value),downloadTableScreenshot:(e,t)=>Q.download(e??Y.value,t),resetToFirstPage:()=>{H.value?(Ce.value=1,D.value?.page(1)):W.resetToFirstPage()},getTotalPages:()=>{if(!H.value)return W.getTotalPages();let e=C.pagination;if(!e)return 1;if(xe.value&&e.itemCount===void 0&&e.pageCount!==void 0)return Math.max(1,e.pageCount);let t=xe.value?e.itemCount??B.value.length:ht(),n=e.pageSize??Se.value;return Math.max(1,Math.ceil(t/Math.max(1,n)))},getSelectedRows:()=>J.value?q.getSelectedRows():mt.getSelected(),getEditingData:pt.getEditingData,isEditing:pt.isEditing,isExpanded:Z.isExpanded,getManager:()=>U.stateManager,exportData:Xe,crossPageSelection:{enabled:J,selectedKeys:q.selectedKeys,selectedCount:q.selectedCount,select:q.select,unselect:q.unselect,selectAll:q.selectAll,clearAll:q.clearAll,getSelectedRows:q.getSelectedRows}};return y(gt),re(()=>{let e=C.crud?.tableRef;e&&(e.value=gt),tt(),Y.value&&Be.initRowDrag(Y.value)}),F([()=>R.value.enableColumnDrag,()=>R.value.columnDragHandleClass,()=>ve.value,()=>Me.value.length],async()=>{await w(),await tt()},{immediate:!0,flush:`post`}),F([()=>R.value.rowDrag,()=>ve.value,()=>G.value.length,()=>W.currentPage.value],async()=>{await w(),Y.value&&await Be.initRowDrag(Y.value)},{immediate:!0,deep:!0,flush:`post`}),ne(()=>{X&&clearTimeout(X),et(),Be.destroyRowDrag()}),(e,t)=>(O(),p(`div`,{ref_key:`tableWrapperRef`,ref:Y,class:T([`c-table-wrapper`,[r.wrapperClass,{"c-table-wrapper--flex":r.flexHeight}]]),"aria-busy":ve.value},[f(` 动态行工具栏 `),R.value.dynamicRows&&P(U).dynamicRowsState?(O(),d(A(P(U).dynamicRowsState.renderToolbar(Y.value)),{key:0})):f(`v-if`,!0),f(` 表格工具栏 `),R.value.showToolbar?(O(),p(`div`,Pn,[m(`div`,Fn,[oe(e.$slots,`toolbar-left`,{},void 0,!0),R.value.toolbarActions.length?(O(),d(o,{key:0,actions:R.value.toolbarActions,config:{...R.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):f(`v-if`,!0)]),m(`div`,In,[oe(e.$slots,`toolbar-right`,{},void 0,!0),R.value.toolbarRightActions.length?(O(),d(o,{key:0,actions:R.value.toolbarRightActions,config:{align:`right`,...R.value.toolbarActionBarConfig}},null,8,[`actions`,`config`])):f(`v-if`,!0),R.value.exportConfig?(O(),d(n,{key:1,name:`mdi:download`,size:`18`,title:P(z)(`table.export`),clickable:``,class:`column-settings-btn`,onClick:t[0]||=e=>Xe()},null,8,[`title`])):f(`v-if`,!0),R.value.enableColumnSettings?(O(),d(n,{key:2,name:`mdi:cog`,size:`18`,title:P(z)(`table.settings`),clickable:``,class:`column-settings-btn`,onClick:t[1]||=e=>Ae.value=!0},null,8,[`title`])):f(`v-if`,!0)])])):f(`v-if`,!0),f(` 批量操作栏 `),R.value.batchActions?.enabled&&Ve.value>0?(O(),p(`div`,Ln,[m(`span`,Rn,M(P(z)(`table.selectedCount`,{count:Ve.value})),1),_(P(_e),{size:8},{default:I(()=>[(O(!0),p(l,null,ae(R.value.batchActions.actions||[],e=>(O(),d(P(L),{key:e.key,type:e.type||`default`,size:`small`,loading:P(He).isRunning(e.key),disabled:P(He).isRunning(e.key),onClick:t=>Ue(e)},h({default:I(()=>[g(` `+M(e.label),1)]),_:2},[e.icon?{name:`icon`,fn:I(()=>[_(n,{name:e.icon,size:`14`},null,8,[`name`])]),key:`0`}:void 0]),1032,[`type`,`loading`,`disabled`,`onClick`]))),128)),_(P(L),{size:`small`,onClick:Ke},{default:I(()=>[g(M(P(z)(`table.cancelSelection`)),1)]),_:1})]),_:1})])):f(`v-if`,!0),f(` 错误状态 `),R.value.error?.show?(O(),p(`div`,zn,[oe(e.$slots,`error`,{error:R.value.error},()=>[m(`div`,Bn,[_(n,{name:`mdi:alert-circle-outline`,size:`48`}),m(`p`,Vn,M(R.value.error.message||P(z)(`table.loadFailed`)),1),R.value.error.onRetry?(O(),d(P(L),{key:0,type:`primary`,size:`small`,onClick:R.value.error.onRetry},{default:I(()=>[g(M(P(z)(`common.retry`)),1)]),_:1},8,[`onClick`])):f(`v-if`,!0)])],!0)])):f(`v-if`,!0),f(` 表格主体 `),R.value.error?.show?f(`v-if`,!0):(O(),d(P(le),te({key:4,ref_key:`tableRef`,ref:D},{...nt.value,...e.$attrs},{"flex-height":r.flexHeight,columns:P(Me),data:H.value?B.value:P(W).paginatedData.value,pagination:H.value?C.pagination:!1,remote:H.value?xe.value:!0,"onUpdate:sorter":Re,"onUpdate:filters":ze,"onUpdate:pageSize":Te,"onUpdate:page":we,loading:ve.value,"row-key":j,"expanded-row-keys":P(U).expandedKeys.value,"checked-row-keys":qe.value??P(U).checkedKeys.value,"onUpdate:expandedRowKeys":P(U).expandState?.handleExpandChange,"onUpdate:checkedRowKeys":Je,"scroll-x":P(Ne),"virtual-scroll":R.value.virtualScroll,"min-row-height":R.value.virtualScroll?R.value.virtualItemHeight:void 0,"max-height":R.value.virtualScroll?R.value.virtualMaxHeight:R.value.maxHeight,summary:Ze.value,"summary-placement":R.value.summaryPosition,"children-key":R.value.treeEnabled?R.value.treeChildrenKey:void 0,indent:R.value.treeEnabled?R.value.treeIndent:void 0,"default-expand-all":R.value.treeEnabled?R.value.treeDefaultExpandAll:void 0,style:{width:`100%`}}),{loading:I(()=>[oe(e.$slots,`loading`,{},()=>[_(P(i),{label:P(z)(`table.loading`)},null,8,[`label`])],!0)]),_:3},16,[`flex-height`,`columns`,`data`,`pagination`,`remote`,`loading`,`expanded-row-keys`,`checked-row-keys`,`onUpdate:expandedRowKeys`,`scroll-x`,`virtual-scroll`,`min-row-height`,`max-height`,`summary`,`summary-placement`,`children-key`,`indent`,`default-expand-all`])),f(` 分页 `),!H.value&&P(W).paginationConfig.value?(O(),d(P(he),te({key:5},P(W).paginationConfig.value,{class:`pagination-wrapper`}),null,16)):f(`v-if`,!0),f(` 编辑弹窗 `),R.value.editMode===`modal`||R.value.editMode===`both`?(O(),d(P(me),{key:6,show:ot.value,"onUpdate:show":t[3]||=e=>ot.value=e,title:R.value.modalTitle,width:R.value.modalWidth,preset:`card`,"mask-closable":!1,"close-on-esc":!1,class:`w60%`,closable:!1},{action:I(()=>[_(P(_e),{justify:`end`},{default:I(()=>[_(P(L),{disabled:it.value,onClick:dt},{default:I(()=>[g(M(P(z)(`common.cancel`)),1)]),_:1},8,[`disabled`]),_(P(L),{type:`primary`,disabled:!rt.value||it.value,loading:it.value,onClick:ut},{default:I(()=>[g(M(P(z)(`common.save`)),1)]),_:1},8,[`disabled`,`loading`])]),_:1})]),default:I(()=>[ot.value&&lt.value.length?(O(),d(P(x),{ref_key:`editFormRef`,ref:rt,key:ct.value,modelValue:at.value,"onUpdate:modelValue":t[2]||=e=>at.value=e,options:lt.value,config:{layout:`grid`,grid:{cols:2,xGap:16,yGap:16},showActions:!1}},null,8,[`modelValue`,`options`])):f(`v-if`,!0)]),_:1},8,[`show`,`title`,`width`])):f(`v-if`,!0),f(` 动态行确认删除弹窗 `),R.value.dynamicRows&&P(U).dynamicRowsState?(O(),d(A(P(U).dynamicRowsState.renderConfirmModal()),{key:7})):f(`v-if`,!0),f(` 列设置抽屉 `),_(P(ue),{show:P(Ae),"onUpdate:show":t[4]||=e=>ee(Ae)?Ae.value=e:null,width:420,placement:`right`,"mask-closable":!0},{default:I(()=>[_(P(de),{title:P(z)(`table.columnSettings`),closable:``},{default:I(()=>[_(Mn,{columns:P(je),"persist-key":R.value.persistKey,onChange:ft},null,8,[`columns`,`persist-key`])]),_:1},8,[`title`])]),_:1},8,[`show`])],10,Nn))}}),[[`__scopeId`,`data-v-28a4fd4b`]]);const Un=(e,t)=>Number.isFinite(e)?Math.max(1,Math.floor(e)):t;function Wn(e){let t=j([]),n=k(!1),r=j(),i=k(0),a=c(e.initialQuery),o=k(Un(e.initialPage,1)),s=k(Un(e.pageSize,20)),l=j(c(a)),d=0,f=null,p=async()=>{let a=++d;f?.abort(),f=new AbortController,n.value=!0,r.value=void 0;try{let n=await e.request({page:o.value,pageSize:s.value,query:c(l.value),signal:f.signal});if(a!==d||f.signal.aborted)return!1;if(!Array.isArray(n.data)||!Number.isFinite(n.total))throw TypeError(`[C_Table] request 必须返回 { data: T[], total: number }`);return t.value=c([...n.data]),i.value=Math.max(0,Math.floor(n.total)),e.onSuccess?.({data:t.value,total:i.value}),!0}catch(t){return a!==d||f.signal.aborted?!1:(r.value=t,e.onError?.(t),!1)}finally{a===d&&(n.value=!1)}},m=async(e,t=!0)=>(l.value=c(typeof e==`function`?e(l.value):{...l.value,...e}),o.value=1,t?p():!0),h=async(e,t)=>(o.value=Un(e,o.value),s.value=Un(t,s.value),p()),g=async(e=!0)=>(l.value=c(a),o.value=1,e?p():!0),_=u(()=>{let r=N(e.config)??{},a=typeof r.pagination==`object`?r.pagination:{};return{data:t.value,loading:n.value,columns:N(e.columns),rowKey:e.rowKey??`id`,config:{...r,pagination:{...a,enabled:!0,remote:!0,page:o.value,pageSize:s.value,total:i.value}}}}),v=u(()=>({..._.value,onPaginationChange:h})),y=()=>{d+=1,f?.abort(),f=null,n.value=!1};return e.immediate!==!1&&re(()=>void p()),D(y),{data:t,loading:n,error:r,total:i,page:o,pageSize:s,query:l,tableProps:_,execute:p,reload:p,setQuery:m,resetQuery:g,handlePaginationChange:h,bindings:v,cancel:y}}export{ze as C,Be as S,Pe as T,rt as _,$t as a,We as b,Bt as c,Pt as d,Et as f,vt as g,yt as h,en as i,Ut as l,Ct as m,Hn as n,Qt as o,wt as p,ln as r,Ft as s,Wn as t,Vt as u,He as v,Fe as w,q as x,Ue as y};
@@ -59,10 +59,10 @@ declare const __VLS_export: vue.DefineComponent<TimeProps, TimeExpose, {}, {}, {
59
59
  "onChange-end"?: ((time: number | null) => any) | undefined;
60
60
  }>, {
61
61
  placeholder: string;
62
- attrs: Record<string, any>;
63
62
  mode: TimeMode;
64
63
  startPlaceholder: string;
65
64
  endPlaceholder: string;
65
+ attrs: Record<string, any>;
66
66
  format: string;
67
67
  useHours: boolean;
68
68
  useMinutes: boolean;
@@ -59,10 +59,10 @@ declare const __VLS_export: vue.DefineComponent<TimeProps, TimeExpose, {}, {}, {
59
59
  "onChange-end"?: ((time: number | null) => any) | undefined;
60
60
  }>, {
61
61
  placeholder: string;
62
- attrs: Record<string, any>;
63
62
  mode: TimeMode;
64
63
  startPlaceholder: string;
65
64
  endPlaceholder: string;
65
+ attrs: Record<string, any>;
66
66
  format: string;
67
67
  useHours: boolean;
68
68
  useMinutes: boolean;
@@ -91,23 +91,23 @@ type __VLS_Slots = {} & {
91
91
  };
92
92
  declare const __VLS_base: vue.DefineComponent<TreeProps, TreeExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
93
93
  add: (parentNode?: TreeNodeData | undefined) => any;
94
+ refresh: () => any;
94
95
  "node-select": (node: TreeNodeData | null, selectedKeys: (string | number)[]) => any;
95
96
  "node-action": (action: string, node: TreeNodeData) => any;
96
97
  "node-drop": (info: DropInfo) => any;
97
- refresh: () => any;
98
98
  }, string, vue.PublicProps, Readonly<TreeProps> & Readonly<{
99
99
  onAdd?: ((parentNode?: TreeNodeData | undefined) => any) | undefined;
100
+ onRefresh?: (() => any) | undefined;
100
101
  "onNode-select"?: ((node: TreeNodeData | null, selectedKeys: (string | number)[]) => any) | undefined;
101
102
  "onNode-action"?: ((action: string, node: TreeNodeData) => any) | undefined;
102
103
  "onNode-drop"?: ((info: DropInfo) => any) | undefined;
103
- onRefresh?: (() => any) | undefined;
104
104
  }>, {
105
+ mode: TreeMode;
105
106
  draggable: boolean;
106
- labelField: string;
107
- childrenField: string;
108
107
  showToolbar: boolean;
109
- mode: TreeMode;
110
108
  keyField: string;
109
+ labelField: string;
110
+ childrenField: string;
111
111
  searchPattern: string;
112
112
  searchable: boolean;
113
113
  searchPlaceholder: string;
@@ -91,23 +91,23 @@ type __VLS_Slots = {} & {
91
91
  };
92
92
  declare const __VLS_base: vue.DefineComponent<TreeProps, TreeExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
93
93
  add: (parentNode?: TreeNodeData | undefined) => any;
94
+ refresh: () => any;
94
95
  "node-select": (node: TreeNodeData | null, selectedKeys: (string | number)[]) => any;
95
96
  "node-action": (action: string, node: TreeNodeData) => any;
96
97
  "node-drop": (info: DropInfo) => any;
97
- refresh: () => any;
98
98
  }, string, vue.PublicProps, Readonly<TreeProps> & Readonly<{
99
99
  onAdd?: ((parentNode?: TreeNodeData | undefined) => any) | undefined;
100
+ onRefresh?: (() => any) | undefined;
100
101
  "onNode-select"?: ((node: TreeNodeData | null, selectedKeys: (string | number)[]) => any) | undefined;
101
102
  "onNode-action"?: ((action: string, node: TreeNodeData) => any) | undefined;
102
103
  "onNode-drop"?: ((info: DropInfo) => any) | undefined;
103
- onRefresh?: (() => any) | undefined;
104
104
  }>, {
105
+ mode: TreeMode;
105
106
  draggable: boolean;
106
- labelField: string;
107
- childrenField: string;
108
107
  showToolbar: boolean;
109
- mode: TreeMode;
110
108
  keyField: string;
109
+ labelField: string;
110
+ childrenField: string;
111
111
  searchPattern: string;
112
112
  searchable: boolean;
113
113
  searchPlaceholder: string;
@@ -240,19 +240,19 @@ declare const __VLS_export: vue.DefineComponent<WorkflowProps, {
240
240
  "update:modelValue": (value: WorkflowData) => any;
241
241
  change: (value: WorkflowData) => any;
242
242
  save: (data: WorkflowData) => any;
243
- "validate-error": (errors: ValidationError[]) => any;
244
243
  "node-click": (node: WorkflowNode) => any;
245
244
  "edge-click": (edge: WorkflowEdge) => any;
245
+ "validate-error": (errors: ValidationError[]) => any;
246
246
  }, string, vue.PublicProps, Readonly<WorkflowProps> & Readonly<{
247
247
  "onUpdate:modelValue"?: ((value: WorkflowData) => any) | undefined;
248
248
  onChange?: ((value: WorkflowData) => any) | undefined;
249
249
  onSave?: ((data: WorkflowData) => any) | undefined;
250
- "onValidate-error"?: ((errors: ValidationError[]) => any) | undefined;
251
250
  "onNode-click"?: ((node: WorkflowNode) => any) | undefined;
252
251
  "onEdge-click"?: ((edge: WorkflowEdge) => any) | undefined;
252
+ "onValidate-error"?: ((errors: ValidationError[]) => any) | undefined;
253
253
  }>, {
254
- theme: "light" | "dark";
255
254
  readonly: boolean;
255
+ theme: "light" | "dark";
256
256
  users: User[];
257
257
  roles: Role[];
258
258
  departments: Department[];
@@ -240,19 +240,19 @@ declare const __VLS_export: vue.DefineComponent<WorkflowProps, {
240
240
  "update:modelValue": (value: WorkflowData) => any;
241
241
  change: (value: WorkflowData) => any;
242
242
  save: (data: WorkflowData) => any;
243
- "validate-error": (errors: ValidationError[]) => any;
244
243
  "node-click": (node: WorkflowNode) => any;
245
244
  "edge-click": (edge: WorkflowEdge) => any;
245
+ "validate-error": (errors: ValidationError[]) => any;
246
246
  }, string, vue.PublicProps, Readonly<WorkflowProps> & Readonly<{
247
247
  "onUpdate:modelValue"?: ((value: WorkflowData) => any) | undefined;
248
248
  onChange?: ((value: WorkflowData) => any) | undefined;
249
249
  onSave?: ((data: WorkflowData) => any) | undefined;
250
- "onValidate-error"?: ((errors: ValidationError[]) => any) | undefined;
251
250
  "onNode-click"?: ((node: WorkflowNode) => any) | undefined;
252
251
  "onEdge-click"?: ((edge: WorkflowEdge) => any) | undefined;
252
+ "onValidate-error"?: ((errors: ValidationError[]) => any) | undefined;
253
253
  }>, {
254
- theme: "light" | "dark";
255
254
  readonly: boolean;
255
+ theme: "light" | "dark";
256
256
  users: User[];
257
257
  roles: Role[];
258
258
  departments: Department[];
@@ -1,4 +1,4 @@
1
- import { i as ComponentLocale, r as ComponentFeedback } from "./config.cjs";
1
+ import { n as ComponentLocale, t as ComponentFeedback } from "./contracts.cjs";
2
2
  import * as vue from "vue";
3
3
 
4
4
  //#region src/components/C_Captcha/types.d.ts
@@ -77,25 +77,25 @@ declare const __VLS_export: vue.DefineComponent<CaptchaProps, {
77
77
  show: () => void;
78
78
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
79
79
  change: (valid: boolean) => any;
80
- success: (data: CaptchaSuccessPayload) => any;
81
80
  reset: () => any;
81
+ success: (data: CaptchaSuccessPayload) => any;
82
82
  fail: (error: string) => any;
83
83
  "verify-error": (error: unknown) => any;
84
84
  "load-error": (error: unknown) => any;
85
85
  "visible-change": (visible: boolean) => any;
86
86
  }, string, vue.PublicProps, Readonly<CaptchaProps> & Readonly<{
87
87
  onChange?: ((valid: boolean) => any) | undefined;
88
- onSuccess?: ((data: CaptchaSuccessPayload) => any) | undefined;
89
88
  onReset?: (() => any) | undefined;
89
+ onSuccess?: ((data: CaptchaSuccessPayload) => any) | undefined;
90
90
  onFail?: ((error: string) => any) | undefined;
91
91
  "onVerify-error"?: ((error: unknown) => any) | undefined;
92
92
  "onLoad-error"?: ((error: unknown) => any) | undefined;
93
93
  "onVisible-change"?: ((visible: boolean) => any) | undefined;
94
94
  }>, {
95
95
  disabled: boolean;
96
- theme: "light" | "dark";
97
96
  provider: CaptchaProvider;
98
97
  images: string[];
98
+ theme: "light" | "dark";
99
99
  verificationTimeout: number;
100
100
  requireServerVerification: boolean;
101
101
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -1,4 +1,4 @@
1
- import { i as ComponentLocale, r as ComponentFeedback } from "./config.js";
1
+ import { n as ComponentLocale, t as ComponentFeedback } from "./contracts.js";
2
2
  import * as vue from "vue";
3
3
 
4
4
  //#region src/components/C_Captcha/types.d.ts
@@ -77,25 +77,25 @@ declare const __VLS_export: vue.DefineComponent<CaptchaProps, {
77
77
  show: () => void;
78
78
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
79
79
  change: (valid: boolean) => any;
80
- success: (data: CaptchaSuccessPayload) => any;
81
80
  reset: () => any;
81
+ success: (data: CaptchaSuccessPayload) => any;
82
82
  fail: (error: string) => any;
83
83
  "verify-error": (error: unknown) => any;
84
84
  "load-error": (error: unknown) => any;
85
85
  "visible-change": (visible: boolean) => any;
86
86
  }, string, vue.PublicProps, Readonly<CaptchaProps> & Readonly<{
87
87
  onChange?: ((valid: boolean) => any) | undefined;
88
- onSuccess?: ((data: CaptchaSuccessPayload) => any) | undefined;
89
88
  onReset?: (() => any) | undefined;
89
+ onSuccess?: ((data: CaptchaSuccessPayload) => any) | undefined;
90
90
  onFail?: ((error: string) => any) | undefined;
91
91
  "onVerify-error"?: ((error: unknown) => any) | undefined;
92
92
  "onLoad-error"?: ((error: unknown) => any) | undefined;
93
93
  "onVisible-change"?: ((visible: boolean) => any) | undefined;
94
94
  }>, {
95
95
  disabled: boolean;
96
- theme: "light" | "dark";
97
96
  provider: CaptchaProvider;
98
97
  images: string[];
98
+ theme: "light" | "dark";
99
99
  verificationTimeout: number;
100
100
  requireServerVerification: boolean;
101
101
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;