@robot-admin/naive-ui-components 0.10.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/CHANGELOG.md +111 -100
  2. package/LICENSE +21 -21
  3. package/README.md +463 -318
  4. package/README_EN.md +404 -0
  5. package/SECURITY.md +23 -0
  6. package/dist/C_ActionBar.cjs +1 -1
  7. package/dist/C_ActionBar.css +46 -48
  8. package/dist/C_ActionBar.d.cts +1 -1
  9. package/dist/C_ActionBar.js +1 -1
  10. package/dist/C_ActionBar2.cjs +1 -0
  11. package/dist/C_ActionBar2.js +1 -2
  12. package/dist/C_AntV.cjs +1 -1
  13. package/dist/C_AntV.css +3 -3
  14. package/dist/C_AntV.d.cts +1 -1
  15. package/dist/C_AntV.js +1 -1
  16. package/dist/C_AntV2.cjs +4 -0
  17. package/dist/C_AntV2.js +3 -4
  18. package/dist/C_AudioPlayer.cjs +1 -1
  19. package/dist/C_AudioPlayer.css +15 -7
  20. package/dist/C_AudioPlayer.d.cts +1 -1
  21. package/dist/C_AudioPlayer.js +1 -1
  22. package/dist/C_AudioPlayer2.cjs +1 -0
  23. package/dist/C_AudioPlayer2.js +1 -2
  24. package/dist/C_AvatarGroup.cjs +1 -1
  25. package/dist/C_AvatarGroup.css +15 -7
  26. package/dist/C_AvatarGroup.d.cts +1 -1
  27. package/dist/C_AvatarGroup2.cjs +1 -0
  28. package/dist/C_AvatarGroup2.js +1 -2
  29. package/dist/C_Barcode.cjs +1 -1
  30. package/dist/C_Barcode.css +0 -2
  31. package/dist/C_Barcode.d.cts +1 -1
  32. package/dist/C_Barcode2.cjs +1 -0
  33. package/dist/C_Barcode2.js +1 -2
  34. package/dist/C_Breadcrumb.cjs +1 -1
  35. package/dist/C_Breadcrumb.css +0 -2
  36. package/dist/C_Breadcrumb.d.cts +2 -2
  37. package/dist/C_Breadcrumb.d.ts +1 -2
  38. package/dist/C_Breadcrumb.js +1 -1
  39. package/dist/C_Breadcrumb2.cjs +1 -0
  40. package/dist/C_Breadcrumb2.js +1 -2
  41. package/dist/C_Captcha.cjs +1 -1
  42. package/dist/C_Captcha.css +46 -21
  43. package/dist/C_Captcha.d.cts +3 -2
  44. package/dist/C_Captcha.d.ts +3 -2
  45. package/dist/C_Captcha.js +1 -1
  46. package/dist/C_Captcha2.cjs +1 -0
  47. package/dist/C_Captcha2.js +1 -2
  48. package/dist/C_Cascade.cjs +1 -1
  49. package/dist/C_Cascade.css +0 -2
  50. package/dist/C_Cascade.d.cts +1 -1
  51. package/dist/C_Cascade.d.ts +1 -1
  52. package/dist/C_Cascade2.cjs +1 -0
  53. package/dist/C_Cascade2.js +1 -2
  54. package/dist/C_Chat.cjs +1 -1
  55. package/dist/C_Chat.css +0 -2
  56. package/dist/C_Chat.d.cts +1 -1
  57. package/dist/C_Chat.d.ts +1 -1
  58. package/dist/C_Chat.js +1 -1
  59. package/dist/C_Chat2.cjs +1 -0
  60. package/dist/C_Chat2.js +1 -2
  61. package/dist/C_City.cjs +1 -1
  62. package/dist/C_City.css +28 -30
  63. package/dist/C_City.d.cts +1 -1
  64. package/dist/C_City.d.ts +1 -1
  65. package/dist/C_City2.cjs +1 -0
  66. package/dist/C_City2.js +1 -2
  67. package/dist/C_Code.cjs +1 -1
  68. package/dist/C_Code.css +241 -4
  69. package/dist/C_Code.d.cts +1 -1
  70. package/dist/C_Code.d.ts +1 -1
  71. package/dist/C_Code.js +1 -1
  72. package/dist/C_Code2.cjs +1 -0
  73. package/dist/C_Code2.js +1 -2
  74. package/dist/C_CollapsePanel.cjs +1 -1
  75. package/dist/C_CollapsePanel.css +12 -6
  76. package/dist/C_CollapsePanel.d.cts +1 -1
  77. package/dist/C_CollapsePanel.js +1 -1
  78. package/dist/C_CollapsePanel2.cjs +1 -0
  79. package/dist/C_CollapsePanel2.js +1 -2
  80. package/dist/C_ContextMenu.cjs +1 -1
  81. package/dist/C_ContextMenu.css +16 -18
  82. package/dist/C_ContextMenu.d.cts +1 -1
  83. package/dist/C_ContextMenu.d.ts +1 -1
  84. package/dist/C_ContextMenu.js +1 -1
  85. package/dist/C_ContextMenu2.cjs +1 -0
  86. package/dist/C_ContextMenu2.js +1 -2
  87. package/dist/C_Cron.cjs +1 -1
  88. package/dist/C_Cron.css +18 -8
  89. package/dist/C_Cron.d.cts +1 -1
  90. package/dist/C_Cron.js +1 -1
  91. package/dist/C_Cron2.cjs +1 -0
  92. package/dist/C_Cron2.js +1 -2
  93. package/dist/C_Date.cjs +1 -1
  94. package/dist/C_Date.css +1 -0
  95. package/dist/C_Date.d.cts +2 -2
  96. package/dist/C_Date.d.ts +2 -2
  97. package/dist/C_Date2.cjs +1 -0
  98. package/dist/C_Date2.js +1 -2
  99. package/dist/C_Draggable.cjs +1 -1
  100. package/dist/C_Draggable.css +9 -5
  101. package/dist/C_Draggable.d.cts +1 -1
  102. package/dist/C_Draggable2.cjs +1 -0
  103. package/dist/C_Draggable2.js +1 -2
  104. package/dist/C_Editor.cjs +1 -1
  105. package/dist/C_Editor.css +80 -67
  106. package/dist/C_Editor.d.cts +1 -1
  107. package/dist/C_Editor.d.ts +1 -1
  108. package/dist/C_Editor2.cjs +1 -0
  109. package/dist/C_Editor2.js +1 -2
  110. package/dist/C_FilePreview.cjs +1 -1
  111. package/dist/C_FilePreview.css +0 -2
  112. package/dist/C_FilePreview.d.cts +1 -1
  113. package/dist/C_FilePreview.js +1 -1
  114. package/dist/C_FilePreview2.cjs +1 -0
  115. package/dist/C_FilePreview2.js +1 -2
  116. package/dist/C_Form.base.css +980 -0
  117. package/dist/C_Form.cjs +1 -1
  118. package/dist/C_Form.css +256 -155
  119. package/dist/C_Form.d.cts +2 -2
  120. package/dist/C_Form.d.ts +2 -2
  121. package/dist/C_Form.js +1 -1
  122. package/dist/C_Form2.cjs +1 -0
  123. package/dist/C_Form2.js +1 -2
  124. package/dist/C_FormSearch.cjs +1 -1
  125. package/dist/C_FormSearch.css +47 -47
  126. package/dist/C_FormSearch.d.cts +2 -2
  127. package/dist/C_FormSearch.d.ts +2 -2
  128. package/dist/C_FormSearch2.cjs +1 -0
  129. package/dist/C_FormSearch2.js +1 -2
  130. package/dist/C_FormulaEditor.cjs +1 -1
  131. package/dist/C_FormulaEditor.css +64 -38
  132. package/dist/C_FormulaEditor.d.cts +1 -1
  133. package/dist/C_FormulaEditor.js +1 -1
  134. package/dist/C_FormulaEditor2.cjs +2 -0
  135. package/dist/C_FormulaEditor2.js +2 -2
  136. package/dist/C_FullCalendar.cjs +1 -1
  137. package/dist/C_FullCalendar.css +0 -2
  138. package/dist/C_FullCalendar.d.cts +1 -1
  139. package/dist/C_FullCalendar2.cjs +1 -0
  140. package/dist/C_FullCalendar2.js +1 -2
  141. package/dist/C_GlobalSearch.cjs +1 -1
  142. package/dist/C_GlobalSearch.css +111 -113
  143. package/dist/C_GlobalSearch.d.cts +1 -1
  144. package/dist/C_GlobalSearch2.cjs +1 -0
  145. package/dist/C_GlobalSearch2.js +1 -2
  146. package/dist/C_Guide.cjs +1 -1
  147. package/dist/C_Guide.css +1 -0
  148. package/dist/C_Guide.d.cts +1 -1
  149. package/dist/C_Guide.d.ts +1 -1
  150. package/dist/C_Guide.js +1 -1
  151. package/dist/C_Guide2.cjs +1 -0
  152. package/dist/C_Guide2.js +1 -2
  153. package/dist/C_Icon.cjs +1 -1
  154. package/dist/C_Icon.css +58 -0
  155. package/dist/C_Icon.d.cts +1 -1
  156. package/dist/C_Icon.d.ts +1 -1
  157. package/dist/C_Icon2.cjs +1 -0
  158. package/dist/C_Icon2.js +1 -2
  159. package/dist/C_ImageCropper.cjs +1 -1
  160. package/dist/C_ImageCropper.css +0 -2
  161. package/dist/C_ImageCropper.d.cts +1 -1
  162. package/dist/C_ImageCropper.js +1 -1
  163. package/dist/C_ImageCropper2.cjs +1 -0
  164. package/dist/C_ImageCropper2.js +1 -2
  165. package/dist/C_Language.cjs +1 -1
  166. package/dist/C_Language.css +1 -0
  167. package/dist/C_Language.d.cts +1 -1
  168. package/dist/C_Language.d.ts +1 -1
  169. package/dist/C_Language.js +1 -1
  170. package/dist/C_Language2.cjs +1 -0
  171. package/dist/C_Language2.js +1 -2
  172. package/dist/C_Login.cjs +1 -1
  173. package/dist/C_Login.css +92 -76
  174. package/dist/C_Login.d.cts +1 -1
  175. package/dist/C_Login.d.ts +1 -1
  176. package/dist/C_Login.js +1 -1
  177. package/dist/C_Login2.cjs +1 -0
  178. package/dist/C_Login2.js +1 -2
  179. package/dist/C_Map.cjs +1 -1
  180. package/dist/C_Map.css +665 -5
  181. package/dist/C_Map.d.cts +1 -1
  182. package/dist/C_Map2.cjs +1 -0
  183. package/dist/C_Map2.js +1 -2
  184. package/dist/C_Markdown.cjs +1 -1
  185. package/dist/C_Markdown.css +940 -35
  186. package/dist/C_Markdown.d.cts +1 -1
  187. package/dist/C_Markdown.d.ts +1 -1
  188. package/dist/C_Markdown2.cjs +1 -0
  189. package/dist/C_Markdown2.js +1 -2
  190. package/dist/C_Menu.cjs +1 -1
  191. package/dist/C_Menu.css +1 -0
  192. package/dist/C_Menu.d.cts +3 -3
  193. package/dist/C_Menu.d.ts +3 -4
  194. package/dist/C_Menu.js +1 -1
  195. package/dist/C_Menu2.cjs +1 -0
  196. package/dist/C_Menu2.js +1 -2
  197. package/dist/C_NotificationCenter.cjs +1 -1
  198. package/dist/C_NotificationCenter.css +95 -47
  199. package/dist/C_NotificationCenter.d.cts +1 -1
  200. package/dist/C_NotificationCenter.js +1 -1
  201. package/dist/C_NotificationCenter2.cjs +1 -0
  202. package/dist/C_NotificationCenter2.js +1 -2
  203. package/dist/C_OrgChart.cjs +1 -1
  204. package/dist/C_OrgChart.css +6 -4
  205. package/dist/C_OrgChart.d.cts +1 -1
  206. package/dist/C_OrgChart.d.ts +1 -1
  207. package/dist/C_OrgChart2.cjs +1 -0
  208. package/dist/C_OrgChart2.js +1 -2
  209. package/dist/C_Progress.cjs +1 -1
  210. package/dist/C_Progress.css +1 -0
  211. package/dist/C_Progress.d.cts +1 -1
  212. package/dist/C_Progress.d.ts +1 -1
  213. package/dist/C_Progress2.cjs +1 -0
  214. package/dist/C_Progress2.js +1 -2
  215. package/dist/C_QRCode.cjs +1 -1
  216. package/dist/C_QRCode.css +8 -10
  217. package/dist/C_QRCode.d.cts +1 -1
  218. package/dist/C_QRCode2.cjs +1 -0
  219. package/dist/C_QRCode2.js +1 -2
  220. package/dist/C_Signature.cjs +1 -1
  221. package/dist/C_Signature.css +0 -2
  222. package/dist/C_Signature.d.cts +1 -1
  223. package/dist/C_Signature.js +1 -1
  224. package/dist/C_Signature2.cjs +1 -0
  225. package/dist/C_Signature2.js +1 -2
  226. package/dist/C_Skeleton.cjs +1 -1
  227. package/dist/C_Skeleton.css +0 -2
  228. package/dist/C_Skeleton.d.cts +1 -1
  229. package/dist/C_Skeleton.d.ts +1 -1
  230. package/dist/C_Skeleton2.cjs +1 -0
  231. package/dist/C_Skeleton2.js +1 -2
  232. package/dist/C_SplitPane.cjs +1 -1
  233. package/dist/C_SplitPane.css +27 -11
  234. package/dist/C_SplitPane.d.cts +1 -1
  235. package/dist/C_SplitPane.js +1 -1
  236. package/dist/C_SplitPane2.cjs +1 -0
  237. package/dist/C_SplitPane2.js +1 -2
  238. package/dist/C_Steps.cjs +1 -1
  239. package/dist/C_Steps.css +37 -39
  240. package/dist/C_Steps.d.cts +1 -1
  241. package/dist/C_Steps.d.ts +1 -1
  242. package/dist/C_Steps2.cjs +1 -0
  243. package/dist/C_Steps2.js +1 -2
  244. package/dist/C_Table.base.css +1588 -0
  245. package/dist/C_Table.cjs +1 -1
  246. package/dist/C_Table.css +1202 -112
  247. package/dist/C_Table.d.cts +2 -2
  248. package/dist/C_Table.d.ts +11 -2
  249. package/dist/C_Table.js +1 -1
  250. package/dist/C_TagsView.cjs +1 -1
  251. package/dist/C_TagsView.css +44 -40
  252. package/dist/C_TagsView.d.cts +2 -2
  253. package/dist/C_TagsView.d.ts +2 -3
  254. package/dist/C_TagsView.js +1 -1
  255. package/dist/C_TagsView2.cjs +1 -0
  256. package/dist/C_TagsView2.js +1 -2
  257. package/dist/C_Theme.cjs +1 -1
  258. package/dist/C_Theme.css +1 -0
  259. package/dist/C_Theme.d.cts +1 -1
  260. package/dist/C_Theme.d.ts +1 -1
  261. package/dist/C_Theme.js +1 -1
  262. package/dist/C_Theme2.cjs +1 -0
  263. package/dist/C_Theme2.js +1 -2
  264. package/dist/C_Time.cjs +1 -1
  265. package/dist/C_Time.css +0 -2
  266. package/dist/C_Time.d.cts +2 -2
  267. package/dist/C_Time.d.ts +2 -2
  268. package/dist/C_Time2.cjs +1 -0
  269. package/dist/C_Time2.js +1 -2
  270. package/dist/C_Timeline.cjs +1 -1
  271. package/dist/C_Timeline.css +44 -46
  272. package/dist/C_Timeline.d.cts +1 -1
  273. package/dist/C_Timeline.js +1 -1
  274. package/dist/C_Timeline2.cjs +1 -0
  275. package/dist/C_Timeline2.js +1 -2
  276. package/dist/C_Transfer.cjs +1 -1
  277. package/dist/C_Transfer.css +21 -9
  278. package/dist/C_Transfer.d.cts +1 -1
  279. package/dist/C_Transfer.js +1 -1
  280. package/dist/C_Transfer2.cjs +1 -0
  281. package/dist/C_Transfer2.js +1 -2
  282. package/dist/C_Tree.cjs +1 -1
  283. package/dist/C_Tree.css +0 -2
  284. package/dist/C_Tree.d.cts +1 -1
  285. package/dist/C_Tree.js +1 -1
  286. package/dist/C_Tree2.cjs +1 -0
  287. package/dist/C_Tree2.js +1 -2
  288. package/dist/C_Upload.cjs +1 -1
  289. package/dist/C_Upload.css +17 -17
  290. package/dist/C_Upload.d.cts +1 -1
  291. package/dist/C_Upload.js +1 -1
  292. package/dist/C_Upload2.cjs +1 -0
  293. package/dist/C_Upload2.js +1 -25
  294. package/dist/C_VideoPlayer.cjs +1 -1
  295. package/dist/C_VideoPlayer.css +35 -24
  296. package/dist/C_VideoPlayer.d.cts +2 -2
  297. package/dist/C_VideoPlayer.d.ts +2 -2
  298. package/dist/C_VideoPlayer.js +1 -1
  299. package/dist/C_VideoPlayer2.cjs +3 -0
  300. package/dist/C_VideoPlayer2.js +3 -4
  301. package/dist/C_VtableGantt.cjs +1 -1
  302. package/dist/C_VtableGantt.css +15 -7
  303. package/dist/C_VtableGantt.d.cts +1 -1
  304. package/dist/C_VtableGantt.d.ts +1 -1
  305. package/dist/C_VtableGantt.js +1 -1
  306. package/dist/C_VtableGantt2.cjs +1 -0
  307. package/dist/C_VtableGantt2.js +1 -2
  308. package/dist/C_WaterFall.cjs +1 -1
  309. package/dist/C_WaterFall.css +15 -17
  310. package/dist/C_WaterFall.d.cts +1 -1
  311. package/dist/C_WaterFall2.cjs +1 -0
  312. package/dist/C_WaterFall2.js +1 -2
  313. package/dist/C_WorkFlow.cjs +1 -1
  314. package/dist/C_WorkFlow.css +257 -197
  315. package/dist/C_WorkFlow.d.cts +1 -1
  316. package/dist/C_WorkFlow.js +1 -1
  317. package/dist/C_WorkFlow2.cjs +1 -0
  318. package/dist/C_WorkFlow2.js +1 -2
  319. package/dist/city.cjs +1 -0
  320. package/dist/city.js +1 -2
  321. package/dist/config.cjs +1 -0
  322. package/dist/config.d.cts +33 -0
  323. package/dist/config.d.ts +33 -0
  324. package/dist/config.js +1 -0
  325. package/dist/constants.d.cts +272 -0
  326. package/dist/constants.d.ts +6 -7
  327. package/dist/constants2.d.cts +177 -0
  328. package/dist/constants2.d.ts +5 -6
  329. package/dist/constants3.d.cts +479 -0
  330. package/dist/constants3.d.ts +17 -13
  331. package/dist/constants4.d.cts +420 -0
  332. package/dist/constants4.d.ts +30 -40
  333. package/dist/constants5.d.cts +491 -0
  334. package/dist/constants5.d.ts +22 -6
  335. package/dist/data.cjs +1 -0
  336. package/dist/data.d.cts +67 -0
  337. package/dist/data.d.ts +13 -13
  338. package/dist/data.js +1 -0
  339. package/dist/export-helper.cjs +1 -0
  340. package/dist/helpers.cjs +1 -0
  341. package/dist/helpers.js +1 -0
  342. package/dist/html.cjs +1 -0
  343. package/dist/html.js +1 -0
  344. package/dist/images/marker-icon-2x.png +0 -0
  345. package/dist/images/marker-icon.png +0 -0
  346. package/dist/images/marker-shadow.png +0 -0
  347. package/dist/index.cjs +1 -2
  348. package/dist/index.d.cts +60 -99
  349. package/dist/index.d.ts +41 -83
  350. package/dist/index.js +1 -2
  351. package/dist/index.vue.d.cts +79 -0
  352. package/dist/index.vue.d.ts +3 -4
  353. package/dist/index10.vue.d.cts +47 -0
  354. package/dist/index10.vue.d.ts +80 -40
  355. package/dist/index11.vue.d.cts +88 -0
  356. package/dist/index11.vue.d.ts +68 -78
  357. package/dist/index12.vue.d.cts +79 -0
  358. package/dist/index12.vue.d.ts +49 -45
  359. package/dist/index13.vue.d.cts +64 -0
  360. package/dist/index13.vue.d.ts +99 -34
  361. package/dist/index14.vue.d.cts +106 -0
  362. package/dist/index14.vue.d.ts +82 -99
  363. package/dist/index15.vue.d.cts +91 -0
  364. package/dist/index15.vue.d.ts +25 -83
  365. package/dist/index16.vue.d.cts +34 -0
  366. package/dist/index16.vue.d.ts +113 -24
  367. package/dist/index17.vue.d.cts +124 -0
  368. package/dist/index17.vue.d.ts +76 -110
  369. package/dist/index18.vue.d.cts +83 -0
  370. package/dist/index18.vue.d.ts +67 -73
  371. package/dist/index19.vue.d.cts +101 -0
  372. package/dist/index19.vue.d.ts +93 -59
  373. package/dist/index2.vue.d.cts +82 -0
  374. package/dist/index2.vue.d.ts +1 -2
  375. package/dist/index20.vue.d.cts +54 -0
  376. package/dist/index20.vue.d.ts +40 -88
  377. package/dist/index21.vue.d.cts +103 -0
  378. package/dist/index21.vue.d.ts +89 -41
  379. package/dist/index22.vue.d.cts +45 -0
  380. package/dist/index22.vue.d.ts +37 -96
  381. package/dist/index23.vue.d.cts +19 -0
  382. package/dist/index23.vue.d.ts +8 -35
  383. package/dist/{index28.vue.d.ts → index24.vue.d.cts} +5 -6
  384. package/dist/index24.vue.d.ts +650 -86
  385. package/dist/index25.vue.d.cts +96 -0
  386. package/dist/index25.vue.d.ts +86 -10
  387. package/dist/index26.vue.d.cts +111 -0
  388. package/dist/index26.vue.d.ts +3 -4
  389. package/dist/index27.vue.d.cts +80 -0
  390. package/dist/index27.vue.d.ts +3 -4
  391. package/dist/index3.vue.d.cts +87 -0
  392. package/dist/index3.vue.d.ts +2 -3
  393. package/dist/index4.vue.d.cts +37 -0
  394. package/dist/index4.vue.d.ts +5 -6
  395. package/dist/index5.vue.d.cts +133 -0
  396. package/dist/index5.vue.d.ts +2 -3
  397. package/dist/index6.vue.d.cts +29 -0
  398. package/dist/index6.vue.d.ts +25 -38
  399. package/dist/index7.vue.d.cts +32 -0
  400. package/dist/index7.vue.d.ts +117 -23
  401. package/dist/index8.vue.d.cts +127 -0
  402. package/dist/index8.vue.d.ts +17 -111
  403. package/dist/index9.vue.d.cts +34 -0
  404. package/dist/index9.vue.d.ts +38 -26
  405. package/dist/{menuAdapter.d.ts → public.d.ts} +2 -3
  406. package/dist/resolver.cjs +1 -2
  407. package/dist/resolver.d.cts +6 -4
  408. package/dist/resolver.d.ts +6 -4
  409. package/dist/resolver.js +1 -2
  410. package/dist/storage.cjs +1 -0
  411. package/dist/storage.js +1 -2
  412. package/dist/style.css +9864 -7702
  413. package/dist/types.d.cts +107 -0
  414. package/dist/types.d.ts +58 -0
  415. package/dist/types2.d.cts +58 -0
  416. package/dist/useCalendarEvents.d.cts +150 -0
  417. package/dist/useCalendarEvents.d.ts +3 -4
  418. package/dist/useCollapsePanel.d.cts +133 -0
  419. package/dist/useCollapsePanel.d.ts +1 -2
  420. package/dist/useCropperCore.d.cts +104 -0
  421. package/dist/useCropperCore.d.ts +12 -10
  422. package/dist/useDraggableLayout.d.cts +196 -0
  423. package/dist/useDraggableLayout.d.ts +18 -16
  424. package/dist/useDynamicFormState.d.cts +749 -0
  425. package/dist/useDynamicFormState.d.ts +234 -112
  426. package/dist/useEdgeInteraction.d.cts +324 -0
  427. package/dist/useEdgeInteraction.d.ts +6 -7
  428. package/dist/useFullscreen.d.cts +165 -0
  429. package/dist/useFullscreen.d.ts +1 -2
  430. package/dist/useGlobalSearch.d.cts +110 -0
  431. package/dist/useGlobalSearch.d.ts +17 -9
  432. package/dist/useInfiniteScroll.d.cts +177 -0
  433. package/dist/useInfiniteScroll.d.ts +11 -3
  434. package/dist/useQRCode.d.cts +89 -0
  435. package/dist/useQRCode.d.ts +7 -5
  436. package/dist/useSearchState.d.cts +871 -0
  437. package/dist/useSearchState.d.ts +828 -28
  438. package/dist/useSignatureHistory.d.cts +197 -0
  439. package/dist/useSignatureHistory.d.ts +9 -4
  440. package/dist/useSplitResize.d.cts +157 -0
  441. package/dist/useSplitResize.d.ts +3 -4
  442. package/dist/useTableQuery.cjs +3 -0
  443. package/dist/{useModalEdit.d.ts → useTableQuery.d.cts} +624 -211
  444. package/dist/useTableQuery.d.ts +1721 -0
  445. package/dist/useTableQuery.js +3 -0
  446. package/dist/useTimeSelection.d.cts +116 -0
  447. package/dist/useTimeSelection.d.ts +19 -8
  448. package/dist/useTreeOperations.d.cts +185 -0
  449. package/dist/useTreeOperations.d.ts +14 -12
  450. package/dist/useWorkflowValidation.d.cts +1051 -0
  451. package/dist/useWorkflowValidation.d.ts +66 -67
  452. package/dist/verification.d.cts +58 -0
  453. package/dist/verification.d.ts +58 -0
  454. package/package.json +101 -69
  455. package/dist/C_ActionBar-BAcfOfRw.css.map +0 -1
  456. package/dist/C_ActionBar-DG2HW7t5.css.map +0 -1
  457. package/dist/C_ActionBar.js.map +0 -1
  458. package/dist/C_ActionBar2.js.map +0 -1
  459. package/dist/C_AntV-D_jTK8oZ.css.map +0 -1
  460. package/dist/C_AntV-DanTAq22.css.map +0 -1
  461. package/dist/C_AntV.js.map +0 -1
  462. package/dist/C_AntV2.js.map +0 -1
  463. package/dist/C_AudioPlayer-BnYIJXPD.css.map +0 -1
  464. package/dist/C_AudioPlayer-ldTy9Y34.css.map +0 -1
  465. package/dist/C_AudioPlayer.js.map +0 -1
  466. package/dist/C_AudioPlayer2.js.map +0 -1
  467. package/dist/C_AvatarGroup-B9d-GJ9c.css.map +0 -1
  468. package/dist/C_AvatarGroup-SIzxuuZr.css.map +0 -1
  469. package/dist/C_AvatarGroup.js.map +0 -1
  470. package/dist/C_AvatarGroup2.js.map +0 -1
  471. package/dist/C_Barcode-CAU2mFcx.css.map +0 -1
  472. package/dist/C_Barcode-D2oJaEg3.css.map +0 -1
  473. package/dist/C_Barcode.js.map +0 -1
  474. package/dist/C_Barcode2.js.map +0 -1
  475. package/dist/C_Breadcrumb-BiH0d9AI.css.map +0 -1
  476. package/dist/C_Breadcrumb-Bqqrl8nX.css.map +0 -1
  477. package/dist/C_Breadcrumb.js.map +0 -1
  478. package/dist/C_Breadcrumb2.js.map +0 -1
  479. package/dist/C_Captcha-B3yrtG7t.css.map +0 -1
  480. package/dist/C_Captcha-D4hDdWDu.css.map +0 -1
  481. package/dist/C_Captcha.js.map +0 -1
  482. package/dist/C_Captcha2.js.map +0 -1
  483. package/dist/C_Cascade-CmCrLVft.css.map +0 -1
  484. package/dist/C_Cascade-U6A5AJJb.css.map +0 -1
  485. package/dist/C_Cascade.js.map +0 -1
  486. package/dist/C_Cascade2.js.map +0 -1
  487. package/dist/C_Chat-CF1SU7mc.css.map +0 -1
  488. package/dist/C_Chat-DeUv6uuI.css.map +0 -1
  489. package/dist/C_Chat.js.map +0 -1
  490. package/dist/C_Chat2.js.map +0 -1
  491. package/dist/C_City-DdkX6u64.css.map +0 -1
  492. package/dist/C_City-iP-dIvui.css.map +0 -1
  493. package/dist/C_City.js.map +0 -1
  494. package/dist/C_City2.js.map +0 -1
  495. package/dist/C_Code-BWmJMNS7.css.map +0 -1
  496. package/dist/C_Code-k14vjgVl.css.map +0 -1
  497. package/dist/C_Code.js.map +0 -1
  498. package/dist/C_Code2.js.map +0 -1
  499. package/dist/C_CollapsePanel-BSKcWSmY.css.map +0 -1
  500. package/dist/C_CollapsePanel-DRvRq8tB.css.map +0 -1
  501. package/dist/C_CollapsePanel.js.map +0 -1
  502. package/dist/C_CollapsePanel2.js.map +0 -1
  503. package/dist/C_ContextMenu-Bn_uhJSo.css.map +0 -1
  504. package/dist/C_ContextMenu-C9iuxG2n.css.map +0 -1
  505. package/dist/C_ContextMenu.js.map +0 -1
  506. package/dist/C_ContextMenu2.js.map +0 -1
  507. package/dist/C_Cron-BIQ2By9v.css.map +0 -1
  508. package/dist/C_Cron-BNSAGD6A.css.map +0 -1
  509. package/dist/C_Cron.js.map +0 -1
  510. package/dist/C_Cron2.js.map +0 -1
  511. package/dist/C_Date.js.map +0 -1
  512. package/dist/C_Date2.js.map +0 -1
  513. package/dist/C_Draggable-BDAbk4s5.css.map +0 -1
  514. package/dist/C_Draggable-UhfDLXop.css.map +0 -1
  515. package/dist/C_Draggable.js.map +0 -1
  516. package/dist/C_Draggable2.js.map +0 -1
  517. package/dist/C_Editor-CZOaChru.css.map +0 -1
  518. package/dist/C_Editor-kJAQq5z6.css.map +0 -1
  519. package/dist/C_Editor.js.map +0 -1
  520. package/dist/C_Editor2.js.map +0 -1
  521. package/dist/C_FilePreview-Bs_omgJS.css.map +0 -1
  522. package/dist/C_FilePreview-DbwoyF2j.css.map +0 -1
  523. package/dist/C_FilePreview.js.map +0 -1
  524. package/dist/C_FilePreview2.js.map +0 -1
  525. package/dist/C_Form-B_2ql62V.css.map +0 -1
  526. package/dist/C_Form-CX-7xsz3.css.map +0 -1
  527. package/dist/C_Form.js.map +0 -1
  528. package/dist/C_Form2.js.map +0 -1
  529. package/dist/C_FormSearch-C3F8peAY.css.map +0 -1
  530. package/dist/C_FormSearch-qW56bJPo.css.map +0 -1
  531. package/dist/C_FormSearch.js.map +0 -1
  532. package/dist/C_FormSearch2.js.map +0 -1
  533. package/dist/C_FormulaEditor-ChOvDbsZ.css.map +0 -1
  534. package/dist/C_FormulaEditor-mfiIUDY4.css.map +0 -1
  535. package/dist/C_FormulaEditor.js.map +0 -1
  536. package/dist/C_FormulaEditor2.js.map +0 -1
  537. package/dist/C_FullCalendar-C2nsqrgS.css.map +0 -1
  538. package/dist/C_FullCalendar-DdFtXVhy.css.map +0 -1
  539. package/dist/C_FullCalendar.js.map +0 -1
  540. package/dist/C_FullCalendar2.js.map +0 -1
  541. package/dist/C_GlobalSearch-Dq4Wo01K.css.map +0 -1
  542. package/dist/C_GlobalSearch-RB7J43gu.css.map +0 -1
  543. package/dist/C_GlobalSearch.js.map +0 -1
  544. package/dist/C_GlobalSearch2.js.map +0 -1
  545. package/dist/C_Guide.js.map +0 -1
  546. package/dist/C_Guide2.js.map +0 -1
  547. package/dist/C_Icon.js.map +0 -1
  548. package/dist/C_Icon2.js.map +0 -1
  549. package/dist/C_ImageCropper-CdTX2nxU.css.map +0 -1
  550. package/dist/C_ImageCropper-ilOqPklJ.css.map +0 -1
  551. package/dist/C_ImageCropper.js.map +0 -1
  552. package/dist/C_ImageCropper2.js.map +0 -1
  553. package/dist/C_Language.js.map +0 -1
  554. package/dist/C_Language2.js.map +0 -1
  555. package/dist/C_Login-B3qYkLrN.css.map +0 -1
  556. package/dist/C_Login-xMI1_ojE.css.map +0 -1
  557. package/dist/C_Login.js.map +0 -1
  558. package/dist/C_Login2.js.map +0 -1
  559. package/dist/C_Map-CWMMN58_.css.map +0 -1
  560. package/dist/C_Map-xSR2H-9o.css.map +0 -1
  561. package/dist/C_Map.js.map +0 -1
  562. package/dist/C_Map2.js.map +0 -1
  563. package/dist/C_Markdown-C7lTVJ1S.css.map +0 -1
  564. package/dist/C_Markdown-CZDm_baQ.css.map +0 -1
  565. package/dist/C_Markdown.js.map +0 -1
  566. package/dist/C_Markdown2.js.map +0 -1
  567. package/dist/C_Menu.js.map +0 -1
  568. package/dist/C_Menu2.js.map +0 -1
  569. package/dist/C_NotificationCenter-D7GGGWg7.css.map +0 -1
  570. package/dist/C_NotificationCenter-SSmeHA45.css.map +0 -1
  571. package/dist/C_NotificationCenter.js.map +0 -1
  572. package/dist/C_NotificationCenter2.js.map +0 -1
  573. package/dist/C_OrgChart-ChZu346B.css.map +0 -1
  574. package/dist/C_OrgChart-DqBufOv5.css.map +0 -1
  575. package/dist/C_OrgChart.js.map +0 -1
  576. package/dist/C_OrgChart2.js.map +0 -1
  577. package/dist/C_Progress.js.map +0 -1
  578. package/dist/C_Progress2.js.map +0 -1
  579. package/dist/C_QRCode-B_1lHUdx.css.map +0 -1
  580. package/dist/C_QRCode-CuQRYu0s.css.map +0 -1
  581. package/dist/C_QRCode.js.map +0 -1
  582. package/dist/C_QRCode2.js.map +0 -1
  583. package/dist/C_Signature-Bp-RBpAl.css.map +0 -1
  584. package/dist/C_Signature-Cb2VW1ok.css.map +0 -1
  585. package/dist/C_Signature.js.map +0 -1
  586. package/dist/C_Signature2.js.map +0 -1
  587. package/dist/C_Skeleton-BNPbaut7.css.map +0 -1
  588. package/dist/C_Skeleton-Djsjw8XY.css.map +0 -1
  589. package/dist/C_Skeleton.js.map +0 -1
  590. package/dist/C_Skeleton2.js.map +0 -1
  591. package/dist/C_SplitPane-CgGWYsRE.css.map +0 -1
  592. package/dist/C_SplitPane-DGf6WEeR.css.map +0 -1
  593. package/dist/C_SplitPane.js.map +0 -1
  594. package/dist/C_SplitPane2.js.map +0 -1
  595. package/dist/C_Steps-27Exh7PM.css.map +0 -1
  596. package/dist/C_Steps-DU9ZsFrs.css.map +0 -1
  597. package/dist/C_Steps.js.map +0 -1
  598. package/dist/C_Steps2.js.map +0 -1
  599. package/dist/C_Table--kbQaaBv.css.map +0 -1
  600. package/dist/C_Table-D631kdXC.css.map +0 -1
  601. package/dist/C_Table.js.map +0 -1
  602. package/dist/C_Table2.js +0 -4
  603. package/dist/C_Table2.js.map +0 -1
  604. package/dist/C_TagsView-BN8vMRsY.css.map +0 -1
  605. package/dist/C_TagsView-s1dnSJAV.css.map +0 -1
  606. package/dist/C_TagsView.js.map +0 -1
  607. package/dist/C_TagsView2.js.map +0 -1
  608. package/dist/C_Theme.js.map +0 -1
  609. package/dist/C_Theme2.js.map +0 -1
  610. package/dist/C_Time-BQ9PGy8B.css.map +0 -1
  611. package/dist/C_Time-CO73krC6.css.map +0 -1
  612. package/dist/C_Time.js.map +0 -1
  613. package/dist/C_Time2.js.map +0 -1
  614. package/dist/C_Timeline-4rk0Dzgn.css.map +0 -1
  615. package/dist/C_Timeline-DdESmqwL.css.map +0 -1
  616. package/dist/C_Timeline.js.map +0 -1
  617. package/dist/C_Timeline2.js.map +0 -1
  618. package/dist/C_Transfer-B-vjvhjI.css.map +0 -1
  619. package/dist/C_Transfer-EzdHzZNv.css.map +0 -1
  620. package/dist/C_Transfer.js.map +0 -1
  621. package/dist/C_Transfer2.js.map +0 -1
  622. package/dist/C_Tree-CsXgGfhn.css.map +0 -1
  623. package/dist/C_Tree-P7eRpnOa.css.map +0 -1
  624. package/dist/C_Tree.js.map +0 -1
  625. package/dist/C_Tree2.js.map +0 -1
  626. package/dist/C_Upload-CHjiVVh7.css.map +0 -1
  627. package/dist/C_Upload-DE3OLsZD.css.map +0 -1
  628. package/dist/C_Upload.js.map +0 -1
  629. package/dist/C_Upload2.js.map +0 -1
  630. package/dist/C_VideoPlayer-CnaNOFtW.css.map +0 -1
  631. package/dist/C_VideoPlayer-cnP88zNV.css.map +0 -1
  632. package/dist/C_VideoPlayer.js.map +0 -1
  633. package/dist/C_VideoPlayer2.js.map +0 -1
  634. package/dist/C_VtableGantt-CZlJgvpC.css.map +0 -1
  635. package/dist/C_VtableGantt-DKfQkql0.css.map +0 -1
  636. package/dist/C_VtableGantt.js.map +0 -1
  637. package/dist/C_VtableGantt2.js.map +0 -1
  638. package/dist/C_WaterFall-BJ_39ext.css.map +0 -1
  639. package/dist/C_WaterFall-cYc1vntE.css.map +0 -1
  640. package/dist/C_WaterFall.js.map +0 -1
  641. package/dist/C_WaterFall2.js.map +0 -1
  642. package/dist/C_WorkFlow-BFzRGGhJ.css.map +0 -1
  643. package/dist/C_WorkFlow-DSyCOvRp.css.map +0 -1
  644. package/dist/C_WorkFlow.js.map +0 -1
  645. package/dist/C_WorkFlow2.js.map +0 -1
  646. package/dist/_shared.cjs +0 -1
  647. package/dist/_shared.d.cts +0 -2
  648. package/dist/_shared.d.ts +0 -2
  649. package/dist/_shared.js +0 -1
  650. package/dist/city.js.map +0 -1
  651. package/dist/index.cjs.map +0 -1
  652. package/dist/index.js.map +0 -1
  653. package/dist/menuAdapter.js +0 -2
  654. package/dist/menuAdapter.js.map +0 -1
  655. package/dist/resolver.cjs.map +0 -1
  656. package/dist/resolver.js.map +0 -1
  657. package/dist/storage.js.map +0 -1
  658. /package/dist/{chunk.js → chunk.cjs} +0 -0
package/dist/C_Form.d.cts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as FormModel, B as TabsLayoutConfig, C as CustomLayoutConfig, D as DynamicFormState, E as DynamicFormController, F as LayoutConfig, I as LayoutType, L as OptionItem, M as GridLayoutConfig, N as InlineLayoutConfig, O as FormInstance, P as LabelPlacement, R as StepsLayoutConfig, S as ComponentType, T as DynamicFormConfig, _ as LayoutCallbacks, a as UseFormDirtyReturn, b as shouldShowActions, c as FormRenderer, d as useFormRenderer, f as useFormState, g as LAYOUTS_WITH_OWN_CONTROLS, h as FormConfig, i as useDynamicFormState, j as FormOption, k as FormMode, l as UseFormRendererOptions, m as FORM_DEFAULTS, n as DynamicFormStateType, o as useFormDirty, p as _default, r as FIELD_TYPE_OPTIONS, s as ComponentMap, t as DYNAMIC_FORM_STATE_KEY, u as registerRenderer, v as ResolvedFormConfig, w as DynamicFieldConfig, x as CardLayoutConfig, y as resolveFormConfig, z as SubmitEventPayload } from "./useDynamicFormState.js";
2
- export { _default as C_Form, type CardLayoutConfig, type ComponentMap, type ComponentType, type CustomLayoutConfig, DYNAMIC_FORM_STATE_KEY, type DynamicFieldConfig, type DynamicFormConfig, type DynamicFormController, type DynamicFormState, type DynamicFormStateType, FIELD_TYPE_OPTIONS, FORM_DEFAULTS, type FormConfig, type FormInstance, type FormMode, type FormModel, type FormOption, type FormRenderer, type GridLayoutConfig, type InlineLayoutConfig, LAYOUTS_WITH_OWN_CONTROLS, type LabelPlacement, type LayoutCallbacks, type LayoutConfig, type LayoutType, type OptionItem, type ResolvedFormConfig, type StepsLayoutConfig, type SubmitEventPayload, type TabsLayoutConfig, type UseFormDirtyReturn, type UseFormRendererOptions, registerRenderer, resolveFormConfig, shouldShowActions, useDynamicFormState, useFormDirty, useFormRenderer, useFormState };
1
+ import { $ as OptionItem, A as useFormGlobalConfig, B as FieldPathValue, C as FormConfig, D as mergeFormConfig, E as ResolvedFormConfig, F as DynamicFieldConfig, G as FormOption, H as FormInstance, I as DynamicFormConfig, J as InlineLayoutConfig, K as FormRecord, L as DynamicFormController, M as CardLayoutConfig, N as ComponentType, O as resolveFormConfig, P as CustomLayoutConfig, Q as MaybePromise, R as DynamicFormState, S as FORM_GLOBAL_CONFIG_KEY, T as LayoutCallbacks, U as FormMode, V as FormErrorContext, W as FormModel, X as LayoutConfig, Y as LabelPlacement, Z as LayoutType, _ as UseFormRendererOptions, a as UseFormDirtyReturn, b as useFormRenderer, c as UseCFormOptions, d as useCForm, et as StepsLayoutConfig, f as _default, g as RendererProps, h as FormRendererContext, i as useDynamicFormState, j as AsyncOptionsContext, k as shouldShowActions, l as defineFormConfig, m as FormRenderer, n as DynamicFormStateType, nt as TabsLayoutConfig, o as useFormDirty, p as ComponentMap, q as GridLayoutConfig, r as FIELD_TYPE_OPTIONS, s as useFormState, t as DYNAMIC_FORM_STATE_KEY, tt as SubmitEventPayload, u as defineFormOptions, v as registerRenderer, w as LAYOUTS_WITH_OWN_CONTROLS, x as FORM_DEFAULTS, y as unregisterRenderer, z as FieldPath } from "./useDynamicFormState.cjs";
2
+ export { type AsyncOptionsContext, _default as C_Form, type CardLayoutConfig, type ComponentMap, type ComponentType, type CustomLayoutConfig, DYNAMIC_FORM_STATE_KEY, type DynamicFieldConfig, type DynamicFormConfig, type DynamicFormController, type DynamicFormState, type DynamicFormStateType, FIELD_TYPE_OPTIONS, FORM_DEFAULTS, FORM_GLOBAL_CONFIG_KEY, type FieldPath, type FieldPathValue, type FormConfig, type FormErrorContext, type FormInstance, type FormMode, type FormModel, type FormOption, type FormRecord, type FormRenderer, type FormRendererContext, type GridLayoutConfig, type InlineLayoutConfig, LAYOUTS_WITH_OWN_CONTROLS, type LabelPlacement, type LayoutCallbacks, type LayoutConfig, type LayoutType, type MaybePromise, type OptionItem, type RendererProps, type ResolvedFormConfig, type StepsLayoutConfig, type SubmitEventPayload, type TabsLayoutConfig, type UseCFormOptions, type UseFormDirtyReturn, type UseFormRendererOptions, defineFormConfig, defineFormOptions, mergeFormConfig, registerRenderer, resolveFormConfig, shouldShowActions, unregisterRenderer, useCForm, useDynamicFormState, useFormDirty, useFormGlobalConfig, useFormRenderer, useFormState };
package/dist/C_Form.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as FormModel, B as TabsLayoutConfig, C as CustomLayoutConfig, D as DynamicFormState, E as DynamicFormController, F as LayoutConfig, I as LayoutType, L as OptionItem, M as GridLayoutConfig, N as InlineLayoutConfig, O as FormInstance, P as LabelPlacement, R as StepsLayoutConfig, S as ComponentType, T as DynamicFormConfig, _ as LayoutCallbacks, a as UseFormDirtyReturn, b as shouldShowActions, c as FormRenderer, d as useFormRenderer, f as useFormState, g as LAYOUTS_WITH_OWN_CONTROLS, h as FormConfig, i as useDynamicFormState, j as FormOption, k as FormMode, l as UseFormRendererOptions, m as FORM_DEFAULTS, n as DynamicFormStateType, o as useFormDirty, p as _default, r as FIELD_TYPE_OPTIONS, s as ComponentMap, t as DYNAMIC_FORM_STATE_KEY, u as registerRenderer, v as ResolvedFormConfig, w as DynamicFieldConfig, x as CardLayoutConfig, y as resolveFormConfig, z as SubmitEventPayload } from "./useDynamicFormState.js";
2
- export { _default as C_Form, type CardLayoutConfig, type ComponentMap, type ComponentType, type CustomLayoutConfig, DYNAMIC_FORM_STATE_KEY, type DynamicFieldConfig, type DynamicFormConfig, type DynamicFormController, type DynamicFormState, type DynamicFormStateType, FIELD_TYPE_OPTIONS, FORM_DEFAULTS, type FormConfig, type FormInstance, type FormMode, type FormModel, type FormOption, type FormRenderer, type GridLayoutConfig, type InlineLayoutConfig, LAYOUTS_WITH_OWN_CONTROLS, type LabelPlacement, type LayoutCallbacks, type LayoutConfig, type LayoutType, type OptionItem, type ResolvedFormConfig, type StepsLayoutConfig, type SubmitEventPayload, type TabsLayoutConfig, type UseFormDirtyReturn, type UseFormRendererOptions, registerRenderer, resolveFormConfig, shouldShowActions, useDynamicFormState, useFormDirty, useFormRenderer, useFormState };
1
+ import { $ as OptionItem, A as useFormGlobalConfig, B as FieldPathValue, C as FormConfig, D as mergeFormConfig, E as ResolvedFormConfig, F as DynamicFieldConfig, G as FormOption, H as FormInstance, I as DynamicFormConfig, J as InlineLayoutConfig, K as FormRecord, L as DynamicFormController, M as CardLayoutConfig, N as ComponentType, O as resolveFormConfig, P as CustomLayoutConfig, Q as MaybePromise, R as DynamicFormState, S as FORM_GLOBAL_CONFIG_KEY, T as LayoutCallbacks, U as FormMode, V as FormErrorContext, W as FormModel, X as LayoutConfig, Y as LabelPlacement, Z as LayoutType, _ as UseFormRendererOptions, a as UseFormDirtyReturn, b as useFormRenderer, c as UseCFormOptions, d as useCForm, et as StepsLayoutConfig, f as _default, g as RendererProps, h as FormRendererContext, i as useDynamicFormState, j as AsyncOptionsContext, k as shouldShowActions, l as defineFormConfig, m as FormRenderer, n as DynamicFormStateType, nt as TabsLayoutConfig, o as useFormDirty, p as ComponentMap, q as GridLayoutConfig, r as FIELD_TYPE_OPTIONS, s as useFormState, t as DYNAMIC_FORM_STATE_KEY, tt as SubmitEventPayload, u as defineFormOptions, v as registerRenderer, w as LAYOUTS_WITH_OWN_CONTROLS, x as FORM_DEFAULTS, y as unregisterRenderer, z as FieldPath } from "./useDynamicFormState.js";
2
+ export { type AsyncOptionsContext, _default as C_Form, type CardLayoutConfig, type ComponentMap, type ComponentType, type CustomLayoutConfig, DYNAMIC_FORM_STATE_KEY, type DynamicFieldConfig, type DynamicFormConfig, type DynamicFormController, type DynamicFormState, type DynamicFormStateType, FIELD_TYPE_OPTIONS, FORM_DEFAULTS, FORM_GLOBAL_CONFIG_KEY, type FieldPath, type FieldPathValue, type FormConfig, type FormErrorContext, type FormInstance, type FormMode, type FormModel, type FormOption, type FormRecord, type FormRenderer, type FormRendererContext, type GridLayoutConfig, type InlineLayoutConfig, LAYOUTS_WITH_OWN_CONTROLS, type LabelPlacement, type LayoutCallbacks, type LayoutConfig, type LayoutType, type MaybePromise, type OptionItem, type RendererProps, type ResolvedFormConfig, type StepsLayoutConfig, type SubmitEventPayload, type TabsLayoutConfig, type UseCFormOptions, type UseFormDirtyReturn, type UseFormRendererOptions, defineFormConfig, defineFormOptions, mergeFormConfig, registerRenderer, resolveFormConfig, shouldShowActions, unregisterRenderer, useCForm, useDynamicFormState, useFormDirty, useFormGlobalConfig, useFormRenderer, useFormState };
package/dist/C_Form.js CHANGED
@@ -1 +1 @@
1
- import"./C_Editor2.js";import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"./C_Form2.js";export{u as C_Form,o as DYNAMIC_FORM_STATE_KEY,c as FIELD_TYPE_OPTIONS,a as FORM_DEFAULTS,d as LAYOUTS_WITH_OWN_CONTROLS,e as registerRenderer,n as resolveFormConfig,r as shouldShowActions,i as useDynamicFormState,t as useFormDirty,s as useFormRenderer,l as useFormState};
1
+ import"./C_Icon2.js";import{a as e,c as t,d as n,f as r,g as i,h as a,i as o,l as s,m as c,n as l,o as u,p as d,r as f,s as p,t as m,u as h}from"./C_Form2.js";import{n as g,r as _,t as v}from"./helpers.js";export{m as C_Form,l as DYNAMIC_FORM_STATE_KEY,f as FIELD_TYPE_OPTIONS,h as FORM_DEFAULTS,n as FORM_GLOBAL_CONFIG_KEY,r as LAYOUTS_WITH_OWN_CONTROLS,v as defineFormConfig,g as defineFormOptions,d as mergeFormConfig,e as registerRenderer,c as resolveFormConfig,a as shouldShowActions,u as unregisterRenderer,_ as useCForm,o as useDynamicFormState,s as useFormDirty,i as useFormGlobalConfig,p as useFormRenderer,t as useFormState};
@@ -0,0 +1 @@
1
+ require(`./chunk.cjs`);const e=require(`./config.cjs`),t=require(`./C_Icon2.cjs`),n=require(`./export-helper.cjs`),r=require(`./data.cjs`);let i=require(`vue`),a=require(`naive-ui`),o=require(`vue-draggable-plus`);const s=Symbol(`c-form-global-config`);function c(){return(0,i.getCurrentInstance)()?(0,i.inject)(s,{}):{}}function l(e,t){let n=e??{},r=(e,t)=>e||t?{...e,...t}:void 0;return{...t,...n,grid:r(t.grid,n.grid),inline:r(t.inline,n.inline),card:r(t.card,n.card),tabs:r(t.tabs,n.tabs),steps:r(t.steps,n.steps),dynamic:r(t.dynamic,n.dynamic),custom:r(t.custom,n.custom)}}const u={layout:`default`,labelPlacement:`left`,labelWidth:`auto`,size:`medium`,disabled:!1,readonly:!1,showActions:!0,validateOnChange:!1,preserveRemovedFields:!1,submitText:``,resetText:``,mode:`create`},d=[`steps`,`custom`];function f(e){return{...u,...e}}function p(e){return!(e.showActions===!1||d.includes(e.layout))}function m(e,t){let n=(0,i.ref)({}),a=(0,i.computed)(()=>o().length>0);function o(){let a=n.value,o=t?(0,i.toValue)(t):void 0,s=new Set(o??[...Object.keys(a),...Object.keys(e)]),c=[];for(let t of s)r.a(r.r(a,t),r.r(e,t))||c.push(t);return c}function s(t){return!r.a(r.r(n.value,t),r.r(e,t))}function c(){n.value=r.t(e)}function l(){return r.t(n.value)}return{isDirty:a,getChangedFields:o,isFieldDirty:s,markAsClean:c,getCleanModel:l}}const h={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:[],upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:!1};function g(e){return r.t((e.value===void 0?h[e.type]:e.value)??null)}function _(e){let t=new Set;e.forEach((e,n)=>{if(!e.prop?.trim())throw TypeError(`[C_Form] options[${n}].prop 不能为空`);if(t.has(e.prop))throw TypeError(`[C_Form] 字段 prop 重复: ${e.prop}`);t.add(e.prop)})}function v(t,n,a,o,s){let c=(0,i.reactive)({}),l=(0,i.reactive)({}),u=new Map,d=(0,i.ref)({}),f=(0,i.ref)({}),p=(0,i.ref)({}),h=(0,i.ref)(!1),v=new Map,y=new Map,b=new Map,x=new Set,S=!1,C=!1,w=0,T=e.r(()=>n.value.feedback),{t:E}=e.i(()=>n.value.locale),{isDirty:D,getChangedFields:O,isFieldDirty:k,markAsClean:A,getCleanModel:j}=m(c,()=>t.value.map(e=>e.prop));function M(e,t,r){n.value.onError?n.value.onError(e,{source:t,field:r}):T.error(e instanceof Error?e.message:String(e),e)}let ee=(0,i.computed)(()=>t.value.filter(e=>{if(e.show===!1)return!1;if(!e.showWhen)return!0;try{return e.showWhen(c)}catch(t){return M(t,`callback`,e.prop),!1}}));function N(){C=!0;let e=++w;(0,i.nextTick)(()=>{e===w&&(C=!1)})}function P(){return r.t(c)}function F(e){let n=e?r.t(e):{};return t.value.forEach(e=>{r.i(n,e.prop)||r.s(n,e.prop,g(e))}),n}function te(e){try{let t=e.rulesWhen?[...e.rulesWhen(c)]:[...e.rules??[]];if(e.required&&!t.some(e=>e.required)&&t.unshift({required:!0,message:E(`form.required`,{label:e.label||e.prop}),trigger:[`input`,`change`,`blur`]}),e.crossFieldValidator){let n=e.crossFieldValidator;t.push({async validator(){let e=await n(c);if(e)throw Error(e)},trigger:[`change`,`blur`]})}if(t.length===0){delete l[e.prop];return}l[e.prop]=t.map(t=>({...t,key:e.prop}))}catch(t){delete l[e.prop],M(t,`callback`,e.prop)}}function I(){t.value.forEach(e=>{(e.rulesWhen||e.crossFieldValidator)&&te(e)})}function ne(e){x.forEach(t=>{e.has(t)||(u.delete(t),delete l[t],delete d.value[t],delete f.value[t],delete p.value[t],y.get(t)?.abort(),y.delete(t),v.delete(t),b.delete(t),n.value.preserveRemovedFields||r.n(c,t))})}function L(e=!1){try{_(t.value);let n=new Set(t.value.map(e=>e.prop));ne(n),t.value.forEach(e=>{r.i(c,e.prop)||r.s(c,e.prop,g(e)),te(e),e.asyncOptions&&b.get(e.prop)!==e.asyncOptions&&(b.set(e.prop,e.asyncOptions),(0,i.nextTick)(()=>B(e,`initialize`)))}),x=n,e&&(0,i.nextTick)(A)}catch(e){throw M(e,`initialize`),e}}function R(e){N(),r.o(c,F(e)),I()}function z(e,t,n){return n.signal.aborted||v.get(e)!==t}async function B(e,t){if(!e.asyncOptions)return;let{prop:n}=e,i=(v.get(n)??0)+1;v.set(n,i),y.get(n)?.abort();let a=new AbortController;y.set(n,a),f.value[n]=!0,delete p.value[n];try{let o=await e.asyncOptions(P(),{field:n,reason:t,signal:a.signal});if(z(n,i,a))return;if(!Array.isArray(o))throw TypeError(`[C_Form] ${n}.asyncOptions 必须返回数组`);d.value[n]=r.t([...o])}catch(e){if(z(n,i,a))return;p.value[n]=e,M(e,`async-options`,n)}finally{v.get(n)===i&&(f.value[n]=!1,y.delete(n))}}async function re(e){let n=t.value.filter(t=>t.asyncOptions&&(!e||t.prop===e));if(e&&n.length===0)throw Error(`[C_Form] 未找到异步选项字段: ${e}`);await Promise.all(n.map(e=>B(e,`manual`)))}function V(){let e=t.value.filter(e=>e.valueWhen);if(e.length!==0){for(let t=0;t<=e.length;t+=1){let t=!1;for(let n of e)try{let e=n.valueWhen?.(c);e!==void 0&&!r.a(r.r(c,n.prop),e)&&(r.s(c,n.prop,r.t(e)),t=!0)}catch(e){M(e,`callback`,n.prop)}if(!t)return}M(Error(`[C_Form] valueWhen 存在循环依赖,已停止继续计算`),`callback`)}}function ie(e){let n=new Set(e);return t.value.filter(e=>!e.asyncOptions||!e.dependsOn?!1:(Array.isArray(e.dependsOn)?e.dependsOn:[e.dependsOn]).some(e=>n.has(e)))}function H(e){V(),I(),ie(e).forEach(e=>{B(e,`dependency`)}),n.value.validateOnChange&&(0,i.nextTick)(()=>{K([...e]).catch(()=>void 0)})}function U(e){H([e])}function W(e,t){t?u.set(e,t):u.delete(e)}async function G(){if(!a.value)throw Error(`[C_Form] 表单引用不存在`);try{await a.value.validate(),o(`validate-success`,P())}catch(e){throw o(`validate-error`,e),e}}async function K(e){if(!a.value)throw Error(`[C_Form] 表单引用不存在`);let t=[...new Set(Array.isArray(e)?e:[e])],n=[],r=t.flatMap(e=>{let t=u.get(e);return t?[t.validate()]:(n.push(e),[])});n.length>0&&r.push(a.value.validate(void 0,e=>n.includes(String(e.key??``))));let i=(await Promise.allSettled(r)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(i.length>0)throw i}function q(e){if(!e){a.value?.restoreValidation();return}(Array.isArray(e)?e:[e]).forEach(e=>u.get(e)?.restoreValidation())}async function J(e){let n=t.value.filter(e).map(e=>e.prop);if(n.length===0)return!0;try{return await K(n),!0}catch{return!1}}function Y(e){let t=n.value.steps?.steps?.[e]?.key;return t?J(e=>e.layout?.step===t):Promise.resolve(!0)}function ae(e){return J(t=>t.layout?.tab===e)}function oe(){return J(e=>!!e.layout?.dynamic)}function se(e){return J(t=>t.layout?.group===e)}function X(e){Object.entries(r.t(e)).forEach(([e,t])=>{r.s(c,e,t)}),H(Object.keys(e))}function Z(){r.o(c,j()),q(),I()}async function Q(e,t,n=!1){r.s(c,e,r.t(t)),U(e),n&&await K(e)}function ce(e){return r.t(r.r(c,e))}async function le(e,t=!1){X(e),t&&await K(Object.keys(e))}async function ue(){if(h.value)return!1;h.value=!0;try{await G();let e={model:P(),form:a.value};try{await n.value.onSubmit?.(e)}catch(e){return M(e,`submit`),!1}return o(`submit`,e),!0}catch{return!1}finally{h.value=!1}}function $(){L(!0);let e=s?.value??(n.value.mode===`edit`?n.value.initialValues:void 0);e&&R(e),V(),(0,i.nextTick)(A)}return(0,i.watch)(t,()=>{let e=!S;e&&N(),L(e),S=!0},{deep:!0,immediate:!0}),s&&(0,i.watch)(s,e=>{e!==void 0&&!r.a(c,e)&&R(e)},{deep:!0,immediate:!0}),(0,i.watch)(()=>[n.value.mode,n.value.initialValues],([e,t])=>{s?.value!==void 0||e!==`edit`||!t||(R(t),(0,i.nextTick)(A))},{deep:!0}),(0,i.watch)(c,e=>{C||o(`update:modelValue`,r.t(e))},{deep:!0,flush:`post`}),(0,i.onScopeDispose)(()=>{y.forEach(e=>e.abort()),y.clear(),u.clear()}),{formModel:c,formRules:l,visibleOptions:ee,initialize:$,handleFieldChange:U,setFormItemRef:W,validate:G,validateField:K,validateStep:Y,validateTab:ae,validateDynamicFields:oe,validateCustomGroup:se,clearValidation:q,getModel:P,setFields:X,resetFields:Z,setFieldValue:Q,getFieldValue:ce,setFieldsValue:le,submit:ue,handleSubmit:ue,handleReset:Z,isSubmitting:h,isDirty:D,getChangedFields:O,isFieldDirty:k,markAsClean:A,asyncOptionsCache:d,asyncLoadingMap:f,asyncErrorMap:p,reloadOptions:re}}function y(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function b(e){return{input:t=>(0,i.h)(e.NInput,{...t}),textarea:t=>(0,i.h)(e.NInput,{...t,type:`textarea`}),inputNumber:t=>(0,i.h)(e.NInputNumber,{...t}),switch:t=>(0,i.h)(e.NSwitch,{...t}),slider:t=>(0,i.h)(e.NSlider,{...t}),rate:t=>(0,i.h)(e.NRate,{...t}),datePicker:t=>(0,i.h)(e.NDatePicker,{...t}),daterange:t=>(0,i.h)(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>(0,i.h)(e.NTimePicker,{...t}),cascader:t=>(0,i.h)(e.NCascader,{...t}),colorPicker:t=>(0,i.h)(e.NColorPicker,{...t}),select:(t,n)=>(0,i.h)(e.NSelect,{...t,options:n.children?.map(e=>({...e}))||[]}),checkbox:(t,n)=>(0,i.h)(e.NCheckboxGroup,{...t},{default:()=>(0,i.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,i.h)(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>(0,i.h)(e.NRadioGroup,{...t},{default:()=>(0,i.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,i.h)(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,a)=>{let o={...t},{value:s}=o,c=o[`onUpdate:value`];return delete o.value,delete o[`onUpdate:value`],(0,i.h)(e.NUpload,{...o,fileList:Array.isArray(s)?s:[],"onUpdate:fileList":e=>c?.(e)},{trigger:()=>a.slots?.uploadClick?.()||(0,i.h)(e.NButton,{type:`primary`},{default:()=>`选择文件`}),tip:()=>a.slots?.uploadTip?.()||null})},editor:(t,n)=>{let r={...t},{value:a}=r,o=r[`onUpdate:value`];return delete r.value,delete r[`onUpdate:value`],(0,i.h)(e.C_Editor,{...r,editorId:`editor-${n.prop}`,modelValue:typeof a==`string`?a:``,"onUpdate:modelValue":e=>o?.(e)})}}}const x={};function S(e,t){if(!e.trim())throw TypeError(`[C_Form] renderer type 不能为空`);if(typeof t!=`function`)throw TypeError(`[C_Form] renderer ${e} 必须是函数`);return x[e]=t,()=>C(e,t)}function C(e,t){return!x[e]||t&&x[e]!==t?!1:delete x[e]}const w=new Set([`select`,`checkbox`,`radio`,`cascader`]);function T(e){let{formModel:t,visibleOptions:n,config:a,handleFieldChange:o,componentMap:s,instanceSlots:c,asyncOptionsCache:l,asyncLoadingMap:u,renderers:d,setFormItemRef:f,onError:p}=e,m=s,h=b(m),g=e=>d?.value?.[e]??x[e]??h[e],_=e=>{let n={value:r.r(t,e.prop),"onUpdate:value":n=>{r.s(t,e.prop,n),o(e.prop)},disabled:y(e.disabled,a.value.disabled,t),readonly:y(e.readonly,a.value.readonly,t)};return e.type===`textarea`&&(n.type=`textarea`),e.placeholder&&(n.placeholder=e.placeholder),n};function v(e){let t=e.children??[];return Object.prototype.hasOwnProperty.call(l.value,e.prop)?l.value[e.prop]??[]:t}function S(e){return w.has(e.type)?{...e,children:v(e)}:e}function C(e,t){return e.type===`select`&&u.value[e.prop]&&(t.loading=!0),t}let T=e=>{try{let t=S(e),n=g(t.type);return n?n(C(t,(0,i.mergeProps)(t.attrs??{},_(t))),t,a.value,{slots:c,components:m}):(p?.(TypeError(`[C_Form] 未支持的组件类型: ${t.type}`),t.prop),null)}catch(t){return p?.(t,e.prop),null}};function E(e){if(e.label)return e.help?(0,i.h)(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,(0,i.h)(m.NTooltip,{trigger:`hover`},{trigger:()=>(0,i.h)(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,textContent:`ⓘ`}),default:()=>e.help})]):e.label}return{renderFormItem:T,formItems:(0,i.computed)(()=>n.value.map(e=>{let t=!!(e.required||e.rules?.some(e=>e.required)),n=E(e);return(0,i.h)(m.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,key:e.prop,required:t,ref:t=>f?.(e.prop,t)},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>T(e)})})),getBaseProps:_}}const E={class:`c-form-default`},D=(0,i.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,E,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.formItems,e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e),{key:e.key}))),128))]))}});var O=n.t(D,[[`__scopeId`,`data-v-f5303a7c`]]);const k=(0,i.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=(0,i.computed)(()=>280),r=(0,i.computed)(()=>t.layoutConfig?.inline?.gap??16),a=(0,i.computed)(()=>16),o=(0,i.computed)(()=>{let e=t.layoutConfig?.inline?.align;return e===`start`||e===`end`?e:`center`}),s=(0,i.computed)(()=>{switch(o.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return`center`}}),c=(0,i.computed)(()=>{switch(o.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),l=(0,i.computed)(()=>({display:`flex`,flexWrap:`wrap`,alignItems:s.value,justifyContent:c.value,gap:`${a.value}px ${r.value}px`,width:`100%`})),u=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},d=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{class:`c-form-inline`,style:(0,i.normalizeStyle)(l.value)},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.formItems,(e,t)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:u(e,t),class:`c-form-inline-item`,style:(0,i.normalizeStyle)(d(t))},[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e)))],4))),128))],4))}});var A=n.t(k,[[`__scopeId`,`data-v-7c4a2aa3`]]);const j={class:`c-grid-layout`},M={class:`config-header`},ee={class:`config-controls`},N={class:`config-label`},P={class:`item-wrapper`},F=(0,i.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e,{expose:n}){let r=e,o=(0,i.reactive)({cols:24,gutter:16,responsive:!0}),s=(0,i.computed)(()=>r.layoutConfig?.grid||{}),c=(0,i.computed)(()=>s.value.showConfigPanel),l=(0,i.computed)(()=>s.value.showStats),u=(0,i.computed)(()=>({cols:c.value?o.cols:s.value.cols??24,gutter:c.value?o.gutter:s.value.gutter??16,responsive:c.value?o.responsive:s.value.responsive??!0})),d=(0,i.computed)(()=>({cols:u.value.cols,xGap:u.value.gutter,yGap:u.value.gutter,responsive:u.value.responsive?`screen`:`self`})),f=(0,i.computed)(()=>[{key:`cols`,label:`列数`,component:`NInputNumber`,value:(0,i.computed)({get:()=>o.cols,set:e=>o.cols=e}),props:{min:1,max:48,size:`small`}},{key:`gutter`,label:`间距`,component:`NInputNumber`,value:(0,i.computed)({get:()=>o.gutter,set:e=>o.gutter=e}),props:{min:0,max:48,size:`small`}},{key:`responsive`,label:`响应式`,component:`NSwitch`,value:(0,i.computed)({get:()=>o.responsive,set:e=>o.responsive=e}),props:{size:`small`}}]),p=(0,i.computed)(()=>`列数: ${u.value.cols} | 间距: ${u.value.gutter}px | 项目: ${r.formItems.length}个`),m=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,h=(e,t)=>{let n=r.options?.[e]?.layout;return n?.[t]??n?.grid?.[t]},g=()=>{let{cols:e}=u.value;return e<=12?e:e<=24?12:8},_=e=>{let t=h(e,`span`),n=h(e,`offset`),r=h(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=u.value.cols?t:g(),offset:typeof n==`number`&&n>=0&&n<u.value.cols?n:0,suffix:!!r}};return(0,i.watch)(s,e=>{e.cols!==void 0&&(o.cols=e.cols),e.gutter!==void 0&&(o.gutter=e.gutter),e.responsive!==void 0&&(o.responsive=e.responsive)},{immediate:!0}),n({updateGridConfig:e=>Object.assign(o,e),getCurrentConfig:()=>({...u.value}),getGridInfo:()=>({...u.value,itemCount:r.formItems.length})}),(n,r)=>{let o=a.NCard,s=a.NGridItem,u=a.NGrid,h=a.NAlert;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,j,[(0,i.createCommentVNode)(` 配置面板 `),c.value?((0,i.openBlock)(),(0,i.createBlock)(o,{key:0,size:`small`,bordered:!1,class:`config-panel`},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,M,[(0,i.createVNode)(t.t,{name:`mdi:view-grid`,size:18}),r[0]||=(0,i.createElementVNode)(`span`,null,`网格配置`,-1)])]),default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,ee,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(f.value,e=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:e.key,class:`config-item`},[(0,i.createElementVNode)(`span`,N,(0,i.toDisplayString)(e.label)+`:`,1),((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e.component),(0,i.mergeProps)({value:e.value,"onUpdate:value":t=>e.value=t},{ref_for:!0},e.props),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1})):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 网格容器 `),(0,i.createVNode)(u,(0,i.mergeProps)(d.value,{class:`grid-container`}),{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.formItems,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)(s,(0,i.mergeProps)({key:m(e,t)},{ref_for:!0},_(t),{class:`grid-item`}),{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,P,[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e)))])]),_:2},1040))),128))]),_:1},16),(0,i.createCommentVNode)(` 统计信息 `),l.value?((0,i.openBlock)(),(0,i.createBlock)(h,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:`mdi:information-outline`,size:16}),r[1]||=(0,i.createTextVNode)(` 网格信息 `,-1)]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(p.value),1)]),_:1})):(0,i.createCommentVNode)(`v-if`,!0)])}}});var te=n.t(F,[[`__scopeId`,`data-v-90ef9fa4`]]);const I={class:`c-form-card`},ne={class:`flex items-center gap-2`},L={class:`config-controls`},R={class:`config-item`},z={class:`flex items-center gap-2`},B={class:`text-xs min-w-12`},re={class:`config-item`},V={class:`config-item`},ie={class:`config-item`},H={class:`flex items-center gap-3`},U={class:`card-header`},W={class:`header-info`},G={class:`header-text`},K={key:0},q={class:`header-actions`},J={class:`field-stats`},Y={class:`card-content`},ae={key:0,class:`progress-section`},oe={class:`action-content`},se={class:`status-summary`},X={class:`status-item`},Z={class:`progress-display`},Q={class:`text-sm min-w-12`},ce={class:`action-buttons`},le=(0,i.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},formData:{default:()=>({})}},setup(e){let n=e,r=(0,i.ref)(20),o=(0,i.ref)(!0),s=(0,i.ref)(!0),c=(0,i.ref)(!0),l=(0,i.ref)(`vertical`),u=(0,i.ref)({}),d=(0,i.computed)(()=>n.layoutConfig?.card?.groups||[]),f=(0,i.computed)(()=>d.value.length>0),p=(0,i.computed)(()=>n.layoutConfig?.card?.showLayoutConfig??!0),m=(0,i.computed)(()=>n.layoutConfig?.card?.showActionPanel??!0),h=(0,i.computed)(()=>f.value?`layout-${l.value}`:`layout-single`),g=(0,i.computed)(()=>{if(!f.value)return[];let e=new Map;return d.value.forEach(t=>{e.set(t.key,[])}),n.formItems.forEach((t,r)=>{let i=(n.options?.[r])?.layout?.group||d.value[0]?.key||`default`;e.has(i)||e.set(i,[]),e.get(i).push(t)}),d.value.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),_=(0,i.computed)(()=>{let e=Object.keys(u.value);return e.length>0&&e.every(e=>u.value[e])}),v=(0,i.computed)(()=>{if(!n.options||n.options.length===0)return 0;let e=n.options.filter(e=>{let t=n.formData?.[e.prop||``];return y(t)}).length;return Math.round(e/n.options.length*100)}),y=e=>e==null?!1:Array.isArray(e)?e.length>0:typeof e==`string`?e.trim()!==``:!0,b=e=>n.options?n.options.filter(t=>t.layout?.group===e.config.key).filter(e=>{let t=n.formData?.[e.prop||``];return y(t)}).length:0,x=e=>{if(e.items.length===0)return 0;let t=b(e);return Math.round(t/e.items.length*100)},S=e=>{let t={basic:`mdi:account`,contact:`mdi:phone`,preferences:`mdi:cog`,settings:`mdi:cog`,info:`mdi:information`,default:`mdi:form-select`};return t[e]||t.default},C=e=>{u.value[e]=!u.value[e]},w=()=>{let e=!_.value;d.value.forEach(t=>{u.value[t.key]=e})};return(0,i.onMounted)(()=>{let e=n.layoutConfig?.card;e?.direction&&(l.value=e.direction),e?.showProgress!==void 0&&(c.value=e.showProgress),d.value.forEach(e=>{u.value[e.key]=!1})}),(n,d)=>{let y=a.NSlider,T=a.NSwitch,E=a.NRadio,D=a.NRadioGroup,O=a.NCard,k=a.NBadge,A=a.NButton,j=a.NProgress;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,I,[(0,i.createCommentVNode)(` 布局配置面板 `),f.value&&p.value?((0,i.openBlock)(),(0,i.createBlock)(O,{key:0,class:`layout-config-panel`,bordered:!1},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,ne,[(0,i.createVNode)(t.t,{name:`mdi:cog`,size:18}),d[4]||=(0,i.createElementVNode)(`span`,null,`布局配置`,-1)])]),default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,L,[(0,i.createElementVNode)(`div`,R,[d[5]||=(0,i.createElementVNode)(`span`,null,`卡片间距`,-1),(0,i.createElementVNode)(`div`,z,[(0,i.createVNode)(y,{value:r.value,"onUpdate:value":d[0]||=e=>r.value=e,min:12,max:32,step:4,class:`w-24`},null,8,[`value`]),(0,i.createElementVNode)(`span`,B,(0,i.toDisplayString)(r.value)+`px`,1)])]),(0,i.createElementVNode)(`div`,re,[d[6]||=(0,i.createElementVNode)(`span`,null,`显示图标`,-1),(0,i.createVNode)(T,{value:o.value,"onUpdate:value":d[1]||=e=>o.value=e,size:`small`},null,8,[`value`])]),(0,i.createElementVNode)(`div`,V,[d[7]||=(0,i.createElementVNode)(`span`,null,`可折叠`,-1),(0,i.createVNode)(T,{value:s.value,"onUpdate:value":d[2]||=e=>s.value=e,size:`small`},null,8,[`value`])]),(0,i.createElementVNode)(`div`,ie,[d[10]||=(0,i.createElementVNode)(`span`,null,`布局方向`,-1),(0,i.createVNode)(D,{value:l.value,"onUpdate:value":d[3]||=e=>l.value=e,size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(E,{value:`vertical`},{default:(0,i.withCtx)(()=>[...d[8]||=[(0,i.createTextVNode)(`垂直`,-1)]]),_:1}),(0,i.createVNode)(E,{value:`horizontal`},{default:(0,i.withCtx)(()=>[...d[9]||=[(0,i.createTextVNode)(`水平`,-1)]]),_:1})]),_:1},8,[`value`])])])]),_:1})):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 表单内容区域 `),(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`form-content`,h.value]),style:(0,i.normalizeStyle)({gap:`${r.value}px`})},[(0,i.createCommentVNode)(` 无分组时的单卡片模式 `),f.value?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createCommentVNode)(` 有分组时的多卡片模式 `),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(g.value,e=>((0,i.openBlock)(),(0,i.createBlock)(O,{key:e.config.key,class:(0,i.normalizeClass)([`group-card`,[`${e.config.key}-card`,{collapsed:s.value&&u.value[e.config.key]}]]),hoverable:``},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,U,[(0,i.createElementVNode)(`div`,W,[o.value&&e.config.icon?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:0,name:e.config.icon,size:20,class:`card-icon`},null,8,[`name`])):o.value?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:1,name:S(e.config.key),size:20,class:`card-icon`},null,8,[`name`])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,G,[(0,i.createElementVNode)(`h3`,null,(0,i.toDisplayString)(e.config.title),1),e.config.description?((0,i.openBlock)(),(0,i.createElementBlock)(`p`,K,(0,i.toDisplayString)(e.config.description),1)):(0,i.createCommentVNode)(`v-if`,!0)])]),(0,i.createElementVNode)(`div`,q,[(0,i.createCommentVNode)(` 统计信息 `),(0,i.createElementVNode)(`div`,J,[(0,i.createVNode)(k,{value:e.items.length,type:`info`,"show-zero":``},null,8,[`value`]),(0,i.createVNode)(k,{value:`${b(e)}/${e.items.length}`,type:b(e)===e.items.length?`success`:`warning`},null,8,[`value`,`type`])]),(0,i.createCommentVNode)(` 折叠按钮 `),s.value?((0,i.openBlock)(),(0,i.createBlock)(A,{key:0,quaternary:``,circle:``,size:`small`,onClick:t=>C(e.config.key)},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:u.value[e.config.key]?`mdi:chevron-down`:`mdi:chevron-up`,size:18},null,8,[`name`])]),_:2},1032,[`onClick`])):(0,i.createCommentVNode)(`v-if`,!0)])])]),default:(0,i.withCtx)(()=>[(0,i.withDirectives)((0,i.createElementVNode)(`div`,Y,[(0,i.createCommentVNode)(` 进度指示器 `),c.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ae,[(0,i.createVNode)(j,{percentage:x(e),color:x(e)===100?`#52c41a`:`#1890ff`,"show-indicator":!1,class:`mb-4`},null,8,[`percentage`,`color`])])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 表单项 `),((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.items,e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e),{key:e.key}))),128))],512),[[i.vShow,!u.value[e.config.key]]])]),_:2},1032,[`class`]))),128))],64)):((0,i.openBlock)(),(0,i.createBlock)(O,{key:0,class:`single-card`,hoverable:``},{header:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,H,[o.value?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:0,name:`mdi:form-select`,size:18,style:{color:`#3b82f6`}})):(0,i.createCommentVNode)(`v-if`,!0),d[11]||=(0,i.createElementVNode)(`span`,null,`表单信息`,-1)])]),default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.formItems,e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e),{key:e.key}))),128))]),_:1}))],6),(0,i.createCommentVNode)(` 统一操作面板 `),f.value&&m.value?((0,i.openBlock)(),(0,i.createBlock)(O,{key:1,class:`action-panel`,bordered:!1},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,oe,[(0,i.createElementVNode)(`div`,se,[(0,i.createElementVNode)(`div`,X,[d[12]||=(0,i.createElementVNode)(`span`,{class:`label`},`完成进度:`,-1),(0,i.createElementVNode)(`div`,Z,[(0,i.createVNode)(j,{percentage:v.value,"show-indicator":!1,color:v.value===100?`#52c41a`:`#1890ff`,class:`flex-1`},null,8,[`percentage`,`color`]),(0,i.createElementVNode)(`span`,Q,(0,i.toDisplayString)(v.value)+`%`,1)])])]),(0,i.createElementVNode)(`div`,ce,[s.value?((0,i.openBlock)(),(0,i.createBlock)(A,{key:0,onClick:w},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:_.value?`mdi:unfold-more-horizontal`:`mdi:unfold-less-horizontal`,size:18},null,8,[`name`])]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` `+(0,i.toDisplayString)(_.value?`展开全部`:`折叠全部`),1)]),_:1})):(0,i.createCommentVNode)(`v-if`,!0)])])]),_:1})):(0,i.createCommentVNode)(`v-if`,!0)])}}});var ue=n.t(le,[[`__scopeId`,`data-v-cb63c8f5`]]);const $={class:`c-form-tabs`},de={key:0,class:`single-panel`},fe={class:`tabs-container`},pe={key:0,class:`tab-header`},me={class:`tab-description`},he={class:`tab-form-items`},ge={key:0,class:`tabs-actions`},_e=(0,i.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeTabChange:{},validateTab:{}},emits:[`tab-change`,`tab-before-change`,`tab-validate`,`tab-close`,`tab-add`],setup(e,{expose:n,emit:r}){let o=e,s=r,c=(0,i.ref)(``),l=(0,i.reactive)({}),u=()=>({tabs:[],type:`line`,size:`medium`,placement:`top`,animated:!0,closable:!1,addable:!1,showTabHeader:!0,showActions:!1,showCount:!1,validateBeforeSwitch:!1,defaultTab:``}),d=(0,i.computed)(()=>{let e=u(),t=o.layoutConfig?.tabs||{};return{...e,...t}}),f=(0,i.computed)(()=>d.value.tabs.length>0),p=(0,i.computed)(()=>{if(!f.value)return[];let e=new Map;return d.value.tabs.forEach(t=>{e.set(t.key,[])}),o.formItems.forEach((t,n)=>{let r=(o.options?.[n])?.layout?.tab||d.value.tabs[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),d.value.tabs.map(t=>({config:t,items:e.get(t.key)||[]}))}),m=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?String(n.path):`tab-item-${t}`},h=async()=>{if(!c.value)return!0;try{let e=o.validateTab?await o.validateTab(c.value):!0;return s(`tab-validate`,c.value),l[c.value]=e,e}catch{return l[c.value]=!1,!1}},g=async e=>{if(!e||e===c.value)return!0;if(!p.value.some(t=>t.config.key===e))return!1;try{if(d.value.validateBeforeSwitch&&c.value&&!await h())return!1;if(c.value){if(await o.beforeTabChange?.(c.value,e)===!1)return!1;s(`tab-before-change`,c.value,e)}return c.value=e,s(`tab-change`,e,p.value.findIndex(t=>t.config.key===e)),!0}catch{return!1}},_=e=>{g(e)},v=e=>{s(`tab-close`,e)},y=()=>{s(`tab-add`)},b=()=>{if(!f.value||p.value.length===0)return;let{defaultTab:e}=d.value,t=e||p.value[0]?.config.key;t&&t!==c.value&&(c.value=t,(0,i.nextTick)(()=>{let e=p.value.findIndex(e=>e.config.key===t);e>=0&&s(`tab-change`,t,e)}))};return(0,i.onMounted)(()=>{b()}),(0,i.watch)((0,i.computed)(()=>d.value.tabs.map(e=>e.key).join(`,`)),()=>{c.value&&!d.value.tabs.some(e=>e.key===c.value)&&b()}),(0,i.watch)(()=>d.value.defaultTab,e=>{e&&e!==c.value&&g(e)}),n({switchToTab:g,validateCurrentTab:h,currentTab:(0,i.readonly)(c),totalTabs:(0,i.computed)(()=>p.value.length),tabsWithItems:(0,i.readonly)(p)}),(n,r)=>{let o=a.NBadge,s=a.NSpace,l=a.NEmpty,u=a.NTabPane,b=a.NTabs,x=a.NButton;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,$,[(0,i.createCommentVNode)(` 无标签配置时的单一面板模式 `),f.value?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createCommentVNode)(` 有标签配置时的分标签模式 `),(0,i.createElementVNode)(`div`,fe,[(0,i.createVNode)(b,{value:c.value,"onUpdate:value":[r[0]||=e=>c.value=e,_],type:d.value.type,size:d.value.size,placement:d.value.placement,animated:d.value.animated,closable:d.value.closable,addable:d.value.addable,class:`form-tabs`,onClose:v,onAdd:y},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(p.value,e=>((0,i.openBlock)(),(0,i.createBlock)(u,{key:e.config.key,name:e.config.key,tab:e.config.title,disabled:e.config.disabled,closable:e.config.closable},{tab:(0,i.withCtx)(()=>[(0,i.createVNode)(s,{align:`center`,size:8},{default:(0,i.withCtx)(()=>[e.config.icon?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:0,name:e.config.icon,size:16,class:`tab-icon`},null,8,[`name`])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`span`,null,(0,i.toDisplayString)(e.config.title),1),d.value.showCount?((0,i.openBlock)(),(0,i.createBlock)(o,{key:1,value:e.items.length,max:99,show:e.items.length>0,type:`info`},null,8,[`value`,`show`])):(0,i.createCommentVNode)(`v-if`,!0)]),_:2},1024)]),default:(0,i.withCtx)(()=>[d.value.showTabHeader&&e.config.description?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,pe,[(0,i.createElementVNode)(`p`,me,(0,i.toDisplayString)(e.config.description),1)])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createElementVNode)(`div`,he,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.items,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e),{key:m(e,t)}))),128))]),e.items.length===0?((0,i.openBlock)(),(0,i.createBlock)(l,{key:1,description:`暂无表单项`,class:`tab-empty`})):(0,i.createCommentVNode)(`v-if`,!0)]),_:2},1032,[`name`,`tab`,`disabled`,`closable`]))),128))]),_:1},8,[`value`,`type`,`size`,`placement`,`animated`,`closable`,`addable`]),(0,i.createCommentVNode)(` 标签页操作按钮 `),d.value.showActions?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ge,[(0,i.createVNode)(s,{justify:`space-between`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(s,null,{default:(0,i.withCtx)(()=>[d.value.validateBeforeSwitch?((0,i.openBlock)(),(0,i.createBlock)(x,{key:0,type:`primary`,size:`small`,onClick:h},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:`carbon:star-check`,size:14,style:{"margin-right":`4px`}}),r[1]||=(0,i.createTextVNode)(` 验证当前标签 `,-1)]),_:1})):(0,i.createCommentVNode)(`v-if`,!0)]),_:1}),(0,i.createVNode)(s,null,{default:(0,i.withCtx)(()=>[(0,i.renderSlot)(n.$slots,`tab-actions`,{currentTab:c.value,totalTabs:p.value.length,validateTab:h,switchToTab:g},void 0,!0)]),_:3})]),_:3})])):(0,i.createCommentVNode)(`v-if`,!0)])],2112)):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,de,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.formItems,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e),{key:m(e,t)}))),128))]))])}}});var ve=n.t(_e,[[`__scopeId`,`data-v-3617f22f`]]);const ye={class:`c-form-steps`},be={key:0,class:`single-panel`},xe={key:0,class:`step-header`},Se={class:`step-title`},Ce={key:0,class:`step-description`},we={class:`step-form-items`},Te={class:`steps-actions`},Ee=(0,i.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeStepChange:{},validateStep:{}},emits:[`step-change`,`step-before-change`,`step-validate`],setup(e,{expose:n,emit:r}){let o=e,s=r,c=(0,i.ref)(0),l=(0,i.ref)(!1),u=(0,i.reactive)({}),d=(0,i.computed)(()=>{let e=o.layoutConfig?.steps||{};return{steps:e.steps||[],vertical:e.vertical||!1,size:e.size||`medium`,showStepHeader:e.showStepHeader!==!1,validateBeforeNext:e.validateBeforeNext||!1,prevButtonText:e.prevButtonText||`上一步`,nextButtonText:e.nextButtonText||`下一步`,defaultStep:e.defaultStep||0}}),f=(0,i.computed)(()=>d.value.steps.length>0),p=(0,i.computed)(()=>{if(!f.value)return[];let e=new Map;return d.value.steps.forEach(t=>{e.set(t.key,[])}),o.formItems.forEach((t,n)=>{let r=(o.options?.[n])?.layout?.step||d.value.steps[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),d.value.steps.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),m=(0,i.computed)(()=>{for(let e=0;e<=c.value;e++)if(u[e]===!1)return`error`;return`process`}),h=(0,i.computed)(()=>c.value===0),g=(0,i.computed)(()=>c.value===p.value.length-1),_=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`step-item-${t}`},v=async()=>{try{let e=o.validateStep?await o.validateStep(c.value):!0;return s(`step-validate`,c.value),u[c.value]=e,e}catch{return u[c.value]=!1,!1}},y=async(e,t=!1)=>{if(e<0||e>=p.value.length)return!1;if(e===c.value)return!0;try{return l.value=!0,t&&d.value.validateBeforeNext&&!await v()||await o.beforeStepChange?.(c.value,e)===!1?!1:(s(`step-before-change`,c.value,e),c.value=e,s(`step-change`,c.value,p.value[c.value].config.key),!0)}catch{return!1}finally{l.value=!1}},b=async()=>{await y(c.value+1,!0)},x=()=>{y(c.value-1)},S=async e=>{p.value[e]?.config.disabled||await y(e,e>c.value)},C=()=>{if(!f.value||p.value.length===0)return;let{defaultStep:e}=d.value;c.value=e>=0&&e<p.value.length&&!p.value[e]?.config.disabled?e:0};return(0,i.watch)((0,i.computed)(()=>d.value.steps.map(e=>e.key).join(`,`)),()=>{C()}),(0,i.onMounted)(()=>{C()}),n({nextStep:b,previousStep:x,goToStep:S,validateCurrentStep:v,currentStep:(0,i.readonly)(c),totalSteps:(0,i.computed)(()=>p.value.length)}),(n,r)=>{let o=a.NStep,s=a.NSteps,u=a.NCard,v=a.NButton,y=a.NSpace;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,ye,[(0,i.createCommentVNode)(` 无步骤配置时的单一面板模式 `),f.value?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createCommentVNode)(` 有步骤配置时的分步骤模式 `),(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`steps-container`,{"is-vertical":d.value.vertical}])},[(0,i.createCommentVNode)(` 步骤指示器 `),(0,i.createVNode)(s,{current:c.value+1,status:m.value,size:d.value.size,vertical:d.value.vertical,class:`steps-indicator`},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(p.value,e=>((0,i.openBlock)(),(0,i.createBlock)(o,{key:e.config.key,title:e.config.title,description:e.config.description,disabled:e.config.disabled},null,8,[`title`,`description`,`disabled`]))),128))]),_:1},8,[`current`,`status`,`size`,`vertical`]),(0,i.createCommentVNode)(` 步骤内容区域 `),(0,i.createVNode)(u,{class:`steps-content`,bordered:!1},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(p.value,(e,t)=>(0,i.withDirectives)(((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:e.config.key,class:`step-panel`},[(0,i.createCommentVNode)(` 步骤标题和描述 `),d.value.showStepHeader?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,xe,[(0,i.createElementVNode)(`h3`,Se,(0,i.toDisplayString)(e.config.title),1),e.config.description?((0,i.openBlock)(),(0,i.createElementBlock)(`p`,Ce,(0,i.toDisplayString)(e.config.description),1)):(0,i.createCommentVNode)(`v-if`,!0)])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 步骤内的表单项 `),(0,i.createElementVNode)(`div`,we,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.items,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e),{key:_(e,t)}))),128))])])),[[i.vShow,c.value===t]])),128))]),_:1}),(0,i.createCommentVNode)(` 步骤操作按钮 `),(0,i.createElementVNode)(`div`,Te,[(0,i.createVNode)(y,{justify:`space-between`},{default:(0,i.withCtx)(()=>[c.value>0?((0,i.openBlock)(),(0,i.createBlock)(v,{key:0,disabled:l.value,onClick:x},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:`mdi:chevron-left-first`,size:16,style:{"margin-right":`4px`}}),(0,i.createTextVNode)(` `+(0,i.toDisplayString)(d.value.prevButtonText),1)]),_:1},8,[`disabled`])):(0,i.createCommentVNode)(`v-if`,!0),r[0]||=(0,i.createElementVNode)(`div`,null,null,-1),(0,i.createVNode)(y,null,{default:(0,i.withCtx)(()=>[c.value<p.value.length-1?((0,i.openBlock)(),(0,i.createBlock)(v,{key:0,type:`primary`,loading:l.value,onClick:b},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(d.value.nextButtonText)+` `,1),(0,i.createVNode)(t.t,{name:`mdi:chevron-right-last`,size:16,style:{"margin-left":`4px`}})]),_:1},8,[`loading`])):(0,i.createCommentVNode)(`v-if`,!0),(0,i.renderSlot)(n.$slots,`step-actions`,{currentStep:c.value,totalSteps:p.value.length,isFirstStep:h.value,isLastStep:g.value,nextStep:b,previousStep:x,goToStep:S},void 0,!0)]),_:3})]),_:3})])],2)],2112)):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,be,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.formItems,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e),{key:_(e,t)}))),128))]))])}}});var De=n.t(Ee,[[`__scopeId`,`data-v-d1b5209b`]]);const Oe={maxFields:20,autoSave:!1,enableSort:!0,showControls:!0,showItemControls:!0},ke=[{label:`文本输入`,value:`input`},{label:`数字输入`,value:`inputNumber`},{label:`多行文本`,value:`textarea`},{label:`下拉选择`,value:`select`},{label:`开关切换`,value:`switch`},{label:`评分组件`,value:`rate`}];function Ae(e,t){let n=t.label||`动态字段 ${e}`;return{...t,id:t.id?.trim()||`dynamic_field_${e}`,type:t.type||ke[0].value,prop:t.prop?.trim()||`dynamic_${e}`,label:n,placeholder:t.placeholder||`请输入${n||`内容`}`,visible:t.visible??!0,removable:t.removable??!0,created:t.created??Date.now(),layout:t.layout||{span:12}}}const je=()=>{let e=(0,i.reactive)({config:{...Oe},baseFields:[],dynamicFields:[],hiddenFieldIds:new Set,fieldCounter:0,isInitialized:!1}),t=(0,i.computed)(()=>[...e.baseFields,...e.dynamicFields.map(t=>({...t,show:!e.hiddenFieldIds.has(t.prop)}))]),n=(0,i.computed)(()=>t.value.filter(e=>e.show!==!1)),r=(0,i.computed)(()=>e.dynamicFields.length),a=(0,i.computed)(()=>e.hiddenFieldIds.size),o=(0,i.computed)(()=>e.dynamicFields.length<e.config.maxFields),s=(0,i.computed)(()=>e.hiddenFieldIds.size===0),c=(n={})=>{if(!o.value)return null;e.fieldCounter++;let r=Ae(e.fieldCounter,n);return t.value.some(e=>e.prop===r.prop)?null:(e.dynamicFields.push(r),r)},l=t=>{if(e.dynamicFields.length===0)return null;let n=t??e.dynamicFields.length-1;if(n<0||n>=e.dynamicFields.length||e.dynamicFields[n]?.removable===!1)return null;let r=e.dynamicFields.splice(n,1)[0];return r&&e.hiddenFieldIds.delete(r.prop),r??null},u=()=>{let t=e.dynamicFields.length;return e.dynamicFields.forEach(t=>e.hiddenFieldIds.delete(t.prop)),e.dynamicFields.length=0,e.fieldCounter=0,t},d=n=>t.value.some(e=>e.prop===n)?(e.hiddenFieldIds.has(n)?e.hiddenFieldIds.delete(n):e.hiddenFieldIds.add(n),!e.hiddenFieldIds.has(n)):!1,f=()=>(s.value?e.dynamicFields.forEach(t=>{e.hiddenFieldIds.add(t.prop)}):e.hiddenFieldIds.clear(),s.value),p=t=>{let n={...t};n.maxFields!==void 0&&(n.maxFields=Math.max(0,Math.trunc(n.maxFields))),Object.assign(e.config,n)};return{state:(0,i.readonly)(e),allFields:t,visibleFields:n,dynamicFieldsCount:r,hiddenFieldsCount:a,canAddMoreFields:o,allVisible:s,FIELD_TYPE_OPTIONS:ke,addField:c,removeField:l,clearDynamicFields:u,toggleFieldVisibility:d,toggleAllVisibility:f,updateConfig:p,exportConfig:()=>{let t={baseFields:e.baseFields,dynamicFields:e.dynamicFields,config:e.config,hiddenFields:Array.from(e.hiddenFieldIds),timestamp:Date.now()};return JSON.stringify(t,null,2)},initialize:(t,n={})=>{e.baseFields=[...t],e.dynamicFields.length=0,e.hiddenFieldIds.clear(),e.fieldCounter=0,Object.assign(e.config,Oe),p(n),e.isInitialized=!0}}},Me=Symbol(`dynamicFormState`),Ne={class:`c-form-dynamic`},Pe={key:0,class:`dynamic-controls`},Fe={class:`max-fields-config`},Ie={class:`dynamic-stats`},Le={class:`dynamic-controls-fallback`},Re={class:`dynamic-form-items`},ze=(0,i.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},dynamicFormState:{default:null}},emits:[`field-add`,`field-remove`,`fields-clear`],setup(e,{expose:n,emit:r}){let o=e,s=r,c=(0,i.inject)(Me,null),l=(0,i.computed)(()=>o.dynamicFormState||c),u=(0,i.computed)(()=>!!l.value),d=(0,i.computed)(()=>o.layoutConfig?.dynamic?.grid?.cols??24),f=(0,i.computed)(()=>o.layoutConfig?.dynamic?.grid?.gutter??16),p=(0,i.computed)(()=>o.layoutConfig?.dynamic?.controls?.showControls!==!1),m=(0,i.computed)(()=>l.value?.state.config.maxFields??o.layoutConfig?.dynamic?.dynamic?.maxFields??50),h=(0,i.computed)(()=>l.value?.dynamicFieldsCount.value??0),g=(0,i.computed)(()=>l.value?.canAddMoreFields.value??!1),_=(0,i.computed)(()=>o.formItems.length),v=()=>{let e=l.value?.addField();e&&s(`field-add`,e)},y=()=>{let e=l.value?.removeField();e&&s(`field-remove`,e.prop)},b=()=>{(l.value?.clearDynamicFields()??0)>0&&s(`fields-clear`)},x=e=>{e!==null&&l.value?.updateConfig({maxFields:e})},S=(e,t)=>e.key?.toString()||e.props?.path?.toString()||`dynamic-item-${t}`,C=e=>{let t=o.options?.[e]?.layout?.span;return typeof t==`number`&&t>0&&t<=d.value?t:Math.min(12,d.value)},w=e=>{if(!l.value)return!1;let t=e.props?.path?.toString()||e.key?.toString()||``;return l.value.state.dynamicFields.some(e=>e.prop===t)};return n({addField:()=>l.value?.addField(),removeField:()=>l.value?.removeField(),clearAllDynamic:()=>l.value?.clearDynamicFields(),isDynamicStateAvailable:u,dynamicState:l}),(n,r)=>{let o=a.NBadge,s=a.NButton,c=a.NSpace,l=a.NInputNumber,T=a.NTag,E=a.NCard,D=a.NAlert,O=a.NGridItem,k=a.NGrid;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ne,[(0,i.createCommentVNode)(` 动态控制面板 `),p.value&&u.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Pe,[(0,i.createVNode)(E,{size:`small`,title:`动态表单控制`,bordered:!1},{"header-extra":(0,i.withCtx)(()=>[(0,i.createVNode)(o,{value:h.value,type:`warning`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:`mdi:layers`,size:16})]),_:1},8,[`value`])]),default:(0,i.withCtx)(()=>[(0,i.createVNode)(c,{justify:`space-between`,align:`center`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(c,null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)(s,{size:`small`,type:`primary`,disabled:!g.value,onClick:v},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:`mdi:plus`,size:14})]),default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(` 添加字段 (`+(0,i.toDisplayString)(h.value)+`/`+(0,i.toDisplayString)(m.value)+`) `,1)]),_:1},8,[`disabled`]),(0,i.createVNode)(s,{size:`small`,type:`warning`,disabled:h.value===0,onClick:y},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:`mdi:minus`,size:14})]),default:(0,i.withCtx)(()=>[r[0]||=(0,i.createTextVNode)(` 移除字段 `,-1)]),_:1},8,[`disabled`]),(0,i.createVNode)(s,{size:`small`,type:`error`,disabled:h.value===0,onClick:b},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:`mdi:delete-sweep`,size:14})]),default:(0,i.withCtx)(()=>[r[1]||=(0,i.createTextVNode)(` 清空动态 `,-1)]),_:1},8,[`disabled`])]),_:1}),(0,i.createCommentVNode)(` 最大字段数配置 `),(0,i.createElementVNode)(`div`,Fe,[r[2]||=(0,i.createElementVNode)(`span`,null,`最大字段数:`,-1),(0,i.createVNode)(l,{value:m.value,"onUpdate:value":x,min:5,max:50,size:`small`,style:{width:`100px`}},null,8,[`value`])])]),_:1}),(0,i.createElementVNode)(`div`,Ie,[(0,i.createVNode)(c,null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)(T,{type:`info`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(`总字段: `+(0,i.toDisplayString)(_.value),1)]),_:1}),(0,i.createVNode)(T,{type:`warning`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)(`动态: `+(0,i.toDisplayString)(h.value),1)]),_:1})]),_:1})])]),_:1})])):p.value&&!u.value?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createCommentVNode)(` 状态不可用时的提示 `),(0,i.createElementVNode)(`div`,Le,[(0,i.createVNode)(E,{size:`small`,title:`动态表单控制 (静态模式)`,bordered:!1},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(D,{type:`info`,"show-icon":``},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(t.t,{name:`mdi:information-outline`,size:16})]),default:(0,i.withCtx)(()=>[r[3]||=(0,i.createTextVNode)(` 当前为静态模式,如需动态功能请在父组件中提供动态表单状态。 `,-1)]),_:1})]),_:1})])],2112)):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 表单项渲染区域 `),(0,i.createElementVNode)(`div`,Re,[(0,i.createVNode)(k,{cols:d.value,"x-gap":f.value,"y-gap":f.value},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.formItems,(e,t)=>((0,i.openBlock)(),(0,i.createBlock)(O,{key:S(e,t),span:C(t)},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`dynamic-item-wrapper`,{"is-dynamic-field":w(e)}])},[((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(e)))],2)]),_:2},1032,[`span`]))),128))]),_:1},8,[`cols`,`x-gap`,`y-gap`])])])}}});var Be=n.t(ze,[[`__scopeId`,`data-v-02a5a52b`]]);const Ve={class:`custom-layout`},He={class:`toolbar-content`},Ue={class:`mode-section`},We={class:`stats-section`},Ge={class:`stat-item`},Ke={class:`stat-value`},qe={class:`stat-item`},Je={class:`stat-value`},Ye={class:`actions-section`},Xe={class:`design-tools`},Ze={class:`tool-group`},Qe={key:0,class:`canvas-hint`},$e={class:`areas-container`},et={class:`area-header`},tt={class:`area-info`},nt=[`onClick`],rt={class:`area-controls`},it={class:`field-preview`},at={class:`field-label`},ot={class:`field-type`},st={key:0,class:`area-drop-zone`},ct={class:`field-name`},lt={class:`field-type-tag`},ut={key:0,class:`empty-layout`},dt={key:1,class:`form-container`},ft={class:`form-areas`},pt=(0,i.defineComponent)({__name:`index`,props:{options:{default:()=>[]},formItems:{default:()=>[]},formData:{default:()=>({})}},emits:[`fields-change`,`export-data`],setup(e,{emit:t}){let n=e,r=t,s=(0,i.ref)(!0),c=(0,i.ref)([]),l=(0,i.ref)([]),u=(0,i.ref)(``),d=(0,i.computed)(()=>n.options?.length>0?n.options:n.formItems?.map(e=>{let t=e.props;return{prop:t?.path||``,label:t?.label||t?.path||``,type:`input`,show:!0}}).filter(e=>e.prop)||[]),f=(0,i.computed)(()=>c.value.reduce((e,t)=>e+t.fields.length,0)),p=()=>`${Date.now()}-${Math.random().toString(36).substring(2,11)}`,m=e=>({input:`输入框`,select:`下拉框`,radio:`单选框`,checkbox:`复选框`,textarea:`文本域`,date:`日期`,number:`数字`})[e]||e,h=e=>n.formItems?.find(t=>t.props?.path===e.prop)||null,g=e=>{let t={id:p(),title:`${e===`horizontal`?`水平`:e===`vertical`?`垂直`:`网格`}区域`,type:e,fields:[]};c.value.push(t)},_=e=>{let t=c.value.findIndex(t=>t.id===e);t!==-1&&c.value.splice(t,1)},v=e=>({...e,id:`${e.prop}-${p()}`}),y=(e,t)=>{let n=c.value.find(t=>t.id===e);if(n){let e=n.fields.findIndex(e=>e.id===t);e!==-1&&n.fields.splice(e,1)}},b=()=>{let e=JSON.stringify(c.value,null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`layout-config-${Date.now()}.json`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)},x=()=>{c.value=[]},S=()=>{r(`export-data`,{layout:c.value,formData:n.formData,timestamp:new Date().toISOString()})};return(0,i.watchEffect)(()=>{let e=new Set(c.value.flatMap(e=>e.fields.map(e=>e.prop)));l.value=d.value.filter(t=>!e.has(t.prop)).map(e=>({...e,id:e.prop}))}),(0,i.watch)(()=>c.value,()=>{r(`fields-change`,c.value.flatMap(e=>e.fields.map(e=>({...e,id:void 0}))))},{deep:!0}),(e,t)=>{let n=a.NButton,r=a.NButtonGroup,d=a.NCard,p=a.NInput,C=a.NTag,w=a.NEmpty;return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,Ve,[(0,i.createCommentVNode)(` 顶部工具栏 `),(0,i.createVNode)(d,{bordered:!1,class:`toolbar-card`},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,He,[(0,i.createCommentVNode)(` 模式切换 `),(0,i.createElementVNode)(`div`,Ue,[t[12]||=(0,i.createElementVNode)(`span`,{class:`section-label`},`自定义模式:`,-1),(0,i.createVNode)(r,null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)(n,{type:s.value?`primary`:`default`,onClick:t[0]||=e=>s.value=!0,size:`small`},{default:(0,i.withCtx)(()=>[...t[10]||=[(0,i.createTextVNode)(` 🎨 设计模式 `,-1)]]),_:1},8,[`type`]),(0,i.createVNode)(n,{type:s.value?`default`:`primary`,onClick:t[1]||=e=>s.value=!1,size:`small`},{default:(0,i.withCtx)(()=>[...t[11]||=[(0,i.createTextVNode)(` 📝 填写模式 `,-1)]]),_:1},8,[`type`])]),_:1})]),(0,i.createCommentVNode)(` 统计信息 `),(0,i.createElementVNode)(`div`,We,[(0,i.createElementVNode)(`div`,Ge,[(0,i.createElementVNode)(`div`,Ke,(0,i.toDisplayString)(c.value.length),1),t[13]||=(0,i.createElementVNode)(`div`,{class:`stat-label`},`自定义区域`,-1)]),(0,i.createElementVNode)(`div`,qe,[(0,i.createElementVNode)(`div`,Je,(0,i.toDisplayString)(f.value),1),t[14]||=(0,i.createElementVNode)(`div`,{class:`stat-label`},`字段总数`,-1)])]),(0,i.createCommentVNode)(` 操作按钮 `),(0,i.createElementVNode)(`div`,Ye,[s.value?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[(0,i.createVNode)(n,{secondary:``,onClick:b,size:`small`},{default:(0,i.withCtx)(()=>[...t[15]||=[(0,i.createTextVNode)(` 💾 保存布局 `,-1)]]),_:1}),(0,i.createVNode)(n,{secondary:``,onClick:x,size:`small`},{default:(0,i.withCtx)(()=>[...t[16]||=[(0,i.createTextVNode)(` 🔄 重置布局 `,-1)]]),_:1})],64)):((0,i.openBlock)(),(0,i.createBlock)(n,{key:1,secondary:``,onClick:S,size:`small`},{default:(0,i.withCtx)(()=>[...t[17]||=[(0,i.createTextVNode)(` 📊 导出数据 `,-1)]]),_:1}))])])]),_:1}),(0,i.createCommentVNode)(` 设计模式工具面板 `),s.value?((0,i.openBlock)(),(0,i.createBlock)(d,{key:0,class:`design-panel`,title:`🎨 设计工具`},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,Xe,[(0,i.createElementVNode)(`div`,Ze,[t[21]||=(0,i.createElementVNode)(`span`,{class:`group-label`},`添加区域:`,-1),(0,i.createVNode)(n,{onClick:t[2]||=e=>g(`horizontal`),size:`small`},{default:(0,i.withCtx)(()=>[...t[18]||=[(0,i.createTextVNode)(` ➡️ 水平区域 `,-1)]]),_:1}),(0,i.createVNode)(n,{onClick:t[3]||=e=>g(`vertical`),size:`small`},{default:(0,i.withCtx)(()=>[...t[19]||=[(0,i.createTextVNode)(` ⬇️ 垂直区域 `,-1)]]),_:1}),(0,i.createVNode)(n,{onClick:t[4]||=e=>g(`grid`),size:`small`},{default:(0,i.withCtx)(()=>[...t[20]||=[(0,i.createTextVNode)(` ⚏ 网格区域 `,-1)]]),_:1})])])]),_:1})):(0,i.createCommentVNode)(`v-if`,!0),(0,i.createCommentVNode)(` 主画布区域 `),(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`layout-canvas`,{"design-mode":s.value}])},[(0,i.createCommentVNode)(` 设计模式 `),s.value?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[c.value.length===0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,Qe,[...t[22]||=[(0,i.createElementVNode)(`div`,{class:`hint-content`},[(0,i.createElementVNode)(`h3`,null,`🎨 开始自定义你的布局`),(0,i.createElementVNode)(`p`,null,`点击上方按钮添加区域`)],-1)]])):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createCommentVNode)(` 区域列表 `),(0,i.createElementVNode)(`div`,$e,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(c.value,e=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:e.id,class:(0,i.normalizeClass)([`custom-area`,`area-${e.type}`])},[(0,i.createElementVNode)(`div`,et,[(0,i.createElementVNode)(`div`,tt,[u.value===e.id?((0,i.openBlock)(),(0,i.createBlock)(p,{key:0,value:e.title,"onUpdate:value":t=>e.title=t,size:`small`,onBlur:t[5]||=e=>u.value=``,onKeyup:t[6]||=(0,i.withKeys)(e=>u.value=``,[`enter`]),class:`title-input`},null,8,[`value`,`onUpdate:value`])):((0,i.openBlock)(),(0,i.createElementBlock)(`span`,{key:1,class:`area-title`,onClick:t=>u.value=e.id},(0,i.toDisplayString)(e.title),9,nt)),(0,i.createVNode)(C,{size:`small`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.fields.length)+` 字段`,1)]),_:2},1024)]),(0,i.createElementVNode)(`div`,rt,[(0,i.createVNode)(n,{text:``,onClick:t=>_(e.id),size:`tiny`,type:`error`,title:`删除区域`},{default:(0,i.withCtx)(()=>[...t[23]||=[(0,i.createTextVNode)(` 🗑️ `,-1)]]),_:1},8,[`onClick`])])]),(0,i.createCommentVNode)(` 字段容器(可拖入) `),(0,i.createVNode)((0,i.unref)(o.VueDraggable),{modelValue:e.fields,"onUpdate:modelValue":t=>e.fields=t,class:`area-fields`,group:{name:`form-fields`,pull:!0,put:!0},animation:200,"ghost-class":`field-ghost`,"item-key":`id`},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.fields,r=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:r.id,class:`field-item`},[(0,i.createElementVNode)(`div`,it,[t[25]||=(0,i.createElementVNode)(`span`,{class:`drag-handle`},`⠿`,-1),(0,i.createElementVNode)(`span`,at,(0,i.toDisplayString)(r.label||r.prop),1),(0,i.createElementVNode)(`span`,ot,(0,i.toDisplayString)(m(r.type)),1),(0,i.createVNode)(n,{text:``,size:`tiny`,type:`error`,onClick:t=>y(e.id,r.id),title:`移出字段`},{default:(0,i.withCtx)(()=>[...t[24]||=[(0,i.createTextVNode)(` ✕ `,-1)]]),_:1},8,[`onClick`])])]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`]),e.fields.length===0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,st,` 从下方字段池拖拽字段到这里 `)):(0,i.createCommentVNode)(`v-if`,!0)],2))),128))])],2112)),(0,i.createCommentVNode)(` 字段池(可拖出) `),(0,i.createVNode)(d,{class:`field-pool`,title:`📦 可用字段`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(o.VueDraggable),{modelValue:l.value,"onUpdate:modelValue":t[7]||=e=>l.value=e,class:`pool-fields-grid`,group:{name:`form-fields`,pull:`clone`,put:!0},animation:200,sort:!1,"ghost-class":`field-ghost`,"item-key":`id`,clone:v},{default:(0,i.withCtx)(()=>[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(l.value,e=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:e.id,class:`pool-field`},[t[26]||=(0,i.createElementVNode)(`span`,{class:`drag-handle`},`⠿`,-1),(0,i.createElementVNode)(`span`,ct,(0,i.toDisplayString)(e.label||e.prop),1),(0,i.createElementVNode)(`span`,lt,(0,i.toDisplayString)(m(e.type)),1)]))),128))]),_:1},8,[`modelValue`])]),_:1})],64)):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createCommentVNode)(` 填写模式 `),c.value.length===0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,ut,[(0,i.createVNode)(w,{description:`尚未设计布局`},{extra:(0,i.withCtx)(()=>[(0,i.createVNode)(n,{onClick:t[8]||=e=>s.value=!0,type:`primary`},{default:(0,i.withCtx)(()=>[...t[27]||=[(0,i.createTextVNode)(` 🎨 开始设计 `,-1)]]),_:1})]),_:1})])):((0,i.openBlock)(),(0,i.createElementBlock)(`div`,dt,[(0,i.createElementVNode)(`div`,ft,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(c.value,e=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:e.id,class:(0,i.normalizeClass)([`form-area`,`area-${e.type}`])},[e.fields.length>0?((0,i.openBlock)(),(0,i.createBlock)(d,{key:0,title:e.title},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`div`,{class:(0,i.normalizeClass)([`area-form-items`,`layout-${e.type}`])},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(e.fields,e=>((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(h(e)),{key:e.prop}))),128))],2)]),_:2},1032,[`title`])):((0,i.openBlock)(),(0,i.createBlock)(w,{key:1,description:`此区域暂无字段`,size:`small`},{extra:(0,i.withCtx)(()=>[(0,i.createVNode)(n,{onClick:t[9]||=e=>s.value=!0,size:`small`,secondary:``},{default:(0,i.withCtx)(()=>[...t[28]||=[(0,i.createTextVNode)(` 🎨 添加字段 `,-1)]]),_:1})]),_:1}))],2))),128))])]))],64))],2)])}}});var mt=n.t(pt,[[`__scopeId`,`data-v-fe093284`]]);const ht=(0,i.defineComponent)({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})},renderers:{}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(t,{expose:n,emit:r}){let o=(0,i.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./C_Editor.cjs`)).then(e=>e.C_Editor)),s={default:O,inline:A,grid:te,card:ue,tabs:ve,steps:De,dynamic:Be,custom:mt},u={NFormItem:a.NFormItem,NInput:a.NInput,NInputNumber:a.NInputNumber,NSwitch:a.NSwitch,NSlider:a.NSlider,NRate:a.NRate,NDatePicker:a.NDatePicker,NTimePicker:a.NTimePicker,NCascader:a.NCascader,NColorPicker:a.NColorPicker,NSelect:a.NSelect,NCheckboxGroup:a.NCheckboxGroup,NCheckbox:a.NCheckbox,NRadioGroup:a.NRadioGroup,NRadio:a.NRadio,NUpload:a.NUpload,NButton:a.NButton,NSpace:a.NSpace,NTooltip:a.NTooltip,C_Editor:o},d=t,m=r,h=c(),g=(0,i.computed)(()=>f(l(d.config,h))),{t:_}=e.i(()=>g.value.locale),y=(0,i.ref)(null),{formModel:b,formRules:x,visibleOptions:S,initialize:C,handleFieldChange:w,validate:E,validateField:D,validateStep:k,validateTab:j,validateDynamicFields:M,validateCustomGroup:ee,clearValidation:N,getModel:P,setFields:F,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,handleSubmit:z,handleReset:B,isDirty:re,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncOptionsCache:U,asyncLoadingMap:W,asyncErrorMap:G,reloadOptions:K,setFormItemRef:q,isSubmitting:J,submit:Y}=v((0,i.computed)(()=>d.options),g,y,m,(0,i.computed)(()=>d.modelValue)),{formItems:ae}=T({formModel:b,visibleOptions:S,config:g,handleFieldChange:w,componentMap:u,instanceSlots:(0,i.getCurrentInstance)()?.slots,asyncOptionsCache:U,asyncLoadingMap:W,renderers:(0,i.computed)(()=>d.renderers),setFormItemRef:q,onError:(e,t)=>g.value.onError?.(e,{source:`render`,field:t})}),oe=(0,i.computed)(()=>s[g.value.layout]||s.default),se=(0,i.computed)(()=>({type:g.value.layout,grid:g.value.grid,inline:g.value.inline,card:g.value.card,tabs:g.value.tabs,steps:g.value.steps,dynamic:g.value.dynamic,custom:g.value.custom})),X=(0,i.computed)(()=>p(g.value)),Z=(0,i.computed)(()=>g.value.layout===`steps`?{beforeStepChange:fe,validateStep:pe}:g.value.layout===`tabs`?{beforeTabChange:le,validateTab:$}:{}),Q=(e,...t)=>{let n=g.value[e];if(typeof n==`function`)try{let e=n(...t);e instanceof Promise&&e.catch(e=>g.value.onError?.(e,{source:`callback`}))}catch(e){g.value.onError?.(e,{source:`callback`})}},ce=e=>{g.value.onFieldsChange?.(e)},le=async(e,t)=>{try{return await g.value.onTabBeforeChange?.(e,t)!==!1}catch(e){return g.value.onError?.(e,{source:`callback`}),!1}},$=async e=>{let t=await j(e);return t&&g.value.onTabValidate?.(e),t},de=(e,t)=>{g.value.onStepChange?.(e,t)},fe=async(e,t)=>{try{return await g.value.onStepBeforeChange?.(e,t)!==!1}catch(e){return g.value.onError?.(e,{source:`callback`}),!1}},pe=async e=>{try{return await k(e)?(g.value.onStepValidate?.(e),!0):!1}catch{return!1}};return n({validate:E,validateField:D,validateStep:k,validateTab:j,validateDynamicFields:M,validateCustomGroup:ee,clearValidation:N,getModel:P,setFields:F,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,formRef:y,formModel:b,initialize:C,layoutType:(0,i.computed)(()=>g.value.layout),shouldShowDefaultActions:X,isDirty:re,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncLoadingMap:W,asyncErrorMap:G,reloadOptions:K,isSubmitting:J,submit:Y}),(e,t)=>((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NForm),(0,i.mergeProps)({ref_key:`formRef`,ref:y,model:(0,i.unref)(b),rules:(0,i.unref)(x),"validate-on-rule-change":!1,"label-placement":g.value.labelPlacement,"label-width":g.value.labelWidth,size:g.value.size,disabled:g.value.disabled,readonly:g.value.readonly},e.$attrs),{default:(0,i.withCtx)(()=>[(0,i.createCommentVNode)(` 布局组件渲染 `),((0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(oe.value),(0,i.mergeProps)({"form-items":(0,i.unref)(ae),"layout-config":se.value,options:(0,i.unref)(S),"form-data":(0,i.unref)(b)},Z.value,{onTabChange:t[0]||=(e,t)=>Q(`onTabChange`,e,t),onStepChange:de,onFieldAdd:t[1]||=e=>Q(`onFieldAdd`,e),onFieldRemove:t[2]||=e=>Q(`onFieldRemove`,e),onFieldToggle:t[3]||=(e,t)=>Q(`onFieldToggle`,e,t),onFieldsClear:t[4]||=e=>Q(`onFieldsClear`),onRenderModeChange:t[5]||=e=>Q(`onRenderModeChange`,e),onGroupToggle:t[6]||=(e,t)=>Q(`onGroupToggle`,e,t),onGroupReset:t[7]||=e=>Q(`onGroupReset`,e),onValidateSuccess:t[8]||=e=>m(`validate-success`,e),onValidateError:t[9]||=e=>m(`validate-error`,e),onFieldsChange:ce}),null,16,[`form-items`,`layout-config`,`options`,`form-data`])),(0,i.createCommentVNode)(` 表单操作按钮区域(只在特定布局中显示) `),X.value?((0,i.openBlock)(),(0,i.createBlock)((0,i.unref)(a.NFormItem),{key:0,style:{"margin-top":`20px`}},{default:(0,i.withCtx)(()=>[(0,i.renderSlot)(e.$slots,`action`,{form:y.value,model:(0,i.unref)(b),validate:(0,i.unref)(E),validateField:(0,i.unref)(D),reset:(0,i.unref)(I),setFields:(0,i.unref)(F),getModel:(0,i.unref)(P),clearValidation:(0,i.unref)(N),submit:(0,i.unref)(Y),reloadOptions:(0,i.unref)(K),submitting:(0,i.unref)(J)},()=>[(0,i.createVNode)((0,i.unref)(a.NSpace),null,{default:(0,i.withCtx)(()=>[(0,i.createVNode)((0,i.unref)(a.NButton),{type:`primary`,loading:(0,i.unref)(J),disabled:(0,i.unref)(J),onClick:(0,i.unref)(z)},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(g.value.submitText||(0,i.unref)(_)(`common.submit`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),(0,i.createVNode)((0,i.unref)(a.NButton),{disabled:(0,i.unref)(J),onClick:(0,i.unref)(B)},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(g.value.resetText||(0,i.unref)(_)(`common.reset`)),1)]),_:1},8,[`disabled`,`onClick`])]),_:1})])]),_:3})):(0,i.createCommentVNode)(`v-if`,!0)]),_:3},16,[`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`]))}});Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return ht}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return u}});
package/dist/C_Form2.js CHANGED
@@ -1,2 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./C_Editor2.js";import{NAlert as r,NBadge as i,NButton as a,NButtonGroup as o,NCard as s,NCascader as c,NCheckbox as l,NCheckboxGroup as u,NColorPicker as d,NDatePicker as f,NEmpty as p,NForm as m,NFormItem as h,NGrid as g,NGridItem as _,NInput as v,NInputNumber as y,NProgress as b,NRadio as x,NRadioGroup as S,NRate as C,NSelect as w,NSlider as T,NSpace as E,NStep as D,NSteps as O,NSwitch as ee,NTabPane as k,NTabs as te,NTag as A,NTimePicker as ne,NTooltip as re,NUpload as ie}from"naive-ui";import{Fragment as j,computed as M,createBlock as N,createCommentVNode as P,createElementBlock as F,createElementVNode as I,createTextVNode as L,createVNode as R,defineComponent as z,getCurrentInstance as ae,h as B,inject as oe,mergeProps as se,nextTick as ce,normalizeClass as V,normalizeStyle as le,onMounted as H,openBlock as U,reactive as W,readonly as G,ref as K,renderList as q,renderSlot as ue,resolveComponent as de,resolveDynamicComponent as J,toDisplayString as Y,unref as X,vShow as fe,watch as Z,watchEffect as pe,withCtx as Q,withDirectives as me,withKeys as he}from"vue";import{VueDraggable as ge}from"vue-draggable-plus";import{mergeRules as _e}from"@robot-admin/form-validate";const ve={layout:`default`,labelPlacement:`left`,labelWidth:`auto`,size:`medium`,disabled:!1,readonly:!1,showActions:!0,validateOnChange:!1,mode:`create`},ye=[`steps`,`custom`];function be(e){return{...ve,...e}}function xe(e){return!(e.showActions===!1||ye.includes(e.layout))}function Se(e,t){if(Object.is(e,t))return!0;if(e==null||t==null)return e===t;if(typeof e!=typeof t)return!1;if(Array.isArray(e))return!Array.isArray(t)||e.length!==t.length?!1:e.every((e,n)=>Se(e,t[n]));if(typeof e==`object`){let n=Object.keys(e),r=Object.keys(t);return n.length===r.length?n.every(n=>Se(e[n],t[n])):!1}return!1}function Ce(e){return JSON.parse(JSON.stringify(e))}function $(e){let t=K({}),n=M(()=>r().length>0);function r(){let n=t.value,r=new Set([...Object.keys(n),...Object.keys(e)]),i=[];for(let t of r)Se(n[t],e[t])||i.push(t);return i}function i(n){return!Se(t.value[n],e[n])}function a(){t.value=Ce(e)}return{isDirty:n,getChangedFields:r,isFieldDirty:i,markAsClean:a}}const we={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:null,upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:null},Te=e=>we[e]??null;function Ee(e,t,n,r){let i=W({}),a=W({}),o=K({}),s=K({}),{isDirty:c,getChangedFields:l,isFieldDirty:u,markAsClean:d}=$(i),f=M(()=>e.value.filter(e=>e.show===!1?!1:e.showWhen?e.showWhen(i):!0)),p=()=>{try{Object.keys(a).forEach(e=>delete a[e]),e.value.forEach(e=>{e.prop in i||(i[e.prop]=e.value===void 0?Te(e.type):e.value),m(e)}),ce(()=>d()),_()}catch(e){console.error(`[C_Form] 初始化失败:`,e)}};function m(e){let t=[...e.rulesWhen?e.rulesWhen(i):e.rules??[]];if(e.crossFieldValidator){let n=e.crossFieldValidator;t.push({validator:()=>{let e=n(i);return e?Promise.reject(Error(e)):Promise.resolve()},trigger:[`change`,`blur`]})}if(t.length===0){delete a[e.prop];return}let n=t.every(e=>typeof e.validator==`function`);a[e.prop]=n?_e(t):t}function h(){let t=e.value.filter(e=>e.rulesWhen||e.crossFieldValidator);for(let e of t)m(e)}async function g(e){if(!e.asyncOptions)return;let{prop:t}=e;s.value[t]=!0;try{let n=await e.asyncOptions(i);o.value[t]=n}catch(e){console.warn(`[C_Form] asyncOptions 加载失败 (${t}):`,e),o.value[t]=[]}finally{s.value[t]=!1}}function _(){e.value.filter(e=>e.asyncOptions).forEach(e=>g(e))}function v(){let t=e.value.filter(e=>e.valueWhen);for(let e of t){let t=e.valueWhen(i);t!==void 0&&i[e.prop]!==t&&(i[e.prop]=t)}}let y=n=>{v(),h(),e.value.filter(e=>{if(!e.asyncOptions)return!1;let t=e.dependsOn;return t?Array.isArray(t)?t.includes(n):t===n:!1}).forEach(e=>g(e)),t.value.validateOnChange&&ce(()=>{x(n).catch(()=>{})})},b=async()=>{if(!n.value)throw Error(`[C_Form] 表单引用不存在`);try{await n.value.validate(),r(`validate-success`,O())}catch(e){throw r(`validate-error`,e),e}},x=async e=>{if(!n.value)throw Error(`[C_Form] 表单引用不存在`);let t=Array.isArray(e)?e:[e];try{await n.value.validate()}catch(e){if(!Array.isArray(e))throw e;let n=e.filter(e=>e?.some(e=>{let n=e;return typeof n.field==`string`&&t.includes(n.field)}));if(n.length>0)throw n}},S=e=>{n.value&&(e?(Array.isArray(e)?e:[e]).forEach(e=>{i[e]!==void 0&&(i[e]=i[e])}):n.value.restoreValidation())},C=async(t,n)=>{try{let n=e.value.filter(t).map(e=>e.prop);return n.length===0||await x(n),!0}catch(e){return console.warn(`[C_Form] ${n}验证失败:`,e),!1}},w=async e=>{let n=t.value.steps?.steps?.[e]?.key;return n?C(e=>e.layout?.step===n,`步骤 ${e} `):!0},T=async e=>C(t=>t.layout?.tab===e,`标签页 ${e} `),E=async()=>C(e=>!!e.layout?.dynamic,`动态字段 `),D=async e=>C(t=>t.layout?.group===e,`自定义分组 ${e} `),O=()=>({...i}),ee=e=>{Object.assign(i,e)},k=()=>{try{S(),e.value.forEach(e=>{let t=e.value===void 0?Te(e.type):e.value;i[e.prop]=t}),ce(()=>d())}catch(e){console.error(`[C_Form] 重置表单失败:`,e)}};return H(()=>{p(),Z(()=>e.value,()=>p(),{deep:!0}),Z(()=>i,e=>r(`update:modelValue`,{...e}),{deep:!0})}),{formModel:i,formRules:a,visibleOptions:f,initialize:p,handleFieldChange:y,validate:b,validateField:x,validateStep:w,validateTab:T,validateDynamicFields:E,validateCustomGroup:D,clearValidation:S,getModel:O,setFields:ee,resetFields:k,setFieldValue:async(e,t,n=!1)=>{i[e]=t,n&&await x(e)},getFieldValue:e=>i[e],setFieldsValue:async(e,t=!1)=>{Object.assign(i,e),t&&await b()},handleSubmit:async()=>{try{await b(),r(`submit`,{model:O(),form:n.value})}catch(e){console.warn(`[C_Form] 表单验证失败:`,e)}},handleReset:k,isDirty:c,getChangedFields:l,isFieldDirty:u,markAsClean:d,asyncOptionsCache:o,asyncLoadingMap:s}}function De(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function Oe(e){return{input:t=>B(e.NInput,{...t}),textarea:t=>B(e.NInput,{...t,type:`textarea`}),inputNumber:t=>B(e.NInputNumber,{...t}),switch:t=>B(e.NSwitch,{...t}),slider:t=>B(e.NSlider,{...t}),rate:t=>B(e.NRate,{...t}),datePicker:t=>B(e.NDatePicker,{...t}),daterange:t=>B(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>B(e.NTimePicker,{...t}),cascader:t=>B(e.NCascader,{...t}),colorPicker:t=>B(e.NColorPicker,{...t}),select:(t,n)=>B(e.NSelect,{...t,options:n.children?.map(e=>({value:e.value,label:e.label,disabled:e.disabled}))||[]}),checkbox:(t,n)=>B(e.NCheckboxGroup,{...t},{default:()=>B(e.NSpace,{},{default:()=>n.children?.map(t=>B(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>B(e.NRadioGroup,{...t},{default:()=>B(e.NSpace,{},{default:()=>n.children?.map(t=>B(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>B(e.NUpload,{fileList:t.value||[],"onUpdate:fileList":e=>{t[`onUpdate:value`]?.(e)},...n.attrs},{trigger:()=>i?.slots?.uploadClick?.()||B(e.NButton,{type:`primary`},{default:()=>`选择文件`}),tip:()=>i?.slots?.uploadTip?.()||null}),editor:(t,n,r)=>B(e.C_Editor,{editorId:`editor-${n.prop}`,modelValue:t.value||``,placeholder:n.placeholder,disabled:r.disabled,readonly:r.readonly,"onUpdate:modelValue":e=>{t[`onUpdate:value`]?.(e)},...n.attrs})}}const ke={};function Ae(e,t){ke[e]=t}const je=new Set([`select`,`checkbox`,`radio`,`cascader`]);function Me(e){let{formModel:t,visibleOptions:n,config:r,handleFieldChange:i,componentMap:a,instanceSlots:o,asyncOptionsCache:s,asyncLoadingMap:c}=e,l=a,u={...Oe(l),...ke},d=e=>{let n={value:t[e.prop],"onUpdate:value":n=>{t[e.prop]=n,i(e.prop)},disabled:De(e.disabled,r.value.disabled,t),readonly:De(e.readonly,r.value.readonly,t)};return e.type===`textarea`&&(n.type=`textarea`),e.placeholder&&(n.placeholder=e.placeholder),n};function f(e){let t=e.children??[],n=s.value[e.prop]??[];return n.length>0?n:t}let p=e=>{try{let t=je.has(e.type),n=c.value[e.prop],i=t?{...e,children:f(e)}:e,a=u[i.type];if(!a)return console.warn(`[C_Form] 未支持的组件类型: ${i.type}`),null;let s=d(i);return n&&i.type===`select`&&(s.loading=!0),a({...s,...i.attrs},i,r.value,{slots:o,components:l})}catch(t){return console.error(`[C_Form] 渲染表单项失败:`,t,e),null}};function m(e){if(e.label)return e.help?B(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,B(l.NTooltip,{trigger:`hover`},{trigger:()=>B(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,innerHTML:`&#9432;`}),default:()=>e.help})]):e.label}return{renderFormItem:p,formItems:M(()=>n.value.map(e=>{let t=!!(e.rules?.length||e.rulesWhen||e.crossFieldValidator),n=m(e);return B(l.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,key:e.prop,required:t},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>p(e)})})),getBaseProps:d}}const Ne={class:`c-form-default`};var Pe=t(z({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(e,t)=>(U(),F(`div`,Ne,[(U(!0),F(j,null,q(e.formItems,e=>(U(),N(J(e),{key:e.key}))),128))]))}}),[[`__scopeId`,`data-v-3422ba86`]]),Fe=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=M(()=>280),r=M(()=>t.layoutConfig?.inline?.gap??16),i=M(()=>16),a=M(()=>{let e=t.layoutConfig?.inline?.align;return e===`start`||e===`end`?e:`center`}),o=M(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return`center`}}),s=M(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),c=M(()=>({display:`flex`,flexWrap:`wrap`,alignItems:o.value,justifyContent:s.value,gap:`${i.value}px ${r.value}px`,width:`100%`})),l=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},u=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(e,t)=>(U(),F(`div`,{class:`c-form-inline`,style:le(c.value)},[(U(!0),F(j,null,q(e.formItems,(e,t)=>(U(),F(`div`,{key:l(e,t),class:`c-form-inline-item`,style:le(u(t))},[(U(),N(J(e)))],4))),128))],4))}}),[[`__scopeId`,`data-v-067214c3`]]);const Ie={class:`c-grid-layout`},Le={class:`config-header`},Re={class:`config-controls`},ze={class:`config-label`},Be={class:`item-wrapper`};var Ve=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(t,{expose:n}){let i=t,a=W({cols:24,gutter:16,responsive:!0}),o=M(()=>i.layoutConfig?.grid||{}),c=M(()=>o.value.showConfigPanel),l=M(()=>o.value.showStats),u=M(()=>({cols:c.value?a.cols:o.value.cols??24,gutter:c.value?a.gutter:o.value.gutter??16,responsive:c.value?a.responsive:o.value.responsive??!0})),d=M(()=>({cols:u.value.cols,xGap:u.value.gutter,yGap:u.value.gutter,responsive:u.value.responsive?`screen`:`self`})),f=M(()=>[{key:`cols`,label:`列数`,component:`NInputNumber`,value:M({get:()=>a.cols,set:e=>a.cols=e}),props:{min:1,max:48,size:`small`}},{key:`gutter`,label:`间距`,component:`NInputNumber`,value:M({get:()=>a.gutter,set:e=>a.gutter=e}),props:{min:0,max:48,size:`small`}},{key:`responsive`,label:`响应式`,component:`NSwitch`,value:M({get:()=>a.responsive,set:e=>a.responsive=e}),props:{size:`small`}}]),p=M(()=>`列数: ${u.value.cols} | 间距: ${u.value.gutter}px | 项目: ${i.formItems.length}个`),m=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,h=(e,t)=>{let n=i.options?.[e]?.layout;return n?.[t]??n?.grid?.[t]},v=()=>{let{cols:e}=u.value;return e<=12?e:e<=24?12:8},y=e=>{let t=h(e,`span`),n=h(e,`offset`),r=h(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=u.value.cols?t:v(),offset:typeof n==`number`&&n>=0&&n<u.value.cols?n:0,suffix:!!r}};return Z(o,e=>{e.cols!==void 0&&(a.cols=e.cols),e.gutter!==void 0&&(a.gutter=e.gutter),e.responsive!==void 0&&(a.responsive=e.responsive)},{immediate:!0}),n({updateGridConfig:e=>Object.assign(a,e),getCurrentConfig:()=>({...u.value}),getGridInfo:()=>({...u.value,itemCount:i.formItems.length})}),(t,n)=>{let i=s,a=_,o=g,u=r;return U(),F(`div`,Ie,[P(` 配置面板 `),c.value?(U(),N(i,{key:0,size:`small`,bordered:!1,class:`config-panel`},{header:Q(()=>[I(`div`,Le,[R(e,{name:`mdi:view-grid`,size:18}),n[0]||=I(`span`,null,`网格配置`,-1)])]),default:Q(()=>[I(`div`,Re,[(U(!0),F(j,null,q(f.value,e=>(U(),F(`div`,{key:e.key,class:`config-item`},[I(`span`,ze,Y(e.label)+`:`,1),(U(),N(J(e.component),se({value:e.value,"onUpdate:value":t=>e.value=t},{ref_for:!0},e.props),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1})):P(`v-if`,!0),P(` 网格容器 `),R(o,se(d.value,{class:`grid-container`}),{default:Q(()=>[(U(!0),F(j,null,q(t.formItems,(e,t)=>(U(),N(a,se({key:m(e,t)},{ref_for:!0},y(t),{class:`grid-item`}),{default:Q(()=>[I(`div`,Be,[(U(),N(J(e)))])]),_:2},1040))),128))]),_:1},16),P(` 统计信息 `),l.value?(U(),N(u,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:Q(()=>[R(e,{name:`mdi:information-outline`,size:16}),n[1]||=L(` 网格信息 `,-1)]),default:Q(()=>[L(` `+Y(p.value),1)]),_:1})):P(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-a7a655a4`]]);const He={class:`c-form-card`},Ue={class:`flex items-center gap-2`},We={class:`config-controls`},Ge={class:`config-item`},Ke={class:`flex items-center gap-2`},qe={class:`text-xs min-w-12`},Je={class:`config-item`},Ye={class:`config-item`},Xe={class:`config-item`},Ze={class:`flex items-center gap-3`},Qe={class:`card-header`},$e={class:`header-info`},et={class:`header-text`},tt={key:0},nt={class:`header-actions`},rt={class:`field-stats`},it={class:`card-content`},at={key:0,class:`progress-section`},ot={class:`action-content`},st={class:`status-summary`},ct={class:`status-item`},lt={class:`progress-display`},ut={class:`text-sm min-w-12`},dt={class:`action-buttons`};var ft=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},formData:{default:()=>({})}},setup(t){let n=t,r=K(20),o=K(!0),c=K(!0),l=K(!0),u=K(`vertical`),d=K({}),f=M(()=>n.layoutConfig?.card?.groups||[]),p=M(()=>f.value.length>0),m=M(()=>n.layoutConfig?.card?.showLayoutConfig??!0),h=M(()=>n.layoutConfig?.card?.showActionPanel??!0),g=M(()=>p.value?`layout-${u.value}`:`layout-single`),_=M(()=>{if(!p.value)return[];let e=new Map;return f.value.forEach(t=>{e.set(t.key,[])}),n.formItems.forEach((t,r)=>{let i=(n.options?.[r])?.layout?.group||f.value[0]?.key||`default`;e.has(i)||e.set(i,[]),e.get(i).push(t)}),f.value.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),v=M(()=>{let e=Object.keys(d.value);return e.length>0&&e.every(e=>d.value[e])}),y=M(()=>{if(!n.options||n.options.length===0)return 0;let e=n.options.filter(e=>{let t=n.formData?.[e.prop||``];return C(t)}).length;return Math.round(e/n.options.length*100)}),C=e=>e==null?!1:Array.isArray(e)?e.length>0:typeof e==`string`?e.trim()!==``:!0,w=e=>n.options?n.options.filter(t=>t.layout?.group===e.config.key).filter(e=>{let t=n.formData?.[e.prop||``];return C(t)}).length:0,E=e=>{if(e.items.length===0)return 0;let t=w(e);return Math.round(t/e.items.length*100)},D=e=>{let t={basic:`mdi:account`,contact:`mdi:phone`,preferences:`mdi:cog`,settings:`mdi:cog`,info:`mdi:information`,default:`mdi:form-select`};return t[e]||t.default},O=e=>{d.value[e]=!d.value[e]},k=()=>{let e=!v.value;f.value.forEach(t=>{d.value[t.key]=e})};return H(()=>{let e=n.layoutConfig?.card;e?.direction&&(u.value=e.direction),e?.showProgress!==void 0&&(l.value=e.showProgress),f.value.forEach(e=>{d.value[e.key]=!1})}),(t,n)=>{let f=T,C=ee,te=x,A=S,ne=s,re=i,ie=a,M=b;return U(),F(`div`,He,[P(` 布局配置面板 `),p.value&&m.value?(U(),N(ne,{key:0,class:`layout-config-panel`,bordered:!1},{header:Q(()=>[I(`div`,Ue,[R(e,{name:`mdi:cog`,size:18}),n[4]||=I(`span`,null,`布局配置`,-1)])]),default:Q(()=>[I(`div`,We,[I(`div`,Ge,[n[5]||=I(`span`,null,`卡片间距`,-1),I(`div`,Ke,[R(f,{value:r.value,"onUpdate:value":n[0]||=e=>r.value=e,min:12,max:32,step:4,class:`w-24`},null,8,[`value`]),I(`span`,qe,Y(r.value)+`px`,1)])]),I(`div`,Je,[n[6]||=I(`span`,null,`显示图标`,-1),R(C,{value:o.value,"onUpdate:value":n[1]||=e=>o.value=e,size:`small`},null,8,[`value`])]),I(`div`,Ye,[n[7]||=I(`span`,null,`可折叠`,-1),R(C,{value:c.value,"onUpdate:value":n[2]||=e=>c.value=e,size:`small`},null,8,[`value`])]),I(`div`,Xe,[n[10]||=I(`span`,null,`布局方向`,-1),R(A,{value:u.value,"onUpdate:value":n[3]||=e=>u.value=e,size:`small`},{default:Q(()=>[R(te,{value:`vertical`},{default:Q(()=>n[8]||=[L(`垂直`,-1)]),_:1,__:[8]}),R(te,{value:`horizontal`},{default:Q(()=>n[9]||=[L(`水平`,-1)]),_:1,__:[9]})]),_:1},8,[`value`])])])]),_:1})):P(`v-if`,!0),P(` 表单内容区域 `),I(`div`,{class:V([`form-content`,g.value]),style:le({gap:`${r.value}px`})},[P(` 无分组时的单卡片模式 `),p.value?(U(),F(j,{key:1},[P(` 有分组时的多卡片模式 `),(U(!0),F(j,null,q(_.value,t=>(U(),N(ne,{key:t.config.key,class:V([`group-card`,[`${t.config.key}-card`,{collapsed:c.value&&d.value[t.config.key]}]]),hoverable:``},{header:Q(()=>[I(`div`,Qe,[I(`div`,$e,[o.value&&t.config.icon?(U(),N(e,{key:0,name:t.config.icon,size:20,class:`card-icon`},null,8,[`name`])):o.value?(U(),N(e,{key:1,name:D(t.config.key),size:20,class:`card-icon`},null,8,[`name`])):P(`v-if`,!0),I(`div`,et,[I(`h3`,null,Y(t.config.title),1),t.config.description?(U(),F(`p`,tt,Y(t.config.description),1)):P(`v-if`,!0)])]),I(`div`,nt,[P(` 统计信息 `),I(`div`,rt,[R(re,{value:t.items.length,type:`info`,"show-zero":``},null,8,[`value`]),R(re,{value:`${w(t)}/${t.items.length}`,type:w(t)===t.items.length?`success`:`warning`},null,8,[`value`,`type`])]),P(` 折叠按钮 `),c.value?(U(),N(ie,{key:0,quaternary:``,circle:``,size:`small`,onClick:e=>O(t.config.key)},{icon:Q(()=>[R(e,{name:d.value[t.config.key]?`mdi:chevron-down`:`mdi:chevron-up`,size:18},null,8,[`name`])]),_:2},1032,[`onClick`])):P(`v-if`,!0)])])]),default:Q(()=>[me(I(`div`,it,[P(` 进度指示器 `),l.value?(U(),F(`div`,at,[R(M,{percentage:E(t),color:E(t)===100?`#52c41a`:`#1890ff`,"show-indicator":!1,class:`mb-4`},null,8,[`percentage`,`color`])])):P(`v-if`,!0),P(` 表单项 `),(U(!0),F(j,null,q(t.items,e=>(U(),N(J(e),{key:e.key}))),128))],512),[[fe,!d.value[t.config.key]]])]),_:2},1032,[`class`]))),128))],64)):(U(),N(ne,{key:0,class:`single-card`,hoverable:``},{header:Q(()=>[I(`div`,Ze,[o.value?(U(),N(e,{key:0,name:`mdi:form-select`,size:18,style:{color:`#3b82f6`}})):P(`v-if`,!0),n[11]||=I(`span`,null,`表单信息`,-1)])]),default:Q(()=>[(U(!0),F(j,null,q(t.formItems,e=>(U(),N(J(e),{key:e.key}))),128))]),_:1}))],6),P(` 统一操作面板 `),p.value&&h.value?(U(),N(ne,{key:1,class:`action-panel`,bordered:!1},{default:Q(()=>[I(`div`,ot,[I(`div`,st,[I(`div`,ct,[n[12]||=I(`span`,{class:`label`},`完成进度:`,-1),I(`div`,lt,[R(M,{percentage:y.value,"show-indicator":!1,color:y.value===100?`#52c41a`:`#1890ff`,class:`flex-1`},null,8,[`percentage`,`color`]),I(`span`,ut,Y(y.value)+`%`,1)])])]),I(`div`,dt,[c.value?(U(),N(ie,{key:0,onClick:k},{icon:Q(()=>[R(e,{name:v.value?`mdi:unfold-more-horizontal`:`mdi:unfold-less-horizontal`,size:18},null,8,[`name`])]),default:Q(()=>[L(` `+Y(v.value?`展开全部`:`折叠全部`),1)]),_:1})):P(`v-if`,!0)])])]),_:1})):P(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-e4d182af`]]);const pt={class:`c-form-tabs`},mt={key:0,class:`single-panel`},ht={class:`tabs-container`},gt={key:0,class:`tab-header`},_t={class:`tab-description`},vt={class:`tab-form-items`},yt={key:0,class:`tabs-actions`};var bt=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},emits:[`tab-change`,`tab-before-change`,`tab-validate`,`tab-close`,`tab-add`],setup(t,{expose:n,emit:r}){let o=t,s=r,c=K(``),l=W({}),u=()=>({tabs:[],type:`line`,size:`medium`,placement:`top`,animated:!0,closable:!1,addable:!1,showTabHeader:!0,showActions:!1,showCount:!1,validateBeforeSwitch:!1,defaultTab:``}),d=M(()=>{let e=u(),t=o.layoutConfig?.tabs||{};return{...e,...t}}),f=M(()=>d.value.tabs.length>0),m=M(()=>{if(!f.value)return[];let e=new Map;return d.value.tabs.forEach(t=>{e.set(t.key,[])}),o.formItems.forEach((t,n)=>{let r=(o.options?.[n])?.layout?.tab||d.value.tabs[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),d.value.tabs.map(t=>({config:t,items:e.get(t.key)||[]}))}),h=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`tab-item-${t}`},g=async()=>{if(!c.value)return!0;try{return s(`tab-validate`,c.value),l[c.value]=!0,!0}catch(e){return console.error(`[Tabs Layout] 标签验证失败:`,e),l[c.value]=!1,!1}},_=async e=>{if(!e||e===c.value)return!0;if(!m.value.some(t=>t.config.key===e))return!1;try{return d.value.validateBeforeSwitch&&c.value&&!await g()?!1:(c.value&&s(`tab-before-change`,c.value,e),c.value=e,s(`tab-change`,e,m.value.findIndex(t=>t.config.key===e)),!0)}catch(e){return console.error(`[Tabs Layout] 标签切换失败:`,e),!1}},v=e=>{_(e)},y=e=>{s(`tab-close`,e)},b=()=>{s(`tab-add`)},x=()=>{if(!f.value||m.value.length===0)return;let{defaultTab:e}=d.value,t=e||m.value[0]?.config.key;t&&t!==c.value&&(c.value=t,ce(()=>{let e=m.value.findIndex(e=>e.config.key===t);e>=0&&s(`tab-change`,t,e)}))};return H(()=>{x()}),Z(M(()=>d.value.tabs.map(e=>e.key).join(`,`)),()=>{c.value&&!d.value.tabs.some(e=>e.key===c.value)&&x()}),Z(()=>d.value.defaultTab,e=>{e&&e!==c.value&&_(e)}),n({switchToTab:_,validateCurrentTab:g,currentTab:G(c),totalTabs:M(()=>m.value.length),tabsWithItems:G(m)}),(t,n)=>{let r=i,o=E,s=p,l=k,u=te,x=a;return U(),F(`div`,pt,[P(` 无标签配置时的单一面板模式 `),f.value?(U(),F(j,{key:1},[P(` 有标签配置时的分标签模式 `),I(`div`,ht,[R(u,{value:c.value,"onUpdate:value":[n[0]||=e=>c.value=e,v],type:d.value.type,size:d.value.size,placement:d.value.placement,animated:d.value.animated,closable:d.value.closable,addable:d.value.addable,class:`form-tabs`,onClose:y,onAdd:b},{default:Q(()=>[(U(!0),F(j,null,q(m.value,t=>(U(),N(l,{key:t.config.key,name:t.config.key,tab:t.config.title,disabled:t.config.disabled,closable:t.config.closable},{tab:Q(()=>[R(o,{align:`center`,size:8},{default:Q(()=>[t.config.icon?(U(),N(e,{key:0,name:t.config.icon,size:16,class:`tab-icon`},null,8,[`name`])):P(`v-if`,!0),I(`span`,null,Y(t.config.title),1),d.value.showCount?(U(),N(r,{key:1,value:t.items.length,max:99,show:t.items.length>0,type:`info`},null,8,[`value`,`show`])):P(`v-if`,!0)]),_:2},1024)]),default:Q(()=>[d.value.showTabHeader&&t.config.description?(U(),F(`div`,gt,[I(`p`,_t,Y(t.config.description),1)])):P(`v-if`,!0),I(`div`,vt,[(U(!0),F(j,null,q(t.items,(e,t)=>(U(),N(J(e),{key:h(e,t)}))),128))]),t.items.length===0?(U(),N(s,{key:1,description:`暂无表单项`,class:`tab-empty`})):P(`v-if`,!0)]),_:2},1032,[`name`,`tab`,`disabled`,`closable`]))),128))]),_:1},8,[`value`,`type`,`size`,`placement`,`animated`,`closable`,`addable`]),P(` 标签页操作按钮 `),d.value.showActions?(U(),F(`div`,yt,[R(o,{justify:`space-between`},{default:Q(()=>[R(o,null,{default:Q(()=>[d.value.validateBeforeSwitch?(U(),N(x,{key:0,type:`primary`,size:`small`,onClick:g},{default:Q(()=>[R(e,{name:`carbon:star-check`,size:14,style:{"margin-right":`4px`}}),n[1]||=L(` 验证当前标签 `,-1)]),_:1,__:[1]})):P(`v-if`,!0)]),_:1}),R(o,null,{default:Q(()=>[ue(t.$slots,`tab-actions`,{currentTab:c.value,totalTabs:m.value.length,validateTab:g,switchToTab:_},void 0,!0)]),_:3})]),_:3})])):P(`v-if`,!0)])],2112)):(U(),F(`div`,mt,[(U(!0),F(j,null,q(t.formItems,(e,t)=>(U(),N(J(e),{key:h(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-330de51f`]]);const xt={class:`c-form-steps`},St={key:0,class:`single-panel`},Ct={class:`steps-container`},wt={key:0,class:`step-header`},Tt={class:`step-title`},Et={key:0,class:`step-description`},Dt={class:`step-form-items`},Ot={class:`steps-actions`};var kt=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},emits:[`step-change`,`step-before-change`,`step-validate`],setup(t,{expose:n,emit:r}){let i=t,o=r,c=K(0),l=K(!1),u=W({}),d=M(()=>{let e=i.layoutConfig?.steps||{};return{steps:e.steps||[],vertical:e.vertical||!1,size:e.size||`medium`,showStepHeader:e.showStepHeader!==!1,validateBeforeNext:e.validateBeforeNext||!1,prevButtonText:e.prevButtonText||`上一步`,nextButtonText:e.nextButtonText||`下一步`,defaultStep:e.defaultStep||0}}),f=M(()=>d.value.steps.length>0),p=M(()=>{if(!f.value)return[];let e=new Map;return d.value.steps.forEach(t=>{e.set(t.key,[])}),i.formItems.forEach((t,n)=>{let r=(i.options?.[n])?.layout?.step||d.value.steps[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),d.value.steps.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),m=M(()=>{for(let e=0;e<=c.value;e++)if(u[e]===!1)return`error`;return`process`}),h=M(()=>c.value===0),g=M(()=>c.value===p.value.length-1),_=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`step-item-${t}`},v=async()=>{try{let e=await Promise.resolve(o(`step-validate`,c.value))!==!1;return u[c.value]=e,e}catch(e){return console.error(`[Steps Layout] 步骤验证失败:`,e),u[c.value]=!1,!1}},y=async(e,t=!1)=>{if(e<0||e>=p.value.length)return!1;if(e===c.value)return!0;try{return l.value=!0,t&&d.value.validateBeforeNext&&!await v()?!1:(await o(`step-before-change`,c.value,e),c.value=e,o(`step-change`,c.value,p.value[c.value].config.key),!0)}catch(e){return console.error(`[Steps Layout] 步骤切换失败:`,e),!1}finally{l.value=!1}},b=async()=>{await y(c.value+1,!0)},x=()=>{y(c.value-1)},S=async e=>{p.value[e]?.config.disabled||await y(e,e>c.value)},C=()=>{if(!f.value||p.value.length===0)return;let{defaultStep:e}=d.value;c.value=e>=0&&e<p.value.length&&!p.value[e]?.config.disabled?e:0};return Z(M(()=>d.value.steps.map(e=>e.key).join(`,`)),()=>{C()}),H(()=>{C()}),n({nextStep:b,previousStep:x,goToStep:S,validateCurrentStep:v,currentStep:G(c),totalSteps:M(()=>p.value.length)}),(t,n)=>{let r=D,i=O,o=s,u=a,v=E;return U(),F(`div`,xt,[P(` 无步骤配置时的单一面板模式 `),f.value?(U(),F(j,{key:1},[P(` 有步骤配置时的分步骤模式 `),I(`div`,Ct,[P(` 步骤指示器 `),R(i,{current:c.value+1,status:m.value,size:d.value.size,vertical:d.value.vertical,class:`steps-indicator`},{default:Q(()=>[(U(!0),F(j,null,q(p.value,e=>(U(),N(r,{key:e.config.key,title:e.config.title,description:e.config.description,disabled:e.config.disabled},null,8,[`title`,`description`,`disabled`]))),128))]),_:1},8,[`current`,`status`,`size`,`vertical`]),P(` 步骤内容区域 `),R(o,{class:`steps-content`,bordered:!1},{default:Q(()=>[(U(!0),F(j,null,q(p.value,(e,t)=>me((U(),F(`div`,{key:e.config.key,class:`step-panel`},[P(` 步骤标题和描述 `),d.value.showStepHeader?(U(),F(`div`,wt,[I(`h3`,Tt,Y(e.config.title),1),e.config.description?(U(),F(`p`,Et,Y(e.config.description),1)):P(`v-if`,!0)])):P(`v-if`,!0),P(` 步骤内的表单项 `),I(`div`,Dt,[(U(!0),F(j,null,q(e.items,(e,t)=>(U(),N(J(e),{key:_(e,t)}))),128))])])),[[fe,c.value===t]])),128))]),_:1}),P(` 步骤操作按钮 `),I(`div`,Ot,[R(v,{justify:`space-between`},{default:Q(()=>[c.value>0?(U(),N(u,{key:0,disabled:l.value,onClick:x},{default:Q(()=>[R(e,{name:`mdi:chevron-left-first`,size:16,style:{"margin-right":`4px`}}),L(` `+Y(d.value.prevButtonText),1)]),_:1},8,[`disabled`])):P(`v-if`,!0),n[0]||=I(`div`,null,null,-1),R(v,null,{default:Q(()=>[c.value<p.value.length-1?(U(),N(u,{key:0,type:`primary`,loading:l.value,onClick:b},{default:Q(()=>[L(Y(d.value.nextButtonText)+` `,1),R(e,{name:`mdi:chevron-right-last`,size:16,style:{"margin-left":`4px`}})]),_:1},8,[`loading`])):P(`v-if`,!0),ue(t.$slots,`step-actions`,{currentStep:c.value,totalSteps:p.value.length,isFirstStep:h.value,isLastStep:g.value,nextStep:b,previousStep:x,goToStep:S},void 0,!0)]),_:3})]),_:3,__:[0]})])])],2112)):(U(),F(`div`,St,[(U(!0),F(j,null,q(t.formItems,(e,t)=>(U(),N(J(e),{key:_(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-20345bf3`]]);const At={maxFields:20,autoSave:!1,enableSort:!0,showControls:!0,showItemControls:!0},jt=[{label:`文本输入`,value:`input`},{label:`数字输入`,value:`inputNumber`},{label:`多行文本`,value:`textarea`},{label:`下拉选择`,value:`select`},{label:`开关切换`,value:`switch`},{label:`评分组件`,value:`rate`}],Mt=()=>{let e=W({config:{...At},baseFields:[],dynamicFields:[],hiddenFieldIds:new Set,fieldCounter:0,isInitialized:!1}),t=M(()=>[...e.baseFields,...e.dynamicFields.map(t=>({...t,show:!e.hiddenFieldIds.has(t.prop)}))]),n=M(()=>t.value.filter(e=>e.show!==!1)),r=M(()=>e.dynamicFields.length),i=M(()=>e.hiddenFieldIds.size),a=M(()=>e.dynamicFields.length<e.config.maxFields),o=M(()=>e.hiddenFieldIds.size===0);return{state:G(e),allFields:t,visibleFields:n,dynamicFieldsCount:r,hiddenFieldsCount:i,canAddMoreFields:a,allVisible:o,FIELD_TYPE_OPTIONS:jt,addField:(t={})=>{if(!a.value){console.warn(`[useDynamicFormState] 已达到最大字段数量限制`);return}e.fieldCounter++;let n=t.type||jt[Math.floor(Math.random()*jt.length)].value,r={id:`dynamic_field_${e.fieldCounter}`,type:n,prop:t.prop||`dynamic_${e.fieldCounter}`,label:t.label||`动态字段 ${e.fieldCounter}`,placeholder:t.placeholder||`请输入${t.label||`内容`}`,visible:!0,removable:!0,created:Date.now(),layout:t.layout||{span:12},...t};e.dynamicFields.push(r),console.log(`[useDynamicFormState] 添加字段:`,r)},removeField:t=>{if(e.dynamicFields.length===0){console.warn(`[useDynamicFormState] 没有可移除的动态字段`);return}let n=t??e.dynamicFields.length-1;if(n<0||n>=e.dynamicFields.length){console.warn(`[useDynamicFormState] 字段索引超出范围`);return}let r=e.dynamicFields.splice(n,1)[0];r&&(e.hiddenFieldIds.delete(r.prop),console.log(`[useDynamicFormState] 移除字段:`,r.prop))},clearDynamicFields:()=>{console.log(`[useDynamicFormState] 清空动态字段:`,e.dynamicFields.length),e.dynamicFields.forEach(t=>e.hiddenFieldIds.delete(t.prop)),e.dynamicFields.length=0,e.fieldCounter=0},toggleFieldVisibility:t=>{e.hiddenFieldIds.has(t)?(e.hiddenFieldIds.delete(t),console.log(`[useDynamicFormState] 显示字段:`,t)):(e.hiddenFieldIds.add(t),console.log(`[useDynamicFormState] 隐藏字段:`,t))},toggleAllVisibility:()=>{o.value?(e.dynamicFields.forEach(t=>{e.hiddenFieldIds.add(t.prop)}),console.log(`[useDynamicFormState] 隐藏所有动态字段`)):(e.hiddenFieldIds.clear(),console.log(`[useDynamicFormState] 显示所有字段`))},updateConfig:t=>{Object.assign(e.config,t),console.log(`[useDynamicFormState] 更新配置:`,t)},exportConfig:()=>{let t={baseFields:e.baseFields,dynamicFields:e.dynamicFields,config:e.config,hiddenFields:Array.from(e.hiddenFieldIds),timestamp:Date.now()};return JSON.stringify(t,null,2)},initialize:(t,n={})=>{console.log(`[useDynamicFormState] 初始化状态:`,{baseFieldsCount:t.length,config:n}),e.baseFields=[...t],Object.assign(e.config,n),e.isInitialized=!0,console.log(`[useDynamicFormState] 初始化完成`)}}},Nt=Symbol(`dynamicFormState`),Pt={class:`c-form-dynamic`},Ft={key:0,class:`dynamic-controls`},It={class:`max-fields-config`},Lt={class:`dynamic-stats`},Rt={class:`dynamic-controls-fallback`},zt={class:`dynamic-form-items`};var Bt=t(z({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},dynamicFormState:{default:null}},emits:[`field-add`,`field-remove`,`fields-clear`],setup(t,{expose:n}){let o=t,c=oe(Nt,null),l=M(()=>o.dynamicFormState||c),u=M(()=>!!l.value),d=M(()=>o.layoutConfig?.dynamic?.grid?.cols??24),f=M(()=>o.layoutConfig?.dynamic?.grid?.gutter??16),p=M(()=>o.layoutConfig?.dynamic?.controls?.showControls!==!1),m=M(()=>l.value?.state.config.maxFields??o.layoutConfig?.dynamic?.dynamic?.maxFields??50),h=M(()=>l.value?.dynamicFieldsCount.value??0),v=M(()=>l.value?.canAddMoreFields.value??!1),b=M(()=>o.formItems.length),x=(e,t)=>e.key?.toString()||e.props?.path||`dynamic-item-${t}`,S=e=>{let t=o.options?.[e]?.layout?.span;return typeof t==`number`&&t>0&&t<=d.value?t:Math.min(12,d.value)},C=e=>{if(!l.value)return!1;let t=e.props?.path||e.key?.toString()||``;return l.value.state.dynamicFields.some(e=>e.prop===t)};return n({addField:()=>l.value?.addField(),removeField:()=>l.value?.removeField(),clearAllDynamic:()=>l.value?.clearDynamicFields(),isDynamicStateAvailable:u,dynamicState:l}),(t,n)=>{let o=i,c=a,w=E,T=y,D=A,O=s,ee=r,k=_,te=g;return U(),F(`div`,Pt,[P(` 动态控制面板 `),p.value&&u.value?(U(),F(`div`,Ft,[R(O,{size:`small`,title:`动态表单控制`,bordered:!1},{"header-extra":Q(()=>[R(o,{value:h.value,type:`warning`},{default:Q(()=>[R(e,{name:`mdi:layers`,size:16})]),_:1},8,[`value`])]),default:Q(()=>[R(w,{justify:`space-between`,align:`center`},{default:Q(()=>[R(w,null,{default:Q(()=>[R(c,{size:`small`,type:`primary`,disabled:!v.value,onClick:n[0]||=e=>l.value.addField()},{icon:Q(()=>[R(e,{name:`mdi:plus`,size:14})]),default:Q(()=>[L(` 添加字段 (`+Y(h.value)+`/`+Y(m.value)+`) `,1)]),_:1},8,[`disabled`]),R(c,{size:`small`,type:`warning`,disabled:h.value===0,onClick:n[1]||=e=>l.value.removeField()},{icon:Q(()=>[R(e,{name:`mdi:minus`,size:14})]),default:Q(()=>[n[4]||=L(` 移除字段 `,-1)]),_:1,__:[4]},8,[`disabled`]),R(c,{size:`small`,type:`error`,disabled:h.value===0,onClick:n[2]||=e=>l.value.clearDynamicFields()},{icon:Q(()=>[R(e,{name:`mdi:delete-sweep`,size:14})]),default:Q(()=>[n[5]||=L(` 清空动态 `,-1)]),_:1,__:[5]},8,[`disabled`])]),_:1}),P(` 最大字段数配置 `),I(`div`,It,[n[6]||=I(`span`,null,`最大字段数:`,-1),R(T,{value:m.value,"onUpdate:value":n[3]||=e=>e&&l.value.updateConfig({maxFields:e}),min:5,max:50,size:`small`,style:{width:`100px`}},null,8,[`value`])])]),_:1}),I(`div`,Lt,[R(w,null,{default:Q(()=>[R(D,{type:`info`},{default:Q(()=>[L(`总字段: `+Y(b.value),1)]),_:1}),R(D,{type:`warning`},{default:Q(()=>[L(`动态: `+Y(h.value),1)]),_:1})]),_:1})])]),_:1})])):p.value&&!u.value?(U(),F(j,{key:1},[P(` 状态不可用时的提示 `),I(`div`,Rt,[R(O,{size:`small`,title:`动态表单控制 (静态模式)`,bordered:!1},{default:Q(()=>[R(ee,{type:`info`,"show-icon":``},{icon:Q(()=>[R(e,{name:`mdi:information-outline`,size:16})]),default:Q(()=>[n[7]||=L(` 当前为静态模式,如需动态功能请在父组件中提供动态表单状态。 `,-1)]),_:1,__:[7]})]),_:1})])],2112)):P(`v-if`,!0),P(` 表单项渲染区域 `),I(`div`,zt,[R(te,{cols:d.value,"x-gap":f.value,"y-gap":f.value},{default:Q(()=>[(U(!0),F(j,null,q(t.formItems,(e,t)=>(U(),N(k,{key:x(e,t),span:S(t)},{default:Q(()=>[I(`div`,{class:V([`dynamic-item-wrapper`,{"is-dynamic-field":C(e)}])},[(U(),N(J(e)))],2)]),_:2},1032,[`span`]))),128))]),_:1},8,[`cols`,`x-gap`,`y-gap`])])])}}}),[[`__scopeId`,`data-v-a70ec0bb`]]);const Vt={class:`custom-layout`},Ht={class:`toolbar-content`},Ut={class:`mode-section`},Wt={class:`stats-section`},Gt={class:`stat-item`},Kt={class:`stat-value`},qt={class:`stat-item`},Jt={class:`stat-value`},Yt={class:`actions-section`},Xt={class:`design-tools`},Zt={class:`tool-group`},Qt={key:0,class:`canvas-hint`},$t={class:`areas-container`},en={class:`area-header`},tn={class:`area-info`},nn=[`onClick`],rn={class:`area-controls`},an={class:`field-preview`},on={class:`field-label`},sn={class:`field-type`},cn={key:0,class:`area-drop-zone`},ln={class:`field-name`},un={class:`field-type-tag`},dn={key:0,class:`empty-layout`},fn={key:1,class:`form-container`},pn={class:`form-areas`};var mn=t(z({__name:`index`,props:{options:{default:()=>[]},formItems:{default:()=>[]},formData:{default:()=>({})}},emits:[`fields-change`,`export-data`],setup(e,{emit:t}){let n=e,r=t,i=K(!0),c=K([]),l=K([]),u=K(``),d=M(()=>n.options?.length>0?n.options:n.formItems?.map(e=>{let t=e.props;return{prop:t?.path||``,label:t?.label||t?.path||``,type:`input`,show:!0}}).filter(e=>e.prop)||[]),f=M(()=>c.value.reduce((e,t)=>e+t.fields.length,0)),m=()=>`${Date.now()}-${Math.random().toString(36).substring(2,11)}`,h=e=>({input:`输入框`,select:`下拉框`,radio:`单选框`,checkbox:`复选框`,textarea:`文本域`,date:`日期`,number:`数字`})[e]||e,g=e=>n.formItems?.find(t=>t.props?.path===e.prop)||null,_=e=>{let t={id:m(),title:`${e===`horizontal`?`水平`:e===`vertical`?`垂直`:`网格`}区域`,type:e,fields:[]};c.value.push(t)},y=e=>{let t=c.value.findIndex(t=>t.id===e);t!==-1&&c.value.splice(t,1)},b=e=>({...e,id:`${e.prop}-${m()}`}),x=(e,t)=>{let n=c.value.find(t=>t.id===e);if(n){let e=n.fields.findIndex(e=>e.id===t);e!==-1&&n.fields.splice(e,1)}},S=()=>{let e=JSON.stringify(c.value,null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`layout-config-${Date.now()}.json`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)},C=()=>{c.value=[]},w=()=>{r(`export-data`,{layout:c.value,formData:n.formData,timestamp:new Date().toISOString()})};return pe(()=>{let e=new Set(c.value.flatMap(e=>e.fields.map(e=>e.prop)));l.value=d.value.filter(t=>!e.has(t.prop)).map(e=>({...e,id:e.prop}))}),Z(()=>c.value,()=>{r(`fields-change`,c.value.flatMap(e=>e.fields.map(e=>({...e,id:void 0}))))},{deep:!0}),(e,t)=>{let n=a,r=o,d=s,m=v,T=A,E=p;return U(),F(`div`,Vt,[P(` 顶部工具栏 `),R(d,{bordered:!1,class:`toolbar-card`},{default:Q(()=>[I(`div`,Ht,[P(` 模式切换 `),I(`div`,Ut,[t[12]||=I(`span`,{class:`section-label`},`自定义模式:`,-1),R(r,null,{default:Q(()=>[R(n,{type:i.value?`primary`:`default`,onClick:t[0]||=e=>i.value=!0,size:`small`},{default:Q(()=>t[10]||=[L(` 🎨 设计模式 `,-1)]),_:1,__:[10]},8,[`type`]),R(n,{type:i.value?`default`:`primary`,onClick:t[1]||=e=>i.value=!1,size:`small`},{default:Q(()=>t[11]||=[L(` 📝 填写模式 `,-1)]),_:1,__:[11]},8,[`type`])]),_:1})]),P(` 统计信息 `),I(`div`,Wt,[I(`div`,Gt,[I(`div`,Kt,Y(c.value.length),1),t[13]||=I(`div`,{class:`stat-label`},`自定义区域`,-1)]),I(`div`,qt,[I(`div`,Jt,Y(f.value),1),t[14]||=I(`div`,{class:`stat-label`},`字段总数`,-1)])]),P(` 操作按钮 `),I(`div`,Yt,[i.value?(U(),F(j,{key:0},[R(n,{secondary:``,onClick:S,size:`small`},{default:Q(()=>t[15]||=[L(` 💾 保存布局 `,-1)]),_:1,__:[15]}),R(n,{secondary:``,onClick:C,size:`small`},{default:Q(()=>t[16]||=[L(` 🔄 重置布局 `,-1)]),_:1,__:[16]})],64)):(U(),N(n,{key:1,secondary:``,onClick:w,size:`small`},{default:Q(()=>t[17]||=[L(` 📊 导出数据 `,-1)]),_:1,__:[17]}))])])]),_:1}),P(` 设计模式工具面板 `),i.value?(U(),N(d,{key:0,class:`design-panel`,title:`🎨 设计工具`},{default:Q(()=>[I(`div`,Xt,[I(`div`,Zt,[t[21]||=I(`span`,{class:`group-label`},`添加区域:`,-1),R(n,{onClick:t[2]||=e=>_(`horizontal`),size:`small`},{default:Q(()=>t[18]||=[L(` ➡️ 水平区域 `,-1)]),_:1,__:[18]}),R(n,{onClick:t[3]||=e=>_(`vertical`),size:`small`},{default:Q(()=>t[19]||=[L(` ⬇️ 垂直区域 `,-1)]),_:1,__:[19]}),R(n,{onClick:t[4]||=e=>_(`grid`),size:`small`},{default:Q(()=>t[20]||=[L(` ⚏ 网格区域 `,-1)]),_:1,__:[20]})])])]),_:1})):P(`v-if`,!0),P(` 主画布区域 `),I(`div`,{class:V([`layout-canvas`,{"design-mode":i.value}])},[P(` 设计模式 `),i.value?(U(),F(j,{key:0},[c.value.length===0?(U(),F(`div`,Qt,t[22]||=[I(`div`,{class:`hint-content`},[I(`h3`,null,`🎨 开始自定义你的布局`),I(`p`,null,`点击上方按钮添加区域`)],-1)])):(U(),F(j,{key:1},[P(` 区域列表 `),I(`div`,$t,[(U(!0),F(j,null,q(c.value,e=>(U(),F(`div`,{key:e.id,class:V([`custom-area`,`area-${e.type}`])},[I(`div`,en,[I(`div`,tn,[u.value===e.id?(U(),N(m,{key:0,value:e.title,"onUpdate:value":t=>e.title=t,size:`small`,onBlur:t[5]||=e=>u.value=``,onKeyup:t[6]||=he(e=>u.value=``,[`enter`]),class:`title-input`},null,8,[`value`,`onUpdate:value`])):(U(),F(`span`,{key:1,class:`area-title`,onClick:t=>u.value=e.id},Y(e.title),9,nn)),R(T,{size:`small`},{default:Q(()=>[L(Y(e.fields.length)+` 字段`,1)]),_:2},1024)]),I(`div`,rn,[R(n,{text:``,onClick:t=>y(e.id),size:`tiny`,type:`error`,title:`删除区域`},{default:Q(()=>t[23]||=[L(` 🗑️ `,-1)]),_:2,__:[23]},1032,[`onClick`])])]),P(` 字段容器(可拖入) `),R(X(ge),{modelValue:e.fields,"onUpdate:modelValue":t=>e.fields=t,class:`area-fields`,group:{name:`form-fields`,pull:!0,put:!0},animation:200,"ghost-class":`field-ghost`,"item-key":`id`},{default:Q(()=>[(U(!0),F(j,null,q(e.fields,r=>(U(),F(`div`,{key:r.id,class:`field-item`},[I(`div`,an,[t[25]||=I(`span`,{class:`drag-handle`},`⠿`,-1),I(`span`,on,Y(r.label||r.prop),1),I(`span`,sn,Y(h(r.type)),1),R(n,{text:``,size:`tiny`,type:`error`,onClick:t=>x(e.id,r.id),title:`移出字段`},{default:Q(()=>t[24]||=[L(` ✕ `,-1)]),_:2,__:[24]},1032,[`onClick`])])]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`]),e.fields.length===0?(U(),F(`div`,cn,` 从下方字段池拖拽字段到这里 `)):P(`v-if`,!0)],2))),128))])],2112)),P(` 字段池(可拖出) `),R(d,{class:`field-pool`,title:`📦 可用字段`},{default:Q(()=>[R(X(ge),{modelValue:l.value,"onUpdate:modelValue":t[7]||=e=>l.value=e,class:`pool-fields-grid`,group:{name:`form-fields`,pull:`clone`,put:!0},animation:200,sort:!1,"ghost-class":`field-ghost`,"item-key":`id`,clone:b},{default:Q(()=>[(U(!0),F(j,null,q(l.value,e=>(U(),F(`div`,{key:e.id,class:`pool-field`},[t[26]||=I(`span`,{class:`drag-handle`},`⠿`,-1),I(`span`,ln,Y(e.label||e.prop),1),I(`span`,un,Y(h(e.type)),1)]))),128))]),_:1},8,[`modelValue`])]),_:1})],64)):(U(),F(j,{key:1},[P(` 填写模式 `),c.value.length===0?(U(),F(`div`,dn,[R(E,{description:`尚未设计布局`},{extra:Q(()=>[R(n,{onClick:t[8]||=e=>i.value=!0,type:`primary`},{default:Q(()=>t[27]||=[L(` 🎨 开始设计 `,-1)]),_:1,__:[27]})]),_:1})])):(U(),F(`div`,fn,[I(`div`,pn,[(U(!0),F(j,null,q(c.value,e=>(U(),F(`div`,{key:e.id,class:V([`form-area`,`area-${e.type}`])},[e.fields.length>0?(U(),N(d,{key:0,title:e.title},{default:Q(()=>[I(`div`,{class:V([`area-form-items`,`layout-${e.type}`])},[(U(!0),F(j,null,q(e.fields,e=>(U(),N(J(g(e)),{key:e.prop}))),128))],2)]),_:2},1032,[`title`])):(U(),N(E,{key:1,description:`此区域暂无字段`,size:`small`},{extra:Q(()=>[R(n,{onClick:t[9]||=e=>i.value=!0,size:`small`,secondary:``},{default:Q(()=>t[28]||=[L(` 🎨 添加字段 `,-1)]),_:1,__:[28]})]),_:1}))],2))),128))])]))],64))],2)])}}}),[[`__scopeId`,`data-v-fe093284`]]);const hn=z({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(e,{expose:t,emit:r}){let i={default:Pe,inline:Fe,grid:Ve,card:ft,tabs:bt,steps:kt,dynamic:Bt,custom:mn},o={NFormItem:h,NInput:v,NInputNumber:y,NSwitch:ee,NSlider:T,NRate:C,NDatePicker:f,NTimePicker:ne,NCascader:c,NColorPicker:d,NSelect:w,NCheckboxGroup:u,NCheckbox:l,NRadioGroup:S,NRadio:x,NUpload:ie,NButton:a,NSpace:E,NTooltip:re,C_Editor:n},s=e,p=r,g=M(()=>be(s.config)),_=K(null),{formModel:b,formRules:D,visibleOptions:O,initialize:k,handleFieldChange:te,validate:A,validateField:j,validateStep:F,validateTab:I,validateDynamicFields:z,validateCustomGroup:B,clearValidation:oe,getModel:V,setFields:le,resetFields:H,setFieldValue:W,getFieldValue:G,setFieldsValue:q,handleSubmit:de,handleReset:Y,isDirty:fe,getChangedFields:pe,isFieldDirty:me,markAsClean:he,asyncOptionsCache:ge,asyncLoadingMap:_e}=Ee(M(()=>s.options),g,_,p),{formItems:ve}=Me({formModel:b,visibleOptions:O,config:g,handleFieldChange:te,componentMap:o,instanceSlots:ae()?.slots,asyncOptionsCache:ge,asyncLoadingMap:_e});Z(()=>g.value.initialValues,e=>{e&&g.value.mode===`edit`&&(Object.assign(b,e),ce(()=>he()))},{immediate:!0});let ye=M(()=>i[g.value.layout]||i.default),Se=M(()=>({type:g.value.layout,grid:g.value.grid,inline:g.value.inline,card:g.value.card,tabs:g.value.tabs,steps:g.value.steps,dynamic:g.value.dynamic,custom:g.value.custom})),Ce=M(()=>xe(g.value)),$=(e,...t)=>{let n=g.value[e];n?.(...t)},we=e=>{g.value.onFieldsChange?.(e)},Te=(e,t)=>{g.value.onStepChange?.(e,t)},De=async(e,t)=>(g.value.onStepBeforeChange?.(e,t),!0),Oe=async e=>{try{let t=g.value.steps?.steps?.[e]?.key;if(!t)return!0;let n=s.options.filter(e=>e.layout?.step===t).map(e=>e.prop);return n.length===0?!0:(await j(n),g.value.onStepValidate?.(e),!0)}catch(t){return console.warn(`[C_Form] 步骤 ${e} 验证失败:`,t),!1}};return Z(()=>s.modelValue,e=>{e&&Object.assign(b,e)},{immediate:!0,deep:!0}),t({validate:A,validateField:j,validateStep:F,validateTab:I,validateDynamicFields:z,validateCustomGroup:B,clearValidation:oe,getModel:V,setFields:le,resetFields:H,setFieldValue:W,getFieldValue:G,setFieldsValue:q,formRef:_,formModel:b,initialize:k,layoutType:M(()=>g.value.layout),shouldShowDefaultActions:Ce,isDirty:fe,getChangedFields:pe,isFieldDirty:me,markAsClean:he,asyncLoadingMap:_e}),(e,t)=>(U(),N(X(m),se({ref_key:`formRef`,ref:_,model:X(b),rules:X(D),"validate-on-rule-change":!1,"label-placement":g.value.labelPlacement,"label-width":g.value.labelWidth,size:g.value.size,disabled:g.value.disabled,readonly:g.value.readonly},e.$attrs),{default:Q(()=>[P(` 布局组件渲染 `),(U(),N(J(ye.value),{"form-items":X(ve),"layout-config":Se.value,options:X(O),"form-data":X(b),onTabChange:t[0]||=e=>$(`onTabChange`,e),onTabValidate:t[1]||=e=>$(`onTabValidate`,e),onStepChange:Te,onStepBeforeChange:De,onStepValidate:Oe,onFieldAdd:t[2]||=e=>$(`onFieldAdd`,e),onFieldRemove:t[3]||=e=>$(`onFieldRemove`,e),onFieldToggle:t[4]||=(e,t)=>g.value.onFieldToggle?.(e,t),onFieldsClear:t[5]||=e=>$(`onFieldsClear`),onRenderModeChange:t[6]||=e=>$(`onRenderModeChange`,e),onGroupToggle:t[7]||=(e,t)=>g.value.onGroupToggle?.(e,t),onGroupReset:t[8]||=e=>$(`onGroupReset`,e),onValidateSuccess:t[9]||=e=>p(`validate-success`,e),onValidateError:t[10]||=e=>p(`validate-error`,e),onFieldsChange:we},null,40,[`form-items`,`layout-config`,`options`,`form-data`])),P(` 表单操作按钮区域(只在特定布局中显示) `),Ce.value?(U(),N(X(h),{key:0,style:{"margin-top":`20px`}},{default:Q(()=>[ue(e.$slots,`action`,{form:_.value,model:X(b),validate:X(A),validateField:X(j),reset:X(H),setFields:X(le),getModel:X(V),clearValidation:X(oe)},()=>[R(X(E),null,{default:Q(()=>[R(X(a),{type:`primary`,onClick:X(de)},{default:Q(()=>t[11]||=[L(`提交`,-1)]),_:1,__:[11]},8,[`onClick`]),R(X(a),{onClick:X(Y)},{default:Q(()=>t[12]||=[L(`重置`,-1)]),_:1,__:[12]},8,[`onClick`])]),_:1})])]),_:3})):P(`v-if`,!0)]),_:3},16,[`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`]))}});export{Ae as a,$ as c,be as d,xe as f,Mt as i,ve as l,Nt as n,Me as o,jt as r,Ee as s,hn as t,ye as u};
2
- //# sourceMappingURL=C_Form2.js.map
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{a as i,i as a,n as o,o as s,r as c,s as l,t as u}from"./data.js";import{Fragment as d,computed as f,createBlock as p,createCommentVNode as m,createElementBlock as h,createElementVNode as g,createTextVNode as _,createVNode as v,defineAsyncComponent as y,defineComponent as b,getCurrentInstance as x,h as S,inject as C,mergeProps as w,nextTick as T,normalizeClass as E,normalizeStyle as D,onMounted as O,onScopeDispose as k,openBlock as A,reactive as j,readonly as M,ref as N,renderList as P,renderSlot as F,resolveComponent as I,resolveDynamicComponent as L,toDisplayString as R,toValue as z,unref as B,vShow as ee,watch as V,watchEffect as H,withCtx as U,withDirectives as te,withKeys as ne}from"vue";import{NAlert as W,NBadge as re,NButton as G,NButtonGroup as ie,NCard as K,NCascader as ae,NCheckbox as oe,NCheckboxGroup as se,NColorPicker as ce,NDatePicker as le,NEmpty as ue,NForm as de,NFormItem as fe,NGrid as q,NGridItem as J,NInput as Y,NInputNumber as pe,NProgress as me,NRadio as he,NRadioGroup as ge,NRate as _e,NSelect as ve,NSlider as ye,NSpace as X,NStep as be,NSteps as xe,NSwitch as Se,NTabPane as Z,NTabs as Ce,NTag as we,NTimePicker as Te,NTooltip as Ee,NUpload as De}from"naive-ui";import{VueDraggable as Oe}from"vue-draggable-plus";const ke=Symbol(`c-form-global-config`);function Ae(){return x()?C(ke,{}):{}}function je(e,t){let n=e??{},r=(e,t)=>e||t?{...e,...t}:void 0;return{...t,...n,grid:r(t.grid,n.grid),inline:r(t.inline,n.inline),card:r(t.card,n.card),tabs:r(t.tabs,n.tabs),steps:r(t.steps,n.steps),dynamic:r(t.dynamic,n.dynamic),custom:r(t.custom,n.custom)}}const Me={layout:`default`,labelPlacement:`left`,labelWidth:`auto`,size:`medium`,disabled:!1,readonly:!1,showActions:!0,validateOnChange:!1,preserveRemovedFields:!1,submitText:``,resetText:``,mode:`create`},Ne=[`steps`,`custom`];function Pe(e){return{...Me,...e}}function Fe(e){return!(e.showActions===!1||Ne.includes(e.layout))}function Q(e,t){let n=N({}),r=f(()=>a().length>0);function a(){let r=n.value,a=t?z(t):void 0,o=new Set(a??[...Object.keys(r),...Object.keys(e)]),s=[];for(let t of o)i(c(r,t),c(e,t))||s.push(t);return s}function o(t){return!i(c(n.value,t),c(e,t))}function s(){n.value=u(e)}function l(){return u(n.value)}return{isDirty:r,getChangedFields:a,isFieldDirty:o,markAsClean:s,getCleanModel:l}}const Ie={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:[],upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:!1};function Le(e){return u((e.value===void 0?Ie[e.type]:e.value)??null)}function Re(e){let t=new Set;e.forEach((e,n)=>{if(!e.prop?.trim())throw TypeError(`[C_Form] options[${n}].prop 不能为空`);if(t.has(e.prop))throw TypeError(`[C_Form] 字段 prop 重复: ${e.prop}`);t.add(e.prop)})}function ze(n,r,d,p,m){let h=j({}),g=j({}),_=new Map,v=N({}),y=N({}),b=N({}),x=N(!1),S=new Map,C=new Map,w=new Map,E=new Set,D=!1,O=!1,A=0,M=t(()=>r.value.feedback),{t:P}=e(()=>r.value.locale),{isDirty:F,getChangedFields:I,isFieldDirty:L,markAsClean:R,getCleanModel:z}=Q(h,()=>n.value.map(e=>e.prop));function B(e,t,n){r.value.onError?r.value.onError(e,{source:t,field:n}):M.error(e instanceof Error?e.message:String(e),e)}let ee=f(()=>n.value.filter(e=>{if(e.show===!1)return!1;if(!e.showWhen)return!0;try{return e.showWhen(h)}catch(t){return B(t,`callback`,e.prop),!1}}));function H(){O=!0;let e=++A;T(()=>{e===A&&(O=!1)})}function U(){return u(h)}function te(e){let t=e?u(e):{};return n.value.forEach(e=>{a(t,e.prop)||l(t,e.prop,Le(e))}),t}function ne(e){try{let t=e.rulesWhen?[...e.rulesWhen(h)]:[...e.rules??[]];if(e.required&&!t.some(e=>e.required)&&t.unshift({required:!0,message:P(`form.required`,{label:e.label||e.prop}),trigger:[`input`,`change`,`blur`]}),e.crossFieldValidator){let n=e.crossFieldValidator;t.push({async validator(){let e=await n(h);if(e)throw Error(e)},trigger:[`change`,`blur`]})}if(t.length===0){delete g[e.prop];return}g[e.prop]=t.map(t=>({...t,key:e.prop}))}catch(t){delete g[e.prop],B(t,`callback`,e.prop)}}function W(){n.value.forEach(e=>{(e.rulesWhen||e.crossFieldValidator)&&ne(e)})}function re(e){E.forEach(t=>{e.has(t)||(_.delete(t),delete g[t],delete v.value[t],delete y.value[t],delete b.value[t],C.get(t)?.abort(),C.delete(t),S.delete(t),w.delete(t),r.value.preserveRemovedFields||o(h,t))})}function G(e=!1){try{Re(n.value);let t=new Set(n.value.map(e=>e.prop));re(t),n.value.forEach(e=>{a(h,e.prop)||l(h,e.prop,Le(e)),ne(e),e.asyncOptions&&w.get(e.prop)!==e.asyncOptions&&(w.set(e.prop,e.asyncOptions),T(()=>ae(e,`initialize`)))}),E=t,e&&T(R)}catch(e){throw B(e,`initialize`),e}}function ie(e){H(),s(h,te(e)),W()}function K(e,t,n){return n.signal.aborted||S.get(e)!==t}async function ae(e,t){if(!e.asyncOptions)return;let{prop:n}=e,r=(S.get(n)??0)+1;S.set(n,r),C.get(n)?.abort();let i=new AbortController;C.set(n,i),y.value[n]=!0,delete b.value[n];try{let a=await e.asyncOptions(U(),{field:n,reason:t,signal:i.signal});if(K(n,r,i))return;if(!Array.isArray(a))throw TypeError(`[C_Form] ${n}.asyncOptions 必须返回数组`);v.value[n]=u([...a])}catch(e){if(K(n,r,i))return;b.value[n]=e,B(e,`async-options`,n)}finally{S.get(n)===r&&(y.value[n]=!1,C.delete(n))}}async function oe(e){let t=n.value.filter(t=>t.asyncOptions&&(!e||t.prop===e));if(e&&t.length===0)throw Error(`[C_Form] 未找到异步选项字段: ${e}`);await Promise.all(t.map(e=>ae(e,`manual`)))}function se(){let e=n.value.filter(e=>e.valueWhen);if(e.length!==0){for(let t=0;t<=e.length;t+=1){let t=!1;for(let n of e)try{let e=n.valueWhen?.(h);e!==void 0&&!i(c(h,n.prop),e)&&(l(h,n.prop,u(e)),t=!0)}catch(e){B(e,`callback`,n.prop)}if(!t)return}B(Error(`[C_Form] valueWhen 存在循环依赖,已停止继续计算`),`callback`)}}function ce(e){let t=new Set(e);return n.value.filter(e=>!e.asyncOptions||!e.dependsOn?!1:(Array.isArray(e.dependsOn)?e.dependsOn:[e.dependsOn]).some(e=>t.has(e)))}function le(e){se(),W(),ce(e).forEach(e=>{ae(e,`dependency`)}),r.value.validateOnChange&&T(()=>{q([...e]).catch(()=>void 0)})}function ue(e){le([e])}function de(e,t){t?_.set(e,t):_.delete(e)}async function fe(){if(!d.value)throw Error(`[C_Form] 表单引用不存在`);try{await d.value.validate(),p(`validate-success`,U())}catch(e){throw p(`validate-error`,e),e}}async function q(e){if(!d.value)throw Error(`[C_Form] 表单引用不存在`);let t=[...new Set(Array.isArray(e)?e:[e])],n=[],r=t.flatMap(e=>{let t=_.get(e);return t?[t.validate()]:(n.push(e),[])});n.length>0&&r.push(d.value.validate(void 0,e=>n.includes(String(e.key??``))));let i=(await Promise.allSettled(r)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(i.length>0)throw i}function J(e){if(!e){d.value?.restoreValidation();return}(Array.isArray(e)?e:[e]).forEach(e=>_.get(e)?.restoreValidation())}async function Y(e){let t=n.value.filter(e).map(e=>e.prop);if(t.length===0)return!0;try{return await q(t),!0}catch{return!1}}function pe(e){let t=r.value.steps?.steps?.[e]?.key;return t?Y(e=>e.layout?.step===t):Promise.resolve(!0)}function me(e){return Y(t=>t.layout?.tab===e)}function he(){return Y(e=>!!e.layout?.dynamic)}function ge(e){return Y(t=>t.layout?.group===e)}function _e(e){Object.entries(u(e)).forEach(([e,t])=>{l(h,e,t)}),le(Object.keys(e))}function ve(){s(h,z()),J(),W()}async function ye(e,t,n=!1){l(h,e,u(t)),ue(e),n&&await q(e)}function X(e){return u(c(h,e))}async function be(e,t=!1){_e(e),t&&await q(Object.keys(e))}async function xe(){if(x.value)return!1;x.value=!0;try{await fe();let e={model:U(),form:d.value};try{await r.value.onSubmit?.(e)}catch(e){return B(e,`submit`),!1}return p(`submit`,e),!0}catch{return!1}finally{x.value=!1}}function Se(){G(!0);let e=m?.value??(r.value.mode===`edit`?r.value.initialValues:void 0);e&&ie(e),se(),T(R)}return V(n,()=>{let e=!D;e&&H(),G(e),D=!0},{deep:!0,immediate:!0}),m&&V(m,e=>{e!==void 0&&!i(h,e)&&ie(e)},{deep:!0,immediate:!0}),V(()=>[r.value.mode,r.value.initialValues],([e,t])=>{m?.value!==void 0||e!==`edit`||!t||(ie(t),T(R))},{deep:!0}),V(h,e=>{O||p(`update:modelValue`,u(e))},{deep:!0,flush:`post`}),k(()=>{C.forEach(e=>e.abort()),C.clear(),_.clear()}),{formModel:h,formRules:g,visibleOptions:ee,initialize:Se,handleFieldChange:ue,setFormItemRef:de,validate:fe,validateField:q,validateStep:pe,validateTab:me,validateDynamicFields:he,validateCustomGroup:ge,clearValidation:J,getModel:U,setFields:_e,resetFields:ve,setFieldValue:ye,getFieldValue:X,setFieldsValue:be,submit:xe,handleSubmit:xe,handleReset:ve,isSubmitting:x,isDirty:F,getChangedFields:I,isFieldDirty:L,markAsClean:R,asyncOptionsCache:v,asyncLoadingMap:y,asyncErrorMap:b,reloadOptions:oe}}function Be(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function Ve(e){return{input:t=>S(e.NInput,{...t}),textarea:t=>S(e.NInput,{...t,type:`textarea`}),inputNumber:t=>S(e.NInputNumber,{...t}),switch:t=>S(e.NSwitch,{...t}),slider:t=>S(e.NSlider,{...t}),rate:t=>S(e.NRate,{...t}),datePicker:t=>S(e.NDatePicker,{...t}),daterange:t=>S(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>S(e.NTimePicker,{...t}),cascader:t=>S(e.NCascader,{...t}),colorPicker:t=>S(e.NColorPicker,{...t}),select:(t,n)=>S(e.NSelect,{...t,options:n.children?.map(e=>({...e}))||[]}),checkbox:(t,n)=>S(e.NCheckboxGroup,{...t},{default:()=>S(e.NSpace,{},{default:()=>n.children?.map(t=>S(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>S(e.NRadioGroup,{...t},{default:()=>S(e.NSpace,{},{default:()=>n.children?.map(t=>S(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>{let a={...t},{value:o}=a,s=a[`onUpdate:value`];return delete a.value,delete a[`onUpdate:value`],S(e.NUpload,{...a,fileList:Array.isArray(o)?o:[],"onUpdate:fileList":e=>s?.(e)},{trigger:()=>i.slots?.uploadClick?.()||S(e.NButton,{type:`primary`},{default:()=>`选择文件`}),tip:()=>i.slots?.uploadTip?.()||null})},editor:(t,n)=>{let r={...t},{value:i}=r,a=r[`onUpdate:value`];return delete r.value,delete r[`onUpdate:value`],S(e.C_Editor,{...r,editorId:`editor-${n.prop}`,modelValue:typeof i==`string`?i:``,"onUpdate:modelValue":e=>a?.(e)})}}}const $={};function He(e,t){if(!e.trim())throw TypeError(`[C_Form] renderer type 不能为空`);if(typeof t!=`function`)throw TypeError(`[C_Form] renderer ${e} 必须是函数`);return $[e]=t,()=>Ue(e,t)}function Ue(e,t){return!$[e]||t&&$[e]!==t?!1:delete $[e]}const We=new Set([`select`,`checkbox`,`radio`,`cascader`]);function Ge(e){let{formModel:t,visibleOptions:n,config:r,handleFieldChange:i,componentMap:a,instanceSlots:o,asyncOptionsCache:s,asyncLoadingMap:u,renderers:d,setFormItemRef:p,onError:m}=e,h=a,g=Ve(h),_=e=>d?.value?.[e]??$[e]??g[e],v=e=>{let n={value:c(t,e.prop),"onUpdate:value":n=>{l(t,e.prop,n),i(e.prop)},disabled:Be(e.disabled,r.value.disabled,t),readonly:Be(e.readonly,r.value.readonly,t)};return e.type===`textarea`&&(n.type=`textarea`),e.placeholder&&(n.placeholder=e.placeholder),n};function y(e){let t=e.children??[];return Object.prototype.hasOwnProperty.call(s.value,e.prop)?s.value[e.prop]??[]:t}function b(e){return We.has(e.type)?{...e,children:y(e)}:e}function x(e,t){return e.type===`select`&&u.value[e.prop]&&(t.loading=!0),t}let C=e=>{try{let t=b(e),n=_(t.type);return n?n(x(t,w(t.attrs??{},v(t))),t,r.value,{slots:o,components:h}):(m?.(TypeError(`[C_Form] 未支持的组件类型: ${t.type}`),t.prop),null)}catch(t){return m?.(t,e.prop),null}};function T(e){if(e.label)return e.help?S(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,S(h.NTooltip,{trigger:`hover`},{trigger:()=>S(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,textContent:`ⓘ`}),default:()=>e.help})]):e.label}return{renderFormItem:C,formItems:f(()=>n.value.map(e=>{let t=!!(e.required||e.rules?.some(e=>e.required)),n=T(e);return S(h.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,key:e.prop,required:t,ref:t=>p?.(e.prop,t)},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>C(e)})})),getBaseProps:v}}const Ke={class:`c-form-default`};var qe=r(b({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(t,n)=>(A(),h(`div`,Ke,[(A(!0),h(d,null,P(e.formItems,e=>(A(),p(L(e),{key:e.key}))),128))]))}}),[[`__scopeId`,`data-v-f5303a7c`]]),Je=r(b({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=f(()=>280),r=f(()=>t.layoutConfig?.inline?.gap??16),i=f(()=>16),a=f(()=>{let e=t.layoutConfig?.inline?.align;return e===`start`||e===`end`?e:`center`}),o=f(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return`center`}}),s=f(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),c=f(()=>({display:`flex`,flexWrap:`wrap`,alignItems:o.value,justifyContent:s.value,gap:`${i.value}px ${r.value}px`,width:`100%`})),l=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},u=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(t,n)=>(A(),h(`div`,{class:`c-form-inline`,style:D(c.value)},[(A(!0),h(d,null,P(e.formItems,(e,t)=>(A(),h(`div`,{key:l(e,t),class:`c-form-inline-item`,style:D(u(t))},[(A(),p(L(e)))],4))),128))],4))}}),[[`__scopeId`,`data-v-7c4a2aa3`]]);const Ye={class:`c-grid-layout`},Xe={class:`config-header`},Ze={class:`config-controls`},Qe={class:`config-label`},$e={class:`item-wrapper`};var et=r(b({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e,{expose:t}){let r=e,i=j({cols:24,gutter:16,responsive:!0}),a=f(()=>r.layoutConfig?.grid||{}),o=f(()=>a.value.showConfigPanel),s=f(()=>a.value.showStats),c=f(()=>({cols:o.value?i.cols:a.value.cols??24,gutter:o.value?i.gutter:a.value.gutter??16,responsive:o.value?i.responsive:a.value.responsive??!0})),l=f(()=>({cols:c.value.cols,xGap:c.value.gutter,yGap:c.value.gutter,responsive:c.value.responsive?`screen`:`self`})),u=f(()=>[{key:`cols`,label:`列数`,component:`NInputNumber`,value:f({get:()=>i.cols,set:e=>i.cols=e}),props:{min:1,max:48,size:`small`}},{key:`gutter`,label:`间距`,component:`NInputNumber`,value:f({get:()=>i.gutter,set:e=>i.gutter=e}),props:{min:0,max:48,size:`small`}},{key:`responsive`,label:`响应式`,component:`NSwitch`,value:f({get:()=>i.responsive,set:e=>i.responsive=e}),props:{size:`small`}}]),y=f(()=>`列数: ${c.value.cols} | 间距: ${c.value.gutter}px | 项目: ${r.formItems.length}个`),b=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,x=(e,t)=>{let n=r.options?.[e]?.layout;return n?.[t]??n?.grid?.[t]},S=()=>{let{cols:e}=c.value;return e<=12?e:e<=24?12:8},C=e=>{let t=x(e,`span`),n=x(e,`offset`),r=x(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=c.value.cols?t:S(),offset:typeof n==`number`&&n>=0&&n<c.value.cols?n:0,suffix:!!r}};return V(a,e=>{e.cols!==void 0&&(i.cols=e.cols),e.gutter!==void 0&&(i.gutter=e.gutter),e.responsive!==void 0&&(i.responsive=e.responsive)},{immediate:!0}),t({updateGridConfig:e=>Object.assign(i,e),getCurrentConfig:()=>({...c.value}),getGridInfo:()=>({...c.value,itemCount:r.formItems.length})}),(t,r)=>{let i=K,a=J,c=q,f=W;return A(),h(`div`,Ye,[m(` 配置面板 `),o.value?(A(),p(i,{key:0,size:`small`,bordered:!1,class:`config-panel`},{header:U(()=>[g(`div`,Xe,[v(n,{name:`mdi:view-grid`,size:18}),r[0]||=g(`span`,null,`网格配置`,-1)])]),default:U(()=>[g(`div`,Ze,[(A(!0),h(d,null,P(u.value,e=>(A(),h(`div`,{key:e.key,class:`config-item`},[g(`span`,Qe,R(e.label)+`:`,1),(A(),p(L(e.component),w({value:e.value,"onUpdate:value":t=>e.value=t},{ref_for:!0},e.props),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1})):m(`v-if`,!0),m(` 网格容器 `),v(c,w(l.value,{class:`grid-container`}),{default:U(()=>[(A(!0),h(d,null,P(e.formItems,(e,t)=>(A(),p(a,w({key:b(e,t)},{ref_for:!0},C(t),{class:`grid-item`}),{default:U(()=>[g(`div`,$e,[(A(),p(L(e)))])]),_:2},1040))),128))]),_:1},16),m(` 统计信息 `),s.value?(A(),p(f,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:U(()=>[v(n,{name:`mdi:information-outline`,size:16}),r[1]||=_(` 网格信息 `,-1)]),default:U(()=>[_(` `+R(y.value),1)]),_:1})):m(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-90ef9fa4`]]);const tt={class:`c-form-card`},nt={class:`flex items-center gap-2`},rt={class:`config-controls`},it={class:`config-item`},at={class:`flex items-center gap-2`},ot={class:`text-xs min-w-12`},st={class:`config-item`},ct={class:`config-item`},lt={class:`config-item`},ut={class:`flex items-center gap-3`},dt={class:`card-header`},ft={class:`header-info`},pt={class:`header-text`},mt={key:0},ht={class:`header-actions`},gt={class:`field-stats`},_t={class:`card-content`},vt={key:0,class:`progress-section`},yt={class:`action-content`},bt={class:`status-summary`},xt={class:`status-item`},St={class:`progress-display`},Ct={class:`text-sm min-w-12`},wt={class:`action-buttons`};var Tt=r(b({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},formData:{default:()=>({})}},setup(e){let t=e,r=N(20),i=N(!0),a=N(!0),o=N(!0),s=N(`vertical`),c=N({}),l=f(()=>t.layoutConfig?.card?.groups||[]),u=f(()=>l.value.length>0),y=f(()=>t.layoutConfig?.card?.showLayoutConfig??!0),b=f(()=>t.layoutConfig?.card?.showActionPanel??!0),x=f(()=>u.value?`layout-${s.value}`:`layout-single`),S=f(()=>{if(!u.value)return[];let e=new Map;return l.value.forEach(t=>{e.set(t.key,[])}),t.formItems.forEach((n,r)=>{let i=(t.options?.[r])?.layout?.group||l.value[0]?.key||`default`;e.has(i)||e.set(i,[]),e.get(i).push(n)}),l.value.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),C=f(()=>{let e=Object.keys(c.value);return e.length>0&&e.every(e=>c.value[e])}),w=f(()=>{if(!t.options||t.options.length===0)return 0;let e=t.options.filter(e=>{let n=t.formData?.[e.prop||``];return T(n)}).length;return Math.round(e/t.options.length*100)}),T=e=>e==null?!1:Array.isArray(e)?e.length>0:typeof e==`string`?e.trim()!==``:!0,k=e=>t.options?t.options.filter(t=>t.layout?.group===e.config.key).filter(e=>{let n=t.formData?.[e.prop||``];return T(n)}).length:0,j=e=>{if(e.items.length===0)return 0;let t=k(e);return Math.round(t/e.items.length*100)},M=e=>{let t={basic:`mdi:account`,contact:`mdi:phone`,preferences:`mdi:cog`,settings:`mdi:cog`,info:`mdi:information`,default:`mdi:form-select`};return t[e]||t.default},F=e=>{c.value[e]=!c.value[e]},I=()=>{let e=!C.value;l.value.forEach(t=>{c.value[t.key]=e})};return O(()=>{let e=t.layoutConfig?.card;e?.direction&&(s.value=e.direction),e?.showProgress!==void 0&&(o.value=e.showProgress),l.value.forEach(e=>{c.value[e.key]=!1})}),(t,l)=>{let f=ye,T=Se,O=he,N=ge,z=K,B=re,V=G,H=me;return A(),h(`div`,tt,[m(` 布局配置面板 `),u.value&&y.value?(A(),p(z,{key:0,class:`layout-config-panel`,bordered:!1},{header:U(()=>[g(`div`,nt,[v(n,{name:`mdi:cog`,size:18}),l[4]||=g(`span`,null,`布局配置`,-1)])]),default:U(()=>[g(`div`,rt,[g(`div`,it,[l[5]||=g(`span`,null,`卡片间距`,-1),g(`div`,at,[v(f,{value:r.value,"onUpdate:value":l[0]||=e=>r.value=e,min:12,max:32,step:4,class:`w-24`},null,8,[`value`]),g(`span`,ot,R(r.value)+`px`,1)])]),g(`div`,st,[l[6]||=g(`span`,null,`显示图标`,-1),v(T,{value:i.value,"onUpdate:value":l[1]||=e=>i.value=e,size:`small`},null,8,[`value`])]),g(`div`,ct,[l[7]||=g(`span`,null,`可折叠`,-1),v(T,{value:a.value,"onUpdate:value":l[2]||=e=>a.value=e,size:`small`},null,8,[`value`])]),g(`div`,lt,[l[10]||=g(`span`,null,`布局方向`,-1),v(N,{value:s.value,"onUpdate:value":l[3]||=e=>s.value=e,size:`small`},{default:U(()=>[v(O,{value:`vertical`},{default:U(()=>[...l[8]||=[_(`垂直`,-1)]]),_:1}),v(O,{value:`horizontal`},{default:U(()=>[...l[9]||=[_(`水平`,-1)]]),_:1})]),_:1},8,[`value`])])])]),_:1})):m(`v-if`,!0),m(` 表单内容区域 `),g(`div`,{class:E([`form-content`,x.value]),style:D({gap:`${r.value}px`})},[m(` 无分组时的单卡片模式 `),u.value?(A(),h(d,{key:1},[m(` 有分组时的多卡片模式 `),(A(!0),h(d,null,P(S.value,e=>(A(),p(z,{key:e.config.key,class:E([`group-card`,[`${e.config.key}-card`,{collapsed:a.value&&c.value[e.config.key]}]]),hoverable:``},{header:U(()=>[g(`div`,dt,[g(`div`,ft,[i.value&&e.config.icon?(A(),p(n,{key:0,name:e.config.icon,size:20,class:`card-icon`},null,8,[`name`])):i.value?(A(),p(n,{key:1,name:M(e.config.key),size:20,class:`card-icon`},null,8,[`name`])):m(`v-if`,!0),g(`div`,pt,[g(`h3`,null,R(e.config.title),1),e.config.description?(A(),h(`p`,mt,R(e.config.description),1)):m(`v-if`,!0)])]),g(`div`,ht,[m(` 统计信息 `),g(`div`,gt,[v(B,{value:e.items.length,type:`info`,"show-zero":``},null,8,[`value`]),v(B,{value:`${k(e)}/${e.items.length}`,type:k(e)===e.items.length?`success`:`warning`},null,8,[`value`,`type`])]),m(` 折叠按钮 `),a.value?(A(),p(V,{key:0,quaternary:``,circle:``,size:`small`,onClick:t=>F(e.config.key)},{icon:U(()=>[v(n,{name:c.value[e.config.key]?`mdi:chevron-down`:`mdi:chevron-up`,size:18},null,8,[`name`])]),_:2},1032,[`onClick`])):m(`v-if`,!0)])])]),default:U(()=>[te(g(`div`,_t,[m(` 进度指示器 `),o.value?(A(),h(`div`,vt,[v(H,{percentage:j(e),color:j(e)===100?`#52c41a`:`#1890ff`,"show-indicator":!1,class:`mb-4`},null,8,[`percentage`,`color`])])):m(`v-if`,!0),m(` 表单项 `),(A(!0),h(d,null,P(e.items,e=>(A(),p(L(e),{key:e.key}))),128))],512),[[ee,!c.value[e.config.key]]])]),_:2},1032,[`class`]))),128))],64)):(A(),p(z,{key:0,class:`single-card`,hoverable:``},{header:U(()=>[g(`div`,ut,[i.value?(A(),p(n,{key:0,name:`mdi:form-select`,size:18,style:{color:`#3b82f6`}})):m(`v-if`,!0),l[11]||=g(`span`,null,`表单信息`,-1)])]),default:U(()=>[(A(!0),h(d,null,P(e.formItems,e=>(A(),p(L(e),{key:e.key}))),128))]),_:1}))],6),m(` 统一操作面板 `),u.value&&b.value?(A(),p(z,{key:1,class:`action-panel`,bordered:!1},{default:U(()=>[g(`div`,yt,[g(`div`,bt,[g(`div`,xt,[l[12]||=g(`span`,{class:`label`},`完成进度:`,-1),g(`div`,St,[v(H,{percentage:w.value,"show-indicator":!1,color:w.value===100?`#52c41a`:`#1890ff`,class:`flex-1`},null,8,[`percentage`,`color`]),g(`span`,Ct,R(w.value)+`%`,1)])])]),g(`div`,wt,[a.value?(A(),p(V,{key:0,onClick:I},{icon:U(()=>[v(n,{name:C.value?`mdi:unfold-more-horizontal`:`mdi:unfold-less-horizontal`,size:18},null,8,[`name`])]),default:U(()=>[_(` `+R(C.value?`展开全部`:`折叠全部`),1)]),_:1})):m(`v-if`,!0)])])]),_:1})):m(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-cb63c8f5`]]);const Et={class:`c-form-tabs`},Dt={key:0,class:`single-panel`},Ot={class:`tabs-container`},kt={key:0,class:`tab-header`},At={class:`tab-description`},jt={class:`tab-form-items`},Mt={key:0,class:`tabs-actions`};var Nt=r(b({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeTabChange:{},validateTab:{}},emits:[`tab-change`,`tab-before-change`,`tab-validate`,`tab-close`,`tab-add`],setup(e,{expose:t,emit:r}){let i=e,a=r,o=N(``),s=j({}),c=()=>({tabs:[],type:`line`,size:`medium`,placement:`top`,animated:!0,closable:!1,addable:!1,showTabHeader:!0,showActions:!1,showCount:!1,validateBeforeSwitch:!1,defaultTab:``}),l=f(()=>{let e=c(),t=i.layoutConfig?.tabs||{};return{...e,...t}}),u=f(()=>l.value.tabs.length>0),y=f(()=>{if(!u.value)return[];let e=new Map;return l.value.tabs.forEach(t=>{e.set(t.key,[])}),i.formItems.forEach((t,n)=>{let r=(i.options?.[n])?.layout?.tab||l.value.tabs[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),l.value.tabs.map(t=>({config:t,items:e.get(t.key)||[]}))}),b=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?String(n.path):`tab-item-${t}`},x=async()=>{if(!o.value)return!0;try{let e=i.validateTab?await i.validateTab(o.value):!0;return a(`tab-validate`,o.value),s[o.value]=e,e}catch{return s[o.value]=!1,!1}},S=async e=>{if(!e||e===o.value)return!0;if(!y.value.some(t=>t.config.key===e))return!1;try{if(l.value.validateBeforeSwitch&&o.value&&!await x())return!1;if(o.value){if(await i.beforeTabChange?.(o.value,e)===!1)return!1;a(`tab-before-change`,o.value,e)}return o.value=e,a(`tab-change`,e,y.value.findIndex(t=>t.config.key===e)),!0}catch{return!1}},C=e=>{S(e)},w=e=>{a(`tab-close`,e)},E=()=>{a(`tab-add`)},D=()=>{if(!u.value||y.value.length===0)return;let{defaultTab:e}=l.value,t=e||y.value[0]?.config.key;t&&t!==o.value&&(o.value=t,T(()=>{let e=y.value.findIndex(e=>e.config.key===t);e>=0&&a(`tab-change`,t,e)}))};return O(()=>{D()}),V(f(()=>l.value.tabs.map(e=>e.key).join(`,`)),()=>{o.value&&!l.value.tabs.some(e=>e.key===o.value)&&D()}),V(()=>l.value.defaultTab,e=>{e&&e!==o.value&&S(e)}),t({switchToTab:S,validateCurrentTab:x,currentTab:M(o),totalTabs:f(()=>y.value.length),tabsWithItems:M(y)}),(t,r)=>{let i=re,a=X,s=ue,c=Z,f=Ce,T=G;return A(),h(`div`,Et,[m(` 无标签配置时的单一面板模式 `),u.value?(A(),h(d,{key:1},[m(` 有标签配置时的分标签模式 `),g(`div`,Ot,[v(f,{value:o.value,"onUpdate:value":[r[0]||=e=>o.value=e,C],type:l.value.type,size:l.value.size,placement:l.value.placement,animated:l.value.animated,closable:l.value.closable,addable:l.value.addable,class:`form-tabs`,onClose:w,onAdd:E},{default:U(()=>[(A(!0),h(d,null,P(y.value,e=>(A(),p(c,{key:e.config.key,name:e.config.key,tab:e.config.title,disabled:e.config.disabled,closable:e.config.closable},{tab:U(()=>[v(a,{align:`center`,size:8},{default:U(()=>[e.config.icon?(A(),p(n,{key:0,name:e.config.icon,size:16,class:`tab-icon`},null,8,[`name`])):m(`v-if`,!0),g(`span`,null,R(e.config.title),1),l.value.showCount?(A(),p(i,{key:1,value:e.items.length,max:99,show:e.items.length>0,type:`info`},null,8,[`value`,`show`])):m(`v-if`,!0)]),_:2},1024)]),default:U(()=>[l.value.showTabHeader&&e.config.description?(A(),h(`div`,kt,[g(`p`,At,R(e.config.description),1)])):m(`v-if`,!0),g(`div`,jt,[(A(!0),h(d,null,P(e.items,(e,t)=>(A(),p(L(e),{key:b(e,t)}))),128))]),e.items.length===0?(A(),p(s,{key:1,description:`暂无表单项`,class:`tab-empty`})):m(`v-if`,!0)]),_:2},1032,[`name`,`tab`,`disabled`,`closable`]))),128))]),_:1},8,[`value`,`type`,`size`,`placement`,`animated`,`closable`,`addable`]),m(` 标签页操作按钮 `),l.value.showActions?(A(),h(`div`,Mt,[v(a,{justify:`space-between`},{default:U(()=>[v(a,null,{default:U(()=>[l.value.validateBeforeSwitch?(A(),p(T,{key:0,type:`primary`,size:`small`,onClick:x},{default:U(()=>[v(n,{name:`carbon:star-check`,size:14,style:{"margin-right":`4px`}}),r[1]||=_(` 验证当前标签 `,-1)]),_:1})):m(`v-if`,!0)]),_:1}),v(a,null,{default:U(()=>[F(t.$slots,`tab-actions`,{currentTab:o.value,totalTabs:y.value.length,validateTab:x,switchToTab:S},void 0,!0)]),_:3})]),_:3})])):m(`v-if`,!0)])],2112)):(A(),h(`div`,Dt,[(A(!0),h(d,null,P(e.formItems,(e,t)=>(A(),p(L(e),{key:b(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-3617f22f`]]);const Pt={class:`c-form-steps`},Ft={key:0,class:`single-panel`},It={key:0,class:`step-header`},Lt={class:`step-title`},Rt={key:0,class:`step-description`},zt={class:`step-form-items`},Bt={class:`steps-actions`};var Vt=r(b({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeStepChange:{},validateStep:{}},emits:[`step-change`,`step-before-change`,`step-validate`],setup(e,{expose:t,emit:r}){let i=e,a=r,o=N(0),s=N(!1),c=j({}),l=f(()=>{let e=i.layoutConfig?.steps||{};return{steps:e.steps||[],vertical:e.vertical||!1,size:e.size||`medium`,showStepHeader:e.showStepHeader!==!1,validateBeforeNext:e.validateBeforeNext||!1,prevButtonText:e.prevButtonText||`上一步`,nextButtonText:e.nextButtonText||`下一步`,defaultStep:e.defaultStep||0}}),u=f(()=>l.value.steps.length>0),y=f(()=>{if(!u.value)return[];let e=new Map;return l.value.steps.forEach(t=>{e.set(t.key,[])}),i.formItems.forEach((t,n)=>{let r=(i.options?.[n])?.layout?.step||l.value.steps[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),l.value.steps.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),b=f(()=>{for(let e=0;e<=o.value;e++)if(c[e]===!1)return`error`;return`process`}),x=f(()=>o.value===0),S=f(()=>o.value===y.value.length-1),C=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`step-item-${t}`},w=async()=>{try{let e=i.validateStep?await i.validateStep(o.value):!0;return a(`step-validate`,o.value),c[o.value]=e,e}catch{return c[o.value]=!1,!1}},T=async(e,t=!1)=>{if(e<0||e>=y.value.length)return!1;if(e===o.value)return!0;try{return s.value=!0,t&&l.value.validateBeforeNext&&!await w()||await i.beforeStepChange?.(o.value,e)===!1?!1:(a(`step-before-change`,o.value,e),o.value=e,a(`step-change`,o.value,y.value[o.value].config.key),!0)}catch{return!1}finally{s.value=!1}},D=async()=>{await T(o.value+1,!0)},k=()=>{T(o.value-1)},I=async e=>{y.value[e]?.config.disabled||await T(e,e>o.value)},z=()=>{if(!u.value||y.value.length===0)return;let{defaultStep:e}=l.value;o.value=e>=0&&e<y.value.length&&!y.value[e]?.config.disabled?e:0};return V(f(()=>l.value.steps.map(e=>e.key).join(`,`)),()=>{z()}),O(()=>{z()}),t({nextStep:D,previousStep:k,goToStep:I,validateCurrentStep:w,currentStep:M(o),totalSteps:f(()=>y.value.length)}),(t,r)=>{let i=be,a=xe,c=K,f=G,w=X;return A(),h(`div`,Pt,[m(` 无步骤配置时的单一面板模式 `),u.value?(A(),h(d,{key:1},[m(` 有步骤配置时的分步骤模式 `),g(`div`,{class:E([`steps-container`,{"is-vertical":l.value.vertical}])},[m(` 步骤指示器 `),v(a,{current:o.value+1,status:b.value,size:l.value.size,vertical:l.value.vertical,class:`steps-indicator`},{default:U(()=>[(A(!0),h(d,null,P(y.value,e=>(A(),p(i,{key:e.config.key,title:e.config.title,description:e.config.description,disabled:e.config.disabled},null,8,[`title`,`description`,`disabled`]))),128))]),_:1},8,[`current`,`status`,`size`,`vertical`]),m(` 步骤内容区域 `),v(c,{class:`steps-content`,bordered:!1},{default:U(()=>[(A(!0),h(d,null,P(y.value,(e,t)=>te((A(),h(`div`,{key:e.config.key,class:`step-panel`},[m(` 步骤标题和描述 `),l.value.showStepHeader?(A(),h(`div`,It,[g(`h3`,Lt,R(e.config.title),1),e.config.description?(A(),h(`p`,Rt,R(e.config.description),1)):m(`v-if`,!0)])):m(`v-if`,!0),m(` 步骤内的表单项 `),g(`div`,zt,[(A(!0),h(d,null,P(e.items,(e,t)=>(A(),p(L(e),{key:C(e,t)}))),128))])])),[[ee,o.value===t]])),128))]),_:1}),m(` 步骤操作按钮 `),g(`div`,Bt,[v(w,{justify:`space-between`},{default:U(()=>[o.value>0?(A(),p(f,{key:0,disabled:s.value,onClick:k},{default:U(()=>[v(n,{name:`mdi:chevron-left-first`,size:16,style:{"margin-right":`4px`}}),_(` `+R(l.value.prevButtonText),1)]),_:1},8,[`disabled`])):m(`v-if`,!0),r[0]||=g(`div`,null,null,-1),v(w,null,{default:U(()=>[o.value<y.value.length-1?(A(),p(f,{key:0,type:`primary`,loading:s.value,onClick:D},{default:U(()=>[_(R(l.value.nextButtonText)+` `,1),v(n,{name:`mdi:chevron-right-last`,size:16,style:{"margin-left":`4px`}})]),_:1},8,[`loading`])):m(`v-if`,!0),F(t.$slots,`step-actions`,{currentStep:o.value,totalSteps:y.value.length,isFirstStep:x.value,isLastStep:S.value,nextStep:D,previousStep:k,goToStep:I},void 0,!0)]),_:3})]),_:3})])],2)],2112)):(A(),h(`div`,Ft,[(A(!0),h(d,null,P(e.formItems,(e,t)=>(A(),p(L(e),{key:C(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-d1b5209b`]]);const Ht={maxFields:20,autoSave:!1,enableSort:!0,showControls:!0,showItemControls:!0},Ut=[{label:`文本输入`,value:`input`},{label:`数字输入`,value:`inputNumber`},{label:`多行文本`,value:`textarea`},{label:`下拉选择`,value:`select`},{label:`开关切换`,value:`switch`},{label:`评分组件`,value:`rate`}];function Wt(e,t){let n=t.label||`动态字段 ${e}`;return{...t,id:t.id?.trim()||`dynamic_field_${e}`,type:t.type||Ut[0].value,prop:t.prop?.trim()||`dynamic_${e}`,label:n,placeholder:t.placeholder||`请输入${n||`内容`}`,visible:t.visible??!0,removable:t.removable??!0,created:t.created??Date.now(),layout:t.layout||{span:12}}}const Gt=()=>{let e=j({config:{...Ht},baseFields:[],dynamicFields:[],hiddenFieldIds:new Set,fieldCounter:0,isInitialized:!1}),t=f(()=>[...e.baseFields,...e.dynamicFields.map(t=>({...t,show:!e.hiddenFieldIds.has(t.prop)}))]),n=f(()=>t.value.filter(e=>e.show!==!1)),r=f(()=>e.dynamicFields.length),i=f(()=>e.hiddenFieldIds.size),a=f(()=>e.dynamicFields.length<e.config.maxFields),o=f(()=>e.hiddenFieldIds.size===0),s=(n={})=>{if(!a.value)return null;e.fieldCounter++;let r=Wt(e.fieldCounter,n);return t.value.some(e=>e.prop===r.prop)?null:(e.dynamicFields.push(r),r)},c=t=>{if(e.dynamicFields.length===0)return null;let n=t??e.dynamicFields.length-1;if(n<0||n>=e.dynamicFields.length||e.dynamicFields[n]?.removable===!1)return null;let r=e.dynamicFields.splice(n,1)[0];return r&&e.hiddenFieldIds.delete(r.prop),r??null},l=()=>{let t=e.dynamicFields.length;return e.dynamicFields.forEach(t=>e.hiddenFieldIds.delete(t.prop)),e.dynamicFields.length=0,e.fieldCounter=0,t},u=n=>t.value.some(e=>e.prop===n)?(e.hiddenFieldIds.has(n)?e.hiddenFieldIds.delete(n):e.hiddenFieldIds.add(n),!e.hiddenFieldIds.has(n)):!1,d=()=>(o.value?e.dynamicFields.forEach(t=>{e.hiddenFieldIds.add(t.prop)}):e.hiddenFieldIds.clear(),o.value),p=t=>{let n={...t};n.maxFields!==void 0&&(n.maxFields=Math.max(0,Math.trunc(n.maxFields))),Object.assign(e.config,n)};return{state:M(e),allFields:t,visibleFields:n,dynamicFieldsCount:r,hiddenFieldsCount:i,canAddMoreFields:a,allVisible:o,FIELD_TYPE_OPTIONS:Ut,addField:s,removeField:c,clearDynamicFields:l,toggleFieldVisibility:u,toggleAllVisibility:d,updateConfig:p,exportConfig:()=>{let t={baseFields:e.baseFields,dynamicFields:e.dynamicFields,config:e.config,hiddenFields:Array.from(e.hiddenFieldIds),timestamp:Date.now()};return JSON.stringify(t,null,2)},initialize:(t,n={})=>{e.baseFields=[...t],e.dynamicFields.length=0,e.hiddenFieldIds.clear(),e.fieldCounter=0,Object.assign(e.config,Ht),p(n),e.isInitialized=!0}}},Kt=Symbol(`dynamicFormState`),qt={class:`c-form-dynamic`},Jt={key:0,class:`dynamic-controls`},Yt={class:`max-fields-config`},Xt={class:`dynamic-stats`},Zt={class:`dynamic-controls-fallback`},Qt={class:`dynamic-form-items`};var $t=r(b({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},dynamicFormState:{default:null}},emits:[`field-add`,`field-remove`,`fields-clear`],setup(e,{expose:t,emit:r}){let i=e,a=r,o=C(Kt,null),s=f(()=>i.dynamicFormState||o),c=f(()=>!!s.value),l=f(()=>i.layoutConfig?.dynamic?.grid?.cols??24),u=f(()=>i.layoutConfig?.dynamic?.grid?.gutter??16),y=f(()=>i.layoutConfig?.dynamic?.controls?.showControls!==!1),b=f(()=>s.value?.state.config.maxFields??i.layoutConfig?.dynamic?.dynamic?.maxFields??50),x=f(()=>s.value?.dynamicFieldsCount.value??0),S=f(()=>s.value?.canAddMoreFields.value??!1),w=f(()=>i.formItems.length),T=()=>{let e=s.value?.addField();e&&a(`field-add`,e)},D=()=>{let e=s.value?.removeField();e&&a(`field-remove`,e.prop)},O=()=>{(s.value?.clearDynamicFields()??0)>0&&a(`fields-clear`)},k=e=>{e!==null&&s.value?.updateConfig({maxFields:e})},j=(e,t)=>e.key?.toString()||e.props?.path?.toString()||`dynamic-item-${t}`,M=e=>{let t=i.options?.[e]?.layout?.span;return typeof t==`number`&&t>0&&t<=l.value?t:Math.min(12,l.value)},N=e=>{if(!s.value)return!1;let t=e.props?.path?.toString()||e.key?.toString()||``;return s.value.state.dynamicFields.some(e=>e.prop===t)};return t({addField:()=>s.value?.addField(),removeField:()=>s.value?.removeField(),clearAllDynamic:()=>s.value?.clearDynamicFields(),isDynamicStateAvailable:c,dynamicState:s}),(t,r)=>{let i=re,a=G,o=X,s=pe,f=we,C=K,F=W,I=J,z=q;return A(),h(`div`,qt,[m(` 动态控制面板 `),y.value&&c.value?(A(),h(`div`,Jt,[v(C,{size:`small`,title:`动态表单控制`,bordered:!1},{"header-extra":U(()=>[v(i,{value:x.value,type:`warning`},{default:U(()=>[v(n,{name:`mdi:layers`,size:16})]),_:1},8,[`value`])]),default:U(()=>[v(o,{justify:`space-between`,align:`center`},{default:U(()=>[v(o,null,{default:U(()=>[v(a,{size:`small`,type:`primary`,disabled:!S.value,onClick:T},{icon:U(()=>[v(n,{name:`mdi:plus`,size:14})]),default:U(()=>[_(` 添加字段 (`+R(x.value)+`/`+R(b.value)+`) `,1)]),_:1},8,[`disabled`]),v(a,{size:`small`,type:`warning`,disabled:x.value===0,onClick:D},{icon:U(()=>[v(n,{name:`mdi:minus`,size:14})]),default:U(()=>[r[0]||=_(` 移除字段 `,-1)]),_:1},8,[`disabled`]),v(a,{size:`small`,type:`error`,disabled:x.value===0,onClick:O},{icon:U(()=>[v(n,{name:`mdi:delete-sweep`,size:14})]),default:U(()=>[r[1]||=_(` 清空动态 `,-1)]),_:1},8,[`disabled`])]),_:1}),m(` 最大字段数配置 `),g(`div`,Yt,[r[2]||=g(`span`,null,`最大字段数:`,-1),v(s,{value:b.value,"onUpdate:value":k,min:5,max:50,size:`small`,style:{width:`100px`}},null,8,[`value`])])]),_:1}),g(`div`,Xt,[v(o,null,{default:U(()=>[v(f,{type:`info`},{default:U(()=>[_(`总字段: `+R(w.value),1)]),_:1}),v(f,{type:`warning`},{default:U(()=>[_(`动态: `+R(x.value),1)]),_:1})]),_:1})])]),_:1})])):y.value&&!c.value?(A(),h(d,{key:1},[m(` 状态不可用时的提示 `),g(`div`,Zt,[v(C,{size:`small`,title:`动态表单控制 (静态模式)`,bordered:!1},{default:U(()=>[v(F,{type:`info`,"show-icon":``},{icon:U(()=>[v(n,{name:`mdi:information-outline`,size:16})]),default:U(()=>[r[3]||=_(` 当前为静态模式,如需动态功能请在父组件中提供动态表单状态。 `,-1)]),_:1})]),_:1})])],2112)):m(`v-if`,!0),m(` 表单项渲染区域 `),g(`div`,Qt,[v(z,{cols:l.value,"x-gap":u.value,"y-gap":u.value},{default:U(()=>[(A(!0),h(d,null,P(e.formItems,(e,t)=>(A(),p(I,{key:j(e,t),span:M(t)},{default:U(()=>[g(`div`,{class:E([`dynamic-item-wrapper`,{"is-dynamic-field":N(e)}])},[(A(),p(L(e)))],2)]),_:2},1032,[`span`]))),128))]),_:1},8,[`cols`,`x-gap`,`y-gap`])])])}}}),[[`__scopeId`,`data-v-02a5a52b`]]);const en={class:`custom-layout`},tn={class:`toolbar-content`},nn={class:`mode-section`},rn={class:`stats-section`},an={class:`stat-item`},on={class:`stat-value`},sn={class:`stat-item`},cn={class:`stat-value`},ln={class:`actions-section`},un={class:`design-tools`},dn={class:`tool-group`},fn={key:0,class:`canvas-hint`},pn={class:`areas-container`},mn={class:`area-header`},hn={class:`area-info`},gn=[`onClick`],_n={class:`area-controls`},vn={class:`field-preview`},yn={class:`field-label`},bn={class:`field-type`},xn={key:0,class:`area-drop-zone`},Sn={class:`field-name`},Cn={class:`field-type-tag`},wn={key:0,class:`empty-layout`},Tn={key:1,class:`form-container`},En={class:`form-areas`};var Dn=r(b({__name:`index`,props:{options:{default:()=>[]},formItems:{default:()=>[]},formData:{default:()=>({})}},emits:[`fields-change`,`export-data`],setup(e,{emit:t}){let n=e,r=t,i=N(!0),a=N([]),o=N([]),s=N(``),c=f(()=>n.options?.length>0?n.options:n.formItems?.map(e=>{let t=e.props;return{prop:t?.path||``,label:t?.label||t?.path||``,type:`input`,show:!0}}).filter(e=>e.prop)||[]),l=f(()=>a.value.reduce((e,t)=>e+t.fields.length,0)),u=()=>`${Date.now()}-${Math.random().toString(36).substring(2,11)}`,y=e=>({input:`输入框`,select:`下拉框`,radio:`单选框`,checkbox:`复选框`,textarea:`文本域`,date:`日期`,number:`数字`})[e]||e,b=e=>n.formItems?.find(t=>t.props?.path===e.prop)||null,x=e=>{let t={id:u(),title:`${e===`horizontal`?`水平`:e===`vertical`?`垂直`:`网格`}区域`,type:e,fields:[]};a.value.push(t)},S=e=>{let t=a.value.findIndex(t=>t.id===e);t!==-1&&a.value.splice(t,1)},C=e=>({...e,id:`${e.prop}-${u()}`}),w=(e,t)=>{let n=a.value.find(t=>t.id===e);if(n){let e=n.fields.findIndex(e=>e.id===t);e!==-1&&n.fields.splice(e,1)}},T=()=>{let e=JSON.stringify(a.value,null,2),t=new Blob([e],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`layout-config-${Date.now()}.json`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)},D=()=>{a.value=[]},O=()=>{r(`export-data`,{layout:a.value,formData:n.formData,timestamp:new Date().toISOString()})};return H(()=>{let e=new Set(a.value.flatMap(e=>e.fields.map(e=>e.prop)));o.value=c.value.filter(t=>!e.has(t.prop)).map(e=>({...e,id:e.prop}))}),V(()=>a.value,()=>{r(`fields-change`,a.value.flatMap(e=>e.fields.map(e=>({...e,id:void 0}))))},{deep:!0}),(e,t)=>{let n=G,r=ie,c=K,u=Y,f=we,k=ue;return A(),h(`div`,en,[m(` 顶部工具栏 `),v(c,{bordered:!1,class:`toolbar-card`},{default:U(()=>[g(`div`,tn,[m(` 模式切换 `),g(`div`,nn,[t[12]||=g(`span`,{class:`section-label`},`自定义模式:`,-1),v(r,null,{default:U(()=>[v(n,{type:i.value?`primary`:`default`,onClick:t[0]||=e=>i.value=!0,size:`small`},{default:U(()=>[...t[10]||=[_(` 🎨 设计模式 `,-1)]]),_:1},8,[`type`]),v(n,{type:i.value?`default`:`primary`,onClick:t[1]||=e=>i.value=!1,size:`small`},{default:U(()=>[...t[11]||=[_(` 📝 填写模式 `,-1)]]),_:1},8,[`type`])]),_:1})]),m(` 统计信息 `),g(`div`,rn,[g(`div`,an,[g(`div`,on,R(a.value.length),1),t[13]||=g(`div`,{class:`stat-label`},`自定义区域`,-1)]),g(`div`,sn,[g(`div`,cn,R(l.value),1),t[14]||=g(`div`,{class:`stat-label`},`字段总数`,-1)])]),m(` 操作按钮 `),g(`div`,ln,[i.value?(A(),h(d,{key:0},[v(n,{secondary:``,onClick:T,size:`small`},{default:U(()=>[...t[15]||=[_(` 💾 保存布局 `,-1)]]),_:1}),v(n,{secondary:``,onClick:D,size:`small`},{default:U(()=>[...t[16]||=[_(` 🔄 重置布局 `,-1)]]),_:1})],64)):(A(),p(n,{key:1,secondary:``,onClick:O,size:`small`},{default:U(()=>[...t[17]||=[_(` 📊 导出数据 `,-1)]]),_:1}))])])]),_:1}),m(` 设计模式工具面板 `),i.value?(A(),p(c,{key:0,class:`design-panel`,title:`🎨 设计工具`},{default:U(()=>[g(`div`,un,[g(`div`,dn,[t[21]||=g(`span`,{class:`group-label`},`添加区域:`,-1),v(n,{onClick:t[2]||=e=>x(`horizontal`),size:`small`},{default:U(()=>[...t[18]||=[_(` ➡️ 水平区域 `,-1)]]),_:1}),v(n,{onClick:t[3]||=e=>x(`vertical`),size:`small`},{default:U(()=>[...t[19]||=[_(` ⬇️ 垂直区域 `,-1)]]),_:1}),v(n,{onClick:t[4]||=e=>x(`grid`),size:`small`},{default:U(()=>[...t[20]||=[_(` ⚏ 网格区域 `,-1)]]),_:1})])])]),_:1})):m(`v-if`,!0),m(` 主画布区域 `),g(`div`,{class:E([`layout-canvas`,{"design-mode":i.value}])},[m(` 设计模式 `),i.value?(A(),h(d,{key:0},[a.value.length===0?(A(),h(`div`,fn,[...t[22]||=[g(`div`,{class:`hint-content`},[g(`h3`,null,`🎨 开始自定义你的布局`),g(`p`,null,`点击上方按钮添加区域`)],-1)]])):(A(),h(d,{key:1},[m(` 区域列表 `),g(`div`,pn,[(A(!0),h(d,null,P(a.value,e=>(A(),h(`div`,{key:e.id,class:E([`custom-area`,`area-${e.type}`])},[g(`div`,mn,[g(`div`,hn,[s.value===e.id?(A(),p(u,{key:0,value:e.title,"onUpdate:value":t=>e.title=t,size:`small`,onBlur:t[5]||=e=>s.value=``,onKeyup:t[6]||=ne(e=>s.value=``,[`enter`]),class:`title-input`},null,8,[`value`,`onUpdate:value`])):(A(),h(`span`,{key:1,class:`area-title`,onClick:t=>s.value=e.id},R(e.title),9,gn)),v(f,{size:`small`},{default:U(()=>[_(R(e.fields.length)+` 字段`,1)]),_:2},1024)]),g(`div`,_n,[v(n,{text:``,onClick:t=>S(e.id),size:`tiny`,type:`error`,title:`删除区域`},{default:U(()=>[...t[23]||=[_(` 🗑️ `,-1)]]),_:1},8,[`onClick`])])]),m(` 字段容器(可拖入) `),v(B(Oe),{modelValue:e.fields,"onUpdate:modelValue":t=>e.fields=t,class:`area-fields`,group:{name:`form-fields`,pull:!0,put:!0},animation:200,"ghost-class":`field-ghost`,"item-key":`id`},{default:U(()=>[(A(!0),h(d,null,P(e.fields,r=>(A(),h(`div`,{key:r.id,class:`field-item`},[g(`div`,vn,[t[25]||=g(`span`,{class:`drag-handle`},`⠿`,-1),g(`span`,yn,R(r.label||r.prop),1),g(`span`,bn,R(y(r.type)),1),v(n,{text:``,size:`tiny`,type:`error`,onClick:t=>w(e.id,r.id),title:`移出字段`},{default:U(()=>[...t[24]||=[_(` ✕ `,-1)]]),_:1},8,[`onClick`])])]))),128))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`]),e.fields.length===0?(A(),h(`div`,xn,` 从下方字段池拖拽字段到这里 `)):m(`v-if`,!0)],2))),128))])],2112)),m(` 字段池(可拖出) `),v(c,{class:`field-pool`,title:`📦 可用字段`},{default:U(()=>[v(B(Oe),{modelValue:o.value,"onUpdate:modelValue":t[7]||=e=>o.value=e,class:`pool-fields-grid`,group:{name:`form-fields`,pull:`clone`,put:!0},animation:200,sort:!1,"ghost-class":`field-ghost`,"item-key":`id`,clone:C},{default:U(()=>[(A(!0),h(d,null,P(o.value,e=>(A(),h(`div`,{key:e.id,class:`pool-field`},[t[26]||=g(`span`,{class:`drag-handle`},`⠿`,-1),g(`span`,Sn,R(e.label||e.prop),1),g(`span`,Cn,R(y(e.type)),1)]))),128))]),_:1},8,[`modelValue`])]),_:1})],64)):(A(),h(d,{key:1},[m(` 填写模式 `),a.value.length===0?(A(),h(`div`,wn,[v(k,{description:`尚未设计布局`},{extra:U(()=>[v(n,{onClick:t[8]||=e=>i.value=!0,type:`primary`},{default:U(()=>[...t[27]||=[_(` 🎨 开始设计 `,-1)]]),_:1})]),_:1})])):(A(),h(`div`,Tn,[g(`div`,En,[(A(!0),h(d,null,P(a.value,e=>(A(),h(`div`,{key:e.id,class:E([`form-area`,`area-${e.type}`])},[e.fields.length>0?(A(),p(c,{key:0,title:e.title},{default:U(()=>[g(`div`,{class:E([`area-form-items`,`layout-${e.type}`])},[(A(!0),h(d,null,P(e.fields,e=>(A(),p(L(b(e)),{key:e.prop}))),128))],2)]),_:2},1032,[`title`])):(A(),p(k,{key:1,description:`此区域暂无字段`,size:`small`},{extra:U(()=>[v(n,{onClick:t[9]||=e=>i.value=!0,size:`small`,secondary:``},{default:U(()=>[...t[28]||=[_(` 🎨 添加字段 `,-1)]]),_:1})]),_:1}))],2))),128))])]))],64))],2)])}}}),[[`__scopeId`,`data-v-fe093284`]]);const On=b({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})},renderers:{}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(t,{expose:n,emit:r}){let i=y(()=>import(`./C_Editor.js`).then(e=>e.C_Editor)),a={default:qe,inline:Je,grid:et,card:Tt,tabs:Nt,steps:Vt,dynamic:$t,custom:Dn},o={NFormItem:fe,NInput:Y,NInputNumber:pe,NSwitch:Se,NSlider:ye,NRate:_e,NDatePicker:le,NTimePicker:Te,NCascader:ae,NColorPicker:ce,NSelect:ve,NCheckboxGroup:se,NCheckbox:oe,NRadioGroup:ge,NRadio:he,NUpload:De,NButton:G,NSpace:X,NTooltip:Ee,C_Editor:i},s=t,c=r,l=Ae(),u=f(()=>Pe(je(s.config,l))),{t:d}=e(()=>u.value.locale),h=N(null),{formModel:g,formRules:b,visibleOptions:S,initialize:C,handleFieldChange:T,validate:E,validateField:D,validateStep:O,validateTab:k,validateDynamicFields:j,validateCustomGroup:M,clearValidation:P,getModel:I,setFields:z,resetFields:ee,setFieldValue:V,getFieldValue:H,setFieldsValue:te,handleSubmit:ne,handleReset:W,isDirty:re,getChangedFields:ie,isFieldDirty:K,markAsClean:ue,asyncOptionsCache:q,asyncLoadingMap:J,asyncErrorMap:me,reloadOptions:be,setFormItemRef:xe,isSubmitting:Z,submit:Ce}=ze(f(()=>s.options),u,h,c,f(()=>s.modelValue)),{formItems:we}=Ge({formModel:g,visibleOptions:S,config:u,handleFieldChange:T,componentMap:o,instanceSlots:x()?.slots,asyncOptionsCache:q,asyncLoadingMap:J,renderers:f(()=>s.renderers),setFormItemRef:xe,onError:(e,t)=>u.value.onError?.(e,{source:`render`,field:t})}),Oe=f(()=>a[u.value.layout]||a.default),ke=f(()=>({type:u.value.layout,grid:u.value.grid,inline:u.value.inline,card:u.value.card,tabs:u.value.tabs,steps:u.value.steps,dynamic:u.value.dynamic,custom:u.value.custom})),Me=f(()=>Fe(u.value)),Ne=f(()=>u.value.layout===`steps`?{beforeStepChange:Ve,validateStep:$}:u.value.layout===`tabs`?{beforeTabChange:Le,validateTab:Re}:{}),Q=(e,...t)=>{let n=u.value[e];if(typeof n==`function`)try{let e=n(...t);e instanceof Promise&&e.catch(e=>u.value.onError?.(e,{source:`callback`}))}catch(e){u.value.onError?.(e,{source:`callback`})}},Ie=e=>{u.value.onFieldsChange?.(e)},Le=async(e,t)=>{try{return await u.value.onTabBeforeChange?.(e,t)!==!1}catch(e){return u.value.onError?.(e,{source:`callback`}),!1}},Re=async e=>{let t=await k(e);return t&&u.value.onTabValidate?.(e),t},Be=(e,t)=>{u.value.onStepChange?.(e,t)},Ve=async(e,t)=>{try{return await u.value.onStepBeforeChange?.(e,t)!==!1}catch(e){return u.value.onError?.(e,{source:`callback`}),!1}},$=async e=>{try{return await O(e)?(u.value.onStepValidate?.(e),!0):!1}catch{return!1}};return n({validate:E,validateField:D,validateStep:O,validateTab:k,validateDynamicFields:j,validateCustomGroup:M,clearValidation:P,getModel:I,setFields:z,resetFields:ee,setFieldValue:V,getFieldValue:H,setFieldsValue:te,formRef:h,formModel:g,initialize:C,layoutType:f(()=>u.value.layout),shouldShowDefaultActions:Me,isDirty:re,getChangedFields:ie,isFieldDirty:K,markAsClean:ue,asyncLoadingMap:J,asyncErrorMap:me,reloadOptions:be,isSubmitting:Z,submit:Ce}),(e,t)=>(A(),p(B(de),w({ref_key:`formRef`,ref:h,model:B(g),rules:B(b),"validate-on-rule-change":!1,"label-placement":u.value.labelPlacement,"label-width":u.value.labelWidth,size:u.value.size,disabled:u.value.disabled,readonly:u.value.readonly},e.$attrs),{default:U(()=>[m(` 布局组件渲染 `),(A(),p(L(Oe.value),w({"form-items":B(we),"layout-config":ke.value,options:B(S),"form-data":B(g)},Ne.value,{onTabChange:t[0]||=(e,t)=>Q(`onTabChange`,e,t),onStepChange:Be,onFieldAdd:t[1]||=e=>Q(`onFieldAdd`,e),onFieldRemove:t[2]||=e=>Q(`onFieldRemove`,e),onFieldToggle:t[3]||=(e,t)=>Q(`onFieldToggle`,e,t),onFieldsClear:t[4]||=e=>Q(`onFieldsClear`),onRenderModeChange:t[5]||=e=>Q(`onRenderModeChange`,e),onGroupToggle:t[6]||=(e,t)=>Q(`onGroupToggle`,e,t),onGroupReset:t[7]||=e=>Q(`onGroupReset`,e),onValidateSuccess:t[8]||=e=>c(`validate-success`,e),onValidateError:t[9]||=e=>c(`validate-error`,e),onFieldsChange:Ie}),null,16,[`form-items`,`layout-config`,`options`,`form-data`])),m(` 表单操作按钮区域(只在特定布局中显示) `),Me.value?(A(),p(B(fe),{key:0,style:{"margin-top":`20px`}},{default:U(()=>[F(e.$slots,`action`,{form:h.value,model:B(g),validate:B(E),validateField:B(D),reset:B(ee),setFields:B(z),getModel:B(I),clearValidation:B(P),submit:B(Ce),reloadOptions:B(be),submitting:B(Z)},()=>[v(B(X),null,{default:U(()=>[v(B(G),{type:`primary`,loading:B(Z),disabled:B(Z),onClick:B(ne)},{default:U(()=>[_(R(u.value.submitText||B(d)(`common.submit`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),v(B(G),{disabled:B(Z),onClick:B(W)},{default:U(()=>[_(R(u.value.resetText||B(d)(`common.reset`)),1)]),_:1},8,[`disabled`,`onClick`])]),_:1})])]),_:3})):m(`v-if`,!0)]),_:3},16,[`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`]))}});export{He as a,ze as c,ke as d,Ne as f,Ae as g,Fe as h,Gt as i,Q as l,Pe as m,Kt as n,Ue as o,je as p,Ut as r,Ge as s,On as t,Me as u};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_FormSearch.js`);exports.C_FormSearch=e.t,exports.useSearchHistory=e.r,exports.useSearchState=e.n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_FormSearch2.cjs`);exports.C_FormSearch=e.t,exports.useSearchHistory=e.r,exports.useSearchState=e.n;