@xlabs-store/core 0.0.1 → 0.0.2

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 (1095) hide show
  1. package/LICENSE +21 -21
  2. package/components/index.d.ts +0 -0
  3. package/components/index.js +1 -1
  4. package/components/p--BbMiBIf.js +1 -0
  5. package/components/p-4BROAJ-M.js +1 -0
  6. package/components/p-9T3IQVUX.js +1 -0
  7. package/components/p-B1Y8S28h.js +1 -0
  8. package/components/p-B5VsEsBC.js +1 -0
  9. package/components/p-B7SdFSQT.js +1 -0
  10. package/components/p-B97Hj_bs.js +1 -0
  11. package/components/p-BBTo0Tfc.js +1 -0
  12. package/components/p-BCuFZ3xx.js +1 -0
  13. package/components/p-BFPoQ179.js +1 -0
  14. package/components/p-BGNOiTqa.js +1 -0
  15. package/components/p-BLqwG7xa.js +1 -0
  16. package/components/p-BPaLHj9P.js +1 -0
  17. package/components/p-BQtB82ld.js +1 -0
  18. package/components/p-BSLE4EQn.js +1 -0
  19. package/components/{p-DcRlYBIl.js → p-BUXxKr3t.js} +1 -1
  20. package/components/p-BYCebYZT.js +1 -0
  21. package/components/p-BZdNMS4e.js +1 -0
  22. package/components/p-BgCjF74f.js +1 -0
  23. package/components/p-BhWqNJhk.js +1 -0
  24. package/components/p-BlvrLhyv.js +1 -0
  25. package/components/p-BnnNgLpE.js +1 -0
  26. package/components/p-BoPZ9Se8.js +1 -0
  27. package/components/p-BogEYBiK.js +1 -0
  28. package/components/p-Brr9Q7gj.js +1 -0
  29. package/components/p-BvOnPBRo.js +1 -0
  30. package/components/p-BzX-LA7W.js +1 -0
  31. package/components/p-C-KgrbKX.js +1 -0
  32. package/components/{p-CfhgoXyB.js → p-C-rau5Ex.js} +1 -1
  33. package/components/{p-B4R9Mtmk.js → p-C1PUbETy.js} +1 -1
  34. package/components/p-C1_JmoB8.js +1 -0
  35. package/components/{p-noTpj1Kh.js → p-C3Kx_-Wc.js} +1 -1
  36. package/components/p-CIOnWzKr.js +1 -0
  37. package/components/p-CXhCHTJf.js +1 -0
  38. package/components/p-CaJOfbTg.js +1 -0
  39. package/components/p-Cf_74fjT.js +1 -0
  40. package/components/{p-DVz50Dd3.js → p-CgLn4Y4c.js} +1 -1
  41. package/components/p-CgaLhv3u.js +1 -0
  42. package/components/{p-CGYOWZnh.js → p-CijqjTOk.js} +1 -1
  43. package/components/p-CkyEMR2k.js +1 -0
  44. package/components/{p-Ce32Mo_Q.js → p-CmfyRJYt.js} +1 -1
  45. package/components/p-CnPsn8zN.js +1 -0
  46. package/components/p-Cp3SPBy3.js +1 -0
  47. package/components/p-CsYh9t-z.js +1 -0
  48. package/components/{p-BM-ap7lt.js → p-CtFbsd8j.js} +1 -1
  49. package/components/p-Cuf33Rgj.js +1 -0
  50. package/components/p-CwNmnRmr.js +1 -0
  51. package/components/p-CxMQkHjk.js +1 -0
  52. package/components/p-CzErFq8K.js +1 -0
  53. package/components/p-CzjK_fJj.js +1 -0
  54. package/components/p-D4Joi-Km.js +1 -0
  55. package/components/p-D4am7l6X.js +1 -0
  56. package/components/p-D7kqIlVo.js +1 -0
  57. package/components/p-DFzUUEiS.js +1 -0
  58. package/components/p-DINdyuGa.js +1 -0
  59. package/components/p-DIZuWptV.js +1 -0
  60. package/components/p-DPo53FC8.js +1 -0
  61. package/components/p-DPt8hDp3.js +1 -0
  62. package/components/p-DSC5zsOB.js +1 -0
  63. package/components/{p-Co3Y9VjQ.js → p-DSa1uqPO.js} +1 -1
  64. package/components/p-DT7-VE44.js +1 -0
  65. package/components/p-DTPUsC3Q.js +1 -0
  66. package/components/p-DUjF0MeP.js +1 -0
  67. package/components/p-DXMO8s1V.js +1 -0
  68. package/components/p-DZtvVtvb.js +1 -0
  69. package/components/p-D_184xNl.js +1 -0
  70. package/components/p-D_hKBumm.js +1 -0
  71. package/components/p-Da7AZprv.js +1 -0
  72. package/components/p-DcqkhKqy.js +1 -0
  73. package/components/p-Dkga4pDL.js +1 -0
  74. package/components/p-Dn1c0e9W.js +1 -0
  75. package/components/p-DobuHW4v.js +1 -0
  76. package/components/{p-Cd919NAP.js → p-DtIk7IPf.js} +1 -1
  77. package/components/p-DwySgZYx.js +1 -0
  78. package/components/p-DynL8Hj8.js +1 -0
  79. package/components/p-EYMvnfpO.js +1 -0
  80. package/components/p-K2tV3sog.js +1 -0
  81. package/components/p-LX68sH4m.js +1 -0
  82. package/components/{p-CKVSyuIH.js → p-MRcLOacJ.js} +1 -1
  83. package/components/p-N4_1eZ9k.js +1 -0
  84. package/components/p-PNU1f8B9.js +1 -0
  85. package/components/p-SFcKtdEL.js +1 -0
  86. package/components/p-VezrLuwj.js +1 -0
  87. package/components/p-eF_oZrS1.js +1 -0
  88. package/components/p-ez-wfqCC.js +1 -0
  89. package/components/p-gQbQhfDs.js +1 -0
  90. package/components/p-ibXnjCdF.js +1 -0
  91. package/components/p-jTIj1nFL.js +1 -0
  92. package/components/p-k2uLDFNn.js +1 -0
  93. package/components/p-pK9HRi91.js +1 -0
  94. package/components/p-sijpPVRP.js +1 -0
  95. package/components/p-tMIvQ4L0.js +1 -0
  96. package/components/p-xf66Fag-.js +1 -0
  97. package/components/p-xzKm-BQN.js +1 -0
  98. package/components/p-yktKa2eA.js +1 -0
  99. package/components/x-address.js +1 -1
  100. package/components/x-affix.d.ts +0 -0
  101. package/components/x-affix.js +1 -1
  102. package/components/x-alert.d.ts +0 -0
  103. package/components/x-alert.js +1 -1
  104. package/components/x-anchor-link.d.ts +0 -0
  105. package/components/x-anchor-link.js +1 -1
  106. package/components/x-anchor.d.ts +0 -0
  107. package/components/x-anchor.js +1 -1
  108. package/components/x-app.d.ts +0 -0
  109. package/components/x-app.js +1 -1
  110. package/components/x-auto-complete-dropdown-content.d.ts +0 -0
  111. package/components/x-auto-complete-dropdown-content.js +1 -1
  112. package/components/x-auto-complete.d.ts +0 -0
  113. package/components/x-auto-complete.js +1 -1
  114. package/components/x-avatar.d.ts +0 -0
  115. package/components/x-avatar.js +1 -1
  116. package/components/x-back-top.js +1 -1
  117. package/components/x-badge.d.ts +0 -0
  118. package/components/x-badge.js +1 -1
  119. package/components/x-breadcrumb-item.d.ts +0 -0
  120. package/components/x-breadcrumb-item.js +1 -1
  121. package/components/x-breadcrumb.d.ts +0 -0
  122. package/components/x-breadcrumb.js +1 -1
  123. package/components/x-button.d.ts +0 -0
  124. package/components/x-button.js +1 -1
  125. package/components/x-captcha.js +1 -1
  126. package/components/x-card.d.ts +0 -0
  127. package/components/x-card.js +1 -1
  128. package/components/x-carousel.d.ts +0 -0
  129. package/components/x-carousel.js +1 -1
  130. package/components/x-cascader-dropdown-content.d.ts +0 -0
  131. package/components/x-cascader-dropdown-content.js +1 -1
  132. package/components/x-cascader.d.ts +0 -0
  133. package/components/x-cascader.js +1 -1
  134. package/components/x-checkbox.d.ts +0 -0
  135. package/components/x-checkbox.js +1 -1
  136. package/components/x-code-editor.d.ts +11 -0
  137. package/components/x-code-editor.js +1 -0
  138. package/components/x-col.d.ts +0 -0
  139. package/components/x-col.js +1 -1
  140. package/components/x-collapse-panel.d.ts +0 -0
  141. package/components/x-collapse-panel.js +1 -1
  142. package/components/x-collapse.d.ts +0 -0
  143. package/components/x-collapse.js +1 -1
  144. package/components/x-color-picker-panel.d.ts +0 -0
  145. package/components/x-color-picker-panel.js +1 -1
  146. package/components/x-color-picker.d.ts +0 -0
  147. package/components/x-color-picker.js +1 -1
  148. package/components/x-comment.d.ts +0 -0
  149. package/components/x-comment.js +1 -1
  150. package/components/x-content.d.ts +0 -0
  151. package/components/x-content.js +1 -1
  152. package/components/x-date-picker-dropdown-content.d.ts +0 -0
  153. package/components/x-date-picker-dropdown-content.js +1 -1
  154. package/components/x-date-picker.d.ts +0 -0
  155. package/components/x-date-picker.js +1 -1
  156. package/components/x-descriptions-item.d.ts +0 -0
  157. package/components/x-descriptions-item.js +1 -1
  158. package/components/x-descriptions.d.ts +0 -0
  159. package/components/x-descriptions.js +1 -1
  160. package/components/x-divider.d.ts +0 -0
  161. package/components/x-divider.js +1 -1
  162. package/components/x-drawer-content.d.ts +0 -0
  163. package/components/x-drawer-content.js +1 -1
  164. package/components/x-drawer.d.ts +0 -0
  165. package/components/x-drawer.js +1 -1
  166. package/components/x-dropdown-content.d.ts +0 -0
  167. package/components/x-dropdown-content.js +1 -1
  168. package/components/x-dropdown.d.ts +0 -0
  169. package/components/x-dropdown.js +1 -1
  170. package/components/x-editor.d.ts +0 -0
  171. package/components/x-editor.js +1 -1
  172. package/components/x-empty.d.ts +0 -0
  173. package/components/x-empty.js +1 -1
  174. package/components/x-finder.d.ts +0 -0
  175. package/components/x-finder.js +1 -1
  176. package/components/x-flex.d.ts +0 -0
  177. package/components/x-flex.js +1 -1
  178. package/components/x-float-button.d.ts +0 -0
  179. package/components/x-float-button.js +1 -1
  180. package/components/x-footer.d.ts +0 -0
  181. package/components/x-footer.js +1 -1
  182. package/components/x-form-builder.d.ts +0 -0
  183. package/components/x-form-builder.js +1 -1
  184. package/components/x-form-item.d.ts +0 -0
  185. package/components/x-form-item.js +1 -1
  186. package/components/x-form.d.ts +0 -0
  187. package/components/x-form.js +1 -1
  188. package/components/x-header.d.ts +0 -0
  189. package/components/x-header.js +1 -1
  190. package/components/x-icon-picker-dropdown-content.d.ts +11 -0
  191. package/components/x-icon-picker-dropdown-content.js +1 -0
  192. package/components/x-icon.d.ts +0 -0
  193. package/components/x-icon.js +1 -1
  194. package/components/x-image.d.ts +0 -0
  195. package/components/x-image.js +1 -1
  196. package/components/x-infinite-scroll.d.ts +0 -0
  197. package/components/x-infinite-scroll.js +1 -1
  198. package/components/x-input-icon.d.ts +11 -0
  199. package/components/x-input-icon.js +1 -0
  200. package/components/x-input-number.d.ts +0 -0
  201. package/components/x-input-number.js +1 -1
  202. package/components/x-input.d.ts +0 -0
  203. package/components/x-input.js +1 -1
  204. package/components/x-layout-admin.d.ts +11 -0
  205. package/components/x-layout-admin.js +1 -0
  206. package/components/x-layout-detail.d.ts +11 -0
  207. package/components/x-layout-detail.js +1 -0
  208. package/components/x-layout-list.d.ts +11 -0
  209. package/components/x-layout-list.js +1 -0
  210. package/components/x-layout.d.ts +0 -0
  211. package/components/x-layout.js +1 -1
  212. package/components/x-list-item.js +1 -1
  213. package/components/x-list.d.ts +0 -0
  214. package/components/x-list.js +1 -1
  215. package/components/x-login.d.ts +11 -0
  216. package/components/x-login.js +1 -0
  217. package/components/x-mentions.d.ts +0 -0
  218. package/components/x-mentions.js +1 -1
  219. package/components/x-menu-divider.d.ts +0 -0
  220. package/components/x-menu-divider.js +1 -1
  221. package/components/x-menu-item-group.d.ts +0 -0
  222. package/components/x-menu-item-group.js +1 -1
  223. package/components/x-menu-item.d.ts +0 -0
  224. package/components/x-menu-item.js +1 -1
  225. package/components/x-menu-submenu.d.ts +0 -0
  226. package/components/x-menu-submenu.js +1 -1
  227. package/components/x-menu.d.ts +0 -0
  228. package/components/x-menu.js +1 -1
  229. package/components/x-message.d.ts +0 -0
  230. package/components/x-message.js +1 -1
  231. package/components/x-modal-content.d.ts +0 -0
  232. package/components/x-modal-content.js +1 -1
  233. package/components/x-modal.d.ts +0 -0
  234. package/components/x-modal.js +1 -1
  235. package/components/x-notification.d.ts +0 -0
  236. package/components/x-notification.js +1 -1
  237. package/components/x-page-header.js +1 -1
  238. package/components/x-pagination.d.ts +0 -0
  239. package/components/x-pagination.js +1 -1
  240. package/components/x-popconfirm-content.d.ts +0 -0
  241. package/components/x-popconfirm-content.js +1 -1
  242. package/components/x-popconfirm.d.ts +0 -0
  243. package/components/x-popconfirm.js +1 -1
  244. package/components/x-popover-content.d.ts +0 -0
  245. package/components/x-popover-content.js +1 -1
  246. package/components/x-popover.d.ts +0 -0
  247. package/components/x-popover.js +1 -1
  248. package/components/x-progress.d.ts +0 -0
  249. package/components/x-progress.js +1 -1
  250. package/components/x-qr-code.d.ts +0 -0
  251. package/components/x-qr-code.js +1 -1
  252. package/components/x-radio-group.d.ts +0 -0
  253. package/components/x-radio-group.js +1 -1
  254. package/components/x-radio.d.ts +0 -0
  255. package/components/x-radio.js +1 -1
  256. package/components/x-range-picker-dropdown-content.d.ts +0 -0
  257. package/components/x-range-picker-dropdown-content.js +1 -1
  258. package/components/x-range-picker.d.ts +0 -0
  259. package/components/x-range-picker.js +1 -1
  260. package/components/x-rate.d.ts +0 -0
  261. package/components/x-rate.js +1 -1
  262. package/components/x-result.d.ts +0 -0
  263. package/components/x-result.js +1 -1
  264. package/components/x-row.d.ts +0 -0
  265. package/components/x-row.js +1 -1
  266. package/components/x-segmented.d.ts +0 -0
  267. package/components/x-segmented.js +1 -1
  268. package/components/x-select-dropdown-content.d.ts +0 -0
  269. package/components/x-select-dropdown-content.js +1 -1
  270. package/components/x-select-option.d.ts +0 -0
  271. package/components/x-select-option.js +1 -1
  272. package/components/x-select.d.ts +0 -0
  273. package/components/x-select.js +1 -1
  274. package/components/x-sider.d.ts +0 -0
  275. package/components/x-sider.js +1 -1
  276. package/components/x-skeleton.d.ts +0 -0
  277. package/components/x-skeleton.js +1 -1
  278. package/components/x-slider.d.ts +0 -0
  279. package/components/x-slider.js +1 -1
  280. package/components/x-space.d.ts +0 -0
  281. package/components/x-space.js +1 -1
  282. package/components/x-spin.d.ts +0 -0
  283. package/components/x-spin.js +1 -1
  284. package/components/x-splitter-panel.d.ts +0 -0
  285. package/components/x-splitter-panel.js +1 -1
  286. package/components/x-splitter.d.ts +0 -0
  287. package/components/x-splitter.js +1 -1
  288. package/components/x-statistic.d.ts +0 -0
  289. package/components/x-statistic.js +1 -1
  290. package/components/x-step.d.ts +0 -0
  291. package/components/x-step.js +1 -1
  292. package/components/x-steps.d.ts +0 -0
  293. package/components/x-steps.js +1 -1
  294. package/components/x-switch.d.ts +0 -0
  295. package/components/x-switch.js +1 -1
  296. package/components/x-tab-pane.js +1 -1
  297. package/components/x-table-cell.d.ts +0 -0
  298. package/components/x-table-cell.js +1 -1
  299. package/components/x-table-row.d.ts +0 -0
  300. package/components/x-table-row.js +1 -1
  301. package/components/x-table.d.ts +0 -0
  302. package/components/x-table.js +1 -1
  303. package/components/x-tabs.d.ts +0 -0
  304. package/components/x-tabs.js +1 -1
  305. package/components/x-tag.d.ts +0 -0
  306. package/components/x-tag.js +1 -1
  307. package/components/x-textarea.d.ts +0 -0
  308. package/components/x-textarea.js +1 -1
  309. package/components/x-time-picker-dropdown-content.d.ts +0 -0
  310. package/components/x-time-picker-dropdown-content.js +1 -1
  311. package/components/x-time-picker.d.ts +0 -0
  312. package/components/x-time-picker.js +1 -1
  313. package/components/x-timeline-item.d.ts +0 -0
  314. package/components/x-timeline-item.js +1 -1
  315. package/components/x-timeline.d.ts +0 -0
  316. package/components/x-timeline.js +1 -1
  317. package/components/x-tooltip-content.d.ts +0 -0
  318. package/components/x-tooltip-content.js +1 -1
  319. package/components/x-tooltip.d.ts +0 -0
  320. package/components/x-tooltip.js +1 -1
  321. package/components/x-tour-panel.d.ts +0 -0
  322. package/components/x-tour-panel.js +1 -1
  323. package/components/x-tour.d.ts +0 -0
  324. package/components/x-tour.js +1 -1
  325. package/components/x-transfer.d.ts +0 -0
  326. package/components/x-transfer.js +1 -1
  327. package/components/x-tree-select-dropdown-content.js +1 -1
  328. package/components/x-tree-select.d.ts +0 -0
  329. package/components/x-tree-select.js +1 -1
  330. package/components/x-tree.d.ts +0 -0
  331. package/components/x-tree.js +1 -1
  332. package/components/x-typography.d.ts +0 -0
  333. package/components/x-typography.js +1 -1
  334. package/components/x-upload.d.ts +0 -0
  335. package/components/x-upload.js +1 -1
  336. package/components/x-virtual-scroll.d.ts +0 -0
  337. package/components/x-virtual-scroll.js +1 -1
  338. package/components/x-workflow-builder.d.ts +0 -0
  339. package/components/x-workflow-builder.js +1 -1
  340. package/components/x-workflow.d.ts +0 -0
  341. package/components/x-workflow.js +1 -1
  342. package/dist/cjs/{abstract-control-C4D0eNCC.js → abstract-control-JI4_szTV.js} +40 -14
  343. package/dist/cjs/{config-BP9bROYD.js → config-BYR5qIIZ.js} +3 -3
  344. package/dist/cjs/icons-DJ-kuboh.js +19291 -0
  345. package/dist/cjs/{index-C7sKs9A2.js → index-Cy2P_ln3.js} +39 -12
  346. package/dist/cjs/index.cjs.js +7 -5
  347. package/dist/cjs/loader.cjs.js +2 -2
  348. package/dist/cjs/{locale.service-Cz-aZQnr.js → locale.service-DT6E8Rzd.js} +17 -9
  349. package/dist/cjs/{modal-service-BtAF0mFq.js → modal-service-FQpCPk_L.js} +34 -14
  350. package/dist/cjs/{notification-service-m6I5U9aG.js → notification-service-v7LRmTyh.js} +12 -13
  351. package/dist/cjs/{portal-controller-CtYVbhXL.js → portal-controller-DJft2QkA.js} +11 -16
  352. package/dist/cjs/{schema-builder-CYnX7lKi.js → schema-builder-BKX4QdTc.js} +291 -89
  353. package/dist/cjs/{tree.service-fxLOCSpD.js → tree.service-u0qqS1Qh.js} +22 -22
  354. package/dist/cjs/x-address_51.cjs.entry.js +26874 -0
  355. package/dist/cjs/x-affix.cjs.entry.js +5 -5
  356. package/dist/cjs/{x-alert_11.cjs.entry.js → x-alert_9.cjs.entry.js} +267 -646
  357. package/dist/cjs/x-anchor-link.cjs.entry.js +3 -3
  358. package/dist/cjs/x-anchor.cjs.entry.js +11 -9
  359. package/dist/cjs/x-app.cjs.entry.js +19 -19
  360. package/dist/cjs/x-back-top.cjs.entry.js +4 -4
  361. package/dist/cjs/x-breadcrumb_2.cjs.entry.js +124 -0
  362. package/dist/cjs/x-carousel.cjs.entry.js +7 -7
  363. package/dist/cjs/x-code-editor.cjs.entry.js +2365 -0
  364. package/dist/cjs/x-col_11.cjs.entry.js +1204 -0
  365. package/dist/cjs/x-collapse-panel.cjs.entry.js +4 -4
  366. package/dist/cjs/x-collapse.cjs.entry.js +4 -4
  367. package/dist/cjs/x-comment.cjs.entry.js +5 -5
  368. package/dist/cjs/x-descriptions-item.cjs.entry.js +6 -6
  369. package/dist/cjs/{x-breadcrumb_5.cjs.entry.js → x-descriptions_3.cjs.entry.js} +36 -157
  370. package/dist/cjs/x-drawer-content.cjs.entry.js +8 -8
  371. package/dist/cjs/x-drawer.cjs.entry.js +9 -7
  372. package/dist/cjs/x-finder.cjs.entry.js +39 -32
  373. package/dist/cjs/x-icon-picker-dropdown-content.cjs.entry.js +158 -0
  374. package/dist/cjs/x-infinite-scroll.cjs.entry.js +4 -4
  375. package/dist/cjs/x-input-icon.cjs.entry.js +361 -0
  376. package/dist/cjs/x-layout-admin.cjs.entry.js +45 -0
  377. package/dist/cjs/x-layout-detail.cjs.entry.js +145 -0
  378. package/dist/cjs/x-layout-list.cjs.entry.js +259 -0
  379. package/dist/cjs/x-list-item.cjs.entry.js +3 -3
  380. package/dist/cjs/{x-menu-submenu.cjs.entry.js → x-list_2.cjs.entry.js} +141 -7
  381. package/dist/cjs/x-mentions.cjs.entry.js +6 -6
  382. package/dist/cjs/x-menu-divider.cjs.entry.js +2 -2
  383. package/dist/cjs/x-menu-item-group.cjs.entry.js +2 -2
  384. package/dist/cjs/x-menu_2.cjs.entry.js +509 -0
  385. package/dist/cjs/x-message.cjs.entry.js +7 -7
  386. package/dist/cjs/x-notification.cjs.entry.js +7 -7
  387. package/dist/cjs/x-page-header.cjs.entry.js +3 -3
  388. package/dist/cjs/x-popconfirm-content.cjs.entry.js +4 -4
  389. package/dist/cjs/x-popconfirm.cjs.entry.js +5 -5
  390. package/dist/cjs/x-progress.cjs.entry.js +10 -10
  391. package/dist/cjs/x-qr-code.cjs.entry.js +11 -9
  392. package/dist/cjs/x-skeleton.cjs.entry.js +5 -5
  393. package/dist/cjs/x-splitter-panel.cjs.entry.js +2 -2
  394. package/dist/cjs/x-splitter.cjs.entry.js +11 -5
  395. package/dist/cjs/x-statistic.cjs.entry.js +3 -3
  396. package/dist/cjs/x-step.cjs.entry.js +7 -7
  397. package/dist/cjs/x-steps.cjs.entry.js +6 -8
  398. package/dist/cjs/x-table-cell.cjs.entry.js +4 -4
  399. package/dist/cjs/x-table-row.cjs.entry.js +13 -10
  400. package/dist/cjs/x-timeline-item.cjs.entry.js +4 -4
  401. package/dist/cjs/x-timeline.cjs.entry.js +4 -4
  402. package/dist/cjs/x-tour-panel.cjs.entry.js +3 -3
  403. package/dist/cjs/x-tour.cjs.entry.js +16 -16
  404. package/dist/cjs/x-virtual-scroll.cjs.entry.js +5 -5
  405. package/dist/cjs/x-workflow-builder.cjs.entry.js +8 -8
  406. package/dist/cjs/xlabs.cjs.js +24 -0
  407. package/dist/collection/collection-manifest.json +8 -1
  408. package/dist/collection/components/x-address/vietnam-data.js +3 -3
  409. package/dist/collection/components/x-address/x-address.css +5 -2
  410. package/dist/collection/components/x-address/x-address.js +8 -10
  411. package/dist/collection/components/x-affix/x-affix.js +4 -4
  412. package/dist/collection/components/x-alert/x-alert.css +5 -2
  413. package/dist/collection/components/x-alert/x-alert.js +1 -1
  414. package/dist/collection/components/x-anchor/x-anchor.js +16 -8
  415. package/dist/collection/components/x-anchor-link/x-anchor-link.js +2 -2
  416. package/dist/collection/components/x-app/x-app.js +15 -15
  417. package/dist/collection/components/x-auto-complete/auto-complete-dropdown-content/auto-complete-dropdown-content.css +5 -2
  418. package/dist/collection/components/x-auto-complete/auto-complete-dropdown-content/auto-complete-dropdown-content.js +1 -1
  419. package/dist/collection/components/x-auto-complete/types.js +2 -5
  420. package/dist/collection/components/x-auto-complete/x-auto-complete.css +5 -2
  421. package/dist/collection/components/x-auto-complete/x-auto-complete.js +52 -25
  422. package/dist/collection/components/x-avatar/x-avatar.js +23 -14
  423. package/dist/collection/components/x-back-top/x-back-top.js +3 -3
  424. package/dist/collection/components/x-badge/x-badge.js +3 -7
  425. package/dist/collection/components/x-breadcrumb/x-breadcrumb.js +3 -3
  426. package/dist/collection/components/x-breadcrumb-item/x-breadcrumb-item.js +1 -1
  427. package/dist/collection/components/x-button/x-button.js +7 -7
  428. package/dist/collection/components/x-captcha/x-captcha.js +28 -8
  429. package/dist/collection/components/x-card/x-card.css +9 -4
  430. package/dist/collection/components/x-card/x-card.js +1 -1
  431. package/dist/collection/components/x-carousel/x-carousel.css +5 -2
  432. package/dist/collection/components/x-carousel/x-carousel.js +5 -5
  433. package/dist/collection/components/x-cascader/cascader-dropdown-content/cascader-dropdown-content.css +5 -2
  434. package/dist/collection/components/x-cascader/cascader-dropdown-content/cascader-dropdown-content.js +9 -9
  435. package/dist/collection/components/x-cascader/x-cascader.css +5 -2
  436. package/dist/collection/components/x-cascader/x-cascader.js +17 -20
  437. package/dist/collection/components/x-checkbox/x-checkbox.css +5 -2
  438. package/dist/collection/components/x-checkbox/x-checkbox.js +9 -19
  439. package/dist/collection/components/x-code-editor/types.js +1 -0
  440. package/dist/collection/components/x-code-editor/x-code-editor.css +1274 -0
  441. package/dist/collection/components/x-code-editor/x-code-editor.js +1497 -0
  442. package/dist/collection/components/x-col/x-col.css +5 -2
  443. package/dist/collection/components/x-col/x-col.js +14 -14
  444. package/dist/collection/components/x-collapse/x-collapse.css +5 -2
  445. package/dist/collection/components/x-collapse/x-collapse.js +4 -4
  446. package/dist/collection/components/x-collapse-panel/x-collapse-panel.css +5 -2
  447. package/dist/collection/components/x-collapse-panel/x-collapse-panel.js +4 -4
  448. package/dist/collection/components/x-color-picker/x-color-picker-panel.js +6 -8
  449. package/dist/collection/components/x-color-picker/x-color-picker.css +5 -2
  450. package/dist/collection/components/x-color-picker/x-color-picker.js +72 -12
  451. package/dist/collection/components/x-comment/x-comment.css +5 -2
  452. package/dist/collection/components/x-comment/x-comment.js +3 -3
  453. package/dist/collection/components/x-content/x-content.css +5 -4
  454. package/dist/collection/components/x-content/x-content.js +3 -3
  455. package/dist/collection/components/x-date-picker/date-picker-dropdown-content/date-picker-dropdown-content.css +7 -3
  456. package/dist/collection/components/x-date-picker/date-picker-dropdown-content/date-picker-dropdown-content.js +5 -9
  457. package/dist/collection/components/x-date-picker/x-date-picker.css +5 -2
  458. package/dist/collection/components/x-date-picker/x-date-picker.js +65 -23
  459. package/dist/collection/components/x-descriptions/x-descriptions.css +5 -2
  460. package/dist/collection/components/x-descriptions/x-descriptions.js +3 -3
  461. package/dist/collection/components/x-descriptions-item/x-descriptions-item.css +5 -2
  462. package/dist/collection/components/x-descriptions-item/x-descriptions-item.js +4 -4
  463. package/dist/collection/components/x-divider/x-divider.css +5 -2
  464. package/dist/collection/components/x-divider/x-divider.js +3 -3
  465. package/dist/collection/components/x-drawer/x-drawer.css +5 -2
  466. package/dist/collection/components/x-drawer/x-drawer.js +6 -4
  467. package/dist/collection/components/x-drawer-content/x-drawer-content.css +5 -2
  468. package/dist/collection/components/x-drawer-content/x-drawer-content.js +4 -4
  469. package/dist/collection/components/x-dropdown/dropdown-content/dropdown-content.css +5 -2
  470. package/dist/collection/components/x-dropdown/dropdown-content/dropdown-content.js +1 -1
  471. package/dist/collection/components/x-dropdown/x-dropdown.css +5 -2
  472. package/dist/collection/components/x-dropdown/x-dropdown.js +34 -12
  473. package/dist/collection/components/x-editor/types.js +4 -6
  474. package/dist/collection/components/x-editor/x-editor.css +25 -10
  475. package/dist/collection/components/x-editor/x-editor.js +80 -74
  476. package/dist/collection/components/x-empty/x-empty.css +5 -2
  477. package/dist/collection/components/x-empty/x-empty.js +1 -1
  478. package/dist/collection/components/x-finder/services/finder-service.js +7 -9
  479. package/dist/collection/components/x-finder/x-finder.css +10 -4
  480. package/dist/collection/components/x-finder/x-finder.js +28 -19
  481. package/dist/collection/components/x-flex/x-flex.css +5 -2
  482. package/dist/collection/components/x-flex/x-flex.js +5 -7
  483. package/dist/collection/components/x-float-button/x-float-button.css +5 -2
  484. package/dist/collection/components/x-float-button/x-float-button.js +4 -4
  485. package/dist/collection/components/x-footer/x-footer.css +5 -2
  486. package/dist/collection/components/x-footer/x-footer.js +1 -1
  487. package/dist/collection/components/x-form/x-form.css +5 -2
  488. package/dist/collection/components/x-form/x-form.js +98 -3
  489. package/dist/collection/components/x-form-builder/services/apis/api-client.js +24 -15
  490. package/dist/collection/components/x-form-builder/services/forms/form-array.js +3 -5
  491. package/dist/collection/components/x-form-builder/services/forms/form-group.js +6 -6
  492. package/dist/collection/components/x-form-builder/services/forms/validators.js +20 -10
  493. package/dist/collection/components/x-form-builder/services/schema/condition-builder.js +25 -44
  494. package/dist/collection/components/x-form-builder/services/schema/default-registry.js +108 -87
  495. package/dist/collection/components/x-form-builder/services/schema/form-mapping.js +80 -5
  496. package/dist/collection/components/x-form-builder/services/schema/formula-builder.js +114 -0
  497. package/dist/collection/components/x-form-builder/services/schema/schema-builder.js +7 -2
  498. package/dist/collection/components/x-form-builder/services/schema/schema-validator.js +1 -1
  499. package/dist/collection/components/x-form-builder/types/common/index.js +1 -0
  500. package/dist/collection/components/x-form-builder/types/common/ui-types.js +1 -0
  501. package/dist/collection/components/x-form-builder/types/fields/selection-fields.js +1 -9
  502. package/dist/collection/components/x-form-builder/utils/condition-engine.js +10 -10
  503. package/dist/collection/components/x-form-builder/utils/utils.js +25 -6
  504. package/dist/collection/components/x-form-builder/x-form-builder.js +468 -205
  505. package/dist/collection/components/x-form-item/x-form-item.css +16 -10
  506. package/dist/collection/components/x-form-item/x-form-item.js +46 -28
  507. package/dist/collection/components/x-header/x-header.css +5 -2
  508. package/dist/collection/components/x-header/x-header.js +1 -1
  509. package/dist/collection/components/x-icon/icons.js +19287 -2716
  510. package/dist/collection/components/x-icon/x-icon.css +5 -2
  511. package/dist/collection/components/x-icon/x-icon.js +6 -6
  512. package/dist/collection/components/x-image/x-image.css +5 -2
  513. package/dist/collection/components/x-image/x-image.js +6 -6
  514. package/dist/collection/components/x-infinite-scroll/x-infinite-scroll.css +5 -2
  515. package/dist/collection/components/x-infinite-scroll/x-infinite-scroll.js +2 -2
  516. package/dist/collection/components/x-input/x-input.css +25 -2
  517. package/dist/collection/components/x-input/x-input.js +38 -9
  518. package/dist/collection/components/x-input-icon/icon-picker-dropdown-content/icon-picker-dropdown-content.css +453 -0
  519. package/dist/collection/components/x-input-icon/icon-picker-dropdown-content/icon-picker-dropdown-content.js +304 -0
  520. package/dist/collection/components/x-input-icon/types.js +1 -0
  521. package/dist/collection/components/x-input-icon/x-input-icon.css +404 -0
  522. package/dist/collection/components/x-input-icon/x-input-icon.js +917 -0
  523. package/dist/collection/components/x-input-number/x-input-number.css +5 -2
  524. package/dist/collection/components/x-input-number/x-input-number.js +108 -13
  525. package/dist/collection/components/x-layout/x-layout.css +5 -2
  526. package/dist/collection/components/x-layout/x-layout.js +11 -5
  527. package/dist/collection/components/x-layout-admin/x-layout-admin.css +403 -0
  528. package/dist/collection/components/x-layout-admin/x-layout-admin.js +127 -0
  529. package/dist/collection/components/x-layout-detail/x-layout-detail.css +479 -0
  530. package/dist/collection/components/x-layout-detail/x-layout-detail.js +300 -0
  531. package/dist/collection/components/x-layout-list/types.js +1 -0
  532. package/dist/collection/components/x-layout-list/x-layout-list.css +511 -0
  533. package/dist/collection/components/x-layout-list/x-layout-list.js +619 -0
  534. package/dist/collection/components/x-list/x-list.css +5 -2
  535. package/dist/collection/components/x-list/x-list.js +3 -3
  536. package/dist/collection/components/x-list-item/x-list-item.css +5 -2
  537. package/dist/collection/components/x-list-item/x-list-item.js +1 -1
  538. package/dist/collection/components/x-login/types.js +1 -0
  539. package/dist/collection/components/x-login/x-login.css +562 -0
  540. package/dist/collection/components/x-login/x-login.js +706 -0
  541. package/dist/collection/components/x-mentions/x-mentions.css +5 -2
  542. package/dist/collection/components/x-mentions/x-mentions.js +4 -4
  543. package/dist/collection/components/x-menu/x-menu.js +1 -1
  544. package/dist/collection/components/x-menu-divider/x-menu-divider.js +1 -1
  545. package/dist/collection/components/x-menu-item/x-menu-item.js +2 -2
  546. package/dist/collection/components/x-menu-item-group/x-menu-item-group.js +1 -1
  547. package/dist/collection/components/x-menu-submenu/x-menu-submenu.js +5 -5
  548. package/dist/collection/components/x-message/message-service.js +2 -2
  549. package/dist/collection/components/x-message/x-message.css +5 -2
  550. package/dist/collection/components/x-message/x-message.js +5 -5
  551. package/dist/collection/components/x-modal/modal-service.js +33 -13
  552. package/dist/collection/components/x-modal/x-modal.css +5 -2
  553. package/dist/collection/components/x-modal/x-modal.js +148 -47
  554. package/dist/collection/components/x-modal-content/x-modal-content.css +110 -18
  555. package/dist/collection/components/x-modal-content/x-modal-content.js +157 -12
  556. package/dist/collection/components/x-notification/notification-service.js +9 -10
  557. package/dist/collection/components/x-notification/x-notification.css +6 -2
  558. package/dist/collection/components/x-notification/x-notification.js +4 -4
  559. package/dist/collection/components/x-page-header/x-page-header.css +5 -2
  560. package/dist/collection/components/x-page-header/x-page-header.js +1 -1
  561. package/dist/collection/components/x-pagination/x-pagination.css +11 -2
  562. package/dist/collection/components/x-pagination/x-pagination.js +18 -14
  563. package/dist/collection/components/x-popconfirm/popconfirm-content/popconfirm-content.css +5 -2
  564. package/dist/collection/components/x-popconfirm/popconfirm-content/popconfirm-content.js +1 -1
  565. package/dist/collection/components/x-popconfirm/x-popconfirm.css +5 -2
  566. package/dist/collection/components/x-popconfirm/x-popconfirm.js +1 -1
  567. package/dist/collection/components/x-popover/popover-content/popover-content.css +5 -2
  568. package/dist/collection/components/x-popover/popover-content/popover-content.js +1 -1
  569. package/dist/collection/components/x-popover/x-popover.css +5 -2
  570. package/dist/collection/components/x-popover/x-popover.js +1 -1
  571. package/dist/collection/components/x-portal/positioning.js +11 -16
  572. package/dist/collection/components/x-progress/x-progress.css +5 -2
  573. package/dist/collection/components/x-progress/x-progress.js +8 -8
  574. package/dist/collection/components/x-qr-code/x-qr-code.css +2 -1
  575. package/dist/collection/components/x-qr-code/x-qr-code.js +23 -1
  576. package/dist/collection/components/x-radio/x-radio.css +5 -2
  577. package/dist/collection/components/x-radio/x-radio.js +5 -5
  578. package/dist/collection/components/x-radio-group/x-radio-group.css +5 -2
  579. package/dist/collection/components/x-radio-group/x-radio-group.js +6 -8
  580. package/dist/collection/components/x-range-picker/range-picker-dropdown-content/range-picker-dropdown-content.css +7 -3
  581. package/dist/collection/components/x-range-picker/range-picker-dropdown-content/range-picker-dropdown-content.js +13 -13
  582. package/dist/collection/components/x-range-picker/x-range-picker.css +5 -2
  583. package/dist/collection/components/x-range-picker/x-range-picker.js +9 -18
  584. package/dist/collection/components/x-rate/x-rate.css +5 -2
  585. package/dist/collection/components/x-rate/x-rate.js +3 -3
  586. package/dist/collection/components/x-result/x-result.css +5 -2
  587. package/dist/collection/components/x-result/x-result.js +11 -10
  588. package/dist/collection/components/x-row/x-row.css +5 -2
  589. package/dist/collection/components/x-row/x-row.js +4 -4
  590. package/dist/collection/components/x-segmented/x-segmented.css +5 -2
  591. package/dist/collection/components/x-segmented/x-segmented.js +8 -8
  592. package/dist/collection/components/x-select/select-dropdown-content/select-dropdown-content.css +11 -4
  593. package/dist/collection/components/x-select/select-dropdown-content/select-dropdown-content.js +1 -1
  594. package/dist/collection/components/x-select/x-select.css +11 -4
  595. package/dist/collection/components/x-select/x-select.js +33 -39
  596. package/dist/collection/components/x-select-option/x-select-option.css +5 -2
  597. package/dist/collection/components/x-select-option/x-select-option.js +3 -3
  598. package/dist/collection/components/x-sider/x-sider.css +7 -4
  599. package/dist/collection/components/x-sider/x-sider.js +7 -9
  600. package/dist/collection/components/x-skeleton/x-skeleton.css +5 -2
  601. package/dist/collection/components/x-skeleton/x-skeleton.js +3 -3
  602. package/dist/collection/components/x-slider/x-slider.css +5 -2
  603. package/dist/collection/components/x-slider/x-slider.js +11 -23
  604. package/dist/collection/components/x-space/x-space.css +5 -2
  605. package/dist/collection/components/x-space/x-space.js +4 -4
  606. package/dist/collection/components/x-spin/x-spin.css +5 -2
  607. package/dist/collection/components/x-spin/x-spin.js +1 -1
  608. package/dist/collection/components/x-splitter/x-splitter.js +14 -8
  609. package/dist/collection/components/x-splitter-panel/x-splitter-panel.js +1 -1
  610. package/dist/collection/components/x-statistic/x-statistic.css +5 -2
  611. package/dist/collection/components/x-statistic/x-statistic.js +1 -1
  612. package/dist/collection/components/x-step/x-step.css +5 -2
  613. package/dist/collection/components/x-step/x-step.js +5 -5
  614. package/dist/collection/components/x-steps/x-steps.css +5 -2
  615. package/dist/collection/components/x-steps/x-steps.js +4 -6
  616. package/dist/collection/components/x-switch/x-switch.css +5 -2
  617. package/dist/collection/components/x-switch/x-switch.js +7 -4
  618. package/dist/collection/components/x-tab-pane/x-tab-pane.css +5 -2
  619. package/dist/collection/components/x-tab-pane/x-tab-pane.js +58 -2
  620. package/dist/collection/components/x-table/x-table.css +187 -41
  621. package/dist/collection/components/x-table/x-table.js +242 -104
  622. package/dist/collection/components/x-table-cell/x-table-cell.css +5 -2
  623. package/dist/collection/components/x-table-cell/x-table-cell.js +2 -2
  624. package/dist/collection/components/x-table-row/x-table-row.css +5 -2
  625. package/dist/collection/components/x-table-row/x-table-row.js +11 -8
  626. package/dist/collection/components/x-tabs/x-tabs.css +17 -2
  627. package/dist/collection/components/x-tabs/x-tabs.js +130 -12
  628. package/dist/collection/components/x-tag/x-tag.css +6 -3
  629. package/dist/collection/components/x-tag/x-tag.js +1 -4
  630. package/dist/collection/components/x-textarea/x-textarea.css +5 -2
  631. package/dist/collection/components/x-textarea/x-textarea.js +5 -5
  632. package/dist/collection/components/x-time-picker/time-picker-dropdown-content/time-picker-dropdown-content.css +5 -2
  633. package/dist/collection/components/x-time-picker/time-picker-dropdown-content/time-picker-dropdown-content.js +1 -1
  634. package/dist/collection/components/x-time-picker/x-time-picker.css +5 -2
  635. package/dist/collection/components/x-time-picker/x-time-picker.js +4 -7
  636. package/dist/collection/components/x-timeline/x-timeline.css +5 -2
  637. package/dist/collection/components/x-timeline/x-timeline.js +2 -2
  638. package/dist/collection/components/x-timeline-item/x-timeline-item.css +5 -2
  639. package/dist/collection/components/x-timeline-item/x-timeline-item.js +2 -2
  640. package/dist/collection/components/x-tooltip/x-tooltip.css +5 -2
  641. package/dist/collection/components/x-tooltip/x-tooltip.js +6 -8
  642. package/dist/collection/components/x-tooltip-content/x-tooltip-content.js +2 -2
  643. package/dist/collection/components/x-tour/x-tour-panel.css +5 -2
  644. package/dist/collection/components/x-tour/x-tour-panel.js +1 -1
  645. package/dist/collection/components/x-tour/x-tour.css +5 -2
  646. package/dist/collection/components/x-tour/x-tour.js +15 -15
  647. package/dist/collection/components/x-transfer/x-transfer.css +5 -2
  648. package/dist/collection/components/x-transfer/x-transfer.js +8 -8
  649. package/dist/collection/components/x-tree/x-tree.css +5 -2
  650. package/dist/collection/components/x-tree/x-tree.js +25 -26
  651. package/dist/collection/components/x-tree-select/tree-select-dropdown-content/tree-select-dropdown-content.css +5 -2
  652. package/dist/collection/components/x-tree-select/tree-select-dropdown-content/tree-select-dropdown-content.js +6 -6
  653. package/dist/collection/components/x-tree-select/x-tree-select.css +5 -2
  654. package/dist/collection/components/x-tree-select/x-tree-select.js +21 -31
  655. package/dist/collection/components/x-typography/x-typography.css +10 -3
  656. package/dist/collection/components/x-typography/x-typography.js +12 -12
  657. package/dist/collection/components/x-upload/x-upload.css +5 -2
  658. package/dist/collection/components/x-upload/x-upload.js +342 -48
  659. package/dist/collection/components/x-virtual-scroll/x-virtual-scroll.js +5 -5
  660. package/dist/collection/components/x-workflow/x-workflow.css +3 -1
  661. package/dist/collection/components/x-workflow/x-workflow.js +81 -66
  662. package/dist/collection/components/x-workflow-builder/x-workflow-builder.css +5 -2
  663. package/dist/collection/components/x-workflow-builder/x-workflow-builder.js +6 -6
  664. package/dist/collection/index.js +2 -0
  665. package/dist/collection/locales/languages/mn_MN.js +14 -1
  666. package/dist/collection/locales/locale.service.js +4 -9
  667. package/dist/collection/utils/code-editor/ast-parser.js +378 -0
  668. package/dist/collection/utils/code-editor/autocomplete-db.js +590 -0
  669. package/dist/collection/utils/code-editor/history.js +56 -0
  670. package/dist/collection/utils/code-editor/index.js +4 -0
  671. package/dist/collection/utils/code-editor/plugin-system.js +54 -0
  672. package/dist/collection/utils/code-editor/tokenizer.js +300 -0
  673. package/dist/collection/utils/config.js +3 -3
  674. package/dist/collection/utils/form/core/abstract-control.js +40 -14
  675. package/dist/collection/utils/form/core/form-array.js +7 -5
  676. package/dist/collection/utils/form/core/form-group.js +8 -4
  677. package/dist/collection/utils/form/frameworks.js +7 -3
  678. package/dist/collection/utils/form/validators/validators.js +3 -9
  679. package/dist/collection/utils/qr-code/engine/qr.engine.js +3 -3
  680. package/dist/collection/utils/qr-code/engine/qr.mask.js +3 -3
  681. package/dist/collection/utils/qr-code/engine/qr.rs.js +1 -1
  682. package/dist/collection/utils/table.service.js +40 -14
  683. package/dist/collection/utils/tree.service.js +22 -22
  684. package/dist/collection/utils/workflow/flow.service.js +95 -30
  685. package/dist/esm/{abstract-control-XBF88YT_.js → abstract-control-BtYiIQqg.js} +40 -14
  686. package/dist/esm/{config-BPeosvTA.js → config-RKpMhZmc.js} +3 -3
  687. package/dist/esm/icons-BgCjF74f.js +19289 -0
  688. package/dist/esm/{index-ig_mFsVk.js → index-BMTt8QT3.js} +39 -12
  689. package/dist/esm/index.js +6 -5
  690. package/dist/esm/loader.js +3 -3
  691. package/dist/esm/{locale.service-D66tF8_2.js → locale.service-DFADJBLL.js} +17 -9
  692. package/dist/esm/{modal-service-C_e0SaFZ.js → modal-service-ikfAY1gn.js} +34 -14
  693. package/dist/esm/{notification-service-DJTSPOq7.js → notification-service-CUyIF7K-.js} +12 -13
  694. package/dist/esm/{portal-controller-COpzIi1n.js → portal-controller-DM8AggMt.js} +11 -16
  695. package/dist/esm/{schema-builder-DBPGgJBx.js → schema-builder-DlGEzg5B.js} +291 -89
  696. package/dist/esm/{tree.service-Dgxy93Bg.js → tree.service-iG9CbEpE.js} +22 -22
  697. package/dist/esm/x-address_51.entry.js +26822 -0
  698. package/dist/esm/x-affix.entry.js +5 -5
  699. package/dist/esm/{x-alert_11.entry.js → x-alert_9.entry.js} +268 -645
  700. package/dist/esm/x-anchor-link.entry.js +3 -3
  701. package/dist/esm/x-anchor.entry.js +11 -9
  702. package/dist/esm/x-app.entry.js +19 -19
  703. package/dist/esm/x-back-top.entry.js +4 -4
  704. package/dist/esm/x-breadcrumb_2.entry.js +121 -0
  705. package/dist/esm/x-carousel.entry.js +7 -7
  706. package/dist/esm/x-code-editor.entry.js +2363 -0
  707. package/dist/esm/x-col_11.entry.js +1192 -0
  708. package/dist/esm/x-collapse-panel.entry.js +4 -4
  709. package/dist/esm/x-collapse.entry.js +4 -4
  710. package/dist/esm/x-comment.entry.js +5 -5
  711. package/dist/esm/x-descriptions-item.entry.js +6 -6
  712. package/dist/esm/{x-breadcrumb_5.entry.js → x-descriptions_3.entry.js} +37 -156
  713. package/dist/esm/x-drawer-content.entry.js +8 -8
  714. package/dist/esm/x-drawer.entry.js +9 -7
  715. package/dist/esm/x-finder.entry.js +39 -32
  716. package/dist/esm/x-icon-picker-dropdown-content.entry.js +156 -0
  717. package/dist/esm/x-infinite-scroll.entry.js +4 -4
  718. package/dist/esm/x-input-icon.entry.js +359 -0
  719. package/dist/esm/x-layout-admin.entry.js +43 -0
  720. package/dist/esm/x-layout-detail.entry.js +143 -0
  721. package/dist/esm/x-layout-list.entry.js +257 -0
  722. package/dist/esm/x-list-item.entry.js +3 -3
  723. package/dist/esm/{x-menu-submenu.entry.js → x-list_2.entry.js} +141 -8
  724. package/dist/esm/x-mentions.entry.js +6 -6
  725. package/dist/esm/x-menu-divider.entry.js +2 -2
  726. package/dist/esm/x-menu-item-group.entry.js +2 -2
  727. package/dist/esm/x-menu_2.entry.js +506 -0
  728. package/dist/esm/x-message.entry.js +7 -7
  729. package/dist/esm/x-notification.entry.js +7 -7
  730. package/dist/esm/x-page-header.entry.js +3 -3
  731. package/dist/esm/x-popconfirm-content.entry.js +4 -4
  732. package/dist/esm/x-popconfirm.entry.js +5 -5
  733. package/dist/esm/x-progress.entry.js +10 -10
  734. package/dist/esm/x-qr-code.entry.js +11 -9
  735. package/dist/esm/x-skeleton.entry.js +5 -5
  736. package/dist/esm/x-splitter-panel.entry.js +2 -2
  737. package/dist/esm/x-splitter.entry.js +11 -5
  738. package/dist/esm/x-statistic.entry.js +3 -3
  739. package/dist/esm/x-step.entry.js +7 -7
  740. package/dist/esm/x-steps.entry.js +6 -8
  741. package/dist/esm/x-table-cell.entry.js +4 -4
  742. package/dist/esm/x-table-row.entry.js +13 -10
  743. package/dist/esm/x-timeline-item.entry.js +4 -4
  744. package/dist/esm/x-timeline.entry.js +4 -4
  745. package/dist/esm/x-tour-panel.entry.js +3 -3
  746. package/dist/esm/x-tour.entry.js +16 -16
  747. package/dist/esm/x-virtual-scroll.entry.js +5 -5
  748. package/dist/esm/x-workflow-builder.entry.js +8 -8
  749. package/dist/esm/xlabs.js +20 -0
  750. package/dist/types/components/x-app/x-app.d.ts +12 -12
  751. package/dist/types/components/x-auto-complete/auto-complete-dropdown-content/index.d.ts +1 -1
  752. package/dist/types/components/x-auto-complete/x-auto-complete.d.ts +6 -0
  753. package/dist/types/components/x-avatar/x-avatar.d.ts +3 -2
  754. package/dist/types/components/x-captcha/x-captcha.d.ts +4 -0
  755. package/dist/types/components/x-checkbox/x-checkbox.d.ts +0 -4
  756. package/dist/types/components/x-code-editor/types.d.ts +26 -0
  757. package/dist/types/components/x-code-editor/x-code-editor.d.ts +141 -0
  758. package/dist/types/components/x-color-picker/types.d.ts +4 -0
  759. package/dist/types/components/x-color-picker/x-color-picker.d.ts +8 -1
  760. package/dist/types/components/x-content/x-content.d.ts +1 -1
  761. package/dist/types/components/x-date-picker/x-date-picker.d.ts +4 -0
  762. package/dist/types/components/x-form/x-form.d.ts +12 -0
  763. package/dist/types/components/x-form-builder/services/forms/validators.d.ts +1 -0
  764. package/dist/types/components/x-form-builder/services/schema/form-mapping.d.ts +4 -0
  765. package/dist/types/components/x-form-builder/services/schema/formula-builder.d.ts +29 -0
  766. package/dist/types/components/x-form-builder/services/schema/schema-builder.d.ts +6 -1
  767. package/dist/types/components/x-form-builder/types/common/common-types.d.ts +5 -0
  768. package/dist/types/components/x-form-builder/types/common/field-types-enum.d.ts +1 -1
  769. package/dist/types/components/x-form-builder/types/common/index.d.ts +1 -0
  770. package/dist/types/components/x-form-builder/types/common/ui-types.d.ts +28 -0
  771. package/dist/types/components/x-form-builder/types/common/validation-types.d.ts +1 -1
  772. package/dist/types/components/x-form-builder/types/fields/base-field.d.ts +4 -1
  773. package/dist/types/components/x-form-builder/types/fields/datetime-file-fields.d.ts +10 -3
  774. package/dist/types/components/x-form-builder/types/fields/display-fields.d.ts +3 -0
  775. package/dist/types/components/x-form-builder/types/fields/form-field-union.d.ts +4 -4
  776. package/dist/types/components/x-form-builder/types/fields/input-fields.d.ts +5 -0
  777. package/dist/types/components/x-form-builder/types/fields/layout-fields.d.ts +20 -2
  778. package/dist/types/components/x-form-builder/types/fields/selection-fields.d.ts +11 -4
  779. package/dist/types/components/x-form-builder/types/form/schema-types.d.ts +7 -3
  780. package/dist/types/components/x-form-builder/utils/values.d.ts +1 -1
  781. package/dist/types/components/x-form-builder/x-form-builder.d.ts +9 -3
  782. package/dist/types/components/x-icon/icons.d.ts +12 -2716
  783. package/dist/types/components/x-icon/x-icon.d.ts +1 -1
  784. package/dist/types/components/x-input/types.d.ts +1 -1
  785. package/dist/types/components/x-input/x-input.d.ts +6 -0
  786. package/dist/types/components/x-input-icon/icon-picker-dropdown-content/icon-picker-dropdown-content.d.ts +39 -0
  787. package/dist/types/components/x-input-icon/types.d.ts +9 -0
  788. package/dist/types/components/x-input-icon/x-input-icon.d.ts +150 -0
  789. package/dist/types/components/x-input-number/x-input-number.d.ts +5 -0
  790. package/dist/types/components/x-layout/x-layout.d.ts +2 -1
  791. package/dist/types/components/x-layout-admin/x-layout-admin.d.ts +23 -0
  792. package/dist/types/components/x-layout-detail/x-layout-detail.d.ts +86 -0
  793. package/dist/types/components/x-layout-list/types.d.ts +100 -0
  794. package/dist/types/components/x-layout-list/x-layout-list.d.ts +107 -0
  795. package/dist/types/components/x-login/types.d.ts +113 -0
  796. package/dist/types/components/x-login/x-login.d.ts +126 -0
  797. package/dist/types/components/x-message/message-service.d.ts +1 -1
  798. package/dist/types/components/x-modal/x-modal.d.ts +31 -6
  799. package/dist/types/components/x-modal-content/x-modal-content.d.ts +24 -0
  800. package/dist/types/components/x-notification/notification-service.d.ts +1 -1
  801. package/dist/types/components/x-qr-code/x-qr-code.d.ts +2 -0
  802. package/dist/types/components/x-select/select-dropdown-content/index.d.ts +1 -1
  803. package/dist/types/components/x-tab-pane/x-tab-pane.d.ts +11 -0
  804. package/dist/types/components/x-table/types.d.ts +3 -0
  805. package/dist/types/components/x-table/x-table.d.ts +15 -4
  806. package/dist/types/components/x-tabs/types.d.ts +9 -0
  807. package/dist/types/components/x-tabs/x-tabs.d.ts +40 -1
  808. package/dist/types/components/x-time-picker/time-picker-dropdown-content/index.d.ts +1 -1
  809. package/dist/types/components/x-transfer/types.d.ts +3 -1
  810. package/dist/types/components/x-upload/types.d.ts +14 -0
  811. package/dist/types/components/x-upload/x-upload.d.ts +34 -7
  812. package/dist/types/components.d.ts +1304 -70
  813. package/dist/types/index.d.ts +2 -0
  814. package/dist/types/locales/locale.service.d.ts +3 -3
  815. package/dist/types/types.d.ts +2 -0
  816. package/dist/types/utils/code-editor/ast-parser.d.ts +5 -0
  817. package/dist/types/utils/code-editor/autocomplete-db.d.ts +10 -0
  818. package/dist/types/utils/code-editor/history.d.ts +19 -0
  819. package/dist/types/utils/code-editor/index.d.ts +4 -0
  820. package/dist/types/utils/code-editor/plugin-system.d.ts +31 -0
  821. package/dist/types/utils/code-editor/tokenizer.d.ts +2 -0
  822. package/dist/types/utils/form/types.d.ts +1 -1
  823. package/dist/types/utils/table.service.d.ts +2 -1
  824. package/dist/xlabs/index.esm.js +1 -0
  825. package/dist/xlabs/p-0139d27f.entry.js +1 -0
  826. package/dist/xlabs/p-04985e4d.entry.js +1 -0
  827. package/dist/xlabs/p-05a79f30.entry.js +1 -0
  828. package/dist/xlabs/p-0a08e0c8.entry.js +1 -0
  829. package/dist/xlabs/p-0d5fb8de.entry.js +1 -0
  830. package/dist/{xlabs-store/p-cd3c3374.entry.js → xlabs/p-121911e5.entry.js} +1 -1
  831. package/dist/xlabs/p-1260ad3b.entry.js +1 -0
  832. package/dist/xlabs/p-1c0ee15c.entry.js +1 -0
  833. package/dist/{xlabs-store/p-023259c9.entry.js → xlabs/p-1cd3b259.entry.js} +1 -1
  834. package/dist/xlabs/p-239cf367.entry.js +1 -0
  835. package/dist/xlabs/p-2451ab24.entry.js +1 -0
  836. package/dist/xlabs/p-2ab3bc58.entry.js +1 -0
  837. package/dist/xlabs/p-2f9d0da7.entry.js +1 -0
  838. package/dist/xlabs/p-302ab3b9.entry.js +1 -0
  839. package/dist/xlabs/p-31029063.entry.js +1 -0
  840. package/dist/xlabs/p-31c814c2.entry.js +1 -0
  841. package/dist/xlabs/p-3f5b28e5.entry.js +1 -0
  842. package/dist/xlabs/p-43d10a6e.entry.js +1 -0
  843. package/dist/xlabs/p-45fda37b.entry.js +1 -0
  844. package/dist/xlabs/p-4bf9b6f7.entry.js +1 -0
  845. package/dist/xlabs/p-5ab9ce39.entry.js +1 -0
  846. package/dist/xlabs/p-5e495388.entry.js +1 -0
  847. package/dist/xlabs/p-6039e514.entry.js +1 -0
  848. package/dist/xlabs/p-674527b2.entry.js +1 -0
  849. package/dist/xlabs/p-68056c0e.entry.js +1 -0
  850. package/dist/xlabs/p-6d7480c0.entry.js +1 -0
  851. package/dist/xlabs/p-7697ef47.entry.js +1 -0
  852. package/dist/xlabs/p-7b8bdd79.entry.js +1 -0
  853. package/dist/xlabs/p-7f9a80e0.entry.js +1 -0
  854. package/dist/xlabs/p-948a032e.entry.js +1 -0
  855. package/dist/{xlabs-store/p-7a8f11b4.entry.js → xlabs/p-9ae3501d.entry.js} +1 -1
  856. package/dist/xlabs/p-9b3a4aa6.entry.js +1 -0
  857. package/dist/xlabs/p-9c1cc5ff.entry.js +1 -0
  858. package/dist/xlabs/p-BMTt8QT3.js +2 -0
  859. package/dist/xlabs/p-BgCjF74f.js +1 -0
  860. package/dist/xlabs/p-D7kqIlVo.js +1 -0
  861. package/dist/{xlabs-store/p-Co3Y9VjQ.js → xlabs/p-DSa1uqPO.js} +1 -1
  862. package/dist/{xlabs-store/p-c0ca6f7d.entry.js → xlabs/p-a2d14538.entry.js} +1 -1
  863. package/dist/xlabs/p-a415c8c1.entry.js +1 -0
  864. package/dist/{xlabs-store/p-fdec5d89.entry.js → xlabs/p-aba80f73.entry.js} +1 -1
  865. package/dist/xlabs/p-bc5969e0.entry.js +1 -0
  866. package/dist/xlabs/p-bef8def9.entry.js +1 -0
  867. package/dist/xlabs/p-cc57e705.entry.js +1 -0
  868. package/dist/xlabs/p-d11de492.entry.js +1 -0
  869. package/dist/xlabs/p-d4558f7b.entry.js +1 -0
  870. package/dist/xlabs/p-d921a2c7.entry.js +1 -0
  871. package/dist/xlabs/p-df10e5a1.entry.js +1 -0
  872. package/dist/xlabs/p-e1a1acbe.entry.js +1 -0
  873. package/dist/xlabs/p-eab901c4.entry.js +1 -0
  874. package/dist/xlabs/p-edcb4001.entry.js +1 -0
  875. package/dist/xlabs/p-f07d9ee7.entry.js +1 -0
  876. package/dist/xlabs/p-f280faed.entry.js +1 -0
  877. package/dist/xlabs/p-f5b96f2a.entry.js +1 -0
  878. package/dist/xlabs/p-f6950840.entry.js +1 -0
  879. package/dist/{xlabs-store/p-96b1939d.entry.js → xlabs/p-f69d2b16.entry.js} +1 -1
  880. package/dist/{xlabs-store/p-8bcbb4e3.entry.js → xlabs/p-fd003457.entry.js} +1 -1
  881. package/dist/xlabs/p-xf66Fag-.js +1 -0
  882. package/dist/xlabs/xlabs.css +2 -0
  883. package/dist/xlabs/xlabs.esm.js +1 -0
  884. package/loader/cdn.js +0 -0
  885. package/loader/index.cjs.js +0 -0
  886. package/loader/index.d.ts +0 -0
  887. package/loader/index.es2017.js +0 -0
  888. package/loader/index.js +0 -0
  889. package/package.json +65 -69
  890. package/readme.md +107 -50
  891. package/components/p-5c86X8JO.js +0 -1
  892. package/components/p-6KpqCGp9.js +0 -1
  893. package/components/p-ADwHM_jT.js +0 -1
  894. package/components/p-AgSyA7Ia.js +0 -1
  895. package/components/p-B-7Hwizp.js +0 -1
  896. package/components/p-B-ClGFfy.js +0 -1
  897. package/components/p-B4rO7Sgt.js +0 -1
  898. package/components/p-B5Syz0fw.js +0 -1
  899. package/components/p-B6p-mzW-.js +0 -1
  900. package/components/p-B8SZP5Xz.js +0 -1
  901. package/components/p-BBGHXZqR.js +0 -1
  902. package/components/p-BHLvuyOq.js +0 -1
  903. package/components/p-BOCR5Zk0.js +0 -1
  904. package/components/p-BRBrLtOz.js +0 -1
  905. package/components/p-BSRP2TGa.js +0 -1
  906. package/components/p-BUjRcJoK.js +0 -1
  907. package/components/p-BVeQ5W_G.js +0 -1
  908. package/components/p-BVnVlCcd.js +0 -1
  909. package/components/p-BZQcq9R_.js +0 -1
  910. package/components/p-BeIFU-wn.js +0 -1
  911. package/components/p-BkEgl31q.js +0 -1
  912. package/components/p-BkPJ1Whr.js +0 -1
  913. package/components/p-BkevSugc.js +0 -1
  914. package/components/p-BkiOFW3H.js +0 -1
  915. package/components/p-BskMfHyY.js +0 -1
  916. package/components/p-Bu2JqZs8.js +0 -1
  917. package/components/p-BvjR2Q5Q.js +0 -1
  918. package/components/p-Bz7MhZ4K.js +0 -1
  919. package/components/p-C3gvR6nN.js +0 -1
  920. package/components/p-C70KKm8p.js +0 -1
  921. package/components/p-C7csgUoA.js +0 -1
  922. package/components/p-CAPfC5Vn.js +0 -1
  923. package/components/p-CEBSDVyp.js +0 -1
  924. package/components/p-CFB6xkAX.js +0 -1
  925. package/components/p-CGIxdOEm.js +0 -1
  926. package/components/p-CHRrsVXB.js +0 -1
  927. package/components/p-CKUzvJue.js +0 -1
  928. package/components/p-CRBPzT4B.js +0 -1
  929. package/components/p-CSfrs76m.js +0 -1
  930. package/components/p-C_ZBjXFP.js +0 -1
  931. package/components/p-Ce5L9qbY.js +0 -1
  932. package/components/p-CeBfFEIa.js +0 -1
  933. package/components/p-Ck6SW8G3.js +0 -1
  934. package/components/p-D7ijqXRY.js +0 -1
  935. package/components/p-D7n-26Q5.js +0 -1
  936. package/components/p-D8ew7Rgv.js +0 -1
  937. package/components/p-DBk4T-b-.js +0 -1
  938. package/components/p-DD-W_fMF.js +0 -1
  939. package/components/p-DElCk9ta.js +0 -1
  940. package/components/p-DEumEVI3.js +0 -1
  941. package/components/p-DGqQ8PT4.js +0 -1
  942. package/components/p-DJ1WhSJ4.js +0 -1
  943. package/components/p-DOxXxhXb.js +0 -1
  944. package/components/p-DRa4o4c6.js +0 -1
  945. package/components/p-DTlSrH8_.js +0 -1
  946. package/components/p-DTvD0UO5.js +0 -1
  947. package/components/p-DZFphzg1.js +0 -1
  948. package/components/p-DZPUUptR.js +0 -1
  949. package/components/p-D_xaGiZU.js +0 -1
  950. package/components/p-DaL42JUi.js +0 -1
  951. package/components/p-DbRpEXwX.js +0 -1
  952. package/components/p-Dg0xgMke.js +0 -1
  953. package/components/p-Dky_8i8S.js +0 -1
  954. package/components/p-DlwlBBr4.js +0 -1
  955. package/components/p-DoTf8yXn.js +0 -1
  956. package/components/p-DphUq6Z5.js +0 -1
  957. package/components/p-DsgWQbJY.js +0 -1
  958. package/components/p-Dx3yBe39.js +0 -1
  959. package/components/p-DxKMnrS8.js +0 -1
  960. package/components/p-O88oQkR1.js +0 -1
  961. package/components/p-PlUkLT0A.js +0 -1
  962. package/components/p-QTSiPk0I.js +0 -1
  963. package/components/p-TC9DZAbC.js +0 -1
  964. package/components/p-bVsOg7S9.js +0 -1
  965. package/components/p-ccpcKv5U.js +0 -1
  966. package/components/p-en06CSUT.js +0 -1
  967. package/components/p-g6ZBqIze.js +0 -1
  968. package/dist/cjs/types-DQ-V76ZQ.js +0 -255
  969. package/dist/cjs/x-address_14.cjs.entry.js +0 -12577
  970. package/dist/cjs/x-auto-complete-dropdown-content.cjs.entry.js +0 -69
  971. package/dist/cjs/x-avatar.cjs.entry.js +0 -269
  972. package/dist/cjs/x-button.cjs.entry.js +0 -174
  973. package/dist/cjs/x-card_12.cjs.entry.js +0 -1386
  974. package/dist/cjs/x-cascader-dropdown-content.cjs.entry.js +0 -364
  975. package/dist/cjs/x-checkbox_5.cjs.entry.js +0 -1376
  976. package/dist/cjs/x-color-picker-panel_2.cjs.entry.js +0 -873
  977. package/dist/cjs/x-color-picker_9.cjs.entry.js +0 -3085
  978. package/dist/cjs/x-date-picker-dropdown-content.cjs.entry.js +0 -757
  979. package/dist/cjs/x-dropdown_2.cjs.entry.js +0 -735
  980. package/dist/cjs/x-empty.cjs.entry.js +0 -64
  981. package/dist/cjs/x-form-builder.cjs.entry.js +0 -807
  982. package/dist/cjs/x-icon.cjs.entry.js +0 -144
  983. package/dist/cjs/x-list.cjs.entry.js +0 -138
  984. package/dist/cjs/x-modal-content.cjs.entry.js +0 -217
  985. package/dist/cjs/x-range-picker-dropdown-content.cjs.entry.js +0 -821
  986. package/dist/cjs/x-select_2.cjs.entry.js +0 -1316
  987. package/dist/cjs/x-spin.cjs.entry.js +0 -62
  988. package/dist/cjs/x-tab-pane.cjs.entry.js +0 -73
  989. package/dist/cjs/x-tabs.cjs.entry.js +0 -609
  990. package/dist/cjs/x-time-picker-dropdown-content.cjs.entry.js +0 -389
  991. package/dist/cjs/x-tree-select-dropdown-content.cjs.entry.js +0 -439
  992. package/dist/cjs/xlabs-store.cjs.js +0 -24
  993. package/dist/esm/types-C_QdJRdB.js +0 -253
  994. package/dist/esm/x-address_14.entry.js +0 -12562
  995. package/dist/esm/x-auto-complete-dropdown-content.entry.js +0 -67
  996. package/dist/esm/x-avatar.entry.js +0 -267
  997. package/dist/esm/x-button.entry.js +0 -172
  998. package/dist/esm/x-card_12.entry.js +0 -1373
  999. package/dist/esm/x-cascader-dropdown-content.entry.js +0 -362
  1000. package/dist/esm/x-checkbox_5.entry.js +0 -1370
  1001. package/dist/esm/x-color-picker-panel_2.entry.js +0 -870
  1002. package/dist/esm/x-color-picker_9.entry.js +0 -3075
  1003. package/dist/esm/x-date-picker-dropdown-content.entry.js +0 -755
  1004. package/dist/esm/x-dropdown_2.entry.js +0 -732
  1005. package/dist/esm/x-empty.entry.js +0 -62
  1006. package/dist/esm/x-form-builder.entry.js +0 -805
  1007. package/dist/esm/x-icon.entry.js +0 -142
  1008. package/dist/esm/x-list.entry.js +0 -136
  1009. package/dist/esm/x-modal-content.entry.js +0 -215
  1010. package/dist/esm/x-range-picker-dropdown-content.entry.js +0 -819
  1011. package/dist/esm/x-select_2.entry.js +0 -1313
  1012. package/dist/esm/x-spin.entry.js +0 -60
  1013. package/dist/esm/x-tab-pane.entry.js +0 -71
  1014. package/dist/esm/x-tabs.entry.js +0 -607
  1015. package/dist/esm/x-time-picker-dropdown-content.entry.js +0 -387
  1016. package/dist/esm/x-tree-select-dropdown-content.entry.js +0 -437
  1017. package/dist/esm/xlabs-store.js +0 -20
  1018. package/dist/xlabs-store/index.esm.js +0 -1
  1019. package/dist/xlabs-store/p-016194dc.entry.js +0 -1
  1020. package/dist/xlabs-store/p-04a3721a.entry.js +0 -1
  1021. package/dist/xlabs-store/p-072445b7.entry.js +0 -1
  1022. package/dist/xlabs-store/p-0ec21454.entry.js +0 -1
  1023. package/dist/xlabs-store/p-12b6a843.entry.js +0 -1
  1024. package/dist/xlabs-store/p-1a81cf09.entry.js +0 -1
  1025. package/dist/xlabs-store/p-1b019aeb.entry.js +0 -1
  1026. package/dist/xlabs-store/p-262a0673.entry.js +0 -1
  1027. package/dist/xlabs-store/p-34cce823.entry.js +0 -1
  1028. package/dist/xlabs-store/p-3a9fdefe.entry.js +0 -1
  1029. package/dist/xlabs-store/p-40036100.entry.js +0 -1
  1030. package/dist/xlabs-store/p-45f04e8d.entry.js +0 -1
  1031. package/dist/xlabs-store/p-48ba7c34.entry.js +0 -1
  1032. package/dist/xlabs-store/p-48e2c26e.entry.js +0 -1
  1033. package/dist/xlabs-store/p-4ac2e915.entry.js +0 -1
  1034. package/dist/xlabs-store/p-4d7c2a35.entry.js +0 -1
  1035. package/dist/xlabs-store/p-4f67cb33.entry.js +0 -1
  1036. package/dist/xlabs-store/p-502b345e.entry.js +0 -1
  1037. package/dist/xlabs-store/p-555c5e48.entry.js +0 -1
  1038. package/dist/xlabs-store/p-5878525f.entry.js +0 -1
  1039. package/dist/xlabs-store/p-5abbdca7.entry.js +0 -1
  1040. package/dist/xlabs-store/p-6243ca69.entry.js +0 -1
  1041. package/dist/xlabs-store/p-64e7a057.entry.js +0 -1
  1042. package/dist/xlabs-store/p-6530d2ef.entry.js +0 -1
  1043. package/dist/xlabs-store/p-675a39e1.entry.js +0 -1
  1044. package/dist/xlabs-store/p-689c52ef.entry.js +0 -1
  1045. package/dist/xlabs-store/p-69b8cb7d.entry.js +0 -1
  1046. package/dist/xlabs-store/p-6b121c60.entry.js +0 -1
  1047. package/dist/xlabs-store/p-6c75fc39.entry.js +0 -1
  1048. package/dist/xlabs-store/p-6f705deb.entry.js +0 -1
  1049. package/dist/xlabs-store/p-723d362c.entry.js +0 -1
  1050. package/dist/xlabs-store/p-783545e3.entry.js +0 -1
  1051. package/dist/xlabs-store/p-81fb4caf.entry.js +0 -1
  1052. package/dist/xlabs-store/p-863dd67d.entry.js +0 -1
  1053. package/dist/xlabs-store/p-8bcc219a.entry.js +0 -1
  1054. package/dist/xlabs-store/p-914b0ae2.entry.js +0 -1
  1055. package/dist/xlabs-store/p-9ac291ea.entry.js +0 -1
  1056. package/dist/xlabs-store/p-9de03a07.entry.js +0 -1
  1057. package/dist/xlabs-store/p-C_QdJRdB.js +0 -1
  1058. package/dist/xlabs-store/p-Ce5L9qbY.js +0 -1
  1059. package/dist/xlabs-store/p-DElCk9ta.js +0 -1
  1060. package/dist/xlabs-store/p-a4223feb.entry.js +0 -1
  1061. package/dist/xlabs-store/p-a8c2eca7.entry.js +0 -1
  1062. package/dist/xlabs-store/p-ac9ba3aa.entry.js +0 -1
  1063. package/dist/xlabs-store/p-bd5084b8.entry.js +0 -1
  1064. package/dist/xlabs-store/p-bda322db.entry.js +0 -1
  1065. package/dist/xlabs-store/p-c4c8840c.entry.js +0 -1
  1066. package/dist/xlabs-store/p-c4d0ce0d.entry.js +0 -1
  1067. package/dist/xlabs-store/p-cf4697bc.entry.js +0 -1
  1068. package/dist/xlabs-store/p-d2ec3d4a.entry.js +0 -1
  1069. package/dist/xlabs-store/p-d4d00aff.entry.js +0 -1
  1070. package/dist/xlabs-store/p-d9d0147b.entry.js +0 -1
  1071. package/dist/xlabs-store/p-dd930f2a.entry.js +0 -1
  1072. package/dist/xlabs-store/p-e04836e8.entry.js +0 -1
  1073. package/dist/xlabs-store/p-e14b5f6d.entry.js +0 -1
  1074. package/dist/xlabs-store/p-eb1dd3c2.entry.js +0 -1
  1075. package/dist/xlabs-store/p-f02155e4.entry.js +0 -1
  1076. package/dist/xlabs-store/p-f1331938.entry.js +0 -1
  1077. package/dist/xlabs-store/p-fac0b689.entry.js +0 -1
  1078. package/dist/xlabs-store/p-fd2e1d9c.entry.js +0 -1
  1079. package/dist/xlabs-store/p-ffba56b2.entry.js +0 -1
  1080. package/dist/xlabs-store/p-ig_mFsVk.js +0 -2
  1081. package/dist/xlabs-store/xlabs-store.css +0 -1
  1082. package/dist/xlabs-store/xlabs-store.esm.js +0 -1
  1083. /package/components/{p-XBF88YT_.js → p-BtYiIQqg.js} +0 -0
  1084. /package/components/{p-D66tF8_2.js → p-DFADJBLL.js} +0 -0
  1085. /package/components/{p-COpzIi1n.js → p-DM8AggMt.js} +0 -0
  1086. /package/components/{p-BPeosvTA.js → p-RKpMhZmc.js} +0 -0
  1087. /package/components/{p-Dgxy93Bg.js → p-iG9CbEpE.js} +0 -0
  1088. /package/dist/{xlabs-store → xlabs}/fonts/xlabs-outlined.woff2 +0 -0
  1089. /package/dist/{xlabs-store → xlabs}/fonts/xlabs-rounded.woff2 +0 -0
  1090. /package/dist/{xlabs-store → xlabs}/fonts/xlabs-solided.woff2 +0 -0
  1091. /package/dist/{xlabs-store/p-XBF88YT_.js → xlabs/p-BtYiIQqg.js} +0 -0
  1092. /package/dist/{xlabs-store/p-D66tF8_2.js → xlabs/p-DFADJBLL.js} +0 -0
  1093. /package/dist/{xlabs-store/p-COpzIi1n.js → xlabs/p-DM8AggMt.js} +0 -0
  1094. /package/dist/{xlabs-store/p-BPeosvTA.js → xlabs/p-RKpMhZmc.js} +0 -0
  1095. /package/dist/{xlabs-store/p-Dgxy93Bg.js → xlabs/p-iG9CbEpE.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { h, } from "@stencil/core";
1
+ import { h } from "@stencil/core";
2
2
  import { Utils } from "./utils/utils";
3
3
  import { SchemaBuilder } from "./services/schema/schema-builder";
4
4
  import { translate } from "../../locales/locale.service";
@@ -31,9 +31,12 @@ export class XFormBuilder {
31
31
  const settingValidationMessages = this.schema?.setting?.validateMessages || {};
32
32
  const defaultValidationMessages = Utils.messageValidator();
33
33
  const messages = Object.entries(errors).map(([errKey, errValue]) => {
34
- const message = fieldValidationMessages[errKey] ||
34
+ let message = fieldValidationMessages[errKey] ||
35
35
  settingValidationMessages[errKey] ||
36
36
  defaultValidationMessages[errKey];
37
+ if (!message && errKey === 'captcha') {
38
+ message = field.message || field.error || 'Captcha is incorrect';
39
+ }
37
40
  return translate(message, {
38
41
  ...errValue,
39
42
  ...params,
@@ -43,14 +46,23 @@ export class XFormBuilder {
43
46
  }
44
47
  get mapping() {
45
48
  const InputCallback = (field) => {
46
- const { commonProps, onChange } = this.getcommonProps(field);
49
+ const { commonProps, onChange, onPressEnter } = this.getcommonProps(field);
47
50
  const rerenderKey = field.id || field.name;
48
- return (h("x-input", { key: rerenderKey, ...commonProps, type: field.type, value: field.control ? field.control.value : field.defaultValue || '', onXChange: onChange, onXBlur: () => field.control ? field.control.markAsTouched() : null }));
51
+ return (h("x-input", { key: rerenderKey, ...commonProps, type: field.type, value: field.control ? field.control.value : field.defaultValue || '', onXChange: onChange, onXPressEnter: onPressEnter, onXBlur: () => (field.control ? field.control.markAsTouched() : null) }));
49
52
  };
50
53
  const InputNumberCallback = (field) => {
51
- const { commonProps, onChange } = this.getcommonProps(field);
54
+ const { commonProps, onChange: originalOnChange, onPressEnter } = this.getcommonProps(field);
52
55
  const f = field;
53
- return (h("x-input-number", { ...commonProps, status: commonProps.status, min: f.min, max: f.max, step: f.step, precision: f.precision, controls: f.controls, stringMode: f.stringMode, onXChange: onChange }));
56
+ const maxLengthVal = f.maxLength ?? f.validators?.find(v => v.type === 'maxLength')?.value;
57
+ const onChange = (e) => {
58
+ const val = e.detail && typeof e.detail === 'object' && 'value' in e.detail ? e.detail.value : e.detail;
59
+ if (maxLengthVal !== undefined && val !== null && val !== undefined && String(val).length > maxLengthVal) {
60
+ return;
61
+ }
62
+ originalOnChange(e);
63
+ };
64
+ const { minLength: _ml, maxLength: _xl, ...restProps } = commonProps;
65
+ return (h("x-input-number", { ...restProps, value: field.control ? field.control.value : field.defaultValue, status: commonProps.status, min: f.min, max: f.max, step: f.step, precision: f.precision, controls: f.controls, stringMode: f.stringMode, currency: f.currency, addonAfter: f.addonAfter, addonBefore: f.addonBefore, onXChange: onChange, onXPressEnter: onPressEnter }));
54
66
  };
55
67
  // Simple non-input renderers for remaining cases
56
68
  const DividerCallback = (field) => {
@@ -98,16 +110,12 @@ export class XFormBuilder {
98
110
  const href = field.href || field.value || '#';
99
111
  const target = field.target || '_self';
100
112
  const rel = field.rel || '';
101
- const text = String(field.content ??
102
- field.label ??
103
- field.text ??
104
- field.value ??
105
- 'Link');
113
+ const text = String(field.content ?? field.label ?? field.text ?? field.value ?? 'Link');
106
114
  const style = {
107
115
  textAlign: align,
108
116
  textDecoration: underline === false ? 'none' : 'underline',
109
117
  };
110
- return (h("div", { style: style }, h("a", { href: href, target: target, rel: rel, "data-type": styleType, "data-ellipsis": ellipsis }, icon ? (h("i", { "data-icon": icon, style: { marginRight: '8px' } })) : null, h("span", null, text))));
118
+ return (h("div", { style: style }, h("a", { href: href, target: target, rel: rel, "data-type": styleType, "data-ellipsis": ellipsis }, icon ? h("i", { "data-icon": icon, style: { marginRight: '8px' } }) : null, h("span", null, text))));
111
119
  };
112
120
  const ImageCallback = (field) => {
113
121
  const align = field.align;
@@ -121,9 +129,7 @@ export class XFormBuilder {
121
129
  const align = field.align;
122
130
  const src = field.src || field.value || '';
123
131
  const size = field.size || 64;
124
- const circle = field.circle === undefined || field.circle
125
- ? '50%'
126
- : '0';
132
+ const circle = field.circle === undefined || field.circle ? '50%' : '0';
127
133
  const alt = field.alt || '';
128
134
  return (h("div", { style: { margin: '8px 0', textAlign: align } }, h("img", { src: src, alt: alt, style: {
129
135
  width: `${size}px`,
@@ -155,7 +161,7 @@ export class XFormBuilder {
155
161
  const fgColor = field.fgColor || '#000000';
156
162
  const includeMargin = !!field.includeMargin;
157
163
  const description = field.description;
158
- return (h("div", { style: { width: '100%', margin: '8px 0', textAlign: align } }, h("div", { style: { display: 'inline-block' } }, label ? (h("div", { style: { marginBottom: '8px', fontWeight: '500' } }, String(label))) : null, h("div", { style: {
164
+ return (h("div", { style: { width: '100%', margin: '8px 0', textAlign: align } }, h("div", { style: { display: 'inline-block' } }, label ? h("div", { style: { marginBottom: '8px', fontWeight: '500' } }, String(label)) : null, h("div", { style: {
159
165
  width: `${size}px`,
160
166
  height: `${size}px`,
161
167
  background: bgColor,
@@ -178,19 +184,13 @@ export class XFormBuilder {
178
184
  border: '1px solid var(--x-border, #e5e7eb)',
179
185
  borderRadius: '8px',
180
186
  margin: '8px 0',
181
- } }, 'elements' in field && field.elements
182
- ? this.bind(field.elements, field)
183
- : null));
184
- const ContainerCallback = (field) => (h("div", { style: { margin: '8px 0' } }, 'elements' in field && field.elements
185
- ? this.bind(field.elements, field)
186
- : null));
187
+ } }, 'elements' in field && field.elements ? this.bind(field.elements, field) : null));
188
+ const ContainerCallback = (field) => (h("div", { style: { margin: '8px 0' } }, 'elements' in field && field.elements ? this.bind(field.elements, field) : null));
187
189
  const GridCallback = (field) => (h("div", { style: {
188
190
  display: 'grid',
189
191
  gridTemplateColumns: `repeat(${field.columns || 12}, minmax(0, 1fr))`,
190
192
  gap: `${field.gap || 15}px`,
191
- } }, 'elements' in field && field.elements
192
- ? this.bind(field.elements, field)
193
- : null));
193
+ } }, 'elements' in field && field.elements ? this.bind(field.elements, field) : null));
194
194
  const MapsCallback = (field) => {
195
195
  const width = field.width || '100%';
196
196
  const height = field.height || 400;
@@ -212,13 +212,7 @@ export class XFormBuilder {
212
212
  alignItems: 'center',
213
213
  justifyContent: 'center',
214
214
  flexDirection: 'column',
215
- background: provider === 'google'
216
- ? '#e8f5e8'
217
- : provider === 'mapbox'
218
- ? '#f0f8ff'
219
- : provider === 'bing'
220
- ? '#fff7e6'
221
- : '#f0f0f0',
215
+ background: provider === 'google' ? '#e8f5e8' : provider === 'mapbox' ? '#f0f8ff' : provider === 'bing' ? '#fff7e6' : '#f0f0f0',
222
216
  } }, h("div", { style: { fontWeight: '500', marginBottom: '8px' } }, String(field.label || 'Interactive Map')), center ? (h("div", { style: {
223
217
  color: '#666',
224
218
  fontSize: '12px',
@@ -241,15 +235,13 @@ export class XFormBuilder {
241
235
  const RadioCallback = (field) => {
242
236
  const { commonProps, onChange } = this.getcommonProps(field);
243
237
  const f = field;
244
- return (h("x-radio-group", { ...commonProps, value: field.control ? field.control.value : field.defaultValue, options: f.options || [], direction: f.direction || f.orientation || 'horizontal', onXChange: onChange }));
238
+ return (h("x-radio-group", { ...commonProps, value: field.control ? field.control.value : field.defaultValue, options: f.options || [], direction: f.direction || f.orientation || 'horizontal', placement: f.placement || 'end', onXChange: onChange }));
245
239
  };
246
240
  const CheckboxCallback = (field) => {
247
241
  const { commonProps, onChange } = this.getcommonProps(field);
248
242
  const f = field;
249
243
  const options = f.options || [];
250
- const currentValue = field.control
251
- ? field.control.value
252
- : commonProps.defaultValue;
244
+ const currentValue = field.control ? field.control.value : commonProps.defaultValue;
253
245
  const isArray = Array.isArray(currentValue);
254
246
  const direction = f.direction || f.orientation || 'horizontal';
255
247
  const containerStyle = {
@@ -258,33 +250,26 @@ export class XFormBuilder {
258
250
  flexWrap: 'wrap',
259
251
  flexDirection: direction === 'vertical' ? 'column' : 'row',
260
252
  };
261
- return (h("div", { style: { margin: '4px 0' } }, h("div", { style: containerStyle }, options.length > 0 ? (options.map((opt, idx) => (h("x-checkbox", { key: `${field.name}-${idx}`, ...commonProps, value: opt.value, disabled: opt.disabled || commonProps.disabled, onXChange: onChange, checked: isArray
262
- ? (currentValue || []).includes(opt.value)
263
- : currentValue === opt.value }, String(opt.label))))) : (h("x-checkbox", { ...commonProps, onXChange: onChange, checked: !!currentValue }, String(field.label))))));
253
+ return (h("div", { style: { margin: '4px 0' } }, h("div", { style: containerStyle }, options.length > 0 ? (options.map((opt, idx) => (h("x-checkbox", { key: `${field.name}-${idx}`, ...commonProps, value: opt.value, disabled: opt.disabled || commonProps.disabled, onXChange: onChange, checked: isArray ? (currentValue || []).includes(opt.value) : currentValue === opt.value, placement: opt.placement || f.placement || 'end' }, String(opt.label))))) : (h("x-checkbox", { ...commonProps, onXChange: onChange, checked: !!currentValue, placement: f.placement || 'end' }, String(field.label))))));
264
254
  };
265
255
  const DateLocaleCallback = (field) => {
266
256
  let { commonProps, onChange } = this.getcommonProps(field);
267
- const minDate = field.min
268
- ? new Date(field.min)
269
- : undefined;
270
- const maxDate = field.max
271
- ? new Date(field.max)
272
- : undefined;
257
+ const minDate = field.min ? new Date(field.min) : undefined;
258
+ const maxDate = field.max ? new Date(field.max) : undefined;
273
259
  const rawValue = field.control ? field.control.value : field.defaultValue;
274
- return (h("x-date-picker", { ...commonProps, onXChange: onChange, picker: field.picker || 'date', format: field.format, placement: field.placement, minDate: minDate ? minDate.toISOString().split('T')[0] : undefined, maxDate: maxDate ? maxDate.toISOString().split('T')[0] : undefined, value: typeof rawValue === 'string'
260
+ const showTime = !!field.showTime;
261
+ return (h("x-date-picker", { ...commonProps, onXChange: onChange, picker: field.picker || 'date', format: field.format, placement: field.placement, showTime: showTime, minDate: minDate ? minDate.toISOString().split('T')[0] : undefined, maxDate: maxDate ? maxDate.toISOString().split('T')[0] : undefined, value: typeof rawValue === 'string'
275
262
  ? rawValue
276
263
  : rawValue instanceof Date
277
- ? rawValue.toISOString().split('T')[0]
264
+ ? showTime
265
+ ? rawValue.toISOString()
266
+ : rawValue.toISOString().split('T')[0]
278
267
  : '', size: commonProps.size }));
279
268
  };
280
269
  const DateTimeCallback = (field) => {
281
270
  let { commonProps, onChange } = this.getcommonProps(field);
282
- const minDate = field.min
283
- ? new Date(field.min)
284
- : undefined;
285
- const maxDate = field.max
286
- ? new Date(field.max)
287
- : undefined;
271
+ const minDate = field.min ? new Date(field.min) : undefined;
272
+ const maxDate = field.max ? new Date(field.max) : undefined;
288
273
  const rawValue = field.control ? field.control.value : field.defaultValue;
289
274
  return (h("x-date-picker", { ...commonProps, onXChange: onChange, picker: field.picker || 'date', format: field.format, placement: field.placement, showTime: true, minDate: minDate ? minDate.toISOString().split('T')[0] : undefined, maxDate: maxDate ? maxDate.toISOString().split('T')[0] : undefined, value: typeof rawValue === 'string' ? rawValue : rawValue instanceof Date ? rawValue.toISOString() : '', size: commonProps.size }));
290
275
  };
@@ -292,43 +277,64 @@ export class XFormBuilder {
292
277
  let { commonProps, onChange } = this.getcommonProps(field);
293
278
  // Ensure value is a string for x-time-picker
294
279
  const rawValue = field.control ? field.control.value : field.defaultValue;
295
- const timeValue = rawValue instanceof Date
296
- ? rawValue.toTimeString().split(' ')[0]
297
- : typeof rawValue === 'string'
298
- ? rawValue
299
- : '';
280
+ const timeValue = rawValue instanceof Date ? rawValue.toTimeString().split(' ')[0] : typeof rawValue === 'string' ? rawValue : '';
300
281
  const wrapperStyle = {
301
282
  margin: '8px 0',
302
- ...(commonProps.disabled
303
- ? { pointerEvents: 'none', opacity: '0.5' }
304
- : {}),
283
+ ...(commonProps.disabled ? { pointerEvents: 'none', opacity: '0.5' } : {}),
305
284
  };
306
285
  return (h("div", { style: wrapperStyle }, h("x-time-picker", { ...commonProps, value: timeValue, onXChange: (e) => {
307
286
  onChange(e);
308
287
  } })));
309
288
  };
310
289
  const DateRangeCallback = (field) => {
311
- let { commonProps, onChange } = this.getcommonProps(field);
312
- const minDate = field.min
313
- ? new Date(field.min)
314
- : undefined;
315
- const maxDate = field.max
316
- ? new Date(field.max)
317
- : undefined;
290
+ let { commonProps } = this.getcommonProps(field);
291
+ const f = field;
292
+ const minDate = f.min ? new Date(f.min) : undefined;
293
+ const maxDate = f.max ? new Date(f.max) : undefined;
318
294
  const rawValue = field.control ? field.control.value : field.defaultValue;
319
295
  let rangeValue = { start: null, end: null };
320
296
  if (Array.isArray(rawValue)) {
321
297
  rangeValue = {
322
298
  start: rawValue[0] instanceof Date ? rawValue[0].toISOString().split('T')[0] : rawValue[0],
323
- end: rawValue[1] instanceof Date ? rawValue[1].toISOString().split('T')[0] : rawValue[1]
299
+ end: rawValue[1] instanceof Date ? rawValue[1].toISOString().split('T')[0] : rawValue[1],
324
300
  };
325
301
  }
326
- return (h("x-range-picker", { ...commonProps, placeholder: [field.placeholder || 'Start', field.placeholder || 'End'], onXChange: onChange, picker: field.picker || 'date', format: field.format, placement: field.placement, minDate: minDate ? minDate.toISOString().split('T')[0] : undefined, maxDate: maxDate ? maxDate.toISOString().split('T')[0] : undefined, value: rangeValue, size: commonProps.size, showTime: field.showTime }));
302
+ else if (rawValue && typeof rawValue === 'object' && ('start' in rawValue || 'end' in rawValue)) {
303
+ // Already a RangePickerValue { start, end } (e.g. after user has selected a range)
304
+ rangeValue = { start: rawValue.start ?? null, end: rawValue.end ?? null };
305
+ }
306
+ // Resolve placeholder: support array ["Start", "End"] or a single string
307
+ const ph = field.placeholder;
308
+ const startPh = Array.isArray(ph) ? (ph[0] ?? 'Start') : ph || 'Start';
309
+ const endPh = Array.isArray(ph) ? (ph[1] ?? 'End') : ph || 'End';
310
+ // Build custom onChange that stores the RangePickerValue object
311
+ const onRangeChange = (e) => {
312
+ const detail = e?.detail;
313
+ let val;
314
+ if (detail && typeof detail === 'object' && 'value' in detail) {
315
+ // { value: { start, end }, dates, dateStrings }
316
+ val = detail.value;
317
+ }
318
+ else {
319
+ val = detail;
320
+ }
321
+ if (field.control) {
322
+ field.control.setValue(val);
323
+ }
324
+ else {
325
+ field.value = val;
326
+ }
327
+ this._tick++;
328
+ };
329
+ return (h("x-range-picker", { ...commonProps, placeholder: [startPh, endPh], onXChange: onRangeChange, picker: field.picker || 'date', format: field.format, placement: field.placement, minDate: minDate ? minDate.toISOString().split('T')[0] : undefined, maxDate: maxDate ? maxDate.toISOString().split('T')[0] : undefined, value: rangeValue, size: commonProps.size, showTime: field.showTime }));
327
330
  };
328
331
  const UploadCallback = (field) => {
329
332
  let { commonProps, onChange } = this.getcommonProps(field);
330
333
  const fieldData = field;
331
- return (h("x-upload", { ...commonProps, onXChange: onChange, listType: fieldData.listType, multiple: fieldData.multiple, maxCount: fieldData.maxCount, accept: fieldData.accept, action: fieldData.action }));
334
+ const isPictureCard = fieldData.listType === 'picture-card' || fieldData.listType === 'picture-circle';
335
+ const isDrag = !!fieldData.drag;
336
+ const val = field.control ? field.control.value : field.defaultValue || [];
337
+ return (h("x-upload", { ...commonProps, onXChange: onChange, listType: fieldData.listType, multiple: fieldData.multiple, maxCount: fieldData.maxCount, accept: fieldData.accept, action: fieldData.action, drag: fieldData.drag, showUploadList: fieldData.showUploadList ?? true, maxFileSize: fieldData.maxSize ? fieldData.maxSize * 1024 * 1024 : undefined, fileList: val }, !isPictureCard && !isDrag && (h("x-button", null, h("x-icon", { slot: "icon", name: "upload" }), h("span", null, "Click to Upload")))));
332
338
  };
333
339
  const SliderCallback = (field) => {
334
340
  let { commonProps, onChange } = this.getcommonProps(field);
@@ -338,21 +344,36 @@ export class XFormBuilder {
338
344
  const SwitchCallback = (field) => {
339
345
  let { commonProps, onChange } = this.getcommonProps(field);
340
346
  const f = field;
341
- return (h("x-switch", { ...commonProps, checked: field.control ? field.control.value : field.defaultValue, size: commonProps.size === 'middle' ? 'default' : commonProps.size, checkedChildren: f.checkedChildren, unCheckedChildren: f.unCheckedChildren, defaultChecked: f.defaultChecked, onXChange: onChange }));
347
+ return (h("x-switch", { ...commonProps, checked: field.control ? field.control.value : field.defaultValue, size: commonProps.size === 'middle' ? 'default' : commonProps.size, checkedChildren: f.checkedChildren, unCheckedChildren: f.unCheckedChildren, defaultChecked: f.defaultChecked, onXChange: onChange, onXClick: (e) => e.stopPropagation() }));
342
348
  };
343
349
  const CaptchaCallback = (field) => {
344
350
  let { commonProps, onChange } = this.getcommonProps(field);
345
351
  const f = field;
346
- return (h("x-captcha", { ...commonProps, value: field.control ? field.control.value : (field.defaultValue || ''), length: f.length, caseSensitive: f.caseSensitive, message: f.message, onXChange: onChange }));
352
+ return (h("x-captcha", { ...commonProps, value: field.control ? field.control.value : field.defaultValue || '', length: f.length, caseSensitive: f.caseSensitive, message: f.message, onXChange: onChange, ...{ hideError: true }, ref: el => {
353
+ if (field.control) {
354
+ field.control._captchaEl = el;
355
+ if (el && !field.control._captchaRegistered) {
356
+ field.control._captchaRegistered = true;
357
+ field.control.registerValidatorAsync(async () => {
358
+ const currentEl = field.control._captchaEl;
359
+ if (currentEl && currentEl.validate) {
360
+ const isValid = await currentEl.validate();
361
+ return isValid ? null : { captcha: true };
362
+ }
363
+ return null;
364
+ });
365
+ }
366
+ }
367
+ } }));
347
368
  };
348
369
  const AddressCallback = (field) => {
349
370
  let { commonProps, onChange } = this.getcommonProps(field);
350
371
  const f = field;
351
- return (h("x-address", { ...commonProps, value: field.control ? field.control.value : (field.defaultValue || EMPTY_OBJECT), onXChange: onChange, placeholderProvince: f.placeholderProvince, placeholderDistrict: f.placeholderDistrict, placeholderWard: f.placeholderWard, ...{
372
+ return (h("x-address", { ...commonProps, value: field.control ? field.control.value : field.defaultValue || EMPTY_OBJECT, onXChange: onChange, placeholderProvince: f.placeholderProvince, placeholderDistrict: f.placeholderDistrict, placeholderWard: f.placeholderWard, ...{
352
373
  provincesData: f.provincesData,
353
374
  districtsData: f.districtsData,
354
375
  wardsData: f.wardsData,
355
- }, ref: (el) => {
376
+ }, ref: el => {
356
377
  if (el && field.control) {
357
378
  field.control.registerValidatorAsync(async () => {
358
379
  const isValid = await el.validate();
@@ -364,7 +385,7 @@ export class XFormBuilder {
364
385
  const RateCallback = (field) => {
365
386
  let { commonProps, onChange } = this.getcommonProps(field);
366
387
  const f = field;
367
- return (h("x-rate", { ...commonProps, value: field.control ? field.control.value : (field.defaultValue || 0), count: f.count, allowHalf: f.allowHalf, allowClear: f.allowClear, character: f.character, onXChange: onChange }));
388
+ return (h("x-rate", { ...commonProps, value: field.control ? field.control.value : field.defaultValue || 0, count: f.count, allowHalf: f.allowHalf, allowClear: f.allowClear, character: f.character, onXChange: onChange }));
368
389
  };
369
390
  const TreeselectCallback = (field) => {
370
391
  const { commonProps, onChange } = this.getcommonProps(field);
@@ -374,17 +395,17 @@ export class XFormBuilder {
374
395
  const TransferCallback = (field) => {
375
396
  const { commonProps, onChange } = this.getcommonProps(field);
376
397
  const f = field;
377
- return (h("x-transfer", { ...commonProps, onXChange: onChange, dataSource: f.dataSource || [], targetKeys: field.control ? field.control.value : (f.targetKeys || []), selectedKeys: f.selectedKeys, titles: f.titles, operations: f.operations, showSearch: f.showSearch, searchPlaceholder: f.searchPlaceholder, notFoundContent: f.notFoundContent, oneWay: f.oneWay, showSelectAll: f.showSelectAll, listWidth: f.listWidth, listHeight: f.listHeight, pagination: f.pagination, pageSize: f.pageSize }));
398
+ return (h("x-transfer", { ...commonProps, onXChange: onChange, dataSource: f.dataSource || [], targetKeys: field.control ? field.control.value : f.targetKeys || [], selectedKeys: f.selectedKeys, titles: f.titles, operations: f.operations, showSearch: f.showSearch, searchPlaceholder: f.searchPlaceholder, notFoundContent: f.notFoundContent, oneWay: f.oneWay, showSelectAll: f.showSelectAll, listWidth: f.listWidth, listHeight: f.listHeight, pagination: f.pagination, pageSize: f.pageSize }));
378
399
  };
379
400
  const CascaderCallback = (field) => {
380
401
  const { commonProps, onChange } = this.getcommonProps(field);
381
402
  const f = field;
382
- return (h("x-cascader", { ...commonProps, onXChange: onChange, options: f.options || [], value: field.control ? field.control.value : (f.defaultValue || null), placeholder: f.placeholder || commonProps.placeholder, size: f.size || commonProps.size, variant: f.variant, placement: f.placement, status: commonProps.status || undefined, expandTrigger: f.expandTrigger, changeOnSelect: f.changeOnSelect, multiple: f.multiple, allowClear: f.allowClear ?? commonProps.allowClear, showSearch: f.showSearch, fieldNames: f.fieldNames, displaySeparator: f.displaySeparator, maxTagCount: f.maxTagCount, notFoundContent: f.notFoundContent, loading: f.loading }));
403
+ return (h("x-cascader", { ...commonProps, onXChange: onChange, options: f.options || [], value: field.control ? field.control.value : f.defaultValue || null, placeholder: f.placeholder || commonProps.placeholder, size: f.size || commonProps.size, variant: f.variant, placement: f.placement, status: commonProps.status || undefined, expandTrigger: f.expandTrigger, changeOnSelect: f.changeOnSelect, multiple: f.multiple, allowClear: f.allowClear ?? commonProps.allowClear, showSearch: f.showSearch, fieldNames: f.fieldNames, displaySeparator: f.displaySeparator, maxTagCount: f.maxTagCount, notFoundContent: f.notFoundContent, loading: f.loading }));
383
404
  };
384
405
  const AutoCompleteCallback = (field) => {
385
406
  const { commonProps, onChange } = this.getcommonProps(field);
386
407
  const f = field;
387
- return (h("x-auto-complete", { ...commonProps, onXChange: onChange, options: f.options || [], value: field.control ? field.control.value : (f.defaultValue || ''), placeholder: f.placeholder || commonProps.placeholder, size: f.size || commonProps.size, variant: f.variant, placement: f.placement, status: (commonProps.status || undefined), allowClear: f.allowClear ?? commonProps.allowClear, backfill: f.backfill, defaultOpen: f.defaultOpen, filterOption: f.filterOption, notFoundContent: f.notFoundContent }));
408
+ return (h("x-auto-complete", { ...commonProps, onXChange: onChange, options: f.options || [], value: field.control ? field.control.value : f.defaultValue || '', placeholder: f.placeholder || commonProps.placeholder, size: f.size || commonProps.size, variant: f.variant, placement: f.placement, status: (commonProps.status || undefined), allowClear: f.allowClear ?? commonProps.allowClear, backfill: f.backfill, defaultOpen: f.defaultOpen, openOnFocus: f.openOnFocus, filterOption: f.filterOption, notFoundContent: f.notFoundContent }));
388
409
  };
389
410
  const ColorPickerCallback = (field) => {
390
411
  let { commonProps, onChange } = this.getcommonProps(field);
@@ -408,43 +429,13 @@ export class XFormBuilder {
408
429
  const disabled = !!f.disabled;
409
430
  const label = f.content || field.label || '';
410
431
  const style = { textAlign: align, margin: '8px 0' };
411
- const htmlType = f.htmlType
412
- ? f.htmlType
413
- : (f.type === 'submit' || f.type === 'reset' ? f.type : 'button');
432
+ const htmlType = f.htmlType ? f.htmlType : f.type === 'submit' || f.type === 'reset' ? f.type : 'button';
414
433
  const onClick = async (event) => {
434
+ if (event && event.stopPropagation) {
435
+ event.stopPropagation();
436
+ }
415
437
  if (htmlType === 'submit') {
416
- // Validate all captcha components first
417
- let allCaptchaValid = true;
418
- const shadowRoot = this.el.shadowRoot;
419
- if (shadowRoot) {
420
- const captchas = shadowRoot.querySelectorAll('x-captcha');
421
- for (let i = 0; i < captchas.length; i++) {
422
- const captcha = captchas[i];
423
- if (captcha.validate) {
424
- const res = await captcha.validate();
425
- if (!res) {
426
- allCaptchaValid = false;
427
- }
428
- }
429
- }
430
- }
431
- if (this.builder.form.valid && allCaptchaValid) {
432
- this.formSubmit.emit({
433
- value: this.builder.form.value,
434
- builder: this.builder,
435
- event,
436
- field,
437
- });
438
- }
439
- else {
440
- this.builder.form.markAllAsTouched();
441
- this._tick++;
442
- this.formError.emit({
443
- builder: this.builder,
444
- event,
445
- errors: this.builder.form.errors,
446
- });
447
- }
438
+ await this.submit(event, field);
448
439
  }
449
440
  else if (htmlType === 'reset') {
450
441
  this.builder.form.reset();
@@ -454,7 +445,7 @@ export class XFormBuilder {
454
445
  this.xClick.emit({ field, builder: this.builder, event });
455
446
  }
456
447
  };
457
- return (h("div", { style: style }, h("x-button", { type: buttonType, shape: shape, size: size, block: block, danger: danger, ghost: ghost, loading: loading, disabled: disabled, htmlType: htmlType, onXClick: onClick }, icon && h("x-icon", { slot: 'icon', name: icon }), label)));
448
+ return (h("div", { style: style }, h("x-button", { type: buttonType, shape: shape, size: size, block: block, danger: danger, ghost: ghost, loading: loading, disabled: disabled, htmlType: htmlType, onXClick: onClick }, icon && h("x-icon", { slot: "icon", name: icon }), label)));
458
449
  };
459
450
  const TableCallback = (field) => {
460
451
  const { commonProps, onChange } = this.getcommonProps(field);
@@ -462,74 +453,174 @@ export class XFormBuilder {
462
453
  const columns = (f.columns || []).map(col => ({
463
454
  ...col,
464
455
  dataIndex: col.dataIndex || col.key,
465
- slot: col.actions ? (col.slot || col.key || 'action') : col.slot
456
+ slot: col.actions ? col.slot || col.key || 'action' : col.slot,
466
457
  }));
467
- return (h("x-table", { ...commonProps, columns: columns, dataSource: f.dataSource || [], rowKey: f.rowKey || 'id', tableTitle: f.tableTitle, pagination: f.pagination, tableScroll: f.tableScroll, rowSelection: f.rowSelection, size: f.size, bordered: f.bordered, loading: f.loading, showHeader: f.showHeader, emptyText: f.emptyText, resizableColumns: f.resizableColumns, draggableColumns: f.draggableColumns, draggableRows: f.draggableRows, sticky: f.sticky, onXSelectionChange: (ev) => {
458
+ return (h("x-table", { ...commonProps, columns: columns, dataSource: (field.control ? field.control.value : f.dataSource) || [], rowKey: f.rowKey || 'id', tableTitle: f.tableTitle, pagination: f.pagination, tableScroll: f.tableScroll, rowSelection: f.rowSelection, size: f.size, bordered: f.bordered, loading: f.loading, showHeader: f.showHeader, emptyText: f.emptyText, resizableColumns: f.resizableColumns, draggableColumns: f.draggableColumns, draggableRows: f.draggableRows, sticky: f.sticky, onXSelectionChange: ev => {
468
459
  if (f.rowSelection) {
469
460
  onChange(ev.detail.selectedRowKeys);
470
461
  }
471
- }, onXChange: (ev) => {
462
+ }, onXChange: ev => {
472
463
  console.log('x-form-builder: Table changed:', ev.detail);
473
- } }, columns.filter(col => col.actions).map(col => ((f.dataSource || []).map((record, index) => (h("div", { slot: `${col.slot}-${index}`, style: { display: 'flex', gap: '8px' } }, (col.actions || []).map(action => {
474
- const button = (h("x-button", { type: action.type === 'button' ? 'primary' : 'link', size: "small", danger: action.danger, onClick: (e) => {
464
+ } }, columns
465
+ .filter(col => col.actions)
466
+ .map(col => (f.dataSource || []).map((record, index) => (h("div", { slot: `${col.slot}-${index}`, style: { display: 'flex', gap: '8px' } }, (col.actions || []).map(action => {
467
+ const button = (h("x-button", { type: action.type === 'button' ? 'primary' : 'link', size: "small", danger: action.danger, onClick: e => {
475
468
  e.stopPropagation();
476
469
  this.xTableAction.emit({
477
470
  action: action.onClick || action.label,
478
471
  record,
479
- field: f
472
+ field: f,
480
473
  });
481
- } }, action.icon && h("x-icon", { slot: 'icon', name: action.icon }), action.label));
482
- return action.tooltip ? (h("x-tooltip", { tooltipTitle: action.tooltip }, button)) : (button);
483
- }))))))));
474
+ } }, action.icon && h("x-icon", { slot: "icon", name: action.icon }), action.label));
475
+ return action.tooltip ? h("x-tooltip", { tooltipTitle: action.tooltip }, button) : button;
476
+ })))))));
477
+ };
478
+ const TabsCallback = (field) => {
479
+ const f = field;
480
+ const items = f.items || [];
481
+ const activeKey = f.activeKey || f.defaultActiveKey || (items.length > 0 ? items[0].key : undefined);
482
+ const onRename = (e) => {
483
+ const { key, label } = e.detail;
484
+ const item = items.find(i => i.key === key);
485
+ if (item) {
486
+ item.label = label;
487
+ this._tick++;
488
+ }
489
+ };
490
+ const onEdit = (e) => {
491
+ const { action, targetKey } = e.detail;
492
+ if (action === 'add') {
493
+ const newKey = `tab-${Date.now()}`;
494
+ items.push({
495
+ key: newKey,
496
+ label: `New Tab ${items.length + 1}`,
497
+ elements: [],
498
+ });
499
+ this._tick++;
500
+ }
501
+ else if (action === 'remove') {
502
+ const index = items.findIndex(i => i.key === targetKey);
503
+ if (index !== -1) {
504
+ items.splice(index, 1);
505
+ this._tick++;
506
+ }
507
+ }
508
+ };
509
+ const isEditMode = this.context && this.context.mode === 'edit';
510
+ const allowAdd = f.allowAdd !== undefined ? f.allowAdd : isEditMode;
511
+ const allowRemove = f.allowRemove !== undefined ? f.allowRemove : isEditMode;
512
+ const allowRename = f.allowRename !== undefined ? f.allowRename : isEditMode;
513
+ // Determine tabs type: if allowAdd or allowRemove is true, use editable-card
514
+ let tabsType = f.tabsType || 'line';
515
+ if (allowAdd || allowRemove) {
516
+ tabsType = 'editable-card';
517
+ }
518
+ return (h("x-tabs", { activeKey: activeKey, tabPlacement: f.tabPlacement || 'top', type: tabsType, editable: allowRename, hideAdd: !allowAdd, onXTabRename: onRename, onXEdit: onEdit }, items.map(item => (h("x-tab-pane", { key: item.key, paneKey: item.key, tab: item.label, disabled: item.disabled, icon: item.icon, closable: allowRemove && item.closable !== false }, this.bind(item.elements, field))))));
484
519
  };
485
520
  return {
486
- text: InputCallback,
487
- input: InputCallback,
488
- email: InputCallback,
489
- password: InputCallback,
490
- url: InputCallback,
491
- number: InputNumberCallback,
492
- textarea: InputCallback,
493
- select: SelectCallback,
494
- radio: RadioCallback,
495
- checkbox: CheckboxCallback,
496
- date: DateLocaleCallback,
497
- datetime: DateTimeCallback,
498
- time: TimeCallback,
499
- file: UploadCallback,
500
- slider: SliderCallback,
501
- switch: SwitchCallback,
502
- rate: RateCallback,
503
- color: ColorPickerCallback,
504
- tags: InputCallback,
505
- range: InputCallback,
506
- phone: InputCallback,
507
- location: InputCallback,
521
+ 'text': InputCallback,
522
+ 'input': InputCallback,
523
+ 'email': InputCallback,
524
+ 'password': InputCallback,
525
+ 'url': InputCallback,
526
+ 'number': InputNumberCallback,
527
+ 'textarea': InputCallback,
528
+ 'select': SelectCallback,
529
+ 'radio': RadioCallback,
530
+ 'checkbox': CheckboxCallback,
531
+ 'date': DateLocaleCallback,
532
+ 'datetime': DateTimeCallback,
533
+ 'time': TimeCallback,
534
+ 'file': UploadCallback,
535
+ 'slider': SliderCallback,
536
+ 'switch': SwitchCallback,
537
+ 'rate': RateCallback,
538
+ 'color': ColorPickerCallback,
539
+ 'tags': InputCallback,
540
+ 'range': InputCallback,
541
+ 'phone': InputCallback,
542
+ 'location': InputCallback,
508
543
  'tree-select': TreeselectCallback,
509
- transfer: TransferCallback,
510
- cascader: CascaderCallback,
544
+ 'transfer': TransferCallback,
545
+ 'cascader': CascaderCallback,
511
546
  'auto-complete': AutoCompleteCallback,
512
- daterange: DateRangeCallback,
513
- divider: DividerCallback,
514
- heading: HeadingCallback,
515
- paragraph: ParagraphCallback,
516
- image: ImageCallback,
517
- captcha: CaptchaCallback,
518
- address: AddressCallback,
519
- avatar: AvatarCallback,
520
- editor: EditorCallback,
521
- button: ButtonCallback,
522
- href: HrefCallback,
523
- grid: GridCallback,
524
- table: TableCallback,
525
- maps: MapsCallback,
526
- panel: PanelCallback,
527
- container: ContainerCallback,
528
- iframe: IframeCallback,
547
+ 'daterange': DateRangeCallback,
548
+ 'divider': DividerCallback,
549
+ 'heading': HeadingCallback,
550
+ 'paragraph': ParagraphCallback,
551
+ 'image': ImageCallback,
552
+ 'captcha': CaptchaCallback,
553
+ 'address': AddressCallback,
554
+ 'avatar': AvatarCallback,
555
+ 'editor': EditorCallback,
556
+ 'button': ButtonCallback,
557
+ 'href': HrefCallback,
558
+ 'grid': GridCallback,
559
+ 'table': TableCallback,
560
+ 'maps': MapsCallback,
561
+ 'panel': PanelCallback,
562
+ 'container': ContainerCallback,
563
+ 'iframe': IframeCallback,
529
564
  'qr-code': QRCodeCallback,
565
+ 'tabs': TabsCallback,
566
+ 'range-picker': DateRangeCallback,
530
567
  };
531
568
  }
569
+ async submit(event, field) {
570
+ // Validate all mapped controls (both sync and async) first to ensure errors are updated
571
+ if (this.builder && this.builder.form) {
572
+ for (const [_key, fld] of Array.from(this.builder.form.mapping.entries())) {
573
+ if (fld.control) {
574
+ await fld.control.updateValueAndValidity({ emitEvent: false });
575
+ }
576
+ }
577
+ await this.builder.form.updateValueAndValidity();
578
+ }
579
+ // Validate all captcha components first
580
+ let allCaptchaValid = true;
581
+ const shadowRoot = this.el.shadowRoot;
582
+ if (shadowRoot) {
583
+ const captchas = shadowRoot.querySelectorAll('x-captcha');
584
+ for (let i = 0; i < captchas.length; i++) {
585
+ const captcha = captchas[i];
586
+ if (captcha.validate) {
587
+ const res = await captcha.validate();
588
+ if (!res) {
589
+ allCaptchaValid = false;
590
+ }
591
+ }
592
+ }
593
+ }
594
+ if (this.builder.form.valid && allCaptchaValid) {
595
+ this.formSubmit.emit({
596
+ value: this.builder.form.value,
597
+ builder: this.builder,
598
+ event: event,
599
+ field,
600
+ });
601
+ }
602
+ else {
603
+ this.builder.form.markAllAsTouched();
604
+ this._tick++;
605
+ // Auto refresh captcha on submission failure
606
+ if (shadowRoot) {
607
+ const captchas = shadowRoot.querySelectorAll('x-captcha');
608
+ for (let i = 0; i < captchas.length; i++) {
609
+ const captcha = captchas[i];
610
+ if (captcha.refresh) {
611
+ captcha.refresh();
612
+ }
613
+ }
614
+ }
615
+ this.formError.emit({
616
+ builder: this.builder,
617
+ event: event,
618
+ errors: this.builder.form.errors,
619
+ });
620
+ }
621
+ }
532
622
  schema;
623
+ showErrorCheckbox = false;
533
624
  getcommonProps(field) {
534
625
  const commonProps = {
535
626
  defaultValue: (field.defaultValue ?? field.defaultChecked ?? field.targetKeys),
@@ -546,7 +637,7 @@ export class XFormBuilder {
546
637
  disabled: field.disabled,
547
638
  readonly: field.readonly,
548
639
  size: (field.size || 'middle'),
549
- placeholder: field.placeholder || '',
640
+ placeholder: field.placeholder,
550
641
  errorMessage: '',
551
642
  pattern: field.pattern,
552
643
  };
@@ -566,15 +657,22 @@ export class XFormBuilder {
566
657
  commonProps.maxLength = field.maxLength;
567
658
  }
568
659
  const onChange = (e) => {
569
- const val = e.detail && typeof e.detail === 'object' && 'value' in e.detail
570
- ? e.detail.value
571
- : e.detail;
660
+ let val = e.detail && typeof e.detail === 'object' && 'value' in e.detail ? e.detail.value : e.detail;
661
+ if (val && typeof val === 'object' && 'fileList' in val) {
662
+ val = val.fileList;
663
+ }
572
664
  if (field.control) {
573
665
  field.control.setValue(val);
574
666
  }
575
667
  else {
576
668
  field.value = val;
577
669
  }
670
+ this.xChange.emit({
671
+ builder: this.builder,
672
+ event: e,
673
+ field: field,
674
+ value: this.builder ? this.builder.form.value : this.value,
675
+ });
578
676
  this._tick++;
579
677
  };
580
678
  const control = field.control;
@@ -584,42 +682,88 @@ export class XFormBuilder {
584
682
  commonProps.status = 'error';
585
683
  const errors = control.errors ?? {};
586
684
  const messages = this.getMessageValidator(field, errors);
587
- commonProps.errorMessage =
588
- messages.length > 0 ? messages[0] : 'Invalid value';
685
+ commonProps.errorMessage = messages.length > 0 ? messages[0] : 'Invalid value';
686
+ }
687
+ }
688
+ const onPressEnter = (e) => {
689
+ if (this.schema?.setting?.enterSubmit) {
690
+ this.submit(e, field);
589
691
  }
692
+ };
693
+ return { commonProps, onChange, onPressEnter };
694
+ }
695
+ getStylesFromUI(ui) {
696
+ if (!ui || !ui.style)
697
+ return {};
698
+ const { margin, padding, ...rest } = ui.style;
699
+ const styles = { ...rest };
700
+ if (margin) {
701
+ if (margin.top !== undefined)
702
+ styles.marginTop = typeof margin.top === 'number' ? `${margin.top}px` : margin.top;
703
+ if (margin.bottom !== undefined)
704
+ styles.marginBottom = typeof margin.bottom === 'number' ? `${margin.bottom}px` : margin.bottom;
705
+ if (margin.left !== undefined)
706
+ styles.marginLeft = typeof margin.left === 'number' ? `${margin.left}px` : margin.left;
707
+ if (margin.right !== undefined)
708
+ styles.marginRight = typeof margin.right === 'number' ? `${margin.right}px` : margin.right;
709
+ }
710
+ if (padding) {
711
+ if (padding.top !== undefined)
712
+ styles.paddingTop = typeof padding.top === 'number' ? `${padding.top}px` : padding.top;
713
+ if (padding.bottom !== undefined)
714
+ styles.paddingBottom = typeof padding.bottom === 'number' ? `${padding.bottom}px` : padding.bottom;
715
+ if (padding.left !== undefined)
716
+ styles.paddingLeft = typeof padding.left === 'number' ? `${padding.left}px` : padding.left;
717
+ if (padding.right !== undefined)
718
+ styles.paddingRight = typeof padding.right === 'number' ? `${padding.right}px` : padding.right;
590
719
  }
591
- return { commonProps, onChange };
720
+ return styles;
592
721
  }
593
722
  _tick = 0;
594
723
  value;
595
724
  context = {};
596
725
  builder;
726
+ _isInternalChange = false;
597
727
  componentWillLoad() {
598
- this.syncBuilder();
728
+ this.asyncBuilderForm(true);
729
+ }
730
+ handleValueChange() {
731
+ if (this._isInternalChange)
732
+ return;
733
+ this.asyncBuilderForm(true);
599
734
  }
600
- syncBuilder() {
601
- this.asyncBuilderForm();
735
+ handleSchemaChange() {
736
+ this.asyncBuilderForm(false);
602
737
  }
603
738
  isSyncing = false;
604
- asyncBuilderForm() {
739
+ asyncBuilderForm(forcePropValue = false) {
605
740
  if (this.isSyncing)
606
741
  return;
607
742
  this.isSyncing = true;
608
743
  try {
744
+ // Lưu lại giá trị hiện tại của form trước khi cập nhật/xây dựng lại builder
745
+ const currentInternalValue = this.builder ? this.builder.form.value : this.value;
609
746
  if (this.schema && (!this.builder || this.schema !== this.builder.schema)) {
610
- this.builder = new SchemaBuilder(this.schema);
747
+ this.builder = new SchemaBuilder(this.schema, { showErrorCheckbox: this.showErrorCheckbox });
611
748
  this.builder.subscribe((value) => {
749
+ this._isInternalChange = true;
612
750
  this.value = value;
751
+ this._isInternalChange = false;
613
752
  this.valueChange.emit(value);
614
753
  this.xChange.emit({
615
754
  builder: this.builder,
616
755
  event: null,
756
+ value: value,
617
757
  });
618
758
  this._tick++;
619
759
  });
620
760
  }
621
- if (this.builder && this.value) {
622
- this.builder.form.patchValue(this.value, { emitEvent: false });
761
+ // Luôn ưu tiên dùng giá trị mới nhất đang đúng context
762
+ // Nếu là forcePropValue (do @Watch('value') từ bên ngoài) thì lấy this.value
763
+ // Nếu là do schema/context change thì ưu tiên giữ lại giá trị đang nhập (currentInternalValue)
764
+ const effectiveValue = forcePropValue ? this.value : currentInternalValue || this.value;
765
+ if (this.builder && effectiveValue) {
766
+ this.builder.form.patchValue(effectiveValue, { emitEvent: false });
623
767
  }
624
768
  if (this.builder && this.context) {
625
769
  this.builder.context = this.context;
@@ -627,6 +771,9 @@ export class XFormBuilder {
627
771
  this.builder.conditions.checkAll();
628
772
  }
629
773
  }
774
+ if (this.builder) {
775
+ this.builder.showErrorCheckbox = this.showErrorCheckbox;
776
+ }
630
777
  this._tick++;
631
778
  }
632
779
  finally {
@@ -650,8 +797,16 @@ export class XFormBuilder {
650
797
  }
651
798
  if (layoutType === 'inline') {
652
799
  return {
653
- container: { display: 'flex', alignItems: 'center', gap: `${layout?.gap ?? gap}px` },
654
- item: { marginBottom: '0' },
800
+ container: {
801
+ display: 'flex',
802
+ alignItems: 'center',
803
+ gap: `${layout?.gap ?? gap}px`,
804
+ overflowX: 'auto',
805
+ flexWrap: 'nowrap',
806
+ maxWidth: '100%',
807
+ paddingBottom: '8px',
808
+ },
809
+ item: { marginBottom: '0', flexShrink: 0 },
655
810
  };
656
811
  }
657
812
  if (layoutType === 'grid') {
@@ -679,7 +834,7 @@ export class XFormBuilder {
679
834
  if (!elements || !Array.isArray(elements)) {
680
835
  return null;
681
836
  }
682
- return elements.map((element) => {
837
+ return elements.map(element => {
683
838
  if (element.hidden) {
684
839
  return null;
685
840
  }
@@ -688,21 +843,30 @@ export class XFormBuilder {
688
843
  const computedElement = {
689
844
  ...element,
690
845
  disabled: element.disabled || isParentDisabled,
691
- readonly: element.readonly || isParentReadonly
846
+ readonly: element.readonly || isParentReadonly,
692
847
  };
693
848
  const Component = this.mapping[element.type];
694
- const itemStyle = { marginBottom: '15px' };
849
+ const layoutConfig = this.schema.layout || this.schema.setting?.layout || 'vertical';
850
+ const layoutType = typeof layoutConfig === 'string' ? layoutConfig : layoutConfig?.type;
851
+ const uiStyle = this.getStylesFromUI(element.ui);
852
+ const itemStyle = { marginBottom: '15px', ...uiStyle };
695
853
  if (_parent?.type === 'grid') {
696
854
  const span = element.span || 1;
697
855
  itemStyle.gridColumn = `span ${span}`;
698
856
  }
857
+ else if (layoutType === 'horizontal' || layoutType === 'inline' || element.span) {
858
+ // Use 12-column grid for consistent spanning
859
+ const defaultSpan = layoutType === 'inline' ? 6 : 12;
860
+ const span = element.span || defaultSpan;
861
+ const widthPercent = (Number(span) / 12) * 100;
862
+ itemStyle.flex = `0 0 ${widthPercent}%`;
863
+ itemStyle.maxWidth = `${widthPercent}%`;
864
+ }
699
865
  if ('elements' in element) {
700
866
  return (h("div", { key: element.id || element.name, style: itemStyle }, h(Component, { ...computedElement })));
701
867
  }
702
868
  const { commonProps } = this.getcommonProps(computedElement);
703
- const layoutConfig = this.schema.layout || this.schema.setting?.layout || 'vertical';
704
- const layoutType = typeof layoutConfig === 'string' ? layoutConfig : layoutConfig?.type;
705
- const labelAlign = typeof layoutConfig === 'object' ? layoutConfig?.labelAlign : (this.schema.setting?.labelAlign || 'right');
869
+ const labelAlign = typeof layoutConfig === 'object' ? layoutConfig?.labelAlign || 'left' : this.schema.setting?.labelAlign || 'left';
706
870
  const labelCol = this.schema.setting?.labelCol;
707
871
  const wrapperCol = this.schema.setting?.wrapperCol;
708
872
  if (element.type === 'button') {
@@ -715,7 +879,31 @@ export class XFormBuilder {
715
879
  }
716
880
  return (h("div", { key: element.id || element.name, style: itemStyle }, h(Component, { ...buttonProps }, element.content)));
717
881
  }
718
- return (h("x-form-item", { key: element.id || element.name, label: element.label, colon: element.colon, required: element.required || (Array.isArray(element.validators) && element.validators.some(v => v.type === 'required')), validateStatus: commonProps.status, help: commonProps.errorMessage || element.note, layout: layoutType, labelAlign: labelAlign, labelCol: labelCol, wrapperCol: wrapperCol, style: itemStyle }, h(Component, { ...computedElement })));
882
+ const isDataField = !['divider', 'heading', 'paragraph', 'image', 'avatar', 'grid', 'panel', 'container', 'iframe', 'qr-code', 'tabs', 'button', 'href'].includes(element.type);
883
+ const isError = !!this.builder?.form?.get(`isError_${element.name}`)?.value;
884
+ return (h("x-form-item", { key: element.id || element.name, label: this.showErrorCheckbox && isDataField && element.name ? null : element.label, colon: element.colon, required: element.required || (Array.isArray(element.validators) && element.validators.some(v => v.type === 'required')), validateStatus: isError ? 'error' : commonProps.status, help: commonProps.errorMessage || element.note, layout: layoutType, labelAlign: labelAlign, labelCol: labelCol, wrapperCol: wrapperCol, style: itemStyle }, this.showErrorCheckbox && isDataField && element.name && (h("div", { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '8px' } }, h("span", { style: {
885
+ fontWeight: '600',
886
+ color: isError ? '#ff4d4f' : 'rgba(0, 0, 0, 0.88)',
887
+ fontSize: '14px'
888
+ } }, element.label, element.required && h("span", { style: { color: '#ff4d4f', marginLeft: '4px' } }, "*")), h("div", { style: { display: 'flex', alignItems: 'center', gap: '4px' } }, h("x-checkbox", { checked: isError, onXChange: (e) => {
889
+ const val = !!e.detail.checked;
890
+ const control = this.builder.form.get(`isError_${element.name}`);
891
+ if (control) {
892
+ control.setValue(val);
893
+ this.xChange.emit({
894
+ builder: this.builder,
895
+ event: e,
896
+ field: element,
897
+ value: this.builder.form.value,
898
+ });
899
+ }
900
+ this._tick++;
901
+ } }), h("span", { style: {
902
+ fontSize: '12px',
903
+ fontWeight: '700',
904
+ color: isError ? '#ff4d4f' : 'rgba(0, 0, 0, 0.65)',
905
+ textTransform: 'uppercase',
906
+ } }, "L\u1ED7i")))), h(Component, { ...computedElement, status: isError ? 'error' : computedElement.status })));
719
907
  });
720
908
  }
721
909
  render() {
@@ -728,9 +916,7 @@ export class XFormBuilder {
728
916
  if (this.builder.form.is_custom_submit)
729
917
  return null;
730
918
  const setting = this.schema.setting || {};
731
- let actions = Array.isArray(this.schema.actions)
732
- ? this.schema.actions
733
- : [];
919
+ let actions = Array.isArray(this.schema.actions) ? this.schema.actions : [];
734
920
  // Ensure at least one submit action is present
735
921
  if (!actions || actions.length === 0) {
736
922
  if (setting.showSubmitButton) {
@@ -756,7 +942,11 @@ export class XFormBuilder {
756
942
  textAlign: actionsAlign,
757
943
  };
758
944
  return (h("div", { style: containerStyle }, actions.map((action, idx) => {
759
- const { label, type, ...rest } = action;
945
+ if (action.hidden) {
946
+ return null;
947
+ }
948
+ const labelValue = action.content || action.label || '';
949
+ const { type, ...rest } = action;
760
950
  const buttonProps = { ...rest };
761
951
  if (type === 'submit' || type === 'reset') {
762
952
  buttonProps.htmlType = type;
@@ -764,15 +954,21 @@ export class XFormBuilder {
764
954
  else if (type) {
765
955
  buttonProps.type = type;
766
956
  }
767
- return (h("span", { style: { display: 'inline-block', marginLeft: idx ? '8px' : '0' }, key: action.id || `action-${idx}` }, h(ButtonComponent, { ...buttonProps }, label)));
957
+ const isBlock = !!buttonProps.block;
958
+ return (h("div", { style: {
959
+ display: isBlock ? 'block' : 'inline-block',
960
+ width: isBlock ? '100%' : 'auto',
961
+ marginLeft: !isBlock && idx ? '8px' : '0',
962
+ marginTop: isBlock && idx ? '8px' : '0',
963
+ }, key: action.id || `action-${idx}` }, h(ButtonComponent, { ...buttonProps }, labelValue)));
768
964
  })));
769
965
  };
770
- const form_template = (h("form", { noValidate: true, onSubmit: (e) => {
966
+ const form_template = (h("form", { noValidate: true, onSubmit: e => {
771
967
  e.preventDefault();
772
968
  e.stopPropagation();
773
969
  } }, h("div", { style: styles.container }, this.bind(this.schema?.elements)), renderActions()));
774
970
  if (this.schema.type === 'card') {
775
- return (h("x-card", null, h("slot", { name: "title" }, this.schema.title && (h("x-typography-title", { level: 3 }, this.schema.title)), this.schema.description && (h("x-typography-text", null, this.schema.description))), form_template));
971
+ return (h("x-card", null, h("slot", { name: "title" }, this.schema.title && h("x-typography-title", { level: 3 }, this.schema.title), this.schema.description && h("x-typography-text", null, this.schema.description)), form_template));
776
972
  }
777
973
  return form_template;
778
974
  }
@@ -814,6 +1010,26 @@ export class XFormBuilder {
814
1010
  "getter": false,
815
1011
  "setter": false
816
1012
  },
1013
+ "showErrorCheckbox": {
1014
+ "type": "boolean",
1015
+ "mutable": false,
1016
+ "complexType": {
1017
+ "original": "boolean",
1018
+ "resolved": "boolean",
1019
+ "references": {}
1020
+ },
1021
+ "required": false,
1022
+ "optional": false,
1023
+ "docs": {
1024
+ "tags": [],
1025
+ "text": ""
1026
+ },
1027
+ "getter": false,
1028
+ "setter": false,
1029
+ "reflect": false,
1030
+ "attribute": "show-error-checkbox",
1031
+ "defaultValue": "false"
1032
+ },
817
1033
  "value": {
818
1034
  "type": "unknown",
819
1035
  "mutable": true,
@@ -880,7 +1096,7 @@ export class XFormBuilder {
880
1096
  "references": {
881
1097
  "XFormBuilderChangeDetail": {
882
1098
  "location": "local",
883
- "path": "E:/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
1099
+ "path": "/run/media/cpanel/volumes/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
884
1100
  "id": "src/components/x-form-builder/x-form-builder.tsx::XFormBuilderChangeDetail"
885
1101
  }
886
1102
  }
@@ -901,7 +1117,7 @@ export class XFormBuilder {
901
1117
  "references": {
902
1118
  "XFormBuilderSubmitDetail": {
903
1119
  "location": "local",
904
- "path": "E:/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
1120
+ "path": "/run/media/cpanel/volumes/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
905
1121
  "id": "src/components/x-form-builder/x-form-builder.tsx::XFormBuilderSubmitDetail"
906
1122
  }
907
1123
  }
@@ -922,7 +1138,7 @@ export class XFormBuilder {
922
1138
  "references": {
923
1139
  "XTableActionDetail": {
924
1140
  "location": "local",
925
- "path": "E:/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
1141
+ "path": "/run/media/cpanel/volumes/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
926
1142
  "id": "src/components/x-form-builder/x-form-builder.tsx::XTableActionDetail"
927
1143
  }
928
1144
  }
@@ -943,7 +1159,7 @@ export class XFormBuilder {
943
1159
  "references": {
944
1160
  "XFormBuilderErrorDetail": {
945
1161
  "location": "local",
946
- "path": "E:/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
1162
+ "path": "/run/media/cpanel/volumes/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
947
1163
  "id": "src/components/x-form-builder/x-form-builder.tsx::XFormBuilderErrorDetail"
948
1164
  }
949
1165
  }
@@ -979,7 +1195,7 @@ export class XFormBuilder {
979
1195
  "references": {
980
1196
  "XFormBuilderClickDetail": {
981
1197
  "location": "local",
982
- "path": "E:/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
1198
+ "path": "/run/media/cpanel/volumes/projects/fintvn/labs/packages/core/src/components/x-form-builder/x-form-builder.tsx",
983
1199
  "id": "src/components/x-form-builder/x-form-builder.tsx::XFormBuilderClickDetail"
984
1200
  }
985
1201
  }
@@ -1001,17 +1217,64 @@ export class XFormBuilder {
1001
1217
  }
1002
1218
  }];
1003
1219
  }
1220
+ static get methods() {
1221
+ return {
1222
+ "submit": {
1223
+ "complexType": {
1224
+ "signature": "(event?: Event, field?: FormField | FormAction) => Promise<void>",
1225
+ "parameters": [{
1226
+ "name": "event",
1227
+ "type": "Event",
1228
+ "docs": ""
1229
+ }, {
1230
+ "name": "field",
1231
+ "type": "FormField | FormAction",
1232
+ "docs": ""
1233
+ }],
1234
+ "references": {
1235
+ "Promise": {
1236
+ "location": "global",
1237
+ "id": "global::Promise"
1238
+ },
1239
+ "Event": {
1240
+ "location": "import",
1241
+ "path": "@stencil/core",
1242
+ "id": "../../node_modules/@stencil/core/internal/stencil-core/index.d.ts::Event",
1243
+ "referenceLocation": "Event"
1244
+ },
1245
+ "FormField": {
1246
+ "location": "import",
1247
+ "path": "./types",
1248
+ "id": "src/components/x-form-builder/types/index.ts::FormField",
1249
+ "referenceLocation": "FormField"
1250
+ },
1251
+ "FormAction": {
1252
+ "location": "import",
1253
+ "path": "./types",
1254
+ "id": "src/components/x-form-builder/types/index.ts::FormAction",
1255
+ "referenceLocation": "FormAction"
1256
+ }
1257
+ },
1258
+ "return": "Promise<void>"
1259
+ },
1260
+ "docs": {
1261
+ "text": "",
1262
+ "tags": []
1263
+ }
1264
+ }
1265
+ };
1266
+ }
1004
1267
  static get elementRef() { return "el"; }
1005
1268
  static get watchers() {
1006
1269
  return [{
1007
- "propName": "schema",
1008
- "methodName": "syncBuilder"
1009
- }, {
1010
1270
  "propName": "value",
1011
- "methodName": "syncBuilder"
1271
+ "methodName": "handleValueChange"
1272
+ }, {
1273
+ "propName": "schema",
1274
+ "methodName": "handleSchemaChange"
1012
1275
  }, {
1013
1276
  "propName": "context",
1014
- "methodName": "syncBuilder"
1277
+ "methodName": "handleSchemaChange"
1015
1278
  }];
1016
1279
  }
1017
1280
  }